From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 988B4C10F0E for ; Thu, 18 Apr 2019 22:53:48 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 3428F20693 for ; Thu, 18 Apr 2019 22:53:48 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1725917AbfDRWxq (ORCPT ); Thu, 18 Apr 2019 18:53:46 -0400 Received: from shards.monkeyblade.net ([23.128.96.9]:47418 "EHLO shards.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725855AbfDRWxq (ORCPT ); Thu, 18 Apr 2019 18:53:46 -0400 Received: from localhost (unknown [IPv6:2601:601:9f80:35cd::d71]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) (Authenticated sender: davem-davemloft) by shards.monkeyblade.net (Postfix) with ESMTPSA id 294A2108BD280 for ; Thu, 18 Apr 2019 15:53:43 -0700 (PDT) Date: Thu, 18 Apr 2019 15:53:40 -0700 (PDT) Message-Id: <20190418.155340.617420652314892633.davem@davemloft.net> To: stable@vger.kernel.org Subject: [PATCHES] Networking From: David Miller X-Mailer: Mew version 6.8 on Emacs 26.1 Mime-Version: 1.0 Content-Type: Multipart/Mixed; boundary="--Next_Part(Thu_Apr_18_15_53_40_2019_784)--" Content-Transfer-Encoding: 7bit X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.5.12 (shards.monkeyblade.net [149.20.54.216]); Thu, 18 Apr 2019 15:53:44 -0700 (PDT) Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org ----Next_Part(Thu_Apr_18_15_53_40_2019_784)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Please queue up the following networking bug fixes for v4.19 and v5.0 -stable, respectively. Thank you! ----Next_Part(Thu_Apr_18_15_53_40_2019_784)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_419.mbox" RnJvbSBiOTUzZmFiMzJkY2U1MmFkYzFmZDAxYTZhNjdlNmE5YWM4YzVkZDM1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTYWJyaW5hIER1YnJvY2EgPHNkQHF1ZWFzeXNuYWlsLm5ldD4K RGF0ZTogRnJpLCAxMiBBcHIgMjAxOSAxNTowNDoxMCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDEv MjRdIGJvbmRpbmc6IGZpeCBldmVudCBoYW5kbGluZyBmb3Igc3RhY2tlZCBib25kcwoKWyBVcHN0 cmVhbSBjb21taXQgOTI0ODBiMzk3N2ZkMzg4NDY0OWQ0MDRjYmJhZjgzOWI3MDAzNTY5OSBdCgpX aGVuIGEgYm9uZCBpcyBlbnNsYXZlZCB0byBhbm90aGVyIGJvbmQsIGJvbmRfbmV0ZGV2X2V2ZW50 KCkgb25seQpoYW5kbGVzIHRoZSBldmVudCBhcyBpZiB0aGUgYm9uZCBpcyBhIG1hc3RlciwgYW5k IHNraXBzIHRyZWF0aW5nIHRoZQpib25kIGFzIGEgc2xhdmUuCgpUaGlzIGxlYWRzIHRvIGEgcmVm Y291bnQgbGVhayBvbiB0aGUgc2xhdmUsIHNpbmNlIHdlIGRvbid0IHJlbW92ZSB0aGUKYWRqYWNl bmN5IHRvIGl0cyBtYXN0ZXIgYW5kIHRoZSBtYXN0ZXIgaG9sZHMgYSByZWZlcmVuY2Ugb24gdGhl IHNsYXZlLgoKUmVwcm9kdWNlcjoKICBpcCBsaW5rIGFkZCBib25kTCB0eXBlIGJvbmQKICBpcCBs aW5rIGFkZCBib25kVSB0eXBlIGJvbmQKICBpcCBsaW5rIHNldCBib25kTCBtYXN0ZXIgYm9uZFUK ICBpcCBsaW5rIGRlbCBib25kTAoKTm8gIkZpeGVzOiIgdGFnLCB0aGlzIGNvZGUgaXMgb2xkZXIg dGhhbiBnaXQgaGlzdG9yeS4KClNpZ25lZC1vZmYtYnk6IFNhYnJpbmEgRHVicm9jYSA8c2RAcXVl YXN5c25haWwubmV0PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVt bG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvYm9uZGluZy9ib25kX21haW4uYyB8IDYgKysrKyst CiAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9uZXQvYm9uZGluZy9ib25kX21haW4uYyBiL2RyaXZlcnMvbmV0L2JvbmRp bmcvYm9uZF9tYWluLmMKaW5kZXggYjJjNDJjYWUzMDgxLi4wOTFiNDU0ZTgzZmMgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvbmV0L2JvbmRpbmcvYm9uZF9tYWluLmMKKysrIGIvZHJpdmVycy9uZXQvYm9u ZGluZy9ib25kX21haW4uYwpAQCAtMzE5OCw4ICszMTk4LDEyIEBAIHN0YXRpYyBpbnQgYm9uZF9u ZXRkZXZfZXZlbnQoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICp0aGlzLAogCQlyZXR1cm4gTk9USUZZ X0RPTkU7CiAKIAlpZiAoZXZlbnRfZGV2LT5mbGFncyAmIElGRl9NQVNURVIpIHsKKwkJaW50IHJl dDsKKwogCQluZXRkZXZfZGJnKGV2ZW50X2RldiwgIklGRl9NQVNURVJcbiIpOwotCQlyZXR1cm4g Ym9uZF9tYXN0ZXJfbmV0ZGV2X2V2ZW50KGV2ZW50LCBldmVudF9kZXYpOworCQlyZXQgPSBib25k X21hc3Rlcl9uZXRkZXZfZXZlbnQoZXZlbnQsIGV2ZW50X2Rldik7CisJCWlmIChyZXQgIT0gTk9U SUZZX0RPTkUpCisJCQlyZXR1cm4gcmV0OwogCX0KIAogCWlmIChldmVudF9kZXYtPmZsYWdzICYg SUZGX1NMQVZFKSB7Ci0tIAoyLjIwLjEKCgpGcm9tIGI2MzFlMzViZWRkOGY1MWJmODhlOTU1Yzcx YjY3ZmMyNGM3MmNlYzYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFNpLVdlaSBMaXUg PHNpLXdlaS5saXVAb3JhY2xlLmNvbT4KRGF0ZTogTW9uLCA4IEFwciAyMDE5IDE5OjQ1OjI3IC0w NDAwClN1YmplY3Q6IFtQQVRDSCAwMi8yNF0gZmFpbG92ZXI6IGFsbG93IG5hbWUgY2hhbmdlIG9u IElGRl9VUCBzbGF2ZSBpbnRlcmZhY2VzCgpbIFVwc3RyZWFtIGNvbW1pdCA4MDY1YTc3OWYxN2U5 NDUzNmExYzRkY2VlNGY5ZDg4MDExNjcyZjk3IF0KCldoZW4gYSBuZXRkZXYgYXBwZWFycyB0aHJv dWdoIGhvdCBwbHVnIHRoZW4gZ2V0cyBlbnNsYXZlZCBieSBhIGZhaWxvdmVyCm1hc3RlciB0aGF0 IGlzIGFscmVhZHkgdXAgYW5kIHJ1bm5pbmcsIHRoZSBzbGF2ZSB3aWxsIGJlIG9wZW5lZApyaWdo dCBhd2F5IGFmdGVyIGdldHRpbmcgZW5zbGF2ZWQuIFRvZGF5IHRoZXJlJ3MgYSByYWNlIHRoYXQg dXNlcnNwYWNlCih1ZGV2KSBtYXkgZmFpbCB0byByZW5hbWUgdGhlIHNsYXZlIGlmIHRoZSBrZXJu ZWwgKG5ldF9mYWlsb3ZlcikKb3BlbnMgdGhlIHNsYXZlIGVhcmxpZXIgdGhhbiB3aGVuIHRoZSB1 c2Vyc3BhY2UgcmVuYW1lIGhhcHBlbnMuClVubGlrZSBib25kIG9yIHRlYW0sIHRoZSBwcmltYXJ5 IHNsYXZlIG9mIGZhaWxvdmVyIGNhbid0IGJlIHJlbmFtZWQgYnkKdXNlcnNwYWNlIGFoZWFkIG9m IHRpbWUsIHNpbmNlIHRoZSBrZXJuZWwgaW5pdGlhdGVkIGF1dG8tZW5zbGF2ZW1lbnQgaXMKdW5h YmxlIHRvLCBvciByYXRoZXIsIGlzIG5ldmVyIG1lYW50IHRvIGJlIHN5bmNocm9uaXplZCB3aXRo IHRoZSByZW5hbWUKcmVxdWVzdCBmcm9tIHVzZXJzcGFjZS4KCkFzIHRoZSBmYWlsb3ZlciBzbGF2 ZSBpbnRlcmZhY2VzIGFyZSBub3QgZGVzaWduZWQgdG8gYmUgb3BlcmF0ZWQKZGlyZWN0bHkgYnkg dXNlcnNwYWNlIGFwcHM6IElQIGNvbmZpZ3VyYXRpb24sIGZpbHRlciBydWxlcyB3aXRoCnJlZ2Fy ZCB0byBuZXR3b3JrIHRyYWZmaWMgcGFzc2luZyBhbmQgZXRjLiwgc2hvdWxkIGFsbCBiZSBkb25l IG9uIG1hc3RlcgppbnRlcmZhY2UuIEluIGdlbmVyYWwsIHVzZXJzcGFjZSBhcHBzIG9ubHkgY2Fy ZSBhYm91dCB0aGUKbmFtZSBvZiBtYXN0ZXIgaW50ZXJmYWNlLCB3aGlsZSBzbGF2ZSBuYW1lcyBh cmUgbGVzcyBpbXBvcnRhbnQgYXMgbG9uZwphcyBhZG1pbiB1c2VycyBjYW4gc2VlIHJlbGlhYmxl IG5hbWVzIHRoYXQgbWF5IGNhcnJ5Cm90aGVyIGluZm9ybWF0aW9uIGRlc2NyaWJpbmcgdGhlIG5l dGRldi4gRm9yIGUuZy4sIHRoZXkgY2FuIGluZmVyIHRoYXQKImVuczNuc2J5IiBpcyBhIHN0YW5k Ynkgc2xhdmUgb2YgImVuczMiLCB3aGlsZSBmb3IgYQpuYW1lIGxpa2UgImV0aDAiIHRoZXkgY2Fu J3QgdGVsbCB3aGljaCBtYXN0ZXIgaXQgYmVsb25ncyB0by4KCkhpc3RvcmljYWxseSB0aGUgbmFt ZSBvZiBJRkZfVVAgaW50ZXJmYWNlIGNhbid0IGJlIGNoYW5nZWQgYmVjYXVzZQp0aGVyZSBtaWdo dCBiZSBhZG1pbiBzY3JpcHQgb3IgbWFuYWdlbWVudCBzb2Z0d2FyZSB0aGF0IGlzIGFscmVhZHkK cmVseWluZyBvbiBzdWNoIGJlaGF2aW9yIGFuZCBhc3N1bWVzIHRoYXQgdGhlIHNsYXZlIG5hbWUg Y2FuJ3QgYmUKY2hhbmdlZCBvbmNlIFVQLiBCdXQgZmFpbG92ZXIgaXMgc3BlY2lhbDogd2l0aCB0 aGUgaW4ta2VybmVsCmF1dG8tZW5zbGF2ZW1lbnQgbWVjaGFuaXNtLCB0aGUgdXNlcnNwYWNlIGV4 cGVjdGF0aW9uIGZvciBkZXZpY2UKZW51bWVyYXRpb24gYW5kIGJyaW5nLXVwIG9yZGVyIGlzIGFs cmVhZHkgYnJva2VuLiBQcmV2aW91c2x5IGluaXRyYW1mcwphbmQgdmFyaW91cyB1c2Vyc3BhY2Ug Y29uZmlnIHRvb2xzIHdlcmUgbW9kaWZpZWQgdG8gYnlwYXNzIGZhaWxvdmVyCnNsYXZlcyBiZWNh dXNlIG9mIGF1dG8tZW5zbGF2ZW1lbnQgYW5kIGR1cGxpY2F0ZSBNQUMgYWRkcmVzcy4gU2ltaWxh cmx5LAppbiBjYXNlIHRoYXQgdXNlcnMgY2FyZSBhYm91dCBzZWVpbmcgcmVsaWFibGUgc2xhdmUg bmFtZSwgdGhlIG5ldyB0eXBlCm9mIGZhaWxvdmVyIHNsYXZlcyBuZWVkcyB0byBiZSB0YWtlbiBj YXJlIG9mIHNwZWNpZmljYWxseSBpbiB1c2Vyc3BhY2UKYW55d2F5LgoKSXQncyBsZXNzIHJpc2t5 IHRvIGxpZnQgdXAgdGhlIHJlbmFtZSByZXN0cmljdGlvbiBvbiBmYWlsb3ZlciBzbGF2ZQp3aGlj aCBpcyBhbHJlYWR5IFVQLiBBbHRob3VnaCBpdCdzIHBvc3NpYmxlIHRoaXMgY2hhbmdlIG1heSBw b3RlbnRpYWxseQpicmVhayB1c2Vyc3BhY2UgY29tcG9uZW50IChtb3N0IGxpa2VseSBjb25maWd1 cmF0aW9uIHNjcmlwdHMgb3IKbWFuYWdlbWVudCBzb2Z0d2FyZSkgdGhhdCBhc3N1bWVzIHNsYXZl IG5hbWUgY2FuJ3QgYmUgY2hhbmdlZCB3aGlsZQpVUCwgaXQncyByZWxhdGl2ZWx5IGEgbGltaXRl ZCBhbmQgY29udHJvbGxhYmxlIHNldCBhbW9uZyBhbGwgdXNlcnNwYWNlCmNvbXBvbmVudHMsIHdo aWNoIGNhbiBiZSBmaXhlZCBzcGVjaWZpY2FsbHkgdG8gbGlzdGVuIGZvciB0aGUgcmVuYW1lCmV2 ZW50cyBvbiBmYWlsb3ZlciBzbGF2ZXMuIFVzZXJzcGFjZSBjb21wb25lbnQgaW50ZXJhY3Rpbmcg d2l0aCBzbGF2ZXMKaXMgZXhwZWN0ZWQgdG8gYmUgY2hhbmdlZCB0byBvcGVyYXRlIG9uIGZhaWxv dmVyIG1hc3RlciBpbnRlcmZhY2UKaW5zdGVhZCwgYXMgdGhlIGZhaWxvdmVyIHNsYXZlIGlzIGR5 bmFtaWMgaW4gbmF0dXJlIHdoaWNoIG1heSBjb21lIGFuZApnbyBhdCBhbnkgcG9pbnQuICBUaGUg Z29hbCBpcyB0byBtYWtlIHRoZSByb2xlIG9mIGZhaWxvdmVyIHNsYXZlcyBsZXNzCnJlbGV2YW50 LCBhbmQgdXNlcnNwYWNlIGNvbXBvbmVudHMgc2hvdWxkIG9ubHkgZGVhbCB3aXRoIGZhaWxvdmVy IG1hc3RlcgppbiB0aGUgbG9uZyBydW4uCgpGaXhlczogMzBjOGJkNWFhOGIyICgibmV0OiBJbnRy b2R1Y2UgZ2VuZXJpYyBmYWlsb3ZlciBtb2R1bGUiKQpTaWduZWQtb2ZmLWJ5OiBTaS1XZWkgTGl1 IDxzaS13ZWkubGl1QG9yYWNsZS5jb20+ClJldmlld2VkLWJ5OiBMaXJhbiBBbG9uIDxsaXJhbi5h bG9uQG9yYWNsZS5jb20+CkFja2VkLWJ5OiBTcmlkaGFyIFNhbXVkcmFsYSA8c3JpZGhhci5zYW11 ZHJhbGFAaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+Ci0tLQogaW5jbHVkZS9saW51eC9uZXRkZXZpY2UuaCB8ICAzICsrKwogbmV0 L2NvcmUvZGV2LmMgICAgICAgICAgICB8IDE2ICsrKysrKysrKysrKysrKy0KIG5ldC9jb3JlL2Zh aWxvdmVyLmMgICAgICAgfCAgNiArKystLS0KIDMgZmlsZXMgY2hhbmdlZCwgMjEgaW5zZXJ0aW9u cygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L25ldGRldmlj ZS5oIGIvaW5jbHVkZS9saW51eC9uZXRkZXZpY2UuaAppbmRleCAyMWZlZjhjNWVjYTcuLjhjMmZl YzBiY2IyNiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9uZXRkZXZpY2UuaAorKysgYi9pbmNs dWRlL2xpbnV4L25ldGRldmljZS5oCkBAIC0xNDU2LDYgKzE0NTYsNyBAQCBzdHJ1Y3QgbmV0X2Rl dmljZV9vcHMgewogICogQElGRl9GQUlMT1ZFUjogZGV2aWNlIGlzIGEgZmFpbG92ZXIgbWFzdGVy IGRldmljZQogICogQElGRl9GQUlMT1ZFUl9TTEFWRTogZGV2aWNlIGlzIGxvd2VyIGRldiBvZiBh IGZhaWxvdmVyIG1hc3RlciBkZXZpY2UKICAqIEBJRkZfTDNNREVWX1JYX0hBTkRMRVI6IG9ubHkg aW52b2tlIHRoZSByeCBoYW5kbGVyIG9mIEwzIG1hc3RlciBkZXZpY2UKKyAqIEBJRkZfTElWRV9S RU5BTUVfT0s6IHJlbmFtZSBpcyBhbGxvd2VkIHdoaWxlIGRldmljZSBpcyB1cCBhbmQgcnVubmlu ZwogICovCiBlbnVtIG5ldGRldl9wcml2X2ZsYWdzIHsKIAlJRkZfODAyXzFRX1ZMQU4JCQk9IDE8 PDAsCkBAIC0xNDg4LDYgKzE0ODksNyBAQCBlbnVtIG5ldGRldl9wcml2X2ZsYWdzIHsKIAlJRkZf RkFJTE9WRVIJCQk9IDE8PDI3LAogCUlGRl9GQUlMT1ZFUl9TTEFWRQkJPSAxPDwyOCwKIAlJRkZf TDNNREVWX1JYX0hBTkRMRVIJCT0gMTw8MjksCisJSUZGX0xJVkVfUkVOQU1FX09LCQk9IDE8PDMw LAogfTsKIAogI2RlZmluZSBJRkZfODAyXzFRX1ZMQU4JCQlJRkZfODAyXzFRX1ZMQU4KQEAgLTE1 MTksNiArMTUyMSw3IEBAIGVudW0gbmV0ZGV2X3ByaXZfZmxhZ3MgewogI2RlZmluZSBJRkZfRkFJ TE9WRVIJCQlJRkZfRkFJTE9WRVIKICNkZWZpbmUgSUZGX0ZBSUxPVkVSX1NMQVZFCQlJRkZfRkFJ TE9WRVJfU0xBVkUKICNkZWZpbmUgSUZGX0wzTURFVl9SWF9IQU5ETEVSCQlJRkZfTDNNREVWX1JY X0hBTkRMRVIKKyNkZWZpbmUgSUZGX0xJVkVfUkVOQU1FX09LCQlJRkZfTElWRV9SRU5BTUVfT0sK IAogLyoqCiAgKglzdHJ1Y3QgbmV0X2RldmljZSAtIFRoZSBERVZJQ0Ugc3RydWN0dXJlLgpkaWZm IC0tZ2l0IGEvbmV0L2NvcmUvZGV2LmMgYi9uZXQvY29yZS9kZXYuYwppbmRleCBkNDc1NTQzMDdh NmQuLjNiY2VjMTE2YTVmMiAxMDA2NDQKLS0tIGEvbmV0L2NvcmUvZGV2LmMKKysrIGIvbmV0L2Nv cmUvZGV2LmMKQEAgLTExODAsNyArMTE4MCwyMSBAQCBpbnQgZGV2X2NoYW5nZV9uYW1lKHN0cnVj dCBuZXRfZGV2aWNlICpkZXYsIGNvbnN0IGNoYXIgKm5ld25hbWUpCiAJQlVHX09OKCFkZXZfbmV0 KGRldikpOwogCiAJbmV0ID0gZGV2X25ldChkZXYpOwotCWlmIChkZXYtPmZsYWdzICYgSUZGX1VQ KQorCisJLyogU29tZSBhdXRvLWVuc2xhdmVkIGRldmljZXMgZS5nLiBmYWlsb3ZlciBzbGF2ZXMg YXJlCisJICogc3BlY2lhbCwgYXMgdXNlcnNwYWNlIG1pZ2h0IHJlbmFtZSB0aGUgZGV2aWNlIGFm dGVyCisJICogdGhlIGludGVyZmFjZSBoYWQgYmVlbiBicm91Z2h0IHVwIGFuZCBydW5uaW5nIHNp bmNlCisJICogdGhlIHBvaW50IGtlcm5lbCBpbml0aWF0ZWQgYXV0by1lbnNsYXZlbWVudC4gQWxs b3cKKwkgKiBsaXZlIG5hbWUgY2hhbmdlIGV2ZW4gd2hlbiB0aGVzZSBzbGF2ZSBkZXZpY2VzIGFy ZQorCSAqIHVwIGFuZCBydW5uaW5nLgorCSAqCisJICogVHlwaWNhbGx5LCB1c2VycyBvZiB0aGVz ZSBhdXRvLWVuc2xhdmluZyBkZXZpY2VzCisJICogZG9uJ3QgYWN0dWFsbHkgY2FyZSBhYm91dCBz bGF2ZSBuYW1lIGNoYW5nZSwgYXMKKwkgKiB0aGV5IGFyZSBzdXBwb3NlZCB0byBvcGVyYXRlIG9u IG1hc3RlciBpbnRlcmZhY2UKKwkgKiBkaXJlY3RseS4KKwkgKi8KKwlpZiAoZGV2LT5mbGFncyAm IElGRl9VUCAmJgorCSAgICBsaWtlbHkoIShkZXYtPnByaXZfZmxhZ3MgJiBJRkZfTElWRV9SRU5B TUVfT0spKSkKIAkJcmV0dXJuIC1FQlVTWTsKIAogCXdyaXRlX3NlcWNvdW50X2JlZ2luKCZkZXZu ZXRfcmVuYW1lX3NlcSk7CmRpZmYgLS1naXQgYS9uZXQvY29yZS9mYWlsb3Zlci5jIGIvbmV0L2Nv cmUvZmFpbG92ZXIuYwppbmRleCA0YTkyYTk4Y2NjZTkuLmI1Y2QzYzcyNzI4NSAxMDA2NDQKLS0t IGEvbmV0L2NvcmUvZmFpbG92ZXIuYworKysgYi9uZXQvY29yZS9mYWlsb3Zlci5jCkBAIC04MCwx NCArODAsMTQgQEAgc3RhdGljIGludCBmYWlsb3Zlcl9zbGF2ZV9yZWdpc3RlcihzdHJ1Y3QgbmV0 X2RldmljZSAqc2xhdmVfZGV2KQogCQlnb3RvIGVycl91cHBlcl9saW5rOwogCX0KIAotCXNsYXZl X2Rldi0+cHJpdl9mbGFncyB8PSBJRkZfRkFJTE9WRVJfU0xBVkU7CisJc2xhdmVfZGV2LT5wcml2 X2ZsYWdzIHw9IChJRkZfRkFJTE9WRVJfU0xBVkUgfCBJRkZfTElWRV9SRU5BTUVfT0spOwogCiAJ aWYgKGZvcHMgJiYgZm9wcy0+c2xhdmVfcmVnaXN0ZXIgJiYKIAkgICAgIWZvcHMtPnNsYXZlX3Jl Z2lzdGVyKHNsYXZlX2RldiwgZmFpbG92ZXJfZGV2KSkKIAkJcmV0dXJuIE5PVElGWV9PSzsKIAog CW5ldGRldl91cHBlcl9kZXZfdW5saW5rKHNsYXZlX2RldiwgZmFpbG92ZXJfZGV2KTsKLQlzbGF2 ZV9kZXYtPnByaXZfZmxhZ3MgJj0gfklGRl9GQUlMT1ZFUl9TTEFWRTsKKwlzbGF2ZV9kZXYtPnBy aXZfZmxhZ3MgJj0gfihJRkZfRkFJTE9WRVJfU0xBVkUgfCBJRkZfTElWRV9SRU5BTUVfT0spOwog ZXJyX3VwcGVyX2xpbms6CiAJbmV0ZGV2X3J4X2hhbmRsZXJfdW5yZWdpc3RlcihzbGF2ZV9kZXYp OwogZG9uZToKQEAgLTEyMSw3ICsxMjEsNyBAQCBpbnQgZmFpbG92ZXJfc2xhdmVfdW5yZWdpc3Rl cihzdHJ1Y3QgbmV0X2RldmljZSAqc2xhdmVfZGV2KQogCiAJbmV0ZGV2X3J4X2hhbmRsZXJfdW5y ZWdpc3RlcihzbGF2ZV9kZXYpOwogCW5ldGRldl91cHBlcl9kZXZfdW5saW5rKHNsYXZlX2Rldiwg ZmFpbG92ZXJfZGV2KTsKLQlzbGF2ZV9kZXYtPnByaXZfZmxhZ3MgJj0gfklGRl9GQUlMT1ZFUl9T TEFWRTsKKwlzbGF2ZV9kZXYtPnByaXZfZmxhZ3MgJj0gfihJRkZfRkFJTE9WRVJfU0xBVkUgfCBJ RkZfTElWRV9SRU5BTUVfT0spOwogCiAJaWYgKGZvcHMgJiYgZm9wcy0+c2xhdmVfdW5yZWdpc3Rl ciAmJgogCSAgICAhZm9wcy0+c2xhdmVfdW5yZWdpc3RlcihzbGF2ZV9kZXYsIGZhaWxvdmVyX2Rl dikpCi0tIAoyLjIwLjEKCgpGcm9tIGU4ZDc3ZjIwN2JhMTI3YThjY2YwNDRiMTc3ZTU3NDM3NzUx NWFmNmQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ICJHdXN0YXZvIEEuIFIuIFNpbHZh IiA8Z3VzdGF2b0BlbWJlZGRlZG9yLmNvbT4KRGF0ZTogTW9uLCAxNSBBcHIgMjAxOSAxNTo1Nzoy MyAtMDUwMApTdWJqZWN0OiBbUEFUQ0ggMDMvMjRdIG5ldDogYXRtOiBGaXggcG90ZW50aWFsIFNw ZWN0cmUgdjEgdnVsbmVyYWJpbGl0aWVzCgpbIFVwc3RyZWFtIGNvbW1pdCA4OTk1MzdiNzM1NTdh YWZiZGQxMTA1MGI1MDFjZjU0YjRmNWM0NWFmIF0KCmFyZyBpcyBjb250cm9sbGVkIGJ5IHVzZXIt c3BhY2UsIGhlbmNlIGxlYWRpbmcgdG8gYSBwb3RlbnRpYWwKZXhwbG9pdGF0aW9uIG9mIHRoZSBT cGVjdHJlIHZhcmlhbnQgMSB2dWxuZXJhYmlsaXR5LgoKVGhpcyBpc3N1ZSB3YXMgZGV0ZWN0ZWQg d2l0aCB0aGUgaGVscCBvZiBTbWF0Y2g6CgpuZXQvYXRtL2xlYy5jOjcxNSBsZWNfbWNhc3RfYXR0 YWNoKCkgd2FybjogcG90ZW50aWFsIHNwZWN0cmUgaXNzdWUgJ2Rldl9sZWMnIFtyXSAobG9jYWwg Y2FwKQoKRml4IHRoaXMgYnkgc2FuaXRpemluZyBhcmcgYmVmb3JlIHVzaW5nIGl0IHRvIGluZGV4 IGRldl9sZWMuCgpOb3RpY2UgdGhhdCBnaXZlbiB0aGF0IHNwZWN1bGF0aW9uIHdpbmRvd3MgYXJl IGxhcmdlLCB0aGUgcG9saWN5IGlzCnRvIGtpbGwgdGhlIHNwZWN1bGF0aW9uIG9uIHRoZSBmaXJz dCBsb2FkIGFuZCBub3Qgd29ycnkgaWYgaXQgY2FuIGJlCmNvbXBsZXRlZCB3aXRoIGEgZGVwZW5k ZW50IGxvYWQvc3RvcmUgWzFdLgoKWzFdIGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL2xrbWwvMjAx ODA0MjMxNjQ3NDAuR1kxNzQ4NEBkaGNwMjIuc3VzZS5jei8KClNpZ25lZC1vZmYtYnk6IEd1c3Rh dm8gQS4gUi4gU2lsdmEgPGd1c3Rhdm9AZW1iZWRkZWRvci5jb20+ClNpZ25lZC1vZmYtYnk6IERh dmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvYXRtL2xlYy5jIHwg NiArKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkK CmRpZmYgLS1naXQgYS9uZXQvYXRtL2xlYy5jIGIvbmV0L2F0bS9sZWMuYwppbmRleCBkN2Y1Y2Y1 Yjc1OTQuLmFkNGY4MjkxOTNmMCAxMDA2NDQKLS0tIGEvbmV0L2F0bS9sZWMuYworKysgYi9uZXQv YXRtL2xlYy5jCkBAIC03MTAsNyArNzEwLDEwIEBAIHN0YXRpYyBpbnQgbGVjX3ZjY19hdHRhY2go c3RydWN0IGF0bV92Y2MgKnZjYywgdm9pZCBfX3VzZXIgKmFyZykKIAogc3RhdGljIGludCBsZWNf bWNhc3RfYXR0YWNoKHN0cnVjdCBhdG1fdmNjICp2Y2MsIGludCBhcmcpCiB7Ci0JaWYgKGFyZyA8 IDAgfHwgYXJnID49IE1BWF9MRUNfSVRGIHx8ICFkZXZfbGVjW2FyZ10pCisJaWYgKGFyZyA8IDAg fHwgYXJnID49IE1BWF9MRUNfSVRGKQorCQlyZXR1cm4gLUVJTlZBTDsKKwlhcmcgPSBhcnJheV9p bmRleF9ub3NwZWMoYXJnLCBNQVhfTEVDX0lURik7CisJaWYgKCFkZXZfbGVjW2FyZ10pCiAJCXJl dHVybiAtRUlOVkFMOwogCXZjYy0+cHJvdG9fZGF0YSA9IGRldl9sZWNbYXJnXTsKIAlyZXR1cm4g bGVjX21jYXN0X21ha2UobmV0ZGV2X3ByaXYoZGV2X2xlY1thcmddKSwgdmNjKTsKQEAgLTcyOCw2 ICs3MzEsNyBAQCBzdGF0aWMgaW50IGxlY2RfYXR0YWNoKHN0cnVjdCBhdG1fdmNjICp2Y2MsIGlu dCBhcmcpCiAJCWkgPSBhcmc7CiAJaWYgKGFyZyA+PSBNQVhfTEVDX0lURikKIAkJcmV0dXJuIC1F SU5WQUw7CisJaSA9IGFycmF5X2luZGV4X25vc3BlYyhhcmcsIE1BWF9MRUNfSVRGKTsKIAlpZiAo IWRldl9sZWNbaV0pIHsKIAkJaW50IHNpemU7CiAKLS0gCjIuMjAuMQoKCkZyb20gNDk2OTRlMDgw ZDhmNGZkYmMyNTE4ZDQ3OTVjY2U4ZmRjMzY5MjRmNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogTmlrb2xheSBBbGVrc2FuZHJvdiA8bmlrb2xheUBjdW11bHVzbmV0d29ya3MuY29tPgpE YXRlOiBUaHUsIDExIEFwciAyMDE5IDEzOjU2OjM5ICswMzAwClN1YmplY3Q6IFtQQVRDSCAwNC8y NF0gbmV0OiBicmlkZ2U6IGZpeCBwZXItcG9ydCBhZl9wYWNrZXQgc29ja2V0cwoKWyBVcHN0cmVh bSBjb21taXQgM2IyZTI5MDRkZWIzMTRjYzc3YTIxOTJmNTA2ZjJmZDQ0ZTNkMTBkMCBdCgpXaGVu IHRoZSBjb21taXQgYmVsb3cgd2FzIGludHJvZHVjZWQgaXQgY2hhbmdlZCB0d28gdmlzaWJsZSB0 aGluZ3M6CiAtIHRoZSBza2Igd2FzIG5vIGxvbmdlciBwYXNzZWQgdGhyb3VnaCB0aGUgcHJvdG9j b2wgaGFuZGxlcnMgd2l0aCB0aGUKICAgb3JpZ2luYWwgZGV2aWNlCiAtIHRoZSBza2Igd2FzIHBh c3NlZCB1cCB0aGUgc3RhY2sgd2l0aCBza2ItPmRldiA9IGJyaWRnZQoKVGhlIGZpcnN0IGNoYW5n ZSBicm9rZSBhZl9wYWNrZXQgc29ja2V0cyBvbiBicmlkZ2UgcG9ydHMuIEZvciBleGFtcGxlIHdl CnVzZSB0aGVtIGZvciBob3N0YXBkIHdoaWNoIGxpc3RlbnMgZm9yIEVUSF9QX1BBRSBwYWNrZXRz IG9uIHRoZSBwb3J0cy4KV2UgZGlzY3Vzc2VkIHR3byBwb3NzaWJsZSBmaXhlczoKIC0gY3JlYXRl IGEgY2xvbmUgYW5kIHBhc3MgaXQgdGhyb3VnaCBORl9IT09LKCksIGFjdCBvbiB0aGUgb3JpZ2lu YWwgc2tiCiAgIGJhc2VkIG9uIHRoZSByZXN1bHQKIC0gc29tZWhvdyBzaWduYWwgdG8gdGhlIGNh bGxlciBmcm9tIHRoZSBva2ZuKCkgdGhhdCBpdCB3YXMgY2FsbGVkLAogICBtZWFuaW5nIHRoZSBz a2IgaXMgb2sgdG8gYmUgcGFzc2VkLCB3aGljaCB0aGlzIHBhdGNoIGlzIHRyeWluZyB0bwogICBp bXBsZW1lbnQgdmlhIHJldHVybmluZyAxIGZyb20gdGhlIGJyaWRnZSBsaW5rLWxvY2FsIG9rZm4o KQoKTm90ZSB0aGF0IHdlIHJlbHkgb24gdGhlIGZhY3QgdGhhdCBORl9RVUVVRS9TVE9MRU4gd291 bGQgcmV0dXJuIDAgYW5kCmRyb3AvZXJyb3Igd291bGQgcmV0dXJuIDwgMCB0aHVzIHRoZSBva2Zu KCkgaXMgY2FsbGVkIG9ubHkgd2hlbiB0aGUKcmV0dXJuIHdhcyAxLCBzbyB3ZSBzaWduYWwgdG8g dGhlIGNhbGxlciB0aGF0IGl0IHdhcyBjYWxsZWQgYnkgcHJlc2VydmluZwp0aGUgcmV0dXJuIHZh bHVlIGZyb20gbmZfaG9vaygpLgoKRml4ZXM6IDg2MjZjNTZjODI3OSAoImJyaWRnZTogZml4IHBv dGVudGlhbCB1c2UtYWZ0ZXItZnJlZSB3aGVuIGhvb2sgcmV0dXJucyBRVUVVRSBvciBTVE9MRU4g dmVyZGljdCIpClNpZ25lZC1vZmYtYnk6IE5pa29sYXkgQWxla3NhbmRyb3YgPG5pa29sYXlAY3Vt dWx1c25ldHdvcmtzLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBk YXZlbWxvZnQubmV0PgotLS0KIG5ldC9icmlkZ2UvYnJfaW5wdXQuYyB8IDIzICsrKysrKysrKysr KysrLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTQgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvYnJpZGdlL2JyX2lucHV0LmMgYi9uZXQvYnJpZGdlL2Jy X2lucHV0LmMKaW5kZXggNzIwNzQyNzZjMDg4Li5mZWQwZmY0NDZhYmIgMTAwNjQ0Ci0tLSBhL25l dC9icmlkZ2UvYnJfaW5wdXQuYworKysgYi9uZXQvYnJpZGdlL2JyX2lucHV0LmMKQEAgLTE5NSwx MyArMTk1LDEwIEBAIHN0YXRpYyB2b2lkIF9fYnJfaGFuZGxlX2xvY2FsX2ZpbmlzaChzdHJ1Y3Qg c2tfYnVmZiAqc2tiKQogLyogbm90ZTogYWxyZWFkeSBjYWxsZWQgd2l0aCByY3VfcmVhZF9sb2Nr ICovCiBzdGF0aWMgaW50IGJyX2hhbmRsZV9sb2NhbF9maW5pc2goc3RydWN0IG5ldCAqbmV0LCBz dHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IpCiB7Ci0Jc3RydWN0IG5ldF9icmlk Z2VfcG9ydCAqcCA9IGJyX3BvcnRfZ2V0X3JjdShza2ItPmRldik7Ci0KIAlfX2JyX2hhbmRsZV9s b2NhbF9maW5pc2goc2tiKTsKIAotCUJSX0lOUFVUX1NLQl9DQihza2IpLT5icmRldiA9IHAtPmJy LT5kZXY7Ci0JYnJfcGFzc19mcmFtZV91cChza2IpOwotCXJldHVybiAwOworCS8qIHJldHVybiAx IHRvIHNpZ25hbCB0aGUgb2tmbigpIHdhcyBjYWxsZWQgc28gaXQncyBvayB0byB1c2UgdGhlIHNr YiAqLworCXJldHVybiAxOwogfQogCiAvKgpAQCAtMjc4LDEwICsyNzUsMTggQEAgcnhfaGFuZGxl cl9yZXN1bHRfdCBicl9oYW5kbGVfZnJhbWUoc3RydWN0IHNrX2J1ZmYgKipwc2tiKQogCQkJCWdv dG8gZm9yd2FyZDsKIAkJfQogCi0JCS8qIERlbGl2ZXIgcGFja2V0IHRvIGxvY2FsIGhvc3Qgb25s eSAqLwotCQlORl9IT09LKE5GUFJPVE9fQlJJREdFLCBORl9CUl9MT0NBTF9JTiwgZGV2X25ldChz a2ItPmRldiksCi0JCQlOVUxMLCBza2IsIHNrYi0+ZGV2LCBOVUxMLCBicl9oYW5kbGVfbG9jYWxf ZmluaXNoKTsKLQkJcmV0dXJuIFJYX0hBTkRMRVJfQ09OU1VNRUQ7CisJCS8qIFRoZSBlbHNlIGNs YXVzZSBzaG91bGQgYmUgaGl0IHdoZW4gbmZfaG9vaygpOgorCQkgKiAgIC0gcmV0dXJucyA8IDAg KGRyb3AvZXJyb3IpCisJCSAqICAgLSByZXR1cm5zID0gMCAoc3RvbGVuL25mX3F1ZXVlKQorCQkg KiBUaHVzIHJldHVybiAxIGZyb20gdGhlIG9rZm4oKSB0byBzaWduYWwgdGhlIHNrYiBpcyBvayB0 byBwYXNzCisJCSAqLworCQlpZiAoTkZfSE9PSyhORlBST1RPX0JSSURHRSwgTkZfQlJfTE9DQUxf SU4sCisJCQkgICAgZGV2X25ldChza2ItPmRldiksIE5VTEwsIHNrYiwgc2tiLT5kZXYsIE5VTEws CisJCQkgICAgYnJfaGFuZGxlX2xvY2FsX2ZpbmlzaCkgPT0gMSkgeworCQkJcmV0dXJuIFJYX0hB TkRMRVJfUEFTUzsKKwkJfSBlbHNlIHsKKwkJCXJldHVybiBSWF9IQU5ETEVSX0NPTlNVTUVEOwor CQl9CiAJfQogCiBmb3J3YXJkOgotLSAKMi4yMC4xCgoKRnJvbSBhNTdmOTE5MzQ2YTgyMGJkY2Fk OTVjYWUxMzAyZGNjOTJiZGQ4ZGQzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBOaWtv bGF5IEFsZWtzYW5kcm92IDxuaWtvbGF5QGN1bXVsdXNuZXR3b3Jrcy5jb20+CkRhdGU6IFRodSwg MTEgQXByIDIwMTkgMTU6MDg6MjUgKzAzMDAKU3ViamVjdDogW1BBVENIIDA1LzI0XSBuZXQ6IGJy aWRnZTogbXVsdGljYXN0OiB1c2UgcmN1IHRvIGFjY2VzcyBwb3J0IGxpc3QKIGZyb20gYnJfbXVs dGljYXN0X3N0YXJ0X3F1ZXJpZXIKClsgVXBzdHJlYW0gY29tbWl0IGM1YjQ5M2NlMTkyYmQ3YTRl N2JkMDczYjU2ODVhYWQxMjFlZWVmODIgXQoKYnJfbXVsdGljYXN0X3N0YXJ0X3F1ZXJpZXIoKSB3 YWxrcyBvdmVyIHRoZSBwb3J0IGxpc3QgYnV0IGl0IGNhbiBiZQpjYWxsZWQgZnJvbSBhIHRpbWVy IHdpdGggb25seSBtdWx0aWNhc3RfbG9jayBoZWxkIHdoaWNoIGRvZXNuJ3QgcHJvdGVjdAp0aGUg cG9ydCBsaXN0LCBzbyB1c2UgUkNVIHRvIHdhbGsgb3ZlciBpdC4KCkZpeGVzOiBjODNiOGZhYjA2 ZmMgKCJicmlkZ2U6IFJlc3RhcnQgcXVlcmllcyB3aGVuIGxhc3QgcXVlcmllciBleHBpcmVzIikK U2lnbmVkLW9mZi1ieTogTmlrb2xheSBBbGVrc2FuZHJvdiA8bmlrb2xheUBjdW11bHVzbmV0d29y a3MuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5u ZXQ+Ci0tLQogbmV0L2JyaWRnZS9icl9tdWx0aWNhc3QuYyB8IDQgKysrLQogMSBmaWxlIGNoYW5n ZWQsIDMgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9icmlk Z2UvYnJfbXVsdGljYXN0LmMgYi9uZXQvYnJpZGdlL2JyX211bHRpY2FzdC5jCmluZGV4IDIwZWQ3 YWRjZjFjYy4uNzU5MDFjNDY0MWIxIDEwMDY0NAotLS0gYS9uZXQvYnJpZGdlL2JyX211bHRpY2Fz dC5jCisrKyBiL25ldC9icmlkZ2UvYnJfbXVsdGljYXN0LmMKQEAgLTIxNTIsNyArMjE1Miw4IEBA IHN0YXRpYyB2b2lkIGJyX211bHRpY2FzdF9zdGFydF9xdWVyaWVyKHN0cnVjdCBuZXRfYnJpZGdl ICpiciwKIAogCV9fYnJfbXVsdGljYXN0X29wZW4oYnIsIHF1ZXJ5KTsKIAotCWxpc3RfZm9yX2Vh Y2hfZW50cnkocG9ydCwgJmJyLT5wb3J0X2xpc3QsIGxpc3QpIHsKKwlyY3VfcmVhZF9sb2NrKCk7 CisJbGlzdF9mb3JfZWFjaF9lbnRyeV9yY3UocG9ydCwgJmJyLT5wb3J0X2xpc3QsIGxpc3QpIHsK IAkJaWYgKHBvcnQtPnN0YXRlID09IEJSX1NUQVRFX0RJU0FCTEVEIHx8CiAJCSAgICBwb3J0LT5z dGF0ZSA9PSBCUl9TVEFURV9CTE9DS0lORykKIAkJCWNvbnRpbnVlOwpAQCAtMjE2NCw2ICsyMTY1 LDcgQEAgc3RhdGljIHZvaWQgYnJfbXVsdGljYXN0X3N0YXJ0X3F1ZXJpZXIoc3RydWN0IG5ldF9i cmlkZ2UgKmJyLAogCQkJYnJfbXVsdGljYXN0X2VuYWJsZSgmcG9ydC0+aXA2X293bl9xdWVyeSk7 CiAjZW5kaWYKIAl9CisJcmN1X3JlYWRfdW5sb2NrKCk7CiB9CiAKIGludCBicl9tdWx0aWNhc3Rf dG9nZ2xlKHN0cnVjdCBuZXRfYnJpZGdlICpiciwgdW5zaWduZWQgbG9uZyB2YWwpCi0tIAoyLjIw LjEKCgpGcm9tIDVkZjhlYmIyOTQwOGYxMGYzNzRlMTRhN2NjNjhkZGZiM2ZlZDNkZjUgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IFl1eWEgS3VzYWthYmUgPHl1eWEua3VzYWthYmVAZ21h aWwuY29tPgpEYXRlOiBUdWUsIDE2IEFwciAyMDE5IDEwOjIyOjI4ICswOTAwClN1YmplY3Q6IFtQ QVRDSCAwNi8yNF0gbmV0OiBGaXggbWlzc2luZyBtZXRhIGRhdGEgaW4gc2tiIHdpdGggdmxhbiBw YWNrZXQKClsgVXBzdHJlYW0gY29tbWl0IGQ4NWU4YmUyYTVhMDI4NjlmODE1ZGQwYWMyZDc0M2Rl YjRjZDc5NTcgXQoKc2tiX3Jlb3JkZXJfdmxhbl9oZWFkZXIoKSBzaG91bGQgbW92ZSBYRFAgbWV0 YSBkYXRhIHdpdGggZXRoZXJuZXQgaGVhZGVyCmlmIFhEUCBtZXRhIGRhdGEgZXhpc3RzLgoKRml4 ZXM6IGRlOGYzYTgzYjBhMCAoImJwZjogYWRkIG1ldGEgcG9pbnRlciBmb3IgZGlyZWN0IGFjY2Vz cyIpClNpZ25lZC1vZmYtYnk6IFl1eWEgS3VzYWthYmUgPHl1eWEua3VzYWthYmVAZ21haWwuY29t PgpTaWduZWQtb2ZmLWJ5OiBUYWtlcnUgSGF5YXNha2EgPHRha2V0YXJvdTJAZ21haWwuY29tPgpD by1kZXZlbG9wZWQtYnk6IFRha2VydSBIYXlhc2FrYSA8dGFrZXRhcm91MkBnbWFpbC5jb20+ClJl dmlld2VkLWJ5OiBUb3NoaWFraSBNYWtpdGEgPG1ha2l0YS50b3NoaWFraUBsYWIubnR0LmNvLmpw PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0t LQogbmV0L2NvcmUvc2tidWZmLmMgfCAxMCArKysrKysrKystCiAxIGZpbGUgY2hhbmdlZCwgOSBp bnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvc2tidWZm LmMgYi9uZXQvY29yZS9za2J1ZmYuYwppbmRleCBjZWVlMjhlMTg0YWYuLjhiNTc2ODExM2FjZCAx MDA2NDQKLS0tIGEvbmV0L2NvcmUvc2tidWZmLmMKKysrIGIvbmV0L2NvcmUvc2tidWZmLmMKQEAg LTUwNzEsNyArNTA3MSw4IEBAIEVYUE9SVF9TWU1CT0xfR1BMKHNrYl9nc29fdmFsaWRhdGVfbWFj X2xlbik7CiAKIHN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqc2tiX3Jlb3JkZXJfdmxhbl9oZWFkZXIo c3RydWN0IHNrX2J1ZmYgKnNrYikKIHsKLQlpbnQgbWFjX2xlbjsKKwlpbnQgbWFjX2xlbiwgbWV0 YV9sZW47CisJdm9pZCAqbWV0YTsKIAogCWlmIChza2JfY293KHNrYiwgc2tiX2hlYWRyb29tKHNr YikpIDwgMCkgewogCQlrZnJlZV9za2Ioc2tiKTsKQEAgLTUwODMsNiArNTA4NCwxMyBAQCBzdGF0 aWMgc3RydWN0IHNrX2J1ZmYgKnNrYl9yZW9yZGVyX3ZsYW5faGVhZGVyKHN0cnVjdCBza19idWZm ICpza2IpCiAJCW1lbW1vdmUoc2tiX21hY19oZWFkZXIoc2tiKSArIFZMQU5fSExFTiwgc2tiX21h Y19oZWFkZXIoc2tiKSwKIAkJCW1hY19sZW4gLSBWTEFOX0hMRU4gLSBFVEhfVExFTik7CiAJfQor CisJbWV0YV9sZW4gPSBza2JfbWV0YWRhdGFfbGVuKHNrYik7CisJaWYgKG1ldGFfbGVuKSB7CisJ CW1ldGEgPSBza2JfbWV0YWRhdGFfZW5kKHNrYikgLSBtZXRhX2xlbjsKKwkJbWVtbW92ZShtZXRh ICsgVkxBTl9ITEVOLCBtZXRhLCBtZXRhX2xlbik7CisJfQorCiAJc2tiLT5tYWNfaGVhZGVyICs9 IFZMQU5fSExFTjsKIAlyZXR1cm4gc2tiOwogfQotLSAKMi4yMC4xCgoKRnJvbSBmZTMxYWYyMjhk MmQ3ZjM4ZDgyNDBmMGQ0Njk2ZmJmMDZkYjYzZGRiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBMb3JlbnpvIEJpYW5jb25pIDxsb3JlbnpvLmJpYW5jb25pQHJlZGhhdC5jb20+CkRhdGU6 IFR1ZSwgOSBBcHIgMjAxOSAxMTo0NzoyMCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDcvMjRdIG5l dDogZm91OiBkbyBub3QgdXNlIGd1ZWhkciBhZnRlcgogaXB0dW5uZWxfcHVsbF9vZmZsb2FkcyBp biBndWVfdWRwX3JlY3YKClsgVXBzdHJlYW0gY29tbWl0IDk4OGRjNGE5YTNiNjZiZTc1YjMwNDA1 YTU0OTRmYWYwZGM3Y2ZmYjYgXQoKZ3VlIHR1bm5lbHMgcnVuIGlwdHVubmVsX3B1bGxfb2ZmbG9h ZHMgb24gcmVjZWl2ZWQgc2ticy4gVGhpcyBjYW4KZGV0ZXJtaW5lIGEgcG9zc2libGUgdXNlLWFm dGVyLWZyZWUgYWNjZXNzaW5nIGd1ZWhkciBwb2ludGVyIHNpbmNlCnRoZSBwYWNrZXQgd2lsbCBi ZSAndW5jbG9uZWQnIHJ1bm5pbmcgcHNrYl9leHBhbmRfaGVhZCBpZiBpdCBpcyBhCmNsb25lZCBn c28gc2tiIChlLmcgaWYgdGhlIHBhY2tldCBoYXMgYmVlbiBzZW50IHRob3VnaCBhIHZldGggZGV2 aWNlKQoKRml4ZXM6IGEwOWE0YzhkZDFlYyAoInR1bm5lbHM6IFJlbW92ZSBlbmNhcHN1bGF0aW9u IG9mZmxvYWRzIG9uIGRlY2FwIikKU2lnbmVkLW9mZi1ieTogTG9yZW56byBCaWFuY29uaSA8bG9y ZW56by5iaWFuY29uaUByZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIg PGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjQvZm91LmMgfCA0ICsrKy0KIDEgZmls ZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9u ZXQvaXB2NC9mb3UuYyBiL25ldC9pcHY0L2ZvdS5jCmluZGV4IDUwMGE1OTkwNmI4Ny4uODU0ZmYx ZTRjNDFmIDEwMDY0NAotLS0gYS9uZXQvaXB2NC9mb3UuYworKysgYi9uZXQvaXB2NC9mb3UuYwpA QCAtMTIwLDYgKzEyMCw3IEBAIHN0YXRpYyBpbnQgZ3VlX3VkcF9yZWN2KHN0cnVjdCBzb2NrICpz aywgc3RydWN0IHNrX2J1ZmYgKnNrYikKIAlzdHJ1Y3QgZ3VlaGRyICpndWVoZHI7CiAJdm9pZCAq ZGF0YTsKIAl1MTYgZG9mZnNldCA9IDA7CisJdTggcHJvdG9fY3R5cGU7CiAKIAlpZiAoIWZvdSkK IAkJcmV0dXJuIDE7CkBAIC0yMTEsMTMgKzIxMiwxNCBAQCBzdGF0aWMgaW50IGd1ZV91ZHBfcmVj dihzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IpCiAJaWYgKHVubGlrZWx5KGd1 ZWhkci0+Y29udHJvbCkpCiAJCXJldHVybiBndWVfY29udHJvbF9tZXNzYWdlKHNrYiwgZ3VlaGRy KTsKIAorCXByb3RvX2N0eXBlID0gZ3VlaGRyLT5wcm90b19jdHlwZTsKIAlfX3NrYl9wdWxsKHNr Yiwgc2l6ZW9mKHN0cnVjdCB1ZHBoZHIpICsgaGRybGVuKTsKIAlza2JfcmVzZXRfdHJhbnNwb3J0 X2hlYWRlcihza2IpOwogCiAJaWYgKGlwdHVubmVsX3B1bGxfb2ZmbG9hZHMoc2tiKSkKIAkJZ290 byBkcm9wOwogCi0JcmV0dXJuIC1ndWVoZHItPnByb3RvX2N0eXBlOworCXJldHVybiAtcHJvdG9f Y3R5cGU7CiAKIGRyb3A6CiAJa2ZyZWVfc2tiKHNrYik7Ci0tIAoyLjIwLjEKCgpGcm9tIDUwMjIx MDRiMmFlYjI1YjE0NTRlNTBlZjI3ZWI0ODk4YWY2M2UwYzAgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0ZTogVHVlLCAx NiBBcHIgMjAxOSAxMDo1NToyMCAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDgvMjRdIHRjcDogdGNw X2dyb3dfd2luZG93KCkgbmVlZHMgdG8gcmVzcGVjdCB0Y3Bfc3BhY2UoKQoKWyBVcHN0cmVhbSBj b21taXQgNTBjZTE2M2E3MmQ4MTdhOTllODk3NDIyMmRjZjI4ODZkNWRlYjFhZSBdCgpGb3Igc29t ZSByZWFzb24sIHRjcF9ncm93X3dpbmRvdygpIGNvcnJlY3RseSB0ZXN0cyBpZiBlbm91Z2ggcm9v bQppcyBwcmVzZW50IGJlZm9yZSBhdHRlbXB0aW5nIHRvIGluY3JlYXNlIHRwLT5yY3Zfc3N0aHJl c2gsCmJ1dCBkb2VzIG5vdCBwcmV2ZW50IGl0IHRvIGdyb3cgcGFzdCB0Y3Bfc3BhY2UoKQoKVGhp cyBpcyBjYXVzaW5nIGhhcmQgdG8gZGVidWcgaXNzdWVzLCBsaWtlIGZhaWxpbmcKdGhlIChfX3Rj cF9zZWxlY3Rfd2luZG93KHNrKSA+PSB0cC0+cmN2X3duZCkgdGVzdAppbiBfX3RjcF9hY2tfc25k X2NoZWNrKCksIGNhdXNpbmcgQUNLIGRlbGF5cyBhbmQgcG9zc2libHkKc2xvdyBmbG93cy4KCkRl cGVuZGluZyBvbiB0Y3Bfcm1lbVsyXSwgTVRVLCBza2ItPmxlbi9za2ItPnRydWVzaXplIHJhdGlv LAp3ZSBjYW4gc2VlIHRoZSBwcm9ibGVtIGhhcHBlbmluZyBvbiAibmV0cGVyZiAtdCBUQ1BfUlIg LS0gLXIgMjAwMCwyMDAwIgphZnRlciBhYm91dCA2MCByb3VuZCB0cmlwcywgd2hlbiB0aGUgYWN0 aXZlIHNpZGUgbm8gbG9uZ2VyIHNlbmRzCmltbWVkaWF0ZSBhY2tzLgoKVGhpcyBidWcgcHJlZGF0 ZXMgZ2l0IGhpc3RvcnkuCgpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdv b2dsZS5jb20+CkFja2VkLWJ5OiBTb2hlaWwgSGFzc2FzIFllZ2FuZWggPHNvaGVpbEBnb29nbGUu Y29tPgpBY2tlZC1ieTogTmVhbCBDYXJkd2VsbCA8bmNhcmR3ZWxsQGdvb2dsZS5jb20+CkFja2Vk LWJ5OiBXZWkgV2FuZyA8d2Vpd2FuQGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMu IE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2NC90Y3BfaW5wdXQuYyB8 IDEwICsrKysrLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDUgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvdGNwX2lucHV0LmMgYi9uZXQvaXB2NC90Y3Bf aW5wdXQuYwppbmRleCA1NzJmNzlhYmQzOTMuLmNmZGQ3MGUzMjc1NSAxMDA2NDQKLS0tIGEvbmV0 L2lwdjQvdGNwX2lucHV0LmMKKysrIGIvbmV0L2lwdjQvdGNwX2lucHV0LmMKQEAgLTQwMiwxMSAr NDAyLDEyIEBAIHN0YXRpYyBpbnQgX190Y3BfZ3Jvd193aW5kb3coY29uc3Qgc3RydWN0IHNvY2sg KnNrLCBjb25zdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogc3RhdGljIHZvaWQgdGNwX2dyb3dfd2lu ZG93KHN0cnVjdCBzb2NrICpzaywgY29uc3Qgc3RydWN0IHNrX2J1ZmYgKnNrYikKIHsKIAlzdHJ1 Y3QgdGNwX3NvY2sgKnRwID0gdGNwX3NrKHNrKTsKKwlpbnQgcm9vbTsKKworCXJvb20gPSBtaW5f dChpbnQsIHRwLT53aW5kb3dfY2xhbXAsIHRjcF9zcGFjZShzaykpIC0gdHAtPnJjdl9zc3RocmVz aDsKIAogCS8qIENoZWNrICMxICovCi0JaWYgKHRwLT5yY3Zfc3N0aHJlc2ggPCB0cC0+d2luZG93 X2NsYW1wICYmCi0JICAgIChpbnQpdHAtPnJjdl9zc3RocmVzaCA8IHRjcF9zcGFjZShzaykgJiYK LQkgICAgIXRjcF91bmRlcl9tZW1vcnlfcHJlc3N1cmUoc2spKSB7CisJaWYgKHJvb20gPiAwICYm ICF0Y3BfdW5kZXJfbWVtb3J5X3ByZXNzdXJlKHNrKSkgewogCQlpbnQgaW5jcjsKIAogCQkvKiBD aGVjayAjMi4gSW5jcmVhc2Ugd2luZG93LCBpZiBza2Igd2l0aCBzdWNoIG92ZXJoZWFkCkBAIC00 MTksOCArNDIwLDcgQEAgc3RhdGljIHZvaWQgdGNwX2dyb3dfd2luZG93KHN0cnVjdCBzb2NrICpz aywgY29uc3Qgc3RydWN0IHNrX2J1ZmYgKnNrYikKIAogCQlpZiAoaW5jcikgewogCQkJaW5jciA9 IG1heF90KGludCwgaW5jciwgMiAqIHNrYi0+bGVuKTsKLQkJCXRwLT5yY3Zfc3N0aHJlc2ggPSBt aW4odHAtPnJjdl9zc3RocmVzaCArIGluY3IsCi0JCQkJCSAgICAgICB0cC0+d2luZG93X2NsYW1w KTsKKwkJCXRwLT5yY3Zfc3N0aHJlc2ggKz0gbWluKHJvb20sIGluY3IpOwogCQkJaW5ldF9jc2so c2spLT5pY3NrX2Fjay5xdWljayB8PSAxOwogCQl9CiAJfQotLSAKMi4yMC4xCgoKRnJvbSA1ZDBj MTQ1YThiOWEzNTExMTliODk4MGFlZjk1MDQzM2RkNTQ3ZGIyIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBIYW5nYmluIExpdSA8bGl1aGFuZ2JpbkBnbWFpbC5jb20+CkRhdGU6IE1vbiwg OCBBcHIgMjAxOSAxNjo0NToxNyArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMDkvMjRdIHRlYW06IHNl dCBzbGF2ZSB0byBwcm9taXNjIGlmIHRlYW0gaXMgYWxyZWFkeSBpbgogcHJvbWlzYyBtb2RlCgpb IFVwc3RyZWFtIGNvbW1pdCA0M2MyYWRiOWRmN2RkZDY1NjBmZDM1NDZkOTI1YjQyY2VmOTJkYWEw IF0KCkFmdGVyIGFkZGluZyBhIHRlYW0gaW50ZXJmYWNlIHRvIGJyaWRnZSwgdGhlIHRlYW0gaW50 ZXJmYWNlIHdpbGwgZW50ZXIKcHJvbWlzYyBtb2RlLiBUaGVuIGlmIHdlIGFkZCBhIG5ldyBzbGF2 ZSB0byB0ZWFtMCwgdGhlIHNsYXZlIHdpbGwga2VlcApwcm9taXNjIG9mZi4gRml4IGl0IGJ5IHNl dHRpbmcgc2xhdmUgdG8gcHJvbWlzYyBvbiBpZiB0ZWFtIG1hc3RlciBpcwphbHJlYWR5IGluIHBy b21pc2MgbW9kZSwgYWxzbyBkbyB0aGUgc2FtZSBmb3IgYWxsbXVsdGkuCgp2MjogYWRkIHByb21p c2MgYW5kIGFsbG11bHRpIGNoZWNraW5nIHdoZW4gZGVsZXRlIHBvcnRzCgpGaXhlczogM2QyNDlk NGNhN2QwICgibmV0OiBpbnRyb2R1Y2UgZXRoZXJuZXQgdGVhbWluZyBkZXZpY2UiKQpTaWduZWQt b2ZmLWJ5OiBIYW5nYmluIExpdSA8bGl1aGFuZ2JpbkBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6 IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC90 ZWFtL3RlYW0uYyB8IDI2ICsrKysrKysrKysrKysrKysrKysrKysrKysrCiAxIGZpbGUgY2hhbmdl ZCwgMjYgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3RlYW0vdGVhbS5j IGIvZHJpdmVycy9uZXQvdGVhbS90ZWFtLmMKaW5kZXggOTVlZTlkODE1ZDc2Li5lMjNlYWYzZjZk MDMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3RlYW0vdGVhbS5jCisrKyBiL2RyaXZlcnMvbmV0 L3RlYW0vdGVhbS5jCkBAIC0xMjUwLDYgKzEyNTAsMjMgQEAgc3RhdGljIGludCB0ZWFtX3BvcnRf YWRkKHN0cnVjdCB0ZWFtICp0ZWFtLCBzdHJ1Y3QgbmV0X2RldmljZSAqcG9ydF9kZXYsCiAJCWdv dG8gZXJyX29wdGlvbl9wb3J0X2FkZDsKIAl9CiAKKwkvKiBzZXQgcHJvbWlzY3VpdHkgbGV2ZWwg dG8gbmV3IHNsYXZlICovCisJaWYgKGRldi0+ZmxhZ3MgJiBJRkZfUFJPTUlTQykgeworCQllcnIg PSBkZXZfc2V0X3Byb21pc2N1aXR5KHBvcnRfZGV2LCAxKTsKKwkJaWYgKGVycikKKwkJCWdvdG8g ZXJyX3NldF9zbGF2ZV9wcm9taXNjOworCX0KKworCS8qIHNldCBhbGxtdWx0aSBsZXZlbCB0byBu ZXcgc2xhdmUgKi8KKwlpZiAoZGV2LT5mbGFncyAmIElGRl9BTExNVUxUSSkgeworCQllcnIgPSBk ZXZfc2V0X2FsbG11bHRpKHBvcnRfZGV2LCAxKTsKKwkJaWYgKGVycikgeworCQkJaWYgKGRldi0+ ZmxhZ3MgJiBJRkZfUFJPTUlTQykKKwkJCQlkZXZfc2V0X3Byb21pc2N1aXR5KHBvcnRfZGV2LCAt MSk7CisJCQlnb3RvIGVycl9zZXRfc2xhdmVfcHJvbWlzYzsKKwkJfQorCX0KKwogCW5ldGlmX2Fk ZHJfbG9ja19iaChkZXYpOwogCWRldl91Y19zeW5jX211bHRpcGxlKHBvcnRfZGV2LCBkZXYpOwog CWRldl9tY19zeW5jX211bHRpcGxlKHBvcnRfZGV2LCBkZXYpOwpAQCAtMTI2Niw2ICsxMjgzLDkg QEAgc3RhdGljIGludCB0ZWFtX3BvcnRfYWRkKHN0cnVjdCB0ZWFtICp0ZWFtLCBzdHJ1Y3QgbmV0 X2RldmljZSAqcG9ydF9kZXYsCiAKIAlyZXR1cm4gMDsKIAorZXJyX3NldF9zbGF2ZV9wcm9taXNj OgorCV9fdGVhbV9vcHRpb25faW5zdF9kZWxfcG9ydCh0ZWFtLCBwb3J0KTsKKwogZXJyX29wdGlv bl9wb3J0X2FkZDoKIAl0ZWFtX3VwcGVyX2Rldl91bmxpbmsodGVhbSwgcG9ydCk7CiAKQEAgLTEz MTEsNiArMTMzMSwxMiBAQCBzdGF0aWMgaW50IHRlYW1fcG9ydF9kZWwoc3RydWN0IHRlYW0gKnRl YW0sIHN0cnVjdCBuZXRfZGV2aWNlICpwb3J0X2RldikKIAogCXRlYW1fcG9ydF9kaXNhYmxlKHRl YW0sIHBvcnQpOwogCWxpc3RfZGVsX3JjdSgmcG9ydC0+bGlzdCk7CisKKwlpZiAoZGV2LT5mbGFn cyAmIElGRl9QUk9NSVNDKQorCQlkZXZfc2V0X3Byb21pc2N1aXR5KHBvcnRfZGV2LCAtMSk7CisJ aWYgKGRldi0+ZmxhZ3MgJiBJRkZfQUxMTVVMVEkpCisJCWRldl9zZXRfYWxsbXVsdGkocG9ydF9k ZXYsIC0xKTsKKwogCXRlYW1fdXBwZXJfZGV2X3VubGluayh0ZWFtLCBwb3J0KTsKIAluZXRkZXZf cnhfaGFuZGxlcl91bnJlZ2lzdGVyKHBvcnRfZGV2KTsKIAl0ZWFtX3BvcnRfZGlzYWJsZV9uZXRw b2xsKHBvcnQpOwotLSAKMi4yMC4xCgoKRnJvbSBkNTFlNGJlMDEyNGQ5ODIzYmRlOWQ3NzM5MWEy YjIwNTNjNmFmN2UzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBIb2FuZyBMZSA8aG9h bmcuaC5sZUBkZWt0ZWNoLmNvbS5hdT4KRGF0ZTogVHVlLCA5IEFwciAyMDE5IDE0OjU5OjI0ICsw NzAwClN1YmplY3Q6IFtQQVRDSCAxMC8yNF0gdGlwYzogbWlzc2luZyBlbnRyaWVzIGluIG5hbWUg dGFibGUgb2YgcHVibGljYXRpb25zCgpbIFVwc3RyZWFtIGNvbW1pdCBkMTg0MTUzM2U1NDg3NmYx NTJhMzBhYzM5OGEzNGY0N2FkNjU5MGIxIF0KCldoZW4gYmluZGluZyBtdWx0aXBsZSBzZXJ2aWNl cyB3aXRoIHNwZWNpZmljIHR5cGUgMUtpLCAyS2kuLiwKdGhpcyBsZWFkcyB0byBzb21lIGVudHJp ZXMgaW4gdGhlIG5hbWUgdGFibGUgb2YgcHVibGljYXRpb25zCm1pc3Npbmcgd2hlbiBsaXN0ZWQg b3V0IHZpYSAndGlwYyBuYW1lIHNob3cnLgoKVGhlIHByb2JsZW0gaXMgYXQgaWRlbnRpZnkgemVy byBsYXN0X3R5cGUgY29uZGl0aW9uYWwgcHJvdmlkZWQKdmlhIG5ldGxpbmsuIFRoZSBmaXJzdCBp cyBpbml0aWFsICd0eXBlJyB3aGVuIHN0YXJ0aW5nIG5hbWUgdGFibGUKZHVtbXBpbmcuIFRoZSBz ZWNvbmQgaXMgY29udGludW91c2x5IHdpdGggemVybyB0eXBlIChub2RlIHN0YXRlCnNlcnZpY2Ug dHlwZSkuIFRoZW4sIGxvb2t1cCBmdW5jdGlvbiBmYWlsdXJlIHRvIGZpbmRpbmcgbm9kZSBzdGF0 ZQpzZXJ2aWNlIHR5cGUgaW4gbmV4dCBpdGVyYXRpb24uCgpUbyBzb2x2ZSB0aGlzLCBhZGRpbmcg bW9yZSBjb25kaXRpb25hbCB0byBtYXJrZWQgYXMgZGlydHkgdHlwZSBhbmQKbG9va3VwIGNvcnJl Y3Qgc2VydmljZSB0eXBlIGZvciB0aGUgbmV4dCBpdGVyYXRpb24gaW5zdGVhZCBvZiBzZWxlY3QK dGhlIGZpcnN0IHNlcnZpY2UgYXMgaW5pdGlhbCAndHlwZScgemVyby4KCkFja2VkLWJ5OiBKb24g TWFsb3kgPGpvbi5tYWxveUBlcmljc3Nvbi5jb20+ClNpZ25lZC1vZmYtYnk6IEhvYW5nIExlIDxo b2FuZy5oLmxlQGRla3RlY2guY29tLmF1PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIg PGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3RpcGMvbmFtZV90YWJsZS5jIHwgMyArKy0K IDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1n aXQgYS9uZXQvdGlwYy9uYW1lX3RhYmxlLmMgYi9uZXQvdGlwYy9uYW1lX3RhYmxlLmMKaW5kZXgg NjZkNWIyYzU5ODdhLi5kNzI5ODVjYTFkNTUgMTAwNjQ0Ci0tLSBhL25ldC90aXBjL25hbWVfdGFi bGUuYworKysgYi9uZXQvdGlwYy9uYW1lX3RhYmxlLmMKQEAgLTkwOCw3ICs5MDgsOCBAQCBzdGF0 aWMgaW50IHRpcGNfbmxfc2VydmljZV9saXN0KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHRpcGNf bmxfbXNnICptc2csCiAJZm9yICg7IGkgPCBUSVBDX05BTUVUQkxfU0laRTsgaSsrKSB7CiAJCWhl YWQgPSAmdG4tPm5hbWV0YmwtPnNlcnZpY2VzW2ldOwogCi0JCWlmICgqbGFzdF90eXBlKSB7CisJ CWlmICgqbGFzdF90eXBlIHx8CisJCSAgICAoIWkgJiYgKmxhc3Rfa2V5ICYmICgqbGFzdF9sb3dl ciA9PSAqbGFzdF9rZXkpKSkgewogCQkJc2VydmljZSA9IHRpcGNfc2VydmljZV9maW5kKG5ldCwg Kmxhc3RfdHlwZSk7CiAJCQlpZiAoIXNlcnZpY2UpCiAJCQkJcmV0dXJuIC1FUElQRTsKLS0gCjIu MjAuMQoKCkZyb20gZGEwYThlNTQ0YzkyZWJmYTRlMTNlNGZjZjIzNmZkMjNkYTRlOWQ3NSBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSmFzb24gV2FuZyA8amFzb3dhbmdAcmVkaGF0LmNv bT4KRGF0ZTogVHVlLCA5IEFwciAyMDE5IDEyOjEwOjI1ICswODAwClN1YmplY3Q6IFtQQVRDSCAx MS8yNF0gdmhvc3Q6IHJlamVjdCB6ZXJvIHNpemUgaW92YSByYW5nZQoKWyBVcHN0cmVhbSBjb21t aXQgODEzZGJlYjY1NmQ2YzkwMjY2ZjI1MWQ4YmQyYjAyZDQ0NWFmYTYzZiBdCgpXZSB1c2VkIHRv IGFjY2VwdCB6ZXJvIHNpemUgaW92YSByYW5nZSB3aGljaCB3aWxsIGxlYWQgYSBpbmZpbml0ZSBs b29wCmluIHRyYW5zbGF0ZV9kZXNjKCkuIEZpeGluZyB0aGlzIGJ5IGZhaWxpbmcgdGhlIHJlcXVl c3QgaW4gdGhpcyBjYXNlLgoKUmVwb3J0ZWQtYnk6IHN5emJvdCtkMjFlNmUyOTczMjJhOTAwYzEy OEBzeXprYWxsZXIuYXBwc3BvdG1haWwuY29tCkZpeGVzOiA2YjFlNmNjNyAoInZob3N0OiBuZXcg ZGV2aWNlIElPVExCIEFQSSIpClNpZ25lZC1vZmYtYnk6IEphc29uIFdhbmcgPGphc293YW5nQHJl ZGhhdC5jb20+CkFja2VkLWJ5OiBNaWNoYWVsIFMuIFRzaXJraW4gPG1zdEByZWRoYXQuY29tPgpT aWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQog ZHJpdmVycy92aG9zdC92aG9zdC5jIHwgNiArKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2Vy dGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Zob3N0L3Zob3N0 LmMgYi9kcml2ZXJzL3Zob3N0L3Zob3N0LmMKaW5kZXggYjIxNGE3MmQ1Y2FhLi5jMTYzYmMxNTk3 NmEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmhvc3Qvdmhvc3QuYworKysgYi9kcml2ZXJzL3Zob3N0 L3Zob3N0LmMKQEAgLTkxMSw4ICs5MTEsMTIgQEAgc3RhdGljIGludCB2aG9zdF9uZXdfdW1lbV9y YW5nZShzdHJ1Y3Qgdmhvc3RfdW1lbSAqdW1lbSwKIAkJCQl1NjQgc3RhcnQsIHU2NCBzaXplLCB1 NjQgZW5kLAogCQkJCXU2NCB1c2Vyc3BhY2VfYWRkciwgaW50IHBlcm0pCiB7Ci0Jc3RydWN0IHZo b3N0X3VtZW1fbm9kZSAqdG1wLCAqbm9kZSA9IGttYWxsb2Moc2l6ZW9mKCpub2RlKSwgR0ZQX0FU T01JQyk7CisJc3RydWN0IHZob3N0X3VtZW1fbm9kZSAqdG1wLCAqbm9kZTsKIAorCWlmICghc2l6 ZSkKKwkJcmV0dXJuIC1FRkFVTFQ7CisKKwlub2RlID0ga21hbGxvYyhzaXplb2YoKm5vZGUpLCBH RlBfQVRPTUlDKTsKIAlpZiAoIW5vZGUpCiAJCXJldHVybiAtRU5PTUVNOwogCi0tIAoyLjIwLjEK CgpGcm9tIDVlMjBiNmExY2Y5ODhiNzI3ZGI2Mjk4ZWE2NzdjOGYxYjAxOWUwNzMgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IFN0ZXBoZW4gU3VyeWFwdXRyYSA8c3N1cnlhZXh0ckBnbWFp bC5jb20+CkRhdGU6IEZyaSwgMTIgQXByIDIwMTkgMTY6MTk6MjcgLTA0MDAKU3ViamVjdDogW1BB VENIIDEyLzI0XSBpcHY0OiByZWNvbXBpbGUgaXAgb3B0aW9ucyBpbiBpcHY0X2xpbmtfZmFpbHVy ZQoKWyBVcHN0cmVhbSBjb21taXQgZWQwZGU0NWExMDA4OTkxZmRhYTI3YTAxNTJiZWZjYjc0ZDEy NmE4YiBdCgpSZWNvbXBpbGUgSVAgb3B0aW9ucyBzaW5jZSBJUENCIG1heSBub3QgYmUgdmFsaWQg YW55bW9yZSB3aGVuCmlwdjRfbGlua19mYWlsdXJlIGlzIGNhbGxlZCBmcm9tIGFycF9lcnJvcl9y ZXBvcnQuCgpSZWZlciB0byB0aGUgY29tbWl0IDNkYTFlZDdhYzM5OCAoIm5ldDogYXZvaWQgdXNl IElQQ0IgaW4gY2lwc29fdjRfZXJyb3IiKQphbmQgdGhlIGNvbW1pdCBiZWZvcmUgdGhhdCAoOWVm NmI0MmFkNmZkKSBmb3IgYSBzaW1pbGFyIGlzc3VlLgoKU2lnbmVkLW9mZi1ieTogU3RlcGhlbiBT dXJ5YXB1dHJhIDxzc3VyeWFleHRyQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4g TWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY0L3JvdXRlLmMgfCAxMCAr KysrKysrKystCiAxIGZpbGUgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0p CgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvcm91dGUuYyBiL25ldC9pcHY0L3JvdXRlLmMKaW5kZXgg N2E1NTZlNDU5Mzc1Li40NDRlMGQwYWEyMGIgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3JvdXRlLmMK KysrIGIvbmV0L2lwdjQvcm91dGUuYwpAQCAtMTE4OCw4ICsxMTg4LDE2IEBAIHN0YXRpYyBzdHJ1 Y3QgZHN0X2VudHJ5ICppcHY0X2RzdF9jaGVjayhzdHJ1Y3QgZHN0X2VudHJ5ICpkc3QsIHUzMiBj b29raWUpCiBzdGF0aWMgdm9pZCBpcHY0X2xpbmtfZmFpbHVyZShzdHJ1Y3Qgc2tfYnVmZiAqc2ti KQogewogCXN0cnVjdCBydGFibGUgKnJ0OworCXN0cnVjdCBpcF9vcHRpb25zIG9wdDsKIAotCWlj bXBfc2VuZChza2IsIElDTVBfREVTVF9VTlJFQUNILCBJQ01QX0hPU1RfVU5SRUFDSCwgMCk7CisJ LyogUmVjb21waWxlIGlwIG9wdGlvbnMgc2luY2UgSVBDQiBtYXkgbm90IGJlIHZhbGlkIGFueW1v cmUuCisJICovCisJbWVtc2V0KCZvcHQsIDAsIHNpemVvZihvcHQpKTsKKwlvcHQub3B0bGVuID0g aXBfaGRyKHNrYiktPmlobCo0IC0gc2l6ZW9mKHN0cnVjdCBpcGhkcik7CisJaWYgKF9faXBfb3B0 aW9uc19jb21waWxlKGRldl9uZXQoc2tiLT5kZXYpLCAmb3B0LCBza2IsIE5VTEwpKQorCQlyZXR1 cm47CisKKwlfX2ljbXBfc2VuZChza2IsIElDTVBfREVTVF9VTlJFQUNILCBJQ01QX0hPU1RfVU5S RUFDSCwgMCwgJm9wdCk7CiAKIAlydCA9IHNrYl9ydGFibGUoc2tiKTsKIAlpZiAocnQpCi0tIAoy LjIwLjEKCgpGcm9tIGY0NzY5ZTY5Nzg3NTU4MjAwNmE5NTU2Mjg1NTI5YzFkOTg3M2NjMDUgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xl LmNvbT4KRGF0ZTogU2F0LCAxMyBBcHIgMjAxOSAxNzozMjoyMSAtMDcwMApTdWJqZWN0OiBbUEFU Q0ggMTMvMjRdIGlwdjQ6IGVuc3VyZSByY3VfcmVhZF9sb2NrKCkgaW4gaXB2NF9saW5rX2ZhaWx1 cmUoKQoKWyBVcHN0cmVhbSBjb21taXQgYzU0M2NiNGE1ZjA3ZTA5MjM3ZWMwZmMyYzYwYzlmMTMx YjJjNzlhZCBdCgpmaWJfY29tcHV0ZV9zcGVjX2RzdCgpIG5lZWRzIHRvIGJlIGNhbGxlZCB1bmRl ciByY3UgcHJvdGVjdGlvbi4KCnN5emJvdCByZXBvcnRlZCA6CgpXQVJOSU5HOiBzdXNwaWNpb3Vz IFJDVSB1c2FnZQo1LjEuMC1yYzQrICMxNjUgTm90IHRhaW50ZWQKaW5jbHVkZS9saW51eC9pbmV0 ZGV2aWNlLmg6MjIwIHN1c3BpY2lvdXMgcmN1X2RlcmVmZXJlbmNlX2NoZWNrKCkgdXNhZ2UhCgpv dGhlciBpbmZvIHRoYXQgbWlnaHQgaGVscCB1cyBkZWJ1ZyB0aGlzOgoKcmN1X3NjaGVkdWxlcl9h Y3RpdmUgPSAyLCBkZWJ1Z19sb2NrcyA9IDEKMSBsb2NrIGhlbGQgYnkgc3dhcHBlci8wLzA6CiAj MDogMDAwMDAwMDA1MWI2NzkyNSAoKCZuLT50aW1lcikpeysuLS59LCBhdDogbG9ja2RlcF9jb3B5 X21hcCBpbmNsdWRlL2xpbnV4L2xvY2tkZXAuaDoxNzAgW2lubGluZV0KICMwOiAwMDAwMDAwMDUx YjY3OTI1ICgoJm4tPnRpbWVyKSl7Ky4tLn0sIGF0OiBjYWxsX3RpbWVyX2ZuKzB4ZGEvMHg3MjAg a2VybmVsL3RpbWUvdGltZXIuYzoxMzE1CgpzdGFjayBiYWNrdHJhY2U6CkNQVTogMCBQSUQ6IDAg Q29tbTogc3dhcHBlci8wIE5vdCB0YWludGVkIDUuMS4wLXJjNCsgIzE2NQpIYXJkd2FyZSBuYW1l OiBHb29nbGUgR29vZ2xlIENvbXB1dGUgRW5naW5lL0dvb2dsZSBDb21wdXRlIEVuZ2luZSwgQklP UyBHb29nbGUgMDEvMDEvMjAxMQpDYWxsIFRyYWNlOgogPElSUT4KIF9fZHVtcF9zdGFjayBsaWIv ZHVtcF9zdGFjay5jOjc3IFtpbmxpbmVdCiBkdW1wX3N0YWNrKzB4MTcyLzB4MWYwIGxpYi9kdW1w X3N0YWNrLmM6MTEzCiBsb2NrZGVwX3JjdV9zdXNwaWNpb3VzKzB4MTUzLzB4MTVkIGtlcm5lbC9s b2NraW5nL2xvY2tkZXAuYzo1MTYyCiBfX2luX2Rldl9nZXRfcmN1IGluY2x1ZGUvbGludXgvaW5l dGRldmljZS5oOjIyMCBbaW5saW5lXQogZmliX2NvbXB1dGVfc3BlY19kc3QrMHhiYmQvMHgxMDMw IG5ldC9pcHY0L2ZpYl9mcm9udGVuZC5jOjI5NAogc3BlY19kc3RfZmlsbCBuZXQvaXB2NC9pcF9v cHRpb25zLmM6MjQ1IFtpbmxpbmVdCiBfX2lwX29wdGlvbnNfY29tcGlsZSsweDE1YTcvMHgxYTEw IG5ldC9pcHY0L2lwX29wdGlvbnMuYzozNDMKIGlwdjRfbGlua19mYWlsdXJlKzB4MTcyLzB4NDAw IG5ldC9pcHY0L3JvdXRlLmM6MTE5NQogZHN0X2xpbmtfZmFpbHVyZSBpbmNsdWRlL25ldC9kc3Qu aDo0MjcgW2lubGluZV0KIGFycF9lcnJvcl9yZXBvcnQrMHhkMS8weDFjMCBuZXQvaXB2NC9hcnAu YzoyOTcKIG5laWdoX2ludmFsaWRhdGUrMHgyNGIvMHg1NzAgbmV0L2NvcmUvbmVpZ2hib3VyLmM6 OTk1CiBuZWlnaF90aW1lcl9oYW5kbGVyKzB4YzM1LzB4ZjMwIG5ldC9jb3JlL25laWdoYm91ci5j OjEwODEKIGNhbGxfdGltZXJfZm4rMHgxOTAvMHg3MjAga2VybmVsL3RpbWUvdGltZXIuYzoxMzI1 CiBleHBpcmVfdGltZXJzIGtlcm5lbC90aW1lL3RpbWVyLmM6MTM2MiBbaW5saW5lXQogX19ydW5f dGltZXJzIGtlcm5lbC90aW1lL3RpbWVyLmM6MTY4MSBbaW5saW5lXQogX19ydW5fdGltZXJzIGtl cm5lbC90aW1lL3RpbWVyLmM6MTY0OSBbaW5saW5lXQogcnVuX3RpbWVyX3NvZnRpcnErMHg2NTIv MHgxNzAwIGtlcm5lbC90aW1lL3RpbWVyLmM6MTY5NAogX19kb19zb2Z0aXJxKzB4MjY2LzB4OTVh IGtlcm5lbC9zb2Z0aXJxLmM6MjkzCiBpbnZva2Vfc29mdGlycSBrZXJuZWwvc29mdGlycS5jOjM3 NCBbaW5saW5lXQogaXJxX2V4aXQrMHgxODAvMHgxZDAga2VybmVsL3NvZnRpcnEuYzo0MTQKIGV4 aXRpbmdfaXJxIGFyY2gveDg2L2luY2x1ZGUvYXNtL2FwaWMuaDo1MzYgW2lubGluZV0KIHNtcF9h cGljX3RpbWVyX2ludGVycnVwdCsweDE0YS8weDU3MCBhcmNoL3g4Ni9rZXJuZWwvYXBpYy9hcGlj LmM6MTA2MgogYXBpY190aW1lcl9pbnRlcnJ1cHQrMHhmLzB4MjAgYXJjaC94ODYvZW50cnkvZW50 cnlfNjQuUzo4MDcKCkZpeGVzOiBlZDBkZTQ1YTEwMDggKCJpcHY0OiByZWNvbXBpbGUgaXAgb3B0 aW9ucyBpbiBpcHY0X2xpbmtfZmFpbHVyZSIpClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8 ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KUmVwb3J0ZWQtYnk6IHN5emJvdCA8c3l6a2FsbGVyQGdvb2ds ZWdyb3Vwcy5jb20+CkNjOiBTdGVwaGVuIFN1cnlhcHV0cmEgPHNzdXJ5YWV4dHJAZ21haWwuY29t PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0t LQogbmV0L2lwdjQvcm91dGUuYyB8IDEwICsrKysrKysrLS0KIDEgZmlsZSBjaGFuZ2VkLCA4IGlu c2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvcm91dGUu YyBiL25ldC9pcHY0L3JvdXRlLmMKaW5kZXggNDQ0ZTBkMGFhMjBiLi45OGM4MWMyMWI3NTMgMTAw NjQ0Ci0tLSBhL25ldC9pcHY0L3JvdXRlLmMKKysrIGIvbmV0L2lwdjQvcm91dGUuYwpAQCAtMTE4 NywxNCArMTE4NywyMCBAQCBzdGF0aWMgc3RydWN0IGRzdF9lbnRyeSAqaXB2NF9kc3RfY2hlY2so c3RydWN0IGRzdF9lbnRyeSAqZHN0LCB1MzIgY29va2llKQogCiBzdGF0aWMgdm9pZCBpcHY0X2xp bmtfZmFpbHVyZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogewotCXN0cnVjdCBydGFibGUgKnJ0Owog CXN0cnVjdCBpcF9vcHRpb25zIG9wdDsKKwlzdHJ1Y3QgcnRhYmxlICpydDsKKwlpbnQgcmVzOwog CiAJLyogUmVjb21waWxlIGlwIG9wdGlvbnMgc2luY2UgSVBDQiBtYXkgbm90IGJlIHZhbGlkIGFu eW1vcmUuCiAJICovCiAJbWVtc2V0KCZvcHQsIDAsIHNpemVvZihvcHQpKTsKIAlvcHQub3B0bGVu ID0gaXBfaGRyKHNrYiktPmlobCo0IC0gc2l6ZW9mKHN0cnVjdCBpcGhkcik7Ci0JaWYgKF9faXBf b3B0aW9uc19jb21waWxlKGRldl9uZXQoc2tiLT5kZXYpLCAmb3B0LCBza2IsIE5VTEwpKQorCisJ cmN1X3JlYWRfbG9jaygpOworCXJlcyA9IF9faXBfb3B0aW9uc19jb21waWxlKGRldl9uZXQoc2ti LT5kZXYpLCAmb3B0LCBza2IsIE5VTEwpOworCXJjdV9yZWFkX3VubG9jaygpOworCisJaWYgKHJl cykKIAkJcmV0dXJuOwogCiAJX19pY21wX3NlbmQoc2tiLCBJQ01QX0RFU1RfVU5SRUFDSCwgSUNN UF9IT1NUX1VOUkVBQ0gsIDAsICZvcHQpOwotLSAKMi4yMC4xCgoKRnJvbSAxN2RjOTdlYTU0ZjFl ZTJkYTdjMzY3MTQ0YWQwNjQzZjc2NTRmYWFkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBNYXR0ZW8gQ3JvY2UgPG1jcm9jZUByZWRoYXQuY29tPgpEYXRlOiBUaHUsIDExIEFwciAyMDE5 IDEyOjI2OjMyICswMjAwClN1YmplY3Q6IFtQQVRDSCAxNC8yNF0gbmV0OiB0aHVuZGVyeDogcmFp c2UgWERQIE1UVSB0byAxNTA4CgpbIFVwc3RyZWFtIGNvbW1pdCA1ZWUxNWMxMDFmMjllMDA5M2Zm YjU0NDg3NzNjY2JjNzg2ZWIzMTNiIF0KClRoZSB0aHVuZGVyeCBkcml2ZXIgc3BsaXRzIGZyYW1l cyBiaWdnZXIgdGhhbiAxNTMwIGJ5dGVzIHRvIG11bHRpcGxlCnBhZ2VzLCBtYWtpbmcgaW1wb3Nz aWJsZSB0byBydW4gYW4gZUJQRiBwcm9ncmFtIG9uIGl0LgpUaGlzIGxlYWRzIHRvIGEgbWF4aW11 bSBNVFUgb2YgMTUwOCBpZiBRaW5RIGlzIGluIHVzZS4KClRoZSB0aHVuZGVyeCBkcml2ZXIgZm9y YmlkcyB0byBsb2FkIGFuIGVCUEYgcHJvZ3JhbSBpZiB0aGUgTVRVIGlzIGhpZ2hlcgp0aGFuIDE1 MDAgYnl0ZXMuIFJhaXNlIHRoZSBsaW1pdCB0byAxNTA4IHNvIGl0IGlzIHBvc3NpYmxlIHRvIHVz ZSBMMgpwcm90b2NvbHMgd2hpY2ggbmVlZCBzb21lIG1vcmUgaGVhZHJvb20uCgpGaXhlczogMDVj NzczZjUyYjk2ZSAoIm5ldDogdGh1bmRlcng6IEFkZCBiYXNpYyBYRFAgc3VwcG9ydCIpClNpZ25l ZC1vZmYtYnk6IE1hdHRlbyBDcm9jZSA8bWNyb2NlQHJlZGhhdC5jb20+CkFja2VkLWJ5OiBKZXNw ZXIgRGFuZ2FhcmQgQnJvdWVyIDxicm91ZXJAcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2 aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVy bmV0L2Nhdml1bS90aHVuZGVyL25pY3ZmX21haW4uYyB8IDEzICsrKysrKysrKysrLS0KIDEgZmls ZSBjaGFuZ2VkLCAxMSBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L2RyaXZlcnMvbmV0L2V0aGVybmV0L2Nhdml1bS90aHVuZGVyL25pY3ZmX21haW4uYyBiL2RyaXZl cnMvbmV0L2V0aGVybmV0L2Nhdml1bS90aHVuZGVyL25pY3ZmX21haW4uYwppbmRleCA5ODAwNzM4 NDQ4ZWMuLmM5NDkxZGJlYTRkMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2F2 aXVtL3RodW5kZXIvbmljdmZfbWFpbi5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Nhdml1 bS90aHVuZGVyL25pY3ZmX21haW4uYwpAQCAtMzIsNiArMzIsMTMgQEAKICNkZWZpbmUgRFJWX05B TUUJIm5pY3ZmIgogI2RlZmluZSBEUlZfVkVSU0lPTgkiMS4wIgogCisvKiBOT1RFOiBQYWNrZXRz IGJpZ2dlciB0aGFuIDE1MzAgYXJlIHNwbGl0IGFjcm9zcyBtdWx0aXBsZSBwYWdlcyBhbmQgWERQ IG5lZWRzCisgKiB0aGUgYnVmZmVyIHRvIGJlIGNvbnRpZ3VvdXMuIEFsbG93IFhEUCB0byBiZSBz ZXQgdXAgb25seSBpZiB3ZSBkb24ndCBleGNlZWQKKyAqIHRoaXMgdmFsdWUsIGtlZXBpbmcgaGVh ZHJvb20gZm9yIHRoZSAxNCBieXRlIEV0aGVybmV0IGhlYWRlciBhbmQgdHdvCisgKiBWTEFOIHRh Z3MgKGZvciBRaW5RKQorICovCisjZGVmaW5lIE1BWF9YRFBfTVRVCSgxNTMwIC0gRVRIX0hMRU4g LSBWTEFOX0hMRU4gKiAyKQorCiAvKiBTdXBwb3J0ZWQgZGV2aWNlcyAqLwogc3RhdGljIGNvbnN0 IHN0cnVjdCBwY2lfZGV2aWNlX2lkIG5pY3ZmX2lkX3RhYmxlW10gPSB7CiAJeyBQQ0lfREVWSUNF X1NVQihQQ0lfVkVORE9SX0lEX0NBVklVTSwKQEAgLTE3OTUsOCArMTgwMiwxMCBAQCBzdGF0aWMg aW50IG5pY3ZmX3hkcF9zZXR1cChzdHJ1Y3QgbmljdmYgKm5pYywgc3RydWN0IGJwZl9wcm9nICpw cm9nKQogCWJvb2wgYnBmX2F0dGFjaGVkID0gZmFsc2U7CiAJaW50IHJldCA9IDA7CiAKLQkvKiBG b3Igbm93IGp1c3Qgc3VwcG9ydCBvbmx5IHRoZSB1c3VhbCBNVFUgc2l6ZWQgZnJhbWVzICovCi0J aWYgKHByb2cgJiYgKGRldi0+bXR1ID4gMTUwMCkpIHsKKwkvKiBGb3Igbm93IGp1c3Qgc3VwcG9y dCBvbmx5IHRoZSB1c3VhbCBNVFUgc2l6ZWQgZnJhbWVzLAorCSAqIHBsdXMgc29tZSBoZWFkcm9v bSBmb3IgVkxBTiwgUWluUS4KKwkgKi8KKwlpZiAocHJvZyAmJiBkZXYtPm10dSA+IE1BWF9YRFBf TVRVKSB7CiAJCW5ldGRldl93YXJuKGRldiwgIkp1bWJvIGZyYW1lcyBub3QgeWV0IHN1cHBvcnRl ZCB3aXRoIFhEUCwgY3VycmVudCBNVFUgJWQuXG4iLAogCQkJICAgIGRldi0+bXR1KTsKIAkJcmV0 dXJuIC1FT1BOT1RTVVBQOwotLSAKMi4yMC4xCgoKRnJvbSBhMTRjMWJkNjUwZDFiNjZhN2E3ODlk YzZkYmUyNDZmOTA5ODY5Nzg2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNYXR0ZW8g Q3JvY2UgPG1jcm9jZUByZWRoYXQuY29tPgpEYXRlOiBUaHUsIDExIEFwciAyMDE5IDEyOjI2OjMz ICswMjAwClN1YmplY3Q6IFtQQVRDSCAxNS8yNF0gbmV0OiB0aHVuZGVyeDogZG9uJ3QgYWxsb3cg anVtYm8gZnJhbWVzIHdpdGggWERQCgpbIFVwc3RyZWFtIGNvbW1pdCAxZjIyN2QxNjA4M2IyZTI4 MGI3ZGRlNGNhNzg4ODNkNzU1OTNmMmZkIF0KClRoZSB0aHVuZGVyeCBkcml2ZXIgZm9yYmlkcyB0 byBsb2FkIGFuIGVCUEYgcHJvZ3JhbSBpZiB0aGUgTVRVIGlzIHRvbyBoaWdoLApidXQgdGhpcyBj YW4gYmUgY2lyY3VtdmVudGVkIGJ5IGxvYWRpbmcgdGhlIGVCUEYsIHRoZW4gcmFpc2luZyB0aGUg TVRVLgoKRml4IHRoaXMgYnkgbGltaXRpbmcgdGhlIE1UVSBpZiBhbiBlQlBGIHByb2dyYW0gaXMg YWxyZWFkeSBsb2FkZWQuCgpGaXhlczogMDVjNzczZjUyYjk2ZSAoIm5ldDogdGh1bmRlcng6IEFk ZCBiYXNpYyBYRFAgc3VwcG9ydCIpClNpZ25lZC1vZmYtYnk6IE1hdHRlbyBDcm9jZSA8bWNyb2Nl QHJlZGhhdC5jb20+CkFja2VkLWJ5OiBKZXNwZXIgRGFuZ2FhcmQgQnJvdWVyIDxicm91ZXJAcmVk aGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQu bmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L2Nhdml1bS90aHVuZGVyL25pY3ZmX21haW4u YyB8IDkgKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspCgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2F2aXVtL3RodW5kZXIvbmljdmZfbWFpbi5jIGIv ZHJpdmVycy9uZXQvZXRoZXJuZXQvY2F2aXVtL3RodW5kZXIvbmljdmZfbWFpbi5jCmluZGV4IGM5 NDkxZGJlYTRkMi4uZGNhMDJiMzVjMjMxIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5l dC9jYXZpdW0vdGh1bmRlci9uaWN2Zl9tYWluLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQv Y2F2aXVtL3RodW5kZXIvbmljdmZfbWFpbi5jCkBAIC0xNTU0LDYgKzE1NTQsMTUgQEAgc3RhdGlj IGludCBuaWN2Zl9jaGFuZ2VfbXR1KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIGludCBuZXdf bXR1KQogCXN0cnVjdCBuaWN2ZiAqbmljID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTsKIAlpbnQgb3Jp Z19tdHUgPSBuZXRkZXYtPm10dTsKIAorCS8qIEZvciBub3cganVzdCBzdXBwb3J0IG9ubHkgdGhl IHVzdWFsIE1UVSBzaXplZCBmcmFtZXMsCisJICogcGx1cyBzb21lIGhlYWRyb29tIGZvciBWTEFO LCBRaW5RLgorCSAqLworCWlmIChuaWMtPnhkcF9wcm9nICYmIG5ld19tdHUgPiBNQVhfWERQX01U VSkgeworCQluZXRkZXZfd2FybihuZXRkZXYsICJKdW1ibyBmcmFtZXMgbm90IHlldCBzdXBwb3J0 ZWQgd2l0aCBYRFAsIGN1cnJlbnQgTVRVICVkLlxuIiwKKwkJCSAgICBuZXRkZXYtPm10dSk7CisJ CXJldHVybiAtRUlOVkFMOworCX0KKwogCW5ldGRldi0+bXR1ID0gbmV3X210dTsKIAogCWlmICgh bmV0aWZfcnVubmluZyhuZXRkZXYpKQotLSAKMi4yMC4xCgoKRnJvbSBiODU1ZTZlYTJhMWNjOGYy Yjg1ZDYyYzBhYmYzYTAwYzg4MzI3MjM0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBT YWVlZCBNYWhhbWVlZCA8c2FlZWRtQG1lbGxhbm94LmNvbT4KRGF0ZTogVHVlLCAxOSBNYXIgMjAx OSAyMjowOTowNSAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMTYvMjRdIG5ldC9tbHg1OiBGUEdBLCB0 bHMsIGhvbGQgcmN1IHJlYWQgbG9jayBhIGJpdCBsb25nZXIKClsgVXBzdHJlYW0gY29tbWl0IDMx NjM0YmY1ZGNjNDE4YjViMmNhY2Q5NTQzOTRjMGM0NjIwZGI2YTIgXQoKVG8gYXZvaWQgdXNlLWFm dGVyLWZyZWUsIGhvbGQgdGhlIHJjdSByZWFkIGxvY2sgdW50aWwgd2UgYXJlIGRvbmUgY29weWlu ZwpmbG93IGRhdGEgaW50byB0aGUgY29tbWFuZCBidWZmZXIuCgpGaXhlczogYWI0MTJlMWRkN2Ri ICgibmV0L21seDU6IEFjY2VsLCBhZGQgVExTIHJ4IG9mZmxvYWQgcm91dGluZXMiKQpSZXBvcnRl ZC1ieTogRXJpYyBEdW1hemV0IDxlcmljLmR1bWF6ZXRAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5 OiBTYWVlZCBNYWhhbWVlZCA8c2FlZWRtQG1lbGxhbm94LmNvbT4KLS0tCiAuLi4vbmV0L2V0aGVy bmV0L21lbGxhbm94L21seDUvY29yZS9mcGdhL3Rscy5jIHwgMTggKysrKysrKysrLS0tLS0tLS0t CiAxIGZpbGUgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mcGdhL3Rscy5j IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZwZ2EvdGxzLmMKaW5k ZXggOGRlNjRlODhjNjcwLi4wOGFhNzI2NmM4YzAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0 aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mcGdhL3Rscy5jCisrKyBiL2RyaXZlcnMvbmV0L2V0 aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mcGdhL3Rscy5jCkBAIC0yMTcsMjIgKzIxNywyMiBA QCBpbnQgbWx4NV9mcGdhX3Rsc19yZXN5bmNfcngoc3RydWN0IG1seDVfY29yZV9kZXYgKm1kZXYs IHUzMiBoYW5kbGUsIHUzMiBzZXEsCiAJdm9pZCAqY21kOwogCWludCByZXQ7CiAKLQlyY3VfcmVh ZF9sb2NrKCk7Ci0JZmxvdyA9IGlkcl9maW5kKCZtZGV2LT5mcGdhLT50bHMtPnJ4X2lkciwgbnRv aGwoaGFuZGxlKSk7Ci0JcmN1X3JlYWRfdW5sb2NrKCk7Ci0KLQlpZiAoIWZsb3cpIHsKLQkJV0FS Tl9PTkNFKDEsICJSZWNlaXZlZCBOVUxMIHBvaW50ZXIgZm9yIGhhbmRsZVxuIik7Ci0JCXJldHVy biAtRUlOVkFMOwotCX0KLQogCWJ1ZiA9IGt6YWxsb2Moc2l6ZSwgR0ZQX0FUT01JQyk7CiAJaWYg KCFidWYpCiAJCXJldHVybiAtRU5PTUVNOwogCiAJY21kID0gKGJ1ZiArIDEpOwogCisJcmN1X3Jl YWRfbG9jaygpOworCWZsb3cgPSBpZHJfZmluZCgmbWRldi0+ZnBnYS0+dGxzLT5yeF9pZHIsIG50 b2hsKGhhbmRsZSkpOworCWlmICh1bmxpa2VseSghZmxvdykpIHsKKwkJcmN1X3JlYWRfdW5sb2Nr KCk7CisJCVdBUk5fT05DRSgxLCAiUmVjZWl2ZWQgTlVMTCBwb2ludGVyIGZvciBoYW5kbGVcbiIp OworCQlrZnJlZShidWYpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CiAJbWx4NV9mcGdhX3Rsc19m bG93X3RvX2NtZChmbG93LCBjbWQpOworCXJjdV9yZWFkX3VubG9jaygpOwogCiAJTUxYNV9TRVQo dGxzX2NtZCwgY21kLCBzd2lkLCBudG9obChoYW5kbGUpKTsKIAlNTFg1X1NFVDY0KHRsc19jbWQs IGNtZCwgdGxzX3JjZF9zbiwgYmU2NF90b19jcHUocmNkX3NuKSk7Ci0tIAoyLjIwLjEKCgpGcm9t IDk1OTQzMWQ5NmUyNWQyZTc5MzNlMjhlMDE1YTQzMTdlNjhkY2IyOWQgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IEpha3ViIEtpY2luc2tpIDxqYWt1Yi5raWNpbnNraUBuZXRyb25vbWUu Y29tPgpEYXRlOiBNb24sIDggQXByIDIwMTkgMTc6NTk6NTAgLTA3MDAKU3ViamVjdDogW1BBVENI IDE3LzI0XSBuZXQvdGxzOiBwcmV2ZW50IGJhZCBtZW1vcnkgYWNjZXNzIGluCiB0bHNfaXNfc2tf dHhfZGV2aWNlX29mZmxvYWRlZCgpCgpbIFVwc3RyZWFtIGNvbW1pdCBiNGY0N2YzODQ4ZWI3MDk4 NmY3NWQwNjExMmFmN2I0OGI3ZjVmNDYyIF0KClVubGlrZSAnJiYnIG9wZXJhdG9yLCB0aGUgJyYn IGRvZXMgbm90IGhhdmUgc2hvcnQtY2lyY3VpdApldmFsdWF0aW9uIHNlbWFudGljcy4gIElPVyBi b3RoIHNpZGVzIG9mIHRoZSBvcGVyYXRvciBhbHdheXMKZ2V0IGV2YWx1YXRlZC4gIEZpeCB0aGUg d3Jvbmcgb3BlcmF0b3IgaW4KdGxzX2lzX3NrX3R4X2RldmljZV9vZmZsb2FkZWQoKSwgd2hpY2gg d291bGQgbGVhZCB0bwpvdXQtb2YtYm91bmRzIGFjY2VzcyBmb3IgZm9yIG5vbi1mdWxsIHNvY2tl dHMuCgpGaXhlczogNDc5OWFjODFlNTJhICgidGxzOiBBZGQgcnggaW5saW5lIGNyeXB0byBvZmZs b2FkIikKU2lnbmVkLW9mZi1ieTogSmFrdWIgS2ljaW5za2kgPGpha3ViLmtpY2luc2tpQG5ldHJv bm9tZS5jb20+ClJldmlld2VkLWJ5OiBEaXJrIHZhbiBkZXIgTWVyd2UgPGRpcmsudmFuZGVybWVy d2VAbmV0cm9ub21lLmNvbT4KUmV2aWV3ZWQtYnk6IFNpbW9uIEhvcm1hbiA8c2ltb24uaG9ybWFu QG5ldHJvbm9tZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2 ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNsdWRlL25ldC90bHMuaCB8IDIgKy0KIDEgZmlsZSBjaGFuZ2Vk LCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0 L3Rscy5oIGIvaW5jbHVkZS9uZXQvdGxzLmgKaW5kZXggMGE3NjljZjJmNWYzLi5jNDIzYjdkMGI2 YWIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L3Rscy5oCisrKyBiL2luY2x1ZGUvbmV0L3Rscy5o CkBAIC0zMTcsNyArMzE3LDcgQEAgdGxzX3ZhbGlkYXRlX3htaXRfc2tiKHN0cnVjdCBzb2NrICpz aywgc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKIHN0YXRpYyBpbmxpbmUgYm9vbCB0bHNfaXNfc2tf dHhfZGV2aWNlX29mZmxvYWRlZChzdHJ1Y3Qgc29jayAqc2spCiB7CiAjaWZkZWYgQ09ORklHX1NP Q0tfVkFMSURBVEVfWE1JVAotCXJldHVybiBza19mdWxsc29jayhzaykgJgorCXJldHVybiBza19m dWxsc29jayhzaykgJiYKIAkgICAgICAgKHNtcF9sb2FkX2FjcXVpcmUoJnNrLT5za192YWxpZGF0 ZV94bWl0X3NrYikgPT0KIAkgICAgICAgJnRsc192YWxpZGF0ZV94bWl0X3NrYik7CiAjZWxzZQot LSAKMi4yMC4xCgoKRnJvbSBmYjIxZjQzNGE1YWQyNjk5M2VjNzI3N2Q1OWFjYjc5N2Q2MWEzNzUy IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTYWVlZCBNYWhhbWVlZCA8c2FlZWRtQG1l bGxhbm94LmNvbT4KRGF0ZTogVHVlLCAxOSBNYXIgMjAxOSAwMTowNTo0MSAtMDcwMApTdWJqZWN0 OiBbUEFUQ0ggMTgvMjRdIG5ldC9tbHg1OiBGUEdBLCB0bHMsIGlkciByZW1vdmUgb24gZmxvdyBk ZWxldGUKClsgVXBzdHJlYW0gY29tbWl0IGRmM2E4MzQ0ZDQwNGE4MTBiNGFhZGJmMTliMDhjODIz MmZiYWE3MTUgXQoKRmxvdyBpcyBrZnJlZWQgb24gbWx4NV9mcGdhX3Rsc19kZWxfZmxvdyBidXQg a2VwdCBpbiB0aGUgaWRyIGRhdGEKc3RydWN0dXJlLCB0aGlzIGlzIHJpc2t5IGFuZCBjYW4gY2F1 c2UgdXNlLWFmdGVyLWZyZWUsIHNpbmNlIHRoZQppZHJfcmVtb3ZlIGlzIGRlbGF5ZWQgdW50aWwg dGxzX3NlbmRfdGVhcmRvd25fY21kIGNvbXBsZXRpb24uCgpJbnN0ZWFkIG9mIGRlbGF5aW5nIGlk cl9yZW1vdmUsIGluIHRoaXMgcGF0Y2ggd2UgZG8gaXQgb24KbWx4NV9mcGdhX3Rsc19kZWxfZmxv dywgYmVmb3JlIGFjdHVhbGx5IGtmcmVlKGZsb3cpLgoKQWRkZWQgc3luY2hyb25pemVfcmN1IGJl Zm9yZSBrZnJlZShmbG93KQoKRml4ZXM6IGFiNDEyZTFkZDdkYiAoIm5ldC9tbHg1OiBBY2NlbCwg YWRkIFRMUyByeCBvZmZsb2FkIHJvdXRpbmVzIikKU2lnbmVkLW9mZi1ieTogU2FlZWQgTWFoYW1l ZWQgPHNhZWVkbUBtZWxsYW5veC5jb20+Ci0tLQogLi4uL2V0aGVybmV0L21lbGxhbm94L21seDUv Y29yZS9mcGdhL3Rscy5jICAgIHwgNDMgKysrKysrKy0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5n ZWQsIDE1IGluc2VydGlvbnMoKyksIDI4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZl cnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mcGdhL3Rscy5jIGIvZHJpdmVycy9u ZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZwZ2EvdGxzLmMKaW5kZXggMDhhYTcyNjZj OGMwLi4yMmEyZWYxMTE1MTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxh bm94L21seDUvY29yZS9mcGdhL3Rscy5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxh bm94L21seDUvY29yZS9mcGdhL3Rscy5jCkBAIC0xNDgsMTQgKzE0OCwxNiBAQCBzdGF0aWMgaW50 IG1seDVfZnBnYV90bHNfYWxsb2Nfc3dpZChzdHJ1Y3QgaWRyICppZHIsIHNwaW5sb2NrX3QgKmlk cl9zcGlubG9jaywKIAlyZXR1cm4gcmV0OwogfQogCi1zdGF0aWMgdm9pZCBtbHg1X2ZwZ2FfdGxz X3JlbGVhc2Vfc3dpZChzdHJ1Y3QgaWRyICppZHIsCi0JCQkJICAgICAgIHNwaW5sb2NrX3QgKmlk cl9zcGlubG9jaywgdTMyIHN3aWQpCitzdGF0aWMgdm9pZCAqbWx4NV9mcGdhX3Rsc19yZWxlYXNl X3N3aWQoc3RydWN0IGlkciAqaWRyLAorCQkJCQlzcGlubG9ja190ICppZHJfc3BpbmxvY2ssIHUz MiBzd2lkKQogewogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJdm9pZCAqcHRyOwogCiAJc3Bpbl9s b2NrX2lycXNhdmUoaWRyX3NwaW5sb2NrLCBmbGFncyk7Ci0JaWRyX3JlbW92ZShpZHIsIHN3aWQp OworCXB0ciA9IGlkcl9yZW1vdmUoaWRyLCBzd2lkKTsKIAlzcGluX3VubG9ja19pcnFyZXN0b3Jl KGlkcl9zcGlubG9jaywgZmxhZ3MpOworCXJldHVybiBwdHI7CiB9CiAKIHN0YXRpYyB2b2lkIG1s eF90bHNfa2ZyZWVfY29tcGxldGUoc3RydWN0IG1seDVfZnBnYV9jb25uICpjb25uLApAQCAtMTY1 LDIwICsxNjcsMTIgQEAgc3RhdGljIHZvaWQgbWx4X3Rsc19rZnJlZV9jb21wbGV0ZShzdHJ1Y3Qg bWx4NV9mcGdhX2Nvbm4gKmNvbm4sCiAJa2ZyZWUoYnVmKTsKIH0KIAotc3RydWN0IG1seDVfdGVh cmRvd25fc3RyZWFtX2NvbnRleHQgewotCXN0cnVjdCBtbHg1X2ZwZ2FfdGxzX2NvbW1hbmRfY29u dGV4dCBjbWQ7Ci0JdTMyIHN3aWQ7Ci19OwotCiBzdGF0aWMgdm9pZAogbWx4NV9mcGdhX3Rsc190 ZWFyZG93bl9jb21wbGV0aW9uKHN0cnVjdCBtbHg1X2ZwZ2FfY29ubiAqY29ubiwKIAkJCQkgIHN0 cnVjdCBtbHg1X2ZwZ2FfZGV2aWNlICpmZGV2LAogCQkJCSAgc3RydWN0IG1seDVfZnBnYV90bHNf Y29tbWFuZF9jb250ZXh0ICpjbWQsCiAJCQkJICBzdHJ1Y3QgbWx4NV9mcGdhX2RtYV9idWYgKnJl c3ApCiB7Ci0Jc3RydWN0IG1seDVfdGVhcmRvd25fc3RyZWFtX2NvbnRleHQgKmN0eCA9Ci0JCSAg ICBjb250YWluZXJfb2YoY21kLCBzdHJ1Y3QgbWx4NV90ZWFyZG93bl9zdHJlYW1fY29udGV4dCwg Y21kKTsKLQogCWlmIChyZXNwKSB7CiAJCXUzMiBzeW5kcm9tZSA9IE1MWDVfR0VUKHRsc19yZXNw LCByZXNwLT5zZ1swXS5kYXRhLCBzeW5kcm9tZSk7CiAKQEAgLTE4NiwxNCArMTgwLDYgQEAgbWx4 NV9mcGdhX3Rsc190ZWFyZG93bl9jb21wbGV0aW9uKHN0cnVjdCBtbHg1X2ZwZ2FfY29ubiAqY29u biwKIAkJCW1seDVfZnBnYV9lcnIoZmRldiwKIAkJCQkgICAgICAiVGVhcmRvd24gc3RyZWFtIGZh aWxlZCB3aXRoIHN5bmRyb21lID0gJWQiLAogCQkJCSAgICAgIHN5bmRyb21lKTsKLQkJZWxzZSBp ZiAoTUxYNV9HRVQodGxzX2NtZCwgY21kLT5idWYuc2dbMF0uZGF0YSwgZGlyZWN0aW9uX3N4KSkK LQkJCW1seDVfZnBnYV90bHNfcmVsZWFzZV9zd2lkKCZmZGV2LT50bHMtPnR4X2lkciwKLQkJCQkJ CSAgICZmZGV2LT50bHMtPnR4X2lkcl9zcGlubG9jaywKLQkJCQkJCSAgIGN0eC0+c3dpZCk7Ci0J CWVsc2UKLQkJCW1seDVfZnBnYV90bHNfcmVsZWFzZV9zd2lkKCZmZGV2LT50bHMtPnJ4X2lkciwK LQkJCQkJCSAgICZmZGV2LT50bHMtPnJ4X2lkcl9zcGlubG9jaywKLQkJCQkJCSAgIGN0eC0+c3dp ZCk7CiAJfQogCW1seDVfZnBnYV90bHNfcHV0X2NvbW1hbmRfY3R4KGNtZCk7CiB9CkBAIC0yNTMs NyArMjM5LDcgQEAgaW50IG1seDVfZnBnYV90bHNfcmVzeW5jX3J4KHN0cnVjdCBtbHg1X2NvcmVf ZGV2ICptZGV2LCB1MzIgaGFuZGxlLCB1MzIgc2VxLAogc3RhdGljIHZvaWQgbWx4NV9mcGdhX3Rs c19zZW5kX3RlYXJkb3duX2NtZChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqbWRldiwKIAkJCQkJICAg IHZvaWQgKmZsb3csIHUzMiBzd2lkLCBnZnBfdCBmbGFncykKIHsKLQlzdHJ1Y3QgbWx4NV90ZWFy ZG93bl9zdHJlYW1fY29udGV4dCAqY3R4OworCXN0cnVjdCBtbHg1X2ZwZ2FfdGxzX2NvbW1hbmRf Y29udGV4dCAqY3R4OwogCXN0cnVjdCBtbHg1X2ZwZ2FfZG1hX2J1ZiAqYnVmOwogCXZvaWQgKmNt ZDsKIApAQCAtMjYxLDcgKzI0Nyw3IEBAIHN0YXRpYyB2b2lkIG1seDVfZnBnYV90bHNfc2VuZF90 ZWFyZG93bl9jbWQoc3RydWN0IG1seDVfY29yZV9kZXYgKm1kZXYsCiAJaWYgKCFjdHgpCiAJCXJl dHVybjsKIAotCWJ1ZiA9ICZjdHgtPmNtZC5idWY7CisJYnVmID0gJmN0eC0+YnVmOwogCWNtZCA9 IChjdHggKyAxKTsKIAlNTFg1X1NFVCh0bHNfY21kLCBjbWQsIGNvbW1hbmRfdHlwZSwgQ01EX1RF QVJET1dOX1NUUkVBTSk7CiAJTUxYNV9TRVQodGxzX2NtZCwgY21kLCBzd2lkLCBzd2lkKTsKQEAg LTI3Miw4ICsyNTgsNyBAQCBzdGF0aWMgdm9pZCBtbHg1X2ZwZ2FfdGxzX3NlbmRfdGVhcmRvd25f Y21kKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICptZGV2LAogCWJ1Zi0+c2dbMF0uZGF0YSA9IGNtZDsK IAlidWYtPnNnWzBdLnNpemUgPSBNTFg1X1RMU19DT01NQU5EX1NJWkU7CiAKLQljdHgtPnN3aWQg PSBzd2lkOwotCW1seDVfZnBnYV90bHNfY21kX3NlbmQobWRldi0+ZnBnYSwgJmN0eC0+Y21kLAor CW1seDVfZnBnYV90bHNfY21kX3NlbmQobWRldi0+ZnBnYSwgY3R4LAogCQkJICAgICAgIG1seDVf ZnBnYV90bHNfdGVhcmRvd25fY29tcGxldGlvbik7CiB9CiAKQEAgLTI4MywxMyArMjY4LDE0IEBA IHZvaWQgbWx4NV9mcGdhX3Rsc19kZWxfZmxvdyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqbWRldiwg dTMyIHN3aWQsCiAJc3RydWN0IG1seDVfZnBnYV90bHMgKnRscyA9IG1kZXYtPmZwZ2EtPnRsczsK IAl2b2lkICpmbG93OwogCi0JcmN1X3JlYWRfbG9jaygpOwogCWlmIChkaXJlY3Rpb25fc3gpCi0J CWZsb3cgPSBpZHJfZmluZCgmdGxzLT50eF9pZHIsIHN3aWQpOworCQlmbG93ID0gbWx4NV9mcGdh X3Rsc19yZWxlYXNlX3N3aWQoJnRscy0+dHhfaWRyLAorCQkJCQkJICAmdGxzLT50eF9pZHJfc3Bp bmxvY2ssCisJCQkJCQkgIHN3aWQpOwogCWVsc2UKLQkJZmxvdyA9IGlkcl9maW5kKCZ0bHMtPnJ4 X2lkciwgc3dpZCk7Ci0KLQlyY3VfcmVhZF91bmxvY2soKTsKKwkJZmxvdyA9IG1seDVfZnBnYV90 bHNfcmVsZWFzZV9zd2lkKCZ0bHMtPnJ4X2lkciwKKwkJCQkJCSAgJnRscy0+cnhfaWRyX3NwaW5s b2NrLAorCQkJCQkJICBzd2lkKTsKIAogCWlmICghZmxvdykgewogCQltbHg1X2ZwZ2FfZXJyKG1k ZXYtPmZwZ2EsICJObyBmbG93IGluZm9ybWF0aW9uIGZvciBzd2lkICV1XG4iLApAQCAtMjk3LDYg KzI4Myw3IEBAIHZvaWQgbWx4NV9mcGdhX3Rsc19kZWxfZmxvdyhzdHJ1Y3QgbWx4NV9jb3JlX2Rl diAqbWRldiwgdTMyIHN3aWQsCiAJCXJldHVybjsKIAl9CiAKKwlzeW5jaHJvbml6ZV9yY3UoKTsg LyogYmVmb3JlIGtmcmVlKGZsb3cpICovCiAJbWx4NV9mcGdhX3Rsc19zZW5kX3RlYXJkb3duX2Nt ZChtZGV2LCBmbG93LCBzd2lkLCBmbGFncyk7CiB9CiAKLS0gCjIuMjAuMQoKCkZyb20gMzE1Mjdi ODcyNDAwZDk4MWU4MDVhODliM2FjOWRlNDIzMTJhNTJmNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogSm9uYXRoYW4gTGVtb24gPGpvbmF0aGFuLmxlbW9uQGdtYWlsLmNvbT4KRGF0ZTog U3VuLCAxNCBBcHIgMjAxOSAxNDoyMToyOSAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMTkvMjRdIHJv dXRlOiBBdm9pZCBjcmFzaCBmcm9tIGRlcmVmZXJlbmNpbmcgTlVMTCBydC0+ZnJvbQoKWyBVcHN0 cmVhbSBjb21taXQgOWM2OWExMzIwNTE1MWMwZDgwMWRlOWY5ZDgzYTgxOGU2ZThmNjBlYyBdCgpX aGVuIF9faXA2X3J0X3VwZGF0ZV9wbXR1KCkgaXMgY2FsbGVkLCBydC0+ZnJvbSBpcyBSQ1UgZGVy ZWZlcmVuY2VkLCBidXQgaXMKbmV2ZXIgY2hlY2tlZCBmb3IgbnVsbCAtIHJ0Nl9mbHVzaF9leGNl cHRpb25zKCkgbWF5IGhhdmUgcmVtb3ZlZCB0aGUgZW50cnkuCgpbIDE5MTMuOTg5MDA0XSBSSVA6 IDAwMTA6aXA2X3J0X2NhY2hlX2FsbG9jKzB4MTMvMHgxNzAKWyAxOTE0LjIwOTQxMF0gQ2FsbCBU cmFjZToKWyAxOTE0LjIxNDc5OF0gIDxJUlE+ClsgMTkxNC4yMTkyMjZdICBfX2lwNl9ydF91cGRh dGVfcG10dSsweGIwLzB4MTkwClsgMTkxNC4yMjg2NDldICBpcDZfdG5sX3htaXQrMHgyYzIvMHg5 NzAgW2lwNl90dW5uZWxdClsgMTkxNC4yMzkyMjNdICA/IGlwNl90bmxfcGFyc2VfdGx2X2VuY19s aW0rMHgzMi8weDFhMCBbaXA2X3R1bm5lbF0KWyAxOTE0LjI1MjQ4OV0gID8gX19ncmU2X3htaXQr MHgxNDgvMHg1MzAgW2lwNl9ncmVdClsgMTkxNC4yNjI2NzhdICBpcDZncmVfdHVubmVsX3htaXQr MHgxN2UvMHgzYzcgW2lwNl9ncmVdClsgMTkxNC4yNzM4MzFdICBkZXZfaGFyZF9zdGFydF94bWl0 KzB4OGQvMHgxZjAKWyAxOTE0LjI4MzA2MV0gIHNjaF9kaXJlY3RfeG1pdCsweGZhLzB4MjMwClsg MTkxNC4yOTE1MjFdICBfX3FkaXNjX3J1bisweDE1NC8weDRiMApbIDE5MTQuMjk5NDA3XSAgbmV0 X3R4X2FjdGlvbisweDEwZS8weDFmMApbIDE5MTQuMzA3Njc4XSAgX19kb19zb2Z0aXJxKzB4Y2Ev MHgyOTcKWyAxOTE0LjMxNTU2N10gIGlycV9leGl0KzB4OTYvMHhhMApbIDE5MTQuMzIyNDk0XSAg c21wX2FwaWNfdGltZXJfaW50ZXJydXB0KzB4NjgvMHgxMzAKWyAxOTE0LjMzMjY4M10gIGFwaWNf dGltZXJfaW50ZXJydXB0KzB4Zi8weDIwClsgMTkxNC4zNDE3MjFdICA8L0lSUT4KCkZpeGVzOiBh Njg4ODZhNjkxODAgKCJuZXQvaXB2NjogTWFrZSBmcm9tIGluIHJ0Nl9pbmZvIHJjdSBwcm90ZWN0 ZWQiKQpTaWduZWQtb2ZmLWJ5OiBKb25hdGhhbiBMZW1vbiA8am9uYXRoYW4ubGVtb25AZ21haWwu Y29tPgpSZXZpZXdlZC1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpSZXZp ZXdlZC1ieTogRGF2aWQgQWhlcm4gPGRzYWhlcm5AZ21haWwuY29tPgpSZXZpZXdlZC1ieTogTWFy dGluIEthRmFpIExhdSA8a2FmYWlAZmIuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxs ZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjYvcm91dGUuYyB8IDQgKysrKwog MSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY2L3Jv dXRlLmMgYi9uZXQvaXB2Ni9yb3V0ZS5jCmluZGV4IDkwMDZiYjNjOWU3Mi4uMDZmYTg0MjVkODJj IDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9yb3V0ZS5jCisrKyBiL25ldC9pcHY2L3JvdXRlLmMKQEAg LTIzNjcsNiArMjM2NywxMCBAQCBzdGF0aWMgdm9pZCBfX2lwNl9ydF91cGRhdGVfcG10dShzdHJ1 Y3QgZHN0X2VudHJ5ICpkc3QsIGNvbnN0IHN0cnVjdCBzb2NrICpzaywKIAogCQlyY3VfcmVhZF9s b2NrKCk7CiAJCWZyb20gPSByY3VfZGVyZWZlcmVuY2UocnQ2LT5mcm9tKTsKKwkJaWYgKCFmcm9t KSB7CisJCQlyY3VfcmVhZF91bmxvY2soKTsKKwkJCXJldHVybjsKKwkJfQogCQlucnQ2ID0gaXA2 X3J0X2NhY2hlX2FsbG9jKGZyb20sIGRhZGRyLCBzYWRkcik7CiAJCWlmIChucnQ2KSB7CiAJCQly dDZfZG9fdXBkYXRlX3BtdHUobnJ0NiwgbXR1KTsKLS0gCjIuMjAuMQoKCkZyb20gOWY2NTEyMjVh ODczMTcwZDhhYzFmZjAxYmVlYWE1NGYxOWVmN2VjMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogPT9VVEYtOD9xP1Rva2U9MjBIPUMzPUI4aWxhbmQtSj1DMz1COHJnZW5zZW4/PSA8dG9r ZUByZWRoYXQuY29tPgpEYXRlOiBUaHUsIDQgQXByIDIwMTkgMTU6MDE6MzMgKzAyMDAKU3ViamVj dDogW1BBVENIIDIwLzI0XSBzY2hfY2FrZTogVXNlIHRjX3NrYl9wcm90b2NvbCgpIGhlbHBlciBm b3IgZ2V0dGluZwogcGFja2V0IHByb3RvY29sCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlw ZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4 Yml0CgpbIFVwc3RyZWFtIGNvbW1pdCBiMjEwMGNjNTZmY2E4YzUxZDI4YWE0MmE5ZjFmYmNiMmNm MzUxOTk2IF0KCldlIHNob3VsZG4ndCBiZSB1c2luZyBza2ItPnByb3RvY29sIGRpcmVjdGx5IGFz IHRoYXQgd2lsbCBtaXNzIGNhc2VzIHdpdGgKaGFyZHdhcmUtYWNjZWxlcmF0ZWQgVkxBTiB0YWdz LiBVc2UgdGhlIGhlbHBlciBpbnN0ZWFkIHRvIGdldCB0aGUgcmlnaHQKcHJvdG9jb2wgbnVtYmVy LgoKUmVwb3J0ZWQtYnk6IEtldmluIERhcmJ5c2hpcmUtQnJ5YW50IDxrZXZpbkBkYXJieXNoaXJl LWJyeWFudC5tZS51az4KU2lnbmVkLW9mZi1ieTogVG9rZSBIw7hpbGFuZC1Kw7hyZ2Vuc2VuIDx0 b2tlQHJlZGhhdC5jb20+Ci0tLQogbmV0L3NjaGVkL3NjaF9jYWtlLmMgfCAyICstCiAxIGZpbGUg Y2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQv c2NoZWQvc2NoX2Nha2UuYyBiL25ldC9zY2hlZC9zY2hfY2FrZS5jCmluZGV4IDc5MzAxNmQ3MjJl Yy4uYzVlODdkMWMyNmViIDEwMDY0NAotLS0gYS9uZXQvc2NoZWQvc2NoX2Nha2UuYworKysgYi9u ZXQvc2NoZWQvc2NoX2Nha2UuYwpAQCAtMTUyNiw3ICsxNTI2LDcgQEAgc3RhdGljIHU4IGNha2Vf aGFuZGxlX2RpZmZzZXJ2KHN0cnVjdCBza19idWZmICpza2IsIHUxNiB3YXNoKQogewogCXU4IGRz Y3A7CiAKLQlzd2l0Y2ggKHNrYi0+cHJvdG9jb2wpIHsKKwlzd2l0Y2ggKHRjX3NrYl9wcm90b2Nv bChza2IpKSB7CiAJY2FzZSBodG9ucyhFVEhfUF9JUCk6CiAJCWRzY3AgPSBpcHY0X2dldF9kc2Zp ZWxkKGlwX2hkcihza2IpKSA+PiAyOwogCQlpZiAod2FzaCAmJiBkc2NwKQotLSAKMi4yMC4xCgoK RnJvbSBlYTk3N2U0Y2I2YjBlMmE5MWMzYjQzZmRlMGY2MTNiYzAzNGE5MDc0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/VG9rZT0yMEg9QzM9QjhpbGFuZC1KPUMzPUI4 cmdlbnNlbj89IDx0b2tlQHJlZGhhdC5jb20+CkRhdGU6IFRodSwgNCBBcHIgMjAxOSAxNTowMToz MyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMjEvMjRdIHNjaF9jYWtlOiBNYWtlIHN1cmUgd2UgY2Fu IHdyaXRlIHRoZSBJUCBoZWFkZXIgYmVmb3JlCiBjaGFuZ2luZyBEU0NQIGJpdHMKTUlNRS1WZXJz aW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQt VHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKClsgVXBzdHJlYW0gY29tbWl0IGM4N2I0ZWNkYmU4ZGIy Nzg2N2E3YjdmODQwMjkxY2Q4NDM0MDZiZDcgXQoKVGhlcmUgaXMgbm90IGFjdHVhbGx5IGFueSBn dWFyYW50ZWUgdGhhdCB0aGUgSVAgaGVhZGVycyBhcmUgdmFsaWQgYmVmb3JlIHdlCmFjY2VzcyB0 aGUgRFNDUCBiaXRzIG9mIHRoZSBwYWNrZXRzLiBGaXggdGhpcyB1c2luZyB0aGUgc2FtZSBhcHBy b2FjaCB0YWtlbgppbiBzY2hfZHNtYXJrLgoKUmVwb3J0ZWQtYnk6IEtldmluIERhcmJ5c2hpcmUt QnJ5YW50IDxrZXZpbkBkYXJieXNoaXJlLWJyeWFudC5tZS51az4KU2lnbmVkLW9mZi1ieTogVG9r ZSBIw7hpbGFuZC1Kw7hyZ2Vuc2VuIDx0b2tlQHJlZGhhdC5jb20+Ci0tLQogbmV0L3NjaGVkL3Nj aF9jYWtlLmMgfCAxMSArKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDExIGluc2VydGlvbnMo KykKCmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvc2NoX2Nha2UuYyBiL25ldC9zY2hlZC9zY2hfY2Fr ZS5jCmluZGV4IGM1ZTg3ZDFjMjZlYi4uNzVjYTgwOTA5Y2Y4IDEwMDY0NAotLS0gYS9uZXQvc2No ZWQvc2NoX2Nha2UuYworKysgYi9uZXQvc2NoZWQvc2NoX2Nha2UuYwpAQCAtMTUyNCwxNiArMTUy NCwyNyBAQCBzdGF0aWMgdm9pZCBjYWtlX3dhc2hfZGlmZnNlcnYoc3RydWN0IHNrX2J1ZmYgKnNr YikKIAogc3RhdGljIHU4IGNha2VfaGFuZGxlX2RpZmZzZXJ2KHN0cnVjdCBza19idWZmICpza2Is IHUxNiB3YXNoKQogeworCWludCB3bGVuID0gc2tiX25ldHdvcmtfb2Zmc2V0KHNrYik7CiAJdTgg ZHNjcDsKIAogCXN3aXRjaCAodGNfc2tiX3Byb3RvY29sKHNrYikpIHsKIAljYXNlIGh0b25zKEVU SF9QX0lQKToKKwkJd2xlbiArPSBzaXplb2Yoc3RydWN0IGlwaGRyKTsKKwkJaWYgKCFwc2tiX21h eV9wdWxsKHNrYiwgd2xlbikgfHwKKwkJICAgIHNrYl90cnlfbWFrZV93cml0YWJsZShza2IsIHds ZW4pKQorCQkJcmV0dXJuIDA7CisKIAkJZHNjcCA9IGlwdjRfZ2V0X2RzZmllbGQoaXBfaGRyKHNr YikpID4+IDI7CiAJCWlmICh3YXNoICYmIGRzY3ApCiAJCQlpcHY0X2NoYW5nZV9kc2ZpZWxkKGlw X2hkcihza2IpLCBJTkVUX0VDTl9NQVNLLCAwKTsKIAkJcmV0dXJuIGRzY3A7CiAKIAljYXNlIGh0 b25zKEVUSF9QX0lQVjYpOgorCQl3bGVuICs9IHNpemVvZihzdHJ1Y3QgaXB2Nmhkcik7CisJCWlm ICghcHNrYl9tYXlfcHVsbChza2IsIHdsZW4pIHx8CisJCSAgICBza2JfdHJ5X21ha2Vfd3JpdGFi bGUoc2tiLCB3bGVuKSkKKwkJCXJldHVybiAwOworCiAJCWRzY3AgPSBpcHY2X2dldF9kc2ZpZWxk KGlwdjZfaGRyKHNrYikpID4+IDI7CiAJCWlmICh3YXNoICYmIGRzY3ApCiAJCQlpcHY2X2NoYW5n ZV9kc2ZpZWxkKGlwdjZfaGRyKHNrYiksIElORVRfRUNOX01BU0ssIDApOwotLSAKMi4yMC4xCgoK RnJvbSAzM2I3NDE5MzY4NDUwNTcyMDg2NTYwM2M4ODZjZjM3NjZjZTUzYmUzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQaWV0ZXIgSmFuc2VuIHZhbiBWdXVyZW4gPHBpZXRlci5qYW5z ZW52YW52dXVyZW5AbmV0cm9ub21lLmNvbT4KRGF0ZTogTW9uLCAxIEFwciAyMDE5IDE5OjM2OjMz IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAyMi8yNF0gbmZwOiBmbG93ZXI6IHJlcGxhY2UgQ0ZJIHdp dGggdmxhbiBwcmVzZW50CgpbIFVwc3RyZWFtIGNvbW1pdCBmN2VlNzk5YTUxZGRiY2MyMDVlZjYx NWZlNDI0ZmI1MDg0ZTllMGFhIF0KClJlcGxhY2UgdmxhbiBDRkkgYml0IHdpdGggYSB2bGFuIHBy ZXNlbnQgYml0IHRoYXQgaW5kaWNhdGVzIHRoZQpwcmVzZW5jZSBvZiBhIHZsYW4gdGFnLiBQcmV2 aW91c2x5IHRoZSBkcml2ZXIgaW5jb3JyZWN0bHkgYXNzdW1lZAp0aGF0IGFuIHZsYW4gaWQgb2Yg MCBpcyBub3QgbWF0Y2hhYmxlLCB0aGVyZWZvcmUgd2UgaW5kaWNhdGUgdmxhbgpwcmVzZW5jZSB3 aXRoIGEgdmxhbiBwcmVzZW50IGJpdC4KCkZpeGVzOiA1NTcxZThjOWYyNDEgKCJuZnA6IGV4dGVu ZCBmbG93ZXIgbWF0Y2hpbmcgY2FwYWJpbGl0aWVzIikKU2lnbmVkLW9mZi1ieTogUGlldGVyIEph bnNlbiB2YW4gVnV1cmVuIDxwaWV0ZXIuamFuc2VudmFudnV1cmVuQG5ldHJvbm9tZS5jb20+ClNp Z25lZC1vZmYtYnk6IExvdWlzIFBlZW5zIDxsb3Vpcy5wZWVuc0BuZXRyb25vbWUuY29tPgotLS0K IGRyaXZlcnMvbmV0L2V0aGVybmV0L25ldHJvbm9tZS9uZnAvZmxvd2VyL2Ntc2cuaCAgfCAgMiAr LQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbmV0cm9ub21lL25mcC9mbG93ZXIvbWF0Y2guYyB8IDE0 ICsrKysrKy0tLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgOSBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9uZXRyb25vbWUvbmZw L2Zsb3dlci9jbXNnLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9uZXRyb25vbWUvbmZwL2Zsb3dl ci9jbXNnLmgKaW5kZXggMzI1OTU0YjgyOWM4Li4zYjdhODYzMDUzMGEgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvbmV0L2V0aGVybmV0L25ldHJvbm9tZS9uZnAvZmxvd2VyL2Ntc2cuaAorKysgYi9kcml2 ZXJzL25ldC9ldGhlcm5ldC9uZXRyb25vbWUvbmZwL2Zsb3dlci9jbXNnLmgKQEAgLTU1LDcgKzU1 LDcgQEAKICNkZWZpbmUgTkZQX0ZMT1dFUl9MQVlFUjJfR0VORVZFX09QCUJJVCg2KQogCiAjZGVm aW5lIE5GUF9GTE9XRVJfTUFTS19WTEFOX1BSSU8JR0VOTUFTSygxNSwgMTMpCi0jZGVmaW5lIE5G UF9GTE9XRVJfTUFTS19WTEFOX0NGSQlCSVQoMTIpCisjZGVmaW5lIE5GUF9GTE9XRVJfTUFTS19W TEFOX1BSRVNFTlQJQklUKDEyKQogI2RlZmluZSBORlBfRkxPV0VSX01BU0tfVkxBTl9WSUQJR0VO TUFTSygxMSwgMCkKIAogI2RlZmluZSBORlBfRkxPV0VSX01BU0tfTVBMU19MQgkJR0VOTUFTSygz MSwgMTIpCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9uZXRyb25vbWUvbmZwL2Zs b3dlci9tYXRjaC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbmV0cm9ub21lL25mcC9mbG93ZXIv bWF0Y2guYwppbmRleCAxN2FjYjhjYzYwNDQuLmI5OWQ1NWNmODFmMSAxMDA2NDQKLS0tIGEvZHJp dmVycy9uZXQvZXRoZXJuZXQvbmV0cm9ub21lL25mcC9mbG93ZXIvbWF0Y2guYworKysgYi9kcml2 ZXJzL25ldC9ldGhlcm5ldC9uZXRyb25vbWUvbmZwL2Zsb3dlci9tYXRjaC5jCkBAIC01NiwxNCAr NTYsMTIgQEAgbmZwX2Zsb3dlcl9jb21waWxlX21ldGFfdGNpKHN0cnVjdCBuZnBfZmxvd2VyX21l dGFfdGNpICpmcmFtZSwKIAkJCQkJCSAgICAgIEZMT1dfRElTU0VDVE9SX0tFWV9WTEFOLAogCQkJ CQkJICAgICAgdGFyZ2V0KTsKIAkJLyogUG9wdWxhdGUgdGhlIHRjaSBmaWVsZC4gKi8KLQkJaWYg KGZsb3dfdmxhbi0+dmxhbl9pZCB8fCBmbG93X3ZsYW4tPnZsYW5fcHJpb3JpdHkpIHsKLQkJCXRt cF90Y2kgPSBGSUVMRF9QUkVQKE5GUF9GTE9XRVJfTUFTS19WTEFOX1BSSU8sCi0JCQkJCSAgICAg Zmxvd192bGFuLT52bGFuX3ByaW9yaXR5KSB8Ci0JCQkJICBGSUVMRF9QUkVQKE5GUF9GTE9XRVJf TUFTS19WTEFOX1ZJRCwKLQkJCQkJICAgICBmbG93X3ZsYW4tPnZsYW5faWQpIHwKLQkJCQkgIE5G UF9GTE9XRVJfTUFTS19WTEFOX0NGSTsKLQkJCWZyYW1lLT50Y2kgPSBjcHVfdG9fYmUxNih0bXBf dGNpKTsKLQkJfQorCQl0bXBfdGNpID0gTkZQX0ZMT1dFUl9NQVNLX1ZMQU5fUFJFU0VOVDsKKwkJ dG1wX3RjaSB8PSBGSUVMRF9QUkVQKE5GUF9GTE9XRVJfTUFTS19WTEFOX1BSSU8sCisJCQkJICAg ICAgZmxvd192bGFuLT52bGFuX3ByaW9yaXR5KSB8CisJCQkgICBGSUVMRF9QUkVQKE5GUF9GTE9X RVJfTUFTS19WTEFOX1ZJRCwKKwkJCQkgICAgICBmbG93X3ZsYW4tPnZsYW5faWQpOworCQlmcmFt ZS0+dGNpID0gY3B1X3RvX2JlMTYodG1wX3RjaSk7CiAJfQogfQogCi0tIAoyLjIwLjEKCgpGcm9t IDY3NDIwNTYyY2Y4OWFhMjI5MzQ5ZDQ4NzE1ZWEyZDY4NmFmZGQ1MGEgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IFBpZXRlciBKYW5zZW4gdmFuIFZ1dXJlbiA8cGlldGVyLmphbnNlbnZh bnZ1dXJlbkBuZXRyb25vbWUuY29tPgpEYXRlOiBNb24sIDEgQXByIDIwMTkgMTk6MzY6MzQgLTA3 MDAKU3ViamVjdDogW1BBVENIIDIzLzI0XSBuZnA6IGZsb3dlcjogcmVtb3ZlIHZsYW4gQ0ZJIGJp dCBmcm9tIHB1c2ggdmxhbiBhY3Rpb24KClsgVXBzdHJlYW0gY29tbWl0IDQyY2Q1NDg0YTIyZjFh MWI5NDdlMjFlMmFmNjVmYTdkYWIwOWQwMTcgXQoKV2Ugbm8gbG9uZ2VyIHNldCBDRkkgd2hlbiBw dXNoaW5nIHZsYW4gdGFncywgdGhlcmVmb3JlIHdlIHJlbW92ZQp0aGUgQ0ZJIGJpdCBmcm9tIHB1 c2ggdmxhbi4KCkZpeGVzOiAxYTFlNTg2ZjU0YmYgKCJuZnA6IGFkZCBiYXNpYyBhY3Rpb24gY2Fw YWJpbGl0aWVzIHRvIGZsb3dlciBvZmZsb2FkcyIpClNpZ25lZC1vZmYtYnk6IFBpZXRlciBKYW5z ZW4gdmFuIFZ1dXJlbiA8cGlldGVyLmphbnNlbnZhbnZ1dXJlbkBuZXRyb25vbWUuY29tPgpTaWdu ZWQtb2ZmLWJ5OiBMb3VpcyBQZWVucyA8bG91aXMucGVlbnNAbmV0cm9ub21lLmNvbT4KLS0tCiBk cml2ZXJzL25ldC9ldGhlcm5ldC9uZXRyb25vbWUvbmZwL2Zsb3dlci9hY3Rpb24uYyB8IDMgKy0t CiBkcml2ZXJzL25ldC9ldGhlcm5ldC9uZXRyb25vbWUvbmZwL2Zsb3dlci9jbXNnLmggICB8IDEg LQogMiBmaWxlcyBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9uZXRyb25vbWUvbmZwL2Zsb3dlci9hY3Rpb24u YyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L25ldHJvbm9tZS9uZnAvZmxvd2VyL2FjdGlvbi5jCmlu ZGV4IDdhMWU5Y2Q5Y2M2Mi4uNzc3Yjk5NDE2MDYyIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9l dGhlcm5ldC9uZXRyb25vbWUvbmZwL2Zsb3dlci9hY3Rpb24uYworKysgYi9kcml2ZXJzL25ldC9l dGhlcm5ldC9uZXRyb25vbWUvbmZwL2Zsb3dlci9hY3Rpb24uYwpAQCAtODAsOCArODAsNyBAQCBu ZnBfZmxfcHVzaF92bGFuKHN0cnVjdCBuZnBfZmxfcHVzaF92bGFuICpwdXNoX3ZsYW4sCiAKIAl0 bXBfcHVzaF92bGFuX3RjaSA9CiAJCUZJRUxEX1BSRVAoTkZQX0ZMX1BVU0hfVkxBTl9QUklPLCB0 Y2Zfdmxhbl9wdXNoX3ByaW8oYWN0aW9uKSkgfAotCQlGSUVMRF9QUkVQKE5GUF9GTF9QVVNIX1ZM QU5fVklELCB0Y2Zfdmxhbl9wdXNoX3ZpZChhY3Rpb24pKSB8Ci0JCU5GUF9GTF9QVVNIX1ZMQU5f Q0ZJOworCQlGSUVMRF9QUkVQKE5GUF9GTF9QVVNIX1ZMQU5fVklELCB0Y2Zfdmxhbl9wdXNoX3Zp ZChhY3Rpb24pKTsKIAlwdXNoX3ZsYW4tPnZsYW5fdGNpID0gY3B1X3RvX2JlMTYodG1wX3B1c2hf dmxhbl90Y2kpOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9uZXRyb25v bWUvbmZwL2Zsb3dlci9jbXNnLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9uZXRyb25vbWUvbmZw L2Zsb3dlci9jbXNnLmgKaW5kZXggM2I3YTg2MzA1MzBhLi45YjAxODMyMWUyNGUgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L25ldHJvbm9tZS9uZnAvZmxvd2VyL2Ntc2cuaAorKysg Yi9kcml2ZXJzL25ldC9ldGhlcm5ldC9uZXRyb25vbWUvbmZwL2Zsb3dlci9jbXNnLmgKQEAgLTEw OSw3ICsxMDksNiBAQAogI2RlZmluZSBORlBfRkxfT1VUX0ZMQUdTX1RZUEVfSURYCUdFTk1BU0so MiwgMCkKIAogI2RlZmluZSBORlBfRkxfUFVTSF9WTEFOX1BSSU8JCUdFTk1BU0soMTUsIDEzKQot I2RlZmluZSBORlBfRkxfUFVTSF9WTEFOX0NGSQkJQklUKDEyKQogI2RlZmluZSBORlBfRkxfUFVT SF9WTEFOX1ZJRAkJR0VOTUFTSygxMSwgMCkKIAogLyogTEFHIHBvcnRzICovCi0tIAoyLjIwLjEK CgpGcm9tIDA2MjEzMDRiOTc2YmEyOWEzZmE5M2IzNTVlM2FlMmZiOGY1ZTg1NzggTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT9Ub2tlPTIwSD1DMz1COGlsYW5kLUo9QzM9 QjhyZ2Vuc2VuPz0gPHRva2VAcmVkaGF0LmNvbT4KRGF0ZTogRnJpLCA1IEFwciAyMDE5IDE1OjAx OjU5ICswMjAwClN1YmplY3Q6IFtQQVRDSCAyNC8yNF0gc2NoX2Nha2U6IFNpbXBsaWZ5IGxvZ2lj IGluIGNha2Vfc2VsZWN0X3RpbigpCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4 dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0Cgpb IFVwc3RyZWFtIGNvbW1pdCA0OTc2ZTNjNjgzZjMyOGJjNmYyZWRlZjU1NWE0ZmZlZTY1MjQ0ODZm IF0KClRoZSBsb2dpYyBpbiBjYWtlX3NlbGVjdF90aW4oKSB3YXMgZ2V0dGluZyBhIGJpdCBoYWly eSwgYW5kIGl0IHR1cm5zIG91dCB3ZQpjYW4gc2ltcGxpZnkgaXQgcXVpdGUgYSBiaXQuIFRoaXMg YWxzbyBhbGxvd3MgdXMgdG8gZ2V0IHJpZCBvZiBvbmUgb2YgdGhlCnR3byBkaWZmc2VydiBwYXJz aW5nIGZ1bmN0aW9ucywgd2hpY2ggaGFzIHRoZSBhZGRlZCBiZW5lZml0IHRoYXQKYWxyZWFkeS16 ZXJvZWQgRFNDUCBmaWVsZHMgd29uJ3QgZ2V0IHJlLXdyaXR0ZW4uCgpTdWdnZXN0ZWQtYnk6IEtl dmluIERhcmJ5c2hpcmUtQnJ5YW50IDxsZGlyQGRhcmJ5c2hpcmUtYnJ5YW50Lm1lLnVrPgpTaWdu ZWQtb2ZmLWJ5OiBUb2tlIEjDuGlsYW5kLUrDuHJnZW5zZW4gPHRva2VAcmVkaGF0LmNvbT4KLS0t CiBuZXQvc2NoZWQvc2NoX2Nha2UuYyB8IDQ0ICsrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTYgaW5zZXJ0aW9ucygrKSwgMjggZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL3NjaF9jYWtlLmMgYi9uZXQvc2NoZWQv c2NoX2Nha2UuYwppbmRleCA3NWNhODA5MDljZjguLjlmZDM3ZDkxYjVlZCAxMDA2NDQKLS0tIGEv bmV0L3NjaGVkL3NjaF9jYWtlLmMKKysrIGIvbmV0L3NjaGVkL3NjaF9jYWtlLmMKQEAgLTE1MDgs MjAgKzE1MDgsNiBAQCBzdGF0aWMgdW5zaWduZWQgaW50IGNha2VfZHJvcChzdHJ1Y3QgUWRpc2Mg KnNjaCwgc3RydWN0IHNrX2J1ZmYgKip0b19mcmVlKQogCXJldHVybiBpZHggKyAodGluIDw8IDE2 KTsKIH0KIAotc3RhdGljIHZvaWQgY2FrZV93YXNoX2RpZmZzZXJ2KHN0cnVjdCBza19idWZmICpz a2IpCi17Ci0Jc3dpdGNoIChza2ItPnByb3RvY29sKSB7Ci0JY2FzZSBodG9ucyhFVEhfUF9JUCk6 Ci0JCWlwdjRfY2hhbmdlX2RzZmllbGQoaXBfaGRyKHNrYiksIElORVRfRUNOX01BU0ssIDApOwot CQlicmVhazsKLQljYXNlIGh0b25zKEVUSF9QX0lQVjYpOgotCQlpcHY2X2NoYW5nZV9kc2ZpZWxk KGlwdjZfaGRyKHNrYiksIElORVRfRUNOX01BU0ssIDApOwotCQlicmVhazsKLQlkZWZhdWx0Ogot CQlicmVhazsKLQl9Ci19Ci0KIHN0YXRpYyB1OCBjYWtlX2hhbmRsZV9kaWZmc2VydihzdHJ1Y3Qg c2tfYnVmZiAqc2tiLCB1MTYgd2FzaCkKIHsKIAlpbnQgd2xlbiA9IHNrYl9uZXR3b3JrX29mZnNl dChza2IpOwpAQCAtMTU2NCwyNSArMTU1MCwyNyBAQCBzdGF0aWMgc3RydWN0IGNha2VfdGluX2Rh dGEgKmNha2Vfc2VsZWN0X3RpbihzdHJ1Y3QgUWRpc2MgKnNjaCwKIHsKIAlzdHJ1Y3QgY2FrZV9z Y2hlZF9kYXRhICpxID0gcWRpc2NfcHJpdihzY2gpOwogCXUzMiB0aW47CisJdTggZHNjcDsKIAot CWlmIChUQ19IX01BSihza2ItPnByaW9yaXR5KSA9PSBzY2gtPmhhbmRsZSAmJgotCSAgICBUQ19I X01JTihza2ItPnByaW9yaXR5KSA+IDAgJiYKLQkgICAgVENfSF9NSU4oc2tiLT5wcmlvcml0eSkg PD0gcS0+dGluX2NudCkgeworCS8qIFRpbiBzZWxlY3Rpb246IERlZmF1bHQgdG8gZGlmZnNlcnYt YmFzZWQgc2VsZWN0aW9uLCBhbGxvdyBvdmVycmlkaW5nCisJICogdXNpbmcgZmlyZXdhbGwgbWFy a3Mgb3Igc2tiLT5wcmlvcml0eS4KKwkgKi8KKwlkc2NwID0gY2FrZV9oYW5kbGVfZGlmZnNlcnYo c2tiLAorCQkJCSAgICBxLT5yYXRlX2ZsYWdzICYgQ0FLRV9GTEFHX1dBU0gpOworCisJaWYgKHEt PnRpbl9tb2RlID09IENBS0VfRElGRlNFUlZfQkVTVEVGRk9SVCkKKwkJdGluID0gMDsKKworCWVs c2UgaWYgKFRDX0hfTUFKKHNrYi0+cHJpb3JpdHkpID09IHNjaC0+aGFuZGxlICYmCisJCSBUQ19I X01JTihza2ItPnByaW9yaXR5KSA+IDAgJiYKKwkJIFRDX0hfTUlOKHNrYi0+cHJpb3JpdHkpIDw9 IHEtPnRpbl9jbnQpCiAJCXRpbiA9IHEtPnRpbl9vcmRlcltUQ19IX01JTihza2ItPnByaW9yaXR5 KSAtIDFdOwogCi0JCWlmIChxLT5yYXRlX2ZsYWdzICYgQ0FLRV9GTEFHX1dBU0gpCi0JCQljYWtl X3dhc2hfZGlmZnNlcnYoc2tiKTsKLQl9IGVsc2UgaWYgKHEtPnRpbl9tb2RlICE9IENBS0VfRElG RlNFUlZfQkVTVEVGRk9SVCkgewotCQkvKiBleHRyYWN0IHRoZSBEaWZmc2VydiBQcmVjZWRlbmNl IGZpZWxkLCBpZiBpdCBleGlzdHMgKi8KLQkJLyogYW5kIGNsZWFyIERTQ1AgYml0cyBpZiB3YXNo aW5nICovCi0JCXRpbiA9IHEtPnRpbl9pbmRleFtjYWtlX2hhbmRsZV9kaWZmc2Vydihza2IsCi0J CQkJcS0+cmF0ZV9mbGFncyAmIENBS0VfRkxBR19XQVNIKV07CisJZWxzZSB7CisJCXRpbiA9IHEt PnRpbl9pbmRleFtkc2NwXTsKKwogCQlpZiAodW5saWtlbHkodGluID49IHEtPnRpbl9jbnQpKQog CQkJdGluID0gMDsKLQl9IGVsc2UgewotCQl0aW4gPSAwOwotCQlpZiAocS0+cmF0ZV9mbGFncyAm IENBS0VfRkxBR19XQVNIKQotCQkJY2FrZV93YXNoX2RpZmZzZXJ2KHNrYik7CiAJfQogCiAJcmV0 dXJuICZxLT50aW5zW3Rpbl07Ci0tIAoyLjIwLjEKCg== ----Next_Part(Thu_Apr_18_15_53_40_2019_784)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_50.mbox" RnJvbSAwMTM3MjhkNjlmZWI5ZjNiMGE5NzNiMDU3MmFlMWJlZTE4ZDA3YTRkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTYWJyaW5hIER1YnJvY2EgPHNkQHF1ZWFzeXNuYWlsLm5ldD4K RGF0ZTogRnJpLCAxMiBBcHIgMjAxOSAxNTowNDoxMCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDEv NDNdIGJvbmRpbmc6IGZpeCBldmVudCBoYW5kbGluZyBmb3Igc3RhY2tlZCBib25kcwoKWyBVcHN0 cmVhbSBjb21taXQgOTI0ODBiMzk3N2ZkMzg4NDY0OWQ0MDRjYmJhZjgzOWI3MDAzNTY5OSBdCgpX aGVuIGEgYm9uZCBpcyBlbnNsYXZlZCB0byBhbm90aGVyIGJvbmQsIGJvbmRfbmV0ZGV2X2V2ZW50 KCkgb25seQpoYW5kbGVzIHRoZSBldmVudCBhcyBpZiB0aGUgYm9uZCBpcyBhIG1hc3RlciwgYW5k IHNraXBzIHRyZWF0aW5nIHRoZQpib25kIGFzIGEgc2xhdmUuCgpUaGlzIGxlYWRzIHRvIGEgcmVm Y291bnQgbGVhayBvbiB0aGUgc2xhdmUsIHNpbmNlIHdlIGRvbid0IHJlbW92ZSB0aGUKYWRqYWNl bmN5IHRvIGl0cyBtYXN0ZXIgYW5kIHRoZSBtYXN0ZXIgaG9sZHMgYSByZWZlcmVuY2Ugb24gdGhl IHNsYXZlLgoKUmVwcm9kdWNlcjoKICBpcCBsaW5rIGFkZCBib25kTCB0eXBlIGJvbmQKICBpcCBs aW5rIGFkZCBib25kVSB0eXBlIGJvbmQKICBpcCBsaW5rIHNldCBib25kTCBtYXN0ZXIgYm9uZFUK ICBpcCBsaW5rIGRlbCBib25kTAoKTm8gIkZpeGVzOiIgdGFnLCB0aGlzIGNvZGUgaXMgb2xkZXIg dGhhbiBnaXQgaGlzdG9yeS4KClNpZ25lZC1vZmYtYnk6IFNhYnJpbmEgRHVicm9jYSA8c2RAcXVl YXN5c25haWwubmV0PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVt bG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvYm9uZGluZy9ib25kX21haW4uYyB8IDYgKysrKyst CiAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9uZXQvYm9uZGluZy9ib25kX21haW4uYyBiL2RyaXZlcnMvbmV0L2JvbmRp bmcvYm9uZF9tYWluLmMKaW5kZXggNTM3YzkwYzhlYjBhLi5mODlmYzZlYTYwNzggMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvbmV0L2JvbmRpbmcvYm9uZF9tYWluLmMKKysrIGIvZHJpdmVycy9uZXQvYm9u ZGluZy9ib25kX21haW4uYwpAQCAtMzIxNCw4ICszMjE0LDEyIEBAIHN0YXRpYyBpbnQgYm9uZF9u ZXRkZXZfZXZlbnQoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICp0aGlzLAogCQlyZXR1cm4gTk9USUZZ X0RPTkU7CiAKIAlpZiAoZXZlbnRfZGV2LT5mbGFncyAmIElGRl9NQVNURVIpIHsKKwkJaW50IHJl dDsKKwogCQluZXRkZXZfZGJnKGV2ZW50X2RldiwgIklGRl9NQVNURVJcbiIpOwotCQlyZXR1cm4g Ym9uZF9tYXN0ZXJfbmV0ZGV2X2V2ZW50KGV2ZW50LCBldmVudF9kZXYpOworCQlyZXQgPSBib25k X21hc3Rlcl9uZXRkZXZfZXZlbnQoZXZlbnQsIGV2ZW50X2Rldik7CisJCWlmIChyZXQgIT0gTk9U SUZZX0RPTkUpCisJCQlyZXR1cm4gcmV0OwogCX0KIAogCWlmIChldmVudF9kZXYtPmZsYWdzICYg SUZGX1NMQVZFKSB7Ci0tIAoyLjIwLjEKCgpGcm9tIDIzNzA4ZDE5MDNkMDhkYmE4Y2Y1YmFhMDM3 OTkzMTUxNmQ1NTViOTEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFNpLVdlaSBMaXUg PHNpLXdlaS5saXVAb3JhY2xlLmNvbT4KRGF0ZTogTW9uLCA4IEFwciAyMDE5IDE5OjQ1OjI3IC0w NDAwClN1YmplY3Q6IFtQQVRDSCAwMi80M10gZmFpbG92ZXI6IGFsbG93IG5hbWUgY2hhbmdlIG9u IElGRl9VUCBzbGF2ZSBpbnRlcmZhY2VzCgpbIFVwc3RyZWFtIGNvbW1pdCA4MDY1YTc3OWYxN2U5 NDUzNmExYzRkY2VlNGY5ZDg4MDExNjcyZjk3IF0KCldoZW4gYSBuZXRkZXYgYXBwZWFycyB0aHJv dWdoIGhvdCBwbHVnIHRoZW4gZ2V0cyBlbnNsYXZlZCBieSBhIGZhaWxvdmVyCm1hc3RlciB0aGF0 IGlzIGFscmVhZHkgdXAgYW5kIHJ1bm5pbmcsIHRoZSBzbGF2ZSB3aWxsIGJlIG9wZW5lZApyaWdo dCBhd2F5IGFmdGVyIGdldHRpbmcgZW5zbGF2ZWQuIFRvZGF5IHRoZXJlJ3MgYSByYWNlIHRoYXQg dXNlcnNwYWNlCih1ZGV2KSBtYXkgZmFpbCB0byByZW5hbWUgdGhlIHNsYXZlIGlmIHRoZSBrZXJu ZWwgKG5ldF9mYWlsb3ZlcikKb3BlbnMgdGhlIHNsYXZlIGVhcmxpZXIgdGhhbiB3aGVuIHRoZSB1 c2Vyc3BhY2UgcmVuYW1lIGhhcHBlbnMuClVubGlrZSBib25kIG9yIHRlYW0sIHRoZSBwcmltYXJ5 IHNsYXZlIG9mIGZhaWxvdmVyIGNhbid0IGJlIHJlbmFtZWQgYnkKdXNlcnNwYWNlIGFoZWFkIG9m IHRpbWUsIHNpbmNlIHRoZSBrZXJuZWwgaW5pdGlhdGVkIGF1dG8tZW5zbGF2ZW1lbnQgaXMKdW5h YmxlIHRvLCBvciByYXRoZXIsIGlzIG5ldmVyIG1lYW50IHRvIGJlIHN5bmNocm9uaXplZCB3aXRo IHRoZSByZW5hbWUKcmVxdWVzdCBmcm9tIHVzZXJzcGFjZS4KCkFzIHRoZSBmYWlsb3ZlciBzbGF2 ZSBpbnRlcmZhY2VzIGFyZSBub3QgZGVzaWduZWQgdG8gYmUgb3BlcmF0ZWQKZGlyZWN0bHkgYnkg dXNlcnNwYWNlIGFwcHM6IElQIGNvbmZpZ3VyYXRpb24sIGZpbHRlciBydWxlcyB3aXRoCnJlZ2Fy ZCB0byBuZXR3b3JrIHRyYWZmaWMgcGFzc2luZyBhbmQgZXRjLiwgc2hvdWxkIGFsbCBiZSBkb25l IG9uIG1hc3RlcgppbnRlcmZhY2UuIEluIGdlbmVyYWwsIHVzZXJzcGFjZSBhcHBzIG9ubHkgY2Fy ZSBhYm91dCB0aGUKbmFtZSBvZiBtYXN0ZXIgaW50ZXJmYWNlLCB3aGlsZSBzbGF2ZSBuYW1lcyBh cmUgbGVzcyBpbXBvcnRhbnQgYXMgbG9uZwphcyBhZG1pbiB1c2VycyBjYW4gc2VlIHJlbGlhYmxl IG5hbWVzIHRoYXQgbWF5IGNhcnJ5Cm90aGVyIGluZm9ybWF0aW9uIGRlc2NyaWJpbmcgdGhlIG5l dGRldi4gRm9yIGUuZy4sIHRoZXkgY2FuIGluZmVyIHRoYXQKImVuczNuc2J5IiBpcyBhIHN0YW5k Ynkgc2xhdmUgb2YgImVuczMiLCB3aGlsZSBmb3IgYQpuYW1lIGxpa2UgImV0aDAiIHRoZXkgY2Fu J3QgdGVsbCB3aGljaCBtYXN0ZXIgaXQgYmVsb25ncyB0by4KCkhpc3RvcmljYWxseSB0aGUgbmFt ZSBvZiBJRkZfVVAgaW50ZXJmYWNlIGNhbid0IGJlIGNoYW5nZWQgYmVjYXVzZQp0aGVyZSBtaWdo dCBiZSBhZG1pbiBzY3JpcHQgb3IgbWFuYWdlbWVudCBzb2Z0d2FyZSB0aGF0IGlzIGFscmVhZHkK cmVseWluZyBvbiBzdWNoIGJlaGF2aW9yIGFuZCBhc3N1bWVzIHRoYXQgdGhlIHNsYXZlIG5hbWUg Y2FuJ3QgYmUKY2hhbmdlZCBvbmNlIFVQLiBCdXQgZmFpbG92ZXIgaXMgc3BlY2lhbDogd2l0aCB0 aGUgaW4ta2VybmVsCmF1dG8tZW5zbGF2ZW1lbnQgbWVjaGFuaXNtLCB0aGUgdXNlcnNwYWNlIGV4 cGVjdGF0aW9uIGZvciBkZXZpY2UKZW51bWVyYXRpb24gYW5kIGJyaW5nLXVwIG9yZGVyIGlzIGFs cmVhZHkgYnJva2VuLiBQcmV2aW91c2x5IGluaXRyYW1mcwphbmQgdmFyaW91cyB1c2Vyc3BhY2Ug Y29uZmlnIHRvb2xzIHdlcmUgbW9kaWZpZWQgdG8gYnlwYXNzIGZhaWxvdmVyCnNsYXZlcyBiZWNh dXNlIG9mIGF1dG8tZW5zbGF2ZW1lbnQgYW5kIGR1cGxpY2F0ZSBNQUMgYWRkcmVzcy4gU2ltaWxh cmx5LAppbiBjYXNlIHRoYXQgdXNlcnMgY2FyZSBhYm91dCBzZWVpbmcgcmVsaWFibGUgc2xhdmUg bmFtZSwgdGhlIG5ldyB0eXBlCm9mIGZhaWxvdmVyIHNsYXZlcyBuZWVkcyB0byBiZSB0YWtlbiBj YXJlIG9mIHNwZWNpZmljYWxseSBpbiB1c2Vyc3BhY2UKYW55d2F5LgoKSXQncyBsZXNzIHJpc2t5 IHRvIGxpZnQgdXAgdGhlIHJlbmFtZSByZXN0cmljdGlvbiBvbiBmYWlsb3ZlciBzbGF2ZQp3aGlj aCBpcyBhbHJlYWR5IFVQLiBBbHRob3VnaCBpdCdzIHBvc3NpYmxlIHRoaXMgY2hhbmdlIG1heSBw b3RlbnRpYWxseQpicmVhayB1c2Vyc3BhY2UgY29tcG9uZW50IChtb3N0IGxpa2VseSBjb25maWd1 cmF0aW9uIHNjcmlwdHMgb3IKbWFuYWdlbWVudCBzb2Z0d2FyZSkgdGhhdCBhc3N1bWVzIHNsYXZl IG5hbWUgY2FuJ3QgYmUgY2hhbmdlZCB3aGlsZQpVUCwgaXQncyByZWxhdGl2ZWx5IGEgbGltaXRl ZCBhbmQgY29udHJvbGxhYmxlIHNldCBhbW9uZyBhbGwgdXNlcnNwYWNlCmNvbXBvbmVudHMsIHdo aWNoIGNhbiBiZSBmaXhlZCBzcGVjaWZpY2FsbHkgdG8gbGlzdGVuIGZvciB0aGUgcmVuYW1lCmV2 ZW50cyBvbiBmYWlsb3ZlciBzbGF2ZXMuIFVzZXJzcGFjZSBjb21wb25lbnQgaW50ZXJhY3Rpbmcg d2l0aCBzbGF2ZXMKaXMgZXhwZWN0ZWQgdG8gYmUgY2hhbmdlZCB0byBvcGVyYXRlIG9uIGZhaWxv dmVyIG1hc3RlciBpbnRlcmZhY2UKaW5zdGVhZCwgYXMgdGhlIGZhaWxvdmVyIHNsYXZlIGlzIGR5 bmFtaWMgaW4gbmF0dXJlIHdoaWNoIG1heSBjb21lIGFuZApnbyBhdCBhbnkgcG9pbnQuICBUaGUg Z29hbCBpcyB0byBtYWtlIHRoZSByb2xlIG9mIGZhaWxvdmVyIHNsYXZlcyBsZXNzCnJlbGV2YW50 LCBhbmQgdXNlcnNwYWNlIGNvbXBvbmVudHMgc2hvdWxkIG9ubHkgZGVhbCB3aXRoIGZhaWxvdmVy IG1hc3RlcgppbiB0aGUgbG9uZyBydW4uCgpGaXhlczogMzBjOGJkNWFhOGIyICgibmV0OiBJbnRy b2R1Y2UgZ2VuZXJpYyBmYWlsb3ZlciBtb2R1bGUiKQpTaWduZWQtb2ZmLWJ5OiBTaS1XZWkgTGl1 IDxzaS13ZWkubGl1QG9yYWNsZS5jb20+ClJldmlld2VkLWJ5OiBMaXJhbiBBbG9uIDxsaXJhbi5h bG9uQG9yYWNsZS5jb20+CkFja2VkLWJ5OiBTcmlkaGFyIFNhbXVkcmFsYSA8c3JpZGhhci5zYW11 ZHJhbGFAaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+Ci0tLQogaW5jbHVkZS9saW51eC9uZXRkZXZpY2UuaCB8ICAzICsrKwogbmV0 L2NvcmUvZGV2LmMgICAgICAgICAgICB8IDE2ICsrKysrKysrKysrKysrKy0KIG5ldC9jb3JlL2Zh aWxvdmVyLmMgICAgICAgfCAgNiArKystLS0KIDMgZmlsZXMgY2hhbmdlZCwgMjEgaW5zZXJ0aW9u cygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L25ldGRldmlj ZS5oIGIvaW5jbHVkZS9saW51eC9uZXRkZXZpY2UuaAppbmRleCA4NDhiNTRiN2VjOTEuLjdkZjU2 ZGVjYWUzNyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9uZXRkZXZpY2UuaAorKysgYi9pbmNs dWRlL2xpbnV4L25ldGRldmljZS5oCkBAIC0xNDg0LDYgKzE0ODQsNyBAQCBzdHJ1Y3QgbmV0X2Rl dmljZV9vcHMgewogICogQElGRl9GQUlMT1ZFUjogZGV2aWNlIGlzIGEgZmFpbG92ZXIgbWFzdGVy IGRldmljZQogICogQElGRl9GQUlMT1ZFUl9TTEFWRTogZGV2aWNlIGlzIGxvd2VyIGRldiBvZiBh IGZhaWxvdmVyIG1hc3RlciBkZXZpY2UKICAqIEBJRkZfTDNNREVWX1JYX0hBTkRMRVI6IG9ubHkg aW52b2tlIHRoZSByeCBoYW5kbGVyIG9mIEwzIG1hc3RlciBkZXZpY2UKKyAqIEBJRkZfTElWRV9S RU5BTUVfT0s6IHJlbmFtZSBpcyBhbGxvd2VkIHdoaWxlIGRldmljZSBpcyB1cCBhbmQgcnVubmlu ZwogICovCiBlbnVtIG5ldGRldl9wcml2X2ZsYWdzIHsKIAlJRkZfODAyXzFRX1ZMQU4JCQk9IDE8 PDAsCkBAIC0xNTE2LDYgKzE1MTcsNyBAQCBlbnVtIG5ldGRldl9wcml2X2ZsYWdzIHsKIAlJRkZf RkFJTE9WRVIJCQk9IDE8PDI3LAogCUlGRl9GQUlMT1ZFUl9TTEFWRQkJPSAxPDwyOCwKIAlJRkZf TDNNREVWX1JYX0hBTkRMRVIJCT0gMTw8MjksCisJSUZGX0xJVkVfUkVOQU1FX09LCQk9IDE8PDMw LAogfTsKIAogI2RlZmluZSBJRkZfODAyXzFRX1ZMQU4JCQlJRkZfODAyXzFRX1ZMQU4KQEAgLTE1 NDcsNiArMTU0OSw3IEBAIGVudW0gbmV0ZGV2X3ByaXZfZmxhZ3MgewogI2RlZmluZSBJRkZfRkFJ TE9WRVIJCQlJRkZfRkFJTE9WRVIKICNkZWZpbmUgSUZGX0ZBSUxPVkVSX1NMQVZFCQlJRkZfRkFJ TE9WRVJfU0xBVkUKICNkZWZpbmUgSUZGX0wzTURFVl9SWF9IQU5ETEVSCQlJRkZfTDNNREVWX1JY X0hBTkRMRVIKKyNkZWZpbmUgSUZGX0xJVkVfUkVOQU1FX09LCQlJRkZfTElWRV9SRU5BTUVfT0sK IAogLyoqCiAgKglzdHJ1Y3QgbmV0X2RldmljZSAtIFRoZSBERVZJQ0Ugc3RydWN0dXJlLgpkaWZm IC0tZ2l0IGEvbmV0L2NvcmUvZGV2LmMgYi9uZXQvY29yZS9kZXYuYwppbmRleCAxMjgyNGUwMDdl MDYuLjcyNzdkZDM5M2MwMCAxMDA2NDQKLS0tIGEvbmV0L2NvcmUvZGV2LmMKKysrIGIvbmV0L2Nv cmUvZGV2LmMKQEAgLTExODQsNyArMTE4NCwyMSBAQCBpbnQgZGV2X2NoYW5nZV9uYW1lKHN0cnVj dCBuZXRfZGV2aWNlICpkZXYsIGNvbnN0IGNoYXIgKm5ld25hbWUpCiAJQlVHX09OKCFkZXZfbmV0 KGRldikpOwogCiAJbmV0ID0gZGV2X25ldChkZXYpOwotCWlmIChkZXYtPmZsYWdzICYgSUZGX1VQ KQorCisJLyogU29tZSBhdXRvLWVuc2xhdmVkIGRldmljZXMgZS5nLiBmYWlsb3ZlciBzbGF2ZXMg YXJlCisJICogc3BlY2lhbCwgYXMgdXNlcnNwYWNlIG1pZ2h0IHJlbmFtZSB0aGUgZGV2aWNlIGFm dGVyCisJICogdGhlIGludGVyZmFjZSBoYWQgYmVlbiBicm91Z2h0IHVwIGFuZCBydW5uaW5nIHNp bmNlCisJICogdGhlIHBvaW50IGtlcm5lbCBpbml0aWF0ZWQgYXV0by1lbnNsYXZlbWVudC4gQWxs b3cKKwkgKiBsaXZlIG5hbWUgY2hhbmdlIGV2ZW4gd2hlbiB0aGVzZSBzbGF2ZSBkZXZpY2VzIGFy ZQorCSAqIHVwIGFuZCBydW5uaW5nLgorCSAqCisJICogVHlwaWNhbGx5LCB1c2VycyBvZiB0aGVz ZSBhdXRvLWVuc2xhdmluZyBkZXZpY2VzCisJICogZG9uJ3QgYWN0dWFsbHkgY2FyZSBhYm91dCBz bGF2ZSBuYW1lIGNoYW5nZSwgYXMKKwkgKiB0aGV5IGFyZSBzdXBwb3NlZCB0byBvcGVyYXRlIG9u IG1hc3RlciBpbnRlcmZhY2UKKwkgKiBkaXJlY3RseS4KKwkgKi8KKwlpZiAoZGV2LT5mbGFncyAm IElGRl9VUCAmJgorCSAgICBsaWtlbHkoIShkZXYtPnByaXZfZmxhZ3MgJiBJRkZfTElWRV9SRU5B TUVfT0spKSkKIAkJcmV0dXJuIC1FQlVTWTsKIAogCXdyaXRlX3NlcWNvdW50X2JlZ2luKCZkZXZu ZXRfcmVuYW1lX3NlcSk7CmRpZmYgLS1naXQgYS9uZXQvY29yZS9mYWlsb3Zlci5jIGIvbmV0L2Nv cmUvZmFpbG92ZXIuYwppbmRleCA0YTkyYTk4Y2NjZTkuLmI1Y2QzYzcyNzI4NSAxMDA2NDQKLS0t IGEvbmV0L2NvcmUvZmFpbG92ZXIuYworKysgYi9uZXQvY29yZS9mYWlsb3Zlci5jCkBAIC04MCwx NCArODAsMTQgQEAgc3RhdGljIGludCBmYWlsb3Zlcl9zbGF2ZV9yZWdpc3RlcihzdHJ1Y3QgbmV0 X2RldmljZSAqc2xhdmVfZGV2KQogCQlnb3RvIGVycl91cHBlcl9saW5rOwogCX0KIAotCXNsYXZl X2Rldi0+cHJpdl9mbGFncyB8PSBJRkZfRkFJTE9WRVJfU0xBVkU7CisJc2xhdmVfZGV2LT5wcml2 X2ZsYWdzIHw9IChJRkZfRkFJTE9WRVJfU0xBVkUgfCBJRkZfTElWRV9SRU5BTUVfT0spOwogCiAJ aWYgKGZvcHMgJiYgZm9wcy0+c2xhdmVfcmVnaXN0ZXIgJiYKIAkgICAgIWZvcHMtPnNsYXZlX3Jl Z2lzdGVyKHNsYXZlX2RldiwgZmFpbG92ZXJfZGV2KSkKIAkJcmV0dXJuIE5PVElGWV9PSzsKIAog CW5ldGRldl91cHBlcl9kZXZfdW5saW5rKHNsYXZlX2RldiwgZmFpbG92ZXJfZGV2KTsKLQlzbGF2 ZV9kZXYtPnByaXZfZmxhZ3MgJj0gfklGRl9GQUlMT1ZFUl9TTEFWRTsKKwlzbGF2ZV9kZXYtPnBy aXZfZmxhZ3MgJj0gfihJRkZfRkFJTE9WRVJfU0xBVkUgfCBJRkZfTElWRV9SRU5BTUVfT0spOwog ZXJyX3VwcGVyX2xpbms6CiAJbmV0ZGV2X3J4X2hhbmRsZXJfdW5yZWdpc3RlcihzbGF2ZV9kZXYp OwogZG9uZToKQEAgLTEyMSw3ICsxMjEsNyBAQCBpbnQgZmFpbG92ZXJfc2xhdmVfdW5yZWdpc3Rl cihzdHJ1Y3QgbmV0X2RldmljZSAqc2xhdmVfZGV2KQogCiAJbmV0ZGV2X3J4X2hhbmRsZXJfdW5y ZWdpc3RlcihzbGF2ZV9kZXYpOwogCW5ldGRldl91cHBlcl9kZXZfdW5saW5rKHNsYXZlX2Rldiwg ZmFpbG92ZXJfZGV2KTsKLQlzbGF2ZV9kZXYtPnByaXZfZmxhZ3MgJj0gfklGRl9GQUlMT1ZFUl9T TEFWRTsKKwlzbGF2ZV9kZXYtPnByaXZfZmxhZ3MgJj0gfihJRkZfRkFJTE9WRVJfU0xBVkUgfCBJ RkZfTElWRV9SRU5BTUVfT0spOwogCiAJaWYgKGZvcHMgJiYgZm9wcy0+c2xhdmVfdW5yZWdpc3Rl ciAmJgogCSAgICAhZm9wcy0+c2xhdmVfdW5yZWdpc3RlcihzbGF2ZV9kZXYsIGZhaWxvdmVyX2Rl dikpCi0tIAoyLjIwLjEKCgpGcm9tIDg1N2ZlMmI0NmI1NDY1ZmY0Y2MyMWUxMzlhMTYzYzcxZjM1 NjNiNTUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ICJHdXN0YXZvIEEuIFIuIFNpbHZh IiA8Z3VzdGF2b0BlbWJlZGRlZG9yLmNvbT4KRGF0ZTogTW9uLCAxNSBBcHIgMjAxOSAxNTo1Nzoy MyAtMDUwMApTdWJqZWN0OiBbUEFUQ0ggMDMvNDNdIG5ldDogYXRtOiBGaXggcG90ZW50aWFsIFNw ZWN0cmUgdjEgdnVsbmVyYWJpbGl0aWVzCgpbIFVwc3RyZWFtIGNvbW1pdCA4OTk1MzdiNzM1NTdh YWZiZGQxMTA1MGI1MDFjZjU0YjRmNWM0NWFmIF0KCmFyZyBpcyBjb250cm9sbGVkIGJ5IHVzZXIt c3BhY2UsIGhlbmNlIGxlYWRpbmcgdG8gYSBwb3RlbnRpYWwKZXhwbG9pdGF0aW9uIG9mIHRoZSBT cGVjdHJlIHZhcmlhbnQgMSB2dWxuZXJhYmlsaXR5LgoKVGhpcyBpc3N1ZSB3YXMgZGV0ZWN0ZWQg d2l0aCB0aGUgaGVscCBvZiBTbWF0Y2g6CgpuZXQvYXRtL2xlYy5jOjcxNSBsZWNfbWNhc3RfYXR0 YWNoKCkgd2FybjogcG90ZW50aWFsIHNwZWN0cmUgaXNzdWUgJ2Rldl9sZWMnIFtyXSAobG9jYWwg Y2FwKQoKRml4IHRoaXMgYnkgc2FuaXRpemluZyBhcmcgYmVmb3JlIHVzaW5nIGl0IHRvIGluZGV4 IGRldl9sZWMuCgpOb3RpY2UgdGhhdCBnaXZlbiB0aGF0IHNwZWN1bGF0aW9uIHdpbmRvd3MgYXJl IGxhcmdlLCB0aGUgcG9saWN5IGlzCnRvIGtpbGwgdGhlIHNwZWN1bGF0aW9uIG9uIHRoZSBmaXJz dCBsb2FkIGFuZCBub3Qgd29ycnkgaWYgaXQgY2FuIGJlCmNvbXBsZXRlZCB3aXRoIGEgZGVwZW5k ZW50IGxvYWQvc3RvcmUgWzFdLgoKWzFdIGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL2xrbWwvMjAx ODA0MjMxNjQ3NDAuR1kxNzQ4NEBkaGNwMjIuc3VzZS5jei8KClNpZ25lZC1vZmYtYnk6IEd1c3Rh dm8gQS4gUi4gU2lsdmEgPGd1c3Rhdm9AZW1iZWRkZWRvci5jb20+ClNpZ25lZC1vZmYtYnk6IERh dmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvYXRtL2xlYy5jIHwg NiArKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkK CmRpZmYgLS1naXQgYS9uZXQvYXRtL2xlYy5jIGIvbmV0L2F0bS9sZWMuYwppbmRleCBkN2Y1Y2Y1 Yjc1OTQuLmFkNGY4MjkxOTNmMCAxMDA2NDQKLS0tIGEvbmV0L2F0bS9sZWMuYworKysgYi9uZXQv YXRtL2xlYy5jCkBAIC03MTAsNyArNzEwLDEwIEBAIHN0YXRpYyBpbnQgbGVjX3ZjY19hdHRhY2go c3RydWN0IGF0bV92Y2MgKnZjYywgdm9pZCBfX3VzZXIgKmFyZykKIAogc3RhdGljIGludCBsZWNf bWNhc3RfYXR0YWNoKHN0cnVjdCBhdG1fdmNjICp2Y2MsIGludCBhcmcpCiB7Ci0JaWYgKGFyZyA8 IDAgfHwgYXJnID49IE1BWF9MRUNfSVRGIHx8ICFkZXZfbGVjW2FyZ10pCisJaWYgKGFyZyA8IDAg fHwgYXJnID49IE1BWF9MRUNfSVRGKQorCQlyZXR1cm4gLUVJTlZBTDsKKwlhcmcgPSBhcnJheV9p bmRleF9ub3NwZWMoYXJnLCBNQVhfTEVDX0lURik7CisJaWYgKCFkZXZfbGVjW2FyZ10pCiAJCXJl dHVybiAtRUlOVkFMOwogCXZjYy0+cHJvdG9fZGF0YSA9IGRldl9sZWNbYXJnXTsKIAlyZXR1cm4g bGVjX21jYXN0X21ha2UobmV0ZGV2X3ByaXYoZGV2X2xlY1thcmddKSwgdmNjKTsKQEAgLTcyOCw2 ICs3MzEsNyBAQCBzdGF0aWMgaW50IGxlY2RfYXR0YWNoKHN0cnVjdCBhdG1fdmNjICp2Y2MsIGlu dCBhcmcpCiAJCWkgPSBhcmc7CiAJaWYgKGFyZyA+PSBNQVhfTEVDX0lURikKIAkJcmV0dXJuIC1F SU5WQUw7CisJaSA9IGFycmF5X2luZGV4X25vc3BlYyhhcmcsIE1BWF9MRUNfSVRGKTsKIAlpZiAo IWRldl9sZWNbaV0pIHsKIAkJaW50IHNpemU7CiAKLS0gCjIuMjAuMQoKCkZyb20gNjEwYzk1MDMy OTgwNjYwZjI5ZmYwM2EzOTFhYTA4YTJlYjFhZmRjYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogTmlrb2xheSBBbGVrc2FuZHJvdiA8bmlrb2xheUBjdW11bHVzbmV0d29ya3MuY29tPgpE YXRlOiBUaHUsIDExIEFwciAyMDE5IDEzOjU2OjM5ICswMzAwClN1YmplY3Q6IFtQQVRDSCAwNC80 M10gbmV0OiBicmlkZ2U6IGZpeCBwZXItcG9ydCBhZl9wYWNrZXQgc29ja2V0cwoKWyBVcHN0cmVh bSBjb21taXQgM2IyZTI5MDRkZWIzMTRjYzc3YTIxOTJmNTA2ZjJmZDQ0ZTNkMTBkMCBdCgpXaGVu IHRoZSBjb21taXQgYmVsb3cgd2FzIGludHJvZHVjZWQgaXQgY2hhbmdlZCB0d28gdmlzaWJsZSB0 aGluZ3M6CiAtIHRoZSBza2Igd2FzIG5vIGxvbmdlciBwYXNzZWQgdGhyb3VnaCB0aGUgcHJvdG9j b2wgaGFuZGxlcnMgd2l0aCB0aGUKICAgb3JpZ2luYWwgZGV2aWNlCiAtIHRoZSBza2Igd2FzIHBh c3NlZCB1cCB0aGUgc3RhY2sgd2l0aCBza2ItPmRldiA9IGJyaWRnZQoKVGhlIGZpcnN0IGNoYW5n ZSBicm9rZSBhZl9wYWNrZXQgc29ja2V0cyBvbiBicmlkZ2UgcG9ydHMuIEZvciBleGFtcGxlIHdl CnVzZSB0aGVtIGZvciBob3N0YXBkIHdoaWNoIGxpc3RlbnMgZm9yIEVUSF9QX1BBRSBwYWNrZXRz IG9uIHRoZSBwb3J0cy4KV2UgZGlzY3Vzc2VkIHR3byBwb3NzaWJsZSBmaXhlczoKIC0gY3JlYXRl IGEgY2xvbmUgYW5kIHBhc3MgaXQgdGhyb3VnaCBORl9IT09LKCksIGFjdCBvbiB0aGUgb3JpZ2lu YWwgc2tiCiAgIGJhc2VkIG9uIHRoZSByZXN1bHQKIC0gc29tZWhvdyBzaWduYWwgdG8gdGhlIGNh bGxlciBmcm9tIHRoZSBva2ZuKCkgdGhhdCBpdCB3YXMgY2FsbGVkLAogICBtZWFuaW5nIHRoZSBz a2IgaXMgb2sgdG8gYmUgcGFzc2VkLCB3aGljaCB0aGlzIHBhdGNoIGlzIHRyeWluZyB0bwogICBp bXBsZW1lbnQgdmlhIHJldHVybmluZyAxIGZyb20gdGhlIGJyaWRnZSBsaW5rLWxvY2FsIG9rZm4o KQoKTm90ZSB0aGF0IHdlIHJlbHkgb24gdGhlIGZhY3QgdGhhdCBORl9RVUVVRS9TVE9MRU4gd291 bGQgcmV0dXJuIDAgYW5kCmRyb3AvZXJyb3Igd291bGQgcmV0dXJuIDwgMCB0aHVzIHRoZSBva2Zu KCkgaXMgY2FsbGVkIG9ubHkgd2hlbiB0aGUKcmV0dXJuIHdhcyAxLCBzbyB3ZSBzaWduYWwgdG8g dGhlIGNhbGxlciB0aGF0IGl0IHdhcyBjYWxsZWQgYnkgcHJlc2VydmluZwp0aGUgcmV0dXJuIHZh bHVlIGZyb20gbmZfaG9vaygpLgoKRml4ZXM6IDg2MjZjNTZjODI3OSAoImJyaWRnZTogZml4IHBv dGVudGlhbCB1c2UtYWZ0ZXItZnJlZSB3aGVuIGhvb2sgcmV0dXJucyBRVUVVRSBvciBTVE9MRU4g dmVyZGljdCIpClNpZ25lZC1vZmYtYnk6IE5pa29sYXkgQWxla3NhbmRyb3YgPG5pa29sYXlAY3Vt dWx1c25ldHdvcmtzLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBk YXZlbWxvZnQubmV0PgotLS0KIG5ldC9icmlkZ2UvYnJfaW5wdXQuYyB8IDIzICsrKysrKysrKysr KysrLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTQgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvYnJpZGdlL2JyX2lucHV0LmMgYi9uZXQvYnJpZGdlL2Jy X2lucHV0LmMKaW5kZXggNWVhN2U1NjExOWMxLi5iYTMwM2VlOTliOWIgMTAwNjQ0Ci0tLSBhL25l dC9icmlkZ2UvYnJfaW5wdXQuYworKysgYi9uZXQvYnJpZGdlL2JyX2lucHV0LmMKQEAgLTE5Nywx MyArMTk3LDEwIEBAIHN0YXRpYyB2b2lkIF9fYnJfaGFuZGxlX2xvY2FsX2ZpbmlzaChzdHJ1Y3Qg c2tfYnVmZiAqc2tiKQogLyogbm90ZTogYWxyZWFkeSBjYWxsZWQgd2l0aCByY3VfcmVhZF9sb2Nr ICovCiBzdGF0aWMgaW50IGJyX2hhbmRsZV9sb2NhbF9maW5pc2goc3RydWN0IG5ldCAqbmV0LCBz dHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IpCiB7Ci0Jc3RydWN0IG5ldF9icmlk Z2VfcG9ydCAqcCA9IGJyX3BvcnRfZ2V0X3JjdShza2ItPmRldik7Ci0KIAlfX2JyX2hhbmRsZV9s b2NhbF9maW5pc2goc2tiKTsKIAotCUJSX0lOUFVUX1NLQl9DQihza2IpLT5icmRldiA9IHAtPmJy LT5kZXY7Ci0JYnJfcGFzc19mcmFtZV91cChza2IpOwotCXJldHVybiAwOworCS8qIHJldHVybiAx IHRvIHNpZ25hbCB0aGUgb2tmbigpIHdhcyBjYWxsZWQgc28gaXQncyBvayB0byB1c2UgdGhlIHNr YiAqLworCXJldHVybiAxOwogfQogCiAvKgpAQCAtMjgwLDEwICsyNzcsMTggQEAgcnhfaGFuZGxl cl9yZXN1bHRfdCBicl9oYW5kbGVfZnJhbWUoc3RydWN0IHNrX2J1ZmYgKipwc2tiKQogCQkJCWdv dG8gZm9yd2FyZDsKIAkJfQogCi0JCS8qIERlbGl2ZXIgcGFja2V0IHRvIGxvY2FsIGhvc3Qgb25s eSAqLwotCQlORl9IT09LKE5GUFJPVE9fQlJJREdFLCBORl9CUl9MT0NBTF9JTiwgZGV2X25ldChz a2ItPmRldiksCi0JCQlOVUxMLCBza2IsIHNrYi0+ZGV2LCBOVUxMLCBicl9oYW5kbGVfbG9jYWxf ZmluaXNoKTsKLQkJcmV0dXJuIFJYX0hBTkRMRVJfQ09OU1VNRUQ7CisJCS8qIFRoZSBlbHNlIGNs YXVzZSBzaG91bGQgYmUgaGl0IHdoZW4gbmZfaG9vaygpOgorCQkgKiAgIC0gcmV0dXJucyA8IDAg KGRyb3AvZXJyb3IpCisJCSAqICAgLSByZXR1cm5zID0gMCAoc3RvbGVuL25mX3F1ZXVlKQorCQkg KiBUaHVzIHJldHVybiAxIGZyb20gdGhlIG9rZm4oKSB0byBzaWduYWwgdGhlIHNrYiBpcyBvayB0 byBwYXNzCisJCSAqLworCQlpZiAoTkZfSE9PSyhORlBST1RPX0JSSURHRSwgTkZfQlJfTE9DQUxf SU4sCisJCQkgICAgZGV2X25ldChza2ItPmRldiksIE5VTEwsIHNrYiwgc2tiLT5kZXYsIE5VTEws CisJCQkgICAgYnJfaGFuZGxlX2xvY2FsX2ZpbmlzaCkgPT0gMSkgeworCQkJcmV0dXJuIFJYX0hB TkRMRVJfUEFTUzsKKwkJfSBlbHNlIHsKKwkJCXJldHVybiBSWF9IQU5ETEVSX0NPTlNVTUVEOwor CQl9CiAJfQogCiBmb3J3YXJkOgotLSAKMi4yMC4xCgoKRnJvbSBlNTY2NTIxNDVjNmUyYjRiMTVj NzQ3ZmI0MTQzNDcyZDEyZGZjNmIwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBOaWtv bGF5IEFsZWtzYW5kcm92IDxuaWtvbGF5QGN1bXVsdXNuZXR3b3Jrcy5jb20+CkRhdGU6IFRodSwg MTEgQXByIDIwMTkgMTU6MDg6MjUgKzAzMDAKU3ViamVjdDogW1BBVENIIDA1LzQzXSBuZXQ6IGJy aWRnZTogbXVsdGljYXN0OiB1c2UgcmN1IHRvIGFjY2VzcyBwb3J0IGxpc3QKIGZyb20gYnJfbXVs dGljYXN0X3N0YXJ0X3F1ZXJpZXIKClsgVXBzdHJlYW0gY29tbWl0IGM1YjQ5M2NlMTkyYmQ3YTRl N2JkMDczYjU2ODVhYWQxMjFlZWVmODIgXQoKYnJfbXVsdGljYXN0X3N0YXJ0X3F1ZXJpZXIoKSB3 YWxrcyBvdmVyIHRoZSBwb3J0IGxpc3QgYnV0IGl0IGNhbiBiZQpjYWxsZWQgZnJvbSBhIHRpbWVy IHdpdGggb25seSBtdWx0aWNhc3RfbG9jayBoZWxkIHdoaWNoIGRvZXNuJ3QgcHJvdGVjdAp0aGUg cG9ydCBsaXN0LCBzbyB1c2UgUkNVIHRvIHdhbGsgb3ZlciBpdC4KCkZpeGVzOiBjODNiOGZhYjA2 ZmMgKCJicmlkZ2U6IFJlc3RhcnQgcXVlcmllcyB3aGVuIGxhc3QgcXVlcmllciBleHBpcmVzIikK U2lnbmVkLW9mZi1ieTogTmlrb2xheSBBbGVrc2FuZHJvdiA8bmlrb2xheUBjdW11bHVzbmV0d29y a3MuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5u ZXQ+Ci0tLQogbmV0L2JyaWRnZS9icl9tdWx0aWNhc3QuYyB8IDQgKysrLQogMSBmaWxlIGNoYW5n ZWQsIDMgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9icmlk Z2UvYnJfbXVsdGljYXN0LmMgYi9uZXQvYnJpZGdlL2JyX211bHRpY2FzdC5jCmluZGV4IGU0Nzc3 NjE0YThhMC4uNjFmZjBkNDk3ZGE2IDEwMDY0NAotLS0gYS9uZXQvYnJpZGdlL2JyX211bHRpY2Fz dC5jCisrKyBiL25ldC9icmlkZ2UvYnJfbXVsdGljYXN0LmMKQEAgLTE5MTYsNyArMTkxNiw4IEBA IHN0YXRpYyB2b2lkIGJyX211bHRpY2FzdF9zdGFydF9xdWVyaWVyKHN0cnVjdCBuZXRfYnJpZGdl ICpiciwKIAogCV9fYnJfbXVsdGljYXN0X29wZW4oYnIsIHF1ZXJ5KTsKIAotCWxpc3RfZm9yX2Vh Y2hfZW50cnkocG9ydCwgJmJyLT5wb3J0X2xpc3QsIGxpc3QpIHsKKwlyY3VfcmVhZF9sb2NrKCk7 CisJbGlzdF9mb3JfZWFjaF9lbnRyeV9yY3UocG9ydCwgJmJyLT5wb3J0X2xpc3QsIGxpc3QpIHsK IAkJaWYgKHBvcnQtPnN0YXRlID09IEJSX1NUQVRFX0RJU0FCTEVEIHx8CiAJCSAgICBwb3J0LT5z dGF0ZSA9PSBCUl9TVEFURV9CTE9DS0lORykKIAkJCWNvbnRpbnVlOwpAQCAtMTkyOCw2ICsxOTI5 LDcgQEAgc3RhdGljIHZvaWQgYnJfbXVsdGljYXN0X3N0YXJ0X3F1ZXJpZXIoc3RydWN0IG5ldF9i cmlkZ2UgKmJyLAogCQkJYnJfbXVsdGljYXN0X2VuYWJsZSgmcG9ydC0+aXA2X293bl9xdWVyeSk7 CiAjZW5kaWYKIAl9CisJcmN1X3JlYWRfdW5sb2NrKCk7CiB9CiAKIGludCBicl9tdWx0aWNhc3Rf dG9nZ2xlKHN0cnVjdCBuZXRfYnJpZGdlICpiciwgdW5zaWduZWQgbG9uZyB2YWwpCi0tIAoyLjIw LjEKCgpGcm9tIGQ4YTZiYmYxN2M2M2FmMWRkMzFhY2NlNjc0MTE2YmE0OWExZjRjYTIgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFuZHkgRHVhbiA8ZnVnYW5nLmR1YW5AbnhwLmNvbT4K RGF0ZTogVHVlLCA5IEFwciAyMDE5IDAzOjQwOjU2ICswMDAwClN1YmplY3Q6IFtQQVRDSCAwNi80 M10gbmV0OiBmZWM6IG1hbmFnZSBhaGIgY2xvY2sgaW4gcnVudGltZSBwbQoKWyBVcHN0cmVhbSBj b21taXQgZDdjM2EyMDZlNjMzOGU0Y2NkZjAzMDcxOWRlYzAyOGUyNmE1MjFkNSBdCgpTb21lIFNP QyBsaWtlIGkuTVg2U1ggY2xvY2sgaGF2ZSBzb21lIGxpbWl0czoKLSBhaGIgY2xvY2sgc2hvdWxk IGJlIGRpc2FibGVkIGJlZm9yZSBpcGcuCi0gYWhiIGFuZCBpcGcgY2xvY2tzIGFyZSByZXF1aXJl ZCBmb3IgTUFDIE1JSSBidXMuClNvLCBtb3ZlIHRoZSBhaGIgY2xvY2sgdG8gcnVudGltZSBtYW5h Z2VtZW50IHRvZ2V0aGVyIHdpdGgKaXBnIGNsb2NrLgoKU2lnbmVkLW9mZi1ieTogRnVnYW5nIER1 YW4gPGZ1Z2FuZy5kdWFuQG54cC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8 ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUv ZmVjX21haW4uYyB8IDMwICsrKysrKysrKysrKysrKystLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwg MjEgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25l dC9ldGhlcm5ldC9mcmVlc2NhbGUvZmVjX21haW4uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Zy ZWVzY2FsZS9mZWNfbWFpbi5jCmluZGV4IDY5N2MyNDI3ZjJiNy4uYTk2YWQyMGVlNDg0IDEwMDY0 NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZmVjX21haW4uYworKysgYi9k cml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZmVjX21haW4uYwpAQCAtMTg0MCwxMyArMTg0 MCw5IEBAIHN0YXRpYyBpbnQgZmVjX2VuZXRfY2xrX2VuYWJsZShzdHJ1Y3QgbmV0X2RldmljZSAq bmRldiwgYm9vbCBlbmFibGUpCiAJaW50IHJldDsKIAogCWlmIChlbmFibGUpIHsKLQkJcmV0ID0g Y2xrX3ByZXBhcmVfZW5hYmxlKGZlcC0+Y2xrX2FoYik7Ci0JCWlmIChyZXQpCi0JCQlyZXR1cm4g cmV0OwotCiAJCXJldCA9IGNsa19wcmVwYXJlX2VuYWJsZShmZXAtPmNsa19lbmV0X291dCk7CiAJ CWlmIChyZXQpCi0JCQlnb3RvIGZhaWxlZF9jbGtfZW5ldF9vdXQ7CisJCQlyZXR1cm4gcmV0Owog CiAJCWlmIChmZXAtPmNsa19wdHApIHsKIAkJCW11dGV4X2xvY2soJmZlcC0+cHRwX2Nsa19tdXRl eCk7CkBAIC0xODY2LDcgKzE4NjIsNiBAQCBzdGF0aWMgaW50IGZlY19lbmV0X2Nsa19lbmFibGUo c3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsIGJvb2wgZW5hYmxlKQogCiAJCXBoeV9yZXNldF9hZnRl cl9jbGtfZW5hYmxlKG5kZXYtPnBoeWRldik7CiAJfSBlbHNlIHsKLQkJY2xrX2Rpc2FibGVfdW5w cmVwYXJlKGZlcC0+Y2xrX2FoYik7CiAJCWNsa19kaXNhYmxlX3VucHJlcGFyZShmZXAtPmNsa19l bmV0X291dCk7CiAJCWlmIChmZXAtPmNsa19wdHApIHsKIAkJCW11dGV4X2xvY2soJmZlcC0+cHRw X2Nsa19tdXRleCk7CkBAIC0xODg1LDggKzE4ODAsNiBAQCBzdGF0aWMgaW50IGZlY19lbmV0X2Ns a19lbmFibGUoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsIGJvb2wgZW5hYmxlKQogZmFpbGVkX2Ns a19wdHA6CiAJaWYgKGZlcC0+Y2xrX2VuZXRfb3V0KQogCQljbGtfZGlzYWJsZV91bnByZXBhcmUo ZmVwLT5jbGtfZW5ldF9vdXQpOwotZmFpbGVkX2Nsa19lbmV0X291dDoKLQkJY2xrX2Rpc2FibGVf dW5wcmVwYXJlKGZlcC0+Y2xrX2FoYik7CiAKIAlyZXR1cm4gcmV0OwogfQpAQCAtMzQ3MCw2ICsz NDYzLDkgQEAgZmVjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJcmV0ID0g Y2xrX3ByZXBhcmVfZW5hYmxlKGZlcC0+Y2xrX2lwZyk7CiAJaWYgKHJldCkKIAkJZ290byBmYWls ZWRfY2xrX2lwZzsKKwlyZXQgPSBjbGtfcHJlcGFyZV9lbmFibGUoZmVwLT5jbGtfYWhiKTsKKwlp ZiAocmV0KQorCQlnb3RvIGZhaWxlZF9jbGtfYWhiOwogCiAJZmVwLT5yZWdfcGh5ID0gZGV2bV9y ZWd1bGF0b3JfZ2V0X29wdGlvbmFsKCZwZGV2LT5kZXYsICJwaHkiKTsKIAlpZiAoIUlTX0VSUihm ZXAtPnJlZ19waHkpKSB7CkBAIC0zNTYzLDYgKzM1NTksOSBAQCBmZWNfcHJvYmUoc3RydWN0IHBs YXRmb3JtX2RldmljZSAqcGRldikKIAlwbV9ydW50aW1lX3B1dCgmcGRldi0+ZGV2KTsKIAlwbV9y dW50aW1lX2Rpc2FibGUoJnBkZXYtPmRldik7CiBmYWlsZWRfcmVndWxhdG9yOgorCWNsa19kaXNh YmxlX3VucHJlcGFyZShmZXAtPmNsa19haGIpOworZmFpbGVkX2Nsa19haGI6CisJY2xrX2Rpc2Fi bGVfdW5wcmVwYXJlKGZlcC0+Y2xrX2lwZyk7CiBmYWlsZWRfY2xrX2lwZzoKIAlmZWNfZW5ldF9j bGtfZW5hYmxlKG5kZXYsIGZhbHNlKTsKIGZhaWxlZF9jbGs6CkBAIC0zNjg2LDYgKzM2ODUsNyBA QCBzdGF0aWMgaW50IF9fbWF5YmVfdW51c2VkIGZlY19ydW50aW1lX3N1c3BlbmQoc3RydWN0IGRl dmljZSAqZGV2KQogCXN0cnVjdCBuZXRfZGV2aWNlICpuZGV2ID0gZGV2X2dldF9kcnZkYXRhKGRl dik7CiAJc3RydWN0IGZlY19lbmV0X3ByaXZhdGUgKmZlcCA9IG5ldGRldl9wcml2KG5kZXYpOwog CisJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKGZlcC0+Y2xrX2FoYik7CiAJY2xrX2Rpc2FibGVfdW5w cmVwYXJlKGZlcC0+Y2xrX2lwZyk7CiAKIAlyZXR1cm4gMDsKQEAgLTM2OTUsOCArMzY5NSwyMCBA QCBzdGF0aWMgaW50IF9fbWF5YmVfdW51c2VkIGZlY19ydW50aW1lX3Jlc3VtZShzdHJ1Y3QgZGV2 aWNlICpkZXYpCiB7CiAJc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYgPSBkZXZfZ2V0X2RydmRhdGEo ZGV2KTsKIAlzdHJ1Y3QgZmVjX2VuZXRfcHJpdmF0ZSAqZmVwID0gbmV0ZGV2X3ByaXYobmRldik7 CisJaW50IHJldDsKIAotCXJldHVybiBjbGtfcHJlcGFyZV9lbmFibGUoZmVwLT5jbGtfaXBnKTsK KwlyZXQgPSBjbGtfcHJlcGFyZV9lbmFibGUoZmVwLT5jbGtfYWhiKTsKKwlpZiAocmV0KQorCQly ZXR1cm4gcmV0OworCXJldCA9IGNsa19wcmVwYXJlX2VuYWJsZShmZXAtPmNsa19pcGcpOworCWlm IChyZXQpCisJCWdvdG8gZmFpbGVkX2Nsa19pcGc7CisKKwlyZXR1cm4gMDsKKworZmFpbGVkX2Ns a19pcGc6CisJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKGZlcC0+Y2xrX2FoYik7CisJcmV0dXJuIHJl dDsKIH0KIAogc3RhdGljIGNvbnN0IHN0cnVjdCBkZXZfcG1fb3BzIGZlY19wbV9vcHMgPSB7Ci0t IAoyLjIwLjEKCgpGcm9tIDA0NzA2ODdjYjhiYmVjNGFlN2Y0N2Q1MmJkYmM2ZjRlMGVlNWU2NDIg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFl1eWEgS3VzYWthYmUgPHl1eWEua3VzYWth YmVAZ21haWwuY29tPgpEYXRlOiBUdWUsIDE2IEFwciAyMDE5IDEwOjIyOjI4ICswOTAwClN1Ympl Y3Q6IFtQQVRDSCAwNy80M10gbmV0OiBGaXggbWlzc2luZyBtZXRhIGRhdGEgaW4gc2tiIHdpdGgg dmxhbiBwYWNrZXQKClsgVXBzdHJlYW0gY29tbWl0IGQ4NWU4YmUyYTVhMDI4NjlmODE1ZGQwYWMy ZDc0M2RlYjRjZDc5NTcgXQoKc2tiX3Jlb3JkZXJfdmxhbl9oZWFkZXIoKSBzaG91bGQgbW92ZSBY RFAgbWV0YSBkYXRhIHdpdGggZXRoZXJuZXQgaGVhZGVyCmlmIFhEUCBtZXRhIGRhdGEgZXhpc3Rz LgoKRml4ZXM6IGRlOGYzYTgzYjBhMCAoImJwZjogYWRkIG1ldGEgcG9pbnRlciBmb3IgZGlyZWN0 IGFjY2VzcyIpClNpZ25lZC1vZmYtYnk6IFl1eWEgS3VzYWthYmUgPHl1eWEua3VzYWthYmVAZ21h aWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBUYWtlcnUgSGF5YXNha2EgPHRha2V0YXJvdTJAZ21haWwu Y29tPgpDby1kZXZlbG9wZWQtYnk6IFRha2VydSBIYXlhc2FrYSA8dGFrZXRhcm91MkBnbWFpbC5j b20+ClJldmlld2VkLWJ5OiBUb3NoaWFraSBNYWtpdGEgPG1ha2l0YS50b3NoaWFraUBsYWIubnR0 LmNvLmpwPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5u ZXQ+Ci0tLQogbmV0L2NvcmUvc2tidWZmLmMgfCAxMCArKysrKysrKystCiAxIGZpbGUgY2hhbmdl ZCwgOSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUv c2tidWZmLmMgYi9uZXQvY29yZS9za2J1ZmYuYwppbmRleCBlZjJjZDU3MTIwOTguLjQwNzk2Yjhi ZjgyMCAxMDA2NDQKLS0tIGEvbmV0L2NvcmUvc2tidWZmLmMKKysrIGIvbmV0L2NvcmUvc2tidWZm LmMKQEAgLTUwODMsNyArNTA4Myw4IEBAIEVYUE9SVF9TWU1CT0xfR1BMKHNrYl9nc29fdmFsaWRh dGVfbWFjX2xlbik7CiAKIHN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqc2tiX3Jlb3JkZXJfdmxhbl9o ZWFkZXIoc3RydWN0IHNrX2J1ZmYgKnNrYikKIHsKLQlpbnQgbWFjX2xlbjsKKwlpbnQgbWFjX2xl biwgbWV0YV9sZW47CisJdm9pZCAqbWV0YTsKIAogCWlmIChza2JfY293KHNrYiwgc2tiX2hlYWRy b29tKHNrYikpIDwgMCkgewogCQlrZnJlZV9za2Ioc2tiKTsKQEAgLTUwOTUsNiArNTA5NiwxMyBA QCBzdGF0aWMgc3RydWN0IHNrX2J1ZmYgKnNrYl9yZW9yZGVyX3ZsYW5faGVhZGVyKHN0cnVjdCBz a19idWZmICpza2IpCiAJCW1lbW1vdmUoc2tiX21hY19oZWFkZXIoc2tiKSArIFZMQU5fSExFTiwg c2tiX21hY19oZWFkZXIoc2tiKSwKIAkJCW1hY19sZW4gLSBWTEFOX0hMRU4gLSBFVEhfVExFTik7 CiAJfQorCisJbWV0YV9sZW4gPSBza2JfbWV0YWRhdGFfbGVuKHNrYik7CisJaWYgKG1ldGFfbGVu KSB7CisJCW1ldGEgPSBza2JfbWV0YWRhdGFfZW5kKHNrYikgLSBtZXRhX2xlbjsKKwkJbWVtbW92 ZShtZXRhICsgVkxBTl9ITEVOLCBtZXRhLCBtZXRhX2xlbik7CisJfQorCiAJc2tiLT5tYWNfaGVh ZGVyICs9IFZMQU5fSExFTjsKIAlyZXR1cm4gc2tiOwogfQotLSAKMi4yMC4xCgoKRnJvbSA3MTI1 MGJkZTNhZDQ5NjI5MzhjZTFmMjA0YzVmMjE5OGExYzlmNTAyIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBMb3JlbnpvIEJpYW5jb25pIDxsb3JlbnpvLmJpYW5jb25pQHJlZGhhdC5jb20+ CkRhdGU6IFR1ZSwgOSBBcHIgMjAxOSAxMTo0NzoyMCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDgv NDNdIG5ldDogZm91OiBkbyBub3QgdXNlIGd1ZWhkciBhZnRlcgogaXB0dW5uZWxfcHVsbF9vZmZs b2FkcyBpbiBndWVfdWRwX3JlY3YKClsgVXBzdHJlYW0gY29tbWl0IDk4OGRjNGE5YTNiNjZiZTc1 YjMwNDA1YTU0OTRmYWYwZGM3Y2ZmYjYgXQoKZ3VlIHR1bm5lbHMgcnVuIGlwdHVubmVsX3B1bGxf b2ZmbG9hZHMgb24gcmVjZWl2ZWQgc2ticy4gVGhpcyBjYW4KZGV0ZXJtaW5lIGEgcG9zc2libGUg dXNlLWFmdGVyLWZyZWUgYWNjZXNzaW5nIGd1ZWhkciBwb2ludGVyIHNpbmNlCnRoZSBwYWNrZXQg d2lsbCBiZSAndW5jbG9uZWQnIHJ1bm5pbmcgcHNrYl9leHBhbmRfaGVhZCBpZiBpdCBpcyBhCmNs b25lZCBnc28gc2tiIChlLmcgaWYgdGhlIHBhY2tldCBoYXMgYmVlbiBzZW50IHRob3VnaCBhIHZl dGggZGV2aWNlKQoKRml4ZXM6IGEwOWE0YzhkZDFlYyAoInR1bm5lbHM6IFJlbW92ZSBlbmNhcHN1 bGF0aW9uIG9mZmxvYWRzIG9uIGRlY2FwIikKU2lnbmVkLW9mZi1ieTogTG9yZW56byBCaWFuY29u aSA8bG9yZW56by5iaWFuY29uaUByZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBN aWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjQvZm91LmMgfCA0ICsrKy0K IDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1n aXQgYS9uZXQvaXB2NC9mb3UuYyBiL25ldC9pcHY0L2ZvdS5jCmluZGV4IDc5ZTk4ZTIxY2RkNy4u MTJjZTZjNTI2ZDcyIDEwMDY0NAotLS0gYS9uZXQvaXB2NC9mb3UuYworKysgYi9uZXQvaXB2NC9m b3UuYwpAQCAtMTIxLDYgKzEyMSw3IEBAIHN0YXRpYyBpbnQgZ3VlX3VkcF9yZWN2KHN0cnVjdCBz b2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYikKIAlzdHJ1Y3QgZ3VlaGRyICpndWVoZHI7CiAJ dm9pZCAqZGF0YTsKIAl1MTYgZG9mZnNldCA9IDA7CisJdTggcHJvdG9fY3R5cGU7CiAKIAlpZiAo IWZvdSkKIAkJcmV0dXJuIDE7CkBAIC0yMTIsMTMgKzIxMywxNCBAQCBzdGF0aWMgaW50IGd1ZV91 ZHBfcmVjdihzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IpCiAJaWYgKHVubGlr ZWx5KGd1ZWhkci0+Y29udHJvbCkpCiAJCXJldHVybiBndWVfY29udHJvbF9tZXNzYWdlKHNrYiwg Z3VlaGRyKTsKIAorCXByb3RvX2N0eXBlID0gZ3VlaGRyLT5wcm90b19jdHlwZTsKIAlfX3NrYl9w dWxsKHNrYiwgc2l6ZW9mKHN0cnVjdCB1ZHBoZHIpICsgaGRybGVuKTsKIAlza2JfcmVzZXRfdHJh bnNwb3J0X2hlYWRlcihza2IpOwogCiAJaWYgKGlwdHVubmVsX3B1bGxfb2ZmbG9hZHMoc2tiKSkK IAkJZ290byBkcm9wOwogCi0JcmV0dXJuIC1ndWVoZHItPnByb3RvX2N0eXBlOworCXJldHVybiAt cHJvdG9fY3R5cGU7CiAKIGRyb3A6CiAJa2ZyZWVfc2tiKHNrYik7Ci0tIAoyLjIwLjEKCgpGcm9t IDE2YmE1ZjAyOTZlNDE3MmMxMjBhNmNkZjYxMDdiM2MyNmE3OTE0NDggTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0ZTog VHVlLCAxNiBBcHIgMjAxOSAxMDo1NToyMCAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDkvNDNdIHRj cDogdGNwX2dyb3dfd2luZG93KCkgbmVlZHMgdG8gcmVzcGVjdCB0Y3Bfc3BhY2UoKQoKWyBVcHN0 cmVhbSBjb21taXQgNTBjZTE2M2E3MmQ4MTdhOTllODk3NDIyMmRjZjI4ODZkNWRlYjFhZSBdCgpG b3Igc29tZSByZWFzb24sIHRjcF9ncm93X3dpbmRvdygpIGNvcnJlY3RseSB0ZXN0cyBpZiBlbm91 Z2ggcm9vbQppcyBwcmVzZW50IGJlZm9yZSBhdHRlbXB0aW5nIHRvIGluY3JlYXNlIHRwLT5yY3Zf c3N0aHJlc2gsCmJ1dCBkb2VzIG5vdCBwcmV2ZW50IGl0IHRvIGdyb3cgcGFzdCB0Y3Bfc3BhY2Uo KQoKVGhpcyBpcyBjYXVzaW5nIGhhcmQgdG8gZGVidWcgaXNzdWVzLCBsaWtlIGZhaWxpbmcKdGhl IChfX3RjcF9zZWxlY3Rfd2luZG93KHNrKSA+PSB0cC0+cmN2X3duZCkgdGVzdAppbiBfX3RjcF9h Y2tfc25kX2NoZWNrKCksIGNhdXNpbmcgQUNLIGRlbGF5cyBhbmQgcG9zc2libHkKc2xvdyBmbG93 cy4KCkRlcGVuZGluZyBvbiB0Y3Bfcm1lbVsyXSwgTVRVLCBza2ItPmxlbi9za2ItPnRydWVzaXpl IHJhdGlvLAp3ZSBjYW4gc2VlIHRoZSBwcm9ibGVtIGhhcHBlbmluZyBvbiAibmV0cGVyZiAtdCBU Q1BfUlIgLS0gLXIgMjAwMCwyMDAwIgphZnRlciBhYm91dCA2MCByb3VuZCB0cmlwcywgd2hlbiB0 aGUgYWN0aXZlIHNpZGUgbm8gbG9uZ2VyIHNlbmRzCmltbWVkaWF0ZSBhY2tzLgoKVGhpcyBidWcg cHJlZGF0ZXMgZ2l0IGhpc3RvcnkuCgpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1h emV0QGdvb2dsZS5jb20+CkFja2VkLWJ5OiBTb2hlaWwgSGFzc2FzIFllZ2FuZWggPHNvaGVpbEBn b29nbGUuY29tPgpBY2tlZC1ieTogTmVhbCBDYXJkd2VsbCA8bmNhcmR3ZWxsQGdvb2dsZS5jb20+ CkFja2VkLWJ5OiBXZWkgV2FuZyA8d2Vpd2FuQGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERh dmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2NC90Y3BfaW5w dXQuYyB8IDEwICsrKysrLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDUg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvdGNwX2lucHV0LmMgYi9uZXQvaXB2 NC90Y3BfaW5wdXQuYwppbmRleCA3YjFlZjg5N2IzOTguLjk1YjJlMzFmZmYwOCAxMDA2NDQKLS0t IGEvbmV0L2lwdjQvdGNwX2lucHV0LmMKKysrIGIvbmV0L2lwdjQvdGNwX2lucHV0LmMKQEAgLTQw MiwxMSArNDAyLDEyIEBAIHN0YXRpYyBpbnQgX190Y3BfZ3Jvd193aW5kb3coY29uc3Qgc3RydWN0 IHNvY2sgKnNrLCBjb25zdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogc3RhdGljIHZvaWQgdGNwX2dy b3dfd2luZG93KHN0cnVjdCBzb2NrICpzaywgY29uc3Qgc3RydWN0IHNrX2J1ZmYgKnNrYikKIHsK IAlzdHJ1Y3QgdGNwX3NvY2sgKnRwID0gdGNwX3NrKHNrKTsKKwlpbnQgcm9vbTsKKworCXJvb20g PSBtaW5fdChpbnQsIHRwLT53aW5kb3dfY2xhbXAsIHRjcF9zcGFjZShzaykpIC0gdHAtPnJjdl9z c3RocmVzaDsKIAogCS8qIENoZWNrICMxICovCi0JaWYgKHRwLT5yY3Zfc3N0aHJlc2ggPCB0cC0+ d2luZG93X2NsYW1wICYmCi0JICAgIChpbnQpdHAtPnJjdl9zc3RocmVzaCA8IHRjcF9zcGFjZShz aykgJiYKLQkgICAgIXRjcF91bmRlcl9tZW1vcnlfcHJlc3N1cmUoc2spKSB7CisJaWYgKHJvb20g PiAwICYmICF0Y3BfdW5kZXJfbWVtb3J5X3ByZXNzdXJlKHNrKSkgewogCQlpbnQgaW5jcjsKIAog CQkvKiBDaGVjayAjMi4gSW5jcmVhc2Ugd2luZG93LCBpZiBza2Igd2l0aCBzdWNoIG92ZXJoZWFk CkBAIC00MTksOCArNDIwLDcgQEAgc3RhdGljIHZvaWQgdGNwX2dyb3dfd2luZG93KHN0cnVjdCBz b2NrICpzaywgY29uc3Qgc3RydWN0IHNrX2J1ZmYgKnNrYikKIAogCQlpZiAoaW5jcikgewogCQkJ aW5jciA9IG1heF90KGludCwgaW5jciwgMiAqIHNrYi0+bGVuKTsKLQkJCXRwLT5yY3Zfc3N0aHJl c2ggPSBtaW4odHAtPnJjdl9zc3RocmVzaCArIGluY3IsCi0JCQkJCSAgICAgICB0cC0+d2luZG93 X2NsYW1wKTsKKwkJCXRwLT5yY3Zfc3N0aHJlc2ggKz0gbWluKHJvb20sIGluY3IpOwogCQkJaW5l dF9jc2soc2spLT5pY3NrX2Fjay5xdWljayB8PSAxOwogCQl9CiAJfQotLSAKMi4yMC4xCgoKRnJv bSAxNzM4OWRiOTRjYTg5NjYzYWQ3MTc1ZDE5NzMxZWJkMTliM2I5ZGVjIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBIYW5nYmluIExpdSA8bGl1aGFuZ2JpbkBnbWFpbC5jb20+CkRhdGU6 IE1vbiwgOCBBcHIgMjAxOSAxNjo0NToxNyArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMTAvNDNdIHRl YW06IHNldCBzbGF2ZSB0byBwcm9taXNjIGlmIHRlYW0gaXMgYWxyZWFkeSBpbgogcHJvbWlzYyBt b2RlCgpbIFVwc3RyZWFtIGNvbW1pdCA0M2MyYWRiOWRmN2RkZDY1NjBmZDM1NDZkOTI1YjQyY2Vm OTJkYWEwIF0KCkFmdGVyIGFkZGluZyBhIHRlYW0gaW50ZXJmYWNlIHRvIGJyaWRnZSwgdGhlIHRl YW0gaW50ZXJmYWNlIHdpbGwgZW50ZXIKcHJvbWlzYyBtb2RlLiBUaGVuIGlmIHdlIGFkZCBhIG5l dyBzbGF2ZSB0byB0ZWFtMCwgdGhlIHNsYXZlIHdpbGwga2VlcApwcm9taXNjIG9mZi4gRml4IGl0 IGJ5IHNldHRpbmcgc2xhdmUgdG8gcHJvbWlzYyBvbiBpZiB0ZWFtIG1hc3RlciBpcwphbHJlYWR5 IGluIHByb21pc2MgbW9kZSwgYWxzbyBkbyB0aGUgc2FtZSBmb3IgYWxsbXVsdGkuCgp2MjogYWRk IHByb21pc2MgYW5kIGFsbG11bHRpIGNoZWNraW5nIHdoZW4gZGVsZXRlIHBvcnRzCgpGaXhlczog M2QyNDlkNGNhN2QwICgibmV0OiBpbnRyb2R1Y2UgZXRoZXJuZXQgdGVhbWluZyBkZXZpY2UiKQpT aWduZWQtb2ZmLWJ5OiBIYW5nYmluIExpdSA8bGl1aGFuZ2JpbkBnbWFpbC5jb20+ClNpZ25lZC1v ZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJz L25ldC90ZWFtL3RlYW0uYyB8IDI2ICsrKysrKysrKysrKysrKysrKysrKysrKysrCiAxIGZpbGUg Y2hhbmdlZCwgMjYgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3RlYW0v dGVhbS5jIGIvZHJpdmVycy9uZXQvdGVhbS90ZWFtLmMKaW5kZXggNmNlM2Y2NjZkMTQyLi4xMjgz NjMyMDkxZDUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3RlYW0vdGVhbS5jCisrKyBiL2RyaXZl cnMvbmV0L3RlYW0vdGVhbS5jCkBAIC0xMjQ3LDYgKzEyNDcsMjMgQEAgc3RhdGljIGludCB0ZWFt X3BvcnRfYWRkKHN0cnVjdCB0ZWFtICp0ZWFtLCBzdHJ1Y3QgbmV0X2RldmljZSAqcG9ydF9kZXYs CiAJCWdvdG8gZXJyX29wdGlvbl9wb3J0X2FkZDsKIAl9CiAKKwkvKiBzZXQgcHJvbWlzY3VpdHkg bGV2ZWwgdG8gbmV3IHNsYXZlICovCisJaWYgKGRldi0+ZmxhZ3MgJiBJRkZfUFJPTUlTQykgewor CQllcnIgPSBkZXZfc2V0X3Byb21pc2N1aXR5KHBvcnRfZGV2LCAxKTsKKwkJaWYgKGVycikKKwkJ CWdvdG8gZXJyX3NldF9zbGF2ZV9wcm9taXNjOworCX0KKworCS8qIHNldCBhbGxtdWx0aSBsZXZl bCB0byBuZXcgc2xhdmUgKi8KKwlpZiAoZGV2LT5mbGFncyAmIElGRl9BTExNVUxUSSkgeworCQll cnIgPSBkZXZfc2V0X2FsbG11bHRpKHBvcnRfZGV2LCAxKTsKKwkJaWYgKGVycikgeworCQkJaWYg KGRldi0+ZmxhZ3MgJiBJRkZfUFJPTUlTQykKKwkJCQlkZXZfc2V0X3Byb21pc2N1aXR5KHBvcnRf ZGV2LCAtMSk7CisJCQlnb3RvIGVycl9zZXRfc2xhdmVfcHJvbWlzYzsKKwkJfQorCX0KKwogCW5l dGlmX2FkZHJfbG9ja19iaChkZXYpOwogCWRldl91Y19zeW5jX211bHRpcGxlKHBvcnRfZGV2LCBk ZXYpOwogCWRldl9tY19zeW5jX211bHRpcGxlKHBvcnRfZGV2LCBkZXYpOwpAQCAtMTI2Myw2ICsx MjgwLDkgQEAgc3RhdGljIGludCB0ZWFtX3BvcnRfYWRkKHN0cnVjdCB0ZWFtICp0ZWFtLCBzdHJ1 Y3QgbmV0X2RldmljZSAqcG9ydF9kZXYsCiAKIAlyZXR1cm4gMDsKIAorZXJyX3NldF9zbGF2ZV9w cm9taXNjOgorCV9fdGVhbV9vcHRpb25faW5zdF9kZWxfcG9ydCh0ZWFtLCBwb3J0KTsKKwogZXJy X29wdGlvbl9wb3J0X2FkZDoKIAl0ZWFtX3VwcGVyX2Rldl91bmxpbmsodGVhbSwgcG9ydCk7CiAK QEAgLTEzMDgsNiArMTMyOCwxMiBAQCBzdGF0aWMgaW50IHRlYW1fcG9ydF9kZWwoc3RydWN0IHRl YW0gKnRlYW0sIHN0cnVjdCBuZXRfZGV2aWNlICpwb3J0X2RldikKIAogCXRlYW1fcG9ydF9kaXNh YmxlKHRlYW0sIHBvcnQpOwogCWxpc3RfZGVsX3JjdSgmcG9ydC0+bGlzdCk7CisKKwlpZiAoZGV2 LT5mbGFncyAmIElGRl9QUk9NSVNDKQorCQlkZXZfc2V0X3Byb21pc2N1aXR5KHBvcnRfZGV2LCAt MSk7CisJaWYgKGRldi0+ZmxhZ3MgJiBJRkZfQUxMTVVMVEkpCisJCWRldl9zZXRfYWxsbXVsdGko cG9ydF9kZXYsIC0xKTsKKwogCXRlYW1fdXBwZXJfZGV2X3VubGluayh0ZWFtLCBwb3J0KTsKIAlu ZXRkZXZfcnhfaGFuZGxlcl91bnJlZ2lzdGVyKHBvcnRfZGV2KTsKIAl0ZWFtX3BvcnRfZGlzYWJs ZV9uZXRwb2xsKHBvcnQpOwotLSAKMi4yMC4xCgoKRnJvbSA3MmM4ZGJhZmExMTY2M2RjZDg4NGFl Y2Q3MWVmMjY1MjRkOTYyMDNmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBIb2FuZyBM ZSA8aG9hbmcuaC5sZUBkZWt0ZWNoLmNvbS5hdT4KRGF0ZTogVHVlLCA5IEFwciAyMDE5IDE0OjU5 OjI0ICswNzAwClN1YmplY3Q6IFtQQVRDSCAxMS80M10gdGlwYzogbWlzc2luZyBlbnRyaWVzIGlu IG5hbWUgdGFibGUgb2YgcHVibGljYXRpb25zCgpbIFVwc3RyZWFtIGNvbW1pdCBkMTg0MTUzM2U1 NDg3NmYxNTJhMzBhYzM5OGEzNGY0N2FkNjU5MGIxIF0KCldoZW4gYmluZGluZyBtdWx0aXBsZSBz ZXJ2aWNlcyB3aXRoIHNwZWNpZmljIHR5cGUgMUtpLCAyS2kuLiwKdGhpcyBsZWFkcyB0byBzb21l IGVudHJpZXMgaW4gdGhlIG5hbWUgdGFibGUgb2YgcHVibGljYXRpb25zCm1pc3Npbmcgd2hlbiBs aXN0ZWQgb3V0IHZpYSAndGlwYyBuYW1lIHNob3cnLgoKVGhlIHByb2JsZW0gaXMgYXQgaWRlbnRp ZnkgemVybyBsYXN0X3R5cGUgY29uZGl0aW9uYWwgcHJvdmlkZWQKdmlhIG5ldGxpbmsuIFRoZSBm aXJzdCBpcyBpbml0aWFsICd0eXBlJyB3aGVuIHN0YXJ0aW5nIG5hbWUgdGFibGUKZHVtbXBpbmcu IFRoZSBzZWNvbmQgaXMgY29udGludW91c2x5IHdpdGggemVybyB0eXBlIChub2RlIHN0YXRlCnNl cnZpY2UgdHlwZSkuIFRoZW4sIGxvb2t1cCBmdW5jdGlvbiBmYWlsdXJlIHRvIGZpbmRpbmcgbm9k ZSBzdGF0ZQpzZXJ2aWNlIHR5cGUgaW4gbmV4dCBpdGVyYXRpb24uCgpUbyBzb2x2ZSB0aGlzLCBh ZGRpbmcgbW9yZSBjb25kaXRpb25hbCB0byBtYXJrZWQgYXMgZGlydHkgdHlwZSBhbmQKbG9va3Vw IGNvcnJlY3Qgc2VydmljZSB0eXBlIGZvciB0aGUgbmV4dCBpdGVyYXRpb24gaW5zdGVhZCBvZiBz ZWxlY3QKdGhlIGZpcnN0IHNlcnZpY2UgYXMgaW5pdGlhbCAndHlwZScgemVyby4KCkFja2VkLWJ5 OiBKb24gTWFsb3kgPGpvbi5tYWxveUBlcmljc3Nvbi5jb20+ClNpZ25lZC1vZmYtYnk6IEhvYW5n IExlIDxob2FuZy5oLmxlQGRla3RlY2guY29tLmF1PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBN aWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3RpcGMvbmFtZV90YWJsZS5jIHwg MyArKy0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRp ZmYgLS1naXQgYS9uZXQvdGlwYy9uYW1lX3RhYmxlLmMgYi9uZXQvdGlwYy9uYW1lX3RhYmxlLmMK aW5kZXggYmZmMjQxZjAzNTI1Li44OTk5M2FmZTBmYmQgMTAwNjQ0Ci0tLSBhL25ldC90aXBjL25h bWVfdGFibGUuYworKysgYi9uZXQvdGlwYy9uYW1lX3RhYmxlLmMKQEAgLTkwOSw3ICs5MDksOCBA QCBzdGF0aWMgaW50IHRpcGNfbmxfc2VydmljZV9saXN0KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0 IHRpcGNfbmxfbXNnICptc2csCiAJZm9yICg7IGkgPCBUSVBDX05BTUVUQkxfU0laRTsgaSsrKSB7 CiAJCWhlYWQgPSAmdG4tPm5hbWV0YmwtPnNlcnZpY2VzW2ldOwogCi0JCWlmICgqbGFzdF90eXBl KSB7CisJCWlmICgqbGFzdF90eXBlIHx8CisJCSAgICAoIWkgJiYgKmxhc3Rfa2V5ICYmICgqbGFz dF9sb3dlciA9PSAqbGFzdF9rZXkpKSkgewogCQkJc2VydmljZSA9IHRpcGNfc2VydmljZV9maW5k KG5ldCwgKmxhc3RfdHlwZSk7CiAJCQlpZiAoIXNlcnZpY2UpCiAJCQkJcmV0dXJuIC1FUElQRTsK LS0gCjIuMjAuMQoKCkZyb20gYTU5YWI0NGExMDRlYmQzMzY3Yzc1NjcwNmQyZjlkMDY5ZDg1NWJh MSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSmFzb24gV2FuZyA8amFzb3dhbmdAcmVk aGF0LmNvbT4KRGF0ZTogVHVlLCA5IEFwciAyMDE5IDEyOjEwOjI1ICswODAwClN1YmplY3Q6IFtQ QVRDSCAxMi80M10gdmhvc3Q6IHJlamVjdCB6ZXJvIHNpemUgaW92YSByYW5nZQoKWyBVcHN0cmVh bSBjb21taXQgODEzZGJlYjY1NmQ2YzkwMjY2ZjI1MWQ4YmQyYjAyZDQ0NWFmYTYzZiBdCgpXZSB1 c2VkIHRvIGFjY2VwdCB6ZXJvIHNpemUgaW92YSByYW5nZSB3aGljaCB3aWxsIGxlYWQgYSBpbmZp bml0ZSBsb29wCmluIHRyYW5zbGF0ZV9kZXNjKCkuIEZpeGluZyB0aGlzIGJ5IGZhaWxpbmcgdGhl IHJlcXVlc3QgaW4gdGhpcyBjYXNlLgoKUmVwb3J0ZWQtYnk6IHN5emJvdCtkMjFlNmUyOTczMjJh OTAwYzEyOEBzeXprYWxsZXIuYXBwc3BvdG1haWwuY29tCkZpeGVzOiA2YjFlNmNjNyAoInZob3N0 OiBuZXcgZGV2aWNlIElPVExCIEFQSSIpClNpZ25lZC1vZmYtYnk6IEphc29uIFdhbmcgPGphc293 YW5nQHJlZGhhdC5jb20+CkFja2VkLWJ5OiBNaWNoYWVsIFMuIFRzaXJraW4gPG1zdEByZWRoYXQu Y29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ Ci0tLQogZHJpdmVycy92aG9zdC92aG9zdC5jIHwgNiArKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCA1 IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Zob3N0 L3Zob3N0LmMgYi9kcml2ZXJzL3Zob3N0L3Zob3N0LmMKaW5kZXggYTJlNWRjNzcxNmUyLi42NzRj ZmM1YTQwODQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmhvc3Qvdmhvc3QuYworKysgYi9kcml2ZXJz L3Zob3N0L3Zob3N0LmMKQEAgLTkxMSw4ICs5MTEsMTIgQEAgc3RhdGljIGludCB2aG9zdF9uZXdf dW1lbV9yYW5nZShzdHJ1Y3Qgdmhvc3RfdW1lbSAqdW1lbSwKIAkJCQl1NjQgc3RhcnQsIHU2NCBz aXplLCB1NjQgZW5kLAogCQkJCXU2NCB1c2Vyc3BhY2VfYWRkciwgaW50IHBlcm0pCiB7Ci0Jc3Ry dWN0IHZob3N0X3VtZW1fbm9kZSAqdG1wLCAqbm9kZSA9IGttYWxsb2Moc2l6ZW9mKCpub2RlKSwg R0ZQX0FUT01JQyk7CisJc3RydWN0IHZob3N0X3VtZW1fbm9kZSAqdG1wLCAqbm9kZTsKIAorCWlm ICghc2l6ZSkKKwkJcmV0dXJuIC1FRkFVTFQ7CisKKwlub2RlID0ga21hbGxvYyhzaXplb2YoKm5v ZGUpLCBHRlBfQVRPTUlDKTsKIAlpZiAoIW5vZGUpCiAJCXJldHVybiAtRU5PTUVNOwogCi0tIAoy LjIwLjEKCgpGcm9tIGJmM2U5YzBkZGZkOTE5YmYzMjBhYjE4NjU0Yzk0ZWZhNTIwYzFiYTcgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFN0ZXBoZW4gU3VyeWFwdXRyYSA8c3N1cnlhZXh0 ckBnbWFpbC5jb20+CkRhdGU6IEZyaSwgMTIgQXByIDIwMTkgMTY6MTk6MjcgLTA0MDAKU3ViamVj dDogW1BBVENIIDEzLzQzXSBpcHY0OiByZWNvbXBpbGUgaXAgb3B0aW9ucyBpbiBpcHY0X2xpbmtf ZmFpbHVyZQoKWyBVcHN0cmVhbSBjb21taXQgZWQwZGU0NWExMDA4OTkxZmRhYTI3YTAxNTJiZWZj Yjc0ZDEyNmE4YiBdCgpSZWNvbXBpbGUgSVAgb3B0aW9ucyBzaW5jZSBJUENCIG1heSBub3QgYmUg dmFsaWQgYW55bW9yZSB3aGVuCmlwdjRfbGlua19mYWlsdXJlIGlzIGNhbGxlZCBmcm9tIGFycF9l cnJvcl9yZXBvcnQuCgpSZWZlciB0byB0aGUgY29tbWl0IDNkYTFlZDdhYzM5OCAoIm5ldDogYXZv aWQgdXNlIElQQ0IgaW4gY2lwc29fdjRfZXJyb3IiKQphbmQgdGhlIGNvbW1pdCBiZWZvcmUgdGhh dCAoOWVmNmI0MmFkNmZkKSBmb3IgYSBzaW1pbGFyIGlzc3VlLgoKU2lnbmVkLW9mZi1ieTogU3Rl cGhlbiBTdXJ5YXB1dHJhIDxzc3VyeWFleHRyQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2 aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY0L3JvdXRlLmMg fCAxMCArKysrKysrKystCiAxIGZpbGUgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspLCAxIGRlbGV0 aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvcm91dGUuYyBiL25ldC9pcHY0L3JvdXRlLmMK aW5kZXggZTA0Y2RiNThhNjAyLi42YmM0MjdhZGNiMDYgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3Jv dXRlLmMKKysrIGIvbmV0L2lwdjQvcm91dGUuYwpAQCAtMTE4Niw4ICsxMTg2LDE2IEBAIHN0YXRp YyBzdHJ1Y3QgZHN0X2VudHJ5ICppcHY0X2RzdF9jaGVjayhzdHJ1Y3QgZHN0X2VudHJ5ICpkc3Qs IHUzMiBjb29raWUpCiBzdGF0aWMgdm9pZCBpcHY0X2xpbmtfZmFpbHVyZShzdHJ1Y3Qgc2tfYnVm ZiAqc2tiKQogewogCXN0cnVjdCBydGFibGUgKnJ0OworCXN0cnVjdCBpcF9vcHRpb25zIG9wdDsK IAotCWljbXBfc2VuZChza2IsIElDTVBfREVTVF9VTlJFQUNILCBJQ01QX0hPU1RfVU5SRUFDSCwg MCk7CisJLyogUmVjb21waWxlIGlwIG9wdGlvbnMgc2luY2UgSVBDQiBtYXkgbm90IGJlIHZhbGlk IGFueW1vcmUuCisJICovCisJbWVtc2V0KCZvcHQsIDAsIHNpemVvZihvcHQpKTsKKwlvcHQub3B0 bGVuID0gaXBfaGRyKHNrYiktPmlobCo0IC0gc2l6ZW9mKHN0cnVjdCBpcGhkcik7CisJaWYgKF9f aXBfb3B0aW9uc19jb21waWxlKGRldl9uZXQoc2tiLT5kZXYpLCAmb3B0LCBza2IsIE5VTEwpKQor CQlyZXR1cm47CisKKwlfX2ljbXBfc2VuZChza2IsIElDTVBfREVTVF9VTlJFQUNILCBJQ01QX0hP U1RfVU5SRUFDSCwgMCwgJm9wdCk7CiAKIAlydCA9IHNrYl9ydGFibGUoc2tiKTsKIAlpZiAocnQp Ci0tIAoyLjIwLjEKCgpGcm9tIGZhMmJlNTVlOTA4NGQ3NzhmYmQ4YzIyYjJmNDBjYWJmMjQ0M2E4 MTEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRA Z29vZ2xlLmNvbT4KRGF0ZTogU2F0LCAxMyBBcHIgMjAxOSAxNzozMjoyMSAtMDcwMApTdWJqZWN0 OiBbUEFUQ0ggMTQvNDNdIGlwdjQ6IGVuc3VyZSByY3VfcmVhZF9sb2NrKCkgaW4gaXB2NF9saW5r X2ZhaWx1cmUoKQoKWyBVcHN0cmVhbSBjb21taXQgYzU0M2NiNGE1ZjA3ZTA5MjM3ZWMwZmMyYzYw YzlmMTMxYjJjNzlhZCBdCgpmaWJfY29tcHV0ZV9zcGVjX2RzdCgpIG5lZWRzIHRvIGJlIGNhbGxl ZCB1bmRlciByY3UgcHJvdGVjdGlvbi4KCnN5emJvdCByZXBvcnRlZCA6CgpXQVJOSU5HOiBzdXNw aWNpb3VzIFJDVSB1c2FnZQo1LjEuMC1yYzQrICMxNjUgTm90IHRhaW50ZWQKaW5jbHVkZS9saW51 eC9pbmV0ZGV2aWNlLmg6MjIwIHN1c3BpY2lvdXMgcmN1X2RlcmVmZXJlbmNlX2NoZWNrKCkgdXNh Z2UhCgpvdGhlciBpbmZvIHRoYXQgbWlnaHQgaGVscCB1cyBkZWJ1ZyB0aGlzOgoKcmN1X3NjaGVk dWxlcl9hY3RpdmUgPSAyLCBkZWJ1Z19sb2NrcyA9IDEKMSBsb2NrIGhlbGQgYnkgc3dhcHBlci8w LzA6CiAjMDogMDAwMDAwMDA1MWI2NzkyNSAoKCZuLT50aW1lcikpeysuLS59LCBhdDogbG9ja2Rl cF9jb3B5X21hcCBpbmNsdWRlL2xpbnV4L2xvY2tkZXAuaDoxNzAgW2lubGluZV0KICMwOiAwMDAw MDAwMDUxYjY3OTI1ICgoJm4tPnRpbWVyKSl7Ky4tLn0sIGF0OiBjYWxsX3RpbWVyX2ZuKzB4ZGEv MHg3MjAga2VybmVsL3RpbWUvdGltZXIuYzoxMzE1CgpzdGFjayBiYWNrdHJhY2U6CkNQVTogMCBQ SUQ6IDAgQ29tbTogc3dhcHBlci8wIE5vdCB0YWludGVkIDUuMS4wLXJjNCsgIzE2NQpIYXJkd2Fy ZSBuYW1lOiBHb29nbGUgR29vZ2xlIENvbXB1dGUgRW5naW5lL0dvb2dsZSBDb21wdXRlIEVuZ2lu ZSwgQklPUyBHb29nbGUgMDEvMDEvMjAxMQpDYWxsIFRyYWNlOgogPElSUT4KIF9fZHVtcF9zdGFj ayBsaWIvZHVtcF9zdGFjay5jOjc3IFtpbmxpbmVdCiBkdW1wX3N0YWNrKzB4MTcyLzB4MWYwIGxp Yi9kdW1wX3N0YWNrLmM6MTEzCiBsb2NrZGVwX3JjdV9zdXNwaWNpb3VzKzB4MTUzLzB4MTVkIGtl cm5lbC9sb2NraW5nL2xvY2tkZXAuYzo1MTYyCiBfX2luX2Rldl9nZXRfcmN1IGluY2x1ZGUvbGlu dXgvaW5ldGRldmljZS5oOjIyMCBbaW5saW5lXQogZmliX2NvbXB1dGVfc3BlY19kc3QrMHhiYmQv MHgxMDMwIG5ldC9pcHY0L2ZpYl9mcm9udGVuZC5jOjI5NAogc3BlY19kc3RfZmlsbCBuZXQvaXB2 NC9pcF9vcHRpb25zLmM6MjQ1IFtpbmxpbmVdCiBfX2lwX29wdGlvbnNfY29tcGlsZSsweDE1YTcv MHgxYTEwIG5ldC9pcHY0L2lwX29wdGlvbnMuYzozNDMKIGlwdjRfbGlua19mYWlsdXJlKzB4MTcy LzB4NDAwIG5ldC9pcHY0L3JvdXRlLmM6MTE5NQogZHN0X2xpbmtfZmFpbHVyZSBpbmNsdWRlL25l dC9kc3QuaDo0MjcgW2lubGluZV0KIGFycF9lcnJvcl9yZXBvcnQrMHhkMS8weDFjMCBuZXQvaXB2 NC9hcnAuYzoyOTcKIG5laWdoX2ludmFsaWRhdGUrMHgyNGIvMHg1NzAgbmV0L2NvcmUvbmVpZ2hi b3VyLmM6OTk1CiBuZWlnaF90aW1lcl9oYW5kbGVyKzB4YzM1LzB4ZjMwIG5ldC9jb3JlL25laWdo Ym91ci5jOjEwODEKIGNhbGxfdGltZXJfZm4rMHgxOTAvMHg3MjAga2VybmVsL3RpbWUvdGltZXIu YzoxMzI1CiBleHBpcmVfdGltZXJzIGtlcm5lbC90aW1lL3RpbWVyLmM6MTM2MiBbaW5saW5lXQog X19ydW5fdGltZXJzIGtlcm5lbC90aW1lL3RpbWVyLmM6MTY4MSBbaW5saW5lXQogX19ydW5fdGlt ZXJzIGtlcm5lbC90aW1lL3RpbWVyLmM6MTY0OSBbaW5saW5lXQogcnVuX3RpbWVyX3NvZnRpcnEr MHg2NTIvMHgxNzAwIGtlcm5lbC90aW1lL3RpbWVyLmM6MTY5NAogX19kb19zb2Z0aXJxKzB4MjY2 LzB4OTVhIGtlcm5lbC9zb2Z0aXJxLmM6MjkzCiBpbnZva2Vfc29mdGlycSBrZXJuZWwvc29mdGly cS5jOjM3NCBbaW5saW5lXQogaXJxX2V4aXQrMHgxODAvMHgxZDAga2VybmVsL3NvZnRpcnEuYzo0 MTQKIGV4aXRpbmdfaXJxIGFyY2gveDg2L2luY2x1ZGUvYXNtL2FwaWMuaDo1MzYgW2lubGluZV0K IHNtcF9hcGljX3RpbWVyX2ludGVycnVwdCsweDE0YS8weDU3MCBhcmNoL3g4Ni9rZXJuZWwvYXBp Yy9hcGljLmM6MTA2MgogYXBpY190aW1lcl9pbnRlcnJ1cHQrMHhmLzB4MjAgYXJjaC94ODYvZW50 cnkvZW50cnlfNjQuUzo4MDcKCkZpeGVzOiBlZDBkZTQ1YTEwMDggKCJpcHY0OiByZWNvbXBpbGUg aXAgb3B0aW9ucyBpbiBpcHY0X2xpbmtfZmFpbHVyZSIpClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVt YXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KUmVwb3J0ZWQtYnk6IHN5emJvdCA8c3l6a2FsbGVy QGdvb2dsZWdyb3Vwcy5jb20+CkNjOiBTdGVwaGVuIFN1cnlhcHV0cmEgPHNzdXJ5YWV4dHJAZ21h aWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5u ZXQ+Ci0tLQogbmV0L2lwdjQvcm91dGUuYyB8IDEwICsrKysrKysrLS0KIDEgZmlsZSBjaGFuZ2Vk LCA4IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQv cm91dGUuYyBiL25ldC9pcHY0L3JvdXRlLmMKaW5kZXggNmJjNDI3YWRjYjA2Li4yNWQ5YmVmMjdk MDMgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3JvdXRlLmMKKysrIGIvbmV0L2lwdjQvcm91dGUuYwpA QCAtMTE4NSwxNCArMTE4NSwyMCBAQCBzdGF0aWMgc3RydWN0IGRzdF9lbnRyeSAqaXB2NF9kc3Rf Y2hlY2soc3RydWN0IGRzdF9lbnRyeSAqZHN0LCB1MzIgY29va2llKQogCiBzdGF0aWMgdm9pZCBp cHY0X2xpbmtfZmFpbHVyZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogewotCXN0cnVjdCBydGFibGUg KnJ0OwogCXN0cnVjdCBpcF9vcHRpb25zIG9wdDsKKwlzdHJ1Y3QgcnRhYmxlICpydDsKKwlpbnQg cmVzOwogCiAJLyogUmVjb21waWxlIGlwIG9wdGlvbnMgc2luY2UgSVBDQiBtYXkgbm90IGJlIHZh bGlkIGFueW1vcmUuCiAJICovCiAJbWVtc2V0KCZvcHQsIDAsIHNpemVvZihvcHQpKTsKIAlvcHQu b3B0bGVuID0gaXBfaGRyKHNrYiktPmlobCo0IC0gc2l6ZW9mKHN0cnVjdCBpcGhkcik7Ci0JaWYg KF9faXBfb3B0aW9uc19jb21waWxlKGRldl9uZXQoc2tiLT5kZXYpLCAmb3B0LCBza2IsIE5VTEwp KQorCisJcmN1X3JlYWRfbG9jaygpOworCXJlcyA9IF9faXBfb3B0aW9uc19jb21waWxlKGRldl9u ZXQoc2tiLT5kZXYpLCAmb3B0LCBza2IsIE5VTEwpOworCXJjdV9yZWFkX3VubG9jaygpOworCisJ aWYgKHJlcykKIAkJcmV0dXJuOwogCiAJX19pY21wX3NlbmQoc2tiLCBJQ01QX0RFU1RfVU5SRUFD SCwgSUNNUF9IT1NUX1VOUkVBQ0gsIDAsICZvcHQpOwotLSAKMi4yMC4xCgoKRnJvbSBhNjQxZGVm ZGI1ZTI3YjhlZDc5ZDY5MDdkNDk3YzFmNjNhY2M2YjI2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBJZG8gU2NoaW1tZWwgPGlkb3NjaEBtZWxsYW5veC5jb20+CkRhdGU6IFdlZCwgMTAg QXByIDIwMTkgMDY6NTg6MTIgKzAwMDAKU3ViamVjdDogW1BBVENIIDE1LzQzXSBtbHhzdzogc3Bl Y3RydW1fc3dpdGNoZGV2OiBBZGQgTURCIGVudHJpZXMgaW4gcHJlcGFyZQogcGhhc2UKClsgVXBz dHJlYW0gY29tbWl0IGQ0ZDBlNDA5NzdhYzQ1MGYzMmYyZGI1ZTRkOGUyM2M5ZDI1Nzg4OTkgXQoK VGhlIGRyaXZlciBjYW5ub3QgZ3VhcmFudGVlIGluIHRoZSBwcmVwYXJlIHBoYXNlIHRoYXQgaXQg d2lsbCBiZSBhYmxlIHRvCndyaXRlIGFuIE1EQiBlbnRyeSB0byB0aGUgZGV2aWNlLiBJbiBjYXNl IHRoZSBkcml2ZXIgcmV0dXJuZWQgc3VjY2VzcwpkdXJpbmcgdGhlIHByZXBhcmUgcGhhc2UsIGJ1 dCB0aGVuIGZhaWxlZCB0byBhZGQgdGhlIGVudHJ5IGluIHRoZSBjb21taXQKcGhhc2UsIGEgV0FS TklORyBbMV0gd2lsbCBiZSBnZW5lcmF0ZWQgYnkgdGhlIHN3aXRjaGRldiBjb3JlLgoKRml4IHRo aXMgYnkgZG9pbmcgdGhlIHdvcmsgaW4gdGhlIHByZXBhcmUgcGhhc2UgaW5zdGVhZC4KClsxXQpb ICAzNTguNTQ0NDg2XSBzd3AxMnMwOiBDb21taXQgb2Ygb2JqZWN0IChpZD0yKSBmYWlsZWQuClsg IDM1OC41NTAwNjFdIFdBUk5JTkc6IENQVTogMCBQSUQ6IDMwIGF0IG5ldC9zd2l0Y2hkZXYvc3dp dGNoZGV2LmM6MjgxIHN3aXRjaGRldl9wb3J0X29ial9hZGRfbm93KzB4OWIvMHhlMApbICAzNTgu NTYwNzU0XSBDUFU6IDAgUElEOiAzMCBDb21tOiBrd29ya2VyLzA6MSBOb3QgdGFpbnRlZCA1LjAu MC1jdXN0b20tMTMzODItZ2YyNDQ5YmFiZjIyMSAjMTM1MApbICAzNTguNTcwNDcyXSBIYXJkd2Fy ZSBuYW1lOiBNZWxsYW5veCBUZWNobm9sb2dpZXMgTHRkLiBNU04yMTAwLUNCMkZPL1NBMDAxMDE3 LCBCSU9TIDUuNi41IDA2LzA3LzIwMTYKWyAgMzU4LjU4MDU4Ml0gV29ya3F1ZXVlOiBldmVudHMg c3dpdGNoZGV2X2RlZmVycmVkX3Byb2Nlc3Nfd29yawpbICAzNTguNTg3MDAxXSBSSVA6IDAwMTA6 c3dpdGNoZGV2X3BvcnRfb2JqX2FkZF9ub3crMHg5Yi8weGUwCi4uLgpbICAzNTguNjE0MTA5XSBS U1A6IDAwMTg6ZmZmZmE2YjkwMGQ2ZmUxOCBFRkxBR1M6IDAwMDEwMjg2ClsgIDM1OC42MTk5NDNd IFJBWDogMDAwMDAwMDAwMDAwMDAwMCBSQlg6IGZmZmY4YjAwNzk3ZmYwMDAgUkNYOiAwMDAwMDAw MDAwMDAwMDAwClsgIDM1OC42Mjc5MTJdIFJEWDogZmZmZjhiMDBiN2ExZDRjMCBSU0k6IGZmZmY4 YjAwYjdhMTUyZTggUkRJOiBmZmZmOGIwMGI3YTE1MmU4ClsgIDM1OC42MzU4ODFdIFJCUDogZmZm ZjhiMDA1YzNmNWJjMCBSMDg6IDAwMDAwMDAwMDAwMDAyMmIgUjA5OiAwMDAwMDAwMDAwMDAwMDAw ClsgIDM1OC42NDM4NTBdIFIxMDogMDAwMDAwMDAwMDAwMDAwMCBSMTE6IGZmZmZhNmI5MDBkNmZj YzggUjEyOiAwMDAwMDAwMDAwMDAwMDAwClsgIDM1OC42NTE4MTldIFIxMzogZGVhZDAwMDAwMDAw MDEwMCBSMTQ6IGZmZmY4YjAwYjY1YTIzYzAgUjE1OiAwZmZmZjhiMDBiN2EyMjAwClsgIDM1OC42 NTk3OTBdIEZTOiAgMDAwMDAwMDAwMDAwMDAwMCgwMDAwKSBHUzpmZmZmOGIwMGI3YTAwMDAwKDAw MDApIGtubEdTOjAwMDAwMDAwMDAwMDAwMDAKWyAgMzU4LjY2ODgyMF0gQ1M6ICAwMDEwIERTOiAw MDAwIEVTOiAwMDAwIENSMDogMDAwMDAwMDA4MDA1MDAzMwpbICAzNTguNjc1MjI4XSBDUjI6IDAw MDA3ZjAwYWFkOTBkZTAgQ1IzOiAwMDAwMDAwMWNhODBkMDAwIENSNDogMDAwMDAwMDAwMDEwMDZm MApbICAzNTguNjgzMTg4XSBDYWxsIFRyYWNlOgpbICAzNTguNjg1OTE4XSAgc3dpdGNoZGV2X3Bv cnRfb2JqX2FkZF9kZWZlcnJlZCsweDEzLzB4NjAKWyAgMzU4LjY5MTY1NV0gIHN3aXRjaGRldl9k ZWZlcnJlZF9wcm9jZXNzKzB4NmIvMHhmMApbICAzNTguNjk2OTA3XSAgc3dpdGNoZGV2X2RlZmVy cmVkX3Byb2Nlc3Nfd29yaysweGEvMHgxMApbICAzNTguNzAyNTQ4XSAgcHJvY2Vzc19vbmVfd29y aysweDFmNS8weDNmMApbICAzNTguNzA3MDIyXSAgd29ya2VyX3RocmVhZCsweDI4LzB4M2MwClsg IDM1OC43MTEwOTldICA/IHByb2Nlc3Nfb25lX3dvcmsrMHgzZjAvMHgzZjAKWyAgMzU4LjcxNTc2 OF0gIGt0aHJlYWQrMHgxMGQvMHgxMzAKWyAgMzU4LjcxOTM2OV0gID8gX19rdGhyZWFkX2NyZWF0 ZV9vbl9ub2RlKzB4MTgwLzB4MTgwClsgIDM1OC43MjQ4MTVdICByZXRfZnJvbV9mb3JrKzB4MzUv MHg0MAoKRml4ZXM6IDNhNDliNGZkZTJhMSAoIm1seHN3OiBBZGRpbmcgbGF5ZXIgMiBtdWx0aWNh c3Qgc3VwcG9ydCIpClNpZ25lZC1vZmYtYnk6IElkbyBTY2hpbW1lbCA8aWRvc2NoQG1lbGxhbm94 LmNvbT4KUmVwb3J0ZWQtYnk6IEFsZXggS3VzaG5hcm92IDxhbGV4YW5kZXJrQG1lbGxhbm94LmNv bT4KVGVzdGVkLWJ5OiBBbGV4IEt1c2huYXJvdiA8YWxleGFuZGVya0BtZWxsYW5veC5jb20+CkFj a2VkLWJ5OiBKaXJpIFBpcmtvIDxqaXJpQG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2 aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVy bmV0L21lbGxhbm94L21seHN3L3NwZWN0cnVtX3N3aXRjaGRldi5jIHwgMiArLQogMSBmaWxlIGNo YW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvc3BlY3RydW1fc3dpdGNoZGV2LmMgYi9kcml2 ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bV9zd2l0Y2hkZXYuYwppbmRl eCBjNzcyMTA5YjYzOGQuLmY1YTEwZTI4NjQwMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRo ZXJuZXQvbWVsbGFub3gvbWx4c3cvc3BlY3RydW1fc3dpdGNoZGV2LmMKKysrIGIvZHJpdmVycy9u ZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvc3BlY3RydW1fc3dpdGNoZGV2LmMKQEAgLTE2NTQs NyArMTY1NCw3IEBAIHN0YXRpYyBpbnQgbWx4c3dfc3BfcG9ydF9tZGJfYWRkKHN0cnVjdCBtbHhz d19zcF9wb3J0ICptbHhzd19zcF9wb3J0LAogCXUxNiBmaWRfaW5kZXg7CiAJaW50IGVyciA9IDA7 CiAKLQlpZiAoc3dpdGNoZGV2X3RyYW5zX3BoX3ByZXBhcmUodHJhbnMpKQorCWlmIChzd2l0Y2hk ZXZfdHJhbnNfcGhfY29tbWl0KHRyYW5zKSkKIAkJcmV0dXJuIDA7CiAKIAlicmlkZ2VfcG9ydCA9 IG1seHN3X3NwX2JyaWRnZV9wb3J0X2ZpbmQobWx4c3dfc3AtPmJyaWRnZSwgb3JpZ19kZXYpOwot LSAKMi4yMC4xCgoKRnJvbSBiMGYwYTE4NDU1MDcxN2RiMzk0NGM2ZjIxNzY3NjVjNzMwMzYzNjI1 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBJZG8gU2NoaW1tZWwgPGlkb3NjaEBtZWxs YW5veC5jb20+CkRhdGU6IFdlZCwgMTAgQXByIDIwMTkgMDY6NTg6MTMgKzAwMDAKU3ViamVjdDog W1BBVENIIDE2LzQzXSBtbHhzdzogY29yZTogRG8gbm90IHVzZSBXUV9NRU1fUkVDTEFJTSBmb3Ig RU1BRAogd29ya3F1ZXVlCgpbIFVwc3RyZWFtIGNvbW1pdCBhOGMxMzNiMDYxODNjNTI5YzUxY2Qw ZDU0ZWI1N2Q2YjcwNzgzNzBjIF0KClRoZSBFTUFEIHdvcmtxdWV1ZSBpcyB1c2VkIHRvIGhhbmRs ZSByZXRyYW5zbWlzc2lvbiBvZiBFTUFEIHBhY2tldHMgdGhhdApjb250YWluIGNvbmZpZ3VyYXRp b24gZGF0YSBmb3IgdGhlIGRldmljZSdzIGZpcm13YXJlLgoKR2l2ZW4gdGhlIHdvcmtlcnMgbmVl ZCB0byBhbGxvY2F0ZSB0aGVzZSBwYWNrZXRzIGFuZCB0aGF0IHRoZSBjb2RlIGlzCm5vdCBjYWxs ZWQgYXMgcGFydCBvZiBtZW1vcnkgcmVjbGFpbSBwYXRoLCByZW1vdmUgdGhlIFdRX01FTV9SRUNM QUlNCmZsYWcuCgpGaXhlczogZDk2NTQ2NWI2MGJhICgibWx4c3c6IGNvcmU6IEZpeCBwb3NzaWJs ZSBkZWFkbG9jayIpClNpZ25lZC1vZmYtYnk6IElkbyBTY2hpbW1lbCA8aWRvc2NoQG1lbGxhbm94 LmNvbT4KQWNrZWQtYnk6IEppcmkgUGlya28gPGppcmlAbWVsbGFub3guY29tPgpTaWduZWQtb2Zm LWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9u ZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvY29yZS5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQs IDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQv ZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvY29yZS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVs bGFub3gvbWx4c3cvY29yZS5jCmluZGV4IGRkZWRmOGFiNWI2NC4uM2JlOWRhNGI4ZjczIDEwMDY0 NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9jb3JlLmMKKysrIGIv ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvY29yZS5jCkBAIC01NjgsNyArNTY4 LDcgQEAgc3RhdGljIGludCBtbHhzd19lbWFkX2luaXQoc3RydWN0IG1seHN3X2NvcmUgKm1seHN3 X2NvcmUpCiAJaWYgKCEobWx4c3dfY29yZS0+YnVzLT5mZWF0dXJlcyAmIE1MWFNXX0JVU19GX1RY UlgpKQogCQlyZXR1cm4gMDsKIAotCWVtYWRfd3EgPSBhbGxvY193b3JrcXVldWUoIm1seHN3X2Nv cmVfZW1hZCIsIFdRX01FTV9SRUNMQUlNLCAwKTsKKwllbWFkX3dxID0gYWxsb2Nfd29ya3F1ZXVl KCJtbHhzd19jb3JlX2VtYWQiLCAwLCAwKTsKIAlpZiAoIWVtYWRfd3EpCiAJCXJldHVybiAtRU5P TUVNOwogCW1seHN3X2NvcmUtPmVtYWRfd3EgPSBlbWFkX3dxOwotLSAKMi4yMC4xCgoKRnJvbSBi NDIxYTY3Zjc1NjcxN2VjYWNiMDdjNzg0N2IxMGU2ODJiMTMxNmU0IE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBJZG8gU2NoaW1tZWwgPGlkb3NjaEBtZWxsYW5veC5jb20+CkRhdGU6IFdl ZCwgMTAgQXByIDIwMTkgMDY6NTg6MTQgKzAwMDAKU3ViamVjdDogW1BBVENIIDE3LzQzXSBtbHhz dzogY29yZTogRG8gbm90IHVzZSBXUV9NRU1fUkVDTEFJTSBmb3IgbWx4c3cKIG9yZGVyZWQgd29y a3F1ZXVlCgpbIFVwc3RyZWFtIGNvbW1pdCA0YWYwNjk5NzgyZTJjYzdkMGQ4OWRiOWViNmY4ODQ0 ZGQzZGY4MmRjIF0KClRoZSBvcmRlcmVkIHdvcmtxdWV1ZSBpcyB1c2VkIHRvIG9mZmxvYWQgdmFy aW91cyBvYmplY3RzIHN1Y2ggYXMgcm91dGVzCmFuZCBuZWlnaGJvdXJzIGluIHRoZSBvcmRlciB0 aGV5IGFyZSBub3RpZmllZC4KCkl0IHNob3VsZCBub3QgYmUgY2FsbGVkIGFzIHBhcnQgb2YgbWVt b3J5IHJlY2xhaW0gcGF0aCwgc28gcmVtb3ZlIHRoZQpXUV9NRU1fUkVDTEFJTSBmbGFnLiBUaGlz IGNhbiBhbHNvIHJlc3VsdCBpbiBhIHdhcm5pbmcgWzFdLCBpZiBhIHdvcmtlcgp0cmllcyB0byBm bHVzaCBhIG5vbi1XUV9NRU1fUkVDTEFJTSB3b3JrcXVldWUuCgpbMV0KWzk3NzAzLjU0Mjg2MV0g d29ya3F1ZXVlOiBXUV9NRU1fUkVDTEFJTSBtbHhzd19jb3JlX29yZGVyZWQ6bWx4c3dfc3Bfcm91 dGVyX2ZpYjZfZXZlbnRfd29yayBbbWx4c3dfc3BlY3RydW1dIGlzIGZsdXNoaW5nICFXUV9NRU1f UkVDTEFJTSBldmVudHM6cmh0X2RlZmVycmVkX3dvcmtlcgpbOTc3MDMuNTQyODg0XSBXQVJOSU5H OiBDUFU6IDEgUElEOiAzMjQ5MiBhdCBrZXJuZWwvd29ya3F1ZXVlLmM6MjYwNSBjaGVja19mbHVz aF9kZXBlbmRlbmN5KzB4YjUvMHgxMzAKLi4uCls5NzcwMy41NDI5ODhdIEhhcmR3YXJlIG5hbWU6 IE1lbGxhbm94IFRlY2hub2xvZ2llcyBMdGQuIE1TTjM3MDBDL1ZNT0QwMDA4LCBCSU9TIDUuMTEg MTAvMTAvMjAxOApbOTc3MDMuNTQzMDQ5XSBXb3JrcXVldWU6IG1seHN3X2NvcmVfb3JkZXJlZCBt bHhzd19zcF9yb3V0ZXJfZmliNl9ldmVudF93b3JrIFttbHhzd19zcGVjdHJ1bV0KWzk3NzAzLjU0 MzA2MV0gUklQOiAwMDEwOmNoZWNrX2ZsdXNoX2RlcGVuZGVuY3krMHhiNS8weDEzMAouLi4KWzk3 NzAzLjU0MzA3MV0gUlNQOiAwMDE4OmZmZmZiM2YwODEzN2JjMDAgRUZMQUdTOiAwMDAxMDA4Ngpb OTc3MDMuNTQzMDc2XSBSQVg6IDAwMDAwMDAwMDAwMDAwMDAgUkJYOiBmZmZmOTZlMDc3NDBhZTAw IFJDWDogMDAwMDAwMDAwMDAwMDAwMApbOTc3MDMuNTQzMDgwXSBSRFg6IDAwMDAwMDAwMDAwMDAw OTQgUlNJOiBmZmZmZmZmZjgyZGMxOTM0IFJESTogMDAwMDAwMDAwMDAwMDA0NgpbOTc3MDMuNTQz MDg0XSBSQlA6IGZmZmZiM2YwODEzN2JjMjAgUjA4OiBmZmZmZmZmZjgyZGMxOGEwIFIwOTogMDAw MDAwMDAwMDAyMjVjMApbOTc3MDMuNTQzMDg3XSBSMTA6IDAwMDAwMDAwMDAwMDAwMDAgUjExOiAw MDAwMDAwMDAwMDA3ZWVjIFIxMjogZmZmZmZmZmY4MTZlNGVlMApbOTc3MDMuNTQzMDkxXSBSMTM6 IGZmZmY5NmUwNmY2YTVjMDAgUjE0OiBmZmZmOTZlMDc3YmE3NzAwIFIxNTogZmZmZmZmZmY4MTJh YjBjMApbOTc3MDMuNTQzMDk3XSBGUzogMDAwMDAwMDAwMDAwMDAwMCgwMDAwKSBHUzpmZmZmOTZl MDc3YTgwMDAwKDAwMDApIGtubEdTOjAwMDAwMDAwMDAwMDAwMDAKWzk3NzAzLjU0MzEwMV0gQ1M6 IDAwMTAgRFM6IDAwMDAgRVM6IDAwMDAgQ1IwOiAwMDAwMDAwMDgwMDUwMDMzCls5NzcwMy41NDMx MDRdIENSMjogMDAwMDdmOGNkMTM1YjI4MCBDUjM6IDAwMDAwMDAxZTg2MGUwMDMgQ1I0OiAwMDAw MDAwMDAwMzYwNmUwCls5NzcwMy41NDMxMDldIERSMDogMDAwMDAwMDAwMDAwMDAwMCBEUjE6IDAw MDAwMDAwMDAwMDAwMDAgRFIyOiAwMDAwMDAwMDAwMDAwMDAwCls5NzcwMy41NDMxMTJdIERSMzog MDAwMDAwMDAwMDAwMDAwMCBEUjY6IDAwMDAwMDAwZmZmZTBmZjAgRFI3OiAwMDAwMDAwMDAwMDAw NDAwCls5NzcwMy41NDMxMTVdIENhbGwgVHJhY2U6Cls5NzcwMy41NDMxMjldIF9fZmx1c2hfd29y aysweGJkLzB4MWUwCls5NzcwMy41NDMxMzddID8gX19jYW5jZWxfd29ya190aW1lcisweDEzNi8w eDFiMApbOTc3MDMuNTQzMTQ1XSA/IHB3cV9kZWNfbnJfaW5fZmxpZ2h0KzB4NDkvMHhhMApbOTc3 MDMuNTQzMTU0XSBfX2NhbmNlbF93b3JrX3RpbWVyKzB4MTM2LzB4MWIwCls5NzcwMy41NDMxNzVd ID8gbWx4c3dfcmVnX3RyYW5zX2J1bGtfd2FpdCsweDE0NS8weDQwMCBbbWx4c3dfY29yZV0KWzk3 NzAzLjU0MzE4NF0gY2FuY2VsX3dvcmtfc3luYysweDEwLzB4MjAKWzk3NzAzLjU0MzE5MV0gcmhh c2h0YWJsZV9mcmVlX2FuZF9kZXN0cm95KzB4MjMvMHgxNDAKWzk3NzAzLjU0MzE5OF0gcmhhc2h0 YWJsZV9kZXN0cm95KzB4ZC8weDEwCls5NzcwMy41NDMyNTRdIG1seHN3X3NwX2ZpYl9kZXN0cm95 KzB4YjEvMHhmMCBbbWx4c3dfc3BlY3RydW1dCls5NzcwMy41NDMzMTBdIG1seHN3X3NwX3ZyX3B1 dCsweGE4LzB4YzAgW21seHN3X3NwZWN0cnVtXQpbOTc3MDMuNTQzMzY0XSBtbHhzd19zcF9maWJf bm9kZV9wdXQrMHhiZi8weDE0MCBbbWx4c3dfc3BlY3RydW1dCls5NzcwMy41NDM0MThdID8gbWx4 c3dfc3BfZmliNl9lbnRyeV9kZXN0cm95KzB4ZTgvMHgxMTAgW21seHN3X3NwZWN0cnVtXQpbOTc3 MDMuNTQzNDc1XSBtbHhzd19zcF9yb3V0ZXJfZmliNl9ldmVudF93b3JrKzB4NmNkLzB4N2YwIFtt bHhzd19zcGVjdHJ1bV0KWzk3NzAzLjU0MzQ4NF0gcHJvY2Vzc19vbmVfd29yaysweDFmZC8weDQw MApbOTc3MDMuNTQzNDkzXSB3b3JrZXJfdGhyZWFkKzB4MzQvMHg0MTAKWzk3NzAzLjU0MzUwMF0g a3RocmVhZCsweDEyMS8weDE0MApbOTc3MDMuNTQzNTA3XSA/IHByb2Nlc3Nfb25lX3dvcmsrMHg0 MDAvMHg0MDAKWzk3NzAzLjU0MzUxMl0gPyBrdGhyZWFkX3BhcmsrMHg5MC8weDkwCls5NzcwMy41 NDM1MjNdIHJldF9mcm9tX2ZvcmsrMHgzNS8weDQwCgpGaXhlczogYTM4MzJiMzE4OThmICgibWx4 c3c6IGNvcmU6IENyZWF0ZSBhbiBvcmRlcmVkIHdvcmtxdWV1ZSBmb3IgRklCIG9mZmxvYWQiKQpT aWduZWQtb2ZmLWJ5OiBJZG8gU2NoaW1tZWwgPGlkb3NjaEBtZWxsYW5veC5jb20+ClJlcG9ydGVk LWJ5OiBTZW1pb24gTGlzeWFuc2t5IDxzZW1pb25sQG1lbGxhbm94LmNvbT4KQWNrZWQtYnk6IEpp cmkgUGlya28gPGppcmlAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxs ZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFu b3gvbWx4c3cvY29yZS5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAx IGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gv bWx4c3cvY29yZS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvY29yZS5j CmluZGV4IDNiZTlkYTRiOGY3My4uMGNkNTgzNTllMGMzIDEwMDY0NAotLS0gYS9kcml2ZXJzL25l dC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9jb3JlLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJu ZXQvbWVsbGFub3gvbWx4c3cvY29yZS5jCkBAIC0xOTE1LDcgKzE5MTUsNyBAQCBzdGF0aWMgaW50 IF9faW5pdCBtbHhzd19jb3JlX21vZHVsZV9pbml0KHZvaWQpCiAJbWx4c3dfd3EgPSBhbGxvY193 b3JrcXVldWUobWx4c3dfY29yZV9kcml2ZXJfbmFtZSwgV1FfTUVNX1JFQ0xBSU0sIDApOwogCWlm ICghbWx4c3dfd3EpCiAJCXJldHVybiAtRU5PTUVNOwotCW1seHN3X293cSA9IGFsbG9jX29yZGVy ZWRfd29ya3F1ZXVlKCIlc19vcmRlcmVkIiwgV1FfTUVNX1JFQ0xBSU0sCisJbWx4c3dfb3dxID0g YWxsb2Nfb3JkZXJlZF93b3JrcXVldWUoIiVzX29yZGVyZWQiLCAwLAogCQkJCQkgICAgbWx4c3df Y29yZV9kcml2ZXJfbmFtZSk7CiAJaWYgKCFtbHhzd19vd3EpIHsKIAkJZXJyID0gLUVOT01FTTsK LS0gCjIuMjAuMQoKCkZyb20gYmY0NTdkNWYyMjZhMDMyMjZjZjA1NzZhNmFlYjYxZTk2NzFmMTAx OCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSWRvIFNjaGltbWVsIDxpZG9zY2hAbWVs bGFub3guY29tPgpEYXRlOiBXZWQsIDEwIEFwciAyMDE5IDA2OjU4OjE1ICswMDAwClN1YmplY3Q6 IFtQQVRDSCAxOC80M10gbWx4c3c6IGNvcmU6IERvIG5vdCB1c2UgV1FfTUVNX1JFQ0xBSU0gZm9y IG1seHN3CiB3b3JrcXVldWUKClsgVXBzdHJlYW0gY29tbWl0IGI0NDJmZWQxYjcyNGFmMGRlMDg3 OTEyYTU3MThkZGRlMWI4N2FjYmIgXQoKVGhlIHdvcmtxdWV1ZSBpcyB1c2VkIHRvIHBlcmlvZGlj YWxseSB1cGRhdGUgdGhlIG5ldHdvcmtpbmcgc3RhY2sgYWJvdXQKYWN0aXZpdHkgLyBzdGF0aXN0 aWNzIG9mIHZhcmlvdXMgb2JqZWN0cyBzdWNoIGFzIG5laWdoYm91cnMgYW5kIFRDCmFjdGlvbnMu CgpJdCBzaG91bGQgbm90IGJlIGNhbGxlZCBhcyBwYXJ0IG9mIG1lbW9yeSByZWNsYWltIHBhdGgs IHNvIHJlbW92ZSB0aGUKV1FfTUVNX1JFQ0xBSU0gZmxhZy4KCkZpeGVzOiAzZDU0NzllOTIwODcg KCJtbHhzdzogY29yZTogUmVtb3ZlIGRlcHJlY2F0ZWQgY3JlYXRlX3dvcmtxdWV1ZSIpClNpZ25l ZC1vZmYtYnk6IElkbyBTY2hpbW1lbCA8aWRvc2NoQG1lbGxhbm94LmNvbT4KQWNrZWQtYnk6IEpp cmkgUGlya28gPGppcmlAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxs ZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFu b3gvbWx4c3cvY29yZS5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAx IGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gv bWx4c3cvY29yZS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvY29yZS5j CmluZGV4IDBjZDU4MzU5ZTBjMy4uZmM2NDNmZGU1YTRhIDEwMDY0NAotLS0gYS9kcml2ZXJzL25l dC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9jb3JlLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJu ZXQvbWVsbGFub3gvbWx4c3cvY29yZS5jCkBAIC0xOTEyLDcgKzE5MTIsNyBAQCBzdGF0aWMgaW50 IF9faW5pdCBtbHhzd19jb3JlX21vZHVsZV9pbml0KHZvaWQpCiB7CiAJaW50IGVycjsKIAotCW1s eHN3X3dxID0gYWxsb2Nfd29ya3F1ZXVlKG1seHN3X2NvcmVfZHJpdmVyX25hbWUsIFdRX01FTV9S RUNMQUlNLCAwKTsKKwltbHhzd193cSA9IGFsbG9jX3dvcmtxdWV1ZShtbHhzd19jb3JlX2RyaXZl cl9uYW1lLCAwLCAwKTsKIAlpZiAoIW1seHN3X3dxKQogCQlyZXR1cm4gLUVOT01FTTsKIAltbHhz d19vd3EgPSBhbGxvY19vcmRlcmVkX3dvcmtxdWV1ZSgiJXNfb3JkZXJlZCIsIDAsCi0tIAoyLjIw LjEKCgpGcm9tIDcwNGIyNzRjOGNiZWU5ZTAxYTUwYjcyZmRlZTU5NjVlNDEyNzdmNTUgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IElkbyBTY2hpbW1lbCA8aWRvc2NoQG1lbGxhbm94LmNv bT4KRGF0ZTogV2VkLCAxMCBBcHIgMjAxOSAwNjo1ODoxNSArMDAwMApTdWJqZWN0OiBbUEFUQ0gg MTkvNDNdIG1seHN3OiBzcGVjdHJ1bV9yb3V0ZXI6IERvIG5vdCBjaGVjayBWUkYgTUFDIGFkZHJl c3MKClsgVXBzdHJlYW0gY29tbWl0IDk3MmZhZTY4M2NiYWQ1Y2YzNDgyNjhlNzZhYmM2ZDU1Y2Zi M2JhODcgXQoKQ29tbWl0IDc0YmM5OTM5NzQzOCAoIm1seHN3OiBzcGVjdHJ1bV9yb3V0ZXI6IFZl dG8gdW5zdXBwb3J0ZWQgUklGIE1BQwphZGRyZXNzZXMiKSBlbmFibGVkIHRoZSBkcml2ZXIgdG8g dmV0byByb3V0ZXIgaW50ZXJmYWNlIChSSUYpIE1BQwphZGRyZXNzZXMgdGhhdCBpdCBjYW5ub3Qg c3VwcG9ydC4KClRoaXMgY2hlY2sgc2hvdWxkIG9ubHkgYmUgcGVyZm9ybWVkIGZvciBpbnRlcmZh Y2VzIGZvciB3aGljaCB0aGUgZHJpdmVyCmFjdHVhbGx5IGNvbmZpZ3VyZXMgYSBSSUYuIEEgVlJG IHVwcGVyIGlzIG5vdCBvbmUgb2YgdGhlbSwgc28gaWdub3JlIGl0LgoKV2l0aG91dCB0aGlzIHBh dGNoIGl0IGlzIG5vdCBwb3NzaWJsZSB0byBzZXQgYW4gSVAgYWRkcmVzcyBvbiB0aGUgVlJGCmRl dmljZSBhbmQgdXNlIGl0IGFzIGEgbG9vcGJhY2suCgpGaXhlczogNzRiYzk5Mzk3NDM4ICgibWx4 c3c6IHNwZWN0cnVtX3JvdXRlcjogVmV0byB1bnN1cHBvcnRlZCBSSUYgTUFDIGFkZHJlc3NlcyIp ClNpZ25lZC1vZmYtYnk6IElkbyBTY2hpbW1lbCA8aWRvc2NoQG1lbGxhbm94LmNvbT4KUmVwb3J0 ZWQtYnk6IEFsZXhhbmRlciBQZXRyb3Zza2l5IDxhbGV4cGVAbWVsbGFub3guY29tPgpUZXN0ZWQt Ynk6IEFsZXhhbmRlciBQZXRyb3Zza2l5IDxhbGV4cGVAbWVsbGFub3guY29tPgpBY2tlZC1ieTog SmlyaSBQaXJrbyA8amlyaUBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1p bGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxs YW5veC9tbHhzdy9zcGVjdHJ1bV9yb3V0ZXIuYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGlu c2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVy bmV0L21lbGxhbm94L21seHN3L3NwZWN0cnVtX3JvdXRlci5jIGIvZHJpdmVycy9uZXQvZXRoZXJu ZXQvbWVsbGFub3gvbWx4c3cvc3BlY3RydW1fcm91dGVyLmMKaW5kZXggOThlNWZmZDcxYjkxLi4y ZjZhZmJmZDY4OWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21s eHN3L3NwZWN0cnVtX3JvdXRlci5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94 L21seHN3L3NwZWN0cnVtX3JvdXRlci5jCkBAIC02NzQ1LDcgKzY3NDUsNyBAQCBzdGF0aWMgaW50 IG1seHN3X3NwX3JvdXRlcl9wb3J0X2NoZWNrX3JpZl9hZGRyKHN0cnVjdCBtbHhzd19zcCAqbWx4 c3dfc3AsCiAJLyogQSBSSUYgaXMgbm90IGNyZWF0ZWQgZm9yIG1hY3ZsYW4gbmV0ZGV2cy4gVGhl aXIgTUFDIGlzIHVzZWQgdG8KIAkgKiBwb3B1bGF0ZSB0aGUgRkRCCiAJICovCi0JaWYgKG5ldGlm X2lzX21hY3ZsYW4oZGV2KSkKKwlpZiAobmV0aWZfaXNfbWFjdmxhbihkZXYpIHx8IG5ldGlmX2lz X2wzX21hc3RlcihkZXYpKQogCQlyZXR1cm4gMDsKIAogCWZvciAoaSA9IDA7IGkgPCBNTFhTV19D T1JFX1JFU19HRVQobWx4c3dfc3AtPmNvcmUsIE1BWF9SSUZTKTsgaSsrKSB7Ci0tIAoyLjIwLjEK CgpGcm9tIDVmODlmZGNkZmE2MTU0NjYyM2I4YzQ4N2M0NzExNzBkYTgyOGE1ZmMgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IE1hdHRlbyBDcm9jZSA8bWNyb2NlQHJlZGhhdC5jb20+CkRh dGU6IFRodSwgMTEgQXByIDIwMTkgMTI6MjY6MzIgKzAyMDAKU3ViamVjdDogW1BBVENIIDIwLzQz XSBuZXQ6IHRodW5kZXJ4OiByYWlzZSBYRFAgTVRVIHRvIDE1MDgKClsgVXBzdHJlYW0gY29tbWl0 IDVlZTE1YzEwMWYyOWUwMDkzZmZiNTQ0ODc3M2NjYmM3ODZlYjMxM2IgXQoKVGhlIHRodW5kZXJ4 IGRyaXZlciBzcGxpdHMgZnJhbWVzIGJpZ2dlciB0aGFuIDE1MzAgYnl0ZXMgdG8gbXVsdGlwbGUK cGFnZXMsIG1ha2luZyBpbXBvc3NpYmxlIHRvIHJ1biBhbiBlQlBGIHByb2dyYW0gb24gaXQuClRo aXMgbGVhZHMgdG8gYSBtYXhpbXVtIE1UVSBvZiAxNTA4IGlmIFFpblEgaXMgaW4gdXNlLgoKVGhl IHRodW5kZXJ4IGRyaXZlciBmb3JiaWRzIHRvIGxvYWQgYW4gZUJQRiBwcm9ncmFtIGlmIHRoZSBN VFUgaXMgaGlnaGVyCnRoYW4gMTUwMCBieXRlcy4gUmFpc2UgdGhlIGxpbWl0IHRvIDE1MDggc28g aXQgaXMgcG9zc2libGUgdG8gdXNlIEwyCnByb3RvY29scyB3aGljaCBuZWVkIHNvbWUgbW9yZSBo ZWFkcm9vbS4KCkZpeGVzOiAwNWM3NzNmNTJiOTZlICgibmV0OiB0aHVuZGVyeDogQWRkIGJhc2lj IFhEUCBzdXBwb3J0IikKU2lnbmVkLW9mZi1ieTogTWF0dGVvIENyb2NlIDxtY3JvY2VAcmVkaGF0 LmNvbT4KQWNrZWQtYnk6IEplc3BlciBEYW5nYWFyZCBCcm91ZXIgPGJyb3VlckByZWRoYXQuY29t PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0t LQogZHJpdmVycy9uZXQvZXRoZXJuZXQvY2F2aXVtL3RodW5kZXIvbmljdmZfbWFpbi5jIHwgMTMg KysrKysrKysrKystLQogMSBmaWxlIGNoYW5nZWQsIDExIGluc2VydGlvbnMoKyksIDIgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2F2aXVtL3RodW5kZXIv bmljdmZfbWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2F2aXVtL3RodW5kZXIvbmljdmZf bWFpbi5jCmluZGV4IGQ0ZWU5ZjljOGMzNC4uNGZlZDNlODg4NzRjIDEwMDY0NAotLS0gYS9kcml2 ZXJzL25ldC9ldGhlcm5ldC9jYXZpdW0vdGh1bmRlci9uaWN2Zl9tYWluLmMKKysrIGIvZHJpdmVy cy9uZXQvZXRoZXJuZXQvY2F2aXVtL3RodW5kZXIvbmljdmZfbWFpbi5jCkBAIC0zMiw2ICszMiwx MyBAQAogI2RlZmluZSBEUlZfTkFNRQkibmljdmYiCiAjZGVmaW5lIERSVl9WRVJTSU9OCSIxLjAi CiAKKy8qIE5PVEU6IFBhY2tldHMgYmlnZ2VyIHRoYW4gMTUzMCBhcmUgc3BsaXQgYWNyb3NzIG11 bHRpcGxlIHBhZ2VzIGFuZCBYRFAgbmVlZHMKKyAqIHRoZSBidWZmZXIgdG8gYmUgY29udGlndW91 cy4gQWxsb3cgWERQIHRvIGJlIHNldCB1cCBvbmx5IGlmIHdlIGRvbid0IGV4Y2VlZAorICogdGhp cyB2YWx1ZSwga2VlcGluZyBoZWFkcm9vbSBmb3IgdGhlIDE0IGJ5dGUgRXRoZXJuZXQgaGVhZGVy IGFuZCB0d28KKyAqIFZMQU4gdGFncyAoZm9yIFFpblEpCisgKi8KKyNkZWZpbmUgTUFYX1hEUF9N VFUJKDE1MzAgLSBFVEhfSExFTiAtIFZMQU5fSExFTiAqIDIpCisKIC8qIFN1cHBvcnRlZCBkZXZp Y2VzICovCiBzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgbmljdmZfaWRfdGFibGVb XSA9IHsKIAl7IFBDSV9ERVZJQ0VfU1VCKFBDSV9WRU5ET1JfSURfQ0FWSVVNLApAQCAtMTgzMCw4 ICsxODM3LDEwIEBAIHN0YXRpYyBpbnQgbmljdmZfeGRwX3NldHVwKHN0cnVjdCBuaWN2ZiAqbmlj LCBzdHJ1Y3QgYnBmX3Byb2cgKnByb2cpCiAJYm9vbCBicGZfYXR0YWNoZWQgPSBmYWxzZTsKIAlp bnQgcmV0ID0gMDsKIAotCS8qIEZvciBub3cganVzdCBzdXBwb3J0IG9ubHkgdGhlIHVzdWFsIE1U VSBzaXplZCBmcmFtZXMgKi8KLQlpZiAocHJvZyAmJiAoZGV2LT5tdHUgPiAxNTAwKSkgeworCS8q IEZvciBub3cganVzdCBzdXBwb3J0IG9ubHkgdGhlIHVzdWFsIE1UVSBzaXplZCBmcmFtZXMsCisJ ICogcGx1cyBzb21lIGhlYWRyb29tIGZvciBWTEFOLCBRaW5RLgorCSAqLworCWlmIChwcm9nICYm IGRldi0+bXR1ID4gTUFYX1hEUF9NVFUpIHsKIAkJbmV0ZGV2X3dhcm4oZGV2LCAiSnVtYm8gZnJh bWVzIG5vdCB5ZXQgc3VwcG9ydGVkIHdpdGggWERQLCBjdXJyZW50IE1UVSAlZC5cbiIsCiAJCQkg ICAgZGV2LT5tdHUpOwogCQlyZXR1cm4gLUVPUE5PVFNVUFA7Ci0tIAoyLjIwLjEKCgpGcm9tIDI3 NjczMTc0ZWU1N2Q1ZTNiODFkNTlkZTNjNTU0OTAzNDg3Yjc1YjAgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IE1hdHRlbyBDcm9jZSA8bWNyb2NlQHJlZGhhdC5jb20+CkRhdGU6IFRodSwg MTEgQXByIDIwMTkgMTI6MjY6MzMgKzAyMDAKU3ViamVjdDogW1BBVENIIDIxLzQzXSBuZXQ6IHRo dW5kZXJ4OiBkb24ndCBhbGxvdyBqdW1ibyBmcmFtZXMgd2l0aCBYRFAKClsgVXBzdHJlYW0gY29t bWl0IDFmMjI3ZDE2MDgzYjJlMjgwYjdkZGU0Y2E3ODg4M2Q3NTU5M2YyZmQgXQoKVGhlIHRodW5k ZXJ4IGRyaXZlciBmb3JiaWRzIHRvIGxvYWQgYW4gZUJQRiBwcm9ncmFtIGlmIHRoZSBNVFUgaXMg dG9vIGhpZ2gsCmJ1dCB0aGlzIGNhbiBiZSBjaXJjdW12ZW50ZWQgYnkgbG9hZGluZyB0aGUgZUJQ RiwgdGhlbiByYWlzaW5nIHRoZSBNVFUuCgpGaXggdGhpcyBieSBsaW1pdGluZyB0aGUgTVRVIGlm IGFuIGVCUEYgcHJvZ3JhbSBpcyBhbHJlYWR5IGxvYWRlZC4KCkZpeGVzOiAwNWM3NzNmNTJiOTZl ICgibmV0OiB0aHVuZGVyeDogQWRkIGJhc2ljIFhEUCBzdXBwb3J0IikKU2lnbmVkLW9mZi1ieTog TWF0dGVvIENyb2NlIDxtY3JvY2VAcmVkaGF0LmNvbT4KQWNrZWQtYnk6IEplc3BlciBEYW5nYWFy ZCBCcm91ZXIgPGJyb3VlckByZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxs ZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvY2F2aXVt L3RodW5kZXIvbmljdmZfbWFpbi5jIHwgOSArKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCA5IGlu c2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jYXZpdW0vdGh1 bmRlci9uaWN2Zl9tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9jYXZpdW0vdGh1bmRlci9u aWN2Zl9tYWluLmMKaW5kZXggNGZlZDNlODg4NzRjLi4zNjI2M2M3N2RmNDYgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvbmV0L2V0aGVybmV0L2Nhdml1bS90aHVuZGVyL25pY3ZmX21haW4uYworKysgYi9k cml2ZXJzL25ldC9ldGhlcm5ldC9jYXZpdW0vdGh1bmRlci9uaWN2Zl9tYWluLmMKQEAgLTE1ODks NiArMTU4OSwxNSBAQCBzdGF0aWMgaW50IG5pY3ZmX2NoYW5nZV9tdHUoc3RydWN0IG5ldF9kZXZp Y2UgKm5ldGRldiwgaW50IG5ld19tdHUpCiAJc3RydWN0IG5pY3ZmICpuaWMgPSBuZXRkZXZfcHJp dihuZXRkZXYpOwogCWludCBvcmlnX210dSA9IG5ldGRldi0+bXR1OwogCisJLyogRm9yIG5vdyBq dXN0IHN1cHBvcnQgb25seSB0aGUgdXN1YWwgTVRVIHNpemVkIGZyYW1lcywKKwkgKiBwbHVzIHNv bWUgaGVhZHJvb20gZm9yIFZMQU4sIFFpblEuCisJICovCisJaWYgKG5pYy0+eGRwX3Byb2cgJiYg bmV3X210dSA+IE1BWF9YRFBfTVRVKSB7CisJCW5ldGRldl93YXJuKG5ldGRldiwgIkp1bWJvIGZy YW1lcyBub3QgeWV0IHN1cHBvcnRlZCB3aXRoIFhEUCwgY3VycmVudCBNVFUgJWQuXG4iLAorCQkJ ICAgIG5ldGRldi0+bXR1KTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCiAJbmV0ZGV2LT5tdHUg PSBuZXdfbXR1OwogCiAJaWYgKCFuZXRpZl9ydW5uaW5nKG5ldGRldikpCi0tIAoyLjIwLjEKCgpG cm9tIGFhOGJiMjNjOGY0Yjk2MDVhYjVhZjY1NjU1OGRkYmZlNDNlNzNlYjkgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IEpha3ViIEtpY2luc2tpIDxqYWt1Yi5raWNpbnNraUBuZXRyb25v bWUuY29tPgpEYXRlOiBXZWQsIDEwIEFwciAyMDE5IDExOjA0OjMwIC0wNzAwClN1YmplY3Q6IFtQ QVRDSCAyMi80M10gbmV0L3RsczogZml4IHRoZSBJViBsZWFrcwoKWyBVcHN0cmVhbSBjb21taXQg NWEwM2JjNzNhYmVkNmFlMTk2YzE1ZTk5NTBhZmRlMTlkNDhiZTEyYyBdCgpDb21taXQgZjY2ZGUz ZWUyYzE2ICgibmV0L3RsczogU3BsaXQgY29uZiB0byByeCArIHR4IikgbWFkZQpmcmVlaW5nIG9m IElWIGFuZCByZWNvcmQgc2VxdWVuY2UgbnVtYmVyIGNvbmRpdGlvbmFsIHRvIFNXCnBhdGggb25s eSwgYnV0IGNvbW1pdCBlOGY2OTc5OTgxMGMgKCJuZXQvdGxzOiBBZGQgZ2VuZXJpYyBOSUMKb2Zm bG9hZCBpbmZyYXN0cnVjdHVyZSIpIGFsc28gYWxsb2NhdGVzIHRoYXQgc3RhdGUgZm9yIHRoZQpk ZXZpY2Ugb2ZmbG9hZCBjb25maWd1cmF0aW9uLiAgUmVtZW1iZXIgdG8gZnJlZSBpdC4KCkZpeGVz OiBlOGY2OTc5OTgxMGMgKCJuZXQvdGxzOiBBZGQgZ2VuZXJpYyBOSUMgb2ZmbG9hZCBpbmZyYXN0 cnVjdHVyZSIpClNpZ25lZC1vZmYtYnk6IEpha3ViIEtpY2luc2tpIDxqYWt1Yi5raWNpbnNraUBu ZXRyb25vbWUuY29tPgpSZXZpZXdlZC1ieTogRGlyayB2YW4gZGVyIE1lcndlIDxkaXJrLnZhbmRl cm1lcndlQG5ldHJvbm9tZS5jb20+ClJldmlld2VkLWJ5OiBTaW1vbiBIb3JtYW4gPHNpbW9uLmhv cm1hbkBuZXRyb25vbWUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVt QGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3Rscy90bHNfZGV2aWNlLmMgfCA1ICsrKystCiAxIGZp bGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEv bmV0L3Rscy90bHNfZGV2aWNlLmMgYi9uZXQvdGxzL3Rsc19kZXZpY2UuYwppbmRleCBkNzUzZTM2 MmQyZDkuLjRhN2Y0ZGE2OWIzNCAxMDA2NDQKLS0tIGEvbmV0L3Rscy90bHNfZGV2aWNlLmMKKysr IGIvbmV0L3Rscy90bHNfZGV2aWNlLmMKQEAgLTUyLDggKzUyLDExIEBAIHN0YXRpYyBERUZJTkVf U1BJTkxPQ0sodGxzX2RldmljZV9sb2NrKTsKIAogc3RhdGljIHZvaWQgdGxzX2RldmljZV9mcmVl X2N0eChzdHJ1Y3QgdGxzX2NvbnRleHQgKmN0eCkKIHsKLQlpZiAoY3R4LT50eF9jb25mID09IFRM U19IVykKKwlpZiAoY3R4LT50eF9jb25mID09IFRMU19IVykgewogCQlrZnJlZSh0bHNfb2ZmbG9h ZF9jdHhfdHgoY3R4KSk7CisJCWtmcmVlKGN0eC0+dHgucmVjX3NlcSk7CisJCWtmcmVlKGN0eC0+ dHguaXYpOworCX0KIAogCWlmIChjdHgtPnJ4X2NvbmYgPT0gVExTX0hXKQogCQlrZnJlZSh0bHNf b2ZmbG9hZF9jdHhfcngoY3R4KSk7Ci0tIAoyLjIwLjEKCgpGcm9tIDE5MmNmZTc1MTQwMzhkZWZm ODc1NDdiODVhYjA2NmIzMzcyZTI2OWIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEph a3ViIEtpY2luc2tpIDxqYWt1Yi5raWNpbnNraUBuZXRyb25vbWUuY29tPgpEYXRlOiBXZWQsIDEw IEFwciAyMDE5IDExOjA0OjMxIC0wNzAwClN1YmplY3Q6IFtQQVRDSCAyMy80M10gbmV0L3Rsczog ZG9uJ3QgbGVhayBwYXJ0aWFsbHkgc2VudCByZWNvcmQgaW4gZGV2aWNlCiBtb2RlCgpbIFVwc3Ry ZWFtIGNvbW1pdCAzNWI3MWEzNGFkYTYyYzk1NzM4NDdhMzI0YmYwNmExMzNmZTExYjExIF0KCkRh dmlkIHJlcG9ydHMgdGhhdCB0bHMgdHJpZ2dlcnMgd2FybmluZ3MgcmVsYXRlZCB0bwpzay0+c2tf Zm9yd2FyZF9hbGxvYyBub3QgYmVpbmcgemVybyBhdCBkZXN0cnVjdGlvbiB0aW1lOgoKV0FSTklO RzogQ1BVOiA1IFBJRDogNjgzMSBhdCBuZXQvY29yZS9zdHJlYW0uYzoyMDYgc2tfc3RyZWFtX2tp bGxfcXVldWVzKzB4MTAzLzB4MTEwCldBUk5JTkc6IENQVTogNSBQSUQ6IDY4MzEgYXQgbmV0L2lw djQvYWZfaW5ldC5jOjE2MCBpbmV0X3NvY2tfZGVzdHJ1Y3QrMHgxNWIvMHgxNzAKCldoZW4gc2Vu ZGVyIGZpbGxzIHVwIHRoZSB3cml0ZSBidWZmZXIgYW5kIGRpZXMgZnJvbQpTSUdQSVBFLiAgVGhp cyBpcyBkdWUgdG8gdGhlIGRldmljZSBpbXBsZW1lbnRhdGlvbgpub3QgY2xlYW5pbmcgdXAgdGhl IHBhcnRpYWxseV9zZW50X3JlY29yZC4KClRoaXMgaXMgYmVjYXVzZSBjb21taXQgYTQyMDU1ZThk MmMzICgibmV0L3RsczogQWRkIHN1cHBvcnQgZm9yIGFzeW5jIGVuY3J5cHRpb24gb2YgcmVjb3Jk cyBmb3IgcGVyZm9ybWFuY2UiKQptb3ZlZCB0aGUgcGFydGlhbCByZWNvcmQgY2xlYW51cCB0byB0 aGUgU1ctb25seSBwYXRoLgoKRml4ZXM6IGE0MjA1NWU4ZDJjMyAoIm5ldC90bHM6IEFkZCBzdXBw b3J0IGZvciBhc3luYyBlbmNyeXB0aW9uIG9mIHJlY29yZHMgZm9yIHBlcmZvcm1hbmNlIikKUmVw b3J0ZWQtYnk6IERhdmlkIEJlY2tldHQgPGRhdmlkLmJlY2tldHRAbmV0cm9ub21lLmNvbT4KU2ln bmVkLW9mZi1ieTogSmFrdWIgS2ljaW5za2kgPGpha3ViLmtpY2luc2tpQG5ldHJvbm9tZS5jb20+ ClJldmlld2VkLWJ5OiBEaXJrIHZhbiBkZXIgTWVyd2UgPGRpcmsudmFuZGVybWVyd2VAbmV0cm9u b21lLmNvbT4KUmV2aWV3ZWQtYnk6IFNpbW9uIEhvcm1hbiA8c2ltb24uaG9ybWFuQG5ldHJvbm9t ZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5l dD4KLS0tCiBpbmNsdWRlL25ldC90bHMuaCAgICB8ICAyICsrCiBuZXQvdGxzL3Rsc19kZXZpY2Uu YyB8ICA3ICsrKysrKysKIG5ldC90bHMvdGxzX21haW4uYyAgIHwgMjIgKysrKysrKysrKysrKysr KysrKysrKwogbmV0L3Rscy90bHNfc3cuYyAgICAgfCAxNSArLS0tLS0tLS0tLS0tLS0KIDQgZmls ZXMgY2hhbmdlZCwgMzIgaW5zZXJ0aW9ucygrKSwgMTQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvaW5jbHVkZS9uZXQvdGxzLmggYi9pbmNsdWRlL25ldC90bHMuaAppbmRleCAxNDg2YjYwYzRk ZTguLjAyNDE4ZTcyYjhiMiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvdGxzLmgKKysrIGIvaW5j bHVkZS9uZXQvdGxzLmgKQEAgLTI4OSw2ICsyODksNyBAQCBpbnQgdGxzX2RldmljZV9zZW5kbXNn KHN0cnVjdCBzb2NrICpzaywgc3RydWN0IG1zZ2hkciAqbXNnLCBzaXplX3Qgc2l6ZSk7CiBpbnQg dGxzX2RldmljZV9zZW5kcGFnZShzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBwYWdlICpwYWdlLAog CQkJaW50IG9mZnNldCwgc2l6ZV90IHNpemUsIGludCBmbGFncyk7CiB2b2lkIHRsc19kZXZpY2Vf c2tfZGVzdHJ1Y3Qoc3RydWN0IHNvY2sgKnNrKTsKK3ZvaWQgdGxzX2RldmljZV9mcmVlX3Jlc291 cmNlc190eChzdHJ1Y3Qgc29jayAqc2spOwogdm9pZCB0bHNfZGV2aWNlX2luaXQodm9pZCk7CiB2 b2lkIHRsc19kZXZpY2VfY2xlYW51cCh2b2lkKTsKIGludCB0bHNfdHhfcmVjb3JkcyhzdHJ1Y3Qg c29jayAqc2ssIGludCBmbGFncyk7CkBAIC0zMTIsNiArMzEzLDcgQEAgaW50IHRsc19wdXNoX3Nn KHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHRsc19jb250ZXh0ICpjdHgsCiAJCWludCBmbGFncyk7 CiBpbnQgdGxzX3B1c2hfcGFydGlhbF9yZWNvcmQoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgdGxz X2NvbnRleHQgKmN0eCwKIAkJCSAgICBpbnQgZmxhZ3MpOworYm9vbCB0bHNfZnJlZV9wYXJ0aWFs X3JlY29yZChzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCB0bHNfY29udGV4dCAqY3R4KTsKIAogaW50 IHRsc19wdXNoX3BlbmRpbmdfY2xvc2VkX3JlY29yZChzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCB0 bHNfY29udGV4dCAqY3R4LAogCQkJCSAgIGludCBmbGFncywgbG9uZyAqdGltZW8pOwpkaWZmIC0t Z2l0IGEvbmV0L3Rscy90bHNfZGV2aWNlLmMgYi9uZXQvdGxzL3Rsc19kZXZpY2UuYwppbmRleCA0 YTdmNGRhNjliMzQuLjRiNWZmM2Q0NDkxMiAxMDA2NDQKLS0tIGEvbmV0L3Rscy90bHNfZGV2aWNl LmMKKysrIGIvbmV0L3Rscy90bHNfZGV2aWNlLmMKQEAgLTIxOSw2ICsyMTksMTMgQEAgdm9pZCB0 bHNfZGV2aWNlX3NrX2Rlc3RydWN0KHN0cnVjdCBzb2NrICpzaykKIH0KIEVYUE9SVF9TWU1CT0wo dGxzX2RldmljZV9za19kZXN0cnVjdCk7CiAKK3ZvaWQgdGxzX2RldmljZV9mcmVlX3Jlc291cmNl c190eChzdHJ1Y3Qgc29jayAqc2spCit7CisJc3RydWN0IHRsc19jb250ZXh0ICp0bHNfY3R4ID0g dGxzX2dldF9jdHgoc2spOworCisJdGxzX2ZyZWVfcGFydGlhbF9yZWNvcmQoc2ssIHRsc19jdHgp OworfQorCiBzdGF0aWMgdm9pZCB0bHNfYXBwZW5kX2ZyYWcoc3RydWN0IHRsc19yZWNvcmRfaW5m byAqcmVjb3JkLAogCQkJICAgIHN0cnVjdCBwYWdlX2ZyYWcgKnBmcmFnLAogCQkJICAgIGludCBz aXplKQpkaWZmIC0tZ2l0IGEvbmV0L3Rscy90bHNfbWFpbi5jIGIvbmV0L3Rscy90bHNfbWFpbi5j CmluZGV4IDc4Y2I0YTU4NDA4MC4uOGYzZGY3ZGE5OWQ5IDEwMDY0NAotLS0gYS9uZXQvdGxzL3Rs c19tYWluLmMKKysrIGIvbmV0L3Rscy90bHNfbWFpbi5jCkBAIC0yMjAsNiArMjIwLDI2IEBAIGlu dCB0bHNfcHVzaF9wZW5kaW5nX2Nsb3NlZF9yZWNvcmQoc3RydWN0IHNvY2sgKnNrLAogCQlyZXR1 cm4gdGxzX2N0eC0+cHVzaF9wZW5kaW5nX3JlY29yZChzaywgZmxhZ3MpOwogfQogCitib29sIHRs c19mcmVlX3BhcnRpYWxfcmVjb3JkKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHRsc19jb250ZXh0 ICpjdHgpCit7CisJc3RydWN0IHNjYXR0ZXJsaXN0ICpzZzsKKworCXNnID0gY3R4LT5wYXJ0aWFs bHlfc2VudF9yZWNvcmQ7CisJaWYgKCFzZykKKwkJcmV0dXJuIGZhbHNlOworCisJd2hpbGUgKDEp IHsKKwkJcHV0X3BhZ2Uoc2dfcGFnZShzZykpOworCQlza19tZW1fdW5jaGFyZ2Uoc2ssIHNnLT5s ZW5ndGgpOworCisJCWlmIChzZ19pc19sYXN0KHNnKSkKKwkJCWJyZWFrOworCQlzZysrOworCX0K KwljdHgtPnBhcnRpYWxseV9zZW50X3JlY29yZCA9IE5VTEw7CisJcmV0dXJuIHRydWU7Cit9CisK IHN0YXRpYyB2b2lkIHRsc193cml0ZV9zcGFjZShzdHJ1Y3Qgc29jayAqc2spCiB7CiAJc3RydWN0 IHRsc19jb250ZXh0ICpjdHggPSB0bHNfZ2V0X2N0eChzayk7CkBAIC0yNzgsNiArMjk4LDggQEAg c3RhdGljIHZvaWQgdGxzX3NrX3Byb3RvX2Nsb3NlKHN0cnVjdCBzb2NrICpzaywgbG9uZyB0aW1l b3V0KQogCQlrZnJlZShjdHgtPnR4LnJlY19zZXEpOwogCQlrZnJlZShjdHgtPnR4Lml2KTsKIAkJ dGxzX3N3X2ZyZWVfcmVzb3VyY2VzX3R4KHNrKTsKKwl9IGVsc2UgaWYgKGN0eC0+dHhfY29uZiA9 PSBUTFNfSFcpIHsKKwkJdGxzX2RldmljZV9mcmVlX3Jlc291cmNlc190eChzayk7CiAJfQogCiAJ aWYgKGN0eC0+cnhfY29uZiA9PSBUTFNfU1cpIHsKZGlmZiAtLWdpdCBhL25ldC90bHMvdGxzX3N3 LmMgYi9uZXQvdGxzL3Rsc19zdy5jCmluZGV4IGJmNWI1NGI1MTNiYy4uZDJkNGY3YzBkNGJlIDEw MDY0NAotLS0gYS9uZXQvdGxzL3Rsc19zdy5jCisrKyBiL25ldC90bHMvdGxzX3N3LmMKQEAgLTE4 MDQsMjAgKzE4MDQsNyBAQCB2b2lkIHRsc19zd19mcmVlX3Jlc291cmNlc190eChzdHJ1Y3Qgc29j ayAqc2spCiAJLyogRnJlZSB1cCB1bi1zZW50IHJlY29yZHMgaW4gdHhfbGlzdC4gRmlyc3QsIGZy ZWUKIAkgKiB0aGUgcGFydGlhbGx5IHNlbnQgcmVjb3JkIGlmIGFueSBhdCBoZWFkIG9mIHR4X2xp c3QuCiAJICovCi0JaWYgKHRsc19jdHgtPnBhcnRpYWxseV9zZW50X3JlY29yZCkgewotCQlzdHJ1 Y3Qgc2NhdHRlcmxpc3QgKnNnID0gdGxzX2N0eC0+cGFydGlhbGx5X3NlbnRfcmVjb3JkOwotCi0J CXdoaWxlICgxKSB7Ci0JCQlwdXRfcGFnZShzZ19wYWdlKHNnKSk7Ci0JCQlza19tZW1fdW5jaGFy Z2Uoc2ssIHNnLT5sZW5ndGgpOwotCi0JCQlpZiAoc2dfaXNfbGFzdChzZykpCi0JCQkJYnJlYWs7 Ci0JCQlzZysrOwotCQl9Ci0KLQkJdGxzX2N0eC0+cGFydGlhbGx5X3NlbnRfcmVjb3JkID0gTlVM TDsKLQorCWlmICh0bHNfZnJlZV9wYXJ0aWFsX3JlY29yZChzaywgdGxzX2N0eCkpIHsKIAkJcmVj ID0gbGlzdF9maXJzdF9lbnRyeSgmY3R4LT50eF9saXN0LAogCQkJCSAgICAgICBzdHJ1Y3QgdGxz X3JlYywgbGlzdCk7CiAJCWxpc3RfZGVsKCZyZWMtPmxpc3QpOwotLSAKMi4yMC4xCgoKRnJvbSA4 NDc4NjEyNjQ0NTYzZjhkMzlmN2VmNjc3MzBjZTlkMjI1ZTQwNDJlIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBKYWt1YiBLaWNpbnNraSA8amFrdWIua2ljaW5za2lAbmV0cm9ub21lLmNv bT4KRGF0ZTogV2VkLCAxMCBBcHIgMjAxOSAxMTowNDozMiAtMDcwMApTdWJqZWN0OiBbUEFUQ0gg MjQvNDNdIG5ldDogc3RycGFyc2VyOiBwYXJ0aWFsbHkgcmV2ZXJ0ICJzdHJwYXJzZXI6IENhbGwK IHNrYl91bmNsb25lIGNvbmRpdGlvbmFsbHkiCgpbIFVwc3RyZWFtIGNvbW1pdCA0YTljMmUzNzQ2 ZTYxNTFmZDVkMDc3MjU5ZDc5Y2U5Y2E4NmQ0N2Q3IF0KClRoaXMgcmV2ZXJ0cyB0aGUgZmlyc3Qg cGFydCBvZiBjb21taXQgNGU0ODVkMDZiYjhjICgic3RycGFyc2VyOiBDYWxsCnNrYl91bmNsb25l IGNvbmRpdGlvbmFsbHkiKS4gIFRvIGJ1aWxkIGEgbWVzc2FnZSB3aXRoIG11bHRpcGxlCmZyYWdt ZW50cyB3ZSBuZWVkIG91ciBvd24gcm9vdCBvZiBmcmFnX2xpc3QuICBXZSBjYW4ndCBzaW1wbHkK dXNlIHRoZSBmcmFnX2xpc3Qgb2Ygb3JpZ19za2IsIGJlY2F1c2UgaXQgd2lsbCBsZWFkIHRvIGxp bmtpbmcKYWxsIG9yaWdfc2ticyB0b2dldGhlciBjcmVhdGluZyB2ZXJ5IGxvbmcgZnJhZyBjaGFp bnMsIGFuZCBjYXVzaW5nCnN0YWNrIG92ZXJmbG93IG9uIGtmcmVlX3NrYigpICh3aGljaCBpcyBj YWxsZWQgcmVjdXJzaXZlbHkgb24KdGhlIGZyYWdfbGlzdHMpLgoKQlVHOiBzdGFjayBndWFyZCBw YWdlIHdhcyBoaXQgYXQgMDAwMDAwMDBkNDBmYWQ0MSAoc3RhY2sgaXMgMDAwMDAwMDAyOWRkZTlm NC4uMDAwMDAwMDA4Y2NlMDNkNSkKa2VybmVsIHN0YWNrIG92ZXJmbG93IChkb3VibGUtZmF1bHQp OiAwMDAwIFsjMV0gUFJFRU1QVCBTTVAKUklQOiAwMDEwOmZyZWVfb25lX3BhZ2UrMHgyYi8weDQ5 MAoKQ2FsbCBUcmFjZToKICBfX2ZyZWVfcGFnZXNfb2srMHgxNDMvMHgyYzAKICBza2JfcmVsZWFz ZV9kYXRhKzB4OGUvMHgxNDAKICA/IHNrYl9yZWxlYXNlX2RhdGErMHhhZC8weDE0MAogIGtmcmVl X3NrYisweDMyLzB4YjAKCiAgWy4uLl0KCiAgc2tiX3JlbGVhc2VfZGF0YSsweGFkLzB4MTQwCiAg PyBza2JfcmVsZWFzZV9kYXRhKzB4YWQvMHgxNDAKICBrZnJlZV9za2IrMHgzMi8weGIwCiAgc2ti X3JlbGVhc2VfZGF0YSsweGFkLzB4MTQwCiAgPyBza2JfcmVsZWFzZV9kYXRhKzB4YWQvMHgxNDAK ICBrZnJlZV9za2IrMHgzMi8weGIwCiAgc2tiX3JlbGVhc2VfZGF0YSsweGFkLzB4MTQwCiAgPyBz a2JfcmVsZWFzZV9kYXRhKzB4YWQvMHgxNDAKICBrZnJlZV9za2IrMHgzMi8weGIwCiAgc2tiX3Jl bGVhc2VfZGF0YSsweGFkLzB4MTQwCiAgPyBza2JfcmVsZWFzZV9kYXRhKzB4YWQvMHgxNDAKICBr ZnJlZV9za2IrMHgzMi8weGIwCiAgc2tiX3JlbGVhc2VfZGF0YSsweGFkLzB4MTQwCiAgX19rZnJl ZV9za2IrMHhlLzB4MjAKICB0Y3BfZGlzY29ubmVjdCsweGQ2LzB4NGQwCiAgdGNwX2Nsb3NlKzB4 ZjQvMHg0MzAKICA/IHRjcF9jaGVja19vb20rMHhmMC8weGYwCiAgdGxzX3NrX3Byb3RvX2Nsb3Nl KzB4ZTQvMHgxZTAgW3Rsc10KICBpbmV0X3JlbGVhc2UrMHgzNi8weDYwCiAgX19zb2NrX3JlbGVh c2UrMHgzNy8weGEwCiAgc29ja19jbG9zZSsweDExLzB4MjAKICBfX2ZwdXQrMHhhMi8weDFkMAog IHRhc2tfd29ya19ydW4rMHg4OS8weGIwCiAgZXhpdF90b191c2VybW9kZV9sb29wKzB4OWEvMHhh MAogIGRvX3N5c2NhbGxfNjQrMHhjMC8weGYwCiAgZW50cnlfU1lTQ0FMTF82NF9hZnRlcl9od2Zy YW1lKzB4NDQvMHhhOQoKTGV0J3MgbGVhdmUgdGhlIHNlY29uZCB1bmNsb25lIGNvbmRpdGlvbmFs LCBhcyBJJ20gbm90IGVudGlyZWx5CnN1cmUgd2hhdCBpcyBpdHMgcHVycG9zZSA6KQoKRml4ZXM6 IDRlNDg1ZDA2YmI4YyAoInN0cnBhcnNlcjogQ2FsbCBza2JfdW5jbG9uZSBjb25kaXRpb25hbGx5 IikKU2lnbmVkLW9mZi1ieTogSmFrdWIgS2ljaW5za2kgPGpha3ViLmtpY2luc2tpQG5ldHJvbm9t ZS5jb20+ClJldmlld2VkLWJ5OiBEaXJrIHZhbiBkZXIgTWVyd2UgPGRpcmsudmFuZGVybWVyd2VA bmV0cm9ub21lLmNvbT4KUmV2aWV3ZWQtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xl LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0 PgotLS0KIG5ldC9zdHJwYXJzZXIvc3RycGFyc2VyLmMgfCAxMiArKysrKy0tLS0tLS0KIDEgZmls ZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv bmV0L3N0cnBhcnNlci9zdHJwYXJzZXIuYyBiL25ldC9zdHJwYXJzZXIvc3RycGFyc2VyLmMKaW5k ZXggZGExYTY3Njg2MGNhLi4wZjRlNDI3OTI4NzggMTAwNjQ0Ci0tLSBhL25ldC9zdHJwYXJzZXIv c3RycGFyc2VyLmMKKysrIGIvbmV0L3N0cnBhcnNlci9zdHJwYXJzZXIuYwpAQCAtMTQwLDEzICsx NDAsMTEgQEAgc3RhdGljIGludCBfX3N0cnBfcmVjdihyZWFkX2Rlc2NyaXB0b3JfdCAqZGVzYywg c3RydWN0IHNrX2J1ZmYgKm9yaWdfc2tiLAogCQkJLyogV2UgYXJlIGdvaW5nIHRvIGFwcGVuZCB0 byB0aGUgZnJhZ3NfbGlzdCBvZiBoZWFkLgogCQkJICogTmVlZCB0byB1bnNoYXJlIHRoZSBmcmFn X2xpc3QuCiAJCQkgKi8KLQkJCWlmIChza2JfaGFzX2ZyYWdfbGlzdChoZWFkKSkgewotCQkJCWVy ciA9IHNrYl91bmNsb25lKGhlYWQsIEdGUF9BVE9NSUMpOwotCQkJCWlmIChlcnIpIHsKLQkJCQkJ U1RSUF9TVEFUU19JTkNSKHN0cnAtPnN0YXRzLm1lbV9mYWlsKTsKLQkJCQkJZGVzYy0+ZXJyb3Ig PSBlcnI7Ci0JCQkJCXJldHVybiAwOwotCQkJCX0KKwkJCWVyciA9IHNrYl91bmNsb25lKGhlYWQs IEdGUF9BVE9NSUMpOworCQkJaWYgKGVycikgeworCQkJCVNUUlBfU1RBVFNfSU5DUihzdHJwLT5z dGF0cy5tZW1fZmFpbCk7CisJCQkJZGVzYy0+ZXJyb3IgPSBlcnI7CisJCQkJcmV0dXJuIDA7CiAJ CQl9CiAKIAkJCWlmICh1bmxpa2VseShza2Jfc2hpbmZvKGhlYWQpLT5mcmFnX2xpc3QpKSB7Ci0t IAoyLjIwLjEKCgpGcm9tIGNkZTExM2E0NTU5MjRjNDJiM2M4ZDE2NmIyZWEyZDlhNDg0OWMwNjYg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEpha3ViIEtpY2luc2tpIDxqYWt1Yi5raWNp bnNraUBuZXRyb25vbWUuY29tPgpEYXRlOiBXZWQsIDEwIEFwciAyMDE5IDE2OjIzOjM5IC0wNzAw ClN1YmplY3Q6IFtQQVRDSCAyNS80M10gbmV0L3RsczogZml4IGJ1aWxkIHdpdGhvdXQgQ09ORklH X1RMU19ERVZJQ0UKClsgVXBzdHJlYW0gY29tbWl0IDkwM2YxYTE4Nzc3NmJiOGQ3OWIxMzYxOGVj MDViMjVmODYzMTg4ODUgXQoKYnVpbGRib3Qgbm90aWNlZCB0aGF0IFRMU19IVyBpcyBub3QgZGVm aW5lZCBpZiBDT05GSUdfVExTX0RFVklDRT1uLgpXcmFwIHRoZSBjbGVhbnVwIGJyYW5jaCBpbnRv IGFuIGlmZGVmLCB0bHNfZGV2aWNlX2ZyZWVfcmVzb3VyY2VzX3R4KCkKd291bGRuJ3QgYmUgY29t cGlsZWQgZWl0aGVyIGluIHRoaXMgY2FzZS4KCkZpeGVzOiAzNWI3MWEzNGFkYTYgKCJuZXQvdGxz OiBkb24ndCBsZWFrIHBhcnRpYWxseSBzZW50IHJlY29yZCBpbiBkZXZpY2UgbW9kZSIpClNpZ25l ZC1vZmYtYnk6IEpha3ViIEtpY2luc2tpIDxqYWt1Yi5raWNpbnNraUBuZXRyb25vbWUuY29tPgpT aWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQog bmV0L3Rscy90bHNfbWFpbi5jIHwgMiArKwogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygr KQoKZGlmZiAtLWdpdCBhL25ldC90bHMvdGxzX21haW4uYyBiL25ldC90bHMvdGxzX21haW4uYwpp bmRleCA4ZjNkZjdkYTk5ZDkuLjk2ZGJhYzkxYWM2ZSAxMDA2NDQKLS0tIGEvbmV0L3Rscy90bHNf bWFpbi5jCisrKyBiL25ldC90bHMvdGxzX21haW4uYwpAQCAtMjk4LDggKzI5OCwxMCBAQCBzdGF0 aWMgdm9pZCB0bHNfc2tfcHJvdG9fY2xvc2Uoc3RydWN0IHNvY2sgKnNrLCBsb25nIHRpbWVvdXQp CiAJCWtmcmVlKGN0eC0+dHgucmVjX3NlcSk7CiAJCWtmcmVlKGN0eC0+dHguaXYpOwogCQl0bHNf c3dfZnJlZV9yZXNvdXJjZXNfdHgoc2spOworI2lmZGVmIENPTkZJR19UTFNfREVWSUNFCiAJfSBl bHNlIGlmIChjdHgtPnR4X2NvbmYgPT0gVExTX0hXKSB7CiAJCXRsc19kZXZpY2VfZnJlZV9yZXNv dXJjZXNfdHgoc2spOworI2VuZGlmCiAJfQogCiAJaWYgKGN0eC0+cnhfY29uZiA9PSBUTFNfU1cp IHsKLS0gCjIuMjAuMQoKCkZyb20gOTZkNjY2MGMwOWYzZDAyMGU3YmUzODYxMDczN2U0NjJkMDJk OGIyZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTmlrb2xheSBBbGVrc2FuZHJvdiA8 bmlrb2xheUBjdW11bHVzbmV0d29ya3MuY29tPgpEYXRlOiBUdWUsIDE2IEFwciAyMDE5IDE2OjE1 OjU2ICswMzAwClN1YmplY3Q6IFtQQVRDSCAyNi80M10gbmV0OiBicmlkZ2U6IGZpeCBuZXRsaW5r IGV4cG9ydCBvZiB2bGFuX3N0YXRzX3Blcl9wb3J0CiBvcHRpb24KClsgVXBzdHJlYW0gY29tbWl0 IDYwMGJlYTdkYmExYTcyODc0YWUwY2Q5YmM2NmJmMmFiZmU0M2I0OWQgXQoKU2luY2UgdGhlIGlu dHJvZHVjdGlvbiBvZiB0aGUgdmxhbl9zdGF0c19wZXJfcG9ydCBvcHRpb24gdGhlIG5ldGxpbmsK ZXhwb3J0IG9mIGl0IGhhcyBiZWVuIGJyb2tlbiBzaW5jZSBJIG1hZGUgYSB0eXBvIGFuZCB1c2Vk IHRoZSBpZmxhCmF0dHJpYnV0ZSBpbnN0ZWFkIG9mIHRoZSBicmlkZ2Ugb3B0aW9uIHRvIHJldHJp ZXZlIGl0cyBzdGF0ZS4KU3lzZnMgZXhwb3J0IGlzIGZpbmUsIG9ubHkgbmV0bGluayBleHBvcnQg aGFzIGJlZW4gYWZmZWN0ZWQuCgpGaXhlczogOTE2M2EwZmMxZjBjMCAoIm5ldDogYnJpZGdlOiBh ZGQgc3VwcG9ydCBmb3IgcGVyLXBvcnQgdmxhbiBzdGF0cyIpClNpZ25lZC1vZmYtYnk6IE5pa29s YXkgQWxla3NhbmRyb3YgPG5pa29sYXlAY3VtdWx1c25ldHdvcmtzLmNvbT4KU2lnbmVkLW9mZi1i eTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9icmlkZ2Uv YnJfbmV0bGluay5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRl bGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2JyaWRnZS9icl9uZXRsaW5rLmMgYi9uZXQvYnJp ZGdlL2JyX25ldGxpbmsuYwppbmRleCA5YzA3NTkxYjAyMzIuLjcxMDRjZjEzZGE4NCAxMDA2NDQK LS0tIGEvbmV0L2JyaWRnZS9icl9uZXRsaW5rLmMKKysrIGIvbmV0L2JyaWRnZS9icl9uZXRsaW5r LmMKQEAgLTE0NDEsNyArMTQ0MSw3IEBAIHN0YXRpYyBpbnQgYnJfZmlsbF9pbmZvKHN0cnVjdCBz a19idWZmICpza2IsIGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlICpicmRldikKIAkgICAgbmxhX3B1 dF91OChza2IsIElGTEFfQlJfVkxBTl9TVEFUU19FTkFCTEVELAogCQkgICAgICAgYnJfb3B0X2dl dChiciwgQlJPUFRfVkxBTl9TVEFUU19FTkFCTEVEKSkgfHwKIAkgICAgbmxhX3B1dF91OChza2Is IElGTEFfQlJfVkxBTl9TVEFUU19QRVJfUE9SVCwKLQkJICAgICAgIGJyX29wdF9nZXQoYnIsIElG TEFfQlJfVkxBTl9TVEFUU19QRVJfUE9SVCkpKQorCQkgICAgICAgYnJfb3B0X2dldChiciwgQlJP UFRfVkxBTl9TVEFUU19QRVJfUE9SVCkpKQogCQlyZXR1cm4gLUVNU0dTSVpFOwogI2VuZGlmCiAj aWZkZWYgQ09ORklHX0JSSURHRV9JR01QX1NOT09QSU5HCi0tIAoyLjIwLjEKCgpGcm9tIGM0ZjY5 YzQ3NzBlOWExYTc1MjgzY2UwZjNlMzY3M2U4NmNiMzdlZGIgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IFNhZWVkIE1haGFtZWVkIDxzYWVlZG1AbWVsbGFub3guY29tPgpEYXRlOiBUaHUs IDIxIE1hciAyMDE5IDE5OjA3OjIwIC0wNzAwClN1YmplY3Q6IFtQQVRDSCAyNy80M10gbmV0L21s eDVlOiBYRFAsIEF2b2lkIGNoZWNrc3VtIGNvbXBsZXRlIHdoZW4gWERQIHByb2cKIGlzIGxvYWRl ZAoKWyBVcHN0cmVhbSBjb21taXQgNWQwYmIzYmFjNGI5ZjZjMjIyODBiMDQ1NDU2MjZmZGZkOTll ZGM2YiBdCgpYRFAgcHJvZ3JhbXMgbWlnaHQgY2hhbmdlIHBhY2tldHMgZGF0YSBjb250ZW50cyB3 aGljaCB3aWxsIG1ha2UgdGhlCnJlcG9ydGVkIHNrYiBjaGVja3N1bSAoY2hlY2tzdW0gY29tcGxl dGUpIGludmFsaWQuCgpXaGVuIFhEUCBwcm9ncmFtcyBhcmUgbG9hZGVkL3VubG9hZGVkIHNldC9j bGVhciByeCBSUXMKTUxYNUVfUlFfU1RBVEVfTk9fQ1NVTV9DT01QTEVURSBmbGFnLgoKRml4ZXM6 IDg2OTk0MTU2YzczNiAoIm5ldC9tbHg1ZTogWERQIGZhc3QgUlggZHJvcCBicGYgcHJvZ3JhbXMg c3VwcG9ydCIpClJldmlld2VkLWJ5OiBUYXJpcSBUb3VrYW4gPHRhcmlxdEBtZWxsYW5veC5jb20+ ClNpZ25lZC1vZmYtYnk6IFNhZWVkIE1haGFtZWVkIDxzYWVlZG1AbWVsbGFub3guY29tPgotLS0K IGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9ldGh0b29sLmMgfCAz ICsrLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYyAg ICB8IDYgKysrKystCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5f cnguYyAgICAgIHwgMyArKy0KIDMgZmlsZXMgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspLCAzIGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21s eDUvY29yZS9lbl9ldGh0b29sLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1 L2NvcmUvZW5fZXRodG9vbC5jCmluZGV4IGU2MDk5ZjUxZDI1Zi4uM2I5ZTVmMGQwMjEyIDEwMDY0 NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fZXRodG9v bC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9ldGh0 b29sLmMKQEAgLTE2NjUsNyArMTY2NSw4IEBAIHN0YXRpYyBpbnQgc2V0X3BmbGFnX3J4X25vX2Nz dW1fY29tcGxldGUoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldiwgYm9vbCBlbmFibGUpCiAJc3Ry dWN0IG1seDVlX2NoYW5uZWwgKmM7CiAJaW50IGk7CiAKLQlpZiAoIXRlc3RfYml0KE1MWDVFX1NU QVRFX09QRU5FRCwgJnByaXYtPnN0YXRlKSkKKwlpZiAoIXRlc3RfYml0KE1MWDVFX1NUQVRFX09Q RU5FRCwgJnByaXYtPnN0YXRlKSB8fAorCSAgICBwcml2LT5jaGFubmVscy5wYXJhbXMueGRwX3By b2cpCiAJCXJldHVybiAwOwogCiAJZm9yIChpID0gMDsgaSA8IGNoYW5uZWxzLT5udW07IGkrKykg ewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vu X21haW4uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWlu LmMKaW5kZXggOTNlNTBjY2Q0NGMzLi4zZWE1NDFmMzBlZTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv bmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMKKysrIGIvZHJpdmVycy9u ZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYwpAQCAtOTUwLDcgKzk1MCwx MSBAQCBzdGF0aWMgaW50IG1seDVlX29wZW5fcnEoc3RydWN0IG1seDVlX2NoYW5uZWwgKmMsCiAJ aWYgKHBhcmFtcy0+cnhfZGltX2VuYWJsZWQpCiAJCV9fc2V0X2JpdChNTFg1RV9SUV9TVEFURV9B TSwgJmMtPnJxLnN0YXRlKTsKIAotCWlmIChNTFg1RV9HRVRfUEZMQUcocGFyYW1zLCBNTFg1RV9Q RkxBR19SWF9OT19DU1VNX0NPTVBMRVRFKSkKKwkvKiBXZSBkaXNhYmxlIGNzdW1fY29tcGxldGUg d2hlbiBYRFAgaXMgZW5hYmxlZCBzaW5jZQorCSAqIFhEUCBwcm9ncmFtcyBtaWdodCBtYW5pcHVs YXRlIHBhY2tldHMgd2hpY2ggd2lsbCByZW5kZXIKKwkgKiBza2ItPmNoZWNrc3VtIGluY29ycmVj dC4KKwkgKi8KKwlpZiAoTUxYNUVfR0VUX1BGTEFHKHBhcmFtcywgTUxYNUVfUEZMQUdfUlhfTk9f Q1NVTV9DT01QTEVURSkgfHwgYy0+eGRwKQogCQlfX3NldF9iaXQoTUxYNUVfUlFfU1RBVEVfTk9f Q1NVTV9DT01QTEVURSwgJmMtPnJxLnN0YXRlKTsKIAogCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3J4LmMgYi9kcml2ZXJz L25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fcnguYwppbmRleCBmODZlNDgwNGU4 M2UuLjRjYmYxNWRhOGViMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFu b3gvbWx4NS9jb3JlL2VuX3J4LmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gv bWx4NS9jb3JlL2VuX3J4LmMKQEAgLTc1Myw3ICs3NTMsOCBAQCBzdGF0aWMgaW5saW5lIHZvaWQg bWx4NWVfaGFuZGxlX2NzdW0oc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldiwKIAkJcmV0dXJuOwog CX0KIAotCWlmICh1bmxpa2VseSh0ZXN0X2JpdChNTFg1RV9SUV9TVEFURV9OT19DU1VNX0NPTVBM RVRFLCAmcnEtPnN0YXRlKSkpCisJLyogVHJ1ZSB3aGVuIGV4cGxpY2l0bHkgc2V0IHZpYSBwcml2 IGZsYWcsIG9yIFhEUCBwcm9nIGlzIGxvYWRlZCAqLworCWlmICh0ZXN0X2JpdChNTFg1RV9SUV9T VEFURV9OT19DU1VNX0NPTVBMRVRFLCAmcnEtPnN0YXRlKSkKIAkJZ290byBjc3VtX3VubmVjZXNz YXJ5OwogCiAJLyogQ1FFIGNzdW0gZG9lc24ndCBjb3ZlciBwYWRkaW5nIG9jdGV0cyBpbiBzaG9y dCBldGhlcm5ldAotLSAKMi4yMC4xCgoKRnJvbSBkNGRmNjRkYWQ5ZDVlNjMwODBlMTE3ZmVlZTNi ODMzNzEzY2FiYjIxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEbXl0cm8gTGlua2lu IDxkbWl0cm9saW5AbWVsbGFub3guY29tPgpEYXRlOiBGcmksIDI5IE1hciAyMDE5IDEyOjUwOjM3 ICswMDAwClN1YmplY3Q6IFtQQVRDSCAyOC80M10gbmV0L21seDVlOiBQcm90ZWN0IGFnYWluc3Qg bm9uLXVwbGluayByZXByZXNlbnRvciBmb3IKIGVuY2FwCgpbIFVwc3RyZWFtIGNvbW1pdCA1ZTAw NjBiMTQ5MWIyOTliMTcwNjQxNGU2MWVkZTBiMDIyNjU2ODBlIF0KClRDIGVuY2FwIG9mZmxvYWQg aXMgc3VwcG9ydGVkIG9ubHkgZm9yIHRoZSBwaHlzaWNhbCB1cGxpbmsKcmVwcmVzZW50b3IuIEZh aWwgZm9yIG5vbiB1cGxpbmsgcmVwcmVzZW50b3IuCgpGaXhlczogM2U2MjFiMTliMGJiICgibmV0 L21seDVlOiBTdXBwb3J0IFRDIGVuY2Fwc3VsYXRpb24gb2ZmbG9hZHMgd2l0aCB1cHBlciBkZXZp Y2VzIikKU2lnbmVkLW9mZi1ieTogRG15dHJvIExpbmtpbiA8ZG1pdHJvbGluQG1lbGxhbm94LmNv bT4KUmV2aWV3ZWQtYnk6IEVsaSBCcml0c3RlaW4gPGVsaWJyQG1lbGxhbm94LmNvbT4KUmV2aWV3 ZWQtYnk6IFZsYWQgQnVzbG92IDx2bGFkYnVAbWVsbGFub3guY29tPgpSZXZpZXdlZC1ieTogUm9p IERheWFuIDxyb2lkQG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogU2FlZWQgTWFoYW1lZWQg PHNhZWVkbUBtZWxsYW5veC5jb20+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gv bWx4NS9jb3JlL2VuL3RjX3R1bi5jIHwgNCArKysrCiAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRp b25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9j b3JlL2VuL3RjX3R1bi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3Jl L2VuL3RjX3R1bi5jCmluZGV4IGYzYzdhYjZmYWVhNS4uYjg1MjFlMmY2NGFjIDEwMDY0NAotLS0g YS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGNfdHVuLmMKKysr IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjX3R1bi5jCkBA IC0zOSw2ICszOSwxMCBAQCBzdGF0aWMgaW50IGdldF9yb3V0ZV9hbmRfb3V0X2RldnMoc3RydWN0 IG1seDVlX3ByaXYgKnByaXYsCiAJCQlyZXR1cm4gLUVPUE5PVFNVUFA7CiAJfQogCisJaWYgKCEo bWx4NWVfZXN3aXRjaF9yZXAoKm91dF9kZXYpICYmCisJICAgICAgbWx4NWVfaXNfdXBsaW5rX3Jl cChuZXRkZXZfcHJpdigqb3V0X2RldikpKSkKKwkJcmV0dXJuIC1FT1BOT1RTVVBQOworCiAJcmV0 dXJuIDA7CiB9CiAKLS0gCjIuMjAuMQoKCkZyb20gMGRjNGQ3Zjg5ZTdmZGIyMmQ3NzE1YjNhMGE4 MDNjNWVkMjAzNjk0NiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogS29uc3RhbnRpbiBL aGxlYm5pa292IDxraGxlYm5pa292QHlhbmRleC10ZWFtLnJ1PgpEYXRlOiBGcmksIDMxIEF1ZyAy MDE4IDE0OjI5OjE2ICswMzAwClN1YmplY3Q6IFtQQVRDSCAyOS80M10gbmV0L21seDVlOiBTd2l0 Y2ggdG8gVG9lcGxpdHogUlNTIGhhc2ggYnkgZGVmYXVsdAoKWyBVcHN0cmVhbSBjb21taXQgN2Vl MmFjZTljNTQ0YTA4ODZlMDJiNTRiNjI1ZTUyMWRmODY5MmQyMCBdCgpBbHRob3VnaCBYT1IgaGFz aCBmdW5jdGlvbiBjYW4gcGVyZm9ybSB2ZXJ5IHdlbGwgb24gc29tZSBzcGVjaWFsIHVzZQpjYXNl cywgdG8gYWxpZ24gd2l0aCBhbGwgZHJpdmVycywgbWx4NSBkcml2ZXIgc2hvdWxkIHVzZSBUb2Vw bGl0eiBoYXNoCmJ5IGRlZmF1bHQuClRvZXBsaXR6IGlzIG1vcmUgc3RhYmxlIGZvciB0aGUgZ2Vu ZXJhbCB1c2UgY2FzZSBhbmQgaXQgaXMgbW9yZSBzdGFuZGFyZAphbmQgcmVsaWFibGUuCgpPbiB0 b3Agb2YgdGhhdCwgc2luY2UgWE9SIChNTFg1X1JYX0hBU0hfRk5fSU5WRVJURURfWE9SOCkgZ2l2 ZXMgb25seSBhCnJlcGVhdGVkIDggYml0cyBwYXR0ZXJuLiBXaGVuIHVzZWQgZm9yIHVkcCB0dW5u ZWxpbmcgUlNTIHNvdXJjZSBwb3J0Cm1hbmlwdWxhdGlvbiBpdCByZXN1bHRzIGluIGZpeGVkIHNv dXJjZSBwb3J0LCB3aGljaCB3aWxsIGNhdXNlIGJhZCBSU1MKc3ByZWFkLgoKRml4ZXM6IDJiZTY5 NjdjZGJjOSAoIm5ldC9tbHg1ZTogU3VwcG9ydCBFVEhfUlNTX0hBU0hfWE9SIikKU2lnbmVkLW9m Zi1ieTogS29uc3RhbnRpbiBLaGxlYm5pa292IDxraGxlYm5pa292QHlhbmRleC10ZWFtLnJ1PgpS ZXZpZXdlZC1ieTogVGFyaXEgVG91a2FuIDx0YXJpcXRAbWVsbGFub3guY29tPgpTaWduZWQtb2Zm LWJ5OiBNb3NoZSBTaGVtZXNoIDxtb3NoZUBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IFNh ZWVkIE1haGFtZWVkIDxzYWVlZG1AbWVsbGFub3guY29tPgotLS0KIGRyaXZlcnMvbmV0L2V0aGVy bmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwg MSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9l dGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJu ZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYwppbmRleCAzZWE1NDFmMzBlZTAuLjBjYjE5 ZTRkZDQzOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9j b3JlL2VuX21haW4uYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2Nv cmUvZW5fbWFpbi5jCkBAIC00NTc0LDcgKzQ1NzQsNyBAQCB2b2lkIG1seDVlX2J1aWxkX3Jzc19w YXJhbXMoc3RydWN0IG1seDVlX3Jzc19wYXJhbXMgKnJzc19wYXJhbXMsCiB7CiAJZW51bSBtbHg1 ZV90cmFmZmljX3R5cGVzIHR0OwogCi0JcnNzX3BhcmFtcy0+aGZ1bmMgPSBFVEhfUlNTX0hBU0hf WE9SOworCXJzc19wYXJhbXMtPmhmdW5jID0gRVRIX1JTU19IQVNIX1RPUDsKIAluZXRkZXZfcnNz X2tleV9maWxsKHJzc19wYXJhbXMtPnRvZXBsaXR6X2hhc2hfa2V5LAogCQkJICAgIHNpemVvZihy c3NfcGFyYW1zLT50b2VwbGl0el9oYXNoX2tleSkpOwogCW1seDVlX2J1aWxkX2RlZmF1bHRfaW5k aXJfcnF0KHJzc19wYXJhbXMtPmluZGlyZWN0aW9uX3JxdCwKLS0gCjIuMjAuMQoKCkZyb20gOTk2 MzQ1OGNlOGExZjNkNjUwNGZkYjc4YzMwODRlN2JlNjZiYzc5NiBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogU2FlZWQgTWFoYW1lZWQgPHNhZWVkbUBtZWxsYW5veC5jb20+CkRhdGU6IFR1 ZSwgMTIgTWFyIDIwMTkgMDA6MjQ6NTIgLTA3MDAKU3ViamVjdDogW1BBVENIIDMwLzQzXSBuZXQv bWx4NWU6IFJ4LCBGaXh1cCBza2IgY2hlY2tzdW0gZm9yIHBhY2tldHMgd2l0aCB0YWlsCiBwYWRk aW5nCgpbIFVwc3RyZWFtIGNvbW1pdCAwYWExZDE4NjE1YzE2M2Y5MjkzNWI4MDZkY2FmZjkxNTc2 NDUyMzNhIF0KCldoZW4gYW4gZXRoZXJuZXQgZnJhbWUgd2l0aCBpcCBwYXlsb2FkIGlzIHBhZGRl ZCwgdGhlIHBhZGRpbmcgb2N0ZXRzIGFyZQpub3QgY292ZXJlZCBieSB0aGUgaGFyZHdhcmUgY2hl Y2tzdW0uCgpQcmlvciB0byB0aGUgY2l0ZWQgY29tbWl0LCBza2IgY2hlY2tzdW0gd2FzIGZvcmNl ZCB0byBiZSBDSEVDS1NVTV9OT05FCndoZW4gcGFkZGluZyBpcyBkZXRlY3RlZC4gQWZ0ZXIgaXQs IHRoZSBrZXJuZWwgd2lsbCB0cnkgdG8gdHJpbSB0aGUKcGFkZGluZyBieXRlcyBhbmQgc3VidHJh Y3QgdGhlaXIgY2hlY2tzdW0gZnJvbSBza2ItPmNzdW0uCgpJbiB0aGlzIHBhdGNoIHdlIGZpeHVw IHNrYi0+Y3N1bSBmb3IgYW55IGlwIHBhY2tldCB3aXRoIHRhaWwgcGFkZGluZyBvZgphbnkgc2l6 ZSwgaWYgYW55IHBhZGRpbmcgZm91bmQuCkZDUyBjYXNlIGlzIGp1c3Qgb25lIHNwZWNpYWwgY2Fz ZSBvZiB0aGlzIGdlbmVyYWwgcHVycG9zZSBwYXRjaCwgaGVuY2UsCml0IGlzIHJlbW92ZWQuCgpG aXhlczogODgwNzhkOThkMWJiICgibmV0OiBwc2tiX3RyaW1fcmNzdW0oKSBhbmQgQ0hFQ0tTVU1f Q09NUExFVEUgYXJlIGZyaWVuZHMiKSwKQ2M6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xl LmNvbT4KUmV2aWV3ZWQtYnk6IFRhcmlxIFRvdWthbiA8dGFyaXF0QG1lbGxhbm94LmNvbT4KU2ln bmVkLW9mZi1ieTogU2FlZWQgTWFoYW1lZWQgPHNhZWVkbUBtZWxsYW5veC5jb20+Ci0tLQogLi4u L25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fcnguYyAgIHwgNzkgKysrKysrKysr KysrKysrLS0tLQogLi4uL2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9zdGF0cy5jICAg IHwgIDYgKysKIC4uLi9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fc3RhdHMuaCAgICB8 ICA0ICsKIDMgZmlsZXMgY2hhbmdlZCwgNzQgaW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vu X3J4LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fcnguYwpp bmRleCA0Y2JmMTVkYThlYjMuLjMxYTdiM2Q4ZTVkMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQv ZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3J4LmMKKysrIGIvZHJpdmVycy9uZXQvZXRo ZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3J4LmMKQEAgLTcxMywxNyArNzEzLDYgQEAgc3Rh dGljIGlubGluZSB2b2lkIG1seDVlX2VuYWJsZV9lY24oc3RydWN0IG1seDVlX3JxICpycSwgc3Ry dWN0IHNrX2J1ZmYgKnNrYikKIAlycS0+c3RhdHMtPmVjbl9tYXJrICs9ICEhcmM7CiB9CiAKLXN0 YXRpYyB1MzIgbWx4NWVfZ2V0X2Zjcyhjb25zdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQotewotCWNv bnN0IHZvaWQgKmZjc19ieXRlczsKLQl1MzIgX2Zjc19ieXRlczsKLQotCWZjc19ieXRlcyA9IHNr Yl9oZWFkZXJfcG9pbnRlcihza2IsIHNrYi0+bGVuIC0gRVRIX0ZDU19MRU4sCi0JCQkJICAgICAg IEVUSF9GQ1NfTEVOLCAmX2Zjc19ieXRlcyk7Ci0KLQlyZXR1cm4gX19nZXRfdW5hbGlnbmVkX2Nw dTMyKGZjc19ieXRlcyk7Ci19Ci0KIHN0YXRpYyB1OCBnZXRfaXBfcHJvdG8oc3RydWN0IHNrX2J1 ZmYgKnNrYiwgaW50IG5ldHdvcmtfZGVwdGgsIF9fYmUxNiBwcm90bykKIHsKIAl2b2lkICppcF9w ID0gc2tiLT5kYXRhICsgbmV0d29ya19kZXB0aDsKQEAgLTczNCw2ICs3MjMsNjggQEAgc3RhdGlj IHU4IGdldF9pcF9wcm90byhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBpbnQgbmV0d29ya19kZXB0aCwg X19iZTE2IHByb3RvKQogCiAjZGVmaW5lIHNob3J0X2ZyYW1lKHNpemUpICgoc2l6ZSkgPD0gRVRI X1pMRU4gKyBFVEhfRkNTX0xFTikKIAorI2RlZmluZSBNQVhfUEFERElORyA4CisKK3N0YXRpYyB2 b2lkCit0YWlsX3BhZGRpbmdfY3N1bV9zbG93KHN0cnVjdCBza19idWZmICpza2IsIGludCBvZmZz ZXQsIGludCBsZW4sCisJCSAgICAgICBzdHJ1Y3QgbWx4NWVfcnFfc3RhdHMgKnN0YXRzKQorewor CXN0YXRzLT5jc3VtX2NvbXBsZXRlX3RhaWxfc2xvdysrOworCXNrYi0+Y3N1bSA9IGNzdW1fYmxv Y2tfYWRkKHNrYi0+Y3N1bSwKKwkJCQkgICBza2JfY2hlY2tzdW0oc2tiLCBvZmZzZXQsIGxlbiwg MCksCisJCQkJICAgb2Zmc2V0KTsKK30KKworc3RhdGljIHZvaWQKK3RhaWxfcGFkZGluZ19jc3Vt KHN0cnVjdCBza19idWZmICpza2IsIGludCBvZmZzZXQsCisJCSAgc3RydWN0IG1seDVlX3JxX3N0 YXRzICpzdGF0cykKK3sKKwl1OCB0YWlsX3BhZGRpbmdbTUFYX1BBRERJTkddOworCWludCBsZW4g PSBza2ItPmxlbiAtIG9mZnNldDsKKwl2b2lkICp0YWlsOworCisJaWYgKHVubGlrZWx5KGxlbiA+ IE1BWF9QQURESU5HKSkgeworCQl0YWlsX3BhZGRpbmdfY3N1bV9zbG93KHNrYiwgb2Zmc2V0LCBs ZW4sIHN0YXRzKTsKKwkJcmV0dXJuOworCX0KKworCXRhaWwgPSBza2JfaGVhZGVyX3BvaW50ZXIo c2tiLCBvZmZzZXQsIGxlbiwgdGFpbF9wYWRkaW5nKTsKKwlpZiAodW5saWtlbHkoIXRhaWwpKSB7 CisJCXRhaWxfcGFkZGluZ19jc3VtX3Nsb3coc2tiLCBvZmZzZXQsIGxlbiwgc3RhdHMpOworCQly ZXR1cm47CisJfQorCisJc3RhdHMtPmNzdW1fY29tcGxldGVfdGFpbCsrOworCXNrYi0+Y3N1bSA9 IGNzdW1fYmxvY2tfYWRkKHNrYi0+Y3N1bSwgY3N1bV9wYXJ0aWFsKHRhaWwsIGxlbiwgMCksIG9m ZnNldCk7Cit9CisKK3N0YXRpYyB2b2lkCittbHg1ZV9za2JfcGFkZGluZ19jc3VtKHN0cnVjdCBz a19idWZmICpza2IsIGludCBuZXR3b3JrX2RlcHRoLCBfX2JlMTYgcHJvdG8sCisJCSAgICAgICBz dHJ1Y3QgbWx4NWVfcnFfc3RhdHMgKnN0YXRzKQoreworCXN0cnVjdCBpcHY2aGRyICppcDY7CisJ c3RydWN0IGlwaGRyICAgKmlwNDsKKwlpbnQgcGt0X2xlbjsKKworCXN3aXRjaCAocHJvdG8pIHsK KwljYXNlIGh0b25zKEVUSF9QX0lQKToKKwkJaXA0ID0gKHN0cnVjdCBpcGhkciAqKShza2ItPmRh dGEgKyBuZXR3b3JrX2RlcHRoKTsKKwkJcGt0X2xlbiA9IG5ldHdvcmtfZGVwdGggKyBudG9ocyhp cDQtPnRvdF9sZW4pOworCQlicmVhazsKKwljYXNlIGh0b25zKEVUSF9QX0lQVjYpOgorCQlpcDYg PSAoc3RydWN0IGlwdjZoZHIgKikoc2tiLT5kYXRhICsgbmV0d29ya19kZXB0aCk7CisJCXBrdF9s ZW4gPSBuZXR3b3JrX2RlcHRoICsgc2l6ZW9mKCppcDYpICsgbnRvaHMoaXA2LT5wYXlsb2FkX2xl bik7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCXJldHVybjsKKwl9CisKKwlpZiAobGlrZWx5KHBr dF9sZW4gPj0gc2tiLT5sZW4pKQorCQlyZXR1cm47CisKKwl0YWlsX3BhZGRpbmdfY3N1bShza2Is IHBrdF9sZW4sIHN0YXRzKTsKK30KKwogc3RhdGljIGlubGluZSB2b2lkIG1seDVlX2hhbmRsZV9j c3VtKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsCiAJCQkJICAgICBzdHJ1Y3QgbWx4NV9jcWU2 NCAqY3FlLAogCQkJCSAgICAgc3RydWN0IG1seDVlX3JxICpycSwKQEAgLTc4MiwxMCArODMzLDgg QEAgc3RhdGljIGlubGluZSB2b2lkIG1seDVlX2hhbmRsZV9jc3VtKHN0cnVjdCBuZXRfZGV2aWNl ICpuZXRkZXYsCiAJCQlza2ItPmNzdW0gPSBjc3VtX3BhcnRpYWwoc2tiLT5kYXRhICsgRVRIX0hM RU4sCiAJCQkJCQkgbmV0d29ya19kZXB0aCAtIEVUSF9ITEVOLAogCQkJCQkJIHNrYi0+Y3N1bSk7 Ci0JCWlmICh1bmxpa2VseShuZXRkZXYtPmZlYXR1cmVzICYgTkVUSUZfRl9SWEZDUykpCi0JCQlz a2ItPmNzdW0gPSBjc3VtX2Jsb2NrX2FkZChza2ItPmNzdW0sCi0JCQkJCQkgICAoX19mb3JjZSBf X3dzdW0pbWx4NWVfZ2V0X2Zjcyhza2IpLAotCQkJCQkJICAgc2tiLT5sZW4gLSBFVEhfRkNTX0xF Tik7CisKKwkJbWx4NWVfc2tiX3BhZGRpbmdfY3N1bShza2IsIG5ldHdvcmtfZGVwdGgsIHByb3Rv LCBzdGF0cyk7CiAJCXN0YXRzLT5jc3VtX2NvbXBsZXRlKys7CiAJCXJldHVybjsKIAl9CmRpZmYg LS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fc3RhdHMu YyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9zdGF0cy5jCmlu ZGV4IGQzZmU0OGZmOWRhOS4uNDQ2MWI0NGFjYWZjIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9l dGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fc3RhdHMuYworKysgYi9kcml2ZXJzL25ldC9l dGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fc3RhdHMuYwpAQCAtNTksNiArNTksOCBAQCBz dGF0aWMgY29uc3Qgc3RydWN0IGNvdW50ZXJfZGVzYyBzd19zdGF0c19kZXNjW10gPSB7CiAJeyBN TFg1RV9ERUNMQVJFX1NUQVQoc3RydWN0IG1seDVlX3N3X3N0YXRzLCByeF9jc3VtX3VubmVjZXNz YXJ5KSB9LAogCXsgTUxYNUVfREVDTEFSRV9TVEFUKHN0cnVjdCBtbHg1ZV9zd19zdGF0cywgcnhf Y3N1bV9ub25lKSB9LAogCXsgTUxYNUVfREVDTEFSRV9TVEFUKHN0cnVjdCBtbHg1ZV9zd19zdGF0 cywgcnhfY3N1bV9jb21wbGV0ZSkgfSwKKwl7IE1MWDVFX0RFQ0xBUkVfU1RBVChzdHJ1Y3QgbWx4 NWVfc3dfc3RhdHMsIHJ4X2NzdW1fY29tcGxldGVfdGFpbCkgfSwKKwl7IE1MWDVFX0RFQ0xBUkVf U1RBVChzdHJ1Y3QgbWx4NWVfc3dfc3RhdHMsIHJ4X2NzdW1fY29tcGxldGVfdGFpbF9zbG93KSB9 LAogCXsgTUxYNUVfREVDTEFSRV9TVEFUKHN0cnVjdCBtbHg1ZV9zd19zdGF0cywgcnhfY3N1bV91 bm5lY2Vzc2FyeV9pbm5lcikgfSwKIAl7IE1MWDVFX0RFQ0xBUkVfU1RBVChzdHJ1Y3QgbWx4NWVf c3dfc3RhdHMsIHJ4X3hkcF9kcm9wKSB9LAogCXsgTUxYNUVfREVDTEFSRV9TVEFUKHN0cnVjdCBt bHg1ZV9zd19zdGF0cywgcnhfeGRwX3JlZGlyZWN0KSB9LApAQCAtMTUxLDYgKzE1Myw4IEBAIHZv aWQgbWx4NWVfZ3JwX3N3X3VwZGF0ZV9zdGF0cyhzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdikKIAkJ cy0+cnhfcmVtb3ZlZF92bGFuX3BhY2tldHMgKz0gcnFfc3RhdHMtPnJlbW92ZWRfdmxhbl9wYWNr ZXRzOwogCQlzLT5yeF9jc3VtX25vbmUJKz0gcnFfc3RhdHMtPmNzdW1fbm9uZTsKIAkJcy0+cnhf Y3N1bV9jb21wbGV0ZSArPSBycV9zdGF0cy0+Y3N1bV9jb21wbGV0ZTsKKwkJcy0+cnhfY3N1bV9j b21wbGV0ZV90YWlsICs9IHJxX3N0YXRzLT5jc3VtX2NvbXBsZXRlX3RhaWw7CisJCXMtPnJ4X2Nz dW1fY29tcGxldGVfdGFpbF9zbG93ICs9IHJxX3N0YXRzLT5jc3VtX2NvbXBsZXRlX3RhaWxfc2xv dzsKIAkJcy0+cnhfY3N1bV91bm5lY2Vzc2FyeSArPSBycV9zdGF0cy0+Y3N1bV91bm5lY2Vzc2Fy eTsKIAkJcy0+cnhfY3N1bV91bm5lY2Vzc2FyeV9pbm5lciArPSBycV9zdGF0cy0+Y3N1bV91bm5l Y2Vzc2FyeV9pbm5lcjsKIAkJcy0+cnhfeGRwX2Ryb3AgICAgICs9IHJxX3N0YXRzLT54ZHBfZHJv cDsKQEAgLTExOTIsNiArMTE5Niw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY291bnRlcl9kZXNj IHJxX3N0YXRzX2Rlc2NbXSA9IHsKIAl7IE1MWDVFX0RFQ0xBUkVfUlhfU1RBVChzdHJ1Y3QgbWx4 NWVfcnFfc3RhdHMsIHBhY2tldHMpIH0sCiAJeyBNTFg1RV9ERUNMQVJFX1JYX1NUQVQoc3RydWN0 IG1seDVlX3JxX3N0YXRzLCBieXRlcykgfSwKIAl7IE1MWDVFX0RFQ0xBUkVfUlhfU1RBVChzdHJ1 Y3QgbWx4NWVfcnFfc3RhdHMsIGNzdW1fY29tcGxldGUpIH0sCisJeyBNTFg1RV9ERUNMQVJFX1JY X1NUQVQoc3RydWN0IG1seDVlX3JxX3N0YXRzLCBjc3VtX2NvbXBsZXRlX3RhaWwpIH0sCisJeyBN TFg1RV9ERUNMQVJFX1JYX1NUQVQoc3RydWN0IG1seDVlX3JxX3N0YXRzLCBjc3VtX2NvbXBsZXRl X3RhaWxfc2xvdykgfSwKIAl7IE1MWDVFX0RFQ0xBUkVfUlhfU1RBVChzdHJ1Y3QgbWx4NWVfcnFf c3RhdHMsIGNzdW1fdW5uZWNlc3NhcnkpIH0sCiAJeyBNTFg1RV9ERUNMQVJFX1JYX1NUQVQoc3Ry dWN0IG1seDVlX3JxX3N0YXRzLCBjc3VtX3VubmVjZXNzYXJ5X2lubmVyKSB9LAogCXsgTUxYNUVf REVDTEFSRV9SWF9TVEFUKHN0cnVjdCBtbHg1ZV9ycV9zdGF0cywgY3N1bV9ub25lKSB9LApkaWZm IC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3N0YXRz LmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fc3RhdHMuaApp bmRleCBmZTkxZWMwNmUzYzcuLjcxNDMwM2JmMDc5NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQv ZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3N0YXRzLmgKKysrIGIvZHJpdmVycy9uZXQv ZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3N0YXRzLmgKQEAgLTcxLDYgKzcxLDggQEAg c3RydWN0IG1seDVlX3N3X3N0YXRzIHsKIAl1NjQgcnhfY3N1bV91bm5lY2Vzc2FyeTsKIAl1NjQg cnhfY3N1bV9ub25lOwogCXU2NCByeF9jc3VtX2NvbXBsZXRlOworCXU2NCByeF9jc3VtX2NvbXBs ZXRlX3RhaWw7CisJdTY0IHJ4X2NzdW1fY29tcGxldGVfdGFpbF9zbG93OwogCXU2NCByeF9jc3Vt X3VubmVjZXNzYXJ5X2lubmVyOwogCXU2NCByeF94ZHBfZHJvcDsKIAl1NjQgcnhfeGRwX3JlZGly ZWN0OwpAQCAtMTgxLDYgKzE4Myw4IEBAIHN0cnVjdCBtbHg1ZV9ycV9zdGF0cyB7CiAJdTY0IHBh Y2tldHM7CiAJdTY0IGJ5dGVzOwogCXU2NCBjc3VtX2NvbXBsZXRlOworCXU2NCBjc3VtX2NvbXBs ZXRlX3RhaWw7CisJdTY0IGNzdW1fY29tcGxldGVfdGFpbF9zbG93OwogCXU2NCBjc3VtX3VubmVj ZXNzYXJ5OwogCXU2NCBjc3VtX3VubmVjZXNzYXJ5X2lubmVyOwogCXU2NCBjc3VtX25vbmU7Ci0t IAoyLjIwLjEKCgpGcm9tIDY4NjQ3YzA0OTljOTMyZTExMTJjZDFhMDY3MjQxMDA5MjZkMTk3ODgg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFNhZWVkIE1haGFtZWVkIDxzYWVlZG1AbWVs bGFub3guY29tPgpEYXRlOiBNb24sIDI1IE1hciAyMDE5IDIyOjEwOjU5IC0wNzAwClN1YmplY3Q6 IFtQQVRDSCAzMS80M10gbmV0L21seDVlOiBSeCwgQ2hlY2sgaXAgaGVhZGVycyBzYW5pdHkKClsg VXBzdHJlYW0gY29tbWl0IDAzMThhN2I3ZmNhZDk3NjU5MzExNDZlZmE3Y2EzYTAzNDE5NDczN2Mg XQoKSW4gdGhlIHR3byBwbGFjZXMgaXNfbGFzdF9ldGhlcnR5cGVfaXAgaXMgYmVpbmcgY2FsbGVk LCB0aGUgY2FsbGVyIHdpbGwKYmUgbG9va2luZyBpbnNpZGUgdGhlIGlwIGhlYWRlciwgdG8gYmUg c2FmZSwgYWRkIGlwezQsNn0gaGVhZGVyIHNhbml0eQpjaGVjay4gQW5kIHJldHVybiB0cnVlIG9u bHkgb24gdmFsaWQgaXAgaGVhZGVycywgaS5lOiB0aGUgd2hvbGUgaGVhZGVyCmlzIGNvbnRhaW5l ZCBpbiB0aGUgbGluZWFyIHBhcnQgb2YgdGhlIHNrYi4KCk5vdGU6IFN1Y2ggc2l0dWF0aW9uIGlz IHZlcnkgcmFyZSBhbmQgaGFyZCB0byByZXByb2R1Y2UsIHNpbmNlIG1seDVlCmFsbG9jYXRlcyBh IGxhcmdlIGVub3VnaCBoZWFkcm9vbSB0byBjb250YWluIHRoZSBsYXJnZXN0IGhlYWRlciBvbmUg Y2FuCmltYWdpbmUuCgpGaXhlczogZmUxZGMwNjk5OTBjICgibmV0L21seDVlOiBkb24ndCBzZXQg Q0hFQ0tTVU1fQ09NUExFVEUgb24gU0NUUCBwYWNrZXRzIikKUmVwb3J0ZWQtYnk6IENvbmcgV2Fu ZyA8eGl5b3Uud2FuZ2NvbmdAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogVGFyaXEgVG91a2FuIDx0 YXJpcXRAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBTYWVlZCBNYWhhbWVlZCA8c2FlZWRt QG1lbGxhbm94LmNvbT4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2Nv cmUvZW5fcnguYyB8IDkgKysrKysrKystCiAxIGZpbGUgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCsp LCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFu b3gvbWx4NS9jb3JlL2VuX3J4LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1 L2NvcmUvZW5fcnguYwppbmRleCAzMWE3YjNkOGU1ZDMuLjFjN2VmOTE5ZjU0NiAxMDA2NDQKLS0t IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3J4LmMKKysrIGIv ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3J4LmMKQEAgLTY5Myw3 ICs2OTMsMTQgQEAgc3RhdGljIGlubGluZSBib29sIGlzX2xhc3RfZXRoZXJ0eXBlX2lwKHN0cnVj dCBza19idWZmICpza2IsIGludCAqbmV0d29ya19kZXB0aCwKIHsKIAkqcHJvdG8gPSAoKHN0cnVj dCBldGhoZHIgKilza2ItPmRhdGEpLT5oX3Byb3RvOwogCSpwcm90byA9IF9fdmxhbl9nZXRfcHJv dG9jb2woc2tiLCAqcHJvdG8sIG5ldHdvcmtfZGVwdGgpOwotCXJldHVybiAoKnByb3RvID09IGh0 b25zKEVUSF9QX0lQKSB8fCAqcHJvdG8gPT0gaHRvbnMoRVRIX1BfSVBWNikpOworCisJaWYgKCpw cm90byA9PSBodG9ucyhFVEhfUF9JUCkpCisJCXJldHVybiBwc2tiX21heV9wdWxsKHNrYiwgKm5l dHdvcmtfZGVwdGggKyBzaXplb2Yoc3RydWN0IGlwaGRyKSk7CisKKwlpZiAoKnByb3RvID09IGh0 b25zKEVUSF9QX0lQVjYpKQorCQlyZXR1cm4gcHNrYl9tYXlfcHVsbChza2IsICpuZXR3b3JrX2Rl cHRoICsgc2l6ZW9mKHN0cnVjdCBpcHY2aGRyKSk7CisKKwlyZXR1cm4gZmFsc2U7CiB9CiAKIHN0 YXRpYyBpbmxpbmUgdm9pZCBtbHg1ZV9lbmFibGVfZWNuKHN0cnVjdCBtbHg1ZV9ycSAqcnEsIHN0 cnVjdCBza19idWZmICpza2IpCi0tIAoyLjIwLjEKCgpGcm9tIDE0ZGQ0YjJlYjVhNWViOGZiNDVl NjMwZDJiODM2MzZjZTNhNzgzNjYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE9yIEdl cmxpdHogPG9nZXJsaXR6QG1lbGxhbm94LmNvbT4KRGF0ZTogU3VuLCAzMSBNYXIgMjAxOSAxMjo1 MzowMyArMDAwMApTdWJqZWN0OiBbUEFUQ0ggMzIvNDNdIFJldmVydCAibmV0L21seDVlOiBFbmFi bGUgcmVwb3J0aW5nIGNoZWNrc3VtCiB1bm5lY2Vzc2FyeSBhbHNvIGZvciBMMyBwYWNrZXRzIgoK WyBVcHN0cmVhbSBjb21taXQgOGM4ODExZDQ2ZDAwZDExOWZmYmUwMzlhNmU1MmEwYjUwNGRmMWMy YyBdCgpUaGlzIHJldmVydHMgY29tbWl0IGI4MjBlNmZiMDk3OGY5YzJhYzQzOGMxOTlkMmJiMmYz NTk1MGU5YzkuCgpQcmlvciB0aGUgY29tbWl0IHdlIGFyZSByZXZlcnRpbmcsIGNoZWNrc3VtIHVu bmVjZXNzYXJ5IHdhcyBvbmx5IHNldCB3aGVuCmJvdGggdGhlIEwzIE9LIGFuZCBMNCBPSyBiaXRz IGFyZSBzZXQgb24gdGhlIENRRS4gVGhpcyBjYXVzZWQgcGFja2V0cwpvZiBJUCBwcm90b2NvbHMg c3VjaCBhcyBTQ1RQIHdoaWNoIGFyZSBub3QgZGVhbHQgYnkgdGhlIGN1cnJlbnQgSFcgTDQKcGFy c2VyIChoZW5jZSB0aGUgTDQgT0sgYml0IGlzIG5vdCBzZXQsIGJ1dCB0aGUgTDQgaGVhZGVyIHR5 cGUgbm9uZSBiaXQKaXMgc2V0KSB0byBnbyB0aHJvdWdoIHRoZSBjaGVja3N1bSBub25lIGNvZGUs IHdoZXJlIGN1cnJlbnRseSB3ZSB3cm9uZ2x5CnJlcG9ydCBjaGVja3N1bSB1bm5lY2Vzc2FyeSBm b3IgdGhlbSwgYSByZWdyZXNzaW9uLiBGaXggdGhpcyBieSBhIHJldmVydC4KCk5vdGUgdGhhdCBv biBvdXIgdXN1YWwgdHJhY2sgd2UgcmVwb3J0IGNoZWNrc3VtIGNvbXBsZXRlLCBzbyB0aGUgcmV2 ZXJ0Cmlzbid0IGV4cGVjdGVkIHRvIGhhdmUgYW55IG5vdGFibGUgcGVyZm9ybWFuY2UgaW1wYWN0 LiBBbHNvLCB3aGVuIHdlIGFyZQpub3Qgb24gdGhlIGNoZWNrc3VtIGNvbXBsZXRlIHRyYWNrLCB0 aGUgTDQgcHJvdG9jb2xzIGZvciB3aGljaCB3ZSByZXBvcnQKY2hlY2tzdW0gbm9uZSBhcmUgbm90 IGhpZ2ggcGVyZm9ybWFuY2Ugb25lcywgd2Ugd2lsbCBzdGlsbCByZXBvcnQKY2hlY2tzdW0gdW5u ZWNlc3NhcnkgZm9yIFVEUC9UQ1AuCgpGaXhlczogYjgyMGU2ZmIwOTc4ICgibmV0L21seDVlOiBF bmFibGUgcmVwb3J0aW5nIGNoZWNrc3VtIHVubmVjZXNzYXJ5IGFsc28gZm9yIEwzIHBhY2tldHMi KQpTaWduZWQtb2ZmLWJ5OiBPciBHZXJsaXR6IDxvZ2VybGl0ekBtZWxsYW5veC5jb20+ClJlcG9y dGVkLWJ5OiBBdmkgVXJtYW4gPGF2aXVAbWVsbGFub3guY29tPgpSZXZpZXdlZC1ieTogVGFyaXEg VG91a2FuIDx0YXJpcXRAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBTYWVlZCBNYWhhbWVl ZCA8c2FlZWRtQG1lbGxhbm94LmNvbT4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5v eC9tbHg1L2NvcmUvZW5fcnguYyB8IDMgKy0tCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24o KyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVs bGFub3gvbWx4NS9jb3JlL2VuX3J4LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9t bHg1L2NvcmUvZW5fcnguYwppbmRleCAxYzdlZjkxOWY1NDYuLjJjYmRhOGFiZDhiOSAxMDA2NDQK LS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3J4LmMKKysr IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3J4LmMKQEAgLTg0 OCw4ICs4NDgsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgbWx4NWVfaGFuZGxlX2NzdW0oc3RydWN0 IG5ldF9kZXZpY2UgKm5ldGRldiwKIAogY3N1bV91bm5lY2Vzc2FyeToKIAlpZiAobGlrZWx5KChj cWUtPmhkc19pcF9leHQgJiBDUUVfTDNfT0spICYmCi0JCSAgICgoY3FlLT5oZHNfaXBfZXh0ICYg Q1FFX0w0X09LKSB8fAotCQkgICAgKGdldF9jcWVfbDRfaGRyX3R5cGUoY3FlKSA9PSBDUUVfTDRf SERSX1RZUEVfTk9ORSkpKSkgeworCQkgICAoY3FlLT5oZHNfaXBfZXh0ICYgQ1FFX0w0X09LKSkp IHsKIAkJc2tiLT5pcF9zdW1tZWQgPSBDSEVDS1NVTV9VTk5FQ0VTU0FSWTsKIAkJaWYgKGNxZV9p c190dW5uZWxlZChjcWUpKSB7CiAJCQlza2ItPmNzdW1fbGV2ZWwgPSAxOwotLSAKMi4yMC4xCgoK RnJvbSA1YTI2YjIyODI5Yjc4NmE0NDBhM2VmZmQ5ZDNiMmU3YThiNGQwZmJkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTYWVlZCBNYWhhbWVlZCA8c2FlZWRtQG1lbGxhbm94LmNvbT4K RGF0ZTogVHVlLCAxOSBNYXIgMjAxOSAyMjowOTowNSAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMzMv NDNdIG5ldC9tbHg1OiBGUEdBLCB0bHMsIGhvbGQgcmN1IHJlYWQgbG9jayBhIGJpdCBsb25nZXIK ClsgVXBzdHJlYW0gY29tbWl0IDMxNjM0YmY1ZGNjNDE4YjViMmNhY2Q5NTQzOTRjMGM0NjIwZGI2 YTIgXQoKVG8gYXZvaWQgdXNlLWFmdGVyLWZyZWUsIGhvbGQgdGhlIHJjdSByZWFkIGxvY2sgdW50 aWwgd2UgYXJlIGRvbmUgY29weWluZwpmbG93IGRhdGEgaW50byB0aGUgY29tbWFuZCBidWZmZXIu CgpGaXhlczogYWI0MTJlMWRkN2RiICgibmV0L21seDU6IEFjY2VsLCBhZGQgVExTIHJ4IG9mZmxv YWQgcm91dGluZXMiKQpSZXBvcnRlZC1ieTogRXJpYyBEdW1hemV0IDxlcmljLmR1bWF6ZXRAZ21h aWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBTYWVlZCBNYWhhbWVlZCA8c2FlZWRtQG1lbGxhbm94LmNv bT4KLS0tCiAuLi4vbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mcGdhL3Rscy5jIHwg MTggKysrKysrKysrLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspLCA5 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94 L21seDUvY29yZS9mcGdhL3Rscy5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4 NS9jb3JlL2ZwZ2EvdGxzLmMKaW5kZXggOGRlNjRlODhjNjcwLi4wOGFhNzI2NmM4YzAgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mcGdhL3Rscy5j CisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mcGdhL3Rscy5j CkBAIC0yMTcsMjIgKzIxNywyMiBAQCBpbnQgbWx4NV9mcGdhX3Rsc19yZXN5bmNfcngoc3RydWN0 IG1seDVfY29yZV9kZXYgKm1kZXYsIHUzMiBoYW5kbGUsIHUzMiBzZXEsCiAJdm9pZCAqY21kOwog CWludCByZXQ7CiAKLQlyY3VfcmVhZF9sb2NrKCk7Ci0JZmxvdyA9IGlkcl9maW5kKCZtZGV2LT5m cGdhLT50bHMtPnJ4X2lkciwgbnRvaGwoaGFuZGxlKSk7Ci0JcmN1X3JlYWRfdW5sb2NrKCk7Ci0K LQlpZiAoIWZsb3cpIHsKLQkJV0FSTl9PTkNFKDEsICJSZWNlaXZlZCBOVUxMIHBvaW50ZXIgZm9y IGhhbmRsZVxuIik7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQogCWJ1ZiA9IGt6YWxsb2Moc2l6 ZSwgR0ZQX0FUT01JQyk7CiAJaWYgKCFidWYpCiAJCXJldHVybiAtRU5PTUVNOwogCiAJY21kID0g KGJ1ZiArIDEpOwogCisJcmN1X3JlYWRfbG9jaygpOworCWZsb3cgPSBpZHJfZmluZCgmbWRldi0+ ZnBnYS0+dGxzLT5yeF9pZHIsIG50b2hsKGhhbmRsZSkpOworCWlmICh1bmxpa2VseSghZmxvdykp IHsKKwkJcmN1X3JlYWRfdW5sb2NrKCk7CisJCVdBUk5fT05DRSgxLCAiUmVjZWl2ZWQgTlVMTCBw b2ludGVyIGZvciBoYW5kbGVcbiIpOworCQlrZnJlZShidWYpOworCQlyZXR1cm4gLUVJTlZBTDsK Kwl9CiAJbWx4NV9mcGdhX3Rsc19mbG93X3RvX2NtZChmbG93LCBjbWQpOworCXJjdV9yZWFkX3Vu bG9jaygpOwogCiAJTUxYNV9TRVQodGxzX2NtZCwgY21kLCBzd2lkLCBudG9obChoYW5kbGUpKTsK IAlNTFg1X1NFVDY0KHRsc19jbWQsIGNtZCwgdGxzX3JjZF9zbiwgYmU2NF90b19jcHUocmNkX3Nu KSk7Ci0tIAoyLjIwLjEKCgpGcm9tIDEwY2U1NjI1Zjg2YTc0ZjNhYTAxY2EyMWY5ZTdmNWM1Nzdk NDJiMTEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEpha3ViIEtpY2luc2tpIDxqYWt1 Yi5raWNpbnNraUBuZXRyb25vbWUuY29tPgpEYXRlOiBNb24sIDggQXByIDIwMTkgMTc6NTk6NTAg LTA3MDAKU3ViamVjdDogW1BBVENIIDM0LzQzXSBuZXQvdGxzOiBwcmV2ZW50IGJhZCBtZW1vcnkg YWNjZXNzIGluCiB0bHNfaXNfc2tfdHhfZGV2aWNlX29mZmxvYWRlZCgpCgpbIFVwc3RyZWFtIGNv bW1pdCBiNGY0N2YzODQ4ZWI3MDk4NmY3NWQwNjExMmFmN2I0OGI3ZjVmNDYyIF0KClVubGlrZSAn JiYnIG9wZXJhdG9yLCB0aGUgJyYnIGRvZXMgbm90IGhhdmUgc2hvcnQtY2lyY3VpdApldmFsdWF0 aW9uIHNlbWFudGljcy4gIElPVyBib3RoIHNpZGVzIG9mIHRoZSBvcGVyYXRvciBhbHdheXMKZ2V0 IGV2YWx1YXRlZC4gIEZpeCB0aGUgd3Jvbmcgb3BlcmF0b3IgaW4KdGxzX2lzX3NrX3R4X2Rldmlj ZV9vZmZsb2FkZWQoKSwgd2hpY2ggd291bGQgbGVhZCB0bwpvdXQtb2YtYm91bmRzIGFjY2VzcyBm b3IgZm9yIG5vbi1mdWxsIHNvY2tldHMuCgpGaXhlczogNDc5OWFjODFlNTJhICgidGxzOiBBZGQg cnggaW5saW5lIGNyeXB0byBvZmZsb2FkIikKU2lnbmVkLW9mZi1ieTogSmFrdWIgS2ljaW5za2kg PGpha3ViLmtpY2luc2tpQG5ldHJvbm9tZS5jb20+ClJldmlld2VkLWJ5OiBEaXJrIHZhbiBkZXIg TWVyd2UgPGRpcmsudmFuZGVybWVyd2VAbmV0cm9ub21lLmNvbT4KUmV2aWV3ZWQtYnk6IFNpbW9u IEhvcm1hbiA8c2ltb24uaG9ybWFuQG5ldHJvbm9tZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNsdWRlL25ldC90bHMuaCB8 IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlm ZiAtLWdpdCBhL2luY2x1ZGUvbmV0L3Rscy5oIGIvaW5jbHVkZS9uZXQvdGxzLmgKaW5kZXggMDI0 MThlNzJiOGIyLi44YjNkMTA5MTdkOTkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L3Rscy5oCisr KyBiL2luY2x1ZGUvbmV0L3Rscy5oCkBAIC0zNjYsNyArMzY2LDcgQEAgdGxzX3ZhbGlkYXRlX3ht aXRfc2tiKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKIHN0YXRpYyBp bmxpbmUgYm9vbCB0bHNfaXNfc2tfdHhfZGV2aWNlX29mZmxvYWRlZChzdHJ1Y3Qgc29jayAqc2sp CiB7CiAjaWZkZWYgQ09ORklHX1NPQ0tfVkFMSURBVEVfWE1JVAotCXJldHVybiBza19mdWxsc29j ayhzaykgJgorCXJldHVybiBza19mdWxsc29jayhzaykgJiYKIAkgICAgICAgKHNtcF9sb2FkX2Fj cXVpcmUoJnNrLT5za192YWxpZGF0ZV94bWl0X3NrYikgPT0KIAkgICAgICAgJnRsc192YWxpZGF0 ZV94bWl0X3NrYik7CiAjZWxzZQotLSAKMi4yMC4xCgoKRnJvbSAyN2E2ZmIyNmRmZDRjMWVjN2Uz YzYyOTBlNDRlZjRhNTczYzBkMjYxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTYWVl ZCBNYWhhbWVlZCA8c2FlZWRtQG1lbGxhbm94LmNvbT4KRGF0ZTogVHVlLCAxOSBNYXIgMjAxOSAw MTowNTo0MSAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMzUvNDNdIG5ldC9tbHg1OiBGUEdBLCB0bHMs IGlkciByZW1vdmUgb24gZmxvdyBkZWxldGUKClsgVXBzdHJlYW0gY29tbWl0IGRmM2E4MzQ0ZDQw NGE4MTBiNGFhZGJmMTliMDhjODIzMmZiYWE3MTUgXQoKRmxvdyBpcyBrZnJlZWQgb24gbWx4NV9m cGdhX3Rsc19kZWxfZmxvdyBidXQga2VwdCBpbiB0aGUgaWRyIGRhdGEKc3RydWN0dXJlLCB0aGlz IGlzIHJpc2t5IGFuZCBjYW4gY2F1c2UgdXNlLWFmdGVyLWZyZWUsIHNpbmNlIHRoZQppZHJfcmVt b3ZlIGlzIGRlbGF5ZWQgdW50aWwgdGxzX3NlbmRfdGVhcmRvd25fY21kIGNvbXBsZXRpb24uCgpJ bnN0ZWFkIG9mIGRlbGF5aW5nIGlkcl9yZW1vdmUsIGluIHRoaXMgcGF0Y2ggd2UgZG8gaXQgb24K bWx4NV9mcGdhX3Rsc19kZWxfZmxvdywgYmVmb3JlIGFjdHVhbGx5IGtmcmVlKGZsb3cpLgoKQWRk ZWQgc3luY2hyb25pemVfcmN1IGJlZm9yZSBrZnJlZShmbG93KQoKRml4ZXM6IGFiNDEyZTFkZDdk YiAoIm5ldC9tbHg1OiBBY2NlbCwgYWRkIFRMUyByeCBvZmZsb2FkIHJvdXRpbmVzIikKU2lnbmVk LW9mZi1ieTogU2FlZWQgTWFoYW1lZWQgPHNhZWVkbUBtZWxsYW5veC5jb20+Ci0tLQogLi4uL2V0 aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mcGdhL3Rscy5jICAgIHwgNDMgKysrKysrKy0tLS0t LS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDE1IGluc2VydGlvbnMoKyksIDI4IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9m cGdhL3Rscy5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZwZ2Ev dGxzLmMKaW5kZXggMDhhYTcyNjZjOGMwLi4yMmEyZWYxMTE1MTQgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mcGdhL3Rscy5jCisrKyBiL2RyaXZl cnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mcGdhL3Rscy5jCkBAIC0xNDgsMTQg KzE0OCwxNiBAQCBzdGF0aWMgaW50IG1seDVfZnBnYV90bHNfYWxsb2Nfc3dpZChzdHJ1Y3QgaWRy ICppZHIsIHNwaW5sb2NrX3QgKmlkcl9zcGlubG9jaywKIAlyZXR1cm4gcmV0OwogfQogCi1zdGF0 aWMgdm9pZCBtbHg1X2ZwZ2FfdGxzX3JlbGVhc2Vfc3dpZChzdHJ1Y3QgaWRyICppZHIsCi0JCQkJ ICAgICAgIHNwaW5sb2NrX3QgKmlkcl9zcGlubG9jaywgdTMyIHN3aWQpCitzdGF0aWMgdm9pZCAq bWx4NV9mcGdhX3Rsc19yZWxlYXNlX3N3aWQoc3RydWN0IGlkciAqaWRyLAorCQkJCQlzcGlubG9j a190ICppZHJfc3BpbmxvY2ssIHUzMiBzd2lkKQogewogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJ dm9pZCAqcHRyOwogCiAJc3Bpbl9sb2NrX2lycXNhdmUoaWRyX3NwaW5sb2NrLCBmbGFncyk7Ci0J aWRyX3JlbW92ZShpZHIsIHN3aWQpOworCXB0ciA9IGlkcl9yZW1vdmUoaWRyLCBzd2lkKTsKIAlz cGluX3VubG9ja19pcnFyZXN0b3JlKGlkcl9zcGlubG9jaywgZmxhZ3MpOworCXJldHVybiBwdHI7 CiB9CiAKIHN0YXRpYyB2b2lkIG1seF90bHNfa2ZyZWVfY29tcGxldGUoc3RydWN0IG1seDVfZnBn YV9jb25uICpjb25uLApAQCAtMTY1LDIwICsxNjcsMTIgQEAgc3RhdGljIHZvaWQgbWx4X3Rsc19r ZnJlZV9jb21wbGV0ZShzdHJ1Y3QgbWx4NV9mcGdhX2Nvbm4gKmNvbm4sCiAJa2ZyZWUoYnVmKTsK IH0KIAotc3RydWN0IG1seDVfdGVhcmRvd25fc3RyZWFtX2NvbnRleHQgewotCXN0cnVjdCBtbHg1 X2ZwZ2FfdGxzX2NvbW1hbmRfY29udGV4dCBjbWQ7Ci0JdTMyIHN3aWQ7Ci19OwotCiBzdGF0aWMg dm9pZAogbWx4NV9mcGdhX3Rsc190ZWFyZG93bl9jb21wbGV0aW9uKHN0cnVjdCBtbHg1X2ZwZ2Ff Y29ubiAqY29ubiwKIAkJCQkgIHN0cnVjdCBtbHg1X2ZwZ2FfZGV2aWNlICpmZGV2LAogCQkJCSAg c3RydWN0IG1seDVfZnBnYV90bHNfY29tbWFuZF9jb250ZXh0ICpjbWQsCiAJCQkJICBzdHJ1Y3Qg bWx4NV9mcGdhX2RtYV9idWYgKnJlc3ApCiB7Ci0Jc3RydWN0IG1seDVfdGVhcmRvd25fc3RyZWFt X2NvbnRleHQgKmN0eCA9Ci0JCSAgICBjb250YWluZXJfb2YoY21kLCBzdHJ1Y3QgbWx4NV90ZWFy ZG93bl9zdHJlYW1fY29udGV4dCwgY21kKTsKLQogCWlmIChyZXNwKSB7CiAJCXUzMiBzeW5kcm9t ZSA9IE1MWDVfR0VUKHRsc19yZXNwLCByZXNwLT5zZ1swXS5kYXRhLCBzeW5kcm9tZSk7CiAKQEAg LTE4NiwxNCArMTgwLDYgQEAgbWx4NV9mcGdhX3Rsc190ZWFyZG93bl9jb21wbGV0aW9uKHN0cnVj dCBtbHg1X2ZwZ2FfY29ubiAqY29ubiwKIAkJCW1seDVfZnBnYV9lcnIoZmRldiwKIAkJCQkgICAg ICAiVGVhcmRvd24gc3RyZWFtIGZhaWxlZCB3aXRoIHN5bmRyb21lID0gJWQiLAogCQkJCSAgICAg IHN5bmRyb21lKTsKLQkJZWxzZSBpZiAoTUxYNV9HRVQodGxzX2NtZCwgY21kLT5idWYuc2dbMF0u ZGF0YSwgZGlyZWN0aW9uX3N4KSkKLQkJCW1seDVfZnBnYV90bHNfcmVsZWFzZV9zd2lkKCZmZGV2 LT50bHMtPnR4X2lkciwKLQkJCQkJCSAgICZmZGV2LT50bHMtPnR4X2lkcl9zcGlubG9jaywKLQkJ CQkJCSAgIGN0eC0+c3dpZCk7Ci0JCWVsc2UKLQkJCW1seDVfZnBnYV90bHNfcmVsZWFzZV9zd2lk KCZmZGV2LT50bHMtPnJ4X2lkciwKLQkJCQkJCSAgICZmZGV2LT50bHMtPnJ4X2lkcl9zcGlubG9j aywKLQkJCQkJCSAgIGN0eC0+c3dpZCk7CiAJfQogCW1seDVfZnBnYV90bHNfcHV0X2NvbW1hbmRf Y3R4KGNtZCk7CiB9CkBAIC0yNTMsNyArMjM5LDcgQEAgaW50IG1seDVfZnBnYV90bHNfcmVzeW5j X3J4KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICptZGV2LCB1MzIgaGFuZGxlLCB1MzIgc2VxLAogc3Rh dGljIHZvaWQgbWx4NV9mcGdhX3Rsc19zZW5kX3RlYXJkb3duX2NtZChzdHJ1Y3QgbWx4NV9jb3Jl X2RldiAqbWRldiwKIAkJCQkJICAgIHZvaWQgKmZsb3csIHUzMiBzd2lkLCBnZnBfdCBmbGFncykK IHsKLQlzdHJ1Y3QgbWx4NV90ZWFyZG93bl9zdHJlYW1fY29udGV4dCAqY3R4OworCXN0cnVjdCBt bHg1X2ZwZ2FfdGxzX2NvbW1hbmRfY29udGV4dCAqY3R4OwogCXN0cnVjdCBtbHg1X2ZwZ2FfZG1h X2J1ZiAqYnVmOwogCXZvaWQgKmNtZDsKIApAQCAtMjYxLDcgKzI0Nyw3IEBAIHN0YXRpYyB2b2lk IG1seDVfZnBnYV90bHNfc2VuZF90ZWFyZG93bl9jbWQoc3RydWN0IG1seDVfY29yZV9kZXYgKm1k ZXYsCiAJaWYgKCFjdHgpCiAJCXJldHVybjsKIAotCWJ1ZiA9ICZjdHgtPmNtZC5idWY7CisJYnVm ID0gJmN0eC0+YnVmOwogCWNtZCA9IChjdHggKyAxKTsKIAlNTFg1X1NFVCh0bHNfY21kLCBjbWQs IGNvbW1hbmRfdHlwZSwgQ01EX1RFQVJET1dOX1NUUkVBTSk7CiAJTUxYNV9TRVQodGxzX2NtZCwg Y21kLCBzd2lkLCBzd2lkKTsKQEAgLTI3Miw4ICsyNTgsNyBAQCBzdGF0aWMgdm9pZCBtbHg1X2Zw Z2FfdGxzX3NlbmRfdGVhcmRvd25fY21kKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICptZGV2LAogCWJ1 Zi0+c2dbMF0uZGF0YSA9IGNtZDsKIAlidWYtPnNnWzBdLnNpemUgPSBNTFg1X1RMU19DT01NQU5E X1NJWkU7CiAKLQljdHgtPnN3aWQgPSBzd2lkOwotCW1seDVfZnBnYV90bHNfY21kX3NlbmQobWRl di0+ZnBnYSwgJmN0eC0+Y21kLAorCW1seDVfZnBnYV90bHNfY21kX3NlbmQobWRldi0+ZnBnYSwg Y3R4LAogCQkJICAgICAgIG1seDVfZnBnYV90bHNfdGVhcmRvd25fY29tcGxldGlvbik7CiB9CiAK QEAgLTI4MywxMyArMjY4LDE0IEBAIHZvaWQgbWx4NV9mcGdhX3Rsc19kZWxfZmxvdyhzdHJ1Y3Qg bWx4NV9jb3JlX2RldiAqbWRldiwgdTMyIHN3aWQsCiAJc3RydWN0IG1seDVfZnBnYV90bHMgKnRs cyA9IG1kZXYtPmZwZ2EtPnRsczsKIAl2b2lkICpmbG93OwogCi0JcmN1X3JlYWRfbG9jaygpOwog CWlmIChkaXJlY3Rpb25fc3gpCi0JCWZsb3cgPSBpZHJfZmluZCgmdGxzLT50eF9pZHIsIHN3aWQp OworCQlmbG93ID0gbWx4NV9mcGdhX3Rsc19yZWxlYXNlX3N3aWQoJnRscy0+dHhfaWRyLAorCQkJ CQkJICAmdGxzLT50eF9pZHJfc3BpbmxvY2ssCisJCQkJCQkgIHN3aWQpOwogCWVsc2UKLQkJZmxv dyA9IGlkcl9maW5kKCZ0bHMtPnJ4X2lkciwgc3dpZCk7Ci0KLQlyY3VfcmVhZF91bmxvY2soKTsK KwkJZmxvdyA9IG1seDVfZnBnYV90bHNfcmVsZWFzZV9zd2lkKCZ0bHMtPnJ4X2lkciwKKwkJCQkJ CSAgJnRscy0+cnhfaWRyX3NwaW5sb2NrLAorCQkJCQkJICBzd2lkKTsKIAogCWlmICghZmxvdykg ewogCQltbHg1X2ZwZ2FfZXJyKG1kZXYtPmZwZ2EsICJObyBmbG93IGluZm9ybWF0aW9uIGZvciBz d2lkICV1XG4iLApAQCAtMjk3LDYgKzI4Myw3IEBAIHZvaWQgbWx4NV9mcGdhX3Rsc19kZWxfZmxv dyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqbWRldiwgdTMyIHN3aWQsCiAJCXJldHVybjsKIAl9CiAK KwlzeW5jaHJvbml6ZV9yY3UoKTsgLyogYmVmb3JlIGtmcmVlKGZsb3cpICovCiAJbWx4NV9mcGdh X3Rsc19zZW5kX3RlYXJkb3duX2NtZChtZGV2LCBmbG93LCBzd2lkLCBmbGFncyk7CiB9CiAKLS0g CjIuMjAuMQoKCkZyb20gOGI5Y2U3YjdmYmUxNmY0NDA4Yzk3YzhkYzhlN2YzYjY1ZTA0MGI0YiBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSm9uYXRoYW4gTGVtb24gPGpvbmF0aGFuLmxl bW9uQGdtYWlsLmNvbT4KRGF0ZTogU3VuLCAxNCBBcHIgMjAxOSAxNDoyMToyOSAtMDcwMApTdWJq ZWN0OiBbUEFUQ0ggMzYvNDNdIHJvdXRlOiBBdm9pZCBjcmFzaCBmcm9tIGRlcmVmZXJlbmNpbmcg TlVMTCBydC0+ZnJvbQoKWyBVcHN0cmVhbSBjb21taXQgOWM2OWExMzIwNTE1MWMwZDgwMWRlOWY5 ZDgzYTgxOGU2ZThmNjBlYyBdCgpXaGVuIF9faXA2X3J0X3VwZGF0ZV9wbXR1KCkgaXMgY2FsbGVk LCBydC0+ZnJvbSBpcyBSQ1UgZGVyZWZlcmVuY2VkLCBidXQgaXMKbmV2ZXIgY2hlY2tlZCBmb3Ig bnVsbCAtIHJ0Nl9mbHVzaF9leGNlcHRpb25zKCkgbWF5IGhhdmUgcmVtb3ZlZCB0aGUgZW50cnku CgpbIDE5MTMuOTg5MDA0XSBSSVA6IDAwMTA6aXA2X3J0X2NhY2hlX2FsbG9jKzB4MTMvMHgxNzAK WyAxOTE0LjIwOTQxMF0gQ2FsbCBUcmFjZToKWyAxOTE0LjIxNDc5OF0gIDxJUlE+ClsgMTkxNC4y MTkyMjZdICBfX2lwNl9ydF91cGRhdGVfcG10dSsweGIwLzB4MTkwClsgMTkxNC4yMjg2NDldICBp cDZfdG5sX3htaXQrMHgyYzIvMHg5NzAgW2lwNl90dW5uZWxdClsgMTkxNC4yMzkyMjNdICA/IGlw Nl90bmxfcGFyc2VfdGx2X2VuY19saW0rMHgzMi8weDFhMCBbaXA2X3R1bm5lbF0KWyAxOTE0LjI1 MjQ4OV0gID8gX19ncmU2X3htaXQrMHgxNDgvMHg1MzAgW2lwNl9ncmVdClsgMTkxNC4yNjI2Nzhd ICBpcDZncmVfdHVubmVsX3htaXQrMHgxN2UvMHgzYzcgW2lwNl9ncmVdClsgMTkxNC4yNzM4MzFd ICBkZXZfaGFyZF9zdGFydF94bWl0KzB4OGQvMHgxZjAKWyAxOTE0LjI4MzA2MV0gIHNjaF9kaXJl Y3RfeG1pdCsweGZhLzB4MjMwClsgMTkxNC4yOTE1MjFdICBfX3FkaXNjX3J1bisweDE1NC8weDRi MApbIDE5MTQuMjk5NDA3XSAgbmV0X3R4X2FjdGlvbisweDEwZS8weDFmMApbIDE5MTQuMzA3Njc4 XSAgX19kb19zb2Z0aXJxKzB4Y2EvMHgyOTcKWyAxOTE0LjMxNTU2N10gIGlycV9leGl0KzB4OTYv MHhhMApbIDE5MTQuMzIyNDk0XSAgc21wX2FwaWNfdGltZXJfaW50ZXJydXB0KzB4NjgvMHgxMzAK WyAxOTE0LjMzMjY4M10gIGFwaWNfdGltZXJfaW50ZXJydXB0KzB4Zi8weDIwClsgMTkxNC4zNDE3 MjFdICA8L0lSUT4KCkZpeGVzOiBhNjg4ODZhNjkxODAgKCJuZXQvaXB2NjogTWFrZSBmcm9tIGlu IHJ0Nl9pbmZvIHJjdSBwcm90ZWN0ZWQiKQpTaWduZWQtb2ZmLWJ5OiBKb25hdGhhbiBMZW1vbiA8 am9uYXRoYW4ubGVtb25AZ21haWwuY29tPgpSZXZpZXdlZC1ieTogRXJpYyBEdW1hemV0IDxlZHVt YXpldEBnb29nbGUuY29tPgpSZXZpZXdlZC1ieTogRGF2aWQgQWhlcm4gPGRzYWhlcm5AZ21haWwu Y29tPgpSZXZpZXdlZC1ieTogTWFydGluIEthRmFpIExhdSA8a2FmYWlAZmIuY29tPgpTaWduZWQt b2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lw djYvcm91dGUuYyB8IDQgKysrKwogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKQoKZGlm ZiAtLWdpdCBhL25ldC9pcHY2L3JvdXRlLmMgYi9uZXQvaXB2Ni9yb3V0ZS5jCmluZGV4IDAwODZh Y2MxNmYzYy4uYjZhOTcxMTVhOTA2IDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9yb3V0ZS5jCisrKyBi L25ldC9pcHY2L3JvdXRlLmMKQEAgLTIzMzYsNiArMjMzNiwxMCBAQCBzdGF0aWMgdm9pZCBfX2lw Nl9ydF91cGRhdGVfcG10dShzdHJ1Y3QgZHN0X2VudHJ5ICpkc3QsIGNvbnN0IHN0cnVjdCBzb2Nr ICpzaywKIAogCQlyY3VfcmVhZF9sb2NrKCk7CiAJCWZyb20gPSByY3VfZGVyZWZlcmVuY2UocnQ2 LT5mcm9tKTsKKwkJaWYgKCFmcm9tKSB7CisJCQlyY3VfcmVhZF91bmxvY2soKTsKKwkJCXJldHVy bjsKKwkJfQogCQlucnQ2ID0gaXA2X3J0X2NhY2hlX2FsbG9jKGZyb20sIGRhZGRyLCBzYWRkcik7 CiAJCWlmIChucnQ2KSB7CiAJCQlydDZfZG9fdXBkYXRlX3BtdHUobnJ0NiwgbXR1KTsKLS0gCjIu MjAuMQoKCkZyb20gZjgyNjY0MDg2ZWIwNjllMWNjNzYyZjdjNzc4OTI0ZDI4YTljNmU5NCBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogUGlldGVyIEphbnNlbiB2YW4gVnV1cmVuIDxwaWV0 ZXIuamFuc2VudmFudnV1cmVuQG5ldHJvbm9tZS5jb20+CkRhdGU6IE1vbiwgMSBBcHIgMjAxOSAx OTozNjozMyAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMzcvNDNdIG5mcDogZmxvd2VyOiByZXBsYWNl IENGSSB3aXRoIHZsYW4gcHJlc2VudAoKWyBVcHN0cmVhbSBjb21taXQgZjdlZTc5OWE1MWRkYmNj MjA1ZWY2MTVmZTQyNGZiNTA4NGU5ZTBhYSBdCgpSZXBsYWNlIHZsYW4gQ0ZJIGJpdCB3aXRoIGEg dmxhbiBwcmVzZW50IGJpdCB0aGF0IGluZGljYXRlcyB0aGUKcHJlc2VuY2Ugb2YgYSB2bGFuIHRh Zy4gUHJldmlvdXNseSB0aGUgZHJpdmVyIGluY29ycmVjdGx5IGFzc3VtZWQKdGhhdCBhbiB2bGFu IGlkIG9mIDAgaXMgbm90IG1hdGNoYWJsZSwgdGhlcmVmb3JlIHdlIGluZGljYXRlIHZsYW4KcHJl c2VuY2Ugd2l0aCBhIHZsYW4gcHJlc2VudCBiaXQuCgpGaXhlczogNTU3MWU4YzlmMjQxICgibmZw OiBleHRlbmQgZmxvd2VyIG1hdGNoaW5nIGNhcGFiaWxpdGllcyIpClNpZ25lZC1vZmYtYnk6IFBp ZXRlciBKYW5zZW4gdmFuIFZ1dXJlbiA8cGlldGVyLmphbnNlbnZhbnZ1dXJlbkBuZXRyb25vbWUu Y29tPgpTaWduZWQtb2ZmLWJ5OiBMb3VpcyBQZWVucyA8bG91aXMucGVlbnNAbmV0cm9ub21lLmNv bT4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9uZXRyb25vbWUvbmZwL2Zsb3dlci9jbXNnLmgg IHwgIDIgKy0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L25ldHJvbm9tZS9uZnAvZmxvd2VyL21hdGNo LmMgfCAxNCArKysrKystLS0tLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyks IDkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbmV0cm9u b21lL25mcC9mbG93ZXIvY21zZy5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbmV0cm9ub21lL25m cC9mbG93ZXIvY21zZy5oCmluZGV4IDE1ZjQxY2ZlZjlmMS4uYmYwNjQ1ODI4OGYzIDEwMDY0NAot LS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9uZXRyb25vbWUvbmZwL2Zsb3dlci9jbXNnLmgKKysr IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbmV0cm9ub21lL25mcC9mbG93ZXIvY21zZy5oCkBAIC0y Niw3ICsyNiw3IEBACiAjZGVmaW5lIE5GUF9GTE9XRVJfTEFZRVIyX0dFTkVWRV9PUAlCSVQoNikK IAogI2RlZmluZSBORlBfRkxPV0VSX01BU0tfVkxBTl9QUklPCUdFTk1BU0soMTUsIDEzKQotI2Rl ZmluZSBORlBfRkxPV0VSX01BU0tfVkxBTl9DRkkJQklUKDEyKQorI2RlZmluZSBORlBfRkxPV0VS X01BU0tfVkxBTl9QUkVTRU5UCUJJVCgxMikKICNkZWZpbmUgTkZQX0ZMT1dFUl9NQVNLX1ZMQU5f VklECUdFTk1BU0soMTEsIDApCiAKICNkZWZpbmUgTkZQX0ZMT1dFUl9NQVNLX01QTFNfTEIJCUdF Tk1BU0soMzEsIDEyKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbmV0cm9ub21l L25mcC9mbG93ZXIvbWF0Y2guYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L25ldHJvbm9tZS9uZnAv Zmxvd2VyL21hdGNoLmMKaW5kZXggY2RmNzU1OTVmNjI3Li41NzFjYzhjZWQzM2UgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L25ldHJvbm9tZS9uZnAvZmxvd2VyL21hdGNoLmMKKysr IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbmV0cm9ub21lL25mcC9mbG93ZXIvbWF0Y2guYwpAQCAt MjYsMTQgKzI2LDEyIEBAIG5mcF9mbG93ZXJfY29tcGlsZV9tZXRhX3RjaShzdHJ1Y3QgbmZwX2Zs b3dlcl9tZXRhX3RjaSAqZnJhbWUsCiAJCQkJCQkgICAgICBGTE9XX0RJU1NFQ1RPUl9LRVlfVkxB TiwKIAkJCQkJCSAgICAgIHRhcmdldCk7CiAJCS8qIFBvcHVsYXRlIHRoZSB0Y2kgZmllbGQuICov Ci0JCWlmIChmbG93X3ZsYW4tPnZsYW5faWQgfHwgZmxvd192bGFuLT52bGFuX3ByaW9yaXR5KSB7 Ci0JCQl0bXBfdGNpID0gRklFTERfUFJFUChORlBfRkxPV0VSX01BU0tfVkxBTl9QUklPLAotCQkJ CQkgICAgIGZsb3dfdmxhbi0+dmxhbl9wcmlvcml0eSkgfAotCQkJCSAgRklFTERfUFJFUChORlBf RkxPV0VSX01BU0tfVkxBTl9WSUQsCi0JCQkJCSAgICAgZmxvd192bGFuLT52bGFuX2lkKSB8Ci0J CQkJICBORlBfRkxPV0VSX01BU0tfVkxBTl9DRkk7Ci0JCQlmcmFtZS0+dGNpID0gY3B1X3RvX2Jl MTYodG1wX3RjaSk7Ci0JCX0KKwkJdG1wX3RjaSA9IE5GUF9GTE9XRVJfTUFTS19WTEFOX1BSRVNF TlQ7CisJCXRtcF90Y2kgfD0gRklFTERfUFJFUChORlBfRkxPV0VSX01BU0tfVkxBTl9QUklPLAor CQkJCSAgICAgIGZsb3dfdmxhbi0+dmxhbl9wcmlvcml0eSkgfAorCQkJICAgRklFTERfUFJFUChO RlBfRkxPV0VSX01BU0tfVkxBTl9WSUQsCisJCQkJICAgICAgZmxvd192bGFuLT52bGFuX2lkKTsK KwkJZnJhbWUtPnRjaSA9IGNwdV90b19iZTE2KHRtcF90Y2kpOwogCX0KIH0KIAotLSAKMi4yMC4x CgoKRnJvbSAxNWE0ZDUyZmNmNmIyN2JmM2UzYTI0NjRkZTZkOTRmYzZjNmNmNGNhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQaWV0ZXIgSmFuc2VuIHZhbiBWdXVyZW4gPHBpZXRlci5q YW5zZW52YW52dXVyZW5AbmV0cm9ub21lLmNvbT4KRGF0ZTogTW9uLCAxIEFwciAyMDE5IDE5OjM2 OjM0IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAzOC80M10gbmZwOiBmbG93ZXI6IHJlbW92ZSB2bGFu IENGSSBiaXQgZnJvbSBwdXNoIHZsYW4gYWN0aW9uCgpbIFVwc3RyZWFtIGNvbW1pdCA0MmNkNTQ4 NGEyMmYxYTFiOTQ3ZTIxZTJhZjY1ZmE3ZGFiMDlkMDE3IF0KCldlIG5vIGxvbmdlciBzZXQgQ0ZJ IHdoZW4gcHVzaGluZyB2bGFuIHRhZ3MsIHRoZXJlZm9yZSB3ZSByZW1vdmUKdGhlIENGSSBiaXQg ZnJvbSBwdXNoIHZsYW4uCgpGaXhlczogMWExZTU4NmY1NGJmICgibmZwOiBhZGQgYmFzaWMgYWN0 aW9uIGNhcGFiaWxpdGllcyB0byBmbG93ZXIgb2ZmbG9hZHMiKQpTaWduZWQtb2ZmLWJ5OiBQaWV0 ZXIgSmFuc2VuIHZhbiBWdXVyZW4gPHBpZXRlci5qYW5zZW52YW52dXVyZW5AbmV0cm9ub21lLmNv bT4KU2lnbmVkLW9mZi1ieTogTG91aXMgUGVlbnMgPGxvdWlzLnBlZW5zQG5ldHJvbm9tZS5jb20+ Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbmV0cm9ub21lL25mcC9mbG93ZXIvYWN0aW9uLmMg fCAzICstLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbmV0cm9ub21lL25mcC9mbG93ZXIvY21zZy5o ICAgfCAxIC0KIDIgZmlsZXMgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDMgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbmV0cm9ub21lL25mcC9mbG93ZXIv YWN0aW9uLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9uZXRyb25vbWUvbmZwL2Zsb3dlci9hY3Rp b24uYwppbmRleCA4ZDU0YjM2YWZlZTguLjJiYmM1YjhmOTJjMiAxMDA2NDQKLS0tIGEvZHJpdmVy cy9uZXQvZXRoZXJuZXQvbmV0cm9ub21lL25mcC9mbG93ZXIvYWN0aW9uLmMKKysrIGIvZHJpdmVy cy9uZXQvZXRoZXJuZXQvbmV0cm9ub21lL25mcC9mbG93ZXIvYWN0aW9uLmMKQEAgLTQ5LDggKzQ5 LDcgQEAgbmZwX2ZsX3B1c2hfdmxhbihzdHJ1Y3QgbmZwX2ZsX3B1c2hfdmxhbiAqcHVzaF92bGFu LAogCiAJdG1wX3B1c2hfdmxhbl90Y2kgPQogCQlGSUVMRF9QUkVQKE5GUF9GTF9QVVNIX1ZMQU5f UFJJTywgdGNmX3ZsYW5fcHVzaF9wcmlvKGFjdGlvbikpIHwKLQkJRklFTERfUFJFUChORlBfRkxf UFVTSF9WTEFOX1ZJRCwgdGNmX3ZsYW5fcHVzaF92aWQoYWN0aW9uKSkgfAotCQlORlBfRkxfUFVT SF9WTEFOX0NGSTsKKwkJRklFTERfUFJFUChORlBfRkxfUFVTSF9WTEFOX1ZJRCwgdGNmX3ZsYW5f cHVzaF92aWQoYWN0aW9uKSk7CiAJcHVzaF92bGFuLT52bGFuX3RjaSA9IGNwdV90b19iZTE2KHRt cF9wdXNoX3ZsYW5fdGNpKTsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQv bmV0cm9ub21lL25mcC9mbG93ZXIvY21zZy5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbmV0cm9u b21lL25mcC9mbG93ZXIvY21zZy5oCmluZGV4IGJmMDY0NTgyODhmMy4uYWIwN2Q3NmI0MTg2IDEw MDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9uZXRyb25vbWUvbmZwL2Zsb3dlci9jbXNn LmgKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbmV0cm9ub21lL25mcC9mbG93ZXIvY21zZy5o CkBAIC04Miw3ICs4Miw2IEBACiAjZGVmaW5lIE5GUF9GTF9PVVRfRkxBR1NfVFlQRV9JRFgJR0VO TUFTSygyLCAwKQogCiAjZGVmaW5lIE5GUF9GTF9QVVNIX1ZMQU5fUFJJTwkJR0VOTUFTSygxNSwg MTMpCi0jZGVmaW5lIE5GUF9GTF9QVVNIX1ZMQU5fQ0ZJCQlCSVQoMTIpCiAjZGVmaW5lIE5GUF9G TF9QVVNIX1ZMQU5fVklECQlHRU5NQVNLKDExLCAwKQogCiAjZGVmaW5lIElQVjZfRkxPV19MQUJF TF9NQVNLCQljcHVfdG9fYmUzMigweDAwMGZmZmZmKQotLSAKMi4yMC4xCgoKRnJvbSA5NTEyOTFm ZDcxODg5OTk1MzhhMWUyY2NmMTZlM2EzODA5ZWVlYjcxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiA9P1VURi04P3E/VG9rZT0yMEg9QzM9QjhpbGFuZC1KPUMzPUI4cmdlbnNlbj89IDx0 b2tlQHJlZGhhdC5jb20+CkRhdGU6IFRodSwgNCBBcHIgMjAxOSAxNTowMTozMyArMDIwMApTdWJq ZWN0OiBbUEFUQ0ggMzkvNDNdIHNjaF9jYWtlOiBVc2UgdGNfc2tiX3Byb3RvY29sKCkgaGVscGVy IGZvciBnZXR0aW5nCiBwYWNrZXQgcHJvdG9jb2wKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1U eXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6 IDhiaXQKClsgVXBzdHJlYW0gY29tbWl0IGIyMTAwY2M1NmZjYThjNTFkMjhhYTQyYTlmMWZiY2Iy Y2YzNTE5OTYgXQoKV2Ugc2hvdWxkbid0IGJlIHVzaW5nIHNrYi0+cHJvdG9jb2wgZGlyZWN0bHkg YXMgdGhhdCB3aWxsIG1pc3MgY2FzZXMgd2l0aApoYXJkd2FyZS1hY2NlbGVyYXRlZCBWTEFOIHRh Z3MuIFVzZSB0aGUgaGVscGVyIGluc3RlYWQgdG8gZ2V0IHRoZSByaWdodApwcm90b2NvbCBudW1i ZXIuCgpSZXBvcnRlZC1ieTogS2V2aW4gRGFyYnlzaGlyZS1CcnlhbnQgPGtldmluQGRhcmJ5c2hp cmUtYnJ5YW50Lm1lLnVrPgpTaWduZWQtb2ZmLWJ5OiBUb2tlIEjDuGlsYW5kLUrDuHJnZW5zZW4g PHRva2VAcmVkaGF0LmNvbT4KLS0tCiBuZXQvc2NoZWQvc2NoX2Nha2UuYyB8IDIgKy0KIDEgZmls ZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25l dC9zY2hlZC9zY2hfY2FrZS5jIGIvbmV0L3NjaGVkL3NjaF9jYWtlLmMKaW5kZXggNzM5NDAyOTM3 MDBkLi5jNTVmZDVjOTMyZDQgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9zY2hfY2FrZS5jCisrKyBi L25ldC9zY2hlZC9zY2hfY2FrZS5jCkBAIC0xNTI2LDcgKzE1MjYsNyBAQCBzdGF0aWMgdTggY2Fr ZV9oYW5kbGVfZGlmZnNlcnYoc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTE2IHdhc2gpCiB7CiAJdTgg ZHNjcDsKIAotCXN3aXRjaCAoc2tiLT5wcm90b2NvbCkgeworCXN3aXRjaCAodGNfc2tiX3Byb3Rv Y29sKHNrYikpIHsKIAljYXNlIGh0b25zKEVUSF9QX0lQKToKIAkJZHNjcCA9IGlwdjRfZ2V0X2Rz ZmllbGQoaXBfaGRyKHNrYikpID4+IDI7CiAJCWlmICh3YXNoICYmIGRzY3ApCi0tIAoyLjIwLjEK CgpGcm9tIGFkNjRlNjI1MmRhZjY2M2M1N2ZmYmEwZDAwYzE1N2M1MTQxZGEzNGQgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT9Ub2tlPTIwSD1DMz1COGlsYW5kLUo9QzM9 QjhyZ2Vuc2VuPz0gPHRva2VAcmVkaGF0LmNvbT4KRGF0ZTogVGh1LCA0IEFwciAyMDE5IDE1OjAx OjMzICswMjAwClN1YmplY3Q6IFtQQVRDSCA0MC80M10gc2NoX2Nha2U6IE1ha2Ugc3VyZSB3ZSBj YW4gd3JpdGUgdGhlIElQIGhlYWRlciBiZWZvcmUKIGNoYW5naW5nIERTQ1AgYml0cwpNSU1FLVZl cnNpb246IDEuMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVu dC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAoKWyBVcHN0cmVhbSBjb21taXQgYzg3YjRlY2RiZThk YjI3ODY3YTdiN2Y4NDAyOTFjZDg0MzQwNmJkNyBdCgpUaGVyZSBpcyBub3QgYWN0dWFsbHkgYW55 IGd1YXJhbnRlZSB0aGF0IHRoZSBJUCBoZWFkZXJzIGFyZSB2YWxpZCBiZWZvcmUgd2UKYWNjZXNz IHRoZSBEU0NQIGJpdHMgb2YgdGhlIHBhY2tldHMuIEZpeCB0aGlzIHVzaW5nIHRoZSBzYW1lIGFw cHJvYWNoIHRha2VuCmluIHNjaF9kc21hcmsuCgpSZXBvcnRlZC1ieTogS2V2aW4gRGFyYnlzaGly ZS1CcnlhbnQgPGtldmluQGRhcmJ5c2hpcmUtYnJ5YW50Lm1lLnVrPgpTaWduZWQtb2ZmLWJ5OiBU b2tlIEjDuGlsYW5kLUrDuHJnZW5zZW4gPHRva2VAcmVkaGF0LmNvbT4KLS0tCiBuZXQvc2NoZWQv c2NoX2Nha2UuYyB8IDExICsrKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgMTEgaW5zZXJ0aW9u cygrKQoKZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9zY2hfY2FrZS5jIGIvbmV0L3NjaGVkL3NjaF9j YWtlLmMKaW5kZXggYzU1ZmQ1YzkzMmQ0Li45YTFiMGE5MzUzNGQgMTAwNjQ0Ci0tLSBhL25ldC9z Y2hlZC9zY2hfY2FrZS5jCisrKyBiL25ldC9zY2hlZC9zY2hfY2FrZS5jCkBAIC0xNTI0LDE2ICsx NTI0LDI3IEBAIHN0YXRpYyB2b2lkIGNha2Vfd2FzaF9kaWZmc2VydihzdHJ1Y3Qgc2tfYnVmZiAq c2tiKQogCiBzdGF0aWMgdTggY2FrZV9oYW5kbGVfZGlmZnNlcnYoc3RydWN0IHNrX2J1ZmYgKnNr YiwgdTE2IHdhc2gpCiB7CisJaW50IHdsZW4gPSBza2JfbmV0d29ya19vZmZzZXQoc2tiKTsKIAl1 OCBkc2NwOwogCiAJc3dpdGNoICh0Y19za2JfcHJvdG9jb2woc2tiKSkgewogCWNhc2UgaHRvbnMo RVRIX1BfSVApOgorCQl3bGVuICs9IHNpemVvZihzdHJ1Y3QgaXBoZHIpOworCQlpZiAoIXBza2Jf bWF5X3B1bGwoc2tiLCB3bGVuKSB8fAorCQkgICAgc2tiX3RyeV9tYWtlX3dyaXRhYmxlKHNrYiwg d2xlbikpCisJCQlyZXR1cm4gMDsKKwogCQlkc2NwID0gaXB2NF9nZXRfZHNmaWVsZChpcF9oZHIo c2tiKSkgPj4gMjsKIAkJaWYgKHdhc2ggJiYgZHNjcCkKIAkJCWlwdjRfY2hhbmdlX2RzZmllbGQo aXBfaGRyKHNrYiksIElORVRfRUNOX01BU0ssIDApOwogCQlyZXR1cm4gZHNjcDsKIAogCWNhc2Ug aHRvbnMoRVRIX1BfSVBWNik6CisJCXdsZW4gKz0gc2l6ZW9mKHN0cnVjdCBpcHY2aGRyKTsKKwkJ aWYgKCFwc2tiX21heV9wdWxsKHNrYiwgd2xlbikgfHwKKwkJICAgIHNrYl90cnlfbWFrZV93cml0 YWJsZShza2IsIHdsZW4pKQorCQkJcmV0dXJuIDA7CisKIAkJZHNjcCA9IGlwdjZfZ2V0X2RzZmll bGQoaXB2Nl9oZHIoc2tiKSkgPj4gMjsKIAkJaWYgKHdhc2ggJiYgZHNjcCkKIAkJCWlwdjZfY2hh bmdlX2RzZmllbGQoaXB2Nl9oZHIoc2tiKSwgSU5FVF9FQ05fTUFTSywgMCk7Ci0tIAoyLjIwLjEK CgpGcm9tIDM5YWMzOTg3YjQ5NzI2YmYwMWJhMWQ2NjEzYjdmZjM0NTE5YmQ2ZDggTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IERhbiBDYXJwZW50ZXIgPGRhbi5jYXJwZW50ZXJAb3JhY2xl LmNvbT4KRGF0ZTogV2VkLCAzIEFwciAyMDE5IDEwOjEyOjQ4ICswMzAwClN1YmplY3Q6IFtQQVRD SCA0MS80M10gTkZDOiBuY2k6IEFkZCBzb21lIGJvdW5kcyBjaGVja2luZyBpbgogbmNpX2hjaV9j bWRfcmVjZWl2ZWQoKQoKWyBVcHN0cmVhbSBjb21taXQgZDdlZTgxYWQwOWYwNzJlYWIxNjgxODc3 ZmM3MWVjMDVmOWMxYWU5MiBdCgpUaGlzIGlzIHNpbWlsYXIgdG8gY29tbWl0IDY3NGQ5ZGUwMmFh NyAoIk5GQzogRml4IHBvc3NpYmxlIG1lbW9yeQpjb3JydXB0aW9uIHdoZW4gaGFuZGxpbmcgU0hE TEMgSS1GcmFtZSBjb21tYW5kcyIpLgoKSSdtIG5vdCB0b3RhbGx5IHN1cmUsIGJ1dCBJIHRoaW5r IHRoYXQgY29tbWl0IGRlc2NyaXB0aW9uIG1heSBoYXZlCm92ZXJzdGF0ZWQgdGhlIGRhbmdlci4g IEkgd2FzIHVuZGVyIHRoZSBpbXByZXNzaW9uIHRoYXQgdGhpcyBkYXRhIGNhbWUKZnJvbSB0aGUg ZmlybXdhcmU/ICBJZiB5b3UgY2FuJ3QgdHJ1c3QgeW91ciBuZXR3b3JraW5nIGZpcm13YXJlLCB0 aGVuCnlvdSdyZSBhbHJlYWR5IGluIHRyb3VibGUuCgpBbnl3YXksIHRoZXNlIGRheXMgd2UgYWRk IGJvdW5kcyBjaGVja2luZyB3aGVyZSBldmVyIHdlIGNhbiBhbmQgd2UgY2FsbAppdCBrZXJuZWwg aGFyZGVuaW5nLiAgQmV0dGVyIHNhZmUgdGhhbiBzb3JyeS4KCkZpeGVzOiAxMWY1NGYyMjg2NDMg KCJORkM6IG5jaTogQWRkIEhDSSBvdmVyIE5DSSBwcm90b2NvbCBzdXBwb3J0IikKU2lnbmVkLW9m Zi1ieTogRGFuIENhcnBlbnRlciA8ZGFuLmNhcnBlbnRlckBvcmFjbGUuY29tPgotLS0KIG5ldC9u ZmMvbmNpL2hjaS5jIHwgOCArKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygr KQoKZGlmZiAtLWdpdCBhL25ldC9uZmMvbmNpL2hjaS5jIGIvbmV0L25mYy9uY2kvaGNpLmMKaW5k ZXggZGRmYzUyYWMxZjliLi5jMGQzMjNiNThlNzMgMTAwNjQ0Ci0tLSBhL25ldC9uZmMvbmNpL2hj aS5jCisrKyBiL25ldC9uZmMvbmNpL2hjaS5jCkBAIC0zMTIsNiArMzEyLDEwIEBAIHN0YXRpYyB2 b2lkIG5jaV9oY2lfY21kX3JlY2VpdmVkKHN0cnVjdCBuY2lfZGV2ICpuZGV2LCB1OCBwaXBlLAog CQljcmVhdGVfaW5mbyA9IChzdHJ1Y3QgbmNpX2hjaV9jcmVhdGVfcGlwZV9yZXNwICopc2tiLT5k YXRhOwogCQlkZXN0X2dhdGUgPSBjcmVhdGVfaW5mby0+ZGVzdF9nYXRlOwogCQluZXdfcGlwZSA9 IGNyZWF0ZV9pbmZvLT5waXBlOworCQlpZiAobmV3X3BpcGUgPj0gTkNJX0hDSV9NQVhfUElQRVMp IHsKKwkJCXN0YXR1cyA9IE5DSV9IQ0lfQU5ZX0VfTk9LOworCQkJZ290byBleGl0OworCQl9CiAK IAkJLyogU2F2ZSB0aGUgbmV3IGNyZWF0ZWQgcGlwZSBhbmQgYmluZCB3aXRoIGxvY2FsIGdhdGUs CiAJCSAqIHRoZSBkZXNjcmlwdGlvbiBmb3Igc2tiLT5kYXRhWzNdIGlzIGRlc3RpbmF0aW9uIGdh dGUgaWQKQEAgLTMzNiw2ICszNDAsMTAgQEAgc3RhdGljIHZvaWQgbmNpX2hjaV9jbWRfcmVjZWl2 ZWQoc3RydWN0IG5jaV9kZXYgKm5kZXYsIHU4IHBpcGUsCiAJCQlnb3RvIGV4aXQ7CiAJCX0KIAkJ ZGVsZXRlX2luZm8gPSAoc3RydWN0IG5jaV9oY2lfZGVsZXRlX3BpcGVfbm90aSAqKXNrYi0+ZGF0 YTsKKwkJaWYgKGRlbGV0ZV9pbmZvLT5waXBlID49IE5DSV9IQ0lfTUFYX1BJUEVTKSB7CisJCQlz dGF0dXMgPSBOQ0lfSENJX0FOWV9FX05PSzsKKwkJCWdvdG8gZXhpdDsKKwkJfQogCiAJCW5kZXYt PmhjaV9kZXYtPnBpcGVzW2RlbGV0ZV9pbmZvLT5waXBlXS5nYXRlID0KIAkJCQkJCU5DSV9IQ0lf SU5WQUxJRF9HQVRFOwotLSAKMi4yMC4xCgoKRnJvbSBhOTU1YWI0NjE2OGY2OGE5MjRmMmE0Yzc5 M2U2OGVjNGVlM2IwYjE2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW4gQ2FycGVu dGVyIDxkYW4uY2FycGVudGVyQG9yYWNsZS5jb20+CkRhdGU6IFdlZCwgMyBBcHIgMjAxOSAxMDox Mzo1MSArMDMwMApTdWJqZWN0OiBbUEFUQ0ggNDIvNDNdIG5mYzogbmNpOiBQb3RlbnRpYWwgb2Zm IGJ5IG9uZSBpbiAtPnBpcGVzW10gYXJyYXkKClsgVXBzdHJlYW0gY29tbWl0IDY0OTFkNjk4Mzk2 ZmQ1ZGE0OTQxOTgwYTM1Y2E3YzE2MmE2NzIwMTYgXQoKVGhpcyBpcyBzaW1pbGFyIHRvIGNvbW1p dCBlMjg1ZDViZmI3ZTkgKCJORkM6IEZpeCB0aGUgbnVtYmVyIG9mIHBpcGVzIikKd2hlcmUgd2Ug Y2hhbmdlZCBORkNfSENJX01BWF9QSVBFUyBmcm9tIDEyNyB0byAxMjguCgpBcyB0aGUgY29tbWVu dCBuZXh0IHRvIHRoZSBkZWZpbmUgZXhwbGFpbnMsIHRoZSBwaXBlIGlkZW50aWZpZXIgaXMgNwpi aXRzIGxvbmcuICBUaGUgaGlnaGVzdCBwb3NzaWJsZSBwaXBlIGlzIDEyNywgYnV0IHRoZSBudW1i ZXIgb2YgcG9zc2libGUKcGlwZXMgaXMgMTI4LiAgQXMgdGhlIGNvZGUgaXMgbm93LCB0aGVuIHRo ZXJlIGlzIHBvdGVudGlhbCBmb3IgYW4Kb3V0IG9mIGJvdW5kcyBhcnJheSBhY2Nlc3M6CgogICAg bmV0L25mYy9uY2kvaGNpLmM6Mjk3IG5jaV9oY2lfY21kX3JlY2VpdmVkKCkgd2FybjogYXJyYXkg b2ZmIGJ5IG9uZT8KICAgICduZGV2LT5oY2lfZGV2LT5waXBlc1twaXBlXScgJzAtMTI3ID09IDEy NycKCkZpeGVzOiAxMWY1NGYyMjg2NDMgKCJORkM6IG5jaTogQWRkIEhDSSBvdmVyIE5DSSBwcm90 b2NvbCBzdXBwb3J0IikKU2lnbmVkLW9mZi1ieTogRGFuIENhcnBlbnRlciA8ZGFuLmNhcnBlbnRl ckBvcmFjbGUuY29tPgotLS0KIGluY2x1ZGUvbmV0L25mYy9uY2lfY29yZS5oIHwgMiArLQogMSBm aWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEv aW5jbHVkZS9uZXQvbmZjL25jaV9jb3JlLmggYi9pbmNsdWRlL25ldC9uZmMvbmNpX2NvcmUuaApp bmRleCA4NzQ5OWI2YjM1ZDYuLmRmNWM2OWRiNjhhZiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQv bmZjL25jaV9jb3JlLmgKKysrIGIvaW5jbHVkZS9uZXQvbmZjL25jaV9jb3JlLmgKQEAgLTE2Niw3 ICsxNjYsNyBAQCBzdHJ1Y3QgbmNpX2Nvbm5faW5mbyB7CiAgKiBBY2NvcmRpbmcgdG8gc3BlY2lm aWNhdGlvbiAxMDIgNjIyIGNoYXB0ZXIgNC40IFBpcGVzLAogICogdGhlIHBpcGUgaWRlbnRpZmll ciBpcyA3IGJpdHMgbG9uZy4KICAqLwotI2RlZmluZSBOQ0lfSENJX01BWF9QSVBFUyAgICAgICAg ICAxMjcKKyNkZWZpbmUgTkNJX0hDSV9NQVhfUElQRVMgICAgICAgICAgMTI4CiAKIHN0cnVjdCBu Y2lfaGNpX2dhdGUgewogCXU4IGdhdGU7Ci0tIAoyLjIwLjEKCgpGcm9tIDBjZTY2MDQwZWY0MjNh ODM2NDFkMWU2ZmQ0NGU5MDM4MDEzYTk0ZGYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 ID0/VVRGLTg/cT9Ub2tlPTIwSD1DMz1COGlsYW5kLUo9QzM9QjhyZ2Vuc2VuPz0gPHRva2VAcmVk aGF0LmNvbT4KRGF0ZTogRnJpLCA1IEFwciAyMDE5IDE1OjAxOjU5ICswMjAwClN1YmplY3Q6IFtQ QVRDSCA0My80M10gc2NoX2Nha2U6IFNpbXBsaWZ5IGxvZ2ljIGluIGNha2Vfc2VsZWN0X3Rpbigp Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYt OApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CgpbIFVwc3RyZWFtIGNvbW1pdCA0OTc2 ZTNjNjgzZjMyOGJjNmYyZWRlZjU1NWE0ZmZlZTY1MjQ0ODZmIF0KClRoZSBsb2dpYyBpbiBjYWtl X3NlbGVjdF90aW4oKSB3YXMgZ2V0dGluZyBhIGJpdCBoYWlyeSwgYW5kIGl0IHR1cm5zIG91dCB3 ZQpjYW4gc2ltcGxpZnkgaXQgcXVpdGUgYSBiaXQuIFRoaXMgYWxzbyBhbGxvd3MgdXMgdG8gZ2V0 IHJpZCBvZiBvbmUgb2YgdGhlCnR3byBkaWZmc2VydiBwYXJzaW5nIGZ1bmN0aW9ucywgd2hpY2gg aGFzIHRoZSBhZGRlZCBiZW5lZml0IHRoYXQKYWxyZWFkeS16ZXJvZWQgRFNDUCBmaWVsZHMgd29u J3QgZ2V0IHJlLXdyaXR0ZW4uCgpTdWdnZXN0ZWQtYnk6IEtldmluIERhcmJ5c2hpcmUtQnJ5YW50 IDxsZGlyQGRhcmJ5c2hpcmUtYnJ5YW50Lm1lLnVrPgpTaWduZWQtb2ZmLWJ5OiBUb2tlIEjDuGls YW5kLUrDuHJnZW5zZW4gPHRva2VAcmVkaGF0LmNvbT4KLS0tCiBuZXQvc2NoZWQvc2NoX2Nha2Uu YyB8IDQ0ICsrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZp bGUgY2hhbmdlZCwgMTYgaW5zZXJ0aW9ucygrKSwgMjggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvbmV0L3NjaGVkL3NjaF9jYWtlLmMgYi9uZXQvc2NoZWQvc2NoX2Nha2UuYwppbmRleCA5YTFi MGE5MzUzNGQuLjdiNWNlMTM0MzQ3NCAxMDA2NDQKLS0tIGEvbmV0L3NjaGVkL3NjaF9jYWtlLmMK KysrIGIvbmV0L3NjaGVkL3NjaF9jYWtlLmMKQEAgLTE1MDgsMjAgKzE1MDgsNiBAQCBzdGF0aWMg dW5zaWduZWQgaW50IGNha2VfZHJvcChzdHJ1Y3QgUWRpc2MgKnNjaCwgc3RydWN0IHNrX2J1ZmYg Kip0b19mcmVlKQogCXJldHVybiBpZHggKyAodGluIDw8IDE2KTsKIH0KIAotc3RhdGljIHZvaWQg Y2FrZV93YXNoX2RpZmZzZXJ2KHN0cnVjdCBza19idWZmICpza2IpCi17Ci0Jc3dpdGNoIChza2It PnByb3RvY29sKSB7Ci0JY2FzZSBodG9ucyhFVEhfUF9JUCk6Ci0JCWlwdjRfY2hhbmdlX2RzZmll bGQoaXBfaGRyKHNrYiksIElORVRfRUNOX01BU0ssIDApOwotCQlicmVhazsKLQljYXNlIGh0b25z KEVUSF9QX0lQVjYpOgotCQlpcHY2X2NoYW5nZV9kc2ZpZWxkKGlwdjZfaGRyKHNrYiksIElORVRf RUNOX01BU0ssIDApOwotCQlicmVhazsKLQlkZWZhdWx0OgotCQlicmVhazsKLQl9Ci19Ci0KIHN0 YXRpYyB1OCBjYWtlX2hhbmRsZV9kaWZmc2VydihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MTYgd2Fz aCkKIHsKIAlpbnQgd2xlbiA9IHNrYl9uZXR3b3JrX29mZnNldChza2IpOwpAQCAtMTU2NCwyNSAr MTU1MCwyNyBAQCBzdGF0aWMgc3RydWN0IGNha2VfdGluX2RhdGEgKmNha2Vfc2VsZWN0X3Rpbihz dHJ1Y3QgUWRpc2MgKnNjaCwKIHsKIAlzdHJ1Y3QgY2FrZV9zY2hlZF9kYXRhICpxID0gcWRpc2Nf cHJpdihzY2gpOwogCXUzMiB0aW47CisJdTggZHNjcDsKIAotCWlmIChUQ19IX01BSihza2ItPnBy aW9yaXR5KSA9PSBzY2gtPmhhbmRsZSAmJgotCSAgICBUQ19IX01JTihza2ItPnByaW9yaXR5KSA+ IDAgJiYKLQkgICAgVENfSF9NSU4oc2tiLT5wcmlvcml0eSkgPD0gcS0+dGluX2NudCkgeworCS8q IFRpbiBzZWxlY3Rpb246IERlZmF1bHQgdG8gZGlmZnNlcnYtYmFzZWQgc2VsZWN0aW9uLCBhbGxv dyBvdmVycmlkaW5nCisJICogdXNpbmcgZmlyZXdhbGwgbWFya3Mgb3Igc2tiLT5wcmlvcml0eS4K KwkgKi8KKwlkc2NwID0gY2FrZV9oYW5kbGVfZGlmZnNlcnYoc2tiLAorCQkJCSAgICBxLT5yYXRl X2ZsYWdzICYgQ0FLRV9GTEFHX1dBU0gpOworCisJaWYgKHEtPnRpbl9tb2RlID09IENBS0VfRElG RlNFUlZfQkVTVEVGRk9SVCkKKwkJdGluID0gMDsKKworCWVsc2UgaWYgKFRDX0hfTUFKKHNrYi0+ cHJpb3JpdHkpID09IHNjaC0+aGFuZGxlICYmCisJCSBUQ19IX01JTihza2ItPnByaW9yaXR5KSA+ IDAgJiYKKwkJIFRDX0hfTUlOKHNrYi0+cHJpb3JpdHkpIDw9IHEtPnRpbl9jbnQpCiAJCXRpbiA9 IHEtPnRpbl9vcmRlcltUQ19IX01JTihza2ItPnByaW9yaXR5KSAtIDFdOwogCi0JCWlmIChxLT5y YXRlX2ZsYWdzICYgQ0FLRV9GTEFHX1dBU0gpCi0JCQljYWtlX3dhc2hfZGlmZnNlcnYoc2tiKTsK LQl9IGVsc2UgaWYgKHEtPnRpbl9tb2RlICE9IENBS0VfRElGRlNFUlZfQkVTVEVGRk9SVCkgewot CQkvKiBleHRyYWN0IHRoZSBEaWZmc2VydiBQcmVjZWRlbmNlIGZpZWxkLCBpZiBpdCBleGlzdHMg Ki8KLQkJLyogYW5kIGNsZWFyIERTQ1AgYml0cyBpZiB3YXNoaW5nICovCi0JCXRpbiA9IHEtPnRp bl9pbmRleFtjYWtlX2hhbmRsZV9kaWZmc2Vydihza2IsCi0JCQkJcS0+cmF0ZV9mbGFncyAmIENB S0VfRkxBR19XQVNIKV07CisJZWxzZSB7CisJCXRpbiA9IHEtPnRpbl9pbmRleFtkc2NwXTsKKwog CQlpZiAodW5saWtlbHkodGluID49IHEtPnRpbl9jbnQpKQogCQkJdGluID0gMDsKLQl9IGVsc2Ug ewotCQl0aW4gPSAwOwotCQlpZiAocS0+cmF0ZV9mbGFncyAmIENBS0VfRkxBR19XQVNIKQotCQkJ Y2FrZV93YXNoX2RpZmZzZXJ2KHNrYik7CiAJfQogCiAJcmV0dXJuICZxLT50aW5zW3Rpbl07Ci0t IAoyLjIwLjEKCg== ----Next_Part(Thu_Apr_18_15_53_40_2019_784)----