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=-4.0 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=no 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 9E645C433E0 for ; Wed, 29 Jul 2020 03:12:35 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 535DA2070B for ; Wed, 29 Jul 2020 03:12:35 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730859AbgG2DMe (ORCPT ); Tue, 28 Jul 2020 23:12:34 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40644 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728401AbgG2DMe (ORCPT ); Tue, 28 Jul 2020 23:12:34 -0400 Received: from shards.monkeyblade.net (shards.monkeyblade.net [IPv6:2620:137:e000::1:9]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 63CCDC061794 for ; Tue, 28 Jul 2020 20:12:34 -0700 (PDT) Received: from localhost (unknown [IPv6:2601:601:9f00:477::3d5]) (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 E0AF9128E7EAE for ; Tue, 28 Jul 2020 19:55:45 -0700 (PDT) Date: Tue, 28 Jul 2020 20:12:25 -0700 (PDT) Message-Id: <20200728.201225.326596561038069277.davem@davemloft.net> To: stable@vger.kernel.org Subject: [PATCHES] Networking From: David Miller X-Mailer: Mew version 6.8 on Emacs 26.3 Mime-Version: 1.0 Content-Type: Multipart/Mixed; boundary="--Next_Part(Tue_Jul_28_20_12_25_2020_646)--" 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]); Tue, 28 Jul 2020 19:55:47 -0700 (PDT) Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org ----Next_Part(Tue_Jul_28_20_12_25_2020_646)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Please queue up the following networking bug fixes for v5.4 and v5.7 -stable, respectively. Thank you. ----Next_Part(Tue_Jul_28_20_12_25_2020_646)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_54.mbox" RnJvbSBmNWNhZDg0NmRlZTU3MjcwYzZlMjcwYmEzM2ZhYWZlYWJmYzRjZjQ5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQZWlsaW4gWWUgPHllcGVpbGluLmNzQGdtYWlsLmNvbT4KRGF0 ZTogV2VkLCAyMiBKdWwgMjAyMCAxMToxOTowMSAtMDQwMApTdWJqZWN0OiBbUEFUQ0ggMDEvMjld IEFYLjI1OiBGaXggb3V0LW9mLWJvdW5kcyByZWFkIGluIGF4MjVfY29ubmVjdCgpCgpbIFVwc3Ry ZWFtIGNvbW1pdCAyZjJhN2ZmYWQ1YzZjYmYzZDQzOGU4MTNjZmRjODgyMzBlMTg1YmE2IF0KCkNo ZWNrcyBvbiBgYWRkcl9sZW5gIGFuZCBgZnNhLT5mc2FfYXgyNS5zYXgyNV9uZGlnaXNgIGFyZSBp bnN1ZmZpY2llbnQuCmF4MjVfY29ubmVjdCgpIGNhbiBnbyBvdXQgb2YgYm91bmRzIHdoZW4gYGZz YS0+ZnNhX2F4MjUuc2F4MjVfbmRpZ2lzYAplcXVhbHMgdG8gNyBvciA4LiBGaXggaXQuCgpUaGlz IGlzc3VlIGhhcyBiZWVuIHJlcG9ydGVkIGFzIGEgS01TQU4gdW5pbml0LXZhbHVlIGJ1ZywgYmVj YXVzZSBpbiBzdWNoCmEgY2FzZSwgYXgyNV9jb25uZWN0KCkgcmVhY2hlcyBpbnRvIHRoZSB1bmlu aXRpYWxpemVkIHBvcnRpb24gb2YgdGhlCmBzdHJ1Y3Qgc29ja2FkZHJfc3RvcmFnZWAgc3RhdGlj YWxseSBhbGxvY2F0ZWQgaW4gX19zeXNfY29ubmVjdCgpLgoKSXQgaXMgc2FmZSB0byByZW1vdmUg YGZzYS0+ZnNhX2F4MjUuc2F4MjVfbmRpZ2lzID4gQVgyNV9NQVhfRElHSVNgIGJlY2F1c2UKYGFk ZHJfbGVuYCBpcyBndWFyYW50ZWVkIHRvIGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0bwpgc2l6ZW9m KHN0cnVjdCBmdWxsX3NvY2thZGRyX2F4MjUpYC4KClJlcG9ydGVkLWJ5OiBzeXpib3QrYzgyNzUy MjI4ZWQ5NzViMGE2MjNAc3l6a2FsbGVyLmFwcHNwb3RtYWlsLmNvbQpMaW5rOiBodHRwczovL3N5 emthbGxlci5hcHBzcG90LmNvbS9idWc/aWQ9NTVlZjlkNjI5ZjNiM2Q3ZDcwYjY5NTU4MDE1YjYz YjQ4ZDAxYWY2NgpTaWduZWQtb2ZmLWJ5OiBQZWlsaW4gWWUgPHllcGVpbGluLmNzQGdtYWlsLmNv bT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0Pgot LS0KIG5ldC9heDI1L2FmX2F4MjUuYyB8IDQgKysrLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0 aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9heDI1L2FmX2F4MjUuYyBi L25ldC9heDI1L2FmX2F4MjUuYwppbmRleCBlNWEzZGMyODExNmQuLjA4NWE2NjMxZWIyMiAxMDA2 NDQKLS0tIGEvbmV0L2F4MjUvYWZfYXgyNS5jCisrKyBiL25ldC9heDI1L2FmX2F4MjUuYwpAQCAt MTE4Nyw3ICsxMTg3LDkgQEAgc3RhdGljIGludCBfX211c3RfY2hlY2sgYXgyNV9jb25uZWN0KHN0 cnVjdCBzb2NrZXQgKnNvY2ssCiAJaWYgKGFkZHJfbGVuID4gc2l6ZW9mKHN0cnVjdCBzb2NrYWRk cl9heDI1KSAmJgogCSAgICBmc2EtPmZzYV9heDI1LnNheDI1X25kaWdpcyAhPSAwKSB7CiAJCS8q IFZhbGlkIG51bWJlciBvZiBkaWdpcGVhdGVycyA/ICovCi0JCWlmIChmc2EtPmZzYV9heDI1LnNh eDI1X25kaWdpcyA8IDEgfHwgZnNhLT5mc2FfYXgyNS5zYXgyNV9uZGlnaXMgPiBBWDI1X01BWF9E SUdJUykgeworCQlpZiAoZnNhLT5mc2FfYXgyNS5zYXgyNV9uZGlnaXMgPCAxIHx8CisJCSAgICBh ZGRyX2xlbiA8IHNpemVvZihzdHJ1Y3Qgc29ja2FkZHJfYXgyNSkgKworCQkgICAgc2l6ZW9mKGF4 MjVfYWRkcmVzcykgKiBmc2EtPmZzYV9heDI1LnNheDI1X25kaWdpcykgewogCQkJZXJyID0gLUVJ TlZBTDsKIAkJCWdvdG8gb3V0X3JlbGVhc2U7CiAJCX0KLS0gCjIuMjYuMgoKCkZyb20gMGVlMzgx ZDFkNGI4MjJmMzMwZGY0MTAxZDVkY2Q5MDk5NTljNjliMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogUGVpbGluIFllIDx5ZXBlaWxpbi5jc0BnbWFpbC5jb20+CkRhdGU6IFdlZCwgMjIg SnVsIDIwMjAgMTI6MDU6MTIgLTA0MDAKU3ViamVjdDogW1BBVENIIDAyLzI5XSBBWC4yNTogUHJl dmVudCBvdXQtb2YtYm91bmRzIHJlYWQgaW4gYXgyNV9zZW5kbXNnKCkKClsgVXBzdHJlYW0gY29t bWl0IDg4ODViYjA2MjFmMDFhNmM4MmJlNjBhOTFlNWZjMGY2ZTJmNzExODYgXQoKQ2hlY2tzIG9u IGBhZGRyX2xlbmAgYW5kIGB1c2F4LT5zYXgyNV9uZGlnaXNgIGFyZSBpbnN1ZmZpY2llbnQuCmF4 MjVfc2VuZG1zZygpIGNhbiBnbyBvdXQgb2YgYm91bmRzIHdoZW4gYHVzYXgtPnNheDI1X25kaWdp c2AgZXF1YWxzIHRvIDcKb3IgOC4gRml4IGl0LgoKSXQgaXMgc2FmZSB0byByZW1vdmUgYHVzYXgt PnNheDI1X25kaWdpcyA+IEFYMjVfTUFYX0RJR0lTYCwgc2luY2UKYGFkZHJfbGVuYCBpcyBndWFy YW50ZWVkIHRvIGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0bwpgc2l6ZW9mKHN0cnVjdCBmdWxsX3Nv Y2thZGRyX2F4MjUpYAoKU2lnbmVkLW9mZi1ieTogUGVpbGluIFllIDx5ZXBlaWxpbi5jc0BnbWFp bC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5l dD4KLS0tCiBuZXQvYXgyNS9hZl9heDI1LmMgfCAzICsrLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5z ZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9heDI1L2FmX2F4MjUu YyBiL25ldC9heDI1L2FmX2F4MjUuYwppbmRleCAwODVhNjYzMWViMjIuLmRiZTdlZjJjN2U3NSAx MDA2NDQKLS0tIGEvbmV0L2F4MjUvYWZfYXgyNS5jCisrKyBiL25ldC9heDI1L2FmX2F4MjUuYwpA QCAtMTUwOSw3ICsxNTA5LDggQEAgc3RhdGljIGludCBheDI1X3NlbmRtc2coc3RydWN0IHNvY2tl dCAqc29jaywgc3RydWN0IG1zZ2hkciAqbXNnLCBzaXplX3QgbGVuKQogCQkJc3RydWN0IGZ1bGxf c29ja2FkZHJfYXgyNSAqZnNhID0gKHN0cnVjdCBmdWxsX3NvY2thZGRyX2F4MjUgKil1c2F4Owog CiAJCQkvKiBWYWxpZCBudW1iZXIgb2YgZGlnaXBlYXRlcnMgPyAqLwotCQkJaWYgKHVzYXgtPnNh eDI1X25kaWdpcyA8IDEgfHwgdXNheC0+c2F4MjVfbmRpZ2lzID4gQVgyNV9NQVhfRElHSVMpIHsK KwkJCWlmICh1c2F4LT5zYXgyNV9uZGlnaXMgPCAxIHx8IGFkZHJfbGVuIDwgc2l6ZW9mKHN0cnVj dCBzb2NrYWRkcl9heDI1KSArCisJCQkgICAgc2l6ZW9mKGF4MjVfYWRkcmVzcykgKiB1c2F4LT5z YXgyNV9uZGlnaXMpIHsKIAkJCQllcnIgPSAtRUlOVkFMOwogCQkJCWdvdG8gb3V0OwogCQkJfQot LSAKMi4yNi4yCgoKRnJvbSBkYzIwNjNhOWUzYzdhODVlMWE5MDRkYmVmZWY3OWU1YTdkYTNiMjA2 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBHZW9yZ2UgS2VubmVkeSA8Z2VvcmdlLmtl bm5lZHlAb3JhY2xlLmNvbT4KRGF0ZTogV2VkLCAxNSBKdWwgMjAyMCAwOTo1OTozMSAtMDQwMApT dWJqZWN0OiBbUEFUQ0ggMDMvMjldIGF4ODgxNzJhOiBmaXggYXg4ODE3MmFfdW5iaW5kKCkgZmFp bHVyZXMKClsgVXBzdHJlYW0gY29tbWl0IGMyOGQ5YTI4NTY2OGM3OTllZWFlMmY3ZjkzZTkyOWE2 MDI4YTRkNmQgXQoKSWYgYXg4ODE3MmFfdW5iaW5kKCkgZmFpbHMsIG1ha2Ugc3VyZSB0aGF0IHRo ZSByZXR1cm4gY29kZSBpcwpsZXNzIHRoYW4gemVybyBzbyB0aGF0IGNsZWFudXAgaXMgZG9uZSBw cm9wZXJseSBhbmQgYXZvaWQgVUFGLgoKRml4ZXM6IGE5YTUxYmQ3MjdkMSAoImF4ODgxNzJhOiBm aXggaW5mb3JtYXRpb24gbGVhayBvbiBzaG9ydCBhbnN3ZXJzIikKU2lnbmVkLW9mZi1ieTogR2Vv cmdlIEtlbm5lZHkgPGdlb3JnZS5rZW5uZWR5QG9yYWNsZS5jb20+ClJlcG9ydGVkLWJ5OiBzeXpi b3QrNGNkODRmNTI3YmY0YTEwZmM5YzFAc3l6a2FsbGVyLmFwcHNwb3RtYWlsLmNvbQpTaWduZWQt b2ZmLWJ5OiBKYWt1YiBLaWNpbnNraSA8a3ViYUBrZXJuZWwub3JnPgotLS0KIGRyaXZlcnMvbmV0 L3VzYi9heDg4MTcyYS5jIHwgMSArCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykKCmRp ZmYgLS1naXQgYS9kcml2ZXJzL25ldC91c2IvYXg4ODE3MmEuYyBiL2RyaXZlcnMvbmV0L3VzYi9h eDg4MTcyYS5jCmluZGV4IGFmMzk5NGUwODUzYi4uNjEwMWQ4MjEwMmU3IDEwMDY0NAotLS0gYS9k cml2ZXJzL25ldC91c2IvYXg4ODE3MmEuYworKysgYi9kcml2ZXJzL25ldC91c2IvYXg4ODE3MmEu YwpAQCAtMTk4LDYgKzE5OCw3IEBAIHN0YXRpYyBpbnQgYXg4ODE3MmFfYmluZChzdHJ1Y3QgdXNi bmV0ICpkZXYsIHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmKQogCXJldCA9IGFzaXhfcmVhZF9j bWQoZGV2LCBBWF9DTURfUkVBRF9OT0RFX0lELCAwLCAwLCBFVEhfQUxFTiwgYnVmLCAwKTsKIAlp ZiAocmV0IDwgRVRIX0FMRU4pIHsKIAkJbmV0ZGV2X2VycihkZXYtPm5ldCwgIkZhaWxlZCB0byBy ZWFkIE1BQyBhZGRyZXNzOiAlZFxuIiwgcmV0KTsKKwkJcmV0ID0gLUVJTzsKIAkJZ290byBmcmVl OwogCX0KIAltZW1jcHkoZGV2LT5uZXQtPmRldl9hZGRyLCBidWYsIEVUSF9BTEVOKTsKLS0gCjIu MjYuMgoKCkZyb20gNDg5MTFhMWY4NWFkYzQ4ZmY0MmFjZmI3ZmQ1ZmEyOGUwNjc5NzBlNiBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogVGFlaGVlIFlvbyA8YXA0MjAwNzNAZ21haWwuY29t PgpEYXRlOiBTdW4sIDE5IEp1bCAyMDIwIDEyOjExOjI0ICswMDAwClN1YmplY3Q6IFtQQVRDSCAw NC8yOV0gYm9uZGluZzogY2hlY2sgZXJyb3IgdmFsdWUgb2YgcmVnaXN0ZXJfbmV0ZGV2aWNlKCkK IGltbWVkaWF0ZWx5CgpbIFVwc3RyZWFtIGNvbW1pdCA1NDRmMjg3Yjg0OTU5MjAzMzY3Y2QyOWUx NmU3NzI3MTc2MTJmYWI0IF0KCklmIHJlZ2lzdGVyX25ldGRldmljZSgpIGlzIGZhaWxlZCwgbmV0 X2RldmljZSBzaG91bGQgbm90IGJlIHVzZWQKYmVjYXVzZSB2YXJpYWJsZXMgYXJlIHVuaW5pdGlh bGl6ZWQgb3IgZnJlZWQuClNvLCB0aGUgcm91dGluZSBzaG91bGQgYmUgc3RvcHBlZCBpbW1lZGlh dGVseS4KQnV0LCBib25kX2NyZWF0ZSgpIGRvZXNuJ3QgY2hlY2sgcmV0dXJuIHZhbHVlIG9mIHJl Z2lzdGVyX25ldGRldmljZSgpCmltbWVkaWF0ZWx5LiBUaGF0IHdpbGwgcmVzdWx0IGluIGEgcGFu aWMgYmVjYXVzZSBvZiB1c2luZyB1bmluaXRpYWxpemVkCm9yIGZyZWVkIG1lbW9yeS4KClRlc3Qg Y29tbWFuZHM6CiAgICBtb2Rwcm9iZSBuZXRkZXYtbm90aWZpZXItZXJyb3ItaW5qZWN0CiAgICBl Y2hvIC0yMiA+IC9zeXMva2VybmVsL2RlYnVnL25vdGlmaWVyLWVycm9yLWluamVjdC9uZXRkZXYv XAphY3Rpb25zL05FVERFVl9SRUdJU1RFUi9lcnJvcgogICAgbW9kcHJvYmUgYm9uZGluZyBtYXhf Ym9uZHM9MwoKU3BsYXQgbG9va3MgbGlrZToKWyAgMzc1LjAyODQ5Ml1bICBUMTkzXSBnZW5lcmFs IHByb3RlY3Rpb24gZmF1bHQsIHByb2JhYmx5IGZvciBub24tY2Fub25pY2FsIGFkZHJlc3MgMHg2 YjZiNmI2YjZiNmI2YjZiOiAwMDAwIFsjMV0gU01QIERFQlVHX1BBR0VBTExPQyBQVEkKWyAgMzc1 LjAzMzIwN11bICBUMTkzXSBDUFU6IDIgUElEOiAxOTMgQ29tbToga3dvcmtlci8yOjIgTm90IHRh aW50ZWQgNS44LjAtcmM0KyAjNjQ1ClsgIDM3NS4wMzYwNjhdWyAgVDE5M10gSGFyZHdhcmUgbmFt ZTogUUVNVSBTdGFuZGFyZCBQQyAoaTQ0MEZYICsgUElJWCwgMTk5NiksIEJJT1MgMS4xMC4yLTF1 YnVudHUxIDA0LzAxLzIwMTQKWyAgMzc1LjAzOTY3M11bICBUMTkzXSBXb3JrcXVldWU6IGV2ZW50 cyBsaW5rd2F0Y2hfZXZlbnQKWyAgMzc1LjA0MTU1N11bICBUMTkzXSBSSVA6IDAwMTA6ZGV2X2Fj dGl2YXRlKzB4NGEvMHgzNDAKWyAgMzc1LjA0MzM4MV1bICBUMTkzXSBDb2RlOiA0MCBhOCAwNCAw ZiA4NSBkYiAwMCAwMCAwMCA4YiA4MyAwOCAwNCAwMCAwMCA4NSBjMCAwZiA4NCAwZCAwMSAwMCAw MCAzMSBkMiA4OSBkMCA0OCA4ZCAwNCA0MCA0OCBjMSBlMCAwNyA0OCAwMyA4MyAwMCAwNCAwMCAw MCA8NDg+IDhiIDQ4IDEwIGY2IDQxIDEwIDAxIDc1IDA4IGYwIDgwIGExIGEwIDAxIDAwIDAwIGZk IDQ4IDg5IDQ4IDA4ClsgIDM3NS4wNTAyNjddWyAgVDE5M10gUlNQOiAwMDE4OmZmZmY5ZjhmYWNm Y2ZkZDggRUZMQUdTOiAwMDAxMDIwMgpbICAzNzUuMDUyNDEwXVsgIFQxOTNdIFJBWDogNmI2YjZi NmI2YjZiNmI2YiBSQlg6IGZmZmY5ZjhmYWU2ZWEwMDAgUkNYOiAwMDAwMDAwMDAwMDAwMDA2Clsg IDM3NS4wNTUxNzhdWyAgVDE5M10gUkRYOiAwMDAwMDAwMDAwMDAwMDAwIFJTSTogMDAwMDAwMDAw MDAwMDAwMCBSREk6IGZmZmY5ZjhmYWU2ZWEwMDAKWyAgMzc1LjA1Nzc2Ml1bICBUMTkzXSBSQlA6 IGZmZmY5ZjhmYWU2ZWEwMDAgUjA4OiAwMDAwMDAwMDAwMDAwMDAwIFIwOTogMDAwMDAwMDAwMDAw MDAwMApbICAzNzUuMDU5ODEwXVsgIFQxOTNdIFIxMDogMDAwMDAwMDAwMDAwMDAwMSBSMTE6IDAw MDAwMDAwMDAwMDAwMDAgUjEyOiBmZmZmOWY4ZmFjZmNmZTA4ClsgIDM3NS4wNjE4OTJdWyAgVDE5 M10gUjEzOiBmZmZmZmZmZjg4MzU4N2UwIFIxNDogMDAwMDAwMDAwMDAwMDAwMCBSMTU6IGZmZmY5 ZjhmYWU2ZWE1ODAKWyAgMzc1LjA2MzkzMV1bICBUMTkzXSBGUzogIDAwMDAwMDAwMDAwMDAwMDAo MDAwMCkgR1M6ZmZmZjlmOGZiYWUwMDAwMCgwMDAwKSBrbmxHUzowMDAwMDAwMDAwMDAwMDAwClsg IDM3NS4wNjYyMzldWyAgVDE5M10gQ1M6ICAwMDEwIERTOiAwMDAwIEVTOiAwMDAwIENSMDogMDAw MDAwMDA4MDA1MDAzMwpbICAzNzUuMDY3ODQxXVsgIFQxOTNdIENSMjogMDAwMDdmMmY1NDIxNjdh MCBDUjM6IDAwMDAwMDAxMmNlZTYwMDIgQ1I0OiAwMDAwMDAwMDAwMzYwNmUwClsgIDM3NS4wNjk2 NTddWyAgVDE5M10gRFIwOiAwMDAwMDAwMDAwMDAwMDAwIERSMTogMDAwMDAwMDAwMDAwMDAwMCBE UjI6IDAwMDAwMDAwMDAwMDAwMDAKWyAgMzc1LjA3MTQ3MV1bICBUMTkzXSBEUjM6IDAwMDAwMDAw MDAwMDAwMDAgRFI2OiAwMDAwMDAwMGZmZmUwZmYwIERSNzogMDAwMDAwMDAwMDAwMDQwMApbICAz NzUuMDczMjY5XVsgIFQxOTNdIENhbGwgVHJhY2U6ClsgIDM3NS4wNzQwMDVdWyAgVDE5M10gIGxp bmt3YXRjaF9kb19kZXYrMHg0ZC8weDUwClsgIDM3NS4wNzUwNTJdWyAgVDE5M10gIF9fbGlua3dh dGNoX3J1bl9xdWV1ZSsweDEwYi8weDIwMApbICAzNzUuMDc2MjQ0XVsgIFQxOTNdICBsaW5rd2F0 Y2hfZXZlbnQrMHgyMS8weDMwClsgIDM3NS4wNzcyNzRdWyAgVDE5M10gIHByb2Nlc3Nfb25lX3dv cmsrMHgyNTIvMHg2MDAKWyAgMzc1LjA3ODM3OV1bICBUMTkzXSAgPyBwcm9jZXNzX29uZV93b3Jr KzB4NjAwLzB4NjAwClsgIDM3NS4wNzk1MThdWyAgVDE5M10gIHdvcmtlcl90aHJlYWQrMHgzYy8w eDM4MApbICAzNzUuMDgwNTM0XVsgIFQxOTNdICA/IHByb2Nlc3Nfb25lX3dvcmsrMHg2MDAvMHg2 MDAKWyAgMzc1LjA4MTY2OF1bICBUMTkzXSAga3RocmVhZCsweDEzOS8weDE1MApbICAzNzUuMDgy NTY3XVsgIFQxOTNdICA/IGt0aHJlYWRfcGFyaysweDkwLzB4OTAKWyAgMzc1LjA4MzU2N11bICBU MTkzXSAgcmV0X2Zyb21fZm9yaysweDIyLzB4MzAKCkZpeGVzOiBlODI2ZWFmYTY1YzYgKCJib25k aW5nOiBDYWxsIG5ldGlmX2NhcnJpZXJfb2ZmIGFmdGVyIHJlZ2lzdGVyX25ldGRldmljZSIpClNp Z25lZC1vZmYtYnk6IFRhZWhlZSBZb28gPGFwNDIwMDczQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1i eTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0 L2JvbmRpbmcvYm9uZF9tYWluLmMgfCAxMCArKysrKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgNyBp bnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2Jv bmRpbmcvYm9uZF9tYWluLmMgYi9kcml2ZXJzL25ldC9ib25kaW5nL2JvbmRfbWFpbi5jCmluZGV4 IDcwM2M1YzJjODBlNS4uNDk5ODQ1YzMyYjFiIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ib25k aW5nL2JvbmRfbWFpbi5jCisrKyBiL2RyaXZlcnMvbmV0L2JvbmRpbmcvYm9uZF9tYWluLmMKQEAg LTQ4NjQsMTUgKzQ4NjQsMTkgQEAgaW50IGJvbmRfY3JlYXRlKHN0cnVjdCBuZXQgKm5ldCwgY29u c3QgY2hhciAqbmFtZSkKIAlib25kX2Rldi0+cnRubF9saW5rX29wcyA9ICZib25kX2xpbmtfb3Bz OwogCiAJcmVzID0gcmVnaXN0ZXJfbmV0ZGV2aWNlKGJvbmRfZGV2KTsKKwlpZiAocmVzIDwgMCkg eworCQlmcmVlX25ldGRldihib25kX2Rldik7CisJCXJ0bmxfdW5sb2NrKCk7CisKKwkJcmV0dXJu IHJlczsKKwl9CiAKIAluZXRpZl9jYXJyaWVyX29mZihib25kX2Rldik7CiAKIAlib25kX3dvcmtf aW5pdF9hbGwoYm9uZCk7CiAKIAlydG5sX3VubG9jaygpOwotCWlmIChyZXMgPCAwKQotCQlmcmVl X25ldGRldihib25kX2Rldik7Ci0JcmV0dXJuIHJlczsKKwlyZXR1cm4gMDsKIH0KIAogc3RhdGlj IGludCBfX25ldF9pbml0IGJvbmRfbmV0X2luaXQoc3RydWN0IG5ldCAqbmV0KQotLSAKMi4yNi4y CgoKRnJvbSA3MDJiZWI0MzA1OTliYmM3NjlkYWE4Y2Y4ZmRhYThkNzllNzFhZGI1IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBDb25nIFdhbmcgPHhpeW91Lndhbmdjb25nQGdtYWlsLmNv bT4KRGF0ZTogV2VkLCAyMiBKdWwgMjAyMCAxNjozMTo1NCAtMDcwMApTdWJqZWN0OiBbUEFUQ0gg MDUvMjldIGJvbmRpbmc6IGNoZWNrIHJldHVybiB2YWx1ZSBvZiByZWdpc3Rlcl9uZXRkZXZpY2Uo KSBpbgogYm9uZF9uZXdsaW5rKCkKClsgVXBzdHJlYW0gY29tbWl0IGM3NWQxZDUyNDhjMGM5Nzk5 NjA1MTgwOWFkMGU5ZjE1NGJhNWQ3NmUgXQoKVmVyeSBzaW1pbGFyIHRvIGNvbW1pdCA1NDRmMjg3 Yjg0OTUKKCJib25kaW5nOiBjaGVjayBlcnJvciB2YWx1ZSBvZiByZWdpc3Rlcl9uZXRkZXZpY2Uo KSBpbW1lZGlhdGVseSIpLAp3ZSBzaG91bGQgaW1tZWRpYXRlbHkgY2hlY2sgdGhlIHJldHVybiB2 YWx1ZSBvZiByZWdpc3Rlcl9uZXRkZXZpY2UoKQpiZWZvcmUgZG9pbmcgYW55dGhpbmcgZWxzZS4K CkZpeGVzOiAwMDVkYjMxZDVmNWYgKCJib25kaW5nOiBzZXQgY2FycmllciBvZmYgZm9yIGRldmlj ZXMgY3JlYXRlZCB0aHJvdWdoIG5ldGxpbmsiKQpSZXBvcnRlZC1hbmQtdGVzdGVkLWJ5OiBzeXpi b3QrYmJjM2ExMWM0ZGE2M2MxYjc0ZDZAc3l6a2FsbGVyLmFwcHNwb3RtYWlsLmNvbQpDYzogQmVu aWFtaW5vIEdhbHZhbmkgPGJnYWx2YW5pQHJlZGhhdC5jb20+CkNjOiBUYWVoZWUgWW9vIDxhcDQy MDA3M0BnbWFpbC5jb20+CkNjOiBKYXkgVm9zYnVyZ2ggPGoudm9zYnVyZ2hAZ21haWwuY29tPgpT aWduZWQtb2ZmLWJ5OiBDb25nIFdhbmcgPHhpeW91Lndhbmdjb25nQGdtYWlsLmNvbT4KU2lnbmVk LW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZl cnMvbmV0L2JvbmRpbmcvYm9uZF9uZXRsaW5rLmMgfCAzICstLQogMSBmaWxlIGNoYW5nZWQsIDEg aW5zZXJ0aW9uKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2Jv bmRpbmcvYm9uZF9uZXRsaW5rLmMgYi9kcml2ZXJzL25ldC9ib25kaW5nL2JvbmRfbmV0bGluay5j CmluZGV4IGI0M2I1MTY0NmIxMS4uZjBmOTEzOGU5NjdmIDEwMDY0NAotLS0gYS9kcml2ZXJzL25l dC9ib25kaW5nL2JvbmRfbmV0bGluay5jCisrKyBiL2RyaXZlcnMvbmV0L2JvbmRpbmcvYm9uZF9u ZXRsaW5rLmMKQEAgLTQ1NiwxMSArNDU2LDEwIEBAIHN0YXRpYyBpbnQgYm9uZF9uZXdsaW5rKHN0 cnVjdCBuZXQgKnNyY19uZXQsIHN0cnVjdCBuZXRfZGV2aWNlICpib25kX2RldiwKIAkJcmV0dXJu IGVycjsKIAogCWVyciA9IHJlZ2lzdGVyX25ldGRldmljZShib25kX2Rldik7Ci0KLQluZXRpZl9j YXJyaWVyX29mZihib25kX2Rldik7CiAJaWYgKCFlcnIpIHsKIAkJc3RydWN0IGJvbmRpbmcgKmJv bmQgPSBuZXRkZXZfcHJpdihib25kX2Rldik7CiAKKwkJbmV0aWZfY2Fycmllcl9vZmYoYm9uZF9k ZXYpOwogCQlib25kX3dvcmtfaW5pdF9hbGwoYm9uZCk7CiAJfQogCi0tIAoyLjI2LjIKCgpGcm9t IGZiNGM0OWEzNDQ0MmQ5NzBjZDUyNTA0NGRhOWYxZmJkMmFjNmQyZDEgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IFN1YmFzaCBBYmhpbm92IEthc2l2aXN3YW5hdGhhbiA8c3ViYXNoYWJA Y29kZWF1cm9yYS5vcmc+CkRhdGU6IFRodSwgMjMgSnVsIDIwMjAgMTE6MzE6NDggLTA2MDAKU3Vi amVjdDogW1BBVENIIDA2LzI5XSBkZXY6IERlZmVyIGZyZWUgb2Ygc2ticyBpbiBmbHVzaF9iYWNr bG9nCgpbIFVwc3RyZWFtIGNvbW1pdCA3ZGY1Y2I3NWNmYjhhY2Y5NmM3ZjIzNDI1MzBlYjQxZTBj MTFmNGMzIF0KCklSUXMgYXJlIGRpc2FibGVkIHdoZW4gZnJlZWluZyBza2JzIGluIGlucHV0IHF1 ZXVlLgpVc2UgdGhlIElSUSBzYWZlIHZhcmlhbnQgdG8gZnJlZSBza2JzIGhlcmUuCgpGaXhlczog MTQ1ZGQ1ZjljODhmICgibmV0OiBmbHVzaCB0aGUgc29mdG5ldCBiYWNrbG9nIGluIHByb2Nlc3Mg Y29udGV4dCIpClNpZ25lZC1vZmYtYnk6IFN1YmFzaCBBYmhpbm92IEthc2l2aXN3YW5hdGhhbiA8 c3ViYXNoYWJAY29kZWF1cm9yYS5vcmc+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8 ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvY29yZS9kZXYuYyB8IDIgKy0KIDEgZmlsZSBj aGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9j b3JlL2Rldi5jIGIvbmV0L2NvcmUvZGV2LmMKaW5kZXggNzI3OTY1NTY1ZDMxLi4yNTg1OGYxZjY3 Y2YgMTAwNjQ0Ci0tLSBhL25ldC9jb3JlL2Rldi5jCisrKyBiL25ldC9jb3JlL2Rldi5jCkBAIC01 MjI5LDcgKzUyMjksNyBAQCBzdGF0aWMgdm9pZCBmbHVzaF9iYWNrbG9nKHN0cnVjdCB3b3JrX3N0 cnVjdCAqd29yaykKIAlza2JfcXVldWVfd2Fsa19zYWZlKCZzZC0+aW5wdXRfcGt0X3F1ZXVlLCBz a2IsIHRtcCkgewogCQlpZiAoc2tiLT5kZXYtPnJlZ19zdGF0ZSA9PSBORVRSRUdfVU5SRUdJU1RF UklORykgewogCQkJX19za2JfdW5saW5rKHNrYiwgJnNkLT5pbnB1dF9wa3RfcXVldWUpOwotCQkJ a2ZyZWVfc2tiKHNrYik7CisJCQlkZXZfa2ZyZWVfc2tiX2lycShza2IpOwogCQkJaW5wdXRfcXVl dWVfaGVhZF9pbmNyKHNkKTsKIAkJfQogCX0KLS0gCjIuMjYuMgoKCkZyb20gNjVhNzEzYzlmMDQx NjE3ZmEwZGQxNDEyNzBiZDEzMzFjMzk0YmVlYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogWGllIEhlIDx4aWUuaGUuMDE0MUBnbWFpbC5jb20+CkRhdGU6IFRodSwgMTYgSnVsIDIwMjAg MTY6NDQ6MzMgLTA3MDAKU3ViamVjdDogW1BBVENIIDA3LzI5XSBkcml2ZXJzL25ldC93YW4veDI1 X2FzeTogRml4IHRvIG1ha2UgaXQgd29yawoKWyBVcHN0cmVhbSBjb21taXQgOGZkY2FiZWFjMzk4 MjRmZTY3NDgwZmQ5NTA4ZDgwMTYxYzU0MTg1NCBdCgpUaGlzIGRyaXZlciBpcyBub3Qgd29ya2lu ZyBiZWNhdXNlIG9mIHByb2JsZW1zIG9mIGl0cyByZWNlaXZpbmcgY29kZS4KVGhpcyBwYXRjaCBm aXhlcyBpdCB0byBtYWtlIGl0IHdvcmsuCgpXaGVuIHRoZSBkcml2ZXIgcmVjZWl2ZXMgYW4gTEFQ QiBmcmFtZSwgaXQgc2hvdWxkIGZpcnN0IHBhc3MgdGhlIGZyYW1lCnRvIHRoZSBMQVBCIG1vZHVs ZSB0byBwcm9jZXNzLiBBZnRlciBwcm9jZXNzaW5nLCB0aGUgTEFQQiBtb2R1bGUgcGFzc2VzCnRo ZSBkYXRhICh0aGUgcGFja2V0KSBiYWNrIHRvIHRoZSBkcml2ZXIsIHRoZSBkcml2ZXIgc2hvdWxk IHRoZW4gYWRkIGEKb25lLWJ5dGUgcHNldWRvIGhlYWRlciBhbmQgcGFzcyB0aGUgZGF0YSB0byB1 cHBlciBsYXllcnMuCgpUaGUgY2hhbmdlcyB0byB0aGUgIngyNV9hc3lfYnVtcCIgZnVuY3Rpb24g YW5kIHRoZQoieDI1X2FzeV9kYXRhX2luZGljYXRpb24iIGZ1bmN0aW9uIGFyZSB0byBjb3JyZWN0 bHkgaW1wbGVtZW50IHRoaXMKcHJvY2VkdXJlLgoKQWxzbywgdGhlICJ4MjVfYXN5X3VuZXNjIiBm dW5jdGlvbiBpZ25vcmVzIGFueSBmcmFtZSB0aGF0IGlzIHNob3J0ZXIKdGhhbiAzIGJ5dGVzLiBI b3dldmVyIHRoZSBzaG9ydGVzdCBmcmFtZXMgYXJlIDItYnl0ZSBsb25nLiBTbyB3ZSBuZWVkCnRv IGNoYW5nZSBpdCB0byBhbGxvdyAyLWJ5dGUgZnJhbWVzIHRvIHBhc3MuCgpDYzogRXJpYyBEdW1h emV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpDYzogTWFydGluIFNjaGlsbGVyIDxtc0BkZXYudGR0 LmRlPgpTaWduZWQtb2ZmLWJ5OiBYaWUgSGUgPHhpZS5oZS4wMTQxQGdtYWlsLmNvbT4KUmV2aWV3 ZWQtYnk6IE1hcnRpbiBTY2hpbGxlciA8bXNAZGV2LnRkdC5kZT4KU2lnbmVkLW9mZi1ieTogRGF2 aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L3dhbi94 MjVfYXN5LmMgfCAyMSArKysrKysrKysrKysrKy0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxNCBp bnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dh bi94MjVfYXN5LmMgYi9kcml2ZXJzL25ldC93YW4veDI1X2FzeS5jCmluZGV4IDkxNGJlNTg0NzM4 Ni4uY2RjYzM4MGI0YzI2IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93YW4veDI1X2FzeS5jCisr KyBiL2RyaXZlcnMvbmV0L3dhbi94MjVfYXN5LmMKQEAgLTE4Myw3ICsxODMsNyBAQCBzdGF0aWMg aW5saW5lIHZvaWQgeDI1X2FzeV91bmxvY2soc3RydWN0IHgyNV9hc3kgKnNsKQogCW5ldGlmX3dh a2VfcXVldWUoc2wtPmRldik7CiB9CiAKLS8qIFNlbmQgb25lIGNvbXBsZXRlbHkgZGVjYXBzdWxh dGVkIElQIGRhdGFncmFtIHRvIHRoZSBJUCBsYXllci4gKi8KKy8qIFNlbmQgYW4gTEFQQiBmcmFt ZSB0byB0aGUgTEFQQiBtb2R1bGUgdG8gcHJvY2Vzcy4gKi8KIAogc3RhdGljIHZvaWQgeDI1X2Fz eV9idW1wKHN0cnVjdCB4MjVfYXN5ICpzbCkKIHsKQEAgLTE5NSwxMyArMTk1LDEyIEBAIHN0YXRp YyB2b2lkIHgyNV9hc3lfYnVtcChzdHJ1Y3QgeDI1X2FzeSAqc2wpCiAJY291bnQgPSBzbC0+cmNv dW50OwogCWRldi0+c3RhdHMucnhfYnl0ZXMgKz0gY291bnQ7CiAKLQlza2IgPSBkZXZfYWxsb2Nf c2tiKGNvdW50KzEpOworCXNrYiA9IGRldl9hbGxvY19za2IoY291bnQpOwogCWlmIChza2IgPT0g TlVMTCkgewogCQluZXRkZXZfd2FybihzbC0+ZGV2LCAibWVtb3J5IHNxdWVlemUsIGRyb3BwaW5n IHBhY2tldFxuIik7CiAJCWRldi0+c3RhdHMucnhfZHJvcHBlZCsrOwogCQlyZXR1cm47CiAJfQot CXNrYl9wdXNoKHNrYiwgMSk7CS8qIExBUEIgaW50ZXJuYWwgY29udHJvbCAqLwogCXNrYl9wdXRf ZGF0YShza2IsIHNsLT5yYnVmZiwgY291bnQpOwogCXNrYi0+cHJvdG9jb2wgPSB4MjVfdHlwZV90 cmFucyhza2IsIHNsLT5kZXYpOwogCWVyciA9IGxhcGJfZGF0YV9yZWNlaXZlZChza2ItPmRldiwg c2tiKTsKQEAgLTIwOSw3ICsyMDgsNiBAQCBzdGF0aWMgdm9pZCB4MjVfYXN5X2J1bXAoc3RydWN0 IHgyNV9hc3kgKnNsKQogCQlrZnJlZV9za2Ioc2tiKTsKIAkJcHJpbnRrKEtFUk5fREVCVUcgIngy NV9hc3k6IGRhdGEgcmVjZWl2ZWQgZXJyIC0gJWRcbiIsIGVycik7CiAJfSBlbHNlIHsKLQkJbmV0 aWZfcngoc2tiKTsKIAkJZGV2LT5zdGF0cy5yeF9wYWNrZXRzKys7CiAJfQogfQpAQCAtMzU2LDEy ICszNTQsMjEgQEAgc3RhdGljIG5ldGRldl90eF90IHgyNV9hc3lfeG1pdChzdHJ1Y3Qgc2tfYnVm ZiAqc2tiLAogICovCiAKIC8qCi0gKglDYWxsZWQgd2hlbiBJIGZyYW1lIGRhdGEgYXJyaXZlcy4g V2UgZGlkIHRoZSB3b3JrIGFib3ZlIC0gdGhyb3cgaXQKLSAqCWF0IHRoZSBuZXQgbGF5ZXIuCisg KglDYWxsZWQgd2hlbiBJIGZyYW1lIGRhdGEgYXJyaXZlLiBXZSBhZGQgYSBwc2V1ZG8gaGVhZGVy IGZvciB1cHBlcgorICoJbGF5ZXJzIGFuZCBwYXNzIGl0IHRvIHVwcGVyIGxheWVycy4KICAqLwog CiBzdGF0aWMgaW50IHgyNV9hc3lfZGF0YV9pbmRpY2F0aW9uKHN0cnVjdCBuZXRfZGV2aWNlICpk ZXYsIHN0cnVjdCBza19idWZmICpza2IpCiB7CisJaWYgKHNrYl9jb3coc2tiLCAxKSkgeworCQlr ZnJlZV9za2Ioc2tiKTsKKwkJcmV0dXJuIE5FVF9SWF9EUk9QOworCX0KKwlza2JfcHVzaChza2Is IDEpOworCXNrYi0+ZGF0YVswXSA9IFgyNV9JRkFDRV9EQVRBOworCisJc2tiLT5wcm90b2NvbCA9 IHgyNV90eXBlX3RyYW5zKHNrYiwgZGV2KTsKKwogCXJldHVybiBuZXRpZl9yeChza2IpOwogfQog CkBAIC02NTcsNyArNjY0LDcgQEAgc3RhdGljIHZvaWQgeDI1X2FzeV91bmVzYyhzdHJ1Y3QgeDI1 X2FzeSAqc2wsIHVuc2lnbmVkIGNoYXIgcykKIAlzd2l0Y2ggKHMpIHsKIAljYXNlIFgyNV9FTkQ6 CiAJCWlmICghdGVzdF9hbmRfY2xlYXJfYml0KFNMRl9FUlJPUiwgJnNsLT5mbGFncykgJiYKLQkJ ICAgIHNsLT5yY291bnQgPiAyKQorCQkgICAgc2wtPnJjb3VudCA+PSAyKQogCQkJeDI1X2FzeV9i dW1wKHNsKTsKIAkJY2xlYXJfYml0KFNMRl9FU0NBUEUsICZzbC0+ZmxhZ3MpOwogCQlzbC0+cmNv dW50ID0gMDsKLS0gCjIuMjYuMgoKCkZyb20gYTc5ZjkxMTAzNzI1ZmU5YzViZWY2MTA1ZmIyZWYz NTIyMTczOTA2NiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQ2xhdWRpdSBNYW5vaWwg PGNsYXVkaXUubWFub2lsQG54cC5jb20+CkRhdGU6IFdlZCwgMjIgSnVsIDIwMjAgMTc6NDA6MTIg KzAzMDAKU3ViamVjdDogW1BBVENIIDA4LzI5XSBlbmV0YzogUmVtb3ZlIHRoZSBtZGlvIGJ1cyBv biBQRiBwcm9iZSBiYWlsb3V0CgpbIFVwc3RyZWFtIGNvbW1pdCAyNmNiNzA4NWM4OTg0ZTViNzFk NjVjMzc0YTEzNTEzNGVkOGNhYmIzIF0KCkZvciBFTkVUQyBwb3J0cyB0aGF0IHJlZ2lzdGVyIGFu IGV4dGVybmFsIE1ESU8gYnVzLAp0aGUgYnVzIGRvZXNuJ3QgZ2V0IHJlbW92ZWQgb24gdGhlIGVy cm9yIGJhaWxvdXQgcGF0aApvZiBlbmV0Y19wZl9wcm9iZSgpLgoKVGhpcyBpc3N1ZSBiZWNhbWUg bXVjaCBtb3JlIHZpc2libGUgYWZ0ZXIgcmVjZW50Ogpjb21taXQgMDcwOTVjMDI1YWMyICgibmV0 OiBlbmV0YzogVXNlIERUIHByb3RvY29sIGluZm9ybWF0aW9uIHRvIHNldCB1cCB0aGUgcG9ydHMi KQpCZWZvcmUgdGhpcyBjb21taXQsIG9uZSBjb3VsZCBtYWtlIHByb2JpbmcgZmFpbCBvbiB0aGUg ZXJyb3IKcGF0aCBvbmx5IGJ5IGhhdmluZyByZWdpc3Rlcl9uZXRkZXYoKSBmYWlsLCB3aGljaCBp cyB1bmxpa2VseS4KQnV0IGFmdGVyIHRoaXMgY29tbWl0LCBiZWNhdXNlIGl0IG1vdmVkIHRoZSBl bmV0Y19vZl9waHlfZ2V0KCkKY2FsbCB1cCBpbiB0aGUgcHJvYmluZyBzZXF1ZW5jZSwgbm93IHdl IGNhbiB0cmlnZ2VyIGFuIG1kaW9idXNfZnJlZSgpCmJ1ZyBqdXN0IGJ5IGZvcmNpbmcgZW5ldGNf YWxsb2NfbXNpeCgpIHRvIHJldHVybiBlcnJvciwgaS5lLiB3aXRoIHRoZQoncGNpPW5vbXNpJyBr ZXJuZWwgYm9vdGFyZyAoc2luY2UgRU5FVEMgcmVsaWVzIG9uIE1TSSBzdXBwb3J0IHRvIHdvcmsp LAphcyB0aGUgY2FsbHRyYWNlIGJlbG93IHNob3dzOgoKa2VybmVsIEJVRyBhdCAvaG9tZS9laXov d29yay9lbmV0Yy9uZXQvZHJpdmVycy9uZXQvcGh5L21kaW9fYnVzLmM6NjQ4IQpJbnRlcm5hbCBl cnJvcjogT29wcyAtIEJVRzogMCBbIzFdIFBSRUVNUFQgU01QClsuLi5dCkhhcmR3YXJlIG5hbWU6 IExTMTAyOEEgUkRCIEJvYXJkIChEVCkKcHN0YXRlOiA4MDAwMDAwNSAoTnpjdiBkYWlmIC1QQU4g LVVBTyBCVFlQRT0tLSkKcGMgOiBtZGlvYnVzX2ZyZWUrMHg1MC8weDU4CmxyIDogZGV2bV9tZGlv YnVzX2ZyZWUrMHgxNC8weDIwClsuLi5dCkNhbGwgdHJhY2U6CiBtZGlvYnVzX2ZyZWUrMHg1MC8w eDU4CiBkZXZtX21kaW9idXNfZnJlZSsweDE0LzB4MjAKIHJlbGVhc2Vfbm9kZXMrMHgxMzgvMHgy MjgKIGRldnJlc19yZWxlYXNlX2FsbCsweDM4LzB4NjAKIHJlYWxseV9wcm9iZSsweDFjOC8weDM2 OAogZHJpdmVyX3Byb2JlX2RldmljZSsweDVjLzB4YzAKIGRldmljZV9kcml2ZXJfYXR0YWNoKzB4 NzQvMHg4MAogX19kcml2ZXJfYXR0YWNoKzB4OGMvMHhkOAogYnVzX2Zvcl9lYWNoX2RldisweDdj LzB4ZDgKIGRyaXZlcl9hdHRhY2grMHgyNC8weDMwCiBidXNfYWRkX2RyaXZlcisweDE1NC8weDIw MAogZHJpdmVyX3JlZ2lzdGVyKzB4NjQvMHgxMjAKIF9fcGNpX3JlZ2lzdGVyX2RyaXZlcisweDQ0 LzB4NTAKIGVuZXRjX3BmX2RyaXZlcl9pbml0KzB4MjQvMHgzMAogZG9fb25lX2luaXRjYWxsKzB4 NjAvMHgxYzAKIGtlcm5lbF9pbml0X2ZyZWVhYmxlKzB4MWZjLzB4Mjc0CiBrZXJuZWxfaW5pdCsw eDE0LzB4MTEwCiByZXRfZnJvbV9mb3JrKzB4MTAvMHgzNAoKRml4ZXM6IGViZmNiMjNkNjJhYiAo ImVuZXRjOiBBZGQgRU5FVEMgUEYgbGV2ZWwgZXh0ZXJuYWwgTURJTyBzdXBwb3J0IikKU2lnbmVk LW9mZi1ieTogQ2xhdWRpdSBNYW5vaWwgPGNsYXVkaXUubWFub2lsQG54cC5jb20+ClNpZ25lZC1v ZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJz L25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZW5ldGMvZW5ldGNfcGYuYyB8IDEgKwogMSBmaWxlIGNo YW5nZWQsIDEgaW5zZXJ0aW9uKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQv ZnJlZXNjYWxlL2VuZXRjL2VuZXRjX3BmLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2Nh bGUvZW5ldGMvZW5ldGNfcGYuYwppbmRleCBiNzM0MjFjM2UyNWIuLjc0ODQ3YWE2NDRmMSAxMDA2 NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2VuZXRjL2VuZXRjX3BmLmMK KysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2VuZXRjL2VuZXRjX3BmLmMKQEAg LTg4NSw2ICs4ODUsNyBAQCBzdGF0aWMgaW50IGVuZXRjX3BmX3Byb2JlKHN0cnVjdCBwY2lfZGV2 ICpwZGV2LAogCXJldHVybiAwOwogCiBlcnJfcmVnX25ldGRldjoKKwllbmV0Y19tZGlvX3JlbW92 ZShwZik7CiAJZW5ldGNfb2ZfcHV0X3BoeShwcml2KTsKIAllbmV0Y19mcmVlX21zaXgocHJpdik7 CiBlcnJfYWxsb2NfbXNpeDoKLS0gCjIuMjYuMgoKCkZyb20gMDgyMTJjYzQ4ZTA4MjlmNzhiNWJj M2Y2ODY2MjY3NmFhOTM2OWE1NiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQ29uZyBX YW5nIDx4aXlvdS53YW5nY29uZ0BnbWFpbC5jb20+CkRhdGU6IFdlZCwgMjIgSnVsIDIwMjAgMTg6 NTY6MjUgLTA3MDAKU3ViamVjdDogW1BBVENIIDA5LzI5XSBnZW5ldmU6IGZpeCBhbiB1bmluaXRp YWxpemVkIHZhbHVlIGluCiBnZW5ldmVfY2hhbmdlbGluaygpCgpbIFVwc3RyZWFtIGNvbW1pdCAz MjgxOGMwNzVjNTRiYjBjYWU0NGRkNmY3YWIwMGIwMWM1MmI4MzcyIF0KCmdlbmV2ZV9ubDJpbmZv KCkgc2V0cyAnZGYnIGNvbmRpdGlvbmFsbHksIHNvIHdlIGhhdmUgdG8KaW5pdGlhbGl6ZSBpdCBi eSBjb3B5aW5nIHRoZSB2YWx1ZSBmcm9tIGV4aXN0aW5nIGdlbmV2ZQpkZXZpY2UgaW4gZ2VuZXZl X2NoYW5nZWxpbmsoKS4KCkZpeGVzOiA1NmMwOWRlMzQ3ZTQgKCJnZW5ldmU6IGFsbG93IGNoYW5n aW5nIERGIGJlaGF2aW9yIGFmdGVyIGNyZWF0aW9uIikKUmVwb3J0ZWQtYnk6IHN5emJvdCs3ZWJj MmUwODhhZjVlNGMwYzlmYUBzeXprYWxsZXIuYXBwc3BvdG1haWwuY29tCkNjOiBTYWJyaW5hIER1 YnJvY2EgPHNkQHF1ZWFzeXNuYWlsLm5ldD4KU2lnbmVkLW9mZi1ieTogQ29uZyBXYW5nIDx4aXlv dS53YW5nY29uZ0BnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBTYWJyaW5hIER1YnJvY2EgPHNkQHF1 ZWFzeXNuYWlsLm5ldD4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZl bWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2dlbmV2ZS5jIHwgMiArLQogMSBmaWxlIGNoYW5n ZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9u ZXQvZ2VuZXZlLmMgYi9kcml2ZXJzL25ldC9nZW5ldmUuYwppbmRleCAxOWQ5ZDc4YTZkZjIuLmFk ZmRmNjI2MGIyNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZ2VuZXZlLmMKKysrIGIvZHJpdmVy cy9uZXQvZ2VuZXZlLmMKQEAgLTE2MTUsMTEgKzE2MTUsMTEgQEAgc3RhdGljIGludCBnZW5ldmVf Y2hhbmdlbGluayhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3QgbmxhdHRyICp0YltdLAog CQkJICAgICBzdHJ1Y3QgbmV0bGlua19leHRfYWNrICpleHRhY2spCiB7CiAJc3RydWN0IGdlbmV2 ZV9kZXYgKmdlbmV2ZSA9IG5ldGRldl9wcml2KGRldik7CisJZW51bSBpZmxhX2dlbmV2ZV9kZiBk ZiA9IGdlbmV2ZS0+ZGY7CiAJc3RydWN0IGdlbmV2ZV9zb2NrICpnczQsICpnczY7CiAJc3RydWN0 IGlwX3R1bm5lbF9pbmZvIGluZm87CiAJYm9vbCBtZXRhZGF0YTsKIAlib29sIHVzZV91ZHA2X3J4 X2NoZWNrc3VtczsKLQllbnVtIGlmbGFfZ2VuZXZlX2RmIGRmOwogCWJvb2wgdHRsX2luaGVyaXQ7 CiAJaW50IGVycjsKIAotLSAKMi4yNi4yCgoKRnJvbSBjMGE3NTQzYzNiMTViNTRmMGFkMDgwNzM3 OTFiY2U1MTQwYmRmOTY4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBDaHJpc3RvcGhl IEpBSUxMRVQgPGNocmlzdG9waGUuamFpbGxldEB3YW5hZG9vLmZyPgpEYXRlOiBUdWUsIDE0IEp1 bCAyMDIwIDEzOjAwOjI3ICswMjAwClN1YmplY3Q6IFtQQVRDSCAxMC8yOV0gaGlwcGk6IEZpeCBh IHNpemUgdXNlZCBpbiBhICdwY2lfZnJlZV9jb25zaXN0ZW50KCknIGluCiBhbiBlcnJvciBoYW5k bGluZyBwYXRoCgpbIFVwc3RyZWFtIGNvbW1pdCAzMTk1YzQ3MDZiMDAxMDZhYTgyYzczYWNkMjgz NDBmYThmYzJiZmMxIF0KClRoZSBzaXplIHVzZWQgd2hlbiBjYWxsaW5nICdwY2lfYWxsb2NfY29u c2lzdGVudCgpJyBhbmQKJ3BjaV9mcmVlX2NvbnNpc3RlbnQoKScgc2hvdWxkIG1hdGNoLgoKRml4 IGl0IGFuZCBoYXZlIGl0IGNvbnNpc3RlbnQgd2l0aCB0aGUgY29ycmVzcG9uZGluZyBjYWxsIGlu ICdycl9jbG9zZSgpJy4KCkZpeGVzOiAxZGExNzdlNGMzZjQgKCJMaW51eC0yLjYuMTItcmMyIikK U2lnbmVkLW9mZi1ieTogQ2hyaXN0b3BoZSBKQUlMTEVUIDxjaHJpc3RvcGhlLmphaWxsZXRAd2Fu YWRvby5mcj4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQu bmV0PgotLS0KIGRyaXZlcnMvbmV0L2hpcHBpL3JydW5uZXIuYyB8IDIgKy0KIDEgZmlsZSBjaGFu Z2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMv bmV0L2hpcHBpL3JydW5uZXIuYyBiL2RyaXZlcnMvbmV0L2hpcHBpL3JydW5uZXIuYwppbmRleCAy YTZlYzUzOTQ5NjYuLmE0YjNmY2U2OWVjZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvaGlwcGkv cnJ1bm5lci5jCisrKyBiL2RyaXZlcnMvbmV0L2hpcHBpL3JydW5uZXIuYwpAQCAtMTI0Miw3ICsx MjQyLDcgQEAgc3RhdGljIGludCBycl9vcGVuKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiAJCXJy cHJpdi0+aW5mbyA9IE5VTEw7CiAJfQogCWlmIChycnByaXYtPnJ4X2N0cmwpIHsKLQkJcGNpX2Zy ZWVfY29uc2lzdGVudChwZGV2LCBzaXplb2Yoc3RydWN0IHJpbmdfY3RybCksCisJCXBjaV9mcmVl X2NvbnNpc3RlbnQocGRldiwgMjU2ICogc2l6ZW9mKHN0cnVjdCByaW5nX2N0cmwpLAogCQkJCSAg ICBycnByaXYtPnJ4X2N0cmwsIHJycHJpdi0+cnhfY3RybF9kbWEpOwogCQlycnByaXYtPnJ4X2N0 cmwgPSBOVUxMOwogCX0KLS0gCjIuMjYuMgoKCkZyb20gMGVkYTFjNzk1NDg0OTY1NTgyYjljZjRh ZGMxZjgzODRhNjg2YmZlOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogV2VpIFlvbmdq dW4gPHdlaXlvbmdqdW4xQGh1YXdlaS5jb20+CkRhdGU6IE1vbiwgMTMgSnVsIDIwMjAgMjM6NTk6 NTAgKzA4MDAKU3ViamVjdDogW1BBVENIIDExLzI5XSBpcDZfZ3JlOiBmaXggbnVsbC1wdHItZGVy ZWYgaW4gaXA2Z3JlX2luaXRfbmV0KCkKClsgVXBzdHJlYW0gY29tbWl0IDQ2ZWY1Yjg5ZWMwZWNm MjkwZDc0YzRhZWU4NDRmMDYzOTMzYzRkYTQgXQoKS0FTQU4gcmVwb3J0IG51bGwtcHRyLWRlcmVm IGVycm9yIHdoZW4gcmVnaXN0ZXJfbmV0ZGV2KCkgZmFpbGVkOgoKS0FTQU46IG51bGwtcHRyLWRl cmVmIGluIHJhbmdlIFsweDAwMDAwMDAwMDAwMDAzYzAtMHgwMDAwMDAwMDAwMDAwM2M3XQpDUFU6 IDIgUElEOiA0MjIgQ29tbTogaXAgTm90IHRhaW50ZWQgNS44LjAtcmM0KyAjMTIKQ2FsbCBUcmFj ZToKIGlwNmdyZV9pbml0X25ldCsweDRhYi8weDU4MAogPyBpcDZncmVfdHVubmVsX3VuaW5pdCsw eDNmMC8weDNmMAogb3BzX2luaXQrMHhhOC8weDNjMAogc2V0dXBfbmV0KzB4MmRlLzB4N2UwCiA/ IHJjdV9yZWFkX2xvY2tfYmhfaGVsZCsweGIwLzB4YjAKID8gb3BzX2luaXQrMHgzYzAvMHgzYzAK ID8ga2FzYW5fdW5wb2lzb25fc2hhZG93KzB4MzMvMHg0MAogPyBfX2thc2FuX2ttYWxsb2MuY29u c3Rwcm9wLjArMHhjMi8weGQwCiBjb3B5X25ldF9ucysweDI3ZC8weDUzMAogY3JlYXRlX25ld19u YW1lc3BhY2VzKzB4MzgyLzB4YTMwCiB1bnNoYXJlX25zcHJveHlfbmFtZXNwYWNlcysweGExLzB4 MWQwCiBrc3lzX3Vuc2hhcmUrMHgzOWMvMHg3ODAKID8gd2Fsa19wcm9jZXNzX3RyZWUrMHgyYTAv MHgyYTAKID8gdHJhY2VfaGFyZGlycXNfb24rMHg0YS8weDFiMAogPyBfcmF3X3NwaW5fdW5sb2Nr X2lycSsweDFmLzB4MzAKID8gc3lzY2FsbF90cmFjZV9lbnRlcisweDFhNy8weDMzMAogPyBkb19z eXNjYWxsXzY0KzB4MWMvMHhhMAogX194NjRfc3lzX3Vuc2hhcmUrMHgyZC8weDQwCiBkb19zeXNj YWxsXzY0KzB4NTYvMHhhMAogZW50cnlfU1lTQ0FMTF82NF9hZnRlcl9od2ZyYW1lKzB4NDQvMHhh OQoKaXA2Z3JlX3R1bm5lbF91bmluaXQoKSBoYXMgc2V0ICdpZ24tPmZiX3R1bm5lbF9kZXYnIHRv IE5VTEwsIGxhdGVyCmFjY2VzcyB0byBpZ24tPmZiX3R1bm5lbF9kZXYgY2F1c2UgbnVsbC1wdHIt ZGVyZWYuIEZpeCBpdCBieSBzYXZpbmcKJ2lnbi0+ZmJfdHVubmVsX2RldicgdG8gbG9jYWwgdmFy aWFibGUgbmRldi4KCkZpeGVzOiBkYWZhYmI2NTkwY2IgKCJpcDZfZ3JlOiBmaXggdXNlLWFmdGVy LWZyZWUgaW4gaXA2Z3JlX3R1bm5lbF9sb29rdXAoKSIpClJlcG9ydGVkLWJ5OiBIdWxrIFJvYm90 IDxodWxrY2lAaHVhd2VpLmNvbT4KU2lnbmVkLW9mZi1ieTogV2VpIFlvbmdqdW4gPHdlaXlvbmdq dW4xQGh1YXdlaS5jb20+ClJldmlld2VkLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2ds ZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5l dD4KLS0tCiBuZXQvaXB2Ni9pcDZfZ3JlLmMgfCAxMSArKysrKystLS0tLQogMSBmaWxlIGNoYW5n ZWQsIDYgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2 Ni9pcDZfZ3JlLmMgYi9uZXQvaXB2Ni9pcDZfZ3JlLmMKaW5kZXggMDRkNzZmMDQzZTE4Li40NDg3 NjUwOWQyMTUgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L2lwNl9ncmUuYworKysgYi9uZXQvaXB2Ni9p cDZfZ3JlLmMKQEAgLTE1NjAsMTcgKzE1NjAsMTggQEAgc3RhdGljIHZvaWQgaXA2Z3JlX2Rlc3Ry b3lfdHVubmVscyhzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQpCiBzdGF0 aWMgaW50IF9fbmV0X2luaXQgaXA2Z3JlX2luaXRfbmV0KHN0cnVjdCBuZXQgKm5ldCkKIHsKIAlz dHJ1Y3QgaXA2Z3JlX25ldCAqaWduID0gbmV0X2dlbmVyaWMobmV0LCBpcDZncmVfbmV0X2lkKTsK KwlzdHJ1Y3QgbmV0X2RldmljZSAqbmRldjsKIAlpbnQgZXJyOwogCiAJaWYgKCFuZXRfaGFzX2Zh bGxiYWNrX3R1bm5lbHMobmV0KSkKIAkJcmV0dXJuIDA7Ci0JaWduLT5mYl90dW5uZWxfZGV2ID0g YWxsb2NfbmV0ZGV2KHNpemVvZihzdHJ1Y3QgaXA2X3RubCksICJpcDZncmUwIiwKLQkJCQkJICBO RVRfTkFNRV9VTktOT1dOLAotCQkJCQkgIGlwNmdyZV90dW5uZWxfc2V0dXApOwotCWlmICghaWdu LT5mYl90dW5uZWxfZGV2KSB7CisJbmRldiA9IGFsbG9jX25ldGRldihzaXplb2Yoc3RydWN0IGlw Nl90bmwpLCAiaXA2Z3JlMCIsCisJCQkgICAgTkVUX05BTUVfVU5LTk9XTiwgaXA2Z3JlX3R1bm5l bF9zZXR1cCk7CisJaWYgKCFuZGV2KSB7CiAJCWVyciA9IC1FTk9NRU07CiAJCWdvdG8gZXJyX2Fs bG9jX2RldjsKIAl9CisJaWduLT5mYl90dW5uZWxfZGV2ID0gbmRldjsKIAlkZXZfbmV0X3NldChp Z24tPmZiX3R1bm5lbF9kZXYsIG5ldCk7CiAJLyogRkIgbmV0ZGV2aWNlIGlzIHNwZWNpYWw6IHdl IGhhdmUgb25lLCBhbmQgb25seSBvbmUgcGVyIG5ldG5zLgogCSAqIEFsbG93aW5nIHRvIG1vdmUg aXQgdG8gYW5vdGhlciBuZXRucyBpcyBjbGVhcmx5IHVuc2FmZS4KQEAgLTE1OTAsNyArMTU5MSw3 IEBAIHN0YXRpYyBpbnQgX19uZXRfaW5pdCBpcDZncmVfaW5pdF9uZXQoc3RydWN0IG5ldCAqbmV0 KQogCXJldHVybiAwOwogCiBlcnJfcmVnX2RldjoKLQlmcmVlX25ldGRldihpZ24tPmZiX3R1bm5l bF9kZXYpOworCWZyZWVfbmV0ZGV2KG5kZXYpOwogZXJyX2FsbG9jX2RldjoKIAlyZXR1cm4gZXJy OwogfQotLSAKMi4yNi4yCgoKRnJvbSAwODk1YzFhNzBmZWJhN2QxOGM3ZjgzNDhiNmMyNGQ1MWM5 ZWZjOGQwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBMaXUgSmlhbiA8bGl1amlhbjU2 QGh1YXdlaS5jb20+CkRhdGU6IE1vbiwgMjAgSnVsIDIwMjAgMjI6MzE6NDkgKzA4MDAKU3ViamVj dDogW1BBVENIIDEyLzI5XSBtbHhzdzogZGVzdHJveSB3b3JrcXVldWUgd2hlbiB0cmFwX3JlZ2lz dGVyIGluCiBtbHhzd19lbWFkX2luaXQKClsgVXBzdHJlYW0gY29tbWl0IDVkYmFlYjg3ZjJiMzA5 OTM2YmUwYWVhZTAwY2JjOWU3ZjIwYWIyOTYgXQoKV2hlbiBtbHhzd19jb3JlX3RyYXBfcmVnaXN0 ZXIgZmFpbHMgaW4gbWx4c3dfZW1hZF9pbml0LApkZXN0cm95X3dvcmtxdWV1ZSgpIHNob3VsZWQg YmUgY2FsbGVkIHRvIGRlc3Ryb3kgbWx4c3dfY29yZS0+ZW1hZF93cS4KCkZpeGVzOiBkOTY1NDY1 YjYwYmEgKCJtbHhzdzogY29yZTogRml4IHBvc3NpYmxlIGRlYWRsb2NrIikKU2lnbmVkLW9mZi1i eTogTGl1IEppYW4gPGxpdWppYW41NkBodWF3ZWkuY29tPgpSZXZpZXdlZC1ieTogSWRvIFNjaGlt bWVsIDxpZG9zY2hAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIg PGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gv bWx4c3cvY29yZS5jIHwgMyArKy0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDEg ZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9t bHhzdy9jb3JlLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9jb3JlLmMK aW5kZXggMGEwODg0ZDg2ZDQ0Li4xYjIwNGNlMzBlZTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0 L2V0aGVybmV0L21lbGxhbm94L21seHN3L2NvcmUuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5l dC9tZWxsYW5veC9tbHhzdy9jb3JlLmMKQEAgLTU5Miw3ICs1OTIsNyBAQCBzdGF0aWMgaW50IG1s eHN3X2VtYWRfaW5pdChzdHJ1Y3QgbWx4c3dfY29yZSAqbWx4c3dfY29yZSkKIAllcnIgPSBtbHhz d19jb3JlX3RyYXBfcmVnaXN0ZXIobWx4c3dfY29yZSwgJm1seHN3X2VtYWRfcnhfbGlzdGVuZXIs CiAJCQkJICAgICAgIG1seHN3X2NvcmUpOwogCWlmIChlcnIpCi0JCXJldHVybiBlcnI7CisJCWdv dG8gZXJyX3RyYXBfcmVnaXN0ZXI7CiAKIAllcnIgPSBtbHhzd19jb3JlLT5kcml2ZXItPmJhc2lj X3RyYXBfZ3JvdXBzX3NldChtbHhzd19jb3JlKTsKIAlpZiAoZXJyKQpAQCAtNjA0LDYgKzYwNCw3 IEBAIHN0YXRpYyBpbnQgbWx4c3dfZW1hZF9pbml0KHN0cnVjdCBtbHhzd19jb3JlICptbHhzd19j b3JlKQogZXJyX2VtYWRfdHJhcF9zZXQ6CiAJbWx4c3dfY29yZV90cmFwX3VucmVnaXN0ZXIobWx4 c3dfY29yZSwgJm1seHN3X2VtYWRfcnhfbGlzdGVuZXIsCiAJCQkJICAgbWx4c3dfY29yZSk7Citl cnJfdHJhcF9yZWdpc3RlcjoKIAlkZXN0cm95X3dvcmtxdWV1ZShtbHhzd19jb3JlLT5lbWFkX3dx KTsKIAlyZXR1cm4gZXJyOwogfQotLSAKMi4yNi4yCgoKRnJvbSA2MWFkMGQ0YTA3MmI3ODA5YmYw NjY2NWJiZjQyMmVmNWU1Y2ZiNDM1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUYWVo ZWUgWW9vIDxhcDQyMDA3M0BnbWFpbC5jb20+CkRhdGU6IFR1ZSwgMjEgSnVsIDIwMjAgMTQ6NTE6 NTAgKzAwMDAKU3ViamVjdDogW1BBVENIIDEzLzI5XSBuZXRkZXZzaW06IGZpeCB1bmJhbGFjZWQg bG9ja2luZyBpbiBuc2ltX2NyZWF0ZSgpCgpbIFVwc3RyZWFtIGNvbW1pdCAyYzlkOGUwMWYwYzYw MTczMTdlZWU3NjM4NDk2MTczZDRhNjRlNmJjIF0KCkluIHRoZSBuc2ltX2NyZWF0ZSgpLCBydG5s X2xvY2soKSBpcyBjYWxsZWQgYmVmb3JlIG5zaW1fYnBmX2luaXQoKS4KSWYgbnNpbV9icGZfaW5p dCgpIGlzIGZhaWxlZCwgcnRubF91bmxvY2soKSBzaG91bGQgYmUgY2FsbGVkLApidXQgaXQgaXNu J3QgY2FsbGVkLgpTbywgdW5iYWxhbmNlZCBsb2NraW5nIHdvdWxkIG9jY3VyLgoKRml4ZXM6IGUw NWIyZDE0MWZlZiAoIm5ldGRldnNpbTogbW92ZSBuZXRkZXYgY3JlYXRpb24vZGVzdHJ1Y3Rpb24g dG8gZGV2IHByb2JlIikKU2lnbmVkLW9mZi1ieTogVGFlaGVlIFlvbyA8YXA0MjAwNzNAZ21haWwu Y29tPgpSZXZpZXdlZC1ieTogSmFrdWIgS2ljaW5za2kgPGt1YmFAa2VybmVsLm9yZz4KU2lnbmVk LW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZl cnMvbmV0L25ldGRldnNpbS9uZXRkZXYuYyB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5z ZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9uZXRk ZXZzaW0vbmV0ZGV2LmMgYi9kcml2ZXJzL25ldC9uZXRkZXZzaW0vbmV0ZGV2LmMKaW5kZXggNTVm NTdmNzZkMDFiLi5hNmJiZTkzZjI5ZWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L25ldGRldnNp bS9uZXRkZXYuYworKysgYi9kcml2ZXJzL25ldC9uZXRkZXZzaW0vbmV0ZGV2LmMKQEAgLTMwMSw3 ICszMDEsNyBAQCBuc2ltX2NyZWF0ZShzdHJ1Y3QgbnNpbV9kZXYgKm5zaW1fZGV2LCBzdHJ1Y3Qg bnNpbV9kZXZfcG9ydCAqbnNpbV9kZXZfcG9ydCkKIAlydG5sX2xvY2soKTsKIAllcnIgPSBuc2lt X2JwZl9pbml0KG5zKTsKIAlpZiAoZXJyKQotCQlnb3RvIGVycl9mcmVlX25ldGRldjsKKwkJZ290 byBlcnJfcnRubF91bmxvY2s7CiAKIAluc2ltX2lwc2VjX2luaXQobnMpOwogCkBAIC0zMTUsOCAr MzE1LDggQEAgbnNpbV9jcmVhdGUoc3RydWN0IG5zaW1fZGV2ICpuc2ltX2Rldiwgc3RydWN0IG5z aW1fZGV2X3BvcnQgKm5zaW1fZGV2X3BvcnQpCiBlcnJfaXBzZWNfdGVhcmRvd246CiAJbnNpbV9p cHNlY190ZWFyZG93bihucyk7CiAJbnNpbV9icGZfdW5pbml0KG5zKTsKK2Vycl9ydG5sX3VubG9j azoKIAlydG5sX3VubG9jaygpOwotZXJyX2ZyZWVfbmV0ZGV2OgogCWZyZWVfbmV0ZGV2KGRldik7 CiAJcmV0dXJuIEVSUl9QVFIoZXJyKTsKIH0KLS0gCjIuMjYuMgoKCkZyb20gNTk2NGQyMWVlZTky YTZjMDg2NDY3MmZiZTQwOGE1NzJiM2MwYjU4ZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogU2VyZ2V5IE9yZ2Fub3YgPHNvcmdhbm92QGdtYWlsLmNvbT4KRGF0ZTogV2VkLCAxNSBKdWwg MjAyMCAxOToxMDowMCArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMTQvMjldIG5ldDogZHA4MzY0MDog Zml4IFNJT0NTSFdUU1RBTVAgdG8gdXBkYXRlIHRoZSBzdHJ1Y3QKIHdpdGggYWN0dWFsIGNvbmZp Z3VyYXRpb24KClsgVXBzdHJlYW0gY29tbWl0IDQ3MzMwOWZiODM3MjM2NWFkMjExZjQyNWJjYTc2 MGFmODAwZTEwYTcgXQoKRnJvbSBEb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvdGltZXN0YW1waW5n LnR4dDoKCiAgQSBkcml2ZXIgd2hpY2ggc3VwcG9ydHMgaGFyZHdhcmUgdGltZSBzdGFtcGluZyBz aGFsbCB1cGRhdGUgdGhlCiAgc3RydWN0IHdpdGggdGhlIGFjdHVhbCwgcG9zc2libHkgbW9yZSBw ZXJtaXNzaXZlIGNvbmZpZ3VyYXRpb24uCgpEbyB1cGRhdGUgdGhlIHN0cnVjdCBwYXNzZWQgd2hl biB3ZSB1cHNjYWxlIHRoZSByZXF1ZXN0ZWQgdGltZQpzdGFtcGluZyBtb2RlLgoKRml4ZXM6IGNi NjQ2ZTJiMDJiMiAoInB0cDogQWRkZWQgYSBjbG9jayBkcml2ZXIgZm9yIHRoZSBOYXRpb25hbCBT ZW1pY29uZHVjdG9yIFBIWVRFUi4iKQpTaWduZWQtb2ZmLWJ5OiBTZXJnZXkgT3JnYW5vdiA8c29y Z2Fub3ZAZ21haWwuY29tPgpBY2tlZC1ieTogUmljaGFyZCBDb2NocmFuIDxyaWNoYXJkY29jaHJh bkBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IEpha3ViIEtpY2luc2tpIDxrdWJhQGtlcm5lbC5v cmc+Ci0tLQogZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYyB8IDQgKysrKwogMSBmaWxlIGNoYW5n ZWQsIDQgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3BoeS9kcDgzNjQw LmMgYi9kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jCmluZGV4IDFjNzViMjYyN2NhOC4uN2Q4NDUx MTdhYmIwIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jCisrKyBiL2RyaXZl cnMvbmV0L3BoeS9kcDgzNjQwLmMKQEAgLTEzNDgsNiArMTM0OCw3IEBAIHN0YXRpYyBpbnQgZHA4 MzY0MF9od3RzdGFtcChzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2LCBzdHJ1Y3QgaWZyZXEgKmlm cikKIAkJZHA4MzY0MC0+aHd0c19yeF9lbiA9IDE7CiAJCWRwODM2NDAtPmxheWVyID0gUFRQX0NM QVNTX0w0OwogCQlkcDgzNjQwLT52ZXJzaW9uID0gUFRQX0NMQVNTX1YxOworCQljZmcucnhfZmls dGVyID0gSFdUU1RBTVBfRklMVEVSX1BUUF9WMV9MNF9FVkVOVDsKIAkJYnJlYWs7CiAJY2FzZSBI V1RTVEFNUF9GSUxURVJfUFRQX1YyX0w0X0VWRU5UOgogCWNhc2UgSFdUU1RBTVBfRklMVEVSX1BU UF9WMl9MNF9TWU5DOgpAQCAtMTM1NSw2ICsxMzU2LDcgQEAgc3RhdGljIGludCBkcDgzNjQwX2h3 dHN0YW1wKHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYsIHN0cnVjdCBpZnJlcSAqaWZyKQogCQlk cDgzNjQwLT5od3RzX3J4X2VuID0gMTsKIAkJZHA4MzY0MC0+bGF5ZXIgPSBQVFBfQ0xBU1NfTDQ7 CiAJCWRwODM2NDAtPnZlcnNpb24gPSBQVFBfQ0xBU1NfVjI7CisJCWNmZy5yeF9maWx0ZXIgPSBI V1RTVEFNUF9GSUxURVJfUFRQX1YyX0w0X0VWRU5UOwogCQlicmVhazsKIAljYXNlIEhXVFNUQU1Q X0ZJTFRFUl9QVFBfVjJfTDJfRVZFTlQ6CiAJY2FzZSBIV1RTVEFNUF9GSUxURVJfUFRQX1YyX0wy X1NZTkM6CkBAIC0xMzYyLDYgKzEzNjQsNyBAQCBzdGF0aWMgaW50IGRwODM2NDBfaHd0c3RhbXAo c3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldiwgc3RydWN0IGlmcmVxICppZnIpCiAJCWRwODM2NDAt Pmh3dHNfcnhfZW4gPSAxOwogCQlkcDgzNjQwLT5sYXllciA9IFBUUF9DTEFTU19MMjsKIAkJZHA4 MzY0MC0+dmVyc2lvbiA9IFBUUF9DTEFTU19WMjsKKwkJY2ZnLnJ4X2ZpbHRlciA9IEhXVFNUQU1Q X0ZJTFRFUl9QVFBfVjJfTDJfRVZFTlQ7CiAJCWJyZWFrOwogCWNhc2UgSFdUU1RBTVBfRklMVEVS X1BUUF9WMl9FVkVOVDoKIAljYXNlIEhXVFNUQU1QX0ZJTFRFUl9QVFBfVjJfU1lOQzoKQEAgLTEz NjksNiArMTM3Miw3IEBAIHN0YXRpYyBpbnQgZHA4MzY0MF9od3RzdGFtcChzdHJ1Y3QgcGh5X2Rl dmljZSAqcGh5ZGV2LCBzdHJ1Y3QgaWZyZXEgKmlmcikKIAkJZHA4MzY0MC0+aHd0c19yeF9lbiA9 IDE7CiAJCWRwODM2NDAtPmxheWVyID0gUFRQX0NMQVNTX0w0IHwgUFRQX0NMQVNTX0wyOwogCQlk cDgzNjQwLT52ZXJzaW9uID0gUFRQX0NMQVNTX1YyOworCQljZmcucnhfZmlsdGVyID0gSFdUU1RB TVBfRklMVEVSX1BUUF9WMl9FVkVOVDsKIAkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJcmV0dXJuIC1F UkFOR0U7Ci0tIAoyLjI2LjIKCgpGcm9tIGNlOTc0ZjlhYzkxOWYxODliYjI2MzcxYzk1ODFlZTZi ZDQ4YTE1NWMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEhlbG11dCBHcm9obmUgPGhl bG11dC5ncm9obmVAaW50ZW50YS5kZT4KRGF0ZTogVHVlLCAyMSBKdWwgMjAyMCAxMzowNzozOSAr MDIwMApTdWJqZWN0OiBbUEFUQ0ggMTUvMjldIG5ldDogZHNhOiBtaWNyb2NoaXA6IGNhbGwgcGh5 X3JlbW92ZV9saW5rX21vZGUgZHVyaW5nCiBwcm9iZQoKWyBVcHN0cmVhbSBjb21taXQgMzUwNmIy ZjQyZGZmNjZlYTY4MTRjM2RmYTE5ODhiYWZiNzllNmY4OCBdCgpXaGVuIGRvaW5nICJpcCBsaW5r IHNldCBkZXYgLi4uIHVwIiBmb3IgYSBrc3o5NDc3IGJhY2tlZCBsaW5rLAprc3o5NDc3X3BoeV9z ZXR1cCBpcyBjYWxsZWQgYW5kIGl0IGNhbGxzIHBoeV9yZW1vdmVfbGlua19tb2RlIHRvIHJlbW92 ZQoxMDAwYmFzZVQgSERYLiBEdXJpbmcgcGh5X3JlbW92ZV9saW5rX21vZGUsIHBoeV9hZHZlcnRp c2Vfc3VwcG9ydGVkIGlzCmNhbGxlZC4gRG9pbmcgc28gcmV2ZXJ0cyBhbnkgcHJldmlvdXMgY2hh bmdlIHRvIGFkdmVydGlzZWQgbGluayBtb2RlcwplLmcuIHVzaW5nIGEgdWRldmQgLmxpbmsgZmls ZS4KCnBoeV9yZW1vdmVfbGlua19tb2RlIGlzIG5vdCBtZWFudCB0byBiZSB1c2VkIHdoaWxlIG9w ZW5pbmcgYSBsaW5rIGFuZApzaG91bGQgYmUgY2FsbGVkIGR1cmluZyBwaHkgcHJvYmUgd2hlbiB0 aGUgbGluayBpcyBub3QgeWV0IGF2YWlsYWJsZSB0bwp1c2Vyc3BhY2UuCgpUaGVyZWZvcmUgbW92 ZSB0aGUgcGh5X3JlbW92ZV9saW5rX21vZGUgY2FsbHMgaW50bwprc3o5NDc3X3N3aXRjaF9yZWdp c3Rlci4gSXQgaW5kaXJlY3RseSBjYWxscyBkc2FfcmVnaXN0ZXJfc3dpdGNoLCB3aGljaApjcmVh dGVzIHRoZSByZWxldmFudCBzdHJ1Y3QgcGh5X2RldmljZXMgYW5kIHdlIHVwZGF0ZSB0aGUgbGlu ayBtb2RlcwpyaWdodCBhZnRlciB0aGF0LiBBdCB0aGF0IHRpbWUgZGV2LT5mZWF0dXJlcyBpcyBh bHJlYWR5IGluaXRpYWxpemVkIGJ5Cmtzejk0Nzdfc3dpdGNoX2RldGVjdC4KClJlbW92ZSBwaHlf c2V0dXAgZnJvbSBrc3pfZGV2X29wcyBhcyBubyB1c2VycyByZW1haW4uCgpMaW5rOiBodHRwczov L2xvcmUua2VybmVsLm9yZy9uZXRkZXYvMjAyMDA3MTUxOTI3MjIuR0QxMjU2NjkyQGx1bm4uY2gv CkZpeGVzOiA0MmZjNmE0YzYxMzAxOSAoIm5ldDogZHNhOiBtaWNyb2NoaXA6IHByZXBhcmUgUEhZ IGZvciBwcm9wZXIgYWR2ZXJ0aXNlbWVudCIpClNpZ25lZC1vZmYtYnk6IEhlbG11dCBHcm9obmUg PGhlbG11dC5ncm9obmVAaW50ZW50YS5kZT4KUmV2aWV3ZWQtYnk6IEFuZHJldyBMdW5uIDxhbmRy ZXdAbHVubi5jaD4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxv ZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAva3N6OTQ3Ny5jICAgIHwgNDIg KysrKysrKysrKysrKystLS0tLS0tLS0tLS0KIGRyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAva3N6 X2NvbW1vbi5jIHwgIDIgLS0KIGRyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAva3N6X2NvbW1vbi5o IHwgIDIgLS0KIDMgZmlsZXMgY2hhbmdlZCwgMjMgaW5zZXJ0aW9ucygrKSwgMjMgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9rc3o5NDc3LmMgYi9k cml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2tzejk0NzcuYwppbmRleCBmNjAwODc0ZTI0NzYuLmIx NWRhOWE4ZTNiYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9rc3o5NDc3 LmMKKysrIGIvZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9rc3o5NDc3LmMKQEAgLTk3NiwyMyAr OTc2LDYgQEAgc3RhdGljIHZvaWQga3N6OTQ3N19wb3J0X21pcnJvcl9kZWwoc3RydWN0IGRzYV9z d2l0Y2ggKmRzLCBpbnQgcG9ydCwKIAkJCSAgICAgUE9SVF9NSVJST1JfU05JRkZFUiwgZmFsc2Up OwogfQogCi1zdGF0aWMgdm9pZCBrc3o5NDc3X3BoeV9zZXR1cChzdHJ1Y3Qga3N6X2RldmljZSAq ZGV2LCBpbnQgcG9ydCwKLQkJCSAgICAgIHN0cnVjdCBwaHlfZGV2aWNlICpwaHkpCi17Ci0JLyog T25seSBhcHBseSB0byBwb3J0IHdpdGggUEhZLiAqLwotCWlmIChwb3J0ID49IGRldi0+cGh5X3Bv cnRfY250KQotCQlyZXR1cm47Ci0KLQkvKiBUaGUgTUFDIGFjdHVhbGx5IGNhbm5vdCBydW4gaW4g MTAwMCBoYWxmLWR1cGxleCBtb2RlLiAqLwotCXBoeV9yZW1vdmVfbGlua19tb2RlKHBoeSwKLQkJ CSAgICAgRVRIVE9PTF9MSU5LX01PREVfMTAwMGJhc2VUX0hhbGZfQklUKTsKLQotCS8qIFBIWSBk b2VzIG5vdCBzdXBwb3J0IGdpZ2FiaXQuICovCi0JaWYgKCEoZGV2LT5mZWF0dXJlcyAmIEdCSVRf U1VQUE9SVCkpCi0JCXBoeV9yZW1vdmVfbGlua19tb2RlKHBoeSwKLQkJCQkgICAgIEVUSFRPT0xf TElOS19NT0RFXzEwMDBiYXNlVF9GdWxsX0JJVCk7Ci19Ci0KIHN0YXRpYyBib29sIGtzejk0Nzdf Z2V0X2diaXQoc3RydWN0IGtzel9kZXZpY2UgKmRldiwgdTggZGF0YSkKIHsKIAlib29sIGdiaXQ7 CkBAIC0xNjA1LDcgKzE1ODgsNiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGtzel9kZXZfb3BzIGtz ejk0NzdfZGV2X29wcyA9IHsKIAkuZ2V0X3BvcnRfYWRkciA9IGtzejk0NzdfZ2V0X3BvcnRfYWRk ciwKIAkuY2ZnX3BvcnRfbWVtYmVyID0ga3N6OTQ3N19jZmdfcG9ydF9tZW1iZXIsCiAJLmZsdXNo X2R5bl9tYWNfdGFibGUgPSBrc3o5NDc3X2ZsdXNoX2R5bl9tYWNfdGFibGUsCi0JLnBoeV9zZXR1 cCA9IGtzejk0NzdfcGh5X3NldHVwLAogCS5wb3J0X3NldHVwID0ga3N6OTQ3N19wb3J0X3NldHVw LAogCS5yX21pYl9jbnQgPSBrc3o5NDc3X3JfbWliX2NudCwKIAkucl9taWJfcGt0ID0ga3N6OTQ3 N19yX21pYl9wa3QsCkBAIC0xNjE5LDcgKzE2MDEsMjkgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBr c3pfZGV2X29wcyBrc3o5NDc3X2Rldl9vcHMgPSB7CiAKIGludCBrc3o5NDc3X3N3aXRjaF9yZWdp c3RlcihzdHJ1Y3Qga3N6X2RldmljZSAqZGV2KQogewotCXJldHVybiBrc3pfc3dpdGNoX3JlZ2lz dGVyKGRldiwgJmtzejk0NzdfZGV2X29wcyk7CisJaW50IHJldCwgaTsKKwlzdHJ1Y3QgcGh5X2Rl dmljZSAqcGh5ZGV2OworCisJcmV0ID0ga3N6X3N3aXRjaF9yZWdpc3RlcihkZXYsICZrc3o5NDc3 X2Rldl9vcHMpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKwlmb3IgKGkgPSAwOyBpIDwg ZGV2LT5waHlfcG9ydF9jbnQ7ICsraSkgeworCQlpZiAoIWRzYV9pc191c2VyX3BvcnQoZGV2LT5k cywgaSkpCisJCQljb250aW51ZTsKKworCQlwaHlkZXYgPSBkc2FfdG9fcG9ydChkZXYtPmRzLCBp KS0+c2xhdmUtPnBoeWRldjsKKworCQkvKiBUaGUgTUFDIGFjdHVhbGx5IGNhbm5vdCBydW4gaW4g MTAwMCBoYWxmLWR1cGxleCBtb2RlLiAqLworCQlwaHlfcmVtb3ZlX2xpbmtfbW9kZShwaHlkZXYs CisJCQkJICAgICBFVEhUT09MX0xJTktfTU9ERV8xMDAwYmFzZVRfSGFsZl9CSVQpOworCisJCS8q IFBIWSBkb2VzIG5vdCBzdXBwb3J0IGdpZ2FiaXQuICovCisJCWlmICghKGRldi0+ZmVhdHVyZXMg JiBHQklUX1NVUFBPUlQpKQorCQkJcGh5X3JlbW92ZV9saW5rX21vZGUocGh5ZGV2LAorCQkJCQkg ICAgIEVUSFRPT0xfTElOS19NT0RFXzEwMDBiYXNlVF9GdWxsX0JJVCk7CisJfQorCXJldHVybiBy ZXQ7CiB9CiBFWFBPUlRfU1lNQk9MKGtzejk0Nzdfc3dpdGNoX3JlZ2lzdGVyKTsKIApkaWZmIC0t Z2l0IGEvZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9rc3pfY29tbW9uLmMgYi9kcml2ZXJzL25l dC9kc2EvbWljcm9jaGlwL2tzel9jb21tb24uYwppbmRleCBmZTQ3MTgwYzkwOGIuLjdmYWJjMGUz ZDgwNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9rc3pfY29tbW9uLmMK KysrIGIvZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9rc3pfY29tbW9uLmMKQEAgLTM2Niw4ICsz NjYsNiBAQCBpbnQga3N6X2VuYWJsZV9wb3J0KHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBv cnQsIHN0cnVjdCBwaHlfZGV2aWNlICpwaHkpCiAKIAkvKiBzZXR1cCBzbGF2ZSBwb3J0ICovCiAJ ZGV2LT5kZXZfb3BzLT5wb3J0X3NldHVwKGRldiwgcG9ydCwgZmFsc2UpOwotCWlmIChkZXYtPmRl dl9vcHMtPnBoeV9zZXR1cCkKLQkJZGV2LT5kZXZfb3BzLT5waHlfc2V0dXAoZGV2LCBwb3J0LCBw aHkpOwogCiAJLyogcG9ydF9zdHBfc3RhdGVfc2V0KCkgd2lsbCBiZSBjYWxsZWQgYWZ0ZXIgdG8g ZW5hYmxlIHRoZSBwb3J0IHNvCiAJICogdGhlcmUgaXMgbm8gbmVlZCB0byBkbyBhbnl0aGluZy4K ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAva3N6X2NvbW1vbi5oIGIvZHJp dmVycy9uZXQvZHNhL21pY3JvY2hpcC9rc3pfY29tbW9uLmgKaW5kZXggYTIwZWJiNzQ5Mzc3Li4w NjExNDJiMTgzY2IgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAva3N6X2Nv bW1vbi5oCisrKyBiL2RyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAva3N6X2NvbW1vbi5oCkBAIC0x MjAsOCArMTIwLDYgQEAgc3RydWN0IGtzel9kZXZfb3BzIHsKIAl1MzIgKCpnZXRfcG9ydF9hZGRy KShpbnQgcG9ydCwgaW50IG9mZnNldCk7CiAJdm9pZCAoKmNmZ19wb3J0X21lbWJlcikoc3RydWN0 IGtzel9kZXZpY2UgKmRldiwgaW50IHBvcnQsIHU4IG1lbWJlcik7CiAJdm9pZCAoKmZsdXNoX2R5 bl9tYWNfdGFibGUpKHN0cnVjdCBrc3pfZGV2aWNlICpkZXYsIGludCBwb3J0KTsKLQl2b2lkICgq cGh5X3NldHVwKShzdHJ1Y3Qga3N6X2RldmljZSAqZGV2LCBpbnQgcG9ydCwKLQkJCSAgc3RydWN0 IHBoeV9kZXZpY2UgKnBoeSk7CiAJdm9pZCAoKnBvcnRfY2xlYW51cCkoc3RydWN0IGtzel9kZXZp Y2UgKmRldiwgaW50IHBvcnQpOwogCXZvaWQgKCpwb3J0X3NldHVwKShzdHJ1Y3Qga3N6X2Rldmlj ZSAqZGV2LCBpbnQgcG9ydCwgYm9vbCBjcHVfcG9ydCk7CiAJdm9pZCAoKnJfcGh5KShzdHJ1Y3Qg a3N6X2RldmljZSAqZGV2LCB1MTYgcGh5LCB1MTYgcmVnLCB1MTYgKnZhbCk7Ci0tIAoyLjI2LjIK CgpGcm9tIDQyMTRlZWRhNGNmOTc5ZTM5MjczMDg1M2E4MWFlNmZjMzk0MzZkYWYgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IFhpb25nZmVuZyBXYW5nIDx3YW5neGlvbmdmZW5nMkBodWF3 ZWkuY29tPgpEYXRlOiBUdWUsIDIxIEp1bCAyMDIwIDE1OjAyOjU3ICswODAwClN1YmplY3Q6IFtQ QVRDSCAxNi8yOV0gbmV0LXN5c2ZzOiBhZGQgYSBuZXdsaW5lIHdoZW4gcHJpbnRpbmcgJ3R4X3Rp bWVvdXQnIGJ5CiBzeXNmcwoKWyBVcHN0cmVhbSBjb21taXQgOWJiNWZiZWE1OWYzNmE1ODllZjg4 NjI5MjU0OWNhNDA1MmZlNjc2YyBdCgpXaGVuIEkgY2F0ICd0eF90aW1lb3V0JyBieSBzeXNmcywg aXQgZGlzcGxheXMgYXMgZm9sbG93cy4gSXQncyBiZXR0ZXIgdG8KYWRkIGEgbmV3bGluZSBmb3Ig ZWFzeSByZWFkaW5nLgoKcm9vdEBzeXprYWxsZXI6fiMgY2F0IC9zeXMvZGV2aWNlcy92aXJ0dWFs L25ldC9sby9xdWV1ZXMvdHgtMC90eF90aW1lb3V0CjByb290QHN5emthbGxlcjp+IwoKU2lnbmVk LW9mZi1ieTogWGlvbmdmZW5nIFdhbmcgPHdhbmd4aW9uZ2ZlbmcyQGh1YXdlaS5jb20+ClNpZ25l ZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQv Y29yZS9uZXQtc3lzZnMuYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwg MSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9jb3JlL25ldC1zeXNmcy5jIGIvbmV0L2Nv cmUvbmV0LXN5c2ZzLmMKaW5kZXggNGM4MjZiOGJmOWIxLi4yZWJmOWIyNTI3NzkgMTAwNjQ0Ci0t LSBhL25ldC9jb3JlL25ldC1zeXNmcy5jCisrKyBiL25ldC9jb3JlL25ldC1zeXNmcy5jCkBAIC0x MDM2LDcgKzEwMzYsNyBAQCBzdGF0aWMgc3NpemVfdCB0eF90aW1lb3V0X3Nob3coc3RydWN0IG5l dGRldl9xdWV1ZSAqcXVldWUsIGNoYXIgKmJ1ZikKIAl0cmFuc190aW1lb3V0ID0gcXVldWUtPnRy YW5zX3RpbWVvdXQ7CiAJc3Bpbl91bmxvY2tfaXJxKCZxdWV1ZS0+X3htaXRfbG9jayk7CiAKLQly ZXR1cm4gc3ByaW50ZihidWYsICIlbHUiLCB0cmFuc190aW1lb3V0KTsKKwlyZXR1cm4gc3ByaW50 ZihidWYsIGZtdF91bG9uZywgdHJhbnNfdGltZW91dCk7CiB9CiAKIHN0YXRpYyB1bnNpZ25lZCBp bnQgZ2V0X25ldGRldl9xdWV1ZV9pbmRleChzdHJ1Y3QgbmV0ZGV2X3F1ZXVlICpxdWV1ZSkKLS0g CjIuMjYuMgoKCkZyb20gNjY3ZWE2ZjAwMzYyN2ZmOWMxMDE4NDFjYThlMTM4MDM1MGIxNDhlOCBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTWlhb2hlIExpbiA8bGlubWlhb2hlQGh1YXdl aS5jb20+CkRhdGU6IFR1ZSwgMjEgSnVsIDIwMjAgMTc6MTE6NDQgKzA4MDAKU3ViamVjdDogW1BB VENIIDE3LzI5XSBuZXQ6IHVkcDogRml4IHdyb25nIGNsZWFuIHVwIGZvciBJU19VRFBMSVRFIG1h Y3JvCgpbIFVwc3RyZWFtIGNvbW1pdCBiMGE0MjI3NzJmZWMyOTgxMWUyOTNjN2MwZTZmOTkxYzBm ZDkyNDFkIF0KCldlIGNhbid0IHVzZSBJU19VRFBMSVRFIHRvIHJlcGxhY2UgdWRwX3NrLT5wY2Zs YWcgd2hlbiBVRFBMSVRFX1JFQ1ZfQ0MgaXMKY2hlY2tlZC4KCkZpeGVzOiBiMmJmMWUyNjU5YjEg KCJbVURQXTogQ2xlYW4gdXAgZm9yIElTX1VEUExJVEUgbWFjcm8iKQpTaWduZWQtb2ZmLWJ5OiBN aWFvaGUgTGluIDxsaW5taWFvaGVAaHVhd2VpLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4g TWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY0L3VkcC5jIHwgMiArLQog bmV0L2lwdjYvdWRwLmMgfCAyICstCiAyIGZpbGVzIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwg MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2NC91ZHAuYyBiL25ldC9pcHY0L3Vk cC5jCmluZGV4IGYzYjdjYjcyNWMxYi4uYjMzMjBlNDJjYmNiIDEwMDY0NAotLS0gYS9uZXQvaXB2 NC91ZHAuYworKysgYi9uZXQvaXB2NC91ZHAuYwpAQCAtMjA0NSw3ICsyMDQ1LDcgQEAgc3RhdGlj IGludCB1ZHBfcXVldWVfcmN2X29uZV9za2Ioc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVm ZiAqc2tiKQogCS8qCiAJICogCVVEUC1MaXRlIHNwZWNpZmljIHRlc3RzLCBpZ25vcmVkIG9uIFVE UCBzb2NrZXRzCiAJICovCi0JaWYgKChpc191ZHBsaXRlICYgVURQTElURV9SRUNWX0NDKSAgJiYg IFVEUF9TS0JfQ0Ioc2tiKS0+cGFydGlhbF9jb3YpIHsKKwlpZiAoKHVwLT5wY2ZsYWcgJiBVRFBM SVRFX1JFQ1ZfQ0MpICAmJiAgVURQX1NLQl9DQihza2IpLT5wYXJ0aWFsX2NvdikgewogCiAJCS8q CiAJCSAqIE1JQiBzdGF0aXN0aWNzIG90aGVyIHRoYW4gaW5jcmVtZW50aW5nIHRoZSBlcnJvciBj b3VudCBhcmUKZGlmZiAtLWdpdCBhL25ldC9pcHY2L3VkcC5jIGIvbmV0L2lwdjYvdWRwLmMKaW5k ZXggOWZlYzU4MGM5NjhlLi5lZGUzYmVkMzU0YTggMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L3VkcC5j CisrKyBiL25ldC9pcHY2L3VkcC5jCkBAIC02NDMsNyArNjQzLDcgQEAgc3RhdGljIGludCB1ZHB2 Nl9xdWV1ZV9yY3Zfb25lX3NrYihzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2Ip CiAJLyoKIAkgKiBVRFAtTGl0ZSBzcGVjaWZpYyB0ZXN0cywgaWdub3JlZCBvbiBVRFAgc29ja2V0 cyAoc2VlIG5ldC9pcHY0L3VkcC5jKS4KIAkgKi8KLQlpZiAoKGlzX3VkcGxpdGUgJiBVRFBMSVRF X1JFQ1ZfQ0MpICAmJiAgVURQX1NLQl9DQihza2IpLT5wYXJ0aWFsX2NvdikgeworCWlmICgodXAt PnBjZmxhZyAmIFVEUExJVEVfUkVDVl9DQykgICYmICBVRFBfU0tCX0NCKHNrYiktPnBhcnRpYWxf Y292KSB7CiAKIAkJaWYgKHVwLT5wY3JsZW4gPT0gMCkgeyAgICAgICAgICAvKiBmdWxsIGNvdmVy YWdlIHdhcyBzZXQgICovCiAJCQluZXRfZGJnX3JhdGVsaW1pdGVkKCJVRFBMSVRFNjogcGFydGlh bCBjb3ZlcmFnZSAlZCB3aGlsZSBmdWxsIGNvdmVyYWdlICVkIHJlcXVlc3RlZFxuIiwKLS0gCjIu MjYuMgoKCkZyb20gMmQ4NmIwZjJkYjFlMTQxNGIzODZlMGZhM2U2YmI4NmFmYzg1NjAxYyBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQ29uZyBXYW5nIDx4aXlvdS53YW5nY29uZ0BnbWFp bC5jb20+CkRhdGU6IEZyaSwgMjQgSnVsIDIwMjAgMDk6NDU6NTEgLTA3MDAKU3ViamVjdDogW1BB VENIIDE4LzI5XSBxcnRyOiBvcnBoYW4gc29ja2V0IGluIHFydHJfcmVsZWFzZSgpCgpbIFVwc3Ry ZWFtIGNvbW1pdCBhZjlmNjkxZjBmNWJkZDFhZGU2NWE3Yjg0OTI3NjM5ODgyZDdjM2U1IF0KCldl IGhhdmUgdG8gZGV0YWNoIHNvY2sgZnJvbSBzb2NrZXQgaW4gcXJ0cl9yZWxlYXNlKCksCm90aGVy d2lzZSBza2ItPnNrIG1heSBzdGlsbCByZWZlcmVuY2UgdG8gdGhpcyBzb2NrZXQKd2hlbiB0aGUg c2tiIGlzIHJlbGVhc2VkIGluIHR1bi0+cXVldWUsIHBhcnRpY3VsYXJseQpzay0+c2tfd3Egc3Rp bGwgcG9pbnRzIHRvICZzb2NrLT53cSwgd2hpY2ggbGVhZHMgdG8KYSBVQUYuCgpSZXBvcnRlZC1h bmQtdGVzdGVkLWJ5OiBzeXpib3QrNjcyMGQ2NGYzMWMwODFjMmY3MDhAc3l6a2FsbGVyLmFwcHNw b3RtYWlsLmNvbQpGaXhlczogMjhmYjRlNTlhNDdkICgibmV0OiBxcnRyOiBFeHBvc2UgdHVubmVs aW5nIGVuZHBvaW50IHRvIHVzZXIgc3BhY2UiKQpDYzogQmpvcm4gQW5kZXJzc29uIDxiam9ybi5h bmRlcnNzb25AbGluYXJvLm9yZz4KQ2M6IEVyaWMgRHVtYXpldCA8ZXJpYy5kdW1hemV0QGdtYWls LmNvbT4KU2lnbmVkLW9mZi1ieTogQ29uZyBXYW5nIDx4aXlvdS53YW5nY29uZ0BnbWFpbC5jb20+ ClJldmlld2VkLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClNpZ25lZC1v ZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvcXJ0 ci9xcnRyLmMgfCAxICsKIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQoKZGlmZiAtLWdp dCBhL25ldC9xcnRyL3FydHIuYyBiL25ldC9xcnRyL3FydHIuYwppbmRleCAxNGMxMDFlMTA0Y2Uu LjFjZTFlNzEwZDAyNSAxMDA2NDQKLS0tIGEvbmV0L3FydHIvcXJ0ci5jCisrKyBiL25ldC9xcnRy L3FydHIuYwpAQCAtMTAwNCw2ICsxMDA0LDcgQEAgc3RhdGljIGludCBxcnRyX3JlbGVhc2Uoc3Ry dWN0IHNvY2tldCAqc29jaykKIAkJc2stPnNrX3N0YXRlX2NoYW5nZShzayk7CiAKIAlzb2NrX3Nl dF9mbGFnKHNrLCBTT0NLX0RFQUQpOworCXNvY2tfb3JwaGFuKHNrKTsKIAlzb2NrLT5zayA9IE5V TEw7CiAKIAlpZiAoIXNvY2tfZmxhZyhzaywgU09DS19aQVBQRUQpKQotLSAKMi4yNi4yCgoKRnJv bSBlMDA0NTRlZjM5ODQ0MzljZGNlMDFlYTZlNmRhN2FlOTNlYzk0N2FjIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBXZWlsb25nIENoZW4gPGNoZW53ZWlsb25nQGh1YXdlaS5jb20+CkRh dGU6IFdlZCwgMTUgSnVsIDIwMjAgMjA6NTg6MTAgKzA4MDAKU3ViamVjdDogW1BBVENIIDE5LzI5 XSBydG5ldGxpbms6IEZpeCBtZW1vcnkobmV0X2RldmljZSkgbGVhayB3aGVuIC0+bmV3bGluawog ZmFpbHMKClsgVXBzdHJlYW0gY29tbWl0IGNlYmI2OTc1NGYzN2Q2OGUxMzU1YTVlNzI2ZmRhYzMx N2JjZGEzMDIgXQoKV2hlbiB2bGFuX25ld2xpbmsgY2FsbCByZWdpc3Rlcl92bGFuX2RldiBmYWls cywgaXQgbWlnaHQgcmV0dXJuIGVycm9yCndpdGggZGV2LT5yZWdfc3RhdGUgPSBORVRSRUdfVU5S RUdJU1RFUkVELiBUaGUgcnRubF9uZXdsaW5rIHNob3VsZApmcmVlIHRoZSBtZW1vcnkuIEJ1dCBj dXJyZW50bHkgcnRubF9uZXdsaW5rIG9ubHkgZnJlZSB0aGUgbWVtb3J5IHdoaWNoCnN0YXRlIGlz IE5FVFJFR19VTklOSVRJQUxJWkVELgoKQlVHOiBtZW1vcnkgbGVhawp1bnJlZmVyZW5jZWQgb2Jq ZWN0IDB4ZmZmZjg4ODEwNTFkZTAwMCAoc2l6ZSA0MDk2KToKICBjb21tICJzeXotZXhlY3V0b3Ix MzkiLCBwaWQgNTYwLCBqaWZmaWVzIDQyOTQ3NDUzNDYgKGFnZSAzMi40NDVzKQogIGhleCBkdW1w IChmaXJzdCAzMiBieXRlcyk6CiAgICA3NiA2YyA2MSA2ZSAzMiAwMCAwMCAwMCAwMCAwMCAwMCAw MCAwMCAwMCAwMCAwMCAgdmxhbjIuLi4uLi4uLi4uLgogICAgMDAgNDUgMjggMDMgODEgODggZmYg ZmYgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgIC5FKC4uLi4uLi4uLi4uLi4KICBiYWNrdHJhY2U6 CiAgICBbPDAwMDAwMDAwNDc1MjdlMzE+XSBrbWFsbG9jX25vZGUgaW5jbHVkZS9saW51eC9zbGFi Lmg6NTc4IFtpbmxpbmVdCiAgICBbPDAwMDAwMDAwNDc1MjdlMzE+XSBrdm1hbGxvY19ub2RlKzB4 MzMvMHhkMCBtbS91dGlsLmM6NTc0CiAgICBbPDAwMDAwMDAwMmI1OWUzYmM+XSBrdm1hbGxvYyBp bmNsdWRlL2xpbnV4L21tLmg6NzUzIFtpbmxpbmVdCiAgICBbPDAwMDAwMDAwMmI1OWUzYmM+XSBr dnphbGxvYyBpbmNsdWRlL2xpbnV4L21tLmg6NzYxIFtpbmxpbmVdCiAgICBbPDAwMDAwMDAwMmI1 OWUzYmM+XSBhbGxvY19uZXRkZXZfbXFzKzB4ODMvMHhkOTAgbmV0L2NvcmUvZGV2LmM6OTkyOQog ICAgWzwwMDAwMDAwMDYwNzY3NTJhPl0gcnRubF9jcmVhdGVfbGluaysweDJjMC8weGEyMCBuZXQv Y29yZS9ydG5ldGxpbmsuYzozMDY3CiAgICBbPDAwMDAwMDAwNTcyYjNiZTU+XSBfX3J0bmxfbmV3 bGluaysweGM5Yy8weDEzMzAgbmV0L2NvcmUvcnRuZXRsaW5rLmM6MzMyOQogICAgWzwwMDAwMDAw MGU4NGVhNTUzPl0gcnRubF9uZXdsaW5rKzB4NjYvMHg5MCBuZXQvY29yZS9ydG5ldGxpbmsuYzoz Mzk3CiAgICBbPDAwMDAwMDAwNTJjN2MwYTk+XSBydG5ldGxpbmtfcmN2X21zZysweDU0MC8weDk5 MCBuZXQvY29yZS9ydG5ldGxpbmsuYzo1NDYwCiAgICBbPDAwMDAwMDAwNGI1Y2IzNzk+XSBuZXRs aW5rX3Jjdl9za2IrMHgxMmIvMHgzYTAgbmV0L25ldGxpbmsvYWZfbmV0bGluay5jOjI0NjkKICAg IFs8MDAwMDAwMDBjNzFjMjBkMz5dIG5ldGxpbmtfdW5pY2FzdF9rZXJuZWwgbmV0L25ldGxpbmsv YWZfbmV0bGluay5jOjEzMDMgW2lubGluZV0KICAgIFs8MDAwMDAwMDBjNzFjMjBkMz5dIG5ldGxp bmtfdW5pY2FzdCsweDRjNi8weDY5MCBuZXQvbmV0bGluay9hZl9uZXRsaW5rLmM6MTMyOQogICAg WzwwMDAwMDAwMGNjYTcyZmE5Pl0gbmV0bGlua19zZW5kbXNnKzB4NzM1LzB4Y2MwIG5ldC9uZXRs aW5rL2FmX25ldGxpbmsuYzoxOTE4CiAgICBbPDAwMDAwMDAwOTIyMWViZjc+XSBzb2NrX3NlbmRt c2dfbm9zZWMgbmV0L3NvY2tldC5jOjY1MiBbaW5saW5lXQogICAgWzwwMDAwMDAwMDkyMjFlYmY3 Pl0gc29ja19zZW5kbXNnKzB4MTA5LzB4MTQwIG5ldC9zb2NrZXQuYzo2NzIKICAgIFs8MDAwMDAw MDAxYzMwZmZlND5dIF9fX19zeXNfc2VuZG1zZysweDVmNS8weDc4MCBuZXQvc29ja2V0LmM6MjM1 MgogICAgWzwwMDAwMDAwMGI3MWNhNmYzPl0gX19fc3lzX3NlbmRtc2crMHgxMWQvMHgxYTAgbmV0 L3NvY2tldC5jOjI0MDYKICAgIFs8MDAwMDAwMDAwNzI5NzM4ND5dIF9fc3lzX3NlbmRtc2crMHhl Yi8weDFiMCBuZXQvc29ja2V0LmM6MjQzOQogICAgWzwwMDAwMDAwMDBlYjI5YjExPl0gZG9fc3lz Y2FsbF82NCsweDU2LzB4YTAgYXJjaC94ODYvZW50cnkvY29tbW9uLmM6MzU5CiAgICBbPDAwMDAw MDAwNjgzOWI0ZDA+XSBlbnRyeV9TWVNDQUxMXzY0X2FmdGVyX2h3ZnJhbWUrMHg0NC8weGE5CgpG aXhlczogY2I2MjZiZjU2NmViICgibmV0LXN5c2ZzOiBGaXggcmVmZXJlbmNlIGNvdW50IGxlYWsi KQpSZXBvcnRlZC1ieTogSHVsayBSb2JvdCA8aHVsa2NpQGh1YXdlaS5jb20+ClNpZ25lZC1vZmYt Ynk6IFdlaWxvbmcgQ2hlbiA8Y2hlbndlaWxvbmdAaHVhd2VpLmNvbT4KU2lnbmVkLW9mZi1ieTog RGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9jb3JlL3J0bmV0 bGluay5jIHwgMyArKy0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDEgZGVsZXRp b24oLSkKCmRpZmYgLS1naXQgYS9uZXQvY29yZS9ydG5ldGxpbmsuYyBiL25ldC9jb3JlL3J0bmV0 bGluay5jCmluZGV4IDk0NGFjYjFhOWYyOS4uYjBjMDZhMDYzNzc2IDEwMDY0NAotLS0gYS9uZXQv Y29yZS9ydG5ldGxpbmsuYworKysgYi9uZXQvY29yZS9ydG5ldGxpbmsuYwpAQCAtMzIzMSw3ICsz MjMxLDggQEAgc3RhdGljIGludCBfX3J0bmxfbmV3bGluayhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBz dHJ1Y3Qgbmxtc2doZHIgKm5saCwKIAkJICovCiAJCWlmIChlcnIgPCAwKSB7CiAJCQkvKiBJZiBk ZXZpY2UgaXMgbm90IHJlZ2lzdGVyZWQgYXQgYWxsLCBmcmVlIGl0IG5vdyAqLwotCQkJaWYgKGRl di0+cmVnX3N0YXRlID09IE5FVFJFR19VTklOSVRJQUxJWkVEKQorCQkJaWYgKGRldi0+cmVnX3N0 YXRlID09IE5FVFJFR19VTklOSVRJQUxJWkVEIHx8CisJCQkgICAgZGV2LT5yZWdfc3RhdGUgPT0g TkVUUkVHX1VOUkVHSVNURVJFRCkKIAkJCQlmcmVlX25ldGRldihkZXYpOwogCQkJZ290byBvdXQ7 CiAJCX0KLS0gCjIuMjYuMgoKCkZyb20gMWI0ZDdjZGZjMzMwM2M0NmNhNDBiM2MwZDFjNTJhNWNj ZTc5ZjY2NiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGF2aWQgSG93ZWxscyA8ZGhv d2VsbHNAcmVkaGF0LmNvbT4KRGF0ZTogTW9uLCAyMCBKdWwgMjAyMCAxMjo0MTo0NiArMDEwMApT dWJqZWN0OiBbUEFUQ0ggMjAvMjldIHJ4cnBjOiBGaXggc2VuZG1zZygpIHJldHVybmluZyBFUElQ RSBkdWUgdG8gcmVjdm1zZygpCiByZXR1cm5pbmcgRU5PREFUQQoKWyBVcHN0cmVhbSBjb21taXQg NjM5ZjE4MWYwZWUyMGQzMjQ5ZGJjNTVmNzQwZjAxNjcyNjcxODBmMCBdCgpyeHJwY19zZW5kbXNn KCkgcmV0dXJucyBFUElQRSBpZiB0aGVyZSdzIGFuIG91dHN0YW5kaW5nIGVycm9yLCBzdWNoIGFz IGlmCnJ4cnBjX3JlY3Ztc2coKSBpbmRpY2F0aW5nIEVOT0RBVEEgaWYgdGhlcmUncyBub3RoaW5n IGZvciBpdCB0byByZWFkLgoKQ2hhbmdlIHJ4cnBjX3JlY3Ztc2coKSB0byByZXR1cm4gRUFHQUlO IGluc3RlYWQgaWYgdGhlcmUncyBub3RoaW5nIHRvIHJlYWQKYXMgdGhpcyBwYXJ0aWN1bGFyIGVy cm9yIGRvZXNuJ3QgZ2V0IHN0b3JlZCBpbiAtPnNrX2VyciBieSB0aGUgbmV0d29ya2luZwpjb3Jl LgoKQWxzbyBjaGFuZ2UgcnhycGNfc2VuZG1zZygpIHNvIHRoYXQgaXQgZG9lc24ndCBmYWlsIHdp dGggZGVsYXllZCByZWNlaXZlCmVycm9ycyAodGhlcmUncyBubyB3YXkgZm9yIGl0IHRvIHJlcG9y dCB3aGljaCBjYWxsLCBpZiBhbnksIHRoZSBlcnJvciB3YXMKY2F1c2VkIGJ5KS4KCkZpeGVzOiAx NzkyNmE3OTMyMGEgKCJbQUZfUlhSUENdOiBQcm92aWRlIHNlY3VyZSBSeFJQQyBzb2NrZXRzIGZv ciB1c2UgYnkgdXNlcnNwYWNlIGFuZCBrZXJuZWwgYm90aCIpClNpZ25lZC1vZmYtYnk6IERhdmlk IEhvd2VsbHMgPGRob3dlbGxzQHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1p bGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvcnhycGMvcmVjdm1zZy5jIHwgMiAr LQogbmV0L3J4cnBjL3NlbmRtc2cuYyB8IDIgKy0KIDIgZmlsZXMgY2hhbmdlZCwgMiBpbnNlcnRp b25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9yeHJwYy9yZWN2bXNnLmMg Yi9uZXQvcnhycGMvcmVjdm1zZy5jCmluZGV4IDg1NzhjMzllYzgzOS4uNjg5NmEzM2VmODQyIDEw MDY0NAotLS0gYS9uZXQvcnhycGMvcmVjdm1zZy5jCisrKyBiL25ldC9yeHJwYy9yZWN2bXNnLmMK QEAgLTQ2NCw3ICs0NjQsNyBAQCBpbnQgcnhycGNfcmVjdm1zZyhzdHJ1Y3Qgc29ja2V0ICpzb2Nr LCBzdHJ1Y3QgbXNnaGRyICptc2csIHNpemVfdCBsZW4sCiAJICAgIGxpc3RfZW1wdHkoJnJ4LT5y ZWN2bXNnX3EpICYmCiAJICAgIHJ4LT5zay5za19zdGF0ZSAhPSBSWFJQQ19TRVJWRVJfTElTVEVO SU5HKSB7CiAJCXJlbGVhc2Vfc29jaygmcngtPnNrKTsKLQkJcmV0dXJuIC1FTk9EQVRBOworCQly ZXR1cm4gLUVBR0FJTjsKIAl9CiAKIAlpZiAobGlzdF9lbXB0eSgmcngtPnJlY3Ztc2dfcSkpIHsK ZGlmZiAtLWdpdCBhL25ldC9yeHJwYy9zZW5kbXNnLmMgYi9uZXQvcnhycGMvc2VuZG1zZy5jCmlu ZGV4IDVlOWM0M2Q0YTMxNC4uNDlkMDNjOGM2NGRhIDEwMDY0NAotLS0gYS9uZXQvcnhycGMvc2Vu ZG1zZy5jCisrKyBiL25ldC9yeHJwYy9zZW5kbXNnLmMKQEAgLTMwNiw3ICszMDYsNyBAQCBzdGF0 aWMgaW50IHJ4cnBjX3NlbmRfZGF0YShzdHJ1Y3QgcnhycGNfc29jayAqcngsCiAJLyogdGhpcyBz aG91bGQgYmUgaW4gcG9sbCAqLwogCXNrX2NsZWFyX2JpdChTT0NLV1FfQVNZTkNfTk9TUEFDRSwg c2spOwogCi0JaWYgKHNrLT5za19lcnIgfHwgKHNrLT5za19zaHV0ZG93biAmIFNFTkRfU0hVVERP V04pKQorCWlmIChzay0+c2tfc2h1dGRvd24gJiBTRU5EX1NIVVRET1dOKQogCQlyZXR1cm4gLUVQ SVBFOwogCiAJbW9yZSA9IG1zZy0+bXNnX2ZsYWdzICYgTVNHX01PUkU7Ci0tIAoyLjI2LjIKCgpG cm9tIGU1ODQwMmE1YTQ3OTNkZjNlOGE4ZjdlNWU4NDJjYjllNzM3NDVkMmYgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IFl1Y2h1bmcgQ2hlbmcgPHljaGVuZ0Bnb29nbGUuY29tPgpEYXRl OiBUaHUsIDIzIEp1bCAyMDIwIDEyOjAwOjA2IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAyMS8yOV0g dGNwOiBhbGxvdyBhdCBtb3N0IG9uZSBUTFAgcHJvYmUgcGVyIGZsaWdodAoKWyBVcHN0cmVhbSBj b21taXQgNzZiZTkzZmMwNzAyMzIyMTc5YmIwZWE4NzI5NWQ4MjBlZTQ2YWQxNCBdCgpQcmV2aW91 c2x5IFRMUCBtYXkgc2VuZCBtdWx0aXBsZSBwcm9iZXMgb2YgbmV3IGRhdGEgaW4gb25lCmZsaWdo dC4gVGhpcyBoYXBwZW5zIHdoZW4gdGhlIHNlbmRlciBpcyBjd25kIGxpbWl0ZWQuIEFmdGVyIHRo ZQppbml0aWFsIFRMUCBjb250YWluaW5nIG5ldyBkYXRhIGlzIHNlbnQsIHRoZSBzZW5kZXIgcmVj ZWl2ZXMgYW5vdGhlcgpBQ0sgdGhhdCBhY2tzIHBhcnRpYWwgaW5mbGlnaHQuICBJdCBtYXkgcmUt YXJtIGFub3RoZXIgVExQIHRpbWVyCnRvIHNlbmQgbW9yZSwgaWYgbm8gZnVydGhlciBBQ0sgcmV0 dXJucyBiZWZvcmUgdGhlIG5leHQgVExQIHRpbWVvdXQKKFBUTykgZXhwaXJlcy4gVGhlIHNlbmRl ciBtYXkgc2VuZCBpbiB0aGVvcnkgYSBsYXJnZSBhbW91bnQgb2YgVExQCnVudGlsIHNlbmQgcXVl dWUgaXMgZGVwbGV0ZWQuIFRoaXMgb25seSBoYXBwZW5zIGlmIHRoZSBzZW5kZXIgc2VlcwpzdWNo IGlycmVndWxhciB1bmNvbW1vbiBBQ0sgcGF0dGVybi4gQnV0IGl0IGlzIGdlbmVyYWxseSB1bmRl c2lyYWJsZQpiZWhhdmlvciBkdXJpbmcgY29uZ2VzdGlvbiBlc3BlY2lhbGx5LgoKVGhlIG9yaWdp bmFsIFRMUCBkZXNpZ24gcmVzdHJpY3Qgb25seSBvbmUgVExQIHByb2JlIHBlciBpbmZsaWdodCBh cwpwdWJsaXNoZWQgaW4gIlJlZHVjaW5nIFdlYiBMYXRlbmN5OiB0aGUgVmlydHVlIG9mIEdlbnRs ZSBBZ2dyZXNzaW9uIiwKU0lHQ09NTSAyMDEzLiBUaGlzIHBhdGNoIGNoYW5nZXMgVExQIHRvIHNl bmQgYXQgbW9zdCBvbmUgcHJvYmUKcGVyIGluZmxpZ2h0LgoKTm90ZSB0aGF0IGlmIHRoZSBzZW5k ZXIgaXMgYXBwLWxpbWl0ZWQsIFRMUCByZXRyYW5zbWl0cyBvbGQgZGF0YQphbmQgZGlkIG5vdCBo YXZlIHRoaXMgaXNzdWUuCgpTaWduZWQtb2ZmLWJ5OiBZdWNodW5nIENoZW5nIDx5Y2hlbmdAZ29v Z2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogTmVhbCBDYXJkd2VsbCA8bmNhcmR3ZWxsQGdvb2dsZS5j b20+ClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KU2ln bmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGlu Y2x1ZGUvbGludXgvdGNwLmggICB8ICA0ICsrKy0KIG5ldC9pcHY0L3RjcF9pbnB1dC5jICB8IDEx ICsrKysrKy0tLS0tCiBuZXQvaXB2NC90Y3Bfb3V0cHV0LmMgfCAxMyArKysrKysrKy0tLS0tCiAz IGZpbGVzIGNoYW5nZWQsIDE3IGluc2VydGlvbnMoKyksIDExIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2luY2x1ZGUvbGludXgvdGNwLmggYi9pbmNsdWRlL2xpbnV4L3RjcC5oCmluZGV4IDY2 OGUyNWE3NmQ2OS4uMzU4ZGViNGZmODMwIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3RjcC5o CisrKyBiL2luY2x1ZGUvbGludXgvdGNwLmgKQEAgLTIxNiw2ICsyMTYsOCBAQCBzdHJ1Y3QgdGNw X3NvY2sgewogCX0gcmFjazsKIAl1MTYJYWR2bXNzOwkJLyogQWR2ZXJ0aXNlZCBNU1MJCQkqLwog CXU4CWNvbXByZXNzZWRfYWNrOworCXU4CXRscF9yZXRyYW5zOjEsCS8qIFRMUCBpcyBhIHJldHJh bnNtaXNzaW9uICovCisJCXVudXNlZF8xOjc7CiAJdTMyCWNocm9ub19zdGFydDsJLyogU3RhcnQg dGltZSBpbiBqaWZmaWVzIG9mIGEgVENQIGNocm9ubyAqLwogCXUzMgljaHJvbm9fc3RhdFszXTsJ LyogVGltZSBpbiBqaWZmaWVzIGZvciBjaHJvbm9fc3RhdCBzdGF0cyAqLwogCXU4CWNocm9ub190 eXBlOjIsCS8qIGN1cnJlbnQgY2hyb25vZ3JhcGggdHlwZSAqLwpAQCAtMjM4LDcgKzI0MCw3IEBA IHN0cnVjdCB0Y3Bfc29jayB7CiAJCXNhdmVfc3luOjEsCS8qIFNhdmUgaGVhZGVycyBvZiBTWU4g cGFja2V0ICovCiAJCWlzX2N3bmRfbGltaXRlZDoxLC8qIGZvcndhcmQgcHJvZ3Jlc3MgbGltaXRl ZCBieSBzbmRfY3duZD8gKi8KIAkJc3luX3NtYzoxOwkvKiBTWU4gaW5jbHVkZXMgU01DICovCi0J dTMyCXRscF9oaWdoX3NlcTsJLyogc25kX254dCBhdCB0aGUgdGltZSBvZiBUTFAgcmV0cmFuc21p dC4gKi8KKwl1MzIJdGxwX2hpZ2hfc2VxOwkvKiBzbmRfbnh0IGF0IHRoZSB0aW1lIG9mIFRMUCAq LwogCiAJdTMyCXRjcF90eF9kZWxheTsJLyogZGVsYXkgKGluIHVzZWMpIGFkZGVkIHRvIFRYIHBh Y2tldHMgKi8KIAl1NjQJdGNwX3dzdGFtcF9uczsJLyogZGVwYXJ0dXJlIHRpbWUgZm9yIG5leHQg c2VudCBkYXRhIHBhY2tldCAqLwpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvdGNwX2lucHV0LmMgYi9u ZXQvaXB2NC90Y3BfaW5wdXQuYwppbmRleCA2ZDMzMTMwN2JlY2EuLjUwNDBmN2NhMzdlYyAxMDA2 NDQKLS0tIGEvbmV0L2lwdjQvdGNwX2lucHV0LmMKKysrIGIvbmV0L2lwdjQvdGNwX2lucHV0LmMK QEAgLTM1MDUsMTAgKzM1MDUsOCBAQCBzdGF0aWMgdm9pZCB0Y3BfcmVwbGFjZV90c19yZWNlbnQo c3RydWN0IHRjcF9zb2NrICp0cCwgdTMyIHNlcSkKIAl9CiB9CiAKLS8qIFRoaXMgcm91dGluZSBk ZWFscyB3aXRoIGFja3MgZHVyaW5nIGEgVExQIGVwaXNvZGUuCi0gKiBXZSBtYXJrIHRoZSBlbmQg b2YgYSBUTFAgZXBpc29kZSBvbiByZWNlaXZpbmcgVExQIGR1cGFjayBvciB3aGVuCi0gKiBhY2sg aXMgYWZ0ZXIgdGxwX2hpZ2hfc2VxLgotICogUmVmOiBsb3NzIGRldGVjdGlvbiBhbGdvcml0aG0g aW4gZHJhZnQtZHVra2lwYXRpLXRjcG0tdGNwLWxvc3MtcHJvYmUuCisvKiBUaGlzIHJvdXRpbmUg ZGVhbHMgd2l0aCBhY2tzIGR1cmluZyBhIFRMUCBlcGlzb2RlIGFuZCBlbmRzIGFuIGVwaXNvZGUg YnkKKyAqIHJlc2V0dGluZyB0bHBfaGlnaF9zZXEuIFJlZjogVExQIGFsZ29yaXRobSBpbiBkcmFm dC1pZXRmLXRjcG0tcmFjawogICovCiBzdGF0aWMgdm9pZCB0Y3BfcHJvY2Vzc190bHBfYWNrKHN0 cnVjdCBzb2NrICpzaywgdTMyIGFjaywgaW50IGZsYWcpCiB7CkBAIC0zNTE3LDcgKzM1MTUsMTAg QEAgc3RhdGljIHZvaWQgdGNwX3Byb2Nlc3NfdGxwX2FjayhzdHJ1Y3Qgc29jayAqc2ssIHUzMiBh Y2ssIGludCBmbGFnKQogCWlmIChiZWZvcmUoYWNrLCB0cC0+dGxwX2hpZ2hfc2VxKSkKIAkJcmV0 dXJuOwogCi0JaWYgKGZsYWcgJiBGTEFHX0RTQUNLSU5HX0FDSykgeworCWlmICghdHAtPnRscF9y ZXRyYW5zKSB7CisJCS8qIFRMUCBvZiBuZXcgZGF0YSBoYXMgYmVlbiBhY2tub3dsZWRnZWQgKi8K KwkJdHAtPnRscF9oaWdoX3NlcSA9IDA7CisJfSBlbHNlIGlmIChmbGFnICYgRkxBR19EU0FDS0lO R19BQ0spIHsKIAkJLyogVGhpcyBEU0FDSyBtZWFucyBvcmlnaW5hbCBhbmQgVExQIHByb2JlIGFy cml2ZWQ7IG5vIGxvc3MgKi8KIAkJdHAtPnRscF9oaWdoX3NlcSA9IDA7CiAJfSBlbHNlIGlmIChh ZnRlcihhY2ssIHRwLT50bHBfaGlnaF9zZXEpKSB7CmRpZmYgLS1naXQgYS9uZXQvaXB2NC90Y3Bf b3V0cHV0LmMgYi9uZXQvaXB2NC90Y3Bfb3V0cHV0LmMKaW5kZXggNWRjNzQ4NWM0MDc2Li40NDA3 MTkzYmQ3MDIgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3RjcF9vdXRwdXQuYworKysgYi9uZXQvaXB2 NC90Y3Bfb3V0cHV0LmMKQEAgLTI1NjQsNiArMjU2NCwxMSBAQCB2b2lkIHRjcF9zZW5kX2xvc3Nf cHJvYmUoc3RydWN0IHNvY2sgKnNrKQogCWludCBwY291bnQ7CiAJaW50IG1zcyA9IHRjcF9jdXJy ZW50X21zcyhzayk7CiAKKwkvKiBBdCBtb3N0IG9uZSBvdXRzdGFuZGluZyBUTFAgKi8KKwlpZiAo dHAtPnRscF9oaWdoX3NlcSkKKwkJZ290byByZWFybV90aW1lcjsKKworCXRwLT50bHBfcmV0cmFu cyA9IDA7CiAJc2tiID0gdGNwX3NlbmRfaGVhZChzayk7CiAJaWYgKHNrYiAmJiB0Y3Bfc25kX3du ZF90ZXN0KHRwLCBza2IsIG1zcykpIHsKIAkJcGNvdW50ID0gdHAtPnBhY2tldHNfb3V0OwpAQCAt MjU4MSwxMCArMjU4Niw2IEBAIHZvaWQgdGNwX3NlbmRfbG9zc19wcm9iZShzdHJ1Y3Qgc29jayAq c2spCiAJCXJldHVybjsKIAl9CiAKLQkvKiBBdCBtb3N0IG9uZSBvdXRzdGFuZGluZyBUTFAgcmV0 cmFuc21pc3Npb24uICovCi0JaWYgKHRwLT50bHBfaGlnaF9zZXEpCi0JCWdvdG8gcmVhcm1fdGlt ZXI7Ci0KIAlpZiAoc2tiX3N0aWxsX2luX2hvc3RfcXVldWUoc2ssIHNrYikpCiAJCWdvdG8gcmVh cm1fdGltZXI7CiAKQEAgLTI2MDYsMTAgKzI2MDcsMTIgQEAgdm9pZCB0Y3Bfc2VuZF9sb3NzX3By b2JlKHN0cnVjdCBzb2NrICpzaykKIAlpZiAoX190Y3BfcmV0cmFuc21pdF9za2Ioc2ssIHNrYiwg MSkpCiAJCWdvdG8gcmVhcm1fdGltZXI7CiAKKwl0cC0+dGxwX3JldHJhbnMgPSAxOworCitwcm9i ZV9zZW50OgogCS8qIFJlY29yZCBzbmRfbnh0IGZvciBsb3NzIGRldGVjdGlvbi4gKi8KIAl0cC0+ dGxwX2hpZ2hfc2VxID0gdHAtPnNuZF9ueHQ7CiAKLXByb2JlX3NlbnQ6CiAJTkVUX0lOQ19TVEFU Uyhzb2NrX25ldChzayksIExJTlVYX01JQl9UQ1BMT1NTUFJPQkVTKTsKIAkvKiBSZXNldCBzLnQu IHRjcF9yZWFybV9ydG8gd2lsbCByZXN0YXJ0IHRpbWVyIGZyb20gbm93ICovCiAJaW5ldF9jc2so c2spLT5pY3NrX3BlbmRpbmcgPSAwOwotLSAKMi4yNi4yCgoKRnJvbSAyOTFhNDgxNmI2Zjk3MGFl Y2MwZjEzZGFiM2Q0Zjk1YTZiYjZlYjFlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBT dGVmYW5vIEdhcnphcmVsbGEgPHNnYXJ6YXJlQHJlZGhhdC5jb20+CkRhdGU6IEZyaSwgMTAgSnVs IDIwMjAgMTQ6MTI6NDMgKzAyMDAKU3ViamVjdDogW1BBVENIIDIyLzI5XSB2c29jay92aXJ0aW86 IGFubm90YXRlICd0aGVfdmlydGlvX3Zzb2NrJyBSQ1UgcG9pbnRlcgoKWyBVcHN0cmVhbSBjb21t aXQgZjk2MTEzNGE2MTJjNzkzZDU5MDFhOTNkODVhMjkzMzdjNzRhZjk3OCBdCgpDb21taXQgMGRl YWIwODdiMTZhICgidnNvY2svdmlydGlvOiB1c2UgUkNVIHRvIGF2b2lkIHVzZS1hZnRlci1mcmVl Cm9uIHRoZV92aXJ0aW9fdnNvY2siKSBzdGFydHMgdG8gdXNlIFJDVSB0byBwcm90ZWN0ICd0aGVf dmlydGlvX3Zzb2NrJwpwb2ludGVyLCBidXQgd2UgZm9yZ290IHRvIGFubm90YXRlIGl0LgoKVGhp cyBwYXRjaCBhZGRzIHRoZSBhbm5vdGF0aW9uIHRvIGZpeCB0aGUgZm9sbG93aW5nIHNwYXJzZSBl cnJvcnM6CgogICAgbmV0L3Ztd192c29jay92aXJ0aW9fdHJhbnNwb3J0LmM6NzM6MTc6IGVycm9y OiBpbmNvbXBhdGlibGUgdHlwZXMgaW4gY29tcGFyaXNvbiBleHByZXNzaW9uIChkaWZmZXJlbnQg YWRkcmVzcyBzcGFjZXMpOgogICAgbmV0L3Ztd192c29jay92aXJ0aW9fdHJhbnNwb3J0LmM6NzM6 MTc6ICAgIHN0cnVjdCB2aXJ0aW9fdnNvY2sgW25vZGVyZWZdIF9fcmN1ICoKICAgIG5ldC92bXdf dnNvY2svdmlydGlvX3RyYW5zcG9ydC5jOjczOjE3OiAgICBzdHJ1Y3QgdmlydGlvX3Zzb2NrICoK ICAgIG5ldC92bXdfdnNvY2svdmlydGlvX3RyYW5zcG9ydC5jOjE3MToxNzogZXJyb3I6IGluY29t cGF0aWJsZSB0eXBlcyBpbiBjb21wYXJpc29uIGV4cHJlc3Npb24gKGRpZmZlcmVudCBhZGRyZXNz IHNwYWNlcyk6CiAgICBuZXQvdm13X3Zzb2NrL3ZpcnRpb190cmFuc3BvcnQuYzoxNzE6MTc6ICAg IHN0cnVjdCB2aXJ0aW9fdnNvY2sgW25vZGVyZWZdIF9fcmN1ICoKICAgIG5ldC92bXdfdnNvY2sv dmlydGlvX3RyYW5zcG9ydC5jOjE3MToxNzogICAgc3RydWN0IHZpcnRpb192c29jayAqCiAgICBu ZXQvdm13X3Zzb2NrL3ZpcnRpb190cmFuc3BvcnQuYzoyMDc6MTc6IGVycm9yOiBpbmNvbXBhdGli bGUgdHlwZXMgaW4gY29tcGFyaXNvbiBleHByZXNzaW9uIChkaWZmZXJlbnQgYWRkcmVzcyBzcGFj ZXMpOgogICAgbmV0L3Ztd192c29jay92aXJ0aW9fdHJhbnNwb3J0LmM6MjA3OjE3OiAgICBzdHJ1 Y3QgdmlydGlvX3Zzb2NrIFtub2RlcmVmXSBfX3JjdSAqCiAgICBuZXQvdm13X3Zzb2NrL3ZpcnRp b190cmFuc3BvcnQuYzoyMDc6MTc6ICAgIHN0cnVjdCB2aXJ0aW9fdnNvY2sgKgogICAgbmV0L3Zt d192c29jay92aXJ0aW9fdHJhbnNwb3J0LmM6NTYxOjEzOiBlcnJvcjogaW5jb21wYXRpYmxlIHR5 cGVzIGluIGNvbXBhcmlzb24gZXhwcmVzc2lvbiAoZGlmZmVyZW50IGFkZHJlc3Mgc3BhY2VzKToK ICAgIG5ldC92bXdfdnNvY2svdmlydGlvX3RyYW5zcG9ydC5jOjU2MToxMzogICAgc3RydWN0IHZp cnRpb192c29jayBbbm9kZXJlZl0gX19yY3UgKgogICAgbmV0L3Ztd192c29jay92aXJ0aW9fdHJh bnNwb3J0LmM6NTYxOjEzOiAgICBzdHJ1Y3QgdmlydGlvX3Zzb2NrICoKICAgIG5ldC92bXdfdnNv Y2svdmlydGlvX3RyYW5zcG9ydC5jOjYxMjo5OiBlcnJvcjogaW5jb21wYXRpYmxlIHR5cGVzIGlu IGNvbXBhcmlzb24gZXhwcmVzc2lvbiAoZGlmZmVyZW50IGFkZHJlc3Mgc3BhY2VzKToKICAgIG5l dC92bXdfdnNvY2svdmlydGlvX3RyYW5zcG9ydC5jOjYxMjo5OiAgICBzdHJ1Y3QgdmlydGlvX3Zz b2NrIFtub2RlcmVmXSBfX3JjdSAqCiAgICBuZXQvdm13X3Zzb2NrL3ZpcnRpb190cmFuc3BvcnQu Yzo2MTI6OTogICAgc3RydWN0IHZpcnRpb192c29jayAqCiAgICBuZXQvdm13X3Zzb2NrL3ZpcnRp b190cmFuc3BvcnQuYzo2MzE6OTogZXJyb3I6IGluY29tcGF0aWJsZSB0eXBlcyBpbiBjb21wYXJp c29uIGV4cHJlc3Npb24gKGRpZmZlcmVudCBhZGRyZXNzIHNwYWNlcyk6CiAgICBuZXQvdm13X3Zz b2NrL3ZpcnRpb190cmFuc3BvcnQuYzo2MzE6OTogICAgc3RydWN0IHZpcnRpb192c29jayBbbm9k ZXJlZl0gX19yY3UgKgogICAgbmV0L3Ztd192c29jay92aXJ0aW9fdHJhbnNwb3J0LmM6NjMxOjk6 ICAgIHN0cnVjdCB2aXJ0aW9fdnNvY2sgKgoKRml4ZXM6IDBkZWFiMDg3YjE2YSAoInZzb2NrL3Zp cnRpbzogdXNlIFJDVSB0byBhdm9pZCB1c2UtYWZ0ZXItZnJlZSBvbiB0aGVfdmlydGlvX3Zzb2Nr IikKUmVwb3J0ZWQtYnk6IE1pY2hhZWwgUy4gVHNpcmtpbiA8bXN0QHJlZGhhdC5jb20+ClNpZ25l ZC1vZmYtYnk6IFN0ZWZhbm8gR2FyemFyZWxsYSA8c2dhcnphcmVAcmVkaGF0LmNvbT4KUmV2aWV3 ZWQtYnk6IFN0ZWZhbiBIYWpub2N6aSA8c3RlZmFuaGFAcmVkaGF0LmNvbT4KQWNrZWQtYnk6IE1p Y2hhZWwgUy4gVHNpcmtpbiA8bXN0QHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IEpha3ViIEtp Y2luc2tpIDxrdWJhQGtlcm5lbC5vcmc+Ci0tLQogbmV0L3Ztd192c29jay92aXJ0aW9fdHJhbnNw b3J0LmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24o LSkKCmRpZmYgLS1naXQgYS9uZXQvdm13X3Zzb2NrL3ZpcnRpb190cmFuc3BvcnQuYyBiL25ldC92 bXdfdnNvY2svdmlydGlvX3RyYW5zcG9ydC5jCmluZGV4IDA4MmEzMDkzNjY5MC4uODYxZWM5YTY3 MWY5IDEwMDY0NAotLS0gYS9uZXQvdm13X3Zzb2NrL3ZpcnRpb190cmFuc3BvcnQuYworKysgYi9u ZXQvdm13X3Zzb2NrL3ZpcnRpb190cmFuc3BvcnQuYwpAQCAtMjIsNyArMjIsNyBAQAogI2luY2x1 ZGUgPG5ldC9hZl92c29jay5oPgogCiBzdGF0aWMgc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKnZp cnRpb192c29ja193b3JrcXVldWU7Ci1zdGF0aWMgc3RydWN0IHZpcnRpb192c29jayAqdGhlX3Zp cnRpb192c29jazsKK3N0YXRpYyBzdHJ1Y3QgdmlydGlvX3Zzb2NrIF9fcmN1ICp0aGVfdmlydGlv X3Zzb2NrOwogc3RhdGljIERFRklORV9NVVRFWCh0aGVfdmlydGlvX3Zzb2NrX211dGV4KTsgLyog cHJvdGVjdHMgdGhlX3ZpcnRpb192c29jayAqLwogCiBzdHJ1Y3QgdmlydGlvX3Zzb2NrIHsKLS0g CjIuMjYuMgoKCkZyb20gNDdjOGFiZmMyZmNlNTZmNDAzZTFjM2Y3OTVjNGI5ZGM3MWMxMWE5OCBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuIENhcnBlbnRlciA8ZGFuLmNhcnBlbnRl ckBvcmFjbGUuY29tPgpEYXRlOiBUaHUsIDIzIEp1bCAyMDIwIDE3OjQ5OjU3ICswMzAwClN1Ympl Y3Q6IFtQQVRDSCAyMy8yOV0gQVguMjU6IFByZXZlbnQgaW50ZWdlciBvdmVyZmxvd3MgaW4gY29u bmVjdCBhbmQgc2VuZG1zZwoKWyBVcHN0cmVhbSBjb21taXQgMTdhZDczZTk0MWI3MWYzYmVjNzUy M2VhNGU5Y2JjMzc1MjQ2MWMyZCBdCgpXZSByZWNlbnRseSBhZGRlZCBzb21lIGJvdW5kcyBjaGVj a2luZyBpbiBheDI1X2Nvbm5lY3QoKSBhbmQKYXgyNV9zZW5kbXNnKCkgYW5kIHdlIHNvIHdlIHJl bW92ZWQgdGhlIEFYMjVfTUFYX0RJR0lTIGNoZWNrcyBiZWNhdXNlCnRoZXkgd2VyZSBubyBsb25n ZXIgcmVxdWlyZWQuCgpVbmZvcnR1bmF0ZWx5LCBJIGJlbGlldmUgdGhleSBhcmUgcmVxdWlyZWQg dG8gcHJldmVudCBpbnRlZ2VyIG92ZXJmbG93cwpzbyBJIGhhdmUgYWRkZWQgdGhlbSBiYWNrLgoK Rml4ZXM6IDg4ODViYjA2MjFmMCAoIkFYLjI1OiBQcmV2ZW50IG91dC1vZi1ib3VuZHMgcmVhZCBp biBheDI1X3NlbmRtc2coKSIpCkZpeGVzOiAyZjJhN2ZmYWQ1YzYgKCJBWC4yNTogRml4IG91dC1v Zi1ib3VuZHMgcmVhZCBpbiBheDI1X2Nvbm5lY3QoKSIpClNpZ25lZC1vZmYtYnk6IERhbiBDYXJw ZW50ZXIgPGRhbi5jYXJwZW50ZXJAb3JhY2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4g TWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9heDI1L2FmX2F4MjUuYyB8IDUg KysrKy0KIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRp ZmYgLS1naXQgYS9uZXQvYXgyNS9hZl9heDI1LmMgYi9uZXQvYXgyNS9hZl9heDI1LmMKaW5kZXgg ZGJlN2VmMmM3ZTc1Li4yZmRiMWI1NzNlOGMgMTAwNjQ0Ci0tLSBhL25ldC9heDI1L2FmX2F4MjUu YworKysgYi9uZXQvYXgyNS9hZl9heDI1LmMKQEAgLTExODgsNiArMTE4OCw3IEBAIHN0YXRpYyBp bnQgX19tdXN0X2NoZWNrIGF4MjVfY29ubmVjdChzdHJ1Y3Qgc29ja2V0ICpzb2NrLAogCSAgICBm c2EtPmZzYV9heDI1LnNheDI1X25kaWdpcyAhPSAwKSB7CiAJCS8qIFZhbGlkIG51bWJlciBvZiBk aWdpcGVhdGVycyA/ICovCiAJCWlmIChmc2EtPmZzYV9heDI1LnNheDI1X25kaWdpcyA8IDEgfHwK KwkJICAgIGZzYS0+ZnNhX2F4MjUuc2F4MjVfbmRpZ2lzID4gQVgyNV9NQVhfRElHSVMgfHwKIAkJ ICAgIGFkZHJfbGVuIDwgc2l6ZW9mKHN0cnVjdCBzb2NrYWRkcl9heDI1KSArCiAJCSAgICBzaXpl b2YoYXgyNV9hZGRyZXNzKSAqIGZzYS0+ZnNhX2F4MjUuc2F4MjVfbmRpZ2lzKSB7CiAJCQllcnIg PSAtRUlOVkFMOwpAQCAtMTUwOSw3ICsxNTEwLDkgQEAgc3RhdGljIGludCBheDI1X3NlbmRtc2co c3RydWN0IHNvY2tldCAqc29jaywgc3RydWN0IG1zZ2hkciAqbXNnLCBzaXplX3QgbGVuKQogCQkJ c3RydWN0IGZ1bGxfc29ja2FkZHJfYXgyNSAqZnNhID0gKHN0cnVjdCBmdWxsX3NvY2thZGRyX2F4 MjUgKil1c2F4OwogCiAJCQkvKiBWYWxpZCBudW1iZXIgb2YgZGlnaXBlYXRlcnMgPyAqLwotCQkJ aWYgKHVzYXgtPnNheDI1X25kaWdpcyA8IDEgfHwgYWRkcl9sZW4gPCBzaXplb2Yoc3RydWN0IHNv Y2thZGRyX2F4MjUpICsKKwkJCWlmICh1c2F4LT5zYXgyNV9uZGlnaXMgPCAxIHx8CisJCQkgICAg dXNheC0+c2F4MjVfbmRpZ2lzID4gQVgyNV9NQVhfRElHSVMgfHwKKwkJCSAgICBhZGRyX2xlbiA8 IHNpemVvZihzdHJ1Y3Qgc29ja2FkZHJfYXgyNSkgKwogCQkJICAgIHNpemVvZihheDI1X2FkZHJl c3MpICogdXNheC0+c2F4MjVfbmRpZ2lzKSB7CiAJCQkJZXJyID0gLUVJTlZBTDsKIAkJCQlnb3Rv IG91dDsKLS0gCjIuMjYuMgoKCkZyb20gYzBiZjQyOTQzNDk1MGE1OTg0MWRlMzJhMzgwNTFjMWFm MWZjZDE2MCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogVmFzdW5kaGFyYSBWb2xhbSA8 dmFzdW5kaGFyYS12LnZvbGFtQGJyb2FkY29tLmNvbT4KRGF0ZTogU2F0LCAxMSBKdWwgMjAyMCAy MDo0ODoyMyAtMDQwMApTdWJqZWN0OiBbUEFUQ0ggMjQvMjldIGJueHRfZW46IEZpeCByYWNlIHdo ZW4gbW9kaWZ5aW5nIHBhdXNlIHNldHRpbmdzLgoKWyBVcHN0cmVhbSBjb21taXQgMTYzZTllZjYz NjQxYTAyZGU0Yzk1Y2Q5MjE1NzcyNjVjNTJlMWNlMiBdCgpUaGUgZHJpdmVyIHdhcyBtb2RpZmll ZCB0byBub3QgcmVseSBvbiBydG5sIGxvY2sgdG8gcHJvdGVjdCBsaW5rCnNldHRpbmdzIGFib3V0 IDIgeWVhcnMgYWdvLiAgVGhlIHBhdXNlIHNldHRpbmcgd2FzIG1pc3NlZCB3aGVuCm1ha2luZyB0 aGF0IGNoYW5nZS4gIEZpeCBpdCBieSBhY3F1aXJpbmcgbGlua19sb2NrIG11dGV4IGJlZm9yZQpj YWxsaW5nIGJueHRfaHdybV9zZXRfcGF1c2UoKS4KCkZpeGVzOiBlMmRjOWI2ZTM4ZmEgKCJibnh0 X2VuOiBEb24ndCB1c2UgcnRubCBsb2NrIHRvIHByb3RlY3QgbGluayBjaGFuZ2UgbG9naWMgaW4g d29ya3F1ZXVlLiIpClNpZ25lZC1vZmYtYnk6IFZhc3VuZGhhcmEgVm9sYW0gPHZhc3VuZGhhcmEt di52b2xhbUBicm9hZGNvbS5jb20+ClJldmlld2VkLWJ5OiBFZHdpbiBQZWVyIDxlZHdpbi5wZWVy QGJyb2FkY29tLmNvbT4KU2lnbmVkLW9mZi1ieTogTWljaGFlbCBDaGFuIDxtaWNoYWVsLmNoYW5A YnJvYWRjb20uY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVt bG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0X2V0 aHRvb2wuYyB8IDUgKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDEgZGVs ZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0 L2JueHRfZXRodG9vbC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0 X2V0aHRvb2wuYwppbmRleCBmYjFhYjU4ZGE5ZmEuLjFmNTEyZTdjM2Q0MyAxMDA2NDQKLS0tIGEv ZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0X2V0aHRvb2wuYworKysgYi9k cml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHRfZXRodG9vbC5jCkBAIC0xNjg4 LDggKzE2ODgsMTEgQEAgc3RhdGljIGludCBibnh0X3NldF9wYXVzZXBhcmFtKHN0cnVjdCBuZXRf ZGV2aWNlICpkZXYsCiAJaWYgKGVwYXVzZS0+dHhfcGF1c2UpCiAJCWxpbmtfaW5mby0+cmVxX2Zs b3dfY3RybCB8PSBCTlhUX0xJTktfUEFVU0VfVFg7CiAKLQlpZiAobmV0aWZfcnVubmluZyhkZXYp KQorCWlmIChuZXRpZl9ydW5uaW5nKGRldikpIHsKKwkJbXV0ZXhfbG9jaygmYnAtPmxpbmtfbG9j ayk7CiAJCXJjID0gYm54dF9od3JtX3NldF9wYXVzZShicCk7CisJCW11dGV4X3VubG9jaygmYnAt PmxpbmtfbG9jayk7CisJfQogCXJldHVybiByYzsKIH0KIAotLSAKMi4yNi4yCgoKRnJvbSAzODQ2 NzkxNjc2ZmVmZDU1ZWVmYmFmMTJlZWExNzQzOWUwNzkxYjNhIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBNaWNoYWVsIENoYW4gPG1pY2hhZWwuY2hhbkBicm9hZGNvbS5jb20+CkRhdGU6 IFNhdCwgMTEgSnVsIDIwMjAgMjA6NDg6MjUgLTA0MDAKU3ViamVjdDogW1BBVENIIDI1LzI5XSBi bnh0X2VuOiBGaXggY29tcGxldGlvbiByaW5nIHNpemluZyB3aXRoIFRQQSBlbmFibGVkLgoKWyBV cHN0cmVhbSBjb21taXQgMjc2NDBjZTY4ZDIxZTU1NmI2NmJjNWZhMDIyYWFjZDI2ZTUzYzk0NyBd CgpUaGUgY3VycmVudCBjb21wbGV0aW9uIHJpbmcgc2l6aW5nIGZvcm11bGEgaXMgd3Jvbmcgd2l0 aCBUUEEgZW5hYmxlZC4KVGhlIGZvcm11bGEgYXNzdW1lcyB0aGF0IHRoZSBudW1iZXIgb2YgVFBB IGNvbXBsZXRpb25zIGFyZSBib3VuZCBieSB0aGUKUlggcmluZyBzaXplLCBidXQgdGhhdCdzIG5v dCB0cnVlLiAgVFBBX1NUQVJUIGNvbXBsZXRpb25zIGFyZSBpbW1lZGlhdGVseQpyZWN5Y2xlZCBz byB0aGV5IGFyZSBub3QgYm91bmQgYnkgdGhlIFJYIHJpbmcgc2l6ZS4gIFdlIG11c3QgYWRkCmJw LT5tYXhfdHBhIHRvIHRoZSB3b3JzdCBjYXNlIG1heGltdW0gUlggYW5kIFRQQSBjb21wbGV0aW9u cy4KClRoZSBjb21wbGV0aW9uIHJpbmcgY2FuIG92ZXJmbG93IGJlY2F1c2Ugb2YgdGhpcyBtaXN0 YWtlLiAgVGhpcyB3aWxsCmNhdXNlIGhhcmR3YXJlIHRvIGRpc2FibGUgdGhlIGNvbXBsZXRpb24g cmluZyB3aGVuIHRoaXMgaGFwcGVucywKbGVhZGluZyB0byBSWCBhbmQgVFggdHJhZmZpYyB0byBz dGFsbCBvbiB0aGF0IHJpbmcuICBUaGlzIGlzc3VlIGlzCmdlbmVyYWxseSBleHBvc2VkIG9ubHkg d2hlbiB0aGUgUlggcmluZyBzaXplIGlzIHNldCB2ZXJ5IHNtYWxsLgoKRml4IHRoZSBmb3JtdWxh IGJ5IGFkZGluZyBicC0+bWF4X3RwYSB0byB0aGUgbnVtYmVyIG9mIFJYIGNvbXBsZXRpb25zCmlm IFRQQSBpcyBlbmFibGVkLgoKRml4ZXM6IGMwYzA1MGM1OGQ4NCAoImJueHRfZW46IE5ldyBCcm9h ZGNvbSBldGhlcm5ldCBkcml2ZXIuIik7ClJldmlld2VkLWJ5OiBWYXN1bmRoYXJhIFZvbGFtIDx2 YXN1bmRoYXJhLXYudm9sYW1AYnJvYWRjb20uY29tPgpTaWduZWQtb2ZmLWJ5OiBNaWNoYWVsIENo YW4gPG1pY2hhZWwuY2hhbkBicm9hZGNvbS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1p bGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9icm9h ZGNvbS9ibnh0L2JueHQuYyB8IDEyICsrKysrKysrKystLQogMSBmaWxlIGNoYW5nZWQsIDEwIGlu c2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRo ZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNv bS9ibnh0L2JueHQuYwppbmRleCBiNTE0N2JkNmNiYTYuLjJjYmZlMGNkN2VlZiAxMDA2NDQKLS0t IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0LmMKKysrIGIvZHJpdmVy cy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0LmMKQEAgLTM0MjMsNyArMzQyMyw3IEBA IHZvaWQgYm54dF9zZXRfdHBhX2ZsYWdzKHN0cnVjdCBibnh0ICpicCkKICAqLwogdm9pZCBibnh0 X3NldF9yaW5nX3BhcmFtcyhzdHJ1Y3QgYm54dCAqYnApCiB7Ci0JdTMyIHJpbmdfc2l6ZSwgcnhf c2l6ZSwgcnhfc3BhY2U7CisJdTMyIHJpbmdfc2l6ZSwgcnhfc2l6ZSwgcnhfc3BhY2UsIG1heF9y eF9jbXBsOwogCXUzMiBhZ2dfZmFjdG9yID0gMCwgYWdnX3Jpbmdfc2l6ZSA9IDA7CiAKIAkvKiA4 IGZvciBDUkMgYW5kIFZMQU4gKi8KQEAgLTM0NzksNyArMzQ3OSwxNSBAQCB2b2lkIGJueHRfc2V0 X3JpbmdfcGFyYW1zKHN0cnVjdCBibnh0ICpicCkKIAlicC0+dHhfbnJfcGFnZXMgPSBibnh0X2Nh bGNfbnJfcmluZ19wYWdlcyhyaW5nX3NpemUsIFRYX0RFU0NfQ05UKTsKIAlicC0+dHhfcmluZ19t YXNrID0gKGJwLT50eF9ucl9wYWdlcyAqIFRYX0RFU0NfQ05UKSAtIDE7CiAKLQlyaW5nX3NpemUg PSBicC0+cnhfcmluZ19zaXplICogKDIgKyBhZ2dfZmFjdG9yKSArIGJwLT50eF9yaW5nX3NpemU7 CisJbWF4X3J4X2NtcGwgPSBicC0+cnhfcmluZ19zaXplOworCS8qIE1BWCBUUEEgbmVlZHMgdG8g YmUgYWRkZWQgYmVjYXVzZSBUUEFfU1RBUlQgY29tcGxldGlvbnMgYXJlCisJICogaW1tZWRpYXRl bHkgcmVjeWNsZWQsIHNvIHRoZSBUUEEgY29tcGxldGlvbnMgYXJlIG5vdCBib3VuZCBieQorCSAq IHRoZSBSWCByaW5nIHNpemUuCisJICovCisJaWYgKGJwLT5mbGFncyAmIEJOWFRfRkxBR19UUEEp CisJCW1heF9yeF9jbXBsICs9IGJwLT5tYXhfdHBhOworCS8qIFJYIGFuZCBUUEEgY29tcGxldGlv bnMgYXJlIDMyLWJ5dGUsIGFsbCBvdGhlcnMgYXJlIDE2LWJ5dGUgKi8KKwlyaW5nX3NpemUgPSBt YXhfcnhfY21wbCAqIDIgKyBhZ2dfcmluZ19zaXplICsgYnAtPnR4X3Jpbmdfc2l6ZTsKIAlicC0+ Y3BfcmluZ19zaXplID0gcmluZ19zaXplOwogCiAJYnAtPmNwX25yX3BhZ2VzID0gYm54dF9jYWxj X25yX3JpbmdfcGFnZXMocmluZ19zaXplLCBDUF9ERVNDX0NOVCk7Ci0tIAoyLjI2LjIKCgpGcm9t IDAwMmEyY2M0OTA3YmNhMTYwZDg3ODc0NWM3M2ZiMWViNGZkOWE3MTcgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IFhpbiBMb25nIDxsdWNpZW4ueGluQGdtYWlsLmNvbT4KRGF0ZTogV2Vk LCAyMiBKdWwgMjAyMCAyMzo1MjoxMSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMjYvMjldIHNjdHA6 IHNocmluayBzdHJlYW0gb3V0cSBvbmx5IHdoZW4gbmV3IG91dGNudCA8IG9sZAogb3V0Y250Cgpb IFVwc3RyZWFtIGNvbW1pdCA4ZjEzMzk5ZGIyMmY5MDlhMzU3MzViZjhhZTJmOTMyZTBjOGYwZTMw IF0KCkl0J3Mgbm90IG5lY2Vzc2FyeSB0byBnbyBsaXN0X2Zvcl9lYWNoIGZvciBvdXRxLT5vdXRf Y2h1bmtfbGlzdAp3aGVuIG5ldyBvdXRjbnQgPj0gb2xkIG91dGNudCwgYXMgbm8gY2h1bmsgd2l0 aCBoaWdoZXIgc2lkIHRoYW4KbmV3IChvdXRjbnQgLSAxKSBleGlzdHMgaW4gdGhlIG91dHF1ZXVl LgoKV2hpbGUgYXQgaXQsIGFsc28gbW92ZSB0aGUgbGlzdF9mb3JfZWFjaCBjb2RlIGluIGEgbmV3 IGZ1bmN0aW9uCnNjdHBfc3RyZWFtX3Nocmlua19vdXQoKSwgd2hpY2ggd2lsbCBiZSB1c2VkIGlu IHRoZSBuZXh0IHBhdGNoLgoKU2lnbmVkLW9mZi1ieTogWGluIExvbmcgPGx1Y2llbi54aW5AZ21h aWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5u ZXQ+Ci0tLQogbmV0L3NjdHAvc3RyZWFtLmMgfCAyMSArKysrKysrKysrKysrKy0tLS0tLS0KIDEg ZmlsZSBjaGFuZ2VkLCAxNCBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL25ldC9zY3RwL3N0cmVhbS5jIGIvbmV0L3NjdHAvc3RyZWFtLmMKaW5kZXggYzFhMTAwZDJm ZWQzLi45Y2FhMGY2ZTMxYmQgMTAwNjQ0Ci0tLSBhL25ldC9zY3RwL3N0cmVhbS5jCisrKyBiL25l dC9zY3RwL3N0cmVhbS5jCkBAIC0yMiwxNyArMjIsMTEgQEAKICNpbmNsdWRlIDxuZXQvc2N0cC9z bS5oPgogI2luY2x1ZGUgPG5ldC9zY3RwL3N0cmVhbV9zY2hlZC5oPgogCi0vKiBNaWdyYXRlcyBj aHVua3MgZnJvbSBzdHJlYW0gcXVldWVzIHRvIG5ldyBzdHJlYW0gcXVldWVzIGlmIG5lZWRlZCwK LSAqIGJ1dCBub3QgYWNyb3NzIGFzc29jaWF0aW9ucy4gQWxzbywgcmVtb3ZlcyB0aG9zZSBjaHVu a3MgdG8gc3RyZWFtcwotICogaGlnaGVyIHRoYW4gdGhlIG5ldyBtYXguCi0gKi8KLXN0YXRpYyB2 b2lkIHNjdHBfc3RyZWFtX291dHFfbWlncmF0ZShzdHJ1Y3Qgc2N0cF9zdHJlYW0gKnN0cmVhbSwK LQkJCQkgICAgIHN0cnVjdCBzY3RwX3N0cmVhbSAqbmV3LCBfX3UxNiBvdXRjbnQpCitzdGF0aWMg dm9pZCBzY3RwX3N0cmVhbV9zaHJpbmtfb3V0KHN0cnVjdCBzY3RwX3N0cmVhbSAqc3RyZWFtLCBf X3UxNiBvdXRjbnQpCiB7CiAJc3RydWN0IHNjdHBfYXNzb2NpYXRpb24gKmFzb2M7CiAJc3RydWN0 IHNjdHBfY2h1bmsgKmNoLCAqdGVtcDsKIAlzdHJ1Y3Qgc2N0cF9vdXRxICpvdXRxOwotCWludCBp OwogCiAJYXNvYyA9IGNvbnRhaW5lcl9vZihzdHJlYW0sIHN0cnVjdCBzY3RwX2Fzc29jaWF0aW9u LCBzdHJlYW0pOwogCW91dHEgPSAmYXNvYy0+b3V0cXVldWU7CkBAIC01Niw2ICs1MCwxOSBAQCBz dGF0aWMgdm9pZCBzY3RwX3N0cmVhbV9vdXRxX21pZ3JhdGUoc3RydWN0IHNjdHBfc3RyZWFtICpz dHJlYW0sCiAKIAkJc2N0cF9jaHVua19mcmVlKGNoKTsKIAl9Cit9CisKKy8qIE1pZ3JhdGVzIGNo dW5rcyBmcm9tIHN0cmVhbSBxdWV1ZXMgdG8gbmV3IHN0cmVhbSBxdWV1ZXMgaWYgbmVlZGVkLAor ICogYnV0IG5vdCBhY3Jvc3MgYXNzb2NpYXRpb25zLiBBbHNvLCByZW1vdmVzIHRob3NlIGNodW5r cyB0byBzdHJlYW1zCisgKiBoaWdoZXIgdGhhbiB0aGUgbmV3IG1heC4KKyAqLworc3RhdGljIHZv aWQgc2N0cF9zdHJlYW1fb3V0cV9taWdyYXRlKHN0cnVjdCBzY3RwX3N0cmVhbSAqc3RyZWFtLAor CQkJCSAgICAgc3RydWN0IHNjdHBfc3RyZWFtICpuZXcsIF9fdTE2IG91dGNudCkKK3sKKwlpbnQg aTsKKworCWlmIChzdHJlYW0tPm91dGNudCA+IG91dGNudCkKKwkJc2N0cF9zdHJlYW1fc2hyaW5r X291dChzdHJlYW0sIG91dGNudCk7CiAKIAlpZiAobmV3KSB7CiAJCS8qIEhlcmUgd2UgYWN0dWFs bHkgbW92ZSB0aGUgb2xkIGV4dCBzdHVmZiBpbnRvIHRoZSBuZXcKLS0gCjIuMjYuMgoKCkZyb20g ZDU3NDFkMTFlNTA4OTM1Nzc1YWU1MWNjYTIyN2JkMDIxOWQwMTc2YyBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogWGluIExvbmcgPGx1Y2llbi54aW5AZ21haWwuY29tPgpEYXRlOiBXZWQs IDIyIEp1bCAyMDIwIDIzOjUyOjEyICswODAwClN1YmplY3Q6IFtQQVRDSCAyNy8yOV0gc2N0cDog c2hyaW5rIHN0cmVhbSBvdXRxIHdoZW4gZmFpbHMgdG8gZG8gYWRkc3RyZWFtCiByZWNvbmYKClsg VXBzdHJlYW0gY29tbWl0IDNlY2RkYTNlOWFkODM3Y2Y5Y2I0MWI2ZmFhMTFiMWFmM2E1YWJjMGMg XQoKV2hlbiBhZGRpbmcgYSBzdHJlYW0gd2l0aCBzdHJlYW0gcmVjb25mLCB0aGUgbmV3IHN0cmVh bSBmaXJzdGx5IGlzIGluCkNMT1NFRCBzdGF0ZSBidXQgbmV3IG91dCBjaHVua3MgY2FuIHN0aWxs IGJlIGVucXVldWVkLiBUaGVuIG9uY2UgZ2V0cwp0aGUgY29uZmlybWF0aW9uIGZyb20gdGhlIHBl ZXIsIHRoZSBzdGF0ZSB3aWxsIGNoYW5nZSB0byBPUEVOLgoKSG93ZXZlciwgaWYgdGhlIHBlZXIg ZGVuaWVzLCBpdCBuZWVkcyB0byByb2xsIGJhY2sgdGhlIHN0cmVhbS4gQnV0IHdoZW4KZG9pbmcg dGhhdCwgaXQgb25seSBzZXRzIHRoZSBzdHJlYW0gb3V0Y250IGJhY2ssIGFuZCB0aGUgY2h1bmtz IGFscmVhZHkKaW4gdGhlIG5ldyBzdHJlYW0gZG9uJ3QgZ2V0IHB1cmdlZC4gSXQgY2F1c2VkIHRo ZXNlIGNodW5rcyBjYW4gc3RpbGwgYmUKZGVxdWV1ZWQgaW4gc2N0cF9vdXRxX2RlcXVldWVfZGF0 YSgpLgoKQXMgaXRzIHN0cmVhbSBpcyBzdGlsbCBpbiBDTE9TRSwgdGhlIGNodW5rIHdpbGwgYmUg ZW5xdWV1ZWQgdG8gdGhlIGhlYWQKYWdhaW4gYnkgc2N0cF9vdXRxX2hlYWRfZGF0YSgpLiBUaGlz IGNodW5rIHdpbGwgbmV2ZXIgYmUgc2VudCBvdXQsIGFuZAp0aGUgY2h1bmtzIGFmdGVyIGl0IGNh biBuZXZlciBiZSBkZXF1ZXVlZC4gVGhlIGFzc29jIHdpbGwgYmUgJ2h1bmcnIGluCmEgZGVhZCBs b29wIG9mIHNlbmRpbmcgdGhpcyBjaHVuay4KClRvIGZpeCBpdCwgdGhpcyBwYXRjaCBpcyB0byBw dXJnZSB0aGVzZSBjaHVua3MgYWxyZWFkeSBpbiB0aGUgbmV3CnN0cmVhbSBieSBjYWxsaW5nIHNj dHBfc3RyZWFtX3Nocmlua19vdXQoKSB3aGVuIGZhaWxpbmcgdG8gZG8gdGhlCmFkZHN0cmVhbSBy ZWNvbmYuCgpGaXhlczogMTFhZTc2ZTY3YTE3ICgic2N0cDogaW1wbGVtZW50IHJlY2VpdmVyLXNp ZGUgcHJvY2VkdXJlcyBmb3IgdGhlIFJlY29uZiBSZXNwb25zZSBQYXJhbWV0ZXIiKQpSZXBvcnRl ZC1ieTogWWluZyBYdSA8eWlueHVAcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogWGluIExvbmcg PGx1Y2llbi54aW5AZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRh dmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3NjdHAvc3RyZWFtLmMgfCA2ICsrKystLQogMSBm aWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9uZXQvc2N0cC9zdHJlYW0uYyBiL25ldC9zY3RwL3N0cmVhbS5jCmluZGV4IDljYWEwZjZlMzFi ZC4uZTEzY2JkNWMwMTkzIDEwMDY0NAotLS0gYS9uZXQvc2N0cC9zdHJlYW0uYworKysgYi9uZXQv c2N0cC9zdHJlYW0uYwpAQCAtMTA0NSwxMSArMTA0NSwxMyBAQCBzdHJ1Y3Qgc2N0cF9jaHVuayAq c2N0cF9wcm9jZXNzX3N0cnJlc2V0X3Jlc3AoCiAJCW51bXMgPSBudG9ocyhhZGRzdHJtLT5udW1i ZXJfb2Zfc3RyZWFtcyk7CiAJCW51bWJlciA9IHN0cmVhbS0+b3V0Y250IC0gbnVtczsKIAotCQlp ZiAocmVzdWx0ID09IFNDVFBfU1RSUkVTRVRfUEVSRk9STUVEKQorCQlpZiAocmVzdWx0ID09IFND VFBfU1RSUkVTRVRfUEVSRk9STUVEKSB7CiAJCQlmb3IgKGkgPSBudW1iZXI7IGkgPCBzdHJlYW0t Pm91dGNudDsgaSsrKQogCQkJCVNDVFBfU08oc3RyZWFtLCBpKS0+c3RhdGUgPSBTQ1RQX1NUUkVB TV9PUEVOOwotCQllbHNlCisJCX0gZWxzZSB7CisJCQlzY3RwX3N0cmVhbV9zaHJpbmtfb3V0KHN0 cmVhbSwgbnVtYmVyKTsKIAkJCXN0cmVhbS0+b3V0Y250ID0gbnVtYmVyOworCQl9CiAKIAkJKmV2 cCA9IHNjdHBfdWxwZXZlbnRfbWFrZV9zdHJlYW1fY2hhbmdlX2V2ZW50KGFzb2MsIGZsYWdzLAog CQkJMCwgbnVtcywgR0ZQX0FUT01JQyk7Ci0tIAoyLjI2LjIKCgpGcm9tIDJiZGI4NWE5NjBlZmE2 NWY1NzU5ZTMzYTNlOTI0ZWM2YzUyZGEyNzYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IEt1bml5dWtpIEl3YXNoaW1hIDxrdW5peXVAYW1hem9uLmNvLmpwPgpEYXRlOiBUdWUsIDIxIEp1 bCAyMDIwIDE1OjE1OjMwICswOTAwClN1YmplY3Q6IFtQQVRDSCAyOC8yOV0gdWRwOiBDb3B5IGhh c19jb25ucyBpbiByZXVzZXBvcnRfZ3JvdygpLgoKWyBVcHN0cmVhbSBjb21taXQgZjJiMmM1NWU1 MTI4NzlhMDU0NTZlYWY1ZGU0ZDFlZDJmNzc1NzUwOSBdCgpJZiBhbiB1bmNvbm5lY3RlZCBzb2Nr ZXQgaW4gYSBVRFAgcmV1c2Vwb3J0IGdyb3VwIGNvbm5lY3QoKXMsIGhhc19jb25ucyBpcwpzZXQg dG8gMS4gVGhlbiwgd2hlbiBhIHBhY2tldCBpcyByZWNlaXZlZCwgdWRwWzQ2XV9saWJfbG9va3Vw MigpIHNjYW5zIGFsbApzb2NrZXRzIGluIHVkcF9oc2xvdCBsb29raW5nIGZvciB0aGUgY29ubmVj dGVkIHNvY2tldCB3aXRoIHRoZSBoaWdoZXN0CnNjb3JlLgoKSG93ZXZlciwgd2hlbiB0aGUgbnVt YmVyIG9mIHNvY2tldHMgYm91bmQgdG8gdGhlIHBvcnQgZXhjZWVkcyBtYXhfc29ja3MsCnJldXNl cG9ydF9ncm93KCkgcmVzZXRzIGhhc19jb25ucyB0byAwLiBJdCBjYW4gY2F1c2UgdWRwWzQ2XV9s aWJfbG9va3VwMigpCnRvIHJldHVybiB3aXRob3V0IHNjYW5uaW5nIGFsbCBzb2NrZXRzLCByZXN1 bHRpbmcgaW4gdGhhdCBwYWNrZXRzIHNlbnQgdG8KY29ubmVjdGVkIHNvY2tldHMgbWF5IGJlIGRp c3RyaWJ1dGVkIHRvIHVuY29ubmVjdGVkIHNvY2tldHMuCgpUaGVyZWZvcmUsIHJldXNlcG9ydF9n cm93KCkgc2hvdWxkIGNvcHkgaGFzX2Nvbm5zLgoKRml4ZXM6IGFjZGNlY2M2MTI4NSAoInVkcDog Y29ycmVjdCByZXVzZXBvcnQgc2VsZWN0aW9uIHdpdGggY29ubmVjdGVkIHNvY2tldHMiKQpDQzog V2lsbGVtIGRlIEJydWlqbiA8d2lsbGVtYkBnb29nbGUuY29tPgpSZXZpZXdlZC1ieTogQmVuamFt aW4gSGVycmVuc2NobWlkdCA8YmVuaEBhbWF6b24uY29tPgpTaWduZWQtb2ZmLWJ5OiBLdW5peXVr aSBJd2FzaGltYSA8a3VuaXl1QGFtYXpvbi5jby5qcD4KQWNrZWQtYnk6IFdpbGxlbSBkZSBCcnVp am4gPHdpbGxlbWJAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxk YXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9jb3JlL3NvY2tfcmV1c2Vwb3J0LmMgfCAxICsK IDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQoKZGlmZiAtLWdpdCBhL25ldC9jb3JlL3Nv Y2tfcmV1c2Vwb3J0LmMgYi9uZXQvY29yZS9zb2NrX3JldXNlcG9ydC5jCmluZGV4IGYzY2VlYzkz ZjM5Mi4uNDA4MjkxMTFmZTAwIDEwMDY0NAotLS0gYS9uZXQvY29yZS9zb2NrX3JldXNlcG9ydC5j CisrKyBiL25ldC9jb3JlL3NvY2tfcmV1c2Vwb3J0LmMKQEAgLTExMiw2ICsxMTIsNyBAQCBzdGF0 aWMgc3RydWN0IHNvY2tfcmV1c2Vwb3J0ICpyZXVzZXBvcnRfZ3JvdyhzdHJ1Y3Qgc29ja19yZXVz ZXBvcnQgKnJldXNlKQogCW1vcmVfcmV1c2UtPnByb2cgPSByZXVzZS0+cHJvZzsKIAltb3JlX3Jl dXNlLT5yZXVzZXBvcnRfaWQgPSByZXVzZS0+cmV1c2Vwb3J0X2lkOwogCW1vcmVfcmV1c2UtPmJp bmRfaW5hbnkgPSByZXVzZS0+YmluZF9pbmFueTsKKwltb3JlX3JldXNlLT5oYXNfY29ubnMgPSBy ZXVzZS0+aGFzX2Nvbm5zOwogCiAJbWVtY3B5KG1vcmVfcmV1c2UtPnNvY2tzLCByZXVzZS0+c29j a3MsCiAJICAgICAgIHJldXNlLT5udW1fc29ja3MgKiBzaXplb2Yoc3RydWN0IHNvY2sgKikpOwot LSAKMi4yNi4yCgoKRnJvbSBjMjhlODg5MGVhYmY3N2MwMGMzMjlkOWZjYmFkN2RjZWI3NDljZDAz IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBLdW5peXVraSBJd2FzaGltYSA8a3VuaXl1 QGFtYXpvbi5jby5qcD4KRGF0ZTogVHVlLCAyMSBKdWwgMjAyMCAxNToxNTozMSArMDkwMApTdWJq ZWN0OiBbUEFUQ0ggMjkvMjldIHVkcDogSW1wcm92ZSBsb2FkIGJhbGFuY2luZyBmb3IgU09fUkVV U0VQT1JULgoKWyBVcHN0cmVhbSBjb21taXQgZWZjNmI2ZjZjMzExM2U4YjIwM2I5ZGViZmI3MmQ4 MWUwZjNkY2FjZSBdCgpDdXJyZW50bHksIFNPX1JFVVNFUE9SVCBkb2VzIG5vdCB3b3JrIHdlbGwg aWYgY29ubmVjdGVkIHNvY2tldHMgYXJlIGluIGEKVURQIHJldXNlcG9ydCBncm91cC4KClRoZW4g cmV1c2Vwb3J0X2hhc19jb25ucygpIHJldHVybnMgdHJ1ZSBhbmQgdGhlIHJlc3VsdCBvZgpyZXVz ZXBvcnRfc2VsZWN0X3NvY2soKSBpcyBkaXNjYXJkZWQuIEFsc28sIHVuY29ubmVjdGVkIHNvY2tl dHMgaGF2ZSB0aGUKc2FtZSBzY29yZSwgaGVuY2Ugb25seSBkb2VzIHRoZSBmaXJzdCB1bmNvbm5l Y3RlZCBzb2NrZXQgaW4gdWRwX2hzbG90CmFsd2F5cyByZWNlaXZlIGFsbCBwYWNrZXRzIHNlbnQg dG8gdW5jb25uZWN0ZWQgc29ja2V0cy4KClNvLCB0aGUgcmVzdWx0IG9mIHJldXNlcG9ydF9zZWxl Y3Rfc29jaygpIHNob3VsZCBiZSB1c2VkIGZvciBsb2FkCmJhbGFuY2luZy4KClRoZSBub3Rld29y dGh5IHBvaW50IGlzIHRoYXQgdGhlIHVuY29ubmVjdGVkIHNvY2tldHMgcGxhY2VkIGFmdGVyCmNv bm5lY3RlZCBzb2NrZXRzIGluIHNvY2tfcmV1c2Vwb3J0LnNvY2tzIHdpbGwgcmVjZWl2ZSBtb3Jl IHBhY2tldHMgdGhhbgpvdGhlcnMgYmVjYXVzZSBvZiB0aGUgYWxnb3JpdGhtIGluIHJldXNlcG9y dF9zZWxlY3Rfc29jaygpLgoKICAgIGluZGV4IHwgY29ubmVjdGVkIHwgcmVjaXByb2NhbF9zY2Fs ZSB8IHJlc3VsdAogICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCiAgICAwICAgICB8IG5vICAgICAgICB8IDIwJSAgICAgICAgICAgICAgfCA0MCUKICAgIDEg ICAgIHwgbm8gICAgICAgIHwgMjAlICAgICAgICAgICAgICB8IDIwJQogICAgMiAgICAgfCB5ZXMg ICAgICAgfCAyMCUgICAgICAgICAgICAgIHwgMCUKICAgIDMgICAgIHwgbm8gICAgICAgIHwgMjAl ICAgICAgICAgICAgICB8IDQwJQogICAgNCAgICAgfCB5ZXMgICAgICAgfCAyMCUgICAgICAgICAg ICAgIHwgMCUKCklmIG1vc3Qgb2YgdGhlIHNvY2tldHMgYXJlIGNvbm5lY3RlZCwgdGhpcyBjYW4g YmUgYSBwcm9ibGVtLCBidXQgaXQgc3RpbGwKd29ya3MgYmV0dGVyIHRoYW4gbm93LgoKRml4ZXM6 IGFjZGNlY2M2MTI4NSAoInVkcDogY29ycmVjdCByZXVzZXBvcnQgc2VsZWN0aW9uIHdpdGggY29u bmVjdGVkIHNvY2tldHMiKQpDQzogV2lsbGVtIGRlIEJydWlqbiA8d2lsbGVtYkBnb29nbGUuY29t PgpSZXZpZXdlZC1ieTogQmVuamFtaW4gSGVycmVuc2NobWlkdCA8YmVuaEBhbWF6b24uY29tPgpT aWduZWQtb2ZmLWJ5OiBLdW5peXVraSBJd2FzaGltYSA8a3VuaXl1QGFtYXpvbi5jby5qcD4KQWNr ZWQtYnk6IFdpbGxlbSBkZSBCcnVpam4gPHdpbGxlbWJAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1i eTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY0L3Vk cC5jIHwgMTUgKysrKysrKysrLS0tLS0tCiBuZXQvaXB2Ni91ZHAuYyB8IDE1ICsrKysrKysrKy0t LS0tLQogMiBmaWxlcyBjaGFuZ2VkLCAxOCBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9uZXQvaXB2NC91ZHAuYyBiL25ldC9pcHY0L3VkcC5jCmluZGV4IGIzMzIw ZTQyY2JjYi4uNWQwMTZiYmRmMTZlIDEwMDY0NAotLS0gYS9uZXQvaXB2NC91ZHAuYworKysgYi9u ZXQvaXB2NC91ZHAuYwpAQCAtNDEzLDcgKzQxMyw3IEBAIHN0YXRpYyBzdHJ1Y3Qgc29jayAqdWRw NF9saWJfbG9va3VwMihzdHJ1Y3QgbmV0ICpuZXQsCiAJCQkJICAgICBzdHJ1Y3QgdWRwX2hzbG90 ICpoc2xvdDIsCiAJCQkJICAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogewotCXN0cnVjdCBzb2Nr ICpzaywgKnJlc3VsdDsKKwlzdHJ1Y3Qgc29jayAqc2ssICpyZXN1bHQsICpyZXVzZXBvcnRfcmVz dWx0OwogCWludCBzY29yZSwgYmFkbmVzczsKIAl1MzIgaGFzaCA9IDA7CiAKQEAgLTQyMywxNyAr NDIzLDIwIEBAIHN0YXRpYyBzdHJ1Y3Qgc29jayAqdWRwNF9saWJfbG9va3VwMihzdHJ1Y3QgbmV0 ICpuZXQsCiAJCXNjb3JlID0gY29tcHV0ZV9zY29yZShzaywgbmV0LCBzYWRkciwgc3BvcnQsCiAJ CQkJICAgICAgZGFkZHIsIGhudW0sIGRpZiwgc2RpZik7CiAJCWlmIChzY29yZSA+IGJhZG5lc3Mp IHsKKwkJCXJldXNlcG9ydF9yZXN1bHQgPSBOVUxMOworCiAJCQlpZiAoc2stPnNrX3JldXNlcG9y dCAmJgogCQkJICAgIHNrLT5za19zdGF0ZSAhPSBUQ1BfRVNUQUJMSVNIRUQpIHsKIAkJCQloYXNo ID0gdWRwX2VoYXNoZm4obmV0LCBkYWRkciwgaG51bSwKIAkJCQkJCSAgIHNhZGRyLCBzcG9ydCk7 Ci0JCQkJcmVzdWx0ID0gcmV1c2Vwb3J0X3NlbGVjdF9zb2NrKHNrLCBoYXNoLCBza2IsCi0JCQkJ CQkJc2l6ZW9mKHN0cnVjdCB1ZHBoZHIpKTsKLQkJCQlpZiAocmVzdWx0ICYmICFyZXVzZXBvcnRf aGFzX2Nvbm5zKHNrLCBmYWxzZSkpCi0JCQkJCXJldHVybiByZXN1bHQ7CisJCQkJcmV1c2Vwb3J0 X3Jlc3VsdCA9IHJldXNlcG9ydF9zZWxlY3Rfc29jayhzaywgaGFzaCwgc2tiLAorCQkJCQkJCQkJ IHNpemVvZihzdHJ1Y3QgdWRwaGRyKSk7CisJCQkJaWYgKHJldXNlcG9ydF9yZXN1bHQgJiYgIXJl dXNlcG9ydF9oYXNfY29ubnMoc2ssIGZhbHNlKSkKKwkJCQkJcmV0dXJuIHJldXNlcG9ydF9yZXN1 bHQ7CiAJCQl9CisKKwkJCXJlc3VsdCA9IHJldXNlcG9ydF9yZXN1bHQgPyA6IHNrOwogCQkJYmFk bmVzcyA9IHNjb3JlOwotCQkJcmVzdWx0ID0gc2s7CiAJCX0KIAl9CiAJcmV0dXJuIHJlc3VsdDsK ZGlmZiAtLWdpdCBhL25ldC9pcHY2L3VkcC5jIGIvbmV0L2lwdjYvdWRwLmMKaW5kZXggZWRlM2Jl ZDM1NGE4Li42NzYyNDMwMjgwZjUgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L3VkcC5jCisrKyBiL25l dC9pcHY2L3VkcC5jCkBAIC0xNDgsNyArMTQ4LDcgQEAgc3RhdGljIHN0cnVjdCBzb2NrICp1ZHA2 X2xpYl9sb29rdXAyKHN0cnVjdCBuZXQgKm5ldCwKIAkJaW50IGRpZiwgaW50IHNkaWYsIHN0cnVj dCB1ZHBfaHNsb3QgKmhzbG90MiwKIAkJc3RydWN0IHNrX2J1ZmYgKnNrYikKIHsKLQlzdHJ1Y3Qg c29jayAqc2ssICpyZXN1bHQ7CisJc3RydWN0IHNvY2sgKnNrLCAqcmVzdWx0LCAqcmV1c2Vwb3J0 X3Jlc3VsdDsKIAlpbnQgc2NvcmUsIGJhZG5lc3M7CiAJdTMyIGhhc2ggPSAwOwogCkBAIC0xNTgs MTcgKzE1OCwyMCBAQCBzdGF0aWMgc3RydWN0IHNvY2sgKnVkcDZfbGliX2xvb2t1cDIoc3RydWN0 IG5ldCAqbmV0LAogCQlzY29yZSA9IGNvbXB1dGVfc2NvcmUoc2ssIG5ldCwgc2FkZHIsIHNwb3J0 LAogCQkJCSAgICAgIGRhZGRyLCBobnVtLCBkaWYsIHNkaWYpOwogCQlpZiAoc2NvcmUgPiBiYWRu ZXNzKSB7CisJCQlyZXVzZXBvcnRfcmVzdWx0ID0gTlVMTDsKKwogCQkJaWYgKHNrLT5za19yZXVz ZXBvcnQgJiYKIAkJCSAgICBzay0+c2tfc3RhdGUgIT0gVENQX0VTVEFCTElTSEVEKSB7CiAJCQkJ aGFzaCA9IHVkcDZfZWhhc2hmbihuZXQsIGRhZGRyLCBobnVtLAogCQkJCQkJICAgIHNhZGRyLCBz cG9ydCk7CiAKLQkJCQlyZXN1bHQgPSByZXVzZXBvcnRfc2VsZWN0X3NvY2soc2ssIGhhc2gsIHNr YiwKLQkJCQkJCQlzaXplb2Yoc3RydWN0IHVkcGhkcikpOwotCQkJCWlmIChyZXN1bHQgJiYgIXJl dXNlcG9ydF9oYXNfY29ubnMoc2ssIGZhbHNlKSkKLQkJCQkJcmV0dXJuIHJlc3VsdDsKKwkJCQly ZXVzZXBvcnRfcmVzdWx0ID0gcmV1c2Vwb3J0X3NlbGVjdF9zb2NrKHNrLCBoYXNoLCBza2IsCisJ CQkJCQkJCQkgc2l6ZW9mKHN0cnVjdCB1ZHBoZHIpKTsKKwkJCQlpZiAocmV1c2Vwb3J0X3Jlc3Vs dCAmJiAhcmV1c2Vwb3J0X2hhc19jb25ucyhzaywgZmFsc2UpKQorCQkJCQlyZXR1cm4gcmV1c2Vw b3J0X3Jlc3VsdDsKIAkJCX0KLQkJCXJlc3VsdCA9IHNrOworCisJCQlyZXN1bHQgPSByZXVzZXBv cnRfcmVzdWx0ID8gOiBzazsKIAkJCWJhZG5lc3MgPSBzY29yZTsKIAkJfQogCX0KLS0gCjIuMjYu MgoK ----Next_Part(Tue_Jul_28_20_12_25_2020_646)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_57.mbox" RnJvbSBiZTIxZmEyYzRmMGUyNDNhNmM1YzA3NGMwMDczOGU4YWM3ODlhY2U0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQZWlsaW4gWWUgPHllcGVpbGluLmNzQGdtYWlsLmNvbT4KRGF0 ZTogV2VkLCAyMiBKdWwgMjAyMCAxMToxOTowMSAtMDQwMApTdWJqZWN0OiBbUEFUQ0ggMDEvMzhd IEFYLjI1OiBGaXggb3V0LW9mLWJvdW5kcyByZWFkIGluIGF4MjVfY29ubmVjdCgpCgpbIFVwc3Ry ZWFtIGNvbW1pdCAyZjJhN2ZmYWQ1YzZjYmYzZDQzOGU4MTNjZmRjODgyMzBlMTg1YmE2IF0KCkNo ZWNrcyBvbiBgYWRkcl9sZW5gIGFuZCBgZnNhLT5mc2FfYXgyNS5zYXgyNV9uZGlnaXNgIGFyZSBp bnN1ZmZpY2llbnQuCmF4MjVfY29ubmVjdCgpIGNhbiBnbyBvdXQgb2YgYm91bmRzIHdoZW4gYGZz YS0+ZnNhX2F4MjUuc2F4MjVfbmRpZ2lzYAplcXVhbHMgdG8gNyBvciA4LiBGaXggaXQuCgpUaGlz IGlzc3VlIGhhcyBiZWVuIHJlcG9ydGVkIGFzIGEgS01TQU4gdW5pbml0LXZhbHVlIGJ1ZywgYmVj YXVzZSBpbiBzdWNoCmEgY2FzZSwgYXgyNV9jb25uZWN0KCkgcmVhY2hlcyBpbnRvIHRoZSB1bmlu aXRpYWxpemVkIHBvcnRpb24gb2YgdGhlCmBzdHJ1Y3Qgc29ja2FkZHJfc3RvcmFnZWAgc3RhdGlj YWxseSBhbGxvY2F0ZWQgaW4gX19zeXNfY29ubmVjdCgpLgoKSXQgaXMgc2FmZSB0byByZW1vdmUg YGZzYS0+ZnNhX2F4MjUuc2F4MjVfbmRpZ2lzID4gQVgyNV9NQVhfRElHSVNgIGJlY2F1c2UKYGFk ZHJfbGVuYCBpcyBndWFyYW50ZWVkIHRvIGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0bwpgc2l6ZW9m KHN0cnVjdCBmdWxsX3NvY2thZGRyX2F4MjUpYC4KClJlcG9ydGVkLWJ5OiBzeXpib3QrYzgyNzUy MjI4ZWQ5NzViMGE2MjNAc3l6a2FsbGVyLmFwcHNwb3RtYWlsLmNvbQpMaW5rOiBodHRwczovL3N5 emthbGxlci5hcHBzcG90LmNvbS9idWc/aWQ9NTVlZjlkNjI5ZjNiM2Q3ZDcwYjY5NTU4MDE1YjYz YjQ4ZDAxYWY2NgpTaWduZWQtb2ZmLWJ5OiBQZWlsaW4gWWUgPHllcGVpbGluLmNzQGdtYWlsLmNv bT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0Pgot LS0KIG5ldC9heDI1L2FmX2F4MjUuYyB8IDQgKysrLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0 aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9heDI1L2FmX2F4MjUuYyBi L25ldC9heDI1L2FmX2F4MjUuYwppbmRleCBmZDkxY2QzNGYyNWUuLmVmNWJmMTE2MTU3YSAxMDA2 NDQKLS0tIGEvbmV0L2F4MjUvYWZfYXgyNS5jCisrKyBiL25ldC9heDI1L2FmX2F4MjUuYwpAQCAt MTE4Nyw3ICsxMTg3LDkgQEAgc3RhdGljIGludCBfX211c3RfY2hlY2sgYXgyNV9jb25uZWN0KHN0 cnVjdCBzb2NrZXQgKnNvY2ssCiAJaWYgKGFkZHJfbGVuID4gc2l6ZW9mKHN0cnVjdCBzb2NrYWRk cl9heDI1KSAmJgogCSAgICBmc2EtPmZzYV9heDI1LnNheDI1X25kaWdpcyAhPSAwKSB7CiAJCS8q IFZhbGlkIG51bWJlciBvZiBkaWdpcGVhdGVycyA/ICovCi0JCWlmIChmc2EtPmZzYV9heDI1LnNh eDI1X25kaWdpcyA8IDEgfHwgZnNhLT5mc2FfYXgyNS5zYXgyNV9uZGlnaXMgPiBBWDI1X01BWF9E SUdJUykgeworCQlpZiAoZnNhLT5mc2FfYXgyNS5zYXgyNV9uZGlnaXMgPCAxIHx8CisJCSAgICBh ZGRyX2xlbiA8IHNpemVvZihzdHJ1Y3Qgc29ja2FkZHJfYXgyNSkgKworCQkgICAgc2l6ZW9mKGF4 MjVfYWRkcmVzcykgKiBmc2EtPmZzYV9heDI1LnNheDI1X25kaWdpcykgewogCQkJZXJyID0gLUVJ TlZBTDsKIAkJCWdvdG8gb3V0X3JlbGVhc2U7CiAJCX0KLS0gCjIuMjYuMgoKCkZyb20gNjk5OWZl MzZhN2U0ZGVhYmVmZDAxMTJkM2NjMTIyNzJjY2QzZWU0NyBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogUGVpbGluIFllIDx5ZXBlaWxpbi5jc0BnbWFpbC5jb20+CkRhdGU6IFdlZCwgMjIg SnVsIDIwMjAgMTI6MDU6MTIgLTA0MDAKU3ViamVjdDogW1BBVENIIDAyLzM4XSBBWC4yNTogUHJl dmVudCBvdXQtb2YtYm91bmRzIHJlYWQgaW4gYXgyNV9zZW5kbXNnKCkKClsgVXBzdHJlYW0gY29t bWl0IDg4ODViYjA2MjFmMDFhNmM4MmJlNjBhOTFlNWZjMGY2ZTJmNzExODYgXQoKQ2hlY2tzIG9u IGBhZGRyX2xlbmAgYW5kIGB1c2F4LT5zYXgyNV9uZGlnaXNgIGFyZSBpbnN1ZmZpY2llbnQuCmF4 MjVfc2VuZG1zZygpIGNhbiBnbyBvdXQgb2YgYm91bmRzIHdoZW4gYHVzYXgtPnNheDI1X25kaWdp c2AgZXF1YWxzIHRvIDcKb3IgOC4gRml4IGl0LgoKSXQgaXMgc2FmZSB0byByZW1vdmUgYHVzYXgt PnNheDI1X25kaWdpcyA+IEFYMjVfTUFYX0RJR0lTYCwgc2luY2UKYGFkZHJfbGVuYCBpcyBndWFy YW50ZWVkIHRvIGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0bwpgc2l6ZW9mKHN0cnVjdCBmdWxsX3Nv Y2thZGRyX2F4MjUpYAoKU2lnbmVkLW9mZi1ieTogUGVpbGluIFllIDx5ZXBlaWxpbi5jc0BnbWFp bC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5l dD4KLS0tCiBuZXQvYXgyNS9hZl9heDI1LmMgfCAzICsrLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5z ZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9heDI1L2FmX2F4MjUu YyBiL25ldC9heDI1L2FmX2F4MjUuYwppbmRleCBlZjViZjExNjE1N2EuLjA4NjJmZTQ5ZDQzNCAx MDA2NDQKLS0tIGEvbmV0L2F4MjUvYWZfYXgyNS5jCisrKyBiL25ldC9heDI1L2FmX2F4MjUuYwpA QCAtMTUwOSw3ICsxNTA5LDggQEAgc3RhdGljIGludCBheDI1X3NlbmRtc2coc3RydWN0IHNvY2tl dCAqc29jaywgc3RydWN0IG1zZ2hkciAqbXNnLCBzaXplX3QgbGVuKQogCQkJc3RydWN0IGZ1bGxf c29ja2FkZHJfYXgyNSAqZnNhID0gKHN0cnVjdCBmdWxsX3NvY2thZGRyX2F4MjUgKil1c2F4Owog CiAJCQkvKiBWYWxpZCBudW1iZXIgb2YgZGlnaXBlYXRlcnMgPyAqLwotCQkJaWYgKHVzYXgtPnNh eDI1X25kaWdpcyA8IDEgfHwgdXNheC0+c2F4MjVfbmRpZ2lzID4gQVgyNV9NQVhfRElHSVMpIHsK KwkJCWlmICh1c2F4LT5zYXgyNV9uZGlnaXMgPCAxIHx8IGFkZHJfbGVuIDwgc2l6ZW9mKHN0cnVj dCBzb2NrYWRkcl9heDI1KSArCisJCQkgICAgc2l6ZW9mKGF4MjVfYWRkcmVzcykgKiB1c2F4LT5z YXgyNV9uZGlnaXMpIHsKIAkJCQllcnIgPSAtRUlOVkFMOwogCQkJCWdvdG8gb3V0OwogCQkJfQot LSAKMi4yNi4yCgoKRnJvbSBlY2YzNjE0ZWY3NmE1N2YyNGEwOGZiNzc0OGE5MTE1YTY1ZmQ2OTQy IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUYWVoZWUgWW9vIDxhcDQyMDA3M0BnbWFp bC5jb20+CkRhdGU6IFN1biwgMTkgSnVsIDIwMjAgMTI6MTE6MjQgKzAwMDAKU3ViamVjdDogW1BB VENIIDAzLzM4XSBib25kaW5nOiBjaGVjayBlcnJvciB2YWx1ZSBvZiByZWdpc3Rlcl9uZXRkZXZp Y2UoKQogaW1tZWRpYXRlbHkKClsgVXBzdHJlYW0gY29tbWl0IDU0NGYyODdiODQ5NTkyMDMzNjdj ZDI5ZTE2ZTc3MjcxNzYxMmZhYjQgXQoKSWYgcmVnaXN0ZXJfbmV0ZGV2aWNlKCkgaXMgZmFpbGVk LCBuZXRfZGV2aWNlIHNob3VsZCBub3QgYmUgdXNlZApiZWNhdXNlIHZhcmlhYmxlcyBhcmUgdW5p bml0aWFsaXplZCBvciBmcmVlZC4KU28sIHRoZSByb3V0aW5lIHNob3VsZCBiZSBzdG9wcGVkIGlt bWVkaWF0ZWx5LgpCdXQsIGJvbmRfY3JlYXRlKCkgZG9lc24ndCBjaGVjayByZXR1cm4gdmFsdWUg b2YgcmVnaXN0ZXJfbmV0ZGV2aWNlKCkKaW1tZWRpYXRlbHkuIFRoYXQgd2lsbCByZXN1bHQgaW4g YSBwYW5pYyBiZWNhdXNlIG9mIHVzaW5nIHVuaW5pdGlhbGl6ZWQKb3IgZnJlZWQgbWVtb3J5LgoK VGVzdCBjb21tYW5kczoKICAgIG1vZHByb2JlIG5ldGRldi1ub3RpZmllci1lcnJvci1pbmplY3QK ICAgIGVjaG8gLTIyID4gL3N5cy9rZXJuZWwvZGVidWcvbm90aWZpZXItZXJyb3ItaW5qZWN0L25l dGRldi9cCmFjdGlvbnMvTkVUREVWX1JFR0lTVEVSL2Vycm9yCiAgICBtb2Rwcm9iZSBib25kaW5n IG1heF9ib25kcz0zCgpTcGxhdCBsb29rcyBsaWtlOgpbICAzNzUuMDI4NDkyXVsgIFQxOTNdIGdl bmVyYWwgcHJvdGVjdGlvbiBmYXVsdCwgcHJvYmFibHkgZm9yIG5vbi1jYW5vbmljYWwgYWRkcmVz cyAweDZiNmI2YjZiNmI2YjZiNmI6IDAwMDAgWyMxXSBTTVAgREVCVUdfUEFHRUFMTE9DIFBUSQpb ICAzNzUuMDMzMjA3XVsgIFQxOTNdIENQVTogMiBQSUQ6IDE5MyBDb21tOiBrd29ya2VyLzI6MiBO b3QgdGFpbnRlZCA1LjguMC1yYzQrICM2NDUKWyAgMzc1LjAzNjA2OF1bICBUMTkzXSBIYXJkd2Fy ZSBuYW1lOiBRRU1VIFN0YW5kYXJkIFBDIChpNDQwRlggKyBQSUlYLCAxOTk2KSwgQklPUyAxLjEw LjItMXVidW50dTEgMDQvMDEvMjAxNApbICAzNzUuMDM5NjczXVsgIFQxOTNdIFdvcmtxdWV1ZTog ZXZlbnRzIGxpbmt3YXRjaF9ldmVudApbICAzNzUuMDQxNTU3XVsgIFQxOTNdIFJJUDogMDAxMDpk ZXZfYWN0aXZhdGUrMHg0YS8weDM0MApbICAzNzUuMDQzMzgxXVsgIFQxOTNdIENvZGU6IDQwIGE4 IDA0IDBmIDg1IGRiIDAwIDAwIDAwIDhiIDgzIDA4IDA0IDAwIDAwIDg1IGMwIDBmIDg0IDBkIDAx IDAwIDAwIDMxIGQyIDg5IGQwIDQ4IDhkIDA0IDQwIDQ4IGMxIGUwIDA3IDQ4IDAzIDgzIDAwIDA0 IDAwIDAwIDw0OD4gOGIgNDggMTAgZjYgNDEgMTAgMDEgNzUgMDggZjAgODAgYTEgYTAgMDEgMDAg MDAgZmQgNDggODkgNDggMDgKWyAgMzc1LjA1MDI2N11bICBUMTkzXSBSU1A6IDAwMTg6ZmZmZjlm OGZhY2ZjZmRkOCBFRkxBR1M6IDAwMDEwMjAyClsgIDM3NS4wNTI0MTBdWyAgVDE5M10gUkFYOiA2 YjZiNmI2YjZiNmI2YjZiIFJCWDogZmZmZjlmOGZhZTZlYTAwMCBSQ1g6IDAwMDAwMDAwMDAwMDAw MDYKWyAgMzc1LjA1NTE3OF1bICBUMTkzXSBSRFg6IDAwMDAwMDAwMDAwMDAwMDAgUlNJOiAwMDAw MDAwMDAwMDAwMDAwIFJESTogZmZmZjlmOGZhZTZlYTAwMApbICAzNzUuMDU3NzYyXVsgIFQxOTNd IFJCUDogZmZmZjlmOGZhZTZlYTAwMCBSMDg6IDAwMDAwMDAwMDAwMDAwMDAgUjA5OiAwMDAwMDAw MDAwMDAwMDAwClsgIDM3NS4wNTk4MTBdWyAgVDE5M10gUjEwOiAwMDAwMDAwMDAwMDAwMDAxIFIx MTogMDAwMDAwMDAwMDAwMDAwMCBSMTI6IGZmZmY5ZjhmYWNmY2ZlMDgKWyAgMzc1LjA2MTg5Ml1b ICBUMTkzXSBSMTM6IGZmZmZmZmZmODgzNTg3ZTAgUjE0OiAwMDAwMDAwMDAwMDAwMDAwIFIxNTog ZmZmZjlmOGZhZTZlYTU4MApbICAzNzUuMDYzOTMxXVsgIFQxOTNdIEZTOiAgMDAwMDAwMDAwMDAw MDAwMCgwMDAwKSBHUzpmZmZmOWY4ZmJhZTAwMDAwKDAwMDApIGtubEdTOjAwMDAwMDAwMDAwMDAw MDAKWyAgMzc1LjA2NjIzOV1bICBUMTkzXSBDUzogIDAwMTAgRFM6IDAwMDAgRVM6IDAwMDAgQ1Iw OiAwMDAwMDAwMDgwMDUwMDMzClsgIDM3NS4wNjc4NDFdWyAgVDE5M10gQ1IyOiAwMDAwN2YyZjU0 MjE2N2EwIENSMzogMDAwMDAwMDEyY2VlNjAwMiBDUjQ6IDAwMDAwMDAwMDAzNjA2ZTAKWyAgMzc1 LjA2OTY1N11bICBUMTkzXSBEUjA6IDAwMDAwMDAwMDAwMDAwMDAgRFIxOiAwMDAwMDAwMDAwMDAw MDAwIERSMjogMDAwMDAwMDAwMDAwMDAwMApbICAzNzUuMDcxNDcxXVsgIFQxOTNdIERSMzogMDAw MDAwMDAwMDAwMDAwMCBEUjY6IDAwMDAwMDAwZmZmZTBmZjAgRFI3OiAwMDAwMDAwMDAwMDAwNDAw ClsgIDM3NS4wNzMyNjldWyAgVDE5M10gQ2FsbCBUcmFjZToKWyAgMzc1LjA3NDAwNV1bICBUMTkz XSAgbGlua3dhdGNoX2RvX2RldisweDRkLzB4NTAKWyAgMzc1LjA3NTA1Ml1bICBUMTkzXSAgX19s aW5rd2F0Y2hfcnVuX3F1ZXVlKzB4MTBiLzB4MjAwClsgIDM3NS4wNzYyNDRdWyAgVDE5M10gIGxp bmt3YXRjaF9ldmVudCsweDIxLzB4MzAKWyAgMzc1LjA3NzI3NF1bICBUMTkzXSAgcHJvY2Vzc19v bmVfd29yaysweDI1Mi8weDYwMApbICAzNzUuMDc4Mzc5XVsgIFQxOTNdICA/IHByb2Nlc3Nfb25l X3dvcmsrMHg2MDAvMHg2MDAKWyAgMzc1LjA3OTUxOF1bICBUMTkzXSAgd29ya2VyX3RocmVhZCsw eDNjLzB4MzgwClsgIDM3NS4wODA1MzRdWyAgVDE5M10gID8gcHJvY2Vzc19vbmVfd29yaysweDYw MC8weDYwMApbICAzNzUuMDgxNjY4XVsgIFQxOTNdICBrdGhyZWFkKzB4MTM5LzB4MTUwClsgIDM3 NS4wODI1NjddWyAgVDE5M10gID8ga3RocmVhZF9wYXJrKzB4OTAvMHg5MApbICAzNzUuMDgzNTY3 XVsgIFQxOTNdICByZXRfZnJvbV9mb3JrKzB4MjIvMHgzMAoKRml4ZXM6IGU4MjZlYWZhNjVjNiAo ImJvbmRpbmc6IENhbGwgbmV0aWZfY2Fycmllcl9vZmYgYWZ0ZXIgcmVnaXN0ZXJfbmV0ZGV2aWNl IikKU2lnbmVkLW9mZi1ieTogVGFlaGVlIFlvbyA8YXA0MjAwNzNAZ21haWwuY29tPgpTaWduZWQt b2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVy cy9uZXQvYm9uZGluZy9ib25kX21haW4uYyB8IDEwICsrKysrKystLS0KIDEgZmlsZSBjaGFuZ2Vk LCA3IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9u ZXQvYm9uZGluZy9ib25kX21haW4uYyBiL2RyaXZlcnMvbmV0L2JvbmRpbmcvYm9uZF9tYWluLmMK aW5kZXggMmU3MGU0M2M1ZGY1Li42YjQwYjVhYjE0M2EgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0 L2JvbmRpbmcvYm9uZF9tYWluLmMKKysrIGIvZHJpdmVycy9uZXQvYm9uZGluZy9ib25kX21haW4u YwpAQCAtNDk1MywxNSArNDk1MywxOSBAQCBpbnQgYm9uZF9jcmVhdGUoc3RydWN0IG5ldCAqbmV0 LCBjb25zdCBjaGFyICpuYW1lKQogCWJvbmRfZGV2LT5ydG5sX2xpbmtfb3BzID0gJmJvbmRfbGlu a19vcHM7CiAKIAlyZXMgPSByZWdpc3Rlcl9uZXRkZXZpY2UoYm9uZF9kZXYpOworCWlmIChyZXMg PCAwKSB7CisJCWZyZWVfbmV0ZGV2KGJvbmRfZGV2KTsKKwkJcnRubF91bmxvY2soKTsKKworCQly ZXR1cm4gcmVzOworCX0KIAogCW5ldGlmX2NhcnJpZXJfb2ZmKGJvbmRfZGV2KTsKIAogCWJvbmRf d29ya19pbml0X2FsbChib25kKTsKIAogCXJ0bmxfdW5sb2NrKCk7Ci0JaWYgKHJlcyA8IDApCi0J CWZyZWVfbmV0ZGV2KGJvbmRfZGV2KTsKLQlyZXR1cm4gcmVzOworCXJldHVybiAwOwogfQogCiBz dGF0aWMgaW50IF9fbmV0X2luaXQgYm9uZF9uZXRfaW5pdChzdHJ1Y3QgbmV0ICpuZXQpCi0tIAoy LjI2LjIKCgpGcm9tIDA2MjViYWM2NmY3MDEzMjczOTFiMzE5NmY0MmEzZTZhZTIyNWM4MTEgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IENvbmcgV2FuZyA8eGl5b3Uud2FuZ2NvbmdAZ21h aWwuY29tPgpEYXRlOiBXZWQsIDIyIEp1bCAyMDIwIDE2OjMxOjU0IC0wNzAwClN1YmplY3Q6IFtQ QVRDSCAwNC8zOF0gYm9uZGluZzogY2hlY2sgcmV0dXJuIHZhbHVlIG9mIHJlZ2lzdGVyX25ldGRl dmljZSgpIGluCiBib25kX25ld2xpbmsoKQoKWyBVcHN0cmVhbSBjb21taXQgYzc1ZDFkNTI0OGMw Yzk3OTk2MDUxODA5YWQwZTlmMTU0YmE1ZDc2ZSBdCgpWZXJ5IHNpbWlsYXIgdG8gY29tbWl0IDU0 NGYyODdiODQ5NQooImJvbmRpbmc6IGNoZWNrIGVycm9yIHZhbHVlIG9mIHJlZ2lzdGVyX25ldGRl dmljZSgpIGltbWVkaWF0ZWx5IiksCndlIHNob3VsZCBpbW1lZGlhdGVseSBjaGVjayB0aGUgcmV0 dXJuIHZhbHVlIG9mIHJlZ2lzdGVyX25ldGRldmljZSgpCmJlZm9yZSBkb2luZyBhbnl0aGluZyBl bHNlLgoKRml4ZXM6IDAwNWRiMzFkNWY1ZiAoImJvbmRpbmc6IHNldCBjYXJyaWVyIG9mZiBmb3Ig ZGV2aWNlcyBjcmVhdGVkIHRocm91Z2ggbmV0bGluayIpClJlcG9ydGVkLWFuZC10ZXN0ZWQtYnk6 IHN5emJvdCtiYmMzYTExYzRkYTYzYzFiNzRkNkBzeXprYWxsZXIuYXBwc3BvdG1haWwuY29tCkNj OiBCZW5pYW1pbm8gR2FsdmFuaSA8YmdhbHZhbmlAcmVkaGF0LmNvbT4KQ2M6IFRhZWhlZSBZb28g PGFwNDIwMDczQGdtYWlsLmNvbT4KQ2M6IEpheSBWb3NidXJnaCA8ai52b3NidXJnaEBnbWFpbC5j b20+ClNpZ25lZC1vZmYtYnk6IENvbmcgV2FuZyA8eGl5b3Uud2FuZ2NvbmdAZ21haWwuY29tPgpT aWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQog ZHJpdmVycy9uZXQvYm9uZGluZy9ib25kX25ldGxpbmsuYyB8IDMgKy0tCiAxIGZpbGUgY2hhbmdl ZCwgMSBpbnNlcnRpb24oKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9u ZXQvYm9uZGluZy9ib25kX25ldGxpbmsuYyBiL2RyaXZlcnMvbmV0L2JvbmRpbmcvYm9uZF9uZXRs aW5rLmMKaW5kZXggYjQzYjUxNjQ2YjExLi5mMGY5MTM4ZTk2N2YgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvbmV0L2JvbmRpbmcvYm9uZF9uZXRsaW5rLmMKKysrIGIvZHJpdmVycy9uZXQvYm9uZGluZy9i b25kX25ldGxpbmsuYwpAQCAtNDU2LDExICs0NTYsMTAgQEAgc3RhdGljIGludCBib25kX25ld2xp bmsoc3RydWN0IG5ldCAqc3JjX25ldCwgc3RydWN0IG5ldF9kZXZpY2UgKmJvbmRfZGV2LAogCQly ZXR1cm4gZXJyOwogCiAJZXJyID0gcmVnaXN0ZXJfbmV0ZGV2aWNlKGJvbmRfZGV2KTsKLQotCW5l dGlmX2NhcnJpZXJfb2ZmKGJvbmRfZGV2KTsKIAlpZiAoIWVycikgewogCQlzdHJ1Y3QgYm9uZGlu ZyAqYm9uZCA9IG5ldGRldl9wcml2KGJvbmRfZGV2KTsKIAorCQluZXRpZl9jYXJyaWVyX29mZihi b25kX2Rldik7CiAJCWJvbmRfd29ya19pbml0X2FsbChib25kKTsKIAl9CiAKLS0gCjIuMjYuMgoK CkZyb20gMDc1YzM2YzQ3MjY3OWQzMjVmZTU3ODQ2MzdhNjhhYTBlNzRkMzBkMyBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogU3ViYXNoIEFiaGlub3YgS2FzaXZpc3dhbmF0aGFuIDxzdWJh c2hhYkBjb2RlYXVyb3JhLm9yZz4KRGF0ZTogVGh1LCAyMyBKdWwgMjAyMCAxMTozMTo0OCAtMDYw MApTdWJqZWN0OiBbUEFUQ0ggMDUvMzhdIGRldjogRGVmZXIgZnJlZSBvZiBza2JzIGluIGZsdXNo X2JhY2tsb2cKClsgVXBzdHJlYW0gY29tbWl0IDdkZjVjYjc1Y2ZiOGFjZjk2YzdmMjM0MjUzMGVi NDFlMGMxMWY0YzMgXQoKSVJRcyBhcmUgZGlzYWJsZWQgd2hlbiBmcmVlaW5nIHNrYnMgaW4gaW5w dXQgcXVldWUuClVzZSB0aGUgSVJRIHNhZmUgdmFyaWFudCB0byBmcmVlIHNrYnMgaGVyZS4KCkZp eGVzOiAxNDVkZDVmOWM4OGYgKCJuZXQ6IGZsdXNoIHRoZSBzb2Z0bmV0IGJhY2tsb2cgaW4gcHJv Y2VzcyBjb250ZXh0IikKU2lnbmVkLW9mZi1ieTogU3ViYXNoIEFiaGlub3YgS2FzaXZpc3dhbmF0 aGFuIDxzdWJhc2hhYkBjb2RlYXVyb3JhLm9yZz4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWls bGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9jb3JlL2Rldi5jIHwgMiArLQogMSBm aWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEv bmV0L2NvcmUvZGV2LmMgYi9uZXQvY29yZS9kZXYuYwppbmRleCBjOWVlNWQ4MGQ1ZWEuLmMxYzI2 ODhhOTU1YyAxMDA2NDQKLS0tIGEvbmV0L2NvcmUvZGV2LmMKKysrIGIvbmV0L2NvcmUvZGV2LmMK QEAgLTU1MDQsNyArNTUwNCw3IEBAIHN0YXRpYyB2b2lkIGZsdXNoX2JhY2tsb2coc3RydWN0IHdv cmtfc3RydWN0ICp3b3JrKQogCXNrYl9xdWV1ZV93YWxrX3NhZmUoJnNkLT5pbnB1dF9wa3RfcXVl dWUsIHNrYiwgdG1wKSB7CiAJCWlmIChza2ItPmRldi0+cmVnX3N0YXRlID09IE5FVFJFR19VTlJF R0lTVEVSSU5HKSB7CiAJCQlfX3NrYl91bmxpbmsoc2tiLCAmc2QtPmlucHV0X3BrdF9xdWV1ZSk7 Ci0JCQlrZnJlZV9za2Ioc2tiKTsKKwkJCWRldl9rZnJlZV9za2JfaXJxKHNrYik7CiAJCQlpbnB1 dF9xdWV1ZV9oZWFkX2luY3Ioc2QpOwogCQl9CiAJfQotLSAKMi4yNi4yCgoKRnJvbSAyMDc3M2M5 Y2YzYTM4NGRmOTlhNGU5NThkYzlhMjA1OWRiM2RiMDg4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBYaWUgSGUgPHhpZS5oZS4wMTQxQGdtYWlsLmNvbT4KRGF0ZTogVGh1LCAxNiBKdWwg MjAyMCAxNjo0NDozMyAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDYvMzhdIGRyaXZlcnMvbmV0L3dh bi94MjVfYXN5OiBGaXggdG8gbWFrZSBpdCB3b3JrCgpbIFVwc3RyZWFtIGNvbW1pdCA4ZmRjYWJl YWMzOTgyNGZlNjc0ODBmZDk1MDhkODAxNjFjNTQxODU0IF0KClRoaXMgZHJpdmVyIGlzIG5vdCB3 b3JraW5nIGJlY2F1c2Ugb2YgcHJvYmxlbXMgb2YgaXRzIHJlY2VpdmluZyBjb2RlLgpUaGlzIHBh dGNoIGZpeGVzIGl0IHRvIG1ha2UgaXQgd29yay4KCldoZW4gdGhlIGRyaXZlciByZWNlaXZlcyBh biBMQVBCIGZyYW1lLCBpdCBzaG91bGQgZmlyc3QgcGFzcyB0aGUgZnJhbWUKdG8gdGhlIExBUEIg bW9kdWxlIHRvIHByb2Nlc3MuIEFmdGVyIHByb2Nlc3NpbmcsIHRoZSBMQVBCIG1vZHVsZSBwYXNz ZXMKdGhlIGRhdGEgKHRoZSBwYWNrZXQpIGJhY2sgdG8gdGhlIGRyaXZlciwgdGhlIGRyaXZlciBz aG91bGQgdGhlbiBhZGQgYQpvbmUtYnl0ZSBwc2V1ZG8gaGVhZGVyIGFuZCBwYXNzIHRoZSBkYXRh IHRvIHVwcGVyIGxheWVycy4KClRoZSBjaGFuZ2VzIHRvIHRoZSAieDI1X2FzeV9idW1wIiBmdW5j dGlvbiBhbmQgdGhlCiJ4MjVfYXN5X2RhdGFfaW5kaWNhdGlvbiIgZnVuY3Rpb24gYXJlIHRvIGNv cnJlY3RseSBpbXBsZW1lbnQgdGhpcwpwcm9jZWR1cmUuCgpBbHNvLCB0aGUgIngyNV9hc3lfdW5l c2MiIGZ1bmN0aW9uIGlnbm9yZXMgYW55IGZyYW1lIHRoYXQgaXMgc2hvcnRlcgp0aGFuIDMgYnl0 ZXMuIEhvd2V2ZXIgdGhlIHNob3J0ZXN0IGZyYW1lcyBhcmUgMi1ieXRlIGxvbmcuIFNvIHdlIG5l ZWQKdG8gY2hhbmdlIGl0IHRvIGFsbG93IDItYnl0ZSBmcmFtZXMgdG8gcGFzcy4KCkNjOiBFcmlj IER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkNjOiBNYXJ0aW4gU2NoaWxsZXIgPG1zQGRl di50ZHQuZGU+ClNpZ25lZC1vZmYtYnk6IFhpZSBIZSA8eGllLmhlLjAxNDFAZ21haWwuY29tPgpS ZXZpZXdlZC1ieTogTWFydGluIFNjaGlsbGVyIDxtc0BkZXYudGR0LmRlPgpTaWduZWQtb2ZmLWJ5 OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQv d2FuL3gyNV9hc3kuYyB8IDIxICsrKysrKysrKysrKysrLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQs IDE0IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9u ZXQvd2FuL3gyNV9hc3kuYyBiL2RyaXZlcnMvbmV0L3dhbi94MjVfYXN5LmMKaW5kZXggNjk3NzNk MjI4ZWMxLi44NDY0MGEwYzEzZjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dhbi94MjVfYXN5 LmMKKysrIGIvZHJpdmVycy9uZXQvd2FuL3gyNV9hc3kuYwpAQCAtMTgzLDcgKzE4Myw3IEBAIHN0 YXRpYyBpbmxpbmUgdm9pZCB4MjVfYXN5X3VubG9jayhzdHJ1Y3QgeDI1X2FzeSAqc2wpCiAJbmV0 aWZfd2FrZV9xdWV1ZShzbC0+ZGV2KTsKIH0KIAotLyogU2VuZCBvbmUgY29tcGxldGVseSBkZWNh cHN1bGF0ZWQgSVAgZGF0YWdyYW0gdG8gdGhlIElQIGxheWVyLiAqLworLyogU2VuZCBhbiBMQVBC IGZyYW1lIHRvIHRoZSBMQVBCIG1vZHVsZSB0byBwcm9jZXNzLiAqLwogCiBzdGF0aWMgdm9pZCB4 MjVfYXN5X2J1bXAoc3RydWN0IHgyNV9hc3kgKnNsKQogewpAQCAtMTk1LDEzICsxOTUsMTIgQEAg c3RhdGljIHZvaWQgeDI1X2FzeV9idW1wKHN0cnVjdCB4MjVfYXN5ICpzbCkKIAljb3VudCA9IHNs LT5yY291bnQ7CiAJZGV2LT5zdGF0cy5yeF9ieXRlcyArPSBjb3VudDsKIAotCXNrYiA9IGRldl9h bGxvY19za2IoY291bnQrMSk7CisJc2tiID0gZGV2X2FsbG9jX3NrYihjb3VudCk7CiAJaWYgKHNr YiA9PSBOVUxMKSB7CiAJCW5ldGRldl93YXJuKHNsLT5kZXYsICJtZW1vcnkgc3F1ZWV6ZSwgZHJv cHBpbmcgcGFja2V0XG4iKTsKIAkJZGV2LT5zdGF0cy5yeF9kcm9wcGVkKys7CiAJCXJldHVybjsK IAl9Ci0Jc2tiX3B1c2goc2tiLCAxKTsJLyogTEFQQiBpbnRlcm5hbCBjb250cm9sICovCiAJc2ti X3B1dF9kYXRhKHNrYiwgc2wtPnJidWZmLCBjb3VudCk7CiAJc2tiLT5wcm90b2NvbCA9IHgyNV90 eXBlX3RyYW5zKHNrYiwgc2wtPmRldik7CiAJZXJyID0gbGFwYl9kYXRhX3JlY2VpdmVkKHNrYi0+ ZGV2LCBza2IpOwpAQCAtMjA5LDcgKzIwOCw2IEBAIHN0YXRpYyB2b2lkIHgyNV9hc3lfYnVtcChz dHJ1Y3QgeDI1X2FzeSAqc2wpCiAJCWtmcmVlX3NrYihza2IpOwogCQlwcmludGsoS0VSTl9ERUJV RyAieDI1X2FzeTogZGF0YSByZWNlaXZlZCBlcnIgLSAlZFxuIiwgZXJyKTsKIAl9IGVsc2Ugewot CQluZXRpZl9yeChza2IpOwogCQlkZXYtPnN0YXRzLnJ4X3BhY2tldHMrKzsKIAl9CiB9CkBAIC0z NTYsMTIgKzM1NCwyMSBAQCBzdGF0aWMgbmV0ZGV2X3R4X3QgeDI1X2FzeV94bWl0KHN0cnVjdCBz a19idWZmICpza2IsCiAgKi8KIAogLyoKLSAqCUNhbGxlZCB3aGVuIEkgZnJhbWUgZGF0YSBhcnJp dmVzLiBXZSBkaWQgdGhlIHdvcmsgYWJvdmUgLSB0aHJvdyBpdAotICoJYXQgdGhlIG5ldCBsYXll ci4KKyAqCUNhbGxlZCB3aGVuIEkgZnJhbWUgZGF0YSBhcnJpdmUuIFdlIGFkZCBhIHBzZXVkbyBo ZWFkZXIgZm9yIHVwcGVyCisgKglsYXllcnMgYW5kIHBhc3MgaXQgdG8gdXBwZXIgbGF5ZXJzLgog ICovCiAKIHN0YXRpYyBpbnQgeDI1X2FzeV9kYXRhX2luZGljYXRpb24oc3RydWN0IG5ldF9kZXZp Y2UgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYikKIHsKKwlpZiAoc2tiX2Nvdyhza2IsIDEpKSB7 CisJCWtmcmVlX3NrYihza2IpOworCQlyZXR1cm4gTkVUX1JYX0RST1A7CisJfQorCXNrYl9wdXNo KHNrYiwgMSk7CisJc2tiLT5kYXRhWzBdID0gWDI1X0lGQUNFX0RBVEE7CisKKwlza2ItPnByb3Rv Y29sID0geDI1X3R5cGVfdHJhbnMoc2tiLCBkZXYpOworCiAJcmV0dXJuIG5ldGlmX3J4KHNrYik7 CiB9CiAKQEAgLTY1Nyw3ICs2NjQsNyBAQCBzdGF0aWMgdm9pZCB4MjVfYXN5X3VuZXNjKHN0cnVj dCB4MjVfYXN5ICpzbCwgdW5zaWduZWQgY2hhciBzKQogCXN3aXRjaCAocykgewogCWNhc2UgWDI1 X0VORDoKIAkJaWYgKCF0ZXN0X2FuZF9jbGVhcl9iaXQoU0xGX0VSUk9SLCAmc2wtPmZsYWdzKSAm JgotCQkgICAgc2wtPnJjb3VudCA+IDIpCisJCSAgICBzbC0+cmNvdW50ID49IDIpCiAJCQl4MjVf YXN5X2J1bXAoc2wpOwogCQljbGVhcl9iaXQoU0xGX0VTQ0FQRSwgJnNsLT5mbGFncyk7CiAJCXNs LT5yY291bnQgPSAwOwotLSAKMi4yNi4yCgoKRnJvbSBiYzcxZDAyMTk0MDJkYTRmY2QxNDdiZDlm YzQ1MmI2YzMzOGQ3NjdhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBDbGF1ZGl1IE1h bm9pbCA8Y2xhdWRpdS5tYW5vaWxAbnhwLmNvbT4KRGF0ZTogV2VkLCAyMiBKdWwgMjAyMCAxNzo0 MDoxMiArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMDcvMzhdIGVuZXRjOiBSZW1vdmUgdGhlIG1kaW8g YnVzIG9uIFBGIHByb2JlIGJhaWxvdXQKClsgVXBzdHJlYW0gY29tbWl0IDI2Y2I3MDg1Yzg5ODRl NWI3MWQ2NWMzNzRhMTM1MTM0ZWQ4Y2FiYjMgXQoKRm9yIEVORVRDIHBvcnRzIHRoYXQgcmVnaXN0 ZXIgYW4gZXh0ZXJuYWwgTURJTyBidXMsCnRoZSBidXMgZG9lc24ndCBnZXQgcmVtb3ZlZCBvbiB0 aGUgZXJyb3IgYmFpbG91dCBwYXRoCm9mIGVuZXRjX3BmX3Byb2JlKCkuCgpUaGlzIGlzc3VlIGJl Y2FtZSBtdWNoIG1vcmUgdmlzaWJsZSBhZnRlciByZWNlbnQ6CmNvbW1pdCAwNzA5NWMwMjVhYzIg KCJuZXQ6IGVuZXRjOiBVc2UgRFQgcHJvdG9jb2wgaW5mb3JtYXRpb24gdG8gc2V0IHVwIHRoZSBw b3J0cyIpCkJlZm9yZSB0aGlzIGNvbW1pdCwgb25lIGNvdWxkIG1ha2UgcHJvYmluZyBmYWlsIG9u IHRoZSBlcnJvcgpwYXRoIG9ubHkgYnkgaGF2aW5nIHJlZ2lzdGVyX25ldGRldigpIGZhaWwsIHdo aWNoIGlzIHVubGlrZWx5LgpCdXQgYWZ0ZXIgdGhpcyBjb21taXQsIGJlY2F1c2UgaXQgbW92ZWQg dGhlIGVuZXRjX29mX3BoeV9nZXQoKQpjYWxsIHVwIGluIHRoZSBwcm9iaW5nIHNlcXVlbmNlLCBu b3cgd2UgY2FuIHRyaWdnZXIgYW4gbWRpb2J1c19mcmVlKCkKYnVnIGp1c3QgYnkgZm9yY2luZyBl bmV0Y19hbGxvY19tc2l4KCkgdG8gcmV0dXJuIGVycm9yLCBpLmUuIHdpdGggdGhlCidwY2k9bm9t c2knIGtlcm5lbCBib290YXJnIChzaW5jZSBFTkVUQyByZWxpZXMgb24gTVNJIHN1cHBvcnQgdG8g d29yayksCmFzIHRoZSBjYWxsdHJhY2UgYmVsb3cgc2hvd3M6CgprZXJuZWwgQlVHIGF0IC9ob21l L2Vpei93b3JrL2VuZXRjL25ldC9kcml2ZXJzL25ldC9waHkvbWRpb19idXMuYzo2NDghCkludGVy bmFsIGVycm9yOiBPb3BzIC0gQlVHOiAwIFsjMV0gUFJFRU1QVCBTTVAKWy4uLl0KSGFyZHdhcmUg bmFtZTogTFMxMDI4QSBSREIgQm9hcmQgKERUKQpwc3RhdGU6IDgwMDAwMDA1IChOemN2IGRhaWYg LVBBTiAtVUFPIEJUWVBFPS0tKQpwYyA6IG1kaW9idXNfZnJlZSsweDUwLzB4NTgKbHIgOiBkZXZt X21kaW9idXNfZnJlZSsweDE0LzB4MjAKWy4uLl0KQ2FsbCB0cmFjZToKIG1kaW9idXNfZnJlZSsw eDUwLzB4NTgKIGRldm1fbWRpb2J1c19mcmVlKzB4MTQvMHgyMAogcmVsZWFzZV9ub2RlcysweDEz OC8weDIyOAogZGV2cmVzX3JlbGVhc2VfYWxsKzB4MzgvMHg2MAogcmVhbGx5X3Byb2JlKzB4MWM4 LzB4MzY4CiBkcml2ZXJfcHJvYmVfZGV2aWNlKzB4NWMvMHhjMAogZGV2aWNlX2RyaXZlcl9hdHRh Y2grMHg3NC8weDgwCiBfX2RyaXZlcl9hdHRhY2grMHg4Yy8weGQ4CiBidXNfZm9yX2VhY2hfZGV2 KzB4N2MvMHhkOAogZHJpdmVyX2F0dGFjaCsweDI0LzB4MzAKIGJ1c19hZGRfZHJpdmVyKzB4MTU0 LzB4MjAwCiBkcml2ZXJfcmVnaXN0ZXIrMHg2NC8weDEyMAogX19wY2lfcmVnaXN0ZXJfZHJpdmVy KzB4NDQvMHg1MAogZW5ldGNfcGZfZHJpdmVyX2luaXQrMHgyNC8weDMwCiBkb19vbmVfaW5pdGNh bGwrMHg2MC8weDFjMAoga2VybmVsX2luaXRfZnJlZWFibGUrMHgxZmMvMHgyNzQKIGtlcm5lbF9p bml0KzB4MTQvMHgxMTAKIHJldF9mcm9tX2ZvcmsrMHgxMC8weDM0CgpGaXhlczogZWJmY2IyM2Q2 MmFiICgiZW5ldGM6IEFkZCBFTkVUQyBQRiBsZXZlbCBleHRlcm5hbCBNRElPIHN1cHBvcnQiKQpT aWduZWQtb2ZmLWJ5OiBDbGF1ZGl1IE1hbm9pbCA8Y2xhdWRpdS5tYW5vaWxAbnhwLmNvbT4KU2ln bmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRy aXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9lbmV0Yy9lbmV0Y19wZi5jIHwgMSArCiAxIGZp bGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhl cm5ldC9mcmVlc2NhbGUvZW5ldGMvZW5ldGNfcGYuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Zy ZWVzY2FsZS9lbmV0Yy9lbmV0Y19wZi5jCmluZGV4IDQzODY0OGEwNmYyYS4uMDQxZTE5ODk1YWRm IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZW5ldGMvZW5ldGNf cGYuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZW5ldGMvZW5ldGNfcGYu YwpAQCAtOTE5LDYgKzkxOSw3IEBAIHN0YXRpYyBpbnQgZW5ldGNfcGZfcHJvYmUoc3RydWN0IHBj aV9kZXYgKnBkZXYsCiAJcmV0dXJuIDA7CiAKIGVycl9yZWdfbmV0ZGV2OgorCWVuZXRjX21kaW9f cmVtb3ZlKHBmKTsKIAllbmV0Y19vZl9wdXRfcGh5KHByaXYpOwogCWVuZXRjX2ZyZWVfbXNpeChw cml2KTsKIGVycl9hbGxvY19tc2l4OgotLSAKMi4yNi4yCgoKRnJvbSBkZTEyNDQ1MDFjMjA1NjE5 ZmI3MDY2ZjE1MmJlZWU1MzZmNzI1ZDI1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBD b25nIFdhbmcgPHhpeW91Lndhbmdjb25nQGdtYWlsLmNvbT4KRGF0ZTogV2VkLCAyMiBKdWwgMjAy MCAxODo1NjoyNSAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDgvMzhdIGdlbmV2ZTogZml4IGFuIHVu aW5pdGlhbGl6ZWQgdmFsdWUgaW4KIGdlbmV2ZV9jaGFuZ2VsaW5rKCkKClsgVXBzdHJlYW0gY29t bWl0IDMyODE4YzA3NWM1NGJiMGNhZTQ0ZGQ2ZjdhYjAwYjAxYzUyYjgzNzIgXQoKZ2VuZXZlX25s MmluZm8oKSBzZXRzICdkZicgY29uZGl0aW9uYWxseSwgc28gd2UgaGF2ZSB0bwppbml0aWFsaXpl IGl0IGJ5IGNvcHlpbmcgdGhlIHZhbHVlIGZyb20gZXhpc3RpbmcgZ2VuZXZlCmRldmljZSBpbiBn ZW5ldmVfY2hhbmdlbGluaygpLgoKRml4ZXM6IDU2YzA5ZGUzNDdlNCAoImdlbmV2ZTogYWxsb3cg Y2hhbmdpbmcgREYgYmVoYXZpb3IgYWZ0ZXIgY3JlYXRpb24iKQpSZXBvcnRlZC1ieTogc3l6Ym90 KzdlYmMyZTA4OGFmNWU0YzBjOWZhQHN5emthbGxlci5hcHBzcG90bWFpbC5jb20KQ2M6IFNhYnJp bmEgRHVicm9jYSA8c2RAcXVlYXN5c25haWwubmV0PgpTaWduZWQtb2ZmLWJ5OiBDb25nIFdhbmcg PHhpeW91Lndhbmdjb25nQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IFNhYnJpbmEgRHVicm9jYSA8 c2RAcXVlYXN5c25haWwubmV0PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVt QGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZ2VuZXZlLmMgfCAyICstCiAxIGZpbGUg Y2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2 ZXJzL25ldC9nZW5ldmUuYyBiL2RyaXZlcnMvbmV0L2dlbmV2ZS5jCmluZGV4IDQ2NjFlZjg2NTgw Ny4uZGVjNTJiNzYzZDUwIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9nZW5ldmUuYworKysgYi9k cml2ZXJzL25ldC9nZW5ldmUuYwpAQCAtMTYxNSwxMSArMTYxNSwxMSBAQCBzdGF0aWMgaW50IGdl bmV2ZV9jaGFuZ2VsaW5rKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBubGF0dHIgKnRi W10sCiAJCQkgICAgIHN0cnVjdCBuZXRsaW5rX2V4dF9hY2sgKmV4dGFjaykKIHsKIAlzdHJ1Y3Qg Z2VuZXZlX2RldiAqZ2VuZXZlID0gbmV0ZGV2X3ByaXYoZGV2KTsKKwllbnVtIGlmbGFfZ2VuZXZl X2RmIGRmID0gZ2VuZXZlLT5kZjsKIAlzdHJ1Y3QgZ2VuZXZlX3NvY2sgKmdzNCwgKmdzNjsKIAlz dHJ1Y3QgaXBfdHVubmVsX2luZm8gaW5mbzsKIAlib29sIG1ldGFkYXRhOwogCWJvb2wgdXNlX3Vk cDZfcnhfY2hlY2tzdW1zOwotCWVudW0gaWZsYV9nZW5ldmVfZGYgZGY7CiAJYm9vbCB0dGxfaW5o ZXJpdDsKIAlpbnQgZXJyOwogCi0tIAoyLjI2LjIKCgpGcm9tIDkwNjI4ZDI2YTkzZjhjN2I0MjM1 NzExZDQyODMwZDQ1ODFmYTBlNDEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IENocmlz dG9waGUgSkFJTExFVCA8Y2hyaXN0b3BoZS5qYWlsbGV0QHdhbmFkb28uZnI+CkRhdGU6IFR1ZSwg MTQgSnVsIDIwMjAgMTM6MDA6MjcgKzAyMDAKU3ViamVjdDogW1BBVENIIDA5LzM4XSBoaXBwaTog Rml4IGEgc2l6ZSB1c2VkIGluIGEgJ3BjaV9mcmVlX2NvbnNpc3RlbnQoKScgaW4KIGFuIGVycm9y IGhhbmRsaW5nIHBhdGgKClsgVXBzdHJlYW0gY29tbWl0IDMxOTVjNDcwNmIwMDEwNmFhODJjNzNh Y2QyODM0MGZhOGZjMmJmYzEgXQoKVGhlIHNpemUgdXNlZCB3aGVuIGNhbGxpbmcgJ3BjaV9hbGxv Y19jb25zaXN0ZW50KCknIGFuZAoncGNpX2ZyZWVfY29uc2lzdGVudCgpJyBzaG91bGQgbWF0Y2gu CgpGaXggaXQgYW5kIGhhdmUgaXQgY29uc2lzdGVudCB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIGNh bGwgaW4gJ3JyX2Nsb3NlKCknLgoKRml4ZXM6IDFkYTE3N2U0YzNmNCAoIkxpbnV4LTIuNi4xMi1y YzIiKQpTaWduZWQtb2ZmLWJ5OiBDaHJpc3RvcGhlIEpBSUxMRVQgPGNocmlzdG9waGUuamFpbGxl dEB3YW5hZG9vLmZyPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVt bG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvaGlwcGkvcnJ1bm5lci5jIHwgMiArLQogMSBmaWxl IGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJp dmVycy9uZXQvaGlwcGkvcnJ1bm5lci5jIGIvZHJpdmVycy9uZXQvaGlwcGkvcnJ1bm5lci5jCmlu ZGV4IDJhNmVjNTM5NDk2Ni4uYTRiM2ZjZTY5ZWNkIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9o aXBwaS9ycnVubmVyLmMKKysrIGIvZHJpdmVycy9uZXQvaGlwcGkvcnJ1bm5lci5jCkBAIC0xMjQy LDcgKzEyNDIsNyBAQCBzdGF0aWMgaW50IHJyX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKmRldikK IAkJcnJwcml2LT5pbmZvID0gTlVMTDsKIAl9CiAJaWYgKHJycHJpdi0+cnhfY3RybCkgewotCQlw Y2lfZnJlZV9jb25zaXN0ZW50KHBkZXYsIHNpemVvZihzdHJ1Y3QgcmluZ19jdHJsKSwKKwkJcGNp X2ZyZWVfY29uc2lzdGVudChwZGV2LCAyNTYgKiBzaXplb2Yoc3RydWN0IHJpbmdfY3RybCksCiAJ CQkJICAgIHJycHJpdi0+cnhfY3RybCwgcnJwcml2LT5yeF9jdHJsX2RtYSk7CiAJCXJycHJpdi0+ cnhfY3RybCA9IE5VTEw7CiAJfQotLSAKMi4yNi4yCgoKRnJvbSA2NDRiNWUzMWFjODE2NTQ4ZTU0 YzA2OTg4NmJkNjBiNDJmODQzZjEzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBXZWkg WW9uZ2p1biA8d2VpeW9uZ2p1bjFAaHVhd2VpLmNvbT4KRGF0ZTogTW9uLCAxMyBKdWwgMjAyMCAy Mzo1OTo1MCArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMTAvMzhdIGlwNl9ncmU6IGZpeCBudWxsLXB0 ci1kZXJlZiBpbiBpcDZncmVfaW5pdF9uZXQoKQoKWyBVcHN0cmVhbSBjb21taXQgNDZlZjViODll YzBlY2YyOTBkNzRjNGFlZTg0NGYwNjM5MzNjNGRhNCBdCgpLQVNBTiByZXBvcnQgbnVsbC1wdHIt ZGVyZWYgZXJyb3Igd2hlbiByZWdpc3Rlcl9uZXRkZXYoKSBmYWlsZWQ6CgpLQVNBTjogbnVsbC1w dHItZGVyZWYgaW4gcmFuZ2UgWzB4MDAwMDAwMDAwMDAwMDNjMC0weDAwMDAwMDAwMDAwMDAzYzdd CkNQVTogMiBQSUQ6IDQyMiBDb21tOiBpcCBOb3QgdGFpbnRlZCA1LjguMC1yYzQrICMxMgpDYWxs IFRyYWNlOgogaXA2Z3JlX2luaXRfbmV0KzB4NGFiLzB4NTgwCiA/IGlwNmdyZV90dW5uZWxfdW5p bml0KzB4M2YwLzB4M2YwCiBvcHNfaW5pdCsweGE4LzB4M2MwCiBzZXR1cF9uZXQrMHgyZGUvMHg3 ZTAKID8gcmN1X3JlYWRfbG9ja19iaF9oZWxkKzB4YjAvMHhiMAogPyBvcHNfaW5pdCsweDNjMC8w eDNjMAogPyBrYXNhbl91bnBvaXNvbl9zaGFkb3crMHgzMy8weDQwCiA/IF9fa2FzYW5fa21hbGxv Yy5jb25zdHByb3AuMCsweGMyLzB4ZDAKIGNvcHlfbmV0X25zKzB4MjdkLzB4NTMwCiBjcmVhdGVf bmV3X25hbWVzcGFjZXMrMHgzODIvMHhhMzAKIHVuc2hhcmVfbnNwcm94eV9uYW1lc3BhY2VzKzB4 YTEvMHgxZDAKIGtzeXNfdW5zaGFyZSsweDM5Yy8weDc4MAogPyB3YWxrX3Byb2Nlc3NfdHJlZSsw eDJhMC8weDJhMAogPyB0cmFjZV9oYXJkaXJxc19vbisweDRhLzB4MWIwCiA/IF9yYXdfc3Bpbl91 bmxvY2tfaXJxKzB4MWYvMHgzMAogPyBzeXNjYWxsX3RyYWNlX2VudGVyKzB4MWE3LzB4MzMwCiA/ IGRvX3N5c2NhbGxfNjQrMHgxYy8weGEwCiBfX3g2NF9zeXNfdW5zaGFyZSsweDJkLzB4NDAKIGRv X3N5c2NhbGxfNjQrMHg1Ni8weGEwCiBlbnRyeV9TWVNDQUxMXzY0X2FmdGVyX2h3ZnJhbWUrMHg0 NC8weGE5CgppcDZncmVfdHVubmVsX3VuaW5pdCgpIGhhcyBzZXQgJ2lnbi0+ZmJfdHVubmVsX2Rl dicgdG8gTlVMTCwgbGF0ZXIKYWNjZXNzIHRvIGlnbi0+ZmJfdHVubmVsX2RldiBjYXVzZSBudWxs LXB0ci1kZXJlZi4gRml4IGl0IGJ5IHNhdmluZwonaWduLT5mYl90dW5uZWxfZGV2JyB0byBsb2Nh bCB2YXJpYWJsZSBuZGV2LgoKRml4ZXM6IGRhZmFiYjY1OTBjYiAoImlwNl9ncmU6IGZpeCB1c2Ut YWZ0ZXItZnJlZSBpbiBpcDZncmVfdHVubmVsX2xvb2t1cCgpIikKUmVwb3J0ZWQtYnk6IEh1bGsg Um9ib3QgPGh1bGtjaUBodWF3ZWkuY29tPgpTaWduZWQtb2ZmLWJ5OiBXZWkgWW9uZ2p1biA8d2Vp eW9uZ2p1bjFAaHVhd2VpLmNvbT4KUmV2aWV3ZWQtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRA Z29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxv ZnQubmV0PgotLS0KIG5ldC9pcHY2L2lwNl9ncmUuYyB8IDExICsrKysrKy0tLS0tCiAxIGZpbGUg Y2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25l dC9pcHY2L2lwNl9ncmUuYyBiL25ldC9pcHY2L2lwNl9ncmUuYwppbmRleCA2NTMyYmRlODJiNDAu LjNhNTdmYjljZTA0OSAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvaXA2X2dyZS5jCisrKyBiL25ldC9p cHY2L2lwNl9ncmUuYwpAQCAtMTU2MiwxNyArMTU2MiwxOCBAQCBzdGF0aWMgdm9pZCBpcDZncmVf ZGVzdHJveV90dW5uZWxzKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IGxpc3RfaGVhZCAqaGVhZCkK IHN0YXRpYyBpbnQgX19uZXRfaW5pdCBpcDZncmVfaW5pdF9uZXQoc3RydWN0IG5ldCAqbmV0KQog ewogCXN0cnVjdCBpcDZncmVfbmV0ICppZ24gPSBuZXRfZ2VuZXJpYyhuZXQsIGlwNmdyZV9uZXRf aWQpOworCXN0cnVjdCBuZXRfZGV2aWNlICpuZGV2OwogCWludCBlcnI7CiAKIAlpZiAoIW5ldF9o YXNfZmFsbGJhY2tfdHVubmVscyhuZXQpKQogCQlyZXR1cm4gMDsKLQlpZ24tPmZiX3R1bm5lbF9k ZXYgPSBhbGxvY19uZXRkZXYoc2l6ZW9mKHN0cnVjdCBpcDZfdG5sKSwgImlwNmdyZTAiLAotCQkJ CQkgIE5FVF9OQU1FX1VOS05PV04sCi0JCQkJCSAgaXA2Z3JlX3R1bm5lbF9zZXR1cCk7Ci0JaWYg KCFpZ24tPmZiX3R1bm5lbF9kZXYpIHsKKwluZGV2ID0gYWxsb2NfbmV0ZGV2KHNpemVvZihzdHJ1 Y3QgaXA2X3RubCksICJpcDZncmUwIiwKKwkJCSAgICBORVRfTkFNRV9VTktOT1dOLCBpcDZncmVf dHVubmVsX3NldHVwKTsKKwlpZiAoIW5kZXYpIHsKIAkJZXJyID0gLUVOT01FTTsKIAkJZ290byBl cnJfYWxsb2NfZGV2OwogCX0KKwlpZ24tPmZiX3R1bm5lbF9kZXYgPSBuZGV2OwogCWRldl9uZXRf c2V0KGlnbi0+ZmJfdHVubmVsX2RldiwgbmV0KTsKIAkvKiBGQiBuZXRkZXZpY2UgaXMgc3BlY2lh bDogd2UgaGF2ZSBvbmUsIGFuZCBvbmx5IG9uZSBwZXIgbmV0bnMuCiAJICogQWxsb3dpbmcgdG8g bW92ZSBpdCB0byBhbm90aGVyIG5ldG5zIGlzIGNsZWFybHkgdW5zYWZlLgpAQCAtMTU5Miw3ICsx NTkzLDcgQEAgc3RhdGljIGludCBfX25ldF9pbml0IGlwNmdyZV9pbml0X25ldChzdHJ1Y3QgbmV0 ICpuZXQpCiAJcmV0dXJuIDA7CiAKIGVycl9yZWdfZGV2OgotCWZyZWVfbmV0ZGV2KGlnbi0+ZmJf dHVubmVsX2Rldik7CisJZnJlZV9uZXRkZXYobmRldik7CiBlcnJfYWxsb2NfZGV2OgogCXJldHVy biBlcnI7CiB9Ci0tIAoyLjI2LjIKCgpGcm9tIDE0ZGM5MGZmNGRlMDgxMGIzNWIxYTRmNDIyNDRh MWVlZmFhMjA4ZWIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IExpdSBKaWFuIDxsaXVq aWFuNTZAaHVhd2VpLmNvbT4KRGF0ZTogTW9uLCAyMCBKdWwgMjAyMCAyMjozMTo0OSArMDgwMApT dWJqZWN0OiBbUEFUQ0ggMTEvMzhdIG1seHN3OiBkZXN0cm95IHdvcmtxdWV1ZSB3aGVuIHRyYXBf cmVnaXN0ZXIgaW4KIG1seHN3X2VtYWRfaW5pdAoKWyBVcHN0cmVhbSBjb21taXQgNWRiYWViODdm MmIzMDk5MzZiZTBhZWFlMDBjYmM5ZTdmMjBhYjI5NiBdCgpXaGVuIG1seHN3X2NvcmVfdHJhcF9y ZWdpc3RlciBmYWlscyBpbiBtbHhzd19lbWFkX2luaXQsCmRlc3Ryb3lfd29ya3F1ZXVlKCkgc2hv dWxlZCBiZSBjYWxsZWQgdG8gZGVzdHJveSBtbHhzd19jb3JlLT5lbWFkX3dxLgoKRml4ZXM6IGQ5 NjU0NjViNjBiYSAoIm1seHN3OiBjb3JlOiBGaXggcG9zc2libGUgZGVhZGxvY2siKQpTaWduZWQt b2ZmLWJ5OiBMaXUgSmlhbiA8bGl1amlhbjU2QGh1YXdlaS5jb20+ClJldmlld2VkLWJ5OiBJZG8g U2NoaW1tZWwgPGlkb3NjaEBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1p bGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxs YW5veC9tbHhzdy9jb3JlLmMgfCAzICsrLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygr KSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxh bm94L21seHN3L2NvcmUuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L2Nv cmUuYwppbmRleCBlOWNjZDMzM2Y2MWQuLmQ2ZDZmZTY0ODg3YiAxMDA2NDQKLS0tIGEvZHJpdmVy cy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvY29yZS5jCisrKyBiL2RyaXZlcnMvbmV0L2V0 aGVybmV0L21lbGxhbm94L21seHN3L2NvcmUuYwpAQCAtNzEwLDcgKzcxMCw3IEBAIHN0YXRpYyBp bnQgbWx4c3dfZW1hZF9pbml0KHN0cnVjdCBtbHhzd19jb3JlICptbHhzd19jb3JlKQogCWVyciA9 IG1seHN3X2NvcmVfdHJhcF9yZWdpc3RlcihtbHhzd19jb3JlLCAmbWx4c3dfZW1hZF9yeF9saXN0 ZW5lciwKIAkJCQkgICAgICAgbWx4c3dfY29yZSk7CiAJaWYgKGVycikKLQkJcmV0dXJuIGVycjsK KwkJZ290byBlcnJfdHJhcF9yZWdpc3RlcjsKIAogCWVyciA9IG1seHN3X2NvcmUtPmRyaXZlci0+ YmFzaWNfdHJhcF9ncm91cHNfc2V0KG1seHN3X2NvcmUpOwogCWlmIChlcnIpCkBAIC03MjIsNiAr NzIyLDcgQEAgc3RhdGljIGludCBtbHhzd19lbWFkX2luaXQoc3RydWN0IG1seHN3X2NvcmUgKm1s eHN3X2NvcmUpCiBlcnJfZW1hZF90cmFwX3NldDoKIAltbHhzd19jb3JlX3RyYXBfdW5yZWdpc3Rl cihtbHhzd19jb3JlLCAmbWx4c3dfZW1hZF9yeF9saXN0ZW5lciwKIAkJCQkgICBtbHhzd19jb3Jl KTsKK2Vycl90cmFwX3JlZ2lzdGVyOgogCWRlc3Ryb3lfd29ya3F1ZXVlKG1seHN3X2NvcmUtPmVt YWRfd3EpOwogCXJldHVybiBlcnI7CiB9Ci0tIAoyLjI2LjIKCgpGcm9tIDM5ZjZjZTMwYTBjZjE4 NTg0MDI1NTY4M2Q2ZDUzYTcwMzc3YzAwZWQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IFRhZWhlZSBZb28gPGFwNDIwMDczQGdtYWlsLmNvbT4KRGF0ZTogVHVlLCAyMSBKdWwgMjAyMCAx NDo1MTo1MCArMDAwMApTdWJqZWN0OiBbUEFUQ0ggMTIvMzhdIG5ldGRldnNpbTogZml4IHVuYmFs YWNlZCBsb2NraW5nIGluIG5zaW1fY3JlYXRlKCkKClsgVXBzdHJlYW0gY29tbWl0IDJjOWQ4ZTAx ZjBjNjAxNzMxN2VlZTc2Mzg0OTYxNzNkNGE2NGU2YmMgXQoKSW4gdGhlIG5zaW1fY3JlYXRlKCks IHJ0bmxfbG9jaygpIGlzIGNhbGxlZCBiZWZvcmUgbnNpbV9icGZfaW5pdCgpLgpJZiBuc2ltX2Jw Zl9pbml0KCkgaXMgZmFpbGVkLCBydG5sX3VubG9jaygpIHNob3VsZCBiZSBjYWxsZWQsCmJ1dCBp dCBpc24ndCBjYWxsZWQuClNvLCB1bmJhbGFuY2VkIGxvY2tpbmcgd291bGQgb2NjdXIuCgpGaXhl czogZTA1YjJkMTQxZmVmICgibmV0ZGV2c2ltOiBtb3ZlIG5ldGRldiBjcmVhdGlvbi9kZXN0cnVj dGlvbiB0byBkZXYgcHJvYmUiKQpTaWduZWQtb2ZmLWJ5OiBUYWVoZWUgWW9vIDxhcDQyMDA3M0Bn bWFpbC5jb20+ClJldmlld2VkLWJ5OiBKYWt1YiBLaWNpbnNraSA8a3ViYUBrZXJuZWwub3JnPgpT aWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQog ZHJpdmVycy9uZXQvbmV0ZGV2c2ltL25ldGRldi5jIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwg MiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0 L25ldGRldnNpbS9uZXRkZXYuYyBiL2RyaXZlcnMvbmV0L25ldGRldnNpbS9uZXRkZXYuYwppbmRl eCAyOTA4ZTBhMGQ2ZTEuLjIzOTUwZTdhMGY4MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvbmV0 ZGV2c2ltL25ldGRldi5jCisrKyBiL2RyaXZlcnMvbmV0L25ldGRldnNpbS9uZXRkZXYuYwpAQCAt MzAyLDcgKzMwMiw3IEBAIG5zaW1fY3JlYXRlKHN0cnVjdCBuc2ltX2RldiAqbnNpbV9kZXYsIHN0 cnVjdCBuc2ltX2Rldl9wb3J0ICpuc2ltX2Rldl9wb3J0KQogCXJ0bmxfbG9jaygpOwogCWVyciA9 IG5zaW1fYnBmX2luaXQobnMpOwogCWlmIChlcnIpCi0JCWdvdG8gZXJyX2ZyZWVfbmV0ZGV2Owor CQlnb3RvIGVycl9ydG5sX3VubG9jazsKIAogCW5zaW1faXBzZWNfaW5pdChucyk7CiAKQEAgLTMx Niw4ICszMTYsOCBAQCBuc2ltX2NyZWF0ZShzdHJ1Y3QgbnNpbV9kZXYgKm5zaW1fZGV2LCBzdHJ1 Y3QgbnNpbV9kZXZfcG9ydCAqbnNpbV9kZXZfcG9ydCkKIGVycl9pcHNlY190ZWFyZG93bjoKIAlu c2ltX2lwc2VjX3RlYXJkb3duKG5zKTsKIAluc2ltX2JwZl91bmluaXQobnMpOworZXJyX3J0bmxf dW5sb2NrOgogCXJ0bmxfdW5sb2NrKCk7Ci1lcnJfZnJlZV9uZXRkZXY6CiAJZnJlZV9uZXRkZXYo ZGV2KTsKIAlyZXR1cm4gRVJSX1BUUihlcnIpOwogfQotLSAKMi4yNi4yCgoKRnJvbSA3MjZjY2Qy N2ZjNTNjZGQwYTFkNjZmZWI1YjQ3YzY5MDhmZDNhOGQxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBIZWxtdXQgR3JvaG5lIDxoZWxtdXQuZ3JvaG5lQGludGVudGEuZGU+CkRhdGU6IFR1 ZSwgMjEgSnVsIDIwMjAgMTM6MDc6MzkgKzAyMDAKU3ViamVjdDogW1BBVENIIDEzLzM4XSBuZXQ6 IGRzYTogbWljcm9jaGlwOiBjYWxsIHBoeV9yZW1vdmVfbGlua19tb2RlIGR1cmluZwogcHJvYmUK ClsgVXBzdHJlYW0gY29tbWl0IDM1MDZiMmY0MmRmZjY2ZWE2ODE0YzNkZmExOTg4YmFmYjc5ZTZm ODggXQoKV2hlbiBkb2luZyAiaXAgbGluayBzZXQgZGV2IC4uLiB1cCIgZm9yIGEga3N6OTQ3NyBi YWNrZWQgbGluaywKa3N6OTQ3N19waHlfc2V0dXAgaXMgY2FsbGVkIGFuZCBpdCBjYWxscyBwaHlf cmVtb3ZlX2xpbmtfbW9kZSB0byByZW1vdmUKMTAwMGJhc2VUIEhEWC4gRHVyaW5nIHBoeV9yZW1v dmVfbGlua19tb2RlLCBwaHlfYWR2ZXJ0aXNlX3N1cHBvcnRlZCBpcwpjYWxsZWQuIERvaW5nIHNv IHJldmVydHMgYW55IHByZXZpb3VzIGNoYW5nZSB0byBhZHZlcnRpc2VkIGxpbmsgbW9kZXMKZS5n LiB1c2luZyBhIHVkZXZkIC5saW5rIGZpbGUuCgpwaHlfcmVtb3ZlX2xpbmtfbW9kZSBpcyBub3Qg bWVhbnQgdG8gYmUgdXNlZCB3aGlsZSBvcGVuaW5nIGEgbGluayBhbmQKc2hvdWxkIGJlIGNhbGxl ZCBkdXJpbmcgcGh5IHByb2JlIHdoZW4gdGhlIGxpbmsgaXMgbm90IHlldCBhdmFpbGFibGUgdG8K dXNlcnNwYWNlLgoKVGhlcmVmb3JlIG1vdmUgdGhlIHBoeV9yZW1vdmVfbGlua19tb2RlIGNhbGxz IGludG8Ka3N6OTQ3N19zd2l0Y2hfcmVnaXN0ZXIuIEl0IGluZGlyZWN0bHkgY2FsbHMgZHNhX3Jl Z2lzdGVyX3N3aXRjaCwgd2hpY2gKY3JlYXRlcyB0aGUgcmVsZXZhbnQgc3RydWN0IHBoeV9kZXZp Y2VzIGFuZCB3ZSB1cGRhdGUgdGhlIGxpbmsgbW9kZXMKcmlnaHQgYWZ0ZXIgdGhhdC4gQXQgdGhh dCB0aW1lIGRldi0+ZmVhdHVyZXMgaXMgYWxyZWFkeSBpbml0aWFsaXplZCBieQprc3o5NDc3X3N3 aXRjaF9kZXRlY3QuCgpSZW1vdmUgcGh5X3NldHVwIGZyb20ga3N6X2Rldl9vcHMgYXMgbm8gdXNl cnMgcmVtYWluLgoKTGluazogaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvbmV0ZGV2LzIwMjAwNzE1 MTkyNzIyLkdEMTI1NjY5MkBsdW5uLmNoLwpGaXhlczogNDJmYzZhNGM2MTMwMTkgKCJuZXQ6IGRz YTogbWljcm9jaGlwOiBwcmVwYXJlIFBIWSBmb3IgcHJvcGVyIGFkdmVydGlzZW1lbnQiKQpTaWdu ZWQtb2ZmLWJ5OiBIZWxtdXQgR3JvaG5lIDxoZWxtdXQuZ3JvaG5lQGludGVudGEuZGU+ClJldmll d2VkLWJ5OiBBbmRyZXcgTHVubiA8YW5kcmV3QGx1bm4uY2g+ClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9kc2EvbWlj cm9jaGlwL2tzejk0NzcuYyAgICB8IDQyICsrKysrKysrKysrKysrLS0tLS0tLS0tLS0tCiBkcml2 ZXJzL25ldC9kc2EvbWljcm9jaGlwL2tzel9jb21tb24uYyB8ICAyIC0tCiBkcml2ZXJzL25ldC9k c2EvbWljcm9jaGlwL2tzel9jb21tb24uaCB8ICAyIC0tCiAzIGZpbGVzIGNoYW5nZWQsIDIzIGlu c2VydGlvbnMoKyksIDIzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2Rz YS9taWNyb2NoaXAva3N6OTQ3Ny5jIGIvZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9rc3o5NDc3 LmMKaW5kZXggNjU3MDFlNjViNmMyLi45NWE0MDZlMmUzNzMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv bmV0L2RzYS9taWNyb2NoaXAva3N6OTQ3Ny5jCisrKyBiL2RyaXZlcnMvbmV0L2RzYS9taWNyb2No aXAva3N6OTQ3Ny5jCkBAIC05NzcsMjMgKzk3Nyw2IEBAIHN0YXRpYyB2b2lkIGtzejk0NzdfcG9y dF9taXJyb3JfZGVsKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsCiAJCQkgICAgIFBP UlRfTUlSUk9SX1NOSUZGRVIsIGZhbHNlKTsKIH0KIAotc3RhdGljIHZvaWQga3N6OTQ3N19waHlf c2V0dXAoc3RydWN0IGtzel9kZXZpY2UgKmRldiwgaW50IHBvcnQsCi0JCQkgICAgICBzdHJ1Y3Qg cGh5X2RldmljZSAqcGh5KQotewotCS8qIE9ubHkgYXBwbHkgdG8gcG9ydCB3aXRoIFBIWS4gKi8K LQlpZiAocG9ydCA+PSBkZXYtPnBoeV9wb3J0X2NudCkKLQkJcmV0dXJuOwotCi0JLyogVGhlIE1B QyBhY3R1YWxseSBjYW5ub3QgcnVuIGluIDEwMDAgaGFsZi1kdXBsZXggbW9kZS4gKi8KLQlwaHlf cmVtb3ZlX2xpbmtfbW9kZShwaHksCi0JCQkgICAgIEVUSFRPT0xfTElOS19NT0RFXzEwMDBiYXNl VF9IYWxmX0JJVCk7Ci0KLQkvKiBQSFkgZG9lcyBub3Qgc3VwcG9ydCBnaWdhYml0LiAqLwotCWlm ICghKGRldi0+ZmVhdHVyZXMgJiBHQklUX1NVUFBPUlQpKQotCQlwaHlfcmVtb3ZlX2xpbmtfbW9k ZShwaHksCi0JCQkJICAgICBFVEhUT09MX0xJTktfTU9ERV8xMDAwYmFzZVRfRnVsbF9CSVQpOwot fQotCiBzdGF0aWMgYm9vbCBrc3o5NDc3X2dldF9nYml0KHN0cnVjdCBrc3pfZGV2aWNlICpkZXYs IHU4IGRhdGEpCiB7CiAJYm9vbCBnYml0OwpAQCAtMTYwNiw3ICsxNTg5LDYgQEAgc3RhdGljIGNv bnN0IHN0cnVjdCBrc3pfZGV2X29wcyBrc3o5NDc3X2Rldl9vcHMgPSB7CiAJLmdldF9wb3J0X2Fk ZHIgPSBrc3o5NDc3X2dldF9wb3J0X2FkZHIsCiAJLmNmZ19wb3J0X21lbWJlciA9IGtzejk0Nzdf Y2ZnX3BvcnRfbWVtYmVyLAogCS5mbHVzaF9keW5fbWFjX3RhYmxlID0ga3N6OTQ3N19mbHVzaF9k eW5fbWFjX3RhYmxlLAotCS5waHlfc2V0dXAgPSBrc3o5NDc3X3BoeV9zZXR1cCwKIAkucG9ydF9z ZXR1cCA9IGtzejk0NzdfcG9ydF9zZXR1cCwKIAkucl9taWJfY250ID0ga3N6OTQ3N19yX21pYl9j bnQsCiAJLnJfbWliX3BrdCA9IGtzejk0Nzdfcl9taWJfcGt0LApAQCAtMTYyMCw3ICsxNjAyLDI5 IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qga3N6X2Rldl9vcHMga3N6OTQ3N19kZXZfb3BzID0gewog CiBpbnQga3N6OTQ3N19zd2l0Y2hfcmVnaXN0ZXIoc3RydWN0IGtzel9kZXZpY2UgKmRldikKIHsK LQlyZXR1cm4ga3N6X3N3aXRjaF9yZWdpc3RlcihkZXYsICZrc3o5NDc3X2Rldl9vcHMpOworCWlu dCByZXQsIGk7CisJc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldjsKKworCXJldCA9IGtzel9zd2l0 Y2hfcmVnaXN0ZXIoZGV2LCAma3N6OTQ3N19kZXZfb3BzKTsKKwlpZiAocmV0KQorCQlyZXR1cm4g cmV0OworCisJZm9yIChpID0gMDsgaSA8IGRldi0+cGh5X3BvcnRfY250OyArK2kpIHsKKwkJaWYg KCFkc2FfaXNfdXNlcl9wb3J0KGRldi0+ZHMsIGkpKQorCQkJY29udGludWU7CisKKwkJcGh5ZGV2 ID0gZHNhX3RvX3BvcnQoZGV2LT5kcywgaSktPnNsYXZlLT5waHlkZXY7CisKKwkJLyogVGhlIE1B QyBhY3R1YWxseSBjYW5ub3QgcnVuIGluIDEwMDAgaGFsZi1kdXBsZXggbW9kZS4gKi8KKwkJcGh5 X3JlbW92ZV9saW5rX21vZGUocGh5ZGV2LAorCQkJCSAgICAgRVRIVE9PTF9MSU5LX01PREVfMTAw MGJhc2VUX0hhbGZfQklUKTsKKworCQkvKiBQSFkgZG9lcyBub3Qgc3VwcG9ydCBnaWdhYml0LiAq LworCQlpZiAoIShkZXYtPmZlYXR1cmVzICYgR0JJVF9TVVBQT1JUKSkKKwkJCXBoeV9yZW1vdmVf bGlua19tb2RlKHBoeWRldiwKKwkJCQkJICAgICBFVEhUT09MX0xJTktfTU9ERV8xMDAwYmFzZVRf RnVsbF9CSVQpOworCX0KKwlyZXR1cm4gcmV0OwogfQogRVhQT1JUX1NZTUJPTChrc3o5NDc3X3N3 aXRjaF9yZWdpc3Rlcik7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAv a3N6X2NvbW1vbi5jIGIvZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9rc3pfY29tbW9uLmMKaW5k ZXggZmQxZDY2NzZhZTRmLi43YjZjMGRjZTc1MzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2Rz YS9taWNyb2NoaXAva3N6X2NvbW1vbi5jCisrKyBiL2RyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAv a3N6X2NvbW1vbi5jCkBAIC0zNTgsOCArMzU4LDYgQEAgaW50IGtzel9lbmFibGVfcG9ydChzdHJ1 Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LCBzdHJ1Y3QgcGh5X2RldmljZSAqcGh5KQogCiAJ Lyogc2V0dXAgc2xhdmUgcG9ydCAqLwogCWRldi0+ZGV2X29wcy0+cG9ydF9zZXR1cChkZXYsIHBv cnQsIGZhbHNlKTsKLQlpZiAoZGV2LT5kZXZfb3BzLT5waHlfc2V0dXApCi0JCWRldi0+ZGV2X29w cy0+cGh5X3NldHVwKGRldiwgcG9ydCwgcGh5KTsKIAogCS8qIHBvcnRfc3RwX3N0YXRlX3NldCgp IHdpbGwgYmUgY2FsbGVkIGFmdGVyIHRvIGVuYWJsZSB0aGUgcG9ydCBzbwogCSAqIHRoZXJlIGlz IG5vIG5lZWQgdG8gZG8gYW55dGhpbmcuCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvbWlj cm9jaGlwL2tzel9jb21tb24uaCBiL2RyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAva3N6X2NvbW1v bi5oCmluZGV4IGYyYzliYjY4ZmQzMy4uN2QxMWRkMzJlYzBkIDEwMDY0NAotLS0gYS9kcml2ZXJz L25ldC9kc2EvbWljcm9jaGlwL2tzel9jb21tb24uaAorKysgYi9kcml2ZXJzL25ldC9kc2EvbWlj cm9jaGlwL2tzel9jb21tb24uaApAQCAtMTE5LDggKzExOSw2IEBAIHN0cnVjdCBrc3pfZGV2X29w cyB7CiAJdTMyICgqZ2V0X3BvcnRfYWRkcikoaW50IHBvcnQsIGludCBvZmZzZXQpOwogCXZvaWQg KCpjZmdfcG9ydF9tZW1iZXIpKHN0cnVjdCBrc3pfZGV2aWNlICpkZXYsIGludCBwb3J0LCB1OCBt ZW1iZXIpOwogCXZvaWQgKCpmbHVzaF9keW5fbWFjX3RhYmxlKShzdHJ1Y3Qga3N6X2RldmljZSAq ZGV2LCBpbnQgcG9ydCk7Ci0Jdm9pZCAoKnBoeV9zZXR1cCkoc3RydWN0IGtzel9kZXZpY2UgKmRl diwgaW50IHBvcnQsCi0JCQkgIHN0cnVjdCBwaHlfZGV2aWNlICpwaHkpOwogCXZvaWQgKCpwb3J0 X2NsZWFudXApKHN0cnVjdCBrc3pfZGV2aWNlICpkZXYsIGludCBwb3J0KTsKIAl2b2lkICgqcG9y dF9zZXR1cCkoc3RydWN0IGtzel9kZXZpY2UgKmRldiwgaW50IHBvcnQsIGJvb2wgY3B1X3BvcnQp OwogCXZvaWQgKCpyX3BoeSkoc3RydWN0IGtzel9kZXZpY2UgKmRldiwgdTE2IHBoeSwgdTE2IHJl ZywgdTE2ICp2YWwpOwotLSAKMi4yNi4yCgoKRnJvbSBkNGVlODU2MTIyYWU4ZGQ2NDc0NzExNjhk MWExZjAzM2ZkZjBmZDk0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiB3ZW54dSA8d2Vu eHVAdWNsb3VkLmNuPgpEYXRlOiBTdW4sIDE5IEp1bCAyMDIwIDIwOjMwOjM3ICswODAwClN1Ympl Y3Q6IFtQQVRDSCAxNC8zOF0gbmV0L3NjaGVkOiBhY3RfY3Q6IGZpeCByZXN0b3JlIHRoZSBxZGlz Y19za2JfY2IgYWZ0ZXIKIGRlZnJhZwoKWyBVcHN0cmVhbSBjb21taXQgYWUzNzJjYjE3NTBmNmM5 NTM3MGY5MmZlNWY1NjIwZTA5NTQ2NjNiYSBdCgpUaGUgZnJhZ21lbnQgcGFja2V0cyBkbyBkZWZy YWcgaW4gdGNmX2N0X2hhbmRsZV9mcmFnbWVudHMKd2lsbCBjbGVhciB0aGUgc2tiLT5jYiB3aGlj aCBtYWtlIHRoZSBxZGlzY19za2JfY2IgY2xlYXIKdG9vLiBTbyB0aGUgcWRzaWNfc2tiX2NiIHNo b3VsZCBiZSBzdG9yZSBiZWZvcmUgZGVmcmFnIGFuZApyZXN0b3JlIGFmdGVyIHRoYXQuCkl0IGFs c28gdXBkYXRlIHRoZSBwa3RfbGVuIGFmdGVyIGFsbCB0aGUKZnJhZ21lbnRzIGZpbmlzaCB0aGUg ZGVmcmFnIHRvIG9uZSBwYWNrZXQgYW5kIG1ha2UgdGhlCmZvbGxvd2luZyBhY3Rpb25zIGNvdW50 ZXIgY29ycmVjdC4KCkZpeGVzOiBiNTdkYzdjMTNlYTkgKCJuZXQvc2NoZWQ6IEludHJvZHVjZSBh Y3Rpb24gY3QiKQpTaWduZWQtb2ZmLWJ5OiB3ZW54dSA8d2VueHVAdWNsb3VkLmNuPgpTaWduZWQt b2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3Nj aGVkL2FjdF9jdC5jIHwgMTYgKysrKysrKysrKysrKystLQogMSBmaWxlIGNoYW5nZWQsIDE0IGlu c2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL2FjdF9j dC5jIGIvbmV0L3NjaGVkL2FjdF9jdC5jCmluZGV4IDZhMTE0ZjgwZTU0Yi4uZTE5MWYyNzI4Mzg5 IDEwMDY0NAotLS0gYS9uZXQvc2NoZWQvYWN0X2N0LmMKKysrIGIvbmV0L3NjaGVkL2FjdF9jdC5j CkBAIC02NzEsOSArNjcxLDEwIEBAIHN0YXRpYyBpbnQgdGNmX2N0X2lwdjZfaXNfZnJhZ21lbnQo c3RydWN0IHNrX2J1ZmYgKnNrYiwgYm9vbCAqZnJhZykKIH0KIAogc3RhdGljIGludCB0Y2ZfY3Rf aGFuZGxlX2ZyYWdtZW50cyhzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBza19idWZmICpza2IsCi0J CQkJICAgdTggZmFtaWx5LCB1MTYgem9uZSkKKwkJCQkgICB1OCBmYW1pbHksIHUxNiB6b25lLCBi b29sICpkZWZyYWcpCiB7CiAJZW51bSBpcF9jb25udHJhY2tfaW5mbyBjdGluZm87CisJc3RydWN0 IHFkaXNjX3NrYl9jYiBjYjsKIAlzdHJ1Y3QgbmZfY29ubiAqY3Q7CiAJaW50IGVyciA9IDA7CiAJ Ym9vbCBmcmFnOwpAQCAtNjkxLDYgKzY5Miw3IEBAIHN0YXRpYyBpbnQgdGNmX2N0X2hhbmRsZV9m cmFnbWVudHMoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCQlyZXR1cm4g ZXJyOwogCiAJc2tiX2dldChza2IpOworCWNiID0gKnFkaXNjX3NrYl9jYihza2IpOwogCiAJaWYg KGZhbWlseSA9PSBORlBST1RPX0lQVjQpIHsKIAkJZW51bSBpcF9kZWZyYWdfdXNlcnMgdXNlciA9 IElQX0RFRlJBR19DT05OVFJBQ0tfSU4gKyB6b25lOwpAQCAtNzAxLDYgKzcwMyw5IEBAIHN0YXRp YyBpbnQgdGNmX2N0X2hhbmRsZV9mcmFnbWVudHMoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc2tf YnVmZiAqc2tiLAogCQlsb2NhbF9iaF9lbmFibGUoKTsKIAkJaWYgKGVyciAmJiBlcnIgIT0gLUVJ TlBST0dSRVNTKQogCQkJZ290byBvdXRfZnJlZTsKKworCQlpZiAoIWVycikKKwkJCSpkZWZyYWcg PSB0cnVlOwogCX0gZWxzZSB7IC8qIE5GUFJPVE9fSVBWNiAqLwogI2lmIElTX0VOQUJMRUQoQ09O RklHX05GX0RFRlJBR19JUFY2KQogCQllbnVtIGlwNl9kZWZyYWdfdXNlcnMgdXNlciA9IElQNl9E RUZSQUdfQ09OTlRSQUNLX0lOICsgem9uZTsKQEAgLTcwOSwxMiArNzE0LDE2IEBAIHN0YXRpYyBp bnQgdGNmX2N0X2hhbmRsZV9mcmFnbWVudHMoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc2tfYnVm ZiAqc2tiLAogCQllcnIgPSBuZl9jdF9mcmFnNl9nYXRoZXIobmV0LCBza2IsIHVzZXIpOwogCQlp ZiAoZXJyICYmIGVyciAhPSAtRUlOUFJPR1JFU1MpCiAJCQlnb3RvIG91dF9mcmVlOworCisJCWlm ICghZXJyKQorCQkJKmRlZnJhZyA9IHRydWU7CiAjZWxzZQogCQllcnIgPSAtRU9QTk9UU1VQUDsK IAkJZ290byBvdXRfZnJlZTsKICNlbmRpZgogCX0KIAorCSpxZGlzY19za2JfY2Ioc2tiKSA9IGNi OwogCXNrYl9jbGVhcl9oYXNoKHNrYik7CiAJc2tiLT5pZ25vcmVfZGYgPSAxOwogCXJldHVybiBl cnI7CkBAIC05MTIsNiArOTIxLDcgQEAgc3RhdGljIGludCB0Y2ZfY3RfYWN0KHN0cnVjdCBza19i dWZmICpza2IsIGNvbnN0IHN0cnVjdCB0Y19hY3Rpb24gKmEsCiAJaW50IG5oX29mcywgZXJyLCBy ZXR2YWw7CiAJc3RydWN0IHRjZl9jdF9wYXJhbXMgKnA7CiAJYm9vbCBza2lwX2FkZCA9IGZhbHNl OworCWJvb2wgZGVmcmFnID0gZmFsc2U7CiAJc3RydWN0IG5mX2Nvbm4gKmN0OwogCXU4IGZhbWls eTsKIApAQCAtOTQyLDcgKzk1Miw3IEBAIHN0YXRpYyBpbnQgdGNmX2N0X2FjdChzdHJ1Y3Qgc2tf YnVmZiAqc2tiLCBjb25zdCBzdHJ1Y3QgdGNfYWN0aW9uICphLAogCSAqLwogCW5oX29mcyA9IHNr Yl9uZXR3b3JrX29mZnNldChza2IpOwogCXNrYl9wdWxsX3Jjc3VtKHNrYiwgbmhfb2ZzKTsKLQll cnIgPSB0Y2ZfY3RfaGFuZGxlX2ZyYWdtZW50cyhuZXQsIHNrYiwgZmFtaWx5LCBwLT56b25lKTsK KwllcnIgPSB0Y2ZfY3RfaGFuZGxlX2ZyYWdtZW50cyhuZXQsIHNrYiwgZmFtaWx5LCBwLT56b25l LCAmZGVmcmFnKTsKIAlpZiAoZXJyID09IC1FSU5QUk9HUkVTUykgewogCQlyZXR2YWwgPSBUQ19B Q1RfU1RPTEVOOwogCQlnb3RvIG91dDsKQEAgLTEwMTAsNiArMTAyMCw4IEBAIHN0YXRpYyBpbnQg dGNmX2N0X2FjdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBjb25zdCBzdHJ1Y3QgdGNfYWN0aW9uICph LAogCiBvdXQ6CiAJdGNmX2FjdGlvbl91cGRhdGVfYnN0YXRzKCZjLT5jb21tb24sIHNrYik7CisJ aWYgKGRlZnJhZykKKwkJcWRpc2Nfc2tiX2NiKHNrYiktPnBrdF9sZW4gPSBza2ItPmxlbjsKIAly ZXR1cm4gcmV0dmFsOwogCiBkcm9wOgotLSAKMi4yNi4yCgoKRnJvbSA0NTg1NmYwYjIyODFkOGM4 MTk3NWU5YzdiZTY3MDJjNTgyOWFkNDFhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBY aW9uZ2ZlbmcgV2FuZyA8d2FuZ3hpb25nZmVuZzJAaHVhd2VpLmNvbT4KRGF0ZTogVHVlLCAyMSBK dWwgMjAyMCAxNTowMjo1NyArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMTUvMzhdIG5ldC1zeXNmczog YWRkIGEgbmV3bGluZSB3aGVuIHByaW50aW5nICd0eF90aW1lb3V0JyBieQogc3lzZnMKClsgVXBz dHJlYW0gY29tbWl0IDliYjVmYmVhNTlmMzZhNTg5ZWY4ODYyOTI1NDljYTQwNTJmZTY3NmMgXQoK V2hlbiBJIGNhdCAndHhfdGltZW91dCcgYnkgc3lzZnMsIGl0IGRpc3BsYXlzIGFzIGZvbGxvd3Mu IEl0J3MgYmV0dGVyIHRvCmFkZCBhIG5ld2xpbmUgZm9yIGVhc3kgcmVhZGluZy4KCnJvb3RAc3l6 a2FsbGVyOn4jIGNhdCAvc3lzL2RldmljZXMvdmlydHVhbC9uZXQvbG8vcXVldWVzL3R4LTAvdHhf dGltZW91dAowcm9vdEBzeXprYWxsZXI6fiMKClNpZ25lZC1vZmYtYnk6IFhpb25nZmVuZyBXYW5n IDx3YW5neGlvbmdmZW5nMkBodWF3ZWkuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxs ZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2NvcmUvbmV0LXN5c2ZzLmMgfCAyICst CiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1n aXQgYS9uZXQvY29yZS9uZXQtc3lzZnMuYyBiL25ldC9jb3JlL25ldC1zeXNmcy5jCmluZGV4IDQ3 NzNhZDZlYzExMS4uZjY3ZjVjYTM5ZDYzIDEwMDY0NAotLS0gYS9uZXQvY29yZS9uZXQtc3lzZnMu YworKysgYi9uZXQvY29yZS9uZXQtc3lzZnMuYwpAQCAtMTA3Nyw3ICsxMDc3LDcgQEAgc3RhdGlj IHNzaXplX3QgdHhfdGltZW91dF9zaG93KHN0cnVjdCBuZXRkZXZfcXVldWUgKnF1ZXVlLCBjaGFy ICpidWYpCiAJdHJhbnNfdGltZW91dCA9IHF1ZXVlLT50cmFuc190aW1lb3V0OwogCXNwaW5fdW5s b2NrX2lycSgmcXVldWUtPl94bWl0X2xvY2spOwogCi0JcmV0dXJuIHNwcmludGYoYnVmLCAiJWx1 IiwgdHJhbnNfdGltZW91dCk7CisJcmV0dXJuIHNwcmludGYoYnVmLCBmbXRfdWxvbmcsIHRyYW5z X3RpbWVvdXQpOwogfQogCiBzdGF0aWMgdW5zaWduZWQgaW50IGdldF9uZXRkZXZfcXVldWVfaW5k ZXgoc3RydWN0IG5ldGRldl9xdWV1ZSAqcXVldWUpCi0tIAoyLjI2LjIKCgpGcm9tIGJmNzg2ZjIw ZTFlYzg1YTM4Zjg3ODFmMzNmYzllNmE0M2EzYzgwOGQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IE1pYW9oZSBMaW4gPGxpbm1pYW9oZUBodWF3ZWkuY29tPgpEYXRlOiBUdWUsIDIxIEp1 bCAyMDIwIDE3OjExOjQ0ICswODAwClN1YmplY3Q6IFtQQVRDSCAxNi8zOF0gbmV0OiB1ZHA6IEZp eCB3cm9uZyBjbGVhbiB1cCBmb3IgSVNfVURQTElURSBtYWNybwoKWyBVcHN0cmVhbSBjb21taXQg YjBhNDIyNzcyZmVjMjk4MTFlMjkzYzdjMGU2Zjk5MWMwZmQ5MjQxZCBdCgpXZSBjYW4ndCB1c2Ug SVNfVURQTElURSB0byByZXBsYWNlIHVkcF9zay0+cGNmbGFnIHdoZW4gVURQTElURV9SRUNWX0ND IGlzCmNoZWNrZWQuCgpGaXhlczogYjJiZjFlMjY1OWIxICgiW1VEUF06IENsZWFuIHVwIGZvciBJ U19VRFBMSVRFIG1hY3JvIikKU2lnbmVkLW9mZi1ieTogTWlhb2hlIExpbiA8bGlubWlhb2hlQGh1 YXdlaS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0 Lm5ldD4KLS0tCiBuZXQvaXB2NC91ZHAuYyB8IDIgKy0KIG5ldC9pcHY2L3VkcC5jIHwgMiArLQog MiBmaWxlcyBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvbmV0L2lwdjQvdWRwLmMgYi9uZXQvaXB2NC91ZHAuYwppbmRleCAzMjU2NGIzNTA4MjMu LmEyNzk1MmJlZDJkMyAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvdWRwLmMKKysrIGIvbmV0L2lwdjQv dWRwLmMKQEAgLTIwNDgsNyArMjA0OCw3IEBAIHN0YXRpYyBpbnQgdWRwX3F1ZXVlX3Jjdl9vbmVf c2tiKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYikKIAkvKgogCSAqIAlVRFAt TGl0ZSBzcGVjaWZpYyB0ZXN0cywgaWdub3JlZCBvbiBVRFAgc29ja2V0cwogCSAqLwotCWlmICgo aXNfdWRwbGl0ZSAmIFVEUExJVEVfUkVDVl9DQykgICYmICBVRFBfU0tCX0NCKHNrYiktPnBhcnRp YWxfY292KSB7CisJaWYgKCh1cC0+cGNmbGFnICYgVURQTElURV9SRUNWX0NDKSAgJiYgIFVEUF9T S0JfQ0Ioc2tiKS0+cGFydGlhbF9jb3YpIHsKIAogCQkvKgogCQkgKiBNSUIgc3RhdGlzdGljcyBv dGhlciB0aGFuIGluY3JlbWVudGluZyB0aGUgZXJyb3IgY291bnQgYXJlCmRpZmYgLS1naXQgYS9u ZXQvaXB2Ni91ZHAuYyBiL25ldC9pcHY2L3VkcC5jCmluZGV4IDdkNDE1MTc0NzM0MC4uMTE2NGRm ZTUzYmIzIDEwMDY0NAotLS0gYS9uZXQvaXB2Ni91ZHAuYworKysgYi9uZXQvaXB2Ni91ZHAuYwpA QCAtNjQzLDcgKzY0Myw3IEBAIHN0YXRpYyBpbnQgdWRwdjZfcXVldWVfcmN2X29uZV9za2Ioc3Ry dWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCS8qCiAJICogVURQLUxpdGUgc3Bl Y2lmaWMgdGVzdHMsIGlnbm9yZWQgb24gVURQIHNvY2tldHMgKHNlZSBuZXQvaXB2NC91ZHAuYyku CiAJICovCi0JaWYgKChpc191ZHBsaXRlICYgVURQTElURV9SRUNWX0NDKSAgJiYgIFVEUF9TS0Jf Q0Ioc2tiKS0+cGFydGlhbF9jb3YpIHsKKwlpZiAoKHVwLT5wY2ZsYWcgJiBVRFBMSVRFX1JFQ1Zf Q0MpICAmJiAgVURQX1NLQl9DQihza2IpLT5wYXJ0aWFsX2NvdikgewogCiAJCWlmICh1cC0+cGNy bGVuID09IDApIHsgICAgICAgICAgLyogZnVsbCBjb3ZlcmFnZSB3YXMgc2V0ICAqLwogCQkJbmV0 X2RiZ19yYXRlbGltaXRlZCgiVURQTElURTY6IHBhcnRpYWwgY292ZXJhZ2UgJWQgd2hpbGUgZnVs bCBjb3ZlcmFnZSAlZCByZXF1ZXN0ZWRcbiIsCi0tIAoyLjI2LjIKCgpGcm9tIDkwNGVlYzIxYTFm ZTdiZTE4ZDMzZWEyOWI3Zjk3YTQ3MzM5NDhmODEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IENvbmcgV2FuZyA8eGl5b3Uud2FuZ2NvbmdAZ21haWwuY29tPgpEYXRlOiBGcmksIDI0IEp1 bCAyMDIwIDA5OjQ1OjUxIC0wNzAwClN1YmplY3Q6IFtQQVRDSCAxNy8zOF0gcXJ0cjogb3JwaGFu IHNvY2tldCBpbiBxcnRyX3JlbGVhc2UoKQoKWyBVcHN0cmVhbSBjb21taXQgYWY5ZjY5MWYwZjVi ZGQxYWRlNjVhN2I4NDkyNzYzOTg4MmQ3YzNlNSBdCgpXZSBoYXZlIHRvIGRldGFjaCBzb2NrIGZy b20gc29ja2V0IGluIHFydHJfcmVsZWFzZSgpLApvdGhlcndpc2Ugc2tiLT5zayBtYXkgc3RpbGwg cmVmZXJlbmNlIHRvIHRoaXMgc29ja2V0CndoZW4gdGhlIHNrYiBpcyByZWxlYXNlZCBpbiB0dW4t PnF1ZXVlLCBwYXJ0aWN1bGFybHkKc2stPnNrX3dxIHN0aWxsIHBvaW50cyB0byAmc29jay0+d3Es IHdoaWNoIGxlYWRzIHRvCmEgVUFGLgoKUmVwb3J0ZWQtYW5kLXRlc3RlZC1ieTogc3l6Ym90KzY3 MjBkNjRmMzFjMDgxYzJmNzA4QHN5emthbGxlci5hcHBzcG90bWFpbC5jb20KRml4ZXM6IDI4ZmI0 ZTU5YTQ3ZCAoIm5ldDogcXJ0cjogRXhwb3NlIHR1bm5lbGluZyBlbmRwb2ludCB0byB1c2VyIHNw YWNlIikKQ2M6IEJqb3JuIEFuZGVyc3NvbiA8Ympvcm4uYW5kZXJzc29uQGxpbmFyby5vcmc+CkNj OiBFcmljIER1bWF6ZXQgPGVyaWMuZHVtYXpldEBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IENv bmcgV2FuZyA8eGl5b3Uud2FuZ2NvbmdAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogRXJpYyBEdW1h emV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIg PGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3FydHIvcXJ0ci5jIHwgMSArCiAxIGZpbGUg Y2hhbmdlZCwgMSBpbnNlcnRpb24oKykKCmRpZmYgLS1naXQgYS9uZXQvcXJ0ci9xcnRyLmMgYi9u ZXQvcXJ0ci9xcnRyLmMKaW5kZXggMjRhOGMzYzZkYTBkLi4zMDBhMTA0YjlhMGYgMTAwNjQ0Ci0t LSBhL25ldC9xcnRyL3FydHIuYworKysgYi9uZXQvcXJ0ci9xcnRyLmMKQEAgLTExODAsNiArMTE4 MCw3IEBAIHN0YXRpYyBpbnQgcXJ0cl9yZWxlYXNlKHN0cnVjdCBzb2NrZXQgKnNvY2spCiAJCXNr LT5za19zdGF0ZV9jaGFuZ2Uoc2spOwogCiAJc29ja19zZXRfZmxhZyhzaywgU09DS19ERUFEKTsK Kwlzb2NrX29ycGhhbihzayk7CiAJc29jay0+c2sgPSBOVUxMOwogCiAJaWYgKCFzb2NrX2ZsYWco c2ssIFNPQ0tfWkFQUEVEKSkKLS0gCjIuMjYuMgoKCkZyb20gODZkNTA4YzBjZmM1MWNjYzQ0MzU3 ZTJiNTQxYjdiNjM1MTE2ODIyZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogV2VpbG9u ZyBDaGVuIDxjaGVud2VpbG9uZ0BodWF3ZWkuY29tPgpEYXRlOiBXZWQsIDE1IEp1bCAyMDIwIDIw OjU4OjEwICswODAwClN1YmplY3Q6IFtQQVRDSCAxOC8zOF0gcnRuZXRsaW5rOiBGaXggbWVtb3J5 KG5ldF9kZXZpY2UpIGxlYWsgd2hlbiAtPm5ld2xpbmsKIGZhaWxzCgpbIFVwc3RyZWFtIGNvbW1p dCBjZWJiNjk3NTRmMzdkNjhlMTM1NWE1ZTcyNmZkYWMzMTdiY2RhMzAyIF0KCldoZW4gdmxhbl9u ZXdsaW5rIGNhbGwgcmVnaXN0ZXJfdmxhbl9kZXYgZmFpbHMsIGl0IG1pZ2h0IHJldHVybiBlcnJv cgp3aXRoIGRldi0+cmVnX3N0YXRlID0gTkVUUkVHX1VOUkVHSVNURVJFRC4gVGhlIHJ0bmxfbmV3 bGluayBzaG91bGQKZnJlZSB0aGUgbWVtb3J5LiBCdXQgY3VycmVudGx5IHJ0bmxfbmV3bGluayBv bmx5IGZyZWUgdGhlIG1lbW9yeSB3aGljaApzdGF0ZSBpcyBORVRSRUdfVU5JTklUSUFMSVpFRC4K CkJVRzogbWVtb3J5IGxlYWsKdW5yZWZlcmVuY2VkIG9iamVjdCAweGZmZmY4ODgxMDUxZGUwMDAg KHNpemUgNDA5Nik6CiAgY29tbSAic3l6LWV4ZWN1dG9yMTM5IiwgcGlkIDU2MCwgamlmZmllcyA0 Mjk0NzQ1MzQ2IChhZ2UgMzIuNDQ1cykKICBoZXggZHVtcCAoZmlyc3QgMzIgYnl0ZXMpOgogICAg NzYgNmMgNjEgNmUgMzIgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgIHZsYW4yLi4u Li4uLi4uLi4KICAgIDAwIDQ1IDI4IDAzIDgxIDg4IGZmIGZmIDAwIDAwIDAwIDAwIDAwIDAwIDAw IDAwICAuRSguLi4uLi4uLi4uLi4uCiAgYmFja3RyYWNlOgogICAgWzwwMDAwMDAwMDQ3NTI3ZTMx Pl0ga21hbGxvY19ub2RlIGluY2x1ZGUvbGludXgvc2xhYi5oOjU3OCBbaW5saW5lXQogICAgWzww MDAwMDAwMDQ3NTI3ZTMxPl0ga3ZtYWxsb2Nfbm9kZSsweDMzLzB4ZDAgbW0vdXRpbC5jOjU3NAog ICAgWzwwMDAwMDAwMDJiNTllM2JjPl0ga3ZtYWxsb2MgaW5jbHVkZS9saW51eC9tbS5oOjc1MyBb aW5saW5lXQogICAgWzwwMDAwMDAwMDJiNTllM2JjPl0ga3Z6YWxsb2MgaW5jbHVkZS9saW51eC9t bS5oOjc2MSBbaW5saW5lXQogICAgWzwwMDAwMDAwMDJiNTllM2JjPl0gYWxsb2NfbmV0ZGV2X21x cysweDgzLzB4ZDkwIG5ldC9jb3JlL2Rldi5jOjk5MjkKICAgIFs8MDAwMDAwMDA2MDc2NzUyYT5d IHJ0bmxfY3JlYXRlX2xpbmsrMHgyYzAvMHhhMjAgbmV0L2NvcmUvcnRuZXRsaW5rLmM6MzA2Nwog ICAgWzwwMDAwMDAwMDU3MmIzYmU1Pl0gX19ydG5sX25ld2xpbmsrMHhjOWMvMHgxMzMwIG5ldC9j b3JlL3J0bmV0bGluay5jOjMzMjkKICAgIFs8MDAwMDAwMDBlODRlYTU1Mz5dIHJ0bmxfbmV3bGlu aysweDY2LzB4OTAgbmV0L2NvcmUvcnRuZXRsaW5rLmM6MzM5NwogICAgWzwwMDAwMDAwMDUyYzdj MGE5Pl0gcnRuZXRsaW5rX3Jjdl9tc2crMHg1NDAvMHg5OTAgbmV0L2NvcmUvcnRuZXRsaW5rLmM6 NTQ2MAogICAgWzwwMDAwMDAwMDRiNWNiMzc5Pl0gbmV0bGlua19yY3Zfc2tiKzB4MTJiLzB4M2Ew IG5ldC9uZXRsaW5rL2FmX25ldGxpbmsuYzoyNDY5CiAgICBbPDAwMDAwMDAwYzcxYzIwZDM+XSBu ZXRsaW5rX3VuaWNhc3Rfa2VybmVsIG5ldC9uZXRsaW5rL2FmX25ldGxpbmsuYzoxMzAzIFtpbmxp bmVdCiAgICBbPDAwMDAwMDAwYzcxYzIwZDM+XSBuZXRsaW5rX3VuaWNhc3QrMHg0YzYvMHg2OTAg bmV0L25ldGxpbmsvYWZfbmV0bGluay5jOjEzMjkKICAgIFs8MDAwMDAwMDBjY2E3MmZhOT5dIG5l dGxpbmtfc2VuZG1zZysweDczNS8weGNjMCBuZXQvbmV0bGluay9hZl9uZXRsaW5rLmM6MTkxOAog ICAgWzwwMDAwMDAwMDkyMjFlYmY3Pl0gc29ja19zZW5kbXNnX25vc2VjIG5ldC9zb2NrZXQuYzo2 NTIgW2lubGluZV0KICAgIFs8MDAwMDAwMDA5MjIxZWJmNz5dIHNvY2tfc2VuZG1zZysweDEwOS8w eDE0MCBuZXQvc29ja2V0LmM6NjcyCiAgICBbPDAwMDAwMDAwMWMzMGZmZTQ+XSBfX19fc3lzX3Nl bmRtc2crMHg1ZjUvMHg3ODAgbmV0L3NvY2tldC5jOjIzNTIKICAgIFs8MDAwMDAwMDBiNzFjYTZm Mz5dIF9fX3N5c19zZW5kbXNnKzB4MTFkLzB4MWEwIG5ldC9zb2NrZXQuYzoyNDA2CiAgICBbPDAw MDAwMDAwMDcyOTczODQ+XSBfX3N5c19zZW5kbXNnKzB4ZWIvMHgxYjAgbmV0L3NvY2tldC5jOjI0 MzkKICAgIFs8MDAwMDAwMDAwZWIyOWIxMT5dIGRvX3N5c2NhbGxfNjQrMHg1Ni8weGEwIGFyY2gv eDg2L2VudHJ5L2NvbW1vbi5jOjM1OQogICAgWzwwMDAwMDAwMDY4MzliNGQwPl0gZW50cnlfU1lT Q0FMTF82NF9hZnRlcl9od2ZyYW1lKzB4NDQvMHhhOQoKRml4ZXM6IGNiNjI2YmY1NjZlYiAoIm5l dC1zeXNmczogRml4IHJlZmVyZW5jZSBjb3VudCBsZWFrIikKUmVwb3J0ZWQtYnk6IEh1bGsgUm9i b3QgPGh1bGtjaUBodWF3ZWkuY29tPgpTaWduZWQtb2ZmLWJ5OiBXZWlsb25nIENoZW4gPGNoZW53 ZWlsb25nQGh1YXdlaS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1A ZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvY29yZS9ydG5ldGxpbmsuYyB8IDMgKystCiAxIGZpbGUg Y2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0 L2NvcmUvcnRuZXRsaW5rLmMgYi9uZXQvY29yZS9ydG5ldGxpbmsuYwppbmRleCA3MDllYmJmOGFi NWIuLjc4MzQ1ZTM5ZTU0YSAxMDA2NDQKLS0tIGEvbmV0L2NvcmUvcnRuZXRsaW5rLmMKKysrIGIv bmV0L2NvcmUvcnRuZXRsaW5rLmMKQEAgLTMzMzcsNyArMzMzNyw4IEBAIHN0YXRpYyBpbnQgX19y dG5sX25ld2xpbmsoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5sbXNnaGRyICpubGgsCiAJ CSAqLwogCQlpZiAoZXJyIDwgMCkgewogCQkJLyogSWYgZGV2aWNlIGlzIG5vdCByZWdpc3RlcmVk IGF0IGFsbCwgZnJlZSBpdCBub3cgKi8KLQkJCWlmIChkZXYtPnJlZ19zdGF0ZSA9PSBORVRSRUdf VU5JTklUSUFMSVpFRCkKKwkJCWlmIChkZXYtPnJlZ19zdGF0ZSA9PSBORVRSRUdfVU5JTklUSUFM SVpFRCB8fAorCQkJICAgIGRldi0+cmVnX3N0YXRlID09IE5FVFJFR19VTlJFR0lTVEVSRUQpCiAJ CQkJZnJlZV9uZXRkZXYoZGV2KTsKIAkJCWdvdG8gb3V0OwogCQl9Ci0tIAoyLjI2LjIKCgpGcm9t IDkwNjVhMTVmMTUyZmU5OGMyM2I2MGI1OTVjNTE1NTc0NmQ5MDMyYzkgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IERhdmlkIEhvd2VsbHMgPGRob3dlbGxzQHJlZGhhdC5jb20+CkRhdGU6 IE1vbiwgMjAgSnVsIDIwMjAgMTI6NDE6NDYgKzAxMDAKU3ViamVjdDogW1BBVENIIDE5LzM4XSBy eHJwYzogRml4IHNlbmRtc2coKSByZXR1cm5pbmcgRVBJUEUgZHVlIHRvIHJlY3Ztc2coKQogcmV0 dXJuaW5nIEVOT0RBVEEKClsgVXBzdHJlYW0gY29tbWl0IDYzOWYxODFmMGVlMjBkMzI0OWRiYzU1 Zjc0MGYwMTY3MjY3MTgwZjAgXQoKcnhycGNfc2VuZG1zZygpIHJldHVybnMgRVBJUEUgaWYgdGhl cmUncyBhbiBvdXRzdGFuZGluZyBlcnJvciwgc3VjaCBhcyBpZgpyeHJwY19yZWN2bXNnKCkgaW5k aWNhdGluZyBFTk9EQVRBIGlmIHRoZXJlJ3Mgbm90aGluZyBmb3IgaXQgdG8gcmVhZC4KCkNoYW5n ZSByeHJwY19yZWN2bXNnKCkgdG8gcmV0dXJuIEVBR0FJTiBpbnN0ZWFkIGlmIHRoZXJlJ3Mgbm90 aGluZyB0byByZWFkCmFzIHRoaXMgcGFydGljdWxhciBlcnJvciBkb2Vzbid0IGdldCBzdG9yZWQg aW4gLT5za19lcnIgYnkgdGhlIG5ldHdvcmtpbmcKY29yZS4KCkFsc28gY2hhbmdlIHJ4cnBjX3Nl bmRtc2coKSBzbyB0aGF0IGl0IGRvZXNuJ3QgZmFpbCB3aXRoIGRlbGF5ZWQgcmVjZWl2ZQplcnJv cnMgKHRoZXJlJ3Mgbm8gd2F5IGZvciBpdCB0byByZXBvcnQgd2hpY2ggY2FsbCwgaWYgYW55LCB0 aGUgZXJyb3Igd2FzCmNhdXNlZCBieSkuCgpGaXhlczogMTc5MjZhNzkzMjBhICgiW0FGX1JYUlBD XTogUHJvdmlkZSBzZWN1cmUgUnhSUEMgc29ja2V0cyBmb3IgdXNlIGJ5IHVzZXJzcGFjZSBhbmQg a2VybmVsIGJvdGgiKQpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBIb3dlbGxzIDxkaG93ZWxsc0ByZWRo YXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5u ZXQ+Ci0tLQogbmV0L3J4cnBjL3JlY3Ztc2cuYyB8IDIgKy0KIG5ldC9yeHJwYy9zZW5kbXNnLmMg fCAyICstCiAyIGZpbGVzIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9uZXQvcnhycGMvcmVjdm1zZy5jIGIvbmV0L3J4cnBjL3JlY3Ztc2cuYwpp bmRleCA4NTc4YzM5ZWM4MzkuLjY4OTZhMzNlZjg0MiAxMDA2NDQKLS0tIGEvbmV0L3J4cnBjL3Jl Y3Ztc2cuYworKysgYi9uZXQvcnhycGMvcmVjdm1zZy5jCkBAIC00NjQsNyArNDY0LDcgQEAgaW50 IHJ4cnBjX3JlY3Ztc2coc3RydWN0IHNvY2tldCAqc29jaywgc3RydWN0IG1zZ2hkciAqbXNnLCBz aXplX3QgbGVuLAogCSAgICBsaXN0X2VtcHR5KCZyeC0+cmVjdm1zZ19xKSAmJgogCSAgICByeC0+ c2suc2tfc3RhdGUgIT0gUlhSUENfU0VSVkVSX0xJU1RFTklORykgewogCQlyZWxlYXNlX3NvY2so JnJ4LT5zayk7Ci0JCXJldHVybiAtRU5PREFUQTsKKwkJcmV0dXJuIC1FQUdBSU47CiAJfQogCiAJ aWYgKGxpc3RfZW1wdHkoJnJ4LT5yZWN2bXNnX3EpKSB7CmRpZmYgLS1naXQgYS9uZXQvcnhycGMv c2VuZG1zZy5jIGIvbmV0L3J4cnBjL3NlbmRtc2cuYwppbmRleCA1ZTljNDNkNGEzMTQuLjQ5ZDAz YzhjNjRkYSAxMDA2NDQKLS0tIGEvbmV0L3J4cnBjL3NlbmRtc2cuYworKysgYi9uZXQvcnhycGMv c2VuZG1zZy5jCkBAIC0zMDYsNyArMzA2LDcgQEAgc3RhdGljIGludCByeHJwY19zZW5kX2RhdGEo c3RydWN0IHJ4cnBjX3NvY2sgKnJ4LAogCS8qIHRoaXMgc2hvdWxkIGJlIGluIHBvbGwgKi8KIAlz a19jbGVhcl9iaXQoU09DS1dRX0FTWU5DX05PU1BBQ0UsIHNrKTsKIAotCWlmIChzay0+c2tfZXJy IHx8IChzay0+c2tfc2h1dGRvd24gJiBTRU5EX1NIVVRET1dOKSkKKwlpZiAoc2stPnNrX3NodXRk b3duICYgU0VORF9TSFVURE9XTikKIAkJcmV0dXJuIC1FUElQRTsKIAogCW1vcmUgPSBtc2ctPm1z Z19mbGFncyAmIE1TR19NT1JFOwotLSAKMi4yNi4yCgoKRnJvbSAzZTVlNDQ2MDYyMzBlZTFhM2E4 MTY2ZDAwNTRiMTYzMmRiZjJhMWFlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBZdWNo dW5nIENoZW5nIDx5Y2hlbmdAZ29vZ2xlLmNvbT4KRGF0ZTogVGh1LCAyMyBKdWwgMjAyMCAxMjow MDowNiAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMjAvMzhdIHRjcDogYWxsb3cgYXQgbW9zdCBvbmUg VExQIHByb2JlIHBlciBmbGlnaHQKClsgVXBzdHJlYW0gY29tbWl0IDc2YmU5M2ZjMDcwMjMyMjE3 OWJiMGVhODcyOTVkODIwZWU0NmFkMTQgXQoKUHJldmlvdXNseSBUTFAgbWF5IHNlbmQgbXVsdGlw bGUgcHJvYmVzIG9mIG5ldyBkYXRhIGluIG9uZQpmbGlnaHQuIFRoaXMgaGFwcGVucyB3aGVuIHRo ZSBzZW5kZXIgaXMgY3duZCBsaW1pdGVkLiBBZnRlciB0aGUKaW5pdGlhbCBUTFAgY29udGFpbmlu ZyBuZXcgZGF0YSBpcyBzZW50LCB0aGUgc2VuZGVyIHJlY2VpdmVzIGFub3RoZXIKQUNLIHRoYXQg YWNrcyBwYXJ0aWFsIGluZmxpZ2h0LiAgSXQgbWF5IHJlLWFybSBhbm90aGVyIFRMUCB0aW1lcgp0 byBzZW5kIG1vcmUsIGlmIG5vIGZ1cnRoZXIgQUNLIHJldHVybnMgYmVmb3JlIHRoZSBuZXh0IFRM UCB0aW1lb3V0CihQVE8pIGV4cGlyZXMuIFRoZSBzZW5kZXIgbWF5IHNlbmQgaW4gdGhlb3J5IGEg bGFyZ2UgYW1vdW50IG9mIFRMUAp1bnRpbCBzZW5kIHF1ZXVlIGlzIGRlcGxldGVkLiBUaGlzIG9u bHkgaGFwcGVucyBpZiB0aGUgc2VuZGVyIHNlZXMKc3VjaCBpcnJlZ3VsYXIgdW5jb21tb24gQUNL IHBhdHRlcm4uIEJ1dCBpdCBpcyBnZW5lcmFsbHkgdW5kZXNpcmFibGUKYmVoYXZpb3IgZHVyaW5n IGNvbmdlc3Rpb24gZXNwZWNpYWxseS4KClRoZSBvcmlnaW5hbCBUTFAgZGVzaWduIHJlc3RyaWN0 IG9ubHkgb25lIFRMUCBwcm9iZSBwZXIgaW5mbGlnaHQgYXMKcHVibGlzaGVkIGluICJSZWR1Y2lu ZyBXZWIgTGF0ZW5jeTogdGhlIFZpcnR1ZSBvZiBHZW50bGUgQWdncmVzc2lvbiIsClNJR0NPTU0g MjAxMy4gVGhpcyBwYXRjaCBjaGFuZ2VzIFRMUCB0byBzZW5kIGF0IG1vc3Qgb25lIHByb2JlCnBl ciBpbmZsaWdodC4KCk5vdGUgdGhhdCBpZiB0aGUgc2VuZGVyIGlzIGFwcC1saW1pdGVkLCBUTFAg cmV0cmFuc21pdHMgb2xkIGRhdGEKYW5kIGRpZCBub3QgaGF2ZSB0aGlzIGlzc3VlLgoKU2lnbmVk LW9mZi1ieTogWXVjaHVuZyBDaGVuZyA8eWNoZW5nQGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6 IE5lYWwgQ2FyZHdlbGwgPG5jYXJkd2VsbEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBFcmlj IER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1p bGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNsdWRlL2xpbnV4L3RjcC5oICAgfCAg NCArKystCiBuZXQvaXB2NC90Y3BfaW5wdXQuYyAgfCAxMSArKysrKystLS0tLQogbmV0L2lwdjQv dGNwX291dHB1dC5jIHwgMTMgKysrKysrKystLS0tLQogMyBmaWxlcyBjaGFuZ2VkLCAxNyBpbnNl cnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3Rj cC5oIGIvaW5jbHVkZS9saW51eC90Y3AuaAppbmRleCA0ZjgxNTllOTBjZTEuLjBiYmE1ODJlODNj YSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC90Y3AuaAorKysgYi9pbmNsdWRlL2xpbnV4L3Rj cC5oCkBAIC0yMTcsNiArMjE3LDggQEAgc3RydWN0IHRjcF9zb2NrIHsKIAl9IHJhY2s7CiAJdTE2 CWFkdm1zczsJCS8qIEFkdmVydGlzZWQgTVNTCQkJKi8KIAl1OAljb21wcmVzc2VkX2FjazsKKwl1 OAl0bHBfcmV0cmFuczoxLAkvKiBUTFAgaXMgYSByZXRyYW5zbWlzc2lvbiAqLworCQl1bnVzZWQ6 NzsKIAl1MzIJY2hyb25vX3N0YXJ0OwkvKiBTdGFydCB0aW1lIGluIGppZmZpZXMgb2YgYSBUQ1Ag Y2hyb25vICovCiAJdTMyCWNocm9ub19zdGF0WzNdOwkvKiBUaW1lIGluIGppZmZpZXMgZm9yIGNo cm9ub19zdGF0IHN0YXRzICovCiAJdTgJY2hyb25vX3R5cGU6MiwJLyogY3VycmVudCBjaHJvbm9n cmFwaCB0eXBlICovCkBAIC0yMzksNyArMjQxLDcgQEAgc3RydWN0IHRjcF9zb2NrIHsKIAkJc2F2 ZV9zeW46MSwJLyogU2F2ZSBoZWFkZXJzIG9mIFNZTiBwYWNrZXQgKi8KIAkJaXNfY3duZF9saW1p dGVkOjEsLyogZm9yd2FyZCBwcm9ncmVzcyBsaW1pdGVkIGJ5IHNuZF9jd25kPyAqLwogCQlzeW5f c21jOjE7CS8qIFNZTiBpbmNsdWRlcyBTTUMgKi8KLQl1MzIJdGxwX2hpZ2hfc2VxOwkvKiBzbmRf bnh0IGF0IHRoZSB0aW1lIG9mIFRMUCByZXRyYW5zbWl0LiAqLworCXUzMgl0bHBfaGlnaF9zZXE7 CS8qIHNuZF9ueHQgYXQgdGhlIHRpbWUgb2YgVExQICovCiAKIAl1MzIJdGNwX3R4X2RlbGF5Owkv KiBkZWxheSAoaW4gdXNlYykgYWRkZWQgdG8gVFggcGFja2V0cyAqLwogCXU2NAl0Y3Bfd3N0YW1w X25zOwkvKiBkZXBhcnR1cmUgdGltZSBmb3IgbmV4dCBzZW50IGRhdGEgcGFja2V0ICovCmRpZmYg LS1naXQgYS9uZXQvaXB2NC90Y3BfaW5wdXQuYyBiL25ldC9pcHY0L3RjcF9pbnB1dC5jCmluZGV4 IDMxYzU4ZTAwZDI1Yi4uMzJhYzY2YThjNjU3IDEwMDY0NAotLS0gYS9uZXQvaXB2NC90Y3BfaW5w dXQuYworKysgYi9uZXQvaXB2NC90Y3BfaW5wdXQuYwpAQCAtMzUwNiwxMCArMzUwNiw4IEBAIHN0 YXRpYyB2b2lkIHRjcF9yZXBsYWNlX3RzX3JlY2VudChzdHJ1Y3QgdGNwX3NvY2sgKnRwLCB1MzIg c2VxKQogCX0KIH0KIAotLyogVGhpcyByb3V0aW5lIGRlYWxzIHdpdGggYWNrcyBkdXJpbmcgYSBU TFAgZXBpc29kZS4KLSAqIFdlIG1hcmsgdGhlIGVuZCBvZiBhIFRMUCBlcGlzb2RlIG9uIHJlY2Vp dmluZyBUTFAgZHVwYWNrIG9yIHdoZW4KLSAqIGFjayBpcyBhZnRlciB0bHBfaGlnaF9zZXEuCi0g KiBSZWY6IGxvc3MgZGV0ZWN0aW9uIGFsZ29yaXRobSBpbiBkcmFmdC1kdWtraXBhdGktdGNwbS10 Y3AtbG9zcy1wcm9iZS4KKy8qIFRoaXMgcm91dGluZSBkZWFscyB3aXRoIGFja3MgZHVyaW5nIGEg VExQIGVwaXNvZGUgYW5kIGVuZHMgYW4gZXBpc29kZSBieQorICogcmVzZXR0aW5nIHRscF9oaWdo X3NlcS4gUmVmOiBUTFAgYWxnb3JpdGhtIGluIGRyYWZ0LWlldGYtdGNwbS1yYWNrCiAgKi8KIHN0 YXRpYyB2b2lkIHRjcF9wcm9jZXNzX3RscF9hY2soc3RydWN0IHNvY2sgKnNrLCB1MzIgYWNrLCBp bnQgZmxhZykKIHsKQEAgLTM1MTgsNyArMzUxNiwxMCBAQCBzdGF0aWMgdm9pZCB0Y3BfcHJvY2Vz c190bHBfYWNrKHN0cnVjdCBzb2NrICpzaywgdTMyIGFjaywgaW50IGZsYWcpCiAJaWYgKGJlZm9y ZShhY2ssIHRwLT50bHBfaGlnaF9zZXEpKQogCQlyZXR1cm47CiAKLQlpZiAoZmxhZyAmIEZMQUdf RFNBQ0tJTkdfQUNLKSB7CisJaWYgKCF0cC0+dGxwX3JldHJhbnMpIHsKKwkJLyogVExQIG9mIG5l dyBkYXRhIGhhcyBiZWVuIGFja25vd2xlZGdlZCAqLworCQl0cC0+dGxwX2hpZ2hfc2VxID0gMDsK Kwl9IGVsc2UgaWYgKGZsYWcgJiBGTEFHX0RTQUNLSU5HX0FDSykgewogCQkvKiBUaGlzIERTQUNL IG1lYW5zIG9yaWdpbmFsIGFuZCBUTFAgcHJvYmUgYXJyaXZlZDsgbm8gbG9zcyAqLwogCQl0cC0+ dGxwX2hpZ2hfc2VxID0gMDsKIAl9IGVsc2UgaWYgKGFmdGVyKGFjaywgdHAtPnRscF9oaWdoX3Nl cSkpIHsKZGlmZiAtLWdpdCBhL25ldC9pcHY0L3RjcF9vdXRwdXQuYyBiL25ldC9pcHY0L3RjcF9v dXRwdXQuYwppbmRleCBiZWUyZjliOGI4YTEuLmIxYzI0ODRiNDMxNCAxMDA2NDQKLS0tIGEvbmV0 L2lwdjQvdGNwX291dHB1dC5jCisrKyBiL25ldC9pcHY0L3RjcF9vdXRwdXQuYwpAQCAtMjYyNSw2 ICsyNjI1LDExIEBAIHZvaWQgdGNwX3NlbmRfbG9zc19wcm9iZShzdHJ1Y3Qgc29jayAqc2spCiAJ aW50IHBjb3VudDsKIAlpbnQgbXNzID0gdGNwX2N1cnJlbnRfbXNzKHNrKTsKIAorCS8qIEF0IG1v c3Qgb25lIG91dHN0YW5kaW5nIFRMUCAqLworCWlmICh0cC0+dGxwX2hpZ2hfc2VxKQorCQlnb3Rv IHJlYXJtX3RpbWVyOworCisJdHAtPnRscF9yZXRyYW5zID0gMDsKIAlza2IgPSB0Y3Bfc2VuZF9o ZWFkKHNrKTsKIAlpZiAoc2tiICYmIHRjcF9zbmRfd25kX3Rlc3QodHAsIHNrYiwgbXNzKSkgewog CQlwY291bnQgPSB0cC0+cGFja2V0c19vdXQ7CkBAIC0yNjQyLDEwICsyNjQ3LDYgQEAgdm9pZCB0 Y3Bfc2VuZF9sb3NzX3Byb2JlKHN0cnVjdCBzb2NrICpzaykKIAkJcmV0dXJuOwogCX0KIAotCS8q IEF0IG1vc3Qgb25lIG91dHN0YW5kaW5nIFRMUCByZXRyYW5zbWlzc2lvbi4gKi8KLQlpZiAodHAt PnRscF9oaWdoX3NlcSkKLQkJZ290byByZWFybV90aW1lcjsKLQogCWlmIChza2Jfc3RpbGxfaW5f aG9zdF9xdWV1ZShzaywgc2tiKSkKIAkJZ290byByZWFybV90aW1lcjsKIApAQCAtMjY2NywxMCAr MjY2OCwxMiBAQCB2b2lkIHRjcF9zZW5kX2xvc3NfcHJvYmUoc3RydWN0IHNvY2sgKnNrKQogCWlm IChfX3RjcF9yZXRyYW5zbWl0X3NrYihzaywgc2tiLCAxKSkKIAkJZ290byByZWFybV90aW1lcjsK IAorCXRwLT50bHBfcmV0cmFucyA9IDE7CisKK3Byb2JlX3NlbnQ6CiAJLyogUmVjb3JkIHNuZF9u eHQgZm9yIGxvc3MgZGV0ZWN0aW9uLiAqLwogCXRwLT50bHBfaGlnaF9zZXEgPSB0cC0+c25kX254 dDsKIAotcHJvYmVfc2VudDoKIAlORVRfSU5DX1NUQVRTKHNvY2tfbmV0KHNrKSwgTElOVVhfTUlC X1RDUExPU1NQUk9CRVMpOwogCS8qIFJlc2V0IHMudC4gdGNwX3JlYXJtX3J0byB3aWxsIHJlc3Rh cnQgdGltZXIgZnJvbSBub3cgKi8KIAlpbmV0X2NzayhzayktPmljc2tfcGVuZGluZyA9IDA7Ci0t IAoyLjI2LjIKCgpGcm9tIDJkNjM3YzUzMDIzYmFlYzhmMGQyZDdlOGUyZDkzMzc5ODU5ZjBmZmYg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbiBDYXJwZW50ZXIgPGRhbi5jYXJwZW50 ZXJAb3JhY2xlLmNvbT4KRGF0ZTogVGh1LCAyMyBKdWwgMjAyMCAxNzo0OTo1NyArMDMwMApTdWJq ZWN0OiBbUEFUQ0ggMjEvMzhdIEFYLjI1OiBQcmV2ZW50IGludGVnZXIgb3ZlcmZsb3dzIGluIGNv bm5lY3QgYW5kIHNlbmRtc2cKClsgVXBzdHJlYW0gY29tbWl0IDE3YWQ3M2U5NDFiNzFmM2JlYzc1 MjNlYTRlOWNiYzM3NTI0NjFjMmQgXQoKV2UgcmVjZW50bHkgYWRkZWQgc29tZSBib3VuZHMgY2hl Y2tpbmcgaW4gYXgyNV9jb25uZWN0KCkgYW5kCmF4MjVfc2VuZG1zZygpIGFuZCB3ZSBzbyB3ZSBy ZW1vdmVkIHRoZSBBWDI1X01BWF9ESUdJUyBjaGVja3MgYmVjYXVzZQp0aGV5IHdlcmUgbm8gbG9u Z2VyIHJlcXVpcmVkLgoKVW5mb3J0dW5hdGVseSwgSSBiZWxpZXZlIHRoZXkgYXJlIHJlcXVpcmVk IHRvIHByZXZlbnQgaW50ZWdlciBvdmVyZmxvd3MKc28gSSBoYXZlIGFkZGVkIHRoZW0gYmFjay4K CkZpeGVzOiA4ODg1YmIwNjIxZjAgKCJBWC4yNTogUHJldmVudCBvdXQtb2YtYm91bmRzIHJlYWQg aW4gYXgyNV9zZW5kbXNnKCkiKQpGaXhlczogMmYyYTdmZmFkNWM2ICgiQVguMjU6IEZpeCBvdXQt b2YtYm91bmRzIHJlYWQgaW4gYXgyNV9jb25uZWN0KCkiKQpTaWduZWQtb2ZmLWJ5OiBEYW4gQ2Fy cGVudGVyIDxkYW4uY2FycGVudGVyQG9yYWNsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMu IE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvYXgyNS9hZl9heDI1LmMgfCA1 ICsrKystCiAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpk aWZmIC0tZ2l0IGEvbmV0L2F4MjUvYWZfYXgyNS5jIGIvbmV0L2F4MjUvYWZfYXgyNS5jCmluZGV4 IDA4NjJmZTQ5ZDQzNC4uZGVjM2YzNTQ2N2M5IDEwMDY0NAotLS0gYS9uZXQvYXgyNS9hZl9heDI1 LmMKKysrIGIvbmV0L2F4MjUvYWZfYXgyNS5jCkBAIC0xMTg4LDYgKzExODgsNyBAQCBzdGF0aWMg aW50IF9fbXVzdF9jaGVjayBheDI1X2Nvbm5lY3Qoc3RydWN0IHNvY2tldCAqc29jaywKIAkgICAg ZnNhLT5mc2FfYXgyNS5zYXgyNV9uZGlnaXMgIT0gMCkgewogCQkvKiBWYWxpZCBudW1iZXIgb2Yg ZGlnaXBlYXRlcnMgPyAqLwogCQlpZiAoZnNhLT5mc2FfYXgyNS5zYXgyNV9uZGlnaXMgPCAxIHx8 CisJCSAgICBmc2EtPmZzYV9heDI1LnNheDI1X25kaWdpcyA+IEFYMjVfTUFYX0RJR0lTIHx8CiAJ CSAgICBhZGRyX2xlbiA8IHNpemVvZihzdHJ1Y3Qgc29ja2FkZHJfYXgyNSkgKwogCQkgICAgc2l6 ZW9mKGF4MjVfYWRkcmVzcykgKiBmc2EtPmZzYV9heDI1LnNheDI1X25kaWdpcykgewogCQkJZXJy ID0gLUVJTlZBTDsKQEAgLTE1MDksNyArMTUxMCw5IEBAIHN0YXRpYyBpbnQgYXgyNV9zZW5kbXNn KHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVjdCBtc2doZHIgKm1zZywgc2l6ZV90IGxlbikKIAkJ CXN0cnVjdCBmdWxsX3NvY2thZGRyX2F4MjUgKmZzYSA9IChzdHJ1Y3QgZnVsbF9zb2NrYWRkcl9h eDI1ICopdXNheDsKIAogCQkJLyogVmFsaWQgbnVtYmVyIG9mIGRpZ2lwZWF0ZXJzID8gKi8KLQkJ CWlmICh1c2F4LT5zYXgyNV9uZGlnaXMgPCAxIHx8IGFkZHJfbGVuIDwgc2l6ZW9mKHN0cnVjdCBz b2NrYWRkcl9heDI1KSArCisJCQlpZiAodXNheC0+c2F4MjVfbmRpZ2lzIDwgMSB8fAorCQkJICAg IHVzYXgtPnNheDI1X25kaWdpcyA+IEFYMjVfTUFYX0RJR0lTIHx8CisJCQkgICAgYWRkcl9sZW4g PCBzaXplb2Yoc3RydWN0IHNvY2thZGRyX2F4MjUpICsKIAkJCSAgICBzaXplb2YoYXgyNV9hZGRy ZXNzKSAqIHVzYXgtPnNheDI1X25kaWdpcykgewogCQkJCWVyciA9IC1FSU5WQUw7CiAJCQkJZ290 byBvdXQ7Ci0tIAoyLjI2LjIKCgpGcm9tIDNkYjQyYWExZDRhN2RjMGE1NDNlMTE5YTM4ZjQ5NDhl Njc5NDViMTQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFZhc3VuZGhhcmEgVm9sYW0g PHZhc3VuZGhhcmEtdi52b2xhbUBicm9hZGNvbS5jb20+CkRhdGU6IFNhdCwgMTEgSnVsIDIwMjAg MjA6NDg6MjMgLTA0MDAKU3ViamVjdDogW1BBVENIIDIyLzM4XSBibnh0X2VuOiBGaXggcmFjZSB3 aGVuIG1vZGlmeWluZyBwYXVzZSBzZXR0aW5ncy4KClsgVXBzdHJlYW0gY29tbWl0IDE2M2U5ZWY2 MzY0MWEwMmRlNGM5NWNkOTIxNTc3MjY1YzUyZTFjZTIgXQoKVGhlIGRyaXZlciB3YXMgbW9kaWZp ZWQgdG8gbm90IHJlbHkgb24gcnRubCBsb2NrIHRvIHByb3RlY3QgbGluawpzZXR0aW5ncyBhYm91 dCAyIHllYXJzIGFnby4gIFRoZSBwYXVzZSBzZXR0aW5nIHdhcyBtaXNzZWQgd2hlbgptYWtpbmcg dGhhdCBjaGFuZ2UuICBGaXggaXQgYnkgYWNxdWlyaW5nIGxpbmtfbG9jayBtdXRleCBiZWZvcmUK Y2FsbGluZyBibnh0X2h3cm1fc2V0X3BhdXNlKCkuCgpGaXhlczogZTJkYzliNmUzOGZhICgiYm54 dF9lbjogRG9uJ3QgdXNlIHJ0bmwgbG9jayB0byBwcm90ZWN0IGxpbmsgY2hhbmdlIGxvZ2ljIGlu IHdvcmtxdWV1ZS4iKQpTaWduZWQtb2ZmLWJ5OiBWYXN1bmRoYXJhIFZvbGFtIDx2YXN1bmRoYXJh LXYudm9sYW1AYnJvYWRjb20uY29tPgpSZXZpZXdlZC1ieTogRWR3aW4gUGVlciA8ZWR3aW4ucGVl ckBicm9hZGNvbS5jb20+ClNpZ25lZC1vZmYtYnk6IE1pY2hhZWwgQ2hhbiA8bWljaGFlbC5jaGFu QGJyb2FkY29tLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZl bWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueHQvYm54dF9l dGh0b29sLmMgfCA1ICsrKystCiAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCAxIGRl bGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54 dC9ibnh0X2V0aHRvb2wuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueHQvYm54 dF9ldGh0b29sLmMKaW5kZXggMzYwZjlhOTVjMWQ1Li4yMWNjMmJkMTI3NjAgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueHQvYm54dF9ldGh0b29sLmMKKysrIGIv ZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0X2V0aHRvb2wuYwpAQCAtMTY4 Nyw4ICsxNjg3LDExIEBAIHN0YXRpYyBpbnQgYm54dF9zZXRfcGF1c2VwYXJhbShzdHJ1Y3QgbmV0 X2RldmljZSAqZGV2LAogCWlmIChlcGF1c2UtPnR4X3BhdXNlKQogCQlsaW5rX2luZm8tPnJlcV9m bG93X2N0cmwgfD0gQk5YVF9MSU5LX1BBVVNFX1RYOwogCi0JaWYgKG5ldGlmX3J1bm5pbmcoZGV2 KSkKKwlpZiAobmV0aWZfcnVubmluZyhkZXYpKSB7CisJCW11dGV4X2xvY2soJmJwLT5saW5rX2xv Y2spOwogCQlyYyA9IGJueHRfaHdybV9zZXRfcGF1c2UoYnApOworCQltdXRleF91bmxvY2soJmJw LT5saW5rX2xvY2spOworCX0KIAlyZXR1cm4gcmM7CiB9CiAKLS0gCjIuMjYuMgoKCkZyb20gODFm NzUzOGQ1NDhkMTVjMzA0Y2I2NWUzMDVjOWFhYTM3ZTQ3OTdiZSBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogVmFzdW5kaGFyYSBWb2xhbSA8dmFzdW5kaGFyYS12LnZvbGFtQGJyb2FkY29t LmNvbT4KRGF0ZTogU2F0LCAxMSBKdWwgMjAyMCAyMDo0ODoyNCAtMDQwMApTdWJqZWN0OiBbUEFU Q0ggMjMvMzhdIGJueHRfZW46IEluaXQgZXRodG9vbCBsaW5rIHNldHRpbmdzIGFmdGVyIHJlYWRp bmcKIHVwZGF0ZWQgUEhZIGNvbmZpZ3VyYXRpb24uCgpbIFVwc3RyZWFtIGNvbW1pdCBjYTBjNzUz ODE1ZmU0Nzg2Yjc5YTgwYWJmMDQxMmViNWQ1MjA5MGI4IF0KCkluIGEgc2hhcmVkIHBvcnQgUEhZ IGNvbmZpZ3VyYXRpb24sIGFzeW5jIGV2ZW50IGlzIHJlY2VpdmVkIHdoZW4gYW55IG9mIHRoZQpw b3J0IG1vZGlmaWVzIHRoZSBjb25maWd1cmF0aW9uLiBFdGh0b29sIGxpbmsgc2V0dGluZ3Mgc2hv dWxkIGJlCmluaXRpYWxpc2VkIGFmdGVyIHVwZGF0ZWQgUEhZIGNvbmZpZ3VyYXRpb24gZnJvbSBm aXJtd2FyZS4KCkZpeGVzOiBiMTYxM2U3OGU5OGQgKCJibnh0X2VuOiBBZGQgYXN5bmMuIGV2ZW50 IGxvZ2ljIGZvciBQSFkgY29uZmlndXJhdGlvbiBjaGFuZ2VzLiIpClNpZ25lZC1vZmYtYnk6IFZh c3VuZGhhcmEgVm9sYW0gPHZhc3VuZGhhcmEtdi52b2xhbUBicm9hZGNvbS5jb20+ClNpZ25lZC1v ZmYtYnk6IE1pY2hhZWwgQ2hhbiA8bWljaGFlbC5jaGFuQGJyb2FkY29tLmNvbT4KU2lnbmVkLW9m Zi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMv bmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueHQvYm54dC5jIHwgMTAgKysrKystLS0tLQogMSBmaWxl IGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k cml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHQuYyBiL2RyaXZlcnMvbmV0L2V0 aGVybmV0L2Jyb2FkY29tL2JueHQvYm54dC5jCmluZGV4IGI2ZmI1YTE3MDljMC4uMTk4YmNhOWMx ZTJkIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHQu YworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHQuYwpAQCAtMTAz NjIsMTUgKzEwMzYyLDE1IEBAIHN0YXRpYyB2b2lkIGJueHRfc3BfdGFzayhzdHJ1Y3Qgd29ya19z dHJ1Y3QgKndvcmspCiAJCQkJICAgICAgICZicC0+c3BfZXZlbnQpKQogCQkJYm54dF9od3JtX3Bo eV9xY2FwcyhicCk7CiAKLQkJaWYgKHRlc3RfYW5kX2NsZWFyX2JpdChCTlhUX0xJTktfQ0ZHX0NI QU5HRV9TUF9FVkVOVCwKLQkJCQkgICAgICAgJmJwLT5zcF9ldmVudCkpCi0JCQlibnh0X2luaXRf ZXRodG9vbF9saW5rX3NldHRpbmdzKGJwKTsKLQogCQlyYyA9IGJueHRfdXBkYXRlX2xpbmsoYnAs IHRydWUpOwotCQltdXRleF91bmxvY2soJmJwLT5saW5rX2xvY2spOwogCQlpZiAocmMpCiAJCQlu ZXRkZXZfZXJyKGJwLT5kZXYsICJTUCB0YXNrIGNhbid0IHVwZGF0ZSBsaW5rIChyYzogJXgpXG4i LAogCQkJCSAgIHJjKTsKKworCQlpZiAodGVzdF9hbmRfY2xlYXJfYml0KEJOWFRfTElOS19DRkdf Q0hBTkdFX1NQX0VWRU5ULAorCQkJCSAgICAgICAmYnAtPnNwX2V2ZW50KSkKKwkJCWJueHRfaW5p dF9ldGh0b29sX2xpbmtfc2V0dGluZ3MoYnApOworCQltdXRleF91bmxvY2soJmJwLT5saW5rX2xv Y2spOwogCX0KIAlpZiAodGVzdF9hbmRfY2xlYXJfYml0KEJOWFRfVVBEQVRFX1BIWV9TUF9FVkVO VCwgJmJwLT5zcF9ldmVudCkpIHsKIAkJaW50IHJjOwotLSAKMi4yNi4yCgoKRnJvbSBjZjcxZjY3 MWJjN2YyMGJmZDIxZDJhMTNhYTQyZTA0ZWZkODZkMjNkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBNaWNoYWVsIENoYW4gPG1pY2hhZWwuY2hhbkBicm9hZGNvbS5jb20+CkRhdGU6IFNh dCwgMTEgSnVsIDIwMjAgMjA6NDg6MjUgLTA0MDAKU3ViamVjdDogW1BBVENIIDI0LzM4XSBibnh0 X2VuOiBGaXggY29tcGxldGlvbiByaW5nIHNpemluZyB3aXRoIFRQQSBlbmFibGVkLgoKWyBVcHN0 cmVhbSBjb21taXQgMjc2NDBjZTY4ZDIxZTU1NmI2NmJjNWZhMDIyYWFjZDI2ZTUzYzk0NyBdCgpU aGUgY3VycmVudCBjb21wbGV0aW9uIHJpbmcgc2l6aW5nIGZvcm11bGEgaXMgd3Jvbmcgd2l0aCBU UEEgZW5hYmxlZC4KVGhlIGZvcm11bGEgYXNzdW1lcyB0aGF0IHRoZSBudW1iZXIgb2YgVFBBIGNv bXBsZXRpb25zIGFyZSBib3VuZCBieSB0aGUKUlggcmluZyBzaXplLCBidXQgdGhhdCdzIG5vdCB0 cnVlLiAgVFBBX1NUQVJUIGNvbXBsZXRpb25zIGFyZSBpbW1lZGlhdGVseQpyZWN5Y2xlZCBzbyB0 aGV5IGFyZSBub3QgYm91bmQgYnkgdGhlIFJYIHJpbmcgc2l6ZS4gIFdlIG11c3QgYWRkCmJwLT5t YXhfdHBhIHRvIHRoZSB3b3JzdCBjYXNlIG1heGltdW0gUlggYW5kIFRQQSBjb21wbGV0aW9ucy4K ClRoZSBjb21wbGV0aW9uIHJpbmcgY2FuIG92ZXJmbG93IGJlY2F1c2Ugb2YgdGhpcyBtaXN0YWtl LiAgVGhpcyB3aWxsCmNhdXNlIGhhcmR3YXJlIHRvIGRpc2FibGUgdGhlIGNvbXBsZXRpb24gcmlu ZyB3aGVuIHRoaXMgaGFwcGVucywKbGVhZGluZyB0byBSWCBhbmQgVFggdHJhZmZpYyB0byBzdGFs bCBvbiB0aGF0IHJpbmcuICBUaGlzIGlzc3VlIGlzCmdlbmVyYWxseSBleHBvc2VkIG9ubHkgd2hl biB0aGUgUlggcmluZyBzaXplIGlzIHNldCB2ZXJ5IHNtYWxsLgoKRml4IHRoZSBmb3JtdWxhIGJ5 IGFkZGluZyBicC0+bWF4X3RwYSB0byB0aGUgbnVtYmVyIG9mIFJYIGNvbXBsZXRpb25zCmlmIFRQ QSBpcyBlbmFibGVkLgoKRml4ZXM6IGMwYzA1MGM1OGQ4NCAoImJueHRfZW46IE5ldyBCcm9hZGNv bSBldGhlcm5ldCBkcml2ZXIuIik7ClJldmlld2VkLWJ5OiBWYXN1bmRoYXJhIFZvbGFtIDx2YXN1 bmRoYXJhLXYudm9sYW1AYnJvYWRjb20uY29tPgpTaWduZWQtb2ZmLWJ5OiBNaWNoYWVsIENoYW4g PG1pY2hhZWwuY2hhbkBicm9hZGNvbS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxl ciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNv bS9ibnh0L2JueHQuYyB8IDEyICsrKysrKysrKystLQogMSBmaWxlIGNoYW5nZWQsIDEwIGluc2Vy dGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJu ZXQvYnJvYWRjb20vYm54dC9ibnh0LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9i bnh0L2JueHQuYwppbmRleCAxOThiY2E5YzFlMmQuLjE2NTZkYzI3N2FmNCAxMDA2NDQKLS0tIGEv ZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0LmMKKysrIGIvZHJpdmVycy9u ZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0LmMKQEAgLTM0MTgsNyArMzQxOCw3IEBAIHZv aWQgYm54dF9zZXRfdHBhX2ZsYWdzKHN0cnVjdCBibnh0ICpicCkKICAqLwogdm9pZCBibnh0X3Nl dF9yaW5nX3BhcmFtcyhzdHJ1Y3QgYm54dCAqYnApCiB7Ci0JdTMyIHJpbmdfc2l6ZSwgcnhfc2l6 ZSwgcnhfc3BhY2U7CisJdTMyIHJpbmdfc2l6ZSwgcnhfc2l6ZSwgcnhfc3BhY2UsIG1heF9yeF9j bXBsOwogCXUzMiBhZ2dfZmFjdG9yID0gMCwgYWdnX3Jpbmdfc2l6ZSA9IDA7CiAKIAkvKiA4IGZv ciBDUkMgYW5kIFZMQU4gKi8KQEAgLTM0NzQsNyArMzQ3NCwxNSBAQCB2b2lkIGJueHRfc2V0X3Jp bmdfcGFyYW1zKHN0cnVjdCBibnh0ICpicCkKIAlicC0+dHhfbnJfcGFnZXMgPSBibnh0X2NhbGNf bnJfcmluZ19wYWdlcyhyaW5nX3NpemUsIFRYX0RFU0NfQ05UKTsKIAlicC0+dHhfcmluZ19tYXNr ID0gKGJwLT50eF9ucl9wYWdlcyAqIFRYX0RFU0NfQ05UKSAtIDE7CiAKLQlyaW5nX3NpemUgPSBi cC0+cnhfcmluZ19zaXplICogKDIgKyBhZ2dfZmFjdG9yKSArIGJwLT50eF9yaW5nX3NpemU7CisJ bWF4X3J4X2NtcGwgPSBicC0+cnhfcmluZ19zaXplOworCS8qIE1BWCBUUEEgbmVlZHMgdG8gYmUg YWRkZWQgYmVjYXVzZSBUUEFfU1RBUlQgY29tcGxldGlvbnMgYXJlCisJICogaW1tZWRpYXRlbHkg cmVjeWNsZWQsIHNvIHRoZSBUUEEgY29tcGxldGlvbnMgYXJlIG5vdCBib3VuZCBieQorCSAqIHRo ZSBSWCByaW5nIHNpemUuCisJICovCisJaWYgKGJwLT5mbGFncyAmIEJOWFRfRkxBR19UUEEpCisJ CW1heF9yeF9jbXBsICs9IGJwLT5tYXhfdHBhOworCS8qIFJYIGFuZCBUUEEgY29tcGxldGlvbnMg YXJlIDMyLWJ5dGUsIGFsbCBvdGhlcnMgYXJlIDE2LWJ5dGUgKi8KKwlyaW5nX3NpemUgPSBtYXhf cnhfY21wbCAqIDIgKyBhZ2dfcmluZ19zaXplICsgYnAtPnR4X3Jpbmdfc2l6ZTsKIAlicC0+Y3Bf cmluZ19zaXplID0gcmluZ19zaXplOwogCiAJYnAtPmNwX25yX3BhZ2VzID0gYm54dF9jYWxjX25y X3JpbmdfcGFnZXMocmluZ19zaXplLCBDUF9ERVNDX0NOVCk7Ci0tIAoyLjI2LjIKCgpGcm9tIDA2 ZmI1MmE3ZjcxNDU5MDMxMmRkNzdkYmMxOGJkNjdiZDc3Y2RiYTkgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IFhpbiBMb25nIDxsdWNpZW4ueGluQGdtYWlsLmNvbT4KRGF0ZTogV2VkLCAy MiBKdWwgMjAyMCAyMzo1MjoxMSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMjUvMzhdIHNjdHA6IHNo cmluayBzdHJlYW0gb3V0cSBvbmx5IHdoZW4gbmV3IG91dGNudCA8IG9sZAogb3V0Y250CgpbIFVw c3RyZWFtIGNvbW1pdCA4ZjEzMzk5ZGIyMmY5MDlhMzU3MzViZjhhZTJmOTMyZTBjOGYwZTMwIF0K Ckl0J3Mgbm90IG5lY2Vzc2FyeSB0byBnbyBsaXN0X2Zvcl9lYWNoIGZvciBvdXRxLT5vdXRfY2h1 bmtfbGlzdAp3aGVuIG5ldyBvdXRjbnQgPj0gb2xkIG91dGNudCwgYXMgbm8gY2h1bmsgd2l0aCBo aWdoZXIgc2lkIHRoYW4KbmV3IChvdXRjbnQgLSAxKSBleGlzdHMgaW4gdGhlIG91dHF1ZXVlLgoK V2hpbGUgYXQgaXQsIGFsc28gbW92ZSB0aGUgbGlzdF9mb3JfZWFjaCBjb2RlIGluIGEgbmV3IGZ1 bmN0aW9uCnNjdHBfc3RyZWFtX3Nocmlua19vdXQoKSwgd2hpY2ggd2lsbCBiZSB1c2VkIGluIHRo ZSBuZXh0IHBhdGNoLgoKU2lnbmVkLW9mZi1ieTogWGluIExvbmcgPGx1Y2llbi54aW5AZ21haWwu Y29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ Ci0tLQogbmV0L3NjdHAvc3RyZWFtLmMgfCAyMSArKysrKysrKysrKysrKy0tLS0tLS0KIDEgZmls ZSBjaGFuZ2VkLCAxNCBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L25ldC9zY3RwL3N0cmVhbS5jIGIvbmV0L3NjdHAvc3RyZWFtLmMKaW5kZXggNjdmN2U3MWY5MTI5 Li40Zjg3NjkzY2MwMzYgMTAwNjQ0Ci0tLSBhL25ldC9zY3RwL3N0cmVhbS5jCisrKyBiL25ldC9z Y3RwL3N0cmVhbS5jCkBAIC0yMiwxNyArMjIsMTEgQEAKICNpbmNsdWRlIDxuZXQvc2N0cC9zbS5o PgogI2luY2x1ZGUgPG5ldC9zY3RwL3N0cmVhbV9zY2hlZC5oPgogCi0vKiBNaWdyYXRlcyBjaHVu a3MgZnJvbSBzdHJlYW0gcXVldWVzIHRvIG5ldyBzdHJlYW0gcXVldWVzIGlmIG5lZWRlZCwKLSAq IGJ1dCBub3QgYWNyb3NzIGFzc29jaWF0aW9ucy4gQWxzbywgcmVtb3ZlcyB0aG9zZSBjaHVua3Mg dG8gc3RyZWFtcwotICogaGlnaGVyIHRoYW4gdGhlIG5ldyBtYXguCi0gKi8KLXN0YXRpYyB2b2lk IHNjdHBfc3RyZWFtX291dHFfbWlncmF0ZShzdHJ1Y3Qgc2N0cF9zdHJlYW0gKnN0cmVhbSwKLQkJ CQkgICAgIHN0cnVjdCBzY3RwX3N0cmVhbSAqbmV3LCBfX3UxNiBvdXRjbnQpCitzdGF0aWMgdm9p ZCBzY3RwX3N0cmVhbV9zaHJpbmtfb3V0KHN0cnVjdCBzY3RwX3N0cmVhbSAqc3RyZWFtLCBfX3Ux NiBvdXRjbnQpCiB7CiAJc3RydWN0IHNjdHBfYXNzb2NpYXRpb24gKmFzb2M7CiAJc3RydWN0IHNj dHBfY2h1bmsgKmNoLCAqdGVtcDsKIAlzdHJ1Y3Qgc2N0cF9vdXRxICpvdXRxOwotCWludCBpOwog CiAJYXNvYyA9IGNvbnRhaW5lcl9vZihzdHJlYW0sIHN0cnVjdCBzY3RwX2Fzc29jaWF0aW9uLCBz dHJlYW0pOwogCW91dHEgPSAmYXNvYy0+b3V0cXVldWU7CkBAIC01Niw2ICs1MCwxOSBAQCBzdGF0 aWMgdm9pZCBzY3RwX3N0cmVhbV9vdXRxX21pZ3JhdGUoc3RydWN0IHNjdHBfc3RyZWFtICpzdHJl YW0sCiAKIAkJc2N0cF9jaHVua19mcmVlKGNoKTsKIAl9Cit9CisKKy8qIE1pZ3JhdGVzIGNodW5r cyBmcm9tIHN0cmVhbSBxdWV1ZXMgdG8gbmV3IHN0cmVhbSBxdWV1ZXMgaWYgbmVlZGVkLAorICog YnV0IG5vdCBhY3Jvc3MgYXNzb2NpYXRpb25zLiBBbHNvLCByZW1vdmVzIHRob3NlIGNodW5rcyB0 byBzdHJlYW1zCisgKiBoaWdoZXIgdGhhbiB0aGUgbmV3IG1heC4KKyAqLworc3RhdGljIHZvaWQg c2N0cF9zdHJlYW1fb3V0cV9taWdyYXRlKHN0cnVjdCBzY3RwX3N0cmVhbSAqc3RyZWFtLAorCQkJ CSAgICAgc3RydWN0IHNjdHBfc3RyZWFtICpuZXcsIF9fdTE2IG91dGNudCkKK3sKKwlpbnQgaTsK KworCWlmIChzdHJlYW0tPm91dGNudCA+IG91dGNudCkKKwkJc2N0cF9zdHJlYW1fc2hyaW5rX291 dChzdHJlYW0sIG91dGNudCk7CiAKIAlpZiAobmV3KSB7CiAJCS8qIEhlcmUgd2UgYWN0dWFsbHkg bW92ZSB0aGUgb2xkIGV4dCBzdHVmZiBpbnRvIHRoZSBuZXcKLS0gCjIuMjYuMgoKCkZyb20gYzEz MDhjMmUyMDMxYjhkNmZhZjIzNTUxOTYwNzRiYWZmYjdlOTAxOCBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogWGluIExvbmcgPGx1Y2llbi54aW5AZ21haWwuY29tPgpEYXRlOiBXZWQsIDIy IEp1bCAyMDIwIDIzOjUyOjEyICswODAwClN1YmplY3Q6IFtQQVRDSCAyNi8zOF0gc2N0cDogc2hy aW5rIHN0cmVhbSBvdXRxIHdoZW4gZmFpbHMgdG8gZG8gYWRkc3RyZWFtCiByZWNvbmYKClsgVXBz dHJlYW0gY29tbWl0IDNlY2RkYTNlOWFkODM3Y2Y5Y2I0MWI2ZmFhMTFiMWFmM2E1YWJjMGMgXQoK V2hlbiBhZGRpbmcgYSBzdHJlYW0gd2l0aCBzdHJlYW0gcmVjb25mLCB0aGUgbmV3IHN0cmVhbSBm aXJzdGx5IGlzIGluCkNMT1NFRCBzdGF0ZSBidXQgbmV3IG91dCBjaHVua3MgY2FuIHN0aWxsIGJl IGVucXVldWVkLiBUaGVuIG9uY2UgZ2V0cwp0aGUgY29uZmlybWF0aW9uIGZyb20gdGhlIHBlZXIs IHRoZSBzdGF0ZSB3aWxsIGNoYW5nZSB0byBPUEVOLgoKSG93ZXZlciwgaWYgdGhlIHBlZXIgZGVu aWVzLCBpdCBuZWVkcyB0byByb2xsIGJhY2sgdGhlIHN0cmVhbS4gQnV0IHdoZW4KZG9pbmcgdGhh dCwgaXQgb25seSBzZXRzIHRoZSBzdHJlYW0gb3V0Y250IGJhY2ssIGFuZCB0aGUgY2h1bmtzIGFs cmVhZHkKaW4gdGhlIG5ldyBzdHJlYW0gZG9uJ3QgZ2V0IHB1cmdlZC4gSXQgY2F1c2VkIHRoZXNl IGNodW5rcyBjYW4gc3RpbGwgYmUKZGVxdWV1ZWQgaW4gc2N0cF9vdXRxX2RlcXVldWVfZGF0YSgp LgoKQXMgaXRzIHN0cmVhbSBpcyBzdGlsbCBpbiBDTE9TRSwgdGhlIGNodW5rIHdpbGwgYmUgZW5x dWV1ZWQgdG8gdGhlIGhlYWQKYWdhaW4gYnkgc2N0cF9vdXRxX2hlYWRfZGF0YSgpLiBUaGlzIGNo dW5rIHdpbGwgbmV2ZXIgYmUgc2VudCBvdXQsIGFuZAp0aGUgY2h1bmtzIGFmdGVyIGl0IGNhbiBu ZXZlciBiZSBkZXF1ZXVlZC4gVGhlIGFzc29jIHdpbGwgYmUgJ2h1bmcnIGluCmEgZGVhZCBsb29w IG9mIHNlbmRpbmcgdGhpcyBjaHVuay4KClRvIGZpeCBpdCwgdGhpcyBwYXRjaCBpcyB0byBwdXJn ZSB0aGVzZSBjaHVua3MgYWxyZWFkeSBpbiB0aGUgbmV3CnN0cmVhbSBieSBjYWxsaW5nIHNjdHBf c3RyZWFtX3Nocmlua19vdXQoKSB3aGVuIGZhaWxpbmcgdG8gZG8gdGhlCmFkZHN0cmVhbSByZWNv bmYuCgpGaXhlczogMTFhZTc2ZTY3YTE3ICgic2N0cDogaW1wbGVtZW50IHJlY2VpdmVyLXNpZGUg cHJvY2VkdXJlcyBmb3IgdGhlIFJlY29uZiBSZXNwb25zZSBQYXJhbWV0ZXIiKQpSZXBvcnRlZC1i eTogWWluZyBYdSA8eWlueHVAcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogWGluIExvbmcgPGx1 Y2llbi54aW5AZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVt QGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3NjdHAvc3RyZWFtLmMgfCA2ICsrKystLQogMSBmaWxl IGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9u ZXQvc2N0cC9zdHJlYW0uYyBiL25ldC9zY3RwL3N0cmVhbS5jCmluZGV4IDRmODc2OTNjYzAzNi4u YmRhMjUzNmRkNzQwIDEwMDY0NAotLS0gYS9uZXQvc2N0cC9zdHJlYW0uYworKysgYi9uZXQvc2N0 cC9zdHJlYW0uYwpAQCAtMTA0NCwxMSArMTA0NCwxMyBAQCBzdHJ1Y3Qgc2N0cF9jaHVuayAqc2N0 cF9wcm9jZXNzX3N0cnJlc2V0X3Jlc3AoCiAJCW51bXMgPSBudG9ocyhhZGRzdHJtLT5udW1iZXJf b2Zfc3RyZWFtcyk7CiAJCW51bWJlciA9IHN0cmVhbS0+b3V0Y250IC0gbnVtczsKIAotCQlpZiAo cmVzdWx0ID09IFNDVFBfU1RSUkVTRVRfUEVSRk9STUVEKQorCQlpZiAocmVzdWx0ID09IFNDVFBf U1RSUkVTRVRfUEVSRk9STUVEKSB7CiAJCQlmb3IgKGkgPSBudW1iZXI7IGkgPCBzdHJlYW0tPm91 dGNudDsgaSsrKQogCQkJCVNDVFBfU08oc3RyZWFtLCBpKS0+c3RhdGUgPSBTQ1RQX1NUUkVBTV9P UEVOOwotCQllbHNlCisJCX0gZWxzZSB7CisJCQlzY3RwX3N0cmVhbV9zaHJpbmtfb3V0KHN0cmVh bSwgbnVtYmVyKTsKIAkJCXN0cmVhbS0+b3V0Y250ID0gbnVtYmVyOworCQl9CiAKIAkJKmV2cCA9 IHNjdHBfdWxwZXZlbnRfbWFrZV9zdHJlYW1fY2hhbmdlX2V2ZW50KGFzb2MsIGZsYWdzLAogCQkJ MCwgbnVtcywgR0ZQX0FUT01JQyk7Ci0tIAoyLjI2LjIKCgpGcm9tIDQzN2U5YTI1MjJiMTIxODFi ZGI2M2ZiNjY5Zjk3YTc3OTdhNDA0ZDcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEt1 bml5dWtpIEl3YXNoaW1hIDxrdW5peXVAYW1hem9uLmNvLmpwPgpEYXRlOiBUdWUsIDIxIEp1bCAy MDIwIDE1OjE1OjMwICswOTAwClN1YmplY3Q6IFtQQVRDSCAyNy8zOF0gdWRwOiBDb3B5IGhhc19j b25ucyBpbiByZXVzZXBvcnRfZ3JvdygpLgoKWyBVcHN0cmVhbSBjb21taXQgZjJiMmM1NWU1MTI4 NzlhMDU0NTZlYWY1ZGU0ZDFlZDJmNzc1NzUwOSBdCgpJZiBhbiB1bmNvbm5lY3RlZCBzb2NrZXQg aW4gYSBVRFAgcmV1c2Vwb3J0IGdyb3VwIGNvbm5lY3QoKXMsIGhhc19jb25ucyBpcwpzZXQgdG8g MS4gVGhlbiwgd2hlbiBhIHBhY2tldCBpcyByZWNlaXZlZCwgdWRwWzQ2XV9saWJfbG9va3VwMigp IHNjYW5zIGFsbApzb2NrZXRzIGluIHVkcF9oc2xvdCBsb29raW5nIGZvciB0aGUgY29ubmVjdGVk IHNvY2tldCB3aXRoIHRoZSBoaWdoZXN0CnNjb3JlLgoKSG93ZXZlciwgd2hlbiB0aGUgbnVtYmVy IG9mIHNvY2tldHMgYm91bmQgdG8gdGhlIHBvcnQgZXhjZWVkcyBtYXhfc29ja3MsCnJldXNlcG9y dF9ncm93KCkgcmVzZXRzIGhhc19jb25ucyB0byAwLiBJdCBjYW4gY2F1c2UgdWRwWzQ2XV9saWJf bG9va3VwMigpCnRvIHJldHVybiB3aXRob3V0IHNjYW5uaW5nIGFsbCBzb2NrZXRzLCByZXN1bHRp bmcgaW4gdGhhdCBwYWNrZXRzIHNlbnQgdG8KY29ubmVjdGVkIHNvY2tldHMgbWF5IGJlIGRpc3Ry aWJ1dGVkIHRvIHVuY29ubmVjdGVkIHNvY2tldHMuCgpUaGVyZWZvcmUsIHJldXNlcG9ydF9ncm93 KCkgc2hvdWxkIGNvcHkgaGFzX2Nvbm5zLgoKRml4ZXM6IGFjZGNlY2M2MTI4NSAoInVkcDogY29y cmVjdCByZXVzZXBvcnQgc2VsZWN0aW9uIHdpdGggY29ubmVjdGVkIHNvY2tldHMiKQpDQzogV2ls bGVtIGRlIEJydWlqbiA8d2lsbGVtYkBnb29nbGUuY29tPgpSZXZpZXdlZC1ieTogQmVuamFtaW4g SGVycmVuc2NobWlkdCA8YmVuaEBhbWF6b24uY29tPgpTaWduZWQtb2ZmLWJ5OiBLdW5peXVraSBJ d2FzaGltYSA8a3VuaXl1QGFtYXpvbi5jby5qcD4KQWNrZWQtYnk6IFdpbGxlbSBkZSBCcnVpam4g PHdpbGxlbWJAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZl bUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9jb3JlL3NvY2tfcmV1c2Vwb3J0LmMgfCAxICsKIDEg ZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQoKZGlmZiAtLWdpdCBhL25ldC9jb3JlL3NvY2tf cmV1c2Vwb3J0LmMgYi9uZXQvY29yZS9zb2NrX3JldXNlcG9ydC5jCmluZGV4IGFkY2IzYWVhNTc2 ZC4uYmJkZDNjN2I2Y2I1IDEwMDY0NAotLS0gYS9uZXQvY29yZS9zb2NrX3JldXNlcG9ydC5jCisr KyBiL25ldC9jb3JlL3NvY2tfcmV1c2Vwb3J0LmMKQEAgLTEwMSw2ICsxMDEsNyBAQCBzdGF0aWMg c3RydWN0IHNvY2tfcmV1c2Vwb3J0ICpyZXVzZXBvcnRfZ3JvdyhzdHJ1Y3Qgc29ja19yZXVzZXBv cnQgKnJldXNlKQogCW1vcmVfcmV1c2UtPnByb2cgPSByZXVzZS0+cHJvZzsKIAltb3JlX3JldXNl LT5yZXVzZXBvcnRfaWQgPSByZXVzZS0+cmV1c2Vwb3J0X2lkOwogCW1vcmVfcmV1c2UtPmJpbmRf aW5hbnkgPSByZXVzZS0+YmluZF9pbmFueTsKKwltb3JlX3JldXNlLT5oYXNfY29ubnMgPSByZXVz ZS0+aGFzX2Nvbm5zOwogCiAJbWVtY3B5KG1vcmVfcmV1c2UtPnNvY2tzLCByZXVzZS0+c29ja3Ms CiAJICAgICAgIHJldXNlLT5udW1fc29ja3MgKiBzaXplb2Yoc3RydWN0IHNvY2sgKikpOwotLSAK Mi4yNi4yCgoKRnJvbSAzNzBkZWE3ODcyMWJiOTNkZDYwNmM3MGI1YTYwNmY1ZWU3YTBmNjA1IE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBLdW5peXVraSBJd2FzaGltYSA8a3VuaXl1QGFt YXpvbi5jby5qcD4KRGF0ZTogVHVlLCAyMSBKdWwgMjAyMCAxNToxNTozMSArMDkwMApTdWJqZWN0 OiBbUEFUQ0ggMjgvMzhdIHVkcDogSW1wcm92ZSBsb2FkIGJhbGFuY2luZyBmb3IgU09fUkVVU0VQ T1JULgoKWyBVcHN0cmVhbSBjb21taXQgZWZjNmI2ZjZjMzExM2U4YjIwM2I5ZGViZmI3MmQ4MWUw ZjNkY2FjZSBdCgpDdXJyZW50bHksIFNPX1JFVVNFUE9SVCBkb2VzIG5vdCB3b3JrIHdlbGwgaWYg Y29ubmVjdGVkIHNvY2tldHMgYXJlIGluIGEKVURQIHJldXNlcG9ydCBncm91cC4KClRoZW4gcmV1 c2Vwb3J0X2hhc19jb25ucygpIHJldHVybnMgdHJ1ZSBhbmQgdGhlIHJlc3VsdCBvZgpyZXVzZXBv cnRfc2VsZWN0X3NvY2soKSBpcyBkaXNjYXJkZWQuIEFsc28sIHVuY29ubmVjdGVkIHNvY2tldHMg aGF2ZSB0aGUKc2FtZSBzY29yZSwgaGVuY2Ugb25seSBkb2VzIHRoZSBmaXJzdCB1bmNvbm5lY3Rl ZCBzb2NrZXQgaW4gdWRwX2hzbG90CmFsd2F5cyByZWNlaXZlIGFsbCBwYWNrZXRzIHNlbnQgdG8g dW5jb25uZWN0ZWQgc29ja2V0cy4KClNvLCB0aGUgcmVzdWx0IG9mIHJldXNlcG9ydF9zZWxlY3Rf c29jaygpIHNob3VsZCBiZSB1c2VkIGZvciBsb2FkCmJhbGFuY2luZy4KClRoZSBub3Rld29ydGh5 IHBvaW50IGlzIHRoYXQgdGhlIHVuY29ubmVjdGVkIHNvY2tldHMgcGxhY2VkIGFmdGVyCmNvbm5l Y3RlZCBzb2NrZXRzIGluIHNvY2tfcmV1c2Vwb3J0LnNvY2tzIHdpbGwgcmVjZWl2ZSBtb3JlIHBh Y2tldHMgdGhhbgpvdGhlcnMgYmVjYXVzZSBvZiB0aGUgYWxnb3JpdGhtIGluIHJldXNlcG9ydF9z ZWxlY3Rfc29jaygpLgoKICAgIGluZGV4IHwgY29ubmVjdGVkIHwgcmVjaXByb2NhbF9zY2FsZSB8 IHJlc3VsdAogICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiAgICAwICAgICB8IG5vICAgICAgICB8IDIwJSAgICAgICAgICAgICAgfCA0MCUKICAgIDEgICAg IHwgbm8gICAgICAgIHwgMjAlICAgICAgICAgICAgICB8IDIwJQogICAgMiAgICAgfCB5ZXMgICAg ICAgfCAyMCUgICAgICAgICAgICAgIHwgMCUKICAgIDMgICAgIHwgbm8gICAgICAgIHwgMjAlICAg ICAgICAgICAgICB8IDQwJQogICAgNCAgICAgfCB5ZXMgICAgICAgfCAyMCUgICAgICAgICAgICAg IHwgMCUKCklmIG1vc3Qgb2YgdGhlIHNvY2tldHMgYXJlIGNvbm5lY3RlZCwgdGhpcyBjYW4gYmUg YSBwcm9ibGVtLCBidXQgaXQgc3RpbGwKd29ya3MgYmV0dGVyIHRoYW4gbm93LgoKRml4ZXM6IGFj ZGNlY2M2MTI4NSAoInVkcDogY29ycmVjdCByZXVzZXBvcnQgc2VsZWN0aW9uIHdpdGggY29ubmVj dGVkIHNvY2tldHMiKQpDQzogV2lsbGVtIGRlIEJydWlqbiA8d2lsbGVtYkBnb29nbGUuY29tPgpS ZXZpZXdlZC1ieTogQmVuamFtaW4gSGVycmVuc2NobWlkdCA8YmVuaEBhbWF6b24uY29tPgpTaWdu ZWQtb2ZmLWJ5OiBLdW5peXVraSBJd2FzaGltYSA8a3VuaXl1QGFtYXpvbi5jby5qcD4KQWNrZWQt Ynk6IFdpbGxlbSBkZSBCcnVpam4gPHdpbGxlbWJAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTog RGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY0L3VkcC5j IHwgMTUgKysrKysrKysrLS0tLS0tCiBuZXQvaXB2Ni91ZHAuYyB8IDE1ICsrKysrKysrKy0tLS0t LQogMiBmaWxlcyBjaGFuZ2VkLCAxOCBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9uZXQvaXB2NC91ZHAuYyBiL25ldC9pcHY0L3VkcC5jCmluZGV4IGEyNzk1MmJl ZDJkMy4uNmZmZWY5ODYxZmE5IDEwMDY0NAotLS0gYS9uZXQvaXB2NC91ZHAuYworKysgYi9uZXQv aXB2NC91ZHAuYwpAQCAtNDEzLDcgKzQxMyw3IEBAIHN0YXRpYyBzdHJ1Y3Qgc29jayAqdWRwNF9s aWJfbG9va3VwMihzdHJ1Y3QgbmV0ICpuZXQsCiAJCQkJICAgICBzdHJ1Y3QgdWRwX2hzbG90ICpo c2xvdDIsCiAJCQkJICAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogewotCXN0cnVjdCBzb2NrICpz aywgKnJlc3VsdDsKKwlzdHJ1Y3Qgc29jayAqc2ssICpyZXN1bHQsICpyZXVzZXBvcnRfcmVzdWx0 OwogCWludCBzY29yZSwgYmFkbmVzczsKIAl1MzIgaGFzaCA9IDA7CiAKQEAgLTQyMywxNyArNDIz LDIwIEBAIHN0YXRpYyBzdHJ1Y3Qgc29jayAqdWRwNF9saWJfbG9va3VwMihzdHJ1Y3QgbmV0ICpu ZXQsCiAJCXNjb3JlID0gY29tcHV0ZV9zY29yZShzaywgbmV0LCBzYWRkciwgc3BvcnQsCiAJCQkJ ICAgICAgZGFkZHIsIGhudW0sIGRpZiwgc2RpZik7CiAJCWlmIChzY29yZSA+IGJhZG5lc3MpIHsK KwkJCXJldXNlcG9ydF9yZXN1bHQgPSBOVUxMOworCiAJCQlpZiAoc2stPnNrX3JldXNlcG9ydCAm JgogCQkJICAgIHNrLT5za19zdGF0ZSAhPSBUQ1BfRVNUQUJMSVNIRUQpIHsKIAkJCQloYXNoID0g dWRwX2VoYXNoZm4obmV0LCBkYWRkciwgaG51bSwKIAkJCQkJCSAgIHNhZGRyLCBzcG9ydCk7Ci0J CQkJcmVzdWx0ID0gcmV1c2Vwb3J0X3NlbGVjdF9zb2NrKHNrLCBoYXNoLCBza2IsCi0JCQkJCQkJ c2l6ZW9mKHN0cnVjdCB1ZHBoZHIpKTsKLQkJCQlpZiAocmVzdWx0ICYmICFyZXVzZXBvcnRfaGFz X2Nvbm5zKHNrLCBmYWxzZSkpCi0JCQkJCXJldHVybiByZXN1bHQ7CisJCQkJcmV1c2Vwb3J0X3Jl c3VsdCA9IHJldXNlcG9ydF9zZWxlY3Rfc29jayhzaywgaGFzaCwgc2tiLAorCQkJCQkJCQkJIHNp emVvZihzdHJ1Y3QgdWRwaGRyKSk7CisJCQkJaWYgKHJldXNlcG9ydF9yZXN1bHQgJiYgIXJldXNl cG9ydF9oYXNfY29ubnMoc2ssIGZhbHNlKSkKKwkJCQkJcmV0dXJuIHJldXNlcG9ydF9yZXN1bHQ7 CiAJCQl9CisKKwkJCXJlc3VsdCA9IHJldXNlcG9ydF9yZXN1bHQgPyA6IHNrOwogCQkJYmFkbmVz cyA9IHNjb3JlOwotCQkJcmVzdWx0ID0gc2s7CiAJCX0KIAl9CiAJcmV0dXJuIHJlc3VsdDsKZGlm ZiAtLWdpdCBhL25ldC9pcHY2L3VkcC5jIGIvbmV0L2lwdjYvdWRwLmMKaW5kZXggMTE2NGRmZTUz YmIzLi5hOGQ3NGY0NDA1NmEgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L3VkcC5jCisrKyBiL25ldC9p cHY2L3VkcC5jCkBAIC0xNDgsNyArMTQ4LDcgQEAgc3RhdGljIHN0cnVjdCBzb2NrICp1ZHA2X2xp Yl9sb29rdXAyKHN0cnVjdCBuZXQgKm5ldCwKIAkJaW50IGRpZiwgaW50IHNkaWYsIHN0cnVjdCB1 ZHBfaHNsb3QgKmhzbG90MiwKIAkJc3RydWN0IHNrX2J1ZmYgKnNrYikKIHsKLQlzdHJ1Y3Qgc29j ayAqc2ssICpyZXN1bHQ7CisJc3RydWN0IHNvY2sgKnNrLCAqcmVzdWx0LCAqcmV1c2Vwb3J0X3Jl c3VsdDsKIAlpbnQgc2NvcmUsIGJhZG5lc3M7CiAJdTMyIGhhc2ggPSAwOwogCkBAIC0xNTgsMTcg KzE1OCwyMCBAQCBzdGF0aWMgc3RydWN0IHNvY2sgKnVkcDZfbGliX2xvb2t1cDIoc3RydWN0IG5l dCAqbmV0LAogCQlzY29yZSA9IGNvbXB1dGVfc2NvcmUoc2ssIG5ldCwgc2FkZHIsIHNwb3J0LAog CQkJCSAgICAgIGRhZGRyLCBobnVtLCBkaWYsIHNkaWYpOwogCQlpZiAoc2NvcmUgPiBiYWRuZXNz KSB7CisJCQlyZXVzZXBvcnRfcmVzdWx0ID0gTlVMTDsKKwogCQkJaWYgKHNrLT5za19yZXVzZXBv cnQgJiYKIAkJCSAgICBzay0+c2tfc3RhdGUgIT0gVENQX0VTVEFCTElTSEVEKSB7CiAJCQkJaGFz aCA9IHVkcDZfZWhhc2hmbihuZXQsIGRhZGRyLCBobnVtLAogCQkJCQkJICAgIHNhZGRyLCBzcG9y dCk7CiAKLQkJCQlyZXN1bHQgPSByZXVzZXBvcnRfc2VsZWN0X3NvY2soc2ssIGhhc2gsIHNrYiwK LQkJCQkJCQlzaXplb2Yoc3RydWN0IHVkcGhkcikpOwotCQkJCWlmIChyZXN1bHQgJiYgIXJldXNl cG9ydF9oYXNfY29ubnMoc2ssIGZhbHNlKSkKLQkJCQkJcmV0dXJuIHJlc3VsdDsKKwkJCQlyZXVz ZXBvcnRfcmVzdWx0ID0gcmV1c2Vwb3J0X3NlbGVjdF9zb2NrKHNrLCBoYXNoLCBza2IsCisJCQkJ CQkJCQkgc2l6ZW9mKHN0cnVjdCB1ZHBoZHIpKTsKKwkJCQlpZiAocmV1c2Vwb3J0X3Jlc3VsdCAm JiAhcmV1c2Vwb3J0X2hhc19jb25ucyhzaywgZmFsc2UpKQorCQkJCQlyZXR1cm4gcmV1c2Vwb3J0 X3Jlc3VsdDsKIAkJCX0KLQkJCXJlc3VsdCA9IHNrOworCisJCQlyZXN1bHQgPSByZXVzZXBvcnRf cmVzdWx0ID8gOiBzazsKIAkJCWJhZG5lc3MgPSBzY29yZTsKIAkJfQogCX0KLS0gCjIuMjYuMgoK CkZyb20gZWM5NDQ2OGM0YjljMTNkMGZmZDIwMDA5OGY2OTdjZGRiZmMxNTkxMyBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogTGl1IEppYW4gPGxpdWppYW41NkBodWF3ZWkuY29tPgpEYXRl OiBNb24sIDIwIEp1bCAyMDIwIDIyOjI4OjI5ICswODAwClN1YmplY3Q6IFtQQVRDSCAyOS8zOF0g ZHBhYV9ldGg6IEZpeCBvbmUgcG9zc2libGUgbWVtbGVhayBpbiBkcGFhX2V0aF9wcm9iZQoKWyBV cHN0cmVhbSBjb21taXQgNjc5MDcxMWY4YWM1ZmFhYmM0MzIzN2MwZDA1ZDkzZGI0MzFhMWVjYyBd CgpXaGVuIGRtYV9jb2VyY2VfbWFza19hbmRfY29oZXJlbnQoKSBmYWlscywgdGhlIGFsbG9jZWQg bmV0ZGV2IG5lZWQgdG8gYmUgZnJlZWQuCgpGaXhlczogMDYwYWQ2NmY5Nzk1ICgiZHBhYV9ldGg6 IGNoYW5nZSBETUEgZGV2aWNlIikKU2lnbmVkLW9mZi1ieTogTGl1IEppYW4gPGxpdWppYW41NkBo dWF3ZWkuY29tPgpBY2tlZC1ieTogTWFkYWxpbiBCdWN1ciA8bWFkYWxpbi5idWN1ckBvc3Mubnhw LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0 PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9kcGFhL2RwYWFfZXRoLmMgfCAy ICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYg LS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZHBhYS9kcGFhX2V0aC5jIGIv ZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2RwYWEvZHBhYV9ldGguYwppbmRleCA2YmZh NzU3NWFmOTQuLjVmODJjMWYzMmYwOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQv ZnJlZXNjYWxlL2RwYWEvZHBhYV9ldGguYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVl c2NhbGUvZHBhYS9kcGFhX2V0aC5jCkBAIC0yOTM4LDcgKzI5MzgsNyBAQCBzdGF0aWMgaW50IGRw YWFfZXRoX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJCQkJCQkgICBETUFf QklUX01BU0soNDApKTsKIAlpZiAoZXJyKSB7CiAJCW5ldGRldl9lcnIobmV0X2RldiwgImRtYV9j b2VyY2VfbWFza19hbmRfY29oZXJlbnQoKSBmYWlsZWRcbiIpOwotCQlyZXR1cm4gZXJyOworCQln b3RvIGZyZWVfbmV0ZGV2OwogCX0KIAogCS8qIElmIGZzbF9mbV9tYXhfZnJtIGlzIHNldCB0byBh IGhpZ2hlciB2YWx1ZSB0aGFuIHRoZSBhbGwtY29tbW9uIDE1MDAsCi0tIAoyLjI2LjIKCgpGcm9t IGNkZTk3ODZjMWQ3YzQwYjYxMTc5ZWRkYWNkYjRhZjNkNzY0MDQzYzUgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IFZhZGltIFBhc3Rlcm5hayA8dmFkaW1wQG1lbGxhbm94LmNvbT4KRGF0 ZTogRnJpLCAxNyBKdWwgMjAyMCAyMjowMTo0MyArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMzAvMzhd IG1seHN3OiBjb3JlOiBGaXggd3JvbmcgU0ZQIEVFUFJPTSByZWFkaW5nIGZvciB1cHBlcgogcGFn ZXMgMS0zCgpbIFVwc3RyZWFtIGNvbW1pdCA5Yjg3Mzc3ODhhZjZjNzZlZjkzZTMxNjFlZTJjZGM0 ZGRjYzAzNGNhIF0KCkZpeCB3cm9uZyByZWFkaW5nIG9mIHVwcGVyIHBhZ2VzIGZvciBTRlAgRUVQ Uk9NLiBBY2NvcmRpbmcgdG8gIk1lbW9yeQpPcmdhbml6YXRpb24iIGZpZ3VyZSBpbiBTRkYtODQ3 MiBzcGVjOiBXaGVuIHJlYWRpbmcgdXBwZXIgcGFnZXMgMSwgMiBhbmQKMyB0aGUgb2Zmc2V0IHNo b3VsZCBiZSBzZXQgcmVsYXRpdmUgdG8gemVybyBhbmQgSTJDIGhpZ2ggYWRkcmVzcyAweDUxClsx MDEwMDAxWCAoQTJoKV0gaXMgdG8gYmUgdXNlZC4KCkZpeGVzOiBhNDViZmI1YTUwNzAgKCJtbHhz dzogY29yZTogRXh0ZW5kIFFTRlAgRUVQUk9NIHNpemUgZm9yIGV0aHRvb2wiKQpTaWduZWQtb2Zm LWJ5OiBWYWRpbSBQYXN0ZXJuYWsgPHZhZGltcEBtZWxsYW5veC5jb20+ClJldmlld2VkLWJ5OiBK aXJpIFBpcmtvIDxqaXJpQG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogSWRvIFNjaGltbWVs IDxpZG9zY2hAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRh dmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogLi4uL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9j b3JlX2Vudi5jICAgIHwgNDggKysrKysrKysrKysrLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDMy IGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0 L2V0aGVybmV0L21lbGxhbm94L21seHN3L2NvcmVfZW52LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5l dC9tZWxsYW5veC9tbHhzdy9jb3JlX2Vudi5jCmluZGV4IDA4MjE1ZmVkMTkzZC4uYTdkODZkZjcx MjNmIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9jb3Jl X2Vudi5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L2NvcmVfZW52 LmMKQEAgLTQ1LDcgKzQ1LDcgQEAgc3RhdGljIGludCBtbHhzd19lbnZfdmFsaWRhdGVfY2FibGVf aWRlbnQoc3RydWN0IG1seHN3X2NvcmUgKmNvcmUsIGludCBpZCwKIHN0YXRpYyBpbnQKIG1seHN3 X2Vudl9xdWVyeV9tb2R1bGVfZWVwcm9tKHN0cnVjdCBtbHhzd19jb3JlICptbHhzd19jb3JlLCBp bnQgbW9kdWxlLAogCQkJICAgICAgdTE2IG9mZnNldCwgdTE2IHNpemUsIHZvaWQgKmRhdGEsCi0J CQkgICAgICB1bnNpZ25lZCBpbnQgKnBfcmVhZF9zaXplKQorCQkJICAgICAgYm9vbCBxc2ZwLCB1 bnNpZ25lZCBpbnQgKnBfcmVhZF9zaXplKQogewogCWNoYXIgZWVwcm9tX3RtcFtNTFhTV19SRUdf TUNJQV9FRVBST01fU0laRV07CiAJY2hhciBtY2lhX3BsW01MWFNXX1JFR19NQ0lBX0xFTl07CkBA IC01NCw2ICs1NCwxMCBAQCBtbHhzd19lbnZfcXVlcnlfbW9kdWxlX2VlcHJvbShzdHJ1Y3QgbWx4 c3dfY29yZSAqbWx4c3dfY29yZSwgaW50IG1vZHVsZSwKIAlpbnQgc3RhdHVzOwogCWludCBlcnI7 CiAKKwkvKiBNQ0lBIHJlZ2lzdGVyIGFjY2VwdHMgYnVmZmVyIHNpemUgPD0gNDguIFBhZ2Ugb2Yg c2l6ZSAxMjggc2hvdWxkIGJlCisJICogcmVhZCBieSBjaHVua3Mgb2Ygc2l6ZSA0OCwgNDgsIDMy LiBBbGlnbiB0aGUgc2l6ZSBvZiB0aGUgbGFzdCBjaHVuaworCSAqIHRvIGF2b2lkIHJlYWRpbmcg YWZ0ZXIgdGhlIGVuZCBvZiB0aGUgcGFnZS4KKwkgKi8KIAlzaXplID0gbWluX3QodTE2LCBzaXpl LCBNTFhTV19SRUdfTUNJQV9FRVBST01fU0laRSk7CiAKIAlpZiAob2Zmc2V0IDwgTUxYU1dfUkVH X01DSUFfRUVQUk9NX1BBR0VfTEVOR1RIICYmCkBAIC02MywxOCArNjcsMjUgQEAgbWx4c3dfZW52 X3F1ZXJ5X21vZHVsZV9lZXByb20oc3RydWN0IG1seHN3X2NvcmUgKm1seHN3X2NvcmUsIGludCBt b2R1bGUsCiAKIAlpMmNfYWRkciA9IE1MWFNXX1JFR19NQ0lBX0kyQ19BRERSX0xPVzsKIAlpZiAo b2Zmc2V0ID49IE1MWFNXX1JFR19NQ0lBX0VFUFJPTV9QQUdFX0xFTkdUSCkgewotCQlwYWdlID0g TUxYU1dfUkVHX01DSUFfUEFHRV9HRVQob2Zmc2V0KTsKLQkJb2Zmc2V0IC09IE1MWFNXX1JFR19N Q0lBX0VFUFJPTV9VUF9QQUdFX0xFTkdUSCAqIHBhZ2U7Ci0JCS8qIFdoZW4gcmVhZGluZyB1cHBl ciBwYWdlcyAxLCAyIGFuZCAzIHRoZSBvZmZzZXQgc3RhcnRzIGF0Ci0JCSAqIDEyOC4gUGxlYXNl IHJlZmVyIHRvICJRU0ZQKyBNZW1vcnkgTWFwIiBmaWd1cmUgaW4gU0ZGLTg0MzYKLQkJICogc3Bl Y2lmaWNhdGlvbiBmb3IgZ3JhcGhpY2FsIGRlcGljdGlvbi4KLQkJICogTUNJQSByZWdpc3RlciBh Y2NlcHRzIGJ1ZmZlciBzaXplIDw9IDQ4LiBQYWdlIG9mIHNpemUgMTI4Ci0JCSAqIHNob3VsZCBi ZSByZWFkIGJ5IGNodW5rcyBvZiBzaXplIDQ4LCA0OCwgMzIuIEFsaWduIHRoZSBzaXplCi0JCSAq IG9mIHRoZSBsYXN0IGNodW5rIHRvIGF2b2lkIHJlYWRpbmcgYWZ0ZXIgdGhlIGVuZCBvZiB0aGUK LQkJICogcGFnZS4KLQkJICovCi0JCWlmIChvZmZzZXQgKyBzaXplID4gTUxYU1dfUkVHX01DSUFf RUVQUk9NX1BBR0VfTEVOR1RIKQotCQkJc2l6ZSA9IE1MWFNXX1JFR19NQ0lBX0VFUFJPTV9QQUdF X0xFTkdUSCAtIG9mZnNldDsKKwkJaWYgKHFzZnApIHsKKwkJCS8qIFdoZW4gcmVhZGluZyB1cHBl ciBwYWdlcyAxLCAyIGFuZCAzIHRoZSBvZmZzZXQKKwkJCSAqIHN0YXJ0cyBhdCAxMjguIFBsZWFz ZSByZWZlciB0byAiUVNGUCsgTWVtb3J5IE1hcCIKKwkJCSAqIGZpZ3VyZSBpbiBTRkYtODQzNiBz cGVjaWZpY2F0aW9uIGZvciBncmFwaGljYWwKKwkJCSAqIGRlcGljdGlvbi4KKwkJCSAqLworCQkJ cGFnZSA9IE1MWFNXX1JFR19NQ0lBX1BBR0VfR0VUKG9mZnNldCk7CisJCQlvZmZzZXQgLT0gTUxY U1dfUkVHX01DSUFfRUVQUk9NX1VQX1BBR0VfTEVOR1RIICogcGFnZTsKKwkJCWlmIChvZmZzZXQg KyBzaXplID4gTUxYU1dfUkVHX01DSUFfRUVQUk9NX1BBR0VfTEVOR1RIKQorCQkJCXNpemUgPSBN TFhTV19SRUdfTUNJQV9FRVBST01fUEFHRV9MRU5HVEggLSBvZmZzZXQ7CisJCX0gZWxzZSB7CisJ CQkvKiBXaGVuIHJlYWRpbmcgdXBwZXIgcGFnZXMgMSwgMiBhbmQgMyB0aGUgb2Zmc2V0CisJCQkg KiBzdGFydHMgYXQgMCBhbmQgSTJDIGhpZ2ggYWRkcmVzcyBpcyB1c2VkLiBQbGVhc2UgcmVmZXIK KwkJCSAqIHJlZmVyIHRvICJNZW1vcnkgT3JnYW5pemF0aW9uIiBmaWd1cmUgaW4gU0ZGLTg0NzIK KwkJCSAqIHNwZWNpZmljYXRpb24gZm9yIGdyYXBoaWNhbCBkZXBpY3Rpb24uCisJCQkgKi8KKwkJ CWkyY19hZGRyID0gTUxYU1dfUkVHX01DSUFfSTJDX0FERFJfSElHSDsKKwkJCW9mZnNldCAtPSBN TFhTV19SRUdfTUNJQV9FRVBST01fUEFHRV9MRU5HVEg7CisJCX0KIAl9CiAKIAltbHhzd19yZWdf bWNpYV9wYWNrKG1jaWFfcGwsIG1vZHVsZSwgMCwgcGFnZSwgb2Zmc2V0LCBzaXplLCBpMmNfYWRk cik7CkBAIC0xNjYsNyArMTc3LDcgQEAgaW50IG1seHN3X2Vudl9nZXRfbW9kdWxlX2luZm8oc3Ry dWN0IG1seHN3X2NvcmUgKm1seHN3X2NvcmUsIGludCBtb2R1bGUsCiAJaW50IGVycjsKIAogCWVy ciA9IG1seHN3X2Vudl9xdWVyeV9tb2R1bGVfZWVwcm9tKG1seHN3X2NvcmUsIG1vZHVsZSwgMCwg b2Zmc2V0LAotCQkJCQkgICAgbW9kdWxlX2luZm8sICZyZWFkX3NpemUpOworCQkJCQkgICAgbW9k dWxlX2luZm8sIGZhbHNlLCAmcmVhZF9zaXplKTsKIAlpZiAoZXJyKQogCQlyZXR1cm4gZXJyOwog CkBAIC0xOTcsNyArMjA4LDcgQEAgaW50IG1seHN3X2Vudl9nZXRfbW9kdWxlX2luZm8oc3RydWN0 IG1seHN3X2NvcmUgKm1seHN3X2NvcmUsIGludCBtb2R1bGUsCiAJCS8qIFZlcmlmeSBpZiB0cmFu c2NlaXZlciBwcm92aWRlcyBkaWFnbm9zdGljIG1vbml0b3JpbmcgcGFnZSAqLwogCQllcnIgPSBt bHhzd19lbnZfcXVlcnlfbW9kdWxlX2VlcHJvbShtbHhzd19jb3JlLCBtb2R1bGUsCiAJCQkJCQkg ICAgU0ZQX0RJQUdNT04sIDEsICZkaWFnX21vbiwKLQkJCQkJCSAgICAmcmVhZF9zaXplKTsKKwkJ CQkJCSAgICBmYWxzZSwgJnJlYWRfc2l6ZSk7CiAJCWlmIChlcnIpCiAJCQlyZXR1cm4gZXJyOwog CkBAIC0yMjUsMTcgKzIzNiwyMiBAQCBpbnQgbWx4c3dfZW52X2dldF9tb2R1bGVfZWVwcm9tKHN0 cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsCiAJaW50IG9mZnNldCA9IGVlLT5vZmZzZXQ7CiAJdW5z aWduZWQgaW50IHJlYWRfc2l6ZTsKIAlpbnQgaSA9IDA7CisJYm9vbCBxc2ZwOwogCWludCBlcnI7 CiAKIAlpZiAoIWVlLT5sZW4pCiAJCXJldHVybiAtRUlOVkFMOwogCiAJbWVtc2V0KGRhdGEsIDAs IGVlLT5sZW4pOworCS8qIFZhbGlkYXRlIG1vZHVsZSBpZGVudGlmaWVyIHZhbHVlLiAqLworCWVy ciA9IG1seHN3X2Vudl92YWxpZGF0ZV9jYWJsZV9pZGVudChtbHhzd19jb3JlLCBtb2R1bGUsICZx c2ZwKTsKKwlpZiAoZXJyKQorCQlyZXR1cm4gZXJyOwogCiAJd2hpbGUgKGkgPCBlZS0+bGVuKSB7 CiAJCWVyciA9IG1seHN3X2Vudl9xdWVyeV9tb2R1bGVfZWVwcm9tKG1seHN3X2NvcmUsIG1vZHVs ZSwgb2Zmc2V0LAogCQkJCQkJICAgIGVlLT5sZW4gLSBpLCBkYXRhICsgaSwKLQkJCQkJCSAgICAm cmVhZF9zaXplKTsKKwkJCQkJCSAgICBxc2ZwLCAmcmVhZF9zaXplKTsKIAkJaWYgKGVycikgewog CQkJbmV0ZGV2X2VycihuZXRkZXYsICJFZXByb20gcXVlcnkgZmFpbGVkXG4iKTsKIAkJCXJldHVy biBlcnI7Ci0tIAoyLjI2LjIKCgpGcm9tIGQwYzg0MmRiZmFkMDUwNmM4N2VjOWRmZTk5MTc1OTE2 ZjY4MjEwYjUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFR1bmcgTmd1eWVuIDx0dW5n LnEubmd1eWVuQGRla3RlY2guY29tLmF1PgpEYXRlOiBUdWUsIDIxIEp1bCAyMDIwIDA4OjU3OjA1 ICswNzAwClN1YmplY3Q6IFtQQVRDSCAzMS8zOF0gdGlwYzogYWxsb3cgdG8gYnVpbGQgTkFDSyBt ZXNzYWdlIGluIGxpbmsgdGltZW91dAogZnVuY3Rpb24KClsgVXBzdHJlYW0gY29tbWl0IDZlZjlk Y2I3ODA0NmIzNDZiNTUwOGNhMTY1OTg0OGIxMzZhMzQzYzIgXQoKQ29tbWl0IDAyMjg4MjQ4YjA1 MSAoInRpcGM6IGVsaW1pbmF0ZSBnYXAgaW5kaWNhdG9yIGZyb20gQUNLIG1lc3NhZ2VzIikKZWxp bWluYXRlZCBzZW5kaW5nIG9mIHRoZSAnZ2FwJyBpbmRpY2F0b3IgaW4gcmVndWxhciBBQ0sgbWVz c2FnZXMgYW5kCm9ubHkgYWxsb3dlZCB0byBidWlsZCBOQUNLIG1lc3NhZ2Ugd2l0aCBlbmFibGVk IHByb2JlL3Byb2JlX3JlcGx5LgpIb3dldmVyLCBuZWNlc3NhcnkgY29ycmVjdGlvbiBmb3IgYnVp bGRpbmcgTkFDSyBtZXNzYWdlIHdhcyBtaXNzZWQKaW4gdGlwY19saW5rX3RpbWVvdXQoKSBmdW5j dGlvbi4gVGhpcyBsZWFkcyB0byBzaWduaWZpY2FudCBkZWxheSBhbmQKbGluayByZXNldCAoZHVl IHRvIHJldHJhbnNtaXNzaW9uIGZhaWx1cmUpIGluIGxvc3N5IGVudmlyb25tZW50LgoKVGhpcyBj b21taXQgZml4ZXMgaXQgYnkgc2V0dGluZyB0aGUgJ3Byb2JlJyBmbGFnIHRvICd0cnVlJyB3aGVu CnRoZSByZWNlaXZlIGRlZmVycmVkIHF1ZXVlIGlzIG5vdCBlbXB0eS4gQXMgYSByZXN1bHQsIE5B Q0sgbWVzc2FnZQp3aWxsIGJlIGJ1aWx0IHRvIHNlbmQgYmFjayB0byBhbm90aGVyIHBlZXIuCgpG aXhlczogMDIyODgyNDhiMDUxICgidGlwYzogZWxpbWluYXRlIGdhcCBpbmRpY2F0b3IgZnJvbSBB Q0sgbWVzc2FnZXMiKQpBY2tlZC1ieTogSm9uIE1hbG95IDxqbWFsb3lAcmVkaGF0LmNvbT4KU2ln bmVkLW9mZi1ieTogVHVuZyBOZ3V5ZW4gPHR1bmcucS5uZ3V5ZW5AZGVrdGVjaC5jb20uYXU+ClNp Z25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBu ZXQvdGlwYy9saW5rLmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEg ZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvdGlwYy9saW5rLmMgYi9uZXQvdGlwYy9saW5r LmMKaW5kZXggZDQ2NzVlOTIyYThmLi5lMTgzNjkyMDFhMTUgMTAwNjQ0Ci0tLSBhL25ldC90aXBj L2xpbmsuYworKysgYi9uZXQvdGlwYy9saW5rLmMKQEAgLTgxMywxMSArODEzLDExIEBAIGludCB0 aXBjX2xpbmtfdGltZW91dChzdHJ1Y3QgdGlwY19saW5rICpsLCBzdHJ1Y3Qgc2tfYnVmZl9oZWFk ICp4bWl0cSkKIAkJc3RhdGUgfD0gbC0+YmNfcmN2bGluay0+cmN2X3VuYWNrZWQ7CiAJCXN0YXRl IHw9IGwtPnJjdl91bmFja2VkOwogCQlzdGF0ZSB8PSAhc2tiX3F1ZXVlX2VtcHR5KCZsLT50cmFu c21xKTsKLQkJc3RhdGUgfD0gIXNrYl9xdWV1ZV9lbXB0eSgmbC0+ZGVmZXJkcSk7CiAJCXByb2Jl ID0gbXN0YXRlLT5wcm9iaW5nOwogCQlwcm9iZSB8PSBsLT5zaWxlbnRfaW50dl9jbnQ7CiAJCWlm IChwcm9iZSB8fCBtc3RhdGUtPm1vbml0b3JpbmcpCiAJCQlsLT5zaWxlbnRfaW50dl9jbnQrKzsK KwkJcHJvYmUgfD0gIXNrYl9xdWV1ZV9lbXB0eSgmbC0+ZGVmZXJkcSk7CiAJCWlmIChsLT5zbmRf bnh0ID09IGwtPmNoZWNrcG9pbnQpIHsKIAkJCXRpcGNfbGlua191cGRhdGVfY3dpbihsLCAwLCAw KTsKIAkJCXByb2JlID0gdHJ1ZTsKLS0gCjIuMjYuMgoKCkZyb20gYjBiZTY3MmJjMmQ3MDNmZWRm ODc4OTcyN2M5ZWFkNmRlZWNiZmYwYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogUnVz c2VsbCBLaW5nIDxybWsra2VybmVsQGFybWxpbnV4Lm9yZy51az4KRGF0ZTogU3VuLCAxOSBKdWwg MjAyMCAxMjowMDo0MCArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMzIvMzhdIGFybTY0OiBkdHM6IGNs ZWFyZm9nLWd0LThrOiBmaXggc3dpdGNoIGxpbmsKIGNvbmZpZ3VyYXRpb24KClsgVXBzdHJlYW0g Y29tbWl0IDdjNjcxOWExYWFjYTUxZmZkN2NkZjM5MDVlNzBhYTgzMTNmNmVmMjYgXQoKVGhlIGNv bW1pdCBiZWxvdyBjYXVzZWQgYSByZWdyZXNzaW9uIGZvciBjbGVhcmZvZy1ndC04aywgd2hlcmUg dGhlIGxpbmsKYmV0d2VlbiB0aGUgc3dpdGNoIGFuZCB0aGUgaG9zdCBkb2VzIG5vdCBjb21lIHVw LgoKSW52ZXN0aWdhdGlvbiByZXZlYWxlZCB0d28gaXNzdWVzOgotIE1WODhFNnh4eCBEU0Egbm8g bG9uZ2VyIGFsbG93cyBhbiBpbi1iYW5kIGxpbmsgdG8gY29tZSB1cCBhcyB0aGUgbGluawogIGlz IHByb2dyYW1tZWQgdG8gYmUgZm9yY2VkIGRvd24uIENvbW1pdCAibmV0OiBkc2E6IG12ODhlNnh4 eDogZml4CiAgaW4tYmFuZCBBTiBsaW5rIGVzdGFibGlzaG1lbnQiIGFkZHJlc3NlcyB0aGlzLgoK LSBUaGUgZHRzIGNvbmZpZ3VyZWQgZGlzc2ltaWxhciBsaW5rIG1vZGVzIGF0IGVhY2ggZW5kIG9m IHRoZSBob3N0IHRvCiAgc3dpdGNoIGxpbms7IHRoZSBob3N0IHdhcyBjb25maWd1cmVkIHVzaW5n IGEgZml4ZWQgbGluayAoc28gaGFzIG5vCiAgaW4tYmFuZCBzdGF0dXMpIGFuZCB0aGUgc3dpdGNo IHdhcyBjb25maWd1cmVkIHRvIGV4cGVjdCBpbi1iYW5kCiAgc3RhdHVzLgoKV2l0aCBib3RoIGlz c3VlcyBmaXhlZCwgdGhlIHJlZ3Jlc3Npb24gaXMgcmVzb2x2ZWQuCgpGaXhlczogMzRiNWU2YTMz YzFhICgibmV0OiBkc2E6IG12ODhlNnh4eDogQ29uZmlndXJlIE1BQyB3aGVuIHVzaW5nIGZpeGVk IGxpbmsiKQpSZXBvcnRlZC1ieTogTWFydGluIFJvd2UgPG1hcnRpbi5wLnJvd2VAZ21haWwuY29t PgpTaWduZWQtb2ZmLWJ5OiBSdXNzZWxsIEtpbmcgPHJtaytrZXJuZWxAYXJtbGludXgub3JnLnVr PgpSZXZpZXdlZC1ieTogQW5kcmV3IEx1bm4gPGFuZHJld0BsdW5uLmNoPgpTaWduZWQtb2ZmLWJ5 OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogYXJjaC9hcm02NC9i b290L2R0cy9tYXJ2ZWxsL2FybWFkYS04MDQwLWNsZWFyZm9nLWd0LThrLmR0cyB8IDUgKy0tLS0K IDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTgwNDAtY2xlYXJmb2ctZ3Qt OGsuZHRzIGIvYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS04MDQwLWNsZWFyZm9n LWd0LThrLmR0cwppbmRleCBiOTBkNzhhNTcyNGIuLmUzMmE0OTFlOTA5ZiAxMDA2NDQKLS0tIGEv YXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS04MDQwLWNsZWFyZm9nLWd0LThrLmR0 cworKysgYi9hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTgwNDAtY2xlYXJmb2ct Z3QtOGsuZHRzCkBAIC00NTQsMTAgKzQ1NCw3IEBAICZjcDFfZXRoMiB7CiAJc3RhdHVzID0gIm9r YXkiOwogCXBoeS1tb2RlID0gIjI1MDBiYXNlLXgiOwogCXBoeXMgPSA8JmNwMV9jb21waHk1IDI+ OwotCWZpeGVkLWxpbmsgewotCQlzcGVlZCA9IDwyNTAwPjsKLQkJZnVsbC1kdXBsZXg7Ci0JfTsK KwltYW5hZ2VkID0gImluLWJhbmQtc3RhdHVzIjsKIH07CiAKICZjcDFfc3BpMSB7Ci0tIAoyLjI2 LjIKCgpGcm9tIGRiMmJlMjJmMGQ4NjgxMDNlMTE5ZmZiZjZlMWM2NmVhZWI0N2I1ZDEgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IFJ1c3NlbGwgS2luZyA8cm1rK2tlcm5lbEBhcm1saW51 eC5vcmcudWs+CkRhdGU6IFN1biwgMTkgSnVsIDIwMjAgMTI6MDA6MzUgKzAxMDAKU3ViamVjdDog W1BBVENIIDMzLzM4XSBuZXQ6IGRzYTogbXY4OGU2eHh4OiBmaXggaW4tYmFuZCBBTiBsaW5rIGVz dGFibGlzaG1lbnQKClsgVXBzdHJlYW0gY29tbWl0IGZhZDU4MTkwYzBmZmQ3MmMzOTQ3MjI5Mjhj ZDNlOTE5YjZlMTgzNTcgXQoKSWYgaW4tYmFuZCBuZWdvdGlhdGlvbiBvciBmaXhlZC1saW5rIG1v ZGVzIGFyZSBzcGVjaWZpZWQgZm9yIGEgRFNBCnBvcnQsIHRoZSBEU0EgY29kZSB3aWxsIGZvcmNl IHRoZSBsaW5rIGRvd24gZHVyaW5nIGluaXRpYWxpc2F0aW9uLiBGb3IKZml4ZWQtbGluayBtb2Rl LCB0aGlzIGlzIGZpbmUsIGFzIHBoeWxpbmsgd2lsbCBtYW5hZ2UgdGhlIGxpbmsgc3RhdGUuCkhv d2V2ZXIsIGZvciBpbi1iYW5kIG1vZGUsIHBoeWxpbmsgZXhwZWN0cyB0aGUgUENTIHRvIGRldGVj dCBsaW5rLAp3aGljaCB3aWxsIG5vdCBoYXBwZW4gaWYgdGhlIGxpbmsgaXMgZm9yY2VkIGRvd24u CgpUaGVyZSBpcyBhIHJlbGF0ZWQgaXNzdWUgdGhhdCBpbiBpbi1iYW5kIG1vZGUsIHRoZSBsaW5r IGNvdWxkIGNvbWUgdXAKd2hpbGUgd2UgYXJlIG1ha2luZyBjb25maWd1cmF0aW9uIGNoYW5nZXMs IHNvIHdlIHNob3VsZCBmb3JjZSB0aGUgbGluawpkb3duIHByaW9yIHRvIHJlY29uZmlndXJpbmcg dGhlIGludGVyZmFjZSBtb2RlLgoKVGhpcyBwYXRjaCBhZGRyZXNzZXMgYm90aCBpc3N1ZXMuCgpG aXhlczogM2JlOThiMmQ1ZmJjICgibmV0OiBkc2E6IERvd24gY3B1L2RzYSBwb3J0cyBwaHlsaW5r IHdpbGwgY29udHJvbCIpClNpZ25lZC1vZmYtYnk6IFJ1c3NlbGwgS2luZyA8cm1rK2tlcm5lbEBh cm1saW51eC5vcmcudWs+ClJldmlld2VkLWJ5OiBBbmRyZXcgTHVubiA8YW5kcmV3QGx1bm4uY2g+ ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0t CiBkcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYyB8IDIyICsrKysrKysrKysrKysrKysr KystLS0KIGRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5oIHwgIDEgKwogMiBmaWxlcyBj aGFuZ2VkLCAyMCBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jIGIvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4 eC9jaGlwLmMKaW5kZXggMmI0YTcyM2M4MzA2Li5lMDY1YmU0MTlhMDMgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jCisrKyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4 ZTZ4eHgvY2hpcC5jCkBAIC02NjQsOCArNjY0LDExIEBAIHN0YXRpYyB2b2lkIG12ODhlNnh4eF9t YWNfY29uZmlnKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsCiAJCQkJIGNvbnN0IHN0 cnVjdCBwaHlsaW5rX2xpbmtfc3RhdGUgKnN0YXRlKQogewogCXN0cnVjdCBtdjg4ZTZ4eHhfY2hp cCAqY2hpcCA9IGRzLT5wcml2OworCXN0cnVjdCBtdjg4ZTZ4eHhfcG9ydCAqcDsKIAlpbnQgZXJy OwogCisJcCA9ICZjaGlwLT5wb3J0c1twb3J0XTsKKwogCS8qIEZJWE1FOiBpcyB0aGlzIHRoZSBj b3JyZWN0IHRlc3Q/IElmIHdlJ3JlIGluIGZpeGVkIG1vZGUgb24gYW4KIAkgKiBpbnRlcm5hbCBw b3J0LCB3aHkgc2hvdWxkIHdlIHByb2Nlc3MgdGhpcyBhbnkgZGlmZmVyZW50IGZyb20KIAkgKiBQ SFkgbW9kZT8gT24gdGhlIG90aGVyIGhhbmQsIHRoZSBwb3J0IG1heSBiZSBhdXRvbWVkaWEgYmV0 d2VlbgpAQCAtNjc1LDEwICs2NzgsMTQgQEAgc3RhdGljIHZvaWQgbXY4OGU2eHh4X21hY19jb25m aWcoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCwKIAkJcmV0dXJuOwogCiAJbXY4OGU2 eHh4X3JlZ19sb2NrKGNoaXApOwotCS8qIEZJWE1FOiBzaG91bGQgd2UgZm9yY2UgdGhlIGxpbmsg ZG93biBoZXJlIC0gYnV0IGlmIHdlIGRvLCBob3cKLQkgKiBkbyB3ZSByZXN0b3JlIHRoZSBsaW5r IGZvcmNlL3VuZm9yY2Ugc3RhdGU/IFRoZSBkcml2ZXIgbGF5ZXJpbmcKLQkgKiBnZXRzIGluIHRo ZSB3YXkuCisJLyogSW4gaW5iYW5kIG1vZGUsIHRoZSBsaW5rIG1heSBjb21lIHVwIGF0IGFueSB0 aW1lIHdoaWxlIHRoZSBsaW5rCisJICogaXMgbm90IGZvcmNlZCBkb3duLiBGb3JjZSB0aGUgbGlu ayBkb3duIHdoaWxlIHdlIHJlY29uZmlndXJlIHRoZQorCSAqIGludGVyZmFjZSBtb2RlLgogCSAq LworCWlmIChtb2RlID09IE1MT19BTl9JTkJBTkQgJiYgcC0+aW50ZXJmYWNlICE9IHN0YXRlLT5p bnRlcmZhY2UgJiYKKwkgICAgY2hpcC0+aW5mby0+b3BzLT5wb3J0X3NldF9saW5rKQorCQljaGlw LT5pbmZvLT5vcHMtPnBvcnRfc2V0X2xpbmsoY2hpcCwgcG9ydCwgTElOS19GT1JDRURfRE9XTik7 CisKIAllcnIgPSBtdjg4ZTZ4eHhfcG9ydF9jb25maWdfaW50ZXJmYWNlKGNoaXAsIHBvcnQsIHN0 YXRlLT5pbnRlcmZhY2UpOwogCWlmIChlcnIgJiYgZXJyICE9IC1FT1BOT1RTVVBQKQogCQlnb3Rv IGVycl91bmxvY2s7CkBAIC02OTEsNiArNjk4LDE1IEBAIHN0YXRpYyB2b2lkIG12ODhlNnh4eF9t YWNfY29uZmlnKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsCiAJaWYgKGVyciA+IDAp CiAJCWVyciA9IDA7CiAKKwkvKiBVbmRvIHRoZSBmb3JjZWQgZG93biBzdGF0ZSBhYm92ZSBhZnRl ciBjb21wbGV0aW5nIGNvbmZpZ3VyYXRpb24KKwkgKiBpcnJlc3BlY3RpdmUgb2YgaXRzIHN0YXRl IG9uIGVudHJ5LCB3aGljaCBhbGxvd3MgdGhlIGxpbmsgdG8gY29tZSB1cC4KKwkgKi8KKwlpZiAo bW9kZSA9PSBNTE9fQU5fSU5CQU5EICYmIHAtPmludGVyZmFjZSAhPSBzdGF0ZS0+aW50ZXJmYWNl ICYmCisJICAgIGNoaXAtPmluZm8tPm9wcy0+cG9ydF9zZXRfbGluaykKKwkJY2hpcC0+aW5mby0+ b3BzLT5wb3J0X3NldF9saW5rKGNoaXAsIHBvcnQsIExJTktfVU5GT1JDRUQpOworCisJcC0+aW50 ZXJmYWNlID0gc3RhdGUtPmludGVyZmFjZTsKKwogZXJyX3VubG9jazoKIAltdjg4ZTZ4eHhfcmVn X3VubG9jayhjaGlwKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9j aGlwLmggYi9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuaAppbmRleCBlNTQzMGNmMmFk NzEuLjY0NzY1MjRlODIzOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9j aGlwLmgKKysrIGIvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmgKQEAgLTIzMiw2ICsy MzIsNyBAQCBzdHJ1Y3QgbXY4OGU2eHh4X3BvcnQgewogCXU2NCBhdHVfZnVsbF92aW9sYXRpb247 CiAJdTY0IHZ0dV9tZW1iZXJfdmlvbGF0aW9uOwogCXU2NCB2dHVfbWlzc192aW9sYXRpb247CisJ cGh5X2ludGVyZmFjZV90IGludGVyZmFjZTsKIAl1OCBjbW9kZTsKIAlib29sIG1pcnJvcl9pbmdy ZXNzOwogCWJvb2wgbWlycm9yX2VncmVzczsKLS0gCjIuMjYuMgoKCkZyb20gNDVmMzcxODkyZDQ2 Yzc3MGY5YzdlYjEzN2Y4YTNmNTNlODJkNDAzNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogU2VyZ2V5IE9yZ2Fub3YgPHNvcmdhbm92QGdtYWlsLmNvbT4KRGF0ZTogV2VkLCAxNSBKdWwg MjAyMCAxOToxMDowMCArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMzQvMzhdIG5ldDogZHA4MzY0MDog Zml4IFNJT0NTSFdUU1RBTVAgdG8gdXBkYXRlIHRoZSBzdHJ1Y3QKIHdpdGggYWN0dWFsIGNvbmZp Z3VyYXRpb24KClsgVXBzdHJlYW0gY29tbWl0IDQ3MzMwOWZiODM3MjM2NWFkMjExZjQyNWJjYTc2 MGFmODAwZTEwYTcgXQoKRnJvbSBEb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvdGltZXN0YW1waW5n LnR4dDoKCiAgQSBkcml2ZXIgd2hpY2ggc3VwcG9ydHMgaGFyZHdhcmUgdGltZSBzdGFtcGluZyBz aGFsbCB1cGRhdGUgdGhlCiAgc3RydWN0IHdpdGggdGhlIGFjdHVhbCwgcG9zc2libHkgbW9yZSBw ZXJtaXNzaXZlIGNvbmZpZ3VyYXRpb24uCgpEbyB1cGRhdGUgdGhlIHN0cnVjdCBwYXNzZWQgd2hl biB3ZSB1cHNjYWxlIHRoZSByZXF1ZXN0ZWQgdGltZQpzdGFtcGluZyBtb2RlLgoKRml4ZXM6IGNi NjQ2ZTJiMDJiMiAoInB0cDogQWRkZWQgYSBjbG9jayBkcml2ZXIgZm9yIHRoZSBOYXRpb25hbCBT ZW1pY29uZHVjdG9yIFBIWVRFUi4iKQpTaWduZWQtb2ZmLWJ5OiBTZXJnZXkgT3JnYW5vdiA8c29y Z2Fub3ZAZ21haWwuY29tPgpBY2tlZC1ieTogUmljaGFyZCBDb2NocmFuIDxyaWNoYXJkY29jaHJh bkBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IEpha3ViIEtpY2luc2tpIDxrdWJhQGtlcm5lbC5v cmc+Ci0tLQogZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYyB8IDQgKysrKwogMSBmaWxlIGNoYW5n ZWQsIDQgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3BoeS9kcDgzNjQw LmMgYi9kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jCmluZGV4IGVjYmQ1ZTBkNjg1Yy4uYWNiMGFh ZTYwNzU1IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jCisrKyBiL2RyaXZl cnMvbmV0L3BoeS9kcDgzNjQwLmMKQEAgLTEyNjAsNiArMTI2MCw3IEBAIHN0YXRpYyBpbnQgZHA4 MzY0MF9od3RzdGFtcChzdHJ1Y3QgbWlpX3RpbWVzdGFtcGVyICptaWlfdHMsIHN0cnVjdCBpZnJl cSAqaWZyKQogCQlkcDgzNjQwLT5od3RzX3J4X2VuID0gMTsKIAkJZHA4MzY0MC0+bGF5ZXIgPSBQ VFBfQ0xBU1NfTDQ7CiAJCWRwODM2NDAtPnZlcnNpb24gPSBQVFBfQ0xBU1NfVjE7CisJCWNmZy5y eF9maWx0ZXIgPSBIV1RTVEFNUF9GSUxURVJfUFRQX1YxX0w0X0VWRU5UOwogCQlicmVhazsKIAlj YXNlIEhXVFNUQU1QX0ZJTFRFUl9QVFBfVjJfTDRfRVZFTlQ6CiAJY2FzZSBIV1RTVEFNUF9GSUxU RVJfUFRQX1YyX0w0X1NZTkM6CkBAIC0xMjY3LDYgKzEyNjgsNyBAQCBzdGF0aWMgaW50IGRwODM2 NDBfaHd0c3RhbXAoc3RydWN0IG1paV90aW1lc3RhbXBlciAqbWlpX3RzLCBzdHJ1Y3QgaWZyZXEg KmlmcikKIAkJZHA4MzY0MC0+aHd0c19yeF9lbiA9IDE7CiAJCWRwODM2NDAtPmxheWVyID0gUFRQ X0NMQVNTX0w0OwogCQlkcDgzNjQwLT52ZXJzaW9uID0gUFRQX0NMQVNTX1YyOworCQljZmcucnhf ZmlsdGVyID0gSFdUU1RBTVBfRklMVEVSX1BUUF9WMl9MNF9FVkVOVDsKIAkJYnJlYWs7CiAJY2Fz ZSBIV1RTVEFNUF9GSUxURVJfUFRQX1YyX0wyX0VWRU5UOgogCWNhc2UgSFdUU1RBTVBfRklMVEVS X1BUUF9WMl9MMl9TWU5DOgpAQCAtMTI3NCw2ICsxMjc2LDcgQEAgc3RhdGljIGludCBkcDgzNjQw X2h3dHN0YW1wKHN0cnVjdCBtaWlfdGltZXN0YW1wZXIgKm1paV90cywgc3RydWN0IGlmcmVxICpp ZnIpCiAJCWRwODM2NDAtPmh3dHNfcnhfZW4gPSAxOwogCQlkcDgzNjQwLT5sYXllciA9IFBUUF9D TEFTU19MMjsKIAkJZHA4MzY0MC0+dmVyc2lvbiA9IFBUUF9DTEFTU19WMjsKKwkJY2ZnLnJ4X2Zp bHRlciA9IEhXVFNUQU1QX0ZJTFRFUl9QVFBfVjJfTDJfRVZFTlQ7CiAJCWJyZWFrOwogCWNhc2Ug SFdUU1RBTVBfRklMVEVSX1BUUF9WMl9FVkVOVDoKIAljYXNlIEhXVFNUQU1QX0ZJTFRFUl9QVFBf VjJfU1lOQzoKQEAgLTEyODEsNiArMTI4NCw3IEBAIHN0YXRpYyBpbnQgZHA4MzY0MF9od3RzdGFt cChzdHJ1Y3QgbWlpX3RpbWVzdGFtcGVyICptaWlfdHMsIHN0cnVjdCBpZnJlcSAqaWZyKQogCQlk cDgzNjQwLT5od3RzX3J4X2VuID0gMTsKIAkJZHA4MzY0MC0+bGF5ZXIgPSBQVFBfQ0xBU1NfTDQg fCBQVFBfQ0xBU1NfTDI7CiAJCWRwODM2NDAtPnZlcnNpb24gPSBQVFBfQ0xBU1NfVjI7CisJCWNm Zy5yeF9maWx0ZXIgPSBIV1RTVEFNUF9GSUxURVJfUFRQX1YyX0VWRU5UOwogCQlicmVhazsKIAlk ZWZhdWx0OgogCQlyZXR1cm4gLUVSQU5HRTsKLS0gCjIuMjYuMgoKCkZyb20gZDE3ZWM5NjkzMWQ1 NTViNTk2ZDE3MTljNTFmN2I3ZDYwMTNjNDBmZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogU3RlZmFubyBHYXJ6YXJlbGxhIDxzZ2FyemFyZUByZWRoYXQuY29tPgpEYXRlOiBGcmksIDEw IEp1bCAyMDIwIDE0OjEyOjQzICswMjAwClN1YmplY3Q6IFtQQVRDSCAzNS8zOF0gdnNvY2svdmly dGlvOiBhbm5vdGF0ZSAndGhlX3ZpcnRpb192c29jaycgUkNVIHBvaW50ZXIKClsgVXBzdHJlYW0g Y29tbWl0IGY5NjExMzRhNjEyYzc5M2Q1OTAxYTkzZDg1YTI5MzM3Yzc0YWY5NzggXQoKQ29tbWl0 IDBkZWFiMDg3YjE2YSAoInZzb2NrL3ZpcnRpbzogdXNlIFJDVSB0byBhdm9pZCB1c2UtYWZ0ZXIt ZnJlZQpvbiB0aGVfdmlydGlvX3Zzb2NrIikgc3RhcnRzIHRvIHVzZSBSQ1UgdG8gcHJvdGVjdCAn dGhlX3ZpcnRpb192c29jaycKcG9pbnRlciwgYnV0IHdlIGZvcmdvdCB0byBhbm5vdGF0ZSBpdC4K ClRoaXMgcGF0Y2ggYWRkcyB0aGUgYW5ub3RhdGlvbiB0byBmaXggdGhlIGZvbGxvd2luZyBzcGFy c2UgZXJyb3JzOgoKICAgIG5ldC92bXdfdnNvY2svdmlydGlvX3RyYW5zcG9ydC5jOjczOjE3OiBl cnJvcjogaW5jb21wYXRpYmxlIHR5cGVzIGluIGNvbXBhcmlzb24gZXhwcmVzc2lvbiAoZGlmZmVy ZW50IGFkZHJlc3Mgc3BhY2VzKToKICAgIG5ldC92bXdfdnNvY2svdmlydGlvX3RyYW5zcG9ydC5j OjczOjE3OiAgICBzdHJ1Y3QgdmlydGlvX3Zzb2NrIFtub2RlcmVmXSBfX3JjdSAqCiAgICBuZXQv dm13X3Zzb2NrL3ZpcnRpb190cmFuc3BvcnQuYzo3MzoxNzogICAgc3RydWN0IHZpcnRpb192c29j ayAqCiAgICBuZXQvdm13X3Zzb2NrL3ZpcnRpb190cmFuc3BvcnQuYzoxNzE6MTc6IGVycm9yOiBp bmNvbXBhdGlibGUgdHlwZXMgaW4gY29tcGFyaXNvbiBleHByZXNzaW9uIChkaWZmZXJlbnQgYWRk cmVzcyBzcGFjZXMpOgogICAgbmV0L3Ztd192c29jay92aXJ0aW9fdHJhbnNwb3J0LmM6MTcxOjE3 OiAgICBzdHJ1Y3QgdmlydGlvX3Zzb2NrIFtub2RlcmVmXSBfX3JjdSAqCiAgICBuZXQvdm13X3Zz b2NrL3ZpcnRpb190cmFuc3BvcnQuYzoxNzE6MTc6ICAgIHN0cnVjdCB2aXJ0aW9fdnNvY2sgKgog ICAgbmV0L3Ztd192c29jay92aXJ0aW9fdHJhbnNwb3J0LmM6MjA3OjE3OiBlcnJvcjogaW5jb21w YXRpYmxlIHR5cGVzIGluIGNvbXBhcmlzb24gZXhwcmVzc2lvbiAoZGlmZmVyZW50IGFkZHJlc3Mg c3BhY2VzKToKICAgIG5ldC92bXdfdnNvY2svdmlydGlvX3RyYW5zcG9ydC5jOjIwNzoxNzogICAg c3RydWN0IHZpcnRpb192c29jayBbbm9kZXJlZl0gX19yY3UgKgogICAgbmV0L3Ztd192c29jay92 aXJ0aW9fdHJhbnNwb3J0LmM6MjA3OjE3OiAgICBzdHJ1Y3QgdmlydGlvX3Zzb2NrICoKICAgIG5l dC92bXdfdnNvY2svdmlydGlvX3RyYW5zcG9ydC5jOjU2MToxMzogZXJyb3I6IGluY29tcGF0aWJs ZSB0eXBlcyBpbiBjb21wYXJpc29uIGV4cHJlc3Npb24gKGRpZmZlcmVudCBhZGRyZXNzIHNwYWNl cyk6CiAgICBuZXQvdm13X3Zzb2NrL3ZpcnRpb190cmFuc3BvcnQuYzo1NjE6MTM6ICAgIHN0cnVj dCB2aXJ0aW9fdnNvY2sgW25vZGVyZWZdIF9fcmN1ICoKICAgIG5ldC92bXdfdnNvY2svdmlydGlv X3RyYW5zcG9ydC5jOjU2MToxMzogICAgc3RydWN0IHZpcnRpb192c29jayAqCiAgICBuZXQvdm13 X3Zzb2NrL3ZpcnRpb190cmFuc3BvcnQuYzo2MTI6OTogZXJyb3I6IGluY29tcGF0aWJsZSB0eXBl cyBpbiBjb21wYXJpc29uIGV4cHJlc3Npb24gKGRpZmZlcmVudCBhZGRyZXNzIHNwYWNlcyk6CiAg ICBuZXQvdm13X3Zzb2NrL3ZpcnRpb190cmFuc3BvcnQuYzo2MTI6OTogICAgc3RydWN0IHZpcnRp b192c29jayBbbm9kZXJlZl0gX19yY3UgKgogICAgbmV0L3Ztd192c29jay92aXJ0aW9fdHJhbnNw b3J0LmM6NjEyOjk6ICAgIHN0cnVjdCB2aXJ0aW9fdnNvY2sgKgogICAgbmV0L3Ztd192c29jay92 aXJ0aW9fdHJhbnNwb3J0LmM6NjMxOjk6IGVycm9yOiBpbmNvbXBhdGlibGUgdHlwZXMgaW4gY29t cGFyaXNvbiBleHByZXNzaW9uIChkaWZmZXJlbnQgYWRkcmVzcyBzcGFjZXMpOgogICAgbmV0L3Zt d192c29jay92aXJ0aW9fdHJhbnNwb3J0LmM6NjMxOjk6ICAgIHN0cnVjdCB2aXJ0aW9fdnNvY2sg W25vZGVyZWZdIF9fcmN1ICoKICAgIG5ldC92bXdfdnNvY2svdmlydGlvX3RyYW5zcG9ydC5jOjYz MTo5OiAgICBzdHJ1Y3QgdmlydGlvX3Zzb2NrICoKCkZpeGVzOiAwZGVhYjA4N2IxNmEgKCJ2c29j ay92aXJ0aW86IHVzZSBSQ1UgdG8gYXZvaWQgdXNlLWFmdGVyLWZyZWUgb24gdGhlX3ZpcnRpb192 c29jayIpClJlcG9ydGVkLWJ5OiBNaWNoYWVsIFMuIFRzaXJraW4gPG1zdEByZWRoYXQuY29tPgpT aWduZWQtb2ZmLWJ5OiBTdGVmYW5vIEdhcnphcmVsbGEgPHNnYXJ6YXJlQHJlZGhhdC5jb20+ClJl dmlld2VkLWJ5OiBTdGVmYW4gSGFqbm9jemkgPHN0ZWZhbmhhQHJlZGhhdC5jb20+CkFja2VkLWJ5 OiBNaWNoYWVsIFMuIFRzaXJraW4gPG1zdEByZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBKYWt1 YiBLaWNpbnNraSA8a3ViYUBrZXJuZWwub3JnPgotLS0KIG5ldC92bXdfdnNvY2svdmlydGlvX3Ry YW5zcG9ydC5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0 aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3Ztd192c29jay92aXJ0aW9fdHJhbnNwb3J0LmMgYi9u ZXQvdm13X3Zzb2NrL3ZpcnRpb190cmFuc3BvcnQuYwppbmRleCBkZmJhZjZiZDhiMWMuLjI3MDBh NjNhYjA5NSAxMDA2NDQKLS0tIGEvbmV0L3Ztd192c29jay92aXJ0aW9fdHJhbnNwb3J0LmMKKysr IGIvbmV0L3Ztd192c29jay92aXJ0aW9fdHJhbnNwb3J0LmMKQEAgLTIyLDcgKzIyLDcgQEAKICNp bmNsdWRlIDxuZXQvYWZfdnNvY2suaD4KIAogc3RhdGljIHN0cnVjdCB3b3JrcXVldWVfc3RydWN0 ICp2aXJ0aW9fdnNvY2tfd29ya3F1ZXVlOwotc3RhdGljIHN0cnVjdCB2aXJ0aW9fdnNvY2sgKnRo ZV92aXJ0aW9fdnNvY2s7CitzdGF0aWMgc3RydWN0IHZpcnRpb192c29jayBfX3JjdSAqdGhlX3Zp cnRpb192c29jazsKIHN0YXRpYyBERUZJTkVfTVVURVgodGhlX3ZpcnRpb192c29ja19tdXRleCk7 IC8qIHByb3RlY3RzIHRoZV92aXJ0aW9fdnNvY2sgKi8KIAogc3RydWN0IHZpcnRpb192c29jayB7 Ci0tIAoyLjI2LjIKCgpGcm9tIDBjZWViYWM0ZGQ4Nzk3OGUxYTdhNzc2MWQ1ZGViZGUzNDZiZmYx NDggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEdlb3JnZSBLZW5uZWR5IDxnZW9yZ2Uu a2VubmVkeUBvcmFjbGUuY29tPgpEYXRlOiBXZWQsIDE1IEp1bCAyMDIwIDA5OjU5OjMxIC0wNDAw ClN1YmplY3Q6IFtQQVRDSCAzNi8zOF0gYXg4ODE3MmE6IGZpeCBheDg4MTcyYV91bmJpbmQoKSBm YWlsdXJlcwoKWyBVcHN0cmVhbSBjb21taXQgYzI4ZDlhMjg1NjY4Yzc5OWVlYWUyZjdmOTNlOTI5 YTYwMjhhNGQ2ZCBdCgpJZiBheDg4MTcyYV91bmJpbmQoKSBmYWlscywgbWFrZSBzdXJlIHRoYXQg dGhlIHJldHVybiBjb2RlIGlzCmxlc3MgdGhhbiB6ZXJvIHNvIHRoYXQgY2xlYW51cCBpcyBkb25l IHByb3Blcmx5IGFuZCBhdm9pZCBVQUYuCgpGaXhlczogYTlhNTFiZDcyN2QxICgiYXg4ODE3MmE6 IGZpeCBpbmZvcm1hdGlvbiBsZWFrIG9uIHNob3J0IGFuc3dlcnMiKQpTaWduZWQtb2ZmLWJ5OiBH ZW9yZ2UgS2VubmVkeSA8Z2VvcmdlLmtlbm5lZHlAb3JhY2xlLmNvbT4KUmVwb3J0ZWQtYnk6IHN5 emJvdCs0Y2Q4NGY1MjdiZjRhMTBmYzljMUBzeXprYWxsZXIuYXBwc3BvdG1haWwuY29tClNpZ25l ZC1vZmYtYnk6IEpha3ViIEtpY2luc2tpIDxrdWJhQGtlcm5lbC5vcmc+Ci0tLQogZHJpdmVycy9u ZXQvdXNiL2F4ODgxNzJhLmMgfCAxICsKIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3VzYi9heDg4MTcyYS5jIGIvZHJpdmVycy9uZXQvdXNi L2F4ODgxNzJhLmMKaW5kZXggNGU1MTRmNWQ3YzZjLi5mZDNhMDRkOThkYzEgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvbmV0L3VzYi9heDg4MTcyYS5jCisrKyBiL2RyaXZlcnMvbmV0L3VzYi9heDg4MTcy YS5jCkBAIC0xODcsNiArMTg3LDcgQEAgc3RhdGljIGludCBheDg4MTcyYV9iaW5kKHN0cnVjdCB1 c2JuZXQgKmRldiwgc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYpCiAJcmV0ID0gYXNpeF9yZWFk X2NtZChkZXYsIEFYX0NNRF9SRUFEX05PREVfSUQsIDAsIDAsIEVUSF9BTEVOLCBidWYsIDApOwog CWlmIChyZXQgPCBFVEhfQUxFTikgewogCQluZXRkZXZfZXJyKGRldi0+bmV0LCAiRmFpbGVkIHRv IHJlYWQgTUFDIGFkZHJlc3M6ICVkXG4iLCByZXQpOworCQlyZXQgPSAtRUlPOwogCQlnb3RvIGZy ZWU7CiAJfQogCW1lbWNweShkZXYtPm5ldC0+ZGV2X2FkZHIsIGJ1ZiwgRVRIX0FMRU4pOwotLSAK Mi4yNi4yCgoKRnJvbSBjODMxNjNiYWIwMjMwODBmZjk5MjU2ZDdkOTBkZDYxM2I4MDAyYWMyIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBJb2FuYSBDaW9ybmVpIDxpb2FuYS5jaW9ybmVp QG54cC5jb20+CkRhdGU6IFR1ZSwgMTQgSnVsIDIwMjAgMTU6MDg6MTYgKzAzMDAKU3ViamVjdDog W1BBVENIIDM3LzM4XSBkcGFhMi1ldGg6IGNoZWNrIGZzbF9tY19nZXRfZW5kcG9pbnQgZm9yCiBJ U19FUlJfT1JfTlVMTCgpCgpbIFVwc3RyZWFtIGNvbW1pdCA4NDFlYjQwMTJjZWY4NDgyMGU1OTA2 NTI3YjMxYTg1NGY0MmIwNzQ4IF0KClRoZSBmc2xfbWNfZ2V0X2VuZHBvaW50KCkgZnVuY3Rpb24g Y2FuIHJldHVybiBhbiBlcnJvciBvciBkaXJlY3RseSBhCk5VTEwgcG9pbnRlciBpbiBjYXNlIHRo ZSBwZWVyIGRldmljZSBpcyBub3QgdW5kZXIgdGhlIHJvb3QgRFBSQwpjb250YWluZXIuIFRyZWF0 IHRoaXMgY2FzZSBhbHNvLCBvdGhlcndpc2UgaXQgd291bGQgbGVhZCB0byBhIE5VTEwKcG9pbnRl ciB3aGVuIHRyeWluZyB0byBhY2Nlc3MgdGhlIHBlZXIgZnNsX21jX2RldmljZS4KCkZpeGVzOiA3 MTk0NzkyMzA4OTMgKCJkcGFhMi1ldGg6IGFkZCBNQUMvUEhZIHN1cHBvcnQgdGhyb3VnaCBwaHls aW5rIikKU2lnbmVkLW9mZi1ieTogSW9hbmEgQ2lvcm5laSA8aW9hbmEuY2lvcm5laUBueHAuY29t PgpTaWduZWQtb2ZmLWJ5OiBKYWt1YiBLaWNpbnNraSA8a3ViYUBrZXJuZWwub3JnPgotLS0KIGRy aXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9kcGFhMi9kcGFhMi1ldGguYyB8IDIgKy0KIDEg ZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBh L2RyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9kcGFhMi9kcGFhMi1ldGguYyBiL2RyaXZl cnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9kcGFhMi9kcGFhMi1ldGguYwppbmRleCA1NjllMDZk MmJhYjIuLjcyZmE5YzRlMDU4ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJl ZXNjYWxlL2RwYWEyL2RwYWEyLWV0aC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVz Y2FsZS9kcGFhMi9kcGFhMi1ldGguYwpAQCAtMzM4Myw3ICszMzgzLDcgQEAgc3RhdGljIGludCBk cGFhMl9ldGhfY29ubmVjdF9tYWMoc3RydWN0IGRwYWEyX2V0aF9wcml2ICpwcml2KQogCiAJZHBu aV9kZXYgPSB0b19mc2xfbWNfZGV2aWNlKHByaXYtPm5ldF9kZXYtPmRldi5wYXJlbnQpOwogCWRw bWFjX2RldiA9IGZzbF9tY19nZXRfZW5kcG9pbnQoZHBuaV9kZXYpOwotCWlmIChJU19FUlIoZHBt YWNfZGV2KSB8fCBkcG1hY19kZXYtPmRldi50eXBlICE9ICZmc2xfbWNfYnVzX2RwbWFjX3R5cGUp CisJaWYgKElTX0VSUl9PUl9OVUxMKGRwbWFjX2RldikgfHwgZHBtYWNfZGV2LT5kZXYudHlwZSAh PSAmZnNsX21jX2J1c19kcG1hY190eXBlKQogCQlyZXR1cm4gMDsKIAogCWlmIChkcGFhMl9tYWNf aXNfdHlwZV9maXhlZChkcG1hY19kZXYsIHByaXYtPm1jX2lvKSkKLS0gCjIuMjYuMgoKCkZyb20g MGUxNmY4OTg3N2Y4MzBjY2Y4ZmQ3OGRkMDFlZjUxZGI4MTRkMmZlNCBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogU2VyZ2V5IE9yZ2Fub3YgPHNvcmdhbm92QGdtYWlsLmNvbT4KRGF0ZTog VHVlLCAxNCBKdWwgMjAyMCAxOToyODowMiArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMzgvMzhdIG5l dDogZmVjOiBmaXggaGFyZHdhcmUgdGltZSBzdGFtcGluZyBieSBleHRlcm5hbAogZGV2aWNlcwoK WyBVcHN0cmVhbSBjb21taXQgMzQwNzQ2Mzk4YjY3ZTNjZTUwMTk2OTg3NDhlYmFhN2FkZjA0ODEx NCBdCgpGaXggc3VwcG9ydCBmb3IgZXh0ZXJuYWwgUFRQLWF3YXJlIGRldmljZXMgc3VjaCBhcyBE U0Egb3IgUFRQIFBIWToKCk1ha2Ugc3VyZSB3ZSBuZXZlciB0aW1lIHN0YW1wIHR4IHBhY2tldHMg d2hlbiBoYXJkd2FyZSB0aW1lIHN0YW1waW5nCmlzIGRpc2FibGVkLgoKQ2hlY2sgZm9yIFBUUCBQ SFkgYmVpbmcgaW4gdXNlIGFuZCB0aGVuIHBhc3MgaW9jdGxzIHJlbGF0ZWQgdG8gdGltZQpzdGFt cGluZyBvZiBFdGhlcm5ldCBwYWNrZXRzIHRvIHRoZSBQVFAgUEhZIHJhdGhlciB0aGFuIGhhbmRs ZSB0aGVtCm91cnNlbHZlcy4gSW4gYWRkaXRpb24sIGRpc2FibGUgb3VyIG93biBoYXJkd2FyZSB0 aW1lIHN0YW1waW5nIGluIHRoaXMKY2FzZS4KCkZpeGVzOiA2NjA1YjczMGMwNjEgKCJGRUM6IEFk ZCB0aW1lIHN0YW1waW5nIGNvZGUgYW5kIGEgUFRQIGhhcmR3YXJlIGNsb2NrIikKU2lnbmVkLW9m Zi1ieTogU2VyZ2V5IE9yZ2Fub3YgPHNvcmdhbm92QGdtYWlsLmNvbT4KQWNrZWQtYnk6IFJpY2hh cmQgQ29jaHJhbiA8cmljaGFyZGNvY2hyYW5AZ21haWwuY29tPgpBY2tlZC1ieTogVmxhZGltaXIg T2x0ZWFuIDxvbHRlYW52QGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogSmFrdWIgS2ljaW5za2kg PGt1YmFAa2VybmVsLm9yZz4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZmVj LmggICAgICB8ICAxICsKIGRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9mZWNfbWFpbi5j IHwgMjMgKysrKysrKysrKysrKysrKystLS0tLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVz Y2FsZS9mZWNfcHRwLmMgIHwgMTIgKysrKysrKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDMwIGlu c2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRo ZXJuZXQvZnJlZXNjYWxlL2ZlYy5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2Zl Yy5oCmluZGV4IGU3NGRkMWY4NmJiYS4uODI4ZWI4Y2U2NjMxIDEwMDY0NAotLS0gYS9kcml2ZXJz L25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZmVjLmgKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQv ZnJlZXNjYWxlL2ZlYy5oCkBAIC01OTcsNiArNTk3LDcgQEAgc3RydWN0IGZlY19lbmV0X3ByaXZh dGUgewogdm9pZCBmZWNfcHRwX2luaXQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwgaW50 IGlycV9pZHgpOwogdm9pZCBmZWNfcHRwX3N0b3Aoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRl dik7CiB2b2lkIGZlY19wdHBfc3RhcnRfY3ljbGVjb3VudGVyKHN0cnVjdCBuZXRfZGV2aWNlICpu ZGV2KTsKK3ZvaWQgZmVjX3B0cF9kaXNhYmxlX2h3dHMoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYp OwogaW50IGZlY19wdHBfc2V0KHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LCBzdHJ1Y3QgaWZyZXEg Kmlmcik7CiBpbnQgZmVjX3B0cF9nZXQoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsIHN0cnVjdCBp ZnJlcSAqaWZyKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxl L2ZlY19tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZmVjX21haW4uYwpp bmRleCBkYzZmODc2M2E1ZDQuLmJmNzNiYzliZjM1YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQv ZXRoZXJuZXQvZnJlZXNjYWxlL2ZlY19tYWluLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQv ZnJlZXNjYWxlL2ZlY19tYWluLmMKQEAgLTEzMDIsOCArMTMwMiwxMyBAQCBmZWNfZW5ldF90eF9x dWV1ZShzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwgdTE2IHF1ZXVlX2lkKQogCQkJbmRldi0+c3Rh dHMudHhfYnl0ZXMgKz0gc2tiLT5sZW47CiAJCX0KIAotCQlpZiAodW5saWtlbHkoc2tiX3NoaW5m byhza2IpLT50eF9mbGFncyAmIFNLQlRYX0lOX1BST0dSRVNTKSAmJgotCQkJZmVwLT5idWZkZXNj X2V4KSB7CisJCS8qIE5PVEU6IFNLQlRYX0lOX1BST0dSRVNTIGJlaW5nIHNldCBkb2VzIG5vdCBp bXBseSBpdCdzIHdlIHdobworCQkgKiBhcmUgdG8gdGltZSBzdGFtcCB0aGUgcGFja2V0LCBzbyB3 ZSBzdGlsbCBuZWVkIHRvIGNoZWNrIHRpbWUKKwkJICogc3RhbXBpbmcgZW5hYmxlZCBmbGFnLgor CQkgKi8KKwkJaWYgKHVubGlrZWx5KHNrYl9zaGluZm8oc2tiKS0+dHhfZmxhZ3MgJiBTS0JUWF9J Tl9QUk9HUkVTUyAmJgorCQkJICAgICBmZXAtPmh3dHNfdHhfZW4pICYmCisJCSAgICBmZXAtPmJ1 ZmRlc2NfZXgpIHsKIAkJCXN0cnVjdCBza2Jfc2hhcmVkX2h3dHN0YW1wcyBzaGh3dHN0YW1wczsK IAkJCXN0cnVjdCBidWZkZXNjX2V4ICplYmRwID0gKHN0cnVjdCBidWZkZXNjX2V4ICopYmRwOwog CkBAIC0yNzMxLDEwICsyNzM2LDE2IEBAIHN0YXRpYyBpbnQgZmVjX2VuZXRfaW9jdGwoc3RydWN0 IG5ldF9kZXZpY2UgKm5kZXYsIHN0cnVjdCBpZnJlcSAqcnEsIGludCBjbWQpCiAJCXJldHVybiAt RU5PREVWOwogCiAJaWYgKGZlcC0+YnVmZGVzY19leCkgewotCQlpZiAoY21kID09IFNJT0NTSFdU U1RBTVApCi0JCQlyZXR1cm4gZmVjX3B0cF9zZXQobmRldiwgcnEpOwotCQlpZiAoY21kID09IFNJ T0NHSFdUU1RBTVApCi0JCQlyZXR1cm4gZmVjX3B0cF9nZXQobmRldiwgcnEpOworCQlib29sIHVz ZV9mZWNfaHd0cyA9ICFwaHlfaGFzX2h3dHN0YW1wKHBoeWRldik7CisKKwkJaWYgKGNtZCA9PSBT SU9DU0hXVFNUQU1QKSB7CisJCQlpZiAodXNlX2ZlY19od3RzKQorCQkJCXJldHVybiBmZWNfcHRw X3NldChuZGV2LCBycSk7CisJCQlmZWNfcHRwX2Rpc2FibGVfaHd0cyhuZGV2KTsKKwkJfSBlbHNl IGlmIChjbWQgPT0gU0lPQ0dIV1RTVEFNUCkgeworCQkJaWYgKHVzZV9mZWNfaHd0cykKKwkJCQly ZXR1cm4gZmVjX3B0cF9nZXQobmRldiwgcnEpOworCQl9CiAJfQogCiAJcmV0dXJuIHBoeV9taWlf aW9jdGwocGh5ZGV2LCBycSwgY21kKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0 L2ZyZWVzY2FsZS9mZWNfcHRwLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZmVj X3B0cC5jCmluZGV4IDk0NTY0M2MwMjYxNS4uZjhhNTkyYzk2YmViIDEwMDY0NAotLS0gYS9kcml2 ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZmVjX3B0cC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0 aGVybmV0L2ZyZWVzY2FsZS9mZWNfcHRwLmMKQEAgLTQ1Miw2ICs0NTIsMTggQEAgc3RhdGljIGlu dCBmZWNfcHRwX2VuYWJsZShzdHJ1Y3QgcHRwX2Nsb2NrX2luZm8gKnB0cCwKIAlyZXR1cm4gLUVP UE5PVFNVUFA7CiB9CiAKKy8qKgorICogZmVjX3B0cF9kaXNhYmxlX2h3dHMgLSBkaXNhYmxlIGhh cmR3YXJlIHRpbWUgc3RhbXBpbmcKKyAqIEBuZGV2OiBwb2ludGVyIHRvIG5ldF9kZXZpY2UKKyAq Lwordm9pZCBmZWNfcHRwX2Rpc2FibGVfaHd0cyhzdHJ1Y3QgbmV0X2RldmljZSAqbmRldikKK3sK KwlzdHJ1Y3QgZmVjX2VuZXRfcHJpdmF0ZSAqZmVwID0gbmV0ZGV2X3ByaXYobmRldik7CisKKwlm ZXAtPmh3dHNfdHhfZW4gPSAwOworCWZlcC0+aHd0c19yeF9lbiA9IDA7Cit9CisKIGludCBmZWNf cHRwX3NldChzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwgc3RydWN0IGlmcmVxICppZnIpCiB7CiAJ c3RydWN0IGZlY19lbmV0X3ByaXZhdGUgKmZlcCA9IG5ldGRldl9wcml2KG5kZXYpOwotLSAKMi4y Ni4yCgo= ----Next_Part(Tue_Jul_28_20_12_25_2020_646)----