From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from shards.monkeyblade.net ([149.20.54.216]:40283 "EHLO shards.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751664AbbKMViM (ORCPT ); Fri, 13 Nov 2015 16:38:12 -0500 Received: from localhost (unknown [38.140.131.194]) (Authenticated sender: davem-davemloft) by shards.monkeyblade.net (Postfix) with ESMTPSA id BF648594790 for ; Fri, 13 Nov 2015 13:38:09 -0800 (PST) Date: Fri, 13 Nov 2015 16:38:08 -0500 (EST) Message-Id: <20151113.163808.74822173052779991.davem@davemloft.net> To: stable@vger.kernel.org Subject: [PATCHES] Networking From: David Miller Mime-Version: 1.0 Content-Type: Multipart/Mixed; boundary="--Next_Part(Fri_Nov_13_16_38_08_2015_159)--" Content-Transfer-Encoding: 7bit Sender: stable-owner@vger.kernel.org List-ID: ----Next_Part(Fri_Nov_13_16_38_08_2015_159)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Please queue up the following bug fixes to 4.3.x, 4.2.x, 4.1.x, and 3.18.x -stable, respectively. Thanks! ----Next_Part(Fri_Nov_13_16_38_08_2015_159)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_43.mbox" RnJvbSAyMTJmMjYzOTMwZWJjMTAyMGFkMTJkZDBmYTUyYTA1ODU5MjcwOWU4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gUGF1bCBNYWxveSA8am9uLm1hbG95QGVyaWNzc29uLmNv bT4KRGF0ZTogV2VkLCAyOCBPY3QgMjAxNSAxMzowOTo1MyAtMDQwMApTdWJqZWN0OiBbUEFUQ0gg MDEvMTddIHRpcGM6IGxpbmVhcml6ZSBhcnJpdmluZyBOQU1FX0RJU1RSIGFuZCBMSU5LX1BST1RP CiBidWZmZXJzCgpbIFVwc3RyZWFtIGNvbW1pdCA1Y2JiMjhhNGJmNjVjN2U0ZGFhNmMyNWI2NTFm ZWQ4ZWI4ODhjNjIwIF0KClRlc3Rpbmcgb2YgdGhlIG5ldyBVRFAgYmVhcmVyIGhhcyByZXZlYWxl ZCB0aGF0IHJlY2VwdGlvbiBvZgpOQU1FX0RJU1RSSUJVVE9SLCBMSU5LX1BST1RPQ09ML1JFU0VU IGFuZCBMSU5LX1BST1RPQ09ML0FDVElWQVRFCm1lc3NhZ2UgYnVmZmVycyBpcyBub3QgcHJlcGFy ZWQgZm9yIHRoZSBjYXNlIHRoYXQgdGhvc2UgbWF5IGJlCm5vbi1saW5lYXIuCgpXZSBub3cgbGlu ZWFyaXplIGFsbCBzdWNoIGJ1ZmZlcnMgYmVmb3JlIHRoZXkgYXJlIGRlbGl2ZXJlZCB1cCB0byB0 aGUKZ2VuZXJpYyByZWNlcHRpb24gbGF5ZXIuCgpJbiBvcmRlciBmb3IgdGhlIGNvbW1pdCB0byBh cHBseSBjbGVhbmx5IHRvICduZXQnIGFuZCAnc3RhYmxlJywgd2UgZG8KdGhlIGNoYW5nZSBpbiB0 aGUgZnVuY3Rpb24gdGlwY191ZHBfcmVjdigpIGZvciBub3cuIExhdGVyLCB3ZSB3aWxsIHBvc3QK YSBjb21taXQgdG8gJ25ldC1uZXh0JyBtb3ZpbmcgdGhlIGxpbmVhcml6YXRpb24gdG8gZ2VuZXJp YyBjb2RlLCBpbgp0aXBjX25hbWVkX3JjdigpIGFuZCB0aXBjX2xpbmtfcHJvdG9fcmN2KCkuCgpG aXhlczogY29tbWl0IGQwZjkxOTM4YmVkZSAoInRpcGM6IGFkZCBpcC91ZHAgbWVkaWEgdHlwZSIp ClNpZ25lZC1vZmYtYnk6IEpvbiBNYWxveSA8am9uLm1hbG95QGVyaWNzc29uLmNvbT4KU2lnbmVk LW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC90 aXBjL3VkcF9tZWRpYS5jIHwgNSArKysrKwogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygr KQoKZGlmZiAtLWdpdCBhL25ldC90aXBjL3VkcF9tZWRpYS5jIGIvbmV0L3RpcGMvdWRwX21lZGlh LmMKaW5kZXggNmU2NDhkOS4uY2Q3YzVmMSAxMDA2NDQKLS0tIGEvbmV0L3RpcGMvdWRwX21lZGlh LmMKKysrIGIvbmV0L3RpcGMvdWRwX21lZGlhLmMKQEAgLTQ4LDYgKzQ4LDcgQEAKICNpbmNsdWRl IDxsaW51eC90aXBjX25ldGxpbmsuaD4KICNpbmNsdWRlICJjb3JlLmgiCiAjaW5jbHVkZSAiYmVh cmVyLmgiCisjaW5jbHVkZSAibXNnLmgiCiAKIC8qIElBTkEgYXNzaWduZWQgVURQIHBvcnQgKi8K ICNkZWZpbmUgVURQX1BPUlRfREVGQVVMVAk2MTE4CkBAIC0yMjIsNiArMjIzLDEwIEBAIHN0YXRp YyBpbnQgdGlwY191ZHBfcmVjdihzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2Ip CiB7CiAJc3RydWN0IHVkcF9iZWFyZXIgKnViOwogCXN0cnVjdCB0aXBjX2JlYXJlciAqYjsKKwlp bnQgdXNyID0gbXNnX3VzZXIoYnVmX21zZyhza2IpKTsKKworCWlmICgodXNyID09IExJTktfUFJP VE9DT0wpIHx8ICh1c3IgPT0gTkFNRV9ESVNUUklCVVRPUikpCisJCXNrYl9saW5lYXJpemUoc2ti KTsKIAogCXViID0gcmN1X2RlcmVmZXJlbmNlX3NrX3VzZXJfZGF0YShzayk7CiAJaWYgKCF1Yikg ewotLSAKMi40LjEKCgpGcm9tIGEwNGRiODY1OWI0MTQxM2I5ZWY2NzUxYjE0ODdjOTZmNGZlNWM4 YzEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEZsb3JpYW4gRmFpbmVsbGkgPGYuZmFp bmVsbGlAZ21haWwuY29tPgpEYXRlOiBUaHUsIDI5IE9jdCAyMDE1IDE4OjExOjM1IC0wNzAwClN1 YmplY3Q6IFtQQVRDSCAwMi8xN10gbmV0OiBiY21nZW5ldDogU29mdHdhcmUgcmVzZXQgRVBIWSBh ZnRlciBwb3dlciBvbgoKWyBVcHN0cmVhbSBjb21taXQgNWRiZWJiYjQ0YTZhZDk0YWFiMmNkMWE0 NmY3Njc2ZjI1NTQwM2Y2NCBdCgpUaGUgRVBIWSBvbiBHRU5FVCB2MS0+djMgaXMgZXh0cmVtZWx5 IGZpbmlja3ksIGFuZCB3aWxsIHNob3cgb2NjYXNpb25hbApmYWlsdXJlcyBiYXNlZCBvbiB0aGUg dGltaW5nIGFuZCByZXNldCBzZXF1ZW5jZSwgcmFuZ2luZyBmcm9tIGR1cGxpY2F0ZQpwYWNrZXRz LCB0byBleHRyZW1lbHkgaGlnaCBsYXRlbmNpZXMuCgpQZXJmb3JtIGFuIGFkZGl0aW9uYWwgc29m dHdhcmUgcmVzZXQsIGFuZCByZS1jb25maWd1cmF0aW9uIHRvIG1ha2Ugc3VyZSBpdCBpcwppbiBh IGNvbnNpc3RlbnQgYW5kIHdvcmtpbmcgc3RhdGUuCgpGaXhlczogNmFjM2NlODI5NWU2ICgibmV0 OiBiY21nZW5ldDogUmVtb3ZlIGV4Y2Vzc2l2ZSBQSFkgcmVzZXQiKQpTaWduZWQtb2ZmLWJ5OiBG bG9yaWFuIEZhaW5lbGxpIDxmLmZhaW5lbGxpQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2 aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVy bmV0L2Jyb2FkY29tL2dlbmV0L2JjbWdlbmV0LmMgfCAgNCArKystCiBkcml2ZXJzL25ldC9ldGhl cm5ldC9icm9hZGNvbS9nZW5ldC9iY21nZW5ldC5oIHwgIDEgKwogZHJpdmVycy9uZXQvZXRoZXJu ZXQvYnJvYWRjb20vZ2VuZXQvYmNtbWlpLmMgICB8IDE4ICsrKysrKysrKysrKysrKysrKwogMyBm aWxlcyBjaGFuZ2VkLCAyMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vZ2VuZXQvYmNtZ2VuZXQuYyBiL2RyaXZl cnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2dlbmV0L2JjbWdlbmV0LmMKaW5kZXggMTgwNTU0MS4u NWUzY2Q3NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vZ2VuZXQv YmNtZ2VuZXQuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9nZW5ldC9iY21n ZW5ldC5jCkBAIC05MDcsOCArOTA3LDEwIEBAIHN0YXRpYyB2b2lkIGJjbWdlbmV0X3Bvd2VyX3Vw KHN0cnVjdCBiY21nZW5ldF9wcml2ICpwcml2LAogCX0KIAogCWJjbWdlbmV0X2V4dF93cml0ZWwo cHJpdiwgcmVnLCBFWFRfRVhUX1BXUl9NR01UKTsKLQlpZiAobW9kZSA9PSBHRU5FVF9QT1dFUl9Q QVNTSVZFKQorCWlmIChtb2RlID09IEdFTkVUX1BPV0VSX1BBU1NJVkUpIHsKIAkJYmNtZ2VuZXRf cGh5X3Bvd2VyX3NldChwcml2LT5kZXYsIHRydWUpOworCQliY21nZW5ldF9taWlfcmVzZXQocHJp di0+ZGV2KTsKKwl9CiB9CiAKIC8qIGlvY3RsIGhhbmRsZSBzcGVjaWFsIGNvbW1hbmRzIHRoYXQg YXJlIG5vdCBwcmVzZW50IGluIGV0aHRvb2wuICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9l dGhlcm5ldC9icm9hZGNvbS9nZW5ldC9iY21nZW5ldC5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQv YnJvYWRjb20vZ2VuZXQvYmNtZ2VuZXQuaAppbmRleCA3Mjk5ZDEwLi5jNzM5ZjdlIDEwMDY0NAot LS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9nZW5ldC9iY21nZW5ldC5oCisrKyBi L2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2dlbmV0L2JjbWdlbmV0LmgKQEAgLTY3NCw2 ICs2NzQsNyBAQCBpbnQgYmNtZ2VuZXRfbWlpX2luaXQoc3RydWN0IG5ldF9kZXZpY2UgKmRldik7 CiBpbnQgYmNtZ2VuZXRfbWlpX2NvbmZpZyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KTsKIGludCBi Y21nZW5ldF9taWlfcHJvYmUoc3RydWN0IG5ldF9kZXZpY2UgKmRldik7CiB2b2lkIGJjbWdlbmV0 X21paV9leGl0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpOwordm9pZCBiY21nZW5ldF9taWlfcmVz ZXQoc3RydWN0IG5ldF9kZXZpY2UgKmRldik7CiB2b2lkIGJjbWdlbmV0X3BoeV9wb3dlcl9zZXQo c3RydWN0IG5ldF9kZXZpY2UgKmRldiwgYm9vbCBlbmFibGUpOwogdm9pZCBiY21nZW5ldF9taWlf c2V0dXAoc3RydWN0IG5ldF9kZXZpY2UgKmRldik7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0 L2V0aGVybmV0L2Jyb2FkY29tL2dlbmV0L2JjbW1paS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQv YnJvYWRjb20vZ2VuZXQvYmNtbWlpLmMKaW5kZXggYzhhZmZhZC4uOGJkZmU1MyAxMDA2NDQKLS0t IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vZ2VuZXQvYmNtbWlpLmMKKysrIGIvZHJp dmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vZ2VuZXQvYmNtbWlpLmMKQEAgLTE2Myw2ICsxNjMs NyBAQCB2b2lkIGJjbWdlbmV0X21paV9zZXR1cChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogCXBo eV9wcmludF9zdGF0dXMocGh5ZGV2KTsKIH0KIAorCiBzdGF0aWMgaW50IGJjbWdlbmV0X2ZpeGVk X3BoeV9saW5rX3VwZGF0ZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAogCQkJCQkgIHN0cnVjdCBm aXhlZF9waHlfc3RhdHVzICpzdGF0dXMpCiB7CkBAIC0xNzIsNiArMTczLDIyIEBAIHN0YXRpYyBp bnQgYmNtZ2VuZXRfZml4ZWRfcGh5X2xpbmtfdXBkYXRlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYs CiAJcmV0dXJuIDA7CiB9CiAKKy8qIFBlcmZvcm0gYSB2b2x1bnRhcnkgUEhZIHNvZnR3YXJlIHJl c2V0LCBzaW5jZSB0aGUgRVBIWSBpcyB2ZXJ5IGZpbmlja3kgYWJvdXQKKyAqIG5vdCBkb2luZyBp dCBhbmQgd2lsbCBzdGFydCBjb3JydXB0aW5nIHBhY2tldHMKKyAqLwordm9pZCBiY21nZW5ldF9t aWlfcmVzZXQoc3RydWN0IG5ldF9kZXZpY2UgKmRldikKK3sKKwlzdHJ1Y3QgYmNtZ2VuZXRfcHJp diAqcHJpdiA9IG5ldGRldl9wcml2KGRldik7CisKKwlpZiAoR0VORVRfSVNfVjQocHJpdikpCisJ CXJldHVybjsKKworCWlmIChwcml2LT5waHlkZXYpIHsKKwkJcGh5X2luaXRfaHcocHJpdi0+cGh5 ZGV2KTsKKwkJcGh5X3N0YXJ0X2FuZWcocHJpdi0+cGh5ZGV2KTsKKwl9Cit9CisKIHZvaWQgYmNt Z2VuZXRfcGh5X3Bvd2VyX3NldChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBib29sIGVuYWJsZSkK IHsKIAlzdHJ1Y3QgYmNtZ2VuZXRfcHJpdiAqcHJpdiA9IG5ldGRldl9wcml2KGRldik7CkBAIC0y MTQsNiArMjMxLDcgQEAgc3RhdGljIHZvaWQgYmNtZ2VuZXRfaW50ZXJuYWxfcGh5X3NldHVwKHN0 cnVjdCBuZXRfZGV2aWNlICpkZXYpCiAJcmVnID0gYmNtZ2VuZXRfZXh0X3JlYWRsKHByaXYsIEVY VF9FWFRfUFdSX01HTVQpOwogCXJlZyB8PSBFWFRfUFdSX0ROX0VOX0xEOwogCWJjbWdlbmV0X2V4 dF93cml0ZWwocHJpdiwgcmVnLCBFWFRfRVhUX1BXUl9NR01UKTsKKwliY21nZW5ldF9taWlfcmVz ZXQoZGV2KTsKIH0KIAogc3RhdGljIHZvaWQgYmNtZ2VuZXRfbW9jYV9waHlfc2V0dXAoc3RydWN0 IGJjbWdlbmV0X3ByaXYgKnByaXYpCi0tIAoyLjQuMQoKCkZyb20gNjY3NjcyYjMzZDEzZDcxYjky MjQ0YmJkNDEwZjBhNDEyMmFmYTQyOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSnVs aWFuIEFuYXN0YXNvdiA8amFAc3NpLmJnPgpEYXRlOiBGcmksIDMwIE9jdCAyMDE1IDEwOjIzOjMz ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwMy8xN10gaXB2NDogZml4IHRvIG5vdCByZW1vdmUgbG9j YWwgcm91dGUgb24gbGluayBkb3duCgpbIFVwc3RyZWFtIGNvbW1pdCA0ZjgyM2RlZmRkNWIxMDZh NWU4OTc0NWVlOGIxNjNjNzE4NTVkZTFlIF0KCldoZW4gZmliX25ldGRldl9ldmVudCBjYWxscyBm aWJfZGlzYWJsZV9pcCBvbiBORVRERVZfRE9XTiBldmVudAp3ZSBzaG91bGQgbm90IGRlbGV0ZSB0 aGUgbG9jYWwgcm91dGVzIGlmIHRoZSBsb2NhbCBhZGRyZXNzCmlzIHN0aWxsIHByZXNlbnQuIFRo ZSBjb25mdXNpb24gY29tZXMgZnJvbSB0aGUgZmFjdCB0aGF0IGJvdGgKZmliX25ldGRldl9ldmVu dCBhbmQgZmliX2luZXRhZGRyX2V2ZW50IHVzZSB0aGUgTkVUREVWX0RPV04KY29uc3RhbnQuIEZp eCBpdCBieSByZXR1cm5pbmcgYmFjayB0aGUgdmFyaWFibGUgJ2ZvcmNlJy4KClN0ZXBzIHRvIHJl cHJvZHVjZToKbW9kcHJvYmUgZHVtbXkKaWZjb25maWcgZHVtbXkwIDE5Mi4xNjguMTY4LjEgdXAK aWZjb25maWcgZHVtbXkwIGRvd24KaXAgcm91dGUgbGlzdCB0YWJsZSBsb2NhbCB8IGdyZXAgZHVt bXkgfCBncmVwIGhvc3QKbG9jYWwgMTkyLjE2OC4xNjguMSBkZXYgZHVtbXkwICBwcm90byBrZXJu ZWwgIHNjb3BlIGhvc3QgIHNyYyAxOTIuMTY4LjE2OC4xCgpGaXhlczogOGEzZDAzMTY2ZjE5ICgi bmV0OiB0cmFjayBsaW5rLXN0YXR1cyBvZiBpcHY0IG5leHRob3BzIikKU2lnbmVkLW9mZi1ieTog SnVsaWFuIEFuYXN0YXNvdiA8amFAc3NpLmJnPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxs ZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogaW5jbHVkZS9uZXQvaXBfZmliLmggICAgIHwg IDIgKy0KIG5ldC9pcHY0L2ZpYl9mcm9udGVuZC5jICB8IDEzICsrKysrKystLS0tLS0KIG5ldC9p cHY0L2ZpYl9zZW1hbnRpY3MuYyB8IDExICsrKysrKysrLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDE2 IGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0 L2lwX2ZpYi5oIGIvaW5jbHVkZS9uZXQvaXBfZmliLmgKaW5kZXggNzI3ZDZlOS4uOTY1ZmE1YiAx MDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvaXBfZmliLmgKKysrIGIvaW5jbHVkZS9uZXQvaXBfZmli LmgKQEAgLTMxNyw3ICszMTcsNyBAQCB2b2lkIGZpYl9mbHVzaF9leHRlcm5hbChzdHJ1Y3QgbmV0 ICpuZXQpOwogCiAvKiBFeHBvcnRlZCBieSBmaWJfc2VtYW50aWNzLmMgKi8KIGludCBpcF9maWJf Y2hlY2tfZGVmYXVsdChfX2JlMzIgZ3csIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpOwotaW50IGZp Yl9zeW5jX2Rvd25fZGV2KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHVuc2lnbmVkIGxvbmcgZXZl bnQpOworaW50IGZpYl9zeW5jX2Rvd25fZGV2KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHVuc2ln bmVkIGxvbmcgZXZlbnQsIGJvb2wgZm9yY2UpOwogaW50IGZpYl9zeW5jX2Rvd25fYWRkcihzdHJ1 Y3QgbmV0ICpuZXQsIF9fYmUzMiBsb2NhbCk7CiBpbnQgZmliX3N5bmNfdXAoc3RydWN0IG5ldF9k ZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IG5oX2ZsYWdzKTsKIHZvaWQgZmliX3NlbGVjdF9tdWx0 aXBhdGgoc3RydWN0IGZpYl9yZXN1bHQgKnJlcyk7CmRpZmYgLS1naXQgYS9uZXQvaXB2NC9maWJf ZnJvbnRlbmQuYyBiL25ldC9pcHY0L2ZpYl9mcm9udGVuZC5jCmluZGV4IDY5MGJjYmMuLjQ1N2Iy Y2QgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L2ZpYl9mcm9udGVuZC5jCisrKyBiL25ldC9pcHY0L2Zp Yl9mcm9udGVuZC5jCkBAIC0xMTEwLDkgKzExMTAsMTAgQEAgc3RhdGljIHZvaWQgbmxfZmliX2xv b2t1cF9leGl0KHN0cnVjdCBuZXQgKm5ldCkKIAluZXQtPmlwdjQuZmlibmwgPSBOVUxMOwogfQog Ci1zdGF0aWMgdm9pZCBmaWJfZGlzYWJsZV9pcChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCB1bnNp Z25lZCBsb25nIGV2ZW50KQorc3RhdGljIHZvaWQgZmliX2Rpc2FibGVfaXAoc3RydWN0IG5ldF9k ZXZpY2UgKmRldiwgdW5zaWduZWQgbG9uZyBldmVudCwKKwkJCSAgIGJvb2wgZm9yY2UpCiB7Ci0J aWYgKGZpYl9zeW5jX2Rvd25fZGV2KGRldiwgZXZlbnQpKQorCWlmIChmaWJfc3luY19kb3duX2Rl dihkZXYsIGV2ZW50LCBmb3JjZSkpCiAJCWZpYl9mbHVzaChkZXZfbmV0KGRldikpOwogCXJ0X2Nh Y2hlX2ZsdXNoKGRldl9uZXQoZGV2KSk7CiAJYXJwX2lmZG93bihkZXYpOwpAQCAtMTE0MCw3ICsx MTQxLDcgQEAgc3RhdGljIGludCBmaWJfaW5ldGFkZHJfZXZlbnQoc3RydWN0IG5vdGlmaWVyX2Js b2NrICp0aGlzLCB1bnNpZ25lZCBsb25nIGV2ZW50LAogCQkJLyogTGFzdCBhZGRyZXNzIHdhcyBk ZWxldGVkIGZyb20gdGhpcyBpbnRlcmZhY2UuCiAJCQkgKiBEaXNhYmxlIElQLgogCQkJICovCi0J CQlmaWJfZGlzYWJsZV9pcChkZXYsIGV2ZW50KTsKKwkJCWZpYl9kaXNhYmxlX2lwKGRldiwgZXZl bnQsIHRydWUpOwogCQl9IGVsc2UgewogCQkJcnRfY2FjaGVfZmx1c2goZGV2X25ldChkZXYpKTsK IAkJfQpAQCAtMTE1Nyw3ICsxMTU4LDcgQEAgc3RhdGljIGludCBmaWJfbmV0ZGV2X2V2ZW50KHN0 cnVjdCBub3RpZmllcl9ibG9jayAqdGhpcywgdW5zaWduZWQgbG9uZyBldmVudCwgdm8KIAl1bnNp Z25lZCBpbnQgZmxhZ3M7CiAKIAlpZiAoZXZlbnQgPT0gTkVUREVWX1VOUkVHSVNURVIpIHsKLQkJ ZmliX2Rpc2FibGVfaXAoZGV2LCBldmVudCk7CisJCWZpYl9kaXNhYmxlX2lwKGRldiwgZXZlbnQs IHRydWUpOwogCQlydF9mbHVzaF9kZXYoZGV2KTsKIAkJcmV0dXJuIE5PVElGWV9ET05FOwogCX0K QEAgLTExNzgsMTQgKzExNzksMTQgQEAgc3RhdGljIGludCBmaWJfbmV0ZGV2X2V2ZW50KHN0cnVj dCBub3RpZmllcl9ibG9jayAqdGhpcywgdW5zaWduZWQgbG9uZyBldmVudCwgdm8KIAkJcnRfY2Fj aGVfZmx1c2gobmV0KTsKIAkJYnJlYWs7CiAJY2FzZSBORVRERVZfRE9XTjoKLQkJZmliX2Rpc2Fi bGVfaXAoZGV2LCBldmVudCk7CisJCWZpYl9kaXNhYmxlX2lwKGRldiwgZXZlbnQsIGZhbHNlKTsK IAkJYnJlYWs7CiAJY2FzZSBORVRERVZfQ0hBTkdFOgogCQlmbGFncyA9IGRldl9nZXRfZmxhZ3Mo ZGV2KTsKIAkJaWYgKGZsYWdzICYgKElGRl9SVU5OSU5HIHwgSUZGX0xPV0VSX1VQKSkKIAkJCWZp Yl9zeW5jX3VwKGRldiwgUlROSF9GX0xJTktET1dOKTsKIAkJZWxzZQotCQkJZmliX3N5bmNfZG93 bl9kZXYoZGV2LCBldmVudCk7CisJCQlmaWJfc3luY19kb3duX2RldihkZXYsIGV2ZW50LCBmYWxz ZSk7CiAJCS8qIGZhbGwgdGhyb3VnaCAqLwogCWNhc2UgTkVUREVWX0NIQU5HRU1UVToKIAkJcnRf Y2FjaGVfZmx1c2gobmV0KTsKZGlmZiAtLWdpdCBhL25ldC9pcHY0L2ZpYl9zZW1hbnRpY3MuYyBi L25ldC9pcHY0L2ZpYl9zZW1hbnRpY3MuYwppbmRleCAwNjRiZDNjLi4yYWE1YjVlIDEwMDY0NAot LS0gYS9uZXQvaXB2NC9maWJfc2VtYW50aWNzLmMKKysrIGIvbmV0L2lwdjQvZmliX3NlbWFudGlj cy5jCkBAIC0xMjgxLDcgKzEyODEsMTMgQEAgaW50IGZpYl9zeW5jX2Rvd25fYWRkcihzdHJ1Y3Qg bmV0ICpuZXQsIF9fYmUzMiBsb2NhbCkKIAlyZXR1cm4gcmV0OwogfQogCi1pbnQgZmliX3N5bmNf ZG93bl9kZXYoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgdW5zaWduZWQgbG9uZyBldmVudCkKKy8q IEV2ZW50ICAgICAgICAgICAgICBmb3JjZSBGbGFncyAgICAgICAgICAgRGVzY3JpcHRpb24KKyAq IE5FVERFVl9DSEFOR0UgICAgICAwICAgICBMSU5LRE9XTiAgICAgICAgQ2FycmllciBPRkYsIG5v dCBmb3Igc2NvcGUgaG9zdAorICogTkVUREVWX0RPV04gICAgICAgIDAgICAgIExJTktET1dOfERF QUQgICBMaW5rIGRvd24sIG5vdCBmb3Igc2NvcGUgaG9zdAorICogTkVUREVWX0RPV04gICAgICAg IDEgICAgIExJTktET1dOfERFQUQgICBMYXN0IGFkZHJlc3MgcmVtb3ZlZAorICogTkVUREVWX1VO UkVHSVNURVIgIDEgICAgIExJTktET1dOfERFQUQgICBEZXZpY2UgcmVtb3ZlZAorICovCitpbnQg ZmliX3N5bmNfZG93bl9kZXYoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgdW5zaWduZWQgbG9uZyBl dmVudCwgYm9vbCBmb3JjZSkKIHsKIAlpbnQgcmV0ID0gMDsKIAlpbnQgc2NvcGUgPSBSVF9TQ09Q RV9OT1dIRVJFOwpAQCAtMTI5MCw4ICsxMjk2LDcgQEAgaW50IGZpYl9zeW5jX2Rvd25fZGV2KHN0 cnVjdCBuZXRfZGV2aWNlICpkZXYsIHVuc2lnbmVkIGxvbmcgZXZlbnQpCiAJc3RydWN0IGhsaXN0 X2hlYWQgKmhlYWQgPSAmZmliX2luZm9fZGV2aGFzaFtoYXNoXTsKIAlzdHJ1Y3QgZmliX25oICpu aDsKIAotCWlmIChldmVudCA9PSBORVRERVZfVU5SRUdJU1RFUiB8fAotCSAgICBldmVudCA9PSBO RVRERVZfRE9XTikKKwlpZiAoZm9yY2UpCiAJCXNjb3BlID0gLTE7CiAKIAlobGlzdF9mb3JfZWFj aF9lbnRyeShuaCwgaGVhZCwgbmhfaGFzaCkgewotLSAKMi40LjEKCgpGcm9tIDc5YzFiNzc5NjIx YTM0NDg3YWFmOGE3ZmExZTQ5OWMwNGZmZjVjNzkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IEp1bGlhbiBBbmFzdGFzb3YgPGphQHNzaS5iZz4KRGF0ZTogRnJpLCAzMCBPY3QgMjAxNSAx MDoyMzozNCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDQvMTddIGlwdjQ6IHVwZGF0ZSBSVE5IX0Zf TElOS0RPV04gZmxhZyBvbiBVUCBldmVudAoKWyBVcHN0cmVhbSBjb21taXQgYzliMzI5MmVlYjUy YzY4MzRlOTcyZWI1YjhmZTM4OTE0NzcxZWQxMiBdCgpXaGVuIG5leHRob3AgaXMgcGFydCBvZiBt dWx0aXBhdGggcm91dGUgd2Ugc2hvdWxkIGNsZWFyIHRoZQpMSU5LRE9XTiBmbGFnIHdoZW4gbGlu ayBnb2VzIFVQIG9yIHdoZW4gZmlyc3QgYWRkcmVzcyBpcyBhZGRlZC4KVGhpcyBpcyBuZWVkZWQg YmVjYXVzZSB3ZSBhbHdheXMgc2V0IExJTktET1dOIGZsYWcgd2hlbiBERUFEIGZsYWcKd2FzIHNl dCBidXQgbm93IG9uIFVQIHRoZSBuZXh0aG9wIGlzIG5vdCBkZWFkIGFueW1vcmUuIEV4YW1wbGVz IHdoZW4KTElOS0RPV04gYml0IGNhbiBiZSBmb3Jnb3R0ZW4gd2hlbiBubyBORVRERVZfQ0hBTkdF IGlzIGRlbGl2ZXJlZDoKCi0gbGluayBnb2VzIGRvd24gKExJTktET1dOIGlzIHNldCksIHRoZW4g bGluayBnb2VzIFVQIGFuZCBkZXZpY2UKc2hvd3MgY2FycmllciBPSyBidXQgTElOS0RPV04gcmVt YWlucyBzZXQKCi0gbGFzdCBhZGRyZXNzIGlzIGRlbGV0ZWQgKExJTktET1dOIGlzIHNldCksIHRo ZW4gYWRkcmVzcyBpcwphZGRlZCBhbmQgZGV2aWNlIHNob3dzIGNhcnJpZXIgT0sgYnV0IExJTktE T1dOIHJlbWFpbnMgc2V0CgpTdGVwcyB0byByZXByb2R1Y2U6Cm1vZHByb2JlIGR1bW15CmlmY29u ZmlnIGR1bW15MCAxOTIuMTY4LjE2OC4xIHVwCgpoZXJlIGFkZCBhIG11bHRpcGF0aCByb3V0ZSB3 aGVyZSBvbmUgbmV4dGhvcCBpcyBmb3IgZHVtbXkwOgoKaXAgcm91dGUgYWRkIDEuMi4zLjQgbmV4 dGhvcCBkdW1teTAgbmV4dGhvcCBTT01FX09USEVSX0RFVklDRQppZmNvbmZpZyBkdW1teTAgZG93 bgppZmNvbmZpZyBkdW1teTAgdXAKCm5vdyBpcCByb3V0ZSBzaG93cyBuZXh0aG9wIHRoYXQgaXMg bm90IGRlYWQuIE5vdyBzZXQgdGhlIHN5c2N0bCB2YXI6CgplY2hvIDEgPiAvcHJvYy9zeXMvbmV0 L2lwdjQvY29uZi9kdW1teTAvaWdub3JlX3JvdXRlc193aXRoX2xpbmtkb3duCgpub3cgaXAgcm91 dGUgd2lsbCBzaG93IGEgZGVhZCBuZXh0aG9wIGJlY2F1c2UgdGhlIGZvcmdvdHRlbgpSVE5IX0Zf TElOS0RPV04gaXMgcHJvcGFnYXRlZCBhcyBSVE5IX0ZfREVBRC4KCkZpeGVzOiA4YTNkMDMxNjZm MTkgKCJuZXQ6IHRyYWNrIGxpbmstc3RhdHVzIG9mIGlwdjQgbmV4dGhvcHMiKQpTaWduZWQtb2Zm LWJ5OiBKdWxpYW4gQW5hc3Rhc292IDxqYUBzc2kuYmc+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMu IE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2NC9maWJfc2VtYW50aWNz LmMgfCA3ICsrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKykKCmRpZmYgLS1n aXQgYS9uZXQvaXB2NC9maWJfc2VtYW50aWNzLmMgYi9uZXQvaXB2NC9maWJfc2VtYW50aWNzLmMK aW5kZXggMmFhNWI1ZS4uZTk2NmY4NSAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvZmliX3NlbWFudGlj cy5jCisrKyBiL25ldC9pcHY0L2ZpYl9zZW1hbnRpY3MuYwpAQCAtMTQ0NSw2ICsxNDQ1LDEzIEBA IGludCBmaWJfc3luY191cChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgbmhf ZmxhZ3MpCiAJaWYgKCEoZGV2LT5mbGFncyAmIElGRl9VUCkpCiAJCXJldHVybiAwOwogCisJaWYg KG5oX2ZsYWdzICYgUlROSF9GX0RFQUQpIHsKKwkJdW5zaWduZWQgaW50IGZsYWdzID0gZGV2X2dl dF9mbGFncyhkZXYpOworCisJCWlmIChmbGFncyAmIChJRkZfUlVOTklORyB8IElGRl9MT1dFUl9V UCkpCisJCQluaF9mbGFncyB8PSBSVE5IX0ZfTElOS0RPV047CisJfQorCiAJcHJldl9maSA9IE5V TEw7CiAJaGFzaCA9IGZpYl9kZXZpbmRleF9oYXNoZm4oZGV2LT5pZmluZGV4KTsKIAloZWFkID0g JmZpYl9pbmZvX2Rldmhhc2hbaGFzaF07Ci0tIAoyLjQuMQoKCkZyb20gMjJjNmEwYjg3MzJmNGI0 MjZmNjRmMThjYTkwOTcyODhjZDk5NmE2NCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog UGhpbCBSZWlkIDxwcmVpZEBlbGVjdHJvbWFnLmNvbS5hdT4KRGF0ZTogRnJpLCAzMCBPY3QgMjAx NSAxNjo0Mzo1NSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMDUvMTddIHN0bW1hYzogQ29ycmVjdGx5 IHJlcG9ydCBQVFAgY2FwYWJpbGl0aWVzLgoKWyBVcHN0cmVhbSBjb21taXQgZTZkYmUxZWIyZGIw ZDdhMTQ5OTFjMDYyNzhkZDMwMzBjNDVmYjgyNSBdCgpwcml2LT5od3RzXypfZW4gaW5kaWNhdGUg aWYgdGltZXN0YW1waW5nIGlzIGVuYWJsZWQvZGlzYWJsZWQgYXQgcnVuCnRpbWUuIEJ1dCAgcHJp di0+ZG1hX2NhcC50aW1lX3N0YW1wICBhbmQgcHJpdi0+ZG1hX2NhcC5hdGltZV9zdGFtcAppbmRp Y2F0ZXMgSFcgaXMgc3VwcG9ydCBmb3IgUFRQdjEvUFRQdjIuCgpTaWduZWQtb2ZmLWJ5OiBQaGls IFJlaWQgPHByZWlkQGVsZWN0cm9tYWcuY29tLmF1PgpBY2tlZC1ieTogUmljaGFyZCBDb2NocmFu IDxyaWNoYXJkY29jaHJhbkBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxl ciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3Jv L3N0bW1hYy9zdG1tYWNfZXRodG9vbC5jIHwgNyArKysrKy0tCiAxIGZpbGUgY2hhbmdlZCwgNSBp bnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0 aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19ldGh0b29sLmMgYi9kcml2ZXJzL25ldC9ldGhl cm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXRodG9vbC5jCmluZGV4IDc3MWNkYTIuLjJlNTFi ODEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1h Y19ldGh0b29sLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3Rt bWFjX2V0aHRvb2wuYwpAQCAtNzIxLDEwICs3MjEsMTMgQEAgc3RhdGljIGludCBzdG1tYWNfZ2V0 X3RzX2luZm8oc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKIHsKIAlzdHJ1Y3Qgc3RtbWFjX3ByaXYg KnByaXYgPSBuZXRkZXZfcHJpdihkZXYpOwogCi0JaWYgKChwcml2LT5od3RzX3R4X2VuKSAmJiAo cHJpdi0+aHd0c19yeF9lbikpIHsKKwlpZiAoKHByaXYtPmRtYV9jYXAudGltZV9zdGFtcCB8fCBw cml2LT5kbWFfY2FwLmF0aW1lX3N0YW1wKSkgewogCi0JCWluZm8tPnNvX3RpbWVzdGFtcGluZyA9 IFNPRl9USU1FU1RBTVBJTkdfVFhfSEFSRFdBUkUgfAorCQlpbmZvLT5zb190aW1lc3RhbXBpbmcg PSBTT0ZfVElNRVNUQU1QSU5HX1RYX1NPRlRXQVJFIHwKKwkJCQkJU09GX1RJTUVTVEFNUElOR19U WF9IQVJEV0FSRSB8CisJCQkJCVNPRl9USU1FU1RBTVBJTkdfUlhfU09GVFdBUkUgfAogCQkJCQlT T0ZfVElNRVNUQU1QSU5HX1JYX0hBUkRXQVJFIHwKKwkJCQkJU09GX1RJTUVTVEFNUElOR19TT0ZU V0FSRSB8CiAJCQkJCVNPRl9USU1FU1RBTVBJTkdfUkFXX0hBUkRXQVJFOwogCiAJCWlmIChwcml2 LT5wdHBfY2xvY2spCi0tIAoyLjQuMQoKCkZyb20gMjdjYzRhOTdhM2NkY2IzYjNkYWExMjY2Njdk NGU4NmM5YjAxNDkwOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQW5pIFNpbmhhIDxh bmlAYXJpc3RhLmNvbT4KRGF0ZTogRnJpLCAzMCBPY3QgMjAxNSAxNjo1NDozMSAtMDcwMApTdWJq ZWN0OiBbUEFUQ0ggMDYvMTddIGlwbXI6IGZpeCBwb3NzaWJsZSByYWNlIHJlc3VsdGluZyBmcm9t IGltcHJvcGVyIHVzYWdlCiBvZiBJUF9JTkNfU1RBVFNfQkgoKSBpbiBwcmVlbXB0aWJsZSBjb250 ZXh0LgoKWyBVcHN0cmVhbSBjb21taXQgNDRmNDlkZDhiNWE2MDY4NzBhMWYyMTEwMTUyMmEwZjlj NDQxNDc4NCBdCgpGaXhlcyB0aGUgZm9sbG93aW5nIGtlcm5lbCBCVUcgOgoKQlVHOiB1c2luZyBf X3RoaXNfY3B1X2FkZCgpIGluIHByZWVtcHRpYmxlIFswMDAwMDAwMF0gY29kZTogYmFzaC8yNzU4 CmNhbGxlciBpcyBfX3RoaXNfY3B1X3ByZWVtcHRfY2hlY2srMHgxMy8weDE1CkNQVTogMCBQSUQ6 IDI3NTggQ29tbTogYmFzaCBUYWludGVkOiBQICAgICAgICAgICBPICAgMy4xOC4xOSAjMgogZmZm ZmZmZmY4MTcwZWFjYSBmZmZmODgwMTEwZDFiNzg4IGZmZmZmZmZmODE0ODJiMmEgMDAwMDAwMDAw MDAwMDAwMAogMDAwMDAwMDAwMDAwMDAwMCBmZmZmODgwMTEwZDFiN2I4IGZmZmZmZmZmODEyMDEw YWUgZmZmZjg4MDAwN2NhYjgwMAogZmZmZjg4MDAxYTA2MDgwMCBmZmZmODgwMTNhODk5MTA4IGZm ZmY4ODAxMDhiODQyNDAgZmZmZjg4MDExMGQxYjdjOApDYWxsIFRyYWNlOgpbPGZmZmZmZmZmODE0 ODJiMmE+XSBkdW1wX3N0YWNrKzB4NTIvMHg4MApbPGZmZmZmZmZmODEyMDEwYWU+XSBjaGVja19w cmVlbXB0aW9uX2Rpc2FibGVkKzB4Y2UvMHhlMQpbPGZmZmZmZmZmODEyMDEwZDQ+XSBfX3RoaXNf Y3B1X3ByZWVtcHRfY2hlY2srMHgxMy8weDE1Cls8ZmZmZmZmZmY4MTQxOWQ2MD5dIGlwbXJfcXVl dWVfeG1pdCsweDY0Ny8weDcwYwpbPGZmZmZmZmZmODE0MWExNTQ+XSBpcF9tcl9mb3J3YXJkKzB4 MzJmLzB4MzRlCls8ZmZmZmZmZmY4MTQxYWY3Nj5dIGlwX21yb3V0ZV9zZXRzb2Nrb3B0KzB4ZTAz LzB4MTA4YwpbPGZmZmZmZmZmODEwNTUzZmM+XSA/IGdldF9wYXJlbnRfaXArMHgxMS8weDQyCls8 ZmZmZmZmZmY4MTBlNjk3ND5dID8gcG9sbHdha2UrMHg0ZC8weDUxCls8ZmZmZmZmZmY4MTA1OGFj MD5dID8gZGVmYXVsdF93YWtlX2Z1bmN0aW9uKzB4MC8weGYKWzxmZmZmZmZmZjgxMDU1M2ZjPl0g PyBnZXRfcGFyZW50X2lwKzB4MTEvMHg0MgpbPGZmZmZmZmZmODEwNjEzZDk+XSA/IF9fd2FrZV91 cF9jb21tb24rMHg0NS8weDc3Cls8ZmZmZmZmZmY4MTQ4NmVhOT5dID8gX3Jhd19zcGluX3VubG9j a19pcnFyZXN0b3JlKzB4MWQvMHgzMgpbPGZmZmZmZmZmODEwNjE4YmM+XSA/IF9fd2FrZV91cF9z eW5jX2tleSsweDRhLzB4NTMKWzxmZmZmZmZmZjgxMzlhNTE5Pl0gPyBzb2NrX2RlZl9yZWFkYWJs ZSsweDcxLzB4NzUKWzxmZmZmZmZmZjgxM2RkMjI2Pl0gZG9faXBfc2V0c29ja29wdCsweDlkLzB4 YjU1Cls8ZmZmZmZmZmY4MTQyOTgxOD5dID8gdW5peF9zZXFwYWNrZXRfc2VuZG1zZysweDNmLzB4 NDEKWzxmZmZmZmZmZjgxMzk2M2ZlPl0gPyBzb2NrX3NlbmRtc2crMHg2ZC8weDg2Cls8ZmZmZmZm ZmY4MTM5NTlkND5dID8gc29ja2ZkX2xvb2t1cF9saWdodCsweDEyLzB4NWQKWzxmZmZmZmZmZjgx Mzk2NTBhPl0gPyBTeVNfc2VuZHRvKzB4ZjMvMHgxMWIKWzxmZmZmZmZmZjgxMGQ1NzM4Pl0gPyBu ZXdfc3luY19yZWFkKzB4ODIvMHhhYQpbPGZmZmZmZmZmODEzZGRkMTk+XSBjb21wYXRfaXBfc2V0 c29ja29wdCsweDNiLzB4OTkKWzxmZmZmZmZmZjgxM2ZiMjRhPl0gY29tcGF0X3Jhd19zZXRzb2Nr b3B0KzB4MTEvMHgzMgpbPGZmZmZmZmZmODEzOTkwNTI+XSBjb21wYXRfc29ja19jb21tb25fc2V0 c29ja29wdCsweDE4LzB4MWYKWzxmZmZmZmZmZjgxM2M0ZDA1Pl0gY29tcGF0X1N5U19zZXRzb2Nr b3B0KzB4MWE5LzB4MWNmCls8ZmZmZmZmZmY4MTNjNDE0OT5dIGNvbXBhdF9TeVNfc29ja2V0Y2Fs bCsweDE4MC8weDFlMwpbPGZmZmZmZmZmODE0ODhlYTE+XSBjc3Rhcl9kaXNwYXRjaCsweDcvMHgx ZQoKU2lnbmVkLW9mZi1ieTogQW5pIFNpbmhhIDxhbmlAYXJpc3RhLmNvbT4KQWNrZWQtYnk6IEVy aWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4g TWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY0L2lwbXIuYyB8IDYgKysr LS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL25ldC9pcHY0L2lwbXIuYyBiL25ldC9pcHY0L2lwbXIuYwppbmRleCA4NjZlZTg5 Li44ZTgyMDNkIDEwMDY0NAotLS0gYS9uZXQvaXB2NC9pcG1yLmMKKysrIGIvbmV0L2lwdjQvaXBt ci5jCkBAIC0xNjgyLDggKzE2ODIsOCBAQCBzdGF0aWMgaW5saW5lIGludCBpcG1yX2ZvcndhcmRf ZmluaXNoKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYikKIHsKIAlzdHJ1Y3Qg aXBfb3B0aW9ucyAqb3B0ID0gJihJUENCKHNrYiktPm9wdCk7CiAKLQlJUF9JTkNfU1RBVFNfQkgo ZGV2X25ldChza2JfZHN0KHNrYiktPmRldiksIElQU1RBVFNfTUlCX09VVEZPUldEQVRBR1JBTVMp OwotCUlQX0FERF9TVEFUU19CSChkZXZfbmV0KHNrYl9kc3Qoc2tiKS0+ZGV2KSwgSVBTVEFUU19N SUJfT1VUT0NURVRTLCBza2ItPmxlbik7CisJSVBfSU5DX1NUQVRTKGRldl9uZXQoc2tiX2RzdChz a2IpLT5kZXYpLCBJUFNUQVRTX01JQl9PVVRGT1JXREFUQUdSQU1TKTsKKwlJUF9BRERfU1RBVFMo ZGV2X25ldChza2JfZHN0KHNrYiktPmRldiksIElQU1RBVFNfTUlCX09VVE9DVEVUUywgc2tiLT5s ZW4pOwogCiAJaWYgKHVubGlrZWx5KG9wdC0+b3B0bGVuKSkKIAkJaXBfZm9yd2FyZF9vcHRpb25z KHNrYik7CkBAIC0xNzQ1LDcgKzE3NDUsNyBAQCBzdGF0aWMgdm9pZCBpcG1yX3F1ZXVlX3htaXQo c3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgbXJfdGFibGUgKm1ydCwKIAkJICogdG8gYmxhY2tob2xl LgogCQkgKi8KIAotCQlJUF9JTkNfU1RBVFNfQkgoZGV2X25ldChkZXYpLCBJUFNUQVRTX01JQl9G UkFHRkFJTFMpOworCQlJUF9JTkNfU1RBVFMoZGV2X25ldChkZXYpLCBJUFNUQVRTX01JQl9GUkFH RkFJTFMpOwogCQlpcF9ydF9wdXQocnQpOwogCQlnb3RvIG91dF9mcmVlOwogCX0KLS0gCjIuNC4x CgoKRnJvbSAyMTdhN2FmMTE1MzJjMTJmYzE5MTY4MjMxMjE2MTYwY2JmOTJhZGM4IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Qmo9QzM9Qjhybj0yME1vcms/PSA8Ympv cm5AbW9yay5ubz4KRGF0ZTogU3VuLCAxIE5vdiAyMDE1IDAxOjM0OjUwICswMTAwClN1YmplY3Q6 IFtQQVRDSCAwNy8xN10gcW1pX3d3YW46IGZpeCBlbnRyeSBmb3IgSFAgbHQ0MTEyIExURS9IU1BB KyBHb2JpIDRHCiBNb2R1bGUKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3Bs YWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKClsgVXBz dHJlYW0gY29tbWl0IDcwOTEwNzkxNzMxYjU5NTYxNzFlMWJmY2FkNzA3NzY2YjhlMThmZWUgXQoK VGhlIGx0NDExMiBpcyBhIEhQIGJyYW5kZWQgSHVhd2VpIG1lOTA2ZSBtb2RlbS4gTGlrZSBvdGhl ciBIdWF3ZWkKbW9kZW1zLCBpdCBkb2VzIG5vdCBoYXZlIGEgZml4ZWQgaW50ZXJmYWNlIHRvIGZ1 bmN0aW9uIG1hcHBpbmcuCkluc3RlYWQgaXQgdXNlcyBhIEh1YXdlaSBzcGVjaWZpYyBzY2hlbWU6 IGZ1bmN0aW9ucyBhcmUgbWFwcGVkIGJ5CnN1YmNsYXNzIGFuZCBwcm90b2NvbC4KCkhvd2V2ZXIs IHRoZSBIUCB2ZW5kb3IgSUQgaXMgdXNlZCBmb3IgbW9kZW1zIGZyb20gbWFueSBkaWZmZXJlbnQK bWFudWZhY3R1cmVycyB1c2luZyBkaWZmZXJlbnQgc2NoZW1lcywgc28gd2UgY2Fubm90IGFwcGx5 IGEgZ2VuZXJpYwp2ZW5kb3IgcnVsZSBsaWtlIHdlIGRvIGZvciB0aGUgSHVhd2VpIHZlbmRvciBJ RC4KClJlcGxhY2UgdGhlIHByZXZpb3VzIGx0NDExMiBlbnRyeSBwb2ludGluZyB0byBhbiBhcmJp dHJhcnkgaW50ZXJmYWNlCm51bWJlciB3aXRoIGEgZGV2aWNlIHNwZWNpZmljIHN1YmNsYXNzICsg cHJvdG9jb2wgbWF0Y2guCgpSZXBvcnRlZC1hbmQtdGVzdGVkLWJ5OiBNdXJpIE5pY2Fub3IgPG11 cmkrbGlicW1pQGltbWVyZGEuY2g+ClRlc3RlZC1ieTogTWFydGluIEhhdWtlIDxtYXJkbmhAZ214 LmRlPgpGaXhlczogYmIyYmRlYjgzZmIxICgicW1pX3d3YW46IEFkZCBzdXBwb3J0IGZvciBIUCBs dDQxMTIgTFRFL0hTUEErIEdvYmkgNEcgTW9kZW0iKQpTaWduZWQtb2ZmLWJ5OiBCasO4cm4gTW9y ayA8Ympvcm5AbW9yay5ubz4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBk YXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L3VzYi9xbWlfd3dhbi5jIHwgNSArKysrLQog MSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdp dCBhL2RyaXZlcnMvbmV0L3VzYi9xbWlfd3dhbi5jIGIvZHJpdmVycy9uZXQvdXNiL3FtaV93d2Fu LmMKaW5kZXggMmE3YzFiZS4uMWJhMWZkYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvdXNiL3Ft aV93d2FuLmMKKysrIGIvZHJpdmVycy9uZXQvdXNiL3FtaV93d2FuLmMKQEAgLTUzOSw2ICs1Mzks MTAgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIHByb2R1Y3RzW10gPSB7CiAJ CQkJCSAgICAgIFVTQl9DRENfUFJPVE9fTk9ORSksCiAJCS5kcml2ZXJfaW5mbyAgICAgICAgPSAo dW5zaWduZWQgbG9uZykmcW1pX3d3YW5faW5mbywKIAl9LAorCXsJLyogSFAgbHQ0MTEyIExURS9I U1BBKyBHb2JpIDRHIE1vZHVsZSAoSHVhd2VpIG1lOTA2ZSkgKi8KKwkJVVNCX0RFVklDRV9BTkRf SU5URVJGQUNFX0lORk8oMHgwM2YwLCAweDU4MWQsIFVTQl9DTEFTU19WRU5ET1JfU1BFQywgMSwg NyksCisJCS5kcml2ZXJfaW5mbyA9ICh1bnNpZ25lZCBsb25nKSZxbWlfd3dhbl9pbmZvLAorCX0s CiAKIAkvKiAzLiBDb21iaW5lZCBpbnRlcmZhY2UgZGV2aWNlcyBtYXRjaGluZyBvbiBpbnRlcmZh Y2UgbnVtYmVyICovCiAJe1FNSV9GSVhFRF9JTlRGKDB4MDQwOCwgMHhlYTQyLCA0KX0sCS8qIFlv dGEgLyBNZWdhZm9uIE0xMDAtMSAqLwpAQCAtNzkxLDcgKzc5NSw2IEBAIHN0YXRpYyBjb25zdCBz dHJ1Y3QgdXNiX2RldmljZV9pZCBwcm9kdWN0c1tdID0gewogCXtRTUlfRklYRURfSU5URigweDQx M2MsIDB4ODFhOSwgOCl9LAkvKiBEZWxsIFdpcmVsZXNzIDU4MDhlIEdvYmkoVE0pIDRHIExURSBN b2JpbGUgQnJvYWRiYW5kIENhcmQgKi8KIAl7UU1JX0ZJWEVEX0lOVEYoMHg0MTNjLCAweDgxYjEs IDgpfSwJLyogRGVsbCBXaXJlbGVzcyA1ODA5ZSBHb2JpKFRNKSA0RyBMVEUgTW9iaWxlIEJyb2Fk YmFuZCBDYXJkICovCiAJe1FNSV9GSVhFRF9JTlRGKDB4MDNmMCwgMHg0ZTFkLCA4KX0sCS8qIEhQ IGx0NDExMSBMVEUvRVYtRE8vSFNQQSsgR29iaSA0RyBNb2R1bGUgKi8KLQl7UU1JX0ZJWEVEX0lO VEYoMHgwM2YwLCAweDU4MWQsIDQpfSwJLyogSFAgbHQ0MTEyIExURS9IU1BBKyBHb2JpIDRHIE1v ZHVsZSAoSHVhd2VpIG1lOTA2ZSkgKi8KIAogCS8qIDQuIEdvYmkgMTAwMCBkZXZpY2VzICovCiAJ e1FNSV9HT0JJMUtfREVWSUNFKDB4MDVjNiwgMHg5MjEyKX0sCS8qIEFjZXIgR29iaSBNb2RlbSBE ZXZpY2UgKi8KLS0gCjIuNC4xCgoKRnJvbSA4ZDgxZGQ3NTNiODcyNTY0NWRhNjNjZjc4YzhkMjgw YzI3ZTQxNGEzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVk dW1hemV0QGdvb2dsZS5jb20+CkRhdGU6IE1vbiwgMiBOb3YgMjAxNSAxNzowODoxOSAtMDgwMApT dWJqZWN0OiBbUEFUQ0ggMDgvMTddIHNpdDogZml4IHNpdDAgcGVyY3B1IGRvdWJsZSBhbGxvY2F0 aW9ucwoKWyBVcHN0cmVhbSBjb21taXQgNGVjZTkwMDk3NzQ1OTZlZTNkZjBhY2JhNjVhMzI0Yjdl YTc5Mzg3YyBdCgpzaXQwIGRldmljZSBhbGxvY2F0ZXMgaXRzIHBlcmNwdSBzdG9yYWdlIHR3aWNl IDoKLSBPbmUgdGltZSBpbiBpcGlwNl90dW5uZWxfaW5pdCgpCi0gT25lIHRpbWUgaW4gaXBpcDZf ZmJfdHVubmVsX2luaXQoKQoKVGh1cyB3ZSBsZWFrIDQ4IGJ5dGVzIHBlciBwb3NzaWJsZSBjcHUg cGVyIG5ldHdvcmsgbmFtZXNwYWNlIGRpc21hbnRsZS4KCmlwaXA2X2ZiX3R1bm5lbF9pbml0KCkg Y2FuIGJlIG11Y2ggc2ltcGxlciBhbmQgZG9lcyBub3QKcmV0dXJuIGFuIGVycm9yLCBhbmQgc2hv dWxkIGJlIGNhbGxlZCBhZnRlciByZWdpc3Rlcl9uZXRkZXYoKQoKTm90ZSB0aGF0IGlwaXA2X3R1 bm5lbF9jbG9uZV82cmQoKSBhbHNvIG5lZWRzIHRvIGJlIGNhbGxlZAphZnRlciByZWdpc3Rlcl9u ZXRkZXYoKSAoY2FsbGluZyBpcGlwNl90dW5uZWxfaW5pdCgpKQoKRml4ZXM6IGViZTA4NGFhZmI3 ZSAoInNpdDogVXNlIGlwaXA2X3R1bm5lbF9pbml0IGFzIHRoZSBuZG9faW5pdCBmdW5jdGlvbi4i KQpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClJlcG9y dGVkLWJ5OiBEbWl0cnkgVnl1a292IDxkdnl1a292QGdvb2dsZS5jb20+CkNjOiBTdGVmZmVuIEts YXNzZXJ0IDxzdGVmZmVuLmtsYXNzZXJ0QHNlY3VuZXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZp ZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjYvc2l0LmMgfCAy NiArKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9u cygrKSwgMjIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvc2l0LmMgYi9uZXQv aXB2Ni9zaXQuYwppbmRleCA5NDQyOGZkLi5kY2NjYWU4IDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9z aXQuYworKysgYi9uZXQvaXB2Ni9zaXQuYwpAQCAtMTM5NCwzNCArMTM5NCwyMCBAQCBzdGF0aWMg aW50IGlwaXA2X3R1bm5lbF9pbml0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiAJcmV0dXJuIDA7 CiB9CiAKLXN0YXRpYyBpbnQgX19uZXRfaW5pdCBpcGlwNl9mYl90dW5uZWxfaW5pdChzdHJ1Y3Qg bmV0X2RldmljZSAqZGV2KQorc3RhdGljIHZvaWQgX19uZXRfaW5pdCBpcGlwNl9mYl90dW5uZWxf aW5pdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogewogCXN0cnVjdCBpcF90dW5uZWwgKnR1bm5l bCA9IG5ldGRldl9wcml2KGRldik7CiAJc3RydWN0IGlwaGRyICppcGggPSAmdHVubmVsLT5wYXJt cy5pcGg7CiAJc3RydWN0IG5ldCAqbmV0ID0gZGV2X25ldChkZXYpOwogCXN0cnVjdCBzaXRfbmV0 ICpzaXRuID0gbmV0X2dlbmVyaWMobmV0LCBzaXRfbmV0X2lkKTsKIAotCXR1bm5lbC0+ZGV2ID0g ZGV2OwotCXR1bm5lbC0+bmV0ID0gZGV2X25ldChkZXYpOwotCiAJaXBoLT52ZXJzaW9uCQk9IDQ7 CiAJaXBoLT5wcm90b2NvbAkJPSBJUFBST1RPX0lQVjY7CiAJaXBoLT5paGwJCT0gNTsKIAlpcGgt PnR0bAkJPSA2NDsKIAotCWRldi0+dHN0YXRzID0gbmV0ZGV2X2FsbG9jX3BjcHVfc3RhdHMoc3Ry dWN0IHBjcHVfc3dfbmV0c3RhdHMpOwotCWlmICghZGV2LT50c3RhdHMpCi0JCXJldHVybiAtRU5P TUVNOwotCi0JdHVubmVsLT5kc3RfY2FjaGUgPSBhbGxvY19wZXJjcHUoc3RydWN0IGlwX3R1bm5l bF9kc3QpOwotCWlmICghdHVubmVsLT5kc3RfY2FjaGUpIHsKLQkJZnJlZV9wZXJjcHUoZGV2LT50 c3RhdHMpOwotCQlyZXR1cm4gLUVOT01FTTsKLQl9Ci0KIAlkZXZfaG9sZChkZXYpOwogCXJjdV9h c3NpZ25fcG9pbnRlcihzaXRuLT50dW5uZWxzX3djWzBdLCB0dW5uZWwpOwotCXJldHVybiAwOwog fQogCiBzdGF0aWMgaW50IGlwaXA2X3ZhbGlkYXRlKHN0cnVjdCBubGF0dHIgKnRiW10sIHN0cnVj dCBubGF0dHIgKmRhdGFbXSkKQEAgLTE4MzEsMjMgKzE4MTcsMTkgQEAgc3RhdGljIGludCBfX25l dF9pbml0IHNpdF9pbml0X25ldChzdHJ1Y3QgbmV0ICpuZXQpCiAJICovCiAJc2l0bi0+ZmJfdHVu bmVsX2Rldi0+ZmVhdHVyZXMgfD0gTkVUSUZfRl9ORVROU19MT0NBTDsKIAotCWVyciA9IGlwaXA2 X2ZiX3R1bm5lbF9pbml0KHNpdG4tPmZiX3R1bm5lbF9kZXYpOwotCWlmIChlcnIpCi0JCWdvdG8g ZXJyX2Rldl9mcmVlOwotCi0JaXBpcDZfdHVubmVsX2Nsb25lXzZyZChzaXRuLT5mYl90dW5uZWxf ZGV2LCBzaXRuKTsKIAllcnIgPSByZWdpc3Rlcl9uZXRkZXYoc2l0bi0+ZmJfdHVubmVsX2Rldik7 CiAJaWYgKGVycikKIAkJZ290byBlcnJfcmVnX2RldjsKIAorCWlwaXA2X3R1bm5lbF9jbG9uZV82 cmQoc2l0bi0+ZmJfdHVubmVsX2Rldiwgc2l0bik7CisJaXBpcDZfZmJfdHVubmVsX2luaXQoc2l0 bi0+ZmJfdHVubmVsX2Rldik7CisKIAl0ID0gbmV0ZGV2X3ByaXYoc2l0bi0+ZmJfdHVubmVsX2Rl dik7CiAKIAlzdHJjcHkodC0+cGFybXMubmFtZSwgc2l0bi0+ZmJfdHVubmVsX2Rldi0+bmFtZSk7 CiAJcmV0dXJuIDA7CiAKIGVycl9yZWdfZGV2OgotCWRldl9wdXQoc2l0bi0+ZmJfdHVubmVsX2Rl dik7Ci1lcnJfZGV2X2ZyZWU6CiAJaXBpcDZfZGV2X2ZyZWUoc2l0bi0+ZmJfdHVubmVsX2Rldik7 CiBlcnJfYWxsb2NfZGV2OgogCXJldHVybiBlcnI7Ci0tIAoyLjQuMQoKCkZyb20gMDNlYmM5M2Vk NTBjNWQ5OGM5Zjg2YjU4MzFmNTM3YTQwODkzNWQ4MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogTWFydGluIEhhYmV0cyA8bWhhYmV0c0Bzb2xhcmZsYXJlLmNvbT4KRGF0ZTogTW9uLCAy IE5vdiAyMDE1IDEyOjUxOjMxICswMDAwClN1YmplY3Q6IFtQQVRDSCAwOS8xN10gc2ZjOiBwdXNo IHBhcnRuZXIgcXVldWUgZm9yIHNrYi0+eG1pdF9tb3JlCgpbIFVwc3RyZWFtIGNvbW1pdCBiMjY2 M2E0ZjMwZTg1ZWM2MDZiODA2ZjUxMzU0MTNlNmQ1Yzc4ZDFlIF0KCldoZW4gdGhlIElQIHN0YWNr IHBhc3NlcyBTS0JzIHRoZSBzZmMgZHJpdmVyIHB1dHMgdGhlbSBpbiAyIGRpZmZlcmVudCBUWApx dWV1ZXMgKGNhbGxlZCBwYXJ0bmVycyksIG9uZSBmb3IgY2hlY2tzdW1tZWQgYW5kIG9uZSBmb3Ig bm90IGNoZWNrc3VtbWVkLgpJZiB0aGUgU0tCIGhhcyB4bWl0X21vcmUgc2V0IHRoZSBkcml2ZXIg d2lsbCBkZWxheSBwdXNoaW5nIHRoZSB3b3JrIHRvIHRoZQpOSUMuCgpXaGVuIGxhdGVyIGl0IGRv ZXMgZGVjaWRlIHRvIHB1c2ggdGhlIGJ1ZmZlcnMgdGhpcyBwYXRjaCBlbnN1cmVzIGl0IGFsc28K cHVzaGVzIHRoZSBwYXJ0bmVyIHF1ZXVlLCBpZiB0aGF0IGFsc28gaGFzIGFueSBkZWxheWVkIHdv cmsuIEJlZm9yZSB0aGlzCmZpeCB0aGUgd29yayBpbiB0aGUgcGFydG5lciBxdWV1ZSB3b3VsZCBi ZSBsZWZ0IGZvciBhIGxvbmcgdGltZSBhbmQgY2F1c2UKYSBuZXRkZXYgd2F0Y2hkb2cuCgpGaXhl czogNzBiMzNmYiAoInNmYzogYWRkIHN1cHBvcnQgZm9yIHNrYi0+eG1pdF9tb3JlIikKUmVwb3J0 ZWQtYnk6IEppYW5saW4gU2hpIDxqaXNoaUByZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBNYXJ0 aW4gSGFiZXRzIDxtaGFiZXRzQHNvbGFyZmxhcmUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBT LiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQv c2ZjL2VmMTAuYyAgICAgICB8ICA0ICsrKy0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9mYXJj aC5jICAgICAgfCAgNCArKystCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbmV0X2RyaXZlci5o IHwgIDIgKysKIGRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy90eC5jICAgICAgICAgfCAzMCArKysr KysrKysrKysrKysrKysrKysrKysrKysrLS0KIDQgZmlsZXMgY2hhbmdlZCwgMzYgaW5zZXJ0aW9u cygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9z ZmMvZWYxMC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYwppbmRleCBmZjY0OWVi Li4yODZjYzZiIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jCisr KyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmMKQEAgLTE4NDksNyArMTg0OSw5IEBA IHN0YXRpYyB2b2lkIGVmeF9lZjEwX3R4X3dyaXRlKHN0cnVjdCBlZnhfdHhfcXVldWUgKnR4X3F1 ZXVlKQogCXVuc2lnbmVkIGludCB3cml0ZV9wdHI7CiAJZWZ4X3F3b3JkX3QgKnR4ZDsKIAotCUJV R19PTih0eF9xdWV1ZS0+d3JpdGVfY291bnQgPT0gdHhfcXVldWUtPmluc2VydF9jb3VudCk7CisJ dHhfcXVldWUtPnhtaXRfbW9yZV9hdmFpbGFibGUgPSBmYWxzZTsKKwlpZiAodW5saWtlbHkodHhf cXVldWUtPndyaXRlX2NvdW50ID09IHR4X3F1ZXVlLT5pbnNlcnRfY291bnQpKQorCQlyZXR1cm47 CiAKIAlkbyB7CiAJCXdyaXRlX3B0ciA9IHR4X3F1ZXVlLT53cml0ZV9jb3VudCAmIHR4X3F1ZXVl LT5wdHJfbWFzazsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9mYXJjaC5j IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2ZhcmNoLmMKaW5kZXggZjA4MjY2Zi4uNWExYzVh OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2ZhcmNoLmMKKysrIGIvZHJp dmVycy9uZXQvZXRoZXJuZXQvc2ZjL2ZhcmNoLmMKQEAgLTMyMSw3ICszMjEsOSBAQCB2b2lkIGVm eF9mYXJjaF90eF93cml0ZShzdHJ1Y3QgZWZ4X3R4X3F1ZXVlICp0eF9xdWV1ZSkKIAl1bnNpZ25l ZCB3cml0ZV9wdHI7CiAJdW5zaWduZWQgb2xkX3dyaXRlX2NvdW50ID0gdHhfcXVldWUtPndyaXRl X2NvdW50OwogCi0JQlVHX09OKHR4X3F1ZXVlLT53cml0ZV9jb3VudCA9PSB0eF9xdWV1ZS0+aW5z ZXJ0X2NvdW50KTsKKwl0eF9xdWV1ZS0+eG1pdF9tb3JlX2F2YWlsYWJsZSA9IGZhbHNlOworCWlm ICh1bmxpa2VseSh0eF9xdWV1ZS0+d3JpdGVfY291bnQgPT0gdHhfcXVldWUtPmluc2VydF9jb3Vu dCkpCisJCXJldHVybjsKIAogCWRvIHsKIAkJd3JpdGVfcHRyID0gdHhfcXVldWUtPndyaXRlX2Nv dW50ICYgdHhfcXVldWUtPnB0cl9tYXNrOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJu ZXQvc2ZjL25ldF9kcml2ZXIuaCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9uZXRfZHJpdmVy LmgKaW5kZXggYzUzMGUxYy4uMjQwMzhlZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJu ZXQvc2ZjL25ldF9kcml2ZXIuaAorKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbmV0X2Ry aXZlci5oCkBAIC0yMTksNiArMjE5LDcgQEAgc3RydWN0IGVmeF90eF9idWZmZXIgewogICogQHRz b19wYWNrZXRzOiBOdW1iZXIgb2YgcGFja2V0cyB2aWEgdGhlIFRTTyB4bWl0IHBhdGgKICAqIEBw dXNoZXM6IE51bWJlciBvZiB0aW1lcyB0aGUgVFggcHVzaCBmZWF0dXJlIGhhcyBiZWVuIHVzZWQK ICAqIEBwaW9fcGFja2V0czogTnVtYmVyIG9mIHRpbWVzIHRoZSBUWCBQSU8gZmVhdHVyZSBoYXMg YmVlbiB1c2VkCisgKiBAeG1pdF9tb3JlX2F2YWlsYWJsZTogQXJlIGFueSBwYWNrZXRzIHdhaXRp bmcgdG8gYmUgcHVzaGVkIHRvIHRoZSBOSUMKICAqIEBlbXB0eV9yZWFkX2NvdW50OiBJZiB0aGUg Y29tcGxldGlvbiBwYXRoIGhhcyBzZWVuIHRoZSBxdWV1ZSBhcyBlbXB0eQogICoJYW5kIHRoZSB0 cmFuc21pc3Npb24gcGF0aCBoYXMgbm90IHlldCBjaGVja2VkIHRoaXMsIHRoZSB2YWx1ZSBvZgog ICoJQHJlYWRfY291bnQgYml0d2lzZS1hZGRlZCB0byAlRUZYX0VNUFRZX0NPVU5UX1ZBTElEOyBv dGhlcndpc2UgMC4KQEAgLTI1Myw2ICsyNTQsNyBAQCBzdHJ1Y3QgZWZ4X3R4X3F1ZXVlIHsKIAl1 bnNpZ25lZCBpbnQgdHNvX3BhY2tldHM7CiAJdW5zaWduZWQgaW50IHB1c2hlczsKIAl1bnNpZ25l ZCBpbnQgcGlvX3BhY2tldHM7CisJYm9vbCB4bWl0X21vcmVfYXZhaWxhYmxlOwogCS8qIFN0YXRp c3RpY3MgdG8gc3VwcGxlbWVudCBNQUMgc3RhdHMgKi8KIAl1bnNpZ25lZCBsb25nIHR4X3BhY2tl dHM7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy90eC5jIGIvZHJpdmVy cy9uZXQvZXRoZXJuZXQvc2ZjL3R4LmMKaW5kZXggMTgzM2EwMS4uNjdmNmFmYSAxMDA2NDQKLS0t IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL3R4LmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJu ZXQvc2ZjL3R4LmMKQEAgLTQzMSw4ICs0MzEsMjAgQEAgZmluaXNoX3BhY2tldDoKIAllZnhfdHhf bWF5YmVfc3RvcF9xdWV1ZSh0eF9xdWV1ZSk7CiAKIAkvKiBQYXNzIG9mZiB0byBoYXJkd2FyZSAq LwotCWlmICghc2tiLT54bWl0X21vcmUgfHwgbmV0aWZfeG1pdF9zdG9wcGVkKHR4X3F1ZXVlLT5j b3JlX3R4cSkpCisJaWYgKCFza2ItPnhtaXRfbW9yZSB8fCBuZXRpZl94bWl0X3N0b3BwZWQodHhf cXVldWUtPmNvcmVfdHhxKSkgeworCQlzdHJ1Y3QgZWZ4X3R4X3F1ZXVlICp0eHEyID0gZWZ4X3R4 X3F1ZXVlX3BhcnRuZXIodHhfcXVldWUpOworCisJCS8qIFRoZXJlIGNvdWxkIGJlIHBhY2tldHMg bGVmdCBvbiB0aGUgcGFydG5lciBxdWV1ZSBpZiB0aG9zZQorCQkgKiBTS0JzIGhhZCBza2ItPnht aXRfbW9yZSBzZXQuIElmIHdlIGRvIG5vdCBwdXNoIHRob3NlIHRoZXkKKwkJICogY291bGQgYmUg bGVmdCBmb3IgYSBsb25nIHRpbWUgYW5kIGNhdXNlIGEgbmV0ZGV2IHdhdGNoZG9nLgorCQkgKi8K KwkJaWYgKHR4cTItPnhtaXRfbW9yZV9hdmFpbGFibGUpCisJCQllZnhfbmljX3B1c2hfYnVmZmVy cyh0eHEyKTsKKwogCQllZnhfbmljX3B1c2hfYnVmZmVycyh0eF9xdWV1ZSk7CisJfSBlbHNlIHsK KwkJdHhfcXVldWUtPnhtaXRfbW9yZV9hdmFpbGFibGUgPSBza2ItPnhtaXRfbW9yZTsKKwl9CiAK IAl0eF9xdWV1ZS0+dHhfcGFja2V0cysrOwogCkBAIC03MjIsNiArNzM0LDcgQEAgdm9pZCBlZnhf aW5pdF90eF9xdWV1ZShzdHJ1Y3QgZWZ4X3R4X3F1ZXVlICp0eF9xdWV1ZSkKIAl0eF9xdWV1ZS0+ cmVhZF9jb3VudCA9IDA7CiAJdHhfcXVldWUtPm9sZF9yZWFkX2NvdW50ID0gMDsKIAl0eF9xdWV1 ZS0+ZW1wdHlfcmVhZF9jb3VudCA9IDAgfCBFRlhfRU1QVFlfQ09VTlRfVkFMSUQ7CisJdHhfcXVl dWUtPnhtaXRfbW9yZV9hdmFpbGFibGUgPSBmYWxzZTsKIAogCS8qIFNldCB1cCBUWCBkZXNjcmlw dG9yIHJpbmcgKi8KIAllZnhfbmljX2luaXRfdHgodHhfcXVldWUpOwpAQCAtNzQ3LDYgKzc2MCw3 IEBAIHZvaWQgZWZ4X2ZpbmlfdHhfcXVldWUoc3RydWN0IGVmeF90eF9xdWV1ZSAqdHhfcXVldWUp CiAKIAkJKyt0eF9xdWV1ZS0+cmVhZF9jb3VudDsKIAl9CisJdHhfcXVldWUtPnhtaXRfbW9yZV9h dmFpbGFibGUgPSBmYWxzZTsKIAluZXRkZXZfdHhfcmVzZXRfcXVldWUodHhfcXVldWUtPmNvcmVf dHhxKTsKIH0KIApAQCAtMTMwMiw4ICsxMzE2LDIwIEBAIHN0YXRpYyBpbnQgZWZ4X2VucXVldWVf c2tiX3RzbyhzdHJ1Y3QgZWZ4X3R4X3F1ZXVlICp0eF9xdWV1ZSwKIAllZnhfdHhfbWF5YmVfc3Rv cF9xdWV1ZSh0eF9xdWV1ZSk7CiAKIAkvKiBQYXNzIG9mZiB0byBoYXJkd2FyZSAqLwotCWlmICgh c2tiLT54bWl0X21vcmUgfHwgbmV0aWZfeG1pdF9zdG9wcGVkKHR4X3F1ZXVlLT5jb3JlX3R4cSkp CisJaWYgKCFza2ItPnhtaXRfbW9yZSB8fCBuZXRpZl94bWl0X3N0b3BwZWQodHhfcXVldWUtPmNv cmVfdHhxKSkgeworCQlzdHJ1Y3QgZWZ4X3R4X3F1ZXVlICp0eHEyID0gZWZ4X3R4X3F1ZXVlX3Bh cnRuZXIodHhfcXVldWUpOworCisJCS8qIFRoZXJlIGNvdWxkIGJlIHBhY2tldHMgbGVmdCBvbiB0 aGUgcGFydG5lciBxdWV1ZSBpZiB0aG9zZQorCQkgKiBTS0JzIGhhZCBza2ItPnhtaXRfbW9yZSBz ZXQuIElmIHdlIGRvIG5vdCBwdXNoIHRob3NlIHRoZXkKKwkJICogY291bGQgYmUgbGVmdCBmb3Ig YSBsb25nIHRpbWUgYW5kIGNhdXNlIGEgbmV0ZGV2IHdhdGNoZG9nLgorCQkgKi8KKwkJaWYgKHR4 cTItPnhtaXRfbW9yZV9hdmFpbGFibGUpCisJCQllZnhfbmljX3B1c2hfYnVmZmVycyh0eHEyKTsK KwogCQllZnhfbmljX3B1c2hfYnVmZmVycyh0eF9xdWV1ZSk7CisJfSBlbHNlIHsKKwkJdHhfcXVl dWUtPnhtaXRfbW9yZV9hdmFpbGFibGUgPSBza2ItPnhtaXRfbW9yZTsKKwl9CiAKIAl0eF9xdWV1 ZS0+dHNvX2J1cnN0cysrOwogCXJldHVybiBORVRERVZfVFhfT0s7Ci0tIAoyLjQuMQoKCkZyb20g ODBhN2Y1Y2Y1MDhjODA1NGMzMTk2ZTExMTBlZmVjZjVlODQyZjY5OCBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpEYXRlOiBN b24sIDIgTm92IDIwMTUgMDc6NTA6MDcgLTA4MDAKU3ViamVjdDogW1BBVENIIDEwLzE3XSBuZXQ6 IGF2b2lkIE5VTEwgZGVyZWYgaW4gaW5ldF9jdGxfc29ja19kZXN0cm95KCkKClsgVXBzdHJlYW0g Y29tbWl0IDhmYTY3N2QyNzA2ZDMyNWQ3MWRhYjkxYmY2ZTY1MTJjMDUyMTRlMzcgXQoKVW5kZXIg bG93IG1lbW9yeSBjb25kaXRpb25zLCB0Y3Bfc2tfaW5pdCgpIGFuZCBpY21wX3NrX2luaXQoKQpj YW4gYm90aCBpdGVyYXRlIG9uIGFsbCBwb3NzaWJsZSBjcHVzIGFuZCBjYWxsIGluZXRfY3RsX3Nv Y2tfZGVzdHJveSgpLAp3aXRoIGV2ZW50dWFsIE5VTEwgcG9pbnRlci4KClNpZ25lZC1vZmYtYnk6 IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KUmVwb3J0ZWQtYnk6IERtaXRyeSBW eXVrb3YgPGR2eXVrb3ZAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVy IDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGluY2x1ZGUvbmV0L2luZXRfY29tbW9uLmggfCAz ICsrLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlm ZiAtLWdpdCBhL2luY2x1ZGUvbmV0L2luZXRfY29tbW9uLmggYi9pbmNsdWRlL25ldC9pbmV0X2Nv bW1vbi5oCmluZGV4IDI3OWY4MzUuLjEwOWUzZWUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L2lu ZXRfY29tbW9uLmgKKysrIGIvaW5jbHVkZS9uZXQvaW5ldF9jb21tb24uaApAQCAtNDEsNyArNDEs OCBAQCBpbnQgaW5ldF9yZWN2X2Vycm9yKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IG1zZ2hkciAq bXNnLCBpbnQgbGVuLAogCiBzdGF0aWMgaW5saW5lIHZvaWQgaW5ldF9jdGxfc29ja19kZXN0cm95 KHN0cnVjdCBzb2NrICpzaykKIHsKLQlzb2NrX3JlbGVhc2Uoc2stPnNrX3NvY2tldCk7CisJaWYg KHNrKQorCQlzb2NrX3JlbGVhc2Uoc2stPnNrX3NvY2tldCk7CiB9CiAKICNlbmRpZgotLSAKMi40 LjEKCgpGcm9tIDRjYzFiNWRiZTA4N2E4YjNhYjUxODE2NGZhOTBjOWFiNGQ2M2U5MjMgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IFNhYnJpbmEgRHVicm9jYSA8c2RAcXVlYXN5c25haWwu bmV0PgpEYXRlOiBXZWQsIDQgTm92IDIwMTUgMTQ6NDc6NTMgKzAxMDAKU3ViamVjdDogW1BBVENI IDExLzE3XSBpcHY2OiBjbGVhbiB1cCBkZXZfc25tcDYgcHJvYyBlbnRyeSB3aGVuIHdlIGZhaWwg dG8KIGluaXRpYWxpemUgaW5ldDZfZGV2CgpbIFVwc3RyZWFtIGNvbW1pdCAyYTE4OWY5ZTU3NjUw ZTlmMzEwZGRmNGFhZDc1ZDY2YzEyMzNhMDY0IF0KCkluIGlwdjZfYWRkX2Rldiwgd2hlbiBhZGRy Y29uZl9zeXNjdGxfcmVnaXN0ZXIgZmFpbHMsIHdlIGRvIG5vdCBjbGVhbiB1cAp0aGUgZGV2X3Nu bXA2IGVudHJ5IHRoYXQgd2UgaGF2ZSBhbHJlYWR5IHJlZ2lzdGVyZWQgZm9yIHRoaXMgZGV2aWNl LgpDYWxsIHNubXA2X3VucmVnaXN0ZXJfZGV2IGluIHRoaXMgY2FzZS4KCkZpeGVzOiBhMzE3YTJm MTlkYTdkICgiaXB2NjogZmFpbCBlYXJseSB3aGVuIGNyZWF0aW5nIG5ldGRldiBuYW1lZCBhbGwg b3IgZGVmYXVsdCIpClJlcG9ydGVkLWJ5OiBEbWl0cnkgVnl1a292IDxkdnl1a292QGdvb2dsZS5j b20+ClNpZ25lZC1vZmYtYnk6IFNhYnJpbmEgRHVicm9jYSA8c2RAcXVlYXN5c25haWwubmV0PgpT aWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQog bmV0L2lwdjYvYWRkcmNvbmYuYyB8IDEgKwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCsp CgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvYWRkcmNvbmYuYyBiL25ldC9pcHY2L2FkZHJjb25mLmMK aW5kZXggMzZiODViZC4uZGQwMDgyOCAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvYWRkcmNvbmYuYwor KysgYi9uZXQvaXB2Ni9hZGRyY29uZi5jCkBAIC00MTcsNiArNDE3LDcgQEAgc3RhdGljIHN0cnVj dCBpbmV0Nl9kZXYgKmlwdjZfYWRkX2RldihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogCWlmIChl cnIpIHsKIAkJaXB2Nl9tY19kZXN0cm95X2RldihuZGV2KTsKIAkJZGVsX3RpbWVyKCZuZGV2LT5y ZWdlbl90aW1lcik7CisJCXNubXA2X3VucmVnaXN0ZXJfZGV2KG5kZXYpOwogCQlnb3RvIGVycl9y ZWxlYXNlOwogCX0KIAkvKiBwcm90ZWN0ZWQgYnkgcnRubF9sb2NrICovCi0tIAoyLjQuMQoKCkZy b20gMzFhYTBjZmRmZGRiYTZlNDg3YWVjNzhmZjFmOGZmZmI4YmMzMDE1ZCBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogV0FORyBDb25nIDx4aXlvdS53YW5nY29uZ0BnbWFpbC5jb20+CkRh dGU6IFR1ZSwgMyBOb3YgMjAxNSAxNDozMjo1NyAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMTIvMTdd IGlwdjQ6IGRpc2FibGUgQkggd2hlbiBjaGFuZ2luZyBpcCBsb2NhbCBwb3J0IHJhbmdlCgpbIFVw c3RyZWFtIGNvbW1pdCA0ZWUzYmQ0YThjNzQ2M2NkZWYwYjgyZWJjMzNmYzk0YTkxNzBhN2UwIF0K ClRoaXMgZml4ZXMgdGhlIGZvbGxvd2luZyBsb2NrZGVwIHdhcm5pbmc6CgogWyBJTkZPOiBpbmNv bnNpc3RlbnQgbG9jayBzdGF0ZSBdCiA0LjMuMC1yYzcrICMxMTk3IE5vdCB0YWludGVkCiAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIGluY29uc2lzdGVudCB7SU4tU09GVElSUS1S fSAtPiB7U09GVElSUS1PTi1XfSB1c2FnZS4KIHN5c2N0bC8xMDE5IFtIQzBbMF06U0MwWzBdOkhF MTpTRTFdIHRha2VzOgogICgmKCZuZXQtPmlwdjQuaXBfbG9jYWxfcG9ydHMubG9jayktPnNlcWNv dW50KXsrListLi59LCBhdDogWzxmZmZmZmZmZjgxOTIxZGU3Pl0gaXB2NF9sb2NhbF9wb3J0X3Jh bmdlKzB4YjQvMHgxMmEKIHtJTi1TT0ZUSVJRLVJ9IHN0YXRlIHdhcyByZWdpc3RlcmVkIGF0Ogog ICBbPGZmZmZmZmZmODEwYmQ2ODI+XSBfX2xvY2tfYWNxdWlyZSsweDJmNi8weGRmMAogICBbPGZm ZmZmZmZmODEwYmU2ZDU+XSBsb2NrX2FjcXVpcmUrMHgxMWMvMHgxYTQKICAgWzxmZmZmZmZmZjgx OGU1OTljPl0gaW5ldF9nZXRfbG9jYWxfcG9ydF9yYW5nZSsweDRlLzB4YWUKICAgWzxmZmZmZmZm ZjgxNjZlOGUzPl0gdWRwX2Zsb3dfc3JjX3BvcnQuY29uc3Rwcm9wLjQwKzB4MjMvMHgxMTYKICAg WzxmZmZmZmZmZjgxNjcxY2I5Pl0gdnhsYW5feG1pdF9vbmUrMHgyMTkvMHhhNmEKICAgWzxmZmZm ZmZmZjgxNjcyZjc1Pl0gdnhsYW5feG1pdCsweGE2Yi8weGFhNQogICBbPGZmZmZmZmZmODE3ZjJk ZWI+XSBkZXZfaGFyZF9zdGFydF94bWl0KzB4MmFlLzB4NDY1CiAgIFs8ZmZmZmZmZmY4MTdmMzVl ZD5dIF9fZGV2X3F1ZXVlX3htaXQrMHg1MzEvMHg2MzMKICAgWzxmZmZmZmZmZjgxN2YzNzAyPl0g ZGV2X3F1ZXVlX3htaXRfc2srMHgxMy8weDE1CiAgIFs8ZmZmZmZmZmY4MTgwMDRhNT5dIG5laWdo X3Jlc29sdmVfb3V0cHV0KzB4MTJmLzB4MTRkCiAgIFs8ZmZmZmZmZmY4MTk1OWNmYT5dIGlwNl9m aW5pc2hfb3V0cHV0MisweDM0NC8weDM5ZgogICBbPGZmZmZmZmZmODE5NWJmNTg+XSBpcDZfZmlu aXNoX291dHB1dCsweDg4LzB4OGUKICAgWzxmZmZmZmZmZjgxOTViZmVmPl0gaXA2X291dHB1dCsw eDkxLzB4ZTUKICAgWzxmZmZmZmZmZjgxOTc5MmFlPl0gZHN0X291dHB1dF9zaysweDQ3LzB4NGMK ICAgWzxmZmZmZmZmZjgxOTc5MzkyPl0gTkZfSE9PS19USFJFU0guY29uc3Rwcm9wLjMwKzB4Mzgv MHg4MgogICBbPGZmZmZmZmZmODE5Nzk4MWU+XSBtbGRfc2VuZHBhY2srMHgxODkvMHgyNjYKICAg WzxmZmZmZmZmZjgxOTdiMjhiPl0gbWxkX2lmY190aW1lcl9leHBpcmUrMHgxZWYvMHgyMjMKICAg WzxmZmZmZmZmZjgxMGRlNTgxPl0gY2FsbF90aW1lcl9mbisweGZiLzB4MjhjCiAgIFs8ZmZmZmZm ZmY4MTBkZWQxZT5dIHJ1bl90aW1lcl9zb2Z0aXJxKzB4MWM3LzB4MWYxCgpGaXhlczogYjhmMWE1 NTYzOWU2ICgidWRwOiBBZGQgZnVuY3Rpb24gdG8gbWFrZSBzb3VyY2UgcG9ydCBmb3IgVURQIHR1 bm5lbHMiKQpDYzogVG9tIEhlcmJlcnQgPHRvbUBoZXJiZXJ0bGFuZC5jb20+ClNpZ25lZC1vZmYt Ynk6IENvbmcgV2FuZyA8eGl5b3Uud2FuZ2NvbmdAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBE YXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjQvc3lzY3Rs X25ldF9pcHY0LmMgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvc3lzY3RsX25ldF9pcHY0LmMgYi9u ZXQvaXB2NC9zeXNjdGxfbmV0X2lwdjQuYwppbmRleCA4OTRkYTNhLi5hZGU3NzM3IDEwMDY0NAot LS0gYS9uZXQvaXB2NC9zeXNjdGxfbmV0X2lwdjQuYworKysgYi9uZXQvaXB2NC9zeXNjdGxfbmV0 X2lwdjQuYwpAQCAtNDgsMTQgKzQ4LDE0IEBAIHN0YXRpYyB2b2lkIHNldF9sb2NhbF9wb3J0X3Jh bmdlKHN0cnVjdCBuZXQgKm5ldCwgaW50IHJhbmdlWzJdKQogewogCWJvb2wgc2FtZV9wYXJpdHkg PSAhKChyYW5nZVswXSBeIHJhbmdlWzFdKSAmIDEpOwogCi0Jd3JpdGVfc2VxbG9jaygmbmV0LT5p cHY0LmlwX2xvY2FsX3BvcnRzLmxvY2spOworCXdyaXRlX3NlcWxvY2tfYmgoJm5ldC0+aXB2NC5p cF9sb2NhbF9wb3J0cy5sb2NrKTsKIAlpZiAoc2FtZV9wYXJpdHkgJiYgIW5ldC0+aXB2NC5pcF9s b2NhbF9wb3J0cy53YXJuZWQpIHsKIAkJbmV0LT5pcHY0LmlwX2xvY2FsX3BvcnRzLndhcm5lZCA9 IHRydWU7CiAJCXByX2Vycl9yYXRlbGltaXRlZCgiaXBfbG9jYWxfcG9ydF9yYW5nZTogcHJlZmVy IGRpZmZlcmVudCBwYXJpdHkgZm9yIHN0YXJ0L2VuZCB2YWx1ZXMuXG4iKTsKIAl9CiAJbmV0LT5p cHY0LmlwX2xvY2FsX3BvcnRzLnJhbmdlWzBdID0gcmFuZ2VbMF07CiAJbmV0LT5pcHY0LmlwX2xv Y2FsX3BvcnRzLnJhbmdlWzFdID0gcmFuZ2VbMV07Ci0Jd3JpdGVfc2VxdW5sb2NrKCZuZXQtPmlw djQuaXBfbG9jYWxfcG9ydHMubG9jayk7CisJd3JpdGVfc2VxdW5sb2NrX2JoKCZuZXQtPmlwdjQu aXBfbG9jYWxfcG9ydHMubG9jayk7CiB9CiAKIC8qIFZhbGlkYXRlIGNoYW5nZXMgZnJvbSAvcHJv YyBpbnRlcmZhY2UuICovCi0tIAoyLjQuMQoKCkZyb20gZDA0ZWEyN2Y5ZGZjMTdlZjZmMDMxZmQw MDFiODE4YjFhYzcwMTQxZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGF2aWQgQWhl cm4gPGRzYUBjdW11bHVzbmV0d29ya3MuY29tPgpEYXRlOiBUdWUsIDMgTm92IDIwMTUgMTU6NTk6 MjggLTA4MDAKU3ViamVjdDogW1BBVENIIDEzLzE3XSBuZXQ6IEZpeCBwcmVmc3JjIGxvb2t1cHMK ClsgVXBzdHJlYW0gY29tbWl0IGUxYjhkOTAzYzZjMzg2MjE2MGQyZDUwMzY4MDZhOTQ3ODZjOGZj NGUgXQoKQSBidWcgcmVwb3J0IChodHRwczovL2J1Z3ppbGxhLmtlcm5lbC5vcmcvc2hvd19idWcu Y2dpP2lkPTEwNzA3MSkgbm90ZWQKdGhhdCB0aGUgZm9sbHdvaW5nIGlwIGNvbW1hbmQgaXMgZmFp bGluZyB3aXRoIHY0LjM6CgogICAgJCBpcCByb3V0ZSBhZGQgMTAuMjQ4LjUuMC8yNCBkZXYgYm9u ZDAuMjUwIHRhYmxlIHZsYW5fMjUwIHNyYyAxMC4yNDguNS4xNTQKICAgIFJUTkVUTElOSyBhbnN3 ZXJzOiBJbnZhbGlkIGFyZ3VtZW50CgowMjFkZDNiOGExNDJkIGNoYW5nZWQgdGhlIGxvb2t1cCBv ZiB0aGUgZ2l2ZW4gcHJlZmVycmVkIHNvdXJjZSBhZGRyZXNzIHRvCnVzZSB0aGUgdGFibGUgaWQg cGFzc2VkIGluLCBidXQgdGhpcyBhc3N1bWVzIHRoZSBsb2NhbCBlbnRyaWVzIGFyZSBpbiB0aGUK Z2l2ZW4gdGFibGUgd2hpY2ggaXMgbm90IG5lY2Vzc2FyaWx5IHRydWUgZm9yIG5vbi1WUkYgdXNl IGNhc2VzLiBXaGVuCnZhbGlkYXRpbmcgdGhlIHByZWZlcnJlZCBzb3VyY2UgZmFsbGJhY2sgdG8g dGhlIGxvY2FsIHRhYmxlIG9uIGZhaWx1cmUuCgpGaXhlczogMDIxZGQzYjhhMTQyZCAoIm5ldDog QWRkIHJvdXRlcyB0byB0aGUgdGFibGUgYXNzb2NpYXRlZCB3aXRoIHRoZSBkZXZpY2UiKQpTaWdu ZWQtb2ZmLWJ5OiBEYXZpZCBBaGVybiA8ZHNhQGN1bXVsdXNuZXR3b3Jrcy5jb20+ClNpZ25lZC1v ZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2 NC9maWJfc2VtYW50aWNzLmMgfCAxMyArKysrKysrKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTAg aW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2NC9maWJf c2VtYW50aWNzLmMgYi9uZXQvaXB2NC9maWJfc2VtYW50aWNzLmMKaW5kZXggZTk2NmY4NS4uZWY1 ODkyZiAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvZmliX3NlbWFudGljcy5jCisrKyBiL25ldC9pcHY0 L2ZpYl9zZW1hbnRpY3MuYwpAQCAtODY0LDE0ICs4NjQsMjEgQEAgc3RhdGljIGJvb2wgZmliX3Zh bGlkX3ByZWZzcmMoc3RydWN0IGZpYl9jb25maWcgKmNmZywgX19iZTMyIGZpYl9wcmVmc3JjKQog CWlmIChjZmctPmZjX3R5cGUgIT0gUlROX0xPQ0FMIHx8ICFjZmctPmZjX2RzdCB8fAogCSAgICBm aWJfcHJlZnNyYyAhPSBjZmctPmZjX2RzdCkgewogCQl1MzIgdGJfaWQgPSBjZmctPmZjX3RhYmxl OworCQlpbnQgcmM7CiAKIAkJaWYgKHRiX2lkID09IFJUX1RBQkxFX01BSU4pCiAJCQl0Yl9pZCA9 IFJUX1RBQkxFX0xPQ0FMOwogCi0JCWlmIChpbmV0X2FkZHJfdHlwZV90YWJsZShjZmctPmZjX25s aW5mby5ubF9uZXQsCi0JCQkJCSBmaWJfcHJlZnNyYywgdGJfaWQpICE9IFJUTl9MT0NBTCkgewot CQkJcmV0dXJuIGZhbHNlOworCQlyYyA9IGluZXRfYWRkcl90eXBlX3RhYmxlKGNmZy0+ZmNfbmxp bmZvLm5sX25ldCwKKwkJCQkJICBmaWJfcHJlZnNyYywgdGJfaWQpOworCisJCWlmIChyYyAhPSBS VE5fTE9DQUwgJiYgdGJfaWQgIT0gUlRfVEFCTEVfTE9DQUwpIHsKKwkJCXJjID0gaW5ldF9hZGRy X3R5cGVfdGFibGUoY2ZnLT5mY19ubGluZm8ubmxfbmV0LAorCQkJCQkJICBmaWJfcHJlZnNyYywg UlRfVEFCTEVfTE9DQUwpOwogCQl9CisKKwkJaWYgKHJjICE9IFJUTl9MT0NBTCkKKwkJCXJldHVy biBmYWxzZTsKIAl9CiAJcmV0dXJuIHRydWU7CiB9Ci0tIAoyLjQuMQoKCkZyb20gNzlmMTFkNWZl MGZkMDU0N2M4YjFkMDMxNjZlNzBmMmY2ZmZhZThhOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogVG9iaWFzIEtsYXVzZXIgPHRrbGF1c2VyQGRpc3RhbnouY2g+CkRhdGU6IFdlZCwgNCBO b3YgMjAxNSAxMzo0OTo0OSArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMTQvMTddIHR1bl9kc3Q6IEZp eCBwb3RlbnRpYWwgTlVMTCBkZXJlZmVyZW5jZQoKWyBVcHN0cmVhbSBjb21taXQgZjYzY2U1YjZm YTVlOWEwZmFmN2EwZTFlZjI5OTNhNTAyODc4Yzc4YSBdCgpJbiB0dW5fZHN0X3VuY2xvbmUoKSB0 aGUgcmV0dXJuIHZhbHVlIG9mIHNrYl9tZXRhZGF0YV9kc3QoKSBpcyBjaGVja2VkCmZvciBiZWlu ZyBOVUxMIGFmdGVyIGl0IGlzIGRlcmVmZXJlbmNlZC4gRml4IHRoaXMgYnkgbW92aW5nIHRoZQpk ZXJlZmVyZW5jZSBhZnRlciB0aGUgTlVMTCBjaGVjay4KCkZvdW5kIGJ5IHRoZSBDb3Zlcml0eSBz Y2FubmVyIChDSUQgMTMzODA2OCkuCgpGaXhlczogZmM0MDk5ZjE3MjQwICgib3BlbnZzd2l0Y2g6 IEZpeCBlZ3Jlc3MgdHVubmVsIGluZm8uIikKQ2M6IFByYXZpbiBCIFNoZWxhciA8cHNoZWxhckBu aWNpcmEuY29tPgpTaWduZWQtb2ZmLWJ5OiBUb2JpYXMgS2xhdXNlciA8dGtsYXVzZXJAZGlzdGFu ei5jaD4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0 PgotLS0KIGluY2x1ZGUvbmV0L2RzdF9tZXRhZGF0YS5oIHwgMyArKy0KIDEgZmlsZSBjaGFuZ2Vk LCAyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL25l dC9kc3RfbWV0YWRhdGEuaCBiL2luY2x1ZGUvbmV0L2RzdF9tZXRhZGF0YS5oCmluZGV4IGNlMDA5 NzEuLjY4MTZmMGYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L2RzdF9tZXRhZGF0YS5oCisrKyBi L2luY2x1ZGUvbmV0L2RzdF9tZXRhZGF0YS5oCkBAIC02MywxMiArNjMsMTMgQEAgc3RhdGljIGlu bGluZSBzdHJ1Y3QgbWV0YWRhdGFfZHN0ICp0dW5fcnhfZHN0KGludCBtZF9zaXplKQogc3RhdGlj IGlubGluZSBzdHJ1Y3QgbWV0YWRhdGFfZHN0ICp0dW5fZHN0X3VuY2xvbmUoc3RydWN0IHNrX2J1 ZmYgKnNrYikKIHsKIAlzdHJ1Y3QgbWV0YWRhdGFfZHN0ICptZF9kc3QgPSBza2JfbWV0YWRhdGFf ZHN0KHNrYik7Ci0JaW50IG1kX3NpemUgPSBtZF9kc3QtPnUudHVuX2luZm8ub3B0aW9uc19sZW47 CisJaW50IG1kX3NpemU7CiAJc3RydWN0IG1ldGFkYXRhX2RzdCAqbmV3X21kOwogCiAJaWYgKCFt ZF9kc3QpCiAJCXJldHVybiBFUlJfUFRSKC1FSU5WQUwpOwogCisJbWRfc2l6ZSA9IG1kX2RzdC0+ dS50dW5faW5mby5vcHRpb25zX2xlbjsKIAluZXdfbWQgPSBtZXRhZGF0YV9kc3RfYWxsb2MobWRf c2l6ZSwgR0ZQX0FUT01JQyk7CiAJaWYgKCFuZXdfbWQpCiAJCXJldHVybiBFUlJfUFRSKC1FTk9N RU0pOwotLSAKMi40LjEKCgpGcm9tIDRhNzVlZjZmNzYyYzg1ZDczYTc2YTk0NjY2NzJjZjY2OTY1 ZDgyZTIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEZyYW5jZXNjbyBSdWdnZXJpIDxm cnVnZ2VyaUBhcmlzdGFuZXR3b3Jrcy5jb20+CkRhdGU6IFRodSwgNSBOb3YgMjAxNSAwODoxNjox NCAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMTUvMTddIHBhY2tldDogcmFjZSBjb25kaXRpb24gaW4g cGFja2V0X2JpbmQKClsgVXBzdHJlYW0gY29tbWl0IDMwZjdlYTFjMmI1ZjVmYjc0NjJjNWFlNDRm ZTJlNDBjYjJkNmE0NzQgXQoKVGhlcmUgaXMgYSByYWNlIGNvbmRpdGlvbnMgYmV0d2VlbiBwYWNr ZXRfbm90aWZpZXIgYW5kIHBhY2tldF9iaW5ke19zcGt0fS4KCkl0IGhhcHBlbnMgaWYgcGFja2V0 X25vdGlmaWVyKE5FVERFVl9VTlJFR0lTVEVSKSBleGVjdXRlcyBiZXR3ZWVuIHRoZQp0aW1lIHBh Y2tldF9iaW5ke19zcGt0fSB0YWtlcyBhIHJlZmVyZW5jZSBvbiB0aGUgbmV3IG5ldGRldmljZSBh bmQgdGhlCnRpbWUgcGFja2V0X2RvX2JpbmQgc2V0cyBwby0+aWZpbmRleC4KSW4gdGhpcyBjYXNl IHRoZSBub3RpZmljYXRpb24gY2FuIGJlIG1pc3NlZC4KSWYgdGhpcyBoYXBwZW5zIGR1cmluZyBh IGRldl9jaGFuZ2VfbmV0X25hbWVzcGFjZSB0aGlzIGNhbiByZXN1bHQgaW4gdGhlCm5ldGRldmlj ZSB0byBiZSBtb3ZlZCB0byB0aGUgbmV3IG5hbWVzcGFjZSB3aGlsZSB0aGUgcGFja2V0X3NvY2sg aW4gdGhlCm9sZCBuYW1lc3BhY2Ugc3RpbGwgaG9sZHMgYSByZWZlcmVuY2Ugb24gaXQuIFdoZW4g dGhlIG5ldGRldmljZSBpcyBsYXRlcgpkZWxldGVkIGluIHRoZSBuZXcgbmFtZXNwYWNlIHRoZSBk ZWxldGlvbiBoYW5ncyBzaW5jZSB0aGUgcGFja2V0X3NvY2sKaXMgbm90IGZvdW5kIGluIHRoZSBu ZXcgbmFtZXNwYWNlJyAmbmV0LT5wYWNrZXQuc2tsaXN0LgpJdCBjYW4gYmUgcmVwcm9kdWNlZCB3 aXRoIHRoZSBzY3JpcHQgYmVsb3cuCgpUaGlzIHBhdGNoIG1ha2VzIHBhY2tldF9kb19iaW5kIGNo ZWNrIGFnYWluIGZvciB0aGUgcHJlc2VuY2Ugb2YgdGhlCm5ldGRldmljZSBpbiB0aGUgcGFja2V0 X3NvY2sncyBuYW1lc3BhY2UgYWZ0ZXIgdGhlIHN5bmNocm9uaXplX25ldAppbiB1bnJlZ2lzdGVy X3Byb3RfaG9vay4KTW9yZSBpbiBnZW5lcmFsIGl0IGFsc28gdXNlcyB0aGUgcmN1IGxvY2sgZm9y IHRoZSBkdXJhdGlvbiBvZiB0aGUgYmluZAp0byBzdG9wIGRldl9jaGFuZ2VfbmV0X25hbWVzcGFj ZS9yb2xsYmFja19yZWdpc3RlcmVkX21hbnkgZnJvbQpnb2luZyBwYXN0IHRoZSBzeW5jaHJvbml6 ZV9uZXQgZm9sbG93aW5nIHVubGlzdF9uZXRkZXZpY2UsIHNvIHRoYXQKbm8gTkVUREVWX1VOUkVH SVNURVIgbm90aWZpY2F0aW9ucyBjYW4gaGFwcGVuIG9uIHRoZSBuZXcgbmV0ZGV2aWNlCndoaWxl IHRoZSBiaW5kIGlzIGV4ZWN1dGluZy4gSW4gb3JkZXIgdG8gZG8gdGhpcyBzb21lIGNvZGUgZnJv bQpwYWNrZXRfYmluZHtfc3BrdH0gaXMgY29uc29saWRhdGVkIGludG8gcGFja2V0X2RvX2Rldi4K CmltcG9ydCBzb2NrZXQsIG9zLCB0aW1lLCBzeXMKcHJvdG89NwpyZWFsRGV2PSdlbTEnCnZsYW5J ZD00MDAKaWYgbGVuKHN5cy5hcmd2KSA+IDE6CiAgIHZsYW5JZD1pbnQoc3lzLmFyZ3ZbMV0pCmRl dj0ndmxhbiVkJyAlIHZsYW5JZAoKb3Muc3lzdGVtKCd0YXNrc2V0IC1wIDB4MTAgJWQnICUgb3Mu Z2V0cGlkKCkpCgpzID0gc29ja2V0LnNvY2tldChzb2NrZXQuUEZfUEFDS0VULCBzb2NrZXQuU09D S19SQVcsIHByb3RvKQpvcy5zeXN0ZW0oJ2lwIGxpbmsgYWRkIGxpbmsgJXMgbmFtZSAlcyB0eXBl IHZsYW4gaWQgJWQnICUKICAgICAgICAgIChyZWFsRGV2LCBkZXYsIHZsYW5JZCkpCm9zLnN5c3Rl bSgnaXAgbmV0bnMgYWRkIGR1bW15JykKCnBpZD1vcy5mb3JrKCkKCmlmIHBpZCA9PSAwOgogICAj IGRldiBzaG91bGQgYmUgbW92ZWQgd2hpbGUgcGFja2V0X2RvX2JpbmQgaXMgaW4gc3luY2hyb25p emUgbmV0CiAgIG9zLnN5c3RlbSgndGFza3NldCAtcCAweDIwMDAwICVkJyAlIG9zLmdldHBpZCgp KQogICBvcy5zeXN0ZW0oJ2lwIGxpbmsgc2V0ICVzIG5ldG5zIGR1bW15JyAlIGRldikKICAgb3Mu c3lzdGVtKCdpcCBuZXRucyBleGVjIGR1bW15IGlwIGxpbmsgZGVsICVzJyAlIGRldikKICAgcy5j bG9zZSgpCiAgIHN5cy5leGl0KDApCgp0aW1lLnNsZWVwKC4wMDQpCnRyeToKICAgcy5iaW5kKCgn JXMnICUgZGV2LCBwcm90bysxKSkKZXhjZXB0OgogICBwcmludCAnQ291bGQgbm90IGJpbmQgc29j a2V0JwogICBzLmNsb3NlKCkKICAgb3Muc3lzdGVtKCdpcCBuZXRucyBkZWwgZHVtbXknKQogICBz eXMuZXhpdCgwKQoKb3Mud2FpdHBpZChwaWQsIDApCnMuY2xvc2UoKQpvcy5zeXN0ZW0oJ2lwIG5l dG5zIGRlbCBkdW1teScpCnN5cy5leGl0KDApCgpTaWduZWQtb2ZmLWJ5OiBGcmFuY2VzY28gUnVn Z2VyaSA8ZnJ1Z2dlcmlAYXJpc3RhLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVy IDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9wYWNrZXQvYWZfcGFja2V0LmMgfCA4MCAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxl IGNoYW5nZWQsIDQ5IGluc2VydGlvbnMoKyksIDMxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L25ldC9wYWNrZXQvYWZfcGFja2V0LmMgYi9uZXQvcGFja2V0L2FmX3BhY2tldC5jCmluZGV4IGFh NGIxNWMuLjI3YjI4OTggMTAwNjQ0Ci0tLSBhL25ldC9wYWNrZXQvYWZfcGFja2V0LmMKKysrIGIv bmV0L3BhY2tldC9hZl9wYWNrZXQuYwpAQCAtMjkwMywyMiArMjkwMyw0MCBAQCBzdGF0aWMgaW50 IHBhY2tldF9yZWxlYXNlKHN0cnVjdCBzb2NrZXQgKnNvY2spCiAgKglBdHRhY2ggYSBwYWNrZXQg aG9vay4KICAqLwogCi1zdGF0aWMgaW50IHBhY2tldF9kb19iaW5kKHN0cnVjdCBzb2NrICpzaywg c3RydWN0IG5ldF9kZXZpY2UgKmRldiwgX19iZTE2IHByb3RvKQorc3RhdGljIGludCBwYWNrZXRf ZG9fYmluZChzdHJ1Y3Qgc29jayAqc2ssIGNvbnN0IGNoYXIgKm5hbWUsIGludCBpZmluZGV4LAor CQkJICBfX2JlMTYgcHJvdG8pCiB7CiAJc3RydWN0IHBhY2tldF9zb2NrICpwbyA9IHBrdF9zayhz ayk7CiAJc3RydWN0IG5ldF9kZXZpY2UgKmRldl9jdXJyOwogCV9fYmUxNiBwcm90b19jdXJyOwog CWJvb2wgbmVlZF9yZWhvb2s7CisJc3RydWN0IG5ldF9kZXZpY2UgKmRldiA9IE5VTEw7CisJaW50 IHJldCA9IDA7CisJYm9vbCB1bmxpc3RlZCA9IGZhbHNlOwogCi0JaWYgKHBvLT5mYW5vdXQpIHsK LQkJaWYgKGRldikKLQkJCWRldl9wdXQoZGV2KTsKLQorCWlmIChwby0+ZmFub3V0KQogCQlyZXR1 cm4gLUVJTlZBTDsKLQl9CiAKIAlsb2NrX3NvY2soc2spOwogCXNwaW5fbG9jaygmcG8tPmJpbmRf bG9jayk7CisJcmN1X3JlYWRfbG9jaygpOworCisJaWYgKG5hbWUpIHsKKwkJZGV2ID0gZGV2X2dl dF9ieV9uYW1lX3JjdShzb2NrX25ldChzayksIG5hbWUpOworCQlpZiAoIWRldikgeworCQkJcmV0 ID0gLUVOT0RFVjsKKwkJCWdvdG8gb3V0X3VubG9jazsKKwkJfQorCX0gZWxzZSBpZiAoaWZpbmRl eCkgeworCQlkZXYgPSBkZXZfZ2V0X2J5X2luZGV4X3JjdShzb2NrX25ldChzayksIGlmaW5kZXgp OworCQlpZiAoIWRldikgeworCQkJcmV0ID0gLUVOT0RFVjsKKwkJCWdvdG8gb3V0X3VubG9jazsK KwkJfQorCX0KKworCWlmIChkZXYpCisJCWRldl9ob2xkKGRldik7CiAKIAlwcm90b19jdXJyID0g cG8tPnByb3RfaG9vay50eXBlOwogCWRldl9jdXJyID0gcG8tPnByb3RfaG9vay5kZXY7CkBAIC0y OTI2LDE0ICsyOTQ0LDI5IEBAIHN0YXRpYyBpbnQgcGFja2V0X2RvX2JpbmQoc3RydWN0IHNvY2sg KnNrLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBfX2JlMTYgcHJvdG8pCiAJbmVlZF9yZWhvb2sg PSBwcm90b19jdXJyICE9IHByb3RvIHx8IGRldl9jdXJyICE9IGRldjsKIAogCWlmIChuZWVkX3Jl aG9vaykgewotCQl1bnJlZ2lzdGVyX3Byb3RfaG9vayhzaywgdHJ1ZSk7CisJCWlmIChwby0+cnVu bmluZykgeworCQkJcmN1X3JlYWRfdW5sb2NrKCk7CisJCQlfX3VucmVnaXN0ZXJfcHJvdF9ob29r KHNrLCB0cnVlKTsKKwkJCXJjdV9yZWFkX2xvY2soKTsKKwkJCWRldl9jdXJyID0gcG8tPnByb3Rf aG9vay5kZXY7CisJCQlpZiAoZGV2KQorCQkJCXVubGlzdGVkID0gIWRldl9nZXRfYnlfaW5kZXhf cmN1KHNvY2tfbmV0KHNrKSwKKwkJCQkJCQkJIGRldi0+aWZpbmRleCk7CisJCX0KIAogCQlwby0+ bnVtID0gcHJvdG87CiAJCXBvLT5wcm90X2hvb2sudHlwZSA9IHByb3RvOwotCQlwby0+cHJvdF9o b29rLmRldiA9IGRldjsKIAotCQlwby0+aWZpbmRleCA9IGRldiA/IGRldi0+aWZpbmRleCA6IDA7 Ci0JCXBhY2tldF9jYWNoZWRfZGV2X2Fzc2lnbihwbywgZGV2KTsKKwkJaWYgKHVubGlrZWx5KHVu bGlzdGVkKSkgeworCQkJZGV2X3B1dChkZXYpOworCQkJcG8tPnByb3RfaG9vay5kZXYgPSBOVUxM OworCQkJcG8tPmlmaW5kZXggPSAtMTsKKwkJCXBhY2tldF9jYWNoZWRfZGV2X3Jlc2V0KHBvKTsK KwkJfSBlbHNlIHsKKwkJCXBvLT5wcm90X2hvb2suZGV2ID0gZGV2OworCQkJcG8tPmlmaW5kZXgg PSBkZXYgPyBkZXYtPmlmaW5kZXggOiAwOworCQkJcGFja2V0X2NhY2hlZF9kZXZfYXNzaWduKHBv LCBkZXYpOworCQl9CiAJfQogCWlmIChkZXZfY3VycikKIAkJZGV2X3B1dChkZXZfY3Vycik7CkBA IC0yOTQxLDcgKzI5NzQsNyBAQCBzdGF0aWMgaW50IHBhY2tldF9kb19iaW5kKHN0cnVjdCBzb2Nr ICpzaywgc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgX19iZTE2IHByb3RvKQogCWlmIChwcm90byA9 PSAwIHx8ICFuZWVkX3JlaG9vaykKIAkJZ290byBvdXRfdW5sb2NrOwogCi0JaWYgKCFkZXYgfHwg KGRldi0+ZmxhZ3MgJiBJRkZfVVApKSB7CisJaWYgKCF1bmxpc3RlZCAmJiAoIWRldiB8fCAoZGV2 LT5mbGFncyAmIElGRl9VUCkpKSB7CiAJCXJlZ2lzdGVyX3Byb3RfaG9vayhzayk7CiAJfSBlbHNl IHsKIAkJc2stPnNrX2VyciA9IEVORVRET1dOOwpAQCAtMjk1MCw5ICsyOTgzLDEwIEBAIHN0YXRp YyBpbnQgcGFja2V0X2RvX2JpbmQoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgbmV0X2RldmljZSAq ZGV2LCBfX2JlMTYgcHJvdG8pCiAJfQogCiBvdXRfdW5sb2NrOgorCXJjdV9yZWFkX3VubG9jaygp OwogCXNwaW5fdW5sb2NrKCZwby0+YmluZF9sb2NrKTsKIAlyZWxlYXNlX3NvY2soc2spOwotCXJl dHVybiAwOworCXJldHVybiByZXQ7CiB9CiAKIC8qCkBAIC0yOTY0LDggKzI5OTgsNiBAQCBzdGF0 aWMgaW50IHBhY2tldF9iaW5kX3Nwa3Qoc3RydWN0IHNvY2tldCAqc29jaywgc3RydWN0IHNvY2th ZGRyICp1YWRkciwKIHsKIAlzdHJ1Y3Qgc29jayAqc2sgPSBzb2NrLT5zazsKIAljaGFyIG5hbWVb MTVdOwotCXN0cnVjdCBuZXRfZGV2aWNlICpkZXY7Ci0JaW50IGVyciA9IC1FTk9ERVY7CiAKIAkv KgogCSAqCUNoZWNrIGxlZ2FsaXR5CkBAIC0yOTc1LDE5ICszMDA3LDEzIEBAIHN0YXRpYyBpbnQg cGFja2V0X2JpbmRfc3BrdChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3Qgc29ja2FkZHIgKnVh ZGRyLAogCQlyZXR1cm4gLUVJTlZBTDsKIAlzdHJsY3B5KG5hbWUsIHVhZGRyLT5zYV9kYXRhLCBz aXplb2YobmFtZSkpOwogCi0JZGV2ID0gZGV2X2dldF9ieV9uYW1lKHNvY2tfbmV0KHNrKSwgbmFt ZSk7Ci0JaWYgKGRldikKLQkJZXJyID0gcGFja2V0X2RvX2JpbmQoc2ssIGRldiwgcGt0X3NrKHNr KS0+bnVtKTsKLQlyZXR1cm4gZXJyOworCXJldHVybiBwYWNrZXRfZG9fYmluZChzaywgbmFtZSwg MCwgcGt0X3NrKHNrKS0+bnVtKTsKIH0KIAogc3RhdGljIGludCBwYWNrZXRfYmluZChzdHJ1Y3Qg c29ja2V0ICpzb2NrLCBzdHJ1Y3Qgc29ja2FkZHIgKnVhZGRyLCBpbnQgYWRkcl9sZW4pCiB7CiAJ c3RydWN0IHNvY2thZGRyX2xsICpzbGwgPSAoc3RydWN0IHNvY2thZGRyX2xsICopdWFkZHI7CiAJ c3RydWN0IHNvY2sgKnNrID0gc29jay0+c2s7Ci0Jc3RydWN0IG5ldF9kZXZpY2UgKmRldiA9IE5V TEw7Ci0JaW50IGVycjsKLQogCiAJLyoKIAkgKglDaGVjayBsZWdhbGl0eQpAQCAtMjk5OCwxNiAr MzAyNCw4IEBAIHN0YXRpYyBpbnQgcGFja2V0X2JpbmQoc3RydWN0IHNvY2tldCAqc29jaywgc3Ry dWN0IHNvY2thZGRyICp1YWRkciwgaW50IGFkZHJfbGVuCiAJaWYgKHNsbC0+c2xsX2ZhbWlseSAh PSBBRl9QQUNLRVQpCiAJCXJldHVybiAtRUlOVkFMOwogCi0JaWYgKHNsbC0+c2xsX2lmaW5kZXgp IHsKLQkJZXJyID0gLUVOT0RFVjsKLQkJZGV2ID0gZGV2X2dldF9ieV9pbmRleChzb2NrX25ldChz ayksIHNsbC0+c2xsX2lmaW5kZXgpOwotCQlpZiAoZGV2ID09IE5VTEwpCi0JCQlnb3RvIG91dDsK LQl9Ci0JZXJyID0gcGFja2V0X2RvX2JpbmQoc2ssIGRldiwgc2xsLT5zbGxfcHJvdG9jb2wgPyA6 IHBrdF9zayhzayktPm51bSk7Ci0KLW91dDoKLQlyZXR1cm4gZXJyOworCXJldHVybiBwYWNrZXRf ZG9fYmluZChzaywgTlVMTCwgc2xsLT5zbGxfaWZpbmRleCwKKwkJCSAgICAgIHNsbC0+c2xsX3By b3RvY29sID8gOiBwa3Rfc2soc2spLT5udW0pOwogfQogCiBzdGF0aWMgc3RydWN0IHByb3RvIHBh Y2tldF9wcm90byA9IHsKLS0gCjIuNC4xCgoKRnJvbSBiODRlMWE3MWY5YjM4MGI4ZmU4ODQzZTVh ZjRjNzJjYWQ2NDBhMWRjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKYXkgVm9zYnVy Z2ggPGpheS52b3NidXJnaEBjYW5vbmljYWwuY29tPgpEYXRlOiBGcmksIDYgTm92IDIwMTUgMTc6 MjM6MjMgLTA4MDAKU3ViamVjdDogW1BBVENIIDE2LzE3XSBib25kaW5nOiBmaXggcGFuaWMgb24g bm9uLUFSUEhSRF9FVEhFUiBlbnNsYXZlIGZhaWx1cmUKClsgVXBzdHJlYW0gY29tbWl0IDQwYmFl YzIyNTc2NWM1NGVlZmE4NzA1MzBkZDYxM2JhZDk4MjliYjcgXQoKU2luY2UgY29tbWl0IDdkNWNk MmNlNTI5Yiwgd2hlbiBib25kX2Vuc2xhdmUgZmFpbHMgb24gZGV2aWNlcyB0aGF0CmFyZSBub3Qg QVJQSFJEX0VUSEVSLCBpZiBuZWVkZWQsIGl0IHJlc2V0cyB0aGUgYm9uZGluZyBkZXZpY2UgYmFj ayB0bwpBUlBIUkRfRVRIRVIgYnkgY2FsbGluZyBldGhlcl9zZXR1cC4KCglVbmZvcnR1bmF0ZWx5 LCBldGhlcl9zZXR1cCBjbG9iYmVycyBkZXYtPmZsYWdzLCBjbGVhcmluZyBJRkZfVVAKaWYgdGhl IGJvbmQgZGV2aWNlIGlzIHVwLCBsZWF2aW5nIGl0IGluIGEgcXVhc2ktZG93biBzdGF0ZSB3aXRo b3V0CmhhdmluZyBhY3R1YWxseSBnb25lIHRocm91Z2ggZGV2X2Nsb3NlLiAgRm9yIGJvbmRpbmcs IGlmIGFueSBwZXJpb2RpYwp3b3JrIHF1ZXVlIGl0ZW1zIGFyZSBhY3RpdmUgKG1paW1vbiwgYXJw X2ludGVydmFsLCBldGMpLCB0aG9zZSB3aWxsCnJlbWFpbiBydW5uaW5nLCBhcyB0aGV5IGFyZSBz dG9wcGVkIGJ5IGJvbmRfY2xvc2UuICBBdCB0aGlzIHBvaW50LCBpZgp0aGUgYm9uZGluZyBtb2R1 bGUgaXMgdW5sb2FkZWQgb3IgdGhlIGJvbmQgaXMgZGVsZXRlZCwgdGhlIHN5c3RlbSB3aWxsCnBh bmljIHdoZW4gdGhlIHdvcmsgZnVuY3Rpb24gaXMgY2FsbGVkLgoKCVRoaXMgcGFuaWMgaXMgcmVz b2x2ZWQgYnkgY2FsbGluZyBkZXZfY2xvc2Ugb24gdGhlIGJvbmQgaXRzZWxmCnByaW9yIHRvIGNh bGxpbmcgZXRoZXJfc2V0dXAuCgpDYzogTmlrb2xheSBBbGVrc2FuZHJvdiA8bmlrb2xheUBjdW11 bHVzbmV0d29ya3MuY29tPgpTaWduZWQtb2ZmLWJ5OiBKYXkgVm9zYnVyZ2ggPGpheS52b3NidXJn aEBjYW5vbmljYWwuY29tPgpGaXhlczogN2Q1Y2QyY2U1MjkyICgiYm9uZGluZzogY29ycmVjdGx5 IGhhbmRsZSBib25kaW5nIHR5cGUgY2hhbmdlIG9uIGVuc2xhdmUgZmFpbHVyZSIpCkFja2VkLWJ5 OiBOaWtvbGF5IEFsZWtzYW5kcm92IDxuaWtvbGF5QGN1bXVsdXNuZXR3b3Jrcy5jb20+ClNpZ25l ZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2 ZXJzL25ldC9ib25kaW5nL2JvbmRfbWFpbi5jIHwgMSArCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNl cnRpb24oKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ib25kaW5nL2JvbmRfbWFpbi5jIGIv ZHJpdmVycy9uZXQvYm9uZGluZy9ib25kX21haW4uYwppbmRleCA3NzFhNDQ5Li5iY2Q3YmRkIDEw MDY0NAotLS0gYS9kcml2ZXJzL25ldC9ib25kaW5nL2JvbmRfbWFpbi5jCisrKyBiL2RyaXZlcnMv bmV0L2JvbmRpbmcvYm9uZF9tYWluLmMKQEAgLTE3NDksNiArMTc0OSw3IEBAIGVycl91bmRvX2Zs YWdzOgogCQkJCQkgICAgc2xhdmVfZGV2LT5kZXZfYWRkcikpCiAJCQlldGhfaHdfYWRkcl9yYW5k b20oYm9uZF9kZXYpOwogCQlpZiAoYm9uZF9kZXYtPnR5cGUgIT0gQVJQSFJEX0VUSEVSKSB7CisJ CQlkZXZfY2xvc2UoYm9uZF9kZXYpOwogCQkJZXRoZXJfc2V0dXAoYm9uZF9kZXYpOwogCQkJYm9u ZF9kZXYtPmZsYWdzIHw9IElGRl9NQVNURVI7CiAJCQlib25kX2Rldi0+cHJpdl9mbGFncyAmPSB+ SUZGX1RYX1NLQl9TSEFSSU5HOwotLSAKMi40LjEKCgpGcm9tIGIwMTk1MzNjNjkyNmI1ZGQ1YTdi MWQ2ZjhjYjg2MTZiNTFlMzkyOTcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVyaWMg RHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0ZTogTW9uLCA5IE5vdiAyMDE1IDE3OjUx OjIzIC0wODAwClN1YmplY3Q6IFtQQVRDSCAxNy8xN10gbmV0OiBmaXggYSByYWNlIGluIGRzdF9y ZWxlYXNlKCkKClsgVXBzdHJlYW0gY29tbWl0IGQ2OWJiZjg4YzhkMGIzNjdjZjNlM2EwNTJmNmRh YWRmNjMwZWU1NjYgXQoKT25seSBjcHUgc2VlaW5nIGRzdCByZWZjb3VudCBnb2luZyB0byAwIGNh biBzYWZlbHkKZGVyZWZlcmVuY2UgZHN0LT5mbGFncy4KCk90aGVyd2lzZSBhbiBvdGhlciBjcHUg bWlnaHQgYWxyZWFkeSBoYXZlIGZyZWVkIHRoZSBkc3QuCgpGaXhlczogMjdiNzVjOTVmMTBkICgi bmV0OiBhdm9pZCBSQ1UgZm9yIE5PQ0FDSEUgZHN0IikKUmVwb3J0ZWQtYnk6IEdyZWcgVGhlbGVu IDxndGhlbGVuQGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6 ZXRAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZl bWxvZnQubmV0PgotLS0KIG5ldC9jb3JlL2RzdC5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEg aW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvZHN0LmMg Yi9uZXQvY29yZS9kc3QuYwppbmRleCAwNzcxYzhjLi5kNmE1YTBiIDEwMDY0NAotLS0gYS9uZXQv Y29yZS9kc3QuYworKysgYi9uZXQvY29yZS9kc3QuYwpAQCAtMzA2LDcgKzMwNiw3IEBAIHZvaWQg ZHN0X3JlbGVhc2Uoc3RydWN0IGRzdF9lbnRyeSAqZHN0KQogCQlpZiAodW5saWtlbHkobmV3cmVm Y250IDwgMCkpCiAJCQluZXRfd2Fybl9yYXRlbGltaXRlZCgiJXM6IGRzdDolcCByZWZjbnQ6JWRc biIsCiAJCQkJCSAgICAgX19mdW5jX18sIGRzdCwgbmV3cmVmY250KTsKLQkJaWYgKHVubGlrZWx5 KGRzdC0+ZmxhZ3MgJiBEU1RfTk9DQUNIRSkgJiYgIW5ld3JlZmNudCkKKwkJaWYgKCFuZXdyZWZj bnQgJiYgdW5saWtlbHkoZHN0LT5mbGFncyAmIERTVF9OT0NBQ0hFKSkKIAkJCWNhbGxfcmN1KCZk c3QtPnJjdV9oZWFkLCBkc3RfZGVzdHJveV9yY3UpOwogCX0KIH0KLS0gCjIuNC4xCgo= ----Next_Part(Fri_Nov_13_16_38_08_2015_159)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_42.mbox" RnJvbSA5ODk0OWU3YzE2OGI1YmZmMzQyOWQ4YzFlMDJmMWMzZDA3MjBmZWE1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW4gQ2FycGVudGVyIDxkYW4uY2FycGVudGVyQG9yYWNsZS5j b20+CkRhdGU6IE1vbiwgMTkgT2N0IDIwMTUgMTM6MTY6NDkgKzAzMDAKU3ViamVjdDogW1BBVENI IDAxLzMwXSBpcmRhOiBwcmVjZWRlbmNlIGJ1ZyBpbiBpcmxtcF9zZXFfaGJfaWR4KCkKTUlNRS1W ZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRl bnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKClsgVXBzdHJlYW0gY29tbWl0IDUwMDEwYzIwNTk3 ZDE0NjY3ZWZmMGZkYjYyODMwOTk4NmYxOTUyMzAgXQoKVGhpcyBpcyBkZWNyZW1lbnRpbmcgdGhl IHBvaW50ZXIsIGluc3RlYWQgb2YgdGhlIHZhbHVlIHN0b3JlZCBpbiB0aGUKcG9pbnRlci4gIEtB U2FuIGRldGVjdHMgaXQgYXMgYW4gb3V0IG9mIGJvdW5kcyByZWZlcmVuY2UuCgpSZXBvcnRlZC1i eTogIkJlcnJ5wqBDaGVuZyDnqIvlkJso5oiQ5re8KSIgPGNoZW5nbWlhby5jakBhbGliYWJhLWlu Yy5jb20+ClNpZ25lZC1vZmYtYnk6IERhbiBDYXJwZW50ZXIgPGRhbi5jYXJwZW50ZXJAb3JhY2xl LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0 PgotLS0KIG5ldC9pcmRhL2lybG1wLmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRp b24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvaXJkYS9pcmxtcC5jIGIvbmV0 L2lyZGEvaXJsbXAuYwppbmRleCBhMjZjNDAxLi40Mzk2NDU5IDEwMDY0NAotLS0gYS9uZXQvaXJk YS9pcmxtcC5jCisrKyBiL25ldC9pcmRhL2lybG1wLmMKQEAgLTE4MzksNyArMTgzOSw3IEBAIHN0 YXRpYyB2b2lkICppcmxtcF9zZXFfaGJfaWR4KHN0cnVjdCBpcmxtcF9pdGVyX3N0YXRlICppdGVy LCBsb2ZmX3QgKm9mZikKIAlmb3IgKGVsZW1lbnQgPSBoYXNoYmluX2dldF9maXJzdChpdGVyLT5o YXNoYmluKTsKIAkgICAgIGVsZW1lbnQgIT0gTlVMTDsKIAkgICAgIGVsZW1lbnQgPSBoYXNoYmlu X2dldF9uZXh0KGl0ZXItPmhhc2hiaW4pKSB7Ci0JCWlmICghb2ZmIHx8ICpvZmYtLSA9PSAwKSB7 CisJCWlmICghb2ZmIHx8ICgqb2ZmKS0tID09IDApIHsKIAkJCS8qIE5COiBoYXNoYmluIGxlZnQg bG9ja2VkICovCiAJCQlyZXR1cm4gZWxlbWVudDsKIAkJfQotLSAKMi40LjEKCgpGcm9tIDBlNWZi NzczZjI1MWQ1ZjM0MjlhNmJiYzYwYjI2MmZmNjU2Mzg1OTAgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IEpvbiBQYXVsIE1hbG95IDxqb24ubWFsb3lAZXJpY3Nzb24uY29tPgpEYXRlOiBN b24sIDE5IE9jdCAyMDE1IDExOjMzOjAwIC0wNDAwClN1YmplY3Q6IFtQQVRDSCAwMi8zMF0gdGlw YzogYWxsb3cgbm9uLWxpbmVhciBmaXJzdCBmcmFnbWVudCBidWZmZXIKClsgVXBzdHJlYW0gY29t bWl0IDQ1YzhiN2IxNzVjZWIyZDU0MmUwZmUxNTI0NzM3N2JmM2JjZTI5ZWMgXQoKVGhlIGN1cnJl bnQgY29kZSBmb3IgbWVzc2FnZSByZWFzc2VtYmx5IGlzIGVycm9uZW91c2x5IGFzc3VtaW5nIHRo YXQKdGhlIHRoZSBmaXJzdCBhcnJpdmluZyBmcmFnbWVudCBidWZmZXIgYWx3YXlzIGlzIGxpbmVh ciwgYW5kIHRoZW4gZ29lcwphaGVhZCByZXNldHRpbmcgdGhlIGZyYWdtZW50IGxpc3Qgb2YgdGhh dCBidWZmZXIgaW4gYW50aWNpcGF0aW9uIG9mCm1vcmUgYXJyaXZpbmcgZnJhZ21lbnRzLgoKSG93 ZXZlciwgaWYgdGhlIGJ1ZmZlciBhbHJlYWR5IGhhcHBlbnMgdG8gYmUgbm9uLWxpbmVhciwgd2Ug d2lsbAppbmFkdmVydGVudGx5IGRyb3AgdGhlIGFscmVhZHkgYXR0YWNoZWQgZnJhZ21lbnQgbGlz dCwgYW5kIGxhdGVyCm9uIHRyaWcgYSBCVUcoKSBpbiBfX3Bza2JfcHVsbF90YWlsKCkuCgpXZSBz ZWUgdGhpcyBoYXBwZW4gd2hlbiBydW5uaW5nIGZyYWdtZW50ZWQgVElQQyBtdWx0aWNhc3QgYWNy b3NzIFVEUCwKc29tZXRoaW5nIG1hZGUgcG9zc2libGUgc2luY2UKY29tbWl0IGQwZjkxOTM4YmVk ZSAoInRpcGM6IGFkZCBpcC91ZHAgbWVkaWEgdHlwZSIpCgpXZSBmaXggdGhpcyBieSBub3QgcmVz ZXR0aW5nIHRoZSBmcmFnbWVudCBsaXN0IHdoZW4gdGhlIGJ1ZmZlciBpcyBub24tCmxpbmVhciwg YW5kIGJ5IGluaXRpYXRsaXppbmcgb3VyIHByaXZhdGUgZnJhZ21lbnQgbGlzdCB0YWlsIHBvaW50 ZXIgdG8KdGhlIHRhaWwgb2YgdGhlIGV4aXN0aW5nIGZyYWdtZW50IGxpc3QuCgpGaXhlczogY29t bWl0IGQwZjkxOTM4YmVkZSAoInRpcGM6IGFkZCBpcC91ZHAgbWVkaWEgdHlwZSIpClNpZ25lZC1v ZmYtYnk6IEpvbiBNYWxveSA8am9uLm1hbG95QGVyaWNzc29uLmNvbT4KU2lnbmVkLW9mZi1ieTog RGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC90aXBjL21zZy5j IHwgMTIgKysrKysrKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspLCAzIGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC90aXBjL21zZy5jIGIvbmV0L3RpcGMvbXNnLmMK aW5kZXggMDhiNGNjNy4uYjNhMzkzMSAxMDA2NDQKLS0tIGEvbmV0L3RpcGMvbXNnLmMKKysrIGIv bmV0L3RpcGMvbXNnLmMKQEAgLTEyMSw3ICsxMjEsNyBAQCBpbnQgdGlwY19idWZfYXBwZW5kKHN0 cnVjdCBza19idWZmICoqaGVhZGJ1Ziwgc3RydWN0IHNrX2J1ZmYgKipidWYpCiB7CiAJc3RydWN0 IHNrX2J1ZmYgKmhlYWQgPSAqaGVhZGJ1ZjsKIAlzdHJ1Y3Qgc2tfYnVmZiAqZnJhZyA9ICpidWY7 Ci0Jc3RydWN0IHNrX2J1ZmYgKnRhaWw7CisJc3RydWN0IHNrX2J1ZmYgKnRhaWwgPSBOVUxMOwog CXN0cnVjdCB0aXBjX21zZyAqbXNnOwogCXUzMiBmcmFnaWQ7CiAJaW50IGRlbHRhOwpAQCAtMTQx LDkgKzE0MSwxNSBAQCBpbnQgdGlwY19idWZfYXBwZW5kKHN0cnVjdCBza19idWZmICoqaGVhZGJ1 Ziwgc3RydWN0IHNrX2J1ZmYgKipidWYpCiAJCWlmICh1bmxpa2VseShza2JfdW5jbG9uZShmcmFn LCBHRlBfQVRPTUlDKSkpCiAJCQlnb3RvIGVycjsKIAkJaGVhZCA9ICpoZWFkYnVmID0gZnJhZzsK LQkJc2tiX2ZyYWdfbGlzdF9pbml0KGhlYWQpOwotCQlUSVBDX1NLQl9DQihoZWFkKS0+dGFpbCA9 IE5VTEw7CiAJCSpidWYgPSBOVUxMOworCQlUSVBDX1NLQl9DQihoZWFkKS0+dGFpbCA9IE5VTEw7 CisJCWlmIChza2JfaXNfbm9ubGluZWFyKGhlYWQpKSB7CisJCQlza2Jfd2Fsa19mcmFncyhoZWFk LCB0YWlsKSB7CisJCQkJVElQQ19TS0JfQ0IoaGVhZCktPnRhaWwgPSB0YWlsOworCQkJfQorCQl9 IGVsc2UgeworCQkJc2tiX2ZyYWdfbGlzdF9pbml0KGhlYWQpOworCQl9CiAJCXJldHVybiAwOwog CX0KIAotLSAKMi40LjEKCgpGcm9tIGNmMDYzNGRhMTAzN2IwNWEzODYwYWY1MzRlZjBjMzg0Y2I4 NWQ5YzggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFJlbmF0byBXZXN0cGhhbCA8cmVu YXRvd2VzdHBoYWxAZ21haWwuY29tPgpEYXRlOiBNb24sIDE5IE9jdCAyMDE1IDE4OjUxOjM0IC0w MjAwClN1YmplY3Q6IFtQQVRDSCAwMy8zMF0gdGNwOiByZW1vdmUgaW1wcm9wZXIgcHJlZW1wdGlv biBjaGVjayBpbgogdGNwX3htaXRfcHJvYmVfc2tiKCkKClsgVXBzdHJlYW0gY29tbWl0IGUyZTgw MDlmZjcyYWQyYTc5NWI2Nzc4NWYzMjM4YWYxNTIxNDYzNjggXQoKQ29tbWl0IGU1MjBhZjQ4Yzdl NWEgaW50cm9kdWNlZCB0aGUgZm9sbG93aW5nIGJ1ZyB3aGVuIHNldHRpbmcgdGhlClRDUF9SRVBB SVIgc29ja29wdGlvbjoKClsgMjg2MC42NTcwMzZdIEJVRzogdXNpbmcgX190aGlzX2NwdV9hZGQo KSBpbiBwcmVlbXB0aWJsZSBbMDAwMDAwMDBdIGNvZGU6IGRhZW1vbi8xMjE2NApbIDI4NjAuNjU3 MDQ1XSBjYWxsZXIgaXMgX190aGlzX2NwdV9wcmVlbXB0X2NoZWNrKzB4MTMvMHgyMApbIDI4NjAu NjU3MDQ5XSBDUFU6IDEgUElEOiAxMjE2NCBDb21tOiBkYWVtb24gTm90IHRhaW50ZWQgNC4yLjMg IzEKWyAyODYwLjY1NzA1MV0gSGFyZHdhcmUgbmFtZTogRGVsbCBJbmMuIFBvd2VyRWRnZSBSMjEw IElJLzBKUDdUUiwgQklPUyAyLjAuNSAwMy8xMy8yMDEyClsgMjg2MC42NTcwNTRdICBmZmZmZmZm ZjgxYzdmMDcxIGZmZmY4ODAyMzFlOWZkZjggZmZmZmZmZmY4MTg1ZDc2NSAwMDAwMDAwMDAwMDAw MDAyClsgMjg2MC42NTcwNThdICAwMDAwMDAwMDAwMDAwMDAxIGZmZmY4ODAyMzFlOWZlMjggZmZm ZmZmZmY4MTQ2ZWQ5MSBmZmZmODgwMjMxZTlmZTE4ClsgMjg2MC42NTcwNjJdICBmZmZmZmZmZjgx Y2QxYTVkIGZmZmY4ODAyMzUzNGYyMDAgZmZmZjg4MDBiOTgxMTAwMCBmZmZmODgwMjMxZTlmZTM4 ClsgMjg2MC42NTcwNjVdIENhbGwgVHJhY2U6ClsgMjg2MC42NTcwNzJdICBbPGZmZmZmZmZmODE4 NWQ3NjU+XSBkdW1wX3N0YWNrKzB4NGYvMHg3YgpbIDI4NjAuNjU3MDc1XSAgWzxmZmZmZmZmZjgx NDZlZDkxPl0gY2hlY2tfcHJlZW1wdGlvbl9kaXNhYmxlZCsweGUxLzB4ZjAKWyAyODYwLjY1NzA3 OF0gIFs8ZmZmZmZmZmY4MTQ2ZWRkMz5dIF9fdGhpc19jcHVfcHJlZW1wdF9jaGVjaysweDEzLzB4 MjAKWyAyODYwLjY1NzA4Ml0gIFs8ZmZmZmZmZmY4MTdlMGJjNz5dIHRjcF94bWl0X3Byb2JlX3Nr YisweGM3LzB4MTAwClsgMjg2MC42NTcwODVdICBbPGZmZmZmZmZmODE3ZTFlMmQ+XSB0Y3Bfc2Vu ZF93aW5kb3dfcHJvYmUrMHgyZC8weDMwClsgMjg2MC42NTcwODldICBbPGZmZmZmZmZmODE3ZDFk OGM+XSBkb190Y3Bfc2V0c29ja29wdC5pc3JhLjI5KzB4NzRjLzB4ODMwClsgMjg2MC42NTcwOTNd ICBbPGZmZmZmZmZmODE3ZDFlOWM+XSB0Y3Bfc2V0c29ja29wdCsweDJjLzB4MzAKWyAyODYwLjY1 NzA5N10gIFs8ZmZmZmZmZmY4MTc2N2I3ND5dIHNvY2tfY29tbW9uX3NldHNvY2tvcHQrMHgxNC8w eDIwClsgMjg2MC42NTcxMDBdICBbPGZmZmZmZmZmODE3NjY5ZTE+XSBTeVNfc2V0c29ja29wdCsw eDcxLzB4YzAKWyAyODYwLjY1NzEwNF0gIFs8ZmZmZmZmZmY4MTg2NTE3Mj5dIGVudHJ5X1NZU0NB TExfNjRfZmFzdHBhdGgrMHgxNi8weDc1CgpTaW5jZSB0Y3BfeG1pdF9wcm9iZV9za2IoKSBjYW4g YmUgY2FsbGVkIGZyb20gcHJvY2VzcyBjb250ZXh0LCB1c2UKTkVUX0lOQ19TVEFUUygpIGluc3Rl YWQgb2YgTkVUX0lOQ19TVEFUU19CSCgpLgoKRml4ZXM6IGU1MjBhZjQ4YzdlNSAoInRjcDogYWRk IFRDUFdpblByb2JlIGFuZCBUQ1BLZWVwQWxpdmUgU05NUCBjb3VudGVycyIpClNpZ25lZC1vZmYt Ynk6IFJlbmF0byBXZXN0cGhhbCA8cmVuYXRvd0B0YWdob3MuY29tLmJyPgpTaWduZWQtb2ZmLWJ5 OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjQvdGNw X291dHB1dC5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0 aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvdGNwX291dHB1dC5jIGIvbmV0L2lwdjQvdGNw X291dHB1dC5jCmluZGV4IGI3ZGVkZDkuLjc0N2E0YzQgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3Rj cF9vdXRwdXQuYworKysgYi9uZXQvaXB2NC90Y3Bfb3V0cHV0LmMKQEAgLTM0MDYsNyArMzQwNiw3 IEBAIHN0YXRpYyBpbnQgdGNwX3htaXRfcHJvYmVfc2tiKHN0cnVjdCBzb2NrICpzaywgaW50IHVy Z2VudCwgaW50IG1pYikKIAkgKi8KIAl0Y3BfaW5pdF9ub25kYXRhX3NrYihza2IsIHRwLT5zbmRf dW5hIC0gIXVyZ2VudCwgVENQSERSX0FDSyk7CiAJc2tiX21zdGFtcF9nZXQoJnNrYi0+c2tiX21z dGFtcCk7Ci0JTkVUX0lOQ19TVEFUU19CSChzb2NrX25ldChzayksIG1pYik7CisJTkVUX0lOQ19T VEFUUyhzb2NrX25ldChzayksIG1pYik7CiAJcmV0dXJuIHRjcF90cmFuc21pdF9za2Ioc2ssIHNr YiwgMCwgR0ZQX0FUT01JQyk7CiB9CiAKLS0gCjIuNC4xCgoKRnJvbSA4ZWRjN2Y2YTQzODc2YTZm M2YwYjU4ZTBjMzk2OWVkMzNiYjg3YzlkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBE YXZpZCBIZXJybWFubiA8ZGguaGVycm1hbm5AZ21haWwuY29tPgpEYXRlOiBXZWQsIDIxIE9jdCAy MDE1IDExOjQ3OjQzICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNC8zMF0gbmV0bGluazogZml4IGxv Y2tpbmcgYXJvdW5kIE5FVExJTktfTElTVF9NRU1CRVJTSElQUwoKWyBVcHN0cmVhbSBjb21taXQg NDcxOTFkNjViNjQ3YWY1ZWI1YzgyZWRlNzBlZDRjMjRiMWU5M2VmNCBdCgpDdXJyZW50bHksIE5F VExJTktfTElTVF9NRU1CRVJTSElQUyBncmFicyB0aGUgbmV0bGluayB0YWJsZSB3aGlsZSBjb3B5 aW5nCnRoZSBtZW1iZXJzaGlwIHN0YXRlIHRvIHVzZXItc3BhY2UuIEhvd2V2ZXIsIGdyYWJpbmcg dGhlIG5ldGxpbmsgdGFibGUgaXMKZWZmZWN0aXZlbHkgYSB3cml0ZV9sb2NrX2lycSgpLCBhbmQg YXMgc3VjaCB3ZSBzaG91bGQgbm90IGJlIHRyaWdnZXJpbmcKcGFnZS1mYXVsdHMgaW4gdGhlIGNy aXRpY2FsIHNlY3Rpb24uCgpUaGlzIGNhbiBiZSBlYXNpbHkgcmVwcm9kdWNlZCBieSB0aGUgZm9s bG93aW5nIHNuaXBwZXQ6CiAgICBpbnQgcyA9IHNvY2tldChBRl9ORVRMSU5LLCBTT0NLX1JBVywg TkVUTElOS19ST1VURSk7CiAgICB2b2lkICpwID0gbW1hcCgwLCA0MDk2LCBQUk9UX1JFQUR8UFJP VF9XUklURSwgTUFQX1BSSVZBVEV8TUFQX0FOT04sIC0xLCAwKTsKICAgIGludCByID0gZ2V0c29j a29wdChzLCAweDEwZSwgOSwgcCwgKHZvaWQqKSgoY2hhciopcCArIDQwOTIpKTsKClRoaXMgc2hv dWxkIHdvcmsganVzdCBmaW5lLCBidXQgY3VycmVudGx5IHRyaWdnZXJzIEVGQVVMVCBhbmQgYSBw b3NzaWJsZQpXQVJOX09OIGJlbG93IGhhbmRsZV9tbV9mYXVsdCgpLgoKRml4IHRoaXMgYnkgcmVk dWNpbmcgbG9ja2luZyBvZiBORVRMSU5LX0xJU1RfTUVNQkVSU0hJUFMgdG8gYSByZWFkLXNpZGUK bG9jay4gVGhlIHdyaXRlLWxvY2sgd2FzIG92ZXJraWxsIGluIHRoZSBmaXJzdCBwbGFjZSwgYW5k IHRoZSByZWFkLWxvY2sKYWxsb3dzIHBhZ2UtZmF1bHRzIGp1c3QgZmluZS4KClJlcG9ydGVkLWJ5 OiBEbWl0cnkgVnl1a292IDxkdnl1a292QGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlk IEhlcnJtYW5uIDxkaC5oZXJybWFubkBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMu IE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvbmV0bGluay9hZl9uZXRsaW5r LmMgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvbmV0L25ldGxpbmsvYWZfbmV0bGluay5jIGIvbmV0L25ldGxpbmsv YWZfbmV0bGluay5jCmluZGV4IGExMzNkMTYuLjhiMTU4ZjcgMTAwNjQ0Ci0tLSBhL25ldC9uZXRs aW5rL2FmX25ldGxpbmsuYworKysgYi9uZXQvbmV0bGluay9hZl9uZXRsaW5rLmMKQEAgLTIzNDYs NyArMjM0Niw3IEBAIHN0YXRpYyBpbnQgbmV0bGlua19nZXRzb2Nrb3B0KHN0cnVjdCBzb2NrZXQg KnNvY2ssIGludCBsZXZlbCwgaW50IG9wdG5hbWUsCiAJCWludCBwb3MsIGlkeCwgc2hpZnQ7CiAK IAkJZXJyID0gMDsKLQkJbmV0bGlua190YWJsZV9ncmFiKCk7CisJCW5ldGxpbmtfbG9ja190YWJs ZSgpOwogCQlmb3IgKHBvcyA9IDA7IHBvcyAqIDggPCBubGstPm5ncm91cHM7IHBvcyArPSBzaXpl b2YodTMyKSkgewogCQkJaWYgKGxlbiAtIHBvcyA8IHNpemVvZih1MzIpKQogCQkJCWJyZWFrOwpA QCAtMjM2MSw3ICsyMzYxLDcgQEAgc3RhdGljIGludCBuZXRsaW5rX2dldHNvY2tvcHQoc3RydWN0 IHNvY2tldCAqc29jaywgaW50IGxldmVsLCBpbnQgb3B0bmFtZSwKIAkJfQogCQlpZiAocHV0X3Vz ZXIoQUxJR04obmxrLT5uZ3JvdXBzIC8gOCwgc2l6ZW9mKHUzMikpLCBvcHRsZW4pKQogCQkJZXJy ID0gLUVGQVVMVDsKLQkJbmV0bGlua190YWJsZV91bmdyYWIoKTsKKwkJbmV0bGlua191bmxvY2tf dGFibGUoKTsKIAkJYnJlYWs7CiAJfQogCWRlZmF1bHQ6Ci0tIAoyLjQuMQoKCkZyb20gODI5MTQ0 OTQ1MGIzMzYwZTljYmVmZmI3NTI2MTMwY2NjNTY3OTU1YyBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogPT9VVEYtOD9xP0JqPUMzPUI4cm49MjBNb3JrPz0gPGJqb3JuQG1vcmsubm8+CkRh dGU6IFRodSwgMjIgT2N0IDIwMTUgMTQ6MTU6NTggKzAyMDAKU3ViamVjdDogW1BBVENIIDA1LzMw XSBxbWlfd3dhbjogYWRkIFNpZXJyYSBXaXJlbGVzcyBNQzc0eHgvRU03NHh4Ck1JTUUtVmVyc2lv bjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRy YW5zZmVyLUVuY29kaW5nOiA4Yml0CgpbIFVwc3RyZWFtIGNvbW1pdCAwZGI2NWZjZmNkZWQ3NmZl NGY3NGUzY2E5ZjRlMmJhZjY3YjY4M2VmIF0KCk5ldyBkZXZpY2UgSURzIHNoYW1lbGVzc2x5IGxp ZnRlZCBmcm9tIHRoZSB2ZW5kb3IgZHJpdmVyLgoKU2lnbmVkLW9mZi1ieTogQmrDuHJuIE1vcmsg PGJqb3JuQG1vcmsubm8+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2 ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC91c2IvcW1pX3d3YW4uYyB8IDQgKysrKwogMSBm aWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3Vz Yi9xbWlfd3dhbi5jIGIvZHJpdmVycy9uZXQvdXNiL3FtaV93d2FuLmMKaW5kZXggNjRhNjBhZi4u OGYxNzM4YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvdXNiL3FtaV93d2FuLmMKKysrIGIvZHJp dmVycy9uZXQvdXNiL3FtaV93d2FuLmMKQEAgLTc2NSw2ICs3NjUsMTAgQEAgc3RhdGljIGNvbnN0 IHN0cnVjdCB1c2JfZGV2aWNlX2lkIHByb2R1Y3RzW10gPSB7CiAJe1FNSV9GSVhFRF9JTlRGKDB4 MTE5OSwgMHg5MDU2LCA4KX0sCS8qIFNpZXJyYSBXaXJlbGVzcyBNb2RlbSAqLwogCXtRTUlfRklY RURfSU5URigweDExOTksIDB4OTA1NywgOCl9LAogCXtRTUlfRklYRURfSU5URigweDExOTksIDB4 OTA2MSwgOCl9LAkvKiBTaWVycmEgV2lyZWxlc3MgTW9kZW0gKi8KKwl7UU1JX0ZJWEVEX0lOVEYo MHgxMTk5LCAweDkwNzAsIDgpfSwJLyogU2llcnJhIFdpcmVsZXNzIE1DNzR4eC9FTTc0eHggKi8K Kwl7UU1JX0ZJWEVEX0lOVEYoMHgxMTk5LCAweDkwNzAsIDEwKX0sCS8qIFNpZXJyYSBXaXJlbGVz cyBNQzc0eHgvRU03NHh4ICovCisJe1FNSV9GSVhFRF9JTlRGKDB4MTE5OSwgMHg5MDcxLCA4KX0s CS8qIFNpZXJyYSBXaXJlbGVzcyBNQzc0eHgvRU03NHh4ICovCisJe1FNSV9GSVhFRF9JTlRGKDB4 MTE5OSwgMHg5MDcxLCAxMCl9LAkvKiBTaWVycmEgV2lyZWxlc3MgTUM3NHh4L0VNNzR4eCAqLwog CXtRTUlfRklYRURfSU5URigweDFiYmIsIDB4MDExZSwgNCl9LAkvKiBUZWxla29tIFNwZWVkc3Rp Y2sgTFRFIElJIChBbGNhdGVsIE9uZSBUb3VjaCBMMTAwViBMVEUpICovCiAJe1FNSV9GSVhFRF9J TlRGKDB4MWJiYiwgMHgwMjAzLCAyKX0sCS8qIEFsY2F0ZWwgTDgwME1BICovCiAJe1FNSV9GSVhF RF9JTlRGKDB4MjM1NywgMHgwMjAxLCA0KX0sCS8qIFRQLUxJTksgSFNVUEEgTW9kZW0gTUExODAg Ki8KLS0gCjIuNC4xCgoKRnJvbSA5NGZkY2RlZWJkMGQwOTgyMTc2ODc5ZjE5Nzc5MTY4ZWRmNjBh OWUwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKYXNvbiBXYW5nIDxqYXNvd2FuZ0By ZWRoYXQuY29tPgpEYXRlOiBGcmksIDIzIE9jdCAyMDE1IDAwOjU3OjA1IC0wNDAwClN1YmplY3Q6 IFtQQVRDSCAwNi8zMF0gbWFjdnRhcDogdW5icmVhayByZWNlaXZpbmcgb2YgZ3JvIHNrYiB3aXRo IGZyYWcgbGlzdAoKWyBVcHN0cmVhbSBjb21taXQgZjIzZDUzOGJjMjRhODNjMTYxMjdjMmViODJj OWNmMWFkYzJiNTE0OSBdCgpXZSBkb24ndCBoYXZlIGZyYWdsaXN0IHN1cHBvcnQgaW4gVEFQX0ZF QVRVUkVTLiBUaGlzIHdpbGwgbGVhZApzb2Z0d2FyZSBzZWdtZW50YXRpb24gb2YgZ3JvIHNrYiB3 aXRoIGZyYWcgbGlzdC4gRml4ZXMgYnkgaGF2aW5nCmZyYWcgbGlzdCBzdXBwb3J0IGluIFRBUF9G RUFUVVJFUy4KCldpdGggdGhpcyBwYXRjaCBzaW5nbGUgc2Vzc2lvbiBvZiBuZXRwZXJmIHJlY2Vp dmluZyB3ZXJlIHJlc3RvcmVkIGZyb20KYWJvdXQgNUdiL3MgdG8gYWJvdXQgMTJHYi9zIG9uIG1s eDQuCgpGaXhlcyBhNTY3ZGQ2MjUyICgibWFjdnRhcDogc2ltcGxpZnkgdXNhZ2Ugb2YgdGFwX2Zl YXR1cmVzIikKQ2M6IFZsYWQgWWFzZXZpY2ggPHZ5YXNldmljQHJlZGhhdC5jb20+CkNjOiBNaWNo YWVsIFMuIFRzaXJraW4gPG1zdEByZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBKYXNvbiBXYW5n IDxqYXNvd2FuZ0ByZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRh dmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvbWFjdnRhcC5jIHwgMiArLQogMSBm aWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9uZXQvbWFjdnRhcC5jIGIvZHJpdmVycy9uZXQvbWFjdnRhcC5jCmluZGV4IDI0ODQ3 OGMuLjE5N2M5MzkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L21hY3Z0YXAuYworKysgYi9kcml2 ZXJzL25ldC9tYWN2dGFwLmMKQEAgLTEzNyw3ICsxMzcsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0 IHByb3RvX29wcyBtYWN2dGFwX3NvY2tldF9vcHM7CiAjZGVmaW5lIFRVTl9PRkZMT0FEUyAoTkVU SUZfRl9IV19DU1VNIHwgTkVUSUZfRl9UU09fRUNOIHwgTkVUSUZfRl9UU08gfCBcCiAJCSAgICAg IE5FVElGX0ZfVFNPNiB8IE5FVElGX0ZfVUZPKQogI2RlZmluZSBSWF9PRkZMT0FEUyAoTkVUSUZf Rl9HUk8gfCBORVRJRl9GX0xSTykKLSNkZWZpbmUgVEFQX0ZFQVRVUkVTIChORVRJRl9GX0dTTyB8 IE5FVElGX0ZfU0cpCisjZGVmaW5lIFRBUF9GRUFUVVJFUyAoTkVUSUZfRl9HU08gfCBORVRJRl9G X1NHIHwgTkVUSUZfRl9GUkFHTElTVCkKIAogc3RhdGljIHN0cnVjdCBtYWN2bGFuX2RldiAqbWFj dnRhcF9nZXRfdmxhbl9yY3UoY29uc3Qgc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIHsKLS0gCjIu NC4xCgoKRnJvbSAxMjUwY2FiODQ2OTcwY2JmMWI3NzMyNWJhNWQzMjA1YjRjMDU0NmQzIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBHdWlsbGF1bWUgTmF1bHQgPGcubmF1bHRAYWxwaGFs aW5rLmZyPgpEYXRlOiBUaHUsIDIyIE9jdCAyMDE1IDE2OjU3OjEwICswMjAwClN1YmplY3Q6IFtQ QVRDSCAwNy8zMF0gcHBwOiBmaXggcHBwb2VfZGV2IGRlbGV0aW9uIGNvbmRpdGlvbiBpbgogcHBw b2VfcmVsZWFzZSgpCgpbIFVwc3RyZWFtIGNvbW1pdCAxYWNlYTRmNmNlMWIxYzA5NDE0MzhhY2E3 NWRkMmU1YzZiMDlkYjYwIF0KCldlIGNhbid0IHJlbHkgb24gUFBQT1hfWk9NQklFIHRvIGRlY2lk ZSB3aGV0aGVyIHRvIGNsZWFyIHBvLT5wcHBvZV9kZXYuClBQUE9YX1pPTUJJRSBjYW4gYmUgc2V0 IGJ5IHBwcG9lX2Rpc2NfcmN2KCkgZXZlbiB3aGVuIHBvLT5wcHBvZV9kZXYgaXMKTlVMTC4gU28g d2UgaGF2ZSBubyBndWFyYW50ZWUgdGhhdCAoc2stPnNrX3N0YXRlICYgUFBQT1hfWk9NQklFKSBp bXBsaWVzCihwby0+cHBwb2VfZGV2ICE9IE5VTEwpLgpTaW5jZSB3ZSdyZSByZWxlYXNpbmcgYSBQ UFBvRSBzb2NrZXQsIHdlIHdhbnQgdG8gcmVsZWFzZSB0aGUgcHBwb2VfZGV2CmlmIGl0IGV4aXN0 cyBhbmQgcmVzZXQgc2tfc3RhdGUgdG8gUFBQT1hfREVBRCwgbm8gbWF0dGVyIHRoZSBwcmV2aW91 cwp2YWx1ZSBvZiBza19zdGF0ZS4gU28gd2UgY2FuIGp1c3QgY2hlY2sgZm9yIHBvLT5wcHBvZV9k ZXYgYW5kIGF2b2lkIGFueQphc3N1bXB0aW9uIG9uIHNrLT5za19zdGF0ZS4KCkZpeGVzOiAyYjAx OGQ1N2ZmMTggKCJwcHBvZTogZHJvcCBQUFBPWF9aT01CSUVzIGluIHBwcG9lX3JlbGVhc2UiKQpT aWduZWQtb2ZmLWJ5OiBHdWlsbGF1bWUgTmF1bHQgPGcubmF1bHRAYWxwaGFsaW5rLmZyPgpTaWdu ZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJp dmVycy9uZXQvcHBwL3BwcG9lLmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24o KyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9wcHAvcHBwb2UuYyBi L2RyaXZlcnMvbmV0L3BwcC9wcHBvZS5jCmluZGV4IDJlZDc1MDYuLjVlMGI0MzIgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvbmV0L3BwcC9wcHBvZS5jCisrKyBiL2RyaXZlcnMvbmV0L3BwcC9wcHBvZS5j CkBAIC01ODksNyArNTg5LDcgQEAgc3RhdGljIGludCBwcHBvZV9yZWxlYXNlKHN0cnVjdCBzb2Nr ZXQgKnNvY2spCiAKIAlwbyA9IHBwcG94X3NrKHNrKTsKIAotCWlmIChzay0+c2tfc3RhdGUgJiAo UFBQT1hfQ09OTkVDVEVEIHwgUFBQT1hfQk9VTkQgfCBQUFBPWF9aT01CSUUpKSB7CisJaWYgKHBv LT5wcHBvZV9kZXYpIHsKIAkJZGV2X3B1dChwby0+cHBwb2VfZGV2KTsKIAkJcG8tPnBwcG9lX2Rl diA9IE5VTEw7CiAJfQotLSAKMi40LjEKCgpGcm9tIDBkNTM0YmZhMDFlZmRkYTM3NGUzMjI3M2Mz NjgyMDk0ZGVkMmFjZTggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ICJMZW5kYWNreSwg VGhvbWFzIiA8VGhvbWFzLkxlbmRhY2t5QGFtZC5jb20+CkRhdGU6IFdlZCwgMjEgT2N0IDIwMTUg MTU6Mzc6MDUgLTA1MDAKU3ViamVjdDogW1BBVENIIDA4LzMwXSBhbWQteGdiZTogVXNlIHdtYiBi ZWZvcmUgdXBkYXRpbmcgY3VycmVudCBkZXNjcmlwdG9yCiBjb3VudAoKWyBVcHN0cmVhbSBjb21t aXQgMjBhNDFmYmE2NzlkNjY1Y2RhZTI4MDhlMmI5Y2FlOTdjMDczMzUxZiBdCgpUaGUgY29kZSBj dXJyZW50bHkgdXNlcyB0aGUgbGlnaHR3ZWlnaHQgZG1hX3dtYiBiYXJyaWVyIGJlZm9yZSB1cGRh dGluZwp0aGUgY3VycmVudCBkZXNjcmlwdG9yIGNvdW50LiBVbmRlciBoZWF2eSBsb2FkLCB0aGUg VHggY2xlYW51cCByb3V0aW5lCndhcyBzZWVpbmcgdGhlIHVwZGF0ZWQgY3VycmVudCBkZXNjcmlw dG9yIGNvdW50IGJlZm9yZSB0aGUgdXBkYXRlZApkZXNjcmlwdG9yIGluZm9ybWF0aW9uLiBBcyBh IHJlc3VsdCwgdGhlIFR4IGRlc2NyaXB0b3Igd2FzIGJlaW5nIGNsZWFuZWQKdXAgYmVmb3JlIGl0 IHdhcyB1c2VkIGJlY2F1c2UgaXQgd2FzIG5vdCAib3duZWQiIGJ5IHRoZSBoYXJkd2FyZSB5ZXQs CnJlc3VsdGluZyBpbiBhIFR4IHF1ZXVlIGhhbmcuCgpVc2luZyB0aGUgd21iIGJhcnJpZXIgaW5z dXJlcyB0aGF0IHRoZSBkZXNjcmlwdG9yIGlzIHVwZGF0ZWQgYmVmb3JlIHRoZQpkZXNjcmlwdG9y IGNvdW50ZXIgcHJldmVudGluZyB0aGUgVHggcXVldWUgaGFuZy4gRm9yIGV4dHJhIGluc3VyYW5j ZSwKdGhlIFR4IGNsZWFudXAgcm91dGluZSBpcyBjaGFuZ2VkIHRvIGdyYWIgdGhlIGN1cnJlbnQg ZGVjcmlwdG9yIGNvdW50IG9uCmVudHJ5IGFuZCB1c2VzIHRoYXQgaW5pdGlhbCB2YWx1ZSBpbiB0 aGUgcHJvY2Vzc2luZyBsb29wIHJhdGhlciB0aGFuCnRyeWluZyB0byBjaGFzZSB0aGUgY3VycmVu dCB2YWx1ZS4KClNpZ25lZC1vZmYtYnk6IFRvbSBMZW5kYWNreSA8dGhvbWFzLmxlbmRhY2t5QGFt ZC5jb20+ClRlc3RlZC1ieTogQ2hyaXN0b2ZmZXIgRGFsbCA8Y2hyaXN0b2ZmZXIuZGFsbEBsaW5h cm8ub3JnPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5u ZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3hnYmUveGdiZS1kZXYuYyB8IDIgKy0K IGRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC94Z2JlL3hnYmUtZHJ2LmMgfCA0ICsrKy0KIDIgZmls ZXMgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L2RyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC94Z2JlL3hnYmUtZGV2LmMgYi9kcml2ZXJzL25ldC9l dGhlcm5ldC9hbWQveGdiZS94Z2JlLWRldi5jCmluZGV4IGE0NDczZDguLmU5YWI4YjkgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC94Z2JlL3hnYmUtZGV2LmMKKysrIGIvZHJp dmVycy9uZXQvZXRoZXJuZXQvYW1kL3hnYmUveGdiZS1kZXYuYwpAQCAtMTU5NSw3ICsxNTk1LDcg QEAgc3RhdGljIHZvaWQgeGdiZV9kZXZfeG1pdChzdHJ1Y3QgeGdiZV9jaGFubmVsICpjaGFubmVs KQogCQkJCSAgcGFja2V0LT5yZGVzY19jb3VudCwgMSk7CiAKIAkvKiBNYWtlIHN1cmUgb3duZXJz aGlwIGlzIHdyaXR0ZW4gdG8gdGhlIGRlc2NyaXB0b3IgKi8KLQlkbWFfd21iKCk7CisJd21iKCk7 CiAKIAlyaW5nLT5jdXIgPSBjdXJfaW5kZXggKyAxOwogCWlmICghcGFja2V0LT5za2ItPnhtaXRf bW9yZSB8fApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3hnYmUveGdiZS1k cnYuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC94Z2JlL3hnYmUtZHJ2LmMKaW5kZXggYWFl OWQ1ZS4uZDJiNzdkOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3hnYmUv eGdiZS1kcnYuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQveGdiZS94Z2JlLWRydi5j CkBAIC0xODA3LDYgKzE4MDcsNyBAQCBzdGF0aWMgaW50IHhnYmVfdHhfcG9sbChzdHJ1Y3QgeGdi ZV9jaGFubmVsICpjaGFubmVsKQogCXN0cnVjdCBuZXRkZXZfcXVldWUgKnR4cTsKIAlpbnQgcHJv Y2Vzc2VkID0gMDsKIAl1bnNpZ25lZCBpbnQgdHhfcGFja2V0cyA9IDAsIHR4X2J5dGVzID0gMDsK Kwl1bnNpZ25lZCBpbnQgY3VyOwogCiAJREJHUFIoIi0tPnhnYmVfdHhfcG9sbFxuIik7CiAKQEAg LTE4MTQsMTAgKzE4MTUsMTEgQEAgc3RhdGljIGludCB4Z2JlX3R4X3BvbGwoc3RydWN0IHhnYmVf Y2hhbm5lbCAqY2hhbm5lbCkKIAlpZiAoIXJpbmcpCiAJCXJldHVybiAwOwogCisJY3VyID0gcmlu Zy0+Y3VyOwogCXR4cSA9IG5ldGRldl9nZXRfdHhfcXVldWUobmV0ZGV2LCBjaGFubmVsLT5xdWV1 ZV9pbmRleCk7CiAKIAl3aGlsZSAoKHByb2Nlc3NlZCA8IFhHQkVfVFhfREVTQ19NQVhfUFJPQykg JiYKLQkgICAgICAgKHJpbmctPmRpcnR5ICE9IHJpbmctPmN1cikpIHsKKwkgICAgICAgKHJpbmct PmRpcnR5ICE9IGN1cikpIHsKIAkJcmRhdGEgPSBYR0JFX0dFVF9ERVNDX0RBVEEocmluZywgcmlu Zy0+ZGlydHkpOwogCQlyZGVzYyA9IHJkYXRhLT5yZGVzYzsKIAotLSAKMi40LjEKCgpGcm9tIGE0 ZGVkMTY1NjBhZjc4YjU3ZmFlMzM1YWZjYWRlZjE1MDIxZTQ3NjAgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206ICJMZW5kYWNreSwgVGhvbWFzIiA8VGhvbWFzLkxlbmRhY2t5QGFtZC5jb20+ CkRhdGU6IE1vbiwgMjYgT2N0IDIwMTUgMTc6MTM6NTQgLTA1MDAKU3ViamVjdDogW1BBVENIIDA5 LzMwXSBhbWQteGdiZTogRml4IHJhY2UgYmV0d2VlbiBhY2Nlc3Mgb2YgZGVzYyBhbmQgZGVzYwog aW5kZXgKClsgVXBzdHJlYW0gY29tbWl0IDIwOTg2ZWQ4MjZjYmIzNmJiOGYyZDc3Zjg3MmUzYzUy ZDhkMzA2NDcgXQoKRHVyaW5nIFR4IGNsZWFudXAgaXQncyBzdGlsbCBwb3NzaWJsZSBmb3IgdGhl IGRlc2NyaXB0b3IgZGF0YSB0byBiZQpyZWFkIGFoZWFkIG9mIHRoZSBkZXNjcmlwdG9yIGluZGV4 LiBBIG1lbW9yeSBiYXJyaWVyIGlzIHJlcXVpcmVkIGJldHdlZW4KdGhlIHJlYWQgb2YgdGhlIGRl c2NyaXB0b3IgaW5kZXggYW5kIHRoZSBzdGFydCBvZiB0aGUgVHggY2xlYW51cCBsb29wLgpUaGlz IGFsbG93cyBhIGNoYW5nZSB0byBhIGxpZ2h0ZXItd2VpZ2h0IGJhcnJpZXIgaW4gdGhlIFR4IHRy YW5zbWl0CnJvdXRpbmUganVzdCBiZWZvcmUgdXBkYXRpbmcgdGhlIGN1cnJlbnQgZGVzY3JpcHRv ciBpbmRleC4KClNpbmNlIHRoZSBtZW1vcnkgYmFycmllciBkb2VzIHJlc3VsdCBpbiBleHRyYSBv dmVyaGVhZCBvbiBhcm02NCwga2VlcAp0aGUgcHJldmlvdXMgY2hhbmdlIHRvIG5vdCBjaGFzZSB0 aGUgY3VycmVudCBkZXNjcmlwdG9yIHZhbHVlLiBUaGlzCnByZXZlbnRzIHRoZSBleGVjdXRpb24g b2YgdGhlIGJhcnJpZXIgZm9yIGVhY2ggbG9vcCBwZXJmb3JtZWQuCgpTdWdnZXN0ZWQtYnk6IEFs ZXhhbmRlciBEdXljayA8YWxleGFuZGVyLmR1eWNrQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTog VG9tIExlbmRhY2t5IDx0aG9tYXMubGVuZGFja3lAYW1kLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2 aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVy bmV0L2FtZC94Z2JlL3hnYmUtZGV2LmMgfCAyICstCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQv eGdiZS94Z2JlLWRydi5jIHwgNCArKysrCiAyIGZpbGVzIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygr KSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC94 Z2JlL3hnYmUtZGV2LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQveGdiZS94Z2JlLWRldi5j CmluZGV4IGU5YWI4YjkuLmY2NzJkYmEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0 L2FtZC94Z2JlL3hnYmUtZGV2LmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3hnYmUv eGdiZS1kZXYuYwpAQCAtMTU5NSw3ICsxNTk1LDcgQEAgc3RhdGljIHZvaWQgeGdiZV9kZXZfeG1p dChzdHJ1Y3QgeGdiZV9jaGFubmVsICpjaGFubmVsKQogCQkJCSAgcGFja2V0LT5yZGVzY19jb3Vu dCwgMSk7CiAKIAkvKiBNYWtlIHN1cmUgb3duZXJzaGlwIGlzIHdyaXR0ZW4gdG8gdGhlIGRlc2Ny aXB0b3IgKi8KLQl3bWIoKTsKKwlzbXBfd21iKCk7CiAKIAlyaW5nLT5jdXIgPSBjdXJfaW5kZXgg KyAxOwogCWlmICghcGFja2V0LT5za2ItPnhtaXRfbW9yZSB8fApkaWZmIC0tZ2l0IGEvZHJpdmVy cy9uZXQvZXRoZXJuZXQvYW1kL3hnYmUveGdiZS1kcnYuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0 L2FtZC94Z2JlL3hnYmUtZHJ2LmMKaW5kZXggZDJiNzdkOS4uZGRlMDQ4NiAxMDA2NDQKLS0tIGEv ZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3hnYmUveGdiZS1kcnYuYworKysgYi9kcml2ZXJzL25l dC9ldGhlcm5ldC9hbWQveGdiZS94Z2JlLWRydi5jCkBAIC0xODE2LDYgKzE4MTYsMTAgQEAgc3Rh dGljIGludCB4Z2JlX3R4X3BvbGwoc3RydWN0IHhnYmVfY2hhbm5lbCAqY2hhbm5lbCkKIAkJcmV0 dXJuIDA7CiAKIAljdXIgPSByaW5nLT5jdXI7CisKKwkvKiBCZSBzdXJlIHdlIGdldCByaW5nLT5j dXIgYmVmb3JlIGFjY2Vzc2luZyBkZXNjcmlwdG9yIGRhdGEgKi8KKwlzbXBfcm1iKCk7CisKIAl0 eHEgPSBuZXRkZXZfZ2V0X3R4X3F1ZXVlKG5ldGRldiwgY2hhbm5lbC0+cXVldWVfaW5kZXgpOwog CiAJd2hpbGUgKChwcm9jZXNzZWQgPCBYR0JFX1RYX0RFU0NfTUFYX1BST0MpICYmCi0tIAoyLjQu MQoKCkZyb20gNDg0ZGFjYmZhYmE1N2Y0MDg5ZjE5NjQ3Yjg1OWFhYjA1MzkxOTU2OCBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRmFiaW8gRXN0ZXZhbSA8ZmFiaW8uZXN0ZXZhbUBmcmVl c2NhbGUuY29tPgpEYXRlOiBXZWQsIDEyIEF1ZyAyMDE1IDEyOjEwOjIzIC0wMzAwClN1YmplY3Q6 IFtQQVRDSCAxMC8zMF0gbmV0OiBmZWM6IFJlbW92ZSB1bm5lZWRlZCB1c2Ugb2YgSVNfRVJSX1ZB TFVFKCkgbWFjcm8KClsgVXBzdHJlYW0gY29tbWl0IGIwYzZjZTI0OTExZmNiNjQ3MTVkZTk1Njlm MGY3YjRmNTRkMWQwNDUgXQoKVGhlcmUgaXMgbm8gbmVlZCB0byB1c2UgdGhlIElTX0VSUl9WQUxV RSgpIG1hY3JvIGZvciBjaGVja2luZwp0aGUgcmV0dXJuIHZhbHVlIGZyb20gcG1fcnVudGltZV8q IGZ1bmN0aW9ucy4KCkp1c3QgZG8gYSBzaW1wbGUgbmVnYXRpdmUgdGVzdCBpbnN0ZWFkLgoKVGhl IHNlbWFudGljIHBhdGNoIHRoYXQgbWFrZXMgdGhpcyBjaGFuZ2UgaXMgYXZhaWxhYmxlCmluIHNj cmlwdHMvY29jY2luZWxsZS9hcGkvcG1fcnVudGltZS5jb2NjaS4KClNpZ25lZC1vZmYtYnk6IEZh YmlvIEVzdGV2YW0gPGZhYmlvLmVzdGV2YW1AZnJlZXNjYWxlLmNvbT4KU2lnbmVkLW9mZi1ieTog RGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0 aGVybmV0L2ZyZWVzY2FsZS9mZWNfbWFpbi5jIHwgNiArKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAz IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQv ZXRoZXJuZXQvZnJlZXNjYWxlL2ZlY19tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVl c2NhbGUvZmVjX21haW4uYwppbmRleCBkZTYzMjY2ZC4uYmVlMjc2NSAxMDA2NDQKLS0tIGEvZHJp dmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZlY19tYWluLmMKKysrIGIvZHJpdmVycy9uZXQv ZXRoZXJuZXQvZnJlZXNjYWxlL2ZlY19tYWluLmMKQEAgLTE3NzUsNyArMTc3NSw3IEBAIHN0YXRp YyBpbnQgZmVjX2VuZXRfbWRpb19yZWFkKHN0cnVjdCBtaWlfYnVzICpidXMsIGludCBtaWlfaWQs IGludCByZWdudW0pCiAJaW50IHJldCA9IDA7CiAKIAlyZXQgPSBwbV9ydW50aW1lX2dldF9zeW5j KGRldik7Ci0JaWYgKElTX0VSUl9WQUxVRShyZXQpKQorCWlmIChyZXQgPCAwKQogCQlyZXR1cm4g cmV0OwogCiAJZmVwLT5taWlfdGltZW91dCA9IDA7CkBAIC0xODE0LDcgKzE4MTQsNyBAQCBzdGF0 aWMgaW50IGZlY19lbmV0X21kaW9fd3JpdGUoc3RydWN0IG1paV9idXMgKmJ1cywgaW50IG1paV9p ZCwgaW50IHJlZ251bSwKIAlpbnQgcmV0ID0gMDsKIAogCXJldCA9IHBtX3J1bnRpbWVfZ2V0X3N5 bmMoZGV2KTsKLQlpZiAoSVNfRVJSX1ZBTFVFKHJldCkpCisJaWYgKHJldCA8IDApCiAJCXJldHVy biByZXQ7CiAKIAlmZXAtPm1paV90aW1lb3V0ID0gMDsKQEAgLTI4NjYsNyArMjg2Niw3IEBAIGZl Y19lbmV0X29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYpCiAJaW50IHJldDsKIAogCXJldCA9 IHBtX3J1bnRpbWVfZ2V0X3N5bmMoJmZlcC0+cGRldi0+ZGV2KTsKLQlpZiAoSVNfRVJSX1ZBTFVF KHJldCkpCisJaWYgKHJldCA8IDApCiAJCXJldHVybiByZXQ7CiAKIAlwaW5jdHJsX3BtX3NlbGVj dF9kZWZhdWx0X3N0YXRlKCZmZXAtPnBkZXYtPmRldik7Ci0tIAoyLjQuMQoKCkZyb20gNTU2Zjdi MzJkNjI0MzNmZDgwMzVhZmFjOTMxNzNkZjlmNDYxN2Y3OSBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpEYXRlOiBTYXQsIDI0 IE9jdCAyMDE1IDA1OjQ3OjQ0IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAxMS8zMF0gaXB2NjogZ3Jl OiBzdXBwb3J0IFNJVCBlbmNhcHN1bGF0aW9uCgpbIFVwc3RyZWFtIGNvbW1pdCA3ZTNiNmU3NDIz ZDVmOTk0MjU3YzFkZTg4ZTA2YjUwOTY3M2ZkYmNmIF0KCmdyZV9nc29fc2VnbWVudCgpIGNob2tl cyBpZiBTSVQgZnJhbWVzIHdlcmUgYWdncmVnYXRlZCBieSBHUk8gZW5naW5lLgoKRml4ZXM6IDYx YzFkYjdmYWUyMWUgKCJpcHY2OiBzaXQ6IGFkZCBHU08vVFNPIHN1cHBvcnQiKQpTaWduZWQtb2Zm LWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERh dmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2NC9ncmVfb2Zm bG9hZC5jIHwgMyArKy0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDEgZGVsZXRp b24oLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2NC9ncmVfb2ZmbG9hZC5jIGIvbmV0L2lwdjQvZ3Jl X29mZmxvYWQuYwppbmRleCA1YWE0NmQ0Li41YThlZTMyIDEwMDY0NAotLS0gYS9uZXQvaXB2NC9n cmVfb2ZmbG9hZC5jCisrKyBiL25ldC9pcHY0L2dyZV9vZmZsb2FkLmMKQEAgLTM2LDcgKzM2LDgg QEAgc3RhdGljIHN0cnVjdCBza19idWZmICpncmVfZ3NvX3NlZ21lbnQoc3RydWN0IHNrX2J1ZmYg KnNrYiwKIAkJCQkgIFNLQl9HU09fVENQX0VDTiB8CiAJCQkJICBTS0JfR1NPX0dSRSB8CiAJCQkJ ICBTS0JfR1NPX0dSRV9DU1VNIHwKLQkJCQkgIFNLQl9HU09fSVBJUCkpKQorCQkJCSAgU0tCX0dT T19JUElQIHwKKwkJCQkgIFNLQl9HU09fU0lUKSkpCiAJCWdvdG8gb3V0OwogCiAJaWYgKCFza2It PmVuY2Fwc3VsYXRpb24pCi0tIAoyLjQuMQoKCkZyb20gYmVmYjU4OTNjMzI1YTZkMDMxZjQ5OTY5 YTZkYjhmMzJhZDEwYTFiOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogIk1hY2llaiBT LiBTem1pZ2llcm8iIDxtYWlsQG1hY2llai5zem1pZ2llcm8ubmFtZT4KRGF0ZTogVGh1LCAzIFNl cCAyMDE1IDIxOjM4OjMwICswMjAwClN1YmplY3Q6IFtQQVRDSCAxMi8zMF0gbmV0OiBmZWM6IG5v cm1hbGl6ZSByZXR1cm4gdmFsdWUgb2YKIHBtX3J1bnRpbWVfZ2V0X3N5bmMoKSBpbiBNRElPIHdy aXRlCgpbIFVwc3RyZWFtIGNvbW1pdCA0MmVhNDQ1N2FlYTdhYWVkZGYwYzBiMDY3MjRmMjk3NjA4 ZjVlOWQyIF0KCklmIGZlYyBNRElPIHdyaXRlIG1ldGhvZCBzdWNjZWVkcyBpdHMgcmV0dXJuIHZh bHVlIGNvbWVzIGZyb20KY2FsbCB0byBwbV9ydW50aW1lX2dldF9zeW5jKCkuCkJ1dCBwbV9ydW50 aW1lX2dldF9zeW5jKCkgY2FuIGFsc28gcmV0dXJuIDEuCgpJbiBjYXNlIG9mIE1pY3JlbCBLU1o5 MDMxIFBIWSB0aGlzIHZhbHVlIHdpbGwgdGhlbgpiZSByZXR1cm5lZCBhbG9uZyB0aGUgY2FsbCBj aGFpbiBvZiBwaHlfd3JpdGUoKSAtPgprc3o5MDMxX2V4dGVuZGVkX3dyaXRlKCkgLT4ga3N6OTAz MV9jZW50ZXJfZmxwX3RpbWluZygpIC0+CmtzejkwMzFfY29uZmlnX2luaXQoKSAtPiBwaHlfaW5p dF9odygpIC0+IHBoeV9hdHRhY2hfZGlyZWN0KCkgLT4KcGh5X2Nvbm5lY3RfZGlyZWN0KCkuCgpU aGVuIHBoeV9jb25uZWN0KCkgd2lsbCBjYXN0IGl0IGludG8gYSBwb2ludGVyIHVzaW5nIEVSUl9Q VFIoKSwKd2hpY2ggdGhlbiBmZWNfZW5ldF9taWlfcHJvYmUoKSB3aWxsIHRyeSB0byBkZXJlZmVy ZW5jZQpyZXN1bHRpbmcgaW4gYW4gb29wcy4KCkZpeCBpdCBieSBub3JtYWxpemluZyByZXR1cm4g dmFsdWUgb2YgcG1fcnVudGltZV9nZXRfc3luYygpCnRvIGJlIHplcm8gaWYgcG9zaXRpdmUgaW4g TURJTyB3cml0ZSBtZXRob2QuCgpGaXhlczogOGZmZjc1NWU5ZjhkICgibmV0OiBmZWM6IEVuc3Vy ZSBjbG9ja3MgYXJlIGVuYWJsZWQgd2hpbGUgdXNpbmcgbWRpbyBidXMiKQpTaWduZWQtb2ZmLWJ5 OiBNYWNpZWogU3ptaWdpZXJvIDxtYWlsQG1hY2llai5zem1pZ2llcm8ubmFtZT4KQWNrZWQtYnk6 IEFuZHJldyBMdW5uIDxhbmRyZXdAbHVubi5jaD4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWls bGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVz Y2FsZS9mZWNfbWFpbi5jIHwgNCArKystCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCsp LCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNj YWxlL2ZlY19tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZmVjX21haW4u YwppbmRleCBiZWUyNzY1Li41ZDFkZGUzIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5l dC9mcmVlc2NhbGUvZmVjX21haW4uYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2Nh bGUvZmVjX21haW4uYwpAQCAtMTgxMSwxMSArMTgxMSwxMyBAQCBzdGF0aWMgaW50IGZlY19lbmV0 X21kaW9fd3JpdGUoc3RydWN0IG1paV9idXMgKmJ1cywgaW50IG1paV9pZCwgaW50IHJlZ251bSwK IAlzdHJ1Y3QgZmVjX2VuZXRfcHJpdmF0ZSAqZmVwID0gYnVzLT5wcml2OwogCXN0cnVjdCBkZXZp Y2UgKmRldiA9ICZmZXAtPnBkZXYtPmRldjsKIAl1bnNpZ25lZCBsb25nIHRpbWVfbGVmdDsKLQlp bnQgcmV0ID0gMDsKKwlpbnQgcmV0OwogCiAJcmV0ID0gcG1fcnVudGltZV9nZXRfc3luYyhkZXYp OwogCWlmIChyZXQgPCAwKQogCQlyZXR1cm4gcmV0OworCWVsc2UKKwkJcmV0ID0gMDsKIAogCWZl cC0+bWlpX3RpbWVvdXQgPSAwOwogCXJlaW5pdF9jb21wbGV0aW9uKCZmZXAtPm1kaW9fZG9uZSk7 Ci0tIAoyLjQuMQoKCkZyb20gMzA1MTBjYTIwMjk5M2YwODA3NGU2MGEwYmUzNjEzYWE4OTc3OTRk YSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQWxleGFuZGVyIER1eWNrIDxhZHV5Y2tA bWlyYW50aXMuY29tPgpEYXRlOiBUdWUsIDI3IE9jdCAyMDE1IDE1OjA2OjQ1IC0wNzAwClN1Ympl Y3Q6IFtQQVRDSCAxMy8zMF0gZmliX3RyaWU6IGxlYWZfd2Fsa19yY3Ugc2hvdWxkIG5vdCBjb21w dXRlIGtleSBpZiBrZXkKIGlzIGxlc3MgdGhhbiBwbi0+a2V5CgpbIFVwc3RyZWFtIGNvbW1pdCBj MjIyOWZlMTQzMGQ0ZTFjNzBlMzY1MjAyMjlkZDY0YTg3ODAyYjIwIF0KCldlIHdlcmUgY29tcHV0 aW5nIHRoZSBjaGlsZCBpbmRleCBpbiBjYXNlcyB3aGVyZSB0aGUga2V5IHZhbHVlIHdlIHdlcmUK bG9va2luZyBmb3Igd2FzIGFjdHVhbGx5IGxlc3MgdGhhbiB0aGUgYmFzZSBrZXkgb2YgdGhlIHRu b2RlLiAgQXMgYSByZXN1bHQKd2Ugd2VyZSBnZXR0aW5nIGluY29ycmVjdCBpbmRleCB2YWx1ZXMg dGhhdCB3b3VsZCBjYXVzZSB1cyB0byBza2lwIG92ZXIKc29tZSBjaGlsZHJlbi4KClRvIGZpeCB0 aGlzIEkgaGF2ZSBhZGRlZCBhIHRlc3QgdGhhdCB3aWxsIGZvcmNlIHVzIHRvIHVzZSBjaGlsZCBp bmRleCAwIGlmCnRoZSBrZXkgd2UgYXJlIGxvb2tpbmcgZm9yIGlzIGxlc3MgdGhhbiB0aGUga2V5 IG9mIHRoZSBjdXJyZW50IHRub2RlLgoKRml4ZXM6IDhiZTMzZTk1NWNiOSAoImZpYl90cmllOiBG aWIgd2FsayByY3Ugc2hvdWxkIHRha2UgYSB0bm9kZSBhbmQga2V5IGluc3RlYWQgb2YgYSB0cmll IGFuZCBhIGxlYWYiKQpSZXBvcnRlZC1ieTogQnJpYW4gUmFrIDxicmFrQGdhbWVzZXJ2ZXJzLmNv bT4KU2lnbmVkLW9mZi1ieTogQWxleGFuZGVyIER1eWNrIDxhZHV5Y2tAbWlyYW50aXMuY29tPgpT aWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQog bmV0L2lwdjQvZmliX3RyaWUuYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigr KSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY0L2ZpYl90cmllLmMgYi9uZXQv aXB2NC9maWJfdHJpZS5jCmluZGV4IGIwYzYyNTguLmVhM2FlZGIgMTAwNjQ0Ci0tLSBhL25ldC9p cHY0L2ZpYl90cmllLmMKKysrIGIvbmV0L2lwdjQvZmliX3RyaWUuYwpAQCAtMTU2MSw3ICsxNTYx LDcgQEAgc3RhdGljIHN0cnVjdCBrZXlfdmVjdG9yICpsZWFmX3dhbGtfcmN1KHN0cnVjdCBrZXlf dmVjdG9yICoqdG4sIHRfa2V5IGtleSkKIAlkbyB7CiAJCS8qIHJlY29yZCBwYXJlbnQgYW5kIG5l eHQgY2hpbGQgaW5kZXggKi8KIAkJcG4gPSBuOwotCQljaW5kZXggPSBrZXkgPyBnZXRfaW5kZXgo a2V5LCBwbikgOiAwOworCQljaW5kZXggPSAoa2V5ID4gcG4tPmtleSkgPyBnZXRfaW5kZXgoa2V5 LCBwbikgOiAwOwogCiAJCWlmIChjaW5kZXggPj4gcG4tPmJpdHMpCiAJCQlicmVhazsKLS0gCjIu NC4xCgoKRnJvbSA5MjExM2FmODhjMzRiZWU2ODk2NTRmOWM1ZjY5NGE2ZDBjNDFjMWUwIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTb3dtaW5pIFZhcmFkaGFuIDxzb3dtaW5pLnZhcmFk aGFuQG9yYWNsZS5jb20+CkRhdGU6IE1vbiwgMjYgT2N0IDIwMTUgMTI6NDY6MzcgLTA0MDAKU3Vi amVjdDogW1BBVENIIDE0LzMwXSBSRFMtVENQOiBSZWNvdmVyIGNvcnJlY3RseSBmcm9tIHBza2Jf cHVsbCgpL3Brc2JfdHJpbSgpCiBmYWlsdXJlIGluIHJkc190Y3BfZGF0YV9yZWN2CgpbIFVwc3Ry ZWFtIGNvbW1pdCA4Y2U2NzVmZjM5Yjk5NThkMWMxMGY4NmNmNThlMzU3ZWZhYWZjODU2IF0KCkVp dGhlciBvZiBwc2tiX3B1bGwoKSBvciBwc2tiX3RyaW0oKSBtYXkgZmFpbCB1bmRlciBsb3cgbWVt b3J5IGNvbmRpdGlvbnMuCklmIHJkc190Y3BfZGF0YV9yZWN2KCkgaWdub3JlcyBzdWNoIGZhaWx1 cmVzLCB0aGUgYXBwbGljYXRpb24gd2lsbApyZWNlaXZlIGNvcnJ1cHRlZCBkYXRhIGJlY2F1c2Ug dGhlIHNrYiBoYXMgbm90IGJlZW4gY29ycmVjdGx5CmNhcnZlZCB0byB0aGUgUkRTIGRhdGFncmFt IHNpemUuCgpBdm9pZCB0aGlzIGJ5IGhhbmRsaW5nIHBza2JfcHVsbC9wc2tiX3RyaW0gZmFpbHVy ZSBpbiB0aGUgc2FtZQptYW5uZXIgYXMgdGhlIHNrYl9jbG9uZSBmYWlsdXJlOiBiYWlsIG91dCBv ZiByZHNfdGNwX2RhdGFfcmVjdigpLCBhbmQKcmV0cnkgdmlhIHRoZSBkZWZlcnJlZCBjYWxsIHRv IHJkc19zZW5kX3dvcmtlcigpIHRoYXQgZ2V0cyBzZXQgdXAgb24KRU5PTUVNIGZyb20gcmRzX3Rj cF9yZWFkX3NvY2soKQoKU2lnbmVkLW9mZi1ieTogU293bWluaSBWYXJhZGhhbiA8c293bWluaS52 YXJhZGhhbkBvcmFjbGUuY29tPgpBY2tlZC1ieTogU2FudG9zaCBTaGlsaW1rYXIgPHNhbnRvc2gu c2hpbGlta2FyQG9yYWNsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2 ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvcmRzL3RjcF9yZWN2LmMgfCAxMSArKysrKysrKyst LQogMSBmaWxlIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9uZXQvcmRzL3RjcF9yZWN2LmMgYi9uZXQvcmRzL3RjcF9yZWN2LmMKaW5kZXggZmJj NWVmOC4uMjdhOTkyMSAxMDA2NDQKLS0tIGEvbmV0L3Jkcy90Y3BfcmVjdi5jCisrKyBiL25ldC9y ZHMvdGNwX3JlY3YuYwpAQCAtMjE0LDggKzIxNCwxNSBAQCBzdGF0aWMgaW50IHJkc190Y3BfZGF0 YV9yZWN2KHJlYWRfZGVzY3JpcHRvcl90ICpkZXNjLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCQkJ fQogCiAJCQl0b19jb3B5ID0gbWluKHRjLT50X3RpbmNfZGF0YV9yZW0sIGxlZnQpOwotCQkJcHNr Yl9wdWxsKGNsb25lLCBvZmZzZXQpOwotCQkJcHNrYl90cmltKGNsb25lLCB0b19jb3B5KTsKKwkJ CWlmICghcHNrYl9wdWxsKGNsb25lLCBvZmZzZXQpIHx8CisJCQkgICAgcHNrYl90cmltKGNsb25l LCB0b19jb3B5KSkgeworCQkJCXByX3dhcm4oInJkc190Y3BfZGF0YV9yZWN2OiBwdWxsL3RyaW0g ZmFpbGVkICIKKwkJCQkJImxlZnQgJXp1IGRhdGFfcmVtICV6dSBza2JfbGVuICVkXG4iLAorCQkJ CQlsZWZ0LCB0Yy0+dF90aW5jX2RhdGFfcmVtLCBza2ItPmxlbik7CisJCQkJa2ZyZWVfc2tiKGNs b25lKTsKKwkJCQlkZXNjLT5lcnJvciA9IC1FTk9NRU07CisJCQkJZ290byBvdXQ7CisJCQl9CiAJ CQlza2JfcXVldWVfdGFpbCgmdGluYy0+dGlfc2tiX2xpc3QsIGNsb25lKTsKIAogCQkJcmRzZGVi dWcoInNrYiAlcCBkYXRhICVwIGxlbiAlZCBvZmYgJXUgdG9fY29weSAlenUgLT4gIgotLSAKMi40 LjEKCgpGcm9tIGZiOGE4YmM2MWM3OTFlNjk0MGUzNWEyMzY0ZjE5YTRjZTUxMTU5ODIgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IENhcm9sIEwgU290byA8Y2xzb3RvQGxpbnV4LnZuZXQu aWJtLmNvbT4KRGF0ZTogVHVlLCAyNyBPY3QgMjAxNSAxNzozNjoyMCArMDIwMApTdWJqZWN0OiBb UEFUQ0ggMTUvMzBdIG5ldC9tbHg0OiBDb3B5L3NldCBvbmx5IHNpemVvZiBzdHJ1Y3QgbWx4NF9l cWUgYnl0ZXMKClsgVXBzdHJlYW0gY29tbWl0IGMwMmIwNTAxMWZhZGY4ZTQwOWU0MTkxMDIxN2Nh Njg5ZjJmYzlkOTEgXQoKV2hlbiBkb2luZyBtZW1jcHkvbWVtc2V0IG9mIEVRRXMsIHdlIHNob3Vs ZCB1c2Ugc2l6ZW9mIHN0cnVjdAptbHg0X2VxZSBhcyB0aGUgYmFzZSBzaXplIGFuZCBub3QgY2Fw cy5lcWVfc2l6ZSB3aGljaCBjb3VsZCBiZSBiaWdnZXIuCgpJZiBjYXBzLmVxZV9zaXplIGlzIGJp Z2dlciB0aGFuIHRoZSBzdHJ1Y3QgbWx4NF9lcWUgdGhlbiB3ZSBjb3JydXB0CmRhdGEgaW4gdGhl IG1hc3RlciBjb250ZXh0LgoKV2hlbiB1c2luZyBhIDY0IGJ5dGUgc3RyaWRlLCB0aGUgbWVtY3B5 IGNvcGllZCBvdmVyIDYzIGJ5dGVzIHRvIHRoZQpzbGF2ZV9lcSBzdHJ1Y3R1cmUuICBUaGlzIHJl c3VsdGVkIGluIGNvcHlpbmcgb3ZlciB0aGUgZW50aXJlIGVxZSBvZgppbnRlcmVzdCwgaW5jbHVk aW5nIGl0cyBvd25lcnNoaXAgYml0IC0tIGFuZCBhbHNvIDMxIGJ5dGVzIG9mIGdhcmJhZ2UKaW50 byB0aGUgbmV4dCBXUUUgaW4gdGhlIHNsYXZlIEVRIC0tIHdoaWNoIGRpZCBOT1QgaW5jbHVkZSB0 aGUgb3duZXJzaGlwCmJpdCAoYW5kIHRoZXJlZm9yZSBoYWQgbm8gaW1wYWN0KS4KCkhvd2V2ZXIs IG9uY2UgdGhlIHN0cmlkZSBpcyBpbmNyZWFzZWQgdG8gMTI4LCB3ZSBhcmUgb3ZlcndyaXRpbmcg dGhlCm93bmVyc2hpcCBiaXRzIG9mICp0aHJlZSogZXFlcyBpbiB0aGUgc2xhdmVfZXEgc3RydWN0 LiAgVGhpcyByZXN1bHRzCmluIGFuIGluY29ycmVjdCBvd25lcnNoaXAgYml0IGZvciB0aG9zZSBl cWVzLCB3aGljaCBjYXVzZXMgdGhlIGVxIHRvCnNlZW0gdG8gYmUgZnVsbC4gVGhlIGlzc3VlIHRo ZXJlZm9yZSBzdXJmYWNlZCBvbmx5IG9uY2UgMTI4LWJ5dGUgRVFFcwpzdGFydGVkIGJlaW5nIHVz ZWQgaW4gU1JJT1YgYW5kIChvdmVyYXJjaGl0ZWN0dXJlcyB0aGF0IGhhdmUgMTI4LzI1NgpieXRl IGNhY2hlLWxpbmVzIHN1Y2ggYXMgUFBDKSAtIGUuZyBhZnRlciBjb21taXQgNzc1MDdhYTI0OWFl CiJuZXQvbWx4NF9jb3JlOiBFbmFibGUgQ1FFL0VRRSBzdHJpZGUgc3VwcG9ydCIuCgpGaXhlczog MDhmZjMyMzUyZDZmICgnbWx4NDogNjQtYnl0ZSBDUUUvRVFFIHN1cHBvcnQnKQpTaWduZWQtb2Zm LWJ5OiBDYXJvbCBMIFNvdG8gPGNsc290b0BsaW51eC52bmV0LmlibS5jb20+ClNpZ25lZC1vZmYt Ynk6IEphY2sgTW9yZ2Vuc3RlaW4gPGphY2ttQGRldi5tZWxsYW5veC5jby5pbD4KU2lnbmVkLW9m Zi1ieTogT3IgR2VybGl0eiA8b2dlcmxpdHpAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBE YXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRo ZXJuZXQvbWVsbGFub3gvbWx4NC9jbWQuYyB8IDIgKy0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21l bGxhbm94L21seDQvZXEuYyAgfCAyICstCiAyIGZpbGVzIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygr KSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxs YW5veC9tbHg0L2NtZC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9jbWQu YwppbmRleCAwYTMyMDIwLi4yMTc3ZTU2IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5l dC9tZWxsYW5veC9tbHg0L2NtZC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94 L21seDQvY21kLmMKQEAgLTIzOTgsNyArMjM5OCw3IEBAIGludCBtbHg0X211bHRpX2Z1bmNfaW5p dChzdHJ1Y3QgbWx4NF9kZXYgKmRldikKIAkJCX0KIAkJfQogCi0JCW1lbXNldCgmcHJpdi0+bWZ1 bmMubWFzdGVyLmNtZF9lcWUsIDAsIGRldi0+Y2Fwcy5lcWVfc2l6ZSk7CisJCW1lbXNldCgmcHJp di0+bWZ1bmMubWFzdGVyLmNtZF9lcWUsIDAsIHNpemVvZihzdHJ1Y3QgbWx4NF9lcWUpKTsKIAkJ cHJpdi0+bWZ1bmMubWFzdGVyLmNtZF9lcWUudHlwZSA9IE1MWDRfRVZFTlRfVFlQRV9DTUQ7CiAJ CUlOSVRfV09SSygmcHJpdi0+bWZ1bmMubWFzdGVyLmNvbW1fd29yaywKIAkJCSAgbWx4NF9tYXN0 ZXJfY29tbV9jaGFubmVsKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxh bm94L21seDQvZXEuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDQvZXEuYwpp bmRleCA4ZTgxZTUzLi5hZDhmOTVkIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9t ZWxsYW5veC9tbHg0L2VxLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4 NC9lcS5jCkBAIC0xOTYsNyArMTk2LDcgQEAgc3RhdGljIHZvaWQgc2xhdmVfZXZlbnQoc3RydWN0 IG1seDRfZGV2ICpkZXYsIHU4IHNsYXZlLCBzdHJ1Y3QgbWx4NF9lcWUgKmVxZSkKIAkJcmV0dXJu OwogCX0KIAotCW1lbWNweShzX2VxZSwgZXFlLCBkZXYtPmNhcHMuZXFlX3NpemUgLSAxKTsKKwlt ZW1jcHkoc19lcWUsIGVxZSwgc2l6ZW9mKHN0cnVjdCBtbHg0X2VxZSkgLSAxKTsKIAlzX2VxZS0+ c2xhdmVfaWQgPSBzbGF2ZTsKIAkvKiBlbnN1cmUgYWxsIGluZm9ybWF0aW9uIGlzIHdyaXR0ZW4g YmVmb3JlIHNldHRpbmcgdGhlIG93bmVyc2lwIGJpdCAqLwogCWRtYV93bWIoKTsKLS0gCjIuNC4x CgoKRnJvbSBiYzY2MTVjMTUyZjQ5MDc2M2U2NmJhMGZkMzM1MGE1YTA2N2ZmZDA5IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gUGF1bCBNYWxveSA8am9uLm1hbG95QGVyaWNzc29u LmNvbT4KRGF0ZTogV2VkLCAyOCBPY3QgMjAxNSAxMzowOTo1MyAtMDQwMApTdWJqZWN0OiBbUEFU Q0ggMTYvMzBdIHRpcGM6IGxpbmVhcml6ZSBhcnJpdmluZyBOQU1FX0RJU1RSIGFuZCBMSU5LX1BS T1RPCiBidWZmZXJzCgpbIFVwc3RyZWFtIGNvbW1pdCA1Y2JiMjhhNGJmNjVjN2U0ZGFhNmMyNWI2 NTFmZWQ4ZWI4ODhjNjIwIF0KClRlc3Rpbmcgb2YgdGhlIG5ldyBVRFAgYmVhcmVyIGhhcyByZXZl YWxlZCB0aGF0IHJlY2VwdGlvbiBvZgpOQU1FX0RJU1RSSUJVVE9SLCBMSU5LX1BST1RPQ09ML1JF U0VUIGFuZCBMSU5LX1BST1RPQ09ML0FDVElWQVRFCm1lc3NhZ2UgYnVmZmVycyBpcyBub3QgcHJl cGFyZWQgZm9yIHRoZSBjYXNlIHRoYXQgdGhvc2UgbWF5IGJlCm5vbi1saW5lYXIuCgpXZSBub3cg bGluZWFyaXplIGFsbCBzdWNoIGJ1ZmZlcnMgYmVmb3JlIHRoZXkgYXJlIGRlbGl2ZXJlZCB1cCB0 byB0aGUKZ2VuZXJpYyByZWNlcHRpb24gbGF5ZXIuCgpJbiBvcmRlciBmb3IgdGhlIGNvbW1pdCB0 byBhcHBseSBjbGVhbmx5IHRvICduZXQnIGFuZCAnc3RhYmxlJywgd2UgZG8KdGhlIGNoYW5nZSBp biB0aGUgZnVuY3Rpb24gdGlwY191ZHBfcmVjdigpIGZvciBub3cuIExhdGVyLCB3ZSB3aWxsIHBv c3QKYSBjb21taXQgdG8gJ25ldC1uZXh0JyBtb3ZpbmcgdGhlIGxpbmVhcml6YXRpb24gdG8gZ2Vu ZXJpYyBjb2RlLCBpbgp0aXBjX25hbWVkX3JjdigpIGFuZCB0aXBjX2xpbmtfcHJvdG9fcmN2KCku CgpGaXhlczogY29tbWl0IGQwZjkxOTM4YmVkZSAoInRpcGM6IGFkZCBpcC91ZHAgbWVkaWEgdHlw ZSIpClNpZ25lZC1vZmYtYnk6IEpvbiBNYWxveSA8am9uLm1hbG95QGVyaWNzc29uLmNvbT4KU2ln bmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5l dC90aXBjL3VkcF9tZWRpYS5jIHwgNSArKysrKwogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9u cygrKQoKZGlmZiAtLWdpdCBhL25ldC90aXBjL3VkcF9tZWRpYS5jIGIvbmV0L3RpcGMvdWRwX21l ZGlhLmMKaW5kZXggNjZkZWViYy4uZjhkZmVlNSAxMDA2NDQKLS0tIGEvbmV0L3RpcGMvdWRwX21l ZGlhLmMKKysrIGIvbmV0L3RpcGMvdWRwX21lZGlhLmMKQEAgLTQ4LDYgKzQ4LDcgQEAKICNpbmNs dWRlIDxsaW51eC90aXBjX25ldGxpbmsuaD4KICNpbmNsdWRlICJjb3JlLmgiCiAjaW5jbHVkZSAi YmVhcmVyLmgiCisjaW5jbHVkZSAibXNnLmgiCiAKIC8qIElBTkEgYXNzaWduZWQgVURQIHBvcnQg Ki8KICNkZWZpbmUgVURQX1BPUlRfREVGQVVMVAk2MTE4CkBAIC0yMTYsNiArMjE3LDEwIEBAIHN0 YXRpYyBpbnQgdGlwY191ZHBfcmVjdihzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpz a2IpCiB7CiAJc3RydWN0IHVkcF9iZWFyZXIgKnViOwogCXN0cnVjdCB0aXBjX2JlYXJlciAqYjsK KwlpbnQgdXNyID0gbXNnX3VzZXIoYnVmX21zZyhza2IpKTsKKworCWlmICgodXNyID09IExJTktf UFJPVE9DT0wpIHx8ICh1c3IgPT0gTkFNRV9ESVNUUklCVVRPUikpCisJCXNrYl9saW5lYXJpemUo c2tiKTsKIAogCXViID0gcmN1X2RlcmVmZXJlbmNlX3NrX3VzZXJfZGF0YShzayk7CiAJaWYgKCF1 YikgewotLSAKMi40LjEKCgpGcm9tIDNiZDIzZDkwY2UzOTNkMWNmNzc2YjJhNGE1NDFkZWYwMmJl MDhmNGMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEp1bGlhbiBBbmFzdGFzb3YgPGph QHNzaS5iZz4KRGF0ZTogRnJpLCAzMCBPY3QgMjAxNSAxMDoyMzozMyArMDIwMApTdWJqZWN0OiBb UEFUQ0ggMTcvMzBdIGlwdjQ6IGZpeCB0byBub3QgcmVtb3ZlIGxvY2FsIHJvdXRlIG9uIGxpbmsg ZG93bgoKWyBVcHN0cmVhbSBjb21taXQgNGY4MjNkZWZkZDViMTA2YTVlODk3NDVlZThiMTYzYzcx ODU1ZGUxZSBdCgpXaGVuIGZpYl9uZXRkZXZfZXZlbnQgY2FsbHMgZmliX2Rpc2FibGVfaXAgb24g TkVUREVWX0RPV04gZXZlbnQKd2Ugc2hvdWxkIG5vdCBkZWxldGUgdGhlIGxvY2FsIHJvdXRlcyBp ZiB0aGUgbG9jYWwgYWRkcmVzcwppcyBzdGlsbCBwcmVzZW50LiBUaGUgY29uZnVzaW9uIGNvbWVz IGZyb20gdGhlIGZhY3QgdGhhdCBib3RoCmZpYl9uZXRkZXZfZXZlbnQgYW5kIGZpYl9pbmV0YWRk cl9ldmVudCB1c2UgdGhlIE5FVERFVl9ET1dOCmNvbnN0YW50LiBGaXggaXQgYnkgcmV0dXJuaW5n IGJhY2sgdGhlIHZhcmlhYmxlICdmb3JjZScuCgpTdGVwcyB0byByZXByb2R1Y2U6Cm1vZHByb2Jl IGR1bW15CmlmY29uZmlnIGR1bW15MCAxOTIuMTY4LjE2OC4xIHVwCmlmY29uZmlnIGR1bW15MCBk b3duCmlwIHJvdXRlIGxpc3QgdGFibGUgbG9jYWwgfCBncmVwIGR1bW15IHwgZ3JlcCBob3N0Cmxv Y2FsIDE5Mi4xNjguMTY4LjEgZGV2IGR1bW15MCAgcHJvdG8ga2VybmVsICBzY29wZSBob3N0ICBz cmMgMTkyLjE2OC4xNjguMQoKRml4ZXM6IDhhM2QwMzE2NmYxOSAoIm5ldDogdHJhY2sgbGluay1z dGF0dXMgb2YgaXB2NCBuZXh0aG9wcyIpClNpZ25lZC1vZmYtYnk6IEp1bGlhbiBBbmFzdGFzb3Yg PGphQHNzaS5iZz4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxv ZnQubmV0PgotLS0KIGluY2x1ZGUvbmV0L2lwX2ZpYi5oICAgICB8ICAyICstCiBuZXQvaXB2NC9m aWJfZnJvbnRlbmQuYyAgfCAxMyArKysrKysrLS0tLS0tCiBuZXQvaXB2NC9maWJfc2VtYW50aWNz LmMgfCAxMSArKysrKysrKy0tLQogMyBmaWxlcyBjaGFuZ2VkLCAxNiBpbnNlcnRpb25zKCspLCAx MCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9pcF9maWIuaCBiL2luY2x1 ZGUvbmV0L2lwX2ZpYi5oCmluZGV4IDVmYTY0M2IuLmZmNmQ3OGYgMTAwNjQ0Ci0tLSBhL2luY2x1 ZGUvbmV0L2lwX2ZpYi5oCisrKyBiL2luY2x1ZGUvbmV0L2lwX2ZpYi5oCkBAIC0zMDYsNyArMzA2 LDcgQEAgdm9pZCBmaWJfZmx1c2hfZXh0ZXJuYWwoc3RydWN0IG5ldCAqbmV0KTsKIAogLyogRXhw b3J0ZWQgYnkgZmliX3NlbWFudGljcy5jICovCiBpbnQgaXBfZmliX2NoZWNrX2RlZmF1bHQoX19i ZTMyIGd3LCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KTsKLWludCBmaWJfc3luY19kb3duX2Rldihz dHJ1Y3QgbmV0X2RldmljZSAqZGV2LCB1bnNpZ25lZCBsb25nIGV2ZW50KTsKK2ludCBmaWJfc3lu Y19kb3duX2RldihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCB1bnNpZ25lZCBsb25nIGV2ZW50LCBi b29sIGZvcmNlKTsKIGludCBmaWJfc3luY19kb3duX2FkZHIoc3RydWN0IG5ldCAqbmV0LCBfX2Jl MzIgbG9jYWwpOwogaW50IGZpYl9zeW5jX3VwKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHVuc2ln bmVkIGludCBuaF9mbGFncyk7CiB2b2lkIGZpYl9zZWxlY3RfbXVsdGlwYXRoKHN0cnVjdCBmaWJf cmVzdWx0ICpyZXMpOwpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvZmliX2Zyb250ZW5kLmMgYi9uZXQv aXB2NC9maWJfZnJvbnRlbmQuYwppbmRleCA2YmJjNTQ5Li5kNzExNmNmIDEwMDY0NAotLS0gYS9u ZXQvaXB2NC9maWJfZnJvbnRlbmQuYworKysgYi9uZXQvaXB2NC9maWJfZnJvbnRlbmQuYwpAQCAt MTA2Myw5ICsxMDYzLDEwIEBAIHN0YXRpYyB2b2lkIG5sX2ZpYl9sb29rdXBfZXhpdChzdHJ1Y3Qg bmV0ICpuZXQpCiAJbmV0LT5pcHY0LmZpYm5sID0gTlVMTDsKIH0KIAotc3RhdGljIHZvaWQgZmli X2Rpc2FibGVfaXAoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgdW5zaWduZWQgbG9uZyBldmVudCkK K3N0YXRpYyB2b2lkIGZpYl9kaXNhYmxlX2lwKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHVuc2ln bmVkIGxvbmcgZXZlbnQsCisJCQkgICBib29sIGZvcmNlKQogewotCWlmIChmaWJfc3luY19kb3du X2RldihkZXYsIGV2ZW50KSkKKwlpZiAoZmliX3N5bmNfZG93bl9kZXYoZGV2LCBldmVudCwgZm9y Y2UpKQogCQlmaWJfZmx1c2goZGV2X25ldChkZXYpKTsKIAlydF9jYWNoZV9mbHVzaChkZXZfbmV0 KGRldikpOwogCWFycF9pZmRvd24oZGV2KTsKQEAgLTEwOTMsNyArMTA5NCw3IEBAIHN0YXRpYyBp bnQgZmliX2luZXRhZGRyX2V2ZW50KHN0cnVjdCBub3RpZmllcl9ibG9jayAqdGhpcywgdW5zaWdu ZWQgbG9uZyBldmVudCwKIAkJCS8qIExhc3QgYWRkcmVzcyB3YXMgZGVsZXRlZCBmcm9tIHRoaXMg aW50ZXJmYWNlLgogCQkJICogRGlzYWJsZSBJUC4KIAkJCSAqLwotCQkJZmliX2Rpc2FibGVfaXAo ZGV2LCBldmVudCk7CisJCQlmaWJfZGlzYWJsZV9pcChkZXYsIGV2ZW50LCB0cnVlKTsKIAkJfSBl bHNlIHsKIAkJCXJ0X2NhY2hlX2ZsdXNoKGRldl9uZXQoZGV2KSk7CiAJCX0KQEAgLTExMTAsNyAr MTExMSw3IEBAIHN0YXRpYyBpbnQgZmliX25ldGRldl9ldmVudChzdHJ1Y3Qgbm90aWZpZXJfYmxv Y2sgKnRoaXMsIHVuc2lnbmVkIGxvbmcgZXZlbnQsIHZvCiAJdW5zaWduZWQgaW50IGZsYWdzOwog CiAJaWYgKGV2ZW50ID09IE5FVERFVl9VTlJFR0lTVEVSKSB7Ci0JCWZpYl9kaXNhYmxlX2lwKGRl diwgZXZlbnQpOworCQlmaWJfZGlzYWJsZV9pcChkZXYsIGV2ZW50LCB0cnVlKTsKIAkJcnRfZmx1 c2hfZGV2KGRldik7CiAJCXJldHVybiBOT1RJRllfRE9ORTsKIAl9CkBAIC0xMTMxLDE0ICsxMTMy LDE0IEBAIHN0YXRpYyBpbnQgZmliX25ldGRldl9ldmVudChzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sg KnRoaXMsIHVuc2lnbmVkIGxvbmcgZXZlbnQsIHZvCiAJCXJ0X2NhY2hlX2ZsdXNoKG5ldCk7CiAJ CWJyZWFrOwogCWNhc2UgTkVUREVWX0RPV046Ci0JCWZpYl9kaXNhYmxlX2lwKGRldiwgZXZlbnQp OworCQlmaWJfZGlzYWJsZV9pcChkZXYsIGV2ZW50LCBmYWxzZSk7CiAJCWJyZWFrOwogCWNhc2Ug TkVUREVWX0NIQU5HRToKIAkJZmxhZ3MgPSBkZXZfZ2V0X2ZsYWdzKGRldik7CiAJCWlmIChmbGFn cyAmIChJRkZfUlVOTklORyB8IElGRl9MT1dFUl9VUCkpCiAJCQlmaWJfc3luY191cChkZXYsIFJU TkhfRl9MSU5LRE9XTik7CiAJCWVsc2UKLQkJCWZpYl9zeW5jX2Rvd25fZGV2KGRldiwgZXZlbnQp OworCQkJZmliX3N5bmNfZG93bl9kZXYoZGV2LCBldmVudCwgZmFsc2UpOwogCQkvKiBmYWxsIHRo cm91Z2ggKi8KIAljYXNlIE5FVERFVl9DSEFOR0VNVFU6CiAJCXJ0X2NhY2hlX2ZsdXNoKG5ldCk7 CmRpZmYgLS1naXQgYS9uZXQvaXB2NC9maWJfc2VtYW50aWNzLmMgYi9uZXQvaXB2NC9maWJfc2Vt YW50aWNzLmMKaW5kZXggM2EwNjU4Ni4uZmFkZjdiMiAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvZmli X3NlbWFudGljcy5jCisrKyBiL25ldC9pcHY0L2ZpYl9zZW1hbnRpY3MuYwpAQCAtMTEzMiw3ICsx MTMyLDEzIEBAIGludCBmaWJfc3luY19kb3duX2FkZHIoc3RydWN0IG5ldCAqbmV0LCBfX2JlMzIg bG9jYWwpCiAJcmV0dXJuIHJldDsKIH0KIAotaW50IGZpYl9zeW5jX2Rvd25fZGV2KHN0cnVjdCBu ZXRfZGV2aWNlICpkZXYsIHVuc2lnbmVkIGxvbmcgZXZlbnQpCisvKiBFdmVudCAgICAgICAgICAg ICAgZm9yY2UgRmxhZ3MgICAgICAgICAgIERlc2NyaXB0aW9uCisgKiBORVRERVZfQ0hBTkdFICAg ICAgMCAgICAgTElOS0RPV04gICAgICAgIENhcnJpZXIgT0ZGLCBub3QgZm9yIHNjb3BlIGhvc3QK KyAqIE5FVERFVl9ET1dOICAgICAgICAwICAgICBMSU5LRE9XTnxERUFEICAgTGluayBkb3duLCBu b3QgZm9yIHNjb3BlIGhvc3QKKyAqIE5FVERFVl9ET1dOICAgICAgICAxICAgICBMSU5LRE9XTnxE RUFEICAgTGFzdCBhZGRyZXNzIHJlbW92ZWQKKyAqIE5FVERFVl9VTlJFR0lTVEVSICAxICAgICBM SU5LRE9XTnxERUFEICAgRGV2aWNlIHJlbW92ZWQKKyAqLworaW50IGZpYl9zeW5jX2Rvd25fZGV2 KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHVuc2lnbmVkIGxvbmcgZXZlbnQsIGJvb2wgZm9yY2Up CiB7CiAJaW50IHJldCA9IDA7CiAJaW50IHNjb3BlID0gUlRfU0NPUEVfTk9XSEVSRTsKQEAgLTEx NDEsOCArMTE0Nyw3IEBAIGludCBmaWJfc3luY19kb3duX2RldihzdHJ1Y3QgbmV0X2RldmljZSAq ZGV2LCB1bnNpZ25lZCBsb25nIGV2ZW50KQogCXN0cnVjdCBobGlzdF9oZWFkICpoZWFkID0gJmZp Yl9pbmZvX2Rldmhhc2hbaGFzaF07CiAJc3RydWN0IGZpYl9uaCAqbmg7CiAKLQlpZiAoZXZlbnQg PT0gTkVUREVWX1VOUkVHSVNURVIgfHwKLQkgICAgZXZlbnQgPT0gTkVUREVWX0RPV04pCisJaWYg KGZvcmNlKQogCQlzY29wZSA9IC0xOwogCiAJaGxpc3RfZm9yX2VhY2hfZW50cnkobmgsIGhlYWQs IG5oX2hhc2gpIHsKLS0gCjIuNC4xCgoKRnJvbSBkNjI4ZmM5ZDYzN2FkM2MxNTg0MDFkMWZmNWQ1 MDhhMGRmMmIxZGYxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKdWxpYW4gQW5hc3Rh c292IDxqYUBzc2kuYmc+CkRhdGU6IEZyaSwgMzAgT2N0IDIwMTUgMTA6MjM6MzQgKzAyMDAKU3Vi amVjdDogW1BBVENIIDE4LzMwXSBpcHY0OiB1cGRhdGUgUlROSF9GX0xJTktET1dOIGZsYWcgb24g VVAgZXZlbnQKClsgVXBzdHJlYW0gY29tbWl0IGM5YjMyOTJlZWI1MmM2ODM0ZTk3MmViNWI4ZmUz ODkxNDc3MWVkMTIgXQoKV2hlbiBuZXh0aG9wIGlzIHBhcnQgb2YgbXVsdGlwYXRoIHJvdXRlIHdl IHNob3VsZCBjbGVhciB0aGUKTElOS0RPV04gZmxhZyB3aGVuIGxpbmsgZ29lcyBVUCBvciB3aGVu IGZpcnN0IGFkZHJlc3MgaXMgYWRkZWQuClRoaXMgaXMgbmVlZGVkIGJlY2F1c2Ugd2UgYWx3YXlz IHNldCBMSU5LRE9XTiBmbGFnIHdoZW4gREVBRCBmbGFnCndhcyBzZXQgYnV0IG5vdyBvbiBVUCB0 aGUgbmV4dGhvcCBpcyBub3QgZGVhZCBhbnltb3JlLiBFeGFtcGxlcyB3aGVuCkxJTktET1dOIGJp dCBjYW4gYmUgZm9yZ290dGVuIHdoZW4gbm8gTkVUREVWX0NIQU5HRSBpcyBkZWxpdmVyZWQ6Cgot IGxpbmsgZ29lcyBkb3duIChMSU5LRE9XTiBpcyBzZXQpLCB0aGVuIGxpbmsgZ29lcyBVUCBhbmQg ZGV2aWNlCnNob3dzIGNhcnJpZXIgT0sgYnV0IExJTktET1dOIHJlbWFpbnMgc2V0CgotIGxhc3Qg YWRkcmVzcyBpcyBkZWxldGVkIChMSU5LRE9XTiBpcyBzZXQpLCB0aGVuIGFkZHJlc3MgaXMKYWRk ZWQgYW5kIGRldmljZSBzaG93cyBjYXJyaWVyIE9LIGJ1dCBMSU5LRE9XTiByZW1haW5zIHNldAoK U3RlcHMgdG8gcmVwcm9kdWNlOgptb2Rwcm9iZSBkdW1teQppZmNvbmZpZyBkdW1teTAgMTkyLjE2 OC4xNjguMSB1cAoKaGVyZSBhZGQgYSBtdWx0aXBhdGggcm91dGUgd2hlcmUgb25lIG5leHRob3Ag aXMgZm9yIGR1bW15MDoKCmlwIHJvdXRlIGFkZCAxLjIuMy40IG5leHRob3AgZHVtbXkwIG5leHRo b3AgU09NRV9PVEhFUl9ERVZJQ0UKaWZjb25maWcgZHVtbXkwIGRvd24KaWZjb25maWcgZHVtbXkw IHVwCgpub3cgaXAgcm91dGUgc2hvd3MgbmV4dGhvcCB0aGF0IGlzIG5vdCBkZWFkLiBOb3cgc2V0 IHRoZSBzeXNjdGwgdmFyOgoKZWNobyAxID4gL3Byb2Mvc3lzL25ldC9pcHY0L2NvbmYvZHVtbXkw L2lnbm9yZV9yb3V0ZXNfd2l0aF9saW5rZG93bgoKbm93IGlwIHJvdXRlIHdpbGwgc2hvdyBhIGRl YWQgbmV4dGhvcCBiZWNhdXNlIHRoZSBmb3Jnb3R0ZW4KUlROSF9GX0xJTktET1dOIGlzIHByb3Bh Z2F0ZWQgYXMgUlROSF9GX0RFQUQuCgpGaXhlczogOGEzZDAzMTY2ZjE5ICgibmV0OiB0cmFjayBs aW5rLXN0YXR1cyBvZiBpcHY0IG5leHRob3BzIikKU2lnbmVkLW9mZi1ieTogSnVsaWFuIEFuYXN0 YXNvdiA8amFAc3NpLmJnPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjQvZmliX3NlbWFudGljcy5jIHwgNyArKysrKysrCiAx IGZpbGUgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvZmli X3NlbWFudGljcy5jIGIvbmV0L2lwdjQvZmliX3NlbWFudGljcy5jCmluZGV4IGZhZGY3YjIuLjcx YmFkNWMgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L2ZpYl9zZW1hbnRpY3MuYworKysgYi9uZXQvaXB2 NC9maWJfc2VtYW50aWNzLmMKQEAgLTEyOTYsNiArMTI5NiwxMyBAQCBpbnQgZmliX3N5bmNfdXAo c3RydWN0IG5ldF9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IG5oX2ZsYWdzKQogCWlmICghKGRl di0+ZmxhZ3MgJiBJRkZfVVApKQogCQlyZXR1cm4gMDsKIAorCWlmIChuaF9mbGFncyAmIFJUTkhf Rl9ERUFEKSB7CisJCXVuc2lnbmVkIGludCBmbGFncyA9IGRldl9nZXRfZmxhZ3MoZGV2KTsKKwor CQlpZiAoZmxhZ3MgJiAoSUZGX1JVTk5JTkcgfCBJRkZfTE9XRVJfVVApKQorCQkJbmhfZmxhZ3Mg fD0gUlROSF9GX0xJTktET1dOOworCX0KKwogCXByZXZfZmkgPSBOVUxMOwogCWhhc2ggPSBmaWJf ZGV2aW5kZXhfaGFzaGZuKGRldi0+aWZpbmRleCk7CiAJaGVhZCA9ICZmaWJfaW5mb19kZXZoYXNo W2hhc2hdOwotLSAKMi40LjEKCgpGcm9tIGFkY2Y3Mzk5OTJmOWRmNzQ4YmY3NDRjN2Y0NmI1Njc1 M2MwNjEwNDUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFBoaWwgUmVpZCA8cHJlaWRA ZWxlY3Ryb21hZy5jb20uYXU+CkRhdGU6IEZyaSwgMzAgT2N0IDIwMTUgMTY6NDM6NTUgKzA4MDAK U3ViamVjdDogW1BBVENIIDE5LzMwXSBzdG1tYWM6IENvcnJlY3RseSByZXBvcnQgUFRQIGNhcGFi aWxpdGllcy4KClsgVXBzdHJlYW0gY29tbWl0IGU2ZGJlMWViMmRiMGQ3YTE0OTkxYzA2Mjc4ZGQz MDMwYzQ1ZmI4MjUgXQoKcHJpdi0+aHd0c18qX2VuIGluZGljYXRlIGlmIHRpbWVzdGFtcGluZyBp cyBlbmFibGVkL2Rpc2FibGVkIGF0IHJ1bgp0aW1lLiBCdXQgIHByaXYtPmRtYV9jYXAudGltZV9z dGFtcCAgYW5kIHByaXYtPmRtYV9jYXAuYXRpbWVfc3RhbXAKaW5kaWNhdGVzIEhXIGlzIHN1cHBv cnQgZm9yIFBUUHYxL1BUUHYyLgoKU2lnbmVkLW9mZi1ieTogUGhpbCBSZWlkIDxwcmVpZEBlbGVj dHJvbWFnLmNvbS5hdT4KQWNrZWQtYnk6IFJpY2hhcmQgQ29jaHJhbiA8cmljaGFyZGNvY2hyYW5A Z21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9m dC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2V0 aHRvb2wuYyB8IDcgKysrKystLQogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgMiBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0 bW1hYy9zdG1tYWNfZXRodG9vbC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1t YWMvc3RtbWFjX2V0aHRvb2wuYwppbmRleCA3NzFjZGEyLi4yZTUxYjgxIDEwMDY0NAotLS0gYS9k cml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXRodG9vbC5jCisrKyBi L2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19ldGh0b29sLmMKQEAg LTcyMSwxMCArNzIxLDEzIEBAIHN0YXRpYyBpbnQgc3RtbWFjX2dldF90c19pbmZvKHN0cnVjdCBu ZXRfZGV2aWNlICpkZXYsCiB7CiAJc3RydWN0IHN0bW1hY19wcml2ICpwcml2ID0gbmV0ZGV2X3By aXYoZGV2KTsKIAotCWlmICgocHJpdi0+aHd0c190eF9lbikgJiYgKHByaXYtPmh3dHNfcnhfZW4p KSB7CisJaWYgKChwcml2LT5kbWFfY2FwLnRpbWVfc3RhbXAgfHwgcHJpdi0+ZG1hX2NhcC5hdGlt ZV9zdGFtcCkpIHsKIAotCQlpbmZvLT5zb190aW1lc3RhbXBpbmcgPSBTT0ZfVElNRVNUQU1QSU5H X1RYX0hBUkRXQVJFIHwKKwkJaW5mby0+c29fdGltZXN0YW1waW5nID0gU09GX1RJTUVTVEFNUElO R19UWF9TT0ZUV0FSRSB8CisJCQkJCVNPRl9USU1FU1RBTVBJTkdfVFhfSEFSRFdBUkUgfAorCQkJ CQlTT0ZfVElNRVNUQU1QSU5HX1JYX1NPRlRXQVJFIHwKIAkJCQkJU09GX1RJTUVTVEFNUElOR19S WF9IQVJEV0FSRSB8CisJCQkJCVNPRl9USU1FU1RBTVBJTkdfU09GVFdBUkUgfAogCQkJCQlTT0Zf VElNRVNUQU1QSU5HX1JBV19IQVJEV0FSRTsKIAogCQlpZiAocHJpdi0+cHRwX2Nsb2NrKQotLSAK Mi40LjEKCgpGcm9tIDUxMzhhNTY5NzlmOWVmOTUwY2E4NmViODJhMWU3MWM0NDlkN2VjMjcgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFuaSBTaW5oYSA8YW5pQGFyaXN0YS5jb20+CkRh dGU6IEZyaSwgMzAgT2N0IDIwMTUgMTY6NTQ6MzEgLTA3MDAKU3ViamVjdDogW1BBVENIIDIwLzMw XSBpcG1yOiBmaXggcG9zc2libGUgcmFjZSByZXN1bHRpbmcgZnJvbSBpbXByb3BlciB1c2FnZQog b2YgSVBfSU5DX1NUQVRTX0JIKCkgaW4gcHJlZW1wdGlibGUgY29udGV4dC4KClsgVXBzdHJlYW0g Y29tbWl0IDQ0ZjQ5ZGQ4YjVhNjA2ODcwYTFmMjExMDE1MjJhMGY5YzQ0MTQ3ODQgXQoKRml4ZXMg dGhlIGZvbGxvd2luZyBrZXJuZWwgQlVHIDoKCkJVRzogdXNpbmcgX190aGlzX2NwdV9hZGQoKSBp biBwcmVlbXB0aWJsZSBbMDAwMDAwMDBdIGNvZGU6IGJhc2gvMjc1OApjYWxsZXIgaXMgX190aGlz X2NwdV9wcmVlbXB0X2NoZWNrKzB4MTMvMHgxNQpDUFU6IDAgUElEOiAyNzU4IENvbW06IGJhc2gg VGFpbnRlZDogUCAgICAgICAgICAgTyAgIDMuMTguMTkgIzIKIGZmZmZmZmZmODE3MGVhY2EgZmZm Zjg4MDExMGQxYjc4OCBmZmZmZmZmZjgxNDgyYjJhIDAwMDAwMDAwMDAwMDAwMDAKIDAwMDAwMDAw MDAwMDAwMDAgZmZmZjg4MDExMGQxYjdiOCBmZmZmZmZmZjgxMjAxMGFlIGZmZmY4ODAwMDdjYWI4 MDAKIGZmZmY4ODAwMWEwNjA4MDAgZmZmZjg4MDEzYTg5OTEwOCBmZmZmODgwMTA4Yjg0MjQwIGZm ZmY4ODAxMTBkMWI3YzgKQ2FsbCBUcmFjZToKWzxmZmZmZmZmZjgxNDgyYjJhPl0gZHVtcF9zdGFj aysweDUyLzB4ODAKWzxmZmZmZmZmZjgxMjAxMGFlPl0gY2hlY2tfcHJlZW1wdGlvbl9kaXNhYmxl ZCsweGNlLzB4ZTEKWzxmZmZmZmZmZjgxMjAxMGQ0Pl0gX190aGlzX2NwdV9wcmVlbXB0X2NoZWNr KzB4MTMvMHgxNQpbPGZmZmZmZmZmODE0MTlkNjA+XSBpcG1yX3F1ZXVlX3htaXQrMHg2NDcvMHg3 MGMKWzxmZmZmZmZmZjgxNDFhMTU0Pl0gaXBfbXJfZm9yd2FyZCsweDMyZi8weDM0ZQpbPGZmZmZm ZmZmODE0MWFmNzY+XSBpcF9tcm91dGVfc2V0c29ja29wdCsweGUwMy8weDEwOGMKWzxmZmZmZmZm ZjgxMDU1M2ZjPl0gPyBnZXRfcGFyZW50X2lwKzB4MTEvMHg0MgpbPGZmZmZmZmZmODEwZTY5NzQ+ XSA/IHBvbGx3YWtlKzB4NGQvMHg1MQpbPGZmZmZmZmZmODEwNThhYzA+XSA/IGRlZmF1bHRfd2Fr ZV9mdW5jdGlvbisweDAvMHhmCls8ZmZmZmZmZmY4MTA1NTNmYz5dID8gZ2V0X3BhcmVudF9pcCsw eDExLzB4NDIKWzxmZmZmZmZmZjgxMDYxM2Q5Pl0gPyBfX3dha2VfdXBfY29tbW9uKzB4NDUvMHg3 NwpbPGZmZmZmZmZmODE0ODZlYTk+XSA/IF9yYXdfc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSsweDFk LzB4MzIKWzxmZmZmZmZmZjgxMDYxOGJjPl0gPyBfX3dha2VfdXBfc3luY19rZXkrMHg0YS8weDUz Cls8ZmZmZmZmZmY4MTM5YTUxOT5dID8gc29ja19kZWZfcmVhZGFibGUrMHg3MS8weDc1Cls8ZmZm ZmZmZmY4MTNkZDIyNj5dIGRvX2lwX3NldHNvY2tvcHQrMHg5ZC8weGI1NQpbPGZmZmZmZmZmODE0 Mjk4MTg+XSA/IHVuaXhfc2VxcGFja2V0X3NlbmRtc2crMHgzZi8weDQxCls8ZmZmZmZmZmY4MTM5 NjNmZT5dID8gc29ja19zZW5kbXNnKzB4NmQvMHg4NgpbPGZmZmZmZmZmODEzOTU5ZDQ+XSA/IHNv Y2tmZF9sb29rdXBfbGlnaHQrMHgxMi8weDVkCls8ZmZmZmZmZmY4MTM5NjUwYT5dID8gU3lTX3Nl bmR0bysweGYzLzB4MTFiCls8ZmZmZmZmZmY4MTBkNTczOD5dID8gbmV3X3N5bmNfcmVhZCsweDgy LzB4YWEKWzxmZmZmZmZmZjgxM2RkZDE5Pl0gY29tcGF0X2lwX3NldHNvY2tvcHQrMHgzYi8weDk5 Cls8ZmZmZmZmZmY4MTNmYjI0YT5dIGNvbXBhdF9yYXdfc2V0c29ja29wdCsweDExLzB4MzIKWzxm ZmZmZmZmZjgxMzk5MDUyPl0gY29tcGF0X3NvY2tfY29tbW9uX3NldHNvY2tvcHQrMHgxOC8weDFm Cls8ZmZmZmZmZmY4MTNjNGQwNT5dIGNvbXBhdF9TeVNfc2V0c29ja29wdCsweDFhOS8weDFjZgpb PGZmZmZmZmZmODEzYzQxNDk+XSBjb21wYXRfU3lTX3NvY2tldGNhbGwrMHgxODAvMHgxZTMKWzxm ZmZmZmZmZjgxNDg4ZWExPl0gY3N0YXJfZGlzcGF0Y2grMHg3LzB4MWUKClNpZ25lZC1vZmYtYnk6 IEFuaSBTaW5oYSA8YW5pQGFyaXN0YS5jb20+CkFja2VkLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1h emV0QGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2 ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2NC9pcG1yLmMgfCA2ICsrKy0tLQogMSBmaWxlIGNoYW5n ZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2 NC9pcG1yLmMgYi9uZXQvaXB2NC9pcG1yLmMKaW5kZXggM2EyYzAxNi4uZGYyODY5MyAxMDA2NDQK LS0tIGEvbmV0L2lwdjQvaXBtci5jCisrKyBiL25ldC9pcHY0L2lwbXIuYwpAQCAtMTY4Myw4ICsx NjgzLDggQEAgc3RhdGljIGlubGluZSBpbnQgaXBtcl9mb3J3YXJkX2ZpbmlzaChzdHJ1Y3Qgc29j ayAqc2ssIHN0cnVjdCBza19idWZmICpza2IpCiB7CiAJc3RydWN0IGlwX29wdGlvbnMgKm9wdCA9 ICYoSVBDQihza2IpLT5vcHQpOwogCi0JSVBfSU5DX1NUQVRTX0JIKGRldl9uZXQoc2tiX2RzdChz a2IpLT5kZXYpLCBJUFNUQVRTX01JQl9PVVRGT1JXREFUQUdSQU1TKTsKLQlJUF9BRERfU1RBVFNf QkgoZGV2X25ldChza2JfZHN0KHNrYiktPmRldiksIElQU1RBVFNfTUlCX09VVE9DVEVUUywgc2ti LT5sZW4pOworCUlQX0lOQ19TVEFUUyhkZXZfbmV0KHNrYl9kc3Qoc2tiKS0+ZGV2KSwgSVBTVEFU U19NSUJfT1VURk9SV0RBVEFHUkFNUyk7CisJSVBfQUREX1NUQVRTKGRldl9uZXQoc2tiX2RzdChz a2IpLT5kZXYpLCBJUFNUQVRTX01JQl9PVVRPQ1RFVFMsIHNrYi0+bGVuKTsKIAogCWlmICh1bmxp a2VseShvcHQtPm9wdGxlbikpCiAJCWlwX2ZvcndhcmRfb3B0aW9ucyhza2IpOwpAQCAtMTc0Niw3 ICsxNzQ2LDcgQEAgc3RhdGljIHZvaWQgaXBtcl9xdWV1ZV94bWl0KHN0cnVjdCBuZXQgKm5ldCwg c3RydWN0IG1yX3RhYmxlICptcnQsCiAJCSAqIHRvIGJsYWNraG9sZS4KIAkJICovCiAKLQkJSVBf SU5DX1NUQVRTX0JIKGRldl9uZXQoZGV2KSwgSVBTVEFUU19NSUJfRlJBR0ZBSUxTKTsKKwkJSVBf SU5DX1NUQVRTKGRldl9uZXQoZGV2KSwgSVBTVEFUU19NSUJfRlJBR0ZBSUxTKTsKIAkJaXBfcnRf cHV0KHJ0KTsKIAkJZ290byBvdXRfZnJlZTsKIAl9Ci0tIAoyLjQuMQoKCkZyb20gMjIxZmI2OTMw NDI0ZWJkYjJlOTM2NzE2NzAzNjI5ZDIzM2RhZWYyZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogPT9VVEYtOD9xP0JqPUMzPUI4cm49MjBNb3JrPz0gPGJqb3JuQG1vcmsubm8+CkRhdGU6 IFN1biwgMSBOb3YgMjAxNSAwMTozNDo1MCArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMjEvMzBdIHFt aV93d2FuOiBmaXggZW50cnkgZm9yIEhQIGx0NDExMiBMVEUvSFNQQSsgR29iaSA0RwogTW9kdWxl Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYt OApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CgpbIFVwc3RyZWFtIGNvbW1pdCA3MDkx MDc5MTczMWI1OTU2MTcxZTFiZmNhZDcwNzc2NmI4ZTE4ZmVlIF0KClRoZSBsdDQxMTIgaXMgYSBI UCBicmFuZGVkIEh1YXdlaSBtZTkwNmUgbW9kZW0uIExpa2Ugb3RoZXIgSHVhd2VpCm1vZGVtcywg aXQgZG9lcyBub3QgaGF2ZSBhIGZpeGVkIGludGVyZmFjZSB0byBmdW5jdGlvbiBtYXBwaW5nLgpJ bnN0ZWFkIGl0IHVzZXMgYSBIdWF3ZWkgc3BlY2lmaWMgc2NoZW1lOiBmdW5jdGlvbnMgYXJlIG1h cHBlZCBieQpzdWJjbGFzcyBhbmQgcHJvdG9jb2wuCgpIb3dldmVyLCB0aGUgSFAgdmVuZG9yIElE IGlzIHVzZWQgZm9yIG1vZGVtcyBmcm9tIG1hbnkgZGlmZmVyZW50Cm1hbnVmYWN0dXJlcnMgdXNp bmcgZGlmZmVyZW50IHNjaGVtZXMsIHNvIHdlIGNhbm5vdCBhcHBseSBhIGdlbmVyaWMKdmVuZG9y IHJ1bGUgbGlrZSB3ZSBkbyBmb3IgdGhlIEh1YXdlaSB2ZW5kb3IgSUQuCgpSZXBsYWNlIHRoZSBw cmV2aW91cyBsdDQxMTIgZW50cnkgcG9pbnRpbmcgdG8gYW4gYXJiaXRyYXJ5IGludGVyZmFjZQpu dW1iZXIgd2l0aCBhIGRldmljZSBzcGVjaWZpYyBzdWJjbGFzcyArIHByb3RvY29sIG1hdGNoLgoK UmVwb3J0ZWQtYW5kLXRlc3RlZC1ieTogTXVyaSBOaWNhbm9yIDxtdXJpK2xpYnFtaUBpbW1lcmRh LmNoPgpUZXN0ZWQtYnk6IE1hcnRpbiBIYXVrZSA8bWFyZG5oQGdteC5kZT4KRml4ZXM6IGJiMmJk ZWI4M2ZiMSAoInFtaV93d2FuOiBBZGQgc3VwcG9ydCBmb3IgSFAgbHQ0MTEyIExURS9IU1BBKyBH b2JpIDRHIE1vZGVtIikKU2lnbmVkLW9mZi1ieTogQmrDuHJuIE1vcmsgPGJqb3JuQG1vcmsubm8+ ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0t CiBkcml2ZXJzL25ldC91c2IvcW1pX3d3YW4uYyB8IDUgKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCA0 IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC91 c2IvcW1pX3d3YW4uYyBiL2RyaXZlcnMvbmV0L3VzYi9xbWlfd3dhbi5jCmluZGV4IDhmMTczOGMu LjZlZTZjMTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3VzYi9xbWlfd3dhbi5jCisrKyBiL2Ry aXZlcnMvbmV0L3VzYi9xbWlfd3dhbi5jCkBAIC01MzksNiArNTM5LDEwIEBAIHN0YXRpYyBjb25z dCBzdHJ1Y3QgdXNiX2RldmljZV9pZCBwcm9kdWN0c1tdID0gewogCQkJCQkgICAgICBVU0JfQ0RD X1BST1RPX05PTkUpLAogCQkuZHJpdmVyX2luZm8gICAgICAgID0gKHVuc2lnbmVkIGxvbmcpJnFt aV93d2FuX2luZm8sCiAJfSwKKwl7CS8qIEhQIGx0NDExMiBMVEUvSFNQQSsgR29iaSA0RyBNb2R1 bGUgKEh1YXdlaSBtZTkwNmUpICovCisJCVVTQl9ERVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZPKDB4 MDNmMCwgMHg1ODFkLCBVU0JfQ0xBU1NfVkVORE9SX1NQRUMsIDEsIDcpLAorCQkuZHJpdmVyX2lu Zm8gPSAodW5zaWduZWQgbG9uZykmcW1pX3d3YW5faW5mbywKKwl9LAogCiAJLyogMy4gQ29tYmlu ZWQgaW50ZXJmYWNlIGRldmljZXMgbWF0Y2hpbmcgb24gaW50ZXJmYWNlIG51bWJlciAqLwogCXtR TUlfRklYRURfSU5URigweDA0MDgsIDB4ZWE0MiwgNCl9LAkvKiBZb3RhIC8gTWVnYWZvbiBNMTAw LTEgKi8KQEAgLTc5MCw3ICs3OTQsNiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2Vf aWQgcHJvZHVjdHNbXSA9IHsKIAl7UU1JX0ZJWEVEX0lOVEYoMHg0MTNjLCAweDgxYTgsIDgpfSwJ LyogRGVsbCBXaXJlbGVzcyA1ODA4IEdvYmkoVE0pIDRHIExURSBNb2JpbGUgQnJvYWRiYW5kIENh cmQgKi8KIAl7UU1JX0ZJWEVEX0lOVEYoMHg0MTNjLCAweDgxYTksIDgpfSwJLyogRGVsbCBXaXJl bGVzcyA1ODA4ZSBHb2JpKFRNKSA0RyBMVEUgTW9iaWxlIEJyb2FkYmFuZCBDYXJkICovCiAJe1FN SV9GSVhFRF9JTlRGKDB4MDNmMCwgMHg0ZTFkLCA4KX0sCS8qIEhQIGx0NDExMSBMVEUvRVYtRE8v SFNQQSsgR29iaSA0RyBNb2R1bGUgKi8KLQl7UU1JX0ZJWEVEX0lOVEYoMHgwM2YwLCAweDU4MWQs IDQpfSwJLyogSFAgbHQ0MTEyIExURS9IU1BBKyBHb2JpIDRHIE1vZHVsZSAoSHVhd2VpIG1lOTA2 ZSkgKi8KIAogCS8qIDQuIEdvYmkgMTAwMCBkZXZpY2VzICovCiAJe1FNSV9HT0JJMUtfREVWSUNF KDB4MDVjNiwgMHg5MjEyKX0sCS8qIEFjZXIgR29iaSBNb2RlbSBEZXZpY2UgKi8KLS0gCjIuNC4x CgoKRnJvbSBkMzNkYTA0ZDY1YWEzYmExYzE2NzIzZjhlNmUyMDQxNDE3ZWRkYjBhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ CkRhdGU6IE1vbiwgMiBOb3YgMjAxNSAxNzowODoxOSAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMjIv MzBdIHNpdDogZml4IHNpdDAgcGVyY3B1IGRvdWJsZSBhbGxvY2F0aW9ucwoKWyBVcHN0cmVhbSBj b21taXQgNGVjZTkwMDk3NzQ1OTZlZTNkZjBhY2JhNjVhMzI0YjdlYTc5Mzg3YyBdCgpzaXQwIGRl dmljZSBhbGxvY2F0ZXMgaXRzIHBlcmNwdSBzdG9yYWdlIHR3aWNlIDoKLSBPbmUgdGltZSBpbiBp cGlwNl90dW5uZWxfaW5pdCgpCi0gT25lIHRpbWUgaW4gaXBpcDZfZmJfdHVubmVsX2luaXQoKQoK VGh1cyB3ZSBsZWFrIDQ4IGJ5dGVzIHBlciBwb3NzaWJsZSBjcHUgcGVyIG5ldHdvcmsgbmFtZXNw YWNlIGRpc21hbnRsZS4KCmlwaXA2X2ZiX3R1bm5lbF9pbml0KCkgY2FuIGJlIG11Y2ggc2ltcGxl ciBhbmQgZG9lcyBub3QKcmV0dXJuIGFuIGVycm9yLCBhbmQgc2hvdWxkIGJlIGNhbGxlZCBhZnRl ciByZWdpc3Rlcl9uZXRkZXYoKQoKTm90ZSB0aGF0IGlwaXA2X3R1bm5lbF9jbG9uZV82cmQoKSBh bHNvIG5lZWRzIHRvIGJlIGNhbGxlZAphZnRlciByZWdpc3Rlcl9uZXRkZXYoKSAoY2FsbGluZyBp cGlwNl90dW5uZWxfaW5pdCgpKQoKRml4ZXM6IGViZTA4NGFhZmI3ZSAoInNpdDogVXNlIGlwaXA2 X3R1bm5lbF9pbml0IGFzIHRoZSBuZG9faW5pdCBmdW5jdGlvbi4iKQpTaWduZWQtb2ZmLWJ5OiBF cmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClJlcG9ydGVkLWJ5OiBEbWl0cnkgVnl1 a292IDxkdnl1a292QGdvb2dsZS5jb20+CkNjOiBTdGVmZmVuIEtsYXNzZXJ0IDxzdGVmZmVuLmts YXNzZXJ0QHNlY3VuZXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVt QGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjYvc2l0LmMgfCAyNiArKysrLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMjIgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvc2l0LmMgYi9uZXQvaXB2Ni9zaXQuYwppbmRleCBh YzM1YTI4Li44NWM0YjJmIDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9zaXQuYworKysgYi9uZXQvaXB2 Ni9zaXQuYwpAQCAtMTM5NCwzNCArMTM5NCwyMCBAQCBzdGF0aWMgaW50IGlwaXA2X3R1bm5lbF9p bml0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQg X19uZXRfaW5pdCBpcGlwNl9mYl90dW5uZWxfaW5pdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQor c3RhdGljIHZvaWQgX19uZXRfaW5pdCBpcGlwNl9mYl90dW5uZWxfaW5pdChzdHJ1Y3QgbmV0X2Rl dmljZSAqZGV2KQogewogCXN0cnVjdCBpcF90dW5uZWwgKnR1bm5lbCA9IG5ldGRldl9wcml2KGRl dik7CiAJc3RydWN0IGlwaGRyICppcGggPSAmdHVubmVsLT5wYXJtcy5pcGg7CiAJc3RydWN0IG5l dCAqbmV0ID0gZGV2X25ldChkZXYpOwogCXN0cnVjdCBzaXRfbmV0ICpzaXRuID0gbmV0X2dlbmVy aWMobmV0LCBzaXRfbmV0X2lkKTsKIAotCXR1bm5lbC0+ZGV2ID0gZGV2OwotCXR1bm5lbC0+bmV0 ID0gZGV2X25ldChkZXYpOwotCiAJaXBoLT52ZXJzaW9uCQk9IDQ7CiAJaXBoLT5wcm90b2NvbAkJ PSBJUFBST1RPX0lQVjY7CiAJaXBoLT5paGwJCT0gNTsKIAlpcGgtPnR0bAkJPSA2NDsKIAotCWRl di0+dHN0YXRzID0gbmV0ZGV2X2FsbG9jX3BjcHVfc3RhdHMoc3RydWN0IHBjcHVfc3dfbmV0c3Rh dHMpOwotCWlmICghZGV2LT50c3RhdHMpCi0JCXJldHVybiAtRU5PTUVNOwotCi0JdHVubmVsLT5k c3RfY2FjaGUgPSBhbGxvY19wZXJjcHUoc3RydWN0IGlwX3R1bm5lbF9kc3QpOwotCWlmICghdHVu bmVsLT5kc3RfY2FjaGUpIHsKLQkJZnJlZV9wZXJjcHUoZGV2LT50c3RhdHMpOwotCQlyZXR1cm4g LUVOT01FTTsKLQl9Ci0KIAlkZXZfaG9sZChkZXYpOwogCXJjdV9hc3NpZ25fcG9pbnRlcihzaXRu LT50dW5uZWxzX3djWzBdLCB0dW5uZWwpOwotCXJldHVybiAwOwogfQogCiBzdGF0aWMgaW50IGlw aXA2X3ZhbGlkYXRlKHN0cnVjdCBubGF0dHIgKnRiW10sIHN0cnVjdCBubGF0dHIgKmRhdGFbXSkK QEAgLTE4MzEsMjMgKzE4MTcsMTkgQEAgc3RhdGljIGludCBfX25ldF9pbml0IHNpdF9pbml0X25l dChzdHJ1Y3QgbmV0ICpuZXQpCiAJICovCiAJc2l0bi0+ZmJfdHVubmVsX2Rldi0+ZmVhdHVyZXMg fD0gTkVUSUZfRl9ORVROU19MT0NBTDsKIAotCWVyciA9IGlwaXA2X2ZiX3R1bm5lbF9pbml0KHNp dG4tPmZiX3R1bm5lbF9kZXYpOwotCWlmIChlcnIpCi0JCWdvdG8gZXJyX2Rldl9mcmVlOwotCi0J aXBpcDZfdHVubmVsX2Nsb25lXzZyZChzaXRuLT5mYl90dW5uZWxfZGV2LCBzaXRuKTsKIAllcnIg PSByZWdpc3Rlcl9uZXRkZXYoc2l0bi0+ZmJfdHVubmVsX2Rldik7CiAJaWYgKGVycikKIAkJZ290 byBlcnJfcmVnX2RldjsKIAorCWlwaXA2X3R1bm5lbF9jbG9uZV82cmQoc2l0bi0+ZmJfdHVubmVs X2Rldiwgc2l0bik7CisJaXBpcDZfZmJfdHVubmVsX2luaXQoc2l0bi0+ZmJfdHVubmVsX2Rldik7 CisKIAl0ID0gbmV0ZGV2X3ByaXYoc2l0bi0+ZmJfdHVubmVsX2Rldik7CiAKIAlzdHJjcHkodC0+ cGFybXMubmFtZSwgc2l0bi0+ZmJfdHVubmVsX2Rldi0+bmFtZSk7CiAJcmV0dXJuIDA7CiAKIGVy cl9yZWdfZGV2OgotCWRldl9wdXQoc2l0bi0+ZmJfdHVubmVsX2Rldik7Ci1lcnJfZGV2X2ZyZWU6 CiAJaXBpcDZfZGV2X2ZyZWUoc2l0bi0+ZmJfdHVubmVsX2Rldik7CiBlcnJfYWxsb2NfZGV2Ogog CXJldHVybiBlcnI7Ci0tIAoyLjQuMQoKCkZyb20gYzkwM2JlMzI5ZjA4MjBhODI2N2E3ODI2YmVj M2ViNTQ3NzEyZTM4NiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTWFydGluIEhhYmV0 cyA8bWhhYmV0c0Bzb2xhcmZsYXJlLmNvbT4KRGF0ZTogTW9uLCAyIE5vdiAyMDE1IDEyOjUxOjMx ICswMDAwClN1YmplY3Q6IFtQQVRDSCAyMy8zMF0gc2ZjOiBwdXNoIHBhcnRuZXIgcXVldWUgZm9y IHNrYi0+eG1pdF9tb3JlCgpbIFVwc3RyZWFtIGNvbW1pdCBiMjY2M2E0ZjMwZTg1ZWM2MDZiODA2 ZjUxMzU0MTNlNmQ1Yzc4ZDFlIF0KCldoZW4gdGhlIElQIHN0YWNrIHBhc3NlcyBTS0JzIHRoZSBz ZmMgZHJpdmVyIHB1dHMgdGhlbSBpbiAyIGRpZmZlcmVudCBUWApxdWV1ZXMgKGNhbGxlZCBwYXJ0 bmVycyksIG9uZSBmb3IgY2hlY2tzdW1tZWQgYW5kIG9uZSBmb3Igbm90IGNoZWNrc3VtbWVkLgpJ ZiB0aGUgU0tCIGhhcyB4bWl0X21vcmUgc2V0IHRoZSBkcml2ZXIgd2lsbCBkZWxheSBwdXNoaW5n IHRoZSB3b3JrIHRvIHRoZQpOSUMuCgpXaGVuIGxhdGVyIGl0IGRvZXMgZGVjaWRlIHRvIHB1c2gg dGhlIGJ1ZmZlcnMgdGhpcyBwYXRjaCBlbnN1cmVzIGl0IGFsc28KcHVzaGVzIHRoZSBwYXJ0bmVy IHF1ZXVlLCBpZiB0aGF0IGFsc28gaGFzIGFueSBkZWxheWVkIHdvcmsuIEJlZm9yZSB0aGlzCmZp eCB0aGUgd29yayBpbiB0aGUgcGFydG5lciBxdWV1ZSB3b3VsZCBiZSBsZWZ0IGZvciBhIGxvbmcg dGltZSBhbmQgY2F1c2UKYSBuZXRkZXYgd2F0Y2hkb2cuCgpGaXhlczogNzBiMzNmYiAoInNmYzog YWRkIHN1cHBvcnQgZm9yIHNrYi0+eG1pdF9tb3JlIikKUmVwb3J0ZWQtYnk6IEppYW5saW4gU2hp IDxqaXNoaUByZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBNYXJ0aW4gSGFiZXRzIDxtaGFiZXRz QHNvbGFyZmxhcmUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYyAgICAgICB8 ICA0ICsrKy0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9mYXJjaC5jICAgICAgfCAgNCArKyst CiBkcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbmV0X2RyaXZlci5oIHwgIDIgKysKIGRyaXZlcnMv bmV0L2V0aGVybmV0L3NmYy90eC5jICAgICAgICAgfCAzMCArKysrKysrKysrKysrKysrKysrKysr KysrKysrLS0KIDQgZmlsZXMgY2hhbmdlZCwgMzYgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jIGIvZHJpdmVy cy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYwppbmRleCBiMWE0ZWEyLi40ZGQxOGY0IDEwMDY0NAot LS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0 aGVybmV0L3NmYy9lZjEwLmMKQEAgLTE4MDksNyArMTgwOSw5IEBAIHN0YXRpYyB2b2lkIGVmeF9l ZjEwX3R4X3dyaXRlKHN0cnVjdCBlZnhfdHhfcXVldWUgKnR4X3F1ZXVlKQogCXVuc2lnbmVkIGlu dCB3cml0ZV9wdHI7CiAJZWZ4X3F3b3JkX3QgKnR4ZDsKIAotCUJVR19PTih0eF9xdWV1ZS0+d3Jp dGVfY291bnQgPT0gdHhfcXVldWUtPmluc2VydF9jb3VudCk7CisJdHhfcXVldWUtPnhtaXRfbW9y ZV9hdmFpbGFibGUgPSBmYWxzZTsKKwlpZiAodW5saWtlbHkodHhfcXVldWUtPndyaXRlX2NvdW50 ID09IHR4X3F1ZXVlLT5pbnNlcnRfY291bnQpKQorCQlyZXR1cm47CiAKIAlkbyB7CiAJCXdyaXRl X3B0ciA9IHR4X3F1ZXVlLT53cml0ZV9jb3VudCAmIHR4X3F1ZXVlLT5wdHJfbWFzazsKZGlmZiAt LWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9mYXJjaC5jIGIvZHJpdmVycy9uZXQvZXRo ZXJuZXQvc2ZjL2ZhcmNoLmMKaW5kZXggZjA4MjY2Zi4uNWExYzVhOCAxMDA2NDQKLS0tIGEvZHJp dmVycy9uZXQvZXRoZXJuZXQvc2ZjL2ZhcmNoLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQv c2ZjL2ZhcmNoLmMKQEAgLTMyMSw3ICszMjEsOSBAQCB2b2lkIGVmeF9mYXJjaF90eF93cml0ZShz dHJ1Y3QgZWZ4X3R4X3F1ZXVlICp0eF9xdWV1ZSkKIAl1bnNpZ25lZCB3cml0ZV9wdHI7CiAJdW5z aWduZWQgb2xkX3dyaXRlX2NvdW50ID0gdHhfcXVldWUtPndyaXRlX2NvdW50OwogCi0JQlVHX09O KHR4X3F1ZXVlLT53cml0ZV9jb3VudCA9PSB0eF9xdWV1ZS0+aW5zZXJ0X2NvdW50KTsKKwl0eF9x dWV1ZS0+eG1pdF9tb3JlX2F2YWlsYWJsZSA9IGZhbHNlOworCWlmICh1bmxpa2VseSh0eF9xdWV1 ZS0+d3JpdGVfY291bnQgPT0gdHhfcXVldWUtPmluc2VydF9jb3VudCkpCisJCXJldHVybjsKIAog CWRvIHsKIAkJd3JpdGVfcHRyID0gdHhfcXVldWUtPndyaXRlX2NvdW50ICYgdHhfcXVldWUtPnB0 cl9tYXNrOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL25ldF9kcml2ZXIu aCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9uZXRfZHJpdmVyLmgKaW5kZXggNDdkMWUzYS4u YjhlOGNlMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL25ldF9kcml2ZXIu aAorKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbmV0X2RyaXZlci5oCkBAIC0yMTksNiAr MjE5LDcgQEAgc3RydWN0IGVmeF90eF9idWZmZXIgewogICogQHRzb19wYWNrZXRzOiBOdW1iZXIg b2YgcGFja2V0cyB2aWEgdGhlIFRTTyB4bWl0IHBhdGgKICAqIEBwdXNoZXM6IE51bWJlciBvZiB0 aW1lcyB0aGUgVFggcHVzaCBmZWF0dXJlIGhhcyBiZWVuIHVzZWQKICAqIEBwaW9fcGFja2V0czog TnVtYmVyIG9mIHRpbWVzIHRoZSBUWCBQSU8gZmVhdHVyZSBoYXMgYmVlbiB1c2VkCisgKiBAeG1p dF9tb3JlX2F2YWlsYWJsZTogQXJlIGFueSBwYWNrZXRzIHdhaXRpbmcgdG8gYmUgcHVzaGVkIHRv IHRoZSBOSUMKICAqIEBlbXB0eV9yZWFkX2NvdW50OiBJZiB0aGUgY29tcGxldGlvbiBwYXRoIGhh cyBzZWVuIHRoZSBxdWV1ZSBhcyBlbXB0eQogICoJYW5kIHRoZSB0cmFuc21pc3Npb24gcGF0aCBo YXMgbm90IHlldCBjaGVja2VkIHRoaXMsIHRoZSB2YWx1ZSBvZgogICoJQHJlYWRfY291bnQgYml0 d2lzZS1hZGRlZCB0byAlRUZYX0VNUFRZX0NPVU5UX1ZBTElEOyBvdGhlcndpc2UgMC4KQEAgLTI1 Myw2ICsyNTQsNyBAQCBzdHJ1Y3QgZWZ4X3R4X3F1ZXVlIHsKIAl1bnNpZ25lZCBpbnQgdHNvX3Bh Y2tldHM7CiAJdW5zaWduZWQgaW50IHB1c2hlczsKIAl1bnNpZ25lZCBpbnQgcGlvX3BhY2tldHM7 CisJYm9vbCB4bWl0X21vcmVfYXZhaWxhYmxlOwogCS8qIFN0YXRpc3RpY3MgdG8gc3VwcGxlbWVu dCBNQUMgc3RhdHMgKi8KIAl1bnNpZ25lZCBsb25nIHR4X3BhY2tldHM7CiAKZGlmZiAtLWdpdCBh L2RyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy90eC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc2Zj L3R4LmMKaW5kZXggMTgzM2EwMS4uNjdmNmFmYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRo ZXJuZXQvc2ZjL3R4LmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL3R4LmMKQEAgLTQz MSw4ICs0MzEsMjAgQEAgZmluaXNoX3BhY2tldDoKIAllZnhfdHhfbWF5YmVfc3RvcF9xdWV1ZSh0 eF9xdWV1ZSk7CiAKIAkvKiBQYXNzIG9mZiB0byBoYXJkd2FyZSAqLwotCWlmICghc2tiLT54bWl0 X21vcmUgfHwgbmV0aWZfeG1pdF9zdG9wcGVkKHR4X3F1ZXVlLT5jb3JlX3R4cSkpCisJaWYgKCFz a2ItPnhtaXRfbW9yZSB8fCBuZXRpZl94bWl0X3N0b3BwZWQodHhfcXVldWUtPmNvcmVfdHhxKSkg eworCQlzdHJ1Y3QgZWZ4X3R4X3F1ZXVlICp0eHEyID0gZWZ4X3R4X3F1ZXVlX3BhcnRuZXIodHhf cXVldWUpOworCisJCS8qIFRoZXJlIGNvdWxkIGJlIHBhY2tldHMgbGVmdCBvbiB0aGUgcGFydG5l ciBxdWV1ZSBpZiB0aG9zZQorCQkgKiBTS0JzIGhhZCBza2ItPnhtaXRfbW9yZSBzZXQuIElmIHdl IGRvIG5vdCBwdXNoIHRob3NlIHRoZXkKKwkJICogY291bGQgYmUgbGVmdCBmb3IgYSBsb25nIHRp bWUgYW5kIGNhdXNlIGEgbmV0ZGV2IHdhdGNoZG9nLgorCQkgKi8KKwkJaWYgKHR4cTItPnhtaXRf bW9yZV9hdmFpbGFibGUpCisJCQllZnhfbmljX3B1c2hfYnVmZmVycyh0eHEyKTsKKwogCQllZnhf bmljX3B1c2hfYnVmZmVycyh0eF9xdWV1ZSk7CisJfSBlbHNlIHsKKwkJdHhfcXVldWUtPnhtaXRf bW9yZV9hdmFpbGFibGUgPSBza2ItPnhtaXRfbW9yZTsKKwl9CiAKIAl0eF9xdWV1ZS0+dHhfcGFj a2V0cysrOwogCkBAIC03MjIsNiArNzM0LDcgQEAgdm9pZCBlZnhfaW5pdF90eF9xdWV1ZShzdHJ1 Y3QgZWZ4X3R4X3F1ZXVlICp0eF9xdWV1ZSkKIAl0eF9xdWV1ZS0+cmVhZF9jb3VudCA9IDA7CiAJ dHhfcXVldWUtPm9sZF9yZWFkX2NvdW50ID0gMDsKIAl0eF9xdWV1ZS0+ZW1wdHlfcmVhZF9jb3Vu dCA9IDAgfCBFRlhfRU1QVFlfQ09VTlRfVkFMSUQ7CisJdHhfcXVldWUtPnhtaXRfbW9yZV9hdmFp bGFibGUgPSBmYWxzZTsKIAogCS8qIFNldCB1cCBUWCBkZXNjcmlwdG9yIHJpbmcgKi8KIAllZnhf bmljX2luaXRfdHgodHhfcXVldWUpOwpAQCAtNzQ3LDYgKzc2MCw3IEBAIHZvaWQgZWZ4X2Zpbmlf dHhfcXVldWUoc3RydWN0IGVmeF90eF9xdWV1ZSAqdHhfcXVldWUpCiAKIAkJKyt0eF9xdWV1ZS0+ cmVhZF9jb3VudDsKIAl9CisJdHhfcXVldWUtPnhtaXRfbW9yZV9hdmFpbGFibGUgPSBmYWxzZTsK IAluZXRkZXZfdHhfcmVzZXRfcXVldWUodHhfcXVldWUtPmNvcmVfdHhxKTsKIH0KIApAQCAtMTMw Miw4ICsxMzE2LDIwIEBAIHN0YXRpYyBpbnQgZWZ4X2VucXVldWVfc2tiX3RzbyhzdHJ1Y3QgZWZ4 X3R4X3F1ZXVlICp0eF9xdWV1ZSwKIAllZnhfdHhfbWF5YmVfc3RvcF9xdWV1ZSh0eF9xdWV1ZSk7 CiAKIAkvKiBQYXNzIG9mZiB0byBoYXJkd2FyZSAqLwotCWlmICghc2tiLT54bWl0X21vcmUgfHwg bmV0aWZfeG1pdF9zdG9wcGVkKHR4X3F1ZXVlLT5jb3JlX3R4cSkpCisJaWYgKCFza2ItPnhtaXRf bW9yZSB8fCBuZXRpZl94bWl0X3N0b3BwZWQodHhfcXVldWUtPmNvcmVfdHhxKSkgeworCQlzdHJ1 Y3QgZWZ4X3R4X3F1ZXVlICp0eHEyID0gZWZ4X3R4X3F1ZXVlX3BhcnRuZXIodHhfcXVldWUpOwor CisJCS8qIFRoZXJlIGNvdWxkIGJlIHBhY2tldHMgbGVmdCBvbiB0aGUgcGFydG5lciBxdWV1ZSBp ZiB0aG9zZQorCQkgKiBTS0JzIGhhZCBza2ItPnhtaXRfbW9yZSBzZXQuIElmIHdlIGRvIG5vdCBw dXNoIHRob3NlIHRoZXkKKwkJICogY291bGQgYmUgbGVmdCBmb3IgYSBsb25nIHRpbWUgYW5kIGNh dXNlIGEgbmV0ZGV2IHdhdGNoZG9nLgorCQkgKi8KKwkJaWYgKHR4cTItPnhtaXRfbW9yZV9hdmFp bGFibGUpCisJCQllZnhfbmljX3B1c2hfYnVmZmVycyh0eHEyKTsKKwogCQllZnhfbmljX3B1c2hf YnVmZmVycyh0eF9xdWV1ZSk7CisJfSBlbHNlIHsKKwkJdHhfcXVldWUtPnhtaXRfbW9yZV9hdmFp bGFibGUgPSBza2ItPnhtaXRfbW9yZTsKKwl9CiAKIAl0eF9xdWV1ZS0+dHNvX2J1cnN0cysrOwog CXJldHVybiBORVRERVZfVFhfT0s7Ci0tIAoyLjQuMQoKCkZyb20gN2EzYmJiNzM5NWNjMmZhNzA4 NTIxZTdhNzhiYjc1ZGM5NGNmMTM1MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJp YyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpEYXRlOiBNb24sIDIgTm92IDIwMTUgMDc6 NTA6MDcgLTA4MDAKU3ViamVjdDogW1BBVENIIDI0LzMwXSBuZXQ6IGF2b2lkIE5VTEwgZGVyZWYg aW4gaW5ldF9jdGxfc29ja19kZXN0cm95KCkKClsgVXBzdHJlYW0gY29tbWl0IDhmYTY3N2QyNzA2 ZDMyNWQ3MWRhYjkxYmY2ZTY1MTJjMDUyMTRlMzcgXQoKVW5kZXIgbG93IG1lbW9yeSBjb25kaXRp b25zLCB0Y3Bfc2tfaW5pdCgpIGFuZCBpY21wX3NrX2luaXQoKQpjYW4gYm90aCBpdGVyYXRlIG9u IGFsbCBwb3NzaWJsZSBjcHVzIGFuZCBjYWxsIGluZXRfY3RsX3NvY2tfZGVzdHJveSgpLAp3aXRo IGV2ZW50dWFsIE5VTEwgcG9pbnRlci4KClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1 bWF6ZXRAZ29vZ2xlLmNvbT4KUmVwb3J0ZWQtYnk6IERtaXRyeSBWeXVrb3YgPGR2eXVrb3ZAZ29v Z2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQu bmV0PgotLS0KIGluY2x1ZGUvbmV0L2luZXRfY29tbW9uLmggfCAzICsrLQogMSBmaWxlIGNoYW5n ZWQsIDIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUv bmV0L2luZXRfY29tbW9uLmggYi9pbmNsdWRlL25ldC9pbmV0X2NvbW1vbi5oCmluZGV4IDI3OWY4 MzUuLjEwOWUzZWUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L2luZXRfY29tbW9uLmgKKysrIGIv aW5jbHVkZS9uZXQvaW5ldF9jb21tb24uaApAQCAtNDEsNyArNDEsOCBAQCBpbnQgaW5ldF9yZWN2 X2Vycm9yKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IG1zZ2hkciAqbXNnLCBpbnQgbGVuLAogCiBz dGF0aWMgaW5saW5lIHZvaWQgaW5ldF9jdGxfc29ja19kZXN0cm95KHN0cnVjdCBzb2NrICpzaykK IHsKLQlzb2NrX3JlbGVhc2Uoc2stPnNrX3NvY2tldCk7CisJaWYgKHNrKQorCQlzb2NrX3JlbGVh c2Uoc2stPnNrX3NvY2tldCk7CiB9CiAKICNlbmRpZgotLSAKMi40LjEKCgpGcm9tIGQxNDRhMzhi ZGFmMmMzZWViMzQ3OGZlZDBiZWJhNGJhNWNlNTUwZWEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IFNhYnJpbmEgRHVicm9jYSA8c2RAcXVlYXN5c25haWwubmV0PgpEYXRlOiBXZWQsIDQg Tm92IDIwMTUgMTQ6NDc6NTMgKzAxMDAKU3ViamVjdDogW1BBVENIIDI1LzMwXSBpcHY2OiBjbGVh biB1cCBkZXZfc25tcDYgcHJvYyBlbnRyeSB3aGVuIHdlIGZhaWwgdG8KIGluaXRpYWxpemUgaW5l dDZfZGV2CgpbIFVwc3RyZWFtIGNvbW1pdCAyYTE4OWY5ZTU3NjUwZTlmMzEwZGRmNGFhZDc1ZDY2 YzEyMzNhMDY0IF0KCkluIGlwdjZfYWRkX2Rldiwgd2hlbiBhZGRyY29uZl9zeXNjdGxfcmVnaXN0 ZXIgZmFpbHMsIHdlIGRvIG5vdCBjbGVhbiB1cAp0aGUgZGV2X3NubXA2IGVudHJ5IHRoYXQgd2Ug aGF2ZSBhbHJlYWR5IHJlZ2lzdGVyZWQgZm9yIHRoaXMgZGV2aWNlLgpDYWxsIHNubXA2X3VucmVn aXN0ZXJfZGV2IGluIHRoaXMgY2FzZS4KCkZpeGVzOiBhMzE3YTJmMTlkYTdkICgiaXB2NjogZmFp bCBlYXJseSB3aGVuIGNyZWF0aW5nIG5ldGRldiBuYW1lZCBhbGwgb3IgZGVmYXVsdCIpClJlcG9y dGVkLWJ5OiBEbWl0cnkgVnl1a292IDxkdnl1a292QGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6 IFNhYnJpbmEgRHVicm9jYSA8c2RAcXVlYXN5c25haWwubmV0PgpTaWduZWQtb2ZmLWJ5OiBEYXZp ZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjYvYWRkcmNvbmYu YyB8IDEgKwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCgpkaWZmIC0tZ2l0IGEvbmV0 L2lwdjYvYWRkcmNvbmYuYyBiL25ldC9pcHY2L2FkZHJjb25mLmMKaW5kZXggMjFjMmM4MS4uYzhj MWZlYSAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvYWRkcmNvbmYuYworKysgYi9uZXQvaXB2Ni9hZGRy Y29uZi5jCkBAIC00MTEsNiArNDExLDcgQEAgc3RhdGljIHN0cnVjdCBpbmV0Nl9kZXYgKmlwdjZf YWRkX2RldihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogCWlmIChlcnIpIHsKIAkJaXB2Nl9tY19k ZXN0cm95X2RldihuZGV2KTsKIAkJZGVsX3RpbWVyKCZuZGV2LT5yZWdlbl90aW1lcik7CisJCXNu bXA2X3VucmVnaXN0ZXJfZGV2KG5kZXYpOwogCQlnb3RvIGVycl9yZWxlYXNlOwogCX0KIAkvKiBw cm90ZWN0ZWQgYnkgcnRubF9sb2NrICovCi0tIAoyLjQuMQoKCkZyb20gMmQ1YmMxNTBkZmRkYzA4 MWMzZDQ5ZTE1YWZkOGJmMzZjY2M0NDViZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog V0FORyBDb25nIDx4aXlvdS53YW5nY29uZ0BnbWFpbC5jb20+CkRhdGU6IFR1ZSwgMyBOb3YgMjAx NSAxNDozMjo1NyAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMjYvMzBdIGlwdjQ6IGRpc2FibGUgQkgg d2hlbiBjaGFuZ2luZyBpcCBsb2NhbCBwb3J0IHJhbmdlCgpbIFVwc3RyZWFtIGNvbW1pdCA0ZWUz YmQ0YThjNzQ2M2NkZWYwYjgyZWJjMzNmYzk0YTkxNzBhN2UwIF0KClRoaXMgZml4ZXMgdGhlIGZv bGxvd2luZyBsb2NrZGVwIHdhcm5pbmc6CgogWyBJTkZPOiBpbmNvbnNpc3RlbnQgbG9jayBzdGF0 ZSBdCiA0LjMuMC1yYzcrICMxMTk3IE5vdCB0YWludGVkCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KIGluY29uc2lzdGVudCB7SU4tU09GVElSUS1SfSAtPiB7U09GVElSUS1PTi1X fSB1c2FnZS4KIHN5c2N0bC8xMDE5IFtIQzBbMF06U0MwWzBdOkhFMTpTRTFdIHRha2VzOgogICgm KCZuZXQtPmlwdjQuaXBfbG9jYWxfcG9ydHMubG9jayktPnNlcWNvdW50KXsrListLi59LCBhdDog WzxmZmZmZmZmZjgxOTIxZGU3Pl0gaXB2NF9sb2NhbF9wb3J0X3JhbmdlKzB4YjQvMHgxMmEKIHtJ Ti1TT0ZUSVJRLVJ9IHN0YXRlIHdhcyByZWdpc3RlcmVkIGF0OgogICBbPGZmZmZmZmZmODEwYmQ2 ODI+XSBfX2xvY2tfYWNxdWlyZSsweDJmNi8weGRmMAogICBbPGZmZmZmZmZmODEwYmU2ZDU+XSBs b2NrX2FjcXVpcmUrMHgxMWMvMHgxYTQKICAgWzxmZmZmZmZmZjgxOGU1OTljPl0gaW5ldF9nZXRf bG9jYWxfcG9ydF9yYW5nZSsweDRlLzB4YWUKICAgWzxmZmZmZmZmZjgxNjZlOGUzPl0gdWRwX2Zs b3dfc3JjX3BvcnQuY29uc3Rwcm9wLjQwKzB4MjMvMHgxMTYKICAgWzxmZmZmZmZmZjgxNjcxY2I5 Pl0gdnhsYW5feG1pdF9vbmUrMHgyMTkvMHhhNmEKICAgWzxmZmZmZmZmZjgxNjcyZjc1Pl0gdnhs YW5feG1pdCsweGE2Yi8weGFhNQogICBbPGZmZmZmZmZmODE3ZjJkZWI+XSBkZXZfaGFyZF9zdGFy dF94bWl0KzB4MmFlLzB4NDY1CiAgIFs8ZmZmZmZmZmY4MTdmMzVlZD5dIF9fZGV2X3F1ZXVlX3ht aXQrMHg1MzEvMHg2MzMKICAgWzxmZmZmZmZmZjgxN2YzNzAyPl0gZGV2X3F1ZXVlX3htaXRfc2sr MHgxMy8weDE1CiAgIFs8ZmZmZmZmZmY4MTgwMDRhNT5dIG5laWdoX3Jlc29sdmVfb3V0cHV0KzB4 MTJmLzB4MTRkCiAgIFs8ZmZmZmZmZmY4MTk1OWNmYT5dIGlwNl9maW5pc2hfb3V0cHV0MisweDM0 NC8weDM5ZgogICBbPGZmZmZmZmZmODE5NWJmNTg+XSBpcDZfZmluaXNoX291dHB1dCsweDg4LzB4 OGUKICAgWzxmZmZmZmZmZjgxOTViZmVmPl0gaXA2X291dHB1dCsweDkxLzB4ZTUKICAgWzxmZmZm ZmZmZjgxOTc5MmFlPl0gZHN0X291dHB1dF9zaysweDQ3LzB4NGMKICAgWzxmZmZmZmZmZjgxOTc5 MzkyPl0gTkZfSE9PS19USFJFU0guY29uc3Rwcm9wLjMwKzB4MzgvMHg4MgogICBbPGZmZmZmZmZm ODE5Nzk4MWU+XSBtbGRfc2VuZHBhY2srMHgxODkvMHgyNjYKICAgWzxmZmZmZmZmZjgxOTdiMjhi Pl0gbWxkX2lmY190aW1lcl9leHBpcmUrMHgxZWYvMHgyMjMKICAgWzxmZmZmZmZmZjgxMGRlNTgx Pl0gY2FsbF90aW1lcl9mbisweGZiLzB4MjhjCiAgIFs8ZmZmZmZmZmY4MTBkZWQxZT5dIHJ1bl90 aW1lcl9zb2Z0aXJxKzB4MWM3LzB4MWYxCgpGaXhlczogYjhmMWE1NTYzOWU2ICgidWRwOiBBZGQg ZnVuY3Rpb24gdG8gbWFrZSBzb3VyY2UgcG9ydCBmb3IgVURQIHR1bm5lbHMiKQpDYzogVG9tIEhl cmJlcnQgPHRvbUBoZXJiZXJ0bGFuZC5jb20+ClNpZ25lZC1vZmYtYnk6IENvbmcgV2FuZyA8eGl5 b3Uud2FuZ2NvbmdAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRh dmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjQvc3lzY3RsX25ldF9pcHY0LmMgfCA0ICsr LS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvbmV0L2lwdjQvc3lzY3RsX25ldF9pcHY0LmMgYi9uZXQvaXB2NC9zeXNjdGxfbmV0 X2lwdjQuYwppbmRleCAwMzMwYWIyLi5hMTQ0MmM1IDEwMDY0NAotLS0gYS9uZXQvaXB2NC9zeXNj dGxfbmV0X2lwdjQuYworKysgYi9uZXQvaXB2NC9zeXNjdGxfbmV0X2lwdjQuYwpAQCAtNDcsMTQg KzQ3LDE0IEBAIHN0YXRpYyB2b2lkIHNldF9sb2NhbF9wb3J0X3JhbmdlKHN0cnVjdCBuZXQgKm5l dCwgaW50IHJhbmdlWzJdKQogewogCWJvb2wgc2FtZV9wYXJpdHkgPSAhKChyYW5nZVswXSBeIHJh bmdlWzFdKSAmIDEpOwogCi0Jd3JpdGVfc2VxbG9jaygmbmV0LT5pcHY0LmlwX2xvY2FsX3BvcnRz LmxvY2spOworCXdyaXRlX3NlcWxvY2tfYmgoJm5ldC0+aXB2NC5pcF9sb2NhbF9wb3J0cy5sb2Nr KTsKIAlpZiAoc2FtZV9wYXJpdHkgJiYgIW5ldC0+aXB2NC5pcF9sb2NhbF9wb3J0cy53YXJuZWQp IHsKIAkJbmV0LT5pcHY0LmlwX2xvY2FsX3BvcnRzLndhcm5lZCA9IHRydWU7CiAJCXByX2Vycl9y YXRlbGltaXRlZCgiaXBfbG9jYWxfcG9ydF9yYW5nZTogcHJlZmVyIGRpZmZlcmVudCBwYXJpdHkg Zm9yIHN0YXJ0L2VuZCB2YWx1ZXMuXG4iKTsKIAl9CiAJbmV0LT5pcHY0LmlwX2xvY2FsX3BvcnRz LnJhbmdlWzBdID0gcmFuZ2VbMF07CiAJbmV0LT5pcHY0LmlwX2xvY2FsX3BvcnRzLnJhbmdlWzFd ID0gcmFuZ2VbMV07Ci0Jd3JpdGVfc2VxdW5sb2NrKCZuZXQtPmlwdjQuaXBfbG9jYWxfcG9ydHMu bG9jayk7CisJd3JpdGVfc2VxdW5sb2NrX2JoKCZuZXQtPmlwdjQuaXBfbG9jYWxfcG9ydHMubG9j ayk7CiB9CiAKIC8qIFZhbGlkYXRlIGNoYW5nZXMgZnJvbSAvcHJvYyBpbnRlcmZhY2UuICovCi0t IAoyLjQuMQoKCkZyb20gYTAxNGYwZTFiMDQ4MWU2NzUzMmNmYWY2MjE2ZjIxYzVhYWY2Yzc2NyBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRnJhbmNlc2NvIFJ1Z2dlcmkgPGZydWdnZXJp QGFyaXN0YW5ldHdvcmtzLmNvbT4KRGF0ZTogVGh1LCA1IE5vdiAyMDE1IDA4OjE2OjE0IC0wODAw ClN1YmplY3Q6IFtQQVRDSCAyNy8zMF0gcGFja2V0OiByYWNlIGNvbmRpdGlvbiBpbiBwYWNrZXRf YmluZAoKWyBVcHN0cmVhbSBjb21taXQgMzBmN2VhMWMyYjVmNWZiNzQ2MmM1YWU0NGZlMmU0MGNi MmQ2YTQ3NCBdCgpUaGVyZSBpcyBhIHJhY2UgY29uZGl0aW9ucyBiZXR3ZWVuIHBhY2tldF9ub3Rp ZmllciBhbmQgcGFja2V0X2JpbmR7X3Nwa3R9LgoKSXQgaGFwcGVucyBpZiBwYWNrZXRfbm90aWZp ZXIoTkVUREVWX1VOUkVHSVNURVIpIGV4ZWN1dGVzIGJldHdlZW4gdGhlCnRpbWUgcGFja2V0X2Jp bmR7X3Nwa3R9IHRha2VzIGEgcmVmZXJlbmNlIG9uIHRoZSBuZXcgbmV0ZGV2aWNlIGFuZCB0aGUK dGltZSBwYWNrZXRfZG9fYmluZCBzZXRzIHBvLT5pZmluZGV4LgpJbiB0aGlzIGNhc2UgdGhlIG5v dGlmaWNhdGlvbiBjYW4gYmUgbWlzc2VkLgpJZiB0aGlzIGhhcHBlbnMgZHVyaW5nIGEgZGV2X2No YW5nZV9uZXRfbmFtZXNwYWNlIHRoaXMgY2FuIHJlc3VsdCBpbiB0aGUKbmV0ZGV2aWNlIHRvIGJl IG1vdmVkIHRvIHRoZSBuZXcgbmFtZXNwYWNlIHdoaWxlIHRoZSBwYWNrZXRfc29jayBpbiB0aGUK b2xkIG5hbWVzcGFjZSBzdGlsbCBob2xkcyBhIHJlZmVyZW5jZSBvbiBpdC4gV2hlbiB0aGUgbmV0 ZGV2aWNlIGlzIGxhdGVyCmRlbGV0ZWQgaW4gdGhlIG5ldyBuYW1lc3BhY2UgdGhlIGRlbGV0aW9u IGhhbmdzIHNpbmNlIHRoZSBwYWNrZXRfc29jawppcyBub3QgZm91bmQgaW4gdGhlIG5ldyBuYW1l c3BhY2UnICZuZXQtPnBhY2tldC5za2xpc3QuCkl0IGNhbiBiZSByZXByb2R1Y2VkIHdpdGggdGhl IHNjcmlwdCBiZWxvdy4KClRoaXMgcGF0Y2ggbWFrZXMgcGFja2V0X2RvX2JpbmQgY2hlY2sgYWdh aW4gZm9yIHRoZSBwcmVzZW5jZSBvZiB0aGUKbmV0ZGV2aWNlIGluIHRoZSBwYWNrZXRfc29jaydz IG5hbWVzcGFjZSBhZnRlciB0aGUgc3luY2hyb25pemVfbmV0CmluIHVucmVnaXN0ZXJfcHJvdF9o b29rLgpNb3JlIGluIGdlbmVyYWwgaXQgYWxzbyB1c2VzIHRoZSByY3UgbG9jayBmb3IgdGhlIGR1 cmF0aW9uIG9mIHRoZSBiaW5kCnRvIHN0b3AgZGV2X2NoYW5nZV9uZXRfbmFtZXNwYWNlL3JvbGxi YWNrX3JlZ2lzdGVyZWRfbWFueSBmcm9tCmdvaW5nIHBhc3QgdGhlIHN5bmNocm9uaXplX25ldCBm b2xsb3dpbmcgdW5saXN0X25ldGRldmljZSwgc28gdGhhdApubyBORVRERVZfVU5SRUdJU1RFUiBu b3RpZmljYXRpb25zIGNhbiBoYXBwZW4gb24gdGhlIG5ldyBuZXRkZXZpY2UKd2hpbGUgdGhlIGJp bmQgaXMgZXhlY3V0aW5nLiBJbiBvcmRlciB0byBkbyB0aGlzIHNvbWUgY29kZSBmcm9tCnBhY2tl dF9iaW5ke19zcGt0fSBpcyBjb25zb2xpZGF0ZWQgaW50byBwYWNrZXRfZG9fZGV2LgoKaW1wb3J0 IHNvY2tldCwgb3MsIHRpbWUsIHN5cwpwcm90bz03CnJlYWxEZXY9J2VtMScKdmxhbklkPTQwMApp ZiBsZW4oc3lzLmFyZ3YpID4gMToKICAgdmxhbklkPWludChzeXMuYXJndlsxXSkKZGV2PSd2bGFu JWQnICUgdmxhbklkCgpvcy5zeXN0ZW0oJ3Rhc2tzZXQgLXAgMHgxMCAlZCcgJSBvcy5nZXRwaWQo KSkKCnMgPSBzb2NrZXQuc29ja2V0KHNvY2tldC5QRl9QQUNLRVQsIHNvY2tldC5TT0NLX1JBVywg cHJvdG8pCm9zLnN5c3RlbSgnaXAgbGluayBhZGQgbGluayAlcyBuYW1lICVzIHR5cGUgdmxhbiBp ZCAlZCcgJQogICAgICAgICAgKHJlYWxEZXYsIGRldiwgdmxhbklkKSkKb3Muc3lzdGVtKCdpcCBu ZXRucyBhZGQgZHVtbXknKQoKcGlkPW9zLmZvcmsoKQoKaWYgcGlkID09IDA6CiAgICMgZGV2IHNo b3VsZCBiZSBtb3ZlZCB3aGlsZSBwYWNrZXRfZG9fYmluZCBpcyBpbiBzeW5jaHJvbml6ZSBuZXQK ICAgb3Muc3lzdGVtKCd0YXNrc2V0IC1wIDB4MjAwMDAgJWQnICUgb3MuZ2V0cGlkKCkpCiAgIG9z LnN5c3RlbSgnaXAgbGluayBzZXQgJXMgbmV0bnMgZHVtbXknICUgZGV2KQogICBvcy5zeXN0ZW0o J2lwIG5ldG5zIGV4ZWMgZHVtbXkgaXAgbGluayBkZWwgJXMnICUgZGV2KQogICBzLmNsb3NlKCkK ICAgc3lzLmV4aXQoMCkKCnRpbWUuc2xlZXAoLjAwNCkKdHJ5OgogICBzLmJpbmQoKCclcycgJSBk ZXYsIHByb3RvKzEpKQpleGNlcHQ6CiAgIHByaW50ICdDb3VsZCBub3QgYmluZCBzb2NrZXQnCiAg IHMuY2xvc2UoKQogICBvcy5zeXN0ZW0oJ2lwIG5ldG5zIGRlbCBkdW1teScpCiAgIHN5cy5leGl0 KDApCgpvcy53YWl0cGlkKHBpZCwgMCkKcy5jbG9zZSgpCm9zLnN5c3RlbSgnaXAgbmV0bnMgZGVs IGR1bW15JykKc3lzLmV4aXQoMCkKClNpZ25lZC1vZmYtYnk6IEZyYW5jZXNjbyBSdWdnZXJpIDxm cnVnZ2VyaUBhcmlzdGEuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVt QGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3BhY2tldC9hZl9wYWNrZXQuYyB8IDgwICsrKysrKysr KysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdl ZCwgNDkgaW5zZXJ0aW9ucygrKSwgMzEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3Bh Y2tldC9hZl9wYWNrZXQuYyBiL25ldC9wYWNrZXQvYWZfcGFja2V0LmMKaW5kZXggNzg1MWIxMi4u NzFjYjA4NSAxMDA2NDQKLS0tIGEvbmV0L3BhY2tldC9hZl9wYWNrZXQuYworKysgYi9uZXQvcGFj a2V0L2FmX3BhY2tldC5jCkBAIC0yNzg0LDIyICsyNzg0LDQwIEBAIHN0YXRpYyBpbnQgcGFja2V0 X3JlbGVhc2Uoc3RydWN0IHNvY2tldCAqc29jaykKICAqCUF0dGFjaCBhIHBhY2tldCBob29rLgog ICovCiAKLXN0YXRpYyBpbnQgcGFja2V0X2RvX2JpbmQoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qg bmV0X2RldmljZSAqZGV2LCBfX2JlMTYgcHJvdG8pCitzdGF0aWMgaW50IHBhY2tldF9kb19iaW5k KHN0cnVjdCBzb2NrICpzaywgY29uc3QgY2hhciAqbmFtZSwgaW50IGlmaW5kZXgsCisJCQkgIF9f YmUxNiBwcm90bykKIHsKIAlzdHJ1Y3QgcGFja2V0X3NvY2sgKnBvID0gcGt0X3NrKHNrKTsKIAlz dHJ1Y3QgbmV0X2RldmljZSAqZGV2X2N1cnI7CiAJX19iZTE2IHByb3RvX2N1cnI7CiAJYm9vbCBu ZWVkX3JlaG9vazsKKwlzdHJ1Y3QgbmV0X2RldmljZSAqZGV2ID0gTlVMTDsKKwlpbnQgcmV0ID0g MDsKKwlib29sIHVubGlzdGVkID0gZmFsc2U7CiAKLQlpZiAocG8tPmZhbm91dCkgewotCQlpZiAo ZGV2KQotCQkJZGV2X3B1dChkZXYpOwotCisJaWYgKHBvLT5mYW5vdXQpCiAJCXJldHVybiAtRUlO VkFMOwotCX0KIAogCWxvY2tfc29jayhzayk7CiAJc3Bpbl9sb2NrKCZwby0+YmluZF9sb2NrKTsK KwlyY3VfcmVhZF9sb2NrKCk7CisKKwlpZiAobmFtZSkgeworCQlkZXYgPSBkZXZfZ2V0X2J5X25h bWVfcmN1KHNvY2tfbmV0KHNrKSwgbmFtZSk7CisJCWlmICghZGV2KSB7CisJCQlyZXQgPSAtRU5P REVWOworCQkJZ290byBvdXRfdW5sb2NrOworCQl9CisJfSBlbHNlIGlmIChpZmluZGV4KSB7CisJ CWRldiA9IGRldl9nZXRfYnlfaW5kZXhfcmN1KHNvY2tfbmV0KHNrKSwgaWZpbmRleCk7CisJCWlm ICghZGV2KSB7CisJCQlyZXQgPSAtRU5PREVWOworCQkJZ290byBvdXRfdW5sb2NrOworCQl9CisJ fQorCisJaWYgKGRldikKKwkJZGV2X2hvbGQoZGV2KTsKIAogCXByb3RvX2N1cnIgPSBwby0+cHJv dF9ob29rLnR5cGU7CiAJZGV2X2N1cnIgPSBwby0+cHJvdF9ob29rLmRldjsKQEAgLTI4MDcsMTQg KzI4MjUsMjkgQEAgc3RhdGljIGludCBwYWNrZXRfZG9fYmluZChzdHJ1Y3Qgc29jayAqc2ssIHN0 cnVjdCBuZXRfZGV2aWNlICpkZXYsIF9fYmUxNiBwcm90bykKIAluZWVkX3JlaG9vayA9IHByb3Rv X2N1cnIgIT0gcHJvdG8gfHwgZGV2X2N1cnIgIT0gZGV2OwogCiAJaWYgKG5lZWRfcmVob29rKSB7 Ci0JCXVucmVnaXN0ZXJfcHJvdF9ob29rKHNrLCB0cnVlKTsKKwkJaWYgKHBvLT5ydW5uaW5nKSB7 CisJCQlyY3VfcmVhZF91bmxvY2soKTsKKwkJCV9fdW5yZWdpc3Rlcl9wcm90X2hvb2soc2ssIHRy dWUpOworCQkJcmN1X3JlYWRfbG9jaygpOworCQkJZGV2X2N1cnIgPSBwby0+cHJvdF9ob29rLmRl djsKKwkJCWlmIChkZXYpCisJCQkJdW5saXN0ZWQgPSAhZGV2X2dldF9ieV9pbmRleF9yY3Uoc29j a19uZXQoc2spLAorCQkJCQkJCQkgZGV2LT5pZmluZGV4KTsKKwkJfQogCiAJCXBvLT5udW0gPSBw cm90bzsKIAkJcG8tPnByb3RfaG9vay50eXBlID0gcHJvdG87Ci0JCXBvLT5wcm90X2hvb2suZGV2 ID0gZGV2OwogCi0JCXBvLT5pZmluZGV4ID0gZGV2ID8gZGV2LT5pZmluZGV4IDogMDsKLQkJcGFj a2V0X2NhY2hlZF9kZXZfYXNzaWduKHBvLCBkZXYpOworCQlpZiAodW5saWtlbHkodW5saXN0ZWQp KSB7CisJCQlkZXZfcHV0KGRldik7CisJCQlwby0+cHJvdF9ob29rLmRldiA9IE5VTEw7CisJCQlw by0+aWZpbmRleCA9IC0xOworCQkJcGFja2V0X2NhY2hlZF9kZXZfcmVzZXQocG8pOworCQl9IGVs c2UgeworCQkJcG8tPnByb3RfaG9vay5kZXYgPSBkZXY7CisJCQlwby0+aWZpbmRleCA9IGRldiA/ IGRldi0+aWZpbmRleCA6IDA7CisJCQlwYWNrZXRfY2FjaGVkX2Rldl9hc3NpZ24ocG8sIGRldik7 CisJCX0KIAl9CiAJaWYgKGRldl9jdXJyKQogCQlkZXZfcHV0KGRldl9jdXJyKTsKQEAgLTI4MjIs NyArMjg1NSw3IEBAIHN0YXRpYyBpbnQgcGFja2V0X2RvX2JpbmQoc3RydWN0IHNvY2sgKnNrLCBz dHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBfX2JlMTYgcHJvdG8pCiAJaWYgKHByb3RvID09IDAgfHwg IW5lZWRfcmVob29rKQogCQlnb3RvIG91dF91bmxvY2s7CiAKLQlpZiAoIWRldiB8fCAoZGV2LT5m bGFncyAmIElGRl9VUCkpIHsKKwlpZiAoIXVubGlzdGVkICYmICghZGV2IHx8IChkZXYtPmZsYWdz ICYgSUZGX1VQKSkpIHsKIAkJcmVnaXN0ZXJfcHJvdF9ob29rKHNrKTsKIAl9IGVsc2UgewogCQlz ay0+c2tfZXJyID0gRU5FVERPV047CkBAIC0yODMxLDkgKzI4NjQsMTAgQEAgc3RhdGljIGludCBw YWNrZXRfZG9fYmluZChzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIF9f YmUxNiBwcm90bykKIAl9CiAKIG91dF91bmxvY2s6CisJcmN1X3JlYWRfdW5sb2NrKCk7CiAJc3Bp bl91bmxvY2soJnBvLT5iaW5kX2xvY2spOwogCXJlbGVhc2Vfc29jayhzayk7Ci0JcmV0dXJuIDA7 CisJcmV0dXJuIHJldDsKIH0KIAogLyoKQEAgLTI4NDUsOCArMjg3OSw2IEBAIHN0YXRpYyBpbnQg cGFja2V0X2JpbmRfc3BrdChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3Qgc29ja2FkZHIgKnVh ZGRyLAogewogCXN0cnVjdCBzb2NrICpzayA9IHNvY2stPnNrOwogCWNoYXIgbmFtZVsxNV07Ci0J c3RydWN0IG5ldF9kZXZpY2UgKmRldjsKLQlpbnQgZXJyID0gLUVOT0RFVjsKIAogCS8qCiAJICoJ Q2hlY2sgbGVnYWxpdHkKQEAgLTI4NTYsMTkgKzI4ODgsMTMgQEAgc3RhdGljIGludCBwYWNrZXRf YmluZF9zcGt0KHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVjdCBzb2NrYWRkciAqdWFkZHIsCiAJ CXJldHVybiAtRUlOVkFMOwogCXN0cmxjcHkobmFtZSwgdWFkZHItPnNhX2RhdGEsIHNpemVvZihu YW1lKSk7CiAKLQlkZXYgPSBkZXZfZ2V0X2J5X25hbWUoc29ja19uZXQoc2spLCBuYW1lKTsKLQlp ZiAoZGV2KQotCQllcnIgPSBwYWNrZXRfZG9fYmluZChzaywgZGV2LCBwa3Rfc2soc2spLT5udW0p OwotCXJldHVybiBlcnI7CisJcmV0dXJuIHBhY2tldF9kb19iaW5kKHNrLCBuYW1lLCAwLCBwa3Rf c2soc2spLT5udW0pOwogfQogCiBzdGF0aWMgaW50IHBhY2tldF9iaW5kKHN0cnVjdCBzb2NrZXQg KnNvY2ssIHN0cnVjdCBzb2NrYWRkciAqdWFkZHIsIGludCBhZGRyX2xlbikKIHsKIAlzdHJ1Y3Qg c29ja2FkZHJfbGwgKnNsbCA9IChzdHJ1Y3Qgc29ja2FkZHJfbGwgKil1YWRkcjsKIAlzdHJ1Y3Qg c29jayAqc2sgPSBzb2NrLT5zazsKLQlzdHJ1Y3QgbmV0X2RldmljZSAqZGV2ID0gTlVMTDsKLQlp bnQgZXJyOwotCiAKIAkvKgogCSAqCUNoZWNrIGxlZ2FsaXR5CkBAIC0yODc5LDE2ICsyOTA1LDgg QEAgc3RhdGljIGludCBwYWNrZXRfYmluZChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3Qgc29j a2FkZHIgKnVhZGRyLCBpbnQgYWRkcl9sZW4KIAlpZiAoc2xsLT5zbGxfZmFtaWx5ICE9IEFGX1BB Q0tFVCkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKLQlpZiAoc2xsLT5zbGxfaWZpbmRleCkgewotCQll cnIgPSAtRU5PREVWOwotCQlkZXYgPSBkZXZfZ2V0X2J5X2luZGV4KHNvY2tfbmV0KHNrKSwgc2xs LT5zbGxfaWZpbmRleCk7Ci0JCWlmIChkZXYgPT0gTlVMTCkKLQkJCWdvdG8gb3V0OwotCX0KLQll cnIgPSBwYWNrZXRfZG9fYmluZChzaywgZGV2LCBzbGwtPnNsbF9wcm90b2NvbCA/IDogcGt0X3Nr KHNrKS0+bnVtKTsKLQotb3V0OgotCXJldHVybiBlcnI7CisJcmV0dXJuIHBhY2tldF9kb19iaW5k KHNrLCBOVUxMLCBzbGwtPnNsbF9pZmluZGV4LAorCQkJICAgICAgc2xsLT5zbGxfcHJvdG9jb2wg PyA6IHBrdF9zayhzayktPm51bSk7CiB9CiAKIHN0YXRpYyBzdHJ1Y3QgcHJvdG8gcGFja2V0X3By b3RvID0gewotLSAKMi40LjEKCgpGcm9tIDhmMDY3MDJmZTUwZTFjYmRlZTg0NWM2ZjRhY2M2MTFi MGMwMDcyYWYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEpheSBWb3NidXJnaCA8amF5 LnZvc2J1cmdoQGNhbm9uaWNhbC5jb20+CkRhdGU6IEZyaSwgNiBOb3YgMjAxNSAxNzoyMzoyMyAt MDgwMApTdWJqZWN0OiBbUEFUQ0ggMjgvMzBdIGJvbmRpbmc6IGZpeCBwYW5pYyBvbiBub24tQVJQ SFJEX0VUSEVSIGVuc2xhdmUgZmFpbHVyZQoKWyBVcHN0cmVhbSBjb21taXQgNDBiYWVjMjI1NzY1 YzU0ZWVmYTg3MDUzMGRkNjEzYmFkOTgyOWJiNyBdCgpTaW5jZSBjb21taXQgN2Q1Y2QyY2U1Mjli LCB3aGVuIGJvbmRfZW5zbGF2ZSBmYWlscyBvbiBkZXZpY2VzIHRoYXQKYXJlIG5vdCBBUlBIUkRf RVRIRVIsIGlmIG5lZWRlZCwgaXQgcmVzZXRzIHRoZSBib25kaW5nIGRldmljZSBiYWNrIHRvCkFS UEhSRF9FVEhFUiBieSBjYWxsaW5nIGV0aGVyX3NldHVwLgoKCVVuZm9ydHVuYXRlbHksIGV0aGVy X3NldHVwIGNsb2JiZXJzIGRldi0+ZmxhZ3MsIGNsZWFyaW5nIElGRl9VUAppZiB0aGUgYm9uZCBk ZXZpY2UgaXMgdXAsIGxlYXZpbmcgaXQgaW4gYSBxdWFzaS1kb3duIHN0YXRlIHdpdGhvdXQKaGF2 aW5nIGFjdHVhbGx5IGdvbmUgdGhyb3VnaCBkZXZfY2xvc2UuICBGb3IgYm9uZGluZywgaWYgYW55 IHBlcmlvZGljCndvcmsgcXVldWUgaXRlbXMgYXJlIGFjdGl2ZSAobWlpbW9uLCBhcnBfaW50ZXJ2 YWwsIGV0YyksIHRob3NlIHdpbGwKcmVtYWluIHJ1bm5pbmcsIGFzIHRoZXkgYXJlIHN0b3BwZWQg YnkgYm9uZF9jbG9zZS4gIEF0IHRoaXMgcG9pbnQsIGlmCnRoZSBib25kaW5nIG1vZHVsZSBpcyB1 bmxvYWRlZCBvciB0aGUgYm9uZCBpcyBkZWxldGVkLCB0aGUgc3lzdGVtIHdpbGwKcGFuaWMgd2hl biB0aGUgd29yayBmdW5jdGlvbiBpcyBjYWxsZWQuCgoJVGhpcyBwYW5pYyBpcyByZXNvbHZlZCBi eSBjYWxsaW5nIGRldl9jbG9zZSBvbiB0aGUgYm9uZCBpdHNlbGYKcHJpb3IgdG8gY2FsbGluZyBl dGhlcl9zZXR1cC4KCkNjOiBOaWtvbGF5IEFsZWtzYW5kcm92IDxuaWtvbGF5QGN1bXVsdXNuZXR3 b3Jrcy5jb20+ClNpZ25lZC1vZmYtYnk6IEpheSBWb3NidXJnaCA8amF5LnZvc2J1cmdoQGNhbm9u aWNhbC5jb20+CkZpeGVzOiA3ZDVjZDJjZTUyOTIgKCJib25kaW5nOiBjb3JyZWN0bHkgaGFuZGxl IGJvbmRpbmcgdHlwZSBjaGFuZ2Ugb24gZW5zbGF2ZSBmYWlsdXJlIikKQWNrZWQtYnk6IE5pa29s YXkgQWxla3NhbmRyb3YgPG5pa29sYXlAY3VtdWx1c25ldHdvcmtzLmNvbT4KU2lnbmVkLW9mZi1i eTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0 L2JvbmRpbmcvYm9uZF9tYWluLmMgfCAxICsKIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigr KQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2JvbmRpbmcvYm9uZF9tYWluLmMgYi9kcml2ZXJz L25ldC9ib25kaW5nL2JvbmRfbWFpbi5jCmluZGV4IGE5OGRkNGYuLmNiYmIxYzkgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvbmV0L2JvbmRpbmcvYm9uZF9tYWluLmMKKysrIGIvZHJpdmVycy9uZXQvYm9u ZGluZy9ib25kX21haW4uYwpAQCAtMTc1MSw2ICsxNzUxLDcgQEAgZXJyX3VuZG9fZmxhZ3M6CiAJ CQkJCSAgICBzbGF2ZV9kZXYtPmRldl9hZGRyKSkKIAkJCWV0aF9od19hZGRyX3JhbmRvbShib25k X2Rldik7CiAJCWlmIChib25kX2Rldi0+dHlwZSAhPSBBUlBIUkRfRVRIRVIpIHsKKwkJCWRldl9j bG9zZShib25kX2Rldik7CiAJCQlldGhlcl9zZXR1cChib25kX2Rldik7CiAJCQlib25kX2Rldi0+ ZmxhZ3MgfD0gSUZGX01BU1RFUjsKIAkJCWJvbmRfZGV2LT5wcml2X2ZsYWdzICY9IH5JRkZfVFhf U0tCX1NIQVJJTkc7Ci0tIAoyLjQuMQoKCkZyb20gMDViYTU0ZmZmMTA2YmMxMjFmOThmODBmZmVj MDc1Yjg4YTQxZjNkYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJpYyBEdW1hemV0 IDxlZHVtYXpldEBnb29nbGUuY29tPgpEYXRlOiBNb24sIDkgTm92IDIwMTUgMTc6NTE6MjMgLTA4 MDAKU3ViamVjdDogW1BBVENIIDI5LzMwXSBuZXQ6IGZpeCBhIHJhY2UgaW4gZHN0X3JlbGVhc2Uo KQoKWyBVcHN0cmVhbSBjb21taXQgZDY5YmJmODhjOGQwYjM2N2NmM2UzYTA1MmY2ZGFhZGY2MzBl ZTU2NiBdCgpPbmx5IGNwdSBzZWVpbmcgZHN0IHJlZmNvdW50IGdvaW5nIHRvIDAgY2FuIHNhZmVs eQpkZXJlZmVyZW5jZSBkc3QtPmZsYWdzLgoKT3RoZXJ3aXNlIGFuIG90aGVyIGNwdSBtaWdodCBh bHJlYWR5IGhhdmUgZnJlZWQgdGhlIGRzdC4KCkZpeGVzOiAyN2I3NWM5NWYxMGQgKCJuZXQ6IGF2 b2lkIFJDVSBmb3IgTk9DQUNIRSBkc3QiKQpSZXBvcnRlZC1ieTogR3JlZyBUaGVsZW4gPGd0aGVs ZW5AZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29n bGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5u ZXQ+Ci0tLQogbmV0L2NvcmUvZHN0LmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRp b24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvY29yZS9kc3QuYyBiL25ldC9j b3JlL2RzdC5jCmluZGV4IDAwMjE0NGJlLi5jYzRhMDg2IDEwMDY0NAotLS0gYS9uZXQvY29yZS9k c3QuYworKysgYi9uZXQvY29yZS9kc3QuYwpAQCAtMjg3LDcgKzI4Nyw3IEBAIHZvaWQgZHN0X3Jl bGVhc2Uoc3RydWN0IGRzdF9lbnRyeSAqZHN0KQogCQlpZiAodW5saWtlbHkobmV3cmVmY250IDwg MCkpCiAJCQluZXRfd2Fybl9yYXRlbGltaXRlZCgiJXM6IGRzdDolcCByZWZjbnQ6JWRcbiIsCiAJ CQkJCSAgICAgX19mdW5jX18sIGRzdCwgbmV3cmVmY250KTsKLQkJaWYgKHVubGlrZWx5KGRzdC0+ ZmxhZ3MgJiBEU1RfTk9DQUNIRSkgJiYgIW5ld3JlZmNudCkKKwkJaWYgKCFuZXdyZWZjbnQgJiYg dW5saWtlbHkoZHN0LT5mbGFncyAmIERTVF9OT0NBQ0hFKSkKIAkJCWNhbGxfcmN1KCZkc3QtPnJj dV9oZWFkLCBkc3RfZGVzdHJveV9yY3UpOwogCX0KIH0KLS0gCjIuNC4xCgoKRnJvbSA5OTZhMjc4 MGI4YzljYmU2OTFkZjdjMGNlN2FhYjFjZGRlOWRiZDRjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBTYXNoYSBMZXZpbiA8c2FzaGEubGV2aW5Ab3JhY2xlLmNvbT4KRGF0ZTogVHVlLCA4 IFNlcCAyMDE1IDEwOjUzOjQwIC0wNDAwClN1YmplY3Q6IFtQQVRDSCAzMC8zMF0gUkRTOiB2ZXJp ZnkgdGhlIHVuZGVybHlpbmcgdHJhbnNwb3J0IGV4aXN0cyBiZWZvcmUKIGNyZWF0aW5nIGEgY29u bmVjdGlvbgoKWyBVcHN0cmVhbSBjb21taXQgNzRlOThlYjA4NTg4OWIwZDJkNDkwOGY1OWY2ZTAw MDI2MDYzMDE0ZiBdCgpUaGVyZSB3YXMgbm8gdmVyaWZpY2F0aW9uIHRoYXQgYW4gdW5kZXJseWlu ZyB0cmFuc3BvcnQgZXhpc3RzIHdoZW4gY3JlYXRpbmcKYSBjb25uZWN0aW9uLCB0aGlzIHdvdWxk IGNhdXNlIGRlcmVmZXJlbmNpbmcgYSBOVUxMIHB0ci4KCkl0IG1pZ2h0IGhhcHBlbiBvbiBzb2Nr ZXRzIHRoYXQgd2VyZW4ndCBwcm9wZXJseSBib3VuZCBiZWZvcmUgYXR0ZW1wdGluZyB0bwpzZW5k IGEgbWVzc2FnZSwgd2hpY2ggd2lsbCBjYXVzZSBhIE5VTEwgcHRyIGRlcmVmOgoKWzEzNTU0Ni4w NDc3MTldIGthc2FuOiBHUEYgY291bGQgYmUgY2F1c2VkIGJ5IE5VTEwtcHRyIGRlcmVmIG9yIHVz ZXIgbWVtb3J5IGFjY2Vzc2dlbmVyYWwgcHJvdGVjdGlvbiBmYXVsdDogMDAwMCBbIzFdIFBSRUVN UFQgU01QIERFQlVHX1BBR0VBTExPQyBLQVNBTgpbMTM1NTQ2LjA1MTI3MF0gTW9kdWxlcyBsaW5r ZWQgaW46ClsxMzU1NDYuMDUxNzgxXSBDUFU6IDQgUElEOiAxNTY1MCBDb21tOiB0cmluaXR5LWM0 IE5vdCB0YWludGVkIDQuMi4wLW5leHQtMjAxNTA5MDItc2FzaGEtMDAwNDEtZ2JhYTEyMjItZGly dHkgIzI1MjcKWzEzNTU0Ni4wNTMyMTddIHRhc2s6IGZmZmY4ODAwODM1YmMwMDAgdGk6IGZmZmY4 ODAwYmM3MDgwMDAgdGFzay50aTogZmZmZjg4MDBiYzcwODAwMApbMTM1NTQ2LjA1NDI5MV0gUklQ OiBfX3Jkc19jb25uX2NyZWF0ZSAobmV0L3Jkcy9jb25uZWN0aW9uLmM6MTk0KQpbMTM1NTQ2LjA1 NTY2Nl0gUlNQOiAwMDE4OmZmZmY4ODAwYmM3MGZhYjAgIEVGTEFHUzogMDAwMTAyMDIKWzEzNTU0 Ni4wNTY0NTddIFJBWDogZGZmZmZjMDAwMDAwMDAwMCBSQlg6IDAwMDAwMDAwMDAwMDBmMmMgUkNY OiBmZmZmODgwMDgzNWJjMDAwClsxMzU1NDYuMDU3NDk0XSBSRFg6IDAwMDAwMDAwMDAwMDAwMDcg UlNJOiBmZmZmODgwMDgzNWJjY2Q4IFJESTogMDAwMDAwMDAwMDAwMDAzOApbMTM1NTQ2LjA1ODUz MF0gUkJQOiBmZmZmODgwMGJjNzBmYjE4IFIwODogMDAwMDAwMDAwMDAwMDAwMSBSMDk6IDAwMDAw MDAwMDAwMDAwMDAKWzEzNTU0Ni4wNTk1NTZdIFIxMDogZmZmZmVkMDE0ZDdhM2EyMyBSMTE6IGZm ZmZlZDAxNGQ3YTNhMjEgUjEyOiAwMDAwMDAwMDAwMDAwMDAwClsxMzU1NDYuMDYwNjE0XSBSMTM6 IDAwMDAwMDAwMDAwMDAwMDEgUjE0OiBmZmZmODgwMWVjM2QwMDAwIFIxNTogMDAwMDAwMDAwMDAw MDAwMApbMTM1NTQ2LjA2MTY2OF0gRlM6ICAwMDAwN2ZhYWQ0ZmZiNzAwKDAwMDApIEdTOmZmZmY4 ODAyNTIwMDAwMDAoMDAwMCkga25sR1M6MDAwMDAwMDAwMDAwMDAwMApbMTM1NTQ2LjA2MjgzNl0g Q1M6ICAwMDEwIERTOiAwMDAwIEVTOiAwMDAwIENSMDogMDAwMDAwMDA4MDA1MDAzYgpbMTM1NTQ2 LjA2MzY4Ml0gQ1IyOiAwMDAwMDAwMDAwMDA4NDZhIENSMzogMDAwMDAwMDA5ZDEzNzAwMCBDUjQ6 IDAwMDAwMDAwMDAwMDA2YTAKWzEzNTU0Ni4wNjQ3MjNdIFN0YWNrOgpbMTM1NTQ2LjA2NTA0OF0g IGZmZmZmZmZmYWZlMjA1NWMgZmZmZmZmZmZhZmUyM2ZjMSBmZmZmZWQwMDQ5MzA5N2JmIGZmZmY4 ODAxZWMzZDAwMDgKWzEzNTU0Ni4wNjYyNDddICAwMDAwMDAwMDAwMDAwMDAwIDAwMDAwMDAwMDAw MDAwZDAgMDAwMDAwMDAwMDAwMDAwMCBhYzE5NGEyNGMwNTg2MzQyClsxMzU1NDYuMDY3NDM4XSAg MWZmZmYxMDAxNzhlMWY3OCBmZmZmODgwMzIwNTgxYjAwIGZmZmY4ODAwYmM3MGZkZDAgZmZmZjg4 MDMyMDU4MWIwMApbMTM1NTQ2LjA2ODYyOV0gQ2FsbCBUcmFjZToKWzEzNTU0Ni4wNjkwMjhdID8g X19yZHNfY29ubl9jcmVhdGUgKGluY2x1ZGUvbGludXgvcmN1cGRhdGUuaDo4NTYgbmV0L3Jkcy9j b25uZWN0aW9uLmM6MTM0KQpbMTM1NTQ2LjA2OTk4OV0gPyByZHNfbWVzc2FnZV9jb3B5X2Zyb21f dXNlciAobmV0L3Jkcy9tZXNzYWdlLmM6Mjk4KQpbMTM1NTQ2LjA3MTAyMV0gcmRzX2Nvbm5fY3Jl YXRlX291dGdvaW5nIChuZXQvcmRzL2Nvbm5lY3Rpb24uYzoyNzgpClsxMzU1NDYuMDcxOTgxXSBy ZHNfc2VuZG1zZyAobmV0L3Jkcy9zZW5kLmM6MTA1OCkKWzEzNTU0Ni4wNzI4NThdID8gcGVyZl90 cmFjZV9sb2NrIChpbmNsdWRlL3RyYWNlL2V2ZW50cy9sb2NrLmg6MzgpClsxMzU1NDYuMDczNzQ0 XSA/IGxvY2tkZXBfaW5pdCAoa2VybmVsL2xvY2tpbmcvbG9ja2RlcC5jOjMyOTgpClsxMzU1NDYu MDc0NTc3XSA/IHJkc19zZW5kX2Ryb3BfdG8gKG5ldC9yZHMvc2VuZC5jOjk3NikKWzEzNTU0Ni4w NzU1MDhdID8gX19taWdodF9mYXVsdCAoLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9jdXJyZW50Lmg6 MTQgbW0vbWVtb3J5LmM6Mzc5NSkKWzEzNTU0Ni4wNzYzNDldID8gX19taWdodF9mYXVsdCAobW0v bWVtb3J5LmM6Mzc5NSkKWzEzNTU0Ni4wNzcxNzldID8gcmRzX3NlbmRfZHJvcF90byAobmV0L3Jk cy9zZW5kLmM6OTc2KQpbMTM1NTQ2LjA3ODExNF0gc29ja19zZW5kbXNnIChuZXQvc29ja2V0LmM6 NjExIG5ldC9zb2NrZXQuYzo2MjApClsxMzU1NDYuMDc4ODU2XSBTWVNDX3NlbmR0byAobmV0L3Nv Y2tldC5jOjE2NTcpClsxMzU1NDYuMDc5NTk2XSA/IFNZU0NfY29ubmVjdCAobmV0L3NvY2tldC5j OjE2MjgpClsxMzU1NDYuMDgwNTEwXSA/IHRyYWNlX2R1bXBfc3RhY2sgKGtlcm5lbC90cmFjZS90 cmFjZS5jOjE5MjYpClsxMzU1NDYuMDgxMzk3XSA/IHJpbmdfYnVmZmVyX3VubG9ja19jb21taXQg KGtlcm5lbC90cmFjZS9yaW5nX2J1ZmZlci5jOjI0Nzkga2VybmVsL3RyYWNlL3JpbmdfYnVmZmVy LmM6MjU1OCBrZXJuZWwvdHJhY2UvcmluZ19idWZmZXIuYzoyNjc0KQpbMTM1NTQ2LjA4MjM5MF0g PyB0cmFjZV9idWZmZXJfdW5sb2NrX2NvbW1pdCAoa2VybmVsL3RyYWNlL3RyYWNlLmM6MTc0OSkK WzEzNTU0Ni4wODM0MTBdID8gdHJhY2VfZXZlbnRfcmF3X2V2ZW50X3N5c19lbnRlciAoaW5jbHVk ZS90cmFjZS9ldmVudHMvc3lzY2FsbHMuaDoxNikKWzEzNTU0Ni4wODQ0ODFdID8gZG9fYXVkaXRf c3lzY2FsbF9lbnRyeSAoaW5jbHVkZS90cmFjZS9ldmVudHMvc3lzY2FsbHMuaDoxNikKWzEzNTU0 Ni4wODU0MzhdID8gdHJhY2VfYnVmZmVyX3VubG9ja19jb21taXQgKGtlcm5lbC90cmFjZS90cmFj ZS5jOjE3NDkpClsxMzU1NDYuMDg1NTE1XSByZHNfaWJfbGFkZHJfY2hlY2soKTogYWRkciAzNi43 NC4yNS4xNzIgcmV0IC05OSBub2RlIHR5cGUgLTEKCkFja2VkLWJ5OiBTYW50b3NoIFNoaWxpbWth ciA8c2FudG9zaC5zaGlsaW1rYXJAb3JhY2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogU2FzaGEgTGV2 aW4gPHNhc2hhLmxldmluQG9yYWNsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxl ciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvcmRzL2Nvbm5lY3Rpb24uYyB8IDYgKysr KysrCiAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbmV0L3Jk cy9jb25uZWN0aW9uLmMgYi9uZXQvcmRzL2Nvbm5lY3Rpb24uYwppbmRleCBkYTZkYTU3Li45ZDY2 NzA1IDEwMDY0NAotLS0gYS9uZXQvcmRzL2Nvbm5lY3Rpb24uYworKysgYi9uZXQvcmRzL2Nvbm5l Y3Rpb24uYwpAQCAtMTg3LDYgKzE4NywxMiBAQCBuZXdfY29ubjoKIAkJfQogCX0KIAorCWlmICh0 cmFucyA9PSBOVUxMKSB7CisJCWttZW1fY2FjaGVfZnJlZShyZHNfY29ubl9zbGFiLCBjb25uKTsK KwkJY29ubiA9IEVSUl9QVFIoLUVOT0RFVik7CisJCWdvdG8gb3V0OworCX0KKwogCWNvbm4tPmNf dHJhbnMgPSB0cmFuczsKIAogCXJldCA9IHRyYW5zLT5jb25uX2FsbG9jKGNvbm4sIGdmcCk7Ci0t IAoyLjQuMQoK ----Next_Part(Fri_Nov_13_16_38_08_2015_159)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_41.mbox" RnJvbSBlODAwM2M1Njc1OTJjYjcwZmE1NmM1YTM4NGUyYmU4ZTZlOGYzOTk3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW4gQ2FycGVudGVyIDxkYW4uY2FycGVudGVyQG9yYWNsZS5j b20+CkRhdGU6IE1vbiwgMTkgT2N0IDIwMTUgMTM6MTY6NDkgKzAzMDAKU3ViamVjdDogW1BBVENI IDAxLzIyXSBpcmRhOiBwcmVjZWRlbmNlIGJ1ZyBpbiBpcmxtcF9zZXFfaGJfaWR4KCkKTUlNRS1W ZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRl bnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKClsgVXBzdHJlYW0gY29tbWl0IDUwMDEwYzIwNTk3 ZDE0NjY3ZWZmMGZkYjYyODMwOTk4NmYxOTUyMzAgXQoKVGhpcyBpcyBkZWNyZW1lbnRpbmcgdGhl IHBvaW50ZXIsIGluc3RlYWQgb2YgdGhlIHZhbHVlIHN0b3JlZCBpbiB0aGUKcG9pbnRlci4gIEtB U2FuIGRldGVjdHMgaXQgYXMgYW4gb3V0IG9mIGJvdW5kcyByZWZlcmVuY2UuCgpSZXBvcnRlZC1i eTogIkJlcnJ5wqBDaGVuZyDnqIvlkJso5oiQ5re8KSIgPGNoZW5nbWlhby5jakBhbGliYWJhLWlu Yy5jb20+ClNpZ25lZC1vZmYtYnk6IERhbiBDYXJwZW50ZXIgPGRhbi5jYXJwZW50ZXJAb3JhY2xl LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0 PgotLS0KIG5ldC9pcmRhL2lybG1wLmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRp b24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvaXJkYS9pcmxtcC5jIGIvbmV0 L2lyZGEvaXJsbXAuYwppbmRleCBhMjZjNDAxLi40Mzk2NDU5IDEwMDY0NAotLS0gYS9uZXQvaXJk YS9pcmxtcC5jCisrKyBiL25ldC9pcmRhL2lybG1wLmMKQEAgLTE4MzksNyArMTgzOSw3IEBAIHN0 YXRpYyB2b2lkICppcmxtcF9zZXFfaGJfaWR4KHN0cnVjdCBpcmxtcF9pdGVyX3N0YXRlICppdGVy LCBsb2ZmX3QgKm9mZikKIAlmb3IgKGVsZW1lbnQgPSBoYXNoYmluX2dldF9maXJzdChpdGVyLT5o YXNoYmluKTsKIAkgICAgIGVsZW1lbnQgIT0gTlVMTDsKIAkgICAgIGVsZW1lbnQgPSBoYXNoYmlu X2dldF9uZXh0KGl0ZXItPmhhc2hiaW4pKSB7Ci0JCWlmICghb2ZmIHx8ICpvZmYtLSA9PSAwKSB7 CisJCWlmICghb2ZmIHx8ICgqb2ZmKS0tID09IDApIHsKIAkJCS8qIE5COiBoYXNoYmluIGxlZnQg bG9ja2VkICovCiAJCQlyZXR1cm4gZWxlbWVudDsKIAkJfQotLSAKMi40LjEKCgpGcm9tIDU3OTUy MmJjMWY1YmJkOGIzZmQwNTljYjA2MWYwMjIxYTcxYmYzZjQgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IEpvbiBQYXVsIE1hbG95IDxqb24ubWFsb3lAZXJpY3Nzb24uY29tPgpEYXRlOiBN b24sIDE5IE9jdCAyMDE1IDExOjMzOjAwIC0wNDAwClN1YmplY3Q6IFtQQVRDSCAwMi8yMl0gdGlw YzogYWxsb3cgbm9uLWxpbmVhciBmaXJzdCBmcmFnbWVudCBidWZmZXIKClsgVXBzdHJlYW0gY29t bWl0IDQ1YzhiN2IxNzVjZWIyZDU0MmUwZmUxNTI0NzM3N2JmM2JjZTI5ZWMgXQoKVGhlIGN1cnJl bnQgY29kZSBmb3IgbWVzc2FnZSByZWFzc2VtYmx5IGlzIGVycm9uZW91c2x5IGFzc3VtaW5nIHRo YXQKdGhlIHRoZSBmaXJzdCBhcnJpdmluZyBmcmFnbWVudCBidWZmZXIgYWx3YXlzIGlzIGxpbmVh ciwgYW5kIHRoZW4gZ29lcwphaGVhZCByZXNldHRpbmcgdGhlIGZyYWdtZW50IGxpc3Qgb2YgdGhh dCBidWZmZXIgaW4gYW50aWNpcGF0aW9uIG9mCm1vcmUgYXJyaXZpbmcgZnJhZ21lbnRzLgoKSG93 ZXZlciwgaWYgdGhlIGJ1ZmZlciBhbHJlYWR5IGhhcHBlbnMgdG8gYmUgbm9uLWxpbmVhciwgd2Ug d2lsbAppbmFkdmVydGVudGx5IGRyb3AgdGhlIGFscmVhZHkgYXR0YWNoZWQgZnJhZ21lbnQgbGlz dCwgYW5kIGxhdGVyCm9uIHRyaWcgYSBCVUcoKSBpbiBfX3Bza2JfcHVsbF90YWlsKCkuCgpXZSBz ZWUgdGhpcyBoYXBwZW4gd2hlbiBydW5uaW5nIGZyYWdtZW50ZWQgVElQQyBtdWx0aWNhc3QgYWNy b3NzIFVEUCwKc29tZXRoaW5nIG1hZGUgcG9zc2libGUgc2luY2UKY29tbWl0IGQwZjkxOTM4YmVk ZSAoInRpcGM6IGFkZCBpcC91ZHAgbWVkaWEgdHlwZSIpCgpXZSBmaXggdGhpcyBieSBub3QgcmVz ZXR0aW5nIHRoZSBmcmFnbWVudCBsaXN0IHdoZW4gdGhlIGJ1ZmZlciBpcyBub24tCmxpbmVhciwg YW5kIGJ5IGluaXRpYXRsaXppbmcgb3VyIHByaXZhdGUgZnJhZ21lbnQgbGlzdCB0YWlsIHBvaW50 ZXIgdG8KdGhlIHRhaWwgb2YgdGhlIGV4aXN0aW5nIGZyYWdtZW50IGxpc3QuCgpGaXhlczogY29t bWl0IGQwZjkxOTM4YmVkZSAoInRpcGM6IGFkZCBpcC91ZHAgbWVkaWEgdHlwZSIpClNpZ25lZC1v ZmYtYnk6IEpvbiBNYWxveSA8am9uLm1hbG95QGVyaWNzc29uLmNvbT4KU2lnbmVkLW9mZi1ieTog RGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC90aXBjL21zZy5j IHwgMTIgKysrKysrKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspLCAzIGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC90aXBjL21zZy5jIGIvbmV0L3RpcGMvbXNnLmMK aW5kZXggYzNlOTZlOC4uZTkzMzMxNCAxMDA2NDQKLS0tIGEvbmV0L3RpcGMvbXNnLmMKKysrIGIv bmV0L3RpcGMvbXNnLmMKQEAgLTEyMSw3ICsxMjEsNyBAQCBpbnQgdGlwY19idWZfYXBwZW5kKHN0 cnVjdCBza19idWZmICoqaGVhZGJ1Ziwgc3RydWN0IHNrX2J1ZmYgKipidWYpCiB7CiAJc3RydWN0 IHNrX2J1ZmYgKmhlYWQgPSAqaGVhZGJ1ZjsKIAlzdHJ1Y3Qgc2tfYnVmZiAqZnJhZyA9ICpidWY7 Ci0Jc3RydWN0IHNrX2J1ZmYgKnRhaWw7CisJc3RydWN0IHNrX2J1ZmYgKnRhaWwgPSBOVUxMOwog CXN0cnVjdCB0aXBjX21zZyAqbXNnOwogCXUzMiBmcmFnaWQ7CiAJaW50IGRlbHRhOwpAQCAtMTQx LDkgKzE0MSwxNSBAQCBpbnQgdGlwY19idWZfYXBwZW5kKHN0cnVjdCBza19idWZmICoqaGVhZGJ1 Ziwgc3RydWN0IHNrX2J1ZmYgKipidWYpCiAJCWlmICh1bmxpa2VseShza2JfdW5jbG9uZShmcmFn LCBHRlBfQVRPTUlDKSkpCiAJCQlnb3RvIGVycjsKIAkJaGVhZCA9ICpoZWFkYnVmID0gZnJhZzsK LQkJc2tiX2ZyYWdfbGlzdF9pbml0KGhlYWQpOwotCQlUSVBDX1NLQl9DQihoZWFkKS0+dGFpbCA9 IE5VTEw7CiAJCSpidWYgPSBOVUxMOworCQlUSVBDX1NLQl9DQihoZWFkKS0+dGFpbCA9IE5VTEw7 CisJCWlmIChza2JfaXNfbm9ubGluZWFyKGhlYWQpKSB7CisJCQlza2Jfd2Fsa19mcmFncyhoZWFk LCB0YWlsKSB7CisJCQkJVElQQ19TS0JfQ0IoaGVhZCktPnRhaWwgPSB0YWlsOworCQkJfQorCQl9 IGVsc2UgeworCQkJc2tiX2ZyYWdfbGlzdF9pbml0KGhlYWQpOworCQl9CiAJCXJldHVybiAwOwog CX0KIAotLSAKMi40LjEKCgpGcm9tIGE5OGQ1MmYzZWUxMTY4ZDM3YWNjZGM1YWIyZjJiZDdjZGIx NTQwNmIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT9Caj1DMz1COHJu PTIwTW9yaz89IDxiam9ybkBtb3JrLm5vPgpEYXRlOiBUaHUsIDIyIE9jdCAyMDE1IDE0OjE1OjU4 ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwMy8yMl0gcW1pX3d3YW46IGFkZCBTaWVycmEgV2lyZWxl c3MgTUM3NHh4L0VNNzR4eApNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IHRleHQvcGxh aW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAoKWyBVcHN0 cmVhbSBjb21taXQgMGRiNjVmY2ZjZGVkNzZmZTRmNzRlM2NhOWY0ZTJiYWY2N2I2ODNlZiBdCgpO ZXcgZGV2aWNlIElEcyBzaGFtZWxlc3NseSBsaWZ0ZWQgZnJvbSB0aGUgdmVuZG9yIGRyaXZlci4K ClNpZ25lZC1vZmYtYnk6IEJqw7hybiBNb3JrIDxiam9ybkBtb3JrLm5vPgpTaWduZWQtb2ZmLWJ5 OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQv dXNiL3FtaV93d2FuLmMgfCA0ICsrKysKIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKykK CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC91c2IvcW1pX3d3YW4uYyBiL2RyaXZlcnMvbmV0L3Vz Yi9xbWlfd3dhbi5jCmluZGV4IGY2MDNmMzYuLjRlMDQ3MGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv bmV0L3VzYi9xbWlfd3dhbi5jCisrKyBiL2RyaXZlcnMvbmV0L3VzYi9xbWlfd3dhbi5jCkBAIC03 NjQsNiArNzY0LDEwIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCBwcm9kdWN0 c1tdID0gewogCXtRTUlfRklYRURfSU5URigweDExOTksIDB4OTA1NiwgOCl9LAkvKiBTaWVycmEg V2lyZWxlc3MgTW9kZW0gKi8KIAl7UU1JX0ZJWEVEX0lOVEYoMHgxMTk5LCAweDkwNTcsIDgpfSwK IAl7UU1JX0ZJWEVEX0lOVEYoMHgxMTk5LCAweDkwNjEsIDgpfSwJLyogU2llcnJhIFdpcmVsZXNz IE1vZGVtICovCisJe1FNSV9GSVhFRF9JTlRGKDB4MTE5OSwgMHg5MDcwLCA4KX0sCS8qIFNpZXJy YSBXaXJlbGVzcyBNQzc0eHgvRU03NHh4ICovCisJe1FNSV9GSVhFRF9JTlRGKDB4MTE5OSwgMHg5 MDcwLCAxMCl9LAkvKiBTaWVycmEgV2lyZWxlc3MgTUM3NHh4L0VNNzR4eCAqLworCXtRTUlfRklY RURfSU5URigweDExOTksIDB4OTA3MSwgOCl9LAkvKiBTaWVycmEgV2lyZWxlc3MgTUM3NHh4L0VN NzR4eCAqLworCXtRTUlfRklYRURfSU5URigweDExOTksIDB4OTA3MSwgMTApfSwJLyogU2llcnJh IFdpcmVsZXNzIE1DNzR4eC9FTTc0eHggKi8KIAl7UU1JX0ZJWEVEX0lOVEYoMHgxYmJiLCAweDAx MWUsIDQpfSwJLyogVGVsZWtvbSBTcGVlZHN0aWNrIExURSBJSSAoQWxjYXRlbCBPbmUgVG91Y2gg TDEwMFYgTFRFKSAqLwogCXtRTUlfRklYRURfSU5URigweDFiYmIsIDB4MDIwMywgMil9LAkvKiBB bGNhdGVsIEw4MDBNQSAqLwogCXtRTUlfRklYRURfSU5URigweDIzNTcsIDB4MDIwMSwgNCl9LAkv KiBUUC1MSU5LIEhTVVBBIE1vZGVtIE1BMTgwICovCi0tIAoyLjQuMQoKCkZyb20gMTQzZTYwOTg1 Y2Y2Yjc2YTNhNjcxMGNkMGVjYzI3YjExODgwNzg5MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogSmFzb24gV2FuZyA8amFzb3dhbmdAcmVkaGF0LmNvbT4KRGF0ZTogRnJpLCAyMyBPY3Qg MjAxNSAwMDo1NzowNSAtMDQwMApTdWJqZWN0OiBbUEFUQ0ggMDQvMjJdIG1hY3Z0YXA6IHVuYnJl YWsgcmVjZWl2aW5nIG9mIGdybyBza2Igd2l0aCBmcmFnIGxpc3QKClsgVXBzdHJlYW0gY29tbWl0 IGYyM2Q1MzhiYzI0YTgzYzE2MTI3YzJlYjgyYzljZjFhZGMyYjUxNDkgXQoKV2UgZG9uJ3QgaGF2 ZSBmcmFnbGlzdCBzdXBwb3J0IGluIFRBUF9GRUFUVVJFUy4gVGhpcyB3aWxsIGxlYWQKc29mdHdh cmUgc2VnbWVudGF0aW9uIG9mIGdybyBza2Igd2l0aCBmcmFnIGxpc3QuIEZpeGVzIGJ5IGhhdmlu ZwpmcmFnIGxpc3Qgc3VwcG9ydCBpbiBUQVBfRkVBVFVSRVMuCgpXaXRoIHRoaXMgcGF0Y2ggc2lu Z2xlIHNlc3Npb24gb2YgbmV0cGVyZiByZWNlaXZpbmcgd2VyZSByZXN0b3JlZCBmcm9tCmFib3V0 IDVHYi9zIHRvIGFib3V0IDEyR2IvcyBvbiBtbHg0LgoKRml4ZXMgYTU2N2RkNjI1MiAoIm1hY3Z0 YXA6IHNpbXBsaWZ5IHVzYWdlIG9mIHRhcF9mZWF0dXJlcyIpCkNjOiBWbGFkIFlhc2V2aWNoIDx2 eWFzZXZpY0ByZWRoYXQuY29tPgpDYzogTWljaGFlbCBTLiBUc2lya2luIDxtc3RAcmVkaGF0LmNv bT4KU2lnbmVkLW9mZi1ieTogSmFzb24gV2FuZyA8amFzb3dhbmdAcmVkaGF0LmNvbT4KU2lnbmVk LW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZl cnMvbmV0L21hY3Z0YXAuYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwg MSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L21hY3Z0YXAuYyBiL2RyaXZl cnMvbmV0L21hY3Z0YXAuYwppbmRleCA1ODg1OGM1Li40ZGJhNWZiIDEwMDY0NAotLS0gYS9kcml2 ZXJzL25ldC9tYWN2dGFwLmMKKysrIGIvZHJpdmVycy9uZXQvbWFjdnRhcC5jCkBAIC04Miw3ICs4 Miw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcHJvdG9fb3BzIG1hY3Z0YXBfc29ja2V0X29wczsK ICNkZWZpbmUgVFVOX09GRkxPQURTIChORVRJRl9GX0hXX0NTVU0gfCBORVRJRl9GX1RTT19FQ04g fCBORVRJRl9GX1RTTyB8IFwKIAkJICAgICAgTkVUSUZfRl9UU082IHwgTkVUSUZfRl9VRk8pCiAj ZGVmaW5lIFJYX09GRkxPQURTIChORVRJRl9GX0dSTyB8IE5FVElGX0ZfTFJPKQotI2RlZmluZSBU QVBfRkVBVFVSRVMgKE5FVElGX0ZfR1NPIHwgTkVUSUZfRl9TRykKKyNkZWZpbmUgVEFQX0ZFQVRV UkVTIChORVRJRl9GX0dTTyB8IE5FVElGX0ZfU0cgfCBORVRJRl9GX0ZSQUdMSVNUKQogCiBzdGF0 aWMgc3RydWN0IG1hY3ZsYW5fZGV2ICptYWN2dGFwX2dldF92bGFuX3JjdShjb25zdCBzdHJ1Y3Qg bmV0X2RldmljZSAqZGV2KQogewotLSAKMi40LjEKCgpGcm9tIDQ3ODQ4Yzg1NWE4YTI2Yjg0ZTVj MjYxOWM2YWVhODE0ZmUxODFhZDkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEd1aWxs YXVtZSBOYXVsdCA8Zy5uYXVsdEBhbHBoYWxpbmsuZnI+CkRhdGU6IFRodSwgMjIgT2N0IDIwMTUg MTY6NTc6MTAgKzAyMDAKU3ViamVjdDogW1BBVENIIDA1LzIyXSBwcHA6IGZpeCBwcHBvZV9kZXYg ZGVsZXRpb24gY29uZGl0aW9uIGluCiBwcHBvZV9yZWxlYXNlKCkKClsgVXBzdHJlYW0gY29tbWl0 IDFhY2VhNGY2Y2UxYjFjMDk0MTQzOGFjYTc1ZGQyZTVjNmIwOWRiNjAgXQoKV2UgY2FuJ3QgcmVs eSBvbiBQUFBPWF9aT01CSUUgdG8gZGVjaWRlIHdoZXRoZXIgdG8gY2xlYXIgcG8tPnBwcG9lX2Rl di4KUFBQT1hfWk9NQklFIGNhbiBiZSBzZXQgYnkgcHBwb2VfZGlzY19yY3YoKSBldmVuIHdoZW4g cG8tPnBwcG9lX2RldiBpcwpOVUxMLiBTbyB3ZSBoYXZlIG5vIGd1YXJhbnRlZSB0aGF0IChzay0+ c2tfc3RhdGUgJiBQUFBPWF9aT01CSUUpIGltcGxpZXMKKHBvLT5wcHBvZV9kZXYgIT0gTlVMTCku ClNpbmNlIHdlJ3JlIHJlbGVhc2luZyBhIFBQUG9FIHNvY2tldCwgd2Ugd2FudCB0byByZWxlYXNl IHRoZSBwcHBvZV9kZXYKaWYgaXQgZXhpc3RzIGFuZCByZXNldCBza19zdGF0ZSB0byBQUFBPWF9E RUFELCBubyBtYXR0ZXIgdGhlIHByZXZpb3VzCnZhbHVlIG9mIHNrX3N0YXRlLiBTbyB3ZSBjYW4g anVzdCBjaGVjayBmb3IgcG8tPnBwcG9lX2RldiBhbmQgYXZvaWQgYW55CmFzc3VtcHRpb24gb24g c2stPnNrX3N0YXRlLgoKRml4ZXM6IDJiMDE4ZDU3ZmYxOCAoInBwcG9lOiBkcm9wIFBQUE9YX1pP TUJJRXMgaW4gcHBwb2VfcmVsZWFzZSIpClNpZ25lZC1vZmYtYnk6IEd1aWxsYXVtZSBOYXVsdCA8 Zy5uYXVsdEBhbHBoYWxpbmsuZnI+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2 ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9wcHAvcHBwb2UuYyB8IDIgKy0KIDEg ZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBh L2RyaXZlcnMvbmV0L3BwcC9wcHBvZS5jIGIvZHJpdmVycy9uZXQvcHBwL3BwcG9lLmMKaW5kZXgg ZGIyYzNjZC4uYWIzMzI2MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvcHBwL3BwcG9lLmMKKysr IGIvZHJpdmVycy9uZXQvcHBwL3BwcG9lLmMKQEAgLTU4OSw3ICs1ODksNyBAQCBzdGF0aWMgaW50 IHBwcG9lX3JlbGVhc2Uoc3RydWN0IHNvY2tldCAqc29jaykKIAogCXBvID0gcHBwb3hfc2soc2sp OwogCi0JaWYgKHNrLT5za19zdGF0ZSAmIChQUFBPWF9DT05ORUNURUQgfCBQUFBPWF9CT1VORCB8 IFBQUE9YX1pPTUJJRSkpIHsKKwlpZiAocG8tPnBwcG9lX2RldikgewogCQlkZXZfcHV0KHBvLT5w cHBvZV9kZXYpOwogCQlwby0+cHBwb2VfZGV2ID0gTlVMTDsKIAl9Ci0tIAoyLjQuMQoKCkZyb20g YjI2YjU4Mjc2MDYwNGI3M2I1NzcwMWMyOTM3NWM0NjRlN2JhOGFjNyBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpEYXRlOiBT YXQsIDI0IE9jdCAyMDE1IDA1OjQ3OjQ0IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAwNi8yMl0gaXB2 NjogZ3JlOiBzdXBwb3J0IFNJVCBlbmNhcHN1bGF0aW9uCgpbIFVwc3RyZWFtIGNvbW1pdCA3ZTNi NmU3NDIzZDVmOTk0MjU3YzFkZTg4ZTA2YjUwOTY3M2ZkYmNmIF0KCmdyZV9nc29fc2VnbWVudCgp IGNob2tlcyBpZiBTSVQgZnJhbWVzIHdlcmUgYWdncmVnYXRlZCBieSBHUk8gZW5naW5lLgoKRml4 ZXM6IDYxYzFkYjdmYWUyMWUgKCJpcHY2OiBzaXQ6IGFkZCBHU08vVFNPIHN1cHBvcnQiKQpTaWdu ZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClNpZ25lZC1vZmYt Ynk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2NC9n cmVfb2ZmbG9hZC5jIHwgMyArKy0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDEg ZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2NC9ncmVfb2ZmbG9hZC5jIGIvbmV0L2lw djQvZ3JlX29mZmxvYWQuYwppbmRleCA1YWE0NmQ0Li41YThlZTMyIDEwMDY0NAotLS0gYS9uZXQv aXB2NC9ncmVfb2ZmbG9hZC5jCisrKyBiL25ldC9pcHY0L2dyZV9vZmZsb2FkLmMKQEAgLTM2LDcg KzM2LDggQEAgc3RhdGljIHN0cnVjdCBza19idWZmICpncmVfZ3NvX3NlZ21lbnQoc3RydWN0IHNr X2J1ZmYgKnNrYiwKIAkJCQkgIFNLQl9HU09fVENQX0VDTiB8CiAJCQkJICBTS0JfR1NPX0dSRSB8 CiAJCQkJICBTS0JfR1NPX0dSRV9DU1VNIHwKLQkJCQkgIFNLQl9HU09fSVBJUCkpKQorCQkJCSAg U0tCX0dTT19JUElQIHwKKwkJCQkgIFNLQl9HU09fU0lUKSkpCiAJCWdvdG8gb3V0OwogCiAJaWYg KCFza2ItPmVuY2Fwc3VsYXRpb24pCi0tIAoyLjQuMQoKCkZyb20gN2I0MTE2ZGQ1NjRkMmIzNmQx NDVlNjZiOWI3NmQ4ODY2MTAyOTAxOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQWxl eGFuZGVyIER1eWNrIDxhZHV5Y2tAbWlyYW50aXMuY29tPgpEYXRlOiBUdWUsIDI3IE9jdCAyMDE1 IDE1OjA2OjQ1IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAwNy8yMl0gZmliX3RyaWU6IGxlYWZfd2Fs a19yY3Ugc2hvdWxkIG5vdCBjb21wdXRlIGtleSBpZiBrZXkKIGlzIGxlc3MgdGhhbiBwbi0+a2V5 CgpbIFVwc3RyZWFtIGNvbW1pdCBjMjIyOWZlMTQzMGQ0ZTFjNzBlMzY1MjAyMjlkZDY0YTg3ODAy YjIwIF0KCldlIHdlcmUgY29tcHV0aW5nIHRoZSBjaGlsZCBpbmRleCBpbiBjYXNlcyB3aGVyZSB0 aGUga2V5IHZhbHVlIHdlIHdlcmUKbG9va2luZyBmb3Igd2FzIGFjdHVhbGx5IGxlc3MgdGhhbiB0 aGUgYmFzZSBrZXkgb2YgdGhlIHRub2RlLiAgQXMgYSByZXN1bHQKd2Ugd2VyZSBnZXR0aW5nIGlu Y29ycmVjdCBpbmRleCB2YWx1ZXMgdGhhdCB3b3VsZCBjYXVzZSB1cyB0byBza2lwIG92ZXIKc29t ZSBjaGlsZHJlbi4KClRvIGZpeCB0aGlzIEkgaGF2ZSBhZGRlZCBhIHRlc3QgdGhhdCB3aWxsIGZv cmNlIHVzIHRvIHVzZSBjaGlsZCBpbmRleCAwIGlmCnRoZSBrZXkgd2UgYXJlIGxvb2tpbmcgZm9y IGlzIGxlc3MgdGhhbiB0aGUga2V5IG9mIHRoZSBjdXJyZW50IHRub2RlLgoKRml4ZXM6IDhiZTMz ZTk1NWNiOSAoImZpYl90cmllOiBGaWIgd2FsayByY3Ugc2hvdWxkIHRha2UgYSB0bm9kZSBhbmQg a2V5IGluc3RlYWQgb2YgYSB0cmllIGFuZCBhIGxlYWYiKQpSZXBvcnRlZC1ieTogQnJpYW4gUmFr IDxicmFrQGdhbWVzZXJ2ZXJzLmNvbT4KU2lnbmVkLW9mZi1ieTogQWxleGFuZGVyIER1eWNrIDxh ZHV5Y2tAbWlyYW50aXMuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVt QGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjQvZmliX3RyaWUuYyB8IDIgKy0KIDEgZmlsZSBj aGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9p cHY0L2ZpYl90cmllLmMgYi9uZXQvaXB2NC9maWJfdHJpZS5jCmluZGV4IDBjYTkzM2QuLjkzYjgw MjkgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L2ZpYl90cmllLmMKKysrIGIvbmV0L2lwdjQvZmliX3Ry aWUuYwpAQCAtMTU0Nyw3ICsxNTQ3LDcgQEAgc3RhdGljIHN0cnVjdCBrZXlfdmVjdG9yICpsZWFm X3dhbGtfcmN1KHN0cnVjdCBrZXlfdmVjdG9yICoqdG4sIHRfa2V5IGtleSkKIAlkbyB7CiAJCS8q IHJlY29yZCBwYXJlbnQgYW5kIG5leHQgY2hpbGQgaW5kZXggKi8KIAkJcG4gPSBuOwotCQljaW5k ZXggPSBrZXkgPyBnZXRfaW5kZXgoa2V5LCBwbikgOiAwOworCQljaW5kZXggPSAoa2V5ID4gcG4t PmtleSkgPyBnZXRfaW5kZXgoa2V5LCBwbikgOiAwOwogCiAJCWlmIChjaW5kZXggPj4gcG4tPmJp dHMpCiAJCQlicmVhazsKLS0gCjIuNC4xCgoKRnJvbSBmZGIzY2Q3YzAzYmE3MDM5ZThjOGJlOTZm ZGZhODQ3Y2NmYzZkNGZhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTb3dtaW5pIFZh cmFkaGFuIDxzb3dtaW5pLnZhcmFkaGFuQG9yYWNsZS5jb20+CkRhdGU6IE1vbiwgMjYgT2N0IDIw MTUgMTI6NDY6MzcgLTA0MDAKU3ViamVjdDogW1BBVENIIDA4LzIyXSBSRFMtVENQOiBSZWNvdmVy IGNvcnJlY3RseSBmcm9tIHBza2JfcHVsbCgpL3Brc2JfdHJpbSgpCiBmYWlsdXJlIGluIHJkc190 Y3BfZGF0YV9yZWN2CgpbIFVwc3RyZWFtIGNvbW1pdCA4Y2U2NzVmZjM5Yjk5NThkMWMxMGY4NmNm NThlMzU3ZWZhYWZjODU2IF0KCkVpdGhlciBvZiBwc2tiX3B1bGwoKSBvciBwc2tiX3RyaW0oKSBt YXkgZmFpbCB1bmRlciBsb3cgbWVtb3J5IGNvbmRpdGlvbnMuCklmIHJkc190Y3BfZGF0YV9yZWN2 KCkgaWdub3JlcyBzdWNoIGZhaWx1cmVzLCB0aGUgYXBwbGljYXRpb24gd2lsbApyZWNlaXZlIGNv cnJ1cHRlZCBkYXRhIGJlY2F1c2UgdGhlIHNrYiBoYXMgbm90IGJlZW4gY29ycmVjdGx5CmNhcnZl ZCB0byB0aGUgUkRTIGRhdGFncmFtIHNpemUuCgpBdm9pZCB0aGlzIGJ5IGhhbmRsaW5nIHBza2Jf cHVsbC9wc2tiX3RyaW0gZmFpbHVyZSBpbiB0aGUgc2FtZQptYW5uZXIgYXMgdGhlIHNrYl9jbG9u ZSBmYWlsdXJlOiBiYWlsIG91dCBvZiByZHNfdGNwX2RhdGFfcmVjdigpLCBhbmQKcmV0cnkgdmlh IHRoZSBkZWZlcnJlZCBjYWxsIHRvIHJkc19zZW5kX3dvcmtlcigpIHRoYXQgZ2V0cyBzZXQgdXAg b24KRU5PTUVNIGZyb20gcmRzX3RjcF9yZWFkX3NvY2soKQoKU2lnbmVkLW9mZi1ieTogU293bWlu aSBWYXJhZGhhbiA8c293bWluaS52YXJhZGhhbkBvcmFjbGUuY29tPgpBY2tlZC1ieTogU2FudG9z aCBTaGlsaW1rYXIgPHNhbnRvc2guc2hpbGlta2FyQG9yYWNsZS5jb20+ClNpZ25lZC1vZmYtYnk6 IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvcmRzL3RjcF9y ZWN2LmMgfCAxMSArKysrKysrKystLQogMSBmaWxlIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygrKSwg MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvcmRzL3RjcF9yZWN2LmMgYi9uZXQvcmRz L3RjcF9yZWN2LmMKaW5kZXggZmJjNWVmOC4uMjdhOTkyMSAxMDA2NDQKLS0tIGEvbmV0L3Jkcy90 Y3BfcmVjdi5jCisrKyBiL25ldC9yZHMvdGNwX3JlY3YuYwpAQCAtMjE0LDggKzIxNCwxNSBAQCBz dGF0aWMgaW50IHJkc190Y3BfZGF0YV9yZWN2KHJlYWRfZGVzY3JpcHRvcl90ICpkZXNjLCBzdHJ1 Y3Qgc2tfYnVmZiAqc2tiLAogCQkJfQogCiAJCQl0b19jb3B5ID0gbWluKHRjLT50X3RpbmNfZGF0 YV9yZW0sIGxlZnQpOwotCQkJcHNrYl9wdWxsKGNsb25lLCBvZmZzZXQpOwotCQkJcHNrYl90cmlt KGNsb25lLCB0b19jb3B5KTsKKwkJCWlmICghcHNrYl9wdWxsKGNsb25lLCBvZmZzZXQpIHx8CisJ CQkgICAgcHNrYl90cmltKGNsb25lLCB0b19jb3B5KSkgeworCQkJCXByX3dhcm4oInJkc190Y3Bf ZGF0YV9yZWN2OiBwdWxsL3RyaW0gZmFpbGVkICIKKwkJCQkJImxlZnQgJXp1IGRhdGFfcmVtICV6 dSBza2JfbGVuICVkXG4iLAorCQkJCQlsZWZ0LCB0Yy0+dF90aW5jX2RhdGFfcmVtLCBza2ItPmxl bik7CisJCQkJa2ZyZWVfc2tiKGNsb25lKTsKKwkJCQlkZXNjLT5lcnJvciA9IC1FTk9NRU07CisJ CQkJZ290byBvdXQ7CisJCQl9CiAJCQlza2JfcXVldWVfdGFpbCgmdGluYy0+dGlfc2tiX2xpc3Qs IGNsb25lKTsKIAogCQkJcmRzZGVidWcoInNrYiAlcCBkYXRhICVwIGxlbiAlZCBvZmYgJXUgdG9f Y29weSAlenUgLT4gIgotLSAKMi40LjEKCgpGcm9tIGNmNmJmMDdlOGZhN2YzN2Y0ZTExMGI3YTkx MDBkMDU5OGI1OTZhZGQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IENhcm9sIEwgU290 byA8Y2xzb3RvQGxpbnV4LnZuZXQuaWJtLmNvbT4KRGF0ZTogVHVlLCAyNyBPY3QgMjAxNSAxNzoz NjoyMCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDkvMjJdIG5ldC9tbHg0OiBDb3B5L3NldCBvbmx5 IHNpemVvZiBzdHJ1Y3QgbWx4NF9lcWUgYnl0ZXMKClsgVXBzdHJlYW0gY29tbWl0IGMwMmIwNTAx MWZhZGY4ZTQwOWU0MTkxMDIxN2NhNjg5ZjJmYzlkOTEgXQoKV2hlbiBkb2luZyBtZW1jcHkvbWVt c2V0IG9mIEVRRXMsIHdlIHNob3VsZCB1c2Ugc2l6ZW9mIHN0cnVjdAptbHg0X2VxZSBhcyB0aGUg YmFzZSBzaXplIGFuZCBub3QgY2Fwcy5lcWVfc2l6ZSB3aGljaCBjb3VsZCBiZSBiaWdnZXIuCgpJ ZiBjYXBzLmVxZV9zaXplIGlzIGJpZ2dlciB0aGFuIHRoZSBzdHJ1Y3QgbWx4NF9lcWUgdGhlbiB3 ZSBjb3JydXB0CmRhdGEgaW4gdGhlIG1hc3RlciBjb250ZXh0LgoKV2hlbiB1c2luZyBhIDY0IGJ5 dGUgc3RyaWRlLCB0aGUgbWVtY3B5IGNvcGllZCBvdmVyIDYzIGJ5dGVzIHRvIHRoZQpzbGF2ZV9l cSBzdHJ1Y3R1cmUuICBUaGlzIHJlc3VsdGVkIGluIGNvcHlpbmcgb3ZlciB0aGUgZW50aXJlIGVx ZSBvZgppbnRlcmVzdCwgaW5jbHVkaW5nIGl0cyBvd25lcnNoaXAgYml0IC0tIGFuZCBhbHNvIDMx IGJ5dGVzIG9mIGdhcmJhZ2UKaW50byB0aGUgbmV4dCBXUUUgaW4gdGhlIHNsYXZlIEVRIC0tIHdo aWNoIGRpZCBOT1QgaW5jbHVkZSB0aGUgb3duZXJzaGlwCmJpdCAoYW5kIHRoZXJlZm9yZSBoYWQg bm8gaW1wYWN0KS4KCkhvd2V2ZXIsIG9uY2UgdGhlIHN0cmlkZSBpcyBpbmNyZWFzZWQgdG8gMTI4 LCB3ZSBhcmUgb3ZlcndyaXRpbmcgdGhlCm93bmVyc2hpcCBiaXRzIG9mICp0aHJlZSogZXFlcyBp biB0aGUgc2xhdmVfZXEgc3RydWN0LiAgVGhpcyByZXN1bHRzCmluIGFuIGluY29ycmVjdCBvd25l cnNoaXAgYml0IGZvciB0aG9zZSBlcWVzLCB3aGljaCBjYXVzZXMgdGhlIGVxIHRvCnNlZW0gdG8g YmUgZnVsbC4gVGhlIGlzc3VlIHRoZXJlZm9yZSBzdXJmYWNlZCBvbmx5IG9uY2UgMTI4LWJ5dGUg RVFFcwpzdGFydGVkIGJlaW5nIHVzZWQgaW4gU1JJT1YgYW5kIChvdmVyYXJjaGl0ZWN0dXJlcyB0 aGF0IGhhdmUgMTI4LzI1NgpieXRlIGNhY2hlLWxpbmVzIHN1Y2ggYXMgUFBDKSAtIGUuZyBhZnRl ciBjb21taXQgNzc1MDdhYTI0OWFlCiJuZXQvbWx4NF9jb3JlOiBFbmFibGUgQ1FFL0VRRSBzdHJp ZGUgc3VwcG9ydCIuCgpGaXhlczogMDhmZjMyMzUyZDZmICgnbWx4NDogNjQtYnl0ZSBDUUUvRVFF IHN1cHBvcnQnKQpTaWduZWQtb2ZmLWJ5OiBDYXJvbCBMIFNvdG8gPGNsc290b0BsaW51eC52bmV0 LmlibS5jb20+ClNpZ25lZC1vZmYtYnk6IEphY2sgTW9yZ2Vuc3RlaW4gPGphY2ttQGRldi5tZWxs YW5veC5jby5pbD4KU2lnbmVkLW9mZi1ieTogT3IgR2VybGl0eiA8b2dlcmxpdHpAbWVsbGFub3gu Y29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9jbWQuYyB8IDIgKy0KIGRy aXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDQvZXEuYyAgfCAyICstCiAyIGZpbGVzIGNo YW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2 ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg0L2NtZC5jIGIvZHJpdmVycy9uZXQvZXRoZXJu ZXQvbWVsbGFub3gvbWx4NC9jbWQuYwppbmRleCA1MjllZjA1Li4zNzU2ZTQ1IDEwMDY0NAotLS0g YS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg0L2NtZC5jCisrKyBiL2RyaXZlcnMv bmV0L2V0aGVybmV0L21lbGxhbm94L21seDQvY21kLmMKQEAgLTIzODIsNyArMjM4Miw3IEBAIGlu dCBtbHg0X211bHRpX2Z1bmNfaW5pdChzdHJ1Y3QgbWx4NF9kZXYgKmRldikKIAkJCX0KIAkJfQog Ci0JCW1lbXNldCgmcHJpdi0+bWZ1bmMubWFzdGVyLmNtZF9lcWUsIDAsIGRldi0+Y2Fwcy5lcWVf c2l6ZSk7CisJCW1lbXNldCgmcHJpdi0+bWZ1bmMubWFzdGVyLmNtZF9lcWUsIDAsIHNpemVvZihz dHJ1Y3QgbWx4NF9lcWUpKTsKIAkJcHJpdi0+bWZ1bmMubWFzdGVyLmNtZF9lcWUudHlwZSA9IE1M WDRfRVZFTlRfVFlQRV9DTUQ7CiAJCUlOSVRfV09SSygmcHJpdi0+bWZ1bmMubWFzdGVyLmNvbW1f d29yaywKIAkJCSAgbWx4NF9tYXN0ZXJfY29tbV9jaGFubmVsKTsKZGlmZiAtLWdpdCBhL2RyaXZl cnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDQvZXEuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0 L21lbGxhbm94L21seDQvZXEuYwppbmRleCA5ODNiMWQ1Li4zMzc4MTFkIDEwMDY0NAotLS0gYS9k cml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg0L2VxLmMKKysrIGIvZHJpdmVycy9uZXQv ZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9lcS5jCkBAIC0xODUsNyArMTg1LDcgQEAgc3RhdGljIHZv aWQgc2xhdmVfZXZlbnQoc3RydWN0IG1seDRfZGV2ICpkZXYsIHU4IHNsYXZlLCBzdHJ1Y3QgbWx4 NF9lcWUgKmVxZSkKIAkJcmV0dXJuOwogCX0KIAotCW1lbWNweShzX2VxZSwgZXFlLCBkZXYtPmNh cHMuZXFlX3NpemUgLSAxKTsKKwltZW1jcHkoc19lcWUsIGVxZSwgc2l6ZW9mKHN0cnVjdCBtbHg0 X2VxZSkgLSAxKTsKIAlzX2VxZS0+c2xhdmVfaWQgPSBzbGF2ZTsKIAkvKiBlbnN1cmUgYWxsIGlu Zm9ybWF0aW9uIGlzIHdyaXR0ZW4gYmVmb3JlIHNldHRpbmcgdGhlIG93bmVyc2lwIGJpdCAqLwog CWRtYV93bWIoKTsKLS0gCjIuNC4xCgoKRnJvbSA3YjZjODQ1M2ViY2Q2OWU3Y2U3ZGFmNTYyYjU1 NTk1M2Y2OGI1YjViIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gUGF1bCBNYWxv eSA8am9uLm1hbG95QGVyaWNzc29uLmNvbT4KRGF0ZTogV2VkLCAyOCBPY3QgMjAxNSAxMzowOTo1 MyAtMDQwMApTdWJqZWN0OiBbUEFUQ0ggMTAvMjJdIHRpcGM6IGxpbmVhcml6ZSBhcnJpdmluZyBO QU1FX0RJU1RSIGFuZCBMSU5LX1BST1RPCiBidWZmZXJzCgpbIFVwc3RyZWFtIGNvbW1pdCA1Y2Ji MjhhNGJmNjVjN2U0ZGFhNmMyNWI2NTFmZWQ4ZWI4ODhjNjIwIF0KClRlc3Rpbmcgb2YgdGhlIG5l dyBVRFAgYmVhcmVyIGhhcyByZXZlYWxlZCB0aGF0IHJlY2VwdGlvbiBvZgpOQU1FX0RJU1RSSUJV VE9SLCBMSU5LX1BST1RPQ09ML1JFU0VUIGFuZCBMSU5LX1BST1RPQ09ML0FDVElWQVRFCm1lc3Nh Z2UgYnVmZmVycyBpcyBub3QgcHJlcGFyZWQgZm9yIHRoZSBjYXNlIHRoYXQgdGhvc2UgbWF5IGJl Cm5vbi1saW5lYXIuCgpXZSBub3cgbGluZWFyaXplIGFsbCBzdWNoIGJ1ZmZlcnMgYmVmb3JlIHRo ZXkgYXJlIGRlbGl2ZXJlZCB1cCB0byB0aGUKZ2VuZXJpYyByZWNlcHRpb24gbGF5ZXIuCgpJbiBv cmRlciBmb3IgdGhlIGNvbW1pdCB0byBhcHBseSBjbGVhbmx5IHRvICduZXQnIGFuZCAnc3RhYmxl Jywgd2UgZG8KdGhlIGNoYW5nZSBpbiB0aGUgZnVuY3Rpb24gdGlwY191ZHBfcmVjdigpIGZvciBu b3cuIExhdGVyLCB3ZSB3aWxsIHBvc3QKYSBjb21taXQgdG8gJ25ldC1uZXh0JyBtb3ZpbmcgdGhl IGxpbmVhcml6YXRpb24gdG8gZ2VuZXJpYyBjb2RlLCBpbgp0aXBjX25hbWVkX3JjdigpIGFuZCB0 aXBjX2xpbmtfcHJvdG9fcmN2KCkuCgpGaXhlczogY29tbWl0IGQwZjkxOTM4YmVkZSAoInRpcGM6 IGFkZCBpcC91ZHAgbWVkaWEgdHlwZSIpClNpZ25lZC1vZmYtYnk6IEpvbiBNYWxveSA8am9uLm1h bG95QGVyaWNzc29uLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBk YXZlbWxvZnQubmV0PgotLS0KIG5ldC90aXBjL3VkcF9tZWRpYS5jIHwgNSArKysrKwogMSBmaWxl IGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL25ldC90aXBjL3VkcF9tZWRp YS5jIGIvbmV0L3RpcGMvdWRwX21lZGlhLmMKaW5kZXggNjZkZWViYy4uZjhkZmVlNSAxMDA2NDQK LS0tIGEvbmV0L3RpcGMvdWRwX21lZGlhLmMKKysrIGIvbmV0L3RpcGMvdWRwX21lZGlhLmMKQEAg LTQ4LDYgKzQ4LDcgQEAKICNpbmNsdWRlIDxsaW51eC90aXBjX25ldGxpbmsuaD4KICNpbmNsdWRl ICJjb3JlLmgiCiAjaW5jbHVkZSAiYmVhcmVyLmgiCisjaW5jbHVkZSAibXNnLmgiCiAKIC8qIElB TkEgYXNzaWduZWQgVURQIHBvcnQgKi8KICNkZWZpbmUgVURQX1BPUlRfREVGQVVMVAk2MTE4CkBA IC0yMTYsNiArMjE3LDEwIEBAIHN0YXRpYyBpbnQgdGlwY191ZHBfcmVjdihzdHJ1Y3Qgc29jayAq c2ssIHN0cnVjdCBza19idWZmICpza2IpCiB7CiAJc3RydWN0IHVkcF9iZWFyZXIgKnViOwogCXN0 cnVjdCB0aXBjX2JlYXJlciAqYjsKKwlpbnQgdXNyID0gbXNnX3VzZXIoYnVmX21zZyhza2IpKTsK KworCWlmICgodXNyID09IExJTktfUFJPVE9DT0wpIHx8ICh1c3IgPT0gTkFNRV9ESVNUUklCVVRP UikpCisJCXNrYl9saW5lYXJpemUoc2tiKTsKIAogCXViID0gcmN1X2RlcmVmZXJlbmNlX3NrX3Vz ZXJfZGF0YShzayk7CiAJaWYgKCF1YikgewotLSAKMi40LjEKCgpGcm9tIDI1NTQzZDU0MTFkNDcy NzJkZGViMDI0NDVjNDJlMWRkNDdiMDAyZmMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IFBoaWwgUmVpZCA8cHJlaWRAZWxlY3Ryb21hZy5jb20uYXU+CkRhdGU6IEZyaSwgMzAgT2N0IDIw MTUgMTY6NDM6NTUgKzA4MDAKU3ViamVjdDogW1BBVENIIDExLzIyXSBzdG1tYWM6IENvcnJlY3Rs eSByZXBvcnQgUFRQIGNhcGFiaWxpdGllcy4KClsgVXBzdHJlYW0gY29tbWl0IGU2ZGJlMWViMmRi MGQ3YTE0OTkxYzA2Mjc4ZGQzMDMwYzQ1ZmI4MjUgXQoKcHJpdi0+aHd0c18qX2VuIGluZGljYXRl IGlmIHRpbWVzdGFtcGluZyBpcyBlbmFibGVkL2Rpc2FibGVkIGF0IHJ1bgp0aW1lLiBCdXQgIHBy aXYtPmRtYV9jYXAudGltZV9zdGFtcCAgYW5kIHByaXYtPmRtYV9jYXAuYXRpbWVfc3RhbXAKaW5k aWNhdGVzIEhXIGlzIHN1cHBvcnQgZm9yIFBUUHYxL1BUUHYyLgoKU2lnbmVkLW9mZi1ieTogUGhp bCBSZWlkIDxwcmVpZEBlbGVjdHJvbWFnLmNvbS5hdT4KQWNrZWQtYnk6IFJpY2hhcmQgQ29jaHJh biA8cmljaGFyZGNvY2hyYW5AZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxs ZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNy by9zdG1tYWMvc3RtbWFjX2V0aHRvb2wuYyB8IDcgKysrKystLQogMSBmaWxlIGNoYW5nZWQsIDUg aW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9l dGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXRodG9vbC5jIGIvZHJpdmVycy9uZXQvZXRo ZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2V0aHRvb2wuYwppbmRleCA3NzFjZGEyLi4yZTUx YjgxIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1t YWNfZXRodG9vbC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0 bW1hY19ldGh0b29sLmMKQEAgLTcyMSwxMCArNzIxLDEzIEBAIHN0YXRpYyBpbnQgc3RtbWFjX2dl dF90c19pbmZvKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiB7CiAJc3RydWN0IHN0bW1hY19wcml2 ICpwcml2ID0gbmV0ZGV2X3ByaXYoZGV2KTsKIAotCWlmICgocHJpdi0+aHd0c190eF9lbikgJiYg KHByaXYtPmh3dHNfcnhfZW4pKSB7CisJaWYgKChwcml2LT5kbWFfY2FwLnRpbWVfc3RhbXAgfHwg cHJpdi0+ZG1hX2NhcC5hdGltZV9zdGFtcCkpIHsKIAotCQlpbmZvLT5zb190aW1lc3RhbXBpbmcg PSBTT0ZfVElNRVNUQU1QSU5HX1RYX0hBUkRXQVJFIHwKKwkJaW5mby0+c29fdGltZXN0YW1waW5n ID0gU09GX1RJTUVTVEFNUElOR19UWF9TT0ZUV0FSRSB8CisJCQkJCVNPRl9USU1FU1RBTVBJTkdf VFhfSEFSRFdBUkUgfAorCQkJCQlTT0ZfVElNRVNUQU1QSU5HX1JYX1NPRlRXQVJFIHwKIAkJCQkJ U09GX1RJTUVTVEFNUElOR19SWF9IQVJEV0FSRSB8CisJCQkJCVNPRl9USU1FU1RBTVBJTkdfU09G VFdBUkUgfAogCQkJCQlTT0ZfVElNRVNUQU1QSU5HX1JBV19IQVJEV0FSRTsKIAogCQlpZiAocHJp di0+cHRwX2Nsb2NrKQotLSAKMi40LjEKCgpGcm9tIGM1ZDBkZTUyNjRlMjQyM2RmMDJlNjRkOWFk YTAwMDY2YjgwNTY0ZTggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFuaSBTaW5oYSA8 YW5pQGFyaXN0YS5jb20+CkRhdGU6IEZyaSwgMzAgT2N0IDIwMTUgMTY6NTQ6MzEgLTA3MDAKU3Vi amVjdDogW1BBVENIIDEyLzIyXSBpcG1yOiBmaXggcG9zc2libGUgcmFjZSByZXN1bHRpbmcgZnJv bSBpbXByb3BlciB1c2FnZQogb2YgSVBfSU5DX1NUQVRTX0JIKCkgaW4gcHJlZW1wdGlibGUgY29u dGV4dC4KClsgVXBzdHJlYW0gY29tbWl0IDQ0ZjQ5ZGQ4YjVhNjA2ODcwYTFmMjExMDE1MjJhMGY5 YzQ0MTQ3ODQgXQoKRml4ZXMgdGhlIGZvbGxvd2luZyBrZXJuZWwgQlVHIDoKCkJVRzogdXNpbmcg X190aGlzX2NwdV9hZGQoKSBpbiBwcmVlbXB0aWJsZSBbMDAwMDAwMDBdIGNvZGU6IGJhc2gvMjc1 OApjYWxsZXIgaXMgX190aGlzX2NwdV9wcmVlbXB0X2NoZWNrKzB4MTMvMHgxNQpDUFU6IDAgUElE OiAyNzU4IENvbW06IGJhc2ggVGFpbnRlZDogUCAgICAgICAgICAgTyAgIDMuMTguMTkgIzIKIGZm ZmZmZmZmODE3MGVhY2EgZmZmZjg4MDExMGQxYjc4OCBmZmZmZmZmZjgxNDgyYjJhIDAwMDAwMDAw MDAwMDAwMDAKIDAwMDAwMDAwMDAwMDAwMDAgZmZmZjg4MDExMGQxYjdiOCBmZmZmZmZmZjgxMjAx MGFlIGZmZmY4ODAwMDdjYWI4MDAKIGZmZmY4ODAwMWEwNjA4MDAgZmZmZjg4MDEzYTg5OTEwOCBm ZmZmODgwMTA4Yjg0MjQwIGZmZmY4ODAxMTBkMWI3YzgKQ2FsbCBUcmFjZToKWzxmZmZmZmZmZjgx NDgyYjJhPl0gZHVtcF9zdGFjaysweDUyLzB4ODAKWzxmZmZmZmZmZjgxMjAxMGFlPl0gY2hlY2tf cHJlZW1wdGlvbl9kaXNhYmxlZCsweGNlLzB4ZTEKWzxmZmZmZmZmZjgxMjAxMGQ0Pl0gX190aGlz X2NwdV9wcmVlbXB0X2NoZWNrKzB4MTMvMHgxNQpbPGZmZmZmZmZmODE0MTlkNjA+XSBpcG1yX3F1 ZXVlX3htaXQrMHg2NDcvMHg3MGMKWzxmZmZmZmZmZjgxNDFhMTU0Pl0gaXBfbXJfZm9yd2FyZCsw eDMyZi8weDM0ZQpbPGZmZmZmZmZmODE0MWFmNzY+XSBpcF9tcm91dGVfc2V0c29ja29wdCsweGUw My8weDEwOGMKWzxmZmZmZmZmZjgxMDU1M2ZjPl0gPyBnZXRfcGFyZW50X2lwKzB4MTEvMHg0Mgpb PGZmZmZmZmZmODEwZTY5NzQ+XSA/IHBvbGx3YWtlKzB4NGQvMHg1MQpbPGZmZmZmZmZmODEwNThh YzA+XSA/IGRlZmF1bHRfd2FrZV9mdW5jdGlvbisweDAvMHhmCls8ZmZmZmZmZmY4MTA1NTNmYz5d ID8gZ2V0X3BhcmVudF9pcCsweDExLzB4NDIKWzxmZmZmZmZmZjgxMDYxM2Q5Pl0gPyBfX3dha2Vf dXBfY29tbW9uKzB4NDUvMHg3NwpbPGZmZmZmZmZmODE0ODZlYTk+XSA/IF9yYXdfc3Bpbl91bmxv Y2tfaXJxcmVzdG9yZSsweDFkLzB4MzIKWzxmZmZmZmZmZjgxMDYxOGJjPl0gPyBfX3dha2VfdXBf c3luY19rZXkrMHg0YS8weDUzCls8ZmZmZmZmZmY4MTM5YTUxOT5dID8gc29ja19kZWZfcmVhZGFi bGUrMHg3MS8weDc1Cls8ZmZmZmZmZmY4MTNkZDIyNj5dIGRvX2lwX3NldHNvY2tvcHQrMHg5ZC8w eGI1NQpbPGZmZmZmZmZmODE0Mjk4MTg+XSA/IHVuaXhfc2VxcGFja2V0X3NlbmRtc2crMHgzZi8w eDQxCls8ZmZmZmZmZmY4MTM5NjNmZT5dID8gc29ja19zZW5kbXNnKzB4NmQvMHg4NgpbPGZmZmZm ZmZmODEzOTU5ZDQ+XSA/IHNvY2tmZF9sb29rdXBfbGlnaHQrMHgxMi8weDVkCls8ZmZmZmZmZmY4 MTM5NjUwYT5dID8gU3lTX3NlbmR0bysweGYzLzB4MTFiCls8ZmZmZmZmZmY4MTBkNTczOD5dID8g bmV3X3N5bmNfcmVhZCsweDgyLzB4YWEKWzxmZmZmZmZmZjgxM2RkZDE5Pl0gY29tcGF0X2lwX3Nl dHNvY2tvcHQrMHgzYi8weDk5Cls8ZmZmZmZmZmY4MTNmYjI0YT5dIGNvbXBhdF9yYXdfc2V0c29j a29wdCsweDExLzB4MzIKWzxmZmZmZmZmZjgxMzk5MDUyPl0gY29tcGF0X3NvY2tfY29tbW9uX3Nl dHNvY2tvcHQrMHgxOC8weDFmCls8ZmZmZmZmZmY4MTNjNGQwNT5dIGNvbXBhdF9TeVNfc2V0c29j a29wdCsweDFhOS8weDFjZgpbPGZmZmZmZmZmODEzYzQxNDk+XSBjb21wYXRfU3lTX3NvY2tldGNh bGwrMHgxODAvMHgxZTMKWzxmZmZmZmZmZjgxNDg4ZWExPl0gY3N0YXJfZGlzcGF0Y2grMHg3LzB4 MWUKClNpZ25lZC1vZmYtYnk6IEFuaSBTaW5oYSA8YW5pQGFyaXN0YS5jb20+CkFja2VkLWJ5OiBF cmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMu IE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2NC9pcG1yLmMgfCA2ICsr Ky0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9uZXQvaXB2NC9pcG1yLmMgYi9uZXQvaXB2NC9pcG1yLmMKaW5kZXggM2EyYzAx Ni4uZGYyODY5MyAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvaXBtci5jCisrKyBiL25ldC9pcHY0L2lw bXIuYwpAQCAtMTY4Myw4ICsxNjgzLDggQEAgc3RhdGljIGlubGluZSBpbnQgaXBtcl9mb3J3YXJk X2ZpbmlzaChzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IpCiB7CiAJc3RydWN0 IGlwX29wdGlvbnMgKm9wdCA9ICYoSVBDQihza2IpLT5vcHQpOwogCi0JSVBfSU5DX1NUQVRTX0JI KGRldl9uZXQoc2tiX2RzdChza2IpLT5kZXYpLCBJUFNUQVRTX01JQl9PVVRGT1JXREFUQUdSQU1T KTsKLQlJUF9BRERfU1RBVFNfQkgoZGV2X25ldChza2JfZHN0KHNrYiktPmRldiksIElQU1RBVFNf TUlCX09VVE9DVEVUUywgc2tiLT5sZW4pOworCUlQX0lOQ19TVEFUUyhkZXZfbmV0KHNrYl9kc3Qo c2tiKS0+ZGV2KSwgSVBTVEFUU19NSUJfT1VURk9SV0RBVEFHUkFNUyk7CisJSVBfQUREX1NUQVRT KGRldl9uZXQoc2tiX2RzdChza2IpLT5kZXYpLCBJUFNUQVRTX01JQl9PVVRPQ1RFVFMsIHNrYi0+ bGVuKTsKIAogCWlmICh1bmxpa2VseShvcHQtPm9wdGxlbikpCiAJCWlwX2ZvcndhcmRfb3B0aW9u cyhza2IpOwpAQCAtMTc0Niw3ICsxNzQ2LDcgQEAgc3RhdGljIHZvaWQgaXBtcl9xdWV1ZV94bWl0 KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IG1yX3RhYmxlICptcnQsCiAJCSAqIHRvIGJsYWNraG9s ZS4KIAkJICovCiAKLQkJSVBfSU5DX1NUQVRTX0JIKGRldl9uZXQoZGV2KSwgSVBTVEFUU19NSUJf RlJBR0ZBSUxTKTsKKwkJSVBfSU5DX1NUQVRTKGRldl9uZXQoZGV2KSwgSVBTVEFUU19NSUJfRlJB R0ZBSUxTKTsKIAkJaXBfcnRfcHV0KHJ0KTsKIAkJZ290byBvdXRfZnJlZTsKIAl9Ci0tIAoyLjQu MQoKCkZyb20gMGIzOGQwNDNiZjUxNTUxMjljZGY2MGMyMWQxYmYwYzgxNjVhMzJkYyBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xP0JqPUMzPUI4cm49MjBNb3JrPz0gPGJq b3JuQG1vcmsubm8+CkRhdGU6IFN1biwgMSBOb3YgMjAxNSAwMTozNDo1MCArMDEwMApTdWJqZWN0 OiBbUEFUQ0ggMTMvMjJdIHFtaV93d2FuOiBmaXggZW50cnkgZm9yIEhQIGx0NDExMiBMVEUvSFNQ QSsgR29iaSA0RwogTW9kdWxlCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9w bGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CgpbIFVw c3RyZWFtIGNvbW1pdCA3MDkxMDc5MTczMWI1OTU2MTcxZTFiZmNhZDcwNzc2NmI4ZTE4ZmVlIF0K ClRoZSBsdDQxMTIgaXMgYSBIUCBicmFuZGVkIEh1YXdlaSBtZTkwNmUgbW9kZW0uIExpa2Ugb3Ro ZXIgSHVhd2VpCm1vZGVtcywgaXQgZG9lcyBub3QgaGF2ZSBhIGZpeGVkIGludGVyZmFjZSB0byBm dW5jdGlvbiBtYXBwaW5nLgpJbnN0ZWFkIGl0IHVzZXMgYSBIdWF3ZWkgc3BlY2lmaWMgc2NoZW1l OiBmdW5jdGlvbnMgYXJlIG1hcHBlZCBieQpzdWJjbGFzcyBhbmQgcHJvdG9jb2wuCgpIb3dldmVy LCB0aGUgSFAgdmVuZG9yIElEIGlzIHVzZWQgZm9yIG1vZGVtcyBmcm9tIG1hbnkgZGlmZmVyZW50 Cm1hbnVmYWN0dXJlcnMgdXNpbmcgZGlmZmVyZW50IHNjaGVtZXMsIHNvIHdlIGNhbm5vdCBhcHBs eSBhIGdlbmVyaWMKdmVuZG9yIHJ1bGUgbGlrZSB3ZSBkbyBmb3IgdGhlIEh1YXdlaSB2ZW5kb3Ig SUQuCgpSZXBsYWNlIHRoZSBwcmV2aW91cyBsdDQxMTIgZW50cnkgcG9pbnRpbmcgdG8gYW4gYXJi aXRyYXJ5IGludGVyZmFjZQpudW1iZXIgd2l0aCBhIGRldmljZSBzcGVjaWZpYyBzdWJjbGFzcyAr IHByb3RvY29sIG1hdGNoLgoKUmVwb3J0ZWQtYW5kLXRlc3RlZC1ieTogTXVyaSBOaWNhbm9yIDxt dXJpK2xpYnFtaUBpbW1lcmRhLmNoPgpUZXN0ZWQtYnk6IE1hcnRpbiBIYXVrZSA8bWFyZG5oQGdt eC5kZT4KRml4ZXM6IGJiMmJkZWI4M2ZiMSAoInFtaV93d2FuOiBBZGQgc3VwcG9ydCBmb3IgSFAg bHQ0MTEyIExURS9IU1BBKyBHb2JpIDRHIE1vZGVtIikKU2lnbmVkLW9mZi1ieTogQmrDuHJuIE1v cmsgPGJqb3JuQG1vcmsubm8+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1A ZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC91c2IvcW1pX3d3YW4uYyB8IDUgKysrKy0K IDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1n aXQgYS9kcml2ZXJzL25ldC91c2IvcW1pX3d3YW4uYyBiL2RyaXZlcnMvbmV0L3VzYi9xbWlfd3dh bi5jCmluZGV4IDRlMDQ3MGQuLjdhOTUzODMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3VzYi9x bWlfd3dhbi5jCisrKyBiL2RyaXZlcnMvbmV0L3VzYi9xbWlfd3dhbi5jCkBAIC01MzksNiArNTM5 LDEwIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCBwcm9kdWN0c1tdID0gewog CQkJCQkgICAgICBVU0JfQ0RDX1BST1RPX05PTkUpLAogCQkuZHJpdmVyX2luZm8gICAgICAgID0g KHVuc2lnbmVkIGxvbmcpJnFtaV93d2FuX2luZm8sCiAJfSwKKwl7CS8qIEhQIGx0NDExMiBMVEUv SFNQQSsgR29iaSA0RyBNb2R1bGUgKEh1YXdlaSBtZTkwNmUpICovCisJCVVTQl9ERVZJQ0VfQU5E X0lOVEVSRkFDRV9JTkZPKDB4MDNmMCwgMHg1ODFkLCBVU0JfQ0xBU1NfVkVORE9SX1NQRUMsIDEs IDcpLAorCQkuZHJpdmVyX2luZm8gPSAodW5zaWduZWQgbG9uZykmcW1pX3d3YW5faW5mbywKKwl9 LAogCiAJLyogMy4gQ29tYmluZWQgaW50ZXJmYWNlIGRldmljZXMgbWF0Y2hpbmcgb24gaW50ZXJm YWNlIG51bWJlciAqLwogCXtRTUlfRklYRURfSU5URigweDA0MDgsIDB4ZWE0MiwgNCl9LAkvKiBZ b3RhIC8gTWVnYWZvbiBNMTAwLTEgKi8KQEAgLTc4OCw3ICs3OTIsNiBAQCBzdGF0aWMgY29uc3Qg c3RydWN0IHVzYl9kZXZpY2VfaWQgcHJvZHVjdHNbXSA9IHsKIAl7UU1JX0ZJWEVEX0lOVEYoMHg0 MTNjLCAweDgxYTQsIDgpfSwJLyogRGVsbCBXaXJlbGVzcyA1NTcwZSBIU1BBKyAoNDJNYnBzKSBN b2JpbGUgQnJvYWRiYW5kIENhcmQgKi8KIAl7UU1JX0ZJWEVEX0lOVEYoMHg0MTNjLCAweDgxYTgs IDgpfSwJLyogRGVsbCBXaXJlbGVzcyA1ODA4IEdvYmkoVE0pIDRHIExURSBNb2JpbGUgQnJvYWRi YW5kIENhcmQgKi8KIAl7UU1JX0ZJWEVEX0lOVEYoMHg0MTNjLCAweDgxYTksIDgpfSwJLyogRGVs bCBXaXJlbGVzcyA1ODA4ZSBHb2JpKFRNKSA0RyBMVEUgTW9iaWxlIEJyb2FkYmFuZCBDYXJkICov Ci0Je1FNSV9GSVhFRF9JTlRGKDB4MDNmMCwgMHg1ODFkLCA0KX0sCS8qIEhQIGx0NDExMiBMVEUv SFNQQSsgR29iaSA0RyBNb2R1bGUgKEh1YXdlaSBtZTkwNmUpICovCiAKIAkvKiA0LiBHb2JpIDEw MDAgZGV2aWNlcyAqLwogCXtRTUlfR09CSTFLX0RFVklDRSgweDA1YzYsIDB4OTIxMil9LAkvKiBB Y2VyIEdvYmkgTW9kZW0gRGV2aWNlICovCi0tIAoyLjQuMQoKCkZyb20gMTFjMDkyYzJiZjEzY2U4 ZTZjMDFjMzUyMjViNWNiNWQ3NmU5MzYzNyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog RXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpEYXRlOiBNb24sIDIgTm92IDIwMTUg MTc6MDg6MTkgLTA4MDAKU3ViamVjdDogW1BBVENIIDE0LzIyXSBzaXQ6IGZpeCBzaXQwIHBlcmNw dSBkb3VibGUgYWxsb2NhdGlvbnMKClsgVXBzdHJlYW0gY29tbWl0IDRlY2U5MDA5Nzc0NTk2ZWUz ZGYwYWNiYTY1YTMyNGI3ZWE3OTM4N2MgXQoKc2l0MCBkZXZpY2UgYWxsb2NhdGVzIGl0cyBwZXJj cHUgc3RvcmFnZSB0d2ljZSA6Ci0gT25lIHRpbWUgaW4gaXBpcDZfdHVubmVsX2luaXQoKQotIE9u ZSB0aW1lIGluIGlwaXA2X2ZiX3R1bm5lbF9pbml0KCkKClRodXMgd2UgbGVhayA0OCBieXRlcyBw ZXIgcG9zc2libGUgY3B1IHBlciBuZXR3b3JrIG5hbWVzcGFjZSBkaXNtYW50bGUuCgppcGlwNl9m Yl90dW5uZWxfaW5pdCgpIGNhbiBiZSBtdWNoIHNpbXBsZXIgYW5kIGRvZXMgbm90CnJldHVybiBh biBlcnJvciwgYW5kIHNob3VsZCBiZSBjYWxsZWQgYWZ0ZXIgcmVnaXN0ZXJfbmV0ZGV2KCkKCk5v dGUgdGhhdCBpcGlwNl90dW5uZWxfY2xvbmVfNnJkKCkgYWxzbyBuZWVkcyB0byBiZSBjYWxsZWQK YWZ0ZXIgcmVnaXN0ZXJfbmV0ZGV2KCkgKGNhbGxpbmcgaXBpcDZfdHVubmVsX2luaXQoKSkKCkZp eGVzOiBlYmUwODRhYWZiN2UgKCJzaXQ6IFVzZSBpcGlwNl90dW5uZWxfaW5pdCBhcyB0aGUgbmRv X2luaXQgZnVuY3Rpb24uIikKU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBn b29nbGUuY29tPgpSZXBvcnRlZC1ieTogRG1pdHJ5IFZ5dWtvdiA8ZHZ5dWtvdkBnb29nbGUuY29t PgpDYzogU3RlZmZlbiBLbGFzc2VydCA8c3RlZmZlbi5rbGFzc2VydEBzZWN1bmV0LmNvbT4KU2ln bmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5l dC9pcHY2L3NpdC5jIHwgMjYgKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFu Z2VkLCA0IGluc2VydGlvbnMoKyksIDIyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9p cHY2L3NpdC5jIGIvbmV0L2lwdjYvc2l0LmMKaW5kZXggYWMzNWEyOC4uODVjNGIyZiAxMDA2NDQK LS0tIGEvbmV0L2lwdjYvc2l0LmMKKysrIGIvbmV0L2lwdjYvc2l0LmMKQEAgLTEzOTQsMzQgKzEz OTQsMjAgQEAgc3RhdGljIGludCBpcGlwNl90dW5uZWxfaW5pdChzdHJ1Y3QgbmV0X2RldmljZSAq ZGV2KQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IF9fbmV0X2luaXQgaXBpcDZfZmJfdHVu bmVsX2luaXQoc3RydWN0IG5ldF9kZXZpY2UgKmRldikKK3N0YXRpYyB2b2lkIF9fbmV0X2luaXQg aXBpcDZfZmJfdHVubmVsX2luaXQoc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3Qg aXBfdHVubmVsICp0dW5uZWwgPSBuZXRkZXZfcHJpdihkZXYpOwogCXN0cnVjdCBpcGhkciAqaXBo ID0gJnR1bm5lbC0+cGFybXMuaXBoOwogCXN0cnVjdCBuZXQgKm5ldCA9IGRldl9uZXQoZGV2KTsK IAlzdHJ1Y3Qgc2l0X25ldCAqc2l0biA9IG5ldF9nZW5lcmljKG5ldCwgc2l0X25ldF9pZCk7CiAK LQl0dW5uZWwtPmRldiA9IGRldjsKLQl0dW5uZWwtPm5ldCA9IGRldl9uZXQoZGV2KTsKLQogCWlw aC0+dmVyc2lvbgkJPSA0OwogCWlwaC0+cHJvdG9jb2wJCT0gSVBQUk9UT19JUFY2OwogCWlwaC0+ aWhsCQk9IDU7CiAJaXBoLT50dGwJCT0gNjQ7CiAKLQlkZXYtPnRzdGF0cyA9IG5ldGRldl9hbGxv Y19wY3B1X3N0YXRzKHN0cnVjdCBwY3B1X3N3X25ldHN0YXRzKTsKLQlpZiAoIWRldi0+dHN0YXRz KQotCQlyZXR1cm4gLUVOT01FTTsKLQotCXR1bm5lbC0+ZHN0X2NhY2hlID0gYWxsb2NfcGVyY3B1 KHN0cnVjdCBpcF90dW5uZWxfZHN0KTsKLQlpZiAoIXR1bm5lbC0+ZHN0X2NhY2hlKSB7Ci0JCWZy ZWVfcGVyY3B1KGRldi0+dHN0YXRzKTsKLQkJcmV0dXJuIC1FTk9NRU07Ci0JfQotCiAJZGV2X2hv bGQoZGV2KTsKIAlyY3VfYXNzaWduX3BvaW50ZXIoc2l0bi0+dHVubmVsc193Y1swXSwgdHVubmVs KTsKLQlyZXR1cm4gMDsKIH0KIAogc3RhdGljIGludCBpcGlwNl92YWxpZGF0ZShzdHJ1Y3Qgbmxh dHRyICp0YltdLCBzdHJ1Y3QgbmxhdHRyICpkYXRhW10pCkBAIC0xODMxLDIzICsxODE3LDE5IEBA IHN0YXRpYyBpbnQgX19uZXRfaW5pdCBzaXRfaW5pdF9uZXQoc3RydWN0IG5ldCAqbmV0KQogCSAq LwogCXNpdG4tPmZiX3R1bm5lbF9kZXYtPmZlYXR1cmVzIHw9IE5FVElGX0ZfTkVUTlNfTE9DQUw7 CiAKLQllcnIgPSBpcGlwNl9mYl90dW5uZWxfaW5pdChzaXRuLT5mYl90dW5uZWxfZGV2KTsKLQlp ZiAoZXJyKQotCQlnb3RvIGVycl9kZXZfZnJlZTsKLQotCWlwaXA2X3R1bm5lbF9jbG9uZV82cmQo c2l0bi0+ZmJfdHVubmVsX2Rldiwgc2l0bik7CiAJZXJyID0gcmVnaXN0ZXJfbmV0ZGV2KHNpdG4t PmZiX3R1bm5lbF9kZXYpOwogCWlmIChlcnIpCiAJCWdvdG8gZXJyX3JlZ19kZXY7CiAKKwlpcGlw Nl90dW5uZWxfY2xvbmVfNnJkKHNpdG4tPmZiX3R1bm5lbF9kZXYsIHNpdG4pOworCWlwaXA2X2Zi X3R1bm5lbF9pbml0KHNpdG4tPmZiX3R1bm5lbF9kZXYpOworCiAJdCA9IG5ldGRldl9wcml2KHNp dG4tPmZiX3R1bm5lbF9kZXYpOwogCiAJc3RyY3B5KHQtPnBhcm1zLm5hbWUsIHNpdG4tPmZiX3R1 bm5lbF9kZXYtPm5hbWUpOwogCXJldHVybiAwOwogCiBlcnJfcmVnX2RldjoKLQlkZXZfcHV0KHNp dG4tPmZiX3R1bm5lbF9kZXYpOwotZXJyX2Rldl9mcmVlOgogCWlwaXA2X2Rldl9mcmVlKHNpdG4t PmZiX3R1bm5lbF9kZXYpOwogZXJyX2FsbG9jX2RldjoKIAlyZXR1cm4gZXJyOwotLSAKMi40LjEK CgpGcm9tIDYyMDA5YWY4ZjM2NzI4YjFhOTAzOTJlYWQwNDNkZGVmNDllMDBiNDkgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IE1hcnRpbiBIYWJldHMgPG1oYWJldHNAc29sYXJmbGFyZS5j b20+CkRhdGU6IE1vbiwgMiBOb3YgMjAxNSAxMjo1MTozMSArMDAwMApTdWJqZWN0OiBbUEFUQ0gg MTUvMjJdIHNmYzogcHVzaCBwYXJ0bmVyIHF1ZXVlIGZvciBza2ItPnhtaXRfbW9yZQoKWyBVcHN0 cmVhbSBjb21taXQgYjI2NjNhNGYzMGU4NWVjNjA2YjgwNmY1MTM1NDEzZTZkNWM3OGQxZSBdCgpX aGVuIHRoZSBJUCBzdGFjayBwYXNzZXMgU0tCcyB0aGUgc2ZjIGRyaXZlciBwdXRzIHRoZW0gaW4g MiBkaWZmZXJlbnQgVFgKcXVldWVzIChjYWxsZWQgcGFydG5lcnMpLCBvbmUgZm9yIGNoZWNrc3Vt bWVkIGFuZCBvbmUgZm9yIG5vdCBjaGVja3N1bW1lZC4KSWYgdGhlIFNLQiBoYXMgeG1pdF9tb3Jl IHNldCB0aGUgZHJpdmVyIHdpbGwgZGVsYXkgcHVzaGluZyB0aGUgd29yayB0byB0aGUKTklDLgoK V2hlbiBsYXRlciBpdCBkb2VzIGRlY2lkZSB0byBwdXNoIHRoZSBidWZmZXJzIHRoaXMgcGF0Y2gg ZW5zdXJlcyBpdCBhbHNvCnB1c2hlcyB0aGUgcGFydG5lciBxdWV1ZSwgaWYgdGhhdCBhbHNvIGhh cyBhbnkgZGVsYXllZCB3b3JrLiBCZWZvcmUgdGhpcwpmaXggdGhlIHdvcmsgaW4gdGhlIHBhcnRu ZXIgcXVldWUgd291bGQgYmUgbGVmdCBmb3IgYSBsb25nIHRpbWUgYW5kIGNhdXNlCmEgbmV0ZGV2 IHdhdGNoZG9nLgoKRml4ZXM6IDcwYjMzZmIgKCJzZmM6IGFkZCBzdXBwb3J0IGZvciBza2ItPnht aXRfbW9yZSIpClJlcG9ydGVkLWJ5OiBKaWFubGluIFNoaSA8amlzaGlAcmVkaGF0LmNvbT4KU2ln bmVkLW9mZi1ieTogTWFydGluIEhhYmV0cyA8bWhhYmV0c0Bzb2xhcmZsYXJlLmNvbT4KU2lnbmVk LW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZl cnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmMgICAgICAgfCAgNCArKystCiBkcml2ZXJzL25ldC9l dGhlcm5ldC9zZmMvZmFyY2guYyAgICAgIHwgIDQgKysrLQogZHJpdmVycy9uZXQvZXRoZXJuZXQv c2ZjL25ldF9kcml2ZXIuaCB8ICAyICsrCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvdHguYyAg ICAgICAgIHwgMzAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tCiA0IGZpbGVzIGNoYW5n ZWQsIDM2IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEw LmMKaW5kZXggZmJiNmNmYS4uZmVjYTQ2ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJu ZXQvc2ZjL2VmMTAuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jCkBAIC0x MzQ0LDcgKzEzNDQsOSBAQCBzdGF0aWMgdm9pZCBlZnhfZWYxMF90eF93cml0ZShzdHJ1Y3QgZWZ4 X3R4X3F1ZXVlICp0eF9xdWV1ZSkKIAl1bnNpZ25lZCBpbnQgd3JpdGVfcHRyOwogCWVmeF9xd29y ZF90ICp0eGQ7CiAKLQlCVUdfT04odHhfcXVldWUtPndyaXRlX2NvdW50ID09IHR4X3F1ZXVlLT5p bnNlcnRfY291bnQpOworCXR4X3F1ZXVlLT54bWl0X21vcmVfYXZhaWxhYmxlID0gZmFsc2U7CisJ aWYgKHVubGlrZWx5KHR4X3F1ZXVlLT53cml0ZV9jb3VudCA9PSB0eF9xdWV1ZS0+aW5zZXJ0X2Nv dW50KSkKKwkJcmV0dXJuOwogCiAJZG8gewogCQl3cml0ZV9wdHIgPSB0eF9xdWV1ZS0+d3JpdGVf Y291bnQgJiB0eF9xdWV1ZS0+cHRyX21hc2s7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhl cm5ldC9zZmMvZmFyY2guYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9mYXJjaC5jCmluZGV4 IGJiODllOTYuLjZkNGUwMDQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9m YXJjaC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9mYXJjaC5jCkBAIC0zMTksNyAr MzE5LDkgQEAgdm9pZCBlZnhfZmFyY2hfdHhfd3JpdGUoc3RydWN0IGVmeF90eF9xdWV1ZSAqdHhf cXVldWUpCiAJdW5zaWduZWQgd3JpdGVfcHRyOwogCXVuc2lnbmVkIG9sZF93cml0ZV9jb3VudCA9 IHR4X3F1ZXVlLT53cml0ZV9jb3VudDsKIAotCUJVR19PTih0eF9xdWV1ZS0+d3JpdGVfY291bnQg PT0gdHhfcXVldWUtPmluc2VydF9jb3VudCk7CisJdHhfcXVldWUtPnhtaXRfbW9yZV9hdmFpbGFi bGUgPSBmYWxzZTsKKwlpZiAodW5saWtlbHkodHhfcXVldWUtPndyaXRlX2NvdW50ID09IHR4X3F1 ZXVlLT5pbnNlcnRfY291bnQpKQorCQlyZXR1cm47CiAKIAlkbyB7CiAJCXdyaXRlX3B0ciA9IHR4 X3F1ZXVlLT53cml0ZV9jb3VudCAmIHR4X3F1ZXVlLT5wdHJfbWFzazsKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbmV0L2V0aGVybmV0L3NmYy9uZXRfZHJpdmVyLmggYi9kcml2ZXJzL25ldC9ldGhlcm5l dC9zZmMvbmV0X2RyaXZlci5oCmluZGV4IDMyNWRkOTQuLjBiZGVmNGEgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvbmV0L2V0aGVybmV0L3NmYy9uZXRfZHJpdmVyLmgKKysrIGIvZHJpdmVycy9uZXQvZXRo ZXJuZXQvc2ZjL25ldF9kcml2ZXIuaApAQCAtMjE4LDYgKzIxOCw3IEBAIHN0cnVjdCBlZnhfdHhf YnVmZmVyIHsKICAqIEB0c29fcGFja2V0czogTnVtYmVyIG9mIHBhY2tldHMgdmlhIHRoZSBUU08g eG1pdCBwYXRoCiAgKiBAcHVzaGVzOiBOdW1iZXIgb2YgdGltZXMgdGhlIFRYIHB1c2ggZmVhdHVy ZSBoYXMgYmVlbiB1c2VkCiAgKiBAcGlvX3BhY2tldHM6IE51bWJlciBvZiB0aW1lcyB0aGUgVFgg UElPIGZlYXR1cmUgaGFzIGJlZW4gdXNlZAorICogQHhtaXRfbW9yZV9hdmFpbGFibGU6IEFyZSBh bnkgcGFja2V0cyB3YWl0aW5nIHRvIGJlIHB1c2hlZCB0byB0aGUgTklDCiAgKiBAZW1wdHlfcmVh ZF9jb3VudDogSWYgdGhlIGNvbXBsZXRpb24gcGF0aCBoYXMgc2VlbiB0aGUgcXVldWUgYXMgZW1w dHkKICAqCWFuZCB0aGUgdHJhbnNtaXNzaW9uIHBhdGggaGFzIG5vdCB5ZXQgY2hlY2tlZCB0aGlz LCB0aGUgdmFsdWUgb2YKICAqCUByZWFkX2NvdW50IGJpdHdpc2UtYWRkZWQgdG8gJUVGWF9FTVBU WV9DT1VOVF9WQUxJRDsgb3RoZXJ3aXNlIDAuCkBAIC0yNTAsNiArMjUxLDcgQEAgc3RydWN0IGVm eF90eF9xdWV1ZSB7CiAJdW5zaWduZWQgaW50IHRzb19wYWNrZXRzOwogCXVuc2lnbmVkIGludCBw dXNoZXM7CiAJdW5zaWduZWQgaW50IHBpb19wYWNrZXRzOworCWJvb2wgeG1pdF9tb3JlX2F2YWls YWJsZTsKIAkvKiBTdGF0aXN0aWNzIHRvIHN1cHBsZW1lbnQgTUFDIHN0YXRzICovCiAJdW5zaWdu ZWQgbG9uZyB0eF9wYWNrZXRzOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9z ZmMvdHguYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy90eC5jCmluZGV4IGFhZjI5ODcuLmU3 MGVkYzMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy90eC5jCisrKyBiL2Ry aXZlcnMvbmV0L2V0aGVybmV0L3NmYy90eC5jCkBAIC00MzEsOCArNDMxLDIwIEBAIGZpbmlzaF9w YWNrZXQ6CiAJZWZ4X3R4X21heWJlX3N0b3BfcXVldWUodHhfcXVldWUpOwogCiAJLyogUGFzcyBv ZmYgdG8gaGFyZHdhcmUgKi8KLQlpZiAoIXNrYi0+eG1pdF9tb3JlIHx8IG5ldGlmX3htaXRfc3Rv cHBlZCh0eF9xdWV1ZS0+Y29yZV90eHEpKQorCWlmICghc2tiLT54bWl0X21vcmUgfHwgbmV0aWZf eG1pdF9zdG9wcGVkKHR4X3F1ZXVlLT5jb3JlX3R4cSkpIHsKKwkJc3RydWN0IGVmeF90eF9xdWV1 ZSAqdHhxMiA9IGVmeF90eF9xdWV1ZV9wYXJ0bmVyKHR4X3F1ZXVlKTsKKworCQkvKiBUaGVyZSBj b3VsZCBiZSBwYWNrZXRzIGxlZnQgb24gdGhlIHBhcnRuZXIgcXVldWUgaWYgdGhvc2UKKwkJICog U0tCcyBoYWQgc2tiLT54bWl0X21vcmUgc2V0LiBJZiB3ZSBkbyBub3QgcHVzaCB0aG9zZSB0aGV5 CisJCSAqIGNvdWxkIGJlIGxlZnQgZm9yIGEgbG9uZyB0aW1lIGFuZCBjYXVzZSBhIG5ldGRldiB3 YXRjaGRvZy4KKwkJICovCisJCWlmICh0eHEyLT54bWl0X21vcmVfYXZhaWxhYmxlKQorCQkJZWZ4 X25pY19wdXNoX2J1ZmZlcnModHhxMik7CisKIAkJZWZ4X25pY19wdXNoX2J1ZmZlcnModHhfcXVl dWUpOworCX0gZWxzZSB7CisJCXR4X3F1ZXVlLT54bWl0X21vcmVfYXZhaWxhYmxlID0gc2tiLT54 bWl0X21vcmU7CisJfQogCiAJdHhfcXVldWUtPnR4X3BhY2tldHMrKzsKIApAQCAtNzIxLDYgKzcz Myw3IEBAIHZvaWQgZWZ4X2luaXRfdHhfcXVldWUoc3RydWN0IGVmeF90eF9xdWV1ZSAqdHhfcXVl dWUpCiAJdHhfcXVldWUtPnJlYWRfY291bnQgPSAwOwogCXR4X3F1ZXVlLT5vbGRfcmVhZF9jb3Vu dCA9IDA7CiAJdHhfcXVldWUtPmVtcHR5X3JlYWRfY291bnQgPSAwIHwgRUZYX0VNUFRZX0NPVU5U X1ZBTElEOworCXR4X3F1ZXVlLT54bWl0X21vcmVfYXZhaWxhYmxlID0gZmFsc2U7CiAKIAkvKiBT ZXQgdXAgVFggZGVzY3JpcHRvciByaW5nICovCiAJZWZ4X25pY19pbml0X3R4KHR4X3F1ZXVlKTsK QEAgLTc0Niw2ICs3NTksNyBAQCB2b2lkIGVmeF9maW5pX3R4X3F1ZXVlKHN0cnVjdCBlZnhfdHhf cXVldWUgKnR4X3F1ZXVlKQogCiAJCSsrdHhfcXVldWUtPnJlYWRfY291bnQ7CiAJfQorCXR4X3F1 ZXVlLT54bWl0X21vcmVfYXZhaWxhYmxlID0gZmFsc2U7CiAJbmV0ZGV2X3R4X3Jlc2V0X3F1ZXVl KHR4X3F1ZXVlLT5jb3JlX3R4cSk7CiB9CiAKQEAgLTEzMDEsOCArMTMxNSwyMCBAQCBzdGF0aWMg aW50IGVmeF9lbnF1ZXVlX3NrYl90c28oc3RydWN0IGVmeF90eF9xdWV1ZSAqdHhfcXVldWUsCiAJ ZWZ4X3R4X21heWJlX3N0b3BfcXVldWUodHhfcXVldWUpOwogCiAJLyogUGFzcyBvZmYgdG8gaGFy ZHdhcmUgKi8KLQlpZiAoIXNrYi0+eG1pdF9tb3JlIHx8IG5ldGlmX3htaXRfc3RvcHBlZCh0eF9x dWV1ZS0+Y29yZV90eHEpKQorCWlmICghc2tiLT54bWl0X21vcmUgfHwgbmV0aWZfeG1pdF9zdG9w cGVkKHR4X3F1ZXVlLT5jb3JlX3R4cSkpIHsKKwkJc3RydWN0IGVmeF90eF9xdWV1ZSAqdHhxMiA9 IGVmeF90eF9xdWV1ZV9wYXJ0bmVyKHR4X3F1ZXVlKTsKKworCQkvKiBUaGVyZSBjb3VsZCBiZSBw YWNrZXRzIGxlZnQgb24gdGhlIHBhcnRuZXIgcXVldWUgaWYgdGhvc2UKKwkJICogU0tCcyBoYWQg c2tiLT54bWl0X21vcmUgc2V0LiBJZiB3ZSBkbyBub3QgcHVzaCB0aG9zZSB0aGV5CisJCSAqIGNv dWxkIGJlIGxlZnQgZm9yIGEgbG9uZyB0aW1lIGFuZCBjYXVzZSBhIG5ldGRldiB3YXRjaGRvZy4K KwkJICovCisJCWlmICh0eHEyLT54bWl0X21vcmVfYXZhaWxhYmxlKQorCQkJZWZ4X25pY19wdXNo X2J1ZmZlcnModHhxMik7CisKIAkJZWZ4X25pY19wdXNoX2J1ZmZlcnModHhfcXVldWUpOworCX0g ZWxzZSB7CisJCXR4X3F1ZXVlLT54bWl0X21vcmVfYXZhaWxhYmxlID0gc2tiLT54bWl0X21vcmU7 CisJfQogCiAJdHhfcXVldWUtPnRzb19idXJzdHMrKzsKIAlyZXR1cm4gTkVUREVWX1RYX09LOwot LSAKMi40LjEKCgpGcm9tIDQyNGQ0NWJmOWVmZTM1NjczMjUyOGRlZTFlZGY0ODU5ODM3MTRmMmEg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29v Z2xlLmNvbT4KRGF0ZTogTW9uLCAyIE5vdiAyMDE1IDA3OjUwOjA3IC0wODAwClN1YmplY3Q6IFtQ QVRDSCAxNi8yMl0gbmV0OiBhdm9pZCBOVUxMIGRlcmVmIGluIGluZXRfY3RsX3NvY2tfZGVzdHJv eSgpCgpbIFVwc3RyZWFtIGNvbW1pdCA4ZmE2NzdkMjcwNmQzMjVkNzFkYWI5MWJmNmU2NTEyYzA1 MjE0ZTM3IF0KClVuZGVyIGxvdyBtZW1vcnkgY29uZGl0aW9ucywgdGNwX3NrX2luaXQoKSBhbmQg aWNtcF9za19pbml0KCkKY2FuIGJvdGggaXRlcmF0ZSBvbiBhbGwgcG9zc2libGUgY3B1cyBhbmQg Y2FsbCBpbmV0X2N0bF9zb2NrX2Rlc3Ryb3koKSwKd2l0aCBldmVudHVhbCBOVUxMIHBvaW50ZXIu CgpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClJlcG9y dGVkLWJ5OiBEbWl0cnkgVnl1a292IDxkdnl1a292QGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6 IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNsdWRlL25ldC9p bmV0X2NvbW1vbi5oIHwgMyArKy0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDEg ZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9pbmV0X2NvbW1vbi5oIGIvaW5j bHVkZS9uZXQvaW5ldF9jb21tb24uaAppbmRleCA0YTkyNDIzLi44MjY2OWRhIDEwMDY0NAotLS0g YS9pbmNsdWRlL25ldC9pbmV0X2NvbW1vbi5oCisrKyBiL2luY2x1ZGUvbmV0L2luZXRfY29tbW9u LmgKQEAgLTQxLDcgKzQxLDggQEAgaW50IGluZXRfcmVjdl9lcnJvcihzdHJ1Y3Qgc29jayAqc2ss IHN0cnVjdCBtc2doZHIgKm1zZywgaW50IGxlbiwKIAogc3RhdGljIGlubGluZSB2b2lkIGluZXRf Y3RsX3NvY2tfZGVzdHJveShzdHJ1Y3Qgc29jayAqc2spCiB7Ci0Jc2tfcmVsZWFzZV9rZXJuZWwo c2spOworCWlmIChzaykKKwkJc2tfcmVsZWFzZV9rZXJuZWwoc2spOwogfQogCiAjZW5kaWYKLS0g CjIuNC4xCgoKRnJvbSA3YzExNDE3OGNiYzA4NGI2MWE3MjNmODRlOWZhZTE0Nzc5YmUxZWNkIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTYWJyaW5hIER1YnJvY2EgPHNkQHF1ZWFzeXNu YWlsLm5ldD4KRGF0ZTogV2VkLCA0IE5vdiAyMDE1IDE0OjQ3OjUzICswMTAwClN1YmplY3Q6IFtQ QVRDSCAxNy8yMl0gaXB2NjogY2xlYW4gdXAgZGV2X3NubXA2IHByb2MgZW50cnkgd2hlbiB3ZSBm YWlsIHRvCiBpbml0aWFsaXplIGluZXQ2X2RldgoKWyBVcHN0cmVhbSBjb21taXQgMmExODlmOWU1 NzY1MGU5ZjMxMGRkZjRhYWQ3NWQ2NmMxMjMzYTA2NCBdCgpJbiBpcHY2X2FkZF9kZXYsIHdoZW4g YWRkcmNvbmZfc3lzY3RsX3JlZ2lzdGVyIGZhaWxzLCB3ZSBkbyBub3QgY2xlYW4gdXAKdGhlIGRl dl9zbm1wNiBlbnRyeSB0aGF0IHdlIGhhdmUgYWxyZWFkeSByZWdpc3RlcmVkIGZvciB0aGlzIGRl dmljZS4KQ2FsbCBzbm1wNl91bnJlZ2lzdGVyX2RldiBpbiB0aGlzIGNhc2UuCgpGaXhlczogYTMx N2EyZjE5ZGE3ZCAoImlwdjY6IGZhaWwgZWFybHkgd2hlbiBjcmVhdGluZyBuZXRkZXYgbmFtZWQg YWxsIG9yIGRlZmF1bHQiKQpSZXBvcnRlZC1ieTogRG1pdHJ5IFZ5dWtvdiA8ZHZ5dWtvdkBnb29n bGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBTYWJyaW5hIER1YnJvY2EgPHNkQHF1ZWFzeXNuYWlsLm5l dD4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0Pgot LS0KIG5ldC9pcHY2L2FkZHJjb25mLmMgfCAxICsKIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlv bigrKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2FkZHJjb25mLmMgYi9uZXQvaXB2Ni9hZGRyY29u Zi5jCmluZGV4IDM3YjcwZTguLmZkM2FhNjEgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L2FkZHJjb25m LmMKKysrIGIvbmV0L2lwdjYvYWRkcmNvbmYuYwpAQCAtNDExLDYgKzQxMSw3IEBAIHN0YXRpYyBz dHJ1Y3QgaW5ldDZfZGV2ICppcHY2X2FkZF9kZXYoc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIAlp ZiAoZXJyKSB7CiAJCWlwdjZfbWNfZGVzdHJveV9kZXYobmRldik7CiAJCWRlbF90aW1lcigmbmRl di0+cmVnZW5fdGltZXIpOworCQlzbm1wNl91bnJlZ2lzdGVyX2RldihuZGV2KTsKIAkJZ290byBl cnJfcmVsZWFzZTsKIAl9CiAJLyogcHJvdGVjdGVkIGJ5IHJ0bmxfbG9jayAqLwotLSAKMi40LjEK CgpGcm9tIGNkMzI2OTYyMWZlZDg5OGYxNDk4OTM4OTM2NzY5MGI4NmZkNzhmMWUgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IFdBTkcgQ29uZyA8eGl5b3Uud2FuZ2NvbmdAZ21haWwuY29t PgpEYXRlOiBUdWUsIDMgTm92IDIwMTUgMTQ6MzI6NTcgLTA4MDAKU3ViamVjdDogW1BBVENIIDE4 LzIyXSBpcHY0OiBkaXNhYmxlIEJIIHdoZW4gY2hhbmdpbmcgaXAgbG9jYWwgcG9ydCByYW5nZQoK WyBVcHN0cmVhbSBjb21taXQgNGVlM2JkNGE4Yzc0NjNjZGVmMGI4MmViYzMzZmM5NGE5MTcwYTdl MCBdCgpUaGlzIGZpeGVzIHRoZSBmb2xsb3dpbmcgbG9ja2RlcCB3YXJuaW5nOgoKIFsgSU5GTzog aW5jb25zaXN0ZW50IGxvY2sgc3RhdGUgXQogNC4zLjAtcmM3KyAjMTE5NyBOb3QgdGFpbnRlZAog LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBpbmNvbnNpc3RlbnQge0lOLVNPRlRJ UlEtUn0gLT4ge1NPRlRJUlEtT04tV30gdXNhZ2UuCiBzeXNjdGwvMTAxOSBbSEMwWzBdOlNDMFsw XTpIRTE6U0UxXSB0YWtlczoKICAoJigmbmV0LT5pcHY0LmlwX2xvY2FsX3BvcnRzLmxvY2spLT5z ZXFjb3VudCl7Ky4rLS4ufSwgYXQ6IFs8ZmZmZmZmZmY4MTkyMWRlNz5dIGlwdjRfbG9jYWxfcG9y dF9yYW5nZSsweGI0LzB4MTJhCiB7SU4tU09GVElSUS1SfSBzdGF0ZSB3YXMgcmVnaXN0ZXJlZCBh dDoKICAgWzxmZmZmZmZmZjgxMGJkNjgyPl0gX19sb2NrX2FjcXVpcmUrMHgyZjYvMHhkZjAKICAg WzxmZmZmZmZmZjgxMGJlNmQ1Pl0gbG9ja19hY3F1aXJlKzB4MTFjLzB4MWE0CiAgIFs8ZmZmZmZm ZmY4MThlNTk5Yz5dIGluZXRfZ2V0X2xvY2FsX3BvcnRfcmFuZ2UrMHg0ZS8weGFlCiAgIFs8ZmZm ZmZmZmY4MTY2ZThlMz5dIHVkcF9mbG93X3NyY19wb3J0LmNvbnN0cHJvcC40MCsweDIzLzB4MTE2 CiAgIFs8ZmZmZmZmZmY4MTY3MWNiOT5dIHZ4bGFuX3htaXRfb25lKzB4MjE5LzB4YTZhCiAgIFs8 ZmZmZmZmZmY4MTY3MmY3NT5dIHZ4bGFuX3htaXQrMHhhNmIvMHhhYTUKICAgWzxmZmZmZmZmZjgx N2YyZGViPl0gZGV2X2hhcmRfc3RhcnRfeG1pdCsweDJhZS8weDQ2NQogICBbPGZmZmZmZmZmODE3 ZjM1ZWQ+XSBfX2Rldl9xdWV1ZV94bWl0KzB4NTMxLzB4NjMzCiAgIFs8ZmZmZmZmZmY4MTdmMzcw Mj5dIGRldl9xdWV1ZV94bWl0X3NrKzB4MTMvMHgxNQogICBbPGZmZmZmZmZmODE4MDA0YTU+XSBu ZWlnaF9yZXNvbHZlX291dHB1dCsweDEyZi8weDE0ZAogICBbPGZmZmZmZmZmODE5NTljZmE+XSBp cDZfZmluaXNoX291dHB1dDIrMHgzNDQvMHgzOWYKICAgWzxmZmZmZmZmZjgxOTViZjU4Pl0gaXA2 X2ZpbmlzaF9vdXRwdXQrMHg4OC8weDhlCiAgIFs8ZmZmZmZmZmY4MTk1YmZlZj5dIGlwNl9vdXRw dXQrMHg5MS8weGU1CiAgIFs8ZmZmZmZmZmY4MTk3OTJhZT5dIGRzdF9vdXRwdXRfc2srMHg0Ny8w eDRjCiAgIFs8ZmZmZmZmZmY4MTk3OTM5Mj5dIE5GX0hPT0tfVEhSRVNILmNvbnN0cHJvcC4zMCsw eDM4LzB4ODIKICAgWzxmZmZmZmZmZjgxOTc5ODFlPl0gbWxkX3NlbmRwYWNrKzB4MTg5LzB4MjY2 CiAgIFs8ZmZmZmZmZmY4MTk3YjI4Yj5dIG1sZF9pZmNfdGltZXJfZXhwaXJlKzB4MWVmLzB4MjIz CiAgIFs8ZmZmZmZmZmY4MTBkZTU4MT5dIGNhbGxfdGltZXJfZm4rMHhmYi8weDI4YwogICBbPGZm ZmZmZmZmODEwZGVkMWU+XSBydW5fdGltZXJfc29mdGlycSsweDFjNy8weDFmMQoKRml4ZXM6IGI4 ZjFhNTU2MzllNiAoInVkcDogQWRkIGZ1bmN0aW9uIHRvIG1ha2Ugc291cmNlIHBvcnQgZm9yIFVE UCB0dW5uZWxzIikKQ2M6IFRvbSBIZXJiZXJ0IDx0b21AaGVyYmVydGxhbmQuY29tPgpTaWduZWQt b2ZmLWJ5OiBDb25nIFdhbmcgPHhpeW91Lndhbmdjb25nQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1i eTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY0L3N5 c2N0bF9uZXRfaXB2NC5jIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCsp LCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY0L3N5c2N0bF9uZXRfaXB2NC5j IGIvbmV0L2lwdjQvc3lzY3RsX25ldF9pcHY0LmMKaW5kZXggYzM4NTJhNy4uZjBlODI5NyAxMDA2 NDQKLS0tIGEvbmV0L2lwdjQvc3lzY3RsX25ldF9pcHY0LmMKKysrIGIvbmV0L2lwdjQvc3lzY3Rs X25ldF9pcHY0LmMKQEAgLTQ1LDEwICs0NSwxMCBAQCBzdGF0aWMgaW50IGlwX3BpbmdfZ3JvdXBf cmFuZ2VfbWF4W10gPSB7IEdJRF9UX01BWCwgR0lEX1RfTUFYIH07CiAvKiBVcGRhdGUgc3lzdGVt IHZpc2libGUgSVAgcG9ydCByYW5nZSAqLwogc3RhdGljIHZvaWQgc2V0X2xvY2FsX3BvcnRfcmFu Z2Uoc3RydWN0IG5ldCAqbmV0LCBpbnQgcmFuZ2VbMl0pCiB7Ci0Jd3JpdGVfc2VxbG9jaygmbmV0 LT5pcHY0LmlwX2xvY2FsX3BvcnRzLmxvY2spOworCXdyaXRlX3NlcWxvY2tfYmgoJm5ldC0+aXB2 NC5pcF9sb2NhbF9wb3J0cy5sb2NrKTsKIAluZXQtPmlwdjQuaXBfbG9jYWxfcG9ydHMucmFuZ2Vb MF0gPSByYW5nZVswXTsKIAluZXQtPmlwdjQuaXBfbG9jYWxfcG9ydHMucmFuZ2VbMV0gPSByYW5n ZVsxXTsKLQl3cml0ZV9zZXF1bmxvY2soJm5ldC0+aXB2NC5pcF9sb2NhbF9wb3J0cy5sb2NrKTsK Kwl3cml0ZV9zZXF1bmxvY2tfYmgoJm5ldC0+aXB2NC5pcF9sb2NhbF9wb3J0cy5sb2NrKTsKIH0K IAogLyogVmFsaWRhdGUgY2hhbmdlcyBmcm9tIC9wcm9jIGludGVyZmFjZS4gKi8KLS0gCjIuNC4x CgoKRnJvbSA3NWM2NzcwYjJmMDc5OGQyZmFmYjMyNGZlMmMwMWM4ZjlmNmJlZmUwIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBGcmFuY2VzY28gUnVnZ2VyaSA8ZnJ1Z2dlcmlAYXJpc3Rh bmV0d29ya3MuY29tPgpEYXRlOiBUaHUsIDUgTm92IDIwMTUgMDg6MTY6MTQgLTA4MDAKU3ViamVj dDogW1BBVENIIDE5LzIyXSBwYWNrZXQ6IHJhY2UgY29uZGl0aW9uIGluIHBhY2tldF9iaW5kCgpb IFVwc3RyZWFtIGNvbW1pdCAzMGY3ZWExYzJiNWY1ZmI3NDYyYzVhZTQ0ZmUyZTQwY2IyZDZhNDc0 IF0KClRoZXJlIGlzIGEgcmFjZSBjb25kaXRpb25zIGJldHdlZW4gcGFja2V0X25vdGlmaWVyIGFu ZCBwYWNrZXRfYmluZHtfc3BrdH0uCgpJdCBoYXBwZW5zIGlmIHBhY2tldF9ub3RpZmllcihORVRE RVZfVU5SRUdJU1RFUikgZXhlY3V0ZXMgYmV0d2VlbiB0aGUKdGltZSBwYWNrZXRfYmluZHtfc3Br dH0gdGFrZXMgYSByZWZlcmVuY2Ugb24gdGhlIG5ldyBuZXRkZXZpY2UgYW5kIHRoZQp0aW1lIHBh Y2tldF9kb19iaW5kIHNldHMgcG8tPmlmaW5kZXguCkluIHRoaXMgY2FzZSB0aGUgbm90aWZpY2F0 aW9uIGNhbiBiZSBtaXNzZWQuCklmIHRoaXMgaGFwcGVucyBkdXJpbmcgYSBkZXZfY2hhbmdlX25l dF9uYW1lc3BhY2UgdGhpcyBjYW4gcmVzdWx0IGluIHRoZQpuZXRkZXZpY2UgdG8gYmUgbW92ZWQg dG8gdGhlIG5ldyBuYW1lc3BhY2Ugd2hpbGUgdGhlIHBhY2tldF9zb2NrIGluIHRoZQpvbGQgbmFt ZXNwYWNlIHN0aWxsIGhvbGRzIGEgcmVmZXJlbmNlIG9uIGl0LiBXaGVuIHRoZSBuZXRkZXZpY2Ug aXMgbGF0ZXIKZGVsZXRlZCBpbiB0aGUgbmV3IG5hbWVzcGFjZSB0aGUgZGVsZXRpb24gaGFuZ3Mg c2luY2UgdGhlIHBhY2tldF9zb2NrCmlzIG5vdCBmb3VuZCBpbiB0aGUgbmV3IG5hbWVzcGFjZScg Jm5ldC0+cGFja2V0LnNrbGlzdC4KSXQgY2FuIGJlIHJlcHJvZHVjZWQgd2l0aCB0aGUgc2NyaXB0 IGJlbG93LgoKVGhpcyBwYXRjaCBtYWtlcyBwYWNrZXRfZG9fYmluZCBjaGVjayBhZ2FpbiBmb3Ig dGhlIHByZXNlbmNlIG9mIHRoZQpuZXRkZXZpY2UgaW4gdGhlIHBhY2tldF9zb2NrJ3MgbmFtZXNw YWNlIGFmdGVyIHRoZSBzeW5jaHJvbml6ZV9uZXQKaW4gdW5yZWdpc3Rlcl9wcm90X2hvb2suCk1v cmUgaW4gZ2VuZXJhbCBpdCBhbHNvIHVzZXMgdGhlIHJjdSBsb2NrIGZvciB0aGUgZHVyYXRpb24g b2YgdGhlIGJpbmQKdG8gc3RvcCBkZXZfY2hhbmdlX25ldF9uYW1lc3BhY2Uvcm9sbGJhY2tfcmVn aXN0ZXJlZF9tYW55IGZyb20KZ29pbmcgcGFzdCB0aGUgc3luY2hyb25pemVfbmV0IGZvbGxvd2lu ZyB1bmxpc3RfbmV0ZGV2aWNlLCBzbyB0aGF0Cm5vIE5FVERFVl9VTlJFR0lTVEVSIG5vdGlmaWNh dGlvbnMgY2FuIGhhcHBlbiBvbiB0aGUgbmV3IG5ldGRldmljZQp3aGlsZSB0aGUgYmluZCBpcyBl eGVjdXRpbmcuIEluIG9yZGVyIHRvIGRvIHRoaXMgc29tZSBjb2RlIGZyb20KcGFja2V0X2JpbmR7 X3Nwa3R9IGlzIGNvbnNvbGlkYXRlZCBpbnRvIHBhY2tldF9kb19kZXYuCgppbXBvcnQgc29ja2V0 LCBvcywgdGltZSwgc3lzCnByb3RvPTcKcmVhbERldj0nZW0xJwp2bGFuSWQ9NDAwCmlmIGxlbihz eXMuYXJndikgPiAxOgogICB2bGFuSWQ9aW50KHN5cy5hcmd2WzFdKQpkZXY9J3ZsYW4lZCcgJSB2 bGFuSWQKCm9zLnN5c3RlbSgndGFza3NldCAtcCAweDEwICVkJyAlIG9zLmdldHBpZCgpKQoKcyA9 IHNvY2tldC5zb2NrZXQoc29ja2V0LlBGX1BBQ0tFVCwgc29ja2V0LlNPQ0tfUkFXLCBwcm90bykK b3Muc3lzdGVtKCdpcCBsaW5rIGFkZCBsaW5rICVzIG5hbWUgJXMgdHlwZSB2bGFuIGlkICVkJyAl CiAgICAgICAgICAocmVhbERldiwgZGV2LCB2bGFuSWQpKQpvcy5zeXN0ZW0oJ2lwIG5ldG5zIGFk ZCBkdW1teScpCgpwaWQ9b3MuZm9yaygpCgppZiBwaWQgPT0gMDoKICAgIyBkZXYgc2hvdWxkIGJl IG1vdmVkIHdoaWxlIHBhY2tldF9kb19iaW5kIGlzIGluIHN5bmNocm9uaXplIG5ldAogICBvcy5z eXN0ZW0oJ3Rhc2tzZXQgLXAgMHgyMDAwMCAlZCcgJSBvcy5nZXRwaWQoKSkKICAgb3Muc3lzdGVt KCdpcCBsaW5rIHNldCAlcyBuZXRucyBkdW1teScgJSBkZXYpCiAgIG9zLnN5c3RlbSgnaXAgbmV0 bnMgZXhlYyBkdW1teSBpcCBsaW5rIGRlbCAlcycgJSBkZXYpCiAgIHMuY2xvc2UoKQogICBzeXMu ZXhpdCgwKQoKdGltZS5zbGVlcCguMDA0KQp0cnk6CiAgIHMuYmluZCgoJyVzJyAlIGRldiwgcHJv dG8rMSkpCmV4Y2VwdDoKICAgcHJpbnQgJ0NvdWxkIG5vdCBiaW5kIHNvY2tldCcKICAgcy5jbG9z ZSgpCiAgIG9zLnN5c3RlbSgnaXAgbmV0bnMgZGVsIGR1bW15JykKICAgc3lzLmV4aXQoMCkKCm9z LndhaXRwaWQocGlkLCAwKQpzLmNsb3NlKCkKb3Muc3lzdGVtKCdpcCBuZXRucyBkZWwgZHVtbXkn KQpzeXMuZXhpdCgwKQoKU2lnbmVkLW9mZi1ieTogRnJhbmNlc2NvIFJ1Z2dlcmkgPGZydWdnZXJp QGFyaXN0YS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiBuZXQvcGFja2V0L2FmX3BhY2tldC5jIHwgODAgKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0OSBp bnNlcnRpb25zKCspLCAzMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvcGFja2V0L2Fm X3BhY2tldC5jIGIvbmV0L3BhY2tldC9hZl9wYWNrZXQuYwppbmRleCBlMWVhNWQ0Li42ODZlNjAx IDEwMDY0NAotLS0gYS9uZXQvcGFja2V0L2FmX3BhY2tldC5jCisrKyBiL25ldC9wYWNrZXQvYWZf cGFja2V0LmMKQEAgLTI2ODYsMjIgKzI2ODYsNDAgQEAgc3RhdGljIGludCBwYWNrZXRfcmVsZWFz ZShzdHJ1Y3Qgc29ja2V0ICpzb2NrKQogICoJQXR0YWNoIGEgcGFja2V0IGhvb2suCiAgKi8KIAot c3RhdGljIGludCBwYWNrZXRfZG9fYmluZChzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBuZXRfZGV2 aWNlICpkZXYsIF9fYmUxNiBwcm90bykKK3N0YXRpYyBpbnQgcGFja2V0X2RvX2JpbmQoc3RydWN0 IHNvY2sgKnNrLCBjb25zdCBjaGFyICpuYW1lLCBpbnQgaWZpbmRleCwKKwkJCSAgX19iZTE2IHBy b3RvKQogewogCXN0cnVjdCBwYWNrZXRfc29jayAqcG8gPSBwa3Rfc2soc2spOwogCXN0cnVjdCBu ZXRfZGV2aWNlICpkZXZfY3VycjsKIAlfX2JlMTYgcHJvdG9fY3VycjsKIAlib29sIG5lZWRfcmVo b29rOworCXN0cnVjdCBuZXRfZGV2aWNlICpkZXYgPSBOVUxMOworCWludCByZXQgPSAwOworCWJv b2wgdW5saXN0ZWQgPSBmYWxzZTsKIAotCWlmIChwby0+ZmFub3V0KSB7Ci0JCWlmIChkZXYpCi0J CQlkZXZfcHV0KGRldik7Ci0KKwlpZiAocG8tPmZhbm91dCkKIAkJcmV0dXJuIC1FSU5WQUw7Ci0J fQogCiAJbG9ja19zb2NrKHNrKTsKIAlzcGluX2xvY2soJnBvLT5iaW5kX2xvY2spOworCXJjdV9y ZWFkX2xvY2soKTsKKworCWlmIChuYW1lKSB7CisJCWRldiA9IGRldl9nZXRfYnlfbmFtZV9yY3Uo c29ja19uZXQoc2spLCBuYW1lKTsKKwkJaWYgKCFkZXYpIHsKKwkJCXJldCA9IC1FTk9ERVY7CisJ CQlnb3RvIG91dF91bmxvY2s7CisJCX0KKwl9IGVsc2UgaWYgKGlmaW5kZXgpIHsKKwkJZGV2ID0g ZGV2X2dldF9ieV9pbmRleF9yY3Uoc29ja19uZXQoc2spLCBpZmluZGV4KTsKKwkJaWYgKCFkZXYp IHsKKwkJCXJldCA9IC1FTk9ERVY7CisJCQlnb3RvIG91dF91bmxvY2s7CisJCX0KKwl9CisKKwlp ZiAoZGV2KQorCQlkZXZfaG9sZChkZXYpOwogCiAJcHJvdG9fY3VyciA9IHBvLT5wcm90X2hvb2su dHlwZTsKIAlkZXZfY3VyciA9IHBvLT5wcm90X2hvb2suZGV2OwpAQCAtMjcwOSwxNCArMjcyNywy OSBAQCBzdGF0aWMgaW50IHBhY2tldF9kb19iaW5kKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IG5l dF9kZXZpY2UgKmRldiwgX19iZTE2IHByb3RvKQogCW5lZWRfcmVob29rID0gcHJvdG9fY3VyciAh PSBwcm90byB8fCBkZXZfY3VyciAhPSBkZXY7CiAKIAlpZiAobmVlZF9yZWhvb2spIHsKLQkJdW5y ZWdpc3Rlcl9wcm90X2hvb2soc2ssIHRydWUpOworCQlpZiAocG8tPnJ1bm5pbmcpIHsKKwkJCXJj dV9yZWFkX3VubG9jaygpOworCQkJX191bnJlZ2lzdGVyX3Byb3RfaG9vayhzaywgdHJ1ZSk7CisJ CQlyY3VfcmVhZF9sb2NrKCk7CisJCQlkZXZfY3VyciA9IHBvLT5wcm90X2hvb2suZGV2OworCQkJ aWYgKGRldikKKwkJCQl1bmxpc3RlZCA9ICFkZXZfZ2V0X2J5X2luZGV4X3JjdShzb2NrX25ldChz ayksCisJCQkJCQkJCSBkZXYtPmlmaW5kZXgpOworCQl9CiAKIAkJcG8tPm51bSA9IHByb3RvOwog CQlwby0+cHJvdF9ob29rLnR5cGUgPSBwcm90bzsKLQkJcG8tPnByb3RfaG9vay5kZXYgPSBkZXY7 CiAKLQkJcG8tPmlmaW5kZXggPSBkZXYgPyBkZXYtPmlmaW5kZXggOiAwOwotCQlwYWNrZXRfY2Fj aGVkX2Rldl9hc3NpZ24ocG8sIGRldik7CisJCWlmICh1bmxpa2VseSh1bmxpc3RlZCkpIHsKKwkJ CWRldl9wdXQoZGV2KTsKKwkJCXBvLT5wcm90X2hvb2suZGV2ID0gTlVMTDsKKwkJCXBvLT5pZmlu ZGV4ID0gLTE7CisJCQlwYWNrZXRfY2FjaGVkX2Rldl9yZXNldChwbyk7CisJCX0gZWxzZSB7CisJ CQlwby0+cHJvdF9ob29rLmRldiA9IGRldjsKKwkJCXBvLT5pZmluZGV4ID0gZGV2ID8gZGV2LT5p ZmluZGV4IDogMDsKKwkJCXBhY2tldF9jYWNoZWRfZGV2X2Fzc2lnbihwbywgZGV2KTsKKwkJfQog CX0KIAlpZiAoZGV2X2N1cnIpCiAJCWRldl9wdXQoZGV2X2N1cnIpOwpAQCAtMjcyNCw3ICsyNzU3 LDcgQEAgc3RhdGljIGludCBwYWNrZXRfZG9fYmluZChzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBu ZXRfZGV2aWNlICpkZXYsIF9fYmUxNiBwcm90bykKIAlpZiAocHJvdG8gPT0gMCB8fCAhbmVlZF9y ZWhvb2spCiAJCWdvdG8gb3V0X3VubG9jazsKIAotCWlmICghZGV2IHx8IChkZXYtPmZsYWdzICYg SUZGX1VQKSkgeworCWlmICghdW5saXN0ZWQgJiYgKCFkZXYgfHwgKGRldi0+ZmxhZ3MgJiBJRkZf VVApKSkgewogCQlyZWdpc3Rlcl9wcm90X2hvb2soc2spOwogCX0gZWxzZSB7CiAJCXNrLT5za19l cnIgPSBFTkVURE9XTjsKQEAgLTI3MzMsOSArMjc2NiwxMCBAQCBzdGF0aWMgaW50IHBhY2tldF9k b19iaW5kKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgX19iZTE2IHBy b3RvKQogCX0KIAogb3V0X3VubG9jazoKKwlyY3VfcmVhZF91bmxvY2soKTsKIAlzcGluX3VubG9j aygmcG8tPmJpbmRfbG9jayk7CiAJcmVsZWFzZV9zb2NrKHNrKTsKLQlyZXR1cm4gMDsKKwlyZXR1 cm4gcmV0OwogfQogCiAvKgpAQCAtMjc0Nyw4ICsyNzgxLDYgQEAgc3RhdGljIGludCBwYWNrZXRf YmluZF9zcGt0KHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVjdCBzb2NrYWRkciAqdWFkZHIsCiB7 CiAJc3RydWN0IHNvY2sgKnNrID0gc29jay0+c2s7CiAJY2hhciBuYW1lWzE1XTsKLQlzdHJ1Y3Qg bmV0X2RldmljZSAqZGV2OwotCWludCBlcnIgPSAtRU5PREVWOwogCiAJLyoKIAkgKglDaGVjayBs ZWdhbGl0eQpAQCAtMjc1OCwxOSArMjc5MCwxMyBAQCBzdGF0aWMgaW50IHBhY2tldF9iaW5kX3Nw a3Qoc3RydWN0IHNvY2tldCAqc29jaywgc3RydWN0IHNvY2thZGRyICp1YWRkciwKIAkJcmV0dXJu IC1FSU5WQUw7CiAJc3RybGNweShuYW1lLCB1YWRkci0+c2FfZGF0YSwgc2l6ZW9mKG5hbWUpKTsK IAotCWRldiA9IGRldl9nZXRfYnlfbmFtZShzb2NrX25ldChzayksIG5hbWUpOwotCWlmIChkZXYp Ci0JCWVyciA9IHBhY2tldF9kb19iaW5kKHNrLCBkZXYsIHBrdF9zayhzayktPm51bSk7Ci0JcmV0 dXJuIGVycjsKKwlyZXR1cm4gcGFja2V0X2RvX2JpbmQoc2ssIG5hbWUsIDAsIHBrdF9zayhzaykt Pm51bSk7CiB9CiAKIHN0YXRpYyBpbnQgcGFja2V0X2JpbmQoc3RydWN0IHNvY2tldCAqc29jaywg c3RydWN0IHNvY2thZGRyICp1YWRkciwgaW50IGFkZHJfbGVuKQogewogCXN0cnVjdCBzb2NrYWRk cl9sbCAqc2xsID0gKHN0cnVjdCBzb2NrYWRkcl9sbCAqKXVhZGRyOwogCXN0cnVjdCBzb2NrICpz ayA9IHNvY2stPnNrOwotCXN0cnVjdCBuZXRfZGV2aWNlICpkZXYgPSBOVUxMOwotCWludCBlcnI7 Ci0KIAogCS8qCiAJICoJQ2hlY2sgbGVnYWxpdHkKQEAgLTI3ODEsMTYgKzI4MDcsOCBAQCBzdGF0 aWMgaW50IHBhY2tldF9iaW5kKHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVjdCBzb2NrYWRkciAq dWFkZHIsIGludCBhZGRyX2xlbgogCWlmIChzbGwtPnNsbF9mYW1pbHkgIT0gQUZfUEFDS0VUKQog CQlyZXR1cm4gLUVJTlZBTDsKIAotCWlmIChzbGwtPnNsbF9pZmluZGV4KSB7Ci0JCWVyciA9IC1F Tk9ERVY7Ci0JCWRldiA9IGRldl9nZXRfYnlfaW5kZXgoc29ja19uZXQoc2spLCBzbGwtPnNsbF9p ZmluZGV4KTsKLQkJaWYgKGRldiA9PSBOVUxMKQotCQkJZ290byBvdXQ7Ci0JfQotCWVyciA9IHBh Y2tldF9kb19iaW5kKHNrLCBkZXYsIHNsbC0+c2xsX3Byb3RvY29sID8gOiBwa3Rfc2soc2spLT5u dW0pOwotCi1vdXQ6Ci0JcmV0dXJuIGVycjsKKwlyZXR1cm4gcGFja2V0X2RvX2JpbmQoc2ssIE5V TEwsIHNsbC0+c2xsX2lmaW5kZXgsCisJCQkgICAgICBzbGwtPnNsbF9wcm90b2NvbCA/IDogcGt0 X3NrKHNrKS0+bnVtKTsKIH0KIAogc3RhdGljIHN0cnVjdCBwcm90byBwYWNrZXRfcHJvdG8gPSB7 Ci0tIAoyLjQuMQoKCkZyb20gZmJjOTIwOTUxOWQ1MGJmYTU5MTQwNWViZTYxMTYxYmRlODAyN2Jj MiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBn b29nbGUuY29tPgpEYXRlOiBNb24sIDkgTm92IDIwMTUgMTc6NTE6MjMgLTA4MDAKU3ViamVjdDog W1BBVENIIDIwLzIyXSBuZXQ6IGZpeCBhIHJhY2UgaW4gZHN0X3JlbGVhc2UoKQoKWyBVcHN0cmVh bSBjb21taXQgZDY5YmJmODhjOGQwYjM2N2NmM2UzYTA1MmY2ZGFhZGY2MzBlZTU2NiBdCgpPbmx5 IGNwdSBzZWVpbmcgZHN0IHJlZmNvdW50IGdvaW5nIHRvIDAgY2FuIHNhZmVseQpkZXJlZmVyZW5j ZSBkc3QtPmZsYWdzLgoKT3RoZXJ3aXNlIGFuIG90aGVyIGNwdSBtaWdodCBhbHJlYWR5IGhhdmUg ZnJlZWQgdGhlIGRzdC4KCkZpeGVzOiAyN2I3NWM5NWYxMGQgKCJuZXQ6IGF2b2lkIFJDVSBmb3Ig Tk9DQUNIRSBkc3QiKQpSZXBvcnRlZC1ieTogR3JlZyBUaGVsZW4gPGd0aGVsZW5AZ29vZ2xlLmNv bT4KU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpTaWdu ZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0 L2NvcmUvZHN0LmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVs ZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvY29yZS9kc3QuYyBiL25ldC9jb3JlL2RzdC5jCmlu ZGV4IGU5NTZjZTYuLmY4ZGI0MDMgMTAwNjQ0Ci0tLSBhL25ldC9jb3JlL2RzdC5jCisrKyBiL25l dC9jb3JlL2RzdC5jCkBAIC0yODUsNyArMjg1LDcgQEAgdm9pZCBkc3RfcmVsZWFzZShzdHJ1Y3Qg ZHN0X2VudHJ5ICpkc3QpCiAKIAkJbmV3cmVmY250ID0gYXRvbWljX2RlY19yZXR1cm4oJmRzdC0+ X19yZWZjbnQpOwogCQlXQVJOX09OKG5ld3JlZmNudCA8IDApOwotCQlpZiAodW5saWtlbHkoZHN0 LT5mbGFncyAmIERTVF9OT0NBQ0hFKSAmJiAhbmV3cmVmY250KQorCQlpZiAoIW5ld3JlZmNudCAm JiB1bmxpa2VseShkc3QtPmZsYWdzICYgRFNUX05PQ0FDSEUpKQogCQkJY2FsbF9yY3UoJmRzdC0+ cmN1X2hlYWQsIGRzdF9kZXN0cm95X3JjdSk7CiAJfQogfQotLSAKMi40LjEKCgpGcm9tIDhmZmQx ZTQzZjc0OWIwNWMzNjZjMmU1YmEwYmI5M2ZhMmU3ZTE3ZGQgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IEphc29uIFdhbmcgPGphc293YW5nQHJlZGhhdC5jb20+CkRhdGU6IFdlZCwgNSBB dWcgMjAxNSAxMDozNDowNCArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMjEvMjJdIHZpcnRpby1uZXQ6 IGRyb3AgTkVUSUZfRl9GUkFHTElTVAoKWyBVcHN0cmVhbSBjb21taXQgNDg5MDBjYjZhZjQyODJm YTBmYjZmZjRkNzJhODFhYTNkYWRiNWMzOSBdCgp2aXJ0aW8gZGVjbGFyZXMgc3VwcG9ydCBmb3Ig TkVUSUZfRl9GUkFHTElTVCwgYnV0IGFzc3VtZXMKdGhhdCB0aGVyZSBhcmUgYXQgbW9zdCBNQVhf U0tCX0ZSQUdTICsgMiBmcmFnbWVudHMgd2hpY2ggaXNuJ3QKYWx3YXlzIHRydWUgd2l0aCBhIGZy YWdsaXN0LgoKQSBsb25nZXIgZnJhZ2xpc3QgaW4gdGhlIHNrYiB3aWxsIG1ha2UgdGhlIGNhbGwg dG8gc2tiX3RvX3NndmVjIG92ZXJmbG93CnRoZSBzZyBhcnJheSwgbGVhZGluZyB0byBtZW1vcnkg Y29ycnVwdGlvbi4KCkRyb3AgTkVUSUZfRl9GUkFHTElTVCBzbyB3ZSBvbmx5IGdldCB3aGF0IHdl IGNhbiBoYW5kbGUuCgpDYzogTWljaGFlbCBTLiBUc2lya2luIDxtc3RAcmVkaGF0LmNvbT4KU2ln bmVkLW9mZi1ieTogSmFzb24gV2FuZyA8amFzb3dhbmdAcmVkaGF0LmNvbT4KQWNrZWQtYnk6IE1p Y2hhZWwgUy4gVHNpcmtpbiA8bXN0QHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMu IE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC92aXJ0aW9fbmV0 LmMgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdmlydGlvX25ldC5jIGIvZHJpdmVycy9uZXQv dmlydGlvX25ldC5jCmluZGV4IDdmYmNhMzcuLjIzN2Y4ZTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv bmV0L3ZpcnRpb19uZXQuYworKysgYi9kcml2ZXJzL25ldC92aXJ0aW9fbmV0LmMKQEAgLTE3NTYs OSArMTc1Niw5IEBAIHN0YXRpYyBpbnQgdmlydG5ldF9wcm9iZShzdHJ1Y3QgdmlydGlvX2Rldmlj ZSAqdmRldikKIAkvKiBEbyB3ZSBzdXBwb3J0ICJoYXJkd2FyZSIgY2hlY2tzdW1zPyAqLwogCWlm ICh2aXJ0aW9faGFzX2ZlYXR1cmUodmRldiwgVklSVElPX05FVF9GX0NTVU0pKSB7CiAJCS8qIFRo aXMgb3BlbnMgdXAgdGhlIHdvcmxkIG9mIGV4dHJhIGZlYXR1cmVzLiAqLwotCQlkZXYtPmh3X2Zl YXR1cmVzIHw9IE5FVElGX0ZfSFdfQ1NVTXxORVRJRl9GX1NHfE5FVElGX0ZfRlJBR0xJU1Q7CisJ CWRldi0+aHdfZmVhdHVyZXMgfD0gTkVUSUZfRl9IV19DU1VNIHwgTkVUSUZfRl9TRzsKIAkJaWYg KGNzdW0pCi0JCQlkZXYtPmZlYXR1cmVzIHw9IE5FVElGX0ZfSFdfQ1NVTXxORVRJRl9GX1NHfE5F VElGX0ZfRlJBR0xJU1Q7CisJCQlkZXYtPmZlYXR1cmVzIHw9IE5FVElGX0ZfSFdfQ1NVTSB8IE5F VElGX0ZfU0c7CiAKIAkJaWYgKHZpcnRpb19oYXNfZmVhdHVyZSh2ZGV2LCBWSVJUSU9fTkVUX0Zf R1NPKSkgewogCQkJZGV2LT5od19mZWF0dXJlcyB8PSBORVRJRl9GX1RTTyB8IE5FVElGX0ZfVUZP Ci0tIAoyLjQuMQoKCkZyb20gNDY2MjQyMzE3OWUyNzE2ZjQzY2RlZWRiZTJkMzlmODBkYzcwYmJi OSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogU2FzaGEgTGV2aW4gPHNhc2hhLmxldmlu QG9yYWNsZS5jb20+CkRhdGU6IFR1ZSwgOCBTZXAgMjAxNSAxMDo1Mzo0MCAtMDQwMApTdWJqZWN0 OiBbUEFUQ0ggMjIvMjJdIFJEUzogdmVyaWZ5IHRoZSB1bmRlcmx5aW5nIHRyYW5zcG9ydCBleGlz dHMgYmVmb3JlCiBjcmVhdGluZyBhIGNvbm5lY3Rpb24KClsgVXBzdHJlYW0gY29tbWl0IDc0ZTk4 ZWIwODU4ODliMGQyZDQ5MDhmNTlmNmUwMDAyNjA2MzAxNGYgXQoKVGhlcmUgd2FzIG5vIHZlcmlm aWNhdGlvbiB0aGF0IGFuIHVuZGVybHlpbmcgdHJhbnNwb3J0IGV4aXN0cyB3aGVuIGNyZWF0aW5n CmEgY29ubmVjdGlvbiwgdGhpcyB3b3VsZCBjYXVzZSBkZXJlZmVyZW5jaW5nIGEgTlVMTCBwdHIu CgpJdCBtaWdodCBoYXBwZW4gb24gc29ja2V0cyB0aGF0IHdlcmVuJ3QgcHJvcGVybHkgYm91bmQg YmVmb3JlIGF0dGVtcHRpbmcgdG8Kc2VuZCBhIG1lc3NhZ2UsIHdoaWNoIHdpbGwgY2F1c2UgYSBO VUxMIHB0ciBkZXJlZjoKClsxMzU1NDYuMDQ3NzE5XSBrYXNhbjogR1BGIGNvdWxkIGJlIGNhdXNl ZCBieSBOVUxMLXB0ciBkZXJlZiBvciB1c2VyIG1lbW9yeSBhY2Nlc3NnZW5lcmFsIHByb3RlY3Rp b24gZmF1bHQ6IDAwMDAgWyMxXSBQUkVFTVBUIFNNUCBERUJVR19QQUdFQUxMT0MgS0FTQU4KWzEz NTU0Ni4wNTEyNzBdIE1vZHVsZXMgbGlua2VkIGluOgpbMTM1NTQ2LjA1MTc4MV0gQ1BVOiA0IFBJ RDogMTU2NTAgQ29tbTogdHJpbml0eS1jNCBOb3QgdGFpbnRlZCA0LjIuMC1uZXh0LTIwMTUwOTAy LXNhc2hhLTAwMDQxLWdiYWExMjIyLWRpcnR5ICMyNTI3ClsxMzU1NDYuMDUzMjE3XSB0YXNrOiBm ZmZmODgwMDgzNWJjMDAwIHRpOiBmZmZmODgwMGJjNzA4MDAwIHRhc2sudGk6IGZmZmY4ODAwYmM3 MDgwMDAKWzEzNTU0Ni4wNTQyOTFdIFJJUDogX19yZHNfY29ubl9jcmVhdGUgKG5ldC9yZHMvY29u bmVjdGlvbi5jOjE5NCkKWzEzNTU0Ni4wNTU2NjZdIFJTUDogMDAxODpmZmZmODgwMGJjNzBmYWIw ICBFRkxBR1M6IDAwMDEwMjAyClsxMzU1NDYuMDU2NDU3XSBSQVg6IGRmZmZmYzAwMDAwMDAwMDAg UkJYOiAwMDAwMDAwMDAwMDAwZjJjIFJDWDogZmZmZjg4MDA4MzViYzAwMApbMTM1NTQ2LjA1NzQ5 NF0gUkRYOiAwMDAwMDAwMDAwMDAwMDA3IFJTSTogZmZmZjg4MDA4MzViY2NkOCBSREk6IDAwMDAw MDAwMDAwMDAwMzgKWzEzNTU0Ni4wNTg1MzBdIFJCUDogZmZmZjg4MDBiYzcwZmIxOCBSMDg6IDAw MDAwMDAwMDAwMDAwMDEgUjA5OiAwMDAwMDAwMDAwMDAwMDAwClsxMzU1NDYuMDU5NTU2XSBSMTA6 IGZmZmZlZDAxNGQ3YTNhMjMgUjExOiBmZmZmZWQwMTRkN2EzYTIxIFIxMjogMDAwMDAwMDAwMDAw MDAwMApbMTM1NTQ2LjA2MDYxNF0gUjEzOiAwMDAwMDAwMDAwMDAwMDAxIFIxNDogZmZmZjg4MDFl YzNkMDAwMCBSMTU6IDAwMDAwMDAwMDAwMDAwMDAKWzEzNTU0Ni4wNjE2NjhdIEZTOiAgMDAwMDdm YWFkNGZmYjcwMCgwMDAwKSBHUzpmZmZmODgwMjUyMDAwMDAwKDAwMDApIGtubEdTOjAwMDAwMDAw MDAwMDAwMDAKWzEzNTU0Ni4wNjI4MzZdIENTOiAgMDAxMCBEUzogMDAwMCBFUzogMDAwMCBDUjA6 IDAwMDAwMDAwODAwNTAwM2IKWzEzNTU0Ni4wNjM2ODJdIENSMjogMDAwMDAwMDAwMDAwODQ2YSBD UjM6IDAwMDAwMDAwOWQxMzcwMDAgQ1I0OiAwMDAwMDAwMDAwMDAwNmEwClsxMzU1NDYuMDY0NzIz XSBTdGFjazoKWzEzNTU0Ni4wNjUwNDhdICBmZmZmZmZmZmFmZTIwNTVjIGZmZmZmZmZmYWZlMjNm YzEgZmZmZmVkMDA0OTMwOTdiZiBmZmZmODgwMWVjM2QwMDA4ClsxMzU1NDYuMDY2MjQ3XSAgMDAw MDAwMDAwMDAwMDAwMCAwMDAwMDAwMDAwMDAwMGQwIDAwMDAwMDAwMDAwMDAwMDAgYWMxOTRhMjRj MDU4NjM0MgpbMTM1NTQ2LjA2NzQzOF0gIDFmZmZmMTAwMTc4ZTFmNzggZmZmZjg4MDMyMDU4MWIw MCBmZmZmODgwMGJjNzBmZGQwIGZmZmY4ODAzMjA1ODFiMDAKWzEzNTU0Ni4wNjg2MjldIENhbGwg VHJhY2U6ClsxMzU1NDYuMDY5MDI4XSA/IF9fcmRzX2Nvbm5fY3JlYXRlIChpbmNsdWRlL2xpbnV4 L3JjdXBkYXRlLmg6ODU2IG5ldC9yZHMvY29ubmVjdGlvbi5jOjEzNCkKWzEzNTU0Ni4wNjk5ODld ID8gcmRzX21lc3NhZ2VfY29weV9mcm9tX3VzZXIgKG5ldC9yZHMvbWVzc2FnZS5jOjI5OCkKWzEz NTU0Ni4wNzEwMjFdIHJkc19jb25uX2NyZWF0ZV9vdXRnb2luZyAobmV0L3Jkcy9jb25uZWN0aW9u LmM6Mjc4KQpbMTM1NTQ2LjA3MTk4MV0gcmRzX3NlbmRtc2cgKG5ldC9yZHMvc2VuZC5jOjEwNTgp ClsxMzU1NDYuMDcyODU4XSA/IHBlcmZfdHJhY2VfbG9jayAoaW5jbHVkZS90cmFjZS9ldmVudHMv bG9jay5oOjM4KQpbMTM1NTQ2LjA3Mzc0NF0gPyBsb2NrZGVwX2luaXQgKGtlcm5lbC9sb2NraW5n L2xvY2tkZXAuYzozMjk4KQpbMTM1NTQ2LjA3NDU3N10gPyByZHNfc2VuZF9kcm9wX3RvIChuZXQv cmRzL3NlbmQuYzo5NzYpClsxMzU1NDYuMDc1NTA4XSA/IF9fbWlnaHRfZmF1bHQgKC4vYXJjaC94 ODYvaW5jbHVkZS9hc20vY3VycmVudC5oOjE0IG1tL21lbW9yeS5jOjM3OTUpClsxMzU1NDYuMDc2 MzQ5XSA/IF9fbWlnaHRfZmF1bHQgKG1tL21lbW9yeS5jOjM3OTUpClsxMzU1NDYuMDc3MTc5XSA/ IHJkc19zZW5kX2Ryb3BfdG8gKG5ldC9yZHMvc2VuZC5jOjk3NikKWzEzNTU0Ni4wNzgxMTRdIHNv Y2tfc2VuZG1zZyAobmV0L3NvY2tldC5jOjYxMSBuZXQvc29ja2V0LmM6NjIwKQpbMTM1NTQ2LjA3 ODg1Nl0gU1lTQ19zZW5kdG8gKG5ldC9zb2NrZXQuYzoxNjU3KQpbMTM1NTQ2LjA3OTU5Nl0gPyBT WVNDX2Nvbm5lY3QgKG5ldC9zb2NrZXQuYzoxNjI4KQpbMTM1NTQ2LjA4MDUxMF0gPyB0cmFjZV9k dW1wX3N0YWNrIChrZXJuZWwvdHJhY2UvdHJhY2UuYzoxOTI2KQpbMTM1NTQ2LjA4MTM5N10gPyBy aW5nX2J1ZmZlcl91bmxvY2tfY29tbWl0IChrZXJuZWwvdHJhY2UvcmluZ19idWZmZXIuYzoyNDc5 IGtlcm5lbC90cmFjZS9yaW5nX2J1ZmZlci5jOjI1NTgga2VybmVsL3RyYWNlL3JpbmdfYnVmZmVy LmM6MjY3NCkKWzEzNTU0Ni4wODIzOTBdID8gdHJhY2VfYnVmZmVyX3VubG9ja19jb21taXQgKGtl cm5lbC90cmFjZS90cmFjZS5jOjE3NDkpClsxMzU1NDYuMDgzNDEwXSA/IHRyYWNlX2V2ZW50X3Jh d19ldmVudF9zeXNfZW50ZXIgKGluY2x1ZGUvdHJhY2UvZXZlbnRzL3N5c2NhbGxzLmg6MTYpClsx MzU1NDYuMDg0NDgxXSA/IGRvX2F1ZGl0X3N5c2NhbGxfZW50cnkgKGluY2x1ZGUvdHJhY2UvZXZl bnRzL3N5c2NhbGxzLmg6MTYpClsxMzU1NDYuMDg1NDM4XSA/IHRyYWNlX2J1ZmZlcl91bmxvY2tf Y29tbWl0IChrZXJuZWwvdHJhY2UvdHJhY2UuYzoxNzQ5KQpbMTM1NTQ2LjA4NTUxNV0gcmRzX2li X2xhZGRyX2NoZWNrKCk6IGFkZHIgMzYuNzQuMjUuMTcyIHJldCAtOTkgbm9kZSB0eXBlIC0xCgpB Y2tlZC1ieTogU2FudG9zaCBTaGlsaW1rYXIgPHNhbnRvc2guc2hpbGlta2FyQG9yYWNsZS5jb20+ ClNpZ25lZC1vZmYtYnk6IFNhc2hhIExldmluIDxzYXNoYS5sZXZpbkBvcmFjbGUuY29tPgpTaWdu ZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0 L3Jkcy9jb25uZWN0aW9uLmMgfCA2ICsrKysrKwogMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9u cygrKQoKZGlmZiAtLWdpdCBhL25ldC9yZHMvY29ubmVjdGlvbi5jIGIvbmV0L3Jkcy9jb25uZWN0 aW9uLmMKaW5kZXggZGE2ZGE1Ny4uOWQ2NjcwNSAxMDA2NDQKLS0tIGEvbmV0L3Jkcy9jb25uZWN0 aW9uLmMKKysrIGIvbmV0L3Jkcy9jb25uZWN0aW9uLmMKQEAgLTE4Nyw2ICsxODcsMTIgQEAgbmV3 X2Nvbm46CiAJCX0KIAl9CiAKKwlpZiAodHJhbnMgPT0gTlVMTCkgeworCQlrbWVtX2NhY2hlX2Zy ZWUocmRzX2Nvbm5fc2xhYiwgY29ubik7CisJCWNvbm4gPSBFUlJfUFRSKC1FTk9ERVYpOworCQln b3RvIG91dDsKKwl9CisKIAljb25uLT5jX3RyYW5zID0gdHJhbnM7CiAKIAlyZXQgPSB0cmFucy0+ Y29ubl9hbGxvYyhjb25uLCBnZnApOwotLSAKMi40LjEKCg== ----Next_Part(Fri_Nov_13_16_38_08_2015_159)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_318.mbox" RnJvbSA1OWY0OGI5N2EzYzBkNDFmNjAzMTY3YTE0OWQ5NmUyZDM5ZDhiOGNjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW4gQ2FycGVudGVyIDxkYW4uY2FycGVudGVyQG9yYWNsZS5j b20+CkRhdGU6IE1vbiwgMTkgT2N0IDIwMTUgMTM6MTY6NDkgKzAzMDAKU3ViamVjdDogW1BBVENI IDAxLzE5XSBpcmRhOiBwcmVjZWRlbmNlIGJ1ZyBpbiBpcmxtcF9zZXFfaGJfaWR4KCkKTUlNRS1W ZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRl bnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKClsgVXBzdHJlYW0gY29tbWl0IDUwMDEwYzIwNTk3 ZDE0NjY3ZWZmMGZkYjYyODMwOTk4NmYxOTUyMzAgXQoKVGhpcyBpcyBkZWNyZW1lbnRpbmcgdGhl IHBvaW50ZXIsIGluc3RlYWQgb2YgdGhlIHZhbHVlIHN0b3JlZCBpbiB0aGUKcG9pbnRlci4gIEtB U2FuIGRldGVjdHMgaXQgYXMgYW4gb3V0IG9mIGJvdW5kcyByZWZlcmVuY2UuCgpSZXBvcnRlZC1i eTogIkJlcnJ5wqBDaGVuZyDnqIvlkJso5oiQ5re8KSIgPGNoZW5nbWlhby5jakBhbGliYWJhLWlu Yy5jb20+ClNpZ25lZC1vZmYtYnk6IERhbiBDYXJwZW50ZXIgPGRhbi5jYXJwZW50ZXJAb3JhY2xl LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0 PgotLS0KIG5ldC9pcmRhL2lybG1wLmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRp b24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvaXJkYS9pcmxtcC5jIGIvbmV0 L2lyZGEvaXJsbXAuYwppbmRleCBhNWYyOGQ0Li5jM2E5MzlkNyAxMDA2NDQKLS0tIGEvbmV0L2ly ZGEvaXJsbXAuYworKysgYi9uZXQvaXJkYS9pcmxtcC5jCkBAIC0xODc3LDcgKzE4NzcsNyBAQCBz dGF0aWMgdm9pZCAqaXJsbXBfc2VxX2hiX2lkeChzdHJ1Y3QgaXJsbXBfaXRlcl9zdGF0ZSAqaXRl ciwgbG9mZl90ICpvZmYpCiAJZm9yIChlbGVtZW50ID0gaGFzaGJpbl9nZXRfZmlyc3QoaXRlci0+ aGFzaGJpbik7CiAJICAgICBlbGVtZW50ICE9IE5VTEw7CiAJICAgICBlbGVtZW50ID0gaGFzaGJp bl9nZXRfbmV4dChpdGVyLT5oYXNoYmluKSkgewotCQlpZiAoIW9mZiB8fCAqb2ZmLS0gPT0gMCkg eworCQlpZiAoIW9mZiB8fCAoKm9mZiktLSA9PSAwKSB7CiAJCQkvKiBOQjogaGFzaGJpbiBsZWZ0 IGxvY2tlZCAqLwogCQkJcmV0dXJuIGVsZW1lbnQ7CiAJCX0KLS0gCjIuNC4xCgoKRnJvbSBhNWQ4 OThhNDE2MDcxOTRjOWQ0NTllMGIwOTcyODMyMjkyYTkwNmY2IE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiA9P1VURi04P3E/Qmo9QzM9Qjhybj0yME1vcms/PSA8Ympvcm5AbW9yay5ubz4K RGF0ZTogVGh1LCAyMiBPY3QgMjAxNSAxNDoxNTo1OCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDIv MTldIHFtaV93d2FuOiBhZGQgU2llcnJhIFdpcmVsZXNzIE1DNzR4eC9FTTc0eHgKTUlNRS1WZXJz aW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQt VHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKClsgVXBzdHJlYW0gY29tbWl0IDBkYjY1ZmNmY2RlZDc2 ZmU0Zjc0ZTNjYTlmNGUyYmFmNjdiNjgzZWYgXQoKTmV3IGRldmljZSBJRHMgc2hhbWVsZXNzbHkg bGlmdGVkIGZyb20gdGhlIHZlbmRvciBkcml2ZXIuCgpTaWduZWQtb2ZmLWJ5OiBCasO4cm4gTW9y ayA8Ympvcm5AbW9yay5ubz4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBk YXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L3VzYi9xbWlfd3dhbi5jIHwgNCArKysrCiAx IGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQv dXNiL3FtaV93d2FuLmMgYi9kcml2ZXJzL25ldC91c2IvcW1pX3d3YW4uYwppbmRleCBiOGE4MmI4 Li5mNWEwZTEwIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC91c2IvcW1pX3d3YW4uYworKysgYi9k cml2ZXJzL25ldC91c2IvcW1pX3d3YW4uYwpAQCAtNzYwLDYgKzc2MCwxMCBAQCBzdGF0aWMgY29u c3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgcHJvZHVjdHNbXSA9IHsKIAl7UU1JX0ZJWEVEX0lOVEYo MHgxMTk5LCAweDkwNTYsIDgpfSwJLyogU2llcnJhIFdpcmVsZXNzIE1vZGVtICovCiAJe1FNSV9G SVhFRF9JTlRGKDB4MTE5OSwgMHg5MDU3LCA4KX0sCiAJe1FNSV9GSVhFRF9JTlRGKDB4MTE5OSwg MHg5MDYxLCA4KX0sCS8qIFNpZXJyYSBXaXJlbGVzcyBNb2RlbSAqLworCXtRTUlfRklYRURfSU5U RigweDExOTksIDB4OTA3MCwgOCl9LAkvKiBTaWVycmEgV2lyZWxlc3MgTUM3NHh4L0VNNzR4eCAq LworCXtRTUlfRklYRURfSU5URigweDExOTksIDB4OTA3MCwgMTApfSwJLyogU2llcnJhIFdpcmVs ZXNzIE1DNzR4eC9FTTc0eHggKi8KKwl7UU1JX0ZJWEVEX0lOVEYoMHgxMTk5LCAweDkwNzEsIDgp fSwJLyogU2llcnJhIFdpcmVsZXNzIE1DNzR4eC9FTTc0eHggKi8KKwl7UU1JX0ZJWEVEX0lOVEYo MHgxMTk5LCAweDkwNzEsIDEwKX0sCS8qIFNpZXJyYSBXaXJlbGVzcyBNQzc0eHgvRU03NHh4ICov CiAJe1FNSV9GSVhFRF9JTlRGKDB4MWJiYiwgMHgwMTFlLCA0KX0sCS8qIFRlbGVrb20gU3BlZWRz dGljayBMVEUgSUkgKEFsY2F0ZWwgT25lIFRvdWNoIEwxMDBWIExURSkgKi8KIAl7UU1JX0ZJWEVE X0lOVEYoMHgxYmJiLCAweDAyMDMsIDIpfSwJLyogQWxjYXRlbCBMODAwTUEgKi8KIAl7UU1JX0ZJ WEVEX0lOVEYoMHgyMzU3LCAweDAyMDEsIDQpfSwJLyogVFAtTElOSyBIU1VQQSBNb2RlbSBNQTE4 MCAqLwotLSAKMi40LjEKCgpGcm9tIGNiMzk5ZjlmNzk2MTY3YmRkYjEwOGUxMzI5ZmMyMmQwNGI1 NzVlY2UgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEphc29uIFdhbmcgPGphc293YW5n QHJlZGhhdC5jb20+CkRhdGU6IEZyaSwgMjMgT2N0IDIwMTUgMDA6NTc6MDUgLTA0MDAKU3ViamVj dDogW1BBVENIIDAzLzE5XSBtYWN2dGFwOiB1bmJyZWFrIHJlY2VpdmluZyBvZiBncm8gc2tiIHdp dGggZnJhZyBsaXN0CgpbIFVwc3RyZWFtIGNvbW1pdCBmMjNkNTM4YmMyNGE4M2MxNjEyN2MyZWI4 MmM5Y2YxYWRjMmI1MTQ5IF0KCldlIGRvbid0IGhhdmUgZnJhZ2xpc3Qgc3VwcG9ydCBpbiBUQVBf RkVBVFVSRVMuIFRoaXMgd2lsbCBsZWFkCnNvZnR3YXJlIHNlZ21lbnRhdGlvbiBvZiBncm8gc2ti IHdpdGggZnJhZyBsaXN0LiBGaXhlcyBieSBoYXZpbmcKZnJhZyBsaXN0IHN1cHBvcnQgaW4gVEFQ X0ZFQVRVUkVTLgoKV2l0aCB0aGlzIHBhdGNoIHNpbmdsZSBzZXNzaW9uIG9mIG5ldHBlcmYgcmVj ZWl2aW5nIHdlcmUgcmVzdG9yZWQgZnJvbQphYm91dCA1R2IvcyB0byBhYm91dCAxMkdiL3Mgb24g bWx4NC4KCkZpeGVzIGE1NjdkZDYyNTIgKCJtYWN2dGFwOiBzaW1wbGlmeSB1c2FnZSBvZiB0YXBf ZmVhdHVyZXMiKQpDYzogVmxhZCBZYXNldmljaCA8dnlhc2V2aWNAcmVkaGF0LmNvbT4KQ2M6IE1p Y2hhZWwgUy4gVHNpcmtpbiA8bXN0QHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IEphc29uIFdh bmcgPGphc293YW5nQHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8 ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9tYWN2dGFwLmMgfCAyICstCiAx IGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQg YS9kcml2ZXJzL25ldC9tYWN2dGFwLmMgYi9kcml2ZXJzL25ldC9tYWN2dGFwLmMKaW5kZXggOTFk MGM2YS4uOTExMjBmMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvbWFjdnRhcC5jCisrKyBiL2Ry aXZlcnMvbmV0L21hY3Z0YXAuYwpAQCAtNjgsNyArNjgsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0 IHByb3RvX29wcyBtYWN2dGFwX3NvY2tldF9vcHM7CiAjZGVmaW5lIFRVTl9PRkZMT0FEUyAoTkVU SUZfRl9IV19DU1VNIHwgTkVUSUZfRl9UU09fRUNOIHwgTkVUSUZfRl9UU08gfCBcCiAJCSAgICAg IE5FVElGX0ZfVFNPNikKICNkZWZpbmUgUlhfT0ZGTE9BRFMgKE5FVElGX0ZfR1JPIHwgTkVUSUZf Rl9MUk8pCi0jZGVmaW5lIFRBUF9GRUFUVVJFUyAoTkVUSUZfRl9HU08gfCBORVRJRl9GX1NHKQor I2RlZmluZSBUQVBfRkVBVFVSRVMgKE5FVElGX0ZfR1NPIHwgTkVUSUZfRl9TRyB8IE5FVElGX0Zf RlJBR0xJU1QpCiAKIHN0YXRpYyBzdHJ1Y3QgbWFjdmxhbl9kZXYgKm1hY3Z0YXBfZ2V0X3ZsYW5f cmN1KGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiB7Ci0tIAoyLjQuMQoKCkZyb20gYTVj MmY5M2JhN2EwYmQyNDUwMmY2YjY3NjYyNTdhNGU1NDI0ZThkNiBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogR3VpbGxhdW1lIE5hdWx0IDxnLm5hdWx0QGFscGhhbGluay5mcj4KRGF0ZTog VGh1LCAyMiBPY3QgMjAxNSAxNjo1NzoxMCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDQvMTldIHBw cDogZml4IHBwcG9lX2RldiBkZWxldGlvbiBjb25kaXRpb24gaW4KIHBwcG9lX3JlbGVhc2UoKQoK WyBVcHN0cmVhbSBjb21taXQgMWFjZWE0ZjZjZTFiMWMwOTQxNDM4YWNhNzVkZDJlNWM2YjA5ZGI2 MCBdCgpXZSBjYW4ndCByZWx5IG9uIFBQUE9YX1pPTUJJRSB0byBkZWNpZGUgd2hldGhlciB0byBj bGVhciBwby0+cHBwb2VfZGV2LgpQUFBPWF9aT01CSUUgY2FuIGJlIHNldCBieSBwcHBvZV9kaXNj X3JjdigpIGV2ZW4gd2hlbiBwby0+cHBwb2VfZGV2IGlzCk5VTEwuIFNvIHdlIGhhdmUgbm8gZ3Vh cmFudGVlIHRoYXQgKHNrLT5za19zdGF0ZSAmIFBQUE9YX1pPTUJJRSkgaW1wbGllcwoocG8tPnBw cG9lX2RldiAhPSBOVUxMKS4KU2luY2Ugd2UncmUgcmVsZWFzaW5nIGEgUFBQb0Ugc29ja2V0LCB3 ZSB3YW50IHRvIHJlbGVhc2UgdGhlIHBwcG9lX2RldgppZiBpdCBleGlzdHMgYW5kIHJlc2V0IHNr X3N0YXRlIHRvIFBQUE9YX0RFQUQsIG5vIG1hdHRlciB0aGUgcHJldmlvdXMKdmFsdWUgb2Ygc2tf c3RhdGUuIFNvIHdlIGNhbiBqdXN0IGNoZWNrIGZvciBwby0+cHBwb2VfZGV2IGFuZCBhdm9pZCBh bnkKYXNzdW1wdGlvbiBvbiBzay0+c2tfc3RhdGUuCgpGaXhlczogMmIwMThkNTdmZjE4ICgicHBw b2U6IGRyb3AgUFBQT1hfWk9NQklFcyBpbiBwcHBvZV9yZWxlYXNlIikKU2lnbmVkLW9mZi1ieTog R3VpbGxhdW1lIE5hdWx0IDxnLm5hdWx0QGFscGhhbGluay5mcj4KU2lnbmVkLW9mZi1ieTogRGF2 aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L3BwcC9w cHBvZS5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9u KC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvcHBwL3BwcG9lLmMgYi9kcml2ZXJzL25ldC9w cHAvcHBwb2UuYwppbmRleCA2YzljMTZkLi5jNDQwNmJkIDEwMDY0NAotLS0gYS9kcml2ZXJzL25l dC9wcHAvcHBwb2UuYworKysgYi9kcml2ZXJzL25ldC9wcHAvcHBwb2UuYwpAQCAtNTcwLDcgKzU3 MCw3IEBAIHN0YXRpYyBpbnQgcHBwb2VfcmVsZWFzZShzdHJ1Y3Qgc29ja2V0ICpzb2NrKQogCiAJ cG8gPSBwcHBveF9zayhzayk7CiAKLQlpZiAoc2stPnNrX3N0YXRlICYgKFBQUE9YX0NPTk5FQ1RF RCB8IFBQUE9YX0JPVU5EIHwgUFBQT1hfWk9NQklFKSkgeworCWlmIChwby0+cHBwb2VfZGV2KSB7 CiAJCWRldl9wdXQocG8tPnBwcG9lX2Rldik7CiAJCXBvLT5wcHBvZV9kZXYgPSBOVUxMOwogCX0K LS0gCjIuNC4xCgoKRnJvbSA5MTIzODY0Y2M4NTdhYjJkMDc4MGI3YmYyNDg5MmQzNmJhMDI0ZmM1 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdv b2dsZS5jb20+CkRhdGU6IFNhdCwgMjQgT2N0IDIwMTUgMDU6NDc6NDQgLTA3MDAKU3ViamVjdDog W1BBVENIIDA1LzE5XSBpcHY2OiBncmU6IHN1cHBvcnQgU0lUIGVuY2Fwc3VsYXRpb24KClsgVXBz dHJlYW0gY29tbWl0IDdlM2I2ZTc0MjNkNWY5OTQyNTdjMWRlODhlMDZiNTA5NjczZmRiY2YgXQoK Z3JlX2dzb19zZWdtZW50KCkgY2hva2VzIGlmIFNJVCBmcmFtZXMgd2VyZSBhZ2dyZWdhdGVkIGJ5 IEdSTyBlbmdpbmUuCgpGaXhlczogNjFjMWRiN2ZhZTIxZSAoImlwdjY6IHNpdDogYWRkIEdTTy9U U08gc3VwcG9ydCIpClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xl LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0 PgotLS0KIG5ldC9pcHY0L2dyZV9vZmZsb2FkLmMgfCAzICsrLQogMSBmaWxlIGNoYW5nZWQsIDIg aW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY0L2dyZV9v ZmZsb2FkLmMgYi9uZXQvaXB2NC9ncmVfb2ZmbG9hZC5jCmluZGV4IDUxOTczZGQuLmFiYzUwYjQg MTAwNjQ0Ci0tLSBhL25ldC9pcHY0L2dyZV9vZmZsb2FkLmMKKysrIGIvbmV0L2lwdjQvZ3JlX29m ZmxvYWQuYwpAQCAtMzYsNyArMzYsOCBAQCBzdGF0aWMgc3RydWN0IHNrX2J1ZmYgKmdyZV9nc29f c2VnbWVudChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCQkJCSAgU0tCX0dTT19UQ1BfRUNOIHwKIAkJ CQkgIFNLQl9HU09fR1JFIHwKIAkJCQkgIFNLQl9HU09fR1JFX0NTVU0gfAotCQkJCSAgU0tCX0dT T19JUElQKSkpCisJCQkJICBTS0JfR1NPX0lQSVAgfAorCQkJCSAgU0tCX0dTT19TSVQpKSkKIAkJ Z290byBvdXQ7CiAKIAlpZiAoIXNrYi0+ZW5jYXBzdWxhdGlvbikKLS0gCjIuNC4xCgoKRnJvbSAx YTExOTY0YzdlNDNiMDdlYWJlOThkNzQ4NGMwYWQ3NTBjN2MwYjc3IE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBTb3dtaW5pIFZhcmFkaGFuIDxzb3dtaW5pLnZhcmFkaGFuQG9yYWNsZS5j b20+CkRhdGU6IE1vbiwgMjYgT2N0IDIwMTUgMTI6NDY6MzcgLTA0MDAKU3ViamVjdDogW1BBVENI IDA2LzE5XSBSRFMtVENQOiBSZWNvdmVyIGNvcnJlY3RseSBmcm9tIHBza2JfcHVsbCgpL3Brc2Jf dHJpbSgpCiBmYWlsdXJlIGluIHJkc190Y3BfZGF0YV9yZWN2CgpbIFVwc3RyZWFtIGNvbW1pdCA4 Y2U2NzVmZjM5Yjk5NThkMWMxMGY4NmNmNThlMzU3ZWZhYWZjODU2IF0KCkVpdGhlciBvZiBwc2ti X3B1bGwoKSBvciBwc2tiX3RyaW0oKSBtYXkgZmFpbCB1bmRlciBsb3cgbWVtb3J5IGNvbmRpdGlv bnMuCklmIHJkc190Y3BfZGF0YV9yZWN2KCkgaWdub3JlcyBzdWNoIGZhaWx1cmVzLCB0aGUgYXBw bGljYXRpb24gd2lsbApyZWNlaXZlIGNvcnJ1cHRlZCBkYXRhIGJlY2F1c2UgdGhlIHNrYiBoYXMg bm90IGJlZW4gY29ycmVjdGx5CmNhcnZlZCB0byB0aGUgUkRTIGRhdGFncmFtIHNpemUuCgpBdm9p ZCB0aGlzIGJ5IGhhbmRsaW5nIHBza2JfcHVsbC9wc2tiX3RyaW0gZmFpbHVyZSBpbiB0aGUgc2Ft ZQptYW5uZXIgYXMgdGhlIHNrYl9jbG9uZSBmYWlsdXJlOiBiYWlsIG91dCBvZiByZHNfdGNwX2Rh dGFfcmVjdigpLCBhbmQKcmV0cnkgdmlhIHRoZSBkZWZlcnJlZCBjYWxsIHRvIHJkc19zZW5kX3dv cmtlcigpIHRoYXQgZ2V0cyBzZXQgdXAgb24KRU5PTUVNIGZyb20gcmRzX3RjcF9yZWFkX3NvY2so KQoKU2lnbmVkLW9mZi1ieTogU293bWluaSBWYXJhZGhhbiA8c293bWluaS52YXJhZGhhbkBvcmFj bGUuY29tPgpBY2tlZC1ieTogU2FudG9zaCBTaGlsaW1rYXIgPHNhbnRvc2guc2hpbGlta2FyQG9y YWNsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0 Lm5ldD4KLS0tCiBuZXQvcmRzL3RjcF9yZWN2LmMgfCAxMSArKysrKysrKystLQogMSBmaWxlIGNo YW5nZWQsIDkgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQv cmRzL3RjcF9yZWN2LmMgYi9uZXQvcmRzL3RjcF9yZWN2LmMKaW5kZXggOWFlNmUwYS4uMmRkODhk YiAxMDA2NDQKLS0tIGEvbmV0L3Jkcy90Y3BfcmVjdi5jCisrKyBiL25ldC9yZHMvdGNwX3JlY3Yu YwpAQCAtMjM0LDggKzIzNCwxNSBAQCBzdGF0aWMgaW50IHJkc190Y3BfZGF0YV9yZWN2KHJlYWRf ZGVzY3JpcHRvcl90ICpkZXNjLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCQkJfQogCiAJCQl0b19j b3B5ID0gbWluKHRjLT50X3RpbmNfZGF0YV9yZW0sIGxlZnQpOwotCQkJcHNrYl9wdWxsKGNsb25l LCBvZmZzZXQpOwotCQkJcHNrYl90cmltKGNsb25lLCB0b19jb3B5KTsKKwkJCWlmICghcHNrYl9w dWxsKGNsb25lLCBvZmZzZXQpIHx8CisJCQkgICAgcHNrYl90cmltKGNsb25lLCB0b19jb3B5KSkg eworCQkJCXByX3dhcm4oInJkc190Y3BfZGF0YV9yZWN2OiBwdWxsL3RyaW0gZmFpbGVkICIKKwkJ CQkJImxlZnQgJXp1IGRhdGFfcmVtICV6dSBza2JfbGVuICVkXG4iLAorCQkJCQlsZWZ0LCB0Yy0+ dF90aW5jX2RhdGFfcmVtLCBza2ItPmxlbik7CisJCQkJa2ZyZWVfc2tiKGNsb25lKTsKKwkJCQlk ZXNjLT5lcnJvciA9IC1FTk9NRU07CisJCQkJZ290byBvdXQ7CisJCQl9CiAJCQlza2JfcXVldWVf dGFpbCgmdGluYy0+dGlfc2tiX2xpc3QsIGNsb25lKTsKIAogCQkJcmRzZGVidWcoInNrYiAlcCBk YXRhICVwIGxlbiAlZCBvZmYgJXUgdG9fY29weSAlenUgLT4gIgotLSAKMi40LjEKCgpGcm9tIDEy ZWRkZmJiYjRlMTI2OWNkM2I4YTJlNmVmOWJmMWViNGNlOTc3Y2UgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IENhcm9sIEwgU290byA8Y2xzb3RvQGxpbnV4LnZuZXQuaWJtLmNvbT4KRGF0 ZTogVHVlLCAyNyBPY3QgMjAxNSAxNzozNjoyMCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDcvMTld IG5ldC9tbHg0OiBDb3B5L3NldCBvbmx5IHNpemVvZiBzdHJ1Y3QgbWx4NF9lcWUgYnl0ZXMKClsg VXBzdHJlYW0gY29tbWl0IGMwMmIwNTAxMWZhZGY4ZTQwOWU0MTkxMDIxN2NhNjg5ZjJmYzlkOTEg XQoKV2hlbiBkb2luZyBtZW1jcHkvbWVtc2V0IG9mIEVRRXMsIHdlIHNob3VsZCB1c2Ugc2l6ZW9m IHN0cnVjdAptbHg0X2VxZSBhcyB0aGUgYmFzZSBzaXplIGFuZCBub3QgY2Fwcy5lcWVfc2l6ZSB3 aGljaCBjb3VsZCBiZSBiaWdnZXIuCgpJZiBjYXBzLmVxZV9zaXplIGlzIGJpZ2dlciB0aGFuIHRo ZSBzdHJ1Y3QgbWx4NF9lcWUgdGhlbiB3ZSBjb3JydXB0CmRhdGEgaW4gdGhlIG1hc3RlciBjb250 ZXh0LgoKV2hlbiB1c2luZyBhIDY0IGJ5dGUgc3RyaWRlLCB0aGUgbWVtY3B5IGNvcGllZCBvdmVy IDYzIGJ5dGVzIHRvIHRoZQpzbGF2ZV9lcSBzdHJ1Y3R1cmUuICBUaGlzIHJlc3VsdGVkIGluIGNv cHlpbmcgb3ZlciB0aGUgZW50aXJlIGVxZSBvZgppbnRlcmVzdCwgaW5jbHVkaW5nIGl0cyBvd25l cnNoaXAgYml0IC0tIGFuZCBhbHNvIDMxIGJ5dGVzIG9mIGdhcmJhZ2UKaW50byB0aGUgbmV4dCBX UUUgaW4gdGhlIHNsYXZlIEVRIC0tIHdoaWNoIGRpZCBOT1QgaW5jbHVkZSB0aGUgb3duZXJzaGlw CmJpdCAoYW5kIHRoZXJlZm9yZSBoYWQgbm8gaW1wYWN0KS4KCkhvd2V2ZXIsIG9uY2UgdGhlIHN0 cmlkZSBpcyBpbmNyZWFzZWQgdG8gMTI4LCB3ZSBhcmUgb3ZlcndyaXRpbmcgdGhlCm93bmVyc2hp cCBiaXRzIG9mICp0aHJlZSogZXFlcyBpbiB0aGUgc2xhdmVfZXEgc3RydWN0LiAgVGhpcyByZXN1 bHRzCmluIGFuIGluY29ycmVjdCBvd25lcnNoaXAgYml0IGZvciB0aG9zZSBlcWVzLCB3aGljaCBj YXVzZXMgdGhlIGVxIHRvCnNlZW0gdG8gYmUgZnVsbC4gVGhlIGlzc3VlIHRoZXJlZm9yZSBzdXJm YWNlZCBvbmx5IG9uY2UgMTI4LWJ5dGUgRVFFcwpzdGFydGVkIGJlaW5nIHVzZWQgaW4gU1JJT1Yg YW5kIChvdmVyYXJjaGl0ZWN0dXJlcyB0aGF0IGhhdmUgMTI4LzI1NgpieXRlIGNhY2hlLWxpbmVz IHN1Y2ggYXMgUFBDKSAtIGUuZyBhZnRlciBjb21taXQgNzc1MDdhYTI0OWFlCiJuZXQvbWx4NF9j b3JlOiBFbmFibGUgQ1FFL0VRRSBzdHJpZGUgc3VwcG9ydCIuCgpGaXhlczogMDhmZjMyMzUyZDZm ICgnbWx4NDogNjQtYnl0ZSBDUUUvRVFFIHN1cHBvcnQnKQpTaWduZWQtb2ZmLWJ5OiBDYXJvbCBM IFNvdG8gPGNsc290b0BsaW51eC52bmV0LmlibS5jb20+ClNpZ25lZC1vZmYtYnk6IEphY2sgTW9y Z2Vuc3RlaW4gPGphY2ttQGRldi5tZWxsYW5veC5jby5pbD4KU2lnbmVkLW9mZi1ieTogT3IgR2Vy bGl0eiA8b2dlcmxpdHpAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxs ZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFu b3gvbWx4NC9jbWQuYyB8IDIgKy0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDQv ZXEuYyAgfCAyICstCiAyIGZpbGVzIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg0L2Nt ZC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9jbWQuYwppbmRleCA2MWVi YjAzLi4yYTZiMTQ5IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9t bHg0L2NtZC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDQvY21kLmMK QEAgLTIwNDcsNyArMjA0Nyw3IEBAIGludCBtbHg0X211bHRpX2Z1bmNfaW5pdChzdHJ1Y3QgbWx4 NF9kZXYgKmRldikKIAkJCXNwaW5fbG9ja19pbml0KCZzX3N0YXRlLT5sb2NrKTsKIAkJfQogCi0J CW1lbXNldCgmcHJpdi0+bWZ1bmMubWFzdGVyLmNtZF9lcWUsIDAsIGRldi0+Y2Fwcy5lcWVfc2l6 ZSk7CisJCW1lbXNldCgmcHJpdi0+bWZ1bmMubWFzdGVyLmNtZF9lcWUsIDAsIHNpemVvZihzdHJ1 Y3QgbWx4NF9lcWUpKTsKIAkJcHJpdi0+bWZ1bmMubWFzdGVyLmNtZF9lcWUudHlwZSA9IE1MWDRf RVZFTlRfVFlQRV9DTUQ7CiAJCUlOSVRfV09SSygmcHJpdi0+bWZ1bmMubWFzdGVyLmNvbW1fd29y aywKIAkJCSAgbWx4NF9tYXN0ZXJfY29tbV9jaGFubmVsKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMv bmV0L2V0aGVybmV0L21lbGxhbm94L21seDQvZXEuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21l bGxhbm94L21seDQvZXEuYwppbmRleCBhZjY3ZTdkLi4xMWVmMmMyIDEwMDY0NAotLS0gYS9kcml2 ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg0L2VxLmMKKysrIGIvZHJpdmVycy9uZXQvZXRo ZXJuZXQvbWVsbGFub3gvbWx4NC9lcS5jCkBAIC0xODUsNyArMTg1LDcgQEAgc3RhdGljIHZvaWQg c2xhdmVfZXZlbnQoc3RydWN0IG1seDRfZGV2ICpkZXYsIHU4IHNsYXZlLCBzdHJ1Y3QgbWx4NF9l cWUgKmVxZSkKIAkJcmV0dXJuOwogCX0KIAotCW1lbWNweShzX2VxZSwgZXFlLCBkZXYtPmNhcHMu ZXFlX3NpemUgLSAxKTsKKwltZW1jcHkoc19lcWUsIGVxZSwgc2l6ZW9mKHN0cnVjdCBtbHg0X2Vx ZSkgLSAxKTsKIAlzX2VxZS0+c2xhdmVfaWQgPSBzbGF2ZTsKIAkvKiBlbnN1cmUgYWxsIGluZm9y bWF0aW9uIGlzIHdyaXR0ZW4gYmVmb3JlIHNldHRpbmcgdGhlIG93bmVyc2lwIGJpdCAqLwogCXdt YigpOwotLSAKMi40LjEKCgpGcm9tIGI0NzM5ZTMwMzI4OGMxZjJkYjM1ZDIwNTcwZmViN2I4ODgy NDMyZTggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFBoaWwgUmVpZCA8cHJlaWRAZWxl Y3Ryb21hZy5jb20uYXU+CkRhdGU6IEZyaSwgMzAgT2N0IDIwMTUgMTY6NDM6NTUgKzA4MDAKU3Vi amVjdDogW1BBVENIIDA4LzE5XSBzdG1tYWM6IENvcnJlY3RseSByZXBvcnQgUFRQIGNhcGFiaWxp dGllcy4KClsgVXBzdHJlYW0gY29tbWl0IGU2ZGJlMWViMmRiMGQ3YTE0OTkxYzA2Mjc4ZGQzMDMw YzQ1ZmI4MjUgXQoKcHJpdi0+aHd0c18qX2VuIGluZGljYXRlIGlmIHRpbWVzdGFtcGluZyBpcyBl bmFibGVkL2Rpc2FibGVkIGF0IHJ1bgp0aW1lLiBCdXQgIHByaXYtPmRtYV9jYXAudGltZV9zdGFt cCAgYW5kIHByaXYtPmRtYV9jYXAuYXRpbWVfc3RhbXAKaW5kaWNhdGVzIEhXIGlzIHN1cHBvcnQg Zm9yIFBUUHYxL1BUUHYyLgoKU2lnbmVkLW9mZi1ieTogUGhpbCBSZWlkIDxwcmVpZEBlbGVjdHJv bWFnLmNvbS5hdT4KQWNrZWQtYnk6IFJpY2hhcmQgQ29jaHJhbiA8cmljaGFyZGNvY2hyYW5AZ21h aWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5u ZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2V0aHRv b2wuYyB8IDcgKysrKystLQogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgMiBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1h Yy9zdG1tYWNfZXRodG9vbC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMv c3RtbWFjX2V0aHRvb2wuYwppbmRleCAzYTA4YTFmLi4xMWVkYjJjIDEwMDY0NAotLS0gYS9kcml2 ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXRodG9vbC5jCisrKyBiL2Ry aXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19ldGh0b29sLmMKQEAgLTcy MSwxMCArNzIxLDEzIEBAIHN0YXRpYyBpbnQgc3RtbWFjX2dldF90c19pbmZvKHN0cnVjdCBuZXRf ZGV2aWNlICpkZXYsCiB7CiAJc3RydWN0IHN0bW1hY19wcml2ICpwcml2ID0gbmV0ZGV2X3ByaXYo ZGV2KTsKIAotCWlmICgocHJpdi0+aHd0c190eF9lbikgJiYgKHByaXYtPmh3dHNfcnhfZW4pKSB7 CisJaWYgKChwcml2LT5kbWFfY2FwLnRpbWVfc3RhbXAgfHwgcHJpdi0+ZG1hX2NhcC5hdGltZV9z dGFtcCkpIHsKIAotCQlpbmZvLT5zb190aW1lc3RhbXBpbmcgPSBTT0ZfVElNRVNUQU1QSU5HX1RY X0hBUkRXQVJFIHwKKwkJaW5mby0+c29fdGltZXN0YW1waW5nID0gU09GX1RJTUVTVEFNUElOR19U WF9TT0ZUV0FSRSB8CisJCQkJCVNPRl9USU1FU1RBTVBJTkdfVFhfSEFSRFdBUkUgfAorCQkJCQlT T0ZfVElNRVNUQU1QSU5HX1JYX1NPRlRXQVJFIHwKIAkJCQkJU09GX1RJTUVTVEFNUElOR19SWF9I QVJEV0FSRSB8CisJCQkJCVNPRl9USU1FU1RBTVBJTkdfU09GVFdBUkUgfAogCQkJCQlTT0ZfVElN RVNUQU1QSU5HX1JBV19IQVJEV0FSRTsKIAogCQlpZiAocHJpdi0+cHRwX2Nsb2NrKQotLSAKMi40 LjEKCgpGcm9tIDIwM2RmMWJmNjZhMzY2YzE1ZThlZTdiZDNiNWQ1ZTM1YTYwYWU4YTYgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFuaSBTaW5oYSA8YW5pQGFyaXN0YS5jb20+CkRhdGU6 IEZyaSwgMzAgT2N0IDIwMTUgMTY6NTQ6MzEgLTA3MDAKU3ViamVjdDogW1BBVENIIDA5LzE5XSBp cG1yOiBmaXggcG9zc2libGUgcmFjZSByZXN1bHRpbmcgZnJvbSBpbXByb3BlciB1c2FnZQogb2Yg SVBfSU5DX1NUQVRTX0JIKCkgaW4gcHJlZW1wdGlibGUgY29udGV4dC4KClsgVXBzdHJlYW0gY29t bWl0IDQ0ZjQ5ZGQ4YjVhNjA2ODcwYTFmMjExMDE1MjJhMGY5YzQ0MTQ3ODQgXQoKRml4ZXMgdGhl IGZvbGxvd2luZyBrZXJuZWwgQlVHIDoKCkJVRzogdXNpbmcgX190aGlzX2NwdV9hZGQoKSBpbiBw cmVlbXB0aWJsZSBbMDAwMDAwMDBdIGNvZGU6IGJhc2gvMjc1OApjYWxsZXIgaXMgX190aGlzX2Nw dV9wcmVlbXB0X2NoZWNrKzB4MTMvMHgxNQpDUFU6IDAgUElEOiAyNzU4IENvbW06IGJhc2ggVGFp bnRlZDogUCAgICAgICAgICAgTyAgIDMuMTguMTkgIzIKIGZmZmZmZmZmODE3MGVhY2EgZmZmZjg4 MDExMGQxYjc4OCBmZmZmZmZmZjgxNDgyYjJhIDAwMDAwMDAwMDAwMDAwMDAKIDAwMDAwMDAwMDAw MDAwMDAgZmZmZjg4MDExMGQxYjdiOCBmZmZmZmZmZjgxMjAxMGFlIGZmZmY4ODAwMDdjYWI4MDAK IGZmZmY4ODAwMWEwNjA4MDAgZmZmZjg4MDEzYTg5OTEwOCBmZmZmODgwMTA4Yjg0MjQwIGZmZmY4 ODAxMTBkMWI3YzgKQ2FsbCBUcmFjZToKWzxmZmZmZmZmZjgxNDgyYjJhPl0gZHVtcF9zdGFjaysw eDUyLzB4ODAKWzxmZmZmZmZmZjgxMjAxMGFlPl0gY2hlY2tfcHJlZW1wdGlvbl9kaXNhYmxlZCsw eGNlLzB4ZTEKWzxmZmZmZmZmZjgxMjAxMGQ0Pl0gX190aGlzX2NwdV9wcmVlbXB0X2NoZWNrKzB4 MTMvMHgxNQpbPGZmZmZmZmZmODE0MTlkNjA+XSBpcG1yX3F1ZXVlX3htaXQrMHg2NDcvMHg3MGMK WzxmZmZmZmZmZjgxNDFhMTU0Pl0gaXBfbXJfZm9yd2FyZCsweDMyZi8weDM0ZQpbPGZmZmZmZmZm ODE0MWFmNzY+XSBpcF9tcm91dGVfc2V0c29ja29wdCsweGUwMy8weDEwOGMKWzxmZmZmZmZmZjgx MDU1M2ZjPl0gPyBnZXRfcGFyZW50X2lwKzB4MTEvMHg0MgpbPGZmZmZmZmZmODEwZTY5NzQ+XSA/ IHBvbGx3YWtlKzB4NGQvMHg1MQpbPGZmZmZmZmZmODEwNThhYzA+XSA/IGRlZmF1bHRfd2FrZV9m dW5jdGlvbisweDAvMHhmCls8ZmZmZmZmZmY4MTA1NTNmYz5dID8gZ2V0X3BhcmVudF9pcCsweDEx LzB4NDIKWzxmZmZmZmZmZjgxMDYxM2Q5Pl0gPyBfX3dha2VfdXBfY29tbW9uKzB4NDUvMHg3Nwpb PGZmZmZmZmZmODE0ODZlYTk+XSA/IF9yYXdfc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSsweDFkLzB4 MzIKWzxmZmZmZmZmZjgxMDYxOGJjPl0gPyBfX3dha2VfdXBfc3luY19rZXkrMHg0YS8weDUzCls8 ZmZmZmZmZmY4MTM5YTUxOT5dID8gc29ja19kZWZfcmVhZGFibGUrMHg3MS8weDc1Cls8ZmZmZmZm ZmY4MTNkZDIyNj5dIGRvX2lwX3NldHNvY2tvcHQrMHg5ZC8weGI1NQpbPGZmZmZmZmZmODE0Mjk4 MTg+XSA/IHVuaXhfc2VxcGFja2V0X3NlbmRtc2crMHgzZi8weDQxCls8ZmZmZmZmZmY4MTM5NjNm ZT5dID8gc29ja19zZW5kbXNnKzB4NmQvMHg4NgpbPGZmZmZmZmZmODEzOTU5ZDQ+XSA/IHNvY2tm ZF9sb29rdXBfbGlnaHQrMHgxMi8weDVkCls8ZmZmZmZmZmY4MTM5NjUwYT5dID8gU3lTX3NlbmR0 bysweGYzLzB4MTFiCls8ZmZmZmZmZmY4MTBkNTczOD5dID8gbmV3X3N5bmNfcmVhZCsweDgyLzB4 YWEKWzxmZmZmZmZmZjgxM2RkZDE5Pl0gY29tcGF0X2lwX3NldHNvY2tvcHQrMHgzYi8weDk5Cls8 ZmZmZmZmZmY4MTNmYjI0YT5dIGNvbXBhdF9yYXdfc2V0c29ja29wdCsweDExLzB4MzIKWzxmZmZm ZmZmZjgxMzk5MDUyPl0gY29tcGF0X3NvY2tfY29tbW9uX3NldHNvY2tvcHQrMHgxOC8weDFmCls8 ZmZmZmZmZmY4MTNjNGQwNT5dIGNvbXBhdF9TeVNfc2V0c29ja29wdCsweDFhOS8weDFjZgpbPGZm ZmZmZmZmODEzYzQxNDk+XSBjb21wYXRfU3lTX3NvY2tldGNhbGwrMHgxODAvMHgxZTMKWzxmZmZm ZmZmZjgxNDg4ZWExPl0gY3N0YXJfZGlzcGF0Y2grMHg3LzB4MWUKClNpZ25lZC1vZmYtYnk6IEFu aSBTaW5oYSA8YW5pQGFyaXN0YS5jb20+CkFja2VkLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0 QGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiBuZXQvaXB2NC9pcG1yLmMgfCA2ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQs IDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2NC9p cG1yLmMgYi9uZXQvaXB2NC9pcG1yLmMKaW5kZXggYzgwMzQ1OC4uYTFmYzk3YSAxMDA2NDQKLS0t IGEvbmV0L2lwdjQvaXBtci5jCisrKyBiL25ldC9pcHY0L2lwbXIuYwpAQCAtMTY3NCw4ICsxNjc0 LDggQEAgc3RhdGljIGlubGluZSBpbnQgaXBtcl9mb3J3YXJkX2ZpbmlzaChzdHJ1Y3Qgc2tfYnVm ZiAqc2tiKQogewogCXN0cnVjdCBpcF9vcHRpb25zICpvcHQgPSAmKElQQ0Ioc2tiKS0+b3B0KTsK IAotCUlQX0lOQ19TVEFUU19CSChkZXZfbmV0KHNrYl9kc3Qoc2tiKS0+ZGV2KSwgSVBTVEFUU19N SUJfT1VURk9SV0RBVEFHUkFNUyk7Ci0JSVBfQUREX1NUQVRTX0JIKGRldl9uZXQoc2tiX2RzdChz a2IpLT5kZXYpLCBJUFNUQVRTX01JQl9PVVRPQ1RFVFMsIHNrYi0+bGVuKTsKKwlJUF9JTkNfU1RB VFMoZGV2X25ldChza2JfZHN0KHNrYiktPmRldiksIElQU1RBVFNfTUlCX09VVEZPUldEQVRBR1JB TVMpOworCUlQX0FERF9TVEFUUyhkZXZfbmV0KHNrYl9kc3Qoc2tiKS0+ZGV2KSwgSVBTVEFUU19N SUJfT1VUT0NURVRTLCBza2ItPmxlbik7CiAKIAlpZiAodW5saWtlbHkob3B0LT5vcHRsZW4pKQog CQlpcF9mb3J3YXJkX29wdGlvbnMoc2tiKTsKQEAgLTE3MzcsNyArMTczNyw3IEBAIHN0YXRpYyB2 b2lkIGlwbXJfcXVldWVfeG1pdChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBtcl90YWJsZSAqbXJ0 LAogCQkgKiB0byBibGFja2hvbGUuCiAJCSAqLwogCi0JCUlQX0lOQ19TVEFUU19CSChkZXZfbmV0 KGRldiksIElQU1RBVFNfTUlCX0ZSQUdGQUlMUyk7CisJCUlQX0lOQ19TVEFUUyhkZXZfbmV0KGRl diksIElQU1RBVFNfTUlCX0ZSQUdGQUlMUyk7CiAJCWlwX3J0X3B1dChydCk7CiAJCWdvdG8gb3V0 X2ZyZWU7CiAJfQotLSAKMi40LjEKCgpGcm9tIGE3ZTFmMWNhMmNlYjQyN2JhMGMzZWRiOWI4YTY5 YzhmYjRhNWFiMjQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT9Caj1D Mz1COHJuPTIwTW9yaz89IDxiam9ybkBtb3JrLm5vPgpEYXRlOiBTdW4sIDEgTm92IDIwMTUgMDE6 MzQ6NTAgKzAxMDAKU3ViamVjdDogW1BBVENIIDEwLzE5XSBxbWlfd3dhbjogZml4IGVudHJ5IGZv ciBIUCBsdDQxMTIgTFRFL0hTUEErIEdvYmkgNEcKIE1vZHVsZQpNSU1FLVZlcnNpb246IDEuMApD b250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zlci1F bmNvZGluZzogOGJpdAoKWyBVcHN0cmVhbSBjb21taXQgNzA5MTA3OTE3MzFiNTk1NjE3MWUxYmZj YWQ3MDc3NjZiOGUxOGZlZSBdCgpUaGUgbHQ0MTEyIGlzIGEgSFAgYnJhbmRlZCBIdWF3ZWkgbWU5 MDZlIG1vZGVtLiBMaWtlIG90aGVyIEh1YXdlaQptb2RlbXMsIGl0IGRvZXMgbm90IGhhdmUgYSBm aXhlZCBpbnRlcmZhY2UgdG8gZnVuY3Rpb24gbWFwcGluZy4KSW5zdGVhZCBpdCB1c2VzIGEgSHVh d2VpIHNwZWNpZmljIHNjaGVtZTogZnVuY3Rpb25zIGFyZSBtYXBwZWQgYnkKc3ViY2xhc3MgYW5k IHByb3RvY29sLgoKSG93ZXZlciwgdGhlIEhQIHZlbmRvciBJRCBpcyB1c2VkIGZvciBtb2RlbXMg ZnJvbSBtYW55IGRpZmZlcmVudAptYW51ZmFjdHVyZXJzIHVzaW5nIGRpZmZlcmVudCBzY2hlbWVz LCBzbyB3ZSBjYW5ub3QgYXBwbHkgYSBnZW5lcmljCnZlbmRvciBydWxlIGxpa2Ugd2UgZG8gZm9y IHRoZSBIdWF3ZWkgdmVuZG9yIElELgoKUmVwbGFjZSB0aGUgcHJldmlvdXMgbHQ0MTEyIGVudHJ5 IHBvaW50aW5nIHRvIGFuIGFyYml0cmFyeSBpbnRlcmZhY2UKbnVtYmVyIHdpdGggYSBkZXZpY2Ug c3BlY2lmaWMgc3ViY2xhc3MgKyBwcm90b2NvbCBtYXRjaC4KClJlcG9ydGVkLWFuZC10ZXN0ZWQt Ynk6IE11cmkgTmljYW5vciA8bXVyaStsaWJxbWlAaW1tZXJkYS5jaD4KVGVzdGVkLWJ5OiBNYXJ0 aW4gSGF1a2UgPG1hcmRuaEBnbXguZGU+CkZpeGVzOiBiYjJiZGViODNmYjEgKCJxbWlfd3dhbjog QWRkIHN1cHBvcnQgZm9yIEhQIGx0NDExMiBMVEUvSFNQQSsgR29iaSA0RyBNb2RlbSIpClNpZ25l ZC1vZmYtYnk6IEJqw7hybiBNb3JrIDxiam9ybkBtb3JrLm5vPgpTaWduZWQtb2ZmLWJ5OiBEYXZp ZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvdXNiL3Ft aV93d2FuLmMgfCA1ICsrKystCiAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCAxIGRl bGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdXNiL3FtaV93d2FuLmMgYi9kcml2 ZXJzL25ldC91c2IvcW1pX3d3YW4uYwppbmRleCBmNWEwZTEwLi4yZDkxMDUwIDEwMDY0NAotLS0g YS9kcml2ZXJzL25ldC91c2IvcW1pX3d3YW4uYworKysgYi9kcml2ZXJzL25ldC91c2IvcW1pX3d3 YW4uYwpAQCAtNTM1LDYgKzUzNSwxMCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2Vf aWQgcHJvZHVjdHNbXSA9IHsKIAkJCQkJICAgICAgVVNCX0NEQ19QUk9UT19OT05FKSwKIAkJLmRy aXZlcl9pbmZvICAgICAgICA9ICh1bnNpZ25lZCBsb25nKSZxbWlfd3dhbl9pbmZvLAogCX0sCisJ ewkvKiBIUCBsdDQxMTIgTFRFL0hTUEErIEdvYmkgNEcgTW9kdWxlIChIdWF3ZWkgbWU5MDZlKSAq LworCQlVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTygweDAzZjAsIDB4NTgxZCwgVVNCX0NM QVNTX1ZFTkRPUl9TUEVDLCAxLCA3KSwKKwkJLmRyaXZlcl9pbmZvID0gKHVuc2lnbmVkIGxvbmcp JnFtaV93d2FuX2luZm8sCisJfSwKIAogCS8qIDMuIENvbWJpbmVkIGludGVyZmFjZSBkZXZpY2Vz IG1hdGNoaW5nIG9uIGludGVyZmFjZSBudW1iZXIgKi8KIAl7UU1JX0ZJWEVEX0lOVEYoMHgwNDA4 LCAweGVhNDIsIDQpfSwJLyogWW90YSAvIE1lZ2Fmb24gTTEwMC0xICovCkBAIC03ODQsNyArNzg4 LDYgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIHByb2R1Y3RzW10gPSB7CiAJ e1FNSV9GSVhFRF9JTlRGKDB4NDEzYywgMHg4MWE0LCA4KX0sCS8qIERlbGwgV2lyZWxlc3MgNTU3 MGUgSFNQQSsgKDQyTWJwcykgTW9iaWxlIEJyb2FkYmFuZCBDYXJkICovCiAJe1FNSV9GSVhFRF9J TlRGKDB4NDEzYywgMHg4MWE4LCA4KX0sCS8qIERlbGwgV2lyZWxlc3MgNTgwOCBHb2JpKFRNKSA0 RyBMVEUgTW9iaWxlIEJyb2FkYmFuZCBDYXJkICovCiAJe1FNSV9GSVhFRF9JTlRGKDB4NDEzYywg MHg4MWE5LCA4KX0sCS8qIERlbGwgV2lyZWxlc3MgNTgwOGUgR29iaShUTSkgNEcgTFRFIE1vYmls ZSBCcm9hZGJhbmQgQ2FyZCAqLwotCXtRTUlfRklYRURfSU5URigweDAzZjAsIDB4NTgxZCwgNCl9 LAkvKiBIUCBsdDQxMTIgTFRFL0hTUEErIEdvYmkgNEcgTW9kdWxlIChIdWF3ZWkgbWU5MDZlKSAq LwogCiAJLyogNC4gR29iaSAxMDAwIGRldmljZXMgKi8KIAl7UU1JX0dPQkkxS19ERVZJQ0UoMHgw NWM2LCAweDkyMTIpfSwJLyogQWNlciBHb2JpIE1vZGVtIERldmljZSAqLwotLSAKMi40LjEKCgpG cm9tIDZmZjRmOTg4YTYxMjJkMGY3Y2I0Y2Y4NDYzYzAzYTJlNGI4ZGM5ZmIgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0 ZTogTW9uLCAyIE5vdiAyMDE1IDE3OjA4OjE5IC0wODAwClN1YmplY3Q6IFtQQVRDSCAxMS8xOV0g c2l0OiBmaXggc2l0MCBwZXJjcHUgZG91YmxlIGFsbG9jYXRpb25zCgpbIFVwc3RyZWFtIGNvbW1p dCA0ZWNlOTAwOTc3NDU5NmVlM2RmMGFjYmE2NWEzMjRiN2VhNzkzODdjIF0KCnNpdDAgZGV2aWNl IGFsbG9jYXRlcyBpdHMgcGVyY3B1IHN0b3JhZ2UgdHdpY2UgOgotIE9uZSB0aW1lIGluIGlwaXA2 X3R1bm5lbF9pbml0KCkKLSBPbmUgdGltZSBpbiBpcGlwNl9mYl90dW5uZWxfaW5pdCgpCgpUaHVz IHdlIGxlYWsgNDggYnl0ZXMgcGVyIHBvc3NpYmxlIGNwdSBwZXIgbmV0d29yayBuYW1lc3BhY2Ug ZGlzbWFudGxlLgoKaXBpcDZfZmJfdHVubmVsX2luaXQoKSBjYW4gYmUgbXVjaCBzaW1wbGVyIGFu ZCBkb2VzIG5vdApyZXR1cm4gYW4gZXJyb3IsIGFuZCBzaG91bGQgYmUgY2FsbGVkIGFmdGVyIHJl Z2lzdGVyX25ldGRldigpCgpOb3RlIHRoYXQgaXBpcDZfdHVubmVsX2Nsb25lXzZyZCgpIGFsc28g bmVlZHMgdG8gYmUgY2FsbGVkCmFmdGVyIHJlZ2lzdGVyX25ldGRldigpIChjYWxsaW5nIGlwaXA2 X3R1bm5lbF9pbml0KCkpCgpGaXhlczogZWJlMDg0YWFmYjdlICgic2l0OiBVc2UgaXBpcDZfdHVu bmVsX2luaXQgYXMgdGhlIG5kb19pbml0IGZ1bmN0aW9uLiIpClNpZ25lZC1vZmYtYnk6IEVyaWMg RHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KUmVwb3J0ZWQtYnk6IERtaXRyeSBWeXVrb3Yg PGR2eXVrb3ZAZ29vZ2xlLmNvbT4KQ2M6IFN0ZWZmZW4gS2xhc3NlcnQgPHN0ZWZmZW4ua2xhc3Nl cnRAc2VjdW5ldC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2 ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2Ni9zaXQuYyB8IDI1ICsrKystLS0tLS0tLS0tLS0tLS0t LS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDIxIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL25ldC9pcHY2L3NpdC5jIGIvbmV0L2lwdjYvc2l0LmMKaW5kZXggYTI0NTU3 YS4uMmNiZmFkOSAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvc2l0LmMKKysrIGIvbmV0L2lwdjYvc2l0 LmMKQEAgLTEzOTQsMzQgKzEzOTQsMjAgQEAgc3RhdGljIGludCBpcGlwNl90dW5uZWxfaW5pdChz dHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IF9fbmV0 X2luaXQgaXBpcDZfZmJfdHVubmVsX2luaXQoc3RydWN0IG5ldF9kZXZpY2UgKmRldikKK3N0YXRp YyB2b2lkIF9fbmV0X2luaXQgaXBpcDZfZmJfdHVubmVsX2luaXQoc3RydWN0IG5ldF9kZXZpY2Ug KmRldikKIHsKIAlzdHJ1Y3QgaXBfdHVubmVsICp0dW5uZWwgPSBuZXRkZXZfcHJpdihkZXYpOwog CXN0cnVjdCBpcGhkciAqaXBoID0gJnR1bm5lbC0+cGFybXMuaXBoOwogCXN0cnVjdCBuZXQgKm5l dCA9IGRldl9uZXQoZGV2KTsKIAlzdHJ1Y3Qgc2l0X25ldCAqc2l0biA9IG5ldF9nZW5lcmljKG5l dCwgc2l0X25ldF9pZCk7CiAKLQl0dW5uZWwtPmRldiA9IGRldjsKLQl0dW5uZWwtPm5ldCA9IGRl dl9uZXQoZGV2KTsKLQogCWlwaC0+dmVyc2lvbgkJPSA0OwogCWlwaC0+cHJvdG9jb2wJCT0gSVBQ Uk9UT19JUFY2OwogCWlwaC0+aWhsCQk9IDU7CiAJaXBoLT50dGwJCT0gNjQ7CiAKLQlkZXYtPnRz dGF0cyA9IG5ldGRldl9hbGxvY19wY3B1X3N0YXRzKHN0cnVjdCBwY3B1X3N3X25ldHN0YXRzKTsK LQlpZiAoIWRldi0+dHN0YXRzKQotCQlyZXR1cm4gLUVOT01FTTsKLQotCXR1bm5lbC0+ZHN0X2Nh Y2hlID0gYWxsb2NfcGVyY3B1KHN0cnVjdCBpcF90dW5uZWxfZHN0KTsKLQlpZiAoIXR1bm5lbC0+ ZHN0X2NhY2hlKSB7Ci0JCWZyZWVfcGVyY3B1KGRldi0+dHN0YXRzKTsKLQkJcmV0dXJuIC1FTk9N RU07Ci0JfQotCiAJZGV2X2hvbGQoZGV2KTsKIAlyY3VfYXNzaWduX3BvaW50ZXIoc2l0bi0+dHVu bmVsc193Y1swXSwgdHVubmVsKTsKLQlyZXR1cm4gMDsKIH0KIAogc3RhdGljIGludCBpcGlwNl92 YWxpZGF0ZShzdHJ1Y3QgbmxhdHRyICp0YltdLCBzdHJ1Y3QgbmxhdHRyICpkYXRhW10pCkBAIC0x ODMxLDIzICsxODE3LDIwIEBAIHN0YXRpYyBpbnQgX19uZXRfaW5pdCBzaXRfaW5pdF9uZXQoc3Ry dWN0IG5ldCAqbmV0KQogCSAqLwogCXNpdG4tPmZiX3R1bm5lbF9kZXYtPmZlYXR1cmVzIHw9IE5F VElGX0ZfTkVUTlNfTE9DQUw7CiAKLQllcnIgPSBpcGlwNl9mYl90dW5uZWxfaW5pdChzaXRuLT5m Yl90dW5uZWxfZGV2KTsKLQlpZiAoZXJyKQotCQlnb3RvIGVycl9kZXZfZnJlZTsKLQogCWlwaXA2 X3R1bm5lbF9jbG9uZV82cmQoc2l0bi0+ZmJfdHVubmVsX2Rldiwgc2l0bik7CiAKIAlpZiAoKGVy ciA9IHJlZ2lzdGVyX25ldGRldihzaXRuLT5mYl90dW5uZWxfZGV2KSkpCiAJCWdvdG8gZXJyX3Jl Z19kZXY7CiAKKwlpcGlwNl90dW5uZWxfY2xvbmVfNnJkKHNpdG4tPmZiX3R1bm5lbF9kZXYsIHNp dG4pOworCWlwaXA2X2ZiX3R1bm5lbF9pbml0KHNpdG4tPmZiX3R1bm5lbF9kZXYpOworCiAJdCA9 IG5ldGRldl9wcml2KHNpdG4tPmZiX3R1bm5lbF9kZXYpOwogCiAJc3RyY3B5KHQtPnBhcm1zLm5h bWUsIHNpdG4tPmZiX3R1bm5lbF9kZXYtPm5hbWUpOwogCXJldHVybiAwOwogCiBlcnJfcmVnX2Rl djoKLQlkZXZfcHV0KHNpdG4tPmZiX3R1bm5lbF9kZXYpOwotZXJyX2Rldl9mcmVlOgogCWlwaXA2 X2Rldl9mcmVlKHNpdG4tPmZiX3R1bm5lbF9kZXYpOwogZXJyX2FsbG9jX2RldjoKIAlyZXR1cm4g ZXJyOwotLSAKMi40LjEKCgpGcm9tIDZjYzhmMGRmNzhlMWM5MWE1Nzg1ZDI2N2UyY2JmZTE2ZWY3 NjEzZDMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE1hcnRpbiBIYWJldHMgPG1oYWJl dHNAc29sYXJmbGFyZS5jb20+CkRhdGU6IE1vbiwgMiBOb3YgMjAxNSAxMjo1MTozMSArMDAwMApT dWJqZWN0OiBbUEFUQ0ggMTIvMTldIHNmYzogcHVzaCBwYXJ0bmVyIHF1ZXVlIGZvciBza2ItPnht aXRfbW9yZQoKWyBVcHN0cmVhbSBjb21taXQgYjI2NjNhNGYzMGU4NWVjNjA2YjgwNmY1MTM1NDEz ZTZkNWM3OGQxZSBdCgpXaGVuIHRoZSBJUCBzdGFjayBwYXNzZXMgU0tCcyB0aGUgc2ZjIGRyaXZl ciBwdXRzIHRoZW0gaW4gMiBkaWZmZXJlbnQgVFgKcXVldWVzIChjYWxsZWQgcGFydG5lcnMpLCBv bmUgZm9yIGNoZWNrc3VtbWVkIGFuZCBvbmUgZm9yIG5vdCBjaGVja3N1bW1lZC4KSWYgdGhlIFNL QiBoYXMgeG1pdF9tb3JlIHNldCB0aGUgZHJpdmVyIHdpbGwgZGVsYXkgcHVzaGluZyB0aGUgd29y ayB0byB0aGUKTklDLgoKV2hlbiBsYXRlciBpdCBkb2VzIGRlY2lkZSB0byBwdXNoIHRoZSBidWZm ZXJzIHRoaXMgcGF0Y2ggZW5zdXJlcyBpdCBhbHNvCnB1c2hlcyB0aGUgcGFydG5lciBxdWV1ZSwg aWYgdGhhdCBhbHNvIGhhcyBhbnkgZGVsYXllZCB3b3JrLiBCZWZvcmUgdGhpcwpmaXggdGhlIHdv cmsgaW4gdGhlIHBhcnRuZXIgcXVldWUgd291bGQgYmUgbGVmdCBmb3IgYSBsb25nIHRpbWUgYW5k IGNhdXNlCmEgbmV0ZGV2IHdhdGNoZG9nLgoKRml4ZXM6IDcwYjMzZmIgKCJzZmM6IGFkZCBzdXBw b3J0IGZvciBza2ItPnhtaXRfbW9yZSIpClJlcG9ydGVkLWJ5OiBKaWFubGluIFNoaSA8amlzaGlA cmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogTWFydGluIEhhYmV0cyA8bWhhYmV0c0Bzb2xhcmZs YXJlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQu bmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmMgICAgICAgfCAgNCArKyst CiBkcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZmFyY2guYyAgICAgIHwgIDQgKysrLQogZHJpdmVy cy9uZXQvZXRoZXJuZXQvc2ZjL25ldF9kcml2ZXIuaCB8ICAyICsrCiBkcml2ZXJzL25ldC9ldGhl cm5ldC9zZmMvdHguYyAgICAgICAgIHwgMzAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0t CiA0IGZpbGVzIGNoYW5nZWQsIDM2IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYyBiL2RyaXZlcnMvbmV0L2V0 aGVybmV0L3NmYy9lZjEwLmMKaW5kZXggYTc3ZjA1Yy4uNjNlYzIwOSAxMDA2NDQKLS0tIGEvZHJp dmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9z ZmMvZWYxMC5jCkBAIC0xMzQ0LDcgKzEzNDQsOSBAQCBzdGF0aWMgdm9pZCBlZnhfZWYxMF90eF93 cml0ZShzdHJ1Y3QgZWZ4X3R4X3F1ZXVlICp0eF9xdWV1ZSkKIAl1bnNpZ25lZCBpbnQgd3JpdGVf cHRyOwogCWVmeF9xd29yZF90ICp0eGQ7CiAKLQlCVUdfT04odHhfcXVldWUtPndyaXRlX2NvdW50 ID09IHR4X3F1ZXVlLT5pbnNlcnRfY291bnQpOworCXR4X3F1ZXVlLT54bWl0X21vcmVfYXZhaWxh YmxlID0gZmFsc2U7CisJaWYgKHVubGlrZWx5KHR4X3F1ZXVlLT53cml0ZV9jb3VudCA9PSB0eF9x dWV1ZS0+aW5zZXJ0X2NvdW50KSkKKwkJcmV0dXJuOwogCiAJZG8gewogCQl3cml0ZV9wdHIgPSB0 eF9xdWV1ZS0+d3JpdGVfY291bnQgJiB0eF9xdWV1ZS0+cHRyX21hc2s7CmRpZmYgLS1naXQgYS9k cml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZmFyY2guYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3Nm Yy9mYXJjaC5jCmluZGV4IDY4NTk0MzcuLmI3MGI4NjUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0 L2V0aGVybmV0L3NmYy9mYXJjaC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9mYXJj aC5jCkBAIC0zMTYsNyArMzE2LDkgQEAgdm9pZCBlZnhfZmFyY2hfdHhfd3JpdGUoc3RydWN0IGVm eF90eF9xdWV1ZSAqdHhfcXVldWUpCiAJdW5zaWduZWQgd3JpdGVfcHRyOwogCXVuc2lnbmVkIG9s ZF93cml0ZV9jb3VudCA9IHR4X3F1ZXVlLT53cml0ZV9jb3VudDsKIAotCUJVR19PTih0eF9xdWV1 ZS0+d3JpdGVfY291bnQgPT0gdHhfcXVldWUtPmluc2VydF9jb3VudCk7CisJdHhfcXVldWUtPnht aXRfbW9yZV9hdmFpbGFibGUgPSBmYWxzZTsKKwlpZiAodW5saWtlbHkodHhfcXVldWUtPndyaXRl X2NvdW50ID09IHR4X3F1ZXVlLT5pbnNlcnRfY291bnQpKQorCQlyZXR1cm47CiAKIAlkbyB7CiAJ CXdyaXRlX3B0ciA9IHR4X3F1ZXVlLT53cml0ZV9jb3VudCAmIHR4X3F1ZXVlLT5wdHJfbWFzazsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9uZXRfZHJpdmVyLmggYi9kcml2 ZXJzL25ldC9ldGhlcm5ldC9zZmMvbmV0X2RyaXZlci5oCmluZGV4IDllZGUzMjAuLmVkYTM5Yzgg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9uZXRfZHJpdmVyLmgKKysrIGIv ZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL25ldF9kcml2ZXIuaApAQCAtMjE4LDYgKzIxOCw3IEBA IHN0cnVjdCBlZnhfdHhfYnVmZmVyIHsKICAqIEB0c29fcGFja2V0czogTnVtYmVyIG9mIHBhY2tl dHMgdmlhIHRoZSBUU08geG1pdCBwYXRoCiAgKiBAcHVzaGVzOiBOdW1iZXIgb2YgdGltZXMgdGhl IFRYIHB1c2ggZmVhdHVyZSBoYXMgYmVlbiB1c2VkCiAgKiBAcGlvX3BhY2tldHM6IE51bWJlciBv ZiB0aW1lcyB0aGUgVFggUElPIGZlYXR1cmUgaGFzIGJlZW4gdXNlZAorICogQHhtaXRfbW9yZV9h dmFpbGFibGU6IEFyZSBhbnkgcGFja2V0cyB3YWl0aW5nIHRvIGJlIHB1c2hlZCB0byB0aGUgTklD CiAgKiBAZW1wdHlfcmVhZF9jb3VudDogSWYgdGhlIGNvbXBsZXRpb24gcGF0aCBoYXMgc2VlbiB0 aGUgcXVldWUgYXMgZW1wdHkKICAqCWFuZCB0aGUgdHJhbnNtaXNzaW9uIHBhdGggaGFzIG5vdCB5 ZXQgY2hlY2tlZCB0aGlzLCB0aGUgdmFsdWUgb2YKICAqCUByZWFkX2NvdW50IGJpdHdpc2UtYWRk ZWQgdG8gJUVGWF9FTVBUWV9DT1VOVF9WQUxJRDsgb3RoZXJ3aXNlIDAuCkBAIC0yNTAsNiArMjUx LDcgQEAgc3RydWN0IGVmeF90eF9xdWV1ZSB7CiAJdW5zaWduZWQgaW50IHRzb19wYWNrZXRzOwog CXVuc2lnbmVkIGludCBwdXNoZXM7CiAJdW5zaWduZWQgaW50IHBpb19wYWNrZXRzOworCWJvb2wg eG1pdF9tb3JlX2F2YWlsYWJsZTsKIAkvKiBTdGF0aXN0aWNzIHRvIHN1cHBsZW1lbnQgTUFDIHN0 YXRzICovCiAJdW5zaWduZWQgbG9uZyB0eF9wYWNrZXRzOwogCmRpZmYgLS1naXQgYS9kcml2ZXJz L25ldC9ldGhlcm5ldC9zZmMvdHguYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy90eC5jCmlu ZGV4IGFhZjI5ODcuLmU3MGVkYzMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3Nm Yy90eC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy90eC5jCkBAIC00MzEsOCArNDMx LDIwIEBAIGZpbmlzaF9wYWNrZXQ6CiAJZWZ4X3R4X21heWJlX3N0b3BfcXVldWUodHhfcXVldWUp OwogCiAJLyogUGFzcyBvZmYgdG8gaGFyZHdhcmUgKi8KLQlpZiAoIXNrYi0+eG1pdF9tb3JlIHx8 IG5ldGlmX3htaXRfc3RvcHBlZCh0eF9xdWV1ZS0+Y29yZV90eHEpKQorCWlmICghc2tiLT54bWl0 X21vcmUgfHwgbmV0aWZfeG1pdF9zdG9wcGVkKHR4X3F1ZXVlLT5jb3JlX3R4cSkpIHsKKwkJc3Ry dWN0IGVmeF90eF9xdWV1ZSAqdHhxMiA9IGVmeF90eF9xdWV1ZV9wYXJ0bmVyKHR4X3F1ZXVlKTsK KworCQkvKiBUaGVyZSBjb3VsZCBiZSBwYWNrZXRzIGxlZnQgb24gdGhlIHBhcnRuZXIgcXVldWUg aWYgdGhvc2UKKwkJICogU0tCcyBoYWQgc2tiLT54bWl0X21vcmUgc2V0LiBJZiB3ZSBkbyBub3Qg cHVzaCB0aG9zZSB0aGV5CisJCSAqIGNvdWxkIGJlIGxlZnQgZm9yIGEgbG9uZyB0aW1lIGFuZCBj YXVzZSBhIG5ldGRldiB3YXRjaGRvZy4KKwkJICovCisJCWlmICh0eHEyLT54bWl0X21vcmVfYXZh aWxhYmxlKQorCQkJZWZ4X25pY19wdXNoX2J1ZmZlcnModHhxMik7CisKIAkJZWZ4X25pY19wdXNo X2J1ZmZlcnModHhfcXVldWUpOworCX0gZWxzZSB7CisJCXR4X3F1ZXVlLT54bWl0X21vcmVfYXZh aWxhYmxlID0gc2tiLT54bWl0X21vcmU7CisJfQogCiAJdHhfcXVldWUtPnR4X3BhY2tldHMrKzsK IApAQCAtNzIxLDYgKzczMyw3IEBAIHZvaWQgZWZ4X2luaXRfdHhfcXVldWUoc3RydWN0IGVmeF90 eF9xdWV1ZSAqdHhfcXVldWUpCiAJdHhfcXVldWUtPnJlYWRfY291bnQgPSAwOwogCXR4X3F1ZXVl LT5vbGRfcmVhZF9jb3VudCA9IDA7CiAJdHhfcXVldWUtPmVtcHR5X3JlYWRfY291bnQgPSAwIHwg RUZYX0VNUFRZX0NPVU5UX1ZBTElEOworCXR4X3F1ZXVlLT54bWl0X21vcmVfYXZhaWxhYmxlID0g ZmFsc2U7CiAKIAkvKiBTZXQgdXAgVFggZGVzY3JpcHRvciByaW5nICovCiAJZWZ4X25pY19pbml0 X3R4KHR4X3F1ZXVlKTsKQEAgLTc0Niw2ICs3NTksNyBAQCB2b2lkIGVmeF9maW5pX3R4X3F1ZXVl KHN0cnVjdCBlZnhfdHhfcXVldWUgKnR4X3F1ZXVlKQogCiAJCSsrdHhfcXVldWUtPnJlYWRfY291 bnQ7CiAJfQorCXR4X3F1ZXVlLT54bWl0X21vcmVfYXZhaWxhYmxlID0gZmFsc2U7CiAJbmV0ZGV2 X3R4X3Jlc2V0X3F1ZXVlKHR4X3F1ZXVlLT5jb3JlX3R4cSk7CiB9CiAKQEAgLTEzMDEsOCArMTMx NSwyMCBAQCBzdGF0aWMgaW50IGVmeF9lbnF1ZXVlX3NrYl90c28oc3RydWN0IGVmeF90eF9xdWV1 ZSAqdHhfcXVldWUsCiAJZWZ4X3R4X21heWJlX3N0b3BfcXVldWUodHhfcXVldWUpOwogCiAJLyog UGFzcyBvZmYgdG8gaGFyZHdhcmUgKi8KLQlpZiAoIXNrYi0+eG1pdF9tb3JlIHx8IG5ldGlmX3ht aXRfc3RvcHBlZCh0eF9xdWV1ZS0+Y29yZV90eHEpKQorCWlmICghc2tiLT54bWl0X21vcmUgfHwg bmV0aWZfeG1pdF9zdG9wcGVkKHR4X3F1ZXVlLT5jb3JlX3R4cSkpIHsKKwkJc3RydWN0IGVmeF90 eF9xdWV1ZSAqdHhxMiA9IGVmeF90eF9xdWV1ZV9wYXJ0bmVyKHR4X3F1ZXVlKTsKKworCQkvKiBU aGVyZSBjb3VsZCBiZSBwYWNrZXRzIGxlZnQgb24gdGhlIHBhcnRuZXIgcXVldWUgaWYgdGhvc2UK KwkJICogU0tCcyBoYWQgc2tiLT54bWl0X21vcmUgc2V0LiBJZiB3ZSBkbyBub3QgcHVzaCB0aG9z ZSB0aGV5CisJCSAqIGNvdWxkIGJlIGxlZnQgZm9yIGEgbG9uZyB0aW1lIGFuZCBjYXVzZSBhIG5l dGRldiB3YXRjaGRvZy4KKwkJICovCisJCWlmICh0eHEyLT54bWl0X21vcmVfYXZhaWxhYmxlKQor CQkJZWZ4X25pY19wdXNoX2J1ZmZlcnModHhxMik7CisKIAkJZWZ4X25pY19wdXNoX2J1ZmZlcnMo dHhfcXVldWUpOworCX0gZWxzZSB7CisJCXR4X3F1ZXVlLT54bWl0X21vcmVfYXZhaWxhYmxlID0g c2tiLT54bWl0X21vcmU7CisJfQogCiAJdHhfcXVldWUtPnRzb19idXJzdHMrKzsKIAlyZXR1cm4g TkVUREVWX1RYX09LOwotLSAKMi40LjEKCgpGcm9tIGFiZDcxOWFlZjU3NGVhMDVhZDkyMjlhZjk2 ZDhmNmJjOTcxNjFkNmIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVyaWMgRHVtYXpl dCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0ZTogTW9uLCAyIE5vdiAyMDE1IDA3OjUwOjA3IC0w ODAwClN1YmplY3Q6IFtQQVRDSCAxMy8xOV0gbmV0OiBhdm9pZCBOVUxMIGRlcmVmIGluIGluZXRf Y3RsX3NvY2tfZGVzdHJveSgpCgpbIFVwc3RyZWFtIGNvbW1pdCA4ZmE2NzdkMjcwNmQzMjVkNzFk YWI5MWJmNmU2NTEyYzA1MjE0ZTM3IF0KClVuZGVyIGxvdyBtZW1vcnkgY29uZGl0aW9ucywgdGNw X3NrX2luaXQoKSBhbmQgaWNtcF9za19pbml0KCkKY2FuIGJvdGggaXRlcmF0ZSBvbiBhbGwgcG9z c2libGUgY3B1cyBhbmQgY2FsbCBpbmV0X2N0bF9zb2NrX2Rlc3Ryb3koKSwKd2l0aCBldmVudHVh bCBOVUxMIHBvaW50ZXIuCgpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdv b2dsZS5jb20+ClJlcG9ydGVkLWJ5OiBEbWl0cnkgVnl1a292IDxkdnl1a292QGdvb2dsZS5jb20+ ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0t CiBpbmNsdWRlL25ldC9pbmV0X2NvbW1vbi5oIHwgMyArKy0KIDEgZmlsZSBjaGFuZ2VkLCAyIGlu c2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9pbmV0 X2NvbW1vbi5oIGIvaW5jbHVkZS9uZXQvaW5ldF9jb21tb24uaAppbmRleCBiMjgyOGEwLi5hN2Q4 MTJkIDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC9pbmV0X2NvbW1vbi5oCisrKyBiL2luY2x1ZGUv bmV0L2luZXRfY29tbW9uLmgKQEAgLTQyLDcgKzQyLDggQEAgaW50IGluZXRfcmVjdl9lcnJvcihz dHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBtc2doZHIgKm1zZywgaW50IGxlbiwKIAogc3RhdGljIGlu bGluZSB2b2lkIGluZXRfY3RsX3NvY2tfZGVzdHJveShzdHJ1Y3Qgc29jayAqc2spCiB7Ci0Jc2tf cmVsZWFzZV9rZXJuZWwoc2spOworCWlmIChzaykKKwkJc2tfcmVsZWFzZV9rZXJuZWwoc2spOwog fQogCiAjZW5kaWYKLS0gCjIuNC4xCgoKRnJvbSBhYWVmOTI5ZmM5YzZjYTQwMWY1YjU0OGJhMjli NjIyMzg5MGFhYTRlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTYWJyaW5hIER1YnJv Y2EgPHNkQHF1ZWFzeXNuYWlsLm5ldD4KRGF0ZTogV2VkLCA0IE5vdiAyMDE1IDE0OjQ3OjUzICsw MTAwClN1YmplY3Q6IFtQQVRDSCAxNC8xOV0gaXB2NjogY2xlYW4gdXAgZGV2X3NubXA2IHByb2Mg ZW50cnkgd2hlbiB3ZSBmYWlsIHRvCiBpbml0aWFsaXplIGluZXQ2X2RldgoKWyBVcHN0cmVhbSBj b21taXQgMmExODlmOWU1NzY1MGU5ZjMxMGRkZjRhYWQ3NWQ2NmMxMjMzYTA2NCBdCgpJbiBpcHY2 X2FkZF9kZXYsIHdoZW4gYWRkcmNvbmZfc3lzY3RsX3JlZ2lzdGVyIGZhaWxzLCB3ZSBkbyBub3Qg Y2xlYW4gdXAKdGhlIGRldl9zbm1wNiBlbnRyeSB0aGF0IHdlIGhhdmUgYWxyZWFkeSByZWdpc3Rl cmVkIGZvciB0aGlzIGRldmljZS4KQ2FsbCBzbm1wNl91bnJlZ2lzdGVyX2RldiBpbiB0aGlzIGNh c2UuCgpGaXhlczogYTMxN2EyZjE5ZGE3ZCAoImlwdjY6IGZhaWwgZWFybHkgd2hlbiBjcmVhdGlu ZyBuZXRkZXYgbmFtZWQgYWxsIG9yIGRlZmF1bHQiKQpSZXBvcnRlZC1ieTogRG1pdHJ5IFZ5dWtv diA8ZHZ5dWtvdkBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBTYWJyaW5hIER1YnJvY2EgPHNk QHF1ZWFzeXNuYWlsLm5ldD4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBk YXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY2L2FkZHJjb25mLmMgfCAxICsKIDEgZmlsZSBjaGFu Z2VkLCAxIGluc2VydGlvbigrKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2FkZHJjb25mLmMgYi9u ZXQvaXB2Ni9hZGRyY29uZi5jCmluZGV4IDE3YTAyNTguLjNjMzIxYzIgMTAwNjQ0Ci0tLSBhL25l dC9pcHY2L2FkZHJjb25mLmMKKysrIGIvbmV0L2lwdjYvYWRkcmNvbmYuYwpAQCAtMzk2LDYgKzM5 Niw3IEBAIHN0YXRpYyBzdHJ1Y3QgaW5ldDZfZGV2ICppcHY2X2FkZF9kZXYoc3RydWN0IG5ldF9k ZXZpY2UgKmRldikKIAlpZiAoZXJyKSB7CiAJCWlwdjZfbWNfZGVzdHJveV9kZXYobmRldik7CiAJ CWRlbF90aW1lcigmbmRldi0+cmVnZW5fdGltZXIpOworCQlzbm1wNl91bnJlZ2lzdGVyX2Rldihu ZGV2KTsKIAkJZ290byBlcnJfcmVsZWFzZTsKIAl9CiAJLyogcHJvdGVjdGVkIGJ5IHJ0bmxfbG9j ayAqLwotLSAKMi40LjEKCgpGcm9tIDMzZjk3YTE1MWQ4M2VhNjQzNWM5NTAzMDM2N2ZlNTdkMzlh NmFiZjIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFdBTkcgQ29uZyA8eGl5b3Uud2Fu Z2NvbmdAZ21haWwuY29tPgpEYXRlOiBUdWUsIDMgTm92IDIwMTUgMTQ6MzI6NTcgLTA4MDAKU3Vi amVjdDogW1BBVENIIDE1LzE5XSBpcHY0OiBkaXNhYmxlIEJIIHdoZW4gY2hhbmdpbmcgaXAgbG9j YWwgcG9ydCByYW5nZQoKWyBVcHN0cmVhbSBjb21taXQgNGVlM2JkNGE4Yzc0NjNjZGVmMGI4MmVi YzMzZmM5NGE5MTcwYTdlMCBdCgpUaGlzIGZpeGVzIHRoZSBmb2xsb3dpbmcgbG9ja2RlcCB3YXJu aW5nOgoKIFsgSU5GTzogaW5jb25zaXN0ZW50IGxvY2sgc3RhdGUgXQogNC4zLjAtcmM3KyAjMTE5 NyBOb3QgdGFpbnRlZAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBpbmNvbnNp c3RlbnQge0lOLVNPRlRJUlEtUn0gLT4ge1NPRlRJUlEtT04tV30gdXNhZ2UuCiBzeXNjdGwvMTAx OSBbSEMwWzBdOlNDMFswXTpIRTE6U0UxXSB0YWtlczoKICAoJigmbmV0LT5pcHY0LmlwX2xvY2Fs X3BvcnRzLmxvY2spLT5zZXFjb3VudCl7Ky4rLS4ufSwgYXQ6IFs8ZmZmZmZmZmY4MTkyMWRlNz5d IGlwdjRfbG9jYWxfcG9ydF9yYW5nZSsweGI0LzB4MTJhCiB7SU4tU09GVElSUS1SfSBzdGF0ZSB3 YXMgcmVnaXN0ZXJlZCBhdDoKICAgWzxmZmZmZmZmZjgxMGJkNjgyPl0gX19sb2NrX2FjcXVpcmUr MHgyZjYvMHhkZjAKICAgWzxmZmZmZmZmZjgxMGJlNmQ1Pl0gbG9ja19hY3F1aXJlKzB4MTFjLzB4 MWE0CiAgIFs8ZmZmZmZmZmY4MThlNTk5Yz5dIGluZXRfZ2V0X2xvY2FsX3BvcnRfcmFuZ2UrMHg0 ZS8weGFlCiAgIFs8ZmZmZmZmZmY4MTY2ZThlMz5dIHVkcF9mbG93X3NyY19wb3J0LmNvbnN0cHJv cC40MCsweDIzLzB4MTE2CiAgIFs8ZmZmZmZmZmY4MTY3MWNiOT5dIHZ4bGFuX3htaXRfb25lKzB4 MjE5LzB4YTZhCiAgIFs8ZmZmZmZmZmY4MTY3MmY3NT5dIHZ4bGFuX3htaXQrMHhhNmIvMHhhYTUK ICAgWzxmZmZmZmZmZjgxN2YyZGViPl0gZGV2X2hhcmRfc3RhcnRfeG1pdCsweDJhZS8weDQ2NQog ICBbPGZmZmZmZmZmODE3ZjM1ZWQ+XSBfX2Rldl9xdWV1ZV94bWl0KzB4NTMxLzB4NjMzCiAgIFs8 ZmZmZmZmZmY4MTdmMzcwMj5dIGRldl9xdWV1ZV94bWl0X3NrKzB4MTMvMHgxNQogICBbPGZmZmZm ZmZmODE4MDA0YTU+XSBuZWlnaF9yZXNvbHZlX291dHB1dCsweDEyZi8weDE0ZAogICBbPGZmZmZm ZmZmODE5NTljZmE+XSBpcDZfZmluaXNoX291dHB1dDIrMHgzNDQvMHgzOWYKICAgWzxmZmZmZmZm ZjgxOTViZjU4Pl0gaXA2X2ZpbmlzaF9vdXRwdXQrMHg4OC8weDhlCiAgIFs8ZmZmZmZmZmY4MTk1 YmZlZj5dIGlwNl9vdXRwdXQrMHg5MS8weGU1CiAgIFs8ZmZmZmZmZmY4MTk3OTJhZT5dIGRzdF9v dXRwdXRfc2srMHg0Ny8weDRjCiAgIFs8ZmZmZmZmZmY4MTk3OTM5Mj5dIE5GX0hPT0tfVEhSRVNI LmNvbnN0cHJvcC4zMCsweDM4LzB4ODIKICAgWzxmZmZmZmZmZjgxOTc5ODFlPl0gbWxkX3NlbmRw YWNrKzB4MTg5LzB4MjY2CiAgIFs8ZmZmZmZmZmY4MTk3YjI4Yj5dIG1sZF9pZmNfdGltZXJfZXhw aXJlKzB4MWVmLzB4MjIzCiAgIFs8ZmZmZmZmZmY4MTBkZTU4MT5dIGNhbGxfdGltZXJfZm4rMHhm Yi8weDI4YwogICBbPGZmZmZmZmZmODEwZGVkMWU+XSBydW5fdGltZXJfc29mdGlycSsweDFjNy8w eDFmMQoKRml4ZXM6IGI4ZjFhNTU2MzllNiAoInVkcDogQWRkIGZ1bmN0aW9uIHRvIG1ha2Ugc291 cmNlIHBvcnQgZm9yIFVEUCB0dW5uZWxzIikKQ2M6IFRvbSBIZXJiZXJ0IDx0b21AaGVyYmVydGxh bmQuY29tPgpTaWduZWQtb2ZmLWJ5OiBDb25nIFdhbmcgPHhpeW91Lndhbmdjb25nQGdtYWlsLmNv bT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0Pgot LS0KIG5ldC9pcHY0L3N5c2N0bF9uZXRfaXB2NC5jIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwg MiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY0L3N5 c2N0bF9uZXRfaXB2NC5jIGIvbmV0L2lwdjQvc3lzY3RsX25ldF9pcHY0LmMKaW5kZXggYjNjNTNj OC4uNjMzY2QzNCAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvc3lzY3RsX25ldF9pcHY0LmMKKysrIGIv bmV0L2lwdjQvc3lzY3RsX25ldF9pcHY0LmMKQEAgLTQ1LDEwICs0NSwxMCBAQCBzdGF0aWMgaW50 IGlwX3BpbmdfZ3JvdXBfcmFuZ2VfbWF4W10gPSB7IEdJRF9UX01BWCwgR0lEX1RfTUFYIH07CiAv KiBVcGRhdGUgc3lzdGVtIHZpc2libGUgSVAgcG9ydCByYW5nZSAqLwogc3RhdGljIHZvaWQgc2V0 X2xvY2FsX3BvcnRfcmFuZ2Uoc3RydWN0IG5ldCAqbmV0LCBpbnQgcmFuZ2VbMl0pCiB7Ci0Jd3Jp dGVfc2VxbG9jaygmbmV0LT5pcHY0LmlwX2xvY2FsX3BvcnRzLmxvY2spOworCXdyaXRlX3NlcWxv Y2tfYmgoJm5ldC0+aXB2NC5pcF9sb2NhbF9wb3J0cy5sb2NrKTsKIAluZXQtPmlwdjQuaXBfbG9j YWxfcG9ydHMucmFuZ2VbMF0gPSByYW5nZVswXTsKIAluZXQtPmlwdjQuaXBfbG9jYWxfcG9ydHMu cmFuZ2VbMV0gPSByYW5nZVsxXTsKLQl3cml0ZV9zZXF1bmxvY2soJm5ldC0+aXB2NC5pcF9sb2Nh bF9wb3J0cy5sb2NrKTsKKwl3cml0ZV9zZXF1bmxvY2tfYmgoJm5ldC0+aXB2NC5pcF9sb2NhbF9w b3J0cy5sb2NrKTsKIH0KIAogLyogVmFsaWRhdGUgY2hhbmdlcyBmcm9tIC9wcm9jIGludGVyZmFj ZS4gKi8KLS0gCjIuNC4xCgoKRnJvbSBlNGQ5NGEwYzU2NTQ2NmRhMDU4NDc1NzdlY2FjN2UwOGQz MDk4YTRkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBGcmFuY2VzY28gUnVnZ2VyaSA8 ZnJ1Z2dlcmlAYXJpc3RhbmV0d29ya3MuY29tPgpEYXRlOiBUaHUsIDUgTm92IDIwMTUgMDg6MTY6 MTQgLTA4MDAKU3ViamVjdDogW1BBVENIIDE2LzE5XSBwYWNrZXQ6IHJhY2UgY29uZGl0aW9uIGlu IHBhY2tldF9iaW5kCgpbIFVwc3RyZWFtIGNvbW1pdCAzMGY3ZWExYzJiNWY1ZmI3NDYyYzVhZTQ0 ZmUyZTQwY2IyZDZhNDc0IF0KClRoZXJlIGlzIGEgcmFjZSBjb25kaXRpb25zIGJldHdlZW4gcGFj a2V0X25vdGlmaWVyIGFuZCBwYWNrZXRfYmluZHtfc3BrdH0uCgpJdCBoYXBwZW5zIGlmIHBhY2tl dF9ub3RpZmllcihORVRERVZfVU5SRUdJU1RFUikgZXhlY3V0ZXMgYmV0d2VlbiB0aGUKdGltZSBw YWNrZXRfYmluZHtfc3BrdH0gdGFrZXMgYSByZWZlcmVuY2Ugb24gdGhlIG5ldyBuZXRkZXZpY2Ug YW5kIHRoZQp0aW1lIHBhY2tldF9kb19iaW5kIHNldHMgcG8tPmlmaW5kZXguCkluIHRoaXMgY2Fz ZSB0aGUgbm90aWZpY2F0aW9uIGNhbiBiZSBtaXNzZWQuCklmIHRoaXMgaGFwcGVucyBkdXJpbmcg YSBkZXZfY2hhbmdlX25ldF9uYW1lc3BhY2UgdGhpcyBjYW4gcmVzdWx0IGluIHRoZQpuZXRkZXZp Y2UgdG8gYmUgbW92ZWQgdG8gdGhlIG5ldyBuYW1lc3BhY2Ugd2hpbGUgdGhlIHBhY2tldF9zb2Nr IGluIHRoZQpvbGQgbmFtZXNwYWNlIHN0aWxsIGhvbGRzIGEgcmVmZXJlbmNlIG9uIGl0LiBXaGVu IHRoZSBuZXRkZXZpY2UgaXMgbGF0ZXIKZGVsZXRlZCBpbiB0aGUgbmV3IG5hbWVzcGFjZSB0aGUg ZGVsZXRpb24gaGFuZ3Mgc2luY2UgdGhlIHBhY2tldF9zb2NrCmlzIG5vdCBmb3VuZCBpbiB0aGUg bmV3IG5hbWVzcGFjZScgJm5ldC0+cGFja2V0LnNrbGlzdC4KSXQgY2FuIGJlIHJlcHJvZHVjZWQg d2l0aCB0aGUgc2NyaXB0IGJlbG93LgoKVGhpcyBwYXRjaCBtYWtlcyBwYWNrZXRfZG9fYmluZCBj aGVjayBhZ2FpbiBmb3IgdGhlIHByZXNlbmNlIG9mIHRoZQpuZXRkZXZpY2UgaW4gdGhlIHBhY2tl dF9zb2NrJ3MgbmFtZXNwYWNlIGFmdGVyIHRoZSBzeW5jaHJvbml6ZV9uZXQKaW4gdW5yZWdpc3Rl cl9wcm90X2hvb2suCk1vcmUgaW4gZ2VuZXJhbCBpdCBhbHNvIHVzZXMgdGhlIHJjdSBsb2NrIGZv ciB0aGUgZHVyYXRpb24gb2YgdGhlIGJpbmQKdG8gc3RvcCBkZXZfY2hhbmdlX25ldF9uYW1lc3Bh Y2Uvcm9sbGJhY2tfcmVnaXN0ZXJlZF9tYW55IGZyb20KZ29pbmcgcGFzdCB0aGUgc3luY2hyb25p emVfbmV0IGZvbGxvd2luZyB1bmxpc3RfbmV0ZGV2aWNlLCBzbyB0aGF0Cm5vIE5FVERFVl9VTlJF R0lTVEVSIG5vdGlmaWNhdGlvbnMgY2FuIGhhcHBlbiBvbiB0aGUgbmV3IG5ldGRldmljZQp3aGls ZSB0aGUgYmluZCBpcyBleGVjdXRpbmcuIEluIG9yZGVyIHRvIGRvIHRoaXMgc29tZSBjb2RlIGZy b20KcGFja2V0X2JpbmR7X3Nwa3R9IGlzIGNvbnNvbGlkYXRlZCBpbnRvIHBhY2tldF9kb19kZXYu CgppbXBvcnQgc29ja2V0LCBvcywgdGltZSwgc3lzCnByb3RvPTcKcmVhbERldj0nZW0xJwp2bGFu SWQ9NDAwCmlmIGxlbihzeXMuYXJndikgPiAxOgogICB2bGFuSWQ9aW50KHN5cy5hcmd2WzFdKQpk ZXY9J3ZsYW4lZCcgJSB2bGFuSWQKCm9zLnN5c3RlbSgndGFza3NldCAtcCAweDEwICVkJyAlIG9z LmdldHBpZCgpKQoKcyA9IHNvY2tldC5zb2NrZXQoc29ja2V0LlBGX1BBQ0tFVCwgc29ja2V0LlNP Q0tfUkFXLCBwcm90bykKb3Muc3lzdGVtKCdpcCBsaW5rIGFkZCBsaW5rICVzIG5hbWUgJXMgdHlw ZSB2bGFuIGlkICVkJyAlCiAgICAgICAgICAocmVhbERldiwgZGV2LCB2bGFuSWQpKQpvcy5zeXN0 ZW0oJ2lwIG5ldG5zIGFkZCBkdW1teScpCgpwaWQ9b3MuZm9yaygpCgppZiBwaWQgPT0gMDoKICAg IyBkZXYgc2hvdWxkIGJlIG1vdmVkIHdoaWxlIHBhY2tldF9kb19iaW5kIGlzIGluIHN5bmNocm9u aXplIG5ldAogICBvcy5zeXN0ZW0oJ3Rhc2tzZXQgLXAgMHgyMDAwMCAlZCcgJSBvcy5nZXRwaWQo KSkKICAgb3Muc3lzdGVtKCdpcCBsaW5rIHNldCAlcyBuZXRucyBkdW1teScgJSBkZXYpCiAgIG9z LnN5c3RlbSgnaXAgbmV0bnMgZXhlYyBkdW1teSBpcCBsaW5rIGRlbCAlcycgJSBkZXYpCiAgIHMu Y2xvc2UoKQogICBzeXMuZXhpdCgwKQoKdGltZS5zbGVlcCguMDA0KQp0cnk6CiAgIHMuYmluZCgo JyVzJyAlIGRldiwgcHJvdG8rMSkpCmV4Y2VwdDoKICAgcHJpbnQgJ0NvdWxkIG5vdCBiaW5kIHNv Y2tldCcKICAgcy5jbG9zZSgpCiAgIG9zLnN5c3RlbSgnaXAgbmV0bnMgZGVsIGR1bW15JykKICAg c3lzLmV4aXQoMCkKCm9zLndhaXRwaWQocGlkLCAwKQpzLmNsb3NlKCkKb3Muc3lzdGVtKCdpcCBu ZXRucyBkZWwgZHVtbXknKQpzeXMuZXhpdCgwKQoKU2lnbmVkLW9mZi1ieTogRnJhbmNlc2NvIFJ1 Z2dlcmkgPGZydWdnZXJpQGFyaXN0YS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxl ciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvcGFja2V0L2FmX3BhY2tldC5jIHwgODAg KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmls ZSBjaGFuZ2VkLCA0OSBpbnNlcnRpb25zKCspLCAzMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9uZXQvcGFja2V0L2FmX3BhY2tldC5jIGIvbmV0L3BhY2tldC9hZl9wYWNrZXQuYwppbmRleCBi ZjYwOTc3Li5iZDQxNDViIDEwMDY0NAotLS0gYS9uZXQvcGFja2V0L2FmX3BhY2tldC5jCisrKyBi L25ldC9wYWNrZXQvYWZfcGFja2V0LmMKQEAgLTI2NDIsMjIgKzI2NDIsNDAgQEAgc3RhdGljIGlu dCBwYWNrZXRfcmVsZWFzZShzdHJ1Y3Qgc29ja2V0ICpzb2NrKQogICoJQXR0YWNoIGEgcGFja2V0 IGhvb2suCiAgKi8KIAotc3RhdGljIGludCBwYWNrZXRfZG9fYmluZChzdHJ1Y3Qgc29jayAqc2ss IHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIF9fYmUxNiBwcm90bykKK3N0YXRpYyBpbnQgcGFja2V0 X2RvX2JpbmQoc3RydWN0IHNvY2sgKnNrLCBjb25zdCBjaGFyICpuYW1lLCBpbnQgaWZpbmRleCwK KwkJCSAgX19iZTE2IHByb3RvKQogewogCXN0cnVjdCBwYWNrZXRfc29jayAqcG8gPSBwa3Rfc2so c2spOwogCXN0cnVjdCBuZXRfZGV2aWNlICpkZXZfY3VycjsKIAlfX2JlMTYgcHJvdG9fY3VycjsK IAlib29sIG5lZWRfcmVob29rOworCXN0cnVjdCBuZXRfZGV2aWNlICpkZXYgPSBOVUxMOworCWlu dCByZXQgPSAwOworCWJvb2wgdW5saXN0ZWQgPSBmYWxzZTsKIAotCWlmIChwby0+ZmFub3V0KSB7 Ci0JCWlmIChkZXYpCi0JCQlkZXZfcHV0KGRldik7Ci0KKwlpZiAocG8tPmZhbm91dCkKIAkJcmV0 dXJuIC1FSU5WQUw7Ci0JfQogCiAJbG9ja19zb2NrKHNrKTsKIAlzcGluX2xvY2soJnBvLT5iaW5k X2xvY2spOworCXJjdV9yZWFkX2xvY2soKTsKKworCWlmIChuYW1lKSB7CisJCWRldiA9IGRldl9n ZXRfYnlfbmFtZV9yY3Uoc29ja19uZXQoc2spLCBuYW1lKTsKKwkJaWYgKCFkZXYpIHsKKwkJCXJl dCA9IC1FTk9ERVY7CisJCQlnb3RvIG91dF91bmxvY2s7CisJCX0KKwl9IGVsc2UgaWYgKGlmaW5k ZXgpIHsKKwkJZGV2ID0gZGV2X2dldF9ieV9pbmRleF9yY3Uoc29ja19uZXQoc2spLCBpZmluZGV4 KTsKKwkJaWYgKCFkZXYpIHsKKwkJCXJldCA9IC1FTk9ERVY7CisJCQlnb3RvIG91dF91bmxvY2s7 CisJCX0KKwl9CisKKwlpZiAoZGV2KQorCQlkZXZfaG9sZChkZXYpOwogCiAJcHJvdG9fY3VyciA9 IHBvLT5wcm90X2hvb2sudHlwZTsKIAlkZXZfY3VyciA9IHBvLT5wcm90X2hvb2suZGV2OwpAQCAt MjY2NSwxNCArMjY4MywyOSBAQCBzdGF0aWMgaW50IHBhY2tldF9kb19iaW5kKHN0cnVjdCBzb2Nr ICpzaywgc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgX19iZTE2IHByb3RvKQogCW5lZWRfcmVob29r ID0gcHJvdG9fY3VyciAhPSBwcm90byB8fCBkZXZfY3VyciAhPSBkZXY7CiAKIAlpZiAobmVlZF9y ZWhvb2spIHsKLQkJdW5yZWdpc3Rlcl9wcm90X2hvb2soc2ssIHRydWUpOworCQlpZiAocG8tPnJ1 bm5pbmcpIHsKKwkJCXJjdV9yZWFkX3VubG9jaygpOworCQkJX191bnJlZ2lzdGVyX3Byb3RfaG9v ayhzaywgdHJ1ZSk7CisJCQlyY3VfcmVhZF9sb2NrKCk7CisJCQlkZXZfY3VyciA9IHBvLT5wcm90 X2hvb2suZGV2OworCQkJaWYgKGRldikKKwkJCQl1bmxpc3RlZCA9ICFkZXZfZ2V0X2J5X2luZGV4 X3JjdShzb2NrX25ldChzayksCisJCQkJCQkJCSBkZXYtPmlmaW5kZXgpOworCQl9CiAKIAkJcG8t Pm51bSA9IHByb3RvOwogCQlwby0+cHJvdF9ob29rLnR5cGUgPSBwcm90bzsKLQkJcG8tPnByb3Rf aG9vay5kZXYgPSBkZXY7CiAKLQkJcG8tPmlmaW5kZXggPSBkZXYgPyBkZXYtPmlmaW5kZXggOiAw OwotCQlwYWNrZXRfY2FjaGVkX2Rldl9hc3NpZ24ocG8sIGRldik7CisJCWlmICh1bmxpa2VseSh1 bmxpc3RlZCkpIHsKKwkJCWRldl9wdXQoZGV2KTsKKwkJCXBvLT5wcm90X2hvb2suZGV2ID0gTlVM TDsKKwkJCXBvLT5pZmluZGV4ID0gLTE7CisJCQlwYWNrZXRfY2FjaGVkX2Rldl9yZXNldChwbyk7 CisJCX0gZWxzZSB7CisJCQlwby0+cHJvdF9ob29rLmRldiA9IGRldjsKKwkJCXBvLT5pZmluZGV4 ID0gZGV2ID8gZGV2LT5pZmluZGV4IDogMDsKKwkJCXBhY2tldF9jYWNoZWRfZGV2X2Fzc2lnbihw bywgZGV2KTsKKwkJfQogCX0KIAlpZiAoZGV2X2N1cnIpCiAJCWRldl9wdXQoZGV2X2N1cnIpOwpA QCAtMjY4MCw3ICsyNzEzLDcgQEAgc3RhdGljIGludCBwYWNrZXRfZG9fYmluZChzdHJ1Y3Qgc29j ayAqc2ssIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIF9fYmUxNiBwcm90bykKIAlpZiAocHJvdG8g PT0gMCB8fCAhbmVlZF9yZWhvb2spCiAJCWdvdG8gb3V0X3VubG9jazsKIAotCWlmICghZGV2IHx8 IChkZXYtPmZsYWdzICYgSUZGX1VQKSkgeworCWlmICghdW5saXN0ZWQgJiYgKCFkZXYgfHwgKGRl di0+ZmxhZ3MgJiBJRkZfVVApKSkgewogCQlyZWdpc3Rlcl9wcm90X2hvb2soc2spOwogCX0gZWxz ZSB7CiAJCXNrLT5za19lcnIgPSBFTkVURE9XTjsKQEAgLTI2ODksOSArMjcyMiwxMCBAQCBzdGF0 aWMgaW50IHBhY2tldF9kb19iaW5kKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IG5ldF9kZXZpY2Ug KmRldiwgX19iZTE2IHByb3RvKQogCX0KIAogb3V0X3VubG9jazoKKwlyY3VfcmVhZF91bmxvY2so KTsKIAlzcGluX3VubG9jaygmcG8tPmJpbmRfbG9jayk7CiAJcmVsZWFzZV9zb2NrKHNrKTsKLQly ZXR1cm4gMDsKKwlyZXR1cm4gcmV0OwogfQogCiAvKgpAQCAtMjcwMyw4ICsyNzM3LDYgQEAgc3Rh dGljIGludCBwYWNrZXRfYmluZF9zcGt0KHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVjdCBzb2Nr YWRkciAqdWFkZHIsCiB7CiAJc3RydWN0IHNvY2sgKnNrID0gc29jay0+c2s7CiAJY2hhciBuYW1l WzE1XTsKLQlzdHJ1Y3QgbmV0X2RldmljZSAqZGV2OwotCWludCBlcnIgPSAtRU5PREVWOwogCiAJ LyoKIAkgKglDaGVjayBsZWdhbGl0eQpAQCAtMjcxNCwxOSArMjc0NiwxMyBAQCBzdGF0aWMgaW50 IHBhY2tldF9iaW5kX3Nwa3Qoc3RydWN0IHNvY2tldCAqc29jaywgc3RydWN0IHNvY2thZGRyICp1 YWRkciwKIAkJcmV0dXJuIC1FSU5WQUw7CiAJc3RybGNweShuYW1lLCB1YWRkci0+c2FfZGF0YSwg c2l6ZW9mKG5hbWUpKTsKIAotCWRldiA9IGRldl9nZXRfYnlfbmFtZShzb2NrX25ldChzayksIG5h bWUpOwotCWlmIChkZXYpCi0JCWVyciA9IHBhY2tldF9kb19iaW5kKHNrLCBkZXYsIHBrdF9zayhz ayktPm51bSk7Ci0JcmV0dXJuIGVycjsKKwlyZXR1cm4gcGFja2V0X2RvX2JpbmQoc2ssIG5hbWUs IDAsIHBrdF9zayhzayktPm51bSk7CiB9CiAKIHN0YXRpYyBpbnQgcGFja2V0X2JpbmQoc3RydWN0 IHNvY2tldCAqc29jaywgc3RydWN0IHNvY2thZGRyICp1YWRkciwgaW50IGFkZHJfbGVuKQogewog CXN0cnVjdCBzb2NrYWRkcl9sbCAqc2xsID0gKHN0cnVjdCBzb2NrYWRkcl9sbCAqKXVhZGRyOwog CXN0cnVjdCBzb2NrICpzayA9IHNvY2stPnNrOwotCXN0cnVjdCBuZXRfZGV2aWNlICpkZXYgPSBO VUxMOwotCWludCBlcnI7Ci0KIAogCS8qCiAJICoJQ2hlY2sgbGVnYWxpdHkKQEAgLTI3MzcsMTYg KzI3NjMsOCBAQCBzdGF0aWMgaW50IHBhY2tldF9iaW5kKHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0 cnVjdCBzb2NrYWRkciAqdWFkZHIsIGludCBhZGRyX2xlbgogCWlmIChzbGwtPnNsbF9mYW1pbHkg IT0gQUZfUEFDS0VUKQogCQlyZXR1cm4gLUVJTlZBTDsKIAotCWlmIChzbGwtPnNsbF9pZmluZGV4 KSB7Ci0JCWVyciA9IC1FTk9ERVY7Ci0JCWRldiA9IGRldl9nZXRfYnlfaW5kZXgoc29ja19uZXQo c2spLCBzbGwtPnNsbF9pZmluZGV4KTsKLQkJaWYgKGRldiA9PSBOVUxMKQotCQkJZ290byBvdXQ7 Ci0JfQotCWVyciA9IHBhY2tldF9kb19iaW5kKHNrLCBkZXYsIHNsbC0+c2xsX3Byb3RvY29sID8g OiBwa3Rfc2soc2spLT5udW0pOwotCi1vdXQ6Ci0JcmV0dXJuIGVycjsKKwlyZXR1cm4gcGFja2V0 X2RvX2JpbmQoc2ssIE5VTEwsIHNsbC0+c2xsX2lmaW5kZXgsCisJCQkgICAgICBzbGwtPnNsbF9w cm90b2NvbCA/IDogcGt0X3NrKHNrKS0+bnVtKTsKIH0KIAogc3RhdGljIHN0cnVjdCBwcm90byBw YWNrZXRfcHJvdG8gPSB7Ci0tIAoyLjQuMQoKCkZyb20gOGM2OGQ1NGE4OTEzM2I1MWEyZDE4YzYy YWY3ZDYzNjM3MDFjYWEzMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJpYyBEdW1h emV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpEYXRlOiBNb24sIDkgTm92IDIwMTUgMTc6NTE6MjMg LTA4MDAKU3ViamVjdDogW1BBVENIIDE3LzE5XSBuZXQ6IGZpeCBhIHJhY2UgaW4gZHN0X3JlbGVh c2UoKQoKWyBVcHN0cmVhbSBjb21taXQgZDY5YmJmODhjOGQwYjM2N2NmM2UzYTA1MmY2ZGFhZGY2 MzBlZTU2NiBdCgpPbmx5IGNwdSBzZWVpbmcgZHN0IHJlZmNvdW50IGdvaW5nIHRvIDAgY2FuIHNh ZmVseQpkZXJlZmVyZW5jZSBkc3QtPmZsYWdzLgoKT3RoZXJ3aXNlIGFuIG90aGVyIGNwdSBtaWdo dCBhbHJlYWR5IGhhdmUgZnJlZWQgdGhlIGRzdC4KCkZpeGVzOiAyN2I3NWM5NWYxMGQgKCJuZXQ6 IGF2b2lkIFJDVSBmb3IgTk9DQUNIRSBkc3QiKQpSZXBvcnRlZC1ieTogR3JlZyBUaGVsZW4gPGd0 aGVsZW5AZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBn b29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9m dC5uZXQ+Ci0tLQogbmV0L2NvcmUvZHN0LmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNl cnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvY29yZS9kc3QuYyBiL25l dC9jb3JlL2RzdC5jCmluZGV4IGEwMjg0MDkuLmE4MGU5MjMgMTAwNjQ0Ci0tLSBhL25ldC9jb3Jl L2RzdC5jCisrKyBiL25ldC9jb3JlL2RzdC5jCkBAIC0yODUsNyArMjg1LDcgQEAgdm9pZCBkc3Rf cmVsZWFzZShzdHJ1Y3QgZHN0X2VudHJ5ICpkc3QpCiAKIAkJbmV3cmVmY250ID0gYXRvbWljX2Rl Y19yZXR1cm4oJmRzdC0+X19yZWZjbnQpOwogCQlXQVJOX09OKG5ld3JlZmNudCA8IDApOwotCQlp ZiAodW5saWtlbHkoZHN0LT5mbGFncyAmIERTVF9OT0NBQ0hFKSAmJiAhbmV3cmVmY250KQorCQlp ZiAoIW5ld3JlZmNudCAmJiB1bmxpa2VseShkc3QtPmZsYWdzICYgRFNUX05PQ0FDSEUpKQogCQkJ Y2FsbF9yY3UoJmRzdC0+cmN1X2hlYWQsIGRzdF9kZXN0cm95X3JjdSk7CiAJfQogfQotLSAKMi40 LjEKCgpGcm9tIDdhOWY5YzhkOGI1ZTI4MjFmMDM5M2I1ODdjMTM5ZDZmNjU3ZWUwMmQgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IEphc29uIFdhbmcgPGphc293YW5nQHJlZGhhdC5jb20+ CkRhdGU6IFdlZCwgNSBBdWcgMjAxNSAxMDozNDowNCArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMTgv MTldIHZpcnRpby1uZXQ6IGRyb3AgTkVUSUZfRl9GUkFHTElTVAoKWyBVcHN0cmVhbSBjb21taXQg NDg5MDBjYjZhZjQyODJmYTBmYjZmZjRkNzJhODFhYTNkYWRiNWMzOSBdCgp2aXJ0aW8gZGVjbGFy ZXMgc3VwcG9ydCBmb3IgTkVUSUZfRl9GUkFHTElTVCwgYnV0IGFzc3VtZXMKdGhhdCB0aGVyZSBh cmUgYXQgbW9zdCBNQVhfU0tCX0ZSQUdTICsgMiBmcmFnbWVudHMgd2hpY2ggaXNuJ3QKYWx3YXlz IHRydWUgd2l0aCBhIGZyYWdsaXN0LgoKQSBsb25nZXIgZnJhZ2xpc3QgaW4gdGhlIHNrYiB3aWxs IG1ha2UgdGhlIGNhbGwgdG8gc2tiX3RvX3NndmVjIG92ZXJmbG93CnRoZSBzZyBhcnJheSwgbGVh ZGluZyB0byBtZW1vcnkgY29ycnVwdGlvbi4KCkRyb3AgTkVUSUZfRl9GUkFHTElTVCBzbyB3ZSBv bmx5IGdldCB3aGF0IHdlIGNhbiBoYW5kbGUuCgpDYzogTWljaGFlbCBTLiBUc2lya2luIDxtc3RA cmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogSmFzb24gV2FuZyA8amFzb3dhbmdAcmVkaGF0LmNv bT4KQWNrZWQtYnk6IE1pY2hhZWwgUy4gVHNpcmtpbiA8bXN0QHJlZGhhdC5jb20+ClNpZ25lZC1v ZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJz L25ldC92aXJ0aW9fbmV0LmMgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMo KyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdmlydGlvX25ldC5j IGIvZHJpdmVycy9uZXQvdmlydGlvX25ldC5jCmluZGV4IDQ4NGVjY2UuLmNlMmEyOTkgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvbmV0L3ZpcnRpb19uZXQuYworKysgYi9kcml2ZXJzL25ldC92aXJ0aW9f bmV0LmMKQEAgLTE3NDYsOSArMTc0Niw5IEBAIHN0YXRpYyBpbnQgdmlydG5ldF9wcm9iZShzdHJ1 Y3QgdmlydGlvX2RldmljZSAqdmRldikKIAkvKiBEbyB3ZSBzdXBwb3J0ICJoYXJkd2FyZSIgY2hl Y2tzdW1zPyAqLwogCWlmICh2aXJ0aW9faGFzX2ZlYXR1cmUodmRldiwgVklSVElPX05FVF9GX0NT VU0pKSB7CiAJCS8qIFRoaXMgb3BlbnMgdXAgdGhlIHdvcmxkIG9mIGV4dHJhIGZlYXR1cmVzLiAq LwotCQlkZXYtPmh3X2ZlYXR1cmVzIHw9IE5FVElGX0ZfSFdfQ1NVTXxORVRJRl9GX1NHfE5FVElG X0ZfRlJBR0xJU1Q7CisJCWRldi0+aHdfZmVhdHVyZXMgfD0gTkVUSUZfRl9IV19DU1VNIHwgTkVU SUZfRl9TRzsKIAkJaWYgKGNzdW0pCi0JCQlkZXYtPmZlYXR1cmVzIHw9IE5FVElGX0ZfSFdfQ1NV TXxORVRJRl9GX1NHfE5FVElGX0ZfRlJBR0xJU1Q7CisJCQlkZXYtPmZlYXR1cmVzIHw9IE5FVElG X0ZfSFdfQ1NVTSB8IE5FVElGX0ZfU0c7CiAKIAkJaWYgKHZpcnRpb19oYXNfZmVhdHVyZSh2ZGV2 LCBWSVJUSU9fTkVUX0ZfR1NPKSkgewogCQkJZGV2LT5od19mZWF0dXJlcyB8PSBORVRJRl9GX1RT TwotLSAKMi40LjEKCgpGcm9tIDFkYmY0ZGE3MTgxOTdkZWQ4ZGIyYWUxODYzNjg3NzE3OTA5YjAy NWQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFNhc2hhIExldmluIDxzYXNoYS5sZXZp bkBvcmFjbGUuY29tPgpEYXRlOiBUdWUsIDggU2VwIDIwMTUgMTA6NTM6NDAgLTA0MDAKU3ViamVj dDogW1BBVENIIDE5LzE5XSBSRFM6IHZlcmlmeSB0aGUgdW5kZXJseWluZyB0cmFuc3BvcnQgZXhp c3RzIGJlZm9yZQogY3JlYXRpbmcgYSBjb25uZWN0aW9uCgpbIFVwc3RyZWFtIGNvbW1pdCA3NGU5 OGViMDg1ODg5YjBkMmQ0OTA4ZjU5ZjZlMDAwMjYwNjMwMTRmIF0KClRoZXJlIHdhcyBubyB2ZXJp ZmljYXRpb24gdGhhdCBhbiB1bmRlcmx5aW5nIHRyYW5zcG9ydCBleGlzdHMgd2hlbiBjcmVhdGlu ZwphIGNvbm5lY3Rpb24sIHRoaXMgd291bGQgY2F1c2UgZGVyZWZlcmVuY2luZyBhIE5VTEwgcHRy LgoKSXQgbWlnaHQgaGFwcGVuIG9uIHNvY2tldHMgdGhhdCB3ZXJlbid0IHByb3Blcmx5IGJvdW5k IGJlZm9yZSBhdHRlbXB0aW5nIHRvCnNlbmQgYSBtZXNzYWdlLCB3aGljaCB3aWxsIGNhdXNlIGEg TlVMTCBwdHIgZGVyZWY6CgpbMTM1NTQ2LjA0NzcxOV0ga2FzYW46IEdQRiBjb3VsZCBiZSBjYXVz ZWQgYnkgTlVMTC1wdHIgZGVyZWYgb3IgdXNlciBtZW1vcnkgYWNjZXNzZ2VuZXJhbCBwcm90ZWN0 aW9uIGZhdWx0OiAwMDAwIFsjMV0gUFJFRU1QVCBTTVAgREVCVUdfUEFHRUFMTE9DIEtBU0FOClsx MzU1NDYuMDUxMjcwXSBNb2R1bGVzIGxpbmtlZCBpbjoKWzEzNTU0Ni4wNTE3ODFdIENQVTogNCBQ SUQ6IDE1NjUwIENvbW06IHRyaW5pdHktYzQgTm90IHRhaW50ZWQgNC4yLjAtbmV4dC0yMDE1MDkw Mi1zYXNoYS0wMDA0MS1nYmFhMTIyMi1kaXJ0eSAjMjUyNwpbMTM1NTQ2LjA1MzIxN10gdGFzazog ZmZmZjg4MDA4MzViYzAwMCB0aTogZmZmZjg4MDBiYzcwODAwMCB0YXNrLnRpOiBmZmZmODgwMGJj NzA4MDAwClsxMzU1NDYuMDU0MjkxXSBSSVA6IF9fcmRzX2Nvbm5fY3JlYXRlIChuZXQvcmRzL2Nv bm5lY3Rpb24uYzoxOTQpClsxMzU1NDYuMDU1NjY2XSBSU1A6IDAwMTg6ZmZmZjg4MDBiYzcwZmFi MCAgRUZMQUdTOiAwMDAxMDIwMgpbMTM1NTQ2LjA1NjQ1N10gUkFYOiBkZmZmZmMwMDAwMDAwMDAw IFJCWDogMDAwMDAwMDAwMDAwMGYyYyBSQ1g6IGZmZmY4ODAwODM1YmMwMDAKWzEzNTU0Ni4wNTc0 OTRdIFJEWDogMDAwMDAwMDAwMDAwMDAwNyBSU0k6IGZmZmY4ODAwODM1YmNjZDggUkRJOiAwMDAw MDAwMDAwMDAwMDM4ClsxMzU1NDYuMDU4NTMwXSBSQlA6IGZmZmY4ODAwYmM3MGZiMTggUjA4OiAw MDAwMDAwMDAwMDAwMDAxIFIwOTogMDAwMDAwMDAwMDAwMDAwMApbMTM1NTQ2LjA1OTU1Nl0gUjEw OiBmZmZmZWQwMTRkN2EzYTIzIFIxMTogZmZmZmVkMDE0ZDdhM2EyMSBSMTI6IDAwMDAwMDAwMDAw MDAwMDAKWzEzNTU0Ni4wNjA2MTRdIFIxMzogMDAwMDAwMDAwMDAwMDAwMSBSMTQ6IGZmZmY4ODAx ZWMzZDAwMDAgUjE1OiAwMDAwMDAwMDAwMDAwMDAwClsxMzU1NDYuMDYxNjY4XSBGUzogIDAwMDA3 ZmFhZDRmZmI3MDAoMDAwMCkgR1M6ZmZmZjg4MDI1MjAwMDAwMCgwMDAwKSBrbmxHUzowMDAwMDAw MDAwMDAwMDAwClsxMzU1NDYuMDYyODM2XSBDUzogIDAwMTAgRFM6IDAwMDAgRVM6IDAwMDAgQ1Iw OiAwMDAwMDAwMDgwMDUwMDNiClsxMzU1NDYuMDYzNjgyXSBDUjI6IDAwMDAwMDAwMDAwMDg0NmEg Q1IzOiAwMDAwMDAwMDlkMTM3MDAwIENSNDogMDAwMDAwMDAwMDAwMDZhMApbMTM1NTQ2LjA2NDcy M10gU3RhY2s6ClsxMzU1NDYuMDY1MDQ4XSAgZmZmZmZmZmZhZmUyMDU1YyBmZmZmZmZmZmFmZTIz ZmMxIGZmZmZlZDAwNDkzMDk3YmYgZmZmZjg4MDFlYzNkMDAwOApbMTM1NTQ2LjA2NjI0N10gIDAw MDAwMDAwMDAwMDAwMDAgMDAwMDAwMDAwMDAwMDBkMCAwMDAwMDAwMDAwMDAwMDAwIGFjMTk0YTI0 YzA1ODYzNDIKWzEzNTU0Ni4wNjc0MzhdICAxZmZmZjEwMDE3OGUxZjc4IGZmZmY4ODAzMjA1ODFi MDAgZmZmZjg4MDBiYzcwZmRkMCBmZmZmODgwMzIwNTgxYjAwClsxMzU1NDYuMDY4NjI5XSBDYWxs IFRyYWNlOgpbMTM1NTQ2LjA2OTAyOF0gPyBfX3Jkc19jb25uX2NyZWF0ZSAoaW5jbHVkZS9saW51 eC9yY3VwZGF0ZS5oOjg1NiBuZXQvcmRzL2Nvbm5lY3Rpb24uYzoxMzQpClsxMzU1NDYuMDY5OTg5 XSA/IHJkc19tZXNzYWdlX2NvcHlfZnJvbV91c2VyIChuZXQvcmRzL21lc3NhZ2UuYzoyOTgpClsx MzU1NDYuMDcxMDIxXSByZHNfY29ubl9jcmVhdGVfb3V0Z29pbmcgKG5ldC9yZHMvY29ubmVjdGlv bi5jOjI3OCkKWzEzNTU0Ni4wNzE5ODFdIHJkc19zZW5kbXNnIChuZXQvcmRzL3NlbmQuYzoxMDU4 KQpbMTM1NTQ2LjA3Mjg1OF0gPyBwZXJmX3RyYWNlX2xvY2sgKGluY2x1ZGUvdHJhY2UvZXZlbnRz L2xvY2suaDozOCkKWzEzNTU0Ni4wNzM3NDRdID8gbG9ja2RlcF9pbml0IChrZXJuZWwvbG9ja2lu Zy9sb2NrZGVwLmM6MzI5OCkKWzEzNTU0Ni4wNzQ1NzddID8gcmRzX3NlbmRfZHJvcF90byAobmV0 L3Jkcy9zZW5kLmM6OTc2KQpbMTM1NTQ2LjA3NTUwOF0gPyBfX21pZ2h0X2ZhdWx0ICguL2FyY2gv eDg2L2luY2x1ZGUvYXNtL2N1cnJlbnQuaDoxNCBtbS9tZW1vcnkuYzozNzk1KQpbMTM1NTQ2LjA3 NjM0OV0gPyBfX21pZ2h0X2ZhdWx0IChtbS9tZW1vcnkuYzozNzk1KQpbMTM1NTQ2LjA3NzE3OV0g PyByZHNfc2VuZF9kcm9wX3RvIChuZXQvcmRzL3NlbmQuYzo5NzYpClsxMzU1NDYuMDc4MTE0XSBz b2NrX3NlbmRtc2cgKG5ldC9zb2NrZXQuYzo2MTEgbmV0L3NvY2tldC5jOjYyMCkKWzEzNTU0Ni4w Nzg4NTZdIFNZU0Nfc2VuZHRvIChuZXQvc29ja2V0LmM6MTY1NykKWzEzNTU0Ni4wNzk1OTZdID8g U1lTQ19jb25uZWN0IChuZXQvc29ja2V0LmM6MTYyOCkKWzEzNTU0Ni4wODA1MTBdID8gdHJhY2Vf ZHVtcF9zdGFjayAoa2VybmVsL3RyYWNlL3RyYWNlLmM6MTkyNikKWzEzNTU0Ni4wODEzOTddID8g cmluZ19idWZmZXJfdW5sb2NrX2NvbW1pdCAoa2VybmVsL3RyYWNlL3JpbmdfYnVmZmVyLmM6MjQ3 OSBrZXJuZWwvdHJhY2UvcmluZ19idWZmZXIuYzoyNTU4IGtlcm5lbC90cmFjZS9yaW5nX2J1ZmZl ci5jOjI2NzQpClsxMzU1NDYuMDgyMzkwXSA/IHRyYWNlX2J1ZmZlcl91bmxvY2tfY29tbWl0IChr ZXJuZWwvdHJhY2UvdHJhY2UuYzoxNzQ5KQpbMTM1NTQ2LjA4MzQxMF0gPyB0cmFjZV9ldmVudF9y YXdfZXZlbnRfc3lzX2VudGVyIChpbmNsdWRlL3RyYWNlL2V2ZW50cy9zeXNjYWxscy5oOjE2KQpb MTM1NTQ2LjA4NDQ4MV0gPyBkb19hdWRpdF9zeXNjYWxsX2VudHJ5IChpbmNsdWRlL3RyYWNlL2V2 ZW50cy9zeXNjYWxscy5oOjE2KQpbMTM1NTQ2LjA4NTQzOF0gPyB0cmFjZV9idWZmZXJfdW5sb2Nr X2NvbW1pdCAoa2VybmVsL3RyYWNlL3RyYWNlLmM6MTc0OSkKWzEzNTU0Ni4wODU1MTVdIHJkc19p Yl9sYWRkcl9jaGVjaygpOiBhZGRyIDM2Ljc0LjI1LjE3MiByZXQgLTk5IG5vZGUgdHlwZSAtMQoK QWNrZWQtYnk6IFNhbnRvc2ggU2hpbGlta2FyIDxzYW50b3NoLnNoaWxpbWthckBvcmFjbGUuY29t PgpTaWduZWQtb2ZmLWJ5OiBTYXNoYSBMZXZpbiA8c2FzaGEubGV2aW5Ab3JhY2xlLmNvbT4KU2ln bmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5l dC9yZHMvY29ubmVjdGlvbi5jIHwgNiArKysrKysKIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlv bnMoKykKCmRpZmYgLS1naXQgYS9uZXQvcmRzL2Nvbm5lY3Rpb24uYyBiL25ldC9yZHMvY29ubmVj dGlvbi5jCmluZGV4IDM3OGMzYTYuLmY1ZmI3ZDYgMTAwNjQ0Ci0tLSBhL25ldC9yZHMvY29ubmVj dGlvbi5jCisrKyBiL25ldC9yZHMvY29ubmVjdGlvbi5jCkBAIC0xODMsNiArMTgzLDEyIEBAIHN0 YXRpYyBzdHJ1Y3QgcmRzX2Nvbm5lY3Rpb24gKl9fcmRzX2Nvbm5fY3JlYXRlKF9fYmUzMiBsYWRk ciwgX19iZTMyIGZhZGRyLAogCQl9CiAJfQogCisJaWYgKHRyYW5zID09IE5VTEwpIHsKKwkJa21l bV9jYWNoZV9mcmVlKHJkc19jb25uX3NsYWIsIGNvbm4pOworCQljb25uID0gRVJSX1BUUigtRU5P REVWKTsKKwkJZ290byBvdXQ7CisJfQorCiAJY29ubi0+Y190cmFucyA9IHRyYW5zOwogCiAJcmV0 ID0gdHJhbnMtPmNvbm5fYWxsb2MoY29ubiwgZ2ZwKTsKLS0gCjIuNC4xCgo= ----Next_Part(Fri_Nov_13_16_38_08_2015_159)----