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=-0.8 required=3.0 tests=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 0E091C2D0DC for ; Wed, 1 Jan 2020 20:13:48 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 5C9A62080A for ; Wed, 1 Jan 2020 20:13:47 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726697AbgAAUNq (ORCPT ); Wed, 1 Jan 2020 15:13:46 -0500 Received: from shards.monkeyblade.net ([23.128.96.9]:59446 "EHLO shards.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725871AbgAAUNq (ORCPT ); Wed, 1 Jan 2020 15:13:46 -0500 Received: from localhost (unknown [IPv6:2601:601:9f00:1c3::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 2680815A18417 for ; Wed, 1 Jan 2020 12:13:40 -0800 (PST) Date: Wed, 01 Jan 2020 12:13:37 -0800 (PST) Message-Id: <20200101.121337.869108048422106627.davem@davemloft.net> To: stable@vger.kernel.org Subject: [PATCHES] Networking From: David Miller X-Mailer: Mew version 6.8 on Emacs 26.1 Mime-Version: 1.0 Content-Type: Multipart/Mixed; boundary="--Next_Part(Wed_Jan__1_12_13_37_2020_193)--" 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]); Wed, 01 Jan 2020 12:13:41 -0800 (PST) Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org ----Next_Part(Wed_Jan__1_12_13_37_2020_193)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Please queue up the following networking bug fixes for v4.19 and v5.4 -stable, respectively. Thank you! ----Next_Part(Wed_Jan__1_12_13_37_2020_193)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_419.mbox" RnJvbSA0YzUxNjJlODJlNDlhMjRhNTM5ZTg4OTQyN2VlYWUwMzg0N2U0M2M0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOZXRhbmVsIEJlbGdhemFsIDxuZXRhbmVsQGFtYXpvbi5jb20+ CkRhdGU6IFR1ZSwgMTAgRGVjIDIwMTkgMTE6Mjc6NDQgKzAwMDAKU3ViamVjdDogW1BBVENIIDAx LzIzXSBuZXQ6IGVuYTogZml4IG5hcGkgaGFuZGxlciBtaXNiZWhhdmlvciB3aGVuIHRoZSBuYXBp CiBidWRnZXQgaXMgemVybwoKWyBVcHN0cmVhbSBjb21taXQgMjRkZWUwYzc0NzhkMWExZTAwYWJk ZjU2MjViN2Y5MjE0NjczMjVkYyBdCgpJbiBuZXRwb2xsIHRoZSBuYXBpIGhhbmRsZXIgY291bGQg YmUgY2FsbGVkIHdpdGggYnVkZ2V0IGVxdWFsIHRvIHplcm8uCkN1cnJlbnQgRU5BIG5hcGkgaGFu ZGxlciBkb2Vzbid0IHRha2UgdGhhdCBpbnRvIGNvbnNpZGVyYXRpb24uCgpUaGUgbmFwaSBoYW5k bGVyIGhhbmRsZXMgUnggcGFja2V0cyBpbiBhIGRvLXdoaWxlIGxvb3AuCkN1cnJlbnRseSwgdGhl IGJ1ZGdldCBjaGVjayBoYXBwZW5zIG9ubHkgYWZ0ZXIgZGVjcmVtZW50aW5nIHRoZQpidWRnZXQs IHRoZXJlZm9yZSB0aGUgbmFwaSBoYW5kbGVyLCBpbiByYXJlIGNhc2VzLCBjb3VsZCBydW4gb3Zl cgpNQVhfSU5UIHBhY2tldHMuCgpJbiBhZGRpdGlvbiB0byB0aGF0LCB0aGlzIG1vdmVzIGFsbCBi dWRnZXQgcmVsYXRlZCB2YXJpYWJsZXMgdG8gaW50CmNhbGN1bGF0aW9uIGFuZCBzdG9wIG1peGlu ZyB1MzIgdG8gYXZvaWQgYW1iaWd1aXR5CgpGaXhlczogMTczOGNkM2VkMzQyICgibmV0OiBlbmE6 IEFkZCBhIGRyaXZlciBmb3IgQW1hem9uIEVsYXN0aWMgTmV0d29yayBBZGFwdGVycyAoRU5BKSIp ClNpZ25lZC1vZmYtYnk6IE5ldGFuZWwgQmVsZ2F6YWwgPG5ldGFuZWxAYW1hem9uLmNvbT4KU2ln bmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRy aXZlcnMvbmV0L2V0aGVybmV0L2FtYXpvbi9lbmEvZW5hX25ldGRldi5jIHwgMTAgKysrKysrKy0t LQogMSBmaWxlIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWF6b24vZW5hL2VuYV9uZXRkZXYuYyBiL2Ry aXZlcnMvbmV0L2V0aGVybmV0L2FtYXpvbi9lbmEvZW5hX25ldGRldi5jCmluZGV4IGI1ZDcyODE1 Nzc2Yy4uZTI2YzE5NWZlYzgzIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWF6 b24vZW5hL2VuYV9uZXRkZXYuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWF6b24vZW5h L2VuYV9uZXRkZXYuYwpAQCAtMTE5Nyw4ICsxMTk3LDggQEAgc3RhdGljIGludCBlbmFfaW9fcG9s bChzdHJ1Y3QgbmFwaV9zdHJ1Y3QgKm5hcGksIGludCBidWRnZXQpCiAJc3RydWN0IGVuYV9uYXBp ICplbmFfbmFwaSA9IGNvbnRhaW5lcl9vZihuYXBpLCBzdHJ1Y3QgZW5hX25hcGksIG5hcGkpOwog CXN0cnVjdCBlbmFfcmluZyAqdHhfcmluZywgKnJ4X3Jpbmc7CiAKLQl1MzIgdHhfd29ya19kb25l OwotCXUzMiByeF93b3JrX2RvbmU7CisJaW50IHR4X3dvcmtfZG9uZTsKKwlpbnQgcnhfd29ya19k b25lID0gMDsKIAlpbnQgdHhfYnVkZ2V0OwogCWludCBuYXBpX2NvbXBfY2FsbCA9IDA7CiAJaW50 IHJldDsKQEAgLTEyMTUsNyArMTIxNSwxMSBAQCBzdGF0aWMgaW50IGVuYV9pb19wb2xsKHN0cnVj dCBuYXBpX3N0cnVjdCAqbmFwaSwgaW50IGJ1ZGdldCkKIAl9CiAKIAl0eF93b3JrX2RvbmUgPSBl bmFfY2xlYW5fdHhfaXJxKHR4X3JpbmcsIHR4X2J1ZGdldCk7Ci0Jcnhfd29ya19kb25lID0gZW5h X2NsZWFuX3J4X2lycShyeF9yaW5nLCBuYXBpLCBidWRnZXQpOworCS8qIE9uIG5ldHBvbGwgdGhl IGJ1ZGdldCBpcyB6ZXJvIGFuZCB0aGUgaGFuZGxlciBzaG91bGQgb25seSBjbGVhbiB0aGUKKwkg KiB0eCBjb21wbGV0aW9ucy4KKwkgKi8KKwlpZiAobGlrZWx5KGJ1ZGdldCkpCisJCXJ4X3dvcmtf ZG9uZSA9IGVuYV9jbGVhbl9yeF9pcnEocnhfcmluZywgbmFwaSwgYnVkZ2V0KTsKIAogCS8qIElm IHRoZSBkZXZpY2UgaXMgYWJvdXQgdG8gcmVzZXQgb3IgZG93biwgYXZvaWQgdW5tYXNrCiAJICog dGhlIGludGVycnVwdCBhbmQgcmV0dXJuIDAgc28gTkFQSSB3b24ndCByZXNjaGVkdWxlCi0tIAoy LjIwLjEKCgpGcm9tIDJiZWNmOWUzZTg2YWI5MjkwOTdmZWZiMGM0ZjYyNGJhMjU3MDEzNDEgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFZsYWR5c2xhdiBUYXJhc2l1ayA8dmxhZHlzbGF2 dEBtZWxsYW5veC5jb20+CkRhdGU6IFRodSwgMjYgRGVjIDIwMTkgMTA6NDE6NTYgKzAyMDAKU3Vi amVjdDogW1BBVENIIDAyLzIzXSBuZXQvbWx4Znc6IEZpeCBvdXQtb2YtbWVtb3J5IGVycm9yIGlu IG1mYTIgZmxhc2gKIGJ1cm5pbmcKClsgVXBzdHJlYW0gY29tbWl0IGE1YmNkNzJlMDU0YWFiYjkz ZGRjNTFlZDhjZGUzNmE1YmZjNTAyNzEgXQoKVGhlIGJ1cm5pbmcgcHJvY2VzcyByZXF1aXJlcyB0 byBwZXJmb3JtIGludGVybmFsIGFsbG9jYXRpb25zIG9mIGxhcmdlCmNodW5rcyBvZiBtZW1vcnku IFRoaXMgbWVtb3J5IGRvZXNuJ3QgbmVlZCB0byBiZSBjb250aWd1b3VzIGFuZCBjYW4gYmUKc2Fm ZWx5IGFsbG9jYXRlZCBieSB2emFsbG9jKCkgaW5zdGVhZCBvZiBremFsbG9jKCkuIFRoaXMgcGF0 Y2ggY2hhbmdlcwpzdWNoIGFsbG9jYXRpb24gdG8gYXZvaWQgcG9zc2libGUgb3V0LW9mLW1lbW9y eSBmYWlsdXJlLgoKRml4ZXM6IDQxMGVkMTNjYWUzOSAoIkFkZCB0aGUgbWx4ZncgbW9kdWxlIGZv ciBNZWxsYW5veCBmaXJtd2FyZSBmbGFzaCBwcm9jZXNzIikKU2lnbmVkLW9mZi1ieTogVmxhZHlz bGF2IFRhcmFzaXVrIDx2bGFkeXNsYXZ0QG1lbGxhbm94LmNvbT4KUmV2aWV3ZWQtYnk6IEF5YSBM ZXZpbiA8YXlhbEBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IExlb24gUm9tYW5vdnNreSA8 bGVvbnJvQG1lbGxhbm94LmNvbT4KVGVzdGVkLWJ5OiBJZG8gU2NoaW1tZWwgPGlkb3NjaEBtZWxs YW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0 Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhmdy9tbHhmd19tZmEy LmMgfCA3ICsrKystLS0KIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDMgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4Zncv bWx4ZndfbWZhMi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4ZncvbWx4Zndf bWZhMi5jCmluZGV4IDk5M2NiNWJhOTM0ZS4uYjk5MTY5YTM4NmViIDEwMDY0NAotLS0gYS9kcml2 ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhmdy9tbHhmd19tZmEyLmMKKysrIGIvZHJpdmVy cy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4ZncvbWx4ZndfbWZhMi5jCkBAIC0zNyw2ICszNyw3 IEBACiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+ CiAjaW5jbHVkZSA8bGludXgvbmV0bGluay5oPgorI2luY2x1ZGUgPGxpbnV4L3ZtYWxsb2MuaD4K ICNpbmNsdWRlIDxsaW51eC94ei5oPgogI2luY2x1ZGUgIm1seGZ3X21mYTIuaCIKICNpbmNsdWRl ICJtbHhmd19tZmEyX2ZpbGUuaCIKQEAgLTU3OSw3ICs1ODAsNyBAQCBtbHhmd19tZmEyX2ZpbGVf Y29tcG9uZW50X2dldChjb25zdCBzdHJ1Y3QgbWx4ZndfbWZhMl9maWxlICptZmEyX2ZpbGUsCiAJ Y29tcF9zaXplID0gYmUzMl90b19jcHUoY29tcC0+c2l6ZSk7CiAJY29tcF9idWZfc2l6ZSA9IGNv bXBfc2l6ZSArIG1seGZ3X21mYTJfY29tcF9tYWdpY19sZW47CiAKLQljb21wX2RhdGEgPSBrbWFs bG9jKHNpemVvZigqY29tcF9kYXRhKSArIGNvbXBfYnVmX3NpemUsIEdGUF9LRVJORUwpOworCWNv bXBfZGF0YSA9IHZ6YWxsb2Moc2l6ZW9mKCpjb21wX2RhdGEpICsgY29tcF9idWZfc2l6ZSk7CiAJ aWYgKCFjb21wX2RhdGEpCiAJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwogCWNvbXBfZGF0YS0+ Y29tcC5kYXRhX3NpemUgPSBjb21wX3NpemU7CkBAIC02MDEsNyArNjAyLDcgQEAgbWx4ZndfbWZh Ml9maWxlX2NvbXBvbmVudF9nZXQoY29uc3Qgc3RydWN0IG1seGZ3X21mYTJfZmlsZSAqbWZhMl9m aWxlLAogCWNvbXBfZGF0YS0+Y29tcC5kYXRhID0gY29tcF9kYXRhLT5idWZmICsgbWx4ZndfbWZh Ml9jb21wX21hZ2ljX2xlbjsKIAlyZXR1cm4gJmNvbXBfZGF0YS0+Y29tcDsKIGVycl9vdXQ6Ci0J a2ZyZWUoY29tcF9kYXRhKTsKKwl2ZnJlZShjb21wX2RhdGEpOwogCXJldHVybiBFUlJfUFRSKGVy cik7CiB9CiAKQEAgLTYxMCw3ICs2MTEsNyBAQCB2b2lkIG1seGZ3X21mYTJfZmlsZV9jb21wb25l bnRfcHV0KHN0cnVjdCBtbHhmd19tZmEyX2NvbXBvbmVudCAqY29tcCkKIAljb25zdCBzdHJ1Y3Qg bWx4ZndfbWZhMl9jb21wX2RhdGEgKmNvbXBfZGF0YTsKIAogCWNvbXBfZGF0YSA9IGNvbnRhaW5l cl9vZihjb21wLCBzdHJ1Y3QgbWx4ZndfbWZhMl9jb21wX2RhdGEsIGNvbXApOwotCWtmcmVlKGNv bXBfZGF0YSk7CisJdmZyZWUoY29tcF9kYXRhKTsKIH0KIAogdm9pZCBtbHhmd19tZmEyX2ZpbGVf ZmluaShzdHJ1Y3QgbWx4ZndfbWZhMl9maWxlICptZmEyX2ZpbGUpCi0tIAoyLjIwLjEKCgpGcm9t IDJmYzI4NGVhMjQyOTRiYjRiODhjZjcyNDUxNzIyYzhiY2RlMWU2NWMgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IE1hcnRpbiBCbHVtZW5zdGluZ2wgPG1hcnRpbi5ibHVtZW5zdGluZ2xA Z29vZ2xlbWFpbC5jb20+CkRhdGU6IFRodSwgMjYgRGVjIDIwMTkgMjA6MDE6MDEgKzAxMDAKU3Vi amVjdDogW1BBVENIIDAzLzIzXSBuZXQ6IHN0bW1hYzogZHdtYWMtbWVzb244YjogRml4IHRoZSBS R01JSSBUWCBkZWxheSBvbgogTWVzb244Yi84bTIgU29DcwoKWyBVcHN0cmVhbSBjb21taXQgYmQ2 ZjQ4NTQ2YjljYjdhNzg1MzQ0ZmM3ODA1OGM0MjA5MjNkN2VkOCBdCgpHWEJCIGFuZCBuZXdlciBT b0NzIHVzZSB0aGUgZml4ZWQgRkNMS19ESVYyICgxR0h6KSBjbG9jayBhcyBpbnB1dCBmb3IKdGhl IG0yNTBfc2VsIGNsb2NrLiBNZXNvbjhiIGFuZCBNZXNvbjhtMiB1c2UgTVBMTDIgaW5zdGVhZCwg d2hvc2UgcmF0ZQpjYW4gYmUgYWRqdXN0ZWQgYXQgcnVudGltZS4KClNvIGZhciB3ZSBoYXZlIGJl ZW4gcnVubmluZyBNUExMMiB3aXRoIH4yNTBNSHogKGFuZCB0aGUgaW50ZXJuYWwKbTI1MF9kaXYg d2l0aCB2YWx1ZSAxKSwgd2hpY2ggd29ya2VkIGVub3VnaCB0aGF0IHdlIGNvdWxkIHRyYW5zZmVy IGRhdGEKd2l0aCBhbiBUWCBkZWxheSBvZiA0bnMuIFVuZm9ydHVuYXRlbHkgdGhlcmUgaXMgaGln aCBwYWNrZXQgbG9zcyB3aXRoCmFuIFJHTUlJIFBIWSB3aGVuIHRyYW5zZmVycmluZyBkYXRhIChy ZWNlaXZpbmcgZGF0YSB3b3JrcyBmaW5lIHRob3VnaCkuCk9kcm9pZC1DMSdzIHUtYm9vdCBpcyBy dW5uaW5nIHdpdGggYSBUWCBkZWxheSBvZiBvbmx5IDJucyBhcyB3ZWxsIGFzCnRoZSBpbnRlcm5h bCBtMjUwX2RpdiBzZXQgdG8gMiAtIG5vIGxvc3QgKFRYKSBwYWNrZXRzIGNhbiBiZSBvYnNlcnZl ZAp3aXRoIHRoYXQgc2V0dGluZyBpbiB1LWJvb3QuCgpNYW51YWwgdGVzdGluZyBoYXMgc2hvd24g dGhhdCB0aGUgVFggcGFja2V0IGxvc3MgZ29lcyBhd2F5IHdoZW4gdXNpbmcKdGhlIGZvbGxvd2lu ZyBzZXR0aW5ncyBpbiBMaW51eCAodGhlIHZlbmRvciBrZXJuZWwgdXNlcyB0aGUgc2FtZQpzZXR0 aW5ncyk6Ci0gTVBMTDIgY2xvY2sgc2V0IHRvIH41MDBNSHoKLSBtMjUwX2RpdiBzZXQgdG8gMgot IFRYIGRlbGF5IHNldCB0byAybnMgb24gdGhlIE1BQyBzaWRlCgpVcGRhdGUgdGhlIG0yNTBfZGl2 IGRpdmlkZXIgc2V0dGluZ3MgdG8gb25seSBhY2NlcHQgZGl2aWRlcnMgZ3JlYXRlciBvcgplcXVh bCAyIHRvIGZpeCB0aGUgVFggZGVsYXkgZ2VuZXJhdGVkIGJ5IHRoZSBNQUMuCgppcGVyZjMgcmVz dWx0cyBiZWZvcmUgdGhlIGNoYW5nZToKWyBJRF0gSW50ZXJ2YWwgICAgICAgICAgIFRyYW5zZmVy ICAgICBCaXRyYXRlICAgICAgICAgUmV0cgpbICA1XSAgIDAuMDAtMTAuMDAgIHNlYyAgIDE4MiBN Qnl0ZXMgICAxNTMgTWJpdHMvc2VjICA1MTQgICAgICBzZW5kZXIKWyAgNV0gICAwLjAwLTEwLjAw ICBzZWMgICAxODIgTUJ5dGVzICAgMTUyIE1iaXRzL3NlYyAgICAgICAgICAgcmVjZWl2ZXIKCmlw ZXJmMyByZXN1bHRzIGFmdGVyIHRoZSBjaGFuZ2UgKGluY2x1ZGluZyBhbiB1cGRhdGVkIFRYIGRl bGF5IG9mIDJucyk6ClsgSURdIEludGVydmFsICAgICAgICAgICBUcmFuc2ZlciAgICAgQml0cmF0 ZSAgICAgICAgIFJldHIgIEN3bmQKWyAgNV0gICAwLjAwLTEwLjAwICBzZWMgICA5MjcgTUJ5dGVz ICAgNzc4IE1iaXRzL3NlYyAgICAwICAgICAgc2VuZGVyClsgIDVdICAgMC4wMC0xMC4wMSAgc2Vj ICAgOTI3IE1CeXRlcyAgIDc3NyBNYml0cy9zZWMgICAgICAgICAgIHJlY2VpdmVyCgpGaXhlczog NGY2YTcxYjg0ZTFhZmQgKCJuZXQ6IHN0bW1hYzogZHdtYWMtbWVzb244YjogZml4IGludGVybmFs IFJHTUlJIGNsb2NrIGNvbmZpZ3VyYXRpb24iKQpTaWduZWQtb2ZmLWJ5OiBNYXJ0aW4gQmx1bWVu c3RpbmdsIDxtYXJ0aW4uYmx1bWVuc3RpbmdsQGdvb2dsZW1haWwuY29tPgpSZXZpZXdlZC1ieTog QW5kcmV3IEx1bm4gPGFuZHJld0BsdW5uLmNoPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxs ZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogLi4uL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0 bW1hYy9kd21hYy1tZXNvbjhiLmMgICAgfCAxNCArKysrKysrKysrKy0tLQogMSBmaWxlIGNoYW5n ZWQsIDExIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbWVzb244Yi5jIGIvZHJpdmVycy9u ZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbWVzb244Yi5jCmluZGV4IGM1OTc5NTY5 ZmQ2MC4uOTRiNDYyNThlOGZmIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1p Y3JvL3N0bW1hYy9kd21hYy1tZXNvbjhiLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3Rt aWNyby9zdG1tYWMvZHdtYWMtbWVzb244Yi5jCkBAIC0xMTgsNiArMTE4LDE0IEBAIHN0YXRpYyBp bnQgbWVzb244Yl9pbml0X3JnbWlpX3R4X2NsayhzdHJ1Y3QgbWVzb244Yl9kd21hYyAqZHdtYWMp CiAJc3RydWN0IGRldmljZSAqZGV2ID0gZHdtYWMtPmRldjsKIAljb25zdCBjaGFyICpwYXJlbnRf bmFtZSwgKm11eF9wYXJlbnRfbmFtZXNbTVVYX0NMS19OVU1fUEFSRU5UU107CiAJc3RydWN0IG1l c29uOGJfZHdtYWNfY2xrX2NvbmZpZ3MgKmNsa19jb25maWdzOworCXN0YXRpYyBjb25zdCBzdHJ1 Y3QgY2xrX2Rpdl90YWJsZSBkaXZfdGFibGVbXSA9IHsKKwkJeyAuZGl2ID0gMiwgLnZhbCA9IDIs IH0sCisJCXsgLmRpdiA9IDMsIC52YWwgPSAzLCB9LAorCQl7IC5kaXYgPSA0LCAudmFsID0gNCwg fSwKKwkJeyAuZGl2ID0gNSwgLnZhbCA9IDUsIH0sCisJCXsgLmRpdiA9IDYsIC52YWwgPSA2LCB9 LAorCQl7IC5kaXYgPSA3LCAudmFsID0gNywgfSwKKwl9OwogCiAJY2xrX2NvbmZpZ3MgPSBkZXZt X2t6YWxsb2MoZGV2LCBzaXplb2YoKmNsa19jb25maWdzKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFj bGtfY29uZmlncykKQEAgLTE1Miw5ICsxNjAsOSBAQCBzdGF0aWMgaW50IG1lc29uOGJfaW5pdF9y Z21paV90eF9jbGsoc3RydWN0IG1lc29uOGJfZHdtYWMgKmR3bWFjKQogCWNsa19jb25maWdzLT5t MjUwX2Rpdi5yZWcgPSBkd21hYy0+cmVncyArIFBSR19FVEgwOwogCWNsa19jb25maWdzLT5tMjUw X2Rpdi5zaGlmdCA9IFBSR19FVEgwX0NMS19NMjUwX0RJVl9TSElGVDsKIAljbGtfY29uZmlncy0+ bTI1MF9kaXYud2lkdGggPSBQUkdfRVRIMF9DTEtfTTI1MF9ESVZfV0lEVEg7Ci0JY2xrX2NvbmZp Z3MtPm0yNTBfZGl2LmZsYWdzID0gQ0xLX0RJVklERVJfT05FX0JBU0VEIHwKLQkJCQlDTEtfRElW SURFUl9BTExPV19aRVJPIHwKLQkJCQlDTEtfRElWSURFUl9ST1VORF9DTE9TRVNUOworCWNsa19j b25maWdzLT5tMjUwX2Rpdi50YWJsZSA9IGRpdl90YWJsZTsKKwljbGtfY29uZmlncy0+bTI1MF9k aXYuZmxhZ3MgPSBDTEtfRElWSURFUl9BTExPV19aRVJPIHwKKwkJCQkgICAgICBDTEtfRElWSURF Ul9ST1VORF9DTE9TRVNUOwogCWNsayA9IG1lc29uOGJfZHdtYWNfcmVnaXN0ZXJfY2xrKGR3bWFj LCAibTI1MF9kaXYiLCAmcGFyZW50X25hbWUsIDEsCiAJCQkJCSAmY2xrX2RpdmlkZXJfb3BzLAog CQkJCQkgJmNsa19jb25maWdzLT5tMjUwX2Rpdi5odyk7Ci0tIAoyLjIwLjEKCgpGcm9tIDJlMDJl N2EwNDk3M2YyZDU5ODU0YjFmMDI1ZTI3Yzk3YjdiN2NlZDIgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IFZsYWRpcyBEcm9ub3YgPHZkcm9ub3ZAcmVkaGF0LmNvbT4KRGF0ZTogRnJpLCAy NyBEZWMgMjAxOSAwMzoyNjoyNyArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMDQvMjNdIHB0cDogZml4 IHRoZSByYWNlIGJldHdlZW4gdGhlIHJlbGVhc2Ugb2YgcHRwX2Nsb2NrIGFuZAogY2RldgoKWyBV cHN0cmVhbSBjb21taXQgYTMzMTIxZTU0ODdiNDI0MzM5NjM2YjI1YzM1ZDNhMTgwZWFhNWY1ZSBd CgpJbiBhIGNhc2Ugd2hlbiBhIHB0cCBjaGFyZGV2IChsaWtlIC9kZXYvcHRwMCkgaXMgb3BlbiBi dXQgYW4gdW5kZXJseWluZwpkZXZpY2UgaXMgcmVtb3ZlZCwgY2xvc2luZyB0aGlzIGZpbGUgbGVh ZHMgdG8gYSByYWNlLiBUaGlzIHJlcHJvZHVjZXMKZWFzaWx5IGluIGEga3ZtIHZpcnR1YWwgbWFj aGluZToKCnRzIyBjYXQgb3BlbnB0cDAuYwppbnQgbWFpbigpIHsgLi4uIGZwID0gZm9wZW4oIi9k ZXYvcHRwMCIsICJyIik7IC4uLiBzbGVlcCgxMCk7IH0KdHMjIHVuYW1lIC1yCjUuNS4wLXJjMy00 NmNmMDUzZQp0cyMgY2F0IC9wcm9jL2NtZGxpbmUKLi4uIHNsdWJfZGVidWc9RlpQCnRzIyBtb2Rw cm9iZSBwdHBfa3ZtCnRzIyAuL29wZW5wdHAwICYKWzFdIDY3MApvcGVuZWQgL2Rldi9wdHAwLCBz bGVlcGluZyAxMHMuLi4KdHMjIHJtbW9kIHB0cF9rdm0KdHMjIGxzIC9kZXYvcHRwKgpsczogY2Fu bm90IGFjY2VzcyAnL2Rldi9wdHAqJzogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQp0cyMgLi4u d29rZW4gdXAKWyAgIDQ4LjAxMDgwOV0gZ2VuZXJhbCBwcm90ZWN0aW9uIGZhdWx0OiAwMDAwIFsj MV0gU01QClsgICA0OC4wMTI1MDJdIENQVTogNiBQSUQ6IDY1OCBDb21tOiBvcGVucHRwMCBOb3Qg dGFpbnRlZCA1LjUuMC1yYzMtNDZjZjA1M2UgIzI1ClsgICA0OC4wMTQ2MjRdIEhhcmR3YXJlIG5h bWU6IFFFTVUgU3RhbmRhcmQgUEMgKGk0NDBGWCArIFBJSVgsIDE5OTYpLCAuLi4KWyAgIDQ4LjAx NjI3MF0gUklQOiAwMDEwOm1vZHVsZV9wdXQucGFydC4wKzB4Ny8weDgwClsgICA0OC4wMTc5Mzld IFJTUDogMDAxODpmZmZmYjM4NTAwNzNiZTAwIEVGTEFHUzogMDAwMTAyMDIKWyAgIDQ4LjAxODMz OV0gUkFYOiAwMDAwMDAwMDZiNmI2YjZiIFJCWDogNmI2YjZiNmI2YjZiNmI2YiBSQ1g6IGZmZmY4 OWE0NzZjMDBhZDAKWyAgIDQ4LjAxODkzNl0gUkRYOiBmZmZmZjY1YTA4ZDNlYTA4IFJTSTogMDAw MDAwMDAwMDAwMDI0NyBSREk6IDZiNmI2YjZiNmI2YjZiNmIKWyAgIDQ4LjAxOTQ3MF0gLi4uICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5eXiBhIHNsdWIgcG9p c29uClsgICA0OC4wMjM4NTRdIENhbGwgVHJhY2U6ClsgICA0OC4wMjQwNTBdICBfX2ZwdXQrMHgy MWYvMHgyNDAKWyAgIDQ4LjAyNDI4OF0gIHRhc2tfd29ya19ydW4rMHg3OS8weDkwClsgICA0OC4w MjQ1NTVdICBkb19leGl0KzB4MmFmLzB4YWIwClsgICA0OC4wMjQ3OTldICA/IHZmc193cml0ZSsw eDE2YS8weDE5MApbICAgNDguMDI1MDgyXSAgZG9fZ3JvdXBfZXhpdCsweDM1LzB4OTAKWyAgIDQ4 LjAyNTM4N10gIF9feDY0X3N5c19leGl0X2dyb3VwKzB4Zi8weDEwClsgICA0OC4wMjU3MzddICBk b19zeXNjYWxsXzY0KzB4M2QvMHgxMzAKWyAgIDQ4LjAyNjA1Nl0gIGVudHJ5X1NZU0NBTExfNjRf YWZ0ZXJfaHdmcmFtZSsweDQ0LzB4YTkKWyAgIDQ4LjAyNjQ3OV0gUklQOiAwMDMzOjB4N2Y1M2Ix MjA4MmY2ClsgICA0OC4wMjY3OTJdIC4uLgpbICAgNDguMDMwOTQ1XSBNb2R1bGVzIGxpbmtlZCBp bjogcHRwIGk2MzAwZXNiIHdhdGNoZG9nIFtsYXN0IHVubG9hZGVkOiBwdHBfa3ZtXQpbICAgNDgu MDQ1MDAxXSBGaXhpbmcgcmVjdXJzaXZlIGZhdWx0IGJ1dCByZWJvb3QgaXMgbmVlZGVkIQoKVGhp cyBoYXBwZW5zIGluOgoKc3RhdGljIHZvaWQgX19mcHV0KHN0cnVjdCBmaWxlICpmaWxlKQp7ICAg Li4uCiAgICBpZiAoZmlsZS0+Zl9vcC0+cmVsZWFzZSkKICAgICAgICBmaWxlLT5mX29wLT5yZWxl YXNlKGlub2RlLCBmaWxlKTsgPDw8IGNkZXYgaXMga2ZyZWUnZCBoZXJlCiAgICBpZiAodW5saWtl bHkoU19JU0NIUihpbm9kZS0+aV9tb2RlKSAmJiBpbm9kZS0+aV9jZGV2ICE9IE5VTEwgJiYKICAg ICAgICAgICAgICEobW9kZSAmIEZNT0RFX1BBVEgpKSkgewogICAgICAgIGNkZXZfcHV0KGlub2Rl LT5pX2NkZXYpOyA8PDwgY2RldiBmaWVsZHMgYXJlIGFjY2Vzc2VkIGhlcmUKCk5hbWVseToKCl9f ZnB1dCgpCiAgcG9zaXhfY2xvY2tfcmVsZWFzZSgpCiAgICBrcmVmX3B1dCgmY2xrLT5rcmVmLCBk ZWxldGVfY2xvY2spIDw8PCB0aGUgbGFzdCByZWZlcmVuY2UKICAgICAgZGVsZXRlX2Nsb2NrKCkK ICAgICAgICBkZWxldGVfcHRwX2Nsb2NrKCkKICAgICAgICAgIGtmcmVlKHB0cCkgPDw8IGNkZXYg aXMgZW1iZWRkZWQgaW4gcHRwCiAgY2Rldl9wdXQKICAgIG1vZHVsZV9wdXQocC0+b3duZXIpIDw8 PCAqcCBpcyBrZnJlZSdkLCBiYW5nIQoKSGVyZSBjZGV2IGlzIGVtYmVkZGVkIGluIHBvc2l4X2Ns b2NrIHdoaWNoIGlzIGVtYmVkZGVkIGluIHB0cF9jbG9jay4KVGhlIHJhY2UgaGFwcGVucyBiZWNh dXNlIHB0cF9jbG9jaydzIGxpZmV0aW1lIGlzIGNvbnRyb2xsZWQgYnkgdHdvCnJlZmNvdW50czog a3JlZiBhbmQgY2Rldi5rb2JqIGluIHBvc2l4X2Nsb2NrLiBUaGlzIGlzIHdyb25nLgoKTWFrZSBw dHBfY2xvY2sncyBzeXNmcyBkZXZpY2UgYSBwYXJlbnQgb2YgY2RldiB3aXRoIGNkZXZfZGV2aWNl X2FkZCgpCmNyZWF0ZWQgZXNwZWNpYWxseSBmb3Igc3VjaCBjYXNlcy4gVGhpcyB3YXkgdGhlIHBh cmVudCBkZXZpY2Ugd2l0aCBpdHMKcHRwX2Nsb2NrIGlzIG5vdCByZWxlYXNlZCB1bnRpbCBhbGwg cmVmZXJlbmNlcyB0byB0aGUgY2RldiBhcmUgcmVsZWFzZWQuClRoaXMgYWRkcyBhIHJlcXVpcmVt ZW50IHRoYXQgYW4gaW5pdGlhbGl6ZWQgYnV0IG5vdCBleHBvc2VkIHN0cnVjdApkZXZpY2Ugc2hv dWxkIGJlIHByb3ZpZGVkIHRvIHBvc2l4X2Nsb2NrX3JlZ2lzdGVyKCkgYnkgYSBjYWxsZXIgaW5z dGVhZApvZiBhIHNpbXBsZSBkZXZfdC4KClRoaXMgYXBwcm9hY2ggd2FzIGFkb3B0ZWQgZnJvbSB0 aGUgY29tbWl0IDcyMTM5ZGZhMjQ2NCAoIndhdGNoZG9nOiBGaXgKdGhlIHJhY2UgYmV0d2VlbiB0 aGUgcmVsZWFzZSBvZiB3YXRjaGRvZ19jb3JlX2RhdGEgYW5kIGNkZXYiKS4gU2VlCmRldGFpbHMg b2YgdGhlIGltcGxlbWVudGF0aW9uIGluIHRoZSBjb21taXQgMjMzZWQwOWQ3ZmRhICgiY2hhcmRl djogYWRkCmhlbHBlciBmdW5jdGlvbiB0byByZWdpc3RlciBjaGFyIGRldnMgd2l0aCBhIHN0cnVj dCBkZXZpY2UiKS4KCkxpbms6IGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL2xpbnV4LWZzZGV2ZWwv MjAxOTExMjUxMjUzNDIuNjE4OS0xLXZkcm9ub3ZAcmVkaGF0LmNvbS9ULyN1CkFuYWx5emVkLWJ5 OiBTdGVwaGVuIEpvaG5zdG9uIDxzam9obnN0b0ByZWRoYXQuY29tPgpBbmFseXplZC1ieTogVmVy biBMb3Zlam95IDx2bG92ZWpveUByZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBWbGFkaXMgRHJv bm92IDx2ZHJvbm92QHJlZGhhdC5jb20+CkFja2VkLWJ5OiBSaWNoYXJkIENvY2hyYW4gPHJpY2hh cmRjb2NocmFuQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZl bUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvcHRwL3B0cF9jbG9jay5jICAgICB8IDMxICsr KysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvcHRwL3B0cF9wcml2YXRlLmgg ICB8ICAyICstCiBpbmNsdWRlL2xpbnV4L3Bvc2l4LWNsb2NrLmggfCAxOSArKysrKysrKysrKy0t LS0tLS0tCiBrZXJuZWwvdGltZS9wb3NpeC1jbG9jay5jICAgfCAzMSArKysrKysrKysrKysrLS0t LS0tLS0tLS0tLS0tLS0tCiA0IGZpbGVzIGNoYW5nZWQsIDM5IGluc2VydGlvbnMoKyksIDQ0IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcHRwL3B0cF9jbG9jay5jIGIvZHJpdmVy cy9wdHAvcHRwX2Nsb2NrLmMKaW5kZXggYzY0OTAzYTU5NzhmLi5iODE4ZjY1NDgwYzEgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvcHRwL3B0cF9jbG9jay5jCisrKyBiL2RyaXZlcnMvcHRwL3B0cF9jbG9j ay5jCkBAIC0xNzUsOSArMTc1LDkgQEAgc3RhdGljIHN0cnVjdCBwb3NpeF9jbG9ja19vcGVyYXRp b25zIHB0cF9jbG9ja19vcHMgPSB7CiAJLnJlYWQJCT0gcHRwX3JlYWQsCiB9OwogCi1zdGF0aWMg dm9pZCBkZWxldGVfcHRwX2Nsb2NrKHN0cnVjdCBwb3NpeF9jbG9jayAqcGMpCitzdGF0aWMgdm9p ZCBwdHBfY2xvY2tfcmVsZWFzZShzdHJ1Y3QgZGV2aWNlICpkZXYpCiB7Ci0Jc3RydWN0IHB0cF9j bG9jayAqcHRwID0gY29udGFpbmVyX29mKHBjLCBzdHJ1Y3QgcHRwX2Nsb2NrLCBjbG9jayk7CisJ c3RydWN0IHB0cF9jbG9jayAqcHRwID0gY29udGFpbmVyX29mKGRldiwgc3RydWN0IHB0cF9jbG9j aywgZGV2KTsKIAogCW11dGV4X2Rlc3Ryb3koJnB0cC0+dHNldnFfbXV4KTsKIAltdXRleF9kZXN0 cm95KCZwdHAtPnBpbmNmZ19tdXgpOwpAQCAtMjIyLDcgKzIyMiw2IEBAIHN0cnVjdCBwdHBfY2xv Y2sgKnB0cF9jbG9ja19yZWdpc3RlcihzdHJ1Y3QgcHRwX2Nsb2NrX2luZm8gKmluZm8sCiAJfQog CiAJcHRwLT5jbG9jay5vcHMgPSBwdHBfY2xvY2tfb3BzOwotCXB0cC0+Y2xvY2sucmVsZWFzZSA9 IGRlbGV0ZV9wdHBfY2xvY2s7CiAJcHRwLT5pbmZvID0gaW5mbzsKIAlwdHAtPmRldmlkID0gTUtE RVYobWFqb3IsIGluZGV4KTsKIAlwdHAtPmluZGV4ID0gaW5kZXg7CkBAIC0yNDksMTUgKzI0OCw2 IEBAIHN0cnVjdCBwdHBfY2xvY2sgKnB0cF9jbG9ja19yZWdpc3RlcihzdHJ1Y3QgcHRwX2Nsb2Nr X2luZm8gKmluZm8sCiAJaWYgKGVycikKIAkJZ290byBub19waW5fZ3JvdXBzOwogCi0JLyogQ3Jl YXRlIGEgbmV3IGRldmljZSBpbiBvdXIgY2xhc3MuICovCi0JcHRwLT5kZXYgPSBkZXZpY2VfY3Jl YXRlX3dpdGhfZ3JvdXBzKHB0cF9jbGFzcywgcGFyZW50LCBwdHAtPmRldmlkLAotCQkJCQkgICAg IHB0cCwgcHRwLT5waW5fYXR0cl9ncm91cHMsCi0JCQkJCSAgICAgInB0cCVkIiwgcHRwLT5pbmRl eCk7Ci0JaWYgKElTX0VSUihwdHAtPmRldikpIHsKLQkJZXJyID0gUFRSX0VSUihwdHAtPmRldik7 Ci0JCWdvdG8gbm9fZGV2aWNlOwotCX0KLQogCS8qIFJlZ2lzdGVyIGEgbmV3IFBQUyBzb3VyY2Uu ICovCiAJaWYgKGluZm8tPnBwcykgewogCQlzdHJ1Y3QgcHBzX3NvdXJjZV9pbmZvIHBwczsKQEAg LTI3Myw4ICsyNjMsMTggQEAgc3RydWN0IHB0cF9jbG9jayAqcHRwX2Nsb2NrX3JlZ2lzdGVyKHN0 cnVjdCBwdHBfY2xvY2tfaW5mbyAqaW5mbywKIAkJfQogCX0KIAotCS8qIENyZWF0ZSBhIHBvc2l4 IGNsb2NrLiAqLwotCWVyciA9IHBvc2l4X2Nsb2NrX3JlZ2lzdGVyKCZwdHAtPmNsb2NrLCBwdHAt PmRldmlkKTsKKwkvKiBJbml0aWFsaXplIGEgbmV3IGRldmljZSBvZiBvdXIgY2xhc3MgaW4gb3Vy IGNsb2NrIHN0cnVjdHVyZS4gKi8KKwlkZXZpY2VfaW5pdGlhbGl6ZSgmcHRwLT5kZXYpOworCXB0 cC0+ZGV2LmRldnQgPSBwdHAtPmRldmlkOworCXB0cC0+ZGV2LmNsYXNzID0gcHRwX2NsYXNzOwor CXB0cC0+ZGV2LnBhcmVudCA9IHBhcmVudDsKKwlwdHAtPmRldi5ncm91cHMgPSBwdHAtPnBpbl9h dHRyX2dyb3VwczsKKwlwdHAtPmRldi5yZWxlYXNlID0gcHRwX2Nsb2NrX3JlbGVhc2U7CisJZGV2 X3NldF9kcnZkYXRhKCZwdHAtPmRldiwgcHRwKTsKKwlkZXZfc2V0X25hbWUoJnB0cC0+ZGV2LCAi cHRwJWQiLCBwdHAtPmluZGV4KTsKKworCS8qIENyZWF0ZSBhIHBvc2l4IGNsb2NrIGFuZCBsaW5r IGl0IHRvIHRoZSBkZXZpY2UuICovCisJZXJyID0gcG9zaXhfY2xvY2tfcmVnaXN0ZXIoJnB0cC0+ Y2xvY2ssICZwdHAtPmRldik7CiAJaWYgKGVycikgewogCQlwcl9lcnIoImZhaWxlZCB0byBjcmVh dGUgcG9zaXggY2xvY2tcbiIpOwogCQlnb3RvIG5vX2Nsb2NrOwpAQCAtMjg2LDggKzI4Niw2IEBA IHN0cnVjdCBwdHBfY2xvY2sgKnB0cF9jbG9ja19yZWdpc3RlcihzdHJ1Y3QgcHRwX2Nsb2NrX2lu Zm8gKmluZm8sCiAJaWYgKHB0cC0+cHBzX3NvdXJjZSkKIAkJcHBzX3VucmVnaXN0ZXJfc291cmNl KHB0cC0+cHBzX3NvdXJjZSk7CiBub19wcHM6Ci0JZGV2aWNlX2Rlc3Ryb3kocHRwX2NsYXNzLCBw dHAtPmRldmlkKTsKLW5vX2RldmljZToKIAlwdHBfY2xlYW51cF9waW5fZ3JvdXBzKHB0cCk7CiBu b19waW5fZ3JvdXBzOgogCWlmIChwdHAtPmt3b3JrZXIpCkBAIC0zMTcsNyArMzE1LDYgQEAgaW50 IHB0cF9jbG9ja191bnJlZ2lzdGVyKHN0cnVjdCBwdHBfY2xvY2sgKnB0cCkKIAlpZiAocHRwLT5w cHNfc291cmNlKQogCQlwcHNfdW5yZWdpc3Rlcl9zb3VyY2UocHRwLT5wcHNfc291cmNlKTsKIAot CWRldmljZV9kZXN0cm95KHB0cF9jbGFzcywgcHRwLT5kZXZpZCk7CiAJcHRwX2NsZWFudXBfcGlu X2dyb3VwcyhwdHApOwogCiAJcG9zaXhfY2xvY2tfdW5yZWdpc3RlcigmcHRwLT5jbG9jayk7CmRp ZmYgLS1naXQgYS9kcml2ZXJzL3B0cC9wdHBfcHJpdmF0ZS5oIGIvZHJpdmVycy9wdHAvcHRwX3By aXZhdGUuaAppbmRleCBjN2M2MmI3ODJjYjkuLjA1ZjZiNmE5YmJkNSAxMDA2NDQKLS0tIGEvZHJp dmVycy9wdHAvcHRwX3ByaXZhdGUuaAorKysgYi9kcml2ZXJzL3B0cC9wdHBfcHJpdmF0ZS5oCkBA IC00MSw3ICs0MSw3IEBAIHN0cnVjdCB0aW1lc3RhbXBfZXZlbnRfcXVldWUgewogCiBzdHJ1Y3Qg cHRwX2Nsb2NrIHsKIAlzdHJ1Y3QgcG9zaXhfY2xvY2sgY2xvY2s7Ci0Jc3RydWN0IGRldmljZSAq ZGV2OworCXN0cnVjdCBkZXZpY2UgZGV2OwogCXN0cnVjdCBwdHBfY2xvY2tfaW5mbyAqaW5mbzsK IAlkZXZfdCBkZXZpZDsKIAlpbnQgaW5kZXg7IC8qIGluZGV4IGludG8gY2xvY2tzLm1hcCAqLwpk aWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9wb3NpeC1jbG9jay5oIGIvaW5jbHVkZS9saW51eC9w b3NpeC1jbG9jay5oCmluZGV4IDNhM2JjNzEwMTdkNS4uMDNjYjFmMjFiMGUwIDEwMDY0NAotLS0g YS9pbmNsdWRlL2xpbnV4L3Bvc2l4LWNsb2NrLmgKKysrIGIvaW5jbHVkZS9saW51eC9wb3NpeC1j bG9jay5oCkBAIC04MiwyOSArODIsMzIgQEAgc3RydWN0IHBvc2l4X2Nsb2NrX29wZXJhdGlvbnMg ewogICoKICAqIEBvcHM6ICAgICBGdW5jdGlvbmFsIGludGVyZmFjZSB0byB0aGUgY2xvY2sKICAq IEBjZGV2OiAgICBDaGFyYWN0ZXIgZGV2aWNlIGluc3RhbmNlIGZvciB0aGlzIGNsb2NrCi0gKiBA a3JlZjogICAgUmVmZXJlbmNlIGNvdW50LgorICogQGRldjogICAgIFBvaW50ZXIgdG8gdGhlIGNs b2NrJ3MgZGV2aWNlLgogICogQHJ3c2VtOiAgIFByb3RlY3RzIHRoZSAnem9tYmllJyBmaWVsZCBm cm9tIGNvbmN1cnJlbnQgYWNjZXNzLgogICogQHpvbWJpZTogIElmICd6b21iaWUnIGlzIHRydWUs IHRoZW4gdGhlIGhhcmR3YXJlIGhhcyBkaXNhcHBlYXJlZC4KLSAqIEByZWxlYXNlOiBBIGZ1bmN0 aW9uIHRvIGZyZWUgdGhlIHN0cnVjdHVyZSB3aGVuIHRoZSByZWZlcmVuY2UgY291bnQgcmVhY2hl cwotICogICAgICAgICAgIHplcm8uIE1heSBiZSBOVUxMIGlmIHN0cnVjdHVyZSBpcyBzdGF0aWNh bGx5IGFsbG9jYXRlZC4KICAqCiAgKiBEcml2ZXJzIHNob3VsZCBlbWJlZCB0aGVpciBzdHJ1Y3Qg cG9zaXhfY2xvY2sgd2l0aGluIGEgcHJpdmF0ZQogICogc3RydWN0dXJlLCBvYnRhaW5pbmcgYSBy ZWZlcmVuY2UgdG8gaXQgZHVyaW5nIGNhbGxiYWNrcyB1c2luZwogICogY29udGFpbmVyX29mKCku CisgKgorICogRHJpdmVycyBzaG91bGQgc3VwcGx5IGFuIGluaXRpYWxpemVkIGJ1dCBub3QgZXhw b3NlZCBzdHJ1Y3QgZGV2aWNlCisgKiB0byBwb3NpeF9jbG9ja19yZWdpc3RlcigpLiBJdCBpcyB1 c2VkIHRvIG1hbmFnZSBsaWZldGltZSBvZiB0aGUKKyAqIGRyaXZlcidzIHByaXZhdGUgc3RydWN0 dXJlLiBJdCdzICdyZWxlYXNlJyBmaWVsZCBzaG91bGQgYmUgc2V0IHRvCisgKiBhIHJlbGVhc2Ug ZnVuY3Rpb24gZm9yIHRoaXMgcHJpdmF0ZSBzdHJ1Y3R1cmUuCiAgKi8KIHN0cnVjdCBwb3NpeF9j bG9jayB7CiAJc3RydWN0IHBvc2l4X2Nsb2NrX29wZXJhdGlvbnMgb3BzOwogCXN0cnVjdCBjZGV2 IGNkZXY7Ci0Jc3RydWN0IGtyZWYga3JlZjsKKwlzdHJ1Y3QgZGV2aWNlICpkZXY7CiAJc3RydWN0 IHJ3X3NlbWFwaG9yZSByd3NlbTsKIAlib29sIHpvbWJpZTsKLQl2b2lkICgqcmVsZWFzZSkoc3Ry dWN0IHBvc2l4X2Nsb2NrICpjbGspOwogfTsKIAogLyoqCiAgKiBwb3NpeF9jbG9ja19yZWdpc3Rl cigpIC0gcmVnaXN0ZXIgYSBuZXcgY2xvY2sKLSAqIEBjbGs6ICAgUG9pbnRlciB0byB0aGUgY2xv Y2suIENhbGxlciBtdXN0IHByb3ZpZGUgJ29wcycgYW5kICdyZWxlYXNlJwotICogQGRldmlkOiBB bGxvY2F0ZWQgZGV2aWNlIGlkCisgKiBAY2xrOiAgIFBvaW50ZXIgdG8gdGhlIGNsb2NrLiBDYWxs ZXIgbXVzdCBwcm92aWRlICdvcHMnIGZpZWxkCisgKiBAZGV2OiAgIFBvaW50ZXIgdG8gdGhlIGlu aXRpYWxpemVkIGRldmljZS4gQ2FsbGVyIG11c3QgcHJvdmlkZQorICogICAgICAgICAncmVsZWFz ZScgZmllbGQKICAqCiAgKiBBIGNsb2NrIGRyaXZlciBjYWxscyB0aGlzIGZ1bmN0aW9uIHRvIHJl Z2lzdGVyIGl0c2VsZiB3aXRoIHRoZQogICogY2xvY2sgZGV2aWNlIHN1YnN5c3RlbS4gSWYgJ2Ns aycgcG9pbnRzIHRvIGR5bmFtaWNhbGx5IGFsbG9jYXRlZApAQCAtMTEzLDcgKzExNiw3IEBAIHN0 cnVjdCBwb3NpeF9jbG9jayB7CiAgKgogICogUmV0dXJucyB6ZXJvIG9uIHN1Y2Nlc3MsIG5vbi16 ZXJvIG90aGVyd2lzZS4KICAqLwotaW50IHBvc2l4X2Nsb2NrX3JlZ2lzdGVyKHN0cnVjdCBwb3Np eF9jbG9jayAqY2xrLCBkZXZfdCBkZXZpZCk7CitpbnQgcG9zaXhfY2xvY2tfcmVnaXN0ZXIoc3Ry dWN0IHBvc2l4X2Nsb2NrICpjbGssIHN0cnVjdCBkZXZpY2UgKmRldik7CiAKIC8qKgogICogcG9z aXhfY2xvY2tfdW5yZWdpc3RlcigpIC0gdW5yZWdpc3RlciBhIGNsb2NrCmRpZmYgLS1naXQgYS9r ZXJuZWwvdGltZS9wb3NpeC1jbG9jay5jIGIva2VybmVsL3RpbWUvcG9zaXgtY2xvY2suYwppbmRl eCBmZTU2YzRlMDZjNTEuLmM4YTg1MDFmYWU1YiAxMDA2NDQKLS0tIGEva2VybmVsL3RpbWUvcG9z aXgtY2xvY2suYworKysgYi9rZXJuZWwvdGltZS9wb3NpeC1jbG9jay5jCkBAIC0yNyw4ICsyNyw2 IEBACiAKICNpbmNsdWRlICJwb3NpeC10aW1lcnMuaCIKIAotc3RhdGljIHZvaWQgZGVsZXRlX2Ns b2NrKHN0cnVjdCBrcmVmICprcmVmKTsKLQogLyoKICAqIFJldHVybnMgTlVMTCBpZiB0aGUgcG9z aXhfY2xvY2sgaW5zdGFuY2UgYXR0YWNoZWQgdG8gJ2ZwJyBpcyBvbGQgYW5kIHN0YWxlLgogICov CkBAIC0xMzgsNyArMTM2LDcgQEAgc3RhdGljIGludCBwb3NpeF9jbG9ja19vcGVuKHN0cnVjdCBp bm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmcCkKIAkJZXJyID0gMDsKIAogCWlmICghZXJyKSB7 Ci0JCWtyZWZfZ2V0KCZjbGstPmtyZWYpOworCQlnZXRfZGV2aWNlKGNsay0+ZGV2KTsKIAkJZnAt PnByaXZhdGVfZGF0YSA9IGNsazsKIAl9CiBvdXQ6CkBAIC0xNTQsNyArMTUyLDcgQEAgc3RhdGlj IGludCBwb3NpeF9jbG9ja19yZWxlYXNlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxl ICpmcCkKIAlpZiAoY2xrLT5vcHMucmVsZWFzZSkKIAkJZXJyID0gY2xrLT5vcHMucmVsZWFzZShj bGspOwogCi0Ja3JlZl9wdXQoJmNsay0+a3JlZiwgZGVsZXRlX2Nsb2NrKTsKKwlwdXRfZGV2aWNl KGNsay0+ZGV2KTsKIAogCWZwLT5wcml2YXRlX2RhdGEgPSBOVUxMOwogCkBAIC0xNzQsMzggKzE3 MiwzNSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBwb3NpeF9jbG9ja19m aWxlX29wZXJhdGlvbnMgPSB7CiAjZW5kaWYKIH07CiAKLWludCBwb3NpeF9jbG9ja19yZWdpc3Rl cihzdHJ1Y3QgcG9zaXhfY2xvY2sgKmNsaywgZGV2X3QgZGV2aWQpCitpbnQgcG9zaXhfY2xvY2tf cmVnaXN0ZXIoc3RydWN0IHBvc2l4X2Nsb2NrICpjbGssIHN0cnVjdCBkZXZpY2UgKmRldikKIHsK IAlpbnQgZXJyOwogCi0Ja3JlZl9pbml0KCZjbGstPmtyZWYpOwogCWluaXRfcndzZW0oJmNsay0+ cndzZW0pOwogCiAJY2Rldl9pbml0KCZjbGstPmNkZXYsICZwb3NpeF9jbG9ja19maWxlX29wZXJh dGlvbnMpOworCWVyciA9IGNkZXZfZGV2aWNlX2FkZCgmY2xrLT5jZGV2LCBkZXYpOworCWlmIChl cnIpIHsKKwkJcHJfZXJyKCIlcyB1bmFibGUgdG8gYWRkIGRldmljZSAlZDolZFxuIiwKKwkJCWRl dl9uYW1lKGRldiksIE1BSk9SKGRldi0+ZGV2dCksIE1JTk9SKGRldi0+ZGV2dCkpOworCQlyZXR1 cm4gZXJyOworCX0KIAljbGstPmNkZXYub3duZXIgPSBjbGstPm9wcy5vd25lcjsKLQllcnIgPSBj ZGV2X2FkZCgmY2xrLT5jZGV2LCBkZXZpZCwgMSk7CisJY2xrLT5kZXYgPSBkZXY7CiAKLQlyZXR1 cm4gZXJyOworCXJldHVybiAwOwogfQogRVhQT1JUX1NZTUJPTF9HUEwocG9zaXhfY2xvY2tfcmVn aXN0ZXIpOwogCi1zdGF0aWMgdm9pZCBkZWxldGVfY2xvY2soc3RydWN0IGtyZWYgKmtyZWYpCi17 Ci0Jc3RydWN0IHBvc2l4X2Nsb2NrICpjbGsgPSBjb250YWluZXJfb2Yoa3JlZiwgc3RydWN0IHBv c2l4X2Nsb2NrLCBrcmVmKTsKLQotCWlmIChjbGstPnJlbGVhc2UpCi0JCWNsay0+cmVsZWFzZShj bGspOwotfQotCiB2b2lkIHBvc2l4X2Nsb2NrX3VucmVnaXN0ZXIoc3RydWN0IHBvc2l4X2Nsb2Nr ICpjbGspCiB7Ci0JY2Rldl9kZWwoJmNsay0+Y2Rldik7CisJY2Rldl9kZXZpY2VfZGVsKCZjbGst PmNkZXYsIGNsay0+ZGV2KTsKIAogCWRvd25fd3JpdGUoJmNsay0+cndzZW0pOwogCWNsay0+em9t YmllID0gdHJ1ZTsKIAl1cF93cml0ZSgmY2xrLT5yd3NlbSk7CiAKLQlrcmVmX3B1dCgmY2xrLT5r cmVmLCBkZWxldGVfY2xvY2spOworCXB1dF9kZXZpY2UoY2xrLT5kZXYpOwogfQogRVhQT1JUX1NZ TUJPTF9HUEwocG9zaXhfY2xvY2tfdW5yZWdpc3Rlcik7CiAKLS0gCjIuMjAuMQoKCkZyb20gYjRj NzM3Mjg3NTg3MDdiOWYxYWM5ZWUxZDBkZjhlOGRhZjE0NDg1ZSBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogQ2FtYmRhIFpodSA8Y2FtYmRhQGxpbnV4LmFsaWJhYmEuY29tPgpEYXRlOiBG cmksIDI3IERlYyAyMDE5IDE2OjUyOjM3ICswODAwClN1YmplY3Q6IFtQQVRDSCAwNS8yM10gdGNw OiBGaXggaGlnaGVzdF9zYWNrIGFuZCBoaWdoZXN0X3NhY2tfc2VxCgpbIFVwc3RyZWFtIGNvbW1p dCA4NTM2OTc1MDRkZTA0M2ZmMGJmZDgxNWJkM2E2NGRlMWRjZTczZGM3IF0KCj5Gcm9tIGNvbW1p dCA1MDg5NWI5ZGUxZDMgKCJ0Y3A6IGhpZ2hlc3Rfc2FjayBmaXgiKSwgdGhlIGxvZ2ljIGFib3V0 CnNldHRpbmcgdHAtPmhpZ2hlc3Rfc2FjayB0byB0aGUgaGVhZCBvZiB0aGUgc2VuZCBxdWV1ZSB3 YXMgcmVtb3ZlZC4KT2YgY291cnNlIHRoZSBsb2dpYyBpcyBlcnJvciBwcm9uZSwgYnV0IGl0IGlz IGxvZ2ljYWwuIEJlZm9yZSB3ZQpyZW1vdmUgdGhlIHBvaW50ZXIgdG8gdGhlIGhpZ2hlc3Qgc2Fj ayBza2IgYW5kIHVzZSB0aGUgc2VxIGluc3RlYWQsCndlIG5lZWQgdG8gc2V0IHRwLT5oaWdoZXN0 X3NhY2sgdG8gTlVMTCB3aGVuIHRoZXJlIGlzIG5vIHNrYiBhZnRlcgp0aGUgbGFzdCBzYWNrLCBh bmQgdGhlbiByZXBsYWNlIE5VTEwgd2l0aCB0aGUgcmVhbCBza2Igd2hlbiBuZXcgc2tiCmluc2Vy dGVkIGludG8gdGhlIHJ0eCBxdWV1ZSwgYmVjYXVzZSB0aGUgTlVMTCBtZWFucyB0aGUgaGlnaGVz dCBzYWNrCnNlcSBpcyB0cC0+c25kX254dC4gSWYgdHAtPmhpZ2hlc3Rfc2FjayBpcyBOVUxMIGFu ZCBuZXcgZGF0YSBzZW50LAp0aGUgbmV4dCBBQ0sgd2l0aCBzYWNrIG9wdGlvbiB3aWxsIGluY3Jl YXNlIHRwLT5yZW9yZGVyaW5nIHVuZXhwZWN0ZWRseS4KClRoaXMgcGF0Y2ggc2V0cyB0cC0+aGln aGVzdF9zYWNrIHRvIHRoZSB0YWlsIG9mIHRoZSBydHggcXVldWUgaWYKaXQncyBOVUxMIGFuZCBu ZXcgZGF0YSBpcyBzZW50LiBUaGUgcGF0Y2gga2VlcHMgdGhlIHJ1bGUgdGhhdCB0aGUKaGlnaGVz dF9zYWNrIGNhbiBvbmx5IGJlIG1haW50YWluZWQgYnkgc2FjayBwcm9jZXNzaW5nLCBleGNlcHQg Zm9yCnRoaXMgb25seSBjYXNlLgoKRml4ZXM6IDUwODk1YjlkZTFkMyAoInRjcDogaGlnaGVzdF9z YWNrIGZpeCIpClNpZ25lZC1vZmYtYnk6IENhbWJkYSBaaHUgPGNhbWJkYUBsaW51eC5hbGliYWJh LmNvbT4KU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpT aWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQog bmV0L2lwdjQvdGNwX291dHB1dC5jIHwgMyArKysKIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlv bnMoKykKCmRpZmYgLS1naXQgYS9uZXQvaXB2NC90Y3Bfb3V0cHV0LmMgYi9uZXQvaXB2NC90Y3Bf b3V0cHV0LmMKaW5kZXggYWQ3ODdlNzg4MmY3Li5lM2NlMWY1NmY4NDUgMTAwNjQ0Ci0tLSBhL25l dC9pcHY0L3RjcF9vdXRwdXQuYworKysgYi9uZXQvaXB2NC90Y3Bfb3V0cHV0LmMKQEAgLTYwLDYg KzYwLDkgQEAgc3RhdGljIHZvaWQgdGNwX2V2ZW50X25ld19kYXRhX3NlbnQoc3RydWN0IHNvY2sg KnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCV9fc2tiX3VubGluayhza2IsICZzay0+c2tfd3Jp dGVfcXVldWUpOwogCXRjcF9yYnRyZWVfaW5zZXJ0KCZzay0+dGNwX3J0eF9xdWV1ZSwgc2tiKTsK IAorCWlmICh0cC0+aGlnaGVzdF9zYWNrID09IE5VTEwpCisJCXRwLT5oaWdoZXN0X3NhY2sgPSBz a2I7CisKIAl0cC0+cGFja2V0c19vdXQgKz0gdGNwX3NrYl9wY291bnQoc2tiKTsKIAlpZiAoIXBy aW9yX3BhY2tldHMgfHwgaWNzay0+aWNza19wZW5kaW5nID09IElDU0tfVElNRV9MT1NTX1BST0JF KQogCQl0Y3BfcmVhcm1fcnRvKHNrKTsKLS0gCjIuMjAuMQoKCkZyb20gYTQ0N2M5ODJjZWYzN2Uy YjdmMWExOGY4YjY4Yjg5Y2UwZjlkMmE3MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog QW50b25pbyBNZXNzaW5hIDxhbWVzc2luYUBnb29nbGUuY29tPgpEYXRlOiBUaHUsIDE5IERlYyAy MDE5IDE1OjA4OjAzICswMTAwClN1YmplY3Q6IFtQQVRDSCAwNi8yM10gdWRwOiBmaXggaW50ZWdl ciBvdmVyZmxvdyB3aGlsZSBjb21wdXRpbmcgYXZhaWxhYmxlCiBzcGFjZSBpbiBza19yY3ZidWYK ClsgVXBzdHJlYW0gY29tbWl0IGZlZWQ4YTRmYzlkNDZjMzEyNmZiOWZjYWUwZTkyNDgyNzBjNjMy MWEgXQoKV2hlbiB0aGUgc2l6ZSBvZiB0aGUgcmVjZWl2ZSBidWZmZXIgZm9yIGEgc29ja2V0IGlz IGNsb3NlIHRvIDJeMzEgd2hlbgpjb21wdXRpbmcgaWYgd2UgaGF2ZSBlbm91Z2ggc3BhY2UgaW4g dGhlIGJ1ZmZlciB0byBjb3B5IGEgcGFja2V0IGZyb20KdGhlIHF1ZXVlIHRvIHRoZSBidWZmZXIg d2UgbWlnaHQgaGl0IGFuIGludGVnZXIgb3ZlcmZsb3cuCgpXaGVuIGFuIHVzZXIgc2V0IG5ldC5j b3JlLnJtZW1fZGVmYXVsdCB0byBhIHZhbHVlIGNsb3NlIHRvIDJeMzEgVURQCnBhY2tldHMgYXJl IGRyb3BwZWQgYmVjYXVzZSBvZiB0aGlzIG92ZXJmbG93LiBUaGlzIGNhbiBiZSB2aXNpYmxlLCBm b3IKaW5zdGFuY2UsIHdpdGggZmFpbHVyZSB0byByZXNvbHZlIGhvc3RuYW1lcy4KClRoaXMgY2Fu IGJlIGZpeGVkIGJ5IGNhc3Rpbmcgc2tfcmN2YnVmICh3aGljaCBpcyBhbiBpbnQpIHRvIHVuc2ln bmVkCmludCwgc2ltaWxhcmx5IHRvIGhvdyBpdCBpcyBkb25lIGluIFRDUC4KClNpZ25lZC1vZmYt Ynk6IEFudG9uaW8gTWVzc2luYSA8YW1lc3NpbmFAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTog RGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY0L3VkcC5j IHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpk aWZmIC0tZ2l0IGEvbmV0L2lwdjQvdWRwLmMgYi9uZXQvaXB2NC91ZHAuYwppbmRleCA4ODc3YmQx NDBhMGQuLjJlZWFlMDQ1NWIxNCAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvdWRwLmMKKysrIGIvbmV0 L2lwdjQvdWRwLmMKQEAgLTE0MTIsNyArMTQxMiw3IEBAIGludCBfX3VkcF9lbnF1ZXVlX3NjaGVk dWxlX3NrYihzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IpCiAJICogcXVldWUg Y29udGFpbnMgc29tZSBvdGhlciBza2IKIAkgKi8KIAlybWVtID0gYXRvbWljX2FkZF9yZXR1cm4o c2l6ZSwgJnNrLT5za19ybWVtX2FsbG9jKTsKLQlpZiAocm1lbSA+IChzaXplICsgc2stPnNrX3Jj dmJ1ZikpCisJaWYgKHJtZW0gPiAoc2l6ZSArICh1bnNpZ25lZCBpbnQpc2stPnNrX3JjdmJ1Zikp CiAJCWdvdG8gdW5jaGFyZ2VfZHJvcDsKIAogCXNwaW5fbG9jaygmbGlzdC0+bG9jayk7Ci0tIAoy LjIwLjEKCgpGcm9tIGY4ZTA5M2Y1ZjQwZTdlOGFhYTliODJjNDJlNDAwNjZjOGE3MmEyZGQgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFN0ZWZhbm8gR2FyemFyZWxsYSA8c2dhcnphcmVA cmVkaGF0LmNvbT4KRGF0ZTogRnJpLCA2IERlYyAyMDE5IDE1OjM5OjEyICswMTAwClN1YmplY3Q6 IFtQQVRDSCAwNy8yM10gdmhvc3QvdnNvY2s6IGFjY2VwdCBvbmx5IHBhY2tldHMgd2l0aCB0aGUg cmlnaHQgZHN0X2NpZAoKWyBVcHN0cmVhbSBjb21taXQgOGEzY2MyOWMzMTZjMTdkZTU5MGUzZmY4 YjU5ZjNkNmNiZmQzN2IwYSBdCgpXaGVuIHdlIHJlY2VpdmUgYSBuZXcgcGFja2V0IGZyb20gdGhl IGd1ZXN0LCB3ZSBjaGVjayBpZiB0aGUKc3JjX2NpZCBpcyBjb3JyZWN0LCBidXQgd2UgZm9yZ290 IHRvIGNoZWNrIHRoZSBkc3RfY2lkLgoKVGhlIGhvc3Qgc2hvdWxkIGFjY2VwdCBvbmx5IHBhY2tl dHMgd2hlcmUgZHN0X2NpZCBpcwplcXVhbCB0byB0aGUgaG9zdCBDSUQuCgpTaWduZWQtb2ZmLWJ5 OiBTdGVmYW5vIEdhcnphcmVsbGEgPHNnYXJ6YXJlQHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6 IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL3Zob3N0 L3Zzb2NrLmMgfCA0ICsrKy0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDEgZGVs ZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Zob3N0L3Zzb2NrLmMgYi9kcml2ZXJzL3Zo b3N0L3Zzb2NrLmMKaW5kZXggOGRjZWU0ZmFmNzAxLi41ZjVjNWRlMzFmMTAgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvdmhvc3QvdnNvY2suYworKysgYi9kcml2ZXJzL3Zob3N0L3Zzb2NrLmMKQEAgLTQz Niw3ICs0MzYsOSBAQCBzdGF0aWMgdm9pZCB2aG9zdF92c29ja19oYW5kbGVfdHhfa2ljayhzdHJ1 Y3Qgdmhvc3Rfd29yayAqd29yaykKIAkJdmlydGlvX3RyYW5zcG9ydF9kZWxpdmVyX3RhcF9wa3Qo cGt0KTsKIAogCQkvKiBPbmx5IGFjY2VwdCBjb3JyZWN0bHkgYWRkcmVzc2VkIHBhY2tldHMgKi8K LQkJaWYgKGxlNjRfdG9fY3B1KHBrdC0+aGRyLnNyY19jaWQpID09IHZzb2NrLT5ndWVzdF9jaWQp CisJCWlmIChsZTY0X3RvX2NwdShwa3QtPmhkci5zcmNfY2lkKSA9PSB2c29jay0+Z3Vlc3RfY2lk ICYmCisJCSAgICBsZTY0X3RvX2NwdShwa3QtPmhkci5kc3RfY2lkKSA9PQorCQkgICAgdmhvc3Rf dHJhbnNwb3J0X2dldF9sb2NhbF9jaWQoKSkKIAkJCXZpcnRpb190cmFuc3BvcnRfcmVjdl9wa3Qo cGt0KTsKIAkJZWxzZQogCQkJdmlydGlvX3RyYW5zcG9ydF9mcmVlX3BrdChwa3QpOwotLSAKMi4y MC4xCgoKRnJvbSA4Y2YwYzM4MDcxZGMzNjRkYjZhOWEzZTdlMjRiOGYwN2ZiZDI4YzVjIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBIYW5nYmluIExpdSA8bGl1aGFuZ2JpbkBnbWFpbC5j b20+CkRhdGU6IFN1biwgMjIgRGVjIDIwMTkgMTA6NTE6MDkgKzA4MDAKU3ViamVjdDogW1BBVENI IDA4LzIzXSBuZXQ6IGFkZCBib29sIGNvbmZpcm1fbmVpZ2ggcGFyYW1ldGVyIGZvcgogZHN0X29w cy51cGRhdGVfcG10dQoKWyBVcHN0cmVhbSBjb21taXQgYmQwODVlZjY3OGIyY2M4YzM4YzEwNTY3 M2RmZThmZjhmNWVjMGM1NyBdCgpUaGUgTVRVIHVwZGF0ZSBjb2RlIGlzIHN1cHBvc2VkIHRvIGJl IGludm9rZWQgaW4gcmVzcG9uc2UgdG8gcmVhbApuZXR3b3JraW5nIGV2ZW50cyB0aGF0IHVwZGF0 ZSB0aGUgUE1UVS4gSW4gSVB2NiBQTVRVIHVwZGF0ZSBmdW5jdGlvbgpfX2lwNl9ydF91cGRhdGVf cG10dSgpIHdlIGNhbGxlZCBkc3RfY29uZmlybV9uZWlnaCgpIHRvIHVwZGF0ZSBuZWlnaGJvcgpj b25maXJtZWQgdGltZS4KCkJ1dCBmb3IgdHVubmVsIGNvZGUsIGl0IHdpbGwgY2FsbCBwbXR1IGJl Zm9yZSB4bWl0LCBsaWtlOgogIC0gdG5sX3VwZGF0ZV9wbXR1KCkKICAgIC0gc2tiX2RzdF91cGRh dGVfcG10dSgpCiAgICAgIC0gaXA2X3J0X3VwZGF0ZV9wbXR1KCkKICAgICAgICAtIF9faXA2X3J0 X3VwZGF0ZV9wbXR1KCkKICAgICAgICAgIC0gZHN0X2NvbmZpcm1fbmVpZ2goKQoKSWYgdGhlIHR1 bm5lbCByZW1vdGUgZHN0IG1hYyBhZGRyZXNzIGNoYW5nZWQgYW5kIHdlIHN0aWxsIGRvIHRoZSBu ZWlnaApjb25maXJtLCB3ZSB3aWxsIG5vdCBiZSBhYmxlIHRvIHVwZGF0ZSBuZWlnaCBjYWNoZSBh bmQgcGluZzYgcmVtb3RlCndpbGwgZmFpbGVkLgoKU28gZm9yIHRoaXMgaXBfdHVubmVsX3htaXQo KSBjYXNlLCBfRVZFTl8gaWYgdGhlIE1UVSBpcyBjaGFuZ2VkLCB3ZQpzaG91bGQgbm90IGJlIGlu dm9raW5nIGRzdF9jb25maXJtX25laWdoKCkgYXMgd2UgaGF2ZSBubyBldmlkZW5jZQpvZiBzdWNj ZXNzZnVsIHR3by13YXkgY29tbXVuaWNhdGlvbiBhdCB0aGlzIHBvaW50LgoKT24gdGhlIG90aGVy IGhhbmQgaXQgaXMgYWxzbyBpbXBvcnRhbnQgdG8ga2VlcCB0aGUgbmVpZ2ggcmVhY2hhYmlsaXR5 IGZyZXNoCmZvciBUQ1AgZmxvd3MsIHNvIHdlIGNhbm5vdCByZW1vdmUgdGhpcyBkc3RfY29uZmly bV9uZWlnaCgpIGNhbGwuCgpUbyBmaXggdGhlIGlzc3VlLCB3ZSBoYXZlIHRvIGFkZCBhIG5ldyBi b29sIHBhcmFtZXRlciBmb3IgZHN0X29wcy51cGRhdGVfcG10dQp0byBjaG9vc2Ugd2hldGhlciB3 ZSBzaG91bGQgZG8gbmVpZ2ggdXBkYXRlIG9yIG5vdC4gSSB3aWxsIGFkZCB0aGUgcGFyYW1ldGVy CmluIHRoaXMgcGF0Y2ggYW5kIHNldCBhbGwgdGhlIGNhbGxlcnMgdG8gdHJ1ZSB0byBjb21wbHkg d2l0aCB0aGUgcHJldmlvdXMKd2F5LCBhbmQgZml4IHRoZSB0dW5uZWwgY29kZSBvbmUgYnkgb25l IG9uIGxhdGVyIHBhdGNoZXMuCgp2NTogTm8gY2hhbmdlLgp2NDogTm8gY2hhbmdlLgp2MzogRG8g bm90IHJlbW92ZSBkc3RfY29uZmlybV9uZWlnaCwgYnV0IGFkZCBhIG5ldyBib29sIHBhcmFtZXRl ciBpbgogICAgZHN0X29wcy51cGRhdGVfcG10dSB0byBjb250cm9sIHdoZXRoZXIgd2Ugc2hvdWxk IGRvIG5laWdoYm9yIGNvbmZpcm0uCiAgICBBbHNvIHNwbGl0IHRoZSBiaWcgcGF0Y2ggdG8gc21h bGwgb25lcyBmb3IgZWFjaCBhcmVhLgp2MjogUmVtb3ZlIGRzdF9jb25maXJtX25laWdoIGluIF9f aXA2X3J0X3VwZGF0ZV9wbXR1LgoKU3VnZ2VzdGVkLWJ5OiBEYXZpZCBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+ClJldmlld2VkLWJ5OiBHdWlsbGF1bWUgTmF1bHQgPGduYXVsdEByZWRoYXQu Y29tPgpBY2tlZC1ieTogRGF2aWQgQWhlcm4gPGRzYWhlcm5AZ21haWwuY29tPgpTaWduZWQtb2Zm LWJ5OiBIYW5nYmluIExpdSA8bGl1aGFuZ2JpbkBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERh dmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ndHAu YyAgICAgICAgICAgICAgICB8ICAyICstCiBpbmNsdWRlL25ldC9kc3QuaCAgICAgICAgICAgICAg ICB8ICAyICstCiBpbmNsdWRlL25ldC9kc3Rfb3BzLmggICAgICAgICAgICB8ICAzICsrLQogbmV0 L2JyaWRnZS9icl9uZl9jb3JlLmMgICAgICAgICAgfCAgMyArKy0KIG5ldC9kZWNuZXQvZG5fcm91 dGUuYyAgICAgICAgICAgIHwgIDYgKysrKy0tCiBuZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29j ay5jICB8ICAyICstCiBuZXQvaXB2NC9yb3V0ZS5jICAgICAgICAgICAgICAgICB8ICA5ICsrKysr Ky0tLQogbmV0L2lwdjQveGZybTRfcG9saWN5LmMgICAgICAgICAgfCAgNSArKystLQogbmV0L2lw djYvaW5ldDZfY29ubmVjdGlvbl9zb2NrLmMgfCAgMiArLQogbmV0L2lwdjYvaXA2X2dyZS5jICAg ICAgICAgICAgICAgfCAgMiArLQogbmV0L2lwdjYvcm91dGUuYyAgICAgICAgICAgICAgICAgfCAy MiArKysrKysrKysrKysrKystLS0tLS0tCiBuZXQvaXB2Ni94ZnJtNl9wb2xpY3kuYyAgICAgICAg ICB8ICA1ICsrKy0tCiBuZXQvbmV0ZmlsdGVyL2lwdnMvaXBfdnNfeG1pdC5jICB8ICAyICstCiBu ZXQvc2N0cC90cmFuc3BvcnQuYyAgICAgICAgICAgICB8ICAyICstCiAxNCBmaWxlcyBjaGFuZ2Vk LCA0MiBpbnNlcnRpb25zKCspLCAyNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJz L25ldC9ndHAuYyBiL2RyaXZlcnMvbmV0L2d0cC5jCmluZGV4IGQxNzhkNWJhZDdlNC4uOWUzOTYz ZjQ2NDU4IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ndHAuYworKysgYi9kcml2ZXJzL25ldC9n dHAuYwpAQCAtNTQ1LDcgKzU0NSw3IEBAIHN0YXRpYyBpbnQgZ3RwX2J1aWxkX3NrYl9pcDQoc3Ry dWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKIAkJbXR1ID0gZHN0X210 dSgmcnQtPmRzdCk7CiAJfQogCi0JcnQtPmRzdC5vcHMtPnVwZGF0ZV9wbXR1KCZydC0+ZHN0LCBO VUxMLCBza2IsIG10dSk7CisJcnQtPmRzdC5vcHMtPnVwZGF0ZV9wbXR1KCZydC0+ZHN0LCBOVUxM LCBza2IsIG10dSwgdHJ1ZSk7CiAKIAlpZiAoIXNrYl9pc19nc28oc2tiKSAmJiAoaXBoLT5mcmFn X29mZiAmIGh0b25zKElQX0RGKSkgJiYKIAkgICAgbXR1IDwgbnRvaHMoaXBoLT50b3RfbGVuKSkg ewpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvZHN0LmggYi9pbmNsdWRlL25ldC9kc3QuaAppbmRl eCA4NTFjZjExMjQyNDAuLmFhYzNmNWI0YzdiNSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvZHN0 LmgKKysrIGIvaW5jbHVkZS9uZXQvZHN0LmgKQEAgLTUyNyw3ICs1MjcsNyBAQCBzdGF0aWMgaW5s aW5lIHZvaWQgc2tiX2RzdF91cGRhdGVfcG10dShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgbXR1 KQogCXN0cnVjdCBkc3RfZW50cnkgKmRzdCA9IHNrYl9kc3Qoc2tiKTsKIAogCWlmIChkc3QgJiYg ZHN0LT5vcHMtPnVwZGF0ZV9wbXR1KQotCQlkc3QtPm9wcy0+dXBkYXRlX3BtdHUoZHN0LCBOVUxM LCBza2IsIG10dSk7CisJCWRzdC0+b3BzLT51cGRhdGVfcG10dShkc3QsIE5VTEwsIHNrYiwgbXR1 LCB0cnVlKTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lkIHNrYl90dW5uZWxfY2hlY2tfcG10dShz dHJ1Y3Qgc2tfYnVmZiAqc2tiLApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvZHN0X29wcy5oIGIv aW5jbHVkZS9uZXQvZHN0X29wcy5oCmluZGV4IDVlYzY0NWYyN2VlMy4uNDQzODYzYzdiOGRhIDEw MDY0NAotLS0gYS9pbmNsdWRlL25ldC9kc3Rfb3BzLmgKKysrIGIvaW5jbHVkZS9uZXQvZHN0X29w cy5oCkBAIC0yNyw3ICsyNyw4IEBAIHN0cnVjdCBkc3Rfb3BzIHsKIAlzdHJ1Y3QgZHN0X2VudHJ5 ICoJKCpuZWdhdGl2ZV9hZHZpY2UpKHN0cnVjdCBkc3RfZW50cnkgKik7CiAJdm9pZAkJCSgqbGlu a19mYWlsdXJlKShzdHJ1Y3Qgc2tfYnVmZiAqKTsKIAl2b2lkCQkJKCp1cGRhdGVfcG10dSkoc3Ry dWN0IGRzdF9lbnRyeSAqZHN0LCBzdHJ1Y3Qgc29jayAqc2ssCi0JCQkJCSAgICAgICBzdHJ1Y3Qg c2tfYnVmZiAqc2tiLCB1MzIgbXR1KTsKKwkJCQkJICAgICAgIHN0cnVjdCBza19idWZmICpza2Is IHUzMiBtdHUsCisJCQkJCSAgICAgICBib29sIGNvbmZpcm1fbmVpZ2gpOwogCXZvaWQJCQkoKnJl ZGlyZWN0KShzdHJ1Y3QgZHN0X2VudHJ5ICpkc3QsIHN0cnVjdCBzb2NrICpzaywKIAkJCQkJICAg IHN0cnVjdCBza19idWZmICpza2IpOwogCWludAkJCSgqbG9jYWxfb3V0KShzdHJ1Y3QgbmV0ICpu ZXQsIHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYik7CmRpZmYgLS1naXQgYS9u ZXQvYnJpZGdlL2JyX25mX2NvcmUuYyBiL25ldC9icmlkZ2UvYnJfbmZfY29yZS5jCmluZGV4IDhl MmQ3Y2ZhNGUxNi4uZDg4ZTcyNGQ1NzU1IDEwMDY0NAotLS0gYS9uZXQvYnJpZGdlL2JyX25mX2Nv cmUuYworKysgYi9uZXQvYnJpZGdlL2JyX25mX2NvcmUuYwpAQCAtMjYsNyArMjYsOCBAQAogI2Vu ZGlmCiAKIHN0YXRpYyB2b2lkIGZha2VfdXBkYXRlX3BtdHUoc3RydWN0IGRzdF9lbnRyeSAqZHN0 LCBzdHJ1Y3Qgc29jayAqc2ssCi0JCQkgICAgIHN0cnVjdCBza19idWZmICpza2IsIHUzMiBtdHUp CisJCQkgICAgIHN0cnVjdCBza19idWZmICpza2IsIHUzMiBtdHUsCisJCQkgICAgIGJvb2wgY29u ZmlybV9uZWlnaCkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvbmV0L2RlY25ldC9kbl9yb3V0ZS5jIGIv bmV0L2RlY25ldC9kbl9yb3V0ZS5jCmluZGV4IDFjMDAyYzBmYjcxMi4uNjU4MTkxZmJhOTRlIDEw MDY0NAotLS0gYS9uZXQvZGVjbmV0L2RuX3JvdXRlLmMKKysrIGIvbmV0L2RlY25ldC9kbl9yb3V0 ZS5jCkBAIC0xMTgsNyArMTE4LDggQEAgc3RhdGljIHZvaWQgZG5fZHN0X2lmZG93bihzdHJ1Y3Qg ZHN0X2VudHJ5ICosIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGludCBob3cpOwogc3RhdGljIHN0 cnVjdCBkc3RfZW50cnkgKmRuX2RzdF9uZWdhdGl2ZV9hZHZpY2Uoc3RydWN0IGRzdF9lbnRyeSAq KTsKIHN0YXRpYyB2b2lkIGRuX2RzdF9saW5rX2ZhaWx1cmUoc3RydWN0IHNrX2J1ZmYgKik7CiBz dGF0aWMgdm9pZCBkbl9kc3RfdXBkYXRlX3BtdHUoc3RydWN0IGRzdF9lbnRyeSAqZHN0LCBzdHJ1 Y3Qgc29jayAqc2ssCi0JCQkgICAgICAgc3RydWN0IHNrX2J1ZmYgKnNrYiAsIHUzMiBtdHUpOwor CQkJICAgICAgIHN0cnVjdCBza19idWZmICpza2IgLCB1MzIgbXR1LAorCQkJICAgICAgIGJvb2wg Y29uZmlybV9uZWlnaCk7CiBzdGF0aWMgdm9pZCBkbl9kc3RfcmVkaXJlY3Qoc3RydWN0IGRzdF9l bnRyeSAqZHN0LCBzdHJ1Y3Qgc29jayAqc2ssCiAJCQkgICAgc3RydWN0IHNrX2J1ZmYgKnNrYik7 CiBzdGF0aWMgc3RydWN0IG5laWdoYm91ciAqZG5fZHN0X25laWdoX2xvb2t1cChjb25zdCBzdHJ1 Y3QgZHN0X2VudHJ5ICpkc3QsCkBAIC0yNTksNyArMjYwLDggQEAgc3RhdGljIGludCBkbl9kc3Rf Z2Moc3RydWN0IGRzdF9vcHMgKm9wcykKICAqIGFkdmVydGlzZSB0byB0aGUgb3RoZXIgZW5kKS4K ICAqLwogc3RhdGljIHZvaWQgZG5fZHN0X3VwZGF0ZV9wbXR1KHN0cnVjdCBkc3RfZW50cnkgKmRz dCwgc3RydWN0IHNvY2sgKnNrLAotCQkJICAgICAgIHN0cnVjdCBza19idWZmICpza2IsIHUzMiBt dHUpCisJCQkgICAgICAgc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTMyIG10dSwKKwkJCSAgICAgICBi b29sIGNvbmZpcm1fbmVpZ2gpCiB7CiAJc3RydWN0IGRuX3JvdXRlICpydCA9IChzdHJ1Y3QgZG5f cm91dGUgKikgZHN0OwogCXN0cnVjdCBuZWlnaGJvdXIgKm4gPSBydC0+bjsKZGlmZiAtLWdpdCBh L25ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmMgYi9uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rp b25fc29jay5jCmluZGV4IDE1ZTdmNzkxNWEyMS4uNjM2YTExYzU2Y2Y1IDEwMDY0NAotLS0gYS9u ZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jCisrKyBiL25ldC9pcHY0L2luZXRfY29ubmVj dGlvbl9zb2NrLmMKQEAgLTEwODksNyArMTA4OSw3IEBAIHN0cnVjdCBkc3RfZW50cnkgKmluZXRf Y3NrX3VwZGF0ZV9wbXR1KHN0cnVjdCBzb2NrICpzaywgdTMyIG10dSkKIAkJaWYgKCFkc3QpCiAJ CQlnb3RvIG91dDsKIAl9Ci0JZHN0LT5vcHMtPnVwZGF0ZV9wbXR1KGRzdCwgc2ssIE5VTEwsIG10 dSk7CisJZHN0LT5vcHMtPnVwZGF0ZV9wbXR1KGRzdCwgc2ssIE5VTEwsIG10dSwgdHJ1ZSk7CiAK IAlkc3QgPSBfX3NrX2RzdF9jaGVjayhzaywgMCk7CiAJaWYgKCFkc3QpCmRpZmYgLS1naXQgYS9u ZXQvaXB2NC9yb3V0ZS5jIGIvbmV0L2lwdjQvcm91dGUuYwppbmRleCA2OTEyN2Y2MDM5YjIuLjQ1 OTBhZjUwNjI0NCAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvcm91dGUuYworKysgYi9uZXQvaXB2NC9y b3V0ZS5jCkBAIC0xNDIsNyArMTQyLDggQEAgc3RhdGljIHVuc2lnbmVkIGludAkgaXB2NF9tdHUo Y29uc3Qgc3RydWN0IGRzdF9lbnRyeSAqZHN0KTsKIHN0YXRpYyBzdHJ1Y3QgZHN0X2VudHJ5ICpp cHY0X25lZ2F0aXZlX2FkdmljZShzdHJ1Y3QgZHN0X2VudHJ5ICpkc3QpOwogc3RhdGljIHZvaWQJ CSBpcHY0X2xpbmtfZmFpbHVyZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiKTsKIHN0YXRpYyB2b2lkCQkg aXBfcnRfdXBkYXRlX3BtdHUoc3RydWN0IGRzdF9lbnRyeSAqZHN0LCBzdHJ1Y3Qgc29jayAqc2ss Ci0JCQkJCSAgIHN0cnVjdCBza19idWZmICpza2IsIHUzMiBtdHUpOworCQkJCQkgICBzdHJ1Y3Qg c2tfYnVmZiAqc2tiLCB1MzIgbXR1LAorCQkJCQkgICBib29sIGNvbmZpcm1fbmVpZ2gpOwogc3Rh dGljIHZvaWQJCSBpcF9kb19yZWRpcmVjdChzdHJ1Y3QgZHN0X2VudHJ5ICpkc3QsIHN0cnVjdCBz b2NrICpzaywKIAkJCQkJc3RydWN0IHNrX2J1ZmYgKnNrYik7CiBzdGF0aWMgdm9pZAkJaXB2NF9k c3RfZGVzdHJveShzdHJ1Y3QgZHN0X2VudHJ5ICpkc3QpOwpAQCAtMTAzNSw3ICsxMDM2LDggQEAg c3RhdGljIHZvaWQgX19pcF9ydF91cGRhdGVfcG10dShzdHJ1Y3QgcnRhYmxlICpydCwgc3RydWN0 IGZsb3dpNCAqZmw0LCB1MzIgbXR1KQogfQogCiBzdGF0aWMgdm9pZCBpcF9ydF91cGRhdGVfcG10 dShzdHJ1Y3QgZHN0X2VudHJ5ICpkc3QsIHN0cnVjdCBzb2NrICpzaywKLQkJCSAgICAgIHN0cnVj dCBza19idWZmICpza2IsIHUzMiBtdHUpCisJCQkgICAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1 MzIgbXR1LAorCQkJICAgICAgYm9vbCBjb25maXJtX25laWdoKQogewogCXN0cnVjdCBydGFibGUg KnJ0ID0gKHN0cnVjdCBydGFibGUgKikgZHN0OwogCXN0cnVjdCBmbG93aTQgZmw0OwpAQCAtMjU1 OSw3ICsyNTYxLDggQEAgc3RhdGljIHVuc2lnbmVkIGludCBpcHY0X2JsYWNraG9sZV9tdHUoY29u c3Qgc3RydWN0IGRzdF9lbnRyeSAqZHN0KQogfQogCiBzdGF0aWMgdm9pZCBpcHY0X3J0X2JsYWNr aG9sZV91cGRhdGVfcG10dShzdHJ1Y3QgZHN0X2VudHJ5ICpkc3QsIHN0cnVjdCBzb2NrICpzaywK LQkJCQkJICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgbXR1KQorCQkJCQkgIHN0cnVjdCBza19i dWZmICpza2IsIHUzMiBtdHUsCisJCQkJCSAgYm9vbCBjb25maXJtX25laWdoKQogewogfQogCmRp ZmYgLS1naXQgYS9uZXQvaXB2NC94ZnJtNF9wb2xpY3kuYyBiL25ldC9pcHY0L3hmcm00X3BvbGlj eS5jCmluZGV4IDJiMTQ0YjkyYWU0Ni4uMWU1ZTJlNGJlMGIyIDEwMDY0NAotLS0gYS9uZXQvaXB2 NC94ZnJtNF9wb2xpY3kuYworKysgYi9uZXQvaXB2NC94ZnJtNF9wb2xpY3kuYwpAQCAtMjIyLDEy ICsyMjIsMTMgQEAgX2RlY29kZV9zZXNzaW9uNChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3Qg Zmxvd2kgKmZsLCBpbnQgcmV2ZXJzZSkKIH0KIAogc3RhdGljIHZvaWQgeGZybTRfdXBkYXRlX3Bt dHUoc3RydWN0IGRzdF9lbnRyeSAqZHN0LCBzdHJ1Y3Qgc29jayAqc2ssCi0JCQkgICAgICBzdHJ1 Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgbXR1KQorCQkJICAgICAgc3RydWN0IHNrX2J1ZmYgKnNrYiwg dTMyIG10dSwKKwkJCSAgICAgIGJvb2wgY29uZmlybV9uZWlnaCkKIHsKIAlzdHJ1Y3QgeGZybV9k c3QgKnhkc3QgPSAoc3RydWN0IHhmcm1fZHN0ICopZHN0OwogCXN0cnVjdCBkc3RfZW50cnkgKnBh dGggPSB4ZHN0LT5yb3V0ZTsKIAotCXBhdGgtPm9wcy0+dXBkYXRlX3BtdHUocGF0aCwgc2ssIHNr YiwgbXR1KTsKKwlwYXRoLT5vcHMtPnVwZGF0ZV9wbXR1KHBhdGgsIHNrLCBza2IsIG10dSwgY29u ZmlybV9uZWlnaCk7CiB9CiAKIHN0YXRpYyB2b2lkIHhmcm00X3JlZGlyZWN0KHN0cnVjdCBkc3Rf ZW50cnkgKmRzdCwgc3RydWN0IHNvY2sgKnNrLApkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvaW5ldDZf Y29ubmVjdGlvbl9zb2NrLmMgYi9uZXQvaXB2Ni9pbmV0Nl9jb25uZWN0aW9uX3NvY2suYwppbmRl eCA5YTMxZDEzYmYxODAuLjg5MGFkYWRjZGExNiAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvaW5ldDZf Y29ubmVjdGlvbl9zb2NrLmMKKysrIGIvbmV0L2lwdjYvaW5ldDZfY29ubmVjdGlvbl9zb2NrLmMK QEAgLTE1MCw3ICsxNTAsNyBAQCBzdHJ1Y3QgZHN0X2VudHJ5ICppbmV0Nl9jc2tfdXBkYXRlX3Bt dHUoc3RydWN0IHNvY2sgKnNrLCB1MzIgbXR1KQogCiAJaWYgKElTX0VSUihkc3QpKQogCQlyZXR1 cm4gTlVMTDsKLQlkc3QtPm9wcy0+dXBkYXRlX3BtdHUoZHN0LCBzaywgTlVMTCwgbXR1KTsKKwlk c3QtPm9wcy0+dXBkYXRlX3BtdHUoZHN0LCBzaywgTlVMTCwgbXR1LCB0cnVlKTsKIAogCWRzdCA9 IGluZXQ2X2Nza19yb3V0ZV9zb2NrZXQoc2ssICZmbDYpOwogCXJldHVybiBJU19FUlIoZHN0KSA/ IE5VTEwgOiBkc3Q7CmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9pcDZfZ3JlLmMgYi9uZXQvaXB2Ni9p cDZfZ3JlLmMKaW5kZXggOGZkMjhlZGQ2YWM1Li45ODUzZmE0NzY0MWUgMTAwNjQ0Ci0tLSBhL25l dC9pcHY2L2lwNl9ncmUuYworKysgYi9uZXQvaXB2Ni9pcDZfZ3JlLmMKQEAgLTEwNjAsNyArMTA2 MCw3IEBAIHN0YXRpYyBuZXRkZXZfdHhfdCBpcDZlcnNwYW5fdHVubmVsX3htaXQoc3RydWN0IHNr X2J1ZmYgKnNrYiwKIAogCS8qIFRvb0JpZyBwYWNrZXQgbWF5IGhhdmUgdXBkYXRlZCBkc3QtPmRl didzIG10dSAqLwogCWlmICghdC0+cGFybXMuY29sbGVjdF9tZCAmJiBkc3QgJiYgZHN0X210dShk c3QpID4gZHN0LT5kZXYtPm10dSkKLQkJZHN0LT5vcHMtPnVwZGF0ZV9wbXR1KGRzdCwgTlVMTCwg c2tiLCBkc3QtPmRldi0+bXR1KTsKKwkJZHN0LT5vcHMtPnVwZGF0ZV9wbXR1KGRzdCwgTlVMTCwg c2tiLCBkc3QtPmRldi0+bXR1LCB0cnVlKTsKIAogCWVyciA9IGlwNl90bmxfeG1pdChza2IsIGRl diwgZHNmaWVsZCwgJmZsNiwgZW5jYXBfbGltaXQsICZtdHUsCiAJCQkgICBORVhUSERSX0dSRSk7 CmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9yb3V0ZS5jIGIvbmV0L2lwdjYvcm91dGUuYwppbmRleCAw NzZjMjFmNmE2NDUuLmY4ZmU0YzllYWQ0ZCAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvcm91dGUuYwor KysgYi9uZXQvaXB2Ni9yb3V0ZS5jCkBAIC05OSw3ICs5OSw4IEBAIHN0YXRpYyBpbnQJCWlwNl9w a3RfcHJvaGliaXQoc3RydWN0IHNrX2J1ZmYgKnNrYik7CiBzdGF0aWMgaW50CQlpcDZfcGt0X3By b2hpYml0X291dChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1 ZmYgKnNrYik7CiBzdGF0aWMgdm9pZAkJaXA2X2xpbmtfZmFpbHVyZShzdHJ1Y3Qgc2tfYnVmZiAq c2tiKTsKIHN0YXRpYyB2b2lkCQlpcDZfcnRfdXBkYXRlX3BtdHUoc3RydWN0IGRzdF9lbnRyeSAq ZHN0LCBzdHJ1Y3Qgc29jayAqc2ssCi0JCQkJCSAgIHN0cnVjdCBza19idWZmICpza2IsIHUzMiBt dHUpOworCQkJCQkgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgbXR1LAorCQkJCQkgICBib29s IGNvbmZpcm1fbmVpZ2gpOwogc3RhdGljIHZvaWQJCXJ0Nl9kb19yZWRpcmVjdChzdHJ1Y3QgZHN0 X2VudHJ5ICpkc3QsIHN0cnVjdCBzb2NrICpzaywKIAkJCQkJc3RydWN0IHNrX2J1ZmYgKnNrYik7 CiBzdGF0aWMgaW50IHJ0Nl9zY29yZV9yb3V0ZShzdHJ1Y3QgZmliNl9pbmZvICpydCwgaW50IG9p ZiwgaW50IHN0cmljdCk7CkBAIC0yNjYsNyArMjY3LDggQEAgc3RhdGljIHVuc2lnbmVkIGludCBp cDZfYmxhY2tob2xlX210dShjb25zdCBzdHJ1Y3QgZHN0X2VudHJ5ICpkc3QpCiB9CiAKIHN0YXRp YyB2b2lkIGlwNl9ydF9ibGFja2hvbGVfdXBkYXRlX3BtdHUoc3RydWN0IGRzdF9lbnRyeSAqZHN0 LCBzdHJ1Y3Qgc29jayAqc2ssCi0JCQkJCSBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgbXR1KQor CQkJCQkgc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTMyIG10dSwKKwkJCQkJIGJvb2wgY29uZmlybV9u ZWlnaCkKIHsKIH0KIApAQCAtMjM1Miw3ICsyMzU0LDggQEAgc3RhdGljIGJvb2wgcnQ2X2NhY2hl X2FsbG93ZWRfZm9yX3BtdHUoY29uc3Qgc3RydWN0IHJ0Nl9pbmZvICpydCkKIH0KIAogc3RhdGlj IHZvaWQgX19pcDZfcnRfdXBkYXRlX3BtdHUoc3RydWN0IGRzdF9lbnRyeSAqZHN0LCBjb25zdCBz dHJ1Y3Qgc29jayAqc2ssCi0JCQkJIGNvbnN0IHN0cnVjdCBpcHY2aGRyICppcGgsIHUzMiBtdHUp CisJCQkJIGNvbnN0IHN0cnVjdCBpcHY2aGRyICppcGgsIHUzMiBtdHUsCisJCQkJIGJvb2wgY29u ZmlybV9uZWlnaCkKIHsKIAljb25zdCBzdHJ1Y3QgaW42X2FkZHIgKmRhZGRyLCAqc2FkZHI7CiAJ c3RydWN0IHJ0Nl9pbmZvICpydDYgPSAoc3RydWN0IHJ0Nl9pbmZvICopZHN0OwpAQCAtMjM3MCw3 ICsyMzczLDEwIEBAIHN0YXRpYyB2b2lkIF9faXA2X3J0X3VwZGF0ZV9wbXR1KHN0cnVjdCBkc3Rf ZW50cnkgKmRzdCwgY29uc3Qgc3RydWN0IHNvY2sgKnNrLAogCQlkYWRkciA9IE5VTEw7CiAJCXNh ZGRyID0gTlVMTDsKIAl9Ci0JZHN0X2NvbmZpcm1fbmVpZ2goZHN0LCBkYWRkcik7CisKKwlpZiAo Y29uZmlybV9uZWlnaCkKKwkJZHN0X2NvbmZpcm1fbmVpZ2goZHN0LCBkYWRkcik7CisKIAltdHUg PSBtYXhfdCh1MzIsIG10dSwgSVBWNl9NSU5fTVRVKTsKIAlpZiAobXR1ID49IGRzdF9tdHUoZHN0 KSkKIAkJcmV0dXJuOwpAQCAtMjQwMSw5ICsyNDA3LDExIEBAIHN0YXRpYyB2b2lkIF9faXA2X3J0 X3VwZGF0ZV9wbXR1KHN0cnVjdCBkc3RfZW50cnkgKmRzdCwgY29uc3Qgc3RydWN0IHNvY2sgKnNr LAogfQogCiBzdGF0aWMgdm9pZCBpcDZfcnRfdXBkYXRlX3BtdHUoc3RydWN0IGRzdF9lbnRyeSAq ZHN0LCBzdHJ1Y3Qgc29jayAqc2ssCi0JCQkgICAgICAgc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTMy IG10dSkKKwkJCSAgICAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgbXR1LAorCQkJICAgICAg IGJvb2wgY29uZmlybV9uZWlnaCkKIHsKLQlfX2lwNl9ydF91cGRhdGVfcG10dShkc3QsIHNrLCBz a2IgPyBpcHY2X2hkcihza2IpIDogTlVMTCwgbXR1KTsKKwlfX2lwNl9ydF91cGRhdGVfcG10dShk c3QsIHNrLCBza2IgPyBpcHY2X2hkcihza2IpIDogTlVMTCwgbXR1LAorCQkJICAgICBjb25maXJt X25laWdoKTsKIH0KIAogdm9pZCBpcDZfdXBkYXRlX3BtdHUoc3RydWN0IHNrX2J1ZmYgKnNrYiwg c3RydWN0IG5ldCAqbmV0LCBfX2JlMzIgbXR1LApAQCAtMjQyMyw3ICsyNDMxLDcgQEAgdm9pZCBp cDZfdXBkYXRlX3BtdHUoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldCAqbmV0LCBfX2Jl MzIgbXR1LAogCiAJZHN0ID0gaXA2X3JvdXRlX291dHB1dChuZXQsIE5VTEwsICZmbDYpOwogCWlm ICghZHN0LT5lcnJvcikKLQkJX19pcDZfcnRfdXBkYXRlX3BtdHUoZHN0LCBOVUxMLCBpcGgsIG50 b2hsKG10dSkpOworCQlfX2lwNl9ydF91cGRhdGVfcG10dShkc3QsIE5VTEwsIGlwaCwgbnRvaGwo bXR1KSwgdHJ1ZSk7CiAJZHN0X3JlbGVhc2UoZHN0KTsKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKGlw Nl91cGRhdGVfcG10dSk7CmRpZmYgLS1naXQgYS9uZXQvaXB2Ni94ZnJtNl9wb2xpY3kuYyBiL25l dC9pcHY2L3hmcm02X3BvbGljeS5jCmluZGV4IGQzNWJjZjkyOTY5Yy4uMzAyMzI1OTFjZjJiIDEw MDY0NAotLS0gYS9uZXQvaXB2Ni94ZnJtNl9wb2xpY3kuYworKysgYi9uZXQvaXB2Ni94ZnJtNl9w b2xpY3kuYwpAQCAtMjIxLDEyICsyMjEsMTMgQEAgX2RlY29kZV9zZXNzaW9uNihzdHJ1Y3Qgc2tf YnVmZiAqc2tiLCBzdHJ1Y3QgZmxvd2kgKmZsLCBpbnQgcmV2ZXJzZSkKIH0KIAogc3RhdGljIHZv aWQgeGZybTZfdXBkYXRlX3BtdHUoc3RydWN0IGRzdF9lbnRyeSAqZHN0LCBzdHJ1Y3Qgc29jayAq c2ssCi0JCQkgICAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgbXR1KQorCQkJICAgICAgc3Ry dWN0IHNrX2J1ZmYgKnNrYiwgdTMyIG10dSwKKwkJCSAgICAgIGJvb2wgY29uZmlybV9uZWlnaCkK IHsKIAlzdHJ1Y3QgeGZybV9kc3QgKnhkc3QgPSAoc3RydWN0IHhmcm1fZHN0ICopZHN0OwogCXN0 cnVjdCBkc3RfZW50cnkgKnBhdGggPSB4ZHN0LT5yb3V0ZTsKIAotCXBhdGgtPm9wcy0+dXBkYXRl X3BtdHUocGF0aCwgc2ssIHNrYiwgbXR1KTsKKwlwYXRoLT5vcHMtPnVwZGF0ZV9wbXR1KHBhdGgs IHNrLCBza2IsIG10dSwgY29uZmlybV9uZWlnaCk7CiB9CiAKIHN0YXRpYyB2b2lkIHhmcm02X3Jl ZGlyZWN0KHN0cnVjdCBkc3RfZW50cnkgKmRzdCwgc3RydWN0IHNvY2sgKnNrLApkaWZmIC0tZ2l0 IGEvbmV0L25ldGZpbHRlci9pcHZzL2lwX3ZzX3htaXQuYyBiL25ldC9uZXRmaWx0ZXIvaXB2cy9p cF92c194bWl0LmMKaW5kZXggNDczY2NlMmE1MjMxLi4zZjc1Y2Q5NDcwNDUgMTAwNjQ0Ci0tLSBh L25ldC9uZXRmaWx0ZXIvaXB2cy9pcF92c194bWl0LmMKKysrIGIvbmV0L25ldGZpbHRlci9pcHZz L2lwX3ZzX3htaXQuYwpAQCAtMjA5LDcgKzIwOSw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBtYXli ZV91cGRhdGVfcG10dShpbnQgc2tiX2FmLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBpbnQgbXR1KQog CXN0cnVjdCBydGFibGUgKm9ydCA9IHNrYl9ydGFibGUoc2tiKTsKIAogCWlmICghc2tiLT5kZXYg JiYgc2sgJiYgc2tfZnVsbHNvY2soc2spKQotCQlvcnQtPmRzdC5vcHMtPnVwZGF0ZV9wbXR1KCZv cnQtPmRzdCwgc2ssIE5VTEwsIG10dSk7CisJCW9ydC0+ZHN0Lm9wcy0+dXBkYXRlX3BtdHUoJm9y dC0+ZHN0LCBzaywgTlVMTCwgbXR1LCB0cnVlKTsKIH0KIAogc3RhdGljIGlubGluZSBib29sIGVu c3VyZV9tdHVfaXNfYWRlcXVhdGUoc3RydWN0IG5ldG5zX2lwdnMgKmlwdnMsIGludCBza2JfYWYs CmRpZmYgLS1naXQgYS9uZXQvc2N0cC90cmFuc3BvcnQuYyBiL25ldC9zY3RwL3RyYW5zcG9ydC5j CmluZGV4IGFkMTU4ZDMxMWZmYS4uYzBkNTVlZDYyZDJlIDEwMDY0NAotLS0gYS9uZXQvc2N0cC90 cmFuc3BvcnQuYworKysgYi9uZXQvc2N0cC90cmFuc3BvcnQuYwpAQCAtMjc4LDcgKzI3OCw3IEBA IGJvb2wgc2N0cF90cmFuc3BvcnRfdXBkYXRlX3BtdHUoc3RydWN0IHNjdHBfdHJhbnNwb3J0ICp0 LCB1MzIgcG10dSkKIAogCQlwZi0+YWYtPmZyb21fc2soJmFkZHIsIHNrKTsKIAkJcGYtPnRvX3Nr X2RhZGRyKCZ0LT5pcGFkZHIsIHNrKTsKLQkJZHN0LT5vcHMtPnVwZGF0ZV9wbXR1KGRzdCwgc2ss IE5VTEwsIHBtdHUpOworCQlkc3QtPm9wcy0+dXBkYXRlX3BtdHUoZHN0LCBzaywgTlVMTCwgcG10 dSwgdHJ1ZSk7CiAJCXBmLT50b19za19kYWRkcigmYWRkciwgc2spOwogCiAJCWRzdCA9IHNjdHBf dHJhbnNwb3J0X2RzdF9jaGVjayh0KTsKLS0gCjIuMjAuMQoKCkZyb20gNzliNWQ1YzE3Zjg2OTFi MDkyYWI0MWJjYzdhZmVlYTg0NDFkNzI0OSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog SGFuZ2JpbiBMaXUgPGxpdWhhbmdiaW5AZ21haWwuY29tPgpEYXRlOiBTdW4sIDIyIERlYyAyMDE5 IDEwOjUxOjEwICswODAwClN1YmplY3Q6IFtQQVRDSCAwOS8yM10gaXA2X2dyZTogZG8gbm90IGNv bmZpcm0gbmVpZ2hib3Igd2hlbiBkbyBwbXR1IHVwZGF0ZQoKWyBVcHN0cmVhbSBjb21taXQgNjc1 ZDc2YWQwYWQ1YmY0MWM5YTEyOTc3MmVmMGFiYThmNTdlYTlhNyBdCgpXaGVuIHdlIGRvIGlwdjYg Z3JlIHBtdHUgdXBkYXRlLCB3ZSB3aWxsIGFsc28gZG8gbmVpZ2ggY29uZmlybSBjdXJyZW50bHku ClRoaXMgd2lsbCBjYXVzZSB0aGUgbmVpZ2ggY2FjaGUgYmUgcmVmcmVzaGVkIGFuZCBzZXQgdG8g UkVBQ0hBQkxFIGJlZm9yZQp4bWl0LgoKQnV0IGlmIHRoZSByZW1vdGUgbWFjIGFkZHJlc3MgY2hh bmdlZCwgZS5nLiBkZXZpY2UgaXMgZGVsZXRlZCBhbmQgcmVjcmVhdGVkLAp3ZSB3aWxsIG5vdCBh YmxlIHRvIG5vdGljZSB0aGlzIGFuZCBzdGlsbCB1c2UgdGhlIG9sZCBtYWMgYWRkcmVzcyBhcyB0 aGUgbmVpZ2gKY2FjaGUgaXMgUkVBQ0hBQkxFLgoKRml4IHRoaXMgYnkgZGlzYWJsZSBuZWlnaCBj b25maXJtIHdoZW4gZG8gcG10dSB1cGRhdGUKCnY1OiBObyBjaGFuZ2UuCnY0OiBObyBjaGFuZ2Uu CnYzOiBEbyBub3QgcmVtb3ZlIGRzdF9jb25maXJtX25laWdoLCBidXQgYWRkIGEgbmV3IGJvb2wg cGFyYW1ldGVyIGluCiAgICBkc3Rfb3BzLnVwZGF0ZV9wbXR1IHRvIGNvbnRyb2wgd2hldGhlciB3 ZSBzaG91bGQgZG8gbmVpZ2hib3IgY29uZmlybS4KICAgIEFsc28gc3BsaXQgdGhlIGJpZyBwYXRj aCB0byBzbWFsbCBvbmVzIGZvciBlYWNoIGFyZWEuCnYyOiBSZW1vdmUgZHN0X2NvbmZpcm1fbmVp Z2ggaW4gX19pcDZfcnRfdXBkYXRlX3BtdHUuCgpSZXBvcnRlZC1ieTogSmlhbmxpbiBTaGkgPGpp c2hpQHJlZGhhdC5jb20+ClJldmlld2VkLWJ5OiBHdWlsbGF1bWUgTmF1bHQgPGduYXVsdEByZWRo YXQuY29tPgpBY2tlZC1ieTogRGF2aWQgQWhlcm4gPGRzYWhlcm5AZ21haWwuY29tPgpTaWduZWQt b2ZmLWJ5OiBIYW5nYmluIExpdSA8bGl1aGFuZ2JpbkBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6 IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2Ni9pcDZf Z3JlLmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24o LSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9pcDZfZ3JlLmMgYi9uZXQvaXB2Ni9pcDZfZ3JlLmMK aW5kZXggOTg1M2ZhNDc2NDFlLi5iMzUxNWE0ZjEzMDMgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L2lw Nl9ncmUuYworKysgYi9uZXQvaXB2Ni9pcDZfZ3JlLmMKQEAgLTEwNjAsNyArMTA2MCw3IEBAIHN0 YXRpYyBuZXRkZXZfdHhfdCBpcDZlcnNwYW5fdHVubmVsX3htaXQoc3RydWN0IHNrX2J1ZmYgKnNr YiwKIAogCS8qIFRvb0JpZyBwYWNrZXQgbWF5IGhhdmUgdXBkYXRlZCBkc3QtPmRldidzIG10dSAq LwogCWlmICghdC0+cGFybXMuY29sbGVjdF9tZCAmJiBkc3QgJiYgZHN0X210dShkc3QpID4gZHN0 LT5kZXYtPm10dSkKLQkJZHN0LT5vcHMtPnVwZGF0ZV9wbXR1KGRzdCwgTlVMTCwgc2tiLCBkc3Qt PmRldi0+bXR1LCB0cnVlKTsKKwkJZHN0LT5vcHMtPnVwZGF0ZV9wbXR1KGRzdCwgTlVMTCwgc2ti LCBkc3QtPmRldi0+bXR1LCBmYWxzZSk7CiAKIAllcnIgPSBpcDZfdG5sX3htaXQoc2tiLCBkZXYs IGRzZmllbGQsICZmbDYsIGVuY2FwX2xpbWl0LCAmbXR1LAogCQkJICAgTkVYVEhEUl9HUkUpOwot LSAKMi4yMC4xCgoKRnJvbSA5YWE2YzRiMDY5ZjAxMDJhYTJjMzlmN2JhM2IxYTkwMGE3YWU4MjIw IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBIYW5nYmluIExpdSA8bGl1aGFuZ2JpbkBn bWFpbC5jb20+CkRhdGU6IFN1biwgMjIgRGVjIDIwMTkgMTA6NTE6MTEgKzA4MDAKU3ViamVjdDog W1BBVENIIDEwLzIzXSBndHA6IGRvIG5vdCBjb25maXJtIG5laWdoYm9yIHdoZW4gZG8gcG10dSB1 cGRhdGUKClsgVXBzdHJlYW0gY29tbWl0IDZlOTEwNWM3M2Y4ZDIxNjNkMTJkNWRmZDc2MmZkNzU0 ODNlZDMwZjUgXQoKV2hlbiBkbyBJUHY2IHR1bm5lbCBQTVRVIHVwZGF0ZSBhbmQgY2FsbHMgX19p cDZfcnRfdXBkYXRlX3BtdHUoKSBpbiB0aGUgZW5kLAp3ZSBzaG91bGQgbm90IGNhbGwgZHN0X2Nv bmZpcm1fbmVpZ2goKSBhcyB0aGVyZSBpcyBubyB0d28td2F5IGNvbW11bmljYXRpb24uCgpBbHRo b3VnaCBHVFAgb25seSBzdXBwb3J0IGlwdjQgcmlnaHQgbm93LCBhbmQgX19pcF9ydF91cGRhdGVf cG10dSgpIGRvZXMgbm90CmNhbGwgZHN0X2NvbmZpcm1fbmVpZ2goKSwgd2Ugc3RpbGwgc2V0IGl0 IHRvIGZhbHNlIHRvIGtlZXAgY29uc2lzdGVuY3kgd2l0aApJUHY2IGNvZGUuCgp2NTogTm8gY2hh bmdlLgp2NDogTm8gY2hhbmdlLgp2MzogRG8gbm90IHJlbW92ZSBkc3RfY29uZmlybV9uZWlnaCwg YnV0IGFkZCBhIG5ldyBib29sIHBhcmFtZXRlciBpbgogICAgZHN0X29wcy51cGRhdGVfcG10dSB0 byBjb250cm9sIHdoZXRoZXIgd2Ugc2hvdWxkIGRvIG5laWdoYm9yIGNvbmZpcm0uCiAgICBBbHNv IHNwbGl0IHRoZSBiaWcgcGF0Y2ggdG8gc21hbGwgb25lcyBmb3IgZWFjaCBhcmVhLgp2MjogUmVt b3ZlIGRzdF9jb25maXJtX25laWdoIGluIF9faXA2X3J0X3VwZGF0ZV9wbXR1LgoKUmV2aWV3ZWQt Ynk6IEd1aWxsYXVtZSBOYXVsdCA8Z25hdWx0QHJlZGhhdC5jb20+CkFja2VkLWJ5OiBEYXZpZCBB aGVybiA8ZHNhaGVybkBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IEhhbmdiaW4gTGl1IDxsaXVo YW5nYmluQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBk YXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2d0cC5jIHwgMiArLQogMSBmaWxlIGNoYW5n ZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9u ZXQvZ3RwLmMgYi9kcml2ZXJzL25ldC9ndHAuYwppbmRleCA5ZTM5NjNmNDY0NTguLmQ5NTdmZmRm ZWMwZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZ3RwLmMKKysrIGIvZHJpdmVycy9uZXQvZ3Rw LmMKQEAgLTU0NSw3ICs1NDUsNyBAQCBzdGF0aWMgaW50IGd0cF9idWlsZF9za2JfaXA0KHN0cnVj dCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAJCW10dSA9IGRzdF9tdHUo JnJ0LT5kc3QpOwogCX0KIAotCXJ0LT5kc3Qub3BzLT51cGRhdGVfcG10dSgmcnQtPmRzdCwgTlVM TCwgc2tiLCBtdHUsIHRydWUpOworCXJ0LT5kc3Qub3BzLT51cGRhdGVfcG10dSgmcnQtPmRzdCwg TlVMTCwgc2tiLCBtdHUsIGZhbHNlKTsKIAogCWlmICghc2tiX2lzX2dzbyhza2IpICYmIChpcGgt PmZyYWdfb2ZmICYgaHRvbnMoSVBfREYpKSAmJgogCSAgICBtdHUgPCBudG9ocyhpcGgtPnRvdF9s ZW4pKSB7Ci0tIAoyLjIwLjEKCgpGcm9tIGRjNjkwMDgyYmJmZDU0Nzk3Yjg2NTIzYTgxMDhiYjBh ZmViZDJhZDcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEhhbmdiaW4gTGl1IDxsaXVo YW5nYmluQGdtYWlsLmNvbT4KRGF0ZTogU3VuLCAyMiBEZWMgMjAxOSAxMDo1MToxMiArMDgwMApT dWJqZWN0OiBbUEFUQ0ggMTEvMjNdIG5ldC9kc3Q6IGFkZCBuZXcgZnVuY3Rpb24KIHNrYl9kc3Rf dXBkYXRlX3BtdHVfbm9fY29uZmlybQoKWyBVcHN0cmVhbSBjb21taXQgMDdkYzM1YzZlM2NjM2Mw MDE5MTVkMDVmNWJmMjFmODBhMzlhMDk3MCBdCgpBZGQgYSBuZXcgZnVuY3Rpb24gc2tiX2RzdF91 cGRhdGVfcG10dV9ub19jb25maXJtKCkgZm9yIGNhbGxlcnMgd2hvIG5lZWQKdXBkYXRlIHBtdHUg YnV0IHNob3VsZCBub3QgZG8gbmVpZ2hib3IgY29uZmlybS4KCnY1OiBObyBjaGFuZ2UuCnY0OiBO byBjaGFuZ2UuCnYzOiBEbyBub3QgcmVtb3ZlIGRzdF9jb25maXJtX25laWdoLCBidXQgYWRkIGEg bmV3IGJvb2wgcGFyYW1ldGVyIGluCiAgICBkc3Rfb3BzLnVwZGF0ZV9wbXR1IHRvIGNvbnRyb2wg d2hldGhlciB3ZSBzaG91bGQgZG8gbmVpZ2hib3IgY29uZmlybS4KICAgIEFsc28gc3BsaXQgdGhl IGJpZyBwYXRjaCB0byBzbWFsbCBvbmVzIGZvciBlYWNoIGFyZWEuCnYyOiBSZW1vdmUgZHN0X2Nv bmZpcm1fbmVpZ2ggaW4gX19pcDZfcnRfdXBkYXRlX3BtdHUuCgpSZXZpZXdlZC1ieTogR3VpbGxh dW1lIE5hdWx0IDxnbmF1bHRAcmVkaGF0LmNvbT4KQWNrZWQtYnk6IERhdmlkIEFoZXJuIDxkc2Fo ZXJuQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogSGFuZ2JpbiBMaXUgPGxpdWhhbmdiaW5AZ21h aWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5u ZXQ+Ci0tLQogaW5jbHVkZS9uZXQvZHN0LmggfCA5ICsrKysrKysrKwogMSBmaWxlIGNoYW5nZWQs IDkgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L2RzdC5oIGIvaW5jbHVk ZS9uZXQvZHN0LmgKaW5kZXggYWFjM2Y1YjRjN2I1Li5jODg2YzQ1YmEyODYgMTAwNjQ0Ci0tLSBh L2luY2x1ZGUvbmV0L2RzdC5oCisrKyBiL2luY2x1ZGUvbmV0L2RzdC5oCkBAIC01MzAsNiArNTMw LDE1IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBza2JfZHN0X3VwZGF0ZV9wbXR1KHN0cnVjdCBza19i dWZmICpza2IsIHUzMiBtdHUpCiAJCWRzdC0+b3BzLT51cGRhdGVfcG10dShkc3QsIE5VTEwsIHNr YiwgbXR1LCB0cnVlKTsKIH0KIAorLyogdXBkYXRlIGRzdCBwbXR1IGJ1dCBub3QgZG8gbmVpZ2hi b3IgY29uZmlybSAqLworc3RhdGljIGlubGluZSB2b2lkIHNrYl9kc3RfdXBkYXRlX3BtdHVfbm9f Y29uZmlybShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgbXR1KQoreworCXN0cnVjdCBkc3RfZW50 cnkgKmRzdCA9IHNrYl9kc3Qoc2tiKTsKKworCWlmIChkc3QgJiYgZHN0LT5vcHMtPnVwZGF0ZV9w bXR1KQorCQlkc3QtPm9wcy0+dXBkYXRlX3BtdHUoZHN0LCBOVUxMLCBza2IsIG10dSwgZmFsc2Up OworfQorCiBzdGF0aWMgaW5saW5lIHZvaWQgc2tiX3R1bm5lbF9jaGVja19wbXR1KHN0cnVjdCBz a19idWZmICpza2IsCiAJCQkJCSBzdHJ1Y3QgZHN0X2VudHJ5ICplbmNhcF9kc3QsCiAJCQkJCSBp bnQgaGVhZHJvb20pCi0tIAoyLjIwLjEKCgpGcm9tIDM2NTA0Nzg5MzRhNjcyOTY5NjQ3NjRmYmU5 ZmI5OThkNjRkZmY1ZGUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEhhbmdiaW4gTGl1 IDxsaXVoYW5nYmluQGdtYWlsLmNvbT4KRGF0ZTogU3VuLCAyMiBEZWMgMjAxOSAxMDo1MToxMyAr MDgwMApTdWJqZWN0OiBbUEFUQ0ggMTIvMjNdIHR1bm5lbDogZG8gbm90IGNvbmZpcm0gbmVpZ2hi b3Igd2hlbiBkbyBwbXR1IHVwZGF0ZQoKWyBVcHN0cmVhbSBjb21taXQgN2ExNTkyYmNiMTVkNzE0 MDBhOTg2MzI3Mjc3OTFkMWU2OGVhMGVlOCBdCgpXaGVuIGRvIHR1bm5lbCBQTVRVIHVwZGF0ZSBh bmQgY2FsbHMgX19pcDZfcnRfdXBkYXRlX3BtdHUoKSBpbiB0aGUgZW5kLAp3ZSBzaG91bGQgbm90 IGNhbGwgZHN0X2NvbmZpcm1fbmVpZ2goKSBhcyB0aGVyZSBpcyBubyB0d28td2F5IGNvbW11bmlj YXRpb24uCgp2NTogTm8gQ2hhbmdlLgp2NDogVXBkYXRlIGNvbW1pdCBkZXNjcmlwdGlvbgp2Mzog RG8gbm90IHJlbW92ZSBkc3RfY29uZmlybV9uZWlnaCwgYnV0IGFkZCBhIG5ldyBib29sIHBhcmFt ZXRlciBpbgogICAgZHN0X29wcy51cGRhdGVfcG10dSB0byBjb250cm9sIHdoZXRoZXIgd2Ugc2hv dWxkIGRvIG5laWdoYm9yIGNvbmZpcm0uCiAgICBBbHNvIHNwbGl0IHRoZSBiaWcgcGF0Y2ggdG8g c21hbGwgb25lcyBmb3IgZWFjaCBhcmVhLgp2MjogUmVtb3ZlIGRzdF9jb25maXJtX25laWdoIGlu IF9faXA2X3J0X3VwZGF0ZV9wbXR1LgoKRml4ZXM6IDBkZWM4NzlmNjM2ZiAoIm5ldDogdXNlIGRz dF9jb25maXJtX25laWdoIGZvciBVRFAsIFJBVywgSUNNUCwgTDJUUCIpClJldmlld2VkLWJ5OiBH dWlsbGF1bWUgTmF1bHQgPGduYXVsdEByZWRoYXQuY29tPgpUZXN0ZWQtYnk6IEd1aWxsYXVtZSBO YXVsdCA8Z25hdWx0QHJlZGhhdC5jb20+CkFja2VkLWJ5OiBEYXZpZCBBaGVybiA8ZHNhaGVybkBn bWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IEhhbmdiaW4gTGl1IDxsaXVoYW5nYmluQGdtYWlsLmNv bT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0Pgot LS0KIG5ldC9pcHY0L2lwX3R1bm5lbC5jICB8IDIgKy0KIG5ldC9pcHY2L2lwNl90dW5uZWwuYyB8 IDQgKystLQogMiBmaWxlcyBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvaXBfdHVubmVsLmMgYi9uZXQvaXB2NC9pcF90dW5uZWwu YwppbmRleCAwNTRkMDFjMTZkYzYuLjQyMGU4OTFhYzU5ZCAxMDA2NDQKLS0tIGEvbmV0L2lwdjQv aXBfdHVubmVsLmMKKysrIGIvbmV0L2lwdjQvaXBfdHVubmVsLmMKQEAgLTUxMyw3ICs1MTMsNyBA QCBzdGF0aWMgaW50IHRubF91cGRhdGVfcG10dShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1 Y3Qgc2tfYnVmZiAqc2tiLAogCWVsc2UKIAkJbXR1ID0gc2tiX2RzdChza2IpID8gZHN0X210dShz a2JfZHN0KHNrYikpIDogZGV2LT5tdHU7CiAKLQlza2JfZHN0X3VwZGF0ZV9wbXR1KHNrYiwgbXR1 KTsKKwlza2JfZHN0X3VwZGF0ZV9wbXR1X25vX2NvbmZpcm0oc2tiLCBtdHUpOwogCiAJaWYgKHNr Yi0+cHJvdG9jb2wgPT0gaHRvbnMoRVRIX1BfSVApKSB7CiAJCWlmICghc2tiX2lzX2dzbyhza2Ip ICYmCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9pcDZfdHVubmVsLmMgYi9uZXQvaXB2Ni9pcDZfdHVu bmVsLmMKaW5kZXggZDBhZDg1Yjg2NTBkLi5lM2I0MjM3YjI4MzIgMTAwNjQ0Ci0tLSBhL25ldC9p cHY2L2lwNl90dW5uZWwuYworKysgYi9uZXQvaXB2Ni9pcDZfdHVubmVsLmMKQEAgLTY0NSw3ICs2 NDUsNyBAQCBpcDRpcDZfZXJyKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBpbmV0Nl9za2Jf cGFybSAqb3B0LAogCQlpZiAocmVsX2luZm8gPiBkc3RfbXR1KHNrYl9kc3Qoc2tiMikpKQogCQkJ Z290byBvdXQ7CiAKLQkJc2tiX2RzdF91cGRhdGVfcG10dShza2IyLCByZWxfaW5mbyk7CisJCXNr Yl9kc3RfdXBkYXRlX3BtdHVfbm9fY29uZmlybShza2IyLCByZWxfaW5mbyk7CiAJfQogCiAJaWNt cF9zZW5kKHNrYjIsIHJlbF90eXBlLCByZWxfY29kZSwgaHRvbmwocmVsX2luZm8pKTsKQEAgLTEx MzcsNyArMTEzNyw3IEBAIGludCBpcDZfdG5sX3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3Ry dWN0IG5ldF9kZXZpY2UgKmRldiwgX191OCBkc2ZpZWxkLAogCW10dSA9IG1heChtdHUsIHNrYi0+ cHJvdG9jb2wgPT0gaHRvbnMoRVRIX1BfSVBWNikgPwogCQkgICAgICAgSVBWNl9NSU5fTVRVIDog SVBWNF9NSU5fTVRVKTsKIAotCXNrYl9kc3RfdXBkYXRlX3BtdHUoc2tiLCBtdHUpOworCXNrYl9k c3RfdXBkYXRlX3BtdHVfbm9fY29uZmlybShza2IsIG10dSk7CiAJaWYgKHNrYi0+bGVuIC0gdC0+ dHVuX2hsZW4gLSBldGhfaGxlbiA+IG10dSAmJiAhc2tiX2lzX2dzbyhza2IpKSB7CiAJCSpwbXR1 ID0gbXR1OwogCQllcnIgPSAtRU1TR1NJWkU7Ci0tIAoyLjIwLjEKCgpGcm9tIDQ3ODliODE2Yjll MTQ5NmY0ZjJmMmI0MmUwMTU3NjBlNGNhODAyN2UgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IEhhbmdiaW4gTGl1IDxsaXVoYW5nYmluQGdtYWlsLmNvbT4KRGF0ZTogU3VuLCAyMiBEZWMg MjAxOSAxMDo1MToxNCArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMTMvMjNdIHZ0aTogZG8gbm90IGNv bmZpcm0gbmVpZ2hib3Igd2hlbiBkbyBwbXR1IHVwZGF0ZQoKWyBVcHN0cmVhbSBjb21taXQgODI0 N2E3OWVmYTJmMjhiNDQzMjlmMzYzMjcyNTUwYzE3MzgzNzdkZSBdCgpXaGVuIGRvIElQdjYgdHVu bmVsIFBNVFUgdXBkYXRlIGFuZCBjYWxscyBfX2lwNl9ydF91cGRhdGVfcG10dSgpIGluIHRoZSBl bmQsCndlIHNob3VsZCBub3QgY2FsbCBkc3RfY29uZmlybV9uZWlnaCgpIGFzIHRoZXJlIGlzIG5v IHR3by13YXkgY29tbXVuaWNhdGlvbi4KCkFsdGhvdWdoIHZ0aSBhbmQgdnRpNiBhcmUgaW1tdW5l IHRvIHRoaXMgcHJvYmxlbSBiZWNhdXNlIHRoZXkgYXJlIElGRl9OT0FSUAppbnRlcmZhY2VzLCBh cyBHdWlsbGF1bWUgcG9pbnRlZC4gVGhlcmUgaXMgc3RpbGwgbm8gc2Vuc2UgdG8gY29uZmlybSBu ZWlnaGJvdXIKaGVyZS4KCnY1OiBVcGRhdGUgY29tbWl0IGRlc2NyaXB0aW9uLgp2NDogTm8gY2hh bmdlLgp2MzogRG8gbm90IHJlbW92ZSBkc3RfY29uZmlybV9uZWlnaCwgYnV0IGFkZCBhIG5ldyBi b29sIHBhcmFtZXRlciBpbgogICAgZHN0X29wcy51cGRhdGVfcG10dSB0byBjb250cm9sIHdoZXRo ZXIgd2Ugc2hvdWxkIGRvIG5laWdoYm9yIGNvbmZpcm0uCiAgICBBbHNvIHNwbGl0IHRoZSBiaWcg cGF0Y2ggdG8gc21hbGwgb25lcyBmb3IgZWFjaCBhcmVhLgp2MjogUmVtb3ZlIGRzdF9jb25maXJt X25laWdoIGluIF9faXA2X3J0X3VwZGF0ZV9wbXR1LgoKUmV2aWV3ZWQtYnk6IEd1aWxsYXVtZSBO YXVsdCA8Z25hdWx0QHJlZGhhdC5jb20+CkFja2VkLWJ5OiBEYXZpZCBBaGVybiA8ZHNhaGVybkBn bWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IEhhbmdiaW4gTGl1IDxsaXVoYW5nYmluQGdtYWlsLmNv bT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0Pgot LS0KIG5ldC9pcHY0L2lwX3Z0aS5jICB8IDIgKy0KIG5ldC9pcHY2L2lwNl92dGkuYyB8IDIgKy0K IDIgZmlsZXMgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL25ldC9pcHY0L2lwX3Z0aS5jIGIvbmV0L2lwdjQvaXBfdnRpLmMKaW5kZXggODA4Zjhk MTVjNTE5Li45NjBmNGZhYWYyOTQgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L2lwX3Z0aS5jCisrKyBi L25ldC9pcHY0L2lwX3Z0aS5jCkBAIC0yMzUsNyArMjM1LDcgQEAgc3RhdGljIG5ldGRldl90eF90 IHZ0aV94bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAK IAltdHUgPSBkc3RfbXR1KGRzdCk7CiAJaWYgKHNrYi0+bGVuID4gbXR1KSB7Ci0JCXNrYl9kc3Rf dXBkYXRlX3BtdHUoc2tiLCBtdHUpOworCQlza2JfZHN0X3VwZGF0ZV9wbXR1X25vX2NvbmZpcm0o c2tiLCBtdHUpOwogCQlpZiAoc2tiLT5wcm90b2NvbCA9PSBodG9ucyhFVEhfUF9JUCkpIHsKIAkJ CWljbXBfc2VuZChza2IsIElDTVBfREVTVF9VTlJFQUNILCBJQ01QX0ZSQUdfTkVFREVELAogCQkJ CSAgaHRvbmwobXR1KSk7CmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9pcDZfdnRpLmMgYi9uZXQvaXB2 Ni9pcDZfdnRpLmMKaW5kZXggOGI2ZWVmZmYyZjdlLi5iZmQzOWRiMzM5OGEgMTAwNjQ0Ci0tLSBh L25ldC9pcHY2L2lwNl92dGkuYworKysgYi9uZXQvaXB2Ni9pcDZfdnRpLmMKQEAgLTQ4Myw3ICs0 ODMsNyBAQCB2dGk2X3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2Ug KmRldiwgc3RydWN0IGZsb3dpICpmbCkKIAogCW10dSA9IGRzdF9tdHUoZHN0KTsKIAlpZiAoc2ti LT5sZW4gPiBtdHUpIHsKLQkJc2tiX2RzdF91cGRhdGVfcG10dShza2IsIG10dSk7CisJCXNrYl9k c3RfdXBkYXRlX3BtdHVfbm9fY29uZmlybShza2IsIG10dSk7CiAKIAkJaWYgKHNrYi0+cHJvdG9j b2wgPT0gaHRvbnMoRVRIX1BfSVBWNikpIHsKIAkJCWlmIChtdHUgPCBJUFY2X01JTl9NVFUpCi0t IAoyLjIwLjEKCgpGcm9tIGY4NDhkMzhhMjU1MmU0NzZkZDQzMjVmYWI4NjIwMWMwZmZlMGQ1ZTMg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEhhbmdiaW4gTGl1IDxsaXVoYW5nYmluQGdt YWlsLmNvbT4KRGF0ZTogU3VuLCAyMiBEZWMgMjAxOSAxMDo1MToxNSArMDgwMApTdWJqZWN0OiBb UEFUQ0ggMTQvMjNdIHNpdDogZG8gbm90IGNvbmZpcm0gbmVpZ2hib3Igd2hlbiBkbyBwbXR1IHVw ZGF0ZQoKWyBVcHN0cmVhbSBjb21taXQgNGQ0MmRmNDZkNjM3MmVjZTRjYjQyNzk4NzBiNDZjMmVh NzMwNGE0NyBdCgpXaGVuIGRvIElQdjYgdHVubmVsIFBNVFUgdXBkYXRlIGFuZCBjYWxscyBfX2lw Nl9ydF91cGRhdGVfcG10dSgpIGluIHRoZSBlbmQsCndlIHNob3VsZCBub3QgY2FsbCBkc3RfY29u ZmlybV9uZWlnaCgpIGFzIHRoZXJlIGlzIG5vIHR3by13YXkgY29tbXVuaWNhdGlvbi4KCnY1OiBO byBjaGFuZ2UuCnY0OiBObyBjaGFuZ2UuCnYzOiBEbyBub3QgcmVtb3ZlIGRzdF9jb25maXJtX25l aWdoLCBidXQgYWRkIGEgbmV3IGJvb2wgcGFyYW1ldGVyIGluCiAgICBkc3Rfb3BzLnVwZGF0ZV9w bXR1IHRvIGNvbnRyb2wgd2hldGhlciB3ZSBzaG91bGQgZG8gbmVpZ2hib3IgY29uZmlybS4KICAg IEFsc28gc3BsaXQgdGhlIGJpZyBwYXRjaCB0byBzbWFsbCBvbmVzIGZvciBlYWNoIGFyZWEuCnYy OiBSZW1vdmUgZHN0X2NvbmZpcm1fbmVpZ2ggaW4gX19pcDZfcnRfdXBkYXRlX3BtdHUuCgpSZXZp ZXdlZC1ieTogR3VpbGxhdW1lIE5hdWx0IDxnbmF1bHRAcmVkaGF0LmNvbT4KQWNrZWQtYnk6IERh dmlkIEFoZXJuIDxkc2FoZXJuQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogSGFuZ2JpbiBMaXUg PGxpdWhhbmdiaW5AZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRh dmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjYvc2l0LmMgfCAyICstCiAxIGZpbGUgY2hh bmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2 Ni9zaXQuYyBiL25ldC9pcHY2L3NpdC5jCmluZGV4IDQxYjNmZThhYzNiYy4uYmZlZDc1MDhiYTE5 IDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9zaXQuYworKysgYi9uZXQvaXB2Ni9zaXQuYwpAQCAtOTQz LDcgKzk0Myw3IEBAIHN0YXRpYyBuZXRkZXZfdHhfdCBpcGlwNl90dW5uZWxfeG1pdChzdHJ1Y3Qg c2tfYnVmZiAqc2tiLAogCQl9CiAKIAkJaWYgKHR1bm5lbC0+cGFybXMuaXBoLmRhZGRyKQotCQkJ c2tiX2RzdF91cGRhdGVfcG10dShza2IsIG10dSk7CisJCQlza2JfZHN0X3VwZGF0ZV9wbXR1X25v X2NvbmZpcm0oc2tiLCBtdHUpOwogCiAJCWlmIChza2ItPmxlbiA+IG10dSAmJiAhc2tiX2lzX2dz byhza2IpKSB7CiAJCQlpY21wdjZfc2VuZChza2IsIElDTVBWNl9QS1RfVE9PQklHLCAwLCBtdHUp OwotLSAKMi4yMC4xCgoKRnJvbSAxZjA3ODJkZWFhNmY5NTJmZDI3MzU2YzllOTJlNTg0MTY0MWM2 YzE3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBIYW5nYmluIExpdSA8bGl1aGFuZ2Jp bkBnbWFpbC5jb20+CkRhdGU6IFN1biwgMjIgRGVjIDIwMTkgMTA6NTE6MTYgKzA4MDAKU3ViamVj dDogW1BBVENIIDE1LzIzXSBuZXQvZHN0OiBkbyBub3QgY29uZmlybSBuZWlnaGJvciBmb3Igdnhs YW4gYW5kIGdlbmV2ZQogcG10dSB1cGRhdGUKClsgVXBzdHJlYW0gY29tbWl0IGYwODEwNDJkMTI4 YTBjN2FjYmQ2NzYxMWRlZjYyZTFiNTJlMmQyOTQgXQoKV2hlbiBkbyBJUHY2IHR1bm5lbCBQTVRV IHVwZGF0ZSBhbmQgY2FsbHMgX19pcDZfcnRfdXBkYXRlX3BtdHUoKSBpbiB0aGUgZW5kLAp3ZSBz aG91bGQgbm90IGNhbGwgZHN0X2NvbmZpcm1fbmVpZ2goKSBhcyB0aGVyZSBpcyBubyB0d28td2F5 IGNvbW11bmljYXRpb24uCgpTbyBkaXNhYmxlIHRoZSBuZWlnaCBjb25maXJtIGZvciB2eGxhbiBh bmQgZ2VuZXZlIHBtdHUgdXBkYXRlLgoKdjU6IE5vIGNoYW5nZS4KdjQ6IE5vIGNoYW5nZS4KdjM6 IERvIG5vdCByZW1vdmUgZHN0X2NvbmZpcm1fbmVpZ2gsIGJ1dCBhZGQgYSBuZXcgYm9vbCBwYXJh bWV0ZXIgaW4KICAgIGRzdF9vcHMudXBkYXRlX3BtdHUgdG8gY29udHJvbCB3aGV0aGVyIHdlIHNo b3VsZCBkbyBuZWlnaGJvciBjb25maXJtLgogICAgQWxzbyBzcGxpdCB0aGUgYmlnIHBhdGNoIHRv IHNtYWxsIG9uZXMgZm9yIGVhY2ggYXJlYS4KdjI6IFJlbW92ZSBkc3RfY29uZmlybV9uZWlnaCBp biBfX2lwNl9ydF91cGRhdGVfcG10dS4KCkZpeGVzOiBhOTNiZjBmZjQ0OTAgKCJ2eGxhbjogdXBk YXRlIHNrYiBkc3QgcG10dSBvbiB0eCBwYXRoIikKRml4ZXM6IDUyYTU4OWQ1MWYxMCAoImdlbmV2 ZTogdXBkYXRlIHNrYiBkc3QgcG10dSBvbiB0eCBwYXRoIikKUmV2aWV3ZWQtYnk6IEd1aWxsYXVt ZSBOYXVsdCA8Z25hdWx0QHJlZGhhdC5jb20+ClRlc3RlZC1ieTogR3VpbGxhdW1lIE5hdWx0IDxn bmF1bHRAcmVkaGF0LmNvbT4KQWNrZWQtYnk6IERhdmlkIEFoZXJuIDxkc2FoZXJuQGdtYWlsLmNv bT4KU2lnbmVkLW9mZi1ieTogSGFuZ2JpbiBMaXUgPGxpdWhhbmdiaW5AZ21haWwuY29tPgpTaWdu ZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogaW5j bHVkZS9uZXQvZHN0LmggfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEg ZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9kc3QuaCBiL2luY2x1ZGUvbmV0 L2RzdC5oCmluZGV4IGM4ODZjNDViYTI4Ni4uMzVhZTQ1ZmEwNzU4IDEwMDY0NAotLS0gYS9pbmNs dWRlL25ldC9kc3QuaAorKysgYi9pbmNsdWRlL25ldC9kc3QuaApAQCAtNTQ2LDcgKzU0Niw3IEBA IHN0YXRpYyBpbmxpbmUgdm9pZCBza2JfdHVubmVsX2NoZWNrX3BtdHUoc3RydWN0IHNrX2J1ZmYg KnNrYiwKIAl1MzIgZW5jYXBfbXR1ID0gZHN0X210dShlbmNhcF9kc3QpOwogCiAJaWYgKHNrYi0+ bGVuID4gZW5jYXBfbXR1IC0gaGVhZHJvb20pCi0JCXNrYl9kc3RfdXBkYXRlX3BtdHUoc2tiLCBl bmNhcF9tdHUgLSBoZWFkcm9vbSk7CisJCXNrYl9kc3RfdXBkYXRlX3BtdHVfbm9fY29uZmlybShz a2IsIGVuY2FwX210dSAtIGhlYWRyb29tKTsKIH0KIAogI2VuZGlmIC8qIF9ORVRfRFNUX0ggKi8K LS0gCjIuMjAuMQoKCkZyb20gNzU1YTNhMDBkYWFhNGI4NTNhMjJmNzJhNmRlNjMwNTU2Y2RiYzg3 NiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBn b29nbGUuY29tPgpEYXRlOiBUaHUsIDEyIERlYyAyMDE5IDEwOjMyOjEzIC0wODAwClN1YmplY3Q6 IFtQQVRDSCAxNi8yM10gNnBhY2ssbWtpc3M6IGZpeCBwb3NzaWJsZSBkZWFkbG9jawoKWyBVcHN0 cmVhbSBjb21taXQgNWM5OTM0YjY3NjdiMTZiYTYwYmUyMmVjM2NiZDQzNzlhZDY0MTcwZCBdCgpX ZSBnb3QgYW5vdGhlciBzeXpib3QgcmVwb3J0IFsxXSB0aGF0IHRlbGxzIHVzIHdlIG11c3QgdXNl CndyaXRlX2xvY2tfaXJxKCkvd3JpdGVfdW5sb2NrX2lycSgpIHRvIGF2b2lkIHBvc3NpYmxlIGRl YWRsb2NrLgoKWzFdCgpXQVJOSU5HOiBpbmNvbnNpc3RlbnQgbG9jayBzdGF0ZQo1LjUuMC1yYzEt c3l6a2FsbGVyICMwIE5vdCB0YWludGVkCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CmluY29uc2lzdGVudCB7SEFSRElSUS1PTi1XfSAtPiB7SU4tSEFSRElSUS1SfSB1c2FnZS4Kc3l6 LWV4ZWN1dG9yODI2Lzk2MDUgW0hDMVsxXTpTQzBbMF06SEUwOlNFMV0gdGFrZXM6CmZmZmZmZmZm OGExMjg3MTggKGRpc2NfZGF0YV9sb2NrKXsrLS4ufSwgYXQ6IHNwX2dldC5pc3JhLjArMHgxZC8w eGYwIGRyaXZlcnMvbmV0L3BwcC9wcHBfc3luY3R0eS5jOjEzOAp7SEFSRElSUS1PTi1XfSBzdGF0 ZSB3YXMgcmVnaXN0ZXJlZCBhdDoKICBsb2NrX2FjcXVpcmUrMHgxOTAvMHg0MTAga2VybmVsL2xv Y2tpbmcvbG9ja2RlcC5jOjQ0ODUKICBfX3Jhd193cml0ZV9sb2NrX2JoIGluY2x1ZGUvbGludXgv cndsb2NrX2FwaV9zbXAuaDoyMDMgW2lubGluZV0KICBfcmF3X3dyaXRlX2xvY2tfYmgrMHgzMy8w eDUwIGtlcm5lbC9sb2NraW5nL3NwaW5sb2NrLmM6MzE5CiAgc2l4cGFja19jbG9zZSsweDFkLzB4 MjUwIGRyaXZlcnMvbmV0L2hhbXJhZGlvLzZwYWNrLmM6NjU3CiAgdHR5X2xkaXNjX2Nsb3NlLmlz cmEuMCsweDExOS8weDFhMCBkcml2ZXJzL3R0eS90dHlfbGRpc2MuYzo0ODkKICB0dHlfc2V0X2xk aXNjKzB4MjMwLzB4NmIwIGRyaXZlcnMvdHR5L3R0eV9sZGlzYy5jOjU4NQogIHRpb2NzZXRkIGRy aXZlcnMvdHR5L3R0eV9pby5jOjIzMzcgW2lubGluZV0KICB0dHlfaW9jdGwrMHhlOGQvMHgxNGYw IGRyaXZlcnMvdHR5L3R0eV9pby5jOjI1OTcKICB2ZnNfaW9jdGwgZnMvaW9jdGwuYzo0NyBbaW5s aW5lXQogIGZpbGVfaW9jdGwgZnMvaW9jdGwuYzo1NDUgW2lubGluZV0KICBkb192ZnNfaW9jdGwr MHg5NzcvMHgxNGUwIGZzL2lvY3RsLmM6NzMyCiAga3N5c19pb2N0bCsweGFiLzB4ZDAgZnMvaW9j dGwuYzo3NDkKICBfX2RvX3N5c19pb2N0bCBmcy9pb2N0bC5jOjc1NiBbaW5saW5lXQogIF9fc2Vf c3lzX2lvY3RsIGZzL2lvY3RsLmM6NzU0IFtpbmxpbmVdCiAgX194NjRfc3lzX2lvY3RsKzB4NzMv MHhiMCBmcy9pb2N0bC5jOjc1NAogIGRvX3N5c2NhbGxfNjQrMHhmYS8weDc5MCBhcmNoL3g4Ni9l bnRyeS9jb21tb24uYzoyOTQKICBlbnRyeV9TWVNDQUxMXzY0X2FmdGVyX2h3ZnJhbWUrMHg0OS8w eGJlCmlycSBldmVudCBzdGFtcDogMzk0NgpoYXJkaXJxcyBsYXN0ICBlbmFibGVkIGF0ICgzOTQ1 KTogWzxmZmZmZmZmZjg3Yzg2ZTQzPl0gX19yYXdfc3Bpbl91bmxvY2tfaXJxIGluY2x1ZGUvbGlu dXgvc3BpbmxvY2tfYXBpX3NtcC5oOjE2OCBbaW5saW5lXQpoYXJkaXJxcyBsYXN0ICBlbmFibGVk IGF0ICgzOTQ1KTogWzxmZmZmZmZmZjg3Yzg2ZTQzPl0gX3Jhd19zcGluX3VubG9ja19pcnErMHgy My8weDgwIGtlcm5lbC9sb2NraW5nL3NwaW5sb2NrLmM6MTk5CmhhcmRpcnFzIGxhc3QgZGlzYWJs ZWQgYXQgKDM5NDYpOiBbPGZmZmZmZmZmODEwMDY3NWY+XSB0cmFjZV9oYXJkaXJxc19vZmZfdGh1 bmsrMHgxYS8weDFjIGFyY2gveDg2L2VudHJ5L3RodW5rXzY0LlM6NDIKc29mdGlycXMgbGFzdCAg ZW5hYmxlZCBhdCAoMjY1OCk6IFs8ZmZmZmZmZmY4NmE4YjRkZj5dIHNwaW5fdW5sb2NrX2JoIGlu Y2x1ZGUvbGludXgvc3BpbmxvY2suaDozODMgW2lubGluZV0Kc29mdGlycXMgbGFzdCAgZW5hYmxl ZCBhdCAoMjY1OCk6IFs8ZmZmZmZmZmY4NmE4YjRkZj5dIGNsdXN0ZXJpcF9uZXRkZXZfZXZlbnQr MHg0NmYvMHg2NzAgbmV0L2lwdjQvbmV0ZmlsdGVyL2lwdF9DTFVTVEVSSVAuYzoyMjIKc29mdGly cXMgbGFzdCBkaXNhYmxlZCBhdCAoMjY1Nik6IFs8ZmZmZmZmZmY4NmE4YjIyYj5dIHNwaW5fbG9j a19iaCBpbmNsdWRlL2xpbnV4L3NwaW5sb2NrLmg6MzQzIFtpbmxpbmVdCnNvZnRpcnFzIGxhc3Qg ZGlzYWJsZWQgYXQgKDI2NTYpOiBbPGZmZmZmZmZmODZhOGIyMmI+XSBjbHVzdGVyaXBfbmV0ZGV2 X2V2ZW50KzB4MWJiLzB4NjcwIG5ldC9pcHY0L25ldGZpbHRlci9pcHRfQ0xVU1RFUklQLmM6MTk2 CgpvdGhlciBpbmZvIHRoYXQgbWlnaHQgaGVscCB1cyBkZWJ1ZyB0aGlzOgogUG9zc2libGUgdW5z YWZlIGxvY2tpbmcgc2NlbmFyaW86CgogICAgICAgQ1BVMAogICAgICAgLS0tLQogIGxvY2soZGlz Y19kYXRhX2xvY2spOwogIDxJbnRlcnJ1cHQ+CiAgICBsb2NrKGRpc2NfZGF0YV9sb2NrKTsKCiAq KiogREVBRExPQ0sgKioqCgo1IGxvY2tzIGhlbGQgYnkgc3l6LWV4ZWN1dG9yODI2Lzk2MDU6CiAj MDogZmZmZjg4ODBhOTA1ZTE5OCAoJnR0eS0+bGVnYWN5X211dGV4KXsrLisufSwgYXQ6IHR0eV9s b2NrKzB4YzcvMHgxMzAgZHJpdmVycy90dHkvdHR5X211dGV4LmM6MTkKICMxOiBmZmZmZmZmZjg5 OWE1NmMwIChyY3VfcmVhZF9sb2NrKXsuLi4ufSwgYXQ6IG11dGV4X3NwaW5fb25fb3duZXIrMHgw LzB4MzMwIGtlcm5lbC9sb2NraW5nL211dGV4LmM6NDEzCiAjMjogZmZmZjg4ODBhNDk2YTJiMCAo JigmaS0+bG9jayktPnJsb2NrKXstLi0ufSwgYXQ6IHNwaW5fbG9jayBpbmNsdWRlL2xpbnV4L3Nw aW5sb2NrLmg6MzM4IFtpbmxpbmVdCiAjMjogZmZmZjg4ODBhNDk2YTJiMCAoJigmaS0+bG9jaykt PnJsb2NrKXstLi0ufSwgYXQ6IHNlcmlhbDgyNTBfaW50ZXJydXB0KzB4MmQvMHgxYTAgZHJpdmVy cy90dHkvc2VyaWFsLzgyNTAvODI1MF9jb3JlLmM6MTE2CiAjMzogZmZmZmZmZmY4YzEwNDA0OCAo JnBvcnRfbG9ja19rZXkpey0uLS59LCBhdDogc2VyaWFsODI1MF9oYW5kbGVfaXJxLnBhcnQuMCsw eDI0LzB4MzMwIGRyaXZlcnMvdHR5L3NlcmlhbC84MjUwLzgyNTBfcG9ydC5jOjE4MjMKICM0OiBm ZmZmODg4MGE5MDVlMDkwICgmdHR5LT5sZGlzY19zZW0peysrKyt9LCBhdDogdHR5X2xkaXNjX3Jl ZisweDIyLzB4OTAgZHJpdmVycy90dHkvdHR5X2xkaXNjLmM6Mjg4CgpzdGFjayBiYWNrdHJhY2U6 CkNQVTogMSBQSUQ6IDk2MDUgQ29tbTogc3l6LWV4ZWN1dG9yODI2IE5vdCB0YWludGVkIDUuNS4w LXJjMS1zeXprYWxsZXIgIzAKSGFyZHdhcmUgbmFtZTogR29vZ2xlIEdvb2dsZSBDb21wdXRlIEVu Z2luZS9Hb29nbGUgQ29tcHV0ZSBFbmdpbmUsIEJJT1MgR29vZ2xlIDAxLzAxLzIwMTEKQ2FsbCBU cmFjZToKIDxJUlE+CiBfX2R1bXBfc3RhY2sgbGliL2R1bXBfc3RhY2suYzo3NyBbaW5saW5lXQog ZHVtcF9zdGFjaysweDE5Ny8weDIxMCBsaWIvZHVtcF9zdGFjay5jOjExOAogcHJpbnRfdXNhZ2Vf YnVnLmNvbGQrMHgzMjcvMHgzNzgga2VybmVsL2xvY2tpbmcvbG9ja2RlcC5jOjMxMDEKIHZhbGlk X3N0YXRlIGtlcm5lbC9sb2NraW5nL2xvY2tkZXAuYzozMTEyIFtpbmxpbmVdCiBtYXJrX2xvY2tf aXJxIGtlcm5lbC9sb2NraW5nL2xvY2tkZXAuYzozMzA5IFtpbmxpbmVdCiBtYXJrX2xvY2srMHhi YjQvMHgxMjIwIGtlcm5lbC9sb2NraW5nL2xvY2tkZXAuYzozNjY2CiBtYXJrX3VzYWdlIGtlcm5l bC9sb2NraW5nL2xvY2tkZXAuYzozNTU0IFtpbmxpbmVdCiBfX2xvY2tfYWNxdWlyZSsweDFlNTUv MHg0YTAwIGtlcm5lbC9sb2NraW5nL2xvY2tkZXAuYzozOTA5CiBsb2NrX2FjcXVpcmUrMHgxOTAv MHg0MTAga2VybmVsL2xvY2tpbmcvbG9ja2RlcC5jOjQ0ODUKIF9fcmF3X3JlYWRfbG9jayBpbmNs dWRlL2xpbnV4L3J3bG9ja19hcGlfc21wLmg6MTQ5IFtpbmxpbmVdCiBfcmF3X3JlYWRfbG9jaysw eDMyLzB4NTAga2VybmVsL2xvY2tpbmcvc3BpbmxvY2suYzoyMjMKIHNwX2dldC5pc3JhLjArMHgx ZC8weGYwIGRyaXZlcnMvbmV0L3BwcC9wcHBfc3luY3R0eS5jOjEzOAogc2l4cGFja193cml0ZV93 YWtldXArMHgyNS8weDM0MCBkcml2ZXJzL25ldC9oYW1yYWRpby82cGFjay5jOjQwMgogdHR5X3dh a2V1cCsweGU5LzB4MTIwIGRyaXZlcnMvdHR5L3R0eV9pby5jOjUzNgogdHR5X3BvcnRfZGVmYXVs dF93YWtldXArMHgyYi8weDQwIGRyaXZlcnMvdHR5L3R0eV9wb3J0LmM6NTAKIHR0eV9wb3J0X3R0 eV93YWtldXArMHg1Ny8weDcwIGRyaXZlcnMvdHR5L3R0eV9wb3J0LmM6Mzg3CiB1YXJ0X3dyaXRl X3dha2V1cCsweDQ2LzB4NzAgZHJpdmVycy90dHkvc2VyaWFsL3NlcmlhbF9jb3JlLmM6MTA0CiBz ZXJpYWw4MjUwX3R4X2NoYXJzKzB4NDk1LzB4YWYwIGRyaXZlcnMvdHR5L3NlcmlhbC84MjUwLzgy NTBfcG9ydC5jOjE3NjEKIHNlcmlhbDgyNTBfaGFuZGxlX2lycS5wYXJ0LjArMHgyYTIvMHgzMzAg ZHJpdmVycy90dHkvc2VyaWFsLzgyNTAvODI1MF9wb3J0LmM6MTgzNAogc2VyaWFsODI1MF9oYW5k bGVfaXJxIGRyaXZlcnMvdHR5L3NlcmlhbC84MjUwLzgyNTBfcG9ydC5jOjE4MjAgW2lubGluZV0K IHNlcmlhbDgyNTBfZGVmYXVsdF9oYW5kbGVfaXJxKzB4YzAvMHgxNTAgZHJpdmVycy90dHkvc2Vy aWFsLzgyNTAvODI1MF9wb3J0LmM6MTg1MAogc2VyaWFsODI1MF9pbnRlcnJ1cHQrMHhmMS8weDFh MCBkcml2ZXJzL3R0eS9zZXJpYWwvODI1MC84MjUwX2NvcmUuYzoxMjYKIF9faGFuZGxlX2lycV9l dmVudF9wZXJjcHUrMHgxNWQvMHg5NzAga2VybmVsL2lycS9oYW5kbGUuYzoxNDkKIGhhbmRsZV9p cnFfZXZlbnRfcGVyY3B1KzB4NzQvMHgxNjAga2VybmVsL2lycS9oYW5kbGUuYzoxODkKIGhhbmRs ZV9pcnFfZXZlbnQrMHhhNy8weDEzNCBrZXJuZWwvaXJxL2hhbmRsZS5jOjIwNgogaGFuZGxlX2Vk Z2VfaXJxKzB4MjVlLzB4OGQwIGtlcm5lbC9pcnEvY2hpcC5jOjgzMAogZ2VuZXJpY19oYW5kbGVf aXJxX2Rlc2MgaW5jbHVkZS9saW51eC9pcnFkZXNjLmg6MTU2IFtpbmxpbmVdCiBkb19JUlErMHhk ZS8weDI4MCBhcmNoL3g4Ni9rZXJuZWwvaXJxLmM6MjUwCiBjb21tb25faW50ZXJydXB0KzB4Zi8w eGYgYXJjaC94ODYvZW50cnkvZW50cnlfNjQuUzo2MDcKIDwvSVJRPgpSSVA6IDAwMTA6Y3B1X3Jl bGF4IGFyY2gveDg2L2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oOjY4NSBbaW5saW5lXQpSSVA6IDAw MTA6bXV0ZXhfc3Bpbl9vbl9vd25lcisweDI0Ny8weDMzMCBrZXJuZWwvbG9ja2luZy9tdXRleC5j OjU3OQpDb2RlOiBjMyBiZSAwOCAwMCAwMCAwMCA0YyA4OSBlNyBlOCBlNSAwNiA1OSAwMCA0YyA4 OSBlMCA0OCBjMSBlOCAwMyA0MiA4MCAzYyAzOCAwMCAwZiA4NSBlMSAwMCAwMCAwMCA0OSA4YiAw NCAyNCBhOCAwMSA3NSA5NiBmMyA5MCA8ZTk+IDJmIGZlIGZmIGZmIDBmIDBiIGU4IDBkIDE5IDA5 IDAwIDg0IGMwIDBmIDg1IGZmIGZkIGZmIGZmIDQ4IGM3ClJTUDogMDAxODpmZmZmYzkwMDAxZWFm YTIwIEVGTEFHUzogMDAwMDAyNDYgT1JJR19SQVg6IGZmZmZmZmZmZmZmZmZmZDcKUkFYOiAwMDAw MDAwMDAwMDAwMDAwIFJCWDogZmZmZjg4ODA5ZmQ5ZTBjMCBSQ1g6IDFmZmZmZmZmZjEzMjY2ZGQK UkRYOiAwMDAwMDAwMDAwMDAwMDAwIFJTSTogMDAwMDAwMDAwMDAwMDAwOCBSREk6IDAwMDAwMDAw MDAwMDAwMDAKUkJQOiBmZmZmYzkwMDAxZWFmYTYwIFIwODogMWZmZmYxMTAxM2QyMjg5OCBSMDk6 IGZmZmZlZDEwMTNkMjI4OTkKUjEwOiBmZmZmZWQxMDEzZDIyODk4IFIxMTogZmZmZjg4ODA5ZTkx NDRjNyBSMTI6IGZmZmY4ODgwYTkwNWUxMzgKUjEzOiBmZmZmODg4MDllOTE0NGMwIFIxNDogMDAw MDAwMDAwMDAwMDAwMCBSMTU6IGRmZmZmYzAwMDAwMDAwMDAKIG11dGV4X29wdGltaXN0aWNfc3Bp biBrZXJuZWwvbG9ja2luZy9tdXRleC5jOjY3MyBbaW5saW5lXQogX19tdXRleF9sb2NrX2NvbW1v biBrZXJuZWwvbG9ja2luZy9tdXRleC5jOjk2MiBbaW5saW5lXQogX19tdXRleF9sb2NrKzB4MzJi LzB4MTNjMCBrZXJuZWwvbG9ja2luZy9tdXRleC5jOjExMDYKIG11dGV4X2xvY2tfbmVzdGVkKzB4 MTYvMHgyMCBrZXJuZWwvbG9ja2luZy9tdXRleC5jOjExMjEKIHR0eV9sb2NrKzB4YzcvMHgxMzAg ZHJpdmVycy90dHkvdHR5X211dGV4LmM6MTkKIHR0eV9yZWxlYXNlKzB4YjUvMHhlOTAgZHJpdmVy cy90dHkvdHR5X2lvLmM6MTY2NQogX19mcHV0KzB4MmZmLzB4ODkwIGZzL2ZpbGVfdGFibGUuYzoy ODAKIF9fX19mcHV0KzB4MTYvMHgyMCBmcy9maWxlX3RhYmxlLmM6MzEzCiB0YXNrX3dvcmtfcnVu KzB4MTQ1LzB4MWMwIGtlcm5lbC90YXNrX3dvcmsuYzoxMTMKIGV4aXRfdGFza193b3JrIGluY2x1 ZGUvbGludXgvdGFza193b3JrLmg6MjIgW2lubGluZV0KIGRvX2V4aXQrMHg4ZTcvMHgyZWYwIGtl cm5lbC9leGl0LmM6Nzk3CiBkb19ncm91cF9leGl0KzB4MTM1LzB4MzYwIGtlcm5lbC9leGl0LmM6 ODk1CiBfX2RvX3N5c19leGl0X2dyb3VwIGtlcm5lbC9leGl0LmM6OTA2IFtpbmxpbmVdCiBfX3Nl X3N5c19leGl0X2dyb3VwIGtlcm5lbC9leGl0LmM6OTA0IFtpbmxpbmVdCiBfX3g2NF9zeXNfZXhp dF9ncm91cCsweDQ0LzB4NTAga2VybmVsL2V4aXQuYzo5MDQKIGRvX3N5c2NhbGxfNjQrMHhmYS8w eDc5MCBhcmNoL3g4Ni9lbnRyeS9jb21tb24uYzoyOTQKIGVudHJ5X1NZU0NBTExfNjRfYWZ0ZXJf aHdmcmFtZSsweDQ5LzB4YmUKUklQOiAwMDMzOjB4NDNmZWY4CkNvZGU6IEJhZCBSSVAgdmFsdWUu ClJTUDogMDAyYjowMDAwN2ZmZGIwN2QyMzM4IEVGTEFHUzogMDAwMDAyNDYgT1JJR19SQVg6IDAw MDAwMDAwMDAwMDAwZTcKUkFYOiBmZmZmZmZmZmZmZmZmZmRhIFJCWDogMDAwMDAwMDAwMDAwMDAw MCBSQ1g6IDAwMDAwMDAwMDA0M2ZlZjgKUkRYOiAwMDAwMDAwMDAwMDAwMDAwIFJTSTogMDAwMDAw MDAwMDAwMDAzYyBSREk6IDAwMDAwMDAwMDAwMDAwMDAKUkJQOiAwMDAwMDAwMDAwNGJmNzMwIFIw ODogMDAwMDAwMDAwMDAwMDBlNyBSMDk6IGZmZmZmZmZmZmZmZmZmZDAKUjEwOiAwMDAwMDAwMDAw NDAwMmM4IFIxMTogMDAwMDAwMDAwMDAwMDI0NiBSMTI6IDAwMDAwMDAwMDAwMDAwMDEKUjEzOiAw MDAwMDAwMDAwNmQxMTgwIFIxNDogMDAwMDAwMDAwMDAwMDAwMCBSMTU6IDAwMDAwMDAwMDAwMDAw MDAKCkZpeGVzOiA2ZTRlMmY4MTFiYWQgKCI2cGFjayxta2lzczogZml4IGxvY2sgaW5jb25zaXN0 ZW5jeSIpClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4K UmVwb3J0ZWQtYnk6IHN5emJvdCA8c3l6a2FsbGVyQGdvb2dsZWdyb3Vwcy5jb20+CkNjOiBBcm5k IEJlcmdtYW5uIDxhcm5kQGFybmRiLmRlPgpTaWduZWQtb2ZmLWJ5OiBKYWt1YiBLaWNpbnNraSA8 amFrdWIua2ljaW5za2lAbmV0cm9ub21lLmNvbT4KLS0tCiBkcml2ZXJzL25ldC9oYW1yYWRpby82 cGFjay5jIHwgNCArKy0tCiBkcml2ZXJzL25ldC9oYW1yYWRpby9ta2lzcy5jIHwgNCArKy0tCiAy IGZpbGVzIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9kcml2ZXJzL25ldC9oYW1yYWRpby82cGFjay5jIGIvZHJpdmVycy9uZXQvaGFtcmFkaW8v NnBhY2suYwppbmRleCA1NGU2M2VjMDQ5MDcuLjhjNjM2YzQ5MzIyNyAxMDA2NDQKLS0tIGEvZHJp dmVycy9uZXQvaGFtcmFkaW8vNnBhY2suYworKysgYi9kcml2ZXJzL25ldC9oYW1yYWRpby82cGFj ay5jCkBAIC02NTQsMTAgKzY1NCwxMCBAQCBzdGF0aWMgdm9pZCBzaXhwYWNrX2Nsb3NlKHN0cnVj dCB0dHlfc3RydWN0ICp0dHkpCiB7CiAJc3RydWN0IHNpeHBhY2sgKnNwOwogCi0Jd3JpdGVfbG9j a19iaCgmZGlzY19kYXRhX2xvY2spOworCXdyaXRlX2xvY2tfaXJxKCZkaXNjX2RhdGFfbG9jayk7 CiAJc3AgPSB0dHktPmRpc2NfZGF0YTsKIAl0dHktPmRpc2NfZGF0YSA9IE5VTEw7Ci0Jd3JpdGVf dW5sb2NrX2JoKCZkaXNjX2RhdGFfbG9jayk7CisJd3JpdGVfdW5sb2NrX2lycSgmZGlzY19kYXRh X2xvY2spOwogCWlmICghc3ApCiAJCXJldHVybjsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQv aGFtcmFkaW8vbWtpc3MuYyBiL2RyaXZlcnMvbmV0L2hhbXJhZGlvL21raXNzLmMKaW5kZXggMTNl NGMxZWZmMzUzLi4zYjE0ZTZlMjgxZDQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2hhbXJhZGlv L21raXNzLmMKKysrIGIvZHJpdmVycy9uZXQvaGFtcmFkaW8vbWtpc3MuYwpAQCAtNzgzLDEwICs3 ODMsMTAgQEAgc3RhdGljIHZvaWQgbWtpc3NfY2xvc2Uoc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSkK IHsKIAlzdHJ1Y3QgbWtpc3MgKmF4OwogCi0Jd3JpdGVfbG9ja19iaCgmZGlzY19kYXRhX2xvY2sp OworCXdyaXRlX2xvY2tfaXJxKCZkaXNjX2RhdGFfbG9jayk7CiAJYXggPSB0dHktPmRpc2NfZGF0 YTsKIAl0dHktPmRpc2NfZGF0YSA9IE5VTEw7Ci0Jd3JpdGVfdW5sb2NrX2JoKCZkaXNjX2RhdGFf bG9jayk7CisJd3JpdGVfdW5sb2NrX2lycSgmZGlzY19kYXRhX2xvY2spOwogCiAJaWYgKCFheCkK IAkJcmV0dXJuOwotLSAKMi4yMC4xCgoKRnJvbSA2ZWZmZDcyZDc5NWYwMjJjZmI2MTIzZjljNTAw ZTU1ZGEyOGJiNTlhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUYWVoZWUgWW9vIDxh cDQyMDA3M0BnbWFpbC5jb20+CkRhdGU6IFdlZCwgMTEgRGVjIDIwMTkgMDg6MjM6MDAgKzAwMDAK U3ViamVjdDogW1BBVENIIDE3LzIzXSBndHA6IGRvIG5vdCBhbGxvdyBhZGRpbmcgZHVwbGljYXRl IHRpZCBhbmQgbXNfYWRkciBwZHAKIGNvbnRleHQKClsgVXBzdHJlYW0gY29tbWl0IDZiMDFiMWQ5 YjJkMzhkYzg0YWMzOThiZmU5ZjAwYmFmZjA2YTMxZTUgXQoKR1RQIFJYIHBhY2tldCBwYXRoIGxv b2t1cHMgcGRwIGNvbnRleHQgd2l0aCBUSUQuIElmIGR1cGxpY2F0ZSBUSUQgcGRwCmNvbnRleHRz IGFyZSBleGlzdGluZyBpbiB0aGUgbGlzdCwgaXQgY291bGRuJ3Qgc2VsZWN0IGNvcnJlY3QgcGRw IGNvbnRleHQuClNvLCBUSUQgdmFsdWUgIHNob3VsZCBiZSB1bmlxdWUuCkdUUCBUWCBwYWNrZXQg cGF0aCBsb29rdXBzIHBkcCBjb250ZXh0IHdpdGggbXNfYWRkci4gSWYgZHVwbGljYXRlIG1zX2Fk ZHIgcGRwCmNvbnRleHRzIGFyZSBleGlzdGluZyBpbiB0aGUgbGlzdCwgaXQgY291bGRuJ3Qgc2Vs ZWN0IGNvcnJlY3QgcGRwIGNvbnRleHQuClNvLCBtc19hZGRyIHZhbHVlIHNob3VsZCBiZSB1bmlx dWUuCgpGaXhlczogNDU5YWE2NjBlYjFkICgiZ3RwOiBhZGQgaW5pdGlhbCBkcml2ZXIgZm9yIGRh dGFwYXRoIG9mIEdQUlMgVHVubmVsaW5nIFByb3RvY29sIChHVFAtVSkiKQpTaWduZWQtb2ZmLWJ5 OiBUYWVoZWUgWW9vIDxhcDQyMDA3M0BnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IEpha3ViIEtp Y2luc2tpIDxqYWt1Yi5raWNpbnNraUBuZXRyb25vbWUuY29tPgotLS0KIGRyaXZlcnMvbmV0L2d0 cC5jIHwgMzIgKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2Vk LCAyMiBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJz L25ldC9ndHAuYyBiL2RyaXZlcnMvbmV0L2d0cC5jCmluZGV4IGQ5NTdmZmRmZWMwZi4uNWE1MGY4 ODQyYjVhIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ndHAuYworKysgYi9kcml2ZXJzL25ldC9n dHAuYwpAQCAtOTMxLDI0ICs5MzEsMzEgQEAgc3RhdGljIHZvaWQgaXB2NF9wZHBfZmlsbChzdHJ1 Y3QgcGRwX2N0eCAqcGN0eCwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbykKIAl9CiB9CiAKLXN0YXRp YyBpbnQgaXB2NF9wZHBfYWRkKHN0cnVjdCBndHBfZGV2ICpndHAsIHN0cnVjdCBzb2NrICpzaywK LQkJCXN0cnVjdCBnZW5sX2luZm8gKmluZm8pCitzdGF0aWMgaW50IGd0cF9wZHBfYWRkKHN0cnVj dCBndHBfZGV2ICpndHAsIHN0cnVjdCBzb2NrICpzaywKKwkJICAgICAgIHN0cnVjdCBnZW5sX2lu Zm8gKmluZm8pCiB7CisJc3RydWN0IHBkcF9jdHggKnBjdHgsICpwY3R4X3RpZCA9IE5VTEw7CiAJ c3RydWN0IG5ldF9kZXZpY2UgKmRldiA9IGd0cC0+ZGV2OwogCXUzMiBoYXNoX21zLCBoYXNoX3Rp ZCA9IDA7Ci0Jc3RydWN0IHBkcF9jdHggKnBjdHg7CisJdW5zaWduZWQgaW50IHZlcnNpb247CiAJ Ym9vbCBmb3VuZCA9IGZhbHNlOwogCV9fYmUzMiBtc19hZGRyOwogCiAJbXNfYWRkciA9IG5sYV9n ZXRfYmUzMihpbmZvLT5hdHRyc1tHVFBBX01TX0FERFJFU1NdKTsKIAloYXNoX21zID0gaXB2NF9o YXNoZm4obXNfYWRkcikgJSBndHAtPmhhc2hfc2l6ZTsKKwl2ZXJzaW9uID0gbmxhX2dldF91MzIo aW5mby0+YXR0cnNbR1RQQV9WRVJTSU9OXSk7CiAKLQlobGlzdF9mb3JfZWFjaF9lbnRyeV9yY3Uo cGN0eCwgJmd0cC0+YWRkcl9oYXNoW2hhc2hfbXNdLCBobGlzdF9hZGRyKSB7Ci0JCWlmIChwY3R4 LT5tc19hZGRyX2lwNC5zX2FkZHIgPT0gbXNfYWRkcikgewotCQkJZm91bmQgPSB0cnVlOwotCQkJ YnJlYWs7Ci0JCX0KLQl9CisJcGN0eCA9IGlwdjRfcGRwX2ZpbmQoZ3RwLCBtc19hZGRyKTsKKwlp ZiAocGN0eCkKKwkJZm91bmQgPSB0cnVlOworCWlmICh2ZXJzaW9uID09IEdUUF9WMCkKKwkJcGN0 eF90aWQgPSBndHAwX3BkcF9maW5kKGd0cCwKKwkJCQkJIG5sYV9nZXRfdTY0KGluZm8tPmF0dHJz W0dUUEFfVElEXSkpOworCWVsc2UgaWYgKHZlcnNpb24gPT0gR1RQX1YxKQorCQlwY3R4X3RpZCA9 IGd0cDFfcGRwX2ZpbmQoZ3RwLAorCQkJCQkgbmxhX2dldF91MzIoaW5mby0+YXR0cnNbR1RQQV9J X1RFSV0pKTsKKwlpZiAocGN0eF90aWQpCisJCWZvdW5kID0gdHJ1ZTsKIAogCWlmIChmb3VuZCkg ewogCQlpZiAoaW5mby0+bmxoZHItPm5sbXNnX2ZsYWdzICYgTkxNX0ZfRVhDTCkKQEAgLTk1Niw2 ICs5NjMsMTEgQEAgc3RhdGljIGludCBpcHY0X3BkcF9hZGQoc3RydWN0IGd0cF9kZXYgKmd0cCwg c3RydWN0IHNvY2sgKnNrLAogCQlpZiAoaW5mby0+bmxoZHItPm5sbXNnX2ZsYWdzICYgTkxNX0Zf UkVQTEFDRSkKIAkJCXJldHVybiAtRU9QTk9UU1VQUDsKIAorCQlpZiAocGN0eCAmJiBwY3R4X3Rp ZCkKKwkJCXJldHVybiAtRUVYSVNUOworCQlpZiAoIXBjdHgpCisJCQlwY3R4ID0gcGN0eF90aWQ7 CisKIAkJaXB2NF9wZHBfZmlsbChwY3R4LCBpbmZvKTsKIAogCQlpZiAocGN0eC0+Z3RwX3ZlcnNp b24gPT0gR1RQX1YwKQpAQCAtMTA3OSw3ICsxMDkxLDcgQEAgc3RhdGljIGludCBndHBfZ2VubF9u ZXdfcGRwKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pCiAJCWdv dG8gb3V0X3VubG9jazsKIAl9CiAKLQllcnIgPSBpcHY0X3BkcF9hZGQoZ3RwLCBzaywgaW5mbyk7 CisJZXJyID0gZ3RwX3BkcF9hZGQoZ3RwLCBzaywgaW5mbyk7CiAKIG91dF91bmxvY2s6CiAJcmN1 X3JlYWRfdW5sb2NrKCk7Ci0tIAoyLjIwLjEKCgpGcm9tIDU3Y2I4ZTI4ODFhYzdjYjQ0NGE3M2E1 ODIyNGI3NTczZjJiYTlkYmMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFJ1c3NlbGwg S2luZyA8cm1rK2tlcm5lbEBhcm1saW51eC5vcmcudWs+CkRhdGU6IFR1ZSwgMTAgRGVjIDIwMTkg MjI6MzM6MDUgKzAwMDAKU3ViamVjdDogW1BBVENIIDE4LzIzXSBuZXQ6IG1hcnZlbGw6IG12cHAy OiBwaHlsaW5rIHJlcXVpcmVzIHRoZSBsaW5rCiBpbnRlcnJ1cHQKClsgVXBzdHJlYW0gY29tbWl0 IGYzZjIzNjRlYTE0ZDFjZjZiZjk2NjU0MmYzMWVhZGNmMTc4ZjE1NzcgXQoKcGh5bGluayByZXF1 aXJlcyB0aGUgTUFDIHRvIHJlcG9ydCB3aGVuIGl0cyBsaW5rIHN0YXR1cyBjaGFuZ2VzIHdoZW4K b3BlcmF0aW5nIGluIGluYmFuZCBtb2Rlcy4gIEZhaWx1cmUgdG8gcmVwb3J0IGxpbmsgc3RhdHVz IGNoYW5nZXMKbWVhbnMgdGhhdCBwaHlsaW5rIGhhcyBubyBpZGVhIHdoZW4gdGhlIGxpbmsgZXZl bnRzIGhhcHBlbiwgd2hpY2gKcmVzdWx0cyBpbiBlaXRoZXIgdGhlIG5ldHdvcmsgaW50ZXJmYWNl J3MgY2FycmllciByZW1haW5pbmcgdXAgb3IKcmVtYWluaW5nIHBlcm1hbmVudGx5IGRvd24uCgpG b3IgZXhhbXBsZSwgd2l0aCBhIGZpYmVyIG1vZHVsZSwgaWYgdGhlIGludGVyZmFjZSBpcyBicm91 Z2h0IHVwIGFuZApsaW5rIGlzIGluaXRpYWxseSBlc3RhYmxpc2hlZCwgdGFraW5nIHRoZSBsaW5r IGRvd24gYXQgdGhlIGZhciBlbmQKd2lsbCBjdXQgdGhlIG9wdGljYWwgcG93ZXIuICBUaGUgU0ZQ IG1vZHVsZSdzIExPUyBhc3NlcnRzLCB3ZQpkZWFjdGl2YXRlIHRoZSBsaW5rLCBhbmQgdGhlIG5l dHdvcmsgaW50ZXJmYWNlIHJlcG9ydHMgbm8gY2Fycmllci4KCldoZW4gdGhlIGZhciBlbmQgaXMg YnJvdWdodCBiYWNrIHVwLCB0aGUgU0ZQIG1vZHVsZSdzIExPUyBkZWFzc2VydHMsCmJ1dCB0aGUg TUFDIG1heSBiZSBzbG93ZXIgdG8gZXN0YWJsaXNoIGxpbmsuICBJZiB0aGlzIGhhcHBlbnMgKHdo aWNoCmluIG15IHRlc3RzIGlzIGEgY2VydGFpbnR5KSB0aGVuIHBoeWxpbmsgbmV2ZXIgaGVhcnMg dGhhdCB0aGUgTUFDCmhhcyBlc3RhYmxpc2hlZCBsaW5rIHdpdGggdGhlIGZhciBlbmQsIGFuZCB0 aGUgbmV0d29yayBpbnRlcmZhY2UgaXMKc3R1Y2sgcmVwb3J0aW5nIG5vIGNhcnJpZXIuICBUaGlz IG1lYW5zIHRoZSBpbnRlcmZhY2UgaXMKbm9uLWZ1bmN0aW9uYWwuCgpBdm9pZGluZyB0aGUgbGlu ayBpbnRlcnJ1cHQgd2hlbiB3ZSBoYXZlIHBoeWxpbmsgaXMgYmFzaWNhbGx5IG5vdAphbiBvcHRp b24sIHNvIHJlbW92ZSB0aGUgIXBvcnQtPnBoeWxpbmsgZnJvbSB0aGUgdGVzdC4KCkZpeGVzOiA0 YmIwNDMyNjI4NzggKCJuZXQ6IG12cHAyOiBwaHlsaW5rIHN1cHBvcnQiKQpUZXN0ZWQtYnk6IFN2 ZW4gQXVoYWdlbiA8c3Zlbi5hdWhhZ2VuQHZvbGVhdGVjaC5kZT4KVGVzdGVkLWJ5OiBBbnRvaW5l IFRlbmFydCA8YW50b2luZS50ZW5hcnRAYm9vdGxpbi5jb20+ClNpZ25lZC1vZmYtYnk6IFJ1c3Nl bGwgS2luZyA8cm1rK2tlcm5lbEBhcm1saW51eC5vcmcudWs+ClNpZ25lZC1vZmYtYnk6IEpha3Vi IEtpY2luc2tpIDxqYWt1Yi5raWNpbnNraUBuZXRyb25vbWUuY29tPgotLS0KIGRyaXZlcnMvbmV0 L2V0aGVybmV0L21hcnZlbGwvbXZwcDIvbXZwcDJfbWFpbi5jIHwgMiArLQogMSBmaWxlIGNoYW5n ZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9u ZXQvZXRoZXJuZXQvbWFydmVsbC9tdnBwMi9tdnBwMl9tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhl cm5ldC9tYXJ2ZWxsL212cHAyL212cHAyX21haW4uYwppbmRleCBhNTA5NzdjZTQwNzYuLjA0YmVl NDUwZWIzZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdnBwMi9t dnBwMl9tYWluLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdnBwMi9tdnBw Ml9tYWluLmMKQEAgLTMzNDEsNyArMzM0MSw3IEBAIHN0YXRpYyBpbnQgbXZwcDJfb3BlbihzdHJ1 Y3QgbmV0X2RldmljZSAqZGV2KQogCQl2YWxpZCA9IHRydWU7CiAJfQogCi0JaWYgKHByaXYtPmh3 X3ZlcnNpb24gPT0gTVZQUDIyICYmIHBvcnQtPmxpbmtfaXJxICYmICFwb3J0LT5waHlsaW5rKSB7 CisJaWYgKHByaXYtPmh3X3ZlcnNpb24gPT0gTVZQUDIyICYmIHBvcnQtPmxpbmtfaXJxKSB7CiAJ CWVyciA9IHJlcXVlc3RfaXJxKHBvcnQtPmxpbmtfaXJxLCBtdnBwMl9saW5rX3N0YXR1c19pc3Is IDAsCiAJCQkJICBkZXYtPm5hbWUsIHBvcnQpOwogCQlpZiAoZXJyKSB7Ci0tIAoyLjIwLjEKCgpG cm9tIGZjODhjMjc2ZGRmZGY3OTIzYTZlZjY1MGY1ZGEzY2VmNGRiNzc2Y2EgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0 ZTogRnJpLCAxMyBEZWMgMjAxOSAxODoyMDo0MSAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMTkvMjNd IHRjcC9kY2NwOiBmaXggcG9zc2libGUgcmFjZSBfX2luZXRfbG9va3VwX2VzdGFibGlzaGVkKCkK ClsgVXBzdHJlYW0gY29tbWl0IDhkYmQ3NmU3OWExNmI0NWIyY2NiMDFkMmYyZTA4ZGJmNjRlNzFl NDAgXQoKTWljaGFsIEt1YmVjZWsgYW5kIEZpcm8gWWFuZyBkaWQgYSB2ZXJ5IG5pY2UgYW5hbHlz aXMgb2YgY3Jhc2hlcwpoYXBwZW5pbmcgaW4gX19pbmV0X2xvb2t1cF9lc3RhYmxpc2hlZCgpLgoK U2luY2UgYSBUQ1Agc29ja2V0IGNhbiBnbyBmcm9tIFRDUF9FU1RBQkxJU0ggdG8gVENQX0xJU1RF TgoodmlhIGEgY2xvc2UoKS9zb2NrZXQoKS9saXN0ZW4oKSBjeWNsZSkgd2l0aG91dCBhIFJDVSBn cmFjZSBwZXJpb2QsCkkgc2hvdWxkIG5vdCBoYXZlIGNoYW5nZWQgbGlzdGVuZXJzIGxpbmthZ2Ug aW4gdGhlaXIgaGFzaCB0YWJsZS4KClRoZXkgbXVzdCB1c2UgdGhlIG51bGxzIHByb3RvY29sIChE b2N1bWVudGF0aW9uL1JDVS9yY3VsaXN0X251bGxzLnR4dCksCnNvIHRoYXQgYSBsb29rdXAgY2Fu IGRldGVjdCBhIHNvY2tldCBpbiBhIGhhc2ggbGlzdCB3YXMgbW92ZWQgaW4KYW5vdGhlciBvbmUu CgpTaW5jZSB3ZSBhZGRlZCBjb2RlIGluIGNvbW1pdCBkMjk2YmE2MGQ4ZTIgKCJzb3JldXNlcG9y dDogUmVzb2x2ZQptZXJnZSBjb25mbGljdCBmb3IgdjQvdjYgb3JkZXJpbmcgZml4IiksIHdlIGhh dmUgdG8gYWRkCmhsaXN0X251bGxzX2FkZF90YWlsX3JjdSgpIGhlbHBlci4KCkZpeGVzOiAzYjI0 ZDg1NGNiMzUgKCJ0Y3AvZGNjcDogZG8gbm90IHRvdWNoIGxpc3RlbmVyIHNrX3JlZmNudCB1bmRl ciBzeW5mbG9vZCIpClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xl LmNvbT4KUmVwb3J0ZWQtYnk6IE1pY2hhbCBLdWJlY2VrIDxta3ViZWNla0BzdXNlLmN6PgpSZXBv cnRlZC1ieTogRmlybyBZYW5nIDxmaXJvLnlhbmdAc3VzZS5jb20+ClJldmlld2VkLWJ5OiBNaWNo YWwgS3ViZWNlayA8bWt1YmVjZWtAc3VzZS5jej4KTGluazogaHR0cHM6Ly9sb3JlLmtlcm5lbC5v cmcvbmV0ZGV2LzIwMTkxMTIwMDgzOTE5LkdIMjc4NTJAdW5pY29ybi5zdXNlLmN6LwpTaWduZWQt b2ZmLWJ5OiBKYWt1YiBLaWNpbnNraSA8amFrdWIua2ljaW5za2lAbmV0cm9ub21lLmNvbT4KLS0t CiBpbmNsdWRlL2xpbnV4L3JjdWxpc3RfbnVsbHMuaCB8IDM3ICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrCiBpbmNsdWRlL25ldC9pbmV0X2hhc2h0YWJsZXMuaCB8IDEyICsrKysr KysrKy0tLQogaW5jbHVkZS9uZXQvc29jay5oICAgICAgICAgICAgfCAgNSArKysrKwogbmV0L2lw djQvaW5ldF9kaWFnLmMgICAgICAgICAgfCAgMyArKy0KIG5ldC9pcHY0L2luZXRfaGFzaHRhYmxl cy5jICAgIHwgMTYgKysrKysrKy0tLS0tLS0tCiBuZXQvaXB2NC90Y3BfaXB2NC5jICAgICAgICAg ICB8ICA3ICsrKystLS0KIDYgZmlsZXMgY2hhbmdlZCwgNjUgaW5zZXJ0aW9ucygrKSwgMTUgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9yY3VsaXN0X251bGxzLmggYi9p bmNsdWRlL2xpbnV4L3JjdWxpc3RfbnVsbHMuaAppbmRleCBiYzgyMDZhOGYzMGUuLjYxOTc0YzRj NTY2YiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9yY3VsaXN0X251bGxzLmgKKysrIGIvaW5j bHVkZS9saW51eC9yY3VsaXN0X251bGxzLmgKQEAgLTEwMCw2ICsxMDAsNDMgQEAgc3RhdGljIGlu bGluZSB2b2lkIGhsaXN0X251bGxzX2FkZF9oZWFkX3JjdShzdHJ1Y3QgaGxpc3RfbnVsbHNfbm9k ZSAqbiwKIAkJZmlyc3QtPnBwcmV2ID0gJm4tPm5leHQ7CiB9CiAKKy8qKgorICogaGxpc3RfbnVs bHNfYWRkX3RhaWxfcmN1CisgKiBAbjogdGhlIGVsZW1lbnQgdG8gYWRkIHRvIHRoZSBoYXNoIGxp c3QuCisgKiBAaDogdGhlIGxpc3QgdG8gYWRkIHRvLgorICoKKyAqIERlc2NyaXB0aW9uOgorICog QWRkcyB0aGUgc3BlY2lmaWVkIGVsZW1lbnQgdG8gdGhlIHNwZWNpZmllZCBobGlzdF9udWxscywK KyAqIHdoaWxlIHBlcm1pdHRpbmcgcmFjaW5nIHRyYXZlcnNhbHMuCisgKgorICogVGhlIGNhbGxl ciBtdXN0IHRha2Ugd2hhdGV2ZXIgcHJlY2F1dGlvbnMgYXJlIG5lY2Vzc2FyeQorICogKHN1Y2gg YXMgaG9sZGluZyBhcHByb3ByaWF0ZSBsb2NrcykgdG8gYXZvaWQgcmFjaW5nCisgKiB3aXRoIGFu b3RoZXIgbGlzdC1tdXRhdGlvbiBwcmltaXRpdmUsIHN1Y2ggYXMgaGxpc3RfbnVsbHNfYWRkX2hl YWRfcmN1KCkKKyAqIG9yIGhsaXN0X251bGxzX2RlbF9yY3UoKSwgcnVubmluZyBvbiB0aGlzIHNh bWUgbGlzdC4KKyAqIEhvd2V2ZXIsIGl0IGlzIHBlcmZlY3RseSBsZWdhbCB0byBydW4gY29uY3Vy cmVudGx5IHdpdGgKKyAqIHRoZSBfcmN1IGxpc3QtdHJhdmVyc2FsIHByaW1pdGl2ZXMsIHN1Y2gg YXMKKyAqIGhsaXN0X251bGxzX2Zvcl9lYWNoX2VudHJ5X3JjdSgpLCB1c2VkIHRvIHByZXZlbnQg bWVtb3J5LWNvbnNpc3RlbmN5CisgKiBwcm9ibGVtcyBvbiBBbHBoYSBDUFVzLiAgUmVnYXJkbGVz cyBvZiB0aGUgdHlwZSBvZiBDUFUsIHRoZQorICogbGlzdC10cmF2ZXJzYWwgcHJpbWl0aXZlIG11 c3QgYmUgZ3VhcmRlZCBieSByY3VfcmVhZF9sb2NrKCkuCisgKi8KK3N0YXRpYyBpbmxpbmUgdm9p ZCBobGlzdF9udWxsc19hZGRfdGFpbF9yY3Uoc3RydWN0IGhsaXN0X251bGxzX25vZGUgKm4sCisJ CQkJCSAgICBzdHJ1Y3QgaGxpc3RfbnVsbHNfaGVhZCAqaCkKK3sKKwlzdHJ1Y3QgaGxpc3RfbnVs bHNfbm9kZSAqaSwgKmxhc3QgPSBOVUxMOworCisJLyogTm90ZTogd3JpdGUgc2lkZSBjb2RlLCBz byByY3UgYWNjZXNzb3JzIGFyZSBub3QgbmVlZGVkLiAqLworCWZvciAoaSA9IGgtPmZpcnN0OyAh aXNfYV9udWxscyhpKTsgaSA9IGktPm5leHQpCisJCWxhc3QgPSBpOworCisJaWYgKGxhc3QpIHsK KwkJbi0+bmV4dCA9IGxhc3QtPm5leHQ7CisJCW4tPnBwcmV2ID0gJmxhc3QtPm5leHQ7CisJCXJj dV9hc3NpZ25fcG9pbnRlcihobGlzdF9uZXh0X3JjdShsYXN0KSwgbik7CisJfSBlbHNlIHsKKwkJ aGxpc3RfbnVsbHNfYWRkX2hlYWRfcmN1KG4sIGgpOworCX0KK30KKwogLyoqCiAgKiBobGlzdF9u dWxsc19mb3JfZWFjaF9lbnRyeV9yY3UgLSBpdGVyYXRlIG92ZXIgcmN1IGxpc3Qgb2YgZ2l2ZW4g dHlwZQogICogQHRwb3M6CXRoZSB0eXBlICogdG8gdXNlIGFzIGEgbG9vcCBjdXJzb3IuCmRpZmYg LS1naXQgYS9pbmNsdWRlL25ldC9pbmV0X2hhc2h0YWJsZXMuaCBiL2luY2x1ZGUvbmV0L2luZXRf aGFzaHRhYmxlcy5oCmluZGV4IDkxNDFlOTU1MjllNy4uYjg3NWRjZWYxNzNjIDEwMDY0NAotLS0g YS9pbmNsdWRlL25ldC9pbmV0X2hhc2h0YWJsZXMuaAorKysgYi9pbmNsdWRlL25ldC9pbmV0X2hh c2h0YWJsZXMuaApAQCAtMTA2LDEzICsxMDYsMTkgQEAgc3RydWN0IGluZXRfYmluZF9oYXNoYnVj a2V0IHsKIAlzdHJ1Y3QgaGxpc3RfaGVhZAljaGFpbjsKIH07CiAKLS8qCi0gKiBTb2NrZXRzIGNh biBiZSBoYXNoZWQgaW4gZXN0YWJsaXNoZWQgb3IgbGlzdGVuaW5nIHRhYmxlCisvKiBTb2NrZXRz IGNhbiBiZSBoYXNoZWQgaW4gZXN0YWJsaXNoZWQgb3IgbGlzdGVuaW5nIHRhYmxlLgorICogV2Ug bXVzdCB1c2UgZGlmZmVyZW50ICdudWxscycgZW5kLW9mLWNoYWluIHZhbHVlIGZvciBhbGwgaGFz aCBidWNrZXRzIDoKKyAqIEEgc29ja2V0IG1pZ2h0IHRyYW5zaXRpb24gZnJvbSBFU1RBQkxJU0gg dG8gTElTVEVOIHN0YXRlIHdpdGhvdXQKKyAqIFJDVSBncmFjZSBwZXJpb2QuIEEgbG9va3VwIGlu IGVoYXNoIHRhYmxlIG5lZWRzIHRvIGhhbmRsZSB0aGlzIGNhc2UuCiAgKi8KKyNkZWZpbmUgTElT VEVOSU5HX05VTExTX0JBU0UgKDFVIDw8IDI5KQogc3RydWN0IGluZXRfbGlzdGVuX2hhc2hidWNr ZXQgewogCXNwaW5sb2NrX3QJCWxvY2s7CiAJdW5zaWduZWQgaW50CQljb3VudDsKLQlzdHJ1Y3Qg aGxpc3RfaGVhZAloZWFkOworCXVuaW9uIHsKKwkJc3RydWN0IGhsaXN0X2hlYWQJaGVhZDsKKwkJ c3RydWN0IGhsaXN0X251bGxzX2hlYWQJbnVsbHNfaGVhZDsKKwl9OwogfTsKIAogLyogVGhpcyBp cyBmb3IgbGlzdGVuaW5nIHNvY2tldHMsIHRodXMgYWxsIHNvY2tldHMgd2hpY2ggcG9zc2VzcyB3 aWxkY2FyZHMuICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9zb2NrLmggYi9pbmNsdWRlL25l dC9zb2NrLmgKaW5kZXggNDU0NWE5ZWNjMjE5Li5mMzU5ZTVjOTQ3NjIgMTAwNjQ0Ci0tLSBhL2lu Y2x1ZGUvbmV0L3NvY2suaAorKysgYi9pbmNsdWRlL25ldC9zb2NrLmgKQEAgLTcyMSw2ICs3MjEs MTEgQEAgc3RhdGljIGlubGluZSB2b2lkIF9fc2tfbnVsbHNfYWRkX25vZGVfcmN1KHN0cnVjdCBz b2NrICpzaywgc3RydWN0IGhsaXN0X251bGxzX2gKIAlobGlzdF9udWxsc19hZGRfaGVhZF9yY3Uo JnNrLT5za19udWxsc19ub2RlLCBsaXN0KTsKIH0KIAorc3RhdGljIGlubGluZSB2b2lkIF9fc2tf bnVsbHNfYWRkX25vZGVfdGFpbF9yY3Uoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgaGxpc3RfbnVs bHNfaGVhZCAqbGlzdCkKK3sKKwlobGlzdF9udWxsc19hZGRfdGFpbF9yY3UoJnNrLT5za19udWxs c19ub2RlLCBsaXN0KTsKK30KKwogc3RhdGljIGlubGluZSB2b2lkIHNrX251bGxzX2FkZF9ub2Rl X3JjdShzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBobGlzdF9udWxsc19oZWFkICpsaXN0KQogewog CXNvY2tfaG9sZChzayk7CmRpZmYgLS1naXQgYS9uZXQvaXB2NC9pbmV0X2RpYWcuYyBiL25ldC9p cHY0L2luZXRfZGlhZy5jCmluZGV4IDU3MzE2NzBjNTYwYi4uOTc0MmIzN2FmZTFkIDEwMDY0NAot LS0gYS9uZXQvaXB2NC9pbmV0X2RpYWcuYworKysgYi9uZXQvaXB2NC9pbmV0X2RpYWcuYwpAQCAt OTE4LDExICs5MTgsMTIgQEAgdm9pZCBpbmV0X2RpYWdfZHVtcF9pY3NrKHN0cnVjdCBpbmV0X2hh c2hpbmZvICpoYXNoaW5mbywgc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAogCQlmb3IgKGkgPSBzX2k7 IGkgPCBJTkVUX0xIVEFCTEVfU0laRTsgaSsrKSB7CiAJCQlzdHJ1Y3QgaW5ldF9saXN0ZW5faGFz aGJ1Y2tldCAqaWxiOworCQkJc3RydWN0IGhsaXN0X251bGxzX25vZGUgKm5vZGU7CiAKIAkJCW51 bSA9IDA7CiAJCQlpbGIgPSAmaGFzaGluZm8tPmxpc3RlbmluZ19oYXNoW2ldOwogCQkJc3Bpbl9s b2NrKCZpbGItPmxvY2spOwotCQkJc2tfZm9yX2VhY2goc2ssICZpbGItPmhlYWQpIHsKKwkJCXNr X251bGxzX2Zvcl9lYWNoKHNrLCBub2RlLCAmaWxiLT5udWxsc19oZWFkKSB7CiAJCQkJc3RydWN0 IGluZXRfc29jayAqaW5ldCA9IGluZXRfc2soc2spOwogCiAJCQkJaWYgKCFuZXRfZXEoc29ja19u ZXQoc2spLCBuZXQpKQpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvaW5ldF9oYXNodGFibGVzLmMgYi9u ZXQvaXB2NC9pbmV0X2hhc2h0YWJsZXMuYwppbmRleCA3YmU5NjZhNjA4MDEuLjkwMDc1NmIzZGVm YiAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvaW5ldF9oYXNodGFibGVzLmMKKysrIGIvbmV0L2lwdjQv aW5ldF9oYXNodGFibGVzLmMKQEAgLTU2MCwxMCArNTYwLDExIEBAIHN0YXRpYyBpbnQgaW5ldF9y ZXVzZXBvcnRfYWRkX3NvY2soc3RydWN0IHNvY2sgKnNrLAogCQkJCSAgIHN0cnVjdCBpbmV0X2xp c3Rlbl9oYXNoYnVja2V0ICppbGIpCiB7CiAJc3RydWN0IGluZXRfYmluZF9idWNrZXQgKnRiID0g aW5ldF9jc2soc2spLT5pY3NrX2JpbmRfaGFzaDsKKwljb25zdCBzdHJ1Y3QgaGxpc3RfbnVsbHNf bm9kZSAqbm9kZTsKIAlzdHJ1Y3Qgc29jayAqc2syOwogCWt1aWRfdCB1aWQgPSBzb2NrX2lfdWlk KHNrKTsKIAotCXNrX2Zvcl9lYWNoX3JjdShzazIsICZpbGItPmhlYWQpIHsKKwlza19udWxsc19m b3JfZWFjaF9yY3Uoc2syLCBub2RlLCAmaWxiLT5udWxsc19oZWFkKSB7CiAJCWlmIChzazIgIT0g c2sgJiYKIAkJICAgIHNrMi0+c2tfZmFtaWx5ID09IHNrLT5za19mYW1pbHkgJiYKIAkJICAgIGlw djZfb25seV9zb2NrKHNrMikgPT0gaXB2Nl9vbmx5X3NvY2soc2spICYmCkBAIC01OTksOSArNjAw LDkgQEAgaW50IF9faW5ldF9oYXNoKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNvY2sgKm9zaykK IAl9CiAJaWYgKElTX0VOQUJMRUQoQ09ORklHX0lQVjYpICYmIHNrLT5za19yZXVzZXBvcnQgJiYK IAkJc2stPnNrX2ZhbWlseSA9PSBBRl9JTkVUNikKLQkJaGxpc3RfYWRkX3RhaWxfcmN1KCZzay0+ c2tfbm9kZSwgJmlsYi0+aGVhZCk7CisJCV9fc2tfbnVsbHNfYWRkX25vZGVfdGFpbF9yY3Uoc2ss ICZpbGItPm51bGxzX2hlYWQpOwogCWVsc2UKLQkJaGxpc3RfYWRkX2hlYWRfcmN1KCZzay0+c2tf bm9kZSwgJmlsYi0+aGVhZCk7CisJCV9fc2tfbnVsbHNfYWRkX25vZGVfcmN1KHNrLCAmaWxiLT5u dWxsc19oZWFkKTsKIAlpbmV0X2hhc2gyKGhhc2hpbmZvLCBzayk7CiAJaWxiLT5jb3VudCsrOwog CXNvY2tfc2V0X2ZsYWcoc2ssIFNPQ0tfUkNVX0ZSRUUpOwpAQCAtNjUwLDExICs2NTEsOSBAQCB2 b2lkIGluZXRfdW5oYXNoKHN0cnVjdCBzb2NrICpzaykKIAkJcmV1c2Vwb3J0X2RldGFjaF9zb2Nr KHNrKTsKIAlpZiAoaWxiKSB7CiAJCWluZXRfdW5oYXNoMihoYXNoaW5mbywgc2spOwotCQkgX19z a19kZWxfbm9kZV9pbml0KHNrKTsKLQkJIGlsYi0+Y291bnQtLTsKLQl9IGVsc2UgewotCQlfX3Nr X251bGxzX2RlbF9ub2RlX2luaXRfcmN1KHNrKTsKKwkJaWxiLT5jb3VudC0tOwogCX0KKwlfX3Nr X251bGxzX2RlbF9ub2RlX2luaXRfcmN1KHNrKTsKIAlzb2NrX3Byb3RfaW51c2VfYWRkKHNvY2tf bmV0KHNrKSwgc2stPnNrX3Byb3QsIC0xKTsKIHVubG9jazoKIAlzcGluX3VubG9ja19iaChsb2Nr KTsKQEAgLTc5MCw3ICs3ODksOCBAQCB2b2lkIGluZXRfaGFzaGluZm9faW5pdChzdHJ1Y3QgaW5l dF9oYXNoaW5mbyAqaCkKIAogCWZvciAoaSA9IDA7IGkgPCBJTkVUX0xIVEFCTEVfU0laRTsgaSsr KSB7CiAJCXNwaW5fbG9ja19pbml0KCZoLT5saXN0ZW5pbmdfaGFzaFtpXS5sb2NrKTsKLQkJSU5J VF9ITElTVF9IRUFEKCZoLT5saXN0ZW5pbmdfaGFzaFtpXS5oZWFkKTsKKwkJSU5JVF9ITElTVF9O VUxMU19IRUFEKCZoLT5saXN0ZW5pbmdfaGFzaFtpXS5udWxsc19oZWFkLAorCQkJCSAgICAgIGkg KyBMSVNURU5JTkdfTlVMTFNfQkFTRSk7CiAJCWgtPmxpc3RlbmluZ19oYXNoW2ldLmNvdW50ID0g MDsKIAl9CiAKZGlmZiAtLWdpdCBhL25ldC9pcHY0L3RjcF9pcHY0LmMgYi9uZXQvaXB2NC90Y3Bf aXB2NC5jCmluZGV4IGJmZWM0ODg0OTczNS4uNTU1M2Y2YTgzM2YzIDEwMDY0NAotLS0gYS9uZXQv aXB2NC90Y3BfaXB2NC5jCisrKyBiL25ldC9pcHY0L3RjcF9pcHY0LmMKQEAgLTIwMjAsMTMgKzIw MjAsMTQgQEAgc3RhdGljIHZvaWQgKmxpc3RlbmluZ19nZXRfbmV4dChzdHJ1Y3Qgc2VxX2ZpbGUg KnNlcSwgdm9pZCAqY3VyKQogCXN0cnVjdCB0Y3BfaXRlcl9zdGF0ZSAqc3QgPSBzZXEtPnByaXZh dGU7CiAJc3RydWN0IG5ldCAqbmV0ID0gc2VxX2ZpbGVfbmV0KHNlcSk7CiAJc3RydWN0IGluZXRf bGlzdGVuX2hhc2hidWNrZXQgKmlsYjsKKwlzdHJ1Y3QgaGxpc3RfbnVsbHNfbm9kZSAqbm9kZTsK IAlzdHJ1Y3Qgc29jayAqc2sgPSBjdXI7CiAKIAlpZiAoIXNrKSB7CiBnZXRfaGVhZDoKIAkJaWxi ID0gJnRjcF9oYXNoaW5mby5saXN0ZW5pbmdfaGFzaFtzdC0+YnVja2V0XTsKIAkJc3Bpbl9sb2Nr KCZpbGItPmxvY2spOwotCQlzayA9IHNrX2hlYWQoJmlsYi0+aGVhZCk7CisJCXNrID0gc2tfbnVs bHNfaGVhZCgmaWxiLT5udWxsc19oZWFkKTsKIAkJc3QtPm9mZnNldCA9IDA7CiAJCWdvdG8gZ2V0 X3NrOwogCX0KQEAgLTIwMzQsOSArMjAzNSw5IEBAIHN0YXRpYyB2b2lkICpsaXN0ZW5pbmdfZ2V0 X25leHQoc3RydWN0IHNlcV9maWxlICpzZXEsIHZvaWQgKmN1cikKIAkrK3N0LT5udW07CiAJKytz dC0+b2Zmc2V0OwogCi0Jc2sgPSBza19uZXh0KHNrKTsKKwlzayA9IHNrX251bGxzX25leHQoc2sp OwogZ2V0X3NrOgotCXNrX2Zvcl9lYWNoX2Zyb20oc2spIHsKKwlza19udWxsc19mb3JfZWFjaF9m cm9tKHNrLCBub2RlKSB7CiAJCWlmICghbmV0X2VxKHNvY2tfbmV0KHNrKSwgbmV0KSkKIAkJCWNv bnRpbnVlOwogCQlpZiAoc2stPnNrX2ZhbWlseSA9PSBhZmluZm8tPmZhbWlseSkKLS0gCjIuMjAu MQoKCkZyb20gYjljZWU0ZjkyNmMxYjYxMDFhNGNhMGU4MjA2ZjkyYzg0NWFkNzNlMCBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29t PgpEYXRlOiBUaHUsIDEyIERlYyAyMDE5IDEyOjU1OjI5IC0wODAwClN1YmplY3Q6IFtQQVRDSCAy MC8yM10gdGNwOiBkbyBub3Qgc2VuZCBlbXB0eSBza2IgZnJvbSB0Y3Bfd3JpdGVfeG1pdCgpCgpb IFVwc3RyZWFtIGNvbW1pdCAxZjg1ZTYyNjdjYWNhNDRiMzBjNTQ3MTE2NTJiMDcyNmZhZGJiMTMx IF0KCkJhY2twb3J0IG9mIGNvbW1pdCBmZGZjNWM4NTk0YzIgKCJ0Y3A6IHJlbW92ZSBlbXB0eSBz a2IgZnJvbQp3cml0ZSBxdWV1ZSBpbiBlcnJvciBjYXNlcyIpIGluIGxpbnV4LTQuMTQgc3RhYmxl IHRyaWdnZXJlZAp2YXJpb3VzIGJ1Z3MuIE9uZSBvZiB0aGVtIGhhcyBiZWVuIGZpeGVkIGluIGNv bW1pdCBiYTJkZGI0M2YyNzAKKCJ0Y3A6IERvbid0IGRlcXVldWUgU1lOL0ZJTi1zZWdtZW50cyBm cm9tIHdyaXRlLXF1ZXVlIiksIGJ1dAp3ZSBzdGlsbCBoYXZlIGNyYXNoZXMgaW4gc29tZSBvY2Nh c2lvbnMuCgpSb290LWNhdXNlIGlzIHRoYXQgd2hlbiB0Y3Bfc2VuZG1zZygpIGhhcyBhbGxvY2F0 ZWQgYSBmcmVzaApza2IgYW5kIGNvdWxkIG5vdCBhcHBlbmQgYSBmcmFnbWVudCBiZWZvcmUgYmVp bmcgYmxvY2tlZAppbiBza19zdHJlYW1fd2FpdF9tZW1vcnkoKSwgdGNwX3dyaXRlX3htaXQoKSBt aWdodCBiZSBjYWxsZWQKYW5kIGRlY2lkZSB0byBzZW5kIHRoaXMgZnJlc2ggYW5kIGVtcHR5IHNr Yi4KClNlbmRpbmcgYW4gZW1wdHkgcGFja2V0IGlzIG5vdCBvbmx5IHNpbGx5LCBpdCBtaWdodCBo YXZlIGNhdXNlZAptYW55IGlzc3VlcyB3ZSBoYWQgaW4gdGhlIHBhc3Qgd2l0aCB0cC0+cGFja2V0 c19vdXQgYmVpbmcKb3V0IG9mIHN5bmMuCgpGaXhlczogYzY1ZjdmMDBjNTg3ICgiW1RDUF06IFNp bXBsaWZ5IFNLQiBkYXRhIHBvcnRpb24gYWxsb2NhdGlvbiB3aXRoIE5FVElGX0ZfU0cuIikKU2ln bmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpDYzogQ2hyaXN0 b3BoIFBhYXNjaCA8Y3BhYXNjaEBhcHBsZS5jb20+CkFja2VkLWJ5OiBOZWFsIENhcmR3ZWxsIDxu Y2FyZHdlbGxAZ29vZ2xlLmNvbT4KQ2M6IEphc29uIEJhcm9uIDxqYmFyb25AYWthbWFpLmNvbT4K QWNrZWQtYnk6IFNvaGVpbCBIYXNzYXMgWWVnYW5laCA8c29oZWlsQGdvb2dsZS5jb20+ClNpZ25l ZC1vZmYtYnk6IEpha3ViIEtpY2luc2tpIDxqYWt1Yi5raWNpbnNraUBuZXRyb25vbWUuY29tPgot LS0KIG5ldC9pcHY0L3RjcF9vdXRwdXQuYyB8IDggKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCA4 IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9uZXQvaXB2NC90Y3Bfb3V0cHV0LmMgYi9uZXQv aXB2NC90Y3Bfb3V0cHV0LmMKaW5kZXggZTNjZTFmNTZmODQ1Li4xY2MyMGVkZjQ3NjIgMTAwNjQ0 Ci0tLSBhL25ldC9pcHY0L3RjcF9vdXRwdXQuYworKysgYi9uZXQvaXB2NC90Y3Bfb3V0cHV0LmMK QEAgLTIzNzYsNiArMjM3NiwxNCBAQCBzdGF0aWMgYm9vbCB0Y3Bfd3JpdGVfeG1pdChzdHJ1Y3Qg c29jayAqc2ssIHVuc2lnbmVkIGludCBtc3Nfbm93LCBpbnQgbm9uYWdsZSwKIAkJaWYgKHRjcF9z bWFsbF9xdWV1ZV9jaGVjayhzaywgc2tiLCAwKSkKIAkJCWJyZWFrOwogCisJCS8qIEFyZ2gsIHdl IGhpdCBhbiBlbXB0eSBza2IoKSwgcHJlc3VtYWJseSBhIHRocmVhZAorCQkgKiBpcyBzbGVlcGlu ZyBpbiBzZW5kbXNnKCkvc2tfc3RyZWFtX3dhaXRfbWVtb3J5KCkuCisJCSAqIFdlIGRvIG5vdCB3 YW50IHRvIHNlbmQgYSBwdXJlLWFjayBwYWNrZXQgYW5kIGhhdmUKKwkJICogYSBzdHJhbmdlIGxv b2tpbmcgcnR4IHF1ZXVlIHdpdGggZW1wdHkgcGFja2V0KHMpLgorCQkgKi8KKwkJaWYgKFRDUF9T S0JfQ0Ioc2tiKS0+ZW5kX3NlcSA9PSBUQ1BfU0tCX0NCKHNrYiktPnNlcSkKKwkJCWJyZWFrOwor CiAJCWlmICh1bmxpa2VseSh0Y3BfdHJhbnNtaXRfc2tiKHNrLCBza2IsIDEsIGdmcCkpKQogCQkJ YnJlYWs7CiAKLS0gCjIuMjAuMQoKCkZyb20gMmM4Nzc4NDEyMGFkZDc5NGI1ZGEzZDIyMDdkZTRm ZTk5YTZkOGVmNyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogVGFlaGVlIFlvbyA8YXA0 MjAwNzNAZ21haWwuY29tPgpEYXRlOiBXZWQsIDExIERlYyAyMDE5IDA4OjIzOjE3ICswMDAwClN1 YmplY3Q6IFtQQVRDSCAyMS8yM10gZ3RwOiBmaXggd3JvbmcgY29uZGl0aW9uIGluIGd0cF9nZW5s X2R1bXBfcGRwKCkKClsgVXBzdHJlYW0gY29tbWl0IDk0YTZkOWZiODhkZjQzZjkyZDk0M2MzMmI4 NGNlMzk4ZDUwYmY0OWYgXQoKZ3RwX2dlbmxfZHVtcF9wZHAoKSBpcyAtPmR1bXBpdCgpIGNhbGxi YWNrIG9mIEdUUCBtb2R1bGUgYW5kIGl0IGlzIHVzZWQKdG8gZHVtcCBwZHAgY29udGV4dHMuIGl0 IHdvdWxkIGJlIHJlLWV4ZWN1dGVkIGJlY2F1c2Ugb2YgZHVtcCBwYWNrZXQgc2l6ZS4KCklmIGR1 bXAgcGFja2V0IHNpemUgaXMgdG9vIGJpZywgaXQgc2F2ZXMgY3VycmVudCBkdW1wIHBvaW50ZXIK KGd0cCBpbnRlcmZhY2UgcG9pbnRlciwgYnVja2V0LCBUSUQgdmFsdWUpIHRoZW4gaXQgcmVzdGFy dHMgZHVtcCBmcm9tCmxhc3QgcG9pbnRlci4KQ3VycmVudCBHVFAgY29kZSBhbGxvd3MgYWRkaW5n IHplcm8gVElEIHBkcCBjb250ZXh0IGJ1dCBkdW1wIGNvZGUKaWdub3JlcyB6ZXJvIFRJRCB2YWx1 ZS4gU28sIGxhc3QgZHVtcCBwb2ludGVyIHdpbGwgbm90IGJlIGZvdW5kLgoKSW4gYWRkaXRpb24s IHRoaXMgcGF0Y2ggYWRkcyBtaXNzaW5nIHJjdV9yZWFkX2xvY2soKSBpbgpndHBfZ2VubF9kdW1w X3BkcCgpLgoKRml4ZXM6IDQ1OWFhNjYwZWIxZCAoImd0cDogYWRkIGluaXRpYWwgZHJpdmVyIGZv ciBkYXRhcGF0aCBvZiBHUFJTIFR1bm5lbGluZyBQcm90b2NvbCAoR1RQLVUpIikKU2lnbmVkLW9m Zi1ieTogVGFlaGVlIFlvbyA8YXA0MjAwNzNAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBKYWt1 YiBLaWNpbnNraSA8amFrdWIua2ljaW5za2lAbmV0cm9ub21lLmNvbT4KLS0tCiBkcml2ZXJzL25l dC9ndHAuYyB8IDM2ICsrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxl IGNoYW5nZWQsIDE5IGluc2VydGlvbnMoKyksIDE3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L2RyaXZlcnMvbmV0L2d0cC5jIGIvZHJpdmVycy9uZXQvZ3RwLmMKaW5kZXggNWE1MGY4ODQyYjVh Li41MDJkZjc1YmI5MTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2d0cC5jCisrKyBiL2RyaXZl cnMvbmV0L2d0cC5jCkBAIC00Miw3ICs0Miw2IEBAIHN0cnVjdCBwZHBfY3R4IHsKIAlzdHJ1Y3Qg aGxpc3Rfbm9kZQlobGlzdF9hZGRyOwogCiAJdW5pb24gewotCQl1NjQJCXRpZDsKIAkJc3RydWN0 IHsKIAkJCXU2NAl0aWQ7CiAJCQl1MTYJZmxvdzsKQEAgLTEyNDksNDMgKzEyNDgsNDYgQEAgc3Rh dGljIGludCBndHBfZ2VubF9kdW1wX3BkcChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCQkJCXN0cnVj dCBuZXRsaW5rX2NhbGxiYWNrICpjYikKIHsKIAlzdHJ1Y3QgZ3RwX2RldiAqbGFzdF9ndHAgPSAo c3RydWN0IGd0cF9kZXYgKiljYi0+YXJnc1syXSwgKmd0cDsKKwlpbnQgaSwgaiwgYnVja2V0ID0g Y2ItPmFyZ3NbMF0sIHNraXAgPSBjYi0+YXJnc1sxXTsKIAlzdHJ1Y3QgbmV0ICpuZXQgPSBzb2Nr X25ldChza2ItPnNrKTsKLQlzdHJ1Y3QgZ3RwX25ldCAqZ24gPSBuZXRfZ2VuZXJpYyhuZXQsIGd0 cF9uZXRfaWQpOwotCXVuc2lnbmVkIGxvbmcgdGlkID0gY2ItPmFyZ3NbMV07Ci0JaW50IGksIGsg PSBjYi0+YXJnc1swXSwgcmV0OwogCXN0cnVjdCBwZHBfY3R4ICpwY3R4OworCXN0cnVjdCBndHBf bmV0ICpnbjsKKworCWduID0gbmV0X2dlbmVyaWMobmV0LCBndHBfbmV0X2lkKTsKIAogCWlmIChj Yi0+YXJnc1s0XSkKIAkJcmV0dXJuIDA7CiAKKwlyY3VfcmVhZF9sb2NrKCk7CiAJbGlzdF9mb3Jf ZWFjaF9lbnRyeV9yY3UoZ3RwLCAmZ24tPmd0cF9kZXZfbGlzdCwgbGlzdCkgewogCQlpZiAobGFz dF9ndHAgJiYgbGFzdF9ndHAgIT0gZ3RwKQogCQkJY29udGludWU7CiAJCWVsc2UKIAkJCWxhc3Rf Z3RwID0gTlVMTDsKIAotCQlmb3IgKGkgPSBrOyBpIDwgZ3RwLT5oYXNoX3NpemU7IGkrKykgewot CQkJaGxpc3RfZm9yX2VhY2hfZW50cnlfcmN1KHBjdHgsICZndHAtPnRpZF9oYXNoW2ldLCBobGlz dF90aWQpIHsKLQkJCQlpZiAodGlkICYmIHRpZCAhPSBwY3R4LT51LnRpZCkKLQkJCQkJY29udGlu dWU7Ci0JCQkJZWxzZQotCQkJCQl0aWQgPSAwOwotCi0JCQkJcmV0ID0gZ3RwX2dlbmxfZmlsbF9p bmZvKHNrYiwKLQkJCQkJCQkgTkVUTElOS19DQihjYi0+c2tiKS5wb3J0aWQsCi0JCQkJCQkJIGNi LT5ubGgtPm5sbXNnX3NlcSwKLQkJCQkJCQkgY2ItPm5saC0+bmxtc2dfdHlwZSwgcGN0eCk7Ci0J CQkJaWYgKHJldCA8IDApIHsKKwkJZm9yIChpID0gYnVja2V0OyBpIDwgZ3RwLT5oYXNoX3NpemU7 IGkrKykgeworCQkJaiA9IDA7CisJCQlobGlzdF9mb3JfZWFjaF9lbnRyeV9yY3UocGN0eCwgJmd0 cC0+dGlkX2hhc2hbaV0sCisJCQkJCQkgaGxpc3RfdGlkKSB7CisJCQkJaWYgKGogPj0gc2tpcCAm JgorCQkJCSAgICBndHBfZ2VubF9maWxsX2luZm8oc2tiLAorCQkJCQkgICAgTkVUTElOS19DQihj Yi0+c2tiKS5wb3J0aWQsCisJCQkJCSAgICBjYi0+bmxoLT5ubG1zZ19zZXEsCisJCQkJCSAgICBj Yi0+bmxoLT5ubG1zZ190eXBlLCBwY3R4KSkgewogCQkJCQljYi0+YXJnc1swXSA9IGk7Ci0JCQkJ CWNiLT5hcmdzWzFdID0gcGN0eC0+dS50aWQ7CisJCQkJCWNiLT5hcmdzWzFdID0gajsKIAkJCQkJ Y2ItPmFyZ3NbMl0gPSAodW5zaWduZWQgbG9uZylndHA7CiAJCQkJCWdvdG8gb3V0OwogCQkJCX0K KwkJCQlqKys7CiAJCQl9CisJCQlza2lwID0gMDsKIAkJfQorCQlidWNrZXQgPSAwOwogCX0KIAlj Yi0+YXJnc1s0XSA9IDE7CiBvdXQ6CisJcmN1X3JlYWRfdW5sb2NrKCk7CiAJcmV0dXJuIHNrYi0+ bGVuOwogfQogCi0tIAoyLjIwLjEKCgpGcm9tIDdmOTUxNTkyMDAyNmYzNTk5MWViNjVkZTQ3ZDUy NGFkNWRjZTc0ZGMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFRhZWhlZSBZb28gPGFw NDIwMDczQGdtYWlsLmNvbT4KRGF0ZTogV2VkLCAxMSBEZWMgMjAxOSAwODoyMzozNCArMDAwMApT dWJqZWN0OiBbUEFUQ0ggMjIvMjNdIGd0cDogZml4IGFuIHVzZS1hZnRlci1mcmVlIGluIGlwdjRf cGRwX2ZpbmQoKQoKWyBVcHN0cmVhbSBjb21taXQgOTRkYzU1MGE1MDYyMDMwNTY5ZDRhYTc2ZTEw ZTUwYzhmYzAwMTkzMCBdCgppcHY0X3BkcF9maW5kKCkgaXMgY2FsbGVkIGluIFRYIHBhY2tldCBw YXRoIG9mIEdUUC4KaXB2NF9wZHBfZmluZCgpIGludGVybmFsbHkgdXNlcyBndHAtPnRpZF9oYXNo IHRvIGxvb2t1cCBwZHAgY29udGV4dC4KSW4gdGhlIGN1cnJlbnQgY29kZSwgZ3RwLT50aWRfaGFz aCBhbmQgZ3RwLT5hZGRyX2hhc2ggYXJlIGZyZWVkIGJ5Ci0+ZGVsbGluaygpLCB3aGljaCBpcyBn dHBfZGVsbGluaygpLgpCdXQgZ3RwX2RlbGxpbmsoKSB3b3VsZCBiZSBjYWxsZWQgd2hpbGUgcGFj a2V0cyBhcmUgcHJvY2Vzc2luZy4KU28sIGd0cF9kZWxsaW5rKCkgc2hvdWxkIG5vdCBmcmVlIGd0 cC0+dGlkX2hhc2ggYW5kIGd0cC0+YWRkcl9oYXNoLgpJbnN0ZWFkLCBkZXYtPnByaXZfZGVzdHJ1 Y3RvcigpIHdvdWxkIGJlIHVzZWQgYmVjYXVzZSB0aGlzIGNhbGxiYWNrCmlzIGNhbGxlZCBhZnRl ciBhbGwgcGFja2V0IHByb2Nlc3Npbmcgc2FmZWx5LgoKVGVzdCBjb21tYW5kczoKICAgIGlwIGxp bmsgYWRkIHZldGgxIHR5cGUgdmV0aCBwZWVyIG5hbWUgdmV0aDIKICAgIGlwIGEgYSAxNzIuMC4w LjEvMjQgZGV2IHZldGgxCiAgICBpcCBsaW5rIHNldCB2ZXRoMSB1cAogICAgaXAgYSBhIDE3Mi45 OS4wLjEvMzIgZGV2IGxvCgogICAgZ3RwLWxpbmsgYWRkIGd0cDEgJgoKICAgIGd0cC10dW5uZWwg YWRkIGd0cDEgdjEgMjAwIDEwMCAxNzIuOTkuMC4yIDE3Mi4wLjAuMgogICAgaXAgciBhICAxNzIu OTkuMC4yLzMyIGRldiBndHAxCiAgICBpcCBsaW5rIHNldCBndHAxIG10dSAxNTAwCgogICAgaXAg bmV0bnMgYWRkIG5zMgogICAgaXAgbGluayBzZXQgdmV0aDIgbmV0bnMgbnMyCiAgICBpcCBuZXRu cyBleGVjIG5zMiBpcCBhIGEgMTcyLjAuMC4yLzI0IGRldiB2ZXRoMgogICAgaXAgbmV0bnMgZXhl YyBuczIgaXAgbGluayBzZXQgdmV0aDIgdXAKICAgIGlwIG5ldG5zIGV4ZWMgbnMyIGlwIGEgYSAx NzIuOTkuMC4yLzMyIGRldiBsbwogICAgaXAgbmV0bnMgZXhlYyBuczIgaXAgbGluayBzZXQgbG8g dXAKCiAgICBpcCBuZXRucyBleGVjIG5zMiBndHAtbGluayBhZGQgZ3RwMiAmCiAgICBpcCBuZXRu cyBleGVjIG5zMiBndHAtdHVubmVsIGFkZCBndHAyIHYxIDEwMCAyMDAgMTcyLjk5LjAuMSAxNzIu MC4wLjEKICAgIGlwIG5ldG5zIGV4ZWMgbnMyIGlwIHIgYSAxNzIuOTkuMC4xLzMyIGRldiBndHAy CiAgICBpcCBuZXRucyBleGVjIG5zMiBpcCBsaW5rIHNldCBndHAyIG10dSAxNTAwCgogICAgaHBp bmczIDE3Mi45OS4wLjIgLTIgLS1mbG9vZCAmCiAgICBpcCBsaW5rIGRlbCBndHAxCgpTcGxhdCBs b29rcyBsaWtlOgpbICAgNzIuNTY4MDgxXVsgVDExOTVdIEJVRzogS0FTQU46IHVzZS1hZnRlci1m cmVlIGluIGlwdjRfcGRwX2ZpbmQuaXNyYS4xMisweDEzMC8weDE3MCBbZ3RwXQpbICAgNzIuNTY4 OTE2XVsgVDExOTVdIFJlYWQgb2Ygc2l6ZSA4IGF0IGFkZHIgZmZmZjg4ODBiOWEzNWQyOCBieSB0 YXNrIGhwaW5nMy8xMTk1ClsgICA3Mi41Njk2MzFdWyBUMTE5NV0KWyAgIDcyLjU2OTg2MV1bIFQx MTk1XSBDUFU6IDIgUElEOiAxMTk1IENvbW06IGhwaW5nMyBOb3QgdGFpbnRlZCA1LjUuMC1yYzEg IzE5OQpbICAgNzIuNTcwNTQ3XVsgVDExOTVdIEhhcmR3YXJlIG5hbWU6IGlubm90ZWsgR21iSCBW aXJ0dWFsQm94L1ZpcnR1YWxCb3gsIEJJT1MgVmlydHVhbEJveCAxMi8wMS8yMDA2ClsgICA3Mi41 NzE0MzhdWyBUMTE5NV0gQ2FsbCBUcmFjZToKWyAgIDcyLjU3MTc2NF1bIFQxMTk1XSAgZHVtcF9z dGFjaysweDk2LzB4ZGIKWyAgIDcyLjU3MjE3MV1bIFQxMTk1XSAgPyBpcHY0X3BkcF9maW5kLmlz cmEuMTIrMHgxMzAvMHgxNzAgW2d0cF0KWyAgIDcyLjU3Mjc2MV1bIFQxMTk1XSAgcHJpbnRfYWRk cmVzc19kZXNjcmlwdGlvbi5jb25zdHByb3AuNSsweDFiZS8weDM2MApbICAgNzIuNTczNDAwXVsg VDExOTVdICA/IGlwdjRfcGRwX2ZpbmQuaXNyYS4xMisweDEzMC8weDE3MCBbZ3RwXQpbICAgNzIu NTczOTcxXVsgVDExOTVdICA/IGlwdjRfcGRwX2ZpbmQuaXNyYS4xMisweDEzMC8weDE3MCBbZ3Rw XQpbICAgNzIuNTc0NTQ0XVsgVDExOTVdICBfX2thc2FuX3JlcG9ydCsweDEyYS8weDE2ZgpbICAg NzIuNTc1MDE0XVsgVDExOTVdICA/IGlwdjRfcGRwX2ZpbmQuaXNyYS4xMisweDEzMC8weDE3MCBb Z3RwXQpbICAgNzIuNTc1NTkzXVsgVDExOTVdICBrYXNhbl9yZXBvcnQrMHhlLzB4MjAKWyAgIDcy LjU3NjAwNF1bIFQxMTk1XSAgaXB2NF9wZHBfZmluZC5pc3JhLjEyKzB4MTMwLzB4MTcwIFtndHBd ClsgICA3Mi41NzY1NzddWyBUMTE5NV0gIGd0cF9idWlsZF9za2JfaXA0KzB4MTk5LzB4MTQyMCBb Z3RwXQpbIC4uLiBdClsgICA3Mi42NDc2NzFdWyBUMTE5NV0gQlVHOiB1bmFibGUgdG8gaGFuZGxl IHBhZ2UgZmF1bHQgZm9yIGFkZHJlc3M6IGZmZmY4ODgwYjlhMzVkMjgKWyAgIDcyLjY0ODUxMl1b IFQxMTk1XSAjUEY6IHN1cGVydmlzb3IgcmVhZCBhY2Nlc3MgaW4ga2VybmVsIG1vZGUKWyAgIDcy LjY0OTE1OF1bIFQxMTk1XSAjUEY6IGVycm9yX2NvZGUoMHgwMDAwKSAtIG5vdC1wcmVzZW50IHBh Z2UKWyAgIDcyLjY0OTg0OV1bIFQxMTk1XSBQR0QgYTZjMDEwNjcgUDREIGE2YzAxMDY3IFBVRCAx MWZiMDcwNjcgUE1EIDExZjkzOTA2NyBQVEUgODAwZmZmZmY0NjVjYTA2MApbICAgNzIuNjUyOTU4 XVsgVDExOTVdIE9vcHM6IDAwMDAgWyMxXSBTTVAgREVCVUdfUEFHRUFMTE9DIEtBU0FOIFBUSQpb ICAgNzIuNjUzODM0XVsgVDExOTVdIENQVTogMiBQSUQ6IDExOTUgQ29tbTogaHBpbmczIFRhaW50 ZWQ6IEcgICAgQiAgICAgICAgICAgICA1LjUuMC1yYzEgIzE5OQpbICAgNzIuNjY4MDYyXVsgVDEx OTVdIFJJUDogMDAxMDppcHY0X3BkcF9maW5kLmlzcmEuMTIrMHg4Ni8weDE3MCBbZ3RwXQpbIC4u LiBdClsgICA3Mi42NzkxNjhdWyBUMTE5NV0gQ2FsbCBUcmFjZToKWyAgIDcyLjY3OTYwM11bIFQx MTk1XSAgZ3RwX2J1aWxkX3NrYl9pcDQrMHgxOTkvMHgxNDIwIFtndHBdClsgICA3Mi42ODE5MTVd WyBUMTE5NV0gID8gaXB2NF9wZHBfZmluZC5pc3JhLjEyKzB4MTcwLzB4MTcwIFtndHBdClsgICA3 Mi42ODI1MTNdWyBUMTE5NV0gID8gbG9ja19hY3F1aXJlKzB4MTY0LzB4M2IwClsgICA3Mi42ODI5 NjZdWyBUMTE5NV0gID8gZ3RwX2Rldl94bWl0KzB4MzVlLzB4ODkwIFtndHBdClsgICA3Mi42ODM0 ODFdWyBUMTE5NV0gIGd0cF9kZXZfeG1pdCsweDNjMi8weDg5MCBbZ3RwXQpbIC4uLiBdCgpGaXhl czogNDU5YWE2NjBlYjFkICgiZ3RwOiBhZGQgaW5pdGlhbCBkcml2ZXIgZm9yIGRhdGFwYXRoIG9m IEdQUlMgVHVubmVsaW5nIFByb3RvY29sIChHVFAtVSkiKQpTaWduZWQtb2ZmLWJ5OiBUYWVoZWUg WW9vIDxhcDQyMDA3M0BnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IEpha3ViIEtpY2luc2tpIDxq YWt1Yi5raWNpbnNraUBuZXRyb25vbWUuY29tPgotLS0KIGRyaXZlcnMvbmV0L2d0cC5jIHwgMzQg KysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDE3IGlu c2VydGlvbnMoKyksIDE3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2d0 cC5jIGIvZHJpdmVycy9uZXQvZ3RwLmMKaW5kZXggNTAyZGY3NWJiOTE2Li44YzMyYWJhZDE2MmYg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2d0cC5jCisrKyBiL2RyaXZlcnMvbmV0L2d0cC5jCkBA IC02NDQsOSArNjQ0LDE2IEBAIHN0YXRpYyB2b2lkIGd0cF9saW5rX3NldHVwKHN0cnVjdCBuZXRf ZGV2aWNlICpkZXYpCiB9CiAKIHN0YXRpYyBpbnQgZ3RwX2hhc2h0YWJsZV9uZXcoc3RydWN0IGd0 cF9kZXYgKmd0cCwgaW50IGhzaXplKTsKLXN0YXRpYyB2b2lkIGd0cF9oYXNodGFibGVfZnJlZShz dHJ1Y3QgZ3RwX2RldiAqZ3RwKTsKIHN0YXRpYyBpbnQgZ3RwX2VuY2FwX2VuYWJsZShzdHJ1Y3Qg Z3RwX2RldiAqZ3RwLCBzdHJ1Y3QgbmxhdHRyICpkYXRhW10pOwogCitzdGF0aWMgdm9pZCBndHBf ZGVzdHJ1Y3RvcihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQoreworCXN0cnVjdCBndHBfZGV2ICpn dHAgPSBuZXRkZXZfcHJpdihkZXYpOworCisJa2ZyZWUoZ3RwLT5hZGRyX2hhc2gpOworCWtmcmVl KGd0cC0+dGlkX2hhc2gpOworfQorCiBzdGF0aWMgaW50IGd0cF9uZXdsaW5rKHN0cnVjdCBuZXQg KnNyY19uZXQsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAJCSAgICAgICBzdHJ1Y3QgbmxhdHRy ICp0YltdLCBzdHJ1Y3QgbmxhdHRyICpkYXRhW10sCiAJCSAgICAgICBzdHJ1Y3QgbmV0bGlua19l eHRfYWNrICpleHRhY2spCkBAIC02ODEsMTMgKzY4OCwxNSBAQCBzdGF0aWMgaW50IGd0cF9uZXds aW5rKHN0cnVjdCBuZXQgKnNyY19uZXQsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAKIAlnbiA9 IG5ldF9nZW5lcmljKGRldl9uZXQoZGV2KSwgZ3RwX25ldF9pZCk7CiAJbGlzdF9hZGRfcmN1KCZn dHAtPmxpc3QsICZnbi0+Z3RwX2Rldl9saXN0KTsKKwlkZXYtPnByaXZfZGVzdHJ1Y3RvciA9IGd0 cF9kZXN0cnVjdG9yOwogCiAJbmV0ZGV2X2RiZyhkZXYsICJyZWdpc3RlcmVkIG5ldyBHVFAgaW50 ZXJmYWNlXG4iKTsKIAogCXJldHVybiAwOwogCiBvdXRfaGFzaHRhYmxlOgotCWd0cF9oYXNodGFi bGVfZnJlZShndHApOworCWtmcmVlKGd0cC0+YWRkcl9oYXNoKTsKKwlrZnJlZShndHAtPnRpZF9o YXNoKTsKIG91dF9lbmNhcDoKIAlndHBfZW5jYXBfZGlzYWJsZShndHApOwogCXJldHVybiBlcnI7 CkBAIC02OTYsOSArNzA1LDE0IEBAIHN0YXRpYyBpbnQgZ3RwX25ld2xpbmsoc3RydWN0IG5ldCAq c3JjX25ldCwgc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKIHN0YXRpYyB2b2lkIGd0cF9kZWxsaW5r KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQpCiB7CiAJc3Ry dWN0IGd0cF9kZXYgKmd0cCA9IG5ldGRldl9wcml2KGRldik7CisJc3RydWN0IHBkcF9jdHggKnBj dHg7CisJaW50IGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgZ3RwLT5oYXNoX3NpemU7IGkrKykKKwkJ aGxpc3RfZm9yX2VhY2hfZW50cnlfcmN1KHBjdHgsICZndHAtPnRpZF9oYXNoW2ldLCBobGlzdF90 aWQpCisJCQlwZHBfY29udGV4dF9kZWxldGUocGN0eCk7CiAKIAlndHBfZW5jYXBfZGlzYWJsZShn dHApOwotCWd0cF9oYXNodGFibGVfZnJlZShndHApOwogCWxpc3RfZGVsX3JjdSgmZ3RwLT5saXN0 KTsKIAl1bnJlZ2lzdGVyX25ldGRldmljZV9xdWV1ZShkZXYsIGhlYWQpOwogfQpAQCAtNzc2LDIw ICs3OTAsNiBAQCBzdGF0aWMgaW50IGd0cF9oYXNodGFibGVfbmV3KHN0cnVjdCBndHBfZGV2ICpn dHAsIGludCBoc2l6ZSkKIAlyZXR1cm4gLUVOT01FTTsKIH0KIAotc3RhdGljIHZvaWQgZ3RwX2hh c2h0YWJsZV9mcmVlKHN0cnVjdCBndHBfZGV2ICpndHApCi17Ci0Jc3RydWN0IHBkcF9jdHggKnBj dHg7Ci0JaW50IGk7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgZ3RwLT5oYXNoX3NpemU7IGkrKykKLQkJ aGxpc3RfZm9yX2VhY2hfZW50cnlfcmN1KHBjdHgsICZndHAtPnRpZF9oYXNoW2ldLCBobGlzdF90 aWQpCi0JCQlwZHBfY29udGV4dF9kZWxldGUocGN0eCk7Ci0KLQlzeW5jaHJvbml6ZV9yY3UoKTsK LQlrZnJlZShndHAtPmFkZHJfaGFzaCk7Ci0Ja2ZyZWUoZ3RwLT50aWRfaGFzaCk7Ci19Ci0KIHN0 YXRpYyBzdHJ1Y3Qgc29jayAqZ3RwX2VuY2FwX2VuYWJsZV9zb2NrZXQoaW50IGZkLCBpbnQgdHlw ZSwKIAkJCQkJICAgIHN0cnVjdCBndHBfZGV2ICpndHApCiB7Ci0tIAoyLjIwLjEKCgpGcm9tIGVh YzNiYmViYTM5ODhiNzJjZmRhMDYzZWNiYTYyMTAyOTE1MWE5ZjMgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IFRhZWhlZSBZb28gPGFwNDIwMDczQGdtYWlsLmNvbT4KRGF0ZTogV2VkLCAx MSBEZWMgMjAxOSAwODoyMzo0OCArMDAwMApTdWJqZWN0OiBbUEFUQ0ggMjMvMjNdIGd0cDogYXZv aWQgemVybyBzaXplIGhhc2h0YWJsZQoKWyBVcHN0cmVhbSBjb21taXQgNmE5MDJjMGYzMTk5M2Fi MDJlMWI2ZWE3MDg1MDAyYjljOTA4M2I2YSBdCgpHVFAgZGVmYXVsdCBoYXNodGFibGUgc2l6ZSBp cyAxMDI0IGFuZCB1c2Vyc3BhY2UgY291bGQgc2V0IHNwZWNpZmljCmhhc2h0YWJsZSBzaXplIHdp dGggSUZMQV9HVFBfUERQX0hBU0hTSVpFLiBJZiBoYXNodGFibGUgc2l6ZSBpcyBzZXQgdG8gMApm cm9tIHVzZXJzcGFjZSwgIGhhc2h0YWJsZSB3aWxsIG5vdCB3b3JrIGFuZCBwYW5pYyB3aWxsIG9j Y3VyLgoKRml4ZXM6IDQ1OWFhNjYwZWIxZCAoImd0cDogYWRkIGluaXRpYWwgZHJpdmVyIGZvciBk YXRhcGF0aCBvZiBHUFJTIFR1bm5lbGluZyBQcm90b2NvbCAoR1RQLVUpIikKU2lnbmVkLW9mZi1i eTogVGFlaGVlIFlvbyA8YXA0MjAwNzNAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBKYWt1YiBL aWNpbnNraSA8amFrdWIua2ljaW5za2lAbmV0cm9ub21lLmNvbT4KLS0tCiBkcml2ZXJzL25ldC9n dHAuYyB8IDcgKysrKystLQogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgMiBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ndHAuYyBiL2RyaXZlcnMvbmV0L2d0 cC5jCmluZGV4IDhjMzJhYmFkMTYyZi4uNDk0ZjAwYjljNWVmIDEwMDY0NAotLS0gYS9kcml2ZXJz L25ldC9ndHAuYworKysgYi9kcml2ZXJzL25ldC9ndHAuYwpAQCAtNjcxLDEwICs2NzEsMTMgQEAg c3RhdGljIGludCBndHBfbmV3bGluayhzdHJ1Y3QgbmV0ICpzcmNfbmV0LCBzdHJ1Y3QgbmV0X2Rl dmljZSAqZGV2LAogCWlmIChlcnIgPCAwKQogCQlyZXR1cm4gZXJyOwogCi0JaWYgKCFkYXRhW0lG TEFfR1RQX1BEUF9IQVNIU0laRV0pCisJaWYgKCFkYXRhW0lGTEFfR1RQX1BEUF9IQVNIU0laRV0p IHsKIAkJaGFzaHNpemUgPSAxMDI0OwotCWVsc2UKKwl9IGVsc2UgewogCQloYXNoc2l6ZSA9IG5s YV9nZXRfdTMyKGRhdGFbSUZMQV9HVFBfUERQX0hBU0hTSVpFXSk7CisJCWlmICghaGFzaHNpemUp CisJCQloYXNoc2l6ZSA9IDEwMjQ7CisJfQogCiAJZXJyID0gZ3RwX2hhc2h0YWJsZV9uZXcoZ3Rw LCBoYXNoc2l6ZSk7CiAJaWYgKGVyciA8IDApCi0tIAoyLjIwLjEKCg== ----Next_Part(Wed_Jan__1_12_13_37_2020_193)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_54.mbox" RnJvbSA1ODUwMDg1MTdmNjhkNzMxZmYzYTgxMWEwMDMyOGZlM2NiZTA1NzhlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBSYWh1bCBMYWtraXJlZGR5IDxyYWh1bC5sYWtraXJlZGR5QGNo ZWxzaW8uY29tPgpEYXRlOiBNb24sIDMwIERlYyAyMDE5IDE4OjE0OjA4ICswNTMwClN1YmplY3Q6 IFtQQVRDSCAwMS80Nl0gY3hnYjQvY3hnYjR2ZjogZml4IGZsb3cgY29udHJvbCBkaXNwbGF5IGZv ciBhdXRvCiBuZWdvdGlhdGlvbgoKWyBVcHN0cmVhbSBjb21taXQgMGNhZWFmNmFkNTMyZjliZTVh NzY4YTE1ODYyN2NiMzE5MjFjYzhiNyBdCgpBcyBwZXIgODAyLjMtMjAwNSwgU2VjdGlvbiBUd28s IEFubmV4IDI4QiwgVGFibGUgMjhCLTIgWzFdLCB3aGVuCl9vbmx5XyBSeCBwYXVzZSBpcyBlbmFi bGVkLCBib3RoIHN5bW1ldHJpYyBhbmQgYXN5bW1ldHJpYyBwYXVzZQp0b3dhcmRzIGxvY2FsIGRl dmljZSBtdXN0IGJlIGVuYWJsZWQuIEFsc28sIGZpcm13YXJlIHJldHVybnMgdGhlIGxvY2FsCmRl dmljZSdzIGZsb3cgY29udHJvbCBwYXVzZSBwYXJhbXMgYXMgcGFydCBvZiBhZHZlcnRpc2VkIGNh cGFiaWxpdGllcwphbmQgbmVnb3RpYXRlZCBwYXJhbXMgYXMgcGFydCBvZiBjdXJyZW50IGxpbmsg YXR0cmlidXRlcy4gU28sIGZpeCB1cApldGh0b29sJ3MgZmxvdyBjb250cm9sIHBhdXNlIHBhcmFt cyBmZXRjaCBsb2dpYyB0byByZWFkIGZyb20gYWNhcHMsCmluc3RlYWQgb2YgbGlua2F0dHIuCgpb MV0gaHR0cHM6Ly9zdGFuZGFyZHMuaWVlZS5vcmcvc3RhbmRhcmQvODAyXzMtMjAwNS5odG1sCgpG aXhlczogYzMxNjhjYWJlMWFmICgiY3hnYjQvY3hnYnZmOiBIYW5kbGUgMzItYml0IGZ3IHBvcnQg Y2FwYWJpbGl0aWVzIikKU2lnbmVkLW9mZi1ieTogU3VyZW5kcmEgTW9iaXlhIDxzdXJlbmRyYUBj aGVsc2lvLmNvbT4KU2lnbmVkLW9mZi1ieTogUmFodWwgTGFra2lyZWRkeSA8cmFodWwubGFra2ly ZWRkeUBjaGVsc2lvLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBk YXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hn YjQuaCAgICB8ICAxICsKIC4uLi9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2V0aHRvb2wu YyAgICB8ICA0ICsrLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvdDRfaHcu YyAgICB8IDIxICsrKysrKysrKysrKy0tLS0tLS0KIC4uLi9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0 dmYvY3hnYjR2Zl9tYWluLmMgICB8ICA0ICsrLS0KIC4uLi9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0 dmYvdDR2Zl9jb21tb24uaCAgICB8ICAxICsKIC4uLi9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdi NHZmL3Q0dmZfaHcuYyAgICB8IDE4ICsrKysrKysrKy0tLS0tLS0KIDYgZmlsZXMgY2hhbmdlZCwg MzAgaW5zZXJ0aW9ucygrKSwgMTkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9u ZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQv Y2hlbHNpby9jeGdiNC9jeGdiNC5oCmluZGV4IDFmYmI2NDBlODk2YS4uNDAyNWE2ODNmYTdkIDEw MDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgKKysr IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oCkBAIC01MDMsNiAr NTAzLDcgQEAgc3RydWN0IGxpbmtfY29uZmlnIHsKIAogCWVudW0gY2NfcGF1c2UgIHJlcXVlc3Rl ZF9mYzsgICAgIC8qIGZsb3cgY29udHJvbCB1c2VyIGhhcyByZXF1ZXN0ZWQgKi8KIAllbnVtIGNj X3BhdXNlICBmYzsgICAgICAgICAgICAgICAvKiBhY3R1YWwgbGluayBmbG93IGNvbnRyb2wgKi8K KwllbnVtIGNjX3BhdXNlICBhZHZlcnRpc2VkX2ZjOyAgICAvKiBhY3R1YWwgYWR2ZXJ0aXNlZCBm bG93IGNvbnRyb2wgKi8KIAogCWVudW0gY2NfZmVjICAgIHJlcXVlc3RlZF9mZWM7CSAvKiBGb3J3 YXJkIEVycm9yIENvcnJlY3Rpb246ICovCiAJZW51bSBjY19mZWMgICAgZmVjOwkJIC8qIHJlcXVl c3RlZCBhbmQgYWN0dWFsIGluIHVzZSAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJu ZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9ldGh0b29sLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9j aGVsc2lvL2N4Z2I0L2N4Z2I0X2V0aHRvb2wuYwppbmRleCA3NjUzOGY0Y2Q1OTUuLmY1MzdiZTlj YjMxNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdi NF9ldGh0b29sLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdi NF9ldGh0b29sLmMKQEAgLTc5Myw4ICs3OTMsOCBAQCBzdGF0aWMgdm9pZCBnZXRfcGF1c2VwYXJh bShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAogCXN0cnVjdCBwb3J0X2luZm8gKnAgPSBuZXRkZXZf cHJpdihkZXYpOwogCiAJZXBhdXNlLT5hdXRvbmVnID0gKHAtPmxpbmtfY2ZnLnJlcXVlc3RlZF9m YyAmIFBBVVNFX0FVVE9ORUcpICE9IDA7Ci0JZXBhdXNlLT5yeF9wYXVzZSA9IChwLT5saW5rX2Nm Zy5mYyAmIFBBVVNFX1JYKSAhPSAwOwotCWVwYXVzZS0+dHhfcGF1c2UgPSAocC0+bGlua19jZmcu ZmMgJiBQQVVTRV9UWCkgIT0gMDsKKwllcGF1c2UtPnJ4X3BhdXNlID0gKHAtPmxpbmtfY2ZnLmFk dmVydGlzZWRfZmMgJiBQQVVTRV9SWCkgIT0gMDsKKwllcGF1c2UtPnR4X3BhdXNlID0gKHAtPmxp bmtfY2ZnLmFkdmVydGlzZWRfZmMgJiBQQVVTRV9UWCkgIT0gMDsKIH0KIAogc3RhdGljIGludCBz ZXRfcGF1c2VwYXJhbShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LApkaWZmIC0tZ2l0IGEvZHJpdmVy cy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC90NF9ody5jIGIvZHJpdmVycy9uZXQvZXRoZXJu ZXQvY2hlbHNpby9jeGdiNC90NF9ody5jCmluZGV4IGYyYTc4MjRkYTQyYi4uM2Y2ODEzZGFmM2Mx IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L3Q0X2h3LmMK KysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC90NF9ody5jCkBAIC00MDg5 LDcgKzQwODksOCBAQCBzdGF0aWMgaW5saW5lIGZ3X3BvcnRfY2FwMzJfdCBjY190b19md2NhcF9w YXVzZShlbnVtIGNjX3BhdXNlIGNjX3BhdXNlKQogCQlpZiAoY2NfcGF1c2UgJiBQQVVTRV9UWCkK IAkJCWZ3X3BhdXNlIHw9IEZXX1BPUlRfQ0FQMzJfODAyXzNfUEFVU0U7CiAJCWVsc2UKLQkJCWZ3 X3BhdXNlIHw9IEZXX1BPUlRfQ0FQMzJfODAyXzNfQVNNX0RJUjsKKwkJCWZ3X3BhdXNlIHw9IEZX X1BPUlRfQ0FQMzJfODAyXzNfQVNNX0RJUiB8CisJCQkJICAgIEZXX1BPUlRfQ0FQMzJfODAyXzNf UEFVU0U7CiAJfSBlbHNlIGlmIChjY19wYXVzZSAmIFBBVVNFX1RYKSB7CiAJCWZ3X3BhdXNlIHw9 IEZXX1BPUlRfQ0FQMzJfODAyXzNfQVNNX0RJUjsKIAl9CkBAIC04NTYzLDE3ICs4NTY0LDE3IEBA IHN0YXRpYyBmd19wb3J0X2NhcDMyX3QgbHN0YXR1c190b19md2NhcCh1MzIgbHN0YXR1cykKIHZv aWQgdDRfaGFuZGxlX2dldF9wb3J0X2luZm8oc3RydWN0IHBvcnRfaW5mbyAqcGksIGNvbnN0IF9f YmU2NCAqcnBsKQogewogCWNvbnN0IHN0cnVjdCBmd19wb3J0X2NtZCAqY21kID0gKGNvbnN0IHZv aWQgKilycGw7Ci0JaW50IGFjdGlvbiA9IEZXX1BPUlRfQ01EX0FDVElPTl9HKGJlMzJfdG9fY3B1 KGNtZC0+YWN0aW9uX3RvX2xlbjE2KSk7Ci0Jc3RydWN0IGFkYXB0ZXIgKmFkYXB0ZXIgPSBwaS0+ YWRhcHRlcjsKKwlmd19wb3J0X2NhcDMyX3QgcGNhcHMsIGFjYXBzLCBscGFjYXBzLCBsaW5rYXR0 cjsKIAlzdHJ1Y3QgbGlua19jb25maWcgKmxjID0gJnBpLT5saW5rX2NmZzsKLQlpbnQgbGlua19v aywgbGlua2RucmM7Ci0JZW51bSBmd19wb3J0X3R5cGUgcG9ydF90eXBlOworCXN0cnVjdCBhZGFw dGVyICphZGFwdGVyID0gcGktPmFkYXB0ZXI7CisJdW5zaWduZWQgaW50IHNwZWVkLCBmYywgZmVj LCBhZHZfZmM7CiAJZW51bSBmd19wb3J0X21vZHVsZV90eXBlIG1vZF90eXBlOwotCXVuc2lnbmVk IGludCBzcGVlZCwgZmMsIGZlYzsKLQlmd19wb3J0X2NhcDMyX3QgcGNhcHMsIGFjYXBzLCBscGFj YXBzLCBsaW5rYXR0cjsKKwlpbnQgYWN0aW9uLCBsaW5rX29rLCBsaW5rZG5yYzsKKwllbnVtIGZ3 X3BvcnRfdHlwZSBwb3J0X3R5cGU7CiAKIAkvKiBFeHRyYWN0IHRoZSB2YXJpb3VzIGZpZWxkcyBm cm9tIHRoZSBQb3J0IEluZm9ybWF0aW9uIG1lc3NhZ2UuCiAJICovCisJYWN0aW9uID0gRldfUE9S VF9DTURfQUNUSU9OX0coYmUzMl90b19jcHUoY21kLT5hY3Rpb25fdG9fbGVuMTYpKTsKIAlzd2l0 Y2ggKGFjdGlvbikgewogCWNhc2UgRldfUE9SVF9BQ1RJT05fR0VUX1BPUlRfSU5GTzogewogCQl1 MzIgbHN0YXR1cyA9IGJlMzJfdG9fY3B1KGNtZC0+dS5pbmZvLmxzdGF0dXNfdG9fbW9kdHlwZSk7 CkBAIC04NjExLDYgKzg2MTIsNyBAQCB2b2lkIHQ0X2hhbmRsZV9nZXRfcG9ydF9pbmZvKHN0cnVj dCBwb3J0X2luZm8gKnBpLCBjb25zdCBfX2JlNjQgKnJwbCkKIAl9CiAKIAlmZWMgPSBmd2NhcF90 b19jY19mZWMoYWNhcHMpOworCWFkdl9mYyA9IGZ3Y2FwX3RvX2NjX3BhdXNlKGFjYXBzKTsKIAlm YyA9IGZ3Y2FwX3RvX2NjX3BhdXNlKGxpbmthdHRyKTsKIAlzcGVlZCA9IGZ3Y2FwX3RvX3NwZWVk KGxpbmthdHRyKTsKIApAQCAtODY2Nyw3ICs4NjY5LDkgQEAgdm9pZCB0NF9oYW5kbGVfZ2V0X3Bv cnRfaW5mbyhzdHJ1Y3QgcG9ydF9pbmZvICpwaSwgY29uc3QgX19iZTY0ICpycGwpCiAJfQogCiAJ aWYgKGxpbmtfb2sgIT0gbGMtPmxpbmtfb2sgfHwgc3BlZWQgIT0gbGMtPnNwZWVkIHx8Ci0JICAg IGZjICE9IGxjLT5mYyB8fCBmZWMgIT0gbGMtPmZlYykgewkvKiBzb21ldGhpbmcgY2hhbmdlZCAq LworCSAgICBmYyAhPSBsYy0+ZmMgfHwgYWR2X2ZjICE9IGxjLT5hZHZlcnRpc2VkX2ZjIHx8CisJ ICAgIGZlYyAhPSBsYy0+ZmVjKSB7CisJCS8qIHNvbWV0aGluZyBjaGFuZ2VkICovCiAJCWlmICgh bGlua19vayAmJiBsYy0+bGlua19vaykgewogCQkJbGMtPmxpbmtfZG93bl9yYyA9IGxpbmtkbnJj OwogCQkJZGV2X3dhcm5fcmF0ZWxpbWl0ZWQoYWRhcHRlci0+cGRldl9kZXYsCkBAIC04Njc3LDYg Kzg2ODEsNyBAQCB2b2lkIHQ0X2hhbmRsZV9nZXRfcG9ydF9pbmZvKHN0cnVjdCBwb3J0X2luZm8g KnBpLCBjb25zdCBfX2JlNjQgKnJwbCkKIAkJfQogCQlsYy0+bGlua19vayA9IGxpbmtfb2s7CiAJ CWxjLT5zcGVlZCA9IHNwZWVkOworCQlsYy0+YWR2ZXJ0aXNlZF9mYyA9IGFkdl9mYzsKIAkJbGMt PmZjID0gZmM7CiAJCWxjLT5mZWMgPSBmZWM7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0 aGVybmV0L2NoZWxzaW8vY3hnYjR2Zi9jeGdiNHZmX21haW4uYyBiL2RyaXZlcnMvbmV0L2V0aGVy bmV0L2NoZWxzaW8vY3hnYjR2Zi9jeGdiNHZmX21haW4uYwppbmRleCBmNmZjMDg3NWQ1YjAuLmY0 ZDQxZjk2OGFmYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdi NHZmL2N4Z2I0dmZfbWFpbi5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hn YjR2Zi9jeGdiNHZmX21haW4uYwpAQCAtMTY5MCw4ICsxNjkwLDggQEAgc3RhdGljIHZvaWQgY3hn YjR2Zl9nZXRfcGF1c2VwYXJhbShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAogCXN0cnVjdCBwb3J0 X2luZm8gKnBpID0gbmV0ZGV2X3ByaXYoZGV2KTsKIAogCXBhdXNlcGFyYW0tPmF1dG9uZWcgPSAo cGktPmxpbmtfY2ZnLnJlcXVlc3RlZF9mYyAmIFBBVVNFX0FVVE9ORUcpICE9IDA7Ci0JcGF1c2Vw YXJhbS0+cnhfcGF1c2UgPSAocGktPmxpbmtfY2ZnLmZjICYgUEFVU0VfUlgpICE9IDA7Ci0JcGF1 c2VwYXJhbS0+dHhfcGF1c2UgPSAocGktPmxpbmtfY2ZnLmZjICYgUEFVU0VfVFgpICE9IDA7CisJ cGF1c2VwYXJhbS0+cnhfcGF1c2UgPSAocGktPmxpbmtfY2ZnLmFkdmVydGlzZWRfZmMgJiBQQVVT RV9SWCkgIT0gMDsKKwlwYXVzZXBhcmFtLT50eF9wYXVzZSA9IChwaS0+bGlua19jZmcuYWR2ZXJ0 aXNlZF9mYyAmIFBBVVNFX1RYKSAhPSAwOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9u ZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNHZmL3Q0dmZfY29tbW9uLmggYi9kcml2ZXJzL25ldC9l dGhlcm5ldC9jaGVsc2lvL2N4Z2I0dmYvdDR2Zl9jb21tb24uaAppbmRleCBjY2NhNjdjZjQ0ODcu LjU3Y2ZkMTBhOTllYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9j eGdiNHZmL3Q0dmZfY29tbW9uLmgKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9j eGdiNHZmL3Q0dmZfY29tbW9uLmgKQEAgLTEzNSw2ICsxMzUsNyBAQCBzdHJ1Y3QgbGlua19jb25m aWcgewogCiAJZW51bSBjY19wYXVzZQlyZXF1ZXN0ZWRfZmM7CS8qIGZsb3cgY29udHJvbCB1c2Vy IGhhcyByZXF1ZXN0ZWQgKi8KIAllbnVtIGNjX3BhdXNlCWZjOwkJLyogYWN0dWFsIGxpbmsgZmxv dyBjb250cm9sICovCisJZW51bSBjY19wYXVzZSAgIGFkdmVydGlzZWRfZmM7ICAvKiBhY3R1YWwg YWR2ZXJ0aXNlZCBmbG93IGNvbnRyb2wgKi8KIAogCWVudW0gY2NfZmVjCWF1dG9fZmVjOwkvKiBG b3J3YXJkIEVycm9yIENvcnJlY3Rpb246ICovCiAJZW51bSBjY19mZWMJcmVxdWVzdGVkX2ZlYzsJ LyogICAiYXV0b21hdGljIiAoSUVFRSA4MDIuMyksICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL25l dC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0dmYvdDR2Zl9ody5jIGIvZHJpdmVycy9uZXQvZXRoZXJu ZXQvY2hlbHNpby9jeGdiNHZmL3Q0dmZfaHcuYwppbmRleCA4YTM4OWQ2MTdhMjMuLjlkNDlmZjIx MWNjMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNHZmL3Q0 dmZfaHcuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0dmYvdDR2Zl9o dy5jCkBAIC0xOTEzLDE2ICsxOTEzLDE2IEBAIHN0YXRpYyBjb25zdCBjaGFyICp0NHZmX2xpbmtf ZG93bl9yY19zdHIodW5zaWduZWQgY2hhciBsaW5rX2Rvd25fcmMpCiBzdGF0aWMgdm9pZCB0NHZm X2hhbmRsZV9nZXRfcG9ydF9pbmZvKHN0cnVjdCBwb3J0X2luZm8gKnBpLAogCQkJCSAgICAgIGNv bnN0IHN0cnVjdCBmd19wb3J0X2NtZCAqY21kKQogewotCWludCBhY3Rpb24gPSBGV19QT1JUX0NN RF9BQ1RJT05fRyhiZTMyX3RvX2NwdShjbWQtPmFjdGlvbl90b19sZW4xNikpOwotCXN0cnVjdCBh ZGFwdGVyICphZGFwdGVyID0gcGktPmFkYXB0ZXI7CisJZndfcG9ydF9jYXAzMl90IHBjYXBzLCBh Y2FwcywgbHBhY2FwcywgbGlua2F0dHI7CiAJc3RydWN0IGxpbmtfY29uZmlnICpsYyA9ICZwaS0+ bGlua19jZmc7Ci0JaW50IGxpbmtfb2ssIGxpbmtkbnJjOwotCWVudW0gZndfcG9ydF90eXBlIHBv cnRfdHlwZTsKKwlzdHJ1Y3QgYWRhcHRlciAqYWRhcHRlciA9IHBpLT5hZGFwdGVyOworCXVuc2ln bmVkIGludCBzcGVlZCwgZmMsIGZlYywgYWR2X2ZjOwogCWVudW0gZndfcG9ydF9tb2R1bGVfdHlw ZSBtb2RfdHlwZTsKLQl1bnNpZ25lZCBpbnQgc3BlZWQsIGZjLCBmZWM7Ci0JZndfcG9ydF9jYXAz Ml90IHBjYXBzLCBhY2FwcywgbHBhY2FwcywgbGlua2F0dHI7CisJaW50IGFjdGlvbiwgbGlua19v aywgbGlua2RucmM7CisJZW51bSBmd19wb3J0X3R5cGUgcG9ydF90eXBlOwogCiAJLyogRXh0cmFj dCB0aGUgdmFyaW91cyBmaWVsZHMgZnJvbSB0aGUgUG9ydCBJbmZvcm1hdGlvbiBtZXNzYWdlLiAq LworCWFjdGlvbiA9IEZXX1BPUlRfQ01EX0FDVElPTl9HKGJlMzJfdG9fY3B1KGNtZC0+YWN0aW9u X3RvX2xlbjE2KSk7CiAJc3dpdGNoIChhY3Rpb24pIHsKIAljYXNlIEZXX1BPUlRfQUNUSU9OX0dF VF9QT1JUX0lORk86IHsKIAkJdTMyIGxzdGF0dXMgPSBiZTMyX3RvX2NwdShjbWQtPnUuaW5mby5s c3RhdHVzX3RvX21vZHR5cGUpOwpAQCAtMTk4Miw2ICsxOTgyLDcgQEAgc3RhdGljIHZvaWQgdDR2 Zl9oYW5kbGVfZ2V0X3BvcnRfaW5mbyhzdHJ1Y3QgcG9ydF9pbmZvICpwaSwKIAl9CiAKIAlmZWMg PSBmd2NhcF90b19jY19mZWMoYWNhcHMpOworCWFkdl9mYyA9IGZ3Y2FwX3RvX2NjX3BhdXNlKGFj YXBzKTsKIAlmYyA9IGZ3Y2FwX3RvX2NjX3BhdXNlKGxpbmthdHRyKTsKIAlzcGVlZCA9IGZ3Y2Fw X3RvX3NwZWVkKGxpbmthdHRyKTsKIApAQCAtMjAxMiw3ICsyMDEzLDkgQEAgc3RhdGljIHZvaWQg dDR2Zl9oYW5kbGVfZ2V0X3BvcnRfaW5mbyhzdHJ1Y3QgcG9ydF9pbmZvICpwaSwKIAl9CiAKIAlp ZiAobGlua19vayAhPSBsYy0+bGlua19vayB8fCBzcGVlZCAhPSBsYy0+c3BlZWQgfHwKLQkgICAg ZmMgIT0gbGMtPmZjIHx8IGZlYyAhPSBsYy0+ZmVjKSB7CS8qIHNvbWV0aGluZyBjaGFuZ2VkICov CisJICAgIGZjICE9IGxjLT5mYyB8fCBhZHZfZmMgIT0gbGMtPmFkdmVydGlzZWRfZmMgfHwKKwkg ICAgZmVjICE9IGxjLT5mZWMpIHsKKwkJLyogc29tZXRoaW5nIGNoYW5nZWQgKi8KIAkJaWYgKCFs aW5rX29rICYmIGxjLT5saW5rX29rKSB7CiAJCQlsYy0+bGlua19kb3duX3JjID0gbGlua2RucmM7 CiAJCQlkZXZfd2Fybl9yYXRlbGltaXRlZChhZGFwdGVyLT5wZGV2X2RldiwKQEAgLTIwMjIsNiAr MjAyNSw3IEBAIHN0YXRpYyB2b2lkIHQ0dmZfaGFuZGxlX2dldF9wb3J0X2luZm8oc3RydWN0IHBv cnRfaW5mbyAqcGksCiAJCX0KIAkJbGMtPmxpbmtfb2sgPSBsaW5rX29rOwogCQlsYy0+c3BlZWQg PSBzcGVlZDsKKwkJbGMtPmFkdmVydGlzZWRfZmMgPSBhZHZfZmM7CiAJCWxjLT5mYyA9IGZjOwog CQlsYy0+ZmVjID0gZmVjOwogCi0tIAoyLjIwLjEKCgpGcm9tIDEyZGI5MjU5ZTEwNDM3NGM3NGFk YjEyNzhiNTdlOGVlZjRmMjg4ZmUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEZsb3Jp YW4gRmFpbmVsbGkgPGYuZmFpbmVsbGlAZ21haWwuY29tPgpEYXRlOiBGcmksIDIwIERlYyAyMDE5 IDExOjI0OjIxIC0wODAwClN1YmplY3Q6IFtQQVRDSCAwMi80Nl0gbmV0OiBkc2E6IGJjbV9zZjI6 IEZpeCBJUCBmcmFnbWVudCBsb2NhdGlvbiBhbmQKIGJlaGF2aW9yCgpbIFVwc3RyZWFtIGNvbW1p dCA3YzMxMjVmMGE2ZWJjMTc4NDZjNTkwOGFkN2Q2MDU2ZDY2YzFjNDI2IF0KClRoZSBJUCBmcmFn bWVudCBpcyBzcGVjaWZpZWQgdGhyb3VnaCB1c2VyLWRlZmluZWQgZmllbGQgYXMgdGhlIGZpcnN0 CmJpdCBvZiB0aGUgZmlyc3QgdXNlci1kZWZpbmVkIHdvcmQuIFdlIHdlcmUgcHJldmlvdXNseSB0 cnlpbmcgdG8gZXh0cmFjdAppdCBmcm9tIHRoZSB1c2VyLWRlZmluZWQgbWFzayB3aGljaCBjb3Vs ZCBub3QgcG9zc2libHkgd29yay4gVGhlIGlwX2ZyYWcKaXMgYWxzbyBzdXBwb3NlZCB0byBiZSBh IGJvb2xlYW4sIGlmIHdlIGRvIG5vdCBjYXN0IGl0IGFzIHN1Y2gsIHdlIHJpc2sKb3ZlcndyaXRp bmcgdGhlIG5leHQgZmllbGRzIGluIENGUF9EQVRBKDYpIHdoaWNoIHdvdWxkIHJlbmRlciB0aGUg cnVsZQppbm9wZXJhdGl2ZS4KCkZpeGVzOiA3MzE4MTY2Y2FjYWQgKCJuZXQ6IGRzYTogYmNtX3Nm MjogQWRkIHN1cHBvcnQgZm9yIGV0aHRvb2w6OnJ4bmZjIikKU2lnbmVkLW9mZi1ieTogRmxvcmlh biBGYWluZWxsaSA8Zi5mYWluZWxsaUBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMu IE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9kc2EvYmNtX3Nm Ml9jZnAuYyB8IDYgKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9iY21fc2YyX2NmcC5jIGIv ZHJpdmVycy9uZXQvZHNhL2JjbV9zZjJfY2ZwLmMKaW5kZXggZDI2NDc3NmE5NWEzLi40NzE4Mzdj ZjBiMjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2RzYS9iY21fc2YyX2NmcC5jCisrKyBiL2Ry aXZlcnMvbmV0L2RzYS9iY21fc2YyX2NmcC5jCkBAIC0zNTgsNyArMzU4LDcgQEAgc3RhdGljIGlu dCBiY21fc2YyX2NmcF9pcHY0X3J1bGVfc2V0KHN0cnVjdCBiY21fc2YyX3ByaXYgKnByaXYsIGlu dCBwb3J0LAogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKLQlpcF9mcmFnID0gYmUzMl90b19jcHUo ZnMtPm1fZXh0LmRhdGFbMF0pOworCWlwX2ZyYWcgPSAhIShiZTMyX3RvX2NwdShmcy0+aF9leHQu ZGF0YVswXSkgJiAxKTsKIAogCS8qIExvY2F0ZSB0aGUgZmlyc3QgcnVsZSBhdmFpbGFibGUgKi8K IAlpZiAoZnMtPmxvY2F0aW9uID09IFJYX0NMU19MT0NfQU5ZKQpAQCAtNTY5LDcgKzU2OSw3IEBA IHN0YXRpYyBpbnQgYmNtX3NmMl9jZnBfcnVsZV9jbXAoc3RydWN0IGJjbV9zZjJfcHJpdiAqcHJp diwgaW50IHBvcnQsCiAKIAkJaWYgKHJ1bGUtPmZzLmZsb3dfdHlwZSAhPSBmcy0+Zmxvd190eXBl IHx8CiAJCSAgICBydWxlLT5mcy5yaW5nX2Nvb2tpZSAhPSBmcy0+cmluZ19jb29raWUgfHwKLQkJ ICAgIHJ1bGUtPmZzLm1fZXh0LmRhdGFbMF0gIT0gZnMtPm1fZXh0LmRhdGFbMF0pCisJCSAgICBy dWxlLT5mcy5oX2V4dC5kYXRhWzBdICE9IGZzLT5oX2V4dC5kYXRhWzBdKQogCQkJY29udGludWU7 CiAKIAkJc3dpdGNoIChmcy0+Zmxvd190eXBlICYgfkZMT1dfRVhUKSB7CkBAIC02MjEsNyArNjIx LDcgQEAgc3RhdGljIGludCBiY21fc2YyX2NmcF9pcHY2X3J1bGVfc2V0KHN0cnVjdCBiY21fc2Yy X3ByaXYgKnByaXYsIGludCBwb3J0LAogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKLQlpcF9mcmFn ID0gYmUzMl90b19jcHUoZnMtPm1fZXh0LmRhdGFbMF0pOworCWlwX2ZyYWcgPSAhIShiZTMyX3Rv X2NwdShmcy0+aF9leHQuZGF0YVswXSkgJiAxKTsKIAogCWxheW91dCA9ICZ1ZGZfdGNwaXA2X2xh eW91dDsKIAlzbGljZV9udW0gPSBiY21fc2YyX2dldF9zbGljZV9udW1iZXIobGF5b3V0LCAwKTsK LS0gCjIuMjAuMQoKCkZyb20gNmNiMzExMjkwNjJjNDkwZjA5YjMwNWM0MTdjZWI3OGJmNWQ1MTc0 OSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogVmxhZHlzbGF2IFRhcmFzaXVrIDx2bGFk eXNsYXZ0QG1lbGxhbm94LmNvbT4KRGF0ZTogVGh1LCAyNiBEZWMgMjAxOSAxMDo0MTo1NiArMDIw MApTdWJqZWN0OiBbUEFUQ0ggMDMvNDZdIG5ldC9tbHhmdzogRml4IG91dC1vZi1tZW1vcnkgZXJy b3IgaW4gbWZhMiBmbGFzaAogYnVybmluZwoKWyBVcHN0cmVhbSBjb21taXQgYTViY2Q3MmUwNTRh YWJiOTNkZGM1MWVkOGNkZTM2YTViZmM1MDI3MSBdCgpUaGUgYnVybmluZyBwcm9jZXNzIHJlcXVp cmVzIHRvIHBlcmZvcm0gaW50ZXJuYWwgYWxsb2NhdGlvbnMgb2YgbGFyZ2UKY2h1bmtzIG9mIG1l bW9yeS4gVGhpcyBtZW1vcnkgZG9lc24ndCBuZWVkIHRvIGJlIGNvbnRpZ3VvdXMgYW5kIGNhbiBi ZQpzYWZlbHkgYWxsb2NhdGVkIGJ5IHZ6YWxsb2MoKSBpbnN0ZWFkIG9mIGt6YWxsb2MoKS4gVGhp cyBwYXRjaCBjaGFuZ2VzCnN1Y2ggYWxsb2NhdGlvbiB0byBhdm9pZCBwb3NzaWJsZSBvdXQtb2Yt bWVtb3J5IGZhaWx1cmUuCgpGaXhlczogNDEwZWQxM2NhZTM5ICgiQWRkIHRoZSBtbHhmdyBtb2R1 bGUgZm9yIE1lbGxhbm94IGZpcm13YXJlIGZsYXNoIHByb2Nlc3MiKQpTaWduZWQtb2ZmLWJ5OiBW bGFkeXNsYXYgVGFyYXNpdWsgPHZsYWR5c2xhdnRAbWVsbGFub3guY29tPgpSZXZpZXdlZC1ieTog QXlhIExldmluIDxheWFsQG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogTGVvbiBSb21hbm92 c2t5IDxsZW9ucm9AbWVsbGFub3guY29tPgpUZXN0ZWQtYnk6IElkbyBTY2hpbW1lbCA8aWRvc2No QG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZl bWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seGZ3L21seGZ3 X21mYTIuYyB8IDcgKysrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMyBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9t bHhmdy9tbHhmd19tZmEyLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhmdy9t bHhmd19tZmEyLmMKaW5kZXggNTQ0MzQ0YWM0ODk0Li43OTA1N2FmNGZlOTkgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seGZ3L21seGZ3X21mYTIuYworKysgYi9k cml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhmdy9tbHhmd19tZmEyLmMKQEAgLTYsNiAr Niw3IEBACiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxl Lmg+CiAjaW5jbHVkZSA8bGludXgvbmV0bGluay5oPgorI2luY2x1ZGUgPGxpbnV4L3ZtYWxsb2Mu aD4KICNpbmNsdWRlIDxsaW51eC94ei5oPgogI2luY2x1ZGUgIm1seGZ3X21mYTIuaCIKICNpbmNs dWRlICJtbHhmd19tZmEyX2ZpbGUuaCIKQEAgLTU0OCw3ICs1NDksNyBAQCBtbHhmd19tZmEyX2Zp bGVfY29tcG9uZW50X2dldChjb25zdCBzdHJ1Y3QgbWx4ZndfbWZhMl9maWxlICptZmEyX2ZpbGUs CiAJY29tcF9zaXplID0gYmUzMl90b19jcHUoY29tcC0+c2l6ZSk7CiAJY29tcF9idWZfc2l6ZSA9 IGNvbXBfc2l6ZSArIG1seGZ3X21mYTJfY29tcF9tYWdpY19sZW47CiAKLQljb21wX2RhdGEgPSBr bWFsbG9jKHNpemVvZigqY29tcF9kYXRhKSArIGNvbXBfYnVmX3NpemUsIEdGUF9LRVJORUwpOwor CWNvbXBfZGF0YSA9IHZ6YWxsb2Moc2l6ZW9mKCpjb21wX2RhdGEpICsgY29tcF9idWZfc2l6ZSk7 CiAJaWYgKCFjb21wX2RhdGEpCiAJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwogCWNvbXBfZGF0 YS0+Y29tcC5kYXRhX3NpemUgPSBjb21wX3NpemU7CkBAIC01NzAsNyArNTcxLDcgQEAgbWx4Zndf bWZhMl9maWxlX2NvbXBvbmVudF9nZXQoY29uc3Qgc3RydWN0IG1seGZ3X21mYTJfZmlsZSAqbWZh Ml9maWxlLAogCWNvbXBfZGF0YS0+Y29tcC5kYXRhID0gY29tcF9kYXRhLT5idWZmICsgbWx4Zndf bWZhMl9jb21wX21hZ2ljX2xlbjsKIAlyZXR1cm4gJmNvbXBfZGF0YS0+Y29tcDsKIGVycl9vdXQ6 Ci0Ja2ZyZWUoY29tcF9kYXRhKTsKKwl2ZnJlZShjb21wX2RhdGEpOwogCXJldHVybiBFUlJfUFRS KGVycik7CiB9CiAKQEAgLTU3OSw3ICs1ODAsNyBAQCB2b2lkIG1seGZ3X21mYTJfZmlsZV9jb21w b25lbnRfcHV0KHN0cnVjdCBtbHhmd19tZmEyX2NvbXBvbmVudCAqY29tcCkKIAljb25zdCBzdHJ1 Y3QgbWx4ZndfbWZhMl9jb21wX2RhdGEgKmNvbXBfZGF0YTsKIAogCWNvbXBfZGF0YSA9IGNvbnRh aW5lcl9vZihjb21wLCBzdHJ1Y3QgbWx4ZndfbWZhMl9jb21wX2RhdGEsIGNvbXApOwotCWtmcmVl KGNvbXBfZGF0YSk7CisJdmZyZWUoY29tcF9kYXRhKTsKIH0KIAogdm9pZCBtbHhmd19tZmEyX2Zp bGVfZmluaShzdHJ1Y3QgbWx4ZndfbWZhMl9maWxlICptZmEyX2ZpbGUpCi0tIAoyLjIwLjEKCgpG cm9tIDM3NGU3MmJkNTU2OTAxZWU5MjhkZjE0YzQ5NDM0NjI2MDIwYzllNWYgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IE1hZGFsaW4gQnVjdXIgPG1hZGFsaW4uYnVjdXJAb3NzLm54cC5j b20+CkRhdGU6IE1vbiwgMjMgRGVjIDIwMTkgMTA6MDY6MTAgKzAyMDAKU3ViamVjdDogW1BBVENI IDA0LzQ2XSBuZXQ6IHBoeTogYXF1YW50aWE6IGFkZCBzdXNwZW5kIC8gcmVzdW1lIG9wcyBmb3Ig QVFSMTA1CgpbIFVwc3RyZWFtIGNvbW1pdCAxYzkzZmI0NTc2MWU3OWIzYzAwMDgwZTcxNTIzODg2 Y2VmYWYzNTFjIF0KClRoZSBzdXNwZW5kL3Jlc3VtZSBjb2RlIGZvciBBUVIxMDcgd29ya3Mgb24g QVFSMTA1IHRvby4KVGhpcyBwYXRjaCBmaXhlcyBpc3N1ZXMgd2l0aCB0aGUgcGFydG5lciBub3Qg c2VlaW5nIHRoZSBsaW5rIGRvd24Kd2hlbiB0aGUgaW50ZXJmYWNlIHVzaW5nIEFRUjEwNSBpcyBi cm91Z2h0IGRvd24uCgpGaXhlczogYmVlODI1OWRkMzFmICgibmV0OiBwaHk6IGFkZCBkcml2ZXIg Zm9yIGFxdWFudGlhIHBoeSIpClNpZ25lZC1vZmYtYnk6IE1hZGFsaW4gQnVjdXIgPG1hZGFsaW4u YnVjdXJAb3NzLm54cC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1A ZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9waHkvYXF1YW50aWFfbWFpbi5jIHwgMiAr KwogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMv bmV0L3BoeS9hcXVhbnRpYV9tYWluLmMgYi9kcml2ZXJzL25ldC9waHkvYXF1YW50aWFfbWFpbi5j CmluZGV4IDNiMjlkMzgxMTE2Zi4uOTc1Nzg5ZDkzNDlkIDEwMDY0NAotLS0gYS9kcml2ZXJzL25l dC9waHkvYXF1YW50aWFfbWFpbi5jCisrKyBiL2RyaXZlcnMvbmV0L3BoeS9hcXVhbnRpYV9tYWlu LmMKQEAgLTYyNyw2ICs2MjcsOCBAQCBzdGF0aWMgc3RydWN0IHBoeV9kcml2ZXIgYXFyX2RyaXZl cltdID0gewogCS5jb25maWdfaW50cgk9IGFxcl9jb25maWdfaW50ciwKIAkuYWNrX2ludGVycnVw dAk9IGFxcl9hY2tfaW50ZXJydXB0LAogCS5yZWFkX3N0YXR1cwk9IGFxcl9yZWFkX3N0YXR1cywK Kwkuc3VzcGVuZAk9IGFxcjEwN19zdXNwZW5kLAorCS5yZXN1bWUJCT0gYXFyMTA3X3Jlc3VtZSwK IH0sCiB7CiAJUEhZX0lEX01BVENIX01PREVMKFBIWV9JRF9BUVIxMDYpLAotLSAKMi4yMC4xCgoK RnJvbSBiMzA1OTMzNDliYjAzNjFkZGNjYzE4NTQ2ZTg5MjA2N2E4MWY4NjcwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaG11bGlrIExhZGthbmkgPHNsYWRrYW5pQHByb29mcG9pbnQu Y29tPgpEYXRlOiBXZWQsIDI1IERlYyAyMDE5IDEwOjUxOjAxICswMjAwClN1YmplY3Q6IFtQQVRD SCAwNS80Nl0gbmV0L3NjaGVkOiBhY3RfbWlycmVkOiBQdWxsIG1hYyBwcmlvciByZWRpciB0byBu b24KIG1hY19oZWFkZXJfeG1pdCBkZXZpY2UKClsgVXBzdHJlYW0gY29tbWl0IDcwY2YzZGM3MzEz MjA3ODE2MjU1YjlhY2IwZGZmYjE5ZGFlNzgxNDQgXQoKVGhlcmUncyBubyBza2JfcHVsbCBwZXJm b3JtZWQgd2hlbiBhIG1pcnJlZCBhY3Rpb24gaXMgc2V0IGF0IGVncmVzcyBvZiBhCm1hYyBkZXZp Y2UsIHdpdGggYSB0YXJnZXQgZGV2aWNlL2FjdGlvbiB0aGF0IGV4cGVjdHMgc2tiLT5kYXRhIHRv IHBvaW50CmF0IHRoZSBuZXR3b3JrIGhlYWRlci4KCkFzIGEgcmVzdWx0LCBlaXRoZXIgdGhlIHRh cmdldCBkZXZpY2UgaXMgZXJyb3Jub3VzbHkgZ2l2ZW4gYW4gc2tiIHdpdGgKZGF0YSBwb2ludGlu ZyB0byB0aGUgbWFjIChlZ3Jlc3MgY2FzZSksIG9yIHRoZSBuZXQgc3RhY2sgcmVjZWl2ZXMgdGhl CnNrYiB3aXRoIGRhdGEgcG9pbnRpbmcgdG8gdGhlIG1hYyAoaW5ncmVzcyBjYXNlKS4KCkUuZzoK ICMgdGMgcWRpc2MgYWRkIGRldiBldGg5IHJvb3QgaGFuZGxlIDE6IHByaW8KICMgdGMgZmlsdGVy IGFkZCBkZXYgZXRoOSBwYXJlbnQgMTogcHJpbyA5IHByb3RvY29sIGlwIGhhbmRsZSA5IGJhc2lj IFwKICAgYWN0aW9uIG1pcnJlZCBlZ3Jlc3MgcmVkaXJlY3QgZGV2IHR1bjAKCiAodHVuMCBpcyBh IHR1biBkZXZpY2UuIHJlc3VsdDogdHVuMCBlcnJvcm5vdXNseSBnZXRzIHRoZSBldGggaGVhZGVy CiAgaW5zdGVhZCBvZiB0aGUgaXBoKQoKUmV2aXNlIHRoZSBwdXNoL3B1bGwgbG9naWMgb2YgdGNm X21pcnJlZF9hY3QoKSB0byBub3QgcmVseSBvbiB0aGUKc2tiX2F0X3RjX2luZ3Jlc3MoKSB2cyB0 Y2ZfbWlycmVkX2FjdF93YW50c19pbmdyZXNzKCkgY29tcGFyaXNvbiwgYXMgaXQKZG9lcyBub3Qg Y292ZXIgYWxsICJwdWxsIiBjYXNlcy4KCkluc3RlYWQsIGNhbGN1bGF0ZSB3aGV0aGVyIHRoZSBy ZXF1aXJlZCBhY3Rpb24gb24gdGhlIHRhcmdldCBkZXZpY2UKcmVxdWlyZXMgdGhlIGRhdGEgdG8g cG9pbnQgYXQgdGhlIG5ldHdvcmsgaGVhZGVyLCBhbmQgY29tcGFyZSB0aGlzIHRvCndoZXRoZXIg c2tiLT5kYXRhIHBvaW50cyB0byBuZXR3b3JrIGhlYWRlciAtIGFuZCBtYWtlIHRoZSBwdXNoL3B1 bGwKYWRqdXN0bWVudHMgYXMgbmVjZXNzYXJ5LgoKRml4ZXM6IDFkYTE3N2U0YzNmNCAoIkxpbnV4 LTIuNi4xMi1yYzIiKQpTaWduZWQtb2ZmLWJ5OiBTaG11bGlrIExhZGthbmkgPHNsYWRrYW5pQHBy b29mcG9pbnQuY29tPgpUZXN0ZWQtYnk6IEphbWFsIEhhZGkgU2FsaW0gPGpoc0Btb2phdGF0dS5j b20+CkFja2VkLWJ5OiBKYW1hbCBIYWRpIFNhbGltIDxqaHNAbW9qYXRhdHUuY29tPgpTaWduZWQt b2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3Nj aGVkL2FjdF9taXJyZWQuYyB8IDIyICsrKysrKysrKysrKy0tLS0tLS0tLS0KIDEgZmlsZSBjaGFu Z2VkLCAxMiBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQv c2NoZWQvYWN0X21pcnJlZC5jIGIvbmV0L3NjaGVkL2FjdF9taXJyZWQuYwppbmRleCAwODkyM2Iy MWU1NjYuLmYwZGYwZDkwYjhiZCAxMDA2NDQKLS0tIGEvbmV0L3NjaGVkL2FjdF9taXJyZWQuYwor KysgYi9uZXQvc2NoZWQvYWN0X21pcnJlZC5jCkBAIC0yMTksOCArMjE5LDEwIEBAIHN0YXRpYyBp bnQgdGNmX21pcnJlZF9hY3Qoc3RydWN0IHNrX2J1ZmYgKnNrYiwgY29uc3Qgc3RydWN0IHRjX2Fj dGlvbiAqYSwKIAlib29sIHVzZV9yZWluc2VydDsKIAlib29sIHdhbnRfaW5ncmVzczsKIAlib29s IGlzX3JlZGlyZWN0OworCWJvb2wgZXhwZWN0c19uaDsKIAlpbnQgbV9lYWN0aW9uOwogCWludCBt YWNfbGVuOworCWJvb2wgYXRfbmg7CiAKIAlyZWNfbGV2ZWwgPSBfX3RoaXNfY3B1X2luY19yZXR1 cm4obWlycmVkX3JlY19sZXZlbCk7CiAJaWYgKHVubGlrZWx5KHJlY19sZXZlbCA+IE1JUlJFRF9S RUNVUlNJT05fTElNSVQpKSB7CkBAIC0yNjEsMTkgKzI2MywxOSBAQCBzdGF0aWMgaW50IHRjZl9t aXJyZWRfYWN0KHN0cnVjdCBza19idWZmICpza2IsIGNvbnN0IHN0cnVjdCB0Y19hY3Rpb24gKmEs CiAJCQlnb3RvIG91dDsKIAl9CiAKLQkvKiBJZiBhY3Rpb24ncyB0YXJnZXQgZGlyZWN0aW9uIGRp ZmZlcnMgdGhhbiBmaWx0ZXIncyBkaXJlY3Rpb24sCi0JICogYW5kIGRldmljZXMgZXhwZWN0IGEg bWFjIGhlYWRlciBvbiB4bWl0LCB0aGVuIG1hYyBwdXNoL3B1bGwgaXMKLQkgKiBuZWVkZWQuCi0J ICovCiAJd2FudF9pbmdyZXNzID0gdGNmX21pcnJlZF9hY3Rfd2FudHNfaW5ncmVzcyhtX2VhY3Rp b24pOwotCWlmIChza2JfYXRfdGNfaW5ncmVzcyhza2IpICE9IHdhbnRfaW5ncmVzcyAmJiBtX21h Y19oZWFkZXJfeG1pdCkgewotCQlpZiAoIXNrYl9hdF90Y19pbmdyZXNzKHNrYikpIHsKLQkJCS8q IGNhdWdodCBhdCBlZ3Jlc3MsIGFjdCBpbmdyZXNzOiBwdWxsIG1hYyAqLwotCQkJbWFjX2xlbiA9 IHNrYl9uZXR3b3JrX2hlYWRlcihza2IpIC0gc2tiX21hY19oZWFkZXIoc2tiKTsKKworCWV4cGVj dHNfbmggPSB3YW50X2luZ3Jlc3MgfHwgIW1fbWFjX2hlYWRlcl94bWl0OworCWF0X25oID0gc2ti LT5kYXRhID09IHNrYl9uZXR3b3JrX2hlYWRlcihza2IpOworCWlmIChhdF9uaCAhPSBleHBlY3Rz X25oKSB7CisJCW1hY19sZW4gPSBza2JfYXRfdGNfaW5ncmVzcyhza2IpID8gc2tiLT5tYWNfbGVu IDoKKwkJCSAgc2tiX25ldHdvcmtfaGVhZGVyKHNrYikgLSBza2JfbWFjX2hlYWRlcihza2IpOwor CQlpZiAoZXhwZWN0c19uaCkgeworCQkJLyogdGFyZ2V0IGRldmljZS9hY3Rpb24gZXhwZWN0IGRh dGEgYXQgbmggKi8KIAkJCXNrYl9wdWxsX3Jjc3VtKHNrYjIsIG1hY19sZW4pOwogCQl9IGVsc2Ug ewotCQkJLyogY2F1Z2h0IGF0IGluZ3Jlc3MsIGFjdCBlZ3Jlc3M6IHB1c2ggbWFjICovCi0JCQlz a2JfcHVzaF9yY3N1bShza2IyLCBza2ItPm1hY19sZW4pOworCQkJLyogdGFyZ2V0IGRldmljZS9h Y3Rpb24gZXhwZWN0IGRhdGEgYXQgbWFjICovCisJCQlza2JfcHVzaF9yY3N1bShza2IyLCBtYWNf bGVuKTsKIAkJfQogCX0KIAotLSAKMi4yMC4xCgoKRnJvbSBjMjNhZWM3NzI1ZmY0MWZhZWUyYjk0 YWI3Y2QzZTNiOTZjODlhMDQ3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYXZpZGUg Q2FyYXR0aSA8ZGNhcmF0dGlAcmVkaGF0LmNvbT4KRGF0ZTogU2F0LCAyOCBEZWMgMjAxOSAxNjoz Njo1OCArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMDYvNDZdIG5ldC9zY2hlZDogYWRkIGRlbGV0ZV9l bXB0eSgpIHRvIGZpbHRlcnMgYW5kIHVzZSBpdCBpbgogY2xzX2Zsb3dlcgoKWyBVcHN0cmVhbSBj b21taXQgYTViNzJhMDgzZGExOTdiNDkzYzdlZDFlNTczMGQ2MmQzMTk5ZjdkNiBdCgpSZXZlcnQg Im5ldC9zY2hlZDogY2xzX3UzMjogZml4IHJlZmNvdW50IGxlYWsgaW4gdGhlIGVycm9yIHBhdGgg b2YKdTMyX2NoYW5nZSgpIiwgYW5kIGZpeCB0aGUgdTMyIHJlZmNvdW50IGxlYWsgaW4gYSBtb3Jl IGdlbmVyaWMgd2F5IHRoYXQKcHJlc2VydmVzIHRoZSBzZW1hbnRpYyBvZiBydWxlIGR1bXBpbmcu Ck9uIHRjIGZpbHRlcnMgdGhhdCBkb24ndCBzdXBwb3J0IGxvY2tsZXNzIGluc2VydGlvbi9yZW1v dmFsLCB0aGVyZSBpcyBubwpuZWVkIHRvIGd1YXJkIGFnYWluc3QgY29uY3VycmVudCBpbnNlcnRp b24gd2hlbiBhIHJlbW92YWwgaXMgaW4gcHJvZ3Jlc3MuClRoZXJlZm9yZSwgZm9yIG1vc3Qgb2Yg dGhlbSB3ZSBjYW4gYXZvaWQgYSBmdWxsIHdhbGsoKSB3aGVuIGRlbGV0aW5nLCBhbmQKanVzdCBk ZWNyZWFzZSB0aGUgcmVmY291bnQsIGxpa2UgaXQgd2FzIGRvbmUgb24gb2xkZXIgTGludXgga2Vy bmVscy4KVGhpcyBmaXhlcyBzaXR1YXRpb25zIHdoZXJlIHdhbGsoKSB3YXMgd3JvbmdseSBkZXRl Y3RpbmcgYSBub24tZW1wdHkKZmlsdGVyLCBsaWtlIGl0IGhhcHBlbmVkIHdpdGggY2xzX3UzMiBp biB0aGUgZXJyb3IgcGF0aCBvZiBjaGFuZ2UoKSwgdGh1cwpsZWFkaW5nIHRvIGZhaWx1cmVzIGlu IHRoZSBmb2xsb3dpbmcgdGRjIHNlbGZ0ZXN0czoKCiA2YWE3OiAoZmlsdGVyLCB1MzIpIEFkZC9S ZXBsYWNlIHUzMiB3aXRoIHNvdXJjZSBtYXRjaCBhbmQgaW52YWxpZCBpbmRldgogNjY1ODogKGZp bHRlciwgdTMyKSBBZGQvUmVwbGFjZSB1MzIgd2l0aCBjdXN0b20gaGFzaCB0YWJsZSBhbmQgaW52 YWxpZCBoYW5kbGUKIDc0YzI6IChmaWx0ZXIsIHUzMikgQWRkL1JlcGxhY2UgdTMyIGZpbHRlciB3 aXRoIGludmFsaWQgaGFzaCB0YWJsZSBpZAoKT24gY2xzX2Zsb3dlciwgYW5kIG9uIChmdXR1cmUp IGxvY2tsZXNzIGZpbHRlcnMsIHRoaXMgY2hlY2sgaXMgbmVjZXNzYXJ5Ogptb3ZlIGFsbCB0aGUg Y2hlY2tfZW1wdHkoKSBsb2dpYyBpbiBhIGNhbGxiYWNrIHNvIHRoYXQgZWFjaCBmaWx0ZXIKY2Fu IGhhdmUgaXRzIG93biBpbXBsZW1lbnRhdGlvbi4gRm9yIGNsc19mbG93ZXIsIGl0J3Mgc3VmZmlj aWVudCB0byBjaGVjawppZiBubyBJRFJzIGhhdmUgYmVlbiBhbGxvY2F0ZWQuCgpUaGlzIHJldmVy dHMgY29tbWl0IDI3NWM0NGFhMTk0YjcxNTlkMTE5MTgxN2IyMGUwNzZmNTVmMGU2MjAuCgpDaGFu Z2VzIHNpbmNlIHYxOgogLSBkb2N1bWVudCB0aGUgbmVlZCBmb3IgZGVsZXRlX2VtcHR5KCkgd2hl biBUQ0ZfUFJPVE9fT1BTX0RPSVRfVU5MT0NLRUQKICAgaXMgdXNlZCwgdGhhbmtzIHRvIFZsYWQg QnVzbG92CiAtIGltcGxlbWVudCBkZWxldGVfZW1wdHkoKSB3aXRob3V0IGRvaW5nIGZsX3dhbGso KSwgdGhhbmtzIHRvIFZsYWQgQnVzbG92CiAtIHNxdWFzaCByZXZlcnQgYW5kIG5ldyBmaXggaW4g YSBzaW5nbGUgcGF0Y2gsIHRvIGJlIG5pY2Ugd2l0aCBiaXNlY3QKICAgdGVzdHMgdGhhdCBydW4g dGRjIG9uIHUzMiBmaWx0ZXIsIHRoYW5rcyB0byBEYXZlIE1pbGxlcgoKRml4ZXM6IDI3NWM0NGFh MTk0YiAoIm5ldC9zY2hlZDogY2xzX3UzMjogZml4IHJlZmNvdW50IGxlYWsgaW4gdGhlIGVycm9y IHBhdGggb2YgdTMyX2NoYW5nZSgpIikKRml4ZXM6IDY2NzZkNWU0MTZlZSAoIm5ldDogc2NoZWQ6 IHNldCBkZWRpY2F0ZWQgdGNmX3dhbGtlciBmbGFnIHdoZW4gdHAgaXMgZW1wdHkiKQpTdWdnZXN0 ZWQtYnk6IEphbWFsIEhhZGkgU2FsaW0gPGpoc0Btb2phdGF0dS5jb20+ClN1Z2dlc3RlZC1ieTog VmxhZCBCdXNsb3YgPHZsYWRidUBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkZSBD YXJhdHRpIDxkY2FyYXR0aUByZWRoYXQuY29tPgpSZXZpZXdlZC1ieTogVmxhZCBCdXNsb3YgPHZs YWRidUBtZWxsYW5veC5jb20+ClRlc3RlZC1ieTogSmFtYWwgSGFkaSBTYWxpbSA8amhzQG1vamF0 YXR1LmNvbT4KQWNrZWQtYnk6IEphbWFsIEhhZGkgU2FsaW0gPGpoc0Btb2phdGF0dS5jb20+ClNp Z25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBp bmNsdWRlL25ldC9zY2hfZ2VuZXJpYy5oIHwgIDUgKysrKysKIG5ldC9zY2hlZC9jbHNfYXBpLmMg ICAgICAgfCAzMSArKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBuZXQvc2NoZWQvY2xz X2Zsb3dlci5jICAgIHwgMTIgKysrKysrKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDIyIGluc2Vy dGlvbnMoKyksIDI2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L3NjaF9n ZW5lcmljLmggYi9pbmNsdWRlL25ldC9zY2hfZ2VuZXJpYy5oCmluZGV4IGQ4MGFjZGEyMzFhZS4u NDdlNjE5NTYxNjhkIDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC9zY2hfZ2VuZXJpYy5oCisrKyBi L2luY2x1ZGUvbmV0L3NjaF9nZW5lcmljLmgKQEAgLTMwOCw2ICszMDgsNyBAQCBzdHJ1Y3QgdGNm X3Byb3RvX29wcyB7CiAJaW50CQkJKCpkZWxldGUpKHN0cnVjdCB0Y2ZfcHJvdG8gKnRwLCB2b2lk ICphcmcsCiAJCQkJCSAgYm9vbCAqbGFzdCwgYm9vbCBydG5sX2hlbGQsCiAJCQkJCSAgc3RydWN0 IG5ldGxpbmtfZXh0X2FjayAqKTsKKwlib29sCQkJKCpkZWxldGVfZW1wdHkpKHN0cnVjdCB0Y2Zf cHJvdG8gKnRwKTsKIAl2b2lkCQkJKCp3YWxrKShzdHJ1Y3QgdGNmX3Byb3RvICp0cCwKIAkJCQkJ c3RydWN0IHRjZl93YWxrZXIgKmFyZywgYm9vbCBydG5sX2hlbGQpOwogCWludAkJCSgqcmVvZmZs b2FkKShzdHJ1Y3QgdGNmX3Byb3RvICp0cCwgYm9vbCBhZGQsCkBAIC0zMzYsNiArMzM3LDEwIEBA IHN0cnVjdCB0Y2ZfcHJvdG9fb3BzIHsKIAlpbnQJCQlmbGFnczsKIH07CiAKKy8qIENsYXNzaWZp ZXJzIHNldHRpbmcgVENGX1BST1RPX09QU19ET0lUX1VOTE9DS0VEIGluIHRjZl9wcm90b19vcHMt PmZsYWdzCisgKiBhcmUgZXhwZWN0ZWQgdG8gaW1wbGVtZW50IHRjZl9wcm90b19vcHMtPmRlbGV0 ZV9lbXB0eSgpLCBvdGhlcndpc2UgcmFjZQorICogY29uZGl0aW9ucyBjYW4gb2NjdXIgd2hlbiBm aWx0ZXJzIGFyZSBpbnNlcnRlZC9kZWxldGVkIHNpbXVsdGFuZW91c2x5LgorICovCiBlbnVtIHRj Zl9wcm90b19vcHNfZmxhZ3MgewogCVRDRl9QUk9UT19PUFNfRE9JVF9VTkxPQ0tFRCA9IDEsCiB9 OwpkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL2Nsc19hcGkuYyBiL25ldC9zY2hlZC9jbHNfYXBpLmMK aW5kZXggNmEwZWFjYWZkYjE5Li43NmUwZDEyMjYxNmEgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9j bHNfYXBpLmMKKysrIGIvbmV0L3NjaGVkL2Nsc19hcGkuYwpAQCAtMzA4LDMzICszMDgsMTIgQEAg c3RhdGljIHZvaWQgdGNmX3Byb3RvX3B1dChzdHJ1Y3QgdGNmX3Byb3RvICp0cCwgYm9vbCBydG5s X2hlbGQsCiAJCXRjZl9wcm90b19kZXN0cm95KHRwLCBydG5sX2hlbGQsIHRydWUsIGV4dGFjayk7 CiB9CiAKLXN0YXRpYyBpbnQgd2Fsa2VyX2NoZWNrX2VtcHR5KHN0cnVjdCB0Y2ZfcHJvdG8gKnRw LCB2b2lkICpmaCwKLQkJCSAgICAgIHN0cnVjdCB0Y2Zfd2Fsa2VyICphcmcpCitzdGF0aWMgYm9v bCB0Y2ZfcHJvdG9fY2hlY2tfZGVsZXRlKHN0cnVjdCB0Y2ZfcHJvdG8gKnRwKQogewotCWlmIChm aCkgewotCQlhcmctPm5vbmVtcHR5ID0gdHJ1ZTsKLQkJcmV0dXJuIC0xOwotCX0KLQlyZXR1cm4g MDsKLX0KLQotc3RhdGljIGJvb2wgdGNmX3Byb3RvX2lzX2VtcHR5KHN0cnVjdCB0Y2ZfcHJvdG8g KnRwLCBib29sIHJ0bmxfaGVsZCkKLXsKLQlzdHJ1Y3QgdGNmX3dhbGtlciB3YWxrZXIgPSB7IC5m biA9IHdhbGtlcl9jaGVja19lbXB0eSwgfTsKLQotCWlmICh0cC0+b3BzLT53YWxrKSB7Ci0JCXRw LT5vcHMtPndhbGsodHAsICZ3YWxrZXIsIHJ0bmxfaGVsZCk7Ci0JCXJldHVybiAhd2Fsa2VyLm5v bmVtcHR5OwotCX0KLQlyZXR1cm4gdHJ1ZTsKLX0KKwlpZiAodHAtPm9wcy0+ZGVsZXRlX2VtcHR5 KQorCQlyZXR1cm4gdHAtPm9wcy0+ZGVsZXRlX2VtcHR5KHRwKTsKIAotc3RhdGljIGJvb2wgdGNm X3Byb3RvX2NoZWNrX2RlbGV0ZShzdHJ1Y3QgdGNmX3Byb3RvICp0cCwgYm9vbCBydG5sX2hlbGQp Ci17Ci0Jc3Bpbl9sb2NrKCZ0cC0+bG9jayk7Ci0JaWYgKHRjZl9wcm90b19pc19lbXB0eSh0cCwg cnRubF9oZWxkKSkKLQkJdHAtPmRlbGV0aW5nID0gdHJ1ZTsKLQlzcGluX3VubG9jaygmdHAtPmxv Y2spOworCXRwLT5kZWxldGluZyA9IHRydWU7CiAJcmV0dXJuIHRwLT5kZWxldGluZzsKIH0KIApA QCAtMTc1MSw3ICsxNzMwLDcgQEAgc3RhdGljIHZvaWQgdGNmX2NoYWluX3RwX2RlbGV0ZV9lbXB0 eShzdHJ1Y3QgdGNmX2NoYWluICpjaGFpbiwKIAkgKiBjb25jdXJyZW50bHkuCiAJICogTWFyayB0 cCBmb3IgZGVsZXRpb24gaWYgaXQgaXMgZW1wdHkuCiAJICovCi0JaWYgKCF0cF9pdGVyIHx8ICF0 Y2ZfcHJvdG9fY2hlY2tfZGVsZXRlKHRwLCBydG5sX2hlbGQpKSB7CisJaWYgKCF0cF9pdGVyIHx8 ICF0Y2ZfcHJvdG9fY2hlY2tfZGVsZXRlKHRwKSkgewogCQltdXRleF91bmxvY2soJmNoYWluLT5m aWx0ZXJfY2hhaW5fbG9jayk7CiAJCXJldHVybjsKIAl9CmRpZmYgLS1naXQgYS9uZXQvc2NoZWQv Y2xzX2Zsb3dlci5jIGIvbmV0L3NjaGVkL2Nsc19mbG93ZXIuYwppbmRleCA0YWMxMTBiZjE5YzUu LjVjZjgxNjM3MTBjOCAxMDA2NDQKLS0tIGEvbmV0L3NjaGVkL2Nsc19mbG93ZXIuYworKysgYi9u ZXQvc2NoZWQvY2xzX2Zsb3dlci5jCkBAIC0yNTE5LDYgKzI1MTksMTcgQEAgc3RhdGljIHZvaWQg ZmxfYmluZF9jbGFzcyh2b2lkICpmaCwgdTMyIGNsYXNzaWQsIHVuc2lnbmVkIGxvbmcgY2wpCiAJ CWYtPnJlcy5jbGFzcyA9IGNsOwogfQogCitzdGF0aWMgYm9vbCBmbF9kZWxldGVfZW1wdHkoc3Ry dWN0IHRjZl9wcm90byAqdHApCit7CisJc3RydWN0IGNsc19mbF9oZWFkICpoZWFkID0gZmxfaGVh ZF9kZXJlZmVyZW5jZSh0cCk7CisKKwlzcGluX2xvY2soJnRwLT5sb2NrKTsKKwl0cC0+ZGVsZXRp bmcgPSBpZHJfaXNfZW1wdHkoJmhlYWQtPmhhbmRsZV9pZHIpOworCXNwaW5fdW5sb2NrKCZ0cC0+ bG9jayk7CisKKwlyZXR1cm4gdHAtPmRlbGV0aW5nOworfQorCiBzdGF0aWMgc3RydWN0IHRjZl9w cm90b19vcHMgY2xzX2ZsX29wcyBfX3JlYWRfbW9zdGx5ID0gewogCS5raW5kCQk9ICJmbG93ZXIi LAogCS5jbGFzc2lmeQk9IGZsX2NsYXNzaWZ5LApAQCAtMjUyOCw2ICsyNTM5LDcgQEAgc3RhdGlj IHN0cnVjdCB0Y2ZfcHJvdG9fb3BzIGNsc19mbF9vcHMgX19yZWFkX21vc3RseSA9IHsKIAkucHV0 CQk9IGZsX3B1dCwKIAkuY2hhbmdlCQk9IGZsX2NoYW5nZSwKIAkuZGVsZXRlCQk9IGZsX2RlbGV0 ZSwKKwkuZGVsZXRlX2VtcHR5CT0gZmxfZGVsZXRlX2VtcHR5LAogCS53YWxrCQk9IGZsX3dhbGss CiAJLnJlb2ZmbG9hZAk9IGZsX3Jlb2ZmbG9hZCwKIAkuaHdfYWRkCQk9IGZsX2h3X2FkZCwKLS0g CjIuMjAuMQoKCkZyb20gOWM5YzFlNzA4MTMyMGIzYTJjZmU1YjE4MWY3ZGVjOWE0ZjRkOGNlNSBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29n bGUuY29tPgpEYXRlOiBNb24sIDIzIERlYyAyMDE5IDExOjEzOjI0IC0wODAwClN1YmplY3Q6IFtQ QVRDSCAwNy80Nl0gbmV0X3NjaGVkOiBzY2hfZnE6IHByb3Blcmx5IHNldCBzay0+c2tfcGFjaW5n X3N0YXR1cwoKWyBVcHN0cmVhbSBjb21taXQgYmIzZDBiOGJmNWJlNjFhYjFkNmY0NzJjNDNjYmYz NGRlMTdlNzk2YiBdCgpJZiBmcV9jbGFzc2lmeSgpIHJlY3ljbGVzIGEgc3RydWN0IGZxX2Zsb3cg YmVjYXVzZQphIHNvY2tldCBzdHJ1Y3R1cmUgaGFzIGJlZW4gcmVhbGxvY2F0ZWQsIHdlIGRvIG5v dApzZXQgc2stPnNrX3BhY2luZ19zdGF0dXMgaW1tZWRpYXRlbHksIGJ1dCBsYXRlciBpZiB0aGUK ZmxvdyBiZWNvbWVzIGRldGFjaGVkLgoKVGhpcyBtZWFucyB0aGF0IGFueSBmbG93IHJlcXVpcmlu ZyBwYWNpbmcgKEJCUiwgb3IgU09fTUFYX1BBQ0lOR19SQVRFKQptaWdodCBmYWxsYmFjayB0byBU Q1AgaW50ZXJuYWwgcGFjaW5nLCB3aGljaCByZXF1aXJlcyBhIHBlci1zb2NrZXQKaGlnaCByZXNv bHV0aW9uIHRpbWVyLCBhbmQgdGhlcmVmb3JlIG1vcmUgY3B1IGN5Y2xlcy4KCkZpeGVzOiAyMThh ZjU5OWZhNjMgKCJ0Y3A6IGludGVybmFsIGltcGxlbWVudGF0aW9uIGZvciBwYWNpbmciKQpTaWdu ZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkNjOiBTb2hlaWwg SGFzc2FzIFllZ2FuZWggPHNvaGVpbEBnb29nbGUuY29tPgpDYzogTmVhbCBDYXJkd2VsbCA8bmNh cmR3ZWxsQGdvb2dsZS5jb20+CkFja2VkLWJ5OiBTb2hlaWwgSGFzc2FzIFllZ2FuZWggPHNvaGVp bEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVt bG9mdC5uZXQ+Ci0tLQogbmV0L3NjaGVkL3NjaF9mcS5jIHwgMTcgKysrKysrKystLS0tLS0tLS0K IDEgZmlsZSBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvbmV0L3NjaGVkL3NjaF9mcS5jIGIvbmV0L3NjaGVkL3NjaF9mcS5jCmluZGV4IDk4ZGQ4 N2NlMTUxMC4uNzhlY2RmMTQ2ODgyIDEwMDY0NAotLS0gYS9uZXQvc2NoZWQvc2NoX2ZxLmMKKysr IGIvbmV0L3NjaGVkL3NjaF9mcS5jCkBAIC0zMDEsNiArMzAxLDkgQEAgc3RhdGljIHN0cnVjdCBm cV9mbG93ICpmcV9jbGFzc2lmeShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZnFfc2NoZWRf ZGF0YSAqcSkKIAkJCQkgICAgIGYtPnNvY2tldF9oYXNoICE9IHNrLT5za19oYXNoKSkgewogCQkJ CWYtPmNyZWRpdCA9IHEtPmluaXRpYWxfcXVhbnR1bTsKIAkJCQlmLT5zb2NrZXRfaGFzaCA9IHNr LT5za19oYXNoOworCQkJCWlmIChxLT5yYXRlX2VuYWJsZSkKKwkJCQkJc21wX3N0b3JlX3JlbGVh c2UoJnNrLT5za19wYWNpbmdfc3RhdHVzLAorCQkJCQkJCSAgU0tfUEFDSU5HX0ZRKTsKIAkJCQlp ZiAoZnFfZmxvd19pc190aHJvdHRsZWQoZikpCiAJCQkJCWZxX2Zsb3dfdW5zZXRfdGhyb3R0bGVk KHEsIGYpOwogCQkJCWYtPnRpbWVfbmV4dF9wYWNrZXQgPSAwVUxMOwpAQCAtMzIyLDggKzMyNSwx MiBAQCBzdGF0aWMgc3RydWN0IGZxX2Zsb3cgKmZxX2NsYXNzaWZ5KHN0cnVjdCBza19idWZmICpz a2IsIHN0cnVjdCBmcV9zY2hlZF9kYXRhICpxKQogCiAJZnFfZmxvd19zZXRfZGV0YWNoZWQoZik7 CiAJZi0+c2sgPSBzazsKLQlpZiAoc2tiLT5zayA9PSBzaykKKwlpZiAoc2tiLT5zayA9PSBzaykg ewogCQlmLT5zb2NrZXRfaGFzaCA9IHNrLT5za19oYXNoOworCQlpZiAocS0+cmF0ZV9lbmFibGUp CisJCQlzbXBfc3RvcmVfcmVsZWFzZSgmc2stPnNrX3BhY2luZ19zdGF0dXMsCisJCQkJCSAgU0tf UEFDSU5HX0ZRKTsKKwl9CiAJZi0+Y3JlZGl0ID0gcS0+aW5pdGlhbF9xdWFudHVtOwogCiAJcmJf bGlua19ub2RlKCZmLT5mcV9ub2RlLCBwYXJlbnQsIHApOwpAQCAtNDI4LDE3ICs0MzUsOSBAQCBz dGF0aWMgaW50IGZxX2VucXVldWUoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IFFkaXNjICpz Y2gsCiAJZi0+cWxlbisrOwogCXFkaXNjX3FzdGF0c19iYWNrbG9nX2luYyhzY2gsIHNrYik7CiAJ aWYgKGZxX2Zsb3dfaXNfZGV0YWNoZWQoZikpIHsKLQkJc3RydWN0IHNvY2sgKnNrID0gc2tiLT5z azsKLQogCQlmcV9mbG93X2FkZF90YWlsKCZxLT5uZXdfZmxvd3MsIGYpOwogCQlpZiAodGltZV9h ZnRlcihqaWZmaWVzLCBmLT5hZ2UgKyBxLT5mbG93X3JlZmlsbF9kZWxheSkpCiAJCQlmLT5jcmVk aXQgPSBtYXhfdCh1MzIsIGYtPmNyZWRpdCwgcS0+cXVhbnR1bSk7Ci0JCWlmIChzayAmJiBxLT5y YXRlX2VuYWJsZSkgewotCQkJaWYgKHVubGlrZWx5KHNtcF9sb2FkX2FjcXVpcmUoJnNrLT5za19w YWNpbmdfc3RhdHVzKSAhPQotCQkJCSAgICAgU0tfUEFDSU5HX0ZRKSkKLQkJCQlzbXBfc3RvcmVf cmVsZWFzZSgmc2stPnNrX3BhY2luZ19zdGF0dXMsCi0JCQkJCQkgIFNLX1BBQ0lOR19GUSk7Ci0J CX0KIAkJcS0+aW5hY3RpdmVfZmxvd3MtLTsKIAl9CiAKLS0gCjIuMjAuMQoKCkZyb20gM2VlZWQx OGNlMTg3OWQwNTQwYjE1NDlhNTlhZWRmZTI0YzdiNjZlMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogTWFydGluIEJsdW1lbnN0aW5nbCA8bWFydGluLmJsdW1lbnN0aW5nbEBnb29nbGVt YWlsLmNvbT4KRGF0ZTogVGh1LCAyNiBEZWMgMjAxOSAyMDowMTowMSArMDEwMApTdWJqZWN0OiBb UEFUQ0ggMDgvNDZdIG5ldDogc3RtbWFjOiBkd21hYy1tZXNvbjhiOiBGaXggdGhlIFJHTUlJIFRY IGRlbGF5IG9uCiBNZXNvbjhiLzhtMiBTb0NzCgpbIFVwc3RyZWFtIGNvbW1pdCBiZDZmNDg1NDZi OWNiN2E3ODUzNDRmYzc4MDU4YzQyMDkyM2Q3ZWQ4IF0KCkdYQkIgYW5kIG5ld2VyIFNvQ3MgdXNl IHRoZSBmaXhlZCBGQ0xLX0RJVjIgKDFHSHopIGNsb2NrIGFzIGlucHV0IGZvcgp0aGUgbTI1MF9z ZWwgY2xvY2suIE1lc29uOGIgYW5kIE1lc29uOG0yIHVzZSBNUExMMiBpbnN0ZWFkLCB3aG9zZSBy YXRlCmNhbiBiZSBhZGp1c3RlZCBhdCBydW50aW1lLgoKU28gZmFyIHdlIGhhdmUgYmVlbiBydW5u aW5nIE1QTEwyIHdpdGggfjI1ME1IeiAoYW5kIHRoZSBpbnRlcm5hbAptMjUwX2RpdiB3aXRoIHZh bHVlIDEpLCB3aGljaCB3b3JrZWQgZW5vdWdoIHRoYXQgd2UgY291bGQgdHJhbnNmZXIgZGF0YQp3 aXRoIGFuIFRYIGRlbGF5IG9mIDRucy4gVW5mb3J0dW5hdGVseSB0aGVyZSBpcyBoaWdoIHBhY2tl dCBsb3NzIHdpdGgKYW4gUkdNSUkgUEhZIHdoZW4gdHJhbnNmZXJyaW5nIGRhdGEgKHJlY2Vpdmlu ZyBkYXRhIHdvcmtzIGZpbmUgdGhvdWdoKS4KT2Ryb2lkLUMxJ3MgdS1ib290IGlzIHJ1bm5pbmcg d2l0aCBhIFRYIGRlbGF5IG9mIG9ubHkgMm5zIGFzIHdlbGwgYXMKdGhlIGludGVybmFsIG0yNTBf ZGl2IHNldCB0byAyIC0gbm8gbG9zdCAoVFgpIHBhY2tldHMgY2FuIGJlIG9ic2VydmVkCndpdGgg dGhhdCBzZXR0aW5nIGluIHUtYm9vdC4KCk1hbnVhbCB0ZXN0aW5nIGhhcyBzaG93biB0aGF0IHRo ZSBUWCBwYWNrZXQgbG9zcyBnb2VzIGF3YXkgd2hlbiB1c2luZwp0aGUgZm9sbG93aW5nIHNldHRp bmdzIGluIExpbnV4ICh0aGUgdmVuZG9yIGtlcm5lbCB1c2VzIHRoZSBzYW1lCnNldHRpbmdzKToK LSBNUExMMiBjbG9jayBzZXQgdG8gfjUwME1IegotIG0yNTBfZGl2IHNldCB0byAyCi0gVFggZGVs YXkgc2V0IHRvIDJucyBvbiB0aGUgTUFDIHNpZGUKClVwZGF0ZSB0aGUgbTI1MF9kaXYgZGl2aWRl ciBzZXR0aW5ncyB0byBvbmx5IGFjY2VwdCBkaXZpZGVycyBncmVhdGVyIG9yCmVxdWFsIDIgdG8g Zml4IHRoZSBUWCBkZWxheSBnZW5lcmF0ZWQgYnkgdGhlIE1BQy4KCmlwZXJmMyByZXN1bHRzIGJl Zm9yZSB0aGUgY2hhbmdlOgpbIElEXSBJbnRlcnZhbCAgICAgICAgICAgVHJhbnNmZXIgICAgIEJp dHJhdGUgICAgICAgICBSZXRyClsgIDVdICAgMC4wMC0xMC4wMCAgc2VjICAgMTgyIE1CeXRlcyAg IDE1MyBNYml0cy9zZWMgIDUxNCAgICAgIHNlbmRlcgpbICA1XSAgIDAuMDAtMTAuMDAgIHNlYyAg IDE4MiBNQnl0ZXMgICAxNTIgTWJpdHMvc2VjICAgICAgICAgICByZWNlaXZlcgoKaXBlcmYzIHJl c3VsdHMgYWZ0ZXIgdGhlIGNoYW5nZSAoaW5jbHVkaW5nIGFuIHVwZGF0ZWQgVFggZGVsYXkgb2Yg Mm5zKToKWyBJRF0gSW50ZXJ2YWwgICAgICAgICAgIFRyYW5zZmVyICAgICBCaXRyYXRlICAgICAg ICAgUmV0ciAgQ3duZApbICA1XSAgIDAuMDAtMTAuMDAgIHNlYyAgIDkyNyBNQnl0ZXMgICA3Nzgg TWJpdHMvc2VjICAgIDAgICAgICBzZW5kZXIKWyAgNV0gICAwLjAwLTEwLjAxICBzZWMgICA5Mjcg TUJ5dGVzICAgNzc3IE1iaXRzL3NlYyAgICAgICAgICAgcmVjZWl2ZXIKCkZpeGVzOiA0ZjZhNzFi ODRlMWFmZCAoIm5ldDogc3RtbWFjOiBkd21hYy1tZXNvbjhiOiBmaXggaW50ZXJuYWwgUkdNSUkg Y2xvY2sgY29uZmlndXJhdGlvbiIpClNpZ25lZC1vZmYtYnk6IE1hcnRpbiBCbHVtZW5zdGluZ2wg PG1hcnRpbi5ibHVtZW5zdGluZ2xAZ29vZ2xlbWFpbC5jb20+ClJldmlld2VkLWJ5OiBBbmRyZXcg THVubiA8YW5kcmV3QGx1bm4uY2g+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2 ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiAuLi4vbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3 bWFjLW1lc29uOGIuYyAgICB8IDE0ICsrKysrKysrKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTEg aW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9l dGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tZXNvbjhiLmMgYi9kcml2ZXJzL25ldC9ldGhl cm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tZXNvbjhiLmMKaW5kZXggMzA2ZGE4ZjZiN2Q1Li4z M2NlMTM5ZjA5MGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3Rt bWFjL2R3bWFjLW1lc29uOGIuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0 bW1hYy9kd21hYy1tZXNvbjhiLmMKQEAgLTExMiw2ICsxMTIsMTQgQEAgc3RhdGljIGludCBtZXNv bjhiX2luaXRfcmdtaWlfdHhfY2xrKHN0cnVjdCBtZXNvbjhiX2R3bWFjICpkd21hYykKIAlzdHJ1 Y3QgZGV2aWNlICpkZXYgPSBkd21hYy0+ZGV2OwogCWNvbnN0IGNoYXIgKnBhcmVudF9uYW1lLCAq bXV4X3BhcmVudF9uYW1lc1tNVVhfQ0xLX05VTV9QQVJFTlRTXTsKIAlzdHJ1Y3QgbWVzb244Yl9k d21hY19jbGtfY29uZmlncyAqY2xrX2NvbmZpZ3M7CisJc3RhdGljIGNvbnN0IHN0cnVjdCBjbGtf ZGl2X3RhYmxlIGRpdl90YWJsZVtdID0geworCQl7IC5kaXYgPSAyLCAudmFsID0gMiwgfSwKKwkJ eyAuZGl2ID0gMywgLnZhbCA9IDMsIH0sCisJCXsgLmRpdiA9IDQsIC52YWwgPSA0LCB9LAorCQl7 IC5kaXYgPSA1LCAudmFsID0gNSwgfSwKKwkJeyAuZGl2ID0gNiwgLnZhbCA9IDYsIH0sCisJCXsg LmRpdiA9IDcsIC52YWwgPSA3LCB9LAorCX07CiAKIAljbGtfY29uZmlncyA9IGRldm1fa3phbGxv YyhkZXYsIHNpemVvZigqY2xrX2NvbmZpZ3MpLCBHRlBfS0VSTkVMKTsKIAlpZiAoIWNsa19jb25m aWdzKQpAQCAtMTQ2LDkgKzE1NCw5IEBAIHN0YXRpYyBpbnQgbWVzb244Yl9pbml0X3JnbWlpX3R4 X2NsayhzdHJ1Y3QgbWVzb244Yl9kd21hYyAqZHdtYWMpCiAJY2xrX2NvbmZpZ3MtPm0yNTBfZGl2 LnJlZyA9IGR3bWFjLT5yZWdzICsgUFJHX0VUSDA7CiAJY2xrX2NvbmZpZ3MtPm0yNTBfZGl2LnNo aWZ0ID0gUFJHX0VUSDBfQ0xLX00yNTBfRElWX1NISUZUOwogCWNsa19jb25maWdzLT5tMjUwX2Rp di53aWR0aCA9IFBSR19FVEgwX0NMS19NMjUwX0RJVl9XSURUSDsKLQljbGtfY29uZmlncy0+bTI1 MF9kaXYuZmxhZ3MgPSBDTEtfRElWSURFUl9PTkVfQkFTRUQgfAotCQkJCUNMS19ESVZJREVSX0FM TE9XX1pFUk8gfAotCQkJCUNMS19ESVZJREVSX1JPVU5EX0NMT1NFU1Q7CisJY2xrX2NvbmZpZ3Mt Pm0yNTBfZGl2LnRhYmxlID0gZGl2X3RhYmxlOworCWNsa19jb25maWdzLT5tMjUwX2Rpdi5mbGFn cyA9IENMS19ESVZJREVSX0FMTE9XX1pFUk8gfAorCQkJCSAgICAgIENMS19ESVZJREVSX1JPVU5E X0NMT1NFU1Q7CiAJY2xrID0gbWVzb244Yl9kd21hY19yZWdpc3Rlcl9jbGsoZHdtYWMsICJtMjUw X2RpdiIsICZwYXJlbnRfbmFtZSwgMSwKIAkJCQkJICZjbGtfZGl2aWRlcl9vcHMsCiAJCQkJCSAm Y2xrX2NvbmZpZ3MtPm0yNTBfZGl2Lmh3KTsKLS0gCjIuMjAuMQoKCkZyb20gMzJiODhjZTk0ODIw YzZkMGU0NWQ3ZmFlOWI3NTlmYTc1ZjU2ODJmNyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogVmxhZGlzIERyb25vdiA8dmRyb25vdkByZWRoYXQuY29tPgpEYXRlOiBGcmksIDI3IERlYyAy MDE5IDAzOjI2OjI3ICswMTAwClN1YmplY3Q6IFtQQVRDSCAwOS80Nl0gcHRwOiBmaXggdGhlIHJh Y2UgYmV0d2VlbiB0aGUgcmVsZWFzZSBvZiBwdHBfY2xvY2sgYW5kCiBjZGV2CgpbIFVwc3RyZWFt IGNvbW1pdCBhMzMxMjFlNTQ4N2I0MjQzMzk2MzZiMjVjMzVkM2ExODBlYWE1ZjVlIF0KCkluIGEg Y2FzZSB3aGVuIGEgcHRwIGNoYXJkZXYgKGxpa2UgL2Rldi9wdHAwKSBpcyBvcGVuIGJ1dCBhbiB1 bmRlcmx5aW5nCmRldmljZSBpcyByZW1vdmVkLCBjbG9zaW5nIHRoaXMgZmlsZSBsZWFkcyB0byBh IHJhY2UuIFRoaXMgcmVwcm9kdWNlcwplYXNpbHkgaW4gYSBrdm0gdmlydHVhbCBtYWNoaW5lOgoK dHMjIGNhdCBvcGVucHRwMC5jCmludCBtYWluKCkgeyAuLi4gZnAgPSBmb3BlbigiL2Rldi9wdHAw IiwgInIiKTsgLi4uIHNsZWVwKDEwKTsgfQp0cyMgdW5hbWUgLXIKNS41LjAtcmMzLTQ2Y2YwNTNl CnRzIyBjYXQgL3Byb2MvY21kbGluZQouLi4gc2x1Yl9kZWJ1Zz1GWlAKdHMjIG1vZHByb2JlIHB0 cF9rdm0KdHMjIC4vb3BlbnB0cDAgJgpbMV0gNjcwCm9wZW5lZCAvZGV2L3B0cDAsIHNsZWVwaW5n IDEwcy4uLgp0cyMgcm1tb2QgcHRwX2t2bQp0cyMgbHMgL2Rldi9wdHAqCmxzOiBjYW5ub3QgYWNj ZXNzICcvZGV2L3B0cConOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CnRzIyAuLi53b2tlbiB1 cApbICAgNDguMDEwODA5XSBnZW5lcmFsIHByb3RlY3Rpb24gZmF1bHQ6IDAwMDAgWyMxXSBTTVAK WyAgIDQ4LjAxMjUwMl0gQ1BVOiA2IFBJRDogNjU4IENvbW06IG9wZW5wdHAwIE5vdCB0YWludGVk IDUuNS4wLXJjMy00NmNmMDUzZSAjMjUKWyAgIDQ4LjAxNDYyNF0gSGFyZHdhcmUgbmFtZTogUUVN VSBTdGFuZGFyZCBQQyAoaTQ0MEZYICsgUElJWCwgMTk5NiksIC4uLgpbICAgNDguMDE2MjcwXSBS SVA6IDAwMTA6bW9kdWxlX3B1dC5wYXJ0LjArMHg3LzB4ODAKWyAgIDQ4LjAxNzkzOV0gUlNQOiAw MDE4OmZmZmZiMzg1MDA3M2JlMDAgRUZMQUdTOiAwMDAxMDIwMgpbICAgNDguMDE4MzM5XSBSQVg6 IDAwMDAwMDAwNmI2YjZiNmIgUkJYOiA2YjZiNmI2YjZiNmI2YjZiIFJDWDogZmZmZjg5YTQ3NmMw MGFkMApbICAgNDguMDE4OTM2XSBSRFg6IGZmZmZmNjVhMDhkM2VhMDggUlNJOiAwMDAwMDAwMDAw MDAwMjQ3IFJESTogNmI2YjZiNmI2YjZiNmI2YgpbICAgNDguMDE5NDcwXSAuLi4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXl5eIGEgc2x1YiBwb2lzb24KWyAg IDQ4LjAyMzg1NF0gQ2FsbCBUcmFjZToKWyAgIDQ4LjAyNDA1MF0gIF9fZnB1dCsweDIxZi8weDI0 MApbICAgNDguMDI0Mjg4XSAgdGFza193b3JrX3J1bisweDc5LzB4OTAKWyAgIDQ4LjAyNDU1NV0g IGRvX2V4aXQrMHgyYWYvMHhhYjAKWyAgIDQ4LjAyNDc5OV0gID8gdmZzX3dyaXRlKzB4MTZhLzB4 MTkwClsgICA0OC4wMjUwODJdICBkb19ncm91cF9leGl0KzB4MzUvMHg5MApbICAgNDguMDI1Mzg3 XSAgX194NjRfc3lzX2V4aXRfZ3JvdXArMHhmLzB4MTAKWyAgIDQ4LjAyNTczN10gIGRvX3N5c2Nh bGxfNjQrMHgzZC8weDEzMApbICAgNDguMDI2MDU2XSAgZW50cnlfU1lTQ0FMTF82NF9hZnRlcl9o d2ZyYW1lKzB4NDQvMHhhOQpbICAgNDguMDI2NDc5XSBSSVA6IDAwMzM6MHg3ZjUzYjEyMDgyZjYK WyAgIDQ4LjAyNjc5Ml0gLi4uClsgICA0OC4wMzA5NDVdIE1vZHVsZXMgbGlua2VkIGluOiBwdHAg aTYzMDBlc2Igd2F0Y2hkb2cgW2xhc3QgdW5sb2FkZWQ6IHB0cF9rdm1dClsgICA0OC4wNDUwMDFd IEZpeGluZyByZWN1cnNpdmUgZmF1bHQgYnV0IHJlYm9vdCBpcyBuZWVkZWQhCgpUaGlzIGhhcHBl bnMgaW46CgpzdGF0aWMgdm9pZCBfX2ZwdXQoc3RydWN0IGZpbGUgKmZpbGUpCnsgICAuLi4KICAg IGlmIChmaWxlLT5mX29wLT5yZWxlYXNlKQogICAgICAgIGZpbGUtPmZfb3AtPnJlbGVhc2UoaW5v ZGUsIGZpbGUpOyA8PDwgY2RldiBpcyBrZnJlZSdkIGhlcmUKICAgIGlmICh1bmxpa2VseShTX0lT Q0hSKGlub2RlLT5pX21vZGUpICYmIGlub2RlLT5pX2NkZXYgIT0gTlVMTCAmJgogICAgICAgICAg ICAgIShtb2RlICYgRk1PREVfUEFUSCkpKSB7CiAgICAgICAgY2Rldl9wdXQoaW5vZGUtPmlfY2Rl dik7IDw8PCBjZGV2IGZpZWxkcyBhcmUgYWNjZXNzZWQgaGVyZQoKTmFtZWx5OgoKX19mcHV0KCkK ICBwb3NpeF9jbG9ja19yZWxlYXNlKCkKICAgIGtyZWZfcHV0KCZjbGstPmtyZWYsIGRlbGV0ZV9j bG9jaykgPDw8IHRoZSBsYXN0IHJlZmVyZW5jZQogICAgICBkZWxldGVfY2xvY2soKQogICAgICAg IGRlbGV0ZV9wdHBfY2xvY2soKQogICAgICAgICAga2ZyZWUocHRwKSA8PDwgY2RldiBpcyBlbWJl ZGRlZCBpbiBwdHAKICBjZGV2X3B1dAogICAgbW9kdWxlX3B1dChwLT5vd25lcikgPDw8ICpwIGlz IGtmcmVlJ2QsIGJhbmchCgpIZXJlIGNkZXYgaXMgZW1iZWRkZWQgaW4gcG9zaXhfY2xvY2sgd2hp Y2ggaXMgZW1iZWRkZWQgaW4gcHRwX2Nsb2NrLgpUaGUgcmFjZSBoYXBwZW5zIGJlY2F1c2UgcHRw X2Nsb2NrJ3MgbGlmZXRpbWUgaXMgY29udHJvbGxlZCBieSB0d28KcmVmY291bnRzOiBrcmVmIGFu ZCBjZGV2LmtvYmogaW4gcG9zaXhfY2xvY2suIFRoaXMgaXMgd3JvbmcuCgpNYWtlIHB0cF9jbG9j aydzIHN5c2ZzIGRldmljZSBhIHBhcmVudCBvZiBjZGV2IHdpdGggY2Rldl9kZXZpY2VfYWRkKCkK Y3JlYXRlZCBlc3BlY2lhbGx5IGZvciBzdWNoIGNhc2VzLiBUaGlzIHdheSB0aGUgcGFyZW50IGRl dmljZSB3aXRoIGl0cwpwdHBfY2xvY2sgaXMgbm90IHJlbGVhc2VkIHVudGlsIGFsbCByZWZlcmVu Y2VzIHRvIHRoZSBjZGV2IGFyZSByZWxlYXNlZC4KVGhpcyBhZGRzIGEgcmVxdWlyZW1lbnQgdGhh dCBhbiBpbml0aWFsaXplZCBidXQgbm90IGV4cG9zZWQgc3RydWN0CmRldmljZSBzaG91bGQgYmUg cHJvdmlkZWQgdG8gcG9zaXhfY2xvY2tfcmVnaXN0ZXIoKSBieSBhIGNhbGxlciBpbnN0ZWFkCm9m IGEgc2ltcGxlIGRldl90LgoKVGhpcyBhcHByb2FjaCB3YXMgYWRvcHRlZCBmcm9tIHRoZSBjb21t aXQgNzIxMzlkZmEyNDY0ICgid2F0Y2hkb2c6IEZpeAp0aGUgcmFjZSBiZXR3ZWVuIHRoZSByZWxl YXNlIG9mIHdhdGNoZG9nX2NvcmVfZGF0YSBhbmQgY2RldiIpLiBTZWUKZGV0YWlscyBvZiB0aGUg aW1wbGVtZW50YXRpb24gaW4gdGhlIGNvbW1pdCAyMzNlZDA5ZDdmZGEgKCJjaGFyZGV2OiBhZGQK aGVscGVyIGZ1bmN0aW9uIHRvIHJlZ2lzdGVyIGNoYXIgZGV2cyB3aXRoIGEgc3RydWN0IGRldmlj ZSIpLgoKTGluazogaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvbGludXgtZnNkZXZlbC8yMDE5MTEy NTEyNTM0Mi42MTg5LTEtdmRyb25vdkByZWRoYXQuY29tL1QvI3UKQW5hbHl6ZWQtYnk6IFN0ZXBo ZW4gSm9obnN0b24gPHNqb2huc3RvQHJlZGhhdC5jb20+CkFuYWx5emVkLWJ5OiBWZXJuIExvdmVq b3kgPHZsb3Zlam95QHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IFZsYWRpcyBEcm9ub3YgPHZk cm9ub3ZAcmVkaGF0LmNvbT4KQWNrZWQtYnk6IFJpY2hhcmQgQ29jaHJhbiA8cmljaGFyZGNvY2hy YW5AZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVt bG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9wdHAvcHRwX2Nsb2NrLmMgICAgIHwgMzEgKysrKysrKysr KysrKystLS0tLS0tLS0tLS0tLS0tLQogZHJpdmVycy9wdHAvcHRwX3ByaXZhdGUuaCAgIHwgIDIg Ky0KIGluY2x1ZGUvbGludXgvcG9zaXgtY2xvY2suaCB8IDE5ICsrKysrKysrKysrLS0tLS0tLS0K IGtlcm5lbC90aW1lL3Bvc2l4LWNsb2NrLmMgICB8IDMxICsrKysrKysrKysrKystLS0tLS0tLS0t LS0tLS0tLS0KIDQgZmlsZXMgY2hhbmdlZCwgMzkgaW5zZXJ0aW9ucygrKSwgNDQgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wdHAvcHRwX2Nsb2NrLmMgYi9kcml2ZXJzL3B0cC9w dHBfY2xvY2suYwppbmRleCBlNjBlYWI3ZjhhNjEuLjYxZmFmZTAzNzRjZSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9wdHAvcHRwX2Nsb2NrLmMKKysrIGIvZHJpdmVycy9wdHAvcHRwX2Nsb2NrLmMKQEAg LTE2Niw5ICsxNjYsOSBAQCBzdGF0aWMgc3RydWN0IHBvc2l4X2Nsb2NrX29wZXJhdGlvbnMgcHRw X2Nsb2NrX29wcyA9IHsKIAkucmVhZAkJPSBwdHBfcmVhZCwKIH07CiAKLXN0YXRpYyB2b2lkIGRl bGV0ZV9wdHBfY2xvY2soc3RydWN0IHBvc2l4X2Nsb2NrICpwYykKK3N0YXRpYyB2b2lkIHB0cF9j bG9ja19yZWxlYXNlKHN0cnVjdCBkZXZpY2UgKmRldikKIHsKLQlzdHJ1Y3QgcHRwX2Nsb2NrICpw dHAgPSBjb250YWluZXJfb2YocGMsIHN0cnVjdCBwdHBfY2xvY2ssIGNsb2NrKTsKKwlzdHJ1Y3Qg cHRwX2Nsb2NrICpwdHAgPSBjb250YWluZXJfb2YoZGV2LCBzdHJ1Y3QgcHRwX2Nsb2NrLCBkZXYp OwogCiAJbXV0ZXhfZGVzdHJveSgmcHRwLT50c2V2cV9tdXgpOwogCW11dGV4X2Rlc3Ryb3koJnB0 cC0+cGluY2ZnX211eCk7CkBAIC0yMTMsNyArMjEzLDYgQEAgc3RydWN0IHB0cF9jbG9jayAqcHRw X2Nsb2NrX3JlZ2lzdGVyKHN0cnVjdCBwdHBfY2xvY2tfaW5mbyAqaW5mbywKIAl9CiAKIAlwdHAt PmNsb2NrLm9wcyA9IHB0cF9jbG9ja19vcHM7Ci0JcHRwLT5jbG9jay5yZWxlYXNlID0gZGVsZXRl X3B0cF9jbG9jazsKIAlwdHAtPmluZm8gPSBpbmZvOwogCXB0cC0+ZGV2aWQgPSBNS0RFVihtYWpv ciwgaW5kZXgpOwogCXB0cC0+aW5kZXggPSBpbmRleDsKQEAgLTIzNiwxNSArMjM1LDYgQEAgc3Ry dWN0IHB0cF9jbG9jayAqcHRwX2Nsb2NrX3JlZ2lzdGVyKHN0cnVjdCBwdHBfY2xvY2tfaW5mbyAq aW5mbywKIAlpZiAoZXJyKQogCQlnb3RvIG5vX3Bpbl9ncm91cHM7CiAKLQkvKiBDcmVhdGUgYSBu ZXcgZGV2aWNlIGluIG91ciBjbGFzcy4gKi8KLQlwdHAtPmRldiA9IGRldmljZV9jcmVhdGVfd2l0 aF9ncm91cHMocHRwX2NsYXNzLCBwYXJlbnQsIHB0cC0+ZGV2aWQsCi0JCQkJCSAgICAgcHRwLCBw dHAtPnBpbl9hdHRyX2dyb3VwcywKLQkJCQkJICAgICAicHRwJWQiLCBwdHAtPmluZGV4KTsKLQlp ZiAoSVNfRVJSKHB0cC0+ZGV2KSkgewotCQllcnIgPSBQVFJfRVJSKHB0cC0+ZGV2KTsKLQkJZ290 byBub19kZXZpY2U7Ci0JfQotCiAJLyogUmVnaXN0ZXIgYSBuZXcgUFBTIHNvdXJjZS4gKi8KIAlp ZiAoaW5mby0+cHBzKSB7CiAJCXN0cnVjdCBwcHNfc291cmNlX2luZm8gcHBzOwpAQCAtMjYwLDgg KzI1MCwxOCBAQCBzdHJ1Y3QgcHRwX2Nsb2NrICpwdHBfY2xvY2tfcmVnaXN0ZXIoc3RydWN0IHB0 cF9jbG9ja19pbmZvICppbmZvLAogCQl9CiAJfQogCi0JLyogQ3JlYXRlIGEgcG9zaXggY2xvY2su ICovCi0JZXJyID0gcG9zaXhfY2xvY2tfcmVnaXN0ZXIoJnB0cC0+Y2xvY2ssIHB0cC0+ZGV2aWQp OworCS8qIEluaXRpYWxpemUgYSBuZXcgZGV2aWNlIG9mIG91ciBjbGFzcyBpbiBvdXIgY2xvY2sg c3RydWN0dXJlLiAqLworCWRldmljZV9pbml0aWFsaXplKCZwdHAtPmRldik7CisJcHRwLT5kZXYu ZGV2dCA9IHB0cC0+ZGV2aWQ7CisJcHRwLT5kZXYuY2xhc3MgPSBwdHBfY2xhc3M7CisJcHRwLT5k ZXYucGFyZW50ID0gcGFyZW50OworCXB0cC0+ZGV2Lmdyb3VwcyA9IHB0cC0+cGluX2F0dHJfZ3Jv dXBzOworCXB0cC0+ZGV2LnJlbGVhc2UgPSBwdHBfY2xvY2tfcmVsZWFzZTsKKwlkZXZfc2V0X2Ry dmRhdGEoJnB0cC0+ZGV2LCBwdHApOworCWRldl9zZXRfbmFtZSgmcHRwLT5kZXYsICJwdHAlZCIs IHB0cC0+aW5kZXgpOworCisJLyogQ3JlYXRlIGEgcG9zaXggY2xvY2sgYW5kIGxpbmsgaXQgdG8g dGhlIGRldmljZS4gKi8KKwllcnIgPSBwb3NpeF9jbG9ja19yZWdpc3RlcigmcHRwLT5jbG9jaywg JnB0cC0+ZGV2KTsKIAlpZiAoZXJyKSB7CiAJCXByX2VycigiZmFpbGVkIHRvIGNyZWF0ZSBwb3Np eCBjbG9ja1xuIik7CiAJCWdvdG8gbm9fY2xvY2s7CkBAIC0yNzMsOCArMjczLDYgQEAgc3RydWN0 IHB0cF9jbG9jayAqcHRwX2Nsb2NrX3JlZ2lzdGVyKHN0cnVjdCBwdHBfY2xvY2tfaW5mbyAqaW5m bywKIAlpZiAocHRwLT5wcHNfc291cmNlKQogCQlwcHNfdW5yZWdpc3Rlcl9zb3VyY2UocHRwLT5w cHNfc291cmNlKTsKIG5vX3BwczoKLQlkZXZpY2VfZGVzdHJveShwdHBfY2xhc3MsIHB0cC0+ZGV2 aWQpOwotbm9fZGV2aWNlOgogCXB0cF9jbGVhbnVwX3Bpbl9ncm91cHMocHRwKTsKIG5vX3Bpbl9n cm91cHM6CiAJaWYgKHB0cC0+a3dvcmtlcikKQEAgLTMwNCw3ICszMDIsNiBAQCBpbnQgcHRwX2Ns b2NrX3VucmVnaXN0ZXIoc3RydWN0IHB0cF9jbG9jayAqcHRwKQogCWlmIChwdHAtPnBwc19zb3Vy Y2UpCiAJCXBwc191bnJlZ2lzdGVyX3NvdXJjZShwdHAtPnBwc19zb3VyY2UpOwogCi0JZGV2aWNl X2Rlc3Ryb3kocHRwX2NsYXNzLCBwdHAtPmRldmlkKTsKIAlwdHBfY2xlYW51cF9waW5fZ3JvdXBz KHB0cCk7CiAKIAlwb3NpeF9jbG9ja191bnJlZ2lzdGVyKCZwdHAtPmNsb2NrKTsKZGlmZiAtLWdp dCBhL2RyaXZlcnMvcHRwL3B0cF9wcml2YXRlLmggYi9kcml2ZXJzL3B0cC9wdHBfcHJpdmF0ZS5o CmluZGV4IDkxNzFkNDI0NjhmZC4uNmI5NzE1NTE0OGYxIDEwMDY0NAotLS0gYS9kcml2ZXJzL3B0 cC9wdHBfcHJpdmF0ZS5oCisrKyBiL2RyaXZlcnMvcHRwL3B0cF9wcml2YXRlLmgKQEAgLTI4LDcg KzI4LDcgQEAgc3RydWN0IHRpbWVzdGFtcF9ldmVudF9xdWV1ZSB7CiAKIHN0cnVjdCBwdHBfY2xv Y2sgewogCXN0cnVjdCBwb3NpeF9jbG9jayBjbG9jazsKLQlzdHJ1Y3QgZGV2aWNlICpkZXY7CisJ c3RydWN0IGRldmljZSBkZXY7CiAJc3RydWN0IHB0cF9jbG9ja19pbmZvICppbmZvOwogCWRldl90 IGRldmlkOwogCWludCBpbmRleDsgLyogaW5kZXggaW50byBjbG9ja3MubWFwICovCmRpZmYgLS1n aXQgYS9pbmNsdWRlL2xpbnV4L3Bvc2l4LWNsb2NrLmggYi9pbmNsdWRlL2xpbnV4L3Bvc2l4LWNs b2NrLmgKaW5kZXggZmU2Y2ZkY2ZiYzI2Li40NjgzMjhiMWUxZGQgMTAwNjQ0Ci0tLSBhL2luY2x1 ZGUvbGludXgvcG9zaXgtY2xvY2suaAorKysgYi9pbmNsdWRlL2xpbnV4L3Bvc2l4LWNsb2NrLmgK QEAgLTY5LDI5ICs2OSwzMiBAQCBzdHJ1Y3QgcG9zaXhfY2xvY2tfb3BlcmF0aW9ucyB7CiAgKgog ICogQG9wczogICAgIEZ1bmN0aW9uYWwgaW50ZXJmYWNlIHRvIHRoZSBjbG9jawogICogQGNkZXY6 ICAgIENoYXJhY3RlciBkZXZpY2UgaW5zdGFuY2UgZm9yIHRoaXMgY2xvY2sKLSAqIEBrcmVmOiAg ICBSZWZlcmVuY2UgY291bnQuCisgKiBAZGV2OiAgICAgUG9pbnRlciB0byB0aGUgY2xvY2sncyBk ZXZpY2UuCiAgKiBAcndzZW06ICAgUHJvdGVjdHMgdGhlICd6b21iaWUnIGZpZWxkIGZyb20gY29u Y3VycmVudCBhY2Nlc3MuCiAgKiBAem9tYmllOiAgSWYgJ3pvbWJpZScgaXMgdHJ1ZSwgdGhlbiB0 aGUgaGFyZHdhcmUgaGFzIGRpc2FwcGVhcmVkLgotICogQHJlbGVhc2U6IEEgZnVuY3Rpb24gdG8g ZnJlZSB0aGUgc3RydWN0dXJlIHdoZW4gdGhlIHJlZmVyZW5jZSBjb3VudCByZWFjaGVzCi0gKiAg ICAgICAgICAgemVyby4gTWF5IGJlIE5VTEwgaWYgc3RydWN0dXJlIGlzIHN0YXRpY2FsbHkgYWxs b2NhdGVkLgogICoKICAqIERyaXZlcnMgc2hvdWxkIGVtYmVkIHRoZWlyIHN0cnVjdCBwb3NpeF9j bG9jayB3aXRoaW4gYSBwcml2YXRlCiAgKiBzdHJ1Y3R1cmUsIG9idGFpbmluZyBhIHJlZmVyZW5j ZSB0byBpdCBkdXJpbmcgY2FsbGJhY2tzIHVzaW5nCiAgKiBjb250YWluZXJfb2YoKS4KKyAqCisg KiBEcml2ZXJzIHNob3VsZCBzdXBwbHkgYW4gaW5pdGlhbGl6ZWQgYnV0IG5vdCBleHBvc2VkIHN0 cnVjdCBkZXZpY2UKKyAqIHRvIHBvc2l4X2Nsb2NrX3JlZ2lzdGVyKCkuIEl0IGlzIHVzZWQgdG8g bWFuYWdlIGxpZmV0aW1lIG9mIHRoZQorICogZHJpdmVyJ3MgcHJpdmF0ZSBzdHJ1Y3R1cmUuIEl0 J3MgJ3JlbGVhc2UnIGZpZWxkIHNob3VsZCBiZSBzZXQgdG8KKyAqIGEgcmVsZWFzZSBmdW5jdGlv biBmb3IgdGhpcyBwcml2YXRlIHN0cnVjdHVyZS4KICAqLwogc3RydWN0IHBvc2l4X2Nsb2NrIHsK IAlzdHJ1Y3QgcG9zaXhfY2xvY2tfb3BlcmF0aW9ucyBvcHM7CiAJc3RydWN0IGNkZXYgY2RldjsK LQlzdHJ1Y3Qga3JlZiBrcmVmOworCXN0cnVjdCBkZXZpY2UgKmRldjsKIAlzdHJ1Y3Qgcndfc2Vt YXBob3JlIHJ3c2VtOwogCWJvb2wgem9tYmllOwotCXZvaWQgKCpyZWxlYXNlKShzdHJ1Y3QgcG9z aXhfY2xvY2sgKmNsayk7CiB9OwogCiAvKioKICAqIHBvc2l4X2Nsb2NrX3JlZ2lzdGVyKCkgLSBy ZWdpc3RlciBhIG5ldyBjbG9jawotICogQGNsazogICBQb2ludGVyIHRvIHRoZSBjbG9jay4gQ2Fs bGVyIG11c3QgcHJvdmlkZSAnb3BzJyBhbmQgJ3JlbGVhc2UnCi0gKiBAZGV2aWQ6IEFsbG9jYXRl ZCBkZXZpY2UgaWQKKyAqIEBjbGs6ICAgUG9pbnRlciB0byB0aGUgY2xvY2suIENhbGxlciBtdXN0 IHByb3ZpZGUgJ29wcycgZmllbGQKKyAqIEBkZXY6ICAgUG9pbnRlciB0byB0aGUgaW5pdGlhbGl6 ZWQgZGV2aWNlLiBDYWxsZXIgbXVzdCBwcm92aWRlCisgKiAgICAgICAgICdyZWxlYXNlJyBmaWVs ZAogICoKICAqIEEgY2xvY2sgZHJpdmVyIGNhbGxzIHRoaXMgZnVuY3Rpb24gdG8gcmVnaXN0ZXIg aXRzZWxmIHdpdGggdGhlCiAgKiBjbG9jayBkZXZpY2Ugc3Vic3lzdGVtLiBJZiAnY2xrJyBwb2lu dHMgdG8gZHluYW1pY2FsbHkgYWxsb2NhdGVkCkBAIC0xMDAsNyArMTAzLDcgQEAgc3RydWN0IHBv c2l4X2Nsb2NrIHsKICAqCiAgKiBSZXR1cm5zIHplcm8gb24gc3VjY2Vzcywgbm9uLXplcm8gb3Ro ZXJ3aXNlLgogICovCi1pbnQgcG9zaXhfY2xvY2tfcmVnaXN0ZXIoc3RydWN0IHBvc2l4X2Nsb2Nr ICpjbGssIGRldl90IGRldmlkKTsKK2ludCBwb3NpeF9jbG9ja19yZWdpc3RlcihzdHJ1Y3QgcG9z aXhfY2xvY2sgKmNsaywgc3RydWN0IGRldmljZSAqZGV2KTsKIAogLyoqCiAgKiBwb3NpeF9jbG9j a191bnJlZ2lzdGVyKCkgLSB1bnJlZ2lzdGVyIGEgY2xvY2sKZGlmZiAtLWdpdCBhL2tlcm5lbC90 aW1lL3Bvc2l4LWNsb2NrLmMgYi9rZXJuZWwvdGltZS9wb3NpeC1jbG9jay5jCmluZGV4IGVjOTYw YmI5MzlmZC4uMjAwZmIyZDNiZTk5IDEwMDY0NAotLS0gYS9rZXJuZWwvdGltZS9wb3NpeC1jbG9j ay5jCisrKyBiL2tlcm5lbC90aW1lL3Bvc2l4LWNsb2NrLmMKQEAgLTE0LDggKzE0LDYgQEAKIAog I2luY2x1ZGUgInBvc2l4LXRpbWVycy5oIgogCi1zdGF0aWMgdm9pZCBkZWxldGVfY2xvY2soc3Ry dWN0IGtyZWYgKmtyZWYpOwotCiAvKgogICogUmV0dXJucyBOVUxMIGlmIHRoZSBwb3NpeF9jbG9j ayBpbnN0YW5jZSBhdHRhY2hlZCB0byAnZnAnIGlzIG9sZCBhbmQgc3RhbGUuCiAgKi8KQEAgLTEy NSw3ICsxMjMsNyBAQCBzdGF0aWMgaW50IHBvc2l4X2Nsb2NrX29wZW4oc3RydWN0IGlub2RlICpp bm9kZSwgc3RydWN0IGZpbGUgKmZwKQogCQllcnIgPSAwOwogCiAJaWYgKCFlcnIpIHsKLQkJa3Jl Zl9nZXQoJmNsay0+a3JlZik7CisJCWdldF9kZXZpY2UoY2xrLT5kZXYpOwogCQlmcC0+cHJpdmF0 ZV9kYXRhID0gY2xrOwogCX0KIG91dDoKQEAgLTE0MSw3ICsxMzksNyBAQCBzdGF0aWMgaW50IHBv c2l4X2Nsb2NrX3JlbGVhc2Uoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZwKQog CWlmIChjbGstPm9wcy5yZWxlYXNlKQogCQllcnIgPSBjbGstPm9wcy5yZWxlYXNlKGNsayk7CiAK LQlrcmVmX3B1dCgmY2xrLT5rcmVmLCBkZWxldGVfY2xvY2spOworCXB1dF9kZXZpY2UoY2xrLT5k ZXYpOwogCiAJZnAtPnByaXZhdGVfZGF0YSA9IE5VTEw7CiAKQEAgLTE2MSwzOCArMTU5LDM1IEBA IHN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHBvc2l4X2Nsb2NrX2ZpbGVfb3Bl cmF0aW9ucyA9IHsKICNlbmRpZgogfTsKIAotaW50IHBvc2l4X2Nsb2NrX3JlZ2lzdGVyKHN0cnVj dCBwb3NpeF9jbG9jayAqY2xrLCBkZXZfdCBkZXZpZCkKK2ludCBwb3NpeF9jbG9ja19yZWdpc3Rl cihzdHJ1Y3QgcG9zaXhfY2xvY2sgKmNsaywgc3RydWN0IGRldmljZSAqZGV2KQogewogCWludCBl cnI7CiAKLQlrcmVmX2luaXQoJmNsay0+a3JlZik7CiAJaW5pdF9yd3NlbSgmY2xrLT5yd3NlbSk7 CiAKIAljZGV2X2luaXQoJmNsay0+Y2RldiwgJnBvc2l4X2Nsb2NrX2ZpbGVfb3BlcmF0aW9ucyk7 CisJZXJyID0gY2Rldl9kZXZpY2VfYWRkKCZjbGstPmNkZXYsIGRldik7CisJaWYgKGVycikgewor CQlwcl9lcnIoIiVzIHVuYWJsZSB0byBhZGQgZGV2aWNlICVkOiVkXG4iLAorCQkJZGV2X25hbWUo ZGV2KSwgTUFKT1IoZGV2LT5kZXZ0KSwgTUlOT1IoZGV2LT5kZXZ0KSk7CisJCXJldHVybiBlcnI7 CisJfQogCWNsay0+Y2Rldi5vd25lciA9IGNsay0+b3BzLm93bmVyOwotCWVyciA9IGNkZXZfYWRk KCZjbGstPmNkZXYsIGRldmlkLCAxKTsKKwljbGstPmRldiA9IGRldjsKIAotCXJldHVybiBlcnI7 CisJcmV0dXJuIDA7CiB9CiBFWFBPUlRfU1lNQk9MX0dQTChwb3NpeF9jbG9ja19yZWdpc3Rlcik7 CiAKLXN0YXRpYyB2b2lkIGRlbGV0ZV9jbG9jayhzdHJ1Y3Qga3JlZiAqa3JlZikKLXsKLQlzdHJ1 Y3QgcG9zaXhfY2xvY2sgKmNsayA9IGNvbnRhaW5lcl9vZihrcmVmLCBzdHJ1Y3QgcG9zaXhfY2xv Y2ssIGtyZWYpOwotCi0JaWYgKGNsay0+cmVsZWFzZSkKLQkJY2xrLT5yZWxlYXNlKGNsayk7Ci19 Ci0KIHZvaWQgcG9zaXhfY2xvY2tfdW5yZWdpc3RlcihzdHJ1Y3QgcG9zaXhfY2xvY2sgKmNsaykK IHsKLQljZGV2X2RlbCgmY2xrLT5jZGV2KTsKKwljZGV2X2RldmljZV9kZWwoJmNsay0+Y2Rldiwg Y2xrLT5kZXYpOwogCiAJZG93bl93cml0ZSgmY2xrLT5yd3NlbSk7CiAJY2xrLT56b21iaWUgPSB0 cnVlOwogCXVwX3dyaXRlKCZjbGstPnJ3c2VtKTsKIAotCWtyZWZfcHV0KCZjbGstPmtyZWYsIGRl bGV0ZV9jbG9jayk7CisJcHV0X2RldmljZShjbGstPmRldik7CiB9CiBFWFBPUlRfU1lNQk9MX0dQ TChwb3NpeF9jbG9ja191bnJlZ2lzdGVyKTsKIAotLSAKMi4yMC4xCgoKRnJvbSAwN2JiMmRlNWY0 OTFlYjNiZTE3ZmM0ZDUzOGU2YjIwYjU0ZmQ5MTgwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBNYXJjZWxvIFJpY2FyZG8gTGVpdG5lciA8bWFyY2Vsby5sZWl0bmVyQGdtYWlsLmNvbT4K RGF0ZTogRnJpLCAyMCBEZWMgMjAxOSAxNTowMzo0NCAtMDMwMApTdWJqZWN0OiBbUEFUQ0ggMTAv NDZdIHNjdHA6IGZpeCBlcnIgaGFuZGxpbmcgb2Ygc3RyZWFtIGluaXRpYWxpemF0aW9uCgpbIFVw c3RyZWFtIGNvbW1pdCA2MWQ1ZDQwNjI4NzZlMjEzMzFjM2QwYmE0YjAyZGJkNTBjMDZhNjU4IF0K ClRoZSBmaXggb24gOTUxYzZkYjk1NGExIGZpeGVkIHRoZSBpc3N1ZWQgcmVwb3J0ZWQgdGhlcmUg YnV0IGludHJvZHVjZWQKYW5vdGhlci4gV2hlbiB0aGUgYWxsb2NhdGlvbiBmYWlscyB3aXRoaW4g c2N0cF9zdHJlYW1faW5pdCgpIGl0IGlzCm9rYXkvbmVjZXNzYXJ5IHRvIGZyZWUgdGhlIGdlbnJh ZGl4LiBCdXQgaXQgaXMgYWxzbyBjYWxsZWQgd2hlbiBhZGRpbmcKbmV3IHN0cmVhbXMsIGZyb20g c2N0cF9zZW5kX2FkZF9zdHJlYW1zKCkgYW5kCnNjdHBfcHJvY2Vzc19zdHJyZXNldF9hZGRzdHJt X2luKCkgYW5kIGluIHRob3NlIHNpdHVhdGlvbnMgaXQgY2Fubm90Cmp1c3QgZnJlZSB0aGUgZ2Vu cmFkaXggYmVjYXVzZSBieSB0aGVuIGl0IGlzIGEgZnVsbHkgb3BlcmF0aW9uYWwKYXNzb2NpYXRp b24uCgpUaGUgZml4IGhlcmUgdGhlbiBpcyB0byBvbmx5IGZyZWUgdGhlIGdlbnJhZGl4IGluIHNj dHBfc3RyZWFtX2luaXQoKQphbmQgb24gdGhvc2Ugb3RoZXIgY2FsbCBzaXRlcyAgbW92ZSBvbiB3 aXRoIHdoYXQgaXQgYWxyZWFkeSBoYWQgYW5kIGxldAp0aGUgc3Vic2VxdWVudCBlcnJvciBoYW5k bGluZyB0byBoYW5kbGUgaXQuCgpUZXN0ZWQgd2l0aCB0aGUgcmVwcm9kdWNlcnMgZnJvbSB0aGlz IHJlcG9ydCBhbmQgdGhlIHByZXZpb3VzIG9uZSwKd2l0aCBsa3NjdHAtdG9vbHMgYW5kIHNjdHAt dGVzdHMuCgpSZXBvcnRlZC1ieTogc3l6Ym90KzlhMWJjNjMyZTc4YTFhOTg0ODhiQHN5emthbGxl ci5hcHBzcG90bWFpbC5jb20KRml4ZXM6IDk1MWM2ZGI5NTRhMSAoInNjdHA6IGZpeCBtZW1sZWFr IG9uIGVyciBoYW5kbGluZyBvZiBzdHJlYW0gaW5pdGlhbGl6YXRpb24iKQpTaWduZWQtb2ZmLWJ5 OiBNYXJjZWxvIFJpY2FyZG8gTGVpdG5lciA8bWFyY2Vsby5sZWl0bmVyQGdtYWlsLmNvbT4KU2ln bmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5l dC9zY3RwL3N0cmVhbS5jIHwgMzAgKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tCiAxIGZp bGUgY2hhbmdlZCwgMTUgaW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvbmV0L3NjdHAvc3RyZWFtLmMgYi9uZXQvc2N0cC9zdHJlYW0uYwppbmRleCA2YTMwMzkyMDY4 YTAuLmMxYTEwMGQyZmVkMyAxMDA2NDQKLS0tIGEvbmV0L3NjdHAvc3RyZWFtLmMKKysrIGIvbmV0 L3NjdHAvc3RyZWFtLmMKQEAgLTg0LDEwICs4NCw4IEBAIHN0YXRpYyBpbnQgc2N0cF9zdHJlYW1f YWxsb2Nfb3V0KHN0cnVjdCBzY3RwX3N0cmVhbSAqc3RyZWFtLCBfX3UxNiBvdXRjbnQsCiAJCXJl dHVybiAwOwogCiAJcmV0ID0gZ2VucmFkaXhfcHJlYWxsb2MoJnN0cmVhbS0+b3V0LCBvdXRjbnQs IGdmcCk7Ci0JaWYgKHJldCkgewotCQlnZW5yYWRpeF9mcmVlKCZzdHJlYW0tPm91dCk7CisJaWYg KHJldCkKIAkJcmV0dXJuIHJldDsKLQl9CiAKIAlzdHJlYW0tPm91dGNudCA9IG91dGNudDsKIAly ZXR1cm4gMDsKQEAgLTEwMiwxMCArMTAwLDggQEAgc3RhdGljIGludCBzY3RwX3N0cmVhbV9hbGxv Y19pbihzdHJ1Y3Qgc2N0cF9zdHJlYW0gKnN0cmVhbSwgX191MTYgaW5jbnQsCiAJCXJldHVybiAw OwogCiAJcmV0ID0gZ2VucmFkaXhfcHJlYWxsb2MoJnN0cmVhbS0+aW4sIGluY250LCBnZnApOwot CWlmIChyZXQpIHsKLQkJZ2VucmFkaXhfZnJlZSgmc3RyZWFtLT5pbik7CisJaWYgKHJldCkKIAkJ cmV0dXJuIHJldDsKLQl9CiAKIAlzdHJlYW0tPmluY250ID0gaW5jbnQ7CiAJcmV0dXJuIDA7CkBA IC0xMjMsNyArMTE5LDcgQEAgaW50IHNjdHBfc3RyZWFtX2luaXQoc3RydWN0IHNjdHBfc3RyZWFt ICpzdHJlYW0sIF9fdTE2IG91dGNudCwgX191MTYgaW5jbnQsCiAJICogYSBuZXcgb25lIHdpdGgg bmV3IG91dGNudCB0byBzYXZlIG1lbW9yeSBpZiBuZWVkZWQuCiAJICovCiAJaWYgKG91dGNudCA9 PSBzdHJlYW0tPm91dGNudCkKLQkJZ290byBpbjsKKwkJZ290byBoYW5kbGVfaW47CiAKIAkvKiBG aWx0ZXIgb3V0IGNodW5rcyBxdWV1ZWQgb24gc3RyZWFtcyB0aGF0IHdvbid0IGV4aXN0IGFueW1v cmUgKi8KIAlzY2hlZC0+dW5zY2hlZF9hbGwoc3RyZWFtKTsKQEAgLTEzMiwyNCArMTI4LDI4IEBA IGludCBzY3RwX3N0cmVhbV9pbml0KHN0cnVjdCBzY3RwX3N0cmVhbSAqc3RyZWFtLCBfX3UxNiBv dXRjbnQsIF9fdTE2IGluY250LAogCiAJcmV0ID0gc2N0cF9zdHJlYW1fYWxsb2Nfb3V0KHN0cmVh bSwgb3V0Y250LCBnZnApOwogCWlmIChyZXQpCi0JCWdvdG8gb3V0OworCQlnb3RvIG91dF9lcnI7 CiAKIAlmb3IgKGkgPSAwOyBpIDwgc3RyZWFtLT5vdXRjbnQ7IGkrKykKIAkJU0NUUF9TTyhzdHJl YW0sIGkpLT5zdGF0ZSA9IFNDVFBfU1RSRUFNX09QRU47CiAKLWluOgoraGFuZGxlX2luOgogCXNj dHBfc3RyZWFtX2ludGVybGVhdmVfaW5pdChzdHJlYW0pOwogCWlmICghaW5jbnQpCiAJCWdvdG8g b3V0OwogCiAJcmV0ID0gc2N0cF9zdHJlYW1fYWxsb2NfaW4oc3RyZWFtLCBpbmNudCwgZ2ZwKTsK LQlpZiAocmV0KSB7Ci0JCXNjaGVkLT5mcmVlKHN0cmVhbSk7Ci0JCWdlbnJhZGl4X2ZyZWUoJnN0 cmVhbS0+b3V0KTsKLQkJc3RyZWFtLT5vdXRjbnQgPSAwOwotCQlnb3RvIG91dDsKLQl9CisJaWYg KHJldCkKKwkJZ290byBpbl9lcnI7CisKKwlnb3RvIG91dDsKIAoraW5fZXJyOgorCXNjaGVkLT5m cmVlKHN0cmVhbSk7CisJZ2VucmFkaXhfZnJlZSgmc3RyZWFtLT5pbik7CitvdXRfZXJyOgorCWdl bnJhZGl4X2ZyZWUoJnN0cmVhbS0+b3V0KTsKKwlzdHJlYW0tPm91dGNudCA9IDA7CiBvdXQ6CiAJ cmV0dXJuIHJldDsKIH0KLS0gCjIuMjAuMQoKCkZyb20gMWMzMTMyOTc3ZDY4NWQwMTliZDVlNzc3 ZTQ5OWM2Mzk0YTBjZDRhNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQ2FtYmRhIFpo dSA8Y2FtYmRhQGxpbnV4LmFsaWJhYmEuY29tPgpEYXRlOiBGcmksIDI3IERlYyAyMDE5IDE2OjUy OjM3ICswODAwClN1YmplY3Q6IFtQQVRDSCAxMS80Nl0gdGNwOiBGaXggaGlnaGVzdF9zYWNrIGFu ZCBoaWdoZXN0X3NhY2tfc2VxCgpbIFVwc3RyZWFtIGNvbW1pdCA4NTM2OTc1MDRkZTA0M2ZmMGJm ZDgxNWJkM2E2NGRlMWRjZTczZGM3IF0KCj5Gcm9tIGNvbW1pdCA1MDg5NWI5ZGUxZDMgKCJ0Y3A6 IGhpZ2hlc3Rfc2FjayBmaXgiKSwgdGhlIGxvZ2ljIGFib3V0CnNldHRpbmcgdHAtPmhpZ2hlc3Rf c2FjayB0byB0aGUgaGVhZCBvZiB0aGUgc2VuZCBxdWV1ZSB3YXMgcmVtb3ZlZC4KT2YgY291cnNl IHRoZSBsb2dpYyBpcyBlcnJvciBwcm9uZSwgYnV0IGl0IGlzIGxvZ2ljYWwuIEJlZm9yZSB3ZQpy ZW1vdmUgdGhlIHBvaW50ZXIgdG8gdGhlIGhpZ2hlc3Qgc2FjayBza2IgYW5kIHVzZSB0aGUgc2Vx IGluc3RlYWQsCndlIG5lZWQgdG8gc2V0IHRwLT5oaWdoZXN0X3NhY2sgdG8gTlVMTCB3aGVuIHRo ZXJlIGlzIG5vIHNrYiBhZnRlcgp0aGUgbGFzdCBzYWNrLCBhbmQgdGhlbiByZXBsYWNlIE5VTEwg d2l0aCB0aGUgcmVhbCBza2Igd2hlbiBuZXcgc2tiCmluc2VydGVkIGludG8gdGhlIHJ0eCBxdWV1 ZSwgYmVjYXVzZSB0aGUgTlVMTCBtZWFucyB0aGUgaGlnaGVzdCBzYWNrCnNlcSBpcyB0cC0+c25k X254dC4gSWYgdHAtPmhpZ2hlc3Rfc2FjayBpcyBOVUxMIGFuZCBuZXcgZGF0YSBzZW50LAp0aGUg bmV4dCBBQ0sgd2l0aCBzYWNrIG9wdGlvbiB3aWxsIGluY3JlYXNlIHRwLT5yZW9yZGVyaW5nIHVu ZXhwZWN0ZWRseS4KClRoaXMgcGF0Y2ggc2V0cyB0cC0+aGlnaGVzdF9zYWNrIHRvIHRoZSB0YWls IG9mIHRoZSBydHggcXVldWUgaWYKaXQncyBOVUxMIGFuZCBuZXcgZGF0YSBpcyBzZW50LiBUaGUg cGF0Y2gga2VlcHMgdGhlIHJ1bGUgdGhhdCB0aGUKaGlnaGVzdF9zYWNrIGNhbiBvbmx5IGJlIG1h aW50YWluZWQgYnkgc2FjayBwcm9jZXNzaW5nLCBleGNlcHQgZm9yCnRoaXMgb25seSBjYXNlLgoK Rml4ZXM6IDUwODk1YjlkZTFkMyAoInRjcDogaGlnaGVzdF9zYWNrIGZpeCIpClNpZ25lZC1vZmYt Ynk6IENhbWJkYSBaaHUgPGNhbWJkYUBsaW51eC5hbGliYWJhLmNvbT4KU2lnbmVkLW9mZi1ieTog RXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBT LiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjQvdGNwX291dHB1dC5j IHwgMyArKysKIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9u ZXQvaXB2NC90Y3Bfb3V0cHV0LmMgYi9uZXQvaXB2NC90Y3Bfb3V0cHV0LmMKaW5kZXggNzYyZWRk ODAwZDc4Li5iODkxNjdmYzE0YTMgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3RjcF9vdXRwdXQuYwor KysgYi9uZXQvaXB2NC90Y3Bfb3V0cHV0LmMKQEAgLTcyLDYgKzcyLDkgQEAgc3RhdGljIHZvaWQg dGNwX2V2ZW50X25ld19kYXRhX3NlbnQoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAq c2tiKQogCV9fc2tiX3VubGluayhza2IsICZzay0+c2tfd3JpdGVfcXVldWUpOwogCXRjcF9yYnRy ZWVfaW5zZXJ0KCZzay0+dGNwX3J0eF9xdWV1ZSwgc2tiKTsKIAorCWlmICh0cC0+aGlnaGVzdF9z YWNrID09IE5VTEwpCisJCXRwLT5oaWdoZXN0X3NhY2sgPSBza2I7CisKIAl0cC0+cGFja2V0c19v dXQgKz0gdGNwX3NrYl9wY291bnQoc2tiKTsKIAlpZiAoIXByaW9yX3BhY2tldHMgfHwgaWNzay0+ aWNza19wZW5kaW5nID09IElDU0tfVElNRV9MT1NTX1BST0JFKQogCQl0Y3BfcmVhcm1fcnRvKHNr KTsKLS0gCjIuMjAuMQoKCkZyb20gMDVhZmYwY2I0NDliMWI1NDM0ODcxYmMwMDRiNTJhYWVjOTBm MTI0ZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQW50b25pbyBNZXNzaW5hIDxhbWVz c2luYUBnb29nbGUuY29tPgpEYXRlOiBUaHUsIDE5IERlYyAyMDE5IDE1OjA4OjAzICswMTAwClN1 YmplY3Q6IFtQQVRDSCAxMi80Nl0gdWRwOiBmaXggaW50ZWdlciBvdmVyZmxvdyB3aGlsZSBjb21w dXRpbmcgYXZhaWxhYmxlCiBzcGFjZSBpbiBza19yY3ZidWYKClsgVXBzdHJlYW0gY29tbWl0IGZl ZWQ4YTRmYzlkNDZjMzEyNmZiOWZjYWUwZTkyNDgyNzBjNjMyMWEgXQoKV2hlbiB0aGUgc2l6ZSBv ZiB0aGUgcmVjZWl2ZSBidWZmZXIgZm9yIGEgc29ja2V0IGlzIGNsb3NlIHRvIDJeMzEgd2hlbgpj b21wdXRpbmcgaWYgd2UgaGF2ZSBlbm91Z2ggc3BhY2UgaW4gdGhlIGJ1ZmZlciB0byBjb3B5IGEg cGFja2V0IGZyb20KdGhlIHF1ZXVlIHRvIHRoZSBidWZmZXIgd2UgbWlnaHQgaGl0IGFuIGludGVn ZXIgb3ZlcmZsb3cuCgpXaGVuIGFuIHVzZXIgc2V0IG5ldC5jb3JlLnJtZW1fZGVmYXVsdCB0byBh IHZhbHVlIGNsb3NlIHRvIDJeMzEgVURQCnBhY2tldHMgYXJlIGRyb3BwZWQgYmVjYXVzZSBvZiB0 aGlzIG92ZXJmbG93LiBUaGlzIGNhbiBiZSB2aXNpYmxlLCBmb3IKaW5zdGFuY2UsIHdpdGggZmFp bHVyZSB0byByZXNvbHZlIGhvc3RuYW1lcy4KClRoaXMgY2FuIGJlIGZpeGVkIGJ5IGNhc3Rpbmcg c2tfcmN2YnVmICh3aGljaCBpcyBhbiBpbnQpIHRvIHVuc2lnbmVkCmludCwgc2ltaWxhcmx5IHRv IGhvdyBpdCBpcyBkb25lIGluIFRDUC4KClNpZ25lZC1vZmYtYnk6IEFudG9uaW8gTWVzc2luYSA8 YW1lc3NpbmFAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZl bUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY0L3VkcC5jIHwgMiArLQogMSBmaWxlIGNoYW5n ZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQv dWRwLmMgYi9uZXQvaXB2NC91ZHAuYwppbmRleCA0NDdkZWZiZmNjZGQuLjdhYTRlNzcxNjFmNiAx MDA2NDQKLS0tIGEvbmV0L2lwdjQvdWRwLmMKKysrIGIvbmV0L2lwdjQvdWRwLmMKQEAgLTE0NzUs NyArMTQ3NSw3IEBAIGludCBfX3VkcF9lbnF1ZXVlX3NjaGVkdWxlX3NrYihzdHJ1Y3Qgc29jayAq c2ssIHN0cnVjdCBza19idWZmICpza2IpCiAJICogcXVldWUgY29udGFpbnMgc29tZSBvdGhlciBz a2IKIAkgKi8KIAlybWVtID0gYXRvbWljX2FkZF9yZXR1cm4oc2l6ZSwgJnNrLT5za19ybWVtX2Fs bG9jKTsKLQlpZiAocm1lbSA+IChzaXplICsgc2stPnNrX3JjdmJ1ZikpCisJaWYgKHJtZW0gPiAo c2l6ZSArICh1bnNpZ25lZCBpbnQpc2stPnNrX3JjdmJ1ZikpCiAJCWdvdG8gdW5jaGFyZ2VfZHJv cDsKIAogCXNwaW5fbG9jaygmbGlzdC0+bG9jayk7Ci0tIAoyLjIwLjEKCgpGcm9tIDJmZTMwZTlm MWU1YjBlZjBkYWMzNTc4ODVlYjFjZTQ5NTY4NzFmNjIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IE1pY2hhZWwgQ2hhbiA8bWljaGFlbC5jaGFuQGJyb2FkY29tLmNvbT4KRGF0ZTogVHVl LCAxMCBEZWMgMjAxOSAwMjo0OTowNyAtMDUwMApTdWJqZWN0OiBbUEFUQ0ggMTMvNDZdIGJueHRf ZW46IEZpeCBNU0lYIHJlcXVlc3QgbG9naWMgZm9yIFJETUEgZHJpdmVyLgoKWyBVcHN0cmVhbSBj b21taXQgMGM3MjJlYzBhMjg5YzdmNmI1M2Y4OWJhZDFjZmI3YzRkYjNmN2E2MiBdCgpUaGUgbG9n aWMgbmVlZHMgdG8gY2hlY2sgYm90aCBicC0+dG90YWxfaXJxcyBhbmQgdGhlIHJlc2VydmVkIElS UXMgaW4KaHdfcmVzYy0+cmVzdl9pcnFzIGlmIGFwcGxpY2FibGUgYW5kIHNlZSBpZiBib3RoIGFy ZSBlbm91Z2ggdG8gY292ZXIKdGhlIEwyIGFuZCBSRE1BIHJlcXVlc3RlZCB2ZWN0b3JzLiAgVGhl IGN1cnJlbnQgY29kZSBpcyBvbmx5IGNoZWNraW5nCmJwLT50b3RhbF9pcnFzIGFuZCBjYW4gZmFp bCBpbiBzb21lIGNvZGUgcGF0aHMsIHN1Y2ggYXMgdGhlIFRYIHRpbWVvdXQKY29kZSBwYXRoIHdp dGggdGhlIFJETUEgZHJpdmVyIHJlcXVlc3RpbmcgdmVjdG9ycyBhZnRlciByZWNvdmVyeS4gIElu CnRoaXMgY29kZSBwYXRoLCB3ZSBoYXZlIG5vdCByZXNlcnZlZCBlbm91Z2ggTVNJWCByZXNvdXJj ZXMgZm9yIHRoZQpSRE1BIGRyaXZlciB5ZXQuCgpGaXhlczogNzU3MjBlNjMyM2ExICgiYm54dF9l bjogS2VlcCB0cmFjayBvZiByZXNlcnZlZCBJUlFzLiIpClNpZ25lZC1vZmYtYnk6IE1pY2hhZWwg Q2hhbiA8bWljaGFlbC5jaGFuQGJyb2FkY29tLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4g TWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L2Jy b2FkY29tL2JueHQvYm54dF91bHAuYyB8IDggKysrKysrLS0KIDEgZmlsZSBjaGFuZ2VkLCA2IGlu c2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRo ZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0X3VscC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJv YWRjb20vYm54dC9ibnh0X3VscC5jCmluZGV4IGIyYzE2MDk0N2ZjOC4uMzA4MTZlYzRmYTkxIDEw MDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHRfdWxwLmMK KysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0X3VscC5jCkBAIC0x MTMsOCArMTEzLDEwIEBAIHN0YXRpYyBpbnQgYm54dF9yZXFfbXNpeF92ZWNzKHN0cnVjdCBibnh0 X2VuX2RldiAqZWRldiwgaW50IHVscF9pZCwKIHsKIAlzdHJ1Y3QgbmV0X2RldmljZSAqZGV2ID0g ZWRldi0+bmV0OwogCXN0cnVjdCBibnh0ICpicCA9IG5ldGRldl9wcml2KGRldik7CisJc3RydWN0 IGJueHRfaHdfcmVzYyAqaHdfcmVzYzsKIAlpbnQgbWF4X2lkeCwgbWF4X2NwX3JpbmdzOwogCWlu dCBhdmFpbF9tc2l4LCBpZHg7CisJaW50IHRvdGFsX3ZlY3M7CiAJaW50IHJjID0gMDsKIAogCUFT U0VSVF9SVE5MKCk7CkBAIC0xNDIsNyArMTQ0LDEwIEBAIHN0YXRpYyBpbnQgYm54dF9yZXFfbXNp eF92ZWNzKHN0cnVjdCBibnh0X2VuX2RldiAqZWRldiwgaW50IHVscF9pZCwKIAl9CiAJZWRldi0+ dWxwX3RibFt1bHBfaWRdLm1zaXhfYmFzZSA9IGlkeDsKIAllZGV2LT51bHBfdGJsW3VscF9pZF0u bXNpeF9yZXF1ZXN0ZWQgPSBhdmFpbF9tc2l4OwotCWlmIChicC0+dG90YWxfaXJxcyA8IChpZHgg KyBhdmFpbF9tc2l4KSkgeworCWh3X3Jlc2MgPSAmYnAtPmh3X3Jlc2M7CisJdG90YWxfdmVjcyA9 IGlkeCArIGF2YWlsX21zaXg7CisJaWYgKGJwLT50b3RhbF9pcnFzIDwgdG90YWxfdmVjcyB8fAor CSAgICAoQk5YVF9ORVdfUk0oYnApICYmIGh3X3Jlc2MtPnJlc3ZfaXJxcyA8IHRvdGFsX3ZlY3Mp KSB7CiAJCWlmIChuZXRpZl9ydW5uaW5nKGRldikpIHsKIAkJCWJueHRfY2xvc2VfbmljKGJwLCB0 cnVlLCBmYWxzZSk7CiAJCQlyYyA9IGJueHRfb3Blbl9uaWMoYnAsIHRydWUsIGZhbHNlKTsKQEAg LTE1Niw3ICsxNjEsNiBAQCBzdGF0aWMgaW50IGJueHRfcmVxX21zaXhfdmVjcyhzdHJ1Y3QgYm54 dF9lbl9kZXYgKmVkZXYsIGludCB1bHBfaWQsCiAJfQogCiAJaWYgKEJOWFRfTkVXX1JNKGJwKSkg ewotCQlzdHJ1Y3QgYm54dF9od19yZXNjICpod19yZXNjID0gJmJwLT5od19yZXNjOwogCQlpbnQg cmVzdl9tc2l4OwogCiAJCXJlc3ZfbXNpeCA9IGh3X3Jlc2MtPnJlc3ZfaXJxcyAtIGJwLT5jcF9u cl9yaW5nczsKLS0gCjIuMjAuMQoKCkZyb20gYmMyNGE3NTFkNjc5ODQyMWU0NDY1YjYyMjJiNzEz ZWVlZmZkNGJmYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTWljaGFlbCBDaGFuIDxt aWNoYWVsLmNoYW5AYnJvYWRjb20uY29tPgpEYXRlOiBUdWUsIDEwIERlYyAyMDE5IDAyOjQ5OjA4 IC0wNTAwClN1YmplY3Q6IFtQQVRDSCAxNC80Nl0gYm54dF9lbjogRnJlZSBjb250ZXh0IG1lbW9y eSBpbiB0aGUgb3BlbiBwYXRoIGlmCiBmaXJtd2FyZSBoYXMgYmVlbiByZXNldC4KClsgVXBzdHJl YW0gY29tbWl0IDMyNWY4NWYzN2U1YjM1ODA3ZDg2MTg1YmRmMmM2NGQyOTgwYzQ0YmEgXQoKVGhp cyB3aWxsIHRyaWdnZXIgbmV3IGNvbnRleHQgbWVtb3J5IHRvIGJlIHJlZGlzY292ZXJlZCBhbmQg YWxsb2NhdGVkCmR1cmluZyB0aGUgcmUtcHJvYmUgcHJvY2VzcyBhZnRlciBhIGZpcm13YXJlIHJl c2V0LiAgV2l0aG91dCB0aGlzLCB0aGUKbmV3bHkgcmVzZXQgZmlybXdhcmUgZG9lcyBub3QgaGF2 ZSB2YWxpZCBjb250ZXh0IG1lbW9yeSBhbmQgdGhlIGRyaXZlcgp3aWxsIGV2ZW50dWFsbHkgZmFp bCB0byBhbGxvY2F0ZSBzb21lIHJlc291cmNlcy4KCkZpeGVzOiBlYzVkMzFlM2MxNWQgKCJibnh0 X2VuOiBIYW5kbGUgZmlybXdhcmUgcmVzZXQgc3RhdHVzIGR1cmluZyBJRl9VUC4iKQpTaWduZWQt b2ZmLWJ5OiBNaWNoYWVsIENoYW4gPG1pY2hhZWwuY2hhbkBicm9hZGNvbS5jb20+ClNpZ25lZC1v ZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJz L25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHQuYyB8IDMgKysrCiAxIGZpbGUgY2hhbmdl ZCwgMyBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJv YWRjb20vYm54dC9ibnh0LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2Ju eHQuYwppbmRleCA1MjdlMWJmOTMxMTYuLmEyM2Y1ODI0NDJlMCAxMDA2NDQKLS0tIGEvZHJpdmVy cy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0LmMKKysrIGIvZHJpdmVycy9uZXQvZXRo ZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0LmMKQEAgLTg3NjYsNiArODc2Niw5IEBAIHN0YXRpYyBp bnQgYm54dF9od3JtX2lmX2NoYW5nZShzdHJ1Y3QgYm54dCAqYnAsIGJvb2wgdXApCiAJfQogCWlm IChyZXNjX3JlaW5pdCB8fCBmd19yZXNldCkgewogCQlpZiAoZndfcmVzZXQpIHsKKwkJCWJueHRf ZnJlZV9jdHhfbWVtKGJwKTsKKwkJCWtmcmVlKGJwLT5jdHgpOworCQkJYnAtPmN0eCA9IE5VTEw7 CiAJCQlyYyA9IGJueHRfZndfaW5pdF9vbmUoYnApOwogCQkJaWYgKHJjKSB7CiAJCQkJc2V0X2Jp dChCTlhUX1NUQVRFX0FCT1JUX0VSUiwgJmJwLT5zdGF0ZSk7Ci0tIAoyLjIwLjEKCgpGcm9tIDE1 MmY5MWViMzNhM2M0MmE1ZTcxOWI4ZmYwMTNlMTVkZGVlMGIyZDggTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IFZhc3VuZGhhcmEgVm9sYW0gPHZhc3VuZGhhcmEtdi52b2xhbUBicm9hZGNv bS5jb20+CkRhdGU6IFR1ZSwgMTAgRGVjIDIwMTkgMDI6NDk6MDkgLTA1MDAKU3ViamVjdDogW1BB VENIIDE1LzQ2XSBibnh0X2VuOiBSZXR1cm4gZXJyb3IgaWYgRlcgcmV0dXJucyBtb3JlIGRhdGEg dGhhbiBkdW1wCiBsZW5ndGgKClsgVXBzdHJlYW0gY29tbWl0IGM3NDc1MWY0YzM5MjMyYzMxMjE0 ZWM2YTNiYzFjN2U2MmY1YzcyOGIgXQoKSWYgYW55IGNoYW5nZSBoYXBwZW5lZCBpbiB0aGUgY29u ZmlndXJhdGlvbiBvZiBWRiBpbiBWTSB3aGlsZQpjb2xsZWN0aW5nIGxpdmUgZHVtcCwgdGhlcmUg Y291bGQgYmUgYSByYWNlIGFuZCBmaXJtd2FyZSBjYW4gcmV0dXJuCm1vcmUgZGF0YSB0aGFuIGFs bG9jYXRlZCBkdW1wIGxlbmd0aC4gRml4IGl0IGJ5IGtlZXBpbmcgdHJhY2sgb2YKdGhlIGFjY3Vt dWxhdGVkIGNvcmUgZHVtcCBsZW5ndGggY29waWVkIHNvIGZhciBhbmQgYWJvcnQgdGhlIGNvcHkK d2l0aCBlcnJvciBjb2RlIGlmIHRoZSBuZXh0IGNodW5rIG9mIGNvcmUgZHVtcCB3aWxsIGV4Y2Vl ZCB0aGUKb3JpZ2luYWwgZHVtcCBsZW5ndGguCgpGaXhlczogNmM1NjU3ZDA4NWFlICgiYm54dF9l bjogQWRkIHN1cHBvcnQgZm9yIGV0aHRvb2wgZ2V0IGR1bXAuIikKU2lnbmVkLW9mZi1ieTogVmFz dW5kaGFyYSBWb2xhbSA8dmFzdW5kaGFyYS12LnZvbGFtQGJyb2FkY29tLmNvbT4KU2lnbmVkLW9m Zi1ieTogTWljaGFlbCBDaGFuIDxtaWNoYWVsLmNoYW5AYnJvYWRjb20uY29tPgpTaWduZWQtb2Zm LWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogLi4uL25ldC9l dGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHRfZXRodG9vbC5jIHwgMzggKysrKysrKysrKysrKysr LS0tLQogLi4uL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHRfZXRodG9vbC5oIHwgIDQg KysKIDIgZmlsZXMgY2hhbmdlZCwgMzQgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHRfZXRodG9v bC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0X2V0aHRvb2wuYwpp bmRleCA4OWY5NTQyODU1NmUuLmVjZTcwZjYxYzg5YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQv ZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0X2V0aHRvb2wuYworKysgYi9kcml2ZXJzL25ldC9l dGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHRfZXRodG9vbC5jCkBAIC0zMDY0LDggKzMwNjQsMTUg QEAgc3RhdGljIGludCBibnh0X2h3cm1fZGJnX2RtYV9kYXRhKHN0cnVjdCBibnh0ICpicCwgdm9p ZCAqbXNnLCBpbnQgbXNnX2xlbiwKIAkJCX0KIAkJfQogCi0JCWlmIChpbmZvLT5kZXN0X2J1ZikK LQkJCW1lbWNweShpbmZvLT5kZXN0X2J1ZiArIG9mZiwgZG1hX2J1ZiwgbGVuKTsKKwkJaWYgKGlu Zm8tPmRlc3RfYnVmKSB7CisJCQlpZiAoKGluZm8tPnNlZ19zdGFydCArIG9mZiArIGxlbikgPD0K KwkJCSAgICBCTlhUX0NPUkVEVU1QX0JVRl9MRU4oaW5mby0+YnVmX2xlbikpIHsKKwkJCQltZW1j cHkoaW5mby0+ZGVzdF9idWYgKyBvZmYsIGRtYV9idWYsIGxlbik7CisJCQl9IGVsc2UgeworCQkJ CXJjID0gLUVOT0JVRlM7CisJCQkJYnJlYWs7CisJCQl9CisJCX0KIAogCQlpZiAoY21uX3JlcS0+ cmVxX3R5cGUgPT0KIAkJCQljcHVfdG9fbGUxNihIV1JNX0RCR19DT1JFRFVNUF9SRVRSSUVWRSkp CkBAIC0zMTE5LDcgKzMxMjYsNyBAQCBzdGF0aWMgaW50IGJueHRfaHdybV9kYmdfY29yZWR1bXBf aW5pdGlhdGUoc3RydWN0IGJueHQgKmJwLCB1MTYgY29tcG9uZW50X2lkLAogCiBzdGF0aWMgaW50 IGJueHRfaHdybV9kYmdfY29yZWR1bXBfcmV0cmlldmUoc3RydWN0IGJueHQgKmJwLCB1MTYgY29t cG9uZW50X2lkLAogCQkJCQkgICB1MTYgc2VnbWVudF9pZCwgdTMyICpzZWdfbGVuLAotCQkJCQkg ICB2b2lkICpidWYsIHUzMiBvZmZzZXQpCisJCQkJCSAgIHZvaWQgKmJ1ZiwgdTMyIGJ1Zl9sZW4s IHUzMiBvZmZzZXQpCiB7CiAJc3RydWN0IGh3cm1fZGJnX2NvcmVkdW1wX3JldHJpZXZlX2lucHV0 IHJlcSA9IHswfTsKIAlzdHJ1Y3QgYm54dF9od3JtX2RiZ19kbWFfaW5mbyBpbmZvID0ge05VTEx9 OwpAQCAtMzEzNCw4ICszMTQxLDExIEBAIHN0YXRpYyBpbnQgYm54dF9od3JtX2RiZ19jb3JlZHVt cF9yZXRyaWV2ZShzdHJ1Y3QgYm54dCAqYnAsIHUxNiBjb21wb25lbnRfaWQsCiAJCQkJc2VxX25v KTsKIAlpbmZvLmRhdGFfbGVuX29mZiA9IG9mZnNldG9mKHN0cnVjdCBod3JtX2RiZ19jb3JlZHVt cF9yZXRyaWV2ZV9vdXRwdXQsCiAJCQkJICAgICBkYXRhX2xlbik7Ci0JaWYgKGJ1ZikKKwlpZiAo YnVmKSB7CiAJCWluZm8uZGVzdF9idWYgPSBidWYgKyBvZmZzZXQ7CisJCWluZm8uYnVmX2xlbiA9 IGJ1Zl9sZW47CisJCWluZm8uc2VnX3N0YXJ0ID0gb2Zmc2V0OworCX0KIAogCXJjID0gYm54dF9o d3JtX2RiZ19kbWFfZGF0YShicCwgJnJlcSwgc2l6ZW9mKHJlcSksICZpbmZvKTsKIAlpZiAoIXJj KQpAQCAtMzIyNSwxNCArMzIzNSwxNyBAQCBibnh0X2ZpbGxfY29yZWR1bXBfcmVjb3JkKHN0cnVj dCBibnh0ICpicCwgc3RydWN0IGJueHRfY29yZWR1bXBfcmVjb3JkICpyZWNvcmQsCiBzdGF0aWMg aW50IGJueHRfZ2V0X2NvcmVkdW1wKHN0cnVjdCBibnh0ICpicCwgdm9pZCAqYnVmLCB1MzIgKmR1 bXBfbGVuKQogewogCXUzMiB2ZXJfZ2V0X3Jlc3BfbGVuID0gc2l6ZW9mKHN0cnVjdCBod3JtX3Zl cl9nZXRfb3V0cHV0KTsKKwl1MzIgb2Zmc2V0ID0gMCwgc2VnX2hkcl9sZW4sIHNlZ19yZWNvcmRf bGVuLCBidWZfbGVuID0gMDsKIAlzdHJ1Y3QgY29yZWR1bXBfc2VnbWVudF9yZWNvcmQgKnNlZ19y ZWNvcmQgPSBOVUxMOwotCXUzMiBvZmZzZXQgPSAwLCBzZWdfaGRyX2xlbiwgc2VnX3JlY29yZF9s ZW47CiAJc3RydWN0IGJueHRfY29yZWR1bXBfc2VnbWVudF9oZHIgc2VnX2hkcjsKIAlzdHJ1Y3Qg Ym54dF9jb3JlZHVtcCBjb3JlZHVtcCA9IHtOVUxMfTsKIAl0aW1lNjRfdCBzdGFydF90aW1lOwog CXUxNiBzdGFydF91dGM7CiAJaW50IHJjID0gMCwgaTsKIAorCWlmIChidWYpCisJCWJ1Zl9sZW4g PSAqZHVtcF9sZW47CisKIAlzdGFydF90aW1lID0ga3RpbWVfZ2V0X3JlYWxfc2Vjb25kcygpOwog CXN0YXJ0X3V0YyA9IHN5c190ei50el9taW51dGVzd2VzdCAqIDYwOwogCXNlZ19oZHJfbGVuID0g c2l6ZW9mKHNlZ19oZHIpOwpAQCAtMzI2NSw2ICszMjc4LDEyIEBAIHN0YXRpYyBpbnQgYm54dF9n ZXRfY29yZWR1bXAoc3RydWN0IGJueHQgKmJwLCB2b2lkICpidWYsIHUzMiAqZHVtcF9sZW4pCiAJ CXUzMiBkdXJhdGlvbiA9IDAsIHNlZ19sZW4gPSAwOwogCQl1bnNpZ25lZCBsb25nIHN0YXJ0LCBl bmQ7CiAKKwkJaWYgKGJ1ZiAmJiAoKG9mZnNldCArIHNlZ19oZHJfbGVuKSA+CisJCQkgICAgQk5Y VF9DT1JFRFVNUF9CVUZfTEVOKGJ1Zl9sZW4pKSkgeworCQkJcmMgPSAtRU5PQlVGUzsKKwkJCWdv dG8gZXJyOworCQl9CisKIAkJc3RhcnQgPSBqaWZmaWVzOwogCiAJCXJjID0gYm54dF9od3JtX2Ri Z19jb3JlZHVtcF9pbml0aWF0ZShicCwgY29tcF9pZCwgc2VnX2lkKTsKQEAgLTMyNzcsOSArMzI5 NiwxMSBAQCBzdGF0aWMgaW50IGJueHRfZ2V0X2NvcmVkdW1wKHN0cnVjdCBibnh0ICpicCwgdm9p ZCAqYnVmLCB1MzIgKmR1bXBfbGVuKQogCiAJCS8qIFdyaXRlIHNlZ21lbnQgZGF0YSBpbnRvIHRo ZSBidWZmZXIgKi8KIAkJcmMgPSBibnh0X2h3cm1fZGJnX2NvcmVkdW1wX3JldHJpZXZlKGJwLCBj b21wX2lkLCBzZWdfaWQsCi0JCQkJCQkgICAgICZzZWdfbGVuLCBidWYsCisJCQkJCQkgICAgICZz ZWdfbGVuLCBidWYsIGJ1Zl9sZW4sCiAJCQkJCQkgICAgIG9mZnNldCArIHNlZ19oZHJfbGVuKTsK LQkJaWYgKHJjKQorCQlpZiAocmMgJiYgcmMgPT0gLUVOT0JVRlMpCisJCQlnb3RvIGVycjsKKwkJ ZWxzZSBpZiAocmMpCiAJCQluZXRkZXZfZXJyKGJwLT5kZXYsCiAJCQkJICAgIkZhaWxlZCB0byBy ZXRyaWV2ZSBjb3JlZHVtcCBmb3Igc2VnID0gJWRcbiIsCiAJCQkJICAgc2VnX3JlY29yZC0+c2Vn bWVudF9pZCk7CkBAIC0zMzA5LDcgKzMzMzAsOCBAQCBzdGF0aWMgaW50IGJueHRfZ2V0X2NvcmVk dW1wKHN0cnVjdCBibnh0ICpicCwgdm9pZCAqYnVmLCB1MzIgKmR1bXBfbGVuKQogCQkJCQkgIHJj KTsKIAlrZnJlZShjb3JlZHVtcC5kYXRhKTsKIAkqZHVtcF9sZW4gKz0gc2l6ZW9mKHN0cnVjdCBi bnh0X2NvcmVkdW1wX3JlY29yZCk7Ci0KKwlpZiAocmMgPT0gLUVOT0JVRlMpCisJCW5ldGRldl9l cnIoYnAtPmRldiwgIkZpcm13YXJlIHJldHVybmVkIGxhcmdlIGNvcmVkdW1wIGJ1ZmZlciIpOwog CXJldHVybiByYzsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRj b20vYm54dC9ibnh0X2V0aHRvb2wuaCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2Ju eHQvYm54dF9ldGh0b29sLmgKaW5kZXggYjViNjViM2Y4NTM0Li4zOTk4ZjZlODA5YTkgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueHQvYm54dF9ldGh0b29sLmgK KysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0X2V0aHRvb2wuaApA QCAtMzEsNiArMzEsOCBAQCBzdHJ1Y3QgYm54dF9jb3JlZHVtcCB7CiAJdTE2CQl0b3RhbF9zZWdz OwogfTsKIAorI2RlZmluZSBCTlhUX0NPUkVEVU1QX0JVRl9MRU4obGVuKSAoKGxlbikgLSBzaXpl b2Yoc3RydWN0IGJueHRfY29yZWR1bXBfcmVjb3JkKSkKKwogc3RydWN0IGJueHRfaHdybV9kYmdf ZG1hX2luZm8gewogCXZvaWQgKmRlc3RfYnVmOwogCWludCBkZXN0X2J1Zl9zaXplOwpAQCAtMzgs NiArNDAsOCBAQCBzdHJ1Y3QgYm54dF9od3JtX2RiZ19kbWFfaW5mbyB7CiAJdTE2IHNlcV9vZmY7 CiAJdTE2IGRhdGFfbGVuX29mZjsKIAl1MTYgc2VnczsKKwl1MzIgc2VnX3N0YXJ0OworCXUzMiBi dWZfbGVuOwogfTsKIAogc3RydWN0IGh3cm1fZGJnX2Ntbl9pbnB1dCB7Ci0tIAoyLjIwLjEKCgpG cm9tIDdhN2NmMGIyZDBkYjc1MGI1MWU5NmE1OGVmYjRlMWMzNmIxNDg0MjUgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IFZhc3VuZGhhcmEgVm9sYW0gPHZhc3VuZGhhcmEtdi52b2xhbUBi cm9hZGNvbS5jb20+CkRhdGU6IFR1ZSwgMTAgRGVjIDIwMTkgMDI6NDk6MTAgLTA1MDAKU3ViamVj dDogW1BBVENIIDE2LzQ2XSBibnh0X2VuOiBGaXggYnAtPmZ3X2hlYWx0aCBhbGxvY2F0aW9uIGFu ZCBmcmVlIGxvZ2ljLgoKWyBVcHN0cmVhbSBjb21taXQgODI4MGIzOGUwMWY3MWUwZjg5Mzg5Y2Nh ZDNmYTQzYjc5ZTU3YzYwNCBdCgpicC0+ZndfaGVhbHRoIG5lZWRzIHRvIGJlIGFsbG9jYXRlZCBm b3IgZWl0aGVyIHRoZSBmaXJtd2FyZSBpbml0aWF0ZWQKcmVzZXQgZmVhdHVyZSBvciB0aGUgZHJp dmVyIGluaXRpYXRlZCBlcnJvciByZWNvdmVyeSBmZWF0dXJlLiAgVGhlCmN1cnJlbnQgY29kZSBp cyBub3QgYWxsb2NhdGluZyBicC0+ZndfaGVhbHRoIGZvciBhbGwgdGhlIG5lY2Vzc2FyeSBjYXNl cy4KVGhpcyBwYXRjaCBjb3JyZWN0cyB0aGUgbG9naWMgdG8gYWxsb2NhdGUgYnAtPmZ3X2hlYWx0 aCBjb3JyZWN0bHkgd2hlbgpuZWVkZWQuICBJZiBhbGxvY2F0aW9uIGZhaWxzLCB3ZSBjbGVhciB0 aGUgZmVhdHVyZSBmbGFncy4KCldlIGFsc28gYWRkIHRoZSB0aGUgbWlzc2luZyBrZnJlZShicC0+ ZndfaGVhbHRoKSB3aGVuIHRoZSBkcml2ZXIgaXMKdW5sb2FkZWQuICBJZiB3ZSBnZXQgYW4gYXN5 bmMgcmVzZXQgbWVzc2FnZSBmcm9tIHRoZSBmaXJtd2FyZSwgd2UgYWxzbwpuZWVkIHRvIG1ha2Ug c3VyZSB0aGF0IHdlIGhhdmUgYSB2YWxpZCBicC0+ZndfaGVhbHRoIGJlZm9yZSBwcm9jZWVkaW5n LgoKRml4ZXM6IDA3ZjgzZDcyZDIzOCAoImJueHRfZW46IERpc2NvdmVyIGZpcm13YXJlIGVycm9y IHJlY292ZXJ5IGNhcGFiaWxpdGllcy4iKQpTaWduZWQtb2ZmLWJ5OiBWYXN1bmRoYXJhIFZvbGFt IDx2YXN1bmRoYXJhLXYudm9sYW1AYnJvYWRjb20uY29tPgpTaWduZWQtb2ZmLWJ5OiBNaWNoYWVs IENoYW4gPG1pY2hhZWwuY2hhbkBicm9hZGNvbS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMu IE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9i cm9hZGNvbS9ibnh0L2JueHQuYyB8IDM2ICsrKysrKysrKysrKysrKystLS0tLS0tCiBkcml2ZXJz L25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHQuaCB8ICAxICsKIDIgZmlsZXMgY2hhbmdl ZCwgMjcgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5l dC9icm9hZGNvbS9ibnh0L2JueHQuYwppbmRleCBhMjNmNTgyNDQyZTAuLmE1ZTQ3YjZlNjE0MiAx MDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0LmMKKysr IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0LmMKQEAgLTE5OTUsNiAr MTk5NSw5IEBAIHN0YXRpYyBpbnQgYm54dF9hc3luY19ldmVudF9wcm9jZXNzKHN0cnVjdCBibnh0 ICpicCwKIAljYXNlIEFTWU5DX0VWRU5UX0NNUExfRVZFTlRfSURfUkVTRVRfTk9USUZZOiB7CiAJ CXUzMiBkYXRhMSA9IGxlMzJfdG9fY3B1KGNtcGwtPmV2ZW50X2RhdGExKTsKIAorCQlpZiAoIWJw LT5md19oZWFsdGgpCisJCQlnb3RvIGFzeW5jX2V2ZW50X3Byb2Nlc3NfZXhpdDsKKwogCQlicC0+ ZndfcmVzZXRfdGltZXN0YW1wID0gamlmZmllczsKIAkJYnAtPmZ3X3Jlc2V0X21pbl9kc2VjcyA9 IGNtcGwtPnRpbWVzdGFtcF9sbzsKIAkJaWYgKCFicC0+ZndfcmVzZXRfbWluX2RzZWNzKQpAQCAt NDQzOCw4ICs0NDQxLDkgQEAgc3RhdGljIGludCBibnh0X2h3cm1fZnVuY19kcnZfcmd0cihzdHJ1 Y3QgYm54dCAqYnApCiAJCQkgICAgRlVOQ19EUlZfUkdUUl9SRVFfRU5BQkxFU19WRVIpOwogCiAJ cmVxLm9zX3R5cGUgPSBjcHVfdG9fbGUxNihGVU5DX0RSVl9SR1RSX1JFUV9PU19UWVBFX0xJTlVY KTsKLQlmbGFncyA9IEZVTkNfRFJWX1JHVFJfUkVRX0ZMQUdTXzE2QklUX1ZFUl9NT0RFIHwKLQkJ RlVOQ19EUlZfUkdUUl9SRVFfRkxBR1NfSE9UX1JFU0VUX1NVUFBPUlQ7CisJZmxhZ3MgPSBGVU5D X0RSVl9SR1RSX1JFUV9GTEFHU18xNkJJVF9WRVJfTU9ERTsKKwlpZiAoYnAtPmZ3X2NhcCAmIEJO WFRfRldfQ0FQX0hPVF9SRVNFVCkKKwkJZmxhZ3MgfD0gRlVOQ19EUlZfUkdUUl9SRVFfRkxBR1Nf SE9UX1JFU0VUX1NVUFBPUlQ7CiAJaWYgKGJwLT5md19jYXAgJiBCTlhUX0ZXX0NBUF9FUlJPUl9S RUNPVkVSWSkKIAkJZmxhZ3MgfD0gRlVOQ19EUlZfUkdUUl9SRVFfRkxBR1NfRVJST1JfUkVDT1ZF UllfU1VQUE9SVDsKIAlyZXEuZmxhZ3MgPSBjcHVfdG9fbGUzMihmbGFncyk7CkBAIC03MDk2LDE0 ICs3MTAwLDYgQEAgc3RhdGljIGludCBibnh0X2h3cm1fZXJyb3JfcmVjb3ZlcnlfcWNmZyhzdHJ1 Y3QgYm54dCAqYnApCiAJcmMgPSBfaHdybV9zZW5kX21lc3NhZ2UoYnAsICZyZXEsIHNpemVvZihy ZXEpLCBIV1JNX0NNRF9USU1FT1VUKTsKIAlpZiAocmMpCiAJCWdvdG8gZXJyX3JlY292ZXJ5X291 dDsKLQlpZiAoIWZ3X2hlYWx0aCkgewotCQlmd19oZWFsdGggPSBremFsbG9jKHNpemVvZigqZndf aGVhbHRoKSwgR0ZQX0tFUk5FTCk7Ci0JCWJwLT5md19oZWFsdGggPSBmd19oZWFsdGg7Ci0JCWlm ICghZndfaGVhbHRoKSB7Ci0JCQlyYyA9IC1FTk9NRU07Ci0JCQlnb3RvIGVycl9yZWNvdmVyeV9v dXQ7Ci0JCX0KLQl9CiAJZndfaGVhbHRoLT5mbGFncyA9IGxlMzJfdG9fY3B1KHJlc3AtPmZsYWdz KTsKIAlpZiAoKGZ3X2hlYWx0aC0+ZmxhZ3MgJiBFUlJPUl9SRUNPVkVSWV9RQ0ZHX1JFU1BfRkxB R1NfQ09fQ1BVKSAmJgogCSAgICAhKGJwLT5md19jYXAgJiBCTlhUX0ZXX0NBUF9LT05HX01CX0NI TkwpKSB7CkBAIC0xMDQxOSw2ICsxMDQxNSwyMyBAQCBzdGF0aWMgdm9pZCBibnh0X2luaXRfZGZs dF9jb2FsKHN0cnVjdCBibnh0ICpicCkKIAlicC0+c3RhdHNfY29hbF90aWNrcyA9IEJOWFRfREVG X1NUQVRTX0NPQUxfVElDS1M7CiB9CiAKK3N0YXRpYyB2b2lkIGJueHRfYWxsb2NfZndfaGVhbHRo KHN0cnVjdCBibnh0ICpicCkKK3sKKwlpZiAoYnAtPmZ3X2hlYWx0aCkKKwkJcmV0dXJuOworCisJ aWYgKCEoYnAtPmZ3X2NhcCAmIEJOWFRfRldfQ0FQX0hPVF9SRVNFVCkgJiYKKwkgICAgIShicC0+ ZndfY2FwICYgQk5YVF9GV19DQVBfRVJST1JfUkVDT1ZFUlkpKQorCQlyZXR1cm47CisKKwlicC0+ ZndfaGVhbHRoID0ga3phbGxvYyhzaXplb2YoKmJwLT5md19oZWFsdGgpLCBHRlBfS0VSTkVMKTsK KwlpZiAoIWJwLT5md19oZWFsdGgpIHsKKwkJbmV0ZGV2X3dhcm4oYnAtPmRldiwgIkZhaWxlZCB0 byBhbGxvY2F0ZSBmd19oZWFsdGhcbiIpOworCQlicC0+ZndfY2FwICY9IH5CTlhUX0ZXX0NBUF9I T1RfUkVTRVQ7CisJCWJwLT5md19jYXAgJj0gfkJOWFRfRldfQ0FQX0VSUk9SX1JFQ09WRVJZOwor CX0KK30KKwogc3RhdGljIGludCBibnh0X2Z3X2luaXRfb25lX3AxKHN0cnVjdCBibnh0ICpicCkK IHsKIAlpbnQgcmM7CkBAIC0xMDQ2NSw2ICsxMDQ3OCw3IEBAIHN0YXRpYyBpbnQgYm54dF9md19p bml0X29uZV9wMihzdHJ1Y3QgYm54dCAqYnApCiAJCW5ldGRldl93YXJuKGJwLT5kZXYsICJod3Jt IHF1ZXJ5IGFkdiBmbG93IG1nbnQgZmFpbHVyZSByYzogJWRcbiIsCiAJCQkgICAgcmMpOwogCisJ Ym54dF9hbGxvY19md19oZWFsdGgoYnApOwogCXJjID0gYm54dF9od3JtX2Vycm9yX3JlY292ZXJ5 X3FjZmcoYnApOwogCWlmIChyYykKIAkJbmV0ZGV2X3dhcm4oYnAtPmRldiwgImh3cm0gcXVlcnkg ZXJyb3IgcmVjb3ZlcnkgZmFpbHVyZSByYzogJWRcbiIsCkBAIC0xMTM0NCw2ICsxMTM1OCw4IEBA IHN0YXRpYyB2b2lkIGJueHRfcmVtb3ZlX29uZShzdHJ1Y3QgcGNpX2RldiAqcGRldikKIAlibnh0 X2RjYl9mcmVlKGJwKTsKIAlrZnJlZShicC0+ZWRldik7CiAJYnAtPmVkZXYgPSBOVUxMOworCWtm cmVlKGJwLT5md19oZWFsdGgpOworCWJwLT5md19oZWFsdGggPSBOVUxMOwogCWJueHRfY2xlYW51 cF9wY2koYnApOwogCWJueHRfZnJlZV9jdHhfbWVtKGJwKTsKIAlrZnJlZShicC0+Y3R4KTsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueHQvYm54dC5oIGIvZHJp dmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0LmgKaW5kZXggNTE2M2JiODQ4NjE4 Li5kYzI2ZTNhY2U0M2YgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29t L2JueHQvYm54dC5oCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueHQvYm54 dC5oCkBAIC0xNjU4LDYgKzE2NTgsNyBAQCBzdHJ1Y3QgYm54dCB7CiAJI2RlZmluZSBCTlhUX0ZX X0NBUF9QQ0lFX1NUQVRTX1NVUFBPUlRFRAkweDAwMDIwMDAwCiAJI2RlZmluZSBCTlhUX0ZXX0NB UF9FWFRfU1RBVFNfU1VQUE9SVEVECQkweDAwMDQwMDAwCiAJI2RlZmluZSBCTlhUX0ZXX0NBUF9F UlJfUkVDT1ZFUl9SRUxPQUQJCTB4MDAxMDAwMDAKKwkjZGVmaW5lIEJOWFRfRldfQ0FQX0hPVF9S RVNFVAkJCTB4MDAyMDAwMDAKIAogI2RlZmluZSBCTlhUX05FV19STShicCkJCSgoYnApLT5md19j YXAgJiBCTlhUX0ZXX0NBUF9ORVdfUk0pCiAJdTMyCQkJaHdybV9zcGVjX2NvZGU7Ci0tIAoyLjIw LjEKCgpGcm9tIGI1Mjc3YTUwY2I2NzczOTgxZWVhNjNkZjUyODJhY2M0YmRmNzZhNzMgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IFZhc3VuZGhhcmEgVm9sYW0gPHZhc3VuZGhhcmEtdi52 b2xhbUBicm9hZGNvbS5jb20+CkRhdGU6IFR1ZSwgMTAgRGVjIDIwMTkgMDI6NDk6MTEgLTA1MDAK U3ViamVjdDogW1BBVENIIDE3LzQ2XSBibnh0X2VuOiBSZW1vdmUgdW5uZWNlc3NhcnkgTlVMTCBj aGVja3MgZm9yIGZ3X2hlYWx0aAoKWyBVcHN0cmVhbSBjb21taXQgMDc5N2MxMGQyZDFmYTBkNmYx NDYxMjQwNDc4MWIzNDhmYzc1N2MzZSBdCgpBZnRlciBmaXhpbmcgdGhlIGFsbG9jYXRpb24gb2Yg YnAtPmZ3X2hlYWx0aCBpbiB0aGUgcHJldmlvdXMgcGF0Y2gsCnRoZSBkcml2ZXIgd2lsbCBub3Qg Z28gdGhyb3VnaCB0aGUgZncgcmVzZXQgYW5kIHJlY292ZXJ5IGNvZGUgcGF0aHMKaWYgYnAtPmZ3 X2hlYWx0aCBhbGxvY2F0aW9uIGZhaWxzLiAgU28gd2UgY2FuIG5vdyByZW1vdmUgdGhlCnVubmVj ZXNzYXJ5IE5VTEwgY2hlY2tzLgoKU2lnbmVkLW9mZi1ieTogVmFzdW5kaGFyYSBWb2xhbSA8dmFz dW5kaGFyYS12LnZvbGFtQGJyb2FkY29tLmNvbT4KU2lnbmVkLW9mZi1ieTogTWljaGFlbCBDaGFu IDxtaWNoYWVsLmNoYW5AYnJvYWRjb20uY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxs ZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRj b20vYm54dC9ibnh0LmMgICAgICAgICB8IDYgKystLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9i cm9hZGNvbS9ibnh0L2JueHRfZGV2bGluay5jIHwgNiArLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwg MyBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0 L2V0aGVybmV0L2Jyb2FkY29tL2JueHQvYm54dC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJv YWRjb20vYm54dC9ibnh0LmMKaW5kZXggYTVlNDdiNmU2MTQyLi42ZWUwOGYyYmE5MDkgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueHQvYm54dC5jCisrKyBiL2Ry aXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueHQvYm54dC5jCkBAIC05OTUzLDggKzk5NTMs NyBAQCBzdGF0aWMgdm9pZCBibnh0X2Z3X2hlYWx0aF9jaGVjayhzdHJ1Y3QgYm54dCAqYnApCiAJ c3RydWN0IGJueHRfZndfaGVhbHRoICpmd19oZWFsdGggPSBicC0+ZndfaGVhbHRoOwogCXUzMiB2 YWw7CiAKLQlpZiAoIWZ3X2hlYWx0aCB8fCAhZndfaGVhbHRoLT5lbmFibGVkIHx8Ci0JICAgIHRl c3RfYml0KEJOWFRfU1RBVEVfSU5fRldfUkVTRVQsICZicC0+c3RhdGUpKQorCWlmICghZndfaGVh bHRoLT5lbmFibGVkIHx8IHRlc3RfYml0KEJOWFRfU1RBVEVfSU5fRldfUkVTRVQsICZicC0+c3Rh dGUpKQogCQlyZXR1cm47CiAKIAlpZiAoZndfaGVhbHRoLT50bXJfY291bnRlcikgewpAQCAtMTA2 OTcsOCArMTA2OTYsNyBAQCBzdGF0aWMgdm9pZCBibnh0X2Z3X3Jlc2V0X3Rhc2soc3RydWN0IHdv cmtfc3RydWN0ICp3b3JrKQogCQlibnh0X3F1ZXVlX2Z3X3Jlc2V0X3dvcmsoYnAsIGJwLT5md19y ZXNldF9taW5fZHNlY3MgKiBIWiAvIDEwKTsKIAkJcmV0dXJuOwogCWNhc2UgQk5YVF9GV19SRVNF VF9TVEFURV9FTkFCTEVfREVWOgotCQlpZiAodGVzdF9iaXQoQk5YVF9TVEFURV9GV19GQVRBTF9D T05ELCAmYnAtPnN0YXRlKSAmJgotCQkgICAgYnAtPmZ3X2hlYWx0aCkgeworCQlpZiAodGVzdF9i aXQoQk5YVF9TVEFURV9GV19GQVRBTF9DT05ELCAmYnAtPnN0YXRlKSkgewogCQkJdTMyIHZhbDsK IAogCQkJdmFsID0gYm54dF9md19oZWFsdGhfcmVhZGwoYnAsCmRpZmYgLS1naXQgYS9kcml2ZXJz L25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHRfZGV2bGluay5jIGIvZHJpdmVycy9uZXQv ZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0X2RldmxpbmsuYwppbmRleCA3ZDJjZmVhMDU3Mzcu LmZmYzM2ZDZkZjMwNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20v Ym54dC9ibnh0X2RldmxpbmsuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9i bnh0L2JueHRfZGV2bGluay5jCkBAIC0xOSwxMSArMTksMTAgQEAgc3RhdGljIGludCBibnh0X2Z3 X3JlcG9ydGVyX2RpYWdub3NlKHN0cnVjdCBkZXZsaW5rX2hlYWx0aF9yZXBvcnRlciAqcmVwb3J0 ZXIsCiAJCQkJICAgICBzdHJ1Y3QgZGV2bGlua19mbXNnICpmbXNnKQogewogCXN0cnVjdCBibnh0 ICpicCA9IGRldmxpbmtfaGVhbHRoX3JlcG9ydGVyX3ByaXYocmVwb3J0ZXIpOwotCXN0cnVjdCBi bnh0X2Z3X2hlYWx0aCAqaGVhbHRoID0gYnAtPmZ3X2hlYWx0aDsKIAl1MzIgdmFsLCBoZWFsdGhf c3RhdHVzOwogCWludCByYzsKIAotCWlmICghaGVhbHRoIHx8IHRlc3RfYml0KEJOWFRfU1RBVEVf SU5fRldfUkVTRVQsICZicC0+c3RhdGUpKQorCWlmICh0ZXN0X2JpdChCTlhUX1NUQVRFX0lOX0ZX X1JFU0VULCAmYnAtPnN0YXRlKSkKIAkJcmV0dXJuIDA7CiAKIAl2YWwgPSBibnh0X2Z3X2hlYWx0 aF9yZWFkbChicCwgQk5YVF9GV19IRUFMVEhfUkVHKTsKQEAgLTE2Miw5ICsxNjEsNiBAQCB2b2lk IGJueHRfZGV2bGlua19oZWFsdGhfcmVwb3J0KHN0cnVjdCBibnh0ICpicCwgdW5zaWduZWQgbG9u ZyBldmVudCkKIAlzdHJ1Y3QgYm54dF9md19oZWFsdGggKmZ3X2hlYWx0aCA9IGJwLT5md19oZWFs dGg7CiAJc3RydWN0IGJueHRfZndfcmVwb3J0ZXJfY3R4IGZ3X3JlcG9ydGVyX2N0eDsKIAotCWlm ICghZndfaGVhbHRoKQotCQlyZXR1cm47Ci0KIAlmd19yZXBvcnRlcl9jdHguc3BfZXZlbnQgPSBl dmVudDsKIAlzd2l0Y2ggKGV2ZW50KSB7CiAJY2FzZSBCTlhUX0ZXX1JFU0VUX05PVElGWV9TUF9F VkVOVDoKLS0gCjIuMjAuMQoKCkZyb20gMmU4Y2JjMGMwNTY5NjA5YzdiZTEwYTFkNmQzZWM2MWIz ZDk3ZDcwZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogVmFzdW5kaGFyYSBWb2xhbSA8 dmFzdW5kaGFyYS12LnZvbGFtQGJyb2FkY29tLmNvbT4KRGF0ZTogVHVlLCAxMCBEZWMgMjAxOSAw Mjo0OToxMiAtMDUwMApTdWJqZWN0OiBbUEFUQ0ggMTgvNDZdIGJueHRfZW46IEZpeCB0aGUgbG9n aWMgdGhhdCBjcmVhdGVzIHRoZSBoZWFsdGgKIHJlcG9ydGVycy4KClsgVXBzdHJlYW0gY29tbWl0 IDkzN2YxODhjMWY0Zjg5YjNmYTkzYmEzMWZjODU4N2RjMWZiMTRhMjIgXQoKRml4IHRoZSBsb2dp YyB0byBwcm9wZXJseSBjaGVjayB0aGUgZncgY2FwYWJpbGl0aWVzIGFuZCBjcmVhdGUgdGhlCmRl dmxpbmsgaGVhbHRoIHJlcG9ydGVycyBvbmx5IHdoZW4gbmVlZGVkLiAgVGhlIGN1cnJlbnQgY29k ZSBjcmVhdGVzCnRoZSByZXBvcnRlcnMgdW5jb25kaXRpb25hbGx5IGFzIGxvbmcgYXMgYnAtPmZ3 X2hlYWx0aCBpcyB2YWxpZCwgYW5kCnRoYXQncyBub3QgY29ycmVjdC4KCkNhbGwgYm54dF9kbF9m d19yZXBvcnRlcnNfY3JlYXRlKCkgZGlyZWN0bHkgZnJvbSB0aGUgaW5pdCBhbmQgcmVzZXQKY29k ZSBwYXRoIGluc3RlYWQgb2YgZnJvbSBibnh0X2RsX3JlZ2lzdGVyKCkuICBUaGlzIGFsbG93cyB0 aGUKcmVwb3J0ZXJzIHRvIGJlIGFkanVzdGVkIHdoZW4gY2FwYWJpbGl0aWVzIGNoYW5nZS4gIFRo ZSBzYW1lCmFwcGxpZXMgdG8gYm54dF9kbF9md19yZXBvcnRlcnNfZGVzdHJveSgpLgoKRml4ZXM6 IDY3NjNjNzc5YzJkOCAoImJueHRfZW46IEFkZCBuZXcgRlcgZGV2bGlua19oZWFsdGhfcmVwb3J0 ZXIiKQpTaWduZWQtb2ZmLWJ5OiBWYXN1bmRoYXJhIFZvbGFtIDx2YXN1bmRoYXJhLXYudm9sYW1A YnJvYWRjb20uY29tPgpTaWduZWQtb2ZmLWJ5OiBNaWNoYWVsIENoYW4gPG1pY2hhZWwuY2hhbkBi cm9hZGNvbS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHQuYyAg ICAgfCAxMSArKystCiAuLi4vbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueHQvYm54dF9kZXZsaW5r LmMgfCA2NCArKysrKysrKysrKysrLS0tLS0tCiAuLi4vbmV0L2V0aGVybmV0L2Jyb2FkY29tL2Ju eHQvYm54dF9kZXZsaW5rLmggfCAgMiArCiAzIGZpbGVzIGNoYW5nZWQsIDU2IGluc2VydGlvbnMo KyksIDIxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jy b2FkY29tL2JueHQvYm54dC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9i bnh0LmMKaW5kZXggNmVlMDhmMmJhOTA5Li4wN2ZhNmRiYTMyNDIgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueHQvYm54dC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0 aGVybmV0L2Jyb2FkY29tL2JueHQvYm54dC5jCkBAIC0xMDU2Myw2ICsxMDU2MywxMiBAQCBzdGF0 aWMgaW50IGJueHRfZndfaW5pdF9vbmUoc3RydWN0IGJueHQgKmJwKQogCXJjID0gYm54dF9hcHBy b3ZlX21hYyhicCwgYnAtPmRldi0+ZGV2X2FkZHIsIGZhbHNlKTsKIAlpZiAocmMpCiAJCXJldHVy biByYzsKKworCS8qIEluIGNhc2UgZncgY2FwYWJpbGl0aWVzIGhhdmUgY2hhbmdlZCwgZGVzdHJv eSB0aGUgdW5uZWVkZWQKKwkgKiByZXBvcnRlcnMgYW5kIGNyZWF0ZSBuZXdseSBjYXBhYmxlIG9u ZXMuCisJICovCisJYm54dF9kbF9md19yZXBvcnRlcnNfZGVzdHJveShicCwgZmFsc2UpOworCWJu eHRfZGxfZndfcmVwb3J0ZXJzX2NyZWF0ZShicCk7CiAJYm54dF9md19pbml0X29uZV9wMyhicCk7 CiAJcmV0dXJuIDA7CiB9CkBAIC0xMTMzOSw2ICsxMTM0NSw3IEBAIHN0YXRpYyB2b2lkIGJueHRf cmVtb3ZlX29uZShzdHJ1Y3QgcGNpX2RldiAqcGRldikKIAogCWlmIChCTlhUX1BGKGJwKSkgewog CQlibnh0X3NyaW92X2Rpc2FibGUoYnApOworCQlibnh0X2RsX2Z3X3JlcG9ydGVyc19kZXN0cm95 KGJwLCB0cnVlKTsKIAkJYm54dF9kbF91bnJlZ2lzdGVyKGJwKTsKIAl9CiAKQEAgLTExODM3LDgg KzExODQ0LDEwIEBAIHN0YXRpYyBpbnQgYm54dF9pbml0X29uZShzdHJ1Y3QgcGNpX2RldiAqcGRl diwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmVudCkKIAlpZiAocmMpCiAJCWdvdG8gaW5p dF9lcnJfY2xlYW51cF90YzsKIAotCWlmIChCTlhUX1BGKGJwKSkKKwlpZiAoQk5YVF9QRihicCkp IHsKIAkJYm54dF9kbF9yZWdpc3RlcihicCk7CisJCWJueHRfZGxfZndfcmVwb3J0ZXJzX2NyZWF0 ZShicCk7CisJfQogCiAJbmV0ZGV2X2luZm8oZGV2LCAiJXMgZm91bmQgYXQgbWVtICVseCwgbm9k ZSBhZGRyICVwTVxuIiwKIAkJICAgIGJvYXJkX2luZm9bZW50LT5kcml2ZXJfZGF0YV0ubmFtZSwK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueHQvYm54dF9kZXZs aW5rLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHRfZGV2bGluay5j CmluZGV4IGZmYzM2ZDZkZjMwNC4uYWRiODc2MzhlMzMwIDEwMDY0NAotLS0gYS9kcml2ZXJzL25l dC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHRfZGV2bGluay5jCisrKyBiL2RyaXZlcnMvbmV0 L2V0aGVybmV0L2Jyb2FkY29tL2JueHQvYm54dF9kZXZsaW5rLmMKQEAgLTEwMiwyMSArMTAyLDE1 IEBAIHN0cnVjdCBkZXZsaW5rX2hlYWx0aF9yZXBvcnRlcl9vcHMgYm54dF9kbF9md19mYXRhbF9y ZXBvcnRlcl9vcHMgPSB7CiAJLnJlY292ZXIgPSBibnh0X2Z3X2ZhdGFsX3JlY292ZXIsCiB9Owog Ci1zdGF0aWMgdm9pZCBibnh0X2RsX2Z3X3JlcG9ydGVyc19jcmVhdGUoc3RydWN0IGJueHQgKmJw KQordm9pZCBibnh0X2RsX2Z3X3JlcG9ydGVyc19jcmVhdGUoc3RydWN0IGJueHQgKmJwKQogewog CXN0cnVjdCBibnh0X2Z3X2hlYWx0aCAqaGVhbHRoID0gYnAtPmZ3X2hlYWx0aDsKIAotCWlmICgh aGVhbHRoKQorCWlmICghYnAtPmRsIHx8ICFoZWFsdGgpCiAJCXJldHVybjsKIAotCWhlYWx0aC0+ ZndfcmVwb3J0ZXIgPQotCQlkZXZsaW5rX2hlYWx0aF9yZXBvcnRlcl9jcmVhdGUoYnAtPmRsLCAm Ym54dF9kbF9md19yZXBvcnRlcl9vcHMsCi0JCQkJCSAgICAgICAwLCBmYWxzZSwgYnApOwotCWlm IChJU19FUlIoaGVhbHRoLT5md19yZXBvcnRlcikpIHsKLQkJbmV0ZGV2X3dhcm4oYnAtPmRldiwg IkZhaWxlZCB0byBjcmVhdGUgRlcgaGVhbHRoIHJlcG9ydGVyLCByYyA9ICVsZFxuIiwKLQkJCSAg ICBQVFJfRVJSKGhlYWx0aC0+ZndfcmVwb3J0ZXIpKTsKLQkJaGVhbHRoLT5md19yZXBvcnRlciA9 IE5VTEw7Ci0JfQorCWlmICghKGJwLT5md19jYXAgJiBCTlhUX0ZXX0NBUF9IT1RfUkVTRVQpIHx8 IGhlYWx0aC0+ZndfcmVzZXRfcmVwb3J0ZXIpCisJCWdvdG8gZXJyX3JlY292ZXJ5OwogCiAJaGVh bHRoLT5md19yZXNldF9yZXBvcnRlciA9CiAJCWRldmxpbmtfaGVhbHRoX3JlcG9ydGVyX2NyZWF0 ZShicC0+ZGwsCkBAIC0xMjYsOCArMTIwLDMwIEBAIHN0YXRpYyB2b2lkIGJueHRfZGxfZndfcmVw b3J0ZXJzX2NyZWF0ZShzdHJ1Y3QgYm54dCAqYnApCiAJCW5ldGRldl93YXJuKGJwLT5kZXYsICJG YWlsZWQgdG8gY3JlYXRlIEZXIGZhdGFsIGhlYWx0aCByZXBvcnRlciwgcmMgPSAlbGRcbiIsCiAJ CQkgICAgUFRSX0VSUihoZWFsdGgtPmZ3X3Jlc2V0X3JlcG9ydGVyKSk7CiAJCWhlYWx0aC0+Zndf cmVzZXRfcmVwb3J0ZXIgPSBOVUxMOworCQlicC0+ZndfY2FwICY9IH5CTlhUX0ZXX0NBUF9IT1Rf UkVTRVQ7CiAJfQogCitlcnJfcmVjb3Zlcnk6CisJaWYgKCEoYnAtPmZ3X2NhcCAmIEJOWFRfRldf Q0FQX0VSUk9SX1JFQ09WRVJZKSkKKwkJcmV0dXJuOworCisJaWYgKCFoZWFsdGgtPmZ3X3JlcG9y dGVyKSB7CisJCWhlYWx0aC0+ZndfcmVwb3J0ZXIgPQorCQkJZGV2bGlua19oZWFsdGhfcmVwb3J0 ZXJfY3JlYXRlKGJwLT5kbCwKKwkJCQkJCSAgICAgICAmYm54dF9kbF9md19yZXBvcnRlcl9vcHMs CisJCQkJCQkgICAgICAgMCwgZmFsc2UsIGJwKTsKKwkJaWYgKElTX0VSUihoZWFsdGgtPmZ3X3Jl cG9ydGVyKSkgeworCQkJbmV0ZGV2X3dhcm4oYnAtPmRldiwgIkZhaWxlZCB0byBjcmVhdGUgRlcg aGVhbHRoIHJlcG9ydGVyLCByYyA9ICVsZFxuIiwKKwkJCQkgICAgUFRSX0VSUihoZWFsdGgtPmZ3 X3JlcG9ydGVyKSk7CisJCQloZWFsdGgtPmZ3X3JlcG9ydGVyID0gTlVMTDsKKwkJCWJwLT5md19j YXAgJj0gfkJOWFRfRldfQ0FQX0VSUk9SX1JFQ09WRVJZOworCQkJcmV0dXJuOworCQl9CisJfQor CisJaWYgKGhlYWx0aC0+ZndfZmF0YWxfcmVwb3J0ZXIpCisJCXJldHVybjsKKwogCWhlYWx0aC0+ ZndfZmF0YWxfcmVwb3J0ZXIgPQogCQlkZXZsaW5rX2hlYWx0aF9yZXBvcnRlcl9jcmVhdGUoYnAt PmRsLAogCQkJCQkgICAgICAgJmJueHRfZGxfZndfZmF0YWxfcmVwb3J0ZXJfb3BzLApAQCAtMTM2 LDI0ICsxNTIsMzUgQEAgc3RhdGljIHZvaWQgYm54dF9kbF9md19yZXBvcnRlcnNfY3JlYXRlKHN0 cnVjdCBibnh0ICpicCkKIAkJbmV0ZGV2X3dhcm4oYnAtPmRldiwgIkZhaWxlZCB0byBjcmVhdGUg RlcgZmF0YWwgaGVhbHRoIHJlcG9ydGVyLCByYyA9ICVsZFxuIiwKIAkJCSAgICBQVFJfRVJSKGhl YWx0aC0+ZndfZmF0YWxfcmVwb3J0ZXIpKTsKIAkJaGVhbHRoLT5md19mYXRhbF9yZXBvcnRlciA9 IE5VTEw7CisJCWJwLT5md19jYXAgJj0gfkJOWFRfRldfQ0FQX0VSUk9SX1JFQ09WRVJZOwogCX0K IH0KIAotc3RhdGljIHZvaWQgYm54dF9kbF9md19yZXBvcnRlcnNfZGVzdHJveShzdHJ1Y3QgYm54 dCAqYnApCit2b2lkIGJueHRfZGxfZndfcmVwb3J0ZXJzX2Rlc3Ryb3koc3RydWN0IGJueHQgKmJw LCBib29sIGFsbCkKIHsKIAlzdHJ1Y3QgYm54dF9md19oZWFsdGggKmhlYWx0aCA9IGJwLT5md19o ZWFsdGg7CiAKLQlpZiAoIWhlYWx0aCkKKwlpZiAoIWJwLT5kbCB8fCAhaGVhbHRoKQogCQlyZXR1 cm47CiAKLQlpZiAoaGVhbHRoLT5md19yZXBvcnRlcikKLQkJZGV2bGlua19oZWFsdGhfcmVwb3J0 ZXJfZGVzdHJveShoZWFsdGgtPmZ3X3JlcG9ydGVyKTsKLQotCWlmIChoZWFsdGgtPmZ3X3Jlc2V0 X3JlcG9ydGVyKQorCWlmICgoYWxsIHx8ICEoYnAtPmZ3X2NhcCAmIEJOWFRfRldfQ0FQX0hPVF9S RVNFVCkpICYmCisJICAgIGhlYWx0aC0+ZndfcmVzZXRfcmVwb3J0ZXIpIHsKIAkJZGV2bGlua19o ZWFsdGhfcmVwb3J0ZXJfZGVzdHJveShoZWFsdGgtPmZ3X3Jlc2V0X3JlcG9ydGVyKTsKKwkJaGVh bHRoLT5md19yZXNldF9yZXBvcnRlciA9IE5VTEw7CisJfQogCi0JaWYgKGhlYWx0aC0+ZndfZmF0 YWxfcmVwb3J0ZXIpCisJaWYgKChicC0+ZndfY2FwICYgQk5YVF9GV19DQVBfRVJST1JfUkVDT1ZF UlkpICYmICFhbGwpCisJCXJldHVybjsKKworCWlmIChoZWFsdGgtPmZ3X3JlcG9ydGVyKSB7CisJ CWRldmxpbmtfaGVhbHRoX3JlcG9ydGVyX2Rlc3Ryb3koaGVhbHRoLT5md19yZXBvcnRlcik7CisJ CWhlYWx0aC0+ZndfcmVwb3J0ZXIgPSBOVUxMOworCX0KKworCWlmIChoZWFsdGgtPmZ3X2ZhdGFs X3JlcG9ydGVyKSB7CiAJCWRldmxpbmtfaGVhbHRoX3JlcG9ydGVyX2Rlc3Ryb3koaGVhbHRoLT5m d19mYXRhbF9yZXBvcnRlcik7CisJCWhlYWx0aC0+ZndfZmF0YWxfcmVwb3J0ZXIgPSBOVUxMOwor CX0KIH0KIAogdm9pZCBibnh0X2RldmxpbmtfaGVhbHRoX3JlcG9ydChzdHJ1Y3QgYm54dCAqYnAs IHVuc2lnbmVkIGxvbmcgZXZlbnQpCkBAIC00NTgsOCArNDg1LDYgQEAgaW50IGJueHRfZGxfcmVn aXN0ZXIoc3RydWN0IGJueHQgKmJwKQogCiAJZGV2bGlua19wYXJhbXNfcHVibGlzaChkbCk7CiAK LQlibnh0X2RsX2Z3X3JlcG9ydGVyc19jcmVhdGUoYnApOwotCiAJcmV0dXJuIDA7CiAKIGVycl9k bF9wb3J0X3VucmVnOgpAQCAtNDgyLDcgKzUwNyw2IEBAIHZvaWQgYm54dF9kbF91bnJlZ2lzdGVy KHN0cnVjdCBibnh0ICpicCkKIAlpZiAoIWRsKQogCQlyZXR1cm47CiAKLQlibnh0X2RsX2Z3X3Jl cG9ydGVyc19kZXN0cm95KGJwKTsKIAlkZXZsaW5rX3BvcnRfcGFyYW1zX3VucmVnaXN0ZXIoJmJw LT5kbF9wb3J0LCBibnh0X2RsX3BvcnRfcGFyYW1zLAogCQkJCSAgICAgICBBUlJBWV9TSVpFKGJu eHRfZGxfcG9ydF9wYXJhbXMpKTsKIAlkZXZsaW5rX3BvcnRfdW5yZWdpc3RlcigmYnAtPmRsX3Bv cnQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0 X2RldmxpbmsuaCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueHQvYm54dF9kZXZs aW5rLmgKaW5kZXggMmY0ZmQwYTdkMDRiLi42ODljNDdhYjIxNTUgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueHQvYm54dF9kZXZsaW5rLmgKKysrIGIvZHJpdmVy cy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0X2RldmxpbmsuaApAQCAtNTcsNiArNTcs OCBAQCBzdHJ1Y3QgYm54dF9kbF9udm1fcGFyYW0gewogfTsKIAogdm9pZCBibnh0X2Rldmxpbmtf aGVhbHRoX3JlcG9ydChzdHJ1Y3QgYm54dCAqYnAsIHVuc2lnbmVkIGxvbmcgZXZlbnQpOwordm9p ZCBibnh0X2RsX2Z3X3JlcG9ydGVyc19jcmVhdGUoc3RydWN0IGJueHQgKmJwKTsKK3ZvaWQgYm54 dF9kbF9md19yZXBvcnRlcnNfZGVzdHJveShzdHJ1Y3QgYm54dCAqYnAsIGJvb2wgYWxsKTsKIGlu dCBibnh0X2RsX3JlZ2lzdGVyKHN0cnVjdCBibnh0ICpicCk7CiB2b2lkIGJueHRfZGxfdW5yZWdp c3RlcihzdHJ1Y3QgYm54dCAqYnApOwogCi0tIAoyLjIwLjEKCgpGcm9tIGI0ZTllZDY2ZGM2OTQz MmNhODRiZmJmNGZiY2ZkOWJmMzc0YWQ0ZjggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IFZhc3VuZGhhcmEgVm9sYW0gPHZhc3VuZGhhcmEtdi52b2xhbUBicm9hZGNvbS5jb20+CkRhdGU6 IFR1ZSwgMTAgRGVjIDIwMTkgMDI6NDk6MTMgLTA1MDAKU3ViamVjdDogW1BBVENIIDE5LzQ2XSBi bnh0X2VuOiBBZGQgbWlzc2luZyBkZXZsaW5rIGhlYWx0aCByZXBvcnRlcnMgZm9yIFZGcy4KClsg VXBzdHJlYW0gY29tbWl0IDdlMzM0ZmM4MDAzYzdhMzgzNzJjYzk4ZTdiZTYwODI2NzBhNDdkMjkg XQoKVGhlIFZGIGRyaXZlciBhbHNvIG5lZWRzIHRvIGNyZWF0ZSB0aGUgaGVhbHRoIHJlcG9ydGVy cyBzaW5jZQpWRnMgYXJlIGFsc28gaW52b2x2ZWQgaW4gZmlybXdhcmUgcmVzZXQgYW5kIHJlY292 ZXJ5LiAgTW9kaWZ5CmJueHRfZGxfcmVnaXN0ZXIoKSBhbmQgYm54dF9kbF91bnJlZ2lzdGVyKCkg c28gdGhhdCB0aGV5IGNhbgpiZSBjYWxsZWQgYnkgdGhlIFZGcyB0byByZWdpc3Rlci91bnJlZ2lz dGVyIGRldmxpbmsuICBPbmx5IHRoZSBQRgp3aWxsIHJlZ2lzdGVyIHRoZSBkZXZsaW5rIHBhcmFt ZXRlcnMuICBXaXRoIGRldmxpbmsgcmVnaXN0ZXJlZCwKd2UgY2FuIG5vdyBjcmVhdGUgdGhlIGhl YWx0aCByZXBvcnRlcnMgb24gdGhlIFZGcy4KCkZpeGVzOiA2NzYzYzc3OWMyZDggKCJibnh0X2Vu OiBBZGQgbmV3IEZXIGRldmxpbmtfaGVhbHRoX3JlcG9ydGVyIikKU2lnbmVkLW9mZi1ieTogVmFz dW5kaGFyYSBWb2xhbSA8dmFzdW5kaGFyYS12LnZvbGFtQGJyb2FkY29tLmNvbT4KU2lnbmVkLW9m Zi1ieTogTWljaGFlbCBDaGFuIDxtaWNoYWVsLmNoYW5AYnJvYWRjb20uY29tPgpTaWduZWQtb2Zm LWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9u ZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0LmMgICAgIHwgMTMgKysrKy0tLS0tLS0KIC4u Li9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0X2RldmxpbmsuYyB8IDIzICsrKysrKysr KysrKysrLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgMjIgaW5zZXJ0aW9ucygrKSwgMTQgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9i bnh0LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHQuYwppbmRleCAw N2ZhNmRiYTMyNDIuLmMwZGY5NDdlZDlmOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJu ZXQvYnJvYWRjb20vYm54dC9ibnh0LmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRj b20vYm54dC9ibnh0LmMKQEAgLTExMzQzLDEyICsxMTM0MywxMSBAQCBzdGF0aWMgdm9pZCBibnh0 X3JlbW92ZV9vbmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpCiAJc3RydWN0IG5ldF9kZXZpY2UgKmRl diA9IHBjaV9nZXRfZHJ2ZGF0YShwZGV2KTsKIAlzdHJ1Y3QgYm54dCAqYnAgPSBuZXRkZXZfcHJp dihkZXYpOwogCi0JaWYgKEJOWFRfUEYoYnApKSB7CisJaWYgKEJOWFRfUEYoYnApKQogCQlibnh0 X3NyaW92X2Rpc2FibGUoYnApOwotCQlibnh0X2RsX2Z3X3JlcG9ydGVyc19kZXN0cm95KGJwLCB0 cnVlKTsKLQkJYm54dF9kbF91bnJlZ2lzdGVyKGJwKTsKLQl9CiAKKwlibnh0X2RsX2Z3X3JlcG9y dGVyc19kZXN0cm95KGJwLCB0cnVlKTsKKwlibnh0X2RsX3VucmVnaXN0ZXIoYnApOwogCXBjaV9k aXNhYmxlX3BjaWVfZXJyb3JfcmVwb3J0aW5nKHBkZXYpOwogCXVucmVnaXN0ZXJfbmV0ZGV2KGRl dik7CiAJYm54dF9zaHV0ZG93bl90YyhicCk7CkBAIC0xMTg0NCwxMCArMTE4NDMsOCBAQCBzdGF0 aWMgaW50IGJueHRfaW5pdF9vbmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBw Y2lfZGV2aWNlX2lkICplbnQpCiAJaWYgKHJjKQogCQlnb3RvIGluaXRfZXJyX2NsZWFudXBfdGM7 CiAKLQlpZiAoQk5YVF9QRihicCkpIHsKLQkJYm54dF9kbF9yZWdpc3RlcihicCk7Ci0JCWJueHRf ZGxfZndfcmVwb3J0ZXJzX2NyZWF0ZShicCk7Ci0JfQorCWJueHRfZGxfcmVnaXN0ZXIoYnApOwor CWJueHRfZGxfZndfcmVwb3J0ZXJzX2NyZWF0ZShicCk7CiAKIAluZXRkZXZfaW5mbyhkZXYsICIl cyBmb3VuZCBhdCBtZW0gJWx4LCBub2RlIGFkZHIgJXBNXG4iLAogCQkgICAgYm9hcmRfaW5mb1tl bnQtPmRyaXZlcl9kYXRhXS5uYW1lLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQv YnJvYWRjb20vYm54dC9ibnh0X2RldmxpbmsuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2Fk Y29tL2JueHQvYm54dF9kZXZsaW5rLmMKaW5kZXggYWRiODc2MzhlMzMwLi4xZTIzNmU3NGZmMmYg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueHQvYm54dF9kZXZs aW5rLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0X2Rldmxp bmsuYwpAQCAtMjI2LDYgKzIyNiw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZGV2bGlua19vcHMg Ym54dF9kbF9vcHMgPSB7CiAjZW5kaWYgLyogQ09ORklHX0JOWFRfU1JJT1YgKi8KIH07CiAKK3N0 YXRpYyBjb25zdCBzdHJ1Y3QgZGV2bGlua19vcHMgYm54dF92Zl9kbF9vcHM7CisKIGVudW0gYm54 dF9kbF9wYXJhbV9pZCB7CiAJQk5YVF9ERVZMSU5LX1BBUkFNX0lEX0JBU0UgPSBERVZMSU5LX1BB UkFNX0dFTkVSSUNfSURfTUFYLAogCUJOWFRfREVWTElOS19QQVJBTV9JRF9HUkVfVkVSX0NIRUNL LApAQCAtNDM5LDcgKzQ0MSwxMCBAQCBpbnQgYm54dF9kbF9yZWdpc3RlcihzdHJ1Y3QgYm54dCAq YnApCiAJCXJldHVybiAtRU5PVFNVUFA7CiAJfQogCi0JZGwgPSBkZXZsaW5rX2FsbG9jKCZibnh0 X2RsX29wcywgc2l6ZW9mKHN0cnVjdCBibnh0X2RsKSk7CisJaWYgKEJOWFRfUEYoYnApKQorCQlk bCA9IGRldmxpbmtfYWxsb2MoJmJueHRfZGxfb3BzLCBzaXplb2Yoc3RydWN0IGJueHRfZGwpKTsK KwllbHNlCisJCWRsID0gZGV2bGlua19hbGxvYygmYm54dF92Zl9kbF9vcHMsIHNpemVvZihzdHJ1 Y3QgYm54dF9kbCkpOwogCWlmICghZGwpIHsKIAkJbmV0ZGV2X3dhcm4oYnAtPmRldiwgImRldmxp bmtfYWxsb2MgZmFpbGVkIik7CiAJCXJldHVybiAtRU5PTUVNOwpAQCAtNDU4LDYgKzQ2Myw5IEBA IGludCBibnh0X2RsX3JlZ2lzdGVyKHN0cnVjdCBibnh0ICpicCkKIAkJZ290byBlcnJfZGxfZnJl ZTsKIAl9CiAKKwlpZiAoIUJOWFRfUEYoYnApKQorCQlyZXR1cm4gMDsKKwogCXJjID0gZGV2bGlu a19wYXJhbXNfcmVnaXN0ZXIoZGwsIGJueHRfZGxfcGFyYW1zLAogCQkJCSAgICAgQVJSQVlfU0la RShibnh0X2RsX3BhcmFtcykpOwogCWlmIChyYykgewpAQCAtNTA3LDExICs1MTUsMTQgQEAgdm9p ZCBibnh0X2RsX3VucmVnaXN0ZXIoc3RydWN0IGJueHQgKmJwKQogCWlmICghZGwpCiAJCXJldHVy bjsKIAotCWRldmxpbmtfcG9ydF9wYXJhbXNfdW5yZWdpc3RlcigmYnAtPmRsX3BvcnQsIGJueHRf ZGxfcG9ydF9wYXJhbXMsCi0JCQkJICAgICAgIEFSUkFZX1NJWkUoYm54dF9kbF9wb3J0X3BhcmFt cykpOwotCWRldmxpbmtfcG9ydF91bnJlZ2lzdGVyKCZicC0+ZGxfcG9ydCk7Ci0JZGV2bGlua19w YXJhbXNfdW5yZWdpc3RlcihkbCwgYm54dF9kbF9wYXJhbXMsCi0JCQkJICBBUlJBWV9TSVpFKGJu eHRfZGxfcGFyYW1zKSk7CisJaWYgKEJOWFRfUEYoYnApKSB7CisJCWRldmxpbmtfcG9ydF9wYXJh bXNfdW5yZWdpc3RlcigmYnAtPmRsX3BvcnQsCisJCQkJCSAgICAgICBibnh0X2RsX3BvcnRfcGFy YW1zLAorCQkJCQkgICAgICAgQVJSQVlfU0laRShibnh0X2RsX3BvcnRfcGFyYW1zKSk7CisJCWRl dmxpbmtfcG9ydF91bnJlZ2lzdGVyKCZicC0+ZGxfcG9ydCk7CisJCWRldmxpbmtfcGFyYW1zX3Vu cmVnaXN0ZXIoZGwsIGJueHRfZGxfcGFyYW1zLAorCQkJCQkgIEFSUkFZX1NJWkUoYm54dF9kbF9w YXJhbXMpKTsKKwl9CiAJZGV2bGlua191bnJlZ2lzdGVyKGRsKTsKIAlkZXZsaW5rX2ZyZWUoZGwp OwogfQotLSAKMi4yMC4xCgoKRnJvbSA2ZmU3ZmQyODc4NjUzNjE0MmZlMTZhNDRhZjdjNjkwZTYx MGQ2ZmU4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbWl0IENvaGVuIDxhbWl0Y0Bt ZWxsYW5veC5jb20+CkRhdGU6IFN1biwgMjkgRGVjIDIwMTkgMTM6NDA6MjIgKzAyMDAKU3ViamVj dDogW1BBVENIIDIwLzQ2XSBtbHhzdzogc3BlY3RydW1fcm91dGVyOiBTa2lwIGxvb3BiYWNrIFJJ RnMgZHVyaW5nIE1BQwogdmFsaWRhdGlvbgoKWyBVcHN0cmVhbSBjb21taXQgMzE0YmQ4NDJkOThl MTAzNWNjNDBiNjcxYTcxZTA3ZjQ4NDIwZTU4ZiBdCgpXaGVuIGEgcm91dGVyIGludGVyZmFjZSAo UklGKSBpcyBjcmVhdGVkIHRoZSBNQUMgYWRkcmVzcyBvZiB0aGUgYmFja2luZwpuZXRkZXYgaXMg dmVyaWZpZWQgdG8gaGF2ZSB0aGUgc2FtZSBNU0JzIGFzIGV4aXN0aW5nIFJJRnMuIFRoaXMgaXMK cmVxdWlyZWQgaW4gb3JkZXIgdG8gYXZvaWQgY2hhbmdpbmcgZXhpc3RpbmcgUklGIE1BQyBhZGRy ZXNzZXMgdGhhdCBhbGwKc2hhcmUgdGhlIHNhbWUgTVNCcy4KCkxvb3BiYWNrIFJJRnMgYXJlIHNw ZWNpYWwgaW4gdGhpcyByZWdhcmQgYXMgdGhleSBkbyBub3QgaGF2ZSBhIE1BQwphZGRyZXNzLCBn aXZlbiB0aGV5IGFyZSBvbmx5IHVzZWQgdG8gbG9vcCBwYWNrZXRzIGZyb20gdGhlIG92ZXJsYXkg dG8KdGhlIHVuZGVybGF5LgoKV2l0aG91dCB0aGlzIGNoYW5nZSwgYW4gZXJyb3IgaXMgcmV0dXJu ZWQgd2hlbiB0cnlpbmcgdG8gY3JlYXRlIGEgUklGCmFmdGVyIHRoZSBjcmVhdGlvbiBvZiBhIEdS RSB0dW5uZWwgdGhhdCBpcyByZXByZXNlbnRlZCBieSBhIGxvb3BiYWNrClJJRi4gJ3JpZi0+ZGV2 LT5kZXZfYWRkcicgcG9pbnRzIHRvIHRoZSBHUkUgZGV2aWNlJ3MgbG9jYWwgSVAsIHdoaWNoCmRv ZXMgbm90IHNoYXJlIHRoZSBzYW1lIE1TQnMgYXMgcGh5c2ljYWwgaW50ZXJmYWNlcy4gQWRkaW5n IGFuIElQCmFkZHJlc3MgdG8gYW55IHBoeXNpY2FsIGludGVyZmFjZSByZXN1bHRzIGluOgoKRXJy b3I6IG1seHN3X3NwZWN0cnVtOiBBbGwgcm91dGVyIGludGVyZmFjZSBNQUMgYWRkcmVzc2VzIG11 c3QgaGF2ZSB0aGUKc2FtZSBwcmVmaXguCgpGaXggdGhpcyBieSBza2lwcGluZyBsb29wYmFjayBS SUZzIGR1cmluZyBNQUMgdmFsaWRhdGlvbi4KCkZpeGVzOiA3NGJjOTkzOTc0MzggKCJtbHhzdzog c3BlY3RydW1fcm91dGVyOiBWZXRvIHVuc3VwcG9ydGVkIFJJRiBNQUMgYWRkcmVzc2VzIikKU2ln bmVkLW9mZi1ieTogQW1pdCBDb2hlbiA8YW1pdGNAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5 OiBJZG8gU2NoaW1tZWwgPGlkb3NjaEBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5l dC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bV9yb3V0ZXIuYyB8IDMgKysrCiAxIGZpbGUgY2hhbmdl ZCwgMyBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVs bGFub3gvbWx4c3cvc3BlY3RydW1fcm91dGVyLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxs YW5veC9tbHhzdy9zcGVjdHJ1bV9yb3V0ZXIuYwppbmRleCAyMTBlYmM5MWQzZDYuLmVmZGY4Y2I1 MTE0YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvc3Bl Y3RydW1fcm91dGVyLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cv c3BlY3RydW1fcm91dGVyLmMKQEAgLTY5ODUsNiArNjk4NSw5IEBAIHN0YXRpYyBpbnQgbWx4c3df c3Bfcm91dGVyX3BvcnRfY2hlY2tfcmlmX2FkZHIoc3RydWN0IG1seHN3X3NwICptbHhzd19zcCwK IAogCWZvciAoaSA9IDA7IGkgPCBNTFhTV19DT1JFX1JFU19HRVQobWx4c3dfc3AtPmNvcmUsIE1B WF9SSUZTKTsgaSsrKSB7CiAJCXJpZiA9IG1seHN3X3NwLT5yb3V0ZXItPnJpZnNbaV07CisJCWlm IChyaWYgJiYgcmlmLT5vcHMgJiYKKwkJICAgIHJpZi0+b3BzLT50eXBlID09IE1MWFNXX1NQX1JJ Rl9UWVBFX0lQSVBfTEIpCisJCQljb250aW51ZTsKIAkJaWYgKHJpZiAmJiByaWYtPmRldiAmJiBy aWYtPmRldiAhPSBkZXYgJiYKIAkJICAgICFldGhlcl9hZGRyX2VxdWFsX21hc2tlZChyaWYtPmRl di0+ZGV2X2FkZHIsIGRldl9hZGRyLAogCQkJCQkgICAgIG1seHN3X3NwLT5tYWNfbWFzaykpIHsK LS0gCjIuMjAuMQoKCkZyb20gOGE1ZmIwMDk2NmRhNDU2NDZlMDc0NzhjNTBiNzc1YmIyNjczYjMx MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSWRvIFNjaGltbWVsIDxpZG9zY2hAbWVs bGFub3guY29tPgpEYXRlOiBTdW4sIDI5IERlYyAyMDE5IDEzOjQwOjIzICswMjAwClN1YmplY3Q6 IFtQQVRDSCAyMS80Nl0gbWx4c3c6IHNwZWN0cnVtOiBVc2UgZGVkaWNhdGVkIHBvbGljZXIgZm9y IFZSUlAgcGFja2V0cwoKWyBVcHN0cmVhbSBjb21taXQgYWNjYTc4OWEzNThjYzk2MGJlMzkzNzg1 MWQ3ZGU2NTkxYzc5ZDZjMiBdCgpDdXJyZW50bHksIFZSUlAgcGFja2V0cyBhbmQgcGFja2V0cyB0 aGF0IGhpdCBleGNlcHRpb25zIGR1cmluZyByb3V0aW5nCihlLmcuLCBNVFUgZXJyb3IpIGFyZSBw b2xpY2VkIHVzaW5nIHRoZSBzYW1lIHBvbGljZXIgdG93YXJkcyB0aGUgQ1BVLgpUaGlzIG1lYW5z LCBmb3IgZXhhbXBsZSwgdGhhdCBtaXNjb25maWd1cmF0aW9uIG9mIHRoZSBNVFUgb24gYSByb3V0 ZWQKaW50ZXJmYWNlIGNhbiBwcmV2ZW50IFZSUlAgcGFja2V0cyBmcm9tIHJlYWNoaW5nIHRoZSBD UFUsIHdoaWNoIGluIHR1cm4KY2FuIGNhdXNlIHRoZSBWUlJQIGRhZW1vbiB0byBhc3N1bWUgaXQg aXMgdGhlIE1hc3RlciByb3V0ZXIuCgpGaXggdGhpcyBieSB1c2luZyBhIGRlZGljYXRlZCBwb2xp Y2VyIGZvciBWUlJQIHBhY2tldHMuCgpGaXhlczogMTE1NjZkMzRmODk1ICgibWx4c3c6IHNwZWN0 cnVtOiBBZGQgVlJSUCB0cmFwcyIpClNpZ25lZC1vZmYtYnk6IElkbyBTY2hpbW1lbCA8aWRvc2No QG1lbGxhbm94LmNvbT4KUmVwb3J0ZWQtYnk6IEFsZXggVmViZXIgPGFsZXh2ZUBtZWxsYW5veC5j b20+ClRlc3RlZC1ieTogQWxleCBWZWJlciA8YWxleHZlQG1lbGxhbm94LmNvbT4KU2lnbmVkLW9m Zi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMv bmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L3JlZy5oICAgICAgfCAxICsKIGRyaXZlcnMvbmV0 L2V0aGVybmV0L21lbGxhbm94L21seHN3L3NwZWN0cnVtLmMgfCA5ICsrKysrKystLQogMiBmaWxl cyBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvcmVnLmggYi9kcml2ZXJzL25ldC9l dGhlcm5ldC9tZWxsYW5veC9tbHhzdy9yZWcuaAppbmRleCA1NDk0Y2Y5M2YzNGMuLjhlNDJlYmRi ZDQ4NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvcmVn LmgKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvcmVnLmgKQEAgLTU0 MjEsNiArNTQyMSw3IEBAIGVudW0gbWx4c3dfcmVnX2h0Z3RfdHJhcF9ncm91cCB7CiAJTUxYU1df UkVHX0hUR1RfVFJBUF9HUk9VUF9TUF9MQkVSUk9SLAogCU1MWFNXX1JFR19IVEdUX1RSQVBfR1JP VVBfU1BfUFRQMCwKIAlNTFhTV19SRUdfSFRHVF9UUkFQX0dST1VQX1NQX1BUUDEsCisJTUxYU1df UkVHX0hUR1RfVFJBUF9HUk9VUF9TUF9WUlJQLAogCiAJX19NTFhTV19SRUdfSFRHVF9UUkFQX0dS T1VQX01BWCwKIAlNTFhTV19SRUdfSFRHVF9UUkFQX0dST1VQX01BWCA9IF9fTUxYU1dfUkVHX0hU R1RfVFJBUF9HUk9VUF9NQVggLSAxCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9t ZWxsYW5veC9tbHhzdy9zcGVjdHJ1bS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gv bWx4c3cvc3BlY3RydW0uYwppbmRleCBkY2Y5NTYyYmNlOGEuLjNlYzE4ZmIwZDQ3OSAxMDA2NDQK LS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvc3BlY3RydW0uYworKysg Yi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bS5jCkBAIC00Mzk4 LDggKzQzOTgsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG1seHN3X2xpc3RlbmVyIG1seHN3X3Nw X2xpc3RlbmVyW10gPSB7CiAJTUxYU1dfU1BfUlhMX01BUksoUk9VVEVSX0FMRVJUX0lQVjYsIFRS QVBfVE9fQ1BVLCBST1VURVJfRVhQLCBmYWxzZSksCiAJTUxYU1dfU1BfUlhMX01BUksoSVBJUF9E RUNBUF9FUlJPUiwgVFJBUF9UT19DUFUsIFJPVVRFUl9FWFAsIGZhbHNlKSwKIAlNTFhTV19TUF9S WExfTUFSSyhERUNBUF9FQ04wLCBUUkFQX1RPX0NQVSwgUk9VVEVSX0VYUCwgZmFsc2UpLAotCU1M WFNXX1NQX1JYTF9NQVJLKElQVjRfVlJSUCwgVFJBUF9UT19DUFUsIFJPVVRFUl9FWFAsIGZhbHNl KSwKLQlNTFhTV19TUF9SWExfTUFSSyhJUFY2X1ZSUlAsIFRSQVBfVE9fQ1BVLCBST1VURVJfRVhQ LCBmYWxzZSksCisJTUxYU1dfU1BfUlhMX01BUksoSVBWNF9WUlJQLCBUUkFQX1RPX0NQVSwgVlJS UCwgZmFsc2UpLAorCU1MWFNXX1NQX1JYTF9NQVJLKElQVjZfVlJSUCwgVFJBUF9UT19DUFUsIFZS UlAsIGZhbHNlKSwKIAkvKiBQS1QgU2FtcGxlIHRyYXAgKi8KIAlNTFhTV19SWEwobWx4c3dfc3Bf cnhfbGlzdGVuZXJfc2FtcGxlX2Z1bmMsIFBLVF9TQU1QTEUsIE1JUlJPUl9UT19DUFUsCiAJCSAg ZmFsc2UsIFNQX0lQMk1FLCBESVNDQVJEKSwKQEAgLTQ0ODMsNiArNDQ4MywxMCBAQCBzdGF0aWMg aW50IG1seHN3X3NwX2NwdV9wb2xpY2Vyc19zZXQoc3RydWN0IG1seHN3X2NvcmUgKm1seHN3X2Nv cmUpCiAJCQlyYXRlID0gMTkgKiAxMDI0OwogCQkJYnVyc3Rfc2l6ZSA9IDEyOwogCQkJYnJlYWs7 CisJCWNhc2UgTUxYU1dfUkVHX0hUR1RfVFJBUF9HUk9VUF9TUF9WUlJQOgorCQkJcmF0ZSA9IDM2 MDsKKwkJCWJ1cnN0X3NpemUgPSA3OworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQljb250aW51 ZTsKIAkJfQpAQCAtNDUyMiw2ICs0NTI2LDcgQEAgc3RhdGljIGludCBtbHhzd19zcF90cmFwX2dy b3Vwc19zZXQoc3RydWN0IG1seHN3X2NvcmUgKm1seHN3X2NvcmUpCiAJCWNhc2UgTUxYU1dfUkVH X0hUR1RfVFJBUF9HUk9VUF9TUF9PU1BGOgogCQljYXNlIE1MWFNXX1JFR19IVEdUX1RSQVBfR1JP VVBfU1BfUElNOgogCQljYXNlIE1MWFNXX1JFR19IVEdUX1RSQVBfR1JPVVBfU1BfUFRQMDoKKwkJ Y2FzZSBNTFhTV19SRUdfSFRHVF9UUkFQX0dST1VQX1NQX1ZSUlA6CiAJCQlwcmlvcml0eSA9IDU7 CiAJCQl0YyA9IDU7CiAJCQlicmVhazsKLS0gCjIuMjAuMQoKCkZyb20gOGZkMmQwNTk0MDM4MzY0 ODU4NTUwMTg1ZTM2ZjM3MmU3NmQ2NDA0ZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog SGFuZ2JpbiBMaXUgPGxpdWhhbmdiaW5AZ21haWwuY29tPgpEYXRlOiBTdW4sIDIyIERlYyAyMDE5 IDEwOjUxOjA5ICswODAwClN1YmplY3Q6IFtQQVRDSCAyMi80Nl0gbmV0OiBhZGQgYm9vbCBjb25m aXJtX25laWdoIHBhcmFtZXRlciBmb3IKIGRzdF9vcHMudXBkYXRlX3BtdHUKClsgVXBzdHJlYW0g Y29tbWl0IGJkMDg1ZWY2NzhiMmNjOGMzOGMxMDU2NzNkZmU4ZmY4ZjVlYzBjNTcgXQoKVGhlIE1U VSB1cGRhdGUgY29kZSBpcyBzdXBwb3NlZCB0byBiZSBpbnZva2VkIGluIHJlc3BvbnNlIHRvIHJl YWwKbmV0d29ya2luZyBldmVudHMgdGhhdCB1cGRhdGUgdGhlIFBNVFUuIEluIElQdjYgUE1UVSB1 cGRhdGUgZnVuY3Rpb24KX19pcDZfcnRfdXBkYXRlX3BtdHUoKSB3ZSBjYWxsZWQgZHN0X2NvbmZp cm1fbmVpZ2goKSB0byB1cGRhdGUgbmVpZ2hib3IKY29uZmlybWVkIHRpbWUuCgpCdXQgZm9yIHR1 bm5lbCBjb2RlLCBpdCB3aWxsIGNhbGwgcG10dSBiZWZvcmUgeG1pdCwgbGlrZToKICAtIHRubF91 cGRhdGVfcG10dSgpCiAgICAtIHNrYl9kc3RfdXBkYXRlX3BtdHUoKQogICAgICAtIGlwNl9ydF91 cGRhdGVfcG10dSgpCiAgICAgICAgLSBfX2lwNl9ydF91cGRhdGVfcG10dSgpCiAgICAgICAgICAt IGRzdF9jb25maXJtX25laWdoKCkKCklmIHRoZSB0dW5uZWwgcmVtb3RlIGRzdCBtYWMgYWRkcmVz cyBjaGFuZ2VkIGFuZCB3ZSBzdGlsbCBkbyB0aGUgbmVpZ2gKY29uZmlybSwgd2Ugd2lsbCBub3Qg YmUgYWJsZSB0byB1cGRhdGUgbmVpZ2ggY2FjaGUgYW5kIHBpbmc2IHJlbW90ZQp3aWxsIGZhaWxl ZC4KClNvIGZvciB0aGlzIGlwX3R1bm5lbF94bWl0KCkgY2FzZSwgX0VWRU5fIGlmIHRoZSBNVFUg aXMgY2hhbmdlZCwgd2UKc2hvdWxkIG5vdCBiZSBpbnZva2luZyBkc3RfY29uZmlybV9uZWlnaCgp IGFzIHdlIGhhdmUgbm8gZXZpZGVuY2UKb2Ygc3VjY2Vzc2Z1bCB0d28td2F5IGNvbW11bmljYXRp b24gYXQgdGhpcyBwb2ludC4KCk9uIHRoZSBvdGhlciBoYW5kIGl0IGlzIGFsc28gaW1wb3J0YW50 IHRvIGtlZXAgdGhlIG5laWdoIHJlYWNoYWJpbGl0eSBmcmVzaApmb3IgVENQIGZsb3dzLCBzbyB3 ZSBjYW5ub3QgcmVtb3ZlIHRoaXMgZHN0X2NvbmZpcm1fbmVpZ2goKSBjYWxsLgoKVG8gZml4IHRo ZSBpc3N1ZSwgd2UgaGF2ZSB0byBhZGQgYSBuZXcgYm9vbCBwYXJhbWV0ZXIgZm9yIGRzdF9vcHMu dXBkYXRlX3BtdHUKdG8gY2hvb3NlIHdoZXRoZXIgd2Ugc2hvdWxkIGRvIG5laWdoIHVwZGF0ZSBv ciBub3QuIEkgd2lsbCBhZGQgdGhlIHBhcmFtZXRlcgppbiB0aGlzIHBhdGNoIGFuZCBzZXQgYWxs IHRoZSBjYWxsZXJzIHRvIHRydWUgdG8gY29tcGx5IHdpdGggdGhlIHByZXZpb3VzCndheSwgYW5k IGZpeCB0aGUgdHVubmVsIGNvZGUgb25lIGJ5IG9uZSBvbiBsYXRlciBwYXRjaGVzLgoKdjU6IE5v IGNoYW5nZS4KdjQ6IE5vIGNoYW5nZS4KdjM6IERvIG5vdCByZW1vdmUgZHN0X2NvbmZpcm1fbmVp Z2gsIGJ1dCBhZGQgYSBuZXcgYm9vbCBwYXJhbWV0ZXIgaW4KICAgIGRzdF9vcHMudXBkYXRlX3Bt dHUgdG8gY29udHJvbCB3aGV0aGVyIHdlIHNob3VsZCBkbyBuZWlnaGJvciBjb25maXJtLgogICAg QWxzbyBzcGxpdCB0aGUgYmlnIHBhdGNoIHRvIHNtYWxsIG9uZXMgZm9yIGVhY2ggYXJlYS4KdjI6 IFJlbW92ZSBkc3RfY29uZmlybV9uZWlnaCBpbiBfX2lwNl9ydF91cGRhdGVfcG10dS4KClN1Z2dl c3RlZC1ieTogRGF2aWQgTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgpSZXZpZXdlZC1ieTog R3VpbGxhdW1lIE5hdWx0IDxnbmF1bHRAcmVkaGF0LmNvbT4KQWNrZWQtYnk6IERhdmlkIEFoZXJu IDxkc2FoZXJuQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogSGFuZ2JpbiBMaXUgPGxpdWhhbmdi aW5AZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVt bG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZ3RwLmMgICAgICAgICAgICAgICAgfCAgMiArLQog aW5jbHVkZS9uZXQvZHN0LmggICAgICAgICAgICAgICAgfCAgMiArLQogaW5jbHVkZS9uZXQvZHN0 X29wcy5oICAgICAgICAgICAgfCAgMyArKy0KIG5ldC9icmlkZ2UvYnJfbmZfY29yZS5jICAgICAg ICAgIHwgIDMgKystCiBuZXQvZGVjbmV0L2RuX3JvdXRlLmMgICAgICAgICAgICB8ICA2ICsrKyst LQogbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYyAgfCAgMiArLQogbmV0L2lwdjQvcm91 dGUuYyAgICAgICAgICAgICAgICAgfCAgOSArKysrKystLS0KIG5ldC9pcHY0L3hmcm00X3BvbGlj eS5jICAgICAgICAgIHwgIDUgKysrLS0KIG5ldC9pcHY2L2luZXQ2X2Nvbm5lY3Rpb25fc29jay5j IHwgIDIgKy0KIG5ldC9pcHY2L2lwNl9ncmUuYyAgICAgICAgICAgICAgIHwgIDIgKy0KIG5ldC9p cHY2L3JvdXRlLmMgICAgICAgICAgICAgICAgIHwgMjIgKysrKysrKysrKysrKysrLS0tLS0tLQog bmV0L2lwdjYveGZybTZfcG9saWN5LmMgICAgICAgICAgfCAgNSArKystLQogbmV0L25ldGZpbHRl ci9pcHZzL2lwX3ZzX3htaXQuYyAgfCAgMiArLQogbmV0L3NjdHAvdHJhbnNwb3J0LmMgICAgICAg ICAgICAgfCAgMiArLQogMTQgZmlsZXMgY2hhbmdlZCwgNDIgaW5zZXJ0aW9ucygrKSwgMjUgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZ3RwLmMgYi9kcml2ZXJzL25ldC9n dHAuYwppbmRleCBlY2ZlMjYyMTU5MzUuLjljYWMwYWNjYmE3YSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9uZXQvZ3RwLmMKKysrIGIvZHJpdmVycy9uZXQvZ3RwLmMKQEAgLTU0MSw3ICs1NDEsNyBAQCBz dGF0aWMgaW50IGd0cF9idWlsZF9za2JfaXA0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBu ZXRfZGV2aWNlICpkZXYsCiAJCW10dSA9IGRzdF9tdHUoJnJ0LT5kc3QpOwogCX0KIAotCXJ0LT5k c3Qub3BzLT51cGRhdGVfcG10dSgmcnQtPmRzdCwgTlVMTCwgc2tiLCBtdHUpOworCXJ0LT5kc3Qu b3BzLT51cGRhdGVfcG10dSgmcnQtPmRzdCwgTlVMTCwgc2tiLCBtdHUsIHRydWUpOwogCiAJaWYg KCFza2JfaXNfZ3NvKHNrYikgJiYgKGlwaC0+ZnJhZ19vZmYgJiBodG9ucyhJUF9ERikpICYmCiAJ ICAgIG10dSA8IG50b2hzKGlwaC0+dG90X2xlbikpIHsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0 L2RzdC5oIGIvaW5jbHVkZS9uZXQvZHN0LmgKaW5kZXggODIyNGRhZDJhZTk0Li41OTM2MzBlMGUw NzYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L2RzdC5oCisrKyBiL2luY2x1ZGUvbmV0L2RzdC5o CkBAIC01MTYsNyArNTE2LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIHNrYl9kc3RfdXBkYXRlX3Bt dHUoc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTMyIG10dSkKIAlzdHJ1Y3QgZHN0X2VudHJ5ICpkc3Qg PSBza2JfZHN0KHNrYik7CiAKIAlpZiAoZHN0ICYmIGRzdC0+b3BzLT51cGRhdGVfcG10dSkKLQkJ ZHN0LT5vcHMtPnVwZGF0ZV9wbXR1KGRzdCwgTlVMTCwgc2tiLCBtdHUpOworCQlkc3QtPm9wcy0+ dXBkYXRlX3BtdHUoZHN0LCBOVUxMLCBza2IsIG10dSwgdHJ1ZSk7CiB9CiAKIHN0YXRpYyBpbmxp bmUgdm9pZCBza2JfdHVubmVsX2NoZWNrX3BtdHUoc3RydWN0IHNrX2J1ZmYgKnNrYiwKZGlmZiAt LWdpdCBhL2luY2x1ZGUvbmV0L2RzdF9vcHMuaCBiL2luY2x1ZGUvbmV0L2RzdF9vcHMuaAppbmRl eCA1ZWM2NDVmMjdlZTMuLjQ0Mzg2M2M3YjhkYSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvZHN0 X29wcy5oCisrKyBiL2luY2x1ZGUvbmV0L2RzdF9vcHMuaApAQCAtMjcsNyArMjcsOCBAQCBzdHJ1 Y3QgZHN0X29wcyB7CiAJc3RydWN0IGRzdF9lbnRyeSAqCSgqbmVnYXRpdmVfYWR2aWNlKShzdHJ1 Y3QgZHN0X2VudHJ5ICopOwogCXZvaWQJCQkoKmxpbmtfZmFpbHVyZSkoc3RydWN0IHNrX2J1ZmYg Kik7CiAJdm9pZAkJCSgqdXBkYXRlX3BtdHUpKHN0cnVjdCBkc3RfZW50cnkgKmRzdCwgc3RydWN0 IHNvY2sgKnNrLAotCQkJCQkgICAgICAgc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTMyIG10dSk7CisJ CQkJCSAgICAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgbXR1LAorCQkJCQkgICAgICAgYm9v bCBjb25maXJtX25laWdoKTsKIAl2b2lkCQkJKCpyZWRpcmVjdCkoc3RydWN0IGRzdF9lbnRyeSAq ZHN0LCBzdHJ1Y3Qgc29jayAqc2ssCiAJCQkJCSAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKTsKIAlp bnQJCQkoKmxvY2FsX291dCkoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc29jayAqc2ssIHN0cnVj dCBza19idWZmICpza2IpOwpkaWZmIC0tZ2l0IGEvbmV0L2JyaWRnZS9icl9uZl9jb3JlLmMgYi9u ZXQvYnJpZGdlL2JyX25mX2NvcmUuYwppbmRleCAyY2RmYzVkNmMyNWQuLjhjNjlmMGM5NWE4ZSAx MDA2NDQKLS0tIGEvbmV0L2JyaWRnZS9icl9uZl9jb3JlLmMKKysrIGIvbmV0L2JyaWRnZS9icl9u Zl9jb3JlLmMKQEAgLTIyLDcgKzIyLDggQEAKICNlbmRpZgogCiBzdGF0aWMgdm9pZCBmYWtlX3Vw ZGF0ZV9wbXR1KHN0cnVjdCBkc3RfZW50cnkgKmRzdCwgc3RydWN0IHNvY2sgKnNrLAotCQkJICAg ICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgbXR1KQorCQkJICAgICBzdHJ1Y3Qgc2tfYnVmZiAq c2tiLCB1MzIgbXR1LAorCQkJICAgICBib29sIGNvbmZpcm1fbmVpZ2gpCiB7CiB9CiAKZGlmZiAt LWdpdCBhL25ldC9kZWNuZXQvZG5fcm91dGUuYyBiL25ldC9kZWNuZXQvZG5fcm91dGUuYwppbmRl eCBhZWE5MTgxMzVlYzMuLjA4YzNkYzQ1ZjFhNCAxMDA2NDQKLS0tIGEvbmV0L2RlY25ldC9kbl9y b3V0ZS5jCisrKyBiL25ldC9kZWNuZXQvZG5fcm91dGUuYwpAQCAtMTEwLDcgKzExMCw4IEBAIHN0 YXRpYyB2b2lkIGRuX2RzdF9pZmRvd24oc3RydWN0IGRzdF9lbnRyeSAqLCBzdHJ1Y3QgbmV0X2Rl dmljZSAqZGV2LCBpbnQgaG93KTsKIHN0YXRpYyBzdHJ1Y3QgZHN0X2VudHJ5ICpkbl9kc3RfbmVn YXRpdmVfYWR2aWNlKHN0cnVjdCBkc3RfZW50cnkgKik7CiBzdGF0aWMgdm9pZCBkbl9kc3RfbGlu a19mYWlsdXJlKHN0cnVjdCBza19idWZmICopOwogc3RhdGljIHZvaWQgZG5fZHN0X3VwZGF0ZV9w bXR1KHN0cnVjdCBkc3RfZW50cnkgKmRzdCwgc3RydWN0IHNvY2sgKnNrLAotCQkJICAgICAgIHN0 cnVjdCBza19idWZmICpza2IgLCB1MzIgbXR1KTsKKwkJCSAgICAgICBzdHJ1Y3Qgc2tfYnVmZiAq c2tiICwgdTMyIG10dSwKKwkJCSAgICAgICBib29sIGNvbmZpcm1fbmVpZ2gpOwogc3RhdGljIHZv aWQgZG5fZHN0X3JlZGlyZWN0KHN0cnVjdCBkc3RfZW50cnkgKmRzdCwgc3RydWN0IHNvY2sgKnNr LAogCQkJICAgIHN0cnVjdCBza19idWZmICpza2IpOwogc3RhdGljIHN0cnVjdCBuZWlnaGJvdXIg KmRuX2RzdF9uZWlnaF9sb29rdXAoY29uc3Qgc3RydWN0IGRzdF9lbnRyeSAqZHN0LApAQCAtMjUx LDcgKzI1Miw4IEBAIHN0YXRpYyBpbnQgZG5fZHN0X2djKHN0cnVjdCBkc3Rfb3BzICpvcHMpCiAg KiBhZHZlcnRpc2UgdG8gdGhlIG90aGVyIGVuZCkuCiAgKi8KIHN0YXRpYyB2b2lkIGRuX2RzdF91 cGRhdGVfcG10dShzdHJ1Y3QgZHN0X2VudHJ5ICpkc3QsIHN0cnVjdCBzb2NrICpzaywKLQkJCSAg ICAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgbXR1KQorCQkJICAgICAgIHN0cnVjdCBza19i dWZmICpza2IsIHUzMiBtdHUsCisJCQkgICAgICAgYm9vbCBjb25maXJtX25laWdoKQogewogCXN0 cnVjdCBkbl9yb3V0ZSAqcnQgPSAoc3RydWN0IGRuX3JvdXRlICopIGRzdDsKIAlzdHJ1Y3QgbmVp Z2hib3VyICpuID0gcnQtPm47CmRpZmYgLS1naXQgYS9uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25f c29jay5jIGIvbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYwppbmRleCBlYjMwZmMxNzcw ZGUuLmFjMDVlMjczYmM2NiAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3Nv Y2suYworKysgYi9uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jCkBAIC0xMDg2LDcgKzEw ODYsNyBAQCBzdHJ1Y3QgZHN0X2VudHJ5ICppbmV0X2Nza191cGRhdGVfcG10dShzdHJ1Y3Qgc29j ayAqc2ssIHUzMiBtdHUpCiAJCWlmICghZHN0KQogCQkJZ290byBvdXQ7CiAJfQotCWRzdC0+b3Bz LT51cGRhdGVfcG10dShkc3QsIHNrLCBOVUxMLCBtdHUpOworCWRzdC0+b3BzLT51cGRhdGVfcG10 dShkc3QsIHNrLCBOVUxMLCBtdHUsIHRydWUpOwogCiAJZHN0ID0gX19za19kc3RfY2hlY2soc2ss IDApOwogCWlmICghZHN0KQpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvcm91dGUuYyBiL25ldC9pcHY0 L3JvdXRlLmMKaW5kZXggNjIxZjgzNDM0YjI0Li5mZTM0ZTllMDkxMmEgMTAwNjQ0Ci0tLSBhL25l dC9pcHY0L3JvdXRlLmMKKysrIGIvbmV0L2lwdjQvcm91dGUuYwpAQCAtMTM5LDcgKzEzOSw4IEBA IHN0YXRpYyB1bnNpZ25lZCBpbnQJIGlwdjRfbXR1KGNvbnN0IHN0cnVjdCBkc3RfZW50cnkgKmRz dCk7CiBzdGF0aWMgc3RydWN0IGRzdF9lbnRyeSAqaXB2NF9uZWdhdGl2ZV9hZHZpY2Uoc3RydWN0 IGRzdF9lbnRyeSAqZHN0KTsKIHN0YXRpYyB2b2lkCQkgaXB2NF9saW5rX2ZhaWx1cmUoc3RydWN0 IHNrX2J1ZmYgKnNrYik7CiBzdGF0aWMgdm9pZAkJIGlwX3J0X3VwZGF0ZV9wbXR1KHN0cnVjdCBk c3RfZW50cnkgKmRzdCwgc3RydWN0IHNvY2sgKnNrLAotCQkJCQkgICBzdHJ1Y3Qgc2tfYnVmZiAq c2tiLCB1MzIgbXR1KTsKKwkJCQkJICAgc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTMyIG10dSwKKwkJ CQkJICAgYm9vbCBjb25maXJtX25laWdoKTsKIHN0YXRpYyB2b2lkCQkgaXBfZG9fcmVkaXJlY3Qo c3RydWN0IGRzdF9lbnRyeSAqZHN0LCBzdHJ1Y3Qgc29jayAqc2ssCiAJCQkJCXN0cnVjdCBza19i dWZmICpza2IpOwogc3RhdGljIHZvaWQJCWlwdjRfZHN0X2Rlc3Ryb3koc3RydWN0IGRzdF9lbnRy eSAqZHN0KTsKQEAgLTEwNDMsNyArMTA0NCw4IEBAIHN0YXRpYyB2b2lkIF9faXBfcnRfdXBkYXRl X3BtdHUoc3RydWN0IHJ0YWJsZSAqcnQsIHN0cnVjdCBmbG93aTQgKmZsNCwgdTMyIG10dSkKIH0K IAogc3RhdGljIHZvaWQgaXBfcnRfdXBkYXRlX3BtdHUoc3RydWN0IGRzdF9lbnRyeSAqZHN0LCBz dHJ1Y3Qgc29jayAqc2ssCi0JCQkgICAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgbXR1KQor CQkJICAgICAgc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTMyIG10dSwKKwkJCSAgICAgIGJvb2wgY29u ZmlybV9uZWlnaCkKIHsKIAlzdHJ1Y3QgcnRhYmxlICpydCA9IChzdHJ1Y3QgcnRhYmxlICopIGRz dDsKIAlzdHJ1Y3QgZmxvd2k0IGZsNDsKQEAgLTI2NDgsNyArMjY1MCw4IEBAIHN0YXRpYyB1bnNp Z25lZCBpbnQgaXB2NF9ibGFja2hvbGVfbXR1KGNvbnN0IHN0cnVjdCBkc3RfZW50cnkgKmRzdCkK IH0KIAogc3RhdGljIHZvaWQgaXB2NF9ydF9ibGFja2hvbGVfdXBkYXRlX3BtdHUoc3RydWN0IGRz dF9lbnRyeSAqZHN0LCBzdHJ1Y3Qgc29jayAqc2ssCi0JCQkJCSAgc3RydWN0IHNrX2J1ZmYgKnNr YiwgdTMyIG10dSkKKwkJCQkJICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgbXR1LAorCQkJCQkg IGJvb2wgY29uZmlybV9uZWlnaCkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvbmV0L2lwdjQveGZybTRf cG9saWN5LmMgYi9uZXQvaXB2NC94ZnJtNF9wb2xpY3kuYwppbmRleCAzNWI4NGI1MmI3MDIuLjll YmQ1NDc1MmUwMyAxMDA2NDQKLS0tIGEvbmV0L2lwdjQveGZybTRfcG9saWN5LmMKKysrIGIvbmV0 L2lwdjQveGZybTRfcG9saWN5LmMKQEAgLTEwMCwxMiArMTAwLDEzIEBAIHN0YXRpYyBpbnQgeGZy bTRfZmlsbF9kc3Qoc3RydWN0IHhmcm1fZHN0ICp4ZHN0LCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2 LAogfQogCiBzdGF0aWMgdm9pZCB4ZnJtNF91cGRhdGVfcG10dShzdHJ1Y3QgZHN0X2VudHJ5ICpk c3QsIHN0cnVjdCBzb2NrICpzaywKLQkJCSAgICAgIHN0cnVjdCBza19idWZmICpza2IsIHUzMiBt dHUpCisJCQkgICAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgbXR1LAorCQkJICAgICAgYm9v bCBjb25maXJtX25laWdoKQogewogCXN0cnVjdCB4ZnJtX2RzdCAqeGRzdCA9IChzdHJ1Y3QgeGZy bV9kc3QgKilkc3Q7CiAJc3RydWN0IGRzdF9lbnRyeSAqcGF0aCA9IHhkc3QtPnJvdXRlOwogCi0J cGF0aC0+b3BzLT51cGRhdGVfcG10dShwYXRoLCBzaywgc2tiLCBtdHUpOworCXBhdGgtPm9wcy0+ dXBkYXRlX3BtdHUocGF0aCwgc2ssIHNrYiwgbXR1LCBjb25maXJtX25laWdoKTsKIH0KIAogc3Rh dGljIHZvaWQgeGZybTRfcmVkaXJlY3Qoc3RydWN0IGRzdF9lbnRyeSAqZHN0LCBzdHJ1Y3Qgc29j ayAqc2ssCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9pbmV0Nl9jb25uZWN0aW9uX3NvY2suYyBiL25l dC9pcHY2L2luZXQ2X2Nvbm5lY3Rpb25fc29jay5jCmluZGV4IGZlOWNiOGQxYWRjYS4uZTMxNTUy NmZhMjQ0IDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9pbmV0Nl9jb25uZWN0aW9uX3NvY2suYworKysg Yi9uZXQvaXB2Ni9pbmV0Nl9jb25uZWN0aW9uX3NvY2suYwpAQCAtMTQ2LDcgKzE0Niw3IEBAIHN0 cnVjdCBkc3RfZW50cnkgKmluZXQ2X2Nza191cGRhdGVfcG10dShzdHJ1Y3Qgc29jayAqc2ssIHUz MiBtdHUpCiAKIAlpZiAoSVNfRVJSKGRzdCkpCiAJCXJldHVybiBOVUxMOwotCWRzdC0+b3BzLT51 cGRhdGVfcG10dShkc3QsIHNrLCBOVUxMLCBtdHUpOworCWRzdC0+b3BzLT51cGRhdGVfcG10dShk c3QsIHNrLCBOVUxMLCBtdHUsIHRydWUpOwogCiAJZHN0ID0gaW5ldDZfY3NrX3JvdXRlX3NvY2tl dChzaywgJmZsNik7CiAJcmV0dXJuIElTX0VSUihkc3QpID8gTlVMTCA6IGRzdDsKZGlmZiAtLWdp dCBhL25ldC9pcHY2L2lwNl9ncmUuYyBiL25ldC9pcHY2L2lwNl9ncmUuYwppbmRleCA5MjMwMzRj NTJjZTQuLjA3MWNiMjM3ZjAwYiAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvaXA2X2dyZS5jCisrKyBi L25ldC9pcHY2L2lwNl9ncmUuYwpAQCAtMTA0MCw3ICsxMDQwLDcgQEAgc3RhdGljIG5ldGRldl90 eF90IGlwNmVyc3Bhbl90dW5uZWxfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCiAJLyogVG9v QmlnIHBhY2tldCBtYXkgaGF2ZSB1cGRhdGVkIGRzdC0+ZGV2J3MgbXR1ICovCiAJaWYgKCF0LT5w YXJtcy5jb2xsZWN0X21kICYmIGRzdCAmJiBkc3RfbXR1KGRzdCkgPiBkc3QtPmRldi0+bXR1KQot CQlkc3QtPm9wcy0+dXBkYXRlX3BtdHUoZHN0LCBOVUxMLCBza2IsIGRzdC0+ZGV2LT5tdHUpOwor CQlkc3QtPm9wcy0+dXBkYXRlX3BtdHUoZHN0LCBOVUxMLCBza2IsIGRzdC0+ZGV2LT5tdHUsIHRy dWUpOwogCiAJZXJyID0gaXA2X3RubF94bWl0KHNrYiwgZGV2LCBkc2ZpZWxkLCAmZmw2LCBlbmNh cF9saW1pdCwgJm10dSwKIAkJCSAgIE5FWFRIRFJfR1JFKTsKZGlmZiAtLWdpdCBhL25ldC9pcHY2 L3JvdXRlLmMgYi9uZXQvaXB2Ni9yb3V0ZS5jCmluZGV4IDNmODNlYTg1MWViZi4uZTRlZDljN2I0 M2IwIDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9yb3V0ZS5jCisrKyBiL25ldC9pcHY2L3JvdXRlLmMK QEAgLTk1LDcgKzk1LDggQEAgc3RhdGljIGludAkJaXA2X3BrdF9wcm9oaWJpdChzdHJ1Y3Qgc2tf YnVmZiAqc2tiKTsKIHN0YXRpYyBpbnQJCWlwNl9wa3RfcHJvaGliaXRfb3V0KHN0cnVjdCBuZXQg Km5ldCwgc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKTsKIHN0YXRpYyB2b2lk CQlpcDZfbGlua19mYWlsdXJlKHN0cnVjdCBza19idWZmICpza2IpOwogc3RhdGljIHZvaWQJCWlw Nl9ydF91cGRhdGVfcG10dShzdHJ1Y3QgZHN0X2VudHJ5ICpkc3QsIHN0cnVjdCBzb2NrICpzaywK LQkJCQkJICAgc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTMyIG10dSk7CisJCQkJCSAgIHN0cnVjdCBz a19idWZmICpza2IsIHUzMiBtdHUsCisJCQkJCSAgIGJvb2wgY29uZmlybV9uZWlnaCk7CiBzdGF0 aWMgdm9pZAkJcnQ2X2RvX3JlZGlyZWN0KHN0cnVjdCBkc3RfZW50cnkgKmRzdCwgc3RydWN0IHNv Y2sgKnNrLAogCQkJCQlzdHJ1Y3Qgc2tfYnVmZiAqc2tiKTsKIHN0YXRpYyBpbnQgcnQ2X3Njb3Jl X3JvdXRlKGNvbnN0IHN0cnVjdCBmaWI2X25oICpuaCwgdTMyIGZpYjZfZmxhZ3MsIGludCBvaWYs CkBAIC0yNjQsNyArMjY1LDggQEAgc3RhdGljIHVuc2lnbmVkIGludCBpcDZfYmxhY2tob2xlX210 dShjb25zdCBzdHJ1Y3QgZHN0X2VudHJ5ICpkc3QpCiB9CiAKIHN0YXRpYyB2b2lkIGlwNl9ydF9i bGFja2hvbGVfdXBkYXRlX3BtdHUoc3RydWN0IGRzdF9lbnRyeSAqZHN0LCBzdHJ1Y3Qgc29jayAq c2ssCi0JCQkJCSBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgbXR1KQorCQkJCQkgc3RydWN0IHNr X2J1ZmYgKnNrYiwgdTMyIG10dSwKKwkJCQkJIGJvb2wgY29uZmlybV9uZWlnaCkKIHsKIH0KIApA QCAtMjY5NSw3ICsyNjk3LDggQEAgc3RhdGljIGJvb2wgcnQ2X2NhY2hlX2FsbG93ZWRfZm9yX3Bt dHUoY29uc3Qgc3RydWN0IHJ0Nl9pbmZvICpydCkKIH0KIAogc3RhdGljIHZvaWQgX19pcDZfcnRf dXBkYXRlX3BtdHUoc3RydWN0IGRzdF9lbnRyeSAqZHN0LCBjb25zdCBzdHJ1Y3Qgc29jayAqc2ss Ci0JCQkJIGNvbnN0IHN0cnVjdCBpcHY2aGRyICppcGgsIHUzMiBtdHUpCisJCQkJIGNvbnN0IHN0 cnVjdCBpcHY2aGRyICppcGgsIHUzMiBtdHUsCisJCQkJIGJvb2wgY29uZmlybV9uZWlnaCkKIHsK IAljb25zdCBzdHJ1Y3QgaW42X2FkZHIgKmRhZGRyLCAqc2FkZHI7CiAJc3RydWN0IHJ0Nl9pbmZv ICpydDYgPSAoc3RydWN0IHJ0Nl9pbmZvICopZHN0OwpAQCAtMjcxMyw3ICsyNzE2LDEwIEBAIHN0 YXRpYyB2b2lkIF9faXA2X3J0X3VwZGF0ZV9wbXR1KHN0cnVjdCBkc3RfZW50cnkgKmRzdCwgY29u c3Qgc3RydWN0IHNvY2sgKnNrLAogCQlkYWRkciA9IE5VTEw7CiAJCXNhZGRyID0gTlVMTDsKIAl9 Ci0JZHN0X2NvbmZpcm1fbmVpZ2goZHN0LCBkYWRkcik7CisKKwlpZiAoY29uZmlybV9uZWlnaCkK KwkJZHN0X2NvbmZpcm1fbmVpZ2goZHN0LCBkYWRkcik7CisKIAltdHUgPSBtYXhfdCh1MzIsIG10 dSwgSVBWNl9NSU5fTVRVKTsKIAlpZiAobXR1ID49IGRzdF9tdHUoZHN0KSkKIAkJcmV0dXJuOwpA QCAtMjc2Nyw5ICsyNzczLDExIEBAIHN0YXRpYyB2b2lkIF9faXA2X3J0X3VwZGF0ZV9wbXR1KHN0 cnVjdCBkc3RfZW50cnkgKmRzdCwgY29uc3Qgc3RydWN0IHNvY2sgKnNrLAogfQogCiBzdGF0aWMg dm9pZCBpcDZfcnRfdXBkYXRlX3BtdHUoc3RydWN0IGRzdF9lbnRyeSAqZHN0LCBzdHJ1Y3Qgc29j ayAqc2ssCi0JCQkgICAgICAgc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTMyIG10dSkKKwkJCSAgICAg ICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgbXR1LAorCQkJICAgICAgIGJvb2wgY29uZmlybV9u ZWlnaCkKIHsKLQlfX2lwNl9ydF91cGRhdGVfcG10dShkc3QsIHNrLCBza2IgPyBpcHY2X2hkcihz a2IpIDogTlVMTCwgbXR1KTsKKwlfX2lwNl9ydF91cGRhdGVfcG10dShkc3QsIHNrLCBza2IgPyBp cHY2X2hkcihza2IpIDogTlVMTCwgbXR1LAorCQkJICAgICBjb25maXJtX25laWdoKTsKIH0KIAog dm9pZCBpcDZfdXBkYXRlX3BtdHUoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldCAqbmV0 LCBfX2JlMzIgbXR1LApAQCAtMjc4OCw3ICsyNzk2LDcgQEAgdm9pZCBpcDZfdXBkYXRlX3BtdHUo c3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldCAqbmV0LCBfX2JlMzIgbXR1LAogCiAJZHN0 ID0gaXA2X3JvdXRlX291dHB1dChuZXQsIE5VTEwsICZmbDYpOwogCWlmICghZHN0LT5lcnJvcikK LQkJX19pcDZfcnRfdXBkYXRlX3BtdHUoZHN0LCBOVUxMLCBpcGgsIG50b2hsKG10dSkpOworCQlf X2lwNl9ydF91cGRhdGVfcG10dShkc3QsIE5VTEwsIGlwaCwgbnRvaGwobXR1KSwgdHJ1ZSk7CiAJ ZHN0X3JlbGVhc2UoZHN0KTsKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKGlwNl91cGRhdGVfcG10dSk7 CmRpZmYgLS1naXQgYS9uZXQvaXB2Ni94ZnJtNl9wb2xpY3kuYyBiL25ldC9pcHY2L3hmcm02X3Bv bGljeS5jCmluZGV4IDY5OWUwNzMwY2U4ZS4uYWY3YTRiOGIxZTljIDEwMDY0NAotLS0gYS9uZXQv aXB2Ni94ZnJtNl9wb2xpY3kuYworKysgYi9uZXQvaXB2Ni94ZnJtNl9wb2xpY3kuYwpAQCAtOTgs MTIgKzk4LDEzIEBAIHN0YXRpYyBpbnQgeGZybTZfZmlsbF9kc3Qoc3RydWN0IHhmcm1fZHN0ICp4 ZHN0LCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAogfQogCiBzdGF0aWMgdm9pZCB4ZnJtNl91cGRh dGVfcG10dShzdHJ1Y3QgZHN0X2VudHJ5ICpkc3QsIHN0cnVjdCBzb2NrICpzaywKLQkJCSAgICAg IHN0cnVjdCBza19idWZmICpza2IsIHUzMiBtdHUpCisJCQkgICAgICBzdHJ1Y3Qgc2tfYnVmZiAq c2tiLCB1MzIgbXR1LAorCQkJICAgICAgYm9vbCBjb25maXJtX25laWdoKQogewogCXN0cnVjdCB4 ZnJtX2RzdCAqeGRzdCA9IChzdHJ1Y3QgeGZybV9kc3QgKilkc3Q7CiAJc3RydWN0IGRzdF9lbnRy eSAqcGF0aCA9IHhkc3QtPnJvdXRlOwogCi0JcGF0aC0+b3BzLT51cGRhdGVfcG10dShwYXRoLCBz aywgc2tiLCBtdHUpOworCXBhdGgtPm9wcy0+dXBkYXRlX3BtdHUocGF0aCwgc2ssIHNrYiwgbXR1 LCBjb25maXJtX25laWdoKTsKIH0KIAogc3RhdGljIHZvaWQgeGZybTZfcmVkaXJlY3Qoc3RydWN0 IGRzdF9lbnRyeSAqZHN0LCBzdHJ1Y3Qgc29jayAqc2ssCmRpZmYgLS1naXQgYS9uZXQvbmV0Zmls dGVyL2lwdnMvaXBfdnNfeG1pdC5jIGIvbmV0L25ldGZpbHRlci9pcHZzL2lwX3ZzX3htaXQuYwpp bmRleCA4ODhkMzA2OGE0OTIuLmM2MmExMzFhNjA5NCAxMDA2NDQKLS0tIGEvbmV0L25ldGZpbHRl ci9pcHZzL2lwX3ZzX3htaXQuYworKysgYi9uZXQvbmV0ZmlsdGVyL2lwdnMvaXBfdnNfeG1pdC5j CkBAIC0yMDgsNyArMjA4LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIG1heWJlX3VwZGF0ZV9wbXR1 KGludCBza2JfYWYsIHN0cnVjdCBza19idWZmICpza2IsIGludCBtdHUpCiAJc3RydWN0IHJ0YWJs ZSAqb3J0ID0gc2tiX3J0YWJsZShza2IpOwogCiAJaWYgKCFza2ItPmRldiAmJiBzayAmJiBza19m dWxsc29jayhzaykpCi0JCW9ydC0+ZHN0Lm9wcy0+dXBkYXRlX3BtdHUoJm9ydC0+ZHN0LCBzaywg TlVMTCwgbXR1KTsKKwkJb3J0LT5kc3Qub3BzLT51cGRhdGVfcG10dSgmb3J0LT5kc3QsIHNrLCBO VUxMLCBtdHUsIHRydWUpOwogfQogCiBzdGF0aWMgaW5saW5lIGJvb2wgZW5zdXJlX210dV9pc19h ZGVxdWF0ZShzdHJ1Y3QgbmV0bnNfaXB2cyAqaXB2cywgaW50IHNrYl9hZiwKZGlmZiAtLWdpdCBh L25ldC9zY3RwL3RyYW5zcG9ydC5jIGIvbmV0L3NjdHAvdHJhbnNwb3J0LmMKaW5kZXggNzIzNWE2 MDMyNjcxLi4zYmJlMWE1OGVjODcgMTAwNjQ0Ci0tLSBhL25ldC9zY3RwL3RyYW5zcG9ydC5jCisr KyBiL25ldC9zY3RwL3RyYW5zcG9ydC5jCkBAIC0yNjMsNyArMjYzLDcgQEAgYm9vbCBzY3RwX3Ry YW5zcG9ydF91cGRhdGVfcG10dShzdHJ1Y3Qgc2N0cF90cmFuc3BvcnQgKnQsIHUzMiBwbXR1KQog CiAJCXBmLT5hZi0+ZnJvbV9zaygmYWRkciwgc2spOwogCQlwZi0+dG9fc2tfZGFkZHIoJnQtPmlw YWRkciwgc2spOwotCQlkc3QtPm9wcy0+dXBkYXRlX3BtdHUoZHN0LCBzaywgTlVMTCwgcG10dSk7 CisJCWRzdC0+b3BzLT51cGRhdGVfcG10dShkc3QsIHNrLCBOVUxMLCBwbXR1LCB0cnVlKTsKIAkJ cGYtPnRvX3NrX2RhZGRyKCZhZGRyLCBzayk7CiAKIAkJZHN0ID0gc2N0cF90cmFuc3BvcnRfZHN0 X2NoZWNrKHQpOwotLSAKMi4yMC4xCgoKRnJvbSBiY2I1ZDM0Njk0N2UwYWRkMGUyNzZiODU4N2Q4 MjliMjJiZmM3MmViIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBIYW5nYmluIExpdSA8 bGl1aGFuZ2JpbkBnbWFpbC5jb20+CkRhdGU6IFN1biwgMjIgRGVjIDIwMTkgMTA6NTE6MTAgKzA4 MDAKU3ViamVjdDogW1BBVENIIDIzLzQ2XSBpcDZfZ3JlOiBkbyBub3QgY29uZmlybSBuZWlnaGJv ciB3aGVuIGRvIHBtdHUgdXBkYXRlCgpbIFVwc3RyZWFtIGNvbW1pdCA2NzVkNzZhZDBhZDViZjQx YzlhMTI5NzcyZWYwYWJhOGY1N2VhOWE3IF0KCldoZW4gd2UgZG8gaXB2NiBncmUgcG10dSB1cGRh dGUsIHdlIHdpbGwgYWxzbyBkbyBuZWlnaCBjb25maXJtIGN1cnJlbnRseS4KVGhpcyB3aWxsIGNh dXNlIHRoZSBuZWlnaCBjYWNoZSBiZSByZWZyZXNoZWQgYW5kIHNldCB0byBSRUFDSEFCTEUgYmVm b3JlCnhtaXQuCgpCdXQgaWYgdGhlIHJlbW90ZSBtYWMgYWRkcmVzcyBjaGFuZ2VkLCBlLmcuIGRl dmljZSBpcyBkZWxldGVkIGFuZCByZWNyZWF0ZWQsCndlIHdpbGwgbm90IGFibGUgdG8gbm90aWNl IHRoaXMgYW5kIHN0aWxsIHVzZSB0aGUgb2xkIG1hYyBhZGRyZXNzIGFzIHRoZSBuZWlnaApjYWNo ZSBpcyBSRUFDSEFCTEUuCgpGaXggdGhpcyBieSBkaXNhYmxlIG5laWdoIGNvbmZpcm0gd2hlbiBk byBwbXR1IHVwZGF0ZQoKdjU6IE5vIGNoYW5nZS4KdjQ6IE5vIGNoYW5nZS4KdjM6IERvIG5vdCBy ZW1vdmUgZHN0X2NvbmZpcm1fbmVpZ2gsIGJ1dCBhZGQgYSBuZXcgYm9vbCBwYXJhbWV0ZXIgaW4K ICAgIGRzdF9vcHMudXBkYXRlX3BtdHUgdG8gY29udHJvbCB3aGV0aGVyIHdlIHNob3VsZCBkbyBu ZWlnaGJvciBjb25maXJtLgogICAgQWxzbyBzcGxpdCB0aGUgYmlnIHBhdGNoIHRvIHNtYWxsIG9u ZXMgZm9yIGVhY2ggYXJlYS4KdjI6IFJlbW92ZSBkc3RfY29uZmlybV9uZWlnaCBpbiBfX2lwNl9y dF91cGRhdGVfcG10dS4KClJlcG9ydGVkLWJ5OiBKaWFubGluIFNoaSA8amlzaGlAcmVkaGF0LmNv bT4KUmV2aWV3ZWQtYnk6IEd1aWxsYXVtZSBOYXVsdCA8Z25hdWx0QHJlZGhhdC5jb20+CkFja2Vk LWJ5OiBEYXZpZCBBaGVybiA8ZHNhaGVybkBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IEhhbmdi aW4gTGl1IDxsaXVoYW5nYmluQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWls bGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY2L2lwNl9ncmUuYyB8IDIgKy0K IDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdp dCBhL25ldC9pcHY2L2lwNl9ncmUuYyBiL25ldC9pcHY2L2lwNl9ncmUuYwppbmRleCAwNzFjYjIz N2YwMGIuLjE4OWRlNTZmNWUzNiAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvaXA2X2dyZS5jCisrKyBi L25ldC9pcHY2L2lwNl9ncmUuYwpAQCAtMTA0MCw3ICsxMDQwLDcgQEAgc3RhdGljIG5ldGRldl90 eF90IGlwNmVyc3Bhbl90dW5uZWxfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCiAJLyogVG9v QmlnIHBhY2tldCBtYXkgaGF2ZSB1cGRhdGVkIGRzdC0+ZGV2J3MgbXR1ICovCiAJaWYgKCF0LT5w YXJtcy5jb2xsZWN0X21kICYmIGRzdCAmJiBkc3RfbXR1KGRzdCkgPiBkc3QtPmRldi0+bXR1KQot CQlkc3QtPm9wcy0+dXBkYXRlX3BtdHUoZHN0LCBOVUxMLCBza2IsIGRzdC0+ZGV2LT5tdHUsIHRy dWUpOworCQlkc3QtPm9wcy0+dXBkYXRlX3BtdHUoZHN0LCBOVUxMLCBza2IsIGRzdC0+ZGV2LT5t dHUsIGZhbHNlKTsKIAogCWVyciA9IGlwNl90bmxfeG1pdChza2IsIGRldiwgZHNmaWVsZCwgJmZs NiwgZW5jYXBfbGltaXQsICZtdHUsCiAJCQkgICBORVhUSERSX0dSRSk7Ci0tIAoyLjIwLjEKCgpG cm9tIGRjZjUwN2E1YjU0YzlkNjJkYWM4MzdjNTMzZGFjMmVlYTZmMzgxNWMgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IEhhbmdiaW4gTGl1IDxsaXVoYW5nYmluQGdtYWlsLmNvbT4KRGF0 ZTogU3VuLCAyMiBEZWMgMjAxOSAxMDo1MToxMSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMjQvNDZd IGd0cDogZG8gbm90IGNvbmZpcm0gbmVpZ2hib3Igd2hlbiBkbyBwbXR1IHVwZGF0ZQoKWyBVcHN0 cmVhbSBjb21taXQgNmU5MTA1YzczZjhkMjE2M2QxMmQ1ZGZkNzYyZmQ3NTQ4M2VkMzBmNSBdCgpX aGVuIGRvIElQdjYgdHVubmVsIFBNVFUgdXBkYXRlIGFuZCBjYWxscyBfX2lwNl9ydF91cGRhdGVf cG10dSgpIGluIHRoZSBlbmQsCndlIHNob3VsZCBub3QgY2FsbCBkc3RfY29uZmlybV9uZWlnaCgp IGFzIHRoZXJlIGlzIG5vIHR3by13YXkgY29tbXVuaWNhdGlvbi4KCkFsdGhvdWdoIEdUUCBvbmx5 IHN1cHBvcnQgaXB2NCByaWdodCBub3csIGFuZCBfX2lwX3J0X3VwZGF0ZV9wbXR1KCkgZG9lcyBu b3QKY2FsbCBkc3RfY29uZmlybV9uZWlnaCgpLCB3ZSBzdGlsbCBzZXQgaXQgdG8gZmFsc2UgdG8g a2VlcCBjb25zaXN0ZW5jeSB3aXRoCklQdjYgY29kZS4KCnY1OiBObyBjaGFuZ2UuCnY0OiBObyBj aGFuZ2UuCnYzOiBEbyBub3QgcmVtb3ZlIGRzdF9jb25maXJtX25laWdoLCBidXQgYWRkIGEgbmV3 IGJvb2wgcGFyYW1ldGVyIGluCiAgICBkc3Rfb3BzLnVwZGF0ZV9wbXR1IHRvIGNvbnRyb2wgd2hl dGhlciB3ZSBzaG91bGQgZG8gbmVpZ2hib3IgY29uZmlybS4KICAgIEFsc28gc3BsaXQgdGhlIGJp ZyBwYXRjaCB0byBzbWFsbCBvbmVzIGZvciBlYWNoIGFyZWEuCnYyOiBSZW1vdmUgZHN0X2NvbmZp cm1fbmVpZ2ggaW4gX19pcDZfcnRfdXBkYXRlX3BtdHUuCgpSZXZpZXdlZC1ieTogR3VpbGxhdW1l IE5hdWx0IDxnbmF1bHRAcmVkaGF0LmNvbT4KQWNrZWQtYnk6IERhdmlkIEFoZXJuIDxkc2FoZXJu QGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogSGFuZ2JpbiBMaXUgPGxpdWhhbmdiaW5AZ21haWwu Y29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ Ci0tLQogZHJpdmVycy9uZXQvZ3RwLmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRp b24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ndHAuYyBiL2Ry aXZlcnMvbmV0L2d0cC5jCmluZGV4IDljYWMwYWNjYmE3YS4uNzFiMzRmZjhlN2ViIDEwMDY0NAot LS0gYS9kcml2ZXJzL25ldC9ndHAuYworKysgYi9kcml2ZXJzL25ldC9ndHAuYwpAQCAtNTQxLDcg KzU0MSw3IEBAIHN0YXRpYyBpbnQgZ3RwX2J1aWxkX3NrYl9pcDQoc3RydWN0IHNrX2J1ZmYgKnNr Yiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKIAkJbXR1ID0gZHN0X210dSgmcnQtPmRzdCk7CiAJ fQogCi0JcnQtPmRzdC5vcHMtPnVwZGF0ZV9wbXR1KCZydC0+ZHN0LCBOVUxMLCBza2IsIG10dSwg dHJ1ZSk7CisJcnQtPmRzdC5vcHMtPnVwZGF0ZV9wbXR1KCZydC0+ZHN0LCBOVUxMLCBza2IsIG10 dSwgZmFsc2UpOwogCiAJaWYgKCFza2JfaXNfZ3NvKHNrYikgJiYgKGlwaC0+ZnJhZ19vZmYgJiBo dG9ucyhJUF9ERikpICYmCiAJICAgIG10dSA8IG50b2hzKGlwaC0+dG90X2xlbikpIHsKLS0gCjIu MjAuMQoKCkZyb20gZTQyZTAxOTk0YjY0YjMwN2MyOTZlNTA4ZWUxYmVlZmZjODYwMzE2OCBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSGFuZ2JpbiBMaXUgPGxpdWhhbmdiaW5AZ21haWwu Y29tPgpEYXRlOiBTdW4sIDIyIERlYyAyMDE5IDEwOjUxOjEyICswODAwClN1YmplY3Q6IFtQQVRD SCAyNS80Nl0gbmV0L2RzdDogYWRkIG5ldyBmdW5jdGlvbgogc2tiX2RzdF91cGRhdGVfcG10dV9u b19jb25maXJtCgpbIFVwc3RyZWFtIGNvbW1pdCAwN2RjMzVjNmUzY2MzYzAwMTkxNWQwNWY1YmYy MWY4MGEzOWEwOTcwIF0KCkFkZCBhIG5ldyBmdW5jdGlvbiBza2JfZHN0X3VwZGF0ZV9wbXR1X25v X2NvbmZpcm0oKSBmb3IgY2FsbGVycyB3aG8gbmVlZAp1cGRhdGUgcG10dSBidXQgc2hvdWxkIG5v dCBkbyBuZWlnaGJvciBjb25maXJtLgoKdjU6IE5vIGNoYW5nZS4KdjQ6IE5vIGNoYW5nZS4KdjM6 IERvIG5vdCByZW1vdmUgZHN0X2NvbmZpcm1fbmVpZ2gsIGJ1dCBhZGQgYSBuZXcgYm9vbCBwYXJh bWV0ZXIgaW4KICAgIGRzdF9vcHMudXBkYXRlX3BtdHUgdG8gY29udHJvbCB3aGV0aGVyIHdlIHNo b3VsZCBkbyBuZWlnaGJvciBjb25maXJtLgogICAgQWxzbyBzcGxpdCB0aGUgYmlnIHBhdGNoIHRv IHNtYWxsIG9uZXMgZm9yIGVhY2ggYXJlYS4KdjI6IFJlbW92ZSBkc3RfY29uZmlybV9uZWlnaCBp biBfX2lwNl9ydF91cGRhdGVfcG10dS4KClJldmlld2VkLWJ5OiBHdWlsbGF1bWUgTmF1bHQgPGdu YXVsdEByZWRoYXQuY29tPgpBY2tlZC1ieTogRGF2aWQgQWhlcm4gPGRzYWhlcm5AZ21haWwuY29t PgpTaWduZWQtb2ZmLWJ5OiBIYW5nYmluIExpdSA8bGl1aGFuZ2JpbkBnbWFpbC5jb20+ClNpZ25l ZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNs dWRlL25ldC9kc3QuaCB8IDkgKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgOSBpbnNlcnRpb25z KCspCgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvZHN0LmggYi9pbmNsdWRlL25ldC9kc3QuaApp bmRleCA1OTM2MzBlMGUwNzYuLmRjN2NjMWYxMDUxYyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQv ZHN0LmgKKysrIGIvaW5jbHVkZS9uZXQvZHN0LmgKQEAgLTUxOSw2ICs1MTksMTUgQEAgc3RhdGlj IGlubGluZSB2b2lkIHNrYl9kc3RfdXBkYXRlX3BtdHUoc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTMy IG10dSkKIAkJZHN0LT5vcHMtPnVwZGF0ZV9wbXR1KGRzdCwgTlVMTCwgc2tiLCBtdHUsIHRydWUp OwogfQogCisvKiB1cGRhdGUgZHN0IHBtdHUgYnV0IG5vdCBkbyBuZWlnaGJvciBjb25maXJtICov CitzdGF0aWMgaW5saW5lIHZvaWQgc2tiX2RzdF91cGRhdGVfcG10dV9ub19jb25maXJtKHN0cnVj dCBza19idWZmICpza2IsIHUzMiBtdHUpCit7CisJc3RydWN0IGRzdF9lbnRyeSAqZHN0ID0gc2ti X2RzdChza2IpOworCisJaWYgKGRzdCAmJiBkc3QtPm9wcy0+dXBkYXRlX3BtdHUpCisJCWRzdC0+ b3BzLT51cGRhdGVfcG10dShkc3QsIE5VTEwsIHNrYiwgbXR1LCBmYWxzZSk7Cit9CisKIHN0YXRp YyBpbmxpbmUgdm9pZCBza2JfdHVubmVsX2NoZWNrX3BtdHUoc3RydWN0IHNrX2J1ZmYgKnNrYiwK IAkJCQkJIHN0cnVjdCBkc3RfZW50cnkgKmVuY2FwX2RzdCwKIAkJCQkJIGludCBoZWFkcm9vbSkK LS0gCjIuMjAuMQoKCkZyb20gZmI1YzdkZDlkYjM5YzdmYzk4MWIzODZiN2Y0NjIzM2Q2OGU0YmE0 NCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSGFuZ2JpbiBMaXUgPGxpdWhhbmdiaW5A Z21haWwuY29tPgpEYXRlOiBTdW4sIDIyIERlYyAyMDE5IDEwOjUxOjEzICswODAwClN1YmplY3Q6 IFtQQVRDSCAyNi80Nl0gdHVubmVsOiBkbyBub3QgY29uZmlybSBuZWlnaGJvciB3aGVuIGRvIHBt dHUgdXBkYXRlCgpbIFVwc3RyZWFtIGNvbW1pdCA3YTE1OTJiY2IxNWQ3MTQwMGE5ODYzMjcyNzc5 MWQxZTY4ZWEwZWU4IF0KCldoZW4gZG8gdHVubmVsIFBNVFUgdXBkYXRlIGFuZCBjYWxscyBfX2lw Nl9ydF91cGRhdGVfcG10dSgpIGluIHRoZSBlbmQsCndlIHNob3VsZCBub3QgY2FsbCBkc3RfY29u ZmlybV9uZWlnaCgpIGFzIHRoZXJlIGlzIG5vIHR3by13YXkgY29tbXVuaWNhdGlvbi4KCnY1OiBO byBDaGFuZ2UuCnY0OiBVcGRhdGUgY29tbWl0IGRlc2NyaXB0aW9uCnYzOiBEbyBub3QgcmVtb3Zl IGRzdF9jb25maXJtX25laWdoLCBidXQgYWRkIGEgbmV3IGJvb2wgcGFyYW1ldGVyIGluCiAgICBk c3Rfb3BzLnVwZGF0ZV9wbXR1IHRvIGNvbnRyb2wgd2hldGhlciB3ZSBzaG91bGQgZG8gbmVpZ2hi b3IgY29uZmlybS4KICAgIEFsc28gc3BsaXQgdGhlIGJpZyBwYXRjaCB0byBzbWFsbCBvbmVzIGZv ciBlYWNoIGFyZWEuCnYyOiBSZW1vdmUgZHN0X2NvbmZpcm1fbmVpZ2ggaW4gX19pcDZfcnRfdXBk YXRlX3BtdHUuCgpGaXhlczogMGRlYzg3OWY2MzZmICgibmV0OiB1c2UgZHN0X2NvbmZpcm1fbmVp Z2ggZm9yIFVEUCwgUkFXLCBJQ01QLCBMMlRQIikKUmV2aWV3ZWQtYnk6IEd1aWxsYXVtZSBOYXVs dCA8Z25hdWx0QHJlZGhhdC5jb20+ClRlc3RlZC1ieTogR3VpbGxhdW1lIE5hdWx0IDxnbmF1bHRA cmVkaGF0LmNvbT4KQWNrZWQtYnk6IERhdmlkIEFoZXJuIDxkc2FoZXJuQGdtYWlsLmNvbT4KU2ln bmVkLW9mZi1ieTogSGFuZ2JpbiBMaXUgPGxpdWhhbmdiaW5AZ21haWwuY29tPgpTaWduZWQtb2Zm LWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjQv aXBfdHVubmVsLmMgIHwgMiArLQogbmV0L2lwdjYvaXA2X3R1bm5lbC5jIHwgNCArKy0tCiAyIGZp bGVzIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9uZXQvaXB2NC9pcF90dW5uZWwuYyBiL25ldC9pcHY0L2lwX3R1bm5lbC5jCmluZGV4IDM4YzAy YmI2MmUyYy4uMGZlMmE1ZDNlMjU4IDEwMDY0NAotLS0gYS9uZXQvaXB2NC9pcF90dW5uZWwuYwor KysgYi9uZXQvaXB2NC9pcF90dW5uZWwuYwpAQCAtNTA1LDcgKzUwNSw3IEBAIHN0YXRpYyBpbnQg dG5sX3VwZGF0ZV9wbXR1KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBza19idWZmICpz a2IsCiAJCW10dSA9IHNrYl92YWxpZF9kc3Qoc2tiKSA/IGRzdF9tdHUoc2tiX2RzdChza2IpKSA6 IGRldi0+bXR1OwogCiAJaWYgKHNrYl92YWxpZF9kc3Qoc2tiKSkKLQkJc2tiX2RzdF91cGRhdGVf cG10dShza2IsIG10dSk7CisJCXNrYl9kc3RfdXBkYXRlX3BtdHVfbm9fY29uZmlybShza2IsIG10 dSk7CiAKIAlpZiAoc2tiLT5wcm90b2NvbCA9PSBodG9ucyhFVEhfUF9JUCkpIHsKIAkJaWYgKCFz a2JfaXNfZ3NvKHNrYikgJiYKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2lwNl90dW5uZWwuYyBiL25l dC9pcHY2L2lwNl90dW5uZWwuYwppbmRleCA3NTRhNDg0ZDM1ZGYuLjJmMzc2ZGJjMzdkNSAxMDA2 NDQKLS0tIGEvbmV0L2lwdjYvaXA2X3R1bm5lbC5jCisrKyBiL25ldC9pcHY2L2lwNl90dW5uZWwu YwpAQCAtNjQwLDcgKzY0MCw3IEBAIGlwNGlwNl9lcnIoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3Ry dWN0IGluZXQ2X3NrYl9wYXJtICpvcHQsCiAJCWlmIChyZWxfaW5mbyA+IGRzdF9tdHUoc2tiX2Rz dChza2IyKSkpCiAJCQlnb3RvIG91dDsKIAotCQlza2JfZHN0X3VwZGF0ZV9wbXR1KHNrYjIsIHJl bF9pbmZvKTsKKwkJc2tiX2RzdF91cGRhdGVfcG10dV9ub19jb25maXJtKHNrYjIsIHJlbF9pbmZv KTsKIAl9CiAKIAlpY21wX3NlbmQoc2tiMiwgcmVsX3R5cGUsIHJlbF9jb2RlLCBodG9ubChyZWxf aW5mbykpOwpAQCAtMTEzMiw3ICsxMTMyLDcgQEAgaW50IGlwNl90bmxfeG1pdChzdHJ1Y3Qgc2tf YnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBfX3U4IGRzZmllbGQsCiAJbXR1ID0g bWF4KG10dSwgc2tiLT5wcm90b2NvbCA9PSBodG9ucyhFVEhfUF9JUFY2KSA/CiAJCSAgICAgICBJ UFY2X01JTl9NVFUgOiBJUFY0X01JTl9NVFUpOwogCi0Jc2tiX2RzdF91cGRhdGVfcG10dShza2Is IG10dSk7CisJc2tiX2RzdF91cGRhdGVfcG10dV9ub19jb25maXJtKHNrYiwgbXR1KTsKIAlpZiAo c2tiLT5sZW4gLSB0LT50dW5faGxlbiAtIGV0aF9obGVuID4gbXR1ICYmICFza2JfaXNfZ3NvKHNr YikpIHsKIAkJKnBtdHUgPSBtdHU7CiAJCWVyciA9IC1FTVNHU0laRTsKLS0gCjIuMjAuMQoKCkZy b20gN2JjM2M3MGRmNjEwZTY5MzMxMjdlMjdiYjkxMGRhY2VlMmRkYTM3MCBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogSGFuZ2JpbiBMaXUgPGxpdWhhbmdiaW5AZ21haWwuY29tPgpEYXRl OiBTdW4sIDIyIERlYyAyMDE5IDEwOjUxOjE0ICswODAwClN1YmplY3Q6IFtQQVRDSCAyNy80Nl0g dnRpOiBkbyBub3QgY29uZmlybSBuZWlnaGJvciB3aGVuIGRvIHBtdHUgdXBkYXRlCgpbIFVwc3Ry ZWFtIGNvbW1pdCA4MjQ3YTc5ZWZhMmYyOGI0NDMyOWYzNjMyNzI1NTBjMTczODM3N2RlIF0KCldo ZW4gZG8gSVB2NiB0dW5uZWwgUE1UVSB1cGRhdGUgYW5kIGNhbGxzIF9faXA2X3J0X3VwZGF0ZV9w bXR1KCkgaW4gdGhlIGVuZCwKd2Ugc2hvdWxkIG5vdCBjYWxsIGRzdF9jb25maXJtX25laWdoKCkg YXMgdGhlcmUgaXMgbm8gdHdvLXdheSBjb21tdW5pY2F0aW9uLgoKQWx0aG91Z2ggdnRpIGFuZCB2 dGk2IGFyZSBpbW11bmUgdG8gdGhpcyBwcm9ibGVtIGJlY2F1c2UgdGhleSBhcmUgSUZGX05PQVJQ CmludGVyZmFjZXMsIGFzIEd1aWxsYXVtZSBwb2ludGVkLiBUaGVyZSBpcyBzdGlsbCBubyBzZW5z ZSB0byBjb25maXJtIG5laWdoYm91cgpoZXJlLgoKdjU6IFVwZGF0ZSBjb21taXQgZGVzY3JpcHRp b24uCnY0OiBObyBjaGFuZ2UuCnYzOiBEbyBub3QgcmVtb3ZlIGRzdF9jb25maXJtX25laWdoLCBi dXQgYWRkIGEgbmV3IGJvb2wgcGFyYW1ldGVyIGluCiAgICBkc3Rfb3BzLnVwZGF0ZV9wbXR1IHRv IGNvbnRyb2wgd2hldGhlciB3ZSBzaG91bGQgZG8gbmVpZ2hib3IgY29uZmlybS4KICAgIEFsc28g c3BsaXQgdGhlIGJpZyBwYXRjaCB0byBzbWFsbCBvbmVzIGZvciBlYWNoIGFyZWEuCnYyOiBSZW1v dmUgZHN0X2NvbmZpcm1fbmVpZ2ggaW4gX19pcDZfcnRfdXBkYXRlX3BtdHUuCgpSZXZpZXdlZC1i eTogR3VpbGxhdW1lIE5hdWx0IDxnbmF1bHRAcmVkaGF0LmNvbT4KQWNrZWQtYnk6IERhdmlkIEFo ZXJuIDxkc2FoZXJuQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogSGFuZ2JpbiBMaXUgPGxpdWhh bmdiaW5AZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjQvaXBfdnRpLmMgIHwgMiArLQogbmV0L2lwdjYvaXA2 X3Z0aS5jIHwgMiArLQogMiBmaWxlcyBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvaXBfdnRpLmMgYi9uZXQvaXB2NC9pcF92dGku YwppbmRleCBjZmIwMjU2MDY3OTMuLmZiOWY2ZDYwYzI3YyAxMDA2NDQKLS0tIGEvbmV0L2lwdjQv aXBfdnRpLmMKKysrIGIvbmV0L2lwdjQvaXBfdnRpLmMKQEAgLTIxNCw3ICsyMTQsNyBAQCBzdGF0 aWMgbmV0ZGV2X3R4X3QgdnRpX3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9k ZXZpY2UgKmRldiwKIAogCW10dSA9IGRzdF9tdHUoZHN0KTsKIAlpZiAoc2tiLT5sZW4gPiBtdHUp IHsKLQkJc2tiX2RzdF91cGRhdGVfcG10dShza2IsIG10dSk7CisJCXNrYl9kc3RfdXBkYXRlX3Bt dHVfbm9fY29uZmlybShza2IsIG10dSk7CiAJCWlmIChza2ItPnByb3RvY29sID09IGh0b25zKEVU SF9QX0lQKSkgewogCQkJaWNtcF9zZW5kKHNrYiwgSUNNUF9ERVNUX1VOUkVBQ0gsIElDTVBfRlJB R19ORUVERUQsCiAJCQkJICBodG9ubChtdHUpKTsKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2lwNl92 dGkuYyBiL25ldC9pcHY2L2lwNl92dGkuYwppbmRleCAwMjRkYjE3Mzg2ZDIuLjZmMDhiNzYwYzJh NyAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvaXA2X3Z0aS5jCisrKyBiL25ldC9pcHY2L2lwNl92dGku YwpAQCAtNDc5LDcgKzQ3OSw3IEBAIHZ0aTZfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1 Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3QgZmxvd2kgKmZsKQogCiAJbXR1ID0gZHN0X210dShk c3QpOwogCWlmIChza2ItPmxlbiA+IG10dSkgewotCQlza2JfZHN0X3VwZGF0ZV9wbXR1KHNrYiwg bXR1KTsKKwkJc2tiX2RzdF91cGRhdGVfcG10dV9ub19jb25maXJtKHNrYiwgbXR1KTsKIAogCQlp ZiAoc2tiLT5wcm90b2NvbCA9PSBodG9ucyhFVEhfUF9JUFY2KSkgewogCQkJaWYgKG10dSA8IElQ VjZfTUlOX01UVSkKLS0gCjIuMjAuMQoKCkZyb20gNjRjYzM3MWU1Y2E4NzI3MTM1Y2MzNmI1NjMw YzdiNmE0MWRmZDRhMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSGFuZ2JpbiBMaXUg PGxpdWhhbmdiaW5AZ21haWwuY29tPgpEYXRlOiBTdW4sIDIyIERlYyAyMDE5IDEwOjUxOjE1ICsw ODAwClN1YmplY3Q6IFtQQVRDSCAyOC80Nl0gc2l0OiBkbyBub3QgY29uZmlybSBuZWlnaGJvciB3 aGVuIGRvIHBtdHUgdXBkYXRlCgpbIFVwc3RyZWFtIGNvbW1pdCA0ZDQyZGY0NmQ2MzcyZWNlNGNi NDI3OTg3MGI0NmMyZWE3MzA0YTQ3IF0KCldoZW4gZG8gSVB2NiB0dW5uZWwgUE1UVSB1cGRhdGUg YW5kIGNhbGxzIF9faXA2X3J0X3VwZGF0ZV9wbXR1KCkgaW4gdGhlIGVuZCwKd2Ugc2hvdWxkIG5v dCBjYWxsIGRzdF9jb25maXJtX25laWdoKCkgYXMgdGhlcmUgaXMgbm8gdHdvLXdheSBjb21tdW5p Y2F0aW9uLgoKdjU6IE5vIGNoYW5nZS4KdjQ6IE5vIGNoYW5nZS4KdjM6IERvIG5vdCByZW1vdmUg ZHN0X2NvbmZpcm1fbmVpZ2gsIGJ1dCBhZGQgYSBuZXcgYm9vbCBwYXJhbWV0ZXIgaW4KICAgIGRz dF9vcHMudXBkYXRlX3BtdHUgdG8gY29udHJvbCB3aGV0aGVyIHdlIHNob3VsZCBkbyBuZWlnaGJv ciBjb25maXJtLgogICAgQWxzbyBzcGxpdCB0aGUgYmlnIHBhdGNoIHRvIHNtYWxsIG9uZXMgZm9y IGVhY2ggYXJlYS4KdjI6IFJlbW92ZSBkc3RfY29uZmlybV9uZWlnaCBpbiBfX2lwNl9ydF91cGRh dGVfcG10dS4KClJldmlld2VkLWJ5OiBHdWlsbGF1bWUgTmF1bHQgPGduYXVsdEByZWRoYXQuY29t PgpBY2tlZC1ieTogRGF2aWQgQWhlcm4gPGRzYWhlcm5AZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5 OiBIYW5nYmluIExpdSA8bGl1aGFuZ2JpbkBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2Ni9zaXQuYyB8IDIg Ky0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAt LWdpdCBhL25ldC9pcHY2L3NpdC5jIGIvbmV0L2lwdjYvc2l0LmMKaW5kZXggYjJjY2JjNDczMTI3 Li45ODk1NDgzMGM0MGIgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L3NpdC5jCisrKyBiL25ldC9pcHY2 L3NpdC5jCkBAIC05NDQsNyArOTQ0LDcgQEAgc3RhdGljIG5ldGRldl90eF90IGlwaXA2X3R1bm5l bF94bWl0KHN0cnVjdCBza19idWZmICpza2IsCiAJCX0KIAogCQlpZiAodHVubmVsLT5wYXJtcy5p cGguZGFkZHIpCi0JCQlza2JfZHN0X3VwZGF0ZV9wbXR1KHNrYiwgbXR1KTsKKwkJCXNrYl9kc3Rf dXBkYXRlX3BtdHVfbm9fY29uZmlybShza2IsIG10dSk7CiAKIAkJaWYgKHNrYi0+bGVuID4gbXR1 ICYmICFza2JfaXNfZ3NvKHNrYikpIHsKIAkJCWljbXB2Nl9zZW5kKHNrYiwgSUNNUFY2X1BLVF9U T09CSUcsIDAsIG10dSk7Ci0tIAoyLjIwLjEKCgpGcm9tIDYwNGVlYTk4OGRjMDBhMjYxNGJhMWU2 MTRjZjBhZDgxYWQzMDc0NjggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEhhbmdiaW4g TGl1IDxsaXVoYW5nYmluQGdtYWlsLmNvbT4KRGF0ZTogU3VuLCAyMiBEZWMgMjAxOSAxMDo1MTox NiArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMjkvNDZdIG5ldC9kc3Q6IGRvIG5vdCBjb25maXJtIG5l aWdoYm9yIGZvciB2eGxhbiBhbmQgZ2VuZXZlCiBwbXR1IHVwZGF0ZQoKWyBVcHN0cmVhbSBjb21t aXQgZjA4MTA0MmQxMjhhMGM3YWNiZDY3NjExZGVmNjJlMWI1MmUyZDI5NCBdCgpXaGVuIGRvIElQ djYgdHVubmVsIFBNVFUgdXBkYXRlIGFuZCBjYWxscyBfX2lwNl9ydF91cGRhdGVfcG10dSgpIGlu IHRoZSBlbmQsCndlIHNob3VsZCBub3QgY2FsbCBkc3RfY29uZmlybV9uZWlnaCgpIGFzIHRoZXJl IGlzIG5vIHR3by13YXkgY29tbXVuaWNhdGlvbi4KClNvIGRpc2FibGUgdGhlIG5laWdoIGNvbmZp cm0gZm9yIHZ4bGFuIGFuZCBnZW5ldmUgcG10dSB1cGRhdGUuCgp2NTogTm8gY2hhbmdlLgp2NDog Tm8gY2hhbmdlLgp2MzogRG8gbm90IHJlbW92ZSBkc3RfY29uZmlybV9uZWlnaCwgYnV0IGFkZCBh IG5ldyBib29sIHBhcmFtZXRlciBpbgogICAgZHN0X29wcy51cGRhdGVfcG10dSB0byBjb250cm9s IHdoZXRoZXIgd2Ugc2hvdWxkIGRvIG5laWdoYm9yIGNvbmZpcm0uCiAgICBBbHNvIHNwbGl0IHRo ZSBiaWcgcGF0Y2ggdG8gc21hbGwgb25lcyBmb3IgZWFjaCBhcmVhLgp2MjogUmVtb3ZlIGRzdF9j b25maXJtX25laWdoIGluIF9faXA2X3J0X3VwZGF0ZV9wbXR1LgoKRml4ZXM6IGE5M2JmMGZmNDQ5 MCAoInZ4bGFuOiB1cGRhdGUgc2tiIGRzdCBwbXR1IG9uIHR4IHBhdGgiKQpGaXhlczogNTJhNTg5 ZDUxZjEwICgiZ2VuZXZlOiB1cGRhdGUgc2tiIGRzdCBwbXR1IG9uIHR4IHBhdGgiKQpSZXZpZXdl ZC1ieTogR3VpbGxhdW1lIE5hdWx0IDxnbmF1bHRAcmVkaGF0LmNvbT4KVGVzdGVkLWJ5OiBHdWls bGF1bWUgTmF1bHQgPGduYXVsdEByZWRoYXQuY29tPgpBY2tlZC1ieTogRGF2aWQgQWhlcm4gPGRz YWhlcm5AZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBIYW5nYmluIExpdSA8bGl1aGFuZ2JpbkBn bWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0 Lm5ldD4KLS0tCiBpbmNsdWRlL25ldC9kc3QuaCB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGlu c2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L2RzdC5o IGIvaW5jbHVkZS9uZXQvZHN0LmgKaW5kZXggZGM3Y2MxZjEwNTFjLi4zNDQ4Y2Y4NjVlZGUgMTAw NjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L2RzdC5oCisrKyBiL2luY2x1ZGUvbmV0L2RzdC5oCkBAIC01 MzUsNyArNTM1LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIHNrYl90dW5uZWxfY2hlY2tfcG10dShz dHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCXUzMiBlbmNhcF9tdHUgPSBkc3RfbXR1KGVuY2FwX2RzdCk7 CiAKIAlpZiAoc2tiLT5sZW4gPiBlbmNhcF9tdHUgLSBoZWFkcm9vbSkKLQkJc2tiX2RzdF91cGRh dGVfcG10dShza2IsIGVuY2FwX210dSAtIGhlYWRyb29tKTsKKwkJc2tiX2RzdF91cGRhdGVfcG10 dV9ub19jb25maXJtKHNrYiwgZW5jYXBfbXR1IC0gaGVhZHJvb20pOwogfQogCiAjZW5kaWYgLyog X05FVF9EU1RfSCAqLwotLSAKMi4yMC4xCgoKRnJvbSAwOTg4OWM3ZmM3NzAwZTI5OWIwZmExODEx NmQ3OTdjMWZjNGQ1MDI1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBWbGFkaW1pciBP bHRlYW4gPG9sdGVhbnZAZ21haWwuY29tPgpEYXRlOiBGcmksIDI3IERlYyAyMDE5IDAzOjExOjEz ICswMjAwClN1YmplY3Q6IFtQQVRDSCAzMC80Nl0gbmV0OiBkc2E6IHNqYTExMDU6IFJlY29uY2ls ZSB0aGUgbWVhbmluZyBvZiBUUElEIGFuZAogVFBJRDIgZm9yIEUvVCBhbmQgUC9RL1IvUwoKWyBV cHN0cmVhbSBjb21taXQgNTRmYTQ5ZWU4ODEzODc1NmRmMGZjZjg2N2NiMTg0OTkwNDcxMGE4YyBd CgpGb3IgZmlyc3QtZ2VuZXJhdGlvbiBzd2l0Y2hlcyAoU0pBMTEwNUUgYW5kIFNKQTExMDVUKToK LSBUUElEIG1lYW5zIEMtVGFnICh0eXBpY2FsbHkgMHg4MTAwKQotIFRQSUQyIG1lYW5zIFMtVGFn ICh0eXBpY2FsbHkgMHg4OEE4KQoKV2hpbGUgZm9yIHRoZSBzZWNvbmQgZ2VuZXJhdGlvbiBzd2l0 Y2hlcyAoU0pBMTEwNVAsIFNKQTExMDVRLCBTSkExMTA1UiwKU0pBMTEwNVMpIGl0IGlzIHRoZSBv dGhlciB3YXkgYXJvdW5kOgotIFRQSUQgbWVhbnMgUy1UYWcgKHR5cGljYWxseSAweDg4QTgpCi0g VFBJRDIgbWVhbnMgQy1UYWcgKHR5cGljYWxseSAweDgxMDApCgpJbiBvdGhlciB3b3JkcywgRS9U IHRhZ3MgdW50YWdnZWQgdHJhZmZpYyB3aXRoIFRQSUQsIGFuZCBQL1EvUi9TIHdpdGgKVFBJRDIu CgpTbyB0aGUgcGF0Y2ggbWVudGlvbmVkIGJlbG93IGZpeGVkIFZMQU4gZmlsdGVyaW5nIGZvciBQ L1EvUi9TLCBidXQgYnJva2UKaXQgZm9yIEUvVC4KCldlIHN0cml2ZSBmb3IgYSBjb21tb24gY29k ZSBwYXRoIGZvciBhbGwgc3dpdGNoZXMgaW4gdGhlIGZhbWlseSwgc28ganVzdApsaWUgaW4gdGhl IHN0YXRpYyBjb25maWcgcGFja2luZyBmdW5jdGlvbnMgdGhhdCBUUElEIGFuZCBUUElEMiBhcmUg YXQKc3dhcHBlZCBiaXQgb2Zmc2V0cyB0aGFuIHRoZXkgYWN0dWFsbHkgYXJlLCBmb3IgUC9RL1Iv Uy4gVGhpcyB3aWxsIG1ha2UKYm90aCBzd2l0Y2hlcyB1bmRlcnN0YW5kIFRQSUQgdG8gYmUgRVRI X1BfODAyMVEgYW5kIFRQSUQyIHRvIGJlCkVUSF9QXzgwMjFBRC4gVGhlIG1lYW5pbmcgZnJvbSB0 aGUgb3JpZ2luYWwgRS9UIHdhcyBjaG9zZW4gb3ZlciBQL1EvUi9TCmJlY2F1c2UgRS9UIGlzIGFj dHVhbGx5IHRoZSBvbmUgd2l0aCBwdWJsaWMgZG9jdW1lbnRhdGlvbiBhdmFpbGFibGUKKFVNMTA5 NDQucGRmKS4KCkZpeGVzOiBmOWExYTc2NDZjMGQgKCJuZXQ6IGRzYTogc2phMTEwNTogUmV2ZXJz ZSBUUElEIGFuZCBUUElEMiIpClNpZ25lZC1vZmYtYnk6IFZsYWRpbWlyIE9sdGVhbiA8b2x0ZWFu dkBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9kc2Evc2phMTEwNS9zamExMTA1X21haW4uYyAgICAg ICAgICB8IDggKysrKy0tLS0KIGRyaXZlcnMvbmV0L2RzYS9zamExMTA1L3NqYTExMDVfc3RhdGlj X2NvbmZpZy5jIHwgNyArKysrKy0tCiAyIGZpbGVzIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygrKSwg NiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2Evc2phMTEwNS9zamEx MTA1X21haW4uYyBiL2RyaXZlcnMvbmV0L2RzYS9zamExMTA1L3NqYTExMDVfbWFpbi5jCmluZGV4 IDRlNWE0MjhhYjFhNC4uNzc2MzIyMTI4NmQ0IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9kc2Ev c2phMTEwNS9zamExMTA1X21haW4uYworKysgYi9kcml2ZXJzL25ldC9kc2Evc2phMTEwNS9zamEx MTA1X21haW4uYwpAQCAtMTU2MCw4ICsxNTYwLDggQEAgc3RhdGljIGludCBzamExMTA1X3ZsYW5f ZmlsdGVyaW5nKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsIGJvb2wgZW5hYmxlZCkK IAogCWlmIChlbmFibGVkKSB7CiAJCS8qIEVuYWJsZSBWTEFOIGZpbHRlcmluZy4gKi8KLQkJdHBp ZCAgPSBFVEhfUF84MDIxQUQ7Ci0JCXRwaWQyID0gRVRIX1BfODAyMVE7CisJCXRwaWQgID0gRVRI X1BfODAyMVE7CisJCXRwaWQyID0gRVRIX1BfODAyMUFEOwogCX0gZWxzZSB7CiAJCS8qIERpc2Fi bGUgVkxBTiBmaWx0ZXJpbmcuICovCiAJCXRwaWQgID0gRVRIX1BfU0pBMTEwNTsKQEAgLTE1NzAs OSArMTU3MCw5IEBAIHN0YXRpYyBpbnQgc2phMTEwNV92bGFuX2ZpbHRlcmluZyhzdHJ1Y3QgZHNh X3N3aXRjaCAqZHMsIGludCBwb3J0LCBib29sIGVuYWJsZWQpCiAKIAl0YWJsZSA9ICZwcml2LT5z dGF0aWNfY29uZmlnLnRhYmxlc1tCTEtfSURYX0dFTkVSQUxfUEFSQU1TXTsKIAlnZW5lcmFsX3Bh cmFtcyA9IHRhYmxlLT5lbnRyaWVzOwotCS8qIEV0aGVyVHlwZSB1c2VkIHRvIGlkZW50aWZ5IG91 dGVyIHRhZ2dlZCAoUy10YWcpIFZMQU4gdHJhZmZpYyAqLwotCWdlbmVyYWxfcGFyYW1zLT50cGlk ID0gdHBpZDsKIAkvKiBFdGhlclR5cGUgdXNlZCB0byBpZGVudGlmeSBpbm5lciB0YWdnZWQgKEMt dGFnKSBWTEFOIHRyYWZmaWMgKi8KKwlnZW5lcmFsX3BhcmFtcy0+dHBpZCA9IHRwaWQ7CisJLyog RXRoZXJUeXBlIHVzZWQgdG8gaWRlbnRpZnkgb3V0ZXIgdGFnZ2VkIChTLXRhZykgVkxBTiB0cmFm ZmljICovCiAJZ2VuZXJhbF9wYXJhbXMtPnRwaWQyID0gdHBpZDI7CiAJLyogV2hlbiBWTEFOIGZp bHRlcmluZyBpcyBvbiwgd2UgbmVlZCB0byBhdCBsZWFzdCBiZSBhYmxlIHRvCiAJICogZGVjb2Rl IG1hbmFnZW1lbnQgdHJhZmZpYyB0aHJvdWdoIHRoZSAiYmFja3VwIHBsYW4iLgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9uZXQvZHNhL3NqYTExMDUvc2phMTEwNV9zdGF0aWNfY29uZmlnLmMgYi9kcml2 ZXJzL25ldC9kc2Evc2phMTEwNS9zamExMTA1X3N0YXRpY19jb25maWcuYwppbmRleCAwZDAzZTEz ZTk5MDkuLjYzZDIzMTE4MTdjNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZHNhL3NqYTExMDUv c2phMTEwNV9zdGF0aWNfY29uZmlnLmMKKysrIGIvZHJpdmVycy9uZXQvZHNhL3NqYTExMDUvc2ph MTEwNV9zdGF0aWNfY29uZmlnLmMKQEAgLTE0Miw2ICsxNDIsOSBAQCBzdGF0aWMgc2l6ZV90IHNq YTExMDVldF9nZW5lcmFsX3BhcmFtc19lbnRyeV9wYWNraW5nKHZvaWQgKmJ1Ziwgdm9pZCAqZW50 cnlfcHRyLAogCXJldHVybiBzaXplOwogfQogCisvKiBUUElEIGFuZCBUUElEMiBhcmUgaW50ZW50 aW9uYWxseSByZXZlcnNlZCBzbyB0aGF0IHNlbWFudGljCisgKiBjb21wYXRpYmlsaXR5IHdpdGgg RS9UIGlzIGtlcHQuCisgKi8KIHN0YXRpYyBzaXplX3QKIHNqYTExMDVwcXJzX2dlbmVyYWxfcGFy YW1zX2VudHJ5X3BhY2tpbmcodm9pZCAqYnVmLCB2b2lkICplbnRyeV9wdHIsCiAJCQkJCSBlbnVt IHBhY2tpbmdfb3Agb3ApCkBAIC0xNjYsOSArMTY5LDkgQEAgc2phMTEwNXBxcnNfZ2VuZXJhbF9w YXJhbXNfZW50cnlfcGFja2luZyh2b2lkICpidWYsIHZvaWQgKmVudHJ5X3B0ciwKIAlzamExMTA1 X3BhY2tpbmcoYnVmLCAmZW50cnktPm1pcnJfcG9ydCwgICAxNDEsIDEzOSwgc2l6ZSwgb3ApOwog CXNqYTExMDVfcGFja2luZyhidWYsICZlbnRyeS0+dmxtYXJrZXIsICAgIDEzOCwgMTA3LCBzaXpl LCBvcCk7CiAJc2phMTEwNV9wYWNraW5nKGJ1ZiwgJmVudHJ5LT52bG1hc2ssICAgICAgMTA2LCAg NzUsIHNpemUsIG9wKTsKLQlzamExMTA1X3BhY2tpbmcoYnVmLCAmZW50cnktPnRwaWQsICAgICAg ICAgNzQsICA1OSwgc2l6ZSwgb3ApOworCXNqYTExMDVfcGFja2luZyhidWYsICZlbnRyeS0+dHBp ZDIsICAgICAgICA3NCwgIDU5LCBzaXplLCBvcCk7CiAJc2phMTEwNV9wYWNraW5nKGJ1ZiwgJmVu dHJ5LT5pZ25vcmUyc3RmLCAgIDU4LCAgNTgsIHNpemUsIG9wKTsKLQlzamExMTA1X3BhY2tpbmco YnVmLCAmZW50cnktPnRwaWQyLCAgICAgICAgNTcsICA0Miwgc2l6ZSwgb3ApOworCXNqYTExMDVf cGFja2luZyhidWYsICZlbnRyeS0+dHBpZCwgICAgICAgICA1NywgIDQyLCBzaXplLCBvcCk7CiAJ c2phMTEwNV9wYWNraW5nKGJ1ZiwgJmVudHJ5LT5xdWV1ZV90cywgICAgIDQxLCAgNDEsIHNpemUs IG9wKTsKIAlzamExMTA1X3BhY2tpbmcoYnVmLCAmZW50cnktPmVncm1pcnJ2aWQsICAgNDAsICAy OSwgc2l6ZSwgb3ApOwogCXNqYTExMDVfcGFja2luZyhidWYsICZlbnRyeS0+ZWdybWlycnBjcCwg ICAyOCwgIDI2LCBzaXplLCBvcCk7Ci0tIAoyLjIwLjEKCgpGcm9tIDhmZDY5NDZhMTkzZjY4MDRm NGJkZTdlNzFkYjAxOTY4MmY4ZTU4NjggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFJ1 c3NlbGwgS2luZyA8cm1rK2tlcm5lbEBhcm1saW51eC5vcmcudWs+CkRhdGU6IFR1ZSwgMTAgRGVj IDIwMTkgMjI6MzM6MDUgKzAwMDAKU3ViamVjdDogW1BBVENIIDMxLzQ2XSBuZXQ6IG1hcnZlbGw6 IG12cHAyOiBwaHlsaW5rIHJlcXVpcmVzIHRoZSBsaW5rCiBpbnRlcnJ1cHQKClsgVXBzdHJlYW0g Y29tbWl0IGYzZjIzNjRlYTE0ZDFjZjZiZjk2NjU0MmYzMWVhZGNmMTc4ZjE1NzcgXQoKcGh5bGlu ayByZXF1aXJlcyB0aGUgTUFDIHRvIHJlcG9ydCB3aGVuIGl0cyBsaW5rIHN0YXR1cyBjaGFuZ2Vz IHdoZW4Kb3BlcmF0aW5nIGluIGluYmFuZCBtb2Rlcy4gIEZhaWx1cmUgdG8gcmVwb3J0IGxpbmsg c3RhdHVzIGNoYW5nZXMKbWVhbnMgdGhhdCBwaHlsaW5rIGhhcyBubyBpZGVhIHdoZW4gdGhlIGxp bmsgZXZlbnRzIGhhcHBlbiwgd2hpY2gKcmVzdWx0cyBpbiBlaXRoZXIgdGhlIG5ldHdvcmsgaW50 ZXJmYWNlJ3MgY2FycmllciByZW1haW5pbmcgdXAgb3IKcmVtYWluaW5nIHBlcm1hbmVudGx5IGRv d24uCgpGb3IgZXhhbXBsZSwgd2l0aCBhIGZpYmVyIG1vZHVsZSwgaWYgdGhlIGludGVyZmFjZSBp cyBicm91Z2h0IHVwIGFuZApsaW5rIGlzIGluaXRpYWxseSBlc3RhYmxpc2hlZCwgdGFraW5nIHRo ZSBsaW5rIGRvd24gYXQgdGhlIGZhciBlbmQKd2lsbCBjdXQgdGhlIG9wdGljYWwgcG93ZXIuICBU aGUgU0ZQIG1vZHVsZSdzIExPUyBhc3NlcnRzLCB3ZQpkZWFjdGl2YXRlIHRoZSBsaW5rLCBhbmQg dGhlIG5ldHdvcmsgaW50ZXJmYWNlIHJlcG9ydHMgbm8gY2Fycmllci4KCldoZW4gdGhlIGZhciBl bmQgaXMgYnJvdWdodCBiYWNrIHVwLCB0aGUgU0ZQIG1vZHVsZSdzIExPUyBkZWFzc2VydHMsCmJ1 dCB0aGUgTUFDIG1heSBiZSBzbG93ZXIgdG8gZXN0YWJsaXNoIGxpbmsuICBJZiB0aGlzIGhhcHBl bnMgKHdoaWNoCmluIG15IHRlc3RzIGlzIGEgY2VydGFpbnR5KSB0aGVuIHBoeWxpbmsgbmV2ZXIg aGVhcnMgdGhhdCB0aGUgTUFDCmhhcyBlc3RhYmxpc2hlZCBsaW5rIHdpdGggdGhlIGZhciBlbmQs IGFuZCB0aGUgbmV0d29yayBpbnRlcmZhY2UgaXMKc3R1Y2sgcmVwb3J0aW5nIG5vIGNhcnJpZXIu ICBUaGlzIG1lYW5zIHRoZSBpbnRlcmZhY2UgaXMKbm9uLWZ1bmN0aW9uYWwuCgpBdm9pZGluZyB0 aGUgbGluayBpbnRlcnJ1cHQgd2hlbiB3ZSBoYXZlIHBoeWxpbmsgaXMgYmFzaWNhbGx5IG5vdAph biBvcHRpb24sIHNvIHJlbW92ZSB0aGUgIXBvcnQtPnBoeWxpbmsgZnJvbSB0aGUgdGVzdC4KCkZp eGVzOiA0YmIwNDMyNjI4NzggKCJuZXQ6IG12cHAyOiBwaHlsaW5rIHN1cHBvcnQiKQpUZXN0ZWQt Ynk6IFN2ZW4gQXVoYWdlbiA8c3Zlbi5hdWhhZ2VuQHZvbGVhdGVjaC5kZT4KVGVzdGVkLWJ5OiBB bnRvaW5lIFRlbmFydCA8YW50b2luZS50ZW5hcnRAYm9vdGxpbi5jb20+ClNpZ25lZC1vZmYtYnk6 IFJ1c3NlbGwgS2luZyA8cm1rK2tlcm5lbEBhcm1saW51eC5vcmcudWs+ClNpZ25lZC1vZmYtYnk6 IEpha3ViIEtpY2luc2tpIDxqYWt1Yi5raWNpbnNraUBuZXRyb25vbWUuY29tPgotLS0KIGRyaXZl cnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXZwcDIvbXZwcDJfbWFpbi5jIHwgMiArLQogMSBmaWxl IGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJp dmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdnBwMi9tdnBwMl9tYWluLmMgYi9kcml2ZXJzL25l dC9ldGhlcm5ldC9tYXJ2ZWxsL212cHAyL212cHAyX21haW4uYwppbmRleCAxMTFiM2I4MjM5ZTEu LmVmNDRjNjk3OWEzMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9t dnBwMi9tdnBwMl9tYWluLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdnBw Mi9tdnBwMl9tYWluLmMKQEAgLTM2NzQsNyArMzY3NCw3IEBAIHN0YXRpYyBpbnQgbXZwcDJfb3Bl bihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogCQl2YWxpZCA9IHRydWU7CiAJfQogCi0JaWYgKHBy aXYtPmh3X3ZlcnNpb24gPT0gTVZQUDIyICYmIHBvcnQtPmxpbmtfaXJxICYmICFwb3J0LT5waHls aW5rKSB7CisJaWYgKHByaXYtPmh3X3ZlcnNpb24gPT0gTVZQUDIyICYmIHBvcnQtPmxpbmtfaXJx KSB7CiAJCWVyciA9IHJlcXVlc3RfaXJxKHBvcnQtPmxpbmtfaXJxLCBtdnBwMl9saW5rX3N0YXR1 c19pc3IsIDAsCiAJCQkJICBkZXYtPm5hbWUsIHBvcnQpOwogCQlpZiAoZXJyKSB7Ci0tIAoyLjIw LjEKCgpGcm9tIDI4ZGI0ZDlmODBkZGViODNkYjAxOGUwNzMwOWZmMjAyYmRjNzVkY2MgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IFRhZWhlZSBZb28gPGFwNDIwMDczQGdtYWlsLmNvbT4K RGF0ZTogV2VkLCAxMSBEZWMgMjAxOSAwODoyMzoxNyArMDAwMApTdWJqZWN0OiBbUEFUQ0ggMzIv NDZdIGd0cDogZml4IHdyb25nIGNvbmRpdGlvbiBpbiBndHBfZ2VubF9kdW1wX3BkcCgpCgpbIFVw c3RyZWFtIGNvbW1pdCA5NGE2ZDlmYjg4ZGY0M2Y5MmQ5NDNjMzJiODRjZTM5OGQ1MGJmNDlmIF0K Cmd0cF9nZW5sX2R1bXBfcGRwKCkgaXMgLT5kdW1waXQoKSBjYWxsYmFjayBvZiBHVFAgbW9kdWxl IGFuZCBpdCBpcyB1c2VkCnRvIGR1bXAgcGRwIGNvbnRleHRzLiBpdCB3b3VsZCBiZSByZS1leGVj dXRlZCBiZWNhdXNlIG9mIGR1bXAgcGFja2V0IHNpemUuCgpJZiBkdW1wIHBhY2tldCBzaXplIGlz IHRvbyBiaWcsIGl0IHNhdmVzIGN1cnJlbnQgZHVtcCBwb2ludGVyCihndHAgaW50ZXJmYWNlIHBv aW50ZXIsIGJ1Y2tldCwgVElEIHZhbHVlKSB0aGVuIGl0IHJlc3RhcnRzIGR1bXAgZnJvbQpsYXN0 IHBvaW50ZXIuCkN1cnJlbnQgR1RQIGNvZGUgYWxsb3dzIGFkZGluZyB6ZXJvIFRJRCBwZHAgY29u dGV4dCBidXQgZHVtcCBjb2RlCmlnbm9yZXMgemVybyBUSUQgdmFsdWUuIFNvLCBsYXN0IGR1bXAg cG9pbnRlciB3aWxsIG5vdCBiZSBmb3VuZC4KCkluIGFkZGl0aW9uLCB0aGlzIHBhdGNoIGFkZHMg bWlzc2luZyByY3VfcmVhZF9sb2NrKCkgaW4KZ3RwX2dlbmxfZHVtcF9wZHAoKS4KCkZpeGVzOiA0 NTlhYTY2MGViMWQgKCJndHA6IGFkZCBpbml0aWFsIGRyaXZlciBmb3IgZGF0YXBhdGggb2YgR1BS UyBUdW5uZWxpbmcgUHJvdG9jb2wgKEdUUC1VKSIpClNpZ25lZC1vZmYtYnk6IFRhZWhlZSBZb28g PGFwNDIwMDczQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogSmFrdWIgS2ljaW5za2kgPGpha3Vi LmtpY2luc2tpQG5ldHJvbm9tZS5jb20+Ci0tLQogZHJpdmVycy9uZXQvZ3RwLmMgfCAzNiArKysr KysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxOSBpbnNl cnRpb25zKCspLCAxNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ndHAu YyBiL2RyaXZlcnMvbmV0L2d0cC5jCmluZGV4IDcxYjM0ZmY4ZTdlYi4uN2JiYzFiZTM0OTBkIDEw MDY0NAotLS0gYS9kcml2ZXJzL25ldC9ndHAuYworKysgYi9kcml2ZXJzL25ldC9ndHAuYwpAQCAt MzgsNyArMzgsNiBAQCBzdHJ1Y3QgcGRwX2N0eCB7CiAJc3RydWN0IGhsaXN0X25vZGUJaGxpc3Rf YWRkcjsKIAogCXVuaW9uIHsKLQkJdTY0CQl0aWQ7CiAJCXN0cnVjdCB7CiAJCQl1NjQJdGlkOwog CQkJdTE2CWZsb3c7CkBAIC0xMjMyLDQzICsxMjMxLDQ2IEBAIHN0YXRpYyBpbnQgZ3RwX2dlbmxf ZHVtcF9wZHAoc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJCQlzdHJ1Y3QgbmV0bGlua19jYWxsYmFj ayAqY2IpCiB7CiAJc3RydWN0IGd0cF9kZXYgKmxhc3RfZ3RwID0gKHN0cnVjdCBndHBfZGV2ICop Y2ItPmFyZ3NbMl0sICpndHA7CisJaW50IGksIGosIGJ1Y2tldCA9IGNiLT5hcmdzWzBdLCBza2lw ID0gY2ItPmFyZ3NbMV07CiAJc3RydWN0IG5ldCAqbmV0ID0gc29ja19uZXQoc2tiLT5zayk7Ci0J c3RydWN0IGd0cF9uZXQgKmduID0gbmV0X2dlbmVyaWMobmV0LCBndHBfbmV0X2lkKTsKLQl1bnNp Z25lZCBsb25nIHRpZCA9IGNiLT5hcmdzWzFdOwotCWludCBpLCBrID0gY2ItPmFyZ3NbMF0sIHJl dDsKIAlzdHJ1Y3QgcGRwX2N0eCAqcGN0eDsKKwlzdHJ1Y3QgZ3RwX25ldCAqZ247CisKKwlnbiA9 IG5ldF9nZW5lcmljKG5ldCwgZ3RwX25ldF9pZCk7CiAKIAlpZiAoY2ItPmFyZ3NbNF0pCiAJCXJl dHVybiAwOwogCisJcmN1X3JlYWRfbG9jaygpOwogCWxpc3RfZm9yX2VhY2hfZW50cnlfcmN1KGd0 cCwgJmduLT5ndHBfZGV2X2xpc3QsIGxpc3QpIHsKIAkJaWYgKGxhc3RfZ3RwICYmIGxhc3RfZ3Rw ICE9IGd0cCkKIAkJCWNvbnRpbnVlOwogCQllbHNlCiAJCQlsYXN0X2d0cCA9IE5VTEw7CiAKLQkJ Zm9yIChpID0gazsgaSA8IGd0cC0+aGFzaF9zaXplOyBpKyspIHsKLQkJCWhsaXN0X2Zvcl9lYWNo X2VudHJ5X3JjdShwY3R4LCAmZ3RwLT50aWRfaGFzaFtpXSwgaGxpc3RfdGlkKSB7Ci0JCQkJaWYg KHRpZCAmJiB0aWQgIT0gcGN0eC0+dS50aWQpCi0JCQkJCWNvbnRpbnVlOwotCQkJCWVsc2UKLQkJ CQkJdGlkID0gMDsKLQotCQkJCXJldCA9IGd0cF9nZW5sX2ZpbGxfaW5mbyhza2IsCi0JCQkJCQkJ IE5FVExJTktfQ0IoY2ItPnNrYikucG9ydGlkLAotCQkJCQkJCSBjYi0+bmxoLT5ubG1zZ19zZXEs Ci0JCQkJCQkJIGNiLT5ubGgtPm5sbXNnX3R5cGUsIHBjdHgpOwotCQkJCWlmIChyZXQgPCAwKSB7 CisJCWZvciAoaSA9IGJ1Y2tldDsgaSA8IGd0cC0+aGFzaF9zaXplOyBpKyspIHsKKwkJCWogPSAw OworCQkJaGxpc3RfZm9yX2VhY2hfZW50cnlfcmN1KHBjdHgsICZndHAtPnRpZF9oYXNoW2ldLAor CQkJCQkJIGhsaXN0X3RpZCkgeworCQkJCWlmIChqID49IHNraXAgJiYKKwkJCQkgICAgZ3RwX2dl bmxfZmlsbF9pbmZvKHNrYiwKKwkJCQkJICAgIE5FVExJTktfQ0IoY2ItPnNrYikucG9ydGlkLAor CQkJCQkgICAgY2ItPm5saC0+bmxtc2dfc2VxLAorCQkJCQkgICAgY2ItPm5saC0+bmxtc2dfdHlw ZSwgcGN0eCkpIHsKIAkJCQkJY2ItPmFyZ3NbMF0gPSBpOwotCQkJCQljYi0+YXJnc1sxXSA9IHBj dHgtPnUudGlkOworCQkJCQljYi0+YXJnc1sxXSA9IGo7CiAJCQkJCWNiLT5hcmdzWzJdID0gKHVu c2lnbmVkIGxvbmcpZ3RwOwogCQkJCQlnb3RvIG91dDsKIAkJCQl9CisJCQkJaisrOwogCQkJfQor CQkJc2tpcCA9IDA7CiAJCX0KKwkJYnVja2V0ID0gMDsKIAl9CiAJY2ItPmFyZ3NbNF0gPSAxOwog b3V0OgorCXJjdV9yZWFkX3VubG9jaygpOwogCXJldHVybiBza2ItPmxlbjsKIH0KIAotLSAKMi4y MC4xCgoKRnJvbSAxZDJkODY1MzE3ZDUzMmU3ZmIxZWExM2U2Nzg2OGJiNTU3NjlhZmM2IE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUYWVoZWUgWW9vIDxhcDQyMDA3M0BnbWFpbC5jb20+ CkRhdGU6IFdlZCwgMTEgRGVjIDIwMTkgMDg6MjM6NDggKzAwMDAKU3ViamVjdDogW1BBVENIIDMz LzQ2XSBndHA6IGF2b2lkIHplcm8gc2l6ZSBoYXNodGFibGUKClsgVXBzdHJlYW0gY29tbWl0IDZh OTAyYzBmMzE5OTNhYjAyZTFiNmVhNzA4NTAwMmI5YzkwODNiNmEgXQoKR1RQIGRlZmF1bHQgaGFz aHRhYmxlIHNpemUgaXMgMTAyNCBhbmQgdXNlcnNwYWNlIGNvdWxkIHNldCBzcGVjaWZpYwpoYXNo dGFibGUgc2l6ZSB3aXRoIElGTEFfR1RQX1BEUF9IQVNIU0laRS4gSWYgaGFzaHRhYmxlIHNpemUg aXMgc2V0IHRvIDAKZnJvbSB1c2Vyc3BhY2UsICBoYXNodGFibGUgd2lsbCBub3Qgd29yayBhbmQg cGFuaWMgd2lsbCBvY2N1ci4KCkZpeGVzOiA0NTlhYTY2MGViMWQgKCJndHA6IGFkZCBpbml0aWFs IGRyaXZlciBmb3IgZGF0YXBhdGggb2YgR1BSUyBUdW5uZWxpbmcgUHJvdG9jb2wgKEdUUC1VKSIp ClNpZ25lZC1vZmYtYnk6IFRhZWhlZSBZb28gPGFwNDIwMDczQGdtYWlsLmNvbT4KU2lnbmVkLW9m Zi1ieTogSmFrdWIgS2ljaW5za2kgPGpha3ViLmtpY2luc2tpQG5ldHJvbm9tZS5jb20+Ci0tLQog ZHJpdmVycy9uZXQvZ3RwLmMgfCA3ICsrKysrLS0KIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlv bnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZ3RwLmMgYi9k cml2ZXJzL25ldC9ndHAuYwppbmRleCA3YmJjMWJlMzQ5MGQuLjUyMjgwMjk2MTcxMiAxMDA2NDQK LS0tIGEvZHJpdmVycy9uZXQvZ3RwLmMKKysrIGIvZHJpdmVycy9uZXQvZ3RwLmMKQEAgLTY2MCwx MCArNjYwLDEzIEBAIHN0YXRpYyBpbnQgZ3RwX25ld2xpbmsoc3RydWN0IG5ldCAqc3JjX25ldCwg c3RydWN0IG5ldF9kZXZpY2UgKmRldiwKIAlpZiAoZXJyIDwgMCkKIAkJcmV0dXJuIGVycjsKIAot CWlmICghZGF0YVtJRkxBX0dUUF9QRFBfSEFTSFNJWkVdKQorCWlmICghZGF0YVtJRkxBX0dUUF9Q RFBfSEFTSFNJWkVdKSB7CiAJCWhhc2hzaXplID0gMTAyNDsKLQllbHNlCisJfSBlbHNlIHsKIAkJ aGFzaHNpemUgPSBubGFfZ2V0X3UzMihkYXRhW0lGTEFfR1RQX1BEUF9IQVNIU0laRV0pOworCQlp ZiAoIWhhc2hzaXplKQorCQkJaGFzaHNpemUgPSAxMDI0OworCX0KIAogCWVyciA9IGd0cF9oYXNo dGFibGVfbmV3KGd0cCwgaGFzaHNpemUpOwogCWlmIChlcnIgPCAwKQotLSAKMi4yMC4xCgoKRnJv bSA2MzBjNGRmY2EyNmJkZjZiYjAzYWRkZGM5MjYwNzdmYjE3N2VlYjAzIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBNYWhlc2ggQmFuZGV3YXIgPG1haGVzaGJAZ29vZ2xlLmNvbT4KRGF0 ZTogRnJpLCA2IERlYyAyMDE5IDE1OjQ0OjU1IC0wODAwClN1YmplY3Q6IFtQQVRDSCAzNC80Nl0g Ym9uZGluZzogZml4IGFjdGl2ZS1iYWNrdXAgdHJhbnNpdGlvbiBhZnRlciBsaW5rCiBmYWlsdXJl CgpbIFVwc3RyZWFtIGNvbW1pdCA1ZDQ4NWVkODhkNDhmODEwMWEyMDY3MzQ4ZTI2N2MwYWFmNGVk NDg2IF0KCkFmdGVyIHRoZSByZWNlbnQgZml4IGluIGNvbW1pdCAxODk5YmIzMjUxNDkgKCJib25k aW5nOiBmaXggc3RhdGUKdHJhbnNpdGlvbiBpc3N1ZSBpbiBsaW5rIG1vbml0b3JpbmciKSwgdGhl IGFjdGl2ZS1iYWNrdXAgbW9kZSB3aXRoCm1paW1vbiBpbml0aWFsbHkgY29tZS11cCBmaW5lIGJ1 dCBhZnRlciBhIGxpbmstZmFpbHVyZSwgYm90aCBtZW1iZXJzCnRyYW5zaXRpb24gaW50byBiYWNr dXAgc3RhdGUuCgpGb2xsb3dpbmcgc3RlcHMgdG8gcmVwcm9kdWNlIHRoZSBzY2VuYXJpbyAoZXRo MSBhbmQgZXRoMiBhcmUgdGhlCnNsYXZlcyBvZiB0aGUgYm9uZCk6CgogICAgaXAgbGluayBzZXQg ZXRoMSB1cAogICAgaXAgbGluayBzZXQgZXRoMiBkb3duCiAgICBzbGVlcCAxCiAgICBpcCBsaW5r IHNldCBldGgyIHVwCiAgICBpcCBsaW5rIHNldCBldGgxIGRvd24KICAgIGNhdCAvc3lzL2NsYXNz L25ldC9ldGgxL2JvbmRpbmdfc2xhdmUvc3RhdGUKICAgIGNhdCAvc3lzL2NsYXNzL25ldC9ldGgy L2JvbmRpbmdfc2xhdmUvc3RhdGUKCkZpeGVzOiAxODk5YmIzMjUxNDkgKCJib25kaW5nOiBmaXgg c3RhdGUgdHJhbnNpdGlvbiBpc3N1ZSBpbiBsaW5rIG1vbml0b3JpbmciKQpDQzogSmF5IFZvc2J1 cmdoIDxqYXkudm9zYnVyZ2hAY2Fub25pY2FsLmNvbT4KU2lnbmVkLW9mZi1ieTogTWFoZXNoIEJh bmRld2FyIDxtYWhlc2hiQGdvb2dsZS5jb20+CkFja2VkLWJ5OiBKYXkgVm9zYnVyZ2ggPGpheS52 b3NidXJnaEBjYW5vbmljYWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBKYWt1YiBLaWNpbnNraSA8amFr dWIua2ljaW5za2lAbmV0cm9ub21lLmNvbT4KLS0tCiBkcml2ZXJzL25ldC9ib25kaW5nL2JvbmRf bWFpbi5jIHwgMyAtLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2RyaXZlcnMvbmV0L2JvbmRpbmcvYm9uZF9tYWluLmMgYi9kcml2ZXJzL25ldC9ib25kaW5n L2JvbmRfbWFpbi5jCmluZGV4IGZhY2UwMGM2MjJlZC4uN2RjZDcwOWY0YWMzIDEwMDY0NAotLS0g YS9kcml2ZXJzL25ldC9ib25kaW5nL2JvbmRfbWFpbi5jCisrKyBiL2RyaXZlcnMvbmV0L2JvbmRp bmcvYm9uZF9tYWluLmMKQEAgLTIyMjUsOSArMjIyNSw2IEBAIHN0YXRpYyB2b2lkIGJvbmRfbWlp bW9uX2NvbW1pdChzdHJ1Y3QgYm9uZGluZyAqYm9uZCkKIAkJCX0gZWxzZSBpZiAoQk9ORF9NT0RF KGJvbmQpICE9IEJPTkRfTU9ERV9BQ1RJVkVCQUNLVVApIHsKIAkJCQkvKiBtYWtlIGl0IGltbWVk aWF0ZWx5IGFjdGl2ZSAqLwogCQkJCWJvbmRfc2V0X2FjdGl2ZV9zbGF2ZShzbGF2ZSk7Ci0JCQl9 IGVsc2UgaWYgKHNsYXZlICE9IHByaW1hcnkpIHsKLQkJCQkvKiBwcmV2ZW50IGl0IGZyb20gYmVp bmcgdGhlIGFjdGl2ZSBvbmUgKi8KLQkJCQlib25kX3NldF9iYWNrdXBfc2xhdmUoc2xhdmUpOwog CQkJfQogCiAJCQlzbGF2ZV9pbmZvKGJvbmQtPmRldiwgc2xhdmUtPmRldiwgImxpbmsgc3RhdHVz IGRlZmluaXRlbHkgdXAsICV1IE1icHMgJXMgZHVwbGV4XG4iLAotLSAKMi4yMC4xCgoKRnJvbSBk NDgyMDM4MTlmMGY4ZjBiNDNmMTI4ZDhhYTA4ZmM2ZDgzMGU0Y2VlIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkRhdGU6IFRo dSwgMTIgRGVjIDIwMTkgMTA6MzI6MTMgLTA4MDAKU3ViamVjdDogW1BBVENIIDM1LzQ2XSA2cGFj ayxta2lzczogZml4IHBvc3NpYmxlIGRlYWRsb2NrCgpbIFVwc3RyZWFtIGNvbW1pdCA1Yzk5MzRi Njc2N2IxNmJhNjBiZTIyZWMzY2JkNDM3OWFkNjQxNzBkIF0KCldlIGdvdCBhbm90aGVyIHN5emJv dCByZXBvcnQgWzFdIHRoYXQgdGVsbHMgdXMgd2UgbXVzdCB1c2UKd3JpdGVfbG9ja19pcnEoKS93 cml0ZV91bmxvY2tfaXJxKCkgdG8gYXZvaWQgcG9zc2libGUgZGVhZGxvY2suCgpbMV0KCldBUk5J Tkc6IGluY29uc2lzdGVudCBsb2NrIHN0YXRlCjUuNS4wLXJjMS1zeXprYWxsZXIgIzAgTm90IHRh aW50ZWQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KaW5jb25zaXN0ZW50IHtIQVJE SVJRLU9OLVd9IC0+IHtJTi1IQVJESVJRLVJ9IHVzYWdlLgpzeXotZXhlY3V0b3I4MjYvOTYwNSBb SEMxWzFdOlNDMFswXTpIRTA6U0UxXSB0YWtlczoKZmZmZmZmZmY4YTEyODcxOCAoZGlzY19kYXRh X2xvY2speystLi59LCBhdDogc3BfZ2V0LmlzcmEuMCsweDFkLzB4ZjAgZHJpdmVycy9uZXQvcHBw L3BwcF9zeW5jdHR5LmM6MTM4CntIQVJESVJRLU9OLVd9IHN0YXRlIHdhcyByZWdpc3RlcmVkIGF0 OgogIGxvY2tfYWNxdWlyZSsweDE5MC8weDQxMCBrZXJuZWwvbG9ja2luZy9sb2NrZGVwLmM6NDQ4 NQogIF9fcmF3X3dyaXRlX2xvY2tfYmggaW5jbHVkZS9saW51eC9yd2xvY2tfYXBpX3NtcC5oOjIw MyBbaW5saW5lXQogIF9yYXdfd3JpdGVfbG9ja19iaCsweDMzLzB4NTAga2VybmVsL2xvY2tpbmcv c3BpbmxvY2suYzozMTkKICBzaXhwYWNrX2Nsb3NlKzB4MWQvMHgyNTAgZHJpdmVycy9uZXQvaGFt cmFkaW8vNnBhY2suYzo2NTcKICB0dHlfbGRpc2NfY2xvc2UuaXNyYS4wKzB4MTE5LzB4MWEwIGRy aXZlcnMvdHR5L3R0eV9sZGlzYy5jOjQ4OQogIHR0eV9zZXRfbGRpc2MrMHgyMzAvMHg2YjAgZHJp dmVycy90dHkvdHR5X2xkaXNjLmM6NTg1CiAgdGlvY3NldGQgZHJpdmVycy90dHkvdHR5X2lvLmM6 MjMzNyBbaW5saW5lXQogIHR0eV9pb2N0bCsweGU4ZC8weDE0ZjAgZHJpdmVycy90dHkvdHR5X2lv LmM6MjU5NwogIHZmc19pb2N0bCBmcy9pb2N0bC5jOjQ3IFtpbmxpbmVdCiAgZmlsZV9pb2N0bCBm cy9pb2N0bC5jOjU0NSBbaW5saW5lXQogIGRvX3Zmc19pb2N0bCsweDk3Ny8weDE0ZTAgZnMvaW9j dGwuYzo3MzIKICBrc3lzX2lvY3RsKzB4YWIvMHhkMCBmcy9pb2N0bC5jOjc0OQogIF9fZG9fc3lz X2lvY3RsIGZzL2lvY3RsLmM6NzU2IFtpbmxpbmVdCiAgX19zZV9zeXNfaW9jdGwgZnMvaW9jdGwu Yzo3NTQgW2lubGluZV0KICBfX3g2NF9zeXNfaW9jdGwrMHg3My8weGIwIGZzL2lvY3RsLmM6NzU0 CiAgZG9fc3lzY2FsbF82NCsweGZhLzB4NzkwIGFyY2gveDg2L2VudHJ5L2NvbW1vbi5jOjI5NAog IGVudHJ5X1NZU0NBTExfNjRfYWZ0ZXJfaHdmcmFtZSsweDQ5LzB4YmUKaXJxIGV2ZW50IHN0YW1w OiAzOTQ2CmhhcmRpcnFzIGxhc3QgIGVuYWJsZWQgYXQgKDM5NDUpOiBbPGZmZmZmZmZmODdjODZl NDM+XSBfX3Jhd19zcGluX3VubG9ja19pcnEgaW5jbHVkZS9saW51eC9zcGlubG9ja19hcGlfc21w Lmg6MTY4IFtpbmxpbmVdCmhhcmRpcnFzIGxhc3QgIGVuYWJsZWQgYXQgKDM5NDUpOiBbPGZmZmZm ZmZmODdjODZlNDM+XSBfcmF3X3NwaW5fdW5sb2NrX2lycSsweDIzLzB4ODAga2VybmVsL2xvY2tp bmcvc3BpbmxvY2suYzoxOTkKaGFyZGlycXMgbGFzdCBkaXNhYmxlZCBhdCAoMzk0Nik6IFs8ZmZm ZmZmZmY4MTAwNjc1Zj5dIHRyYWNlX2hhcmRpcnFzX29mZl90aHVuaysweDFhLzB4MWMgYXJjaC94 ODYvZW50cnkvdGh1bmtfNjQuUzo0Mgpzb2Z0aXJxcyBsYXN0ICBlbmFibGVkIGF0ICgyNjU4KTog WzxmZmZmZmZmZjg2YThiNGRmPl0gc3Bpbl91bmxvY2tfYmggaW5jbHVkZS9saW51eC9zcGlubG9j ay5oOjM4MyBbaW5saW5lXQpzb2Z0aXJxcyBsYXN0ICBlbmFibGVkIGF0ICgyNjU4KTogWzxmZmZm ZmZmZjg2YThiNGRmPl0gY2x1c3RlcmlwX25ldGRldl9ldmVudCsweDQ2Zi8weDY3MCBuZXQvaXB2 NC9uZXRmaWx0ZXIvaXB0X0NMVVNURVJJUC5jOjIyMgpzb2Z0aXJxcyBsYXN0IGRpc2FibGVkIGF0 ICgyNjU2KTogWzxmZmZmZmZmZjg2YThiMjJiPl0gc3Bpbl9sb2NrX2JoIGluY2x1ZGUvbGludXgv c3BpbmxvY2suaDozNDMgW2lubGluZV0Kc29mdGlycXMgbGFzdCBkaXNhYmxlZCBhdCAoMjY1Nik6 IFs8ZmZmZmZmZmY4NmE4YjIyYj5dIGNsdXN0ZXJpcF9uZXRkZXZfZXZlbnQrMHgxYmIvMHg2NzAg bmV0L2lwdjQvbmV0ZmlsdGVyL2lwdF9DTFVTVEVSSVAuYzoxOTYKCm90aGVyIGluZm8gdGhhdCBt aWdodCBoZWxwIHVzIGRlYnVnIHRoaXM6CiBQb3NzaWJsZSB1bnNhZmUgbG9ja2luZyBzY2VuYXJp bzoKCiAgICAgICBDUFUwCiAgICAgICAtLS0tCiAgbG9jayhkaXNjX2RhdGFfbG9jayk7CiAgPElu dGVycnVwdD4KICAgIGxvY2soZGlzY19kYXRhX2xvY2spOwoKICoqKiBERUFETE9DSyAqKioKCjUg bG9ja3MgaGVsZCBieSBzeXotZXhlY3V0b3I4MjYvOTYwNToKICMwOiBmZmZmODg4MGE5MDVlMTk4 ICgmdHR5LT5sZWdhY3lfbXV0ZXgpeysuKy59LCBhdDogdHR5X2xvY2srMHhjNy8weDEzMCBkcml2 ZXJzL3R0eS90dHlfbXV0ZXguYzoxOQogIzE6IGZmZmZmZmZmODk5YTU2YzAgKHJjdV9yZWFkX2xv Y2spey4uLi59LCBhdDogbXV0ZXhfc3Bpbl9vbl9vd25lcisweDAvMHgzMzAga2VybmVsL2xvY2tp bmcvbXV0ZXguYzo0MTMKICMyOiBmZmZmODg4MGE0OTZhMmIwICgmKCZpLT5sb2NrKS0+cmxvY2sp ey0uLS59LCBhdDogc3Bpbl9sb2NrIGluY2x1ZGUvbGludXgvc3BpbmxvY2suaDozMzggW2lubGlu ZV0KICMyOiBmZmZmODg4MGE0OTZhMmIwICgmKCZpLT5sb2NrKS0+cmxvY2spey0uLS59LCBhdDog c2VyaWFsODI1MF9pbnRlcnJ1cHQrMHgyZC8weDFhMCBkcml2ZXJzL3R0eS9zZXJpYWwvODI1MC84 MjUwX2NvcmUuYzoxMTYKICMzOiBmZmZmZmZmZjhjMTA0MDQ4ICgmcG9ydF9sb2NrX2tleSl7LS4t Ln0sIGF0OiBzZXJpYWw4MjUwX2hhbmRsZV9pcnEucGFydC4wKzB4MjQvMHgzMzAgZHJpdmVycy90 dHkvc2VyaWFsLzgyNTAvODI1MF9wb3J0LmM6MTgyMwogIzQ6IGZmZmY4ODgwYTkwNWUwOTAgKCZ0 dHktPmxkaXNjX3NlbSl7KysrK30sIGF0OiB0dHlfbGRpc2NfcmVmKzB4MjIvMHg5MCBkcml2ZXJz L3R0eS90dHlfbGRpc2MuYzoyODgKCnN0YWNrIGJhY2t0cmFjZToKQ1BVOiAxIFBJRDogOTYwNSBD b21tOiBzeXotZXhlY3V0b3I4MjYgTm90IHRhaW50ZWQgNS41LjAtcmMxLXN5emthbGxlciAjMApI YXJkd2FyZSBuYW1lOiBHb29nbGUgR29vZ2xlIENvbXB1dGUgRW5naW5lL0dvb2dsZSBDb21wdXRl IEVuZ2luZSwgQklPUyBHb29nbGUgMDEvMDEvMjAxMQpDYWxsIFRyYWNlOgogPElSUT4KIF9fZHVt cF9zdGFjayBsaWIvZHVtcF9zdGFjay5jOjc3IFtpbmxpbmVdCiBkdW1wX3N0YWNrKzB4MTk3LzB4 MjEwIGxpYi9kdW1wX3N0YWNrLmM6MTE4CiBwcmludF91c2FnZV9idWcuY29sZCsweDMyNy8weDM3 OCBrZXJuZWwvbG9ja2luZy9sb2NrZGVwLmM6MzEwMQogdmFsaWRfc3RhdGUga2VybmVsL2xvY2tp bmcvbG9ja2RlcC5jOjMxMTIgW2lubGluZV0KIG1hcmtfbG9ja19pcnEga2VybmVsL2xvY2tpbmcv bG9ja2RlcC5jOjMzMDkgW2lubGluZV0KIG1hcmtfbG9jaysweGJiNC8weDEyMjAga2VybmVsL2xv Y2tpbmcvbG9ja2RlcC5jOjM2NjYKIG1hcmtfdXNhZ2Uga2VybmVsL2xvY2tpbmcvbG9ja2RlcC5j OjM1NTQgW2lubGluZV0KIF9fbG9ja19hY3F1aXJlKzB4MWU1NS8weDRhMDAga2VybmVsL2xvY2tp bmcvbG9ja2RlcC5jOjM5MDkKIGxvY2tfYWNxdWlyZSsweDE5MC8weDQxMCBrZXJuZWwvbG9ja2lu Zy9sb2NrZGVwLmM6NDQ4NQogX19yYXdfcmVhZF9sb2NrIGluY2x1ZGUvbGludXgvcndsb2NrX2Fw aV9zbXAuaDoxNDkgW2lubGluZV0KIF9yYXdfcmVhZF9sb2NrKzB4MzIvMHg1MCBrZXJuZWwvbG9j a2luZy9zcGlubG9jay5jOjIyMwogc3BfZ2V0LmlzcmEuMCsweDFkLzB4ZjAgZHJpdmVycy9uZXQv cHBwL3BwcF9zeW5jdHR5LmM6MTM4CiBzaXhwYWNrX3dyaXRlX3dha2V1cCsweDI1LzB4MzQwIGRy aXZlcnMvbmV0L2hhbXJhZGlvLzZwYWNrLmM6NDAyCiB0dHlfd2FrZXVwKzB4ZTkvMHgxMjAgZHJp dmVycy90dHkvdHR5X2lvLmM6NTM2CiB0dHlfcG9ydF9kZWZhdWx0X3dha2V1cCsweDJiLzB4NDAg ZHJpdmVycy90dHkvdHR5X3BvcnQuYzo1MAogdHR5X3BvcnRfdHR5X3dha2V1cCsweDU3LzB4NzAg ZHJpdmVycy90dHkvdHR5X3BvcnQuYzozODcKIHVhcnRfd3JpdGVfd2FrZXVwKzB4NDYvMHg3MCBk cml2ZXJzL3R0eS9zZXJpYWwvc2VyaWFsX2NvcmUuYzoxMDQKIHNlcmlhbDgyNTBfdHhfY2hhcnMr MHg0OTUvMHhhZjAgZHJpdmVycy90dHkvc2VyaWFsLzgyNTAvODI1MF9wb3J0LmM6MTc2MQogc2Vy aWFsODI1MF9oYW5kbGVfaXJxLnBhcnQuMCsweDJhMi8weDMzMCBkcml2ZXJzL3R0eS9zZXJpYWwv ODI1MC84MjUwX3BvcnQuYzoxODM0CiBzZXJpYWw4MjUwX2hhbmRsZV9pcnEgZHJpdmVycy90dHkv c2VyaWFsLzgyNTAvODI1MF9wb3J0LmM6MTgyMCBbaW5saW5lXQogc2VyaWFsODI1MF9kZWZhdWx0 X2hhbmRsZV9pcnErMHhjMC8weDE1MCBkcml2ZXJzL3R0eS9zZXJpYWwvODI1MC84MjUwX3BvcnQu YzoxODUwCiBzZXJpYWw4MjUwX2ludGVycnVwdCsweGYxLzB4MWEwIGRyaXZlcnMvdHR5L3Nlcmlh bC84MjUwLzgyNTBfY29yZS5jOjEyNgogX19oYW5kbGVfaXJxX2V2ZW50X3BlcmNwdSsweDE1ZC8w eDk3MCBrZXJuZWwvaXJxL2hhbmRsZS5jOjE0OQogaGFuZGxlX2lycV9ldmVudF9wZXJjcHUrMHg3 NC8weDE2MCBrZXJuZWwvaXJxL2hhbmRsZS5jOjE4OQogaGFuZGxlX2lycV9ldmVudCsweGE3LzB4 MTM0IGtlcm5lbC9pcnEvaGFuZGxlLmM6MjA2CiBoYW5kbGVfZWRnZV9pcnErMHgyNWUvMHg4ZDAg a2VybmVsL2lycS9jaGlwLmM6ODMwCiBnZW5lcmljX2hhbmRsZV9pcnFfZGVzYyBpbmNsdWRlL2xp bnV4L2lycWRlc2MuaDoxNTYgW2lubGluZV0KIGRvX0lSUSsweGRlLzB4MjgwIGFyY2gveDg2L2tl cm5lbC9pcnEuYzoyNTAKIGNvbW1vbl9pbnRlcnJ1cHQrMHhmLzB4ZiBhcmNoL3g4Ni9lbnRyeS9l bnRyeV82NC5TOjYwNwogPC9JUlE+ClJJUDogMDAxMDpjcHVfcmVsYXggYXJjaC94ODYvaW5jbHVk ZS9hc20vcHJvY2Vzc29yLmg6Njg1IFtpbmxpbmVdClJJUDogMDAxMDptdXRleF9zcGluX29uX293 bmVyKzB4MjQ3LzB4MzMwIGtlcm5lbC9sb2NraW5nL211dGV4LmM6NTc5CkNvZGU6IGMzIGJlIDA4 IDAwIDAwIDAwIDRjIDg5IGU3IGU4IGU1IDA2IDU5IDAwIDRjIDg5IGUwIDQ4IGMxIGU4IDAzIDQy IDgwIDNjIDM4IDAwIDBmIDg1IGUxIDAwIDAwIDAwIDQ5IDhiIDA0IDI0IGE4IDAxIDc1IDk2IGYz IDkwIDxlOT4gMmYgZmUgZmYgZmYgMGYgMGIgZTggMGQgMTkgMDkgMDAgODQgYzAgMGYgODUgZmYg ZmQgZmYgZmYgNDggYzcKUlNQOiAwMDE4OmZmZmZjOTAwMDFlYWZhMjAgRUZMQUdTOiAwMDAwMDI0 NiBPUklHX1JBWDogZmZmZmZmZmZmZmZmZmZkNwpSQVg6IDAwMDAwMDAwMDAwMDAwMDAgUkJYOiBm ZmZmODg4MDlmZDllMGMwIFJDWDogMWZmZmZmZmZmMTMyNjZkZApSRFg6IDAwMDAwMDAwMDAwMDAw MDAgUlNJOiAwMDAwMDAwMDAwMDAwMDA4IFJESTogMDAwMDAwMDAwMDAwMDAwMApSQlA6IGZmZmZj OTAwMDFlYWZhNjAgUjA4OiAxZmZmZjExMDEzZDIyODk4IFIwOTogZmZmZmVkMTAxM2QyMjg5OQpS MTA6IGZmZmZlZDEwMTNkMjI4OTggUjExOiBmZmZmODg4MDllOTE0NGM3IFIxMjogZmZmZjg4ODBh OTA1ZTEzOApSMTM6IGZmZmY4ODgwOWU5MTQ0YzAgUjE0OiAwMDAwMDAwMDAwMDAwMDAwIFIxNTog ZGZmZmZjMDAwMDAwMDAwMAogbXV0ZXhfb3B0aW1pc3RpY19zcGluIGtlcm5lbC9sb2NraW5nL211 dGV4LmM6NjczIFtpbmxpbmVdCiBfX211dGV4X2xvY2tfY29tbW9uIGtlcm5lbC9sb2NraW5nL211 dGV4LmM6OTYyIFtpbmxpbmVdCiBfX211dGV4X2xvY2srMHgzMmIvMHgxM2MwIGtlcm5lbC9sb2Nr aW5nL211dGV4LmM6MTEwNgogbXV0ZXhfbG9ja19uZXN0ZWQrMHgxNi8weDIwIGtlcm5lbC9sb2Nr aW5nL211dGV4LmM6MTEyMQogdHR5X2xvY2srMHhjNy8weDEzMCBkcml2ZXJzL3R0eS90dHlfbXV0 ZXguYzoxOQogdHR5X3JlbGVhc2UrMHhiNS8weGU5MCBkcml2ZXJzL3R0eS90dHlfaW8uYzoxNjY1 CiBfX2ZwdXQrMHgyZmYvMHg4OTAgZnMvZmlsZV90YWJsZS5jOjI4MAogX19fX2ZwdXQrMHgxNi8w eDIwIGZzL2ZpbGVfdGFibGUuYzozMTMKIHRhc2tfd29ya19ydW4rMHgxNDUvMHgxYzAga2VybmVs L3Rhc2tfd29yay5jOjExMwogZXhpdF90YXNrX3dvcmsgaW5jbHVkZS9saW51eC90YXNrX3dvcmsu aDoyMiBbaW5saW5lXQogZG9fZXhpdCsweDhlNy8weDJlZjAga2VybmVsL2V4aXQuYzo3OTcKIGRv X2dyb3VwX2V4aXQrMHgxMzUvMHgzNjAga2VybmVsL2V4aXQuYzo4OTUKIF9fZG9fc3lzX2V4aXRf Z3JvdXAga2VybmVsL2V4aXQuYzo5MDYgW2lubGluZV0KIF9fc2Vfc3lzX2V4aXRfZ3JvdXAga2Vy bmVsL2V4aXQuYzo5MDQgW2lubGluZV0KIF9feDY0X3N5c19leGl0X2dyb3VwKzB4NDQvMHg1MCBr ZXJuZWwvZXhpdC5jOjkwNAogZG9fc3lzY2FsbF82NCsweGZhLzB4NzkwIGFyY2gveDg2L2VudHJ5 L2NvbW1vbi5jOjI5NAogZW50cnlfU1lTQ0FMTF82NF9hZnRlcl9od2ZyYW1lKzB4NDkvMHhiZQpS SVA6IDAwMzM6MHg0M2ZlZjgKQ29kZTogQmFkIFJJUCB2YWx1ZS4KUlNQOiAwMDJiOjAwMDA3ZmZk YjA3ZDIzMzggRUZMQUdTOiAwMDAwMDI0NiBPUklHX1JBWDogMDAwMDAwMDAwMDAwMDBlNwpSQVg6 IGZmZmZmZmZmZmZmZmZmZGEgUkJYOiAwMDAwMDAwMDAwMDAwMDAwIFJDWDogMDAwMDAwMDAwMDQz ZmVmOApSRFg6IDAwMDAwMDAwMDAwMDAwMDAgUlNJOiAwMDAwMDAwMDAwMDAwMDNjIFJESTogMDAw MDAwMDAwMDAwMDAwMApSQlA6IDAwMDAwMDAwMDA0YmY3MzAgUjA4OiAwMDAwMDAwMDAwMDAwMGU3 IFIwOTogZmZmZmZmZmZmZmZmZmZkMApSMTA6IDAwMDAwMDAwMDA0MDAyYzggUjExOiAwMDAwMDAw MDAwMDAwMjQ2IFIxMjogMDAwMDAwMDAwMDAwMDAwMQpSMTM6IDAwMDAwMDAwMDA2ZDExODAgUjE0 OiAwMDAwMDAwMDAwMDAwMDAwIFIxNTogMDAwMDAwMDAwMDAwMDAwMAoKRml4ZXM6IDZlNGUyZjgx MWJhZCAoIjZwYWNrLG1raXNzOiBmaXggbG9jayBpbmNvbnNpc3RlbmN5IikKU2lnbmVkLW9mZi1i eTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpSZXBvcnRlZC1ieTogc3l6Ym90 IDxzeXprYWxsZXJAZ29vZ2xlZ3JvdXBzLmNvbT4KQ2M6IEFybmQgQmVyZ21hbm4gPGFybmRAYXJu ZGIuZGU+ClNpZ25lZC1vZmYtYnk6IEpha3ViIEtpY2luc2tpIDxqYWt1Yi5raWNpbnNraUBuZXRy b25vbWUuY29tPgotLS0KIGRyaXZlcnMvbmV0L2hhbXJhZGlvLzZwYWNrLmMgfCA0ICsrLS0KIGRy aXZlcnMvbmV0L2hhbXJhZGlvL21raXNzLmMgfCA0ICsrLS0KIDIgZmlsZXMgY2hhbmdlZCwgNCBp bnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2hh bXJhZGlvLzZwYWNrLmMgYi9kcml2ZXJzL25ldC9oYW1yYWRpby82cGFjay5jCmluZGV4IDIzMjgx YWVlYjIyMi4uNzFkNjYyOWU2NWM5IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9oYW1yYWRpby82 cGFjay5jCisrKyBiL2RyaXZlcnMvbmV0L2hhbXJhZGlvLzZwYWNrLmMKQEAgLTY1NCwxMCArNjU0 LDEwIEBAIHN0YXRpYyB2b2lkIHNpeHBhY2tfY2xvc2Uoc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSkK IHsKIAlzdHJ1Y3Qgc2l4cGFjayAqc3A7CiAKLQl3cml0ZV9sb2NrX2JoKCZkaXNjX2RhdGFfbG9j ayk7CisJd3JpdGVfbG9ja19pcnEoJmRpc2NfZGF0YV9sb2NrKTsKIAlzcCA9IHR0eS0+ZGlzY19k YXRhOwogCXR0eS0+ZGlzY19kYXRhID0gTlVMTDsKLQl3cml0ZV91bmxvY2tfYmgoJmRpc2NfZGF0 YV9sb2NrKTsKKwl3cml0ZV91bmxvY2tfaXJxKCZkaXNjX2RhdGFfbG9jayk7CiAJaWYgKCFzcCkK IAkJcmV0dXJuOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9oYW1yYWRpby9ta2lzcy5jIGIv ZHJpdmVycy9uZXQvaGFtcmFkaW8vbWtpc3MuYwppbmRleCBjNWJmYTE5ZGRiOTMuLmRlZWYxNDIx NTExMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvaGFtcmFkaW8vbWtpc3MuYworKysgYi9kcml2 ZXJzL25ldC9oYW1yYWRpby9ta2lzcy5jCkBAIC03NzMsMTAgKzc3MywxMCBAQCBzdGF0aWMgdm9p ZCBta2lzc19jbG9zZShzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5KQogewogCXN0cnVjdCBta2lzcyAq YXg7CiAKLQl3cml0ZV9sb2NrX2JoKCZkaXNjX2RhdGFfbG9jayk7CisJd3JpdGVfbG9ja19pcnEo JmRpc2NfZGF0YV9sb2NrKTsKIAlheCA9IHR0eS0+ZGlzY19kYXRhOwogCXR0eS0+ZGlzY19kYXRh ID0gTlVMTDsKLQl3cml0ZV91bmxvY2tfYmgoJmRpc2NfZGF0YV9sb2NrKTsKKwl3cml0ZV91bmxv Y2tfaXJxKCZkaXNjX2RhdGFfbG9jayk7CiAKIAlpZiAoIWF4KQogCQlyZXR1cm47Ci0tIAoyLjIw LjEKCgpGcm9tIGI3MzRjYzM2YzYxYzA0ZDdkMTc1ZTI1Njg1NzJhMGVhOTkyMjU4YjcgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNv bT4KRGF0ZTogVGh1LCAxMiBEZWMgMjAxOSAxMjo1NToyOSAtMDgwMApTdWJqZWN0OiBbUEFUQ0gg MzYvNDZdIHRjcDogZG8gbm90IHNlbmQgZW1wdHkgc2tiIGZyb20gdGNwX3dyaXRlX3htaXQoKQoK WyBVcHN0cmVhbSBjb21taXQgMWY4NWU2MjY3Y2FjYTQ0YjMwYzU0NzExNjUyYjA3MjZmYWRiYjEz MSBdCgpCYWNrcG9ydCBvZiBjb21taXQgZmRmYzVjODU5NGMyICgidGNwOiByZW1vdmUgZW1wdHkg c2tiIGZyb20Kd3JpdGUgcXVldWUgaW4gZXJyb3IgY2FzZXMiKSBpbiBsaW51eC00LjE0IHN0YWJs ZSB0cmlnZ2VyZWQKdmFyaW91cyBidWdzLiBPbmUgb2YgdGhlbSBoYXMgYmVlbiBmaXhlZCBpbiBj b21taXQgYmEyZGRiNDNmMjcwCigidGNwOiBEb24ndCBkZXF1ZXVlIFNZTi9GSU4tc2VnbWVudHMg ZnJvbSB3cml0ZS1xdWV1ZSIpLCBidXQKd2Ugc3RpbGwgaGF2ZSBjcmFzaGVzIGluIHNvbWUgb2Nj YXNpb25zLgoKUm9vdC1jYXVzZSBpcyB0aGF0IHdoZW4gdGNwX3NlbmRtc2coKSBoYXMgYWxsb2Nh dGVkIGEgZnJlc2gKc2tiIGFuZCBjb3VsZCBub3QgYXBwZW5kIGEgZnJhZ21lbnQgYmVmb3JlIGJl aW5nIGJsb2NrZWQKaW4gc2tfc3RyZWFtX3dhaXRfbWVtb3J5KCksIHRjcF93cml0ZV94bWl0KCkg bWlnaHQgYmUgY2FsbGVkCmFuZCBkZWNpZGUgdG8gc2VuZCB0aGlzIGZyZXNoIGFuZCBlbXB0eSBz a2IuCgpTZW5kaW5nIGFuIGVtcHR5IHBhY2tldCBpcyBub3Qgb25seSBzaWxseSwgaXQgbWlnaHQg aGF2ZSBjYXVzZWQKbWFueSBpc3N1ZXMgd2UgaGFkIGluIHRoZSBwYXN0IHdpdGggdHAtPnBhY2tl dHNfb3V0IGJlaW5nCm91dCBvZiBzeW5jLgoKRml4ZXM6IGM2NWY3ZjAwYzU4NyAoIltUQ1BdOiBT aW1wbGlmeSBTS0IgZGF0YSBwb3J0aW9uIGFsbG9jYXRpb24gd2l0aCBORVRJRl9GX1NHLiIpClNp Z25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KQ2M6IENocmlz dG9waCBQYWFzY2ggPGNwYWFzY2hAYXBwbGUuY29tPgpBY2tlZC1ieTogTmVhbCBDYXJkd2VsbCA8 bmNhcmR3ZWxsQGdvb2dsZS5jb20+CkNjOiBKYXNvbiBCYXJvbiA8amJhcm9uQGFrYW1haS5jb20+ CkFja2VkLWJ5OiBTb2hlaWwgSGFzc2FzIFllZ2FuZWggPHNvaGVpbEBnb29nbGUuY29tPgpTaWdu ZWQtb2ZmLWJ5OiBKYWt1YiBLaWNpbnNraSA8amFrdWIua2ljaW5za2lAbmV0cm9ub21lLmNvbT4K LS0tCiBuZXQvaXB2NC90Y3Bfb3V0cHV0LmMgfCA4ICsrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwg OCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvdGNwX291dHB1dC5jIGIvbmV0 L2lwdjQvdGNwX291dHB1dC5jCmluZGV4IGI4OTE2N2ZjMTRhMy4uMDI2OTU4NGU5Y2Y3IDEwMDY0 NAotLS0gYS9uZXQvaXB2NC90Y3Bfb3V0cHV0LmMKKysrIGIvbmV0L2lwdjQvdGNwX291dHB1dC5j CkBAIC0yNDQxLDYgKzI0NDEsMTQgQEAgc3RhdGljIGJvb2wgdGNwX3dyaXRlX3htaXQoc3RydWN0 IHNvY2sgKnNrLCB1bnNpZ25lZCBpbnQgbXNzX25vdywgaW50IG5vbmFnbGUsCiAJCWlmICh0Y3Bf c21hbGxfcXVldWVfY2hlY2soc2ssIHNrYiwgMCkpCiAJCQlicmVhazsKIAorCQkvKiBBcmdoLCB3 ZSBoaXQgYW4gZW1wdHkgc2tiKCksIHByZXN1bWFibHkgYSB0aHJlYWQKKwkJICogaXMgc2xlZXBp bmcgaW4gc2VuZG1zZygpL3NrX3N0cmVhbV93YWl0X21lbW9yeSgpLgorCQkgKiBXZSBkbyBub3Qg d2FudCB0byBzZW5kIGEgcHVyZS1hY2sgcGFja2V0IGFuZCBoYXZlCisJCSAqIGEgc3RyYW5nZSBs b29raW5nIHJ0eCBxdWV1ZSB3aXRoIGVtcHR5IHBhY2tldChzKS4KKwkJICovCisJCWlmIChUQ1Bf U0tCX0NCKHNrYiktPmVuZF9zZXEgPT0gVENQX1NLQl9DQihza2IpLT5zZXEpCisJCQlicmVhazsK KwogCQlpZiAodW5saWtlbHkodGNwX3RyYW5zbWl0X3NrYihzaywgc2tiLCAxLCBnZnApKSkKIAkJ CWJyZWFrOwogCi0tIAoyLjIwLjEKCgpGcm9tIDJmYzhjMzRhYjdlMjJkZmYyNTAyZTJlZGNiMzAz NDkwN2I3NzQzOTAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVyaWMgRHVtYXpldCA8 ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0ZTogRnJpLCAxMyBEZWMgMjAxOSAxODoyMDo0MSAtMDgw MApTdWJqZWN0OiBbUEFUQ0ggMzcvNDZdIHRjcC9kY2NwOiBmaXggcG9zc2libGUgcmFjZSBfX2lu ZXRfbG9va3VwX2VzdGFibGlzaGVkKCkKClsgVXBzdHJlYW0gY29tbWl0IDhkYmQ3NmU3OWExNmI0 NWIyY2NiMDFkMmYyZTA4ZGJmNjRlNzFlNDAgXQoKTWljaGFsIEt1YmVjZWsgYW5kIEZpcm8gWWFu ZyBkaWQgYSB2ZXJ5IG5pY2UgYW5hbHlzaXMgb2YgY3Jhc2hlcwpoYXBwZW5pbmcgaW4gX19pbmV0 X2xvb2t1cF9lc3RhYmxpc2hlZCgpLgoKU2luY2UgYSBUQ1Agc29ja2V0IGNhbiBnbyBmcm9tIFRD UF9FU1RBQkxJU0ggdG8gVENQX0xJU1RFTgoodmlhIGEgY2xvc2UoKS9zb2NrZXQoKS9saXN0ZW4o KSBjeWNsZSkgd2l0aG91dCBhIFJDVSBncmFjZSBwZXJpb2QsCkkgc2hvdWxkIG5vdCBoYXZlIGNo YW5nZWQgbGlzdGVuZXJzIGxpbmthZ2UgaW4gdGhlaXIgaGFzaCB0YWJsZS4KClRoZXkgbXVzdCB1 c2UgdGhlIG51bGxzIHByb3RvY29sIChEb2N1bWVudGF0aW9uL1JDVS9yY3VsaXN0X251bGxzLnR4 dCksCnNvIHRoYXQgYSBsb29rdXAgY2FuIGRldGVjdCBhIHNvY2tldCBpbiBhIGhhc2ggbGlzdCB3 YXMgbW92ZWQgaW4KYW5vdGhlciBvbmUuCgpTaW5jZSB3ZSBhZGRlZCBjb2RlIGluIGNvbW1pdCBk Mjk2YmE2MGQ4ZTIgKCJzb3JldXNlcG9ydDogUmVzb2x2ZQptZXJnZSBjb25mbGljdCBmb3IgdjQv djYgb3JkZXJpbmcgZml4IiksIHdlIGhhdmUgdG8gYWRkCmhsaXN0X251bGxzX2FkZF90YWlsX3Jj dSgpIGhlbHBlci4KCkZpeGVzOiAzYjI0ZDg1NGNiMzUgKCJ0Y3AvZGNjcDogZG8gbm90IHRvdWNo IGxpc3RlbmVyIHNrX3JlZmNudCB1bmRlciBzeW5mbG9vZCIpClNpZ25lZC1vZmYtYnk6IEVyaWMg RHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KUmVwb3J0ZWQtYnk6IE1pY2hhbCBLdWJlY2Vr IDxta3ViZWNla0BzdXNlLmN6PgpSZXBvcnRlZC1ieTogRmlybyBZYW5nIDxmaXJvLnlhbmdAc3Vz ZS5jb20+ClJldmlld2VkLWJ5OiBNaWNoYWwgS3ViZWNlayA8bWt1YmVjZWtAc3VzZS5jej4KTGlu azogaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvbmV0ZGV2LzIwMTkxMTIwMDgzOTE5LkdIMjc4NTJA dW5pY29ybi5zdXNlLmN6LwpTaWduZWQtb2ZmLWJ5OiBKYWt1YiBLaWNpbnNraSA8amFrdWIua2lj aW5za2lAbmV0cm9ub21lLmNvbT4KLS0tCiBpbmNsdWRlL2xpbnV4L3JjdWxpc3RfbnVsbHMuaCB8 IDM3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBpbmNsdWRlL25ldC9pbmV0 X2hhc2h0YWJsZXMuaCB8IDEyICsrKysrKysrKy0tLQogaW5jbHVkZS9uZXQvc29jay5oICAgICAg ICAgICAgfCAgNSArKysrKwogbmV0L2lwdjQvaW5ldF9kaWFnLmMgICAgICAgICAgfCAgMyArKy0K IG5ldC9pcHY0L2luZXRfaGFzaHRhYmxlcy5jICAgIHwgMTYgKysrKysrKy0tLS0tLS0tCiBuZXQv aXB2NC90Y3BfaXB2NC5jICAgICAgICAgICB8ICA3ICsrKystLS0KIDYgZmlsZXMgY2hhbmdlZCwg NjUgaW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9s aW51eC9yY3VsaXN0X251bGxzLmggYi9pbmNsdWRlL2xpbnV4L3JjdWxpc3RfbnVsbHMuaAppbmRl eCBiYzgyMDZhOGYzMGUuLjYxOTc0YzRjNTY2YiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9y Y3VsaXN0X251bGxzLmgKKysrIGIvaW5jbHVkZS9saW51eC9yY3VsaXN0X251bGxzLmgKQEAgLTEw MCw2ICsxMDAsNDMgQEAgc3RhdGljIGlubGluZSB2b2lkIGhsaXN0X251bGxzX2FkZF9oZWFkX3Jj dShzdHJ1Y3QgaGxpc3RfbnVsbHNfbm9kZSAqbiwKIAkJZmlyc3QtPnBwcmV2ID0gJm4tPm5leHQ7 CiB9CiAKKy8qKgorICogaGxpc3RfbnVsbHNfYWRkX3RhaWxfcmN1CisgKiBAbjogdGhlIGVsZW1l bnQgdG8gYWRkIHRvIHRoZSBoYXNoIGxpc3QuCisgKiBAaDogdGhlIGxpc3QgdG8gYWRkIHRvLgor ICoKKyAqIERlc2NyaXB0aW9uOgorICogQWRkcyB0aGUgc3BlY2lmaWVkIGVsZW1lbnQgdG8gdGhl IHNwZWNpZmllZCBobGlzdF9udWxscywKKyAqIHdoaWxlIHBlcm1pdHRpbmcgcmFjaW5nIHRyYXZl cnNhbHMuCisgKgorICogVGhlIGNhbGxlciBtdXN0IHRha2Ugd2hhdGV2ZXIgcHJlY2F1dGlvbnMg YXJlIG5lY2Vzc2FyeQorICogKHN1Y2ggYXMgaG9sZGluZyBhcHByb3ByaWF0ZSBsb2NrcykgdG8g YXZvaWQgcmFjaW5nCisgKiB3aXRoIGFub3RoZXIgbGlzdC1tdXRhdGlvbiBwcmltaXRpdmUsIHN1 Y2ggYXMgaGxpc3RfbnVsbHNfYWRkX2hlYWRfcmN1KCkKKyAqIG9yIGhsaXN0X251bGxzX2RlbF9y Y3UoKSwgcnVubmluZyBvbiB0aGlzIHNhbWUgbGlzdC4KKyAqIEhvd2V2ZXIsIGl0IGlzIHBlcmZl Y3RseSBsZWdhbCB0byBydW4gY29uY3VycmVudGx5IHdpdGgKKyAqIHRoZSBfcmN1IGxpc3QtdHJh dmVyc2FsIHByaW1pdGl2ZXMsIHN1Y2ggYXMKKyAqIGhsaXN0X251bGxzX2Zvcl9lYWNoX2VudHJ5 X3JjdSgpLCB1c2VkIHRvIHByZXZlbnQgbWVtb3J5LWNvbnNpc3RlbmN5CisgKiBwcm9ibGVtcyBv biBBbHBoYSBDUFVzLiAgUmVnYXJkbGVzcyBvZiB0aGUgdHlwZSBvZiBDUFUsIHRoZQorICogbGlz dC10cmF2ZXJzYWwgcHJpbWl0aXZlIG11c3QgYmUgZ3VhcmRlZCBieSByY3VfcmVhZF9sb2NrKCku CisgKi8KK3N0YXRpYyBpbmxpbmUgdm9pZCBobGlzdF9udWxsc19hZGRfdGFpbF9yY3Uoc3RydWN0 IGhsaXN0X251bGxzX25vZGUgKm4sCisJCQkJCSAgICBzdHJ1Y3QgaGxpc3RfbnVsbHNfaGVhZCAq aCkKK3sKKwlzdHJ1Y3QgaGxpc3RfbnVsbHNfbm9kZSAqaSwgKmxhc3QgPSBOVUxMOworCisJLyog Tm90ZTogd3JpdGUgc2lkZSBjb2RlLCBzbyByY3UgYWNjZXNzb3JzIGFyZSBub3QgbmVlZGVkLiAq LworCWZvciAoaSA9IGgtPmZpcnN0OyAhaXNfYV9udWxscyhpKTsgaSA9IGktPm5leHQpCisJCWxh c3QgPSBpOworCisJaWYgKGxhc3QpIHsKKwkJbi0+bmV4dCA9IGxhc3QtPm5leHQ7CisJCW4tPnBw cmV2ID0gJmxhc3QtPm5leHQ7CisJCXJjdV9hc3NpZ25fcG9pbnRlcihobGlzdF9uZXh0X3JjdShs YXN0KSwgbik7CisJfSBlbHNlIHsKKwkJaGxpc3RfbnVsbHNfYWRkX2hlYWRfcmN1KG4sIGgpOwor CX0KK30KKwogLyoqCiAgKiBobGlzdF9udWxsc19mb3JfZWFjaF9lbnRyeV9yY3UgLSBpdGVyYXRl IG92ZXIgcmN1IGxpc3Qgb2YgZ2l2ZW4gdHlwZQogICogQHRwb3M6CXRoZSB0eXBlICogdG8gdXNl IGFzIGEgbG9vcCBjdXJzb3IuCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9pbmV0X2hhc2h0YWJs ZXMuaCBiL2luY2x1ZGUvbmV0L2luZXRfaGFzaHRhYmxlcy5oCmluZGV4IGFmMmI0YzA2NWEwNC4u ZDAwMTlkMzM5NWNmIDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC9pbmV0X2hhc2h0YWJsZXMuaAor KysgYi9pbmNsdWRlL25ldC9pbmV0X2hhc2h0YWJsZXMuaApAQCAtMTAzLDEzICsxMDMsMTkgQEAg c3RydWN0IGluZXRfYmluZF9oYXNoYnVja2V0IHsKIAlzdHJ1Y3QgaGxpc3RfaGVhZAljaGFpbjsK IH07CiAKLS8qCi0gKiBTb2NrZXRzIGNhbiBiZSBoYXNoZWQgaW4gZXN0YWJsaXNoZWQgb3IgbGlz dGVuaW5nIHRhYmxlCisvKiBTb2NrZXRzIGNhbiBiZSBoYXNoZWQgaW4gZXN0YWJsaXNoZWQgb3Ig bGlzdGVuaW5nIHRhYmxlLgorICogV2UgbXVzdCB1c2UgZGlmZmVyZW50ICdudWxscycgZW5kLW9m LWNoYWluIHZhbHVlIGZvciBhbGwgaGFzaCBidWNrZXRzIDoKKyAqIEEgc29ja2V0IG1pZ2h0IHRy YW5zaXRpb24gZnJvbSBFU1RBQkxJU0ggdG8gTElTVEVOIHN0YXRlIHdpdGhvdXQKKyAqIFJDVSBn cmFjZSBwZXJpb2QuIEEgbG9va3VwIGluIGVoYXNoIHRhYmxlIG5lZWRzIHRvIGhhbmRsZSB0aGlz IGNhc2UuCiAgKi8KKyNkZWZpbmUgTElTVEVOSU5HX05VTExTX0JBU0UgKDFVIDw8IDI5KQogc3Ry dWN0IGluZXRfbGlzdGVuX2hhc2hidWNrZXQgewogCXNwaW5sb2NrX3QJCWxvY2s7CiAJdW5zaWdu ZWQgaW50CQljb3VudDsKLQlzdHJ1Y3QgaGxpc3RfaGVhZAloZWFkOworCXVuaW9uIHsKKwkJc3Ry dWN0IGhsaXN0X2hlYWQJaGVhZDsKKwkJc3RydWN0IGhsaXN0X251bGxzX2hlYWQJbnVsbHNfaGVh ZDsKKwl9OwogfTsKIAogLyogVGhpcyBpcyBmb3IgbGlzdGVuaW5nIHNvY2tldHMsIHRodXMgYWxs IHNvY2tldHMgd2hpY2ggcG9zc2VzcyB3aWxkY2FyZHMuICovCmRpZmYgLS1naXQgYS9pbmNsdWRl L25ldC9zb2NrLmggYi9pbmNsdWRlL25ldC9zb2NrLmgKaW5kZXggMDEzMzk2ZTUwYjkxLi5lMDll Mjg4NmE4MzYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L3NvY2suaAorKysgYi9pbmNsdWRlL25l dC9zb2NrLmgKQEAgLTcyMyw2ICs3MjMsMTEgQEAgc3RhdGljIGlubGluZSB2b2lkIF9fc2tfbnVs bHNfYWRkX25vZGVfcmN1KHN0cnVjdCBzb2NrICpzaywgc3RydWN0IGhsaXN0X251bGxzX2gKIAlo bGlzdF9udWxsc19hZGRfaGVhZF9yY3UoJnNrLT5za19udWxsc19ub2RlLCBsaXN0KTsKIH0KIAor c3RhdGljIGlubGluZSB2b2lkIF9fc2tfbnVsbHNfYWRkX25vZGVfdGFpbF9yY3Uoc3RydWN0IHNv Y2sgKnNrLCBzdHJ1Y3QgaGxpc3RfbnVsbHNfaGVhZCAqbGlzdCkKK3sKKwlobGlzdF9udWxsc19h ZGRfdGFpbF9yY3UoJnNrLT5za19udWxsc19ub2RlLCBsaXN0KTsKK30KKwogc3RhdGljIGlubGlu ZSB2b2lkIHNrX251bGxzX2FkZF9ub2RlX3JjdShzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBobGlz dF9udWxsc19oZWFkICpsaXN0KQogewogCXNvY2tfaG9sZChzayk7CmRpZmYgLS1naXQgYS9uZXQv aXB2NC9pbmV0X2RpYWcuYyBiL25ldC9pcHY0L2luZXRfZGlhZy5jCmluZGV4IDdkYzc5Yjk3M2U2 ZS4uNmE0YzgyZjk2ZTc4IDEwMDY0NAotLS0gYS9uZXQvaXB2NC9pbmV0X2RpYWcuYworKysgYi9u ZXQvaXB2NC9pbmV0X2RpYWcuYwpAQCAtOTE0LDExICs5MTQsMTIgQEAgdm9pZCBpbmV0X2RpYWdf ZHVtcF9pY3NrKHN0cnVjdCBpbmV0X2hhc2hpbmZvICpoYXNoaW5mbywgc3RydWN0IHNrX2J1ZmYg KnNrYiwKIAogCQlmb3IgKGkgPSBzX2k7IGkgPCBJTkVUX0xIVEFCTEVfU0laRTsgaSsrKSB7CiAJ CQlzdHJ1Y3QgaW5ldF9saXN0ZW5faGFzaGJ1Y2tldCAqaWxiOworCQkJc3RydWN0IGhsaXN0X251 bGxzX25vZGUgKm5vZGU7CiAKIAkJCW51bSA9IDA7CiAJCQlpbGIgPSAmaGFzaGluZm8tPmxpc3Rl bmluZ19oYXNoW2ldOwogCQkJc3Bpbl9sb2NrKCZpbGItPmxvY2spOwotCQkJc2tfZm9yX2VhY2go c2ssICZpbGItPmhlYWQpIHsKKwkJCXNrX251bGxzX2Zvcl9lYWNoKHNrLCBub2RlLCAmaWxiLT5u dWxsc19oZWFkKSB7CiAJCQkJc3RydWN0IGluZXRfc29jayAqaW5ldCA9IGluZXRfc2soc2spOwog CiAJCQkJaWYgKCFuZXRfZXEoc29ja19uZXQoc2spLCBuZXQpKQpkaWZmIC0tZ2l0IGEvbmV0L2lw djQvaW5ldF9oYXNodGFibGVzLmMgYi9uZXQvaXB2NC9pbmV0X2hhc2h0YWJsZXMuYwppbmRleCA4 M2ZiMDAxNTMwMTguLjJiYmFhZjBjNzE3NiAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvaW5ldF9oYXNo dGFibGVzLmMKKysrIGIvbmV0L2lwdjQvaW5ldF9oYXNodGFibGVzLmMKQEAgLTUxNiwxMCArNTE2 LDExIEBAIHN0YXRpYyBpbnQgaW5ldF9yZXVzZXBvcnRfYWRkX3NvY2soc3RydWN0IHNvY2sgKnNr LAogCQkJCSAgIHN0cnVjdCBpbmV0X2xpc3Rlbl9oYXNoYnVja2V0ICppbGIpCiB7CiAJc3RydWN0 IGluZXRfYmluZF9idWNrZXQgKnRiID0gaW5ldF9jc2soc2spLT5pY3NrX2JpbmRfaGFzaDsKKwlj b25zdCBzdHJ1Y3QgaGxpc3RfbnVsbHNfbm9kZSAqbm9kZTsKIAlzdHJ1Y3Qgc29jayAqc2syOwog CWt1aWRfdCB1aWQgPSBzb2NrX2lfdWlkKHNrKTsKIAotCXNrX2Zvcl9lYWNoX3JjdShzazIsICZp bGItPmhlYWQpIHsKKwlza19udWxsc19mb3JfZWFjaF9yY3Uoc2syLCBub2RlLCAmaWxiLT5udWxs c19oZWFkKSB7CiAJCWlmIChzazIgIT0gc2sgJiYKIAkJICAgIHNrMi0+c2tfZmFtaWx5ID09IHNr LT5za19mYW1pbHkgJiYKIAkJICAgIGlwdjZfb25seV9zb2NrKHNrMikgPT0gaXB2Nl9vbmx5X3Nv Y2soc2spICYmCkBAIC01NTUsOSArNTU2LDkgQEAgaW50IF9faW5ldF9oYXNoKHN0cnVjdCBzb2Nr ICpzaywgc3RydWN0IHNvY2sgKm9zaykKIAl9CiAJaWYgKElTX0VOQUJMRUQoQ09ORklHX0lQVjYp ICYmIHNrLT5za19yZXVzZXBvcnQgJiYKIAkJc2stPnNrX2ZhbWlseSA9PSBBRl9JTkVUNikKLQkJ aGxpc3RfYWRkX3RhaWxfcmN1KCZzay0+c2tfbm9kZSwgJmlsYi0+aGVhZCk7CisJCV9fc2tfbnVs bHNfYWRkX25vZGVfdGFpbF9yY3Uoc2ssICZpbGItPm51bGxzX2hlYWQpOwogCWVsc2UKLQkJaGxp c3RfYWRkX2hlYWRfcmN1KCZzay0+c2tfbm9kZSwgJmlsYi0+aGVhZCk7CisJCV9fc2tfbnVsbHNf YWRkX25vZGVfcmN1KHNrLCAmaWxiLT5udWxsc19oZWFkKTsKIAlpbmV0X2hhc2gyKGhhc2hpbmZv LCBzayk7CiAJaWxiLT5jb3VudCsrOwogCXNvY2tfc2V0X2ZsYWcoc2ssIFNPQ0tfUkNVX0ZSRUUp OwpAQCAtNjA2LDExICs2MDcsOSBAQCB2b2lkIGluZXRfdW5oYXNoKHN0cnVjdCBzb2NrICpzaykK IAkJcmV1c2Vwb3J0X2RldGFjaF9zb2NrKHNrKTsKIAlpZiAoaWxiKSB7CiAJCWluZXRfdW5oYXNo MihoYXNoaW5mbywgc2spOwotCQkgX19za19kZWxfbm9kZV9pbml0KHNrKTsKLQkJIGlsYi0+Y291 bnQtLTsKLQl9IGVsc2UgewotCQlfX3NrX251bGxzX2RlbF9ub2RlX2luaXRfcmN1KHNrKTsKKwkJ aWxiLT5jb3VudC0tOwogCX0KKwlfX3NrX251bGxzX2RlbF9ub2RlX2luaXRfcmN1KHNrKTsKIAlz b2NrX3Byb3RfaW51c2VfYWRkKHNvY2tfbmV0KHNrKSwgc2stPnNrX3Byb3QsIC0xKTsKIHVubG9j azoKIAlzcGluX3VubG9ja19iaChsb2NrKTsKQEAgLTc1MCw3ICs3NDksOCBAQCB2b2lkIGluZXRf aGFzaGluZm9faW5pdChzdHJ1Y3QgaW5ldF9oYXNoaW5mbyAqaCkKIAogCWZvciAoaSA9IDA7IGkg PCBJTkVUX0xIVEFCTEVfU0laRTsgaSsrKSB7CiAJCXNwaW5fbG9ja19pbml0KCZoLT5saXN0ZW5p bmdfaGFzaFtpXS5sb2NrKTsKLQkJSU5JVF9ITElTVF9IRUFEKCZoLT5saXN0ZW5pbmdfaGFzaFtp XS5oZWFkKTsKKwkJSU5JVF9ITElTVF9OVUxMU19IRUFEKCZoLT5saXN0ZW5pbmdfaGFzaFtpXS5u dWxsc19oZWFkLAorCQkJCSAgICAgIGkgKyBMSVNURU5JTkdfTlVMTFNfQkFTRSk7CiAJCWgtPmxp c3RlbmluZ19oYXNoW2ldLmNvdW50ID0gMDsKIAl9CiAKZGlmZiAtLWdpdCBhL25ldC9pcHY0L3Rj cF9pcHY0LmMgYi9uZXQvaXB2NC90Y3BfaXB2NC5jCmluZGV4IDY3YjJkYzdhMTcyNy4uZWRhNjQ4 NzFmOTgzIDEwMDY0NAotLS0gYS9uZXQvaXB2NC90Y3BfaXB2NC5jCisrKyBiL25ldC9pcHY0L3Rj cF9pcHY0LmMKQEAgLTIxNDksMTMgKzIxNDksMTQgQEAgc3RhdGljIHZvaWQgKmxpc3RlbmluZ19n ZXRfbmV4dChzdHJ1Y3Qgc2VxX2ZpbGUgKnNlcSwgdm9pZCAqY3VyKQogCXN0cnVjdCB0Y3BfaXRl cl9zdGF0ZSAqc3QgPSBzZXEtPnByaXZhdGU7CiAJc3RydWN0IG5ldCAqbmV0ID0gc2VxX2ZpbGVf bmV0KHNlcSk7CiAJc3RydWN0IGluZXRfbGlzdGVuX2hhc2hidWNrZXQgKmlsYjsKKwlzdHJ1Y3Qg aGxpc3RfbnVsbHNfbm9kZSAqbm9kZTsKIAlzdHJ1Y3Qgc29jayAqc2sgPSBjdXI7CiAKIAlpZiAo IXNrKSB7CiBnZXRfaGVhZDoKIAkJaWxiID0gJnRjcF9oYXNoaW5mby5saXN0ZW5pbmdfaGFzaFtz dC0+YnVja2V0XTsKIAkJc3Bpbl9sb2NrKCZpbGItPmxvY2spOwotCQlzayA9IHNrX2hlYWQoJmls Yi0+aGVhZCk7CisJCXNrID0gc2tfbnVsbHNfaGVhZCgmaWxiLT5udWxsc19oZWFkKTsKIAkJc3Qt Pm9mZnNldCA9IDA7CiAJCWdvdG8gZ2V0X3NrOwogCX0KQEAgLTIxNjMsOSArMjE2NCw5IEBAIHN0 YXRpYyB2b2lkICpsaXN0ZW5pbmdfZ2V0X25leHQoc3RydWN0IHNlcV9maWxlICpzZXEsIHZvaWQg KmN1cikKIAkrK3N0LT5udW07CiAJKytzdC0+b2Zmc2V0OwogCi0Jc2sgPSBza19uZXh0KHNrKTsK KwlzayA9IHNrX251bGxzX25leHQoc2spOwogZ2V0X3NrOgotCXNrX2Zvcl9lYWNoX2Zyb20oc2sp IHsKKwlza19udWxsc19mb3JfZWFjaF9mcm9tKHNrLCBub2RlKSB7CiAJCWlmICghbmV0X2VxKHNv Y2tfbmV0KHNrKSwgbmV0KSkKIAkJCWNvbnRpbnVlOwogCQlpZiAoc2stPnNrX2ZhbWlseSA9PSBh ZmluZm8tPmZhbWlseSkKLS0gCjIuMjAuMQoKCkZyb20gNzZjNjk4MTc0MTE1Mjk1MmMzMTU1ZWQ4 ZDRkNzg1ZDE1YjZlZDgzMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSGFpeWFuZyBa aGFuZyA8aGFpeWFuZ3pAbWljcm9zb2Z0LmNvbT4KRGF0ZTogV2VkLCAxMSBEZWMgMjAxOSAxNDoy NjoyNyAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMzgvNDZdIGh2X25ldHZzYzogRml4IHR4X3RhYmxl IGluaXQgaW4gcm5kaXNfc2V0X3N1YmNoYW5uZWwoKQoKWyBVcHN0cmVhbSBjb21taXQgYzM5ZWE1 Y2JhNWEyZTk3ZmMwMWI3OGM4NTIwOGJmMzEzODNiMzk5YyBdCgpIb3N0IGNhbiBwcm92aWRlIHNl bmQgaW5kaXJlY3Rpb24gdGFibGUgbWVzc2FnZXMgYW55dGltZSBhZnRlciBSU1MgaXMKZW5hYmxl ZCBieSBjYWxsaW5nIHJuZGlzX2ZpbHRlcl9zZXRfcnNzX3BhcmFtKCkuIFNvIHRoZSBob3N0IHBy b3ZpZGVkCnRhYmxlIHZhbHVlcyBtYXkgYmUgb3ZlcndyaXR0ZW4gYnkgdGhlIGluaXRpYWxpemF0 aW9uIGluCnJuZGlzX3NldF9zdWJjaGFubmVsKCkuCgpUbyBwcmV2ZW50IHRoaXMgcHJvYmxlbSwg bW92ZSB0aGUgdHhfdGFibGUgaW5pdGlhbGl6YXRpb24gYmVmb3JlIGNhbGxpbmcKcm5kaXNfZmls dGVyX3NldF9yc3NfcGFyYW0oKS4KCkZpeGVzOiBhNmZiNmFhM2NmYTkgKCJodl9uZXR2c2M6IFNl dCB0eF90YWJsZSB0byBlcXVhbCB3ZWlnaHQgYWZ0ZXIgc3ViY2hhbm5lbHMgb3BlbiIpClNpZ25l ZC1vZmYtYnk6IEhhaXlhbmcgWmhhbmcgPGhhaXlhbmd6QG1pY3Jvc29mdC5jb20+ClNpZ25lZC1v ZmYtYnk6IEpha3ViIEtpY2luc2tpIDxqYWt1Yi5raWNpbnNraUBuZXRyb25vbWUuY29tPgotLS0K IGRyaXZlcnMvbmV0L2h5cGVydi9ybmRpc19maWx0ZXIuYyB8IDYgKysrLS0tCiAxIGZpbGUgY2hh bmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZl cnMvbmV0L2h5cGVydi9ybmRpc19maWx0ZXIuYyBiL2RyaXZlcnMvbmV0L2h5cGVydi9ybmRpc19m aWx0ZXIuYwppbmRleCBhYmFmODE1NmQxOWQuLmUzZDNjOTA5N2ZmMSAxMDA2NDQKLS0tIGEvZHJp dmVycy9uZXQvaHlwZXJ2L3JuZGlzX2ZpbHRlci5jCisrKyBiL2RyaXZlcnMvbmV0L2h5cGVydi9y bmRpc19maWx0ZXIuYwpAQCAtMTE2NSw2ICsxMTY1LDkgQEAgaW50IHJuZGlzX3NldF9zdWJjaGFu bmVsKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LAogCXdhaXRfZXZlbnQobnZkZXYtPnN1YmNoYW5f b3BlbiwKIAkJICAgYXRvbWljX3JlYWQoJm52ZGV2LT5vcGVuX2NobikgPT0gbnZkZXYtPm51bV9j aG4pOwogCisJZm9yIChpID0gMDsgaSA8IFZSU1NfU0VORF9UQUJfU0laRTsgaSsrKQorCQluZGV2 X2N0eC0+dHhfdGFibGVbaV0gPSBpICUgbnZkZXYtPm51bV9jaG47CisKIAkvKiBpZ25vcmUgZmFp bHVyZXMgZnJvbSBzZXR0aW5nIHJzcyBwYXJhbWV0ZXJzLCBzdGlsbCBoYXZlIGNoYW5uZWxzICov CiAJaWYgKGRldl9pbmZvKQogCQlybmRpc19maWx0ZXJfc2V0X3Jzc19wYXJhbShyZGV2LCBkZXZf aW5mby0+cnNzX2tleSk7CkBAIC0xMTc0LDkgKzExNzcsNiBAQCBpbnQgcm5kaXNfc2V0X3N1YmNo YW5uZWwoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsCiAJbmV0aWZfc2V0X3JlYWxfbnVtX3R4X3F1 ZXVlcyhuZGV2LCBudmRldi0+bnVtX2Nobik7CiAJbmV0aWZfc2V0X3JlYWxfbnVtX3J4X3F1ZXVl cyhuZGV2LCBudmRldi0+bnVtX2Nobik7CiAKLQlmb3IgKGkgPSAwOyBpIDwgVlJTU19TRU5EX1RB Ql9TSVpFOyBpKyspCi0JCW5kZXZfY3R4LT50eF90YWJsZVtpXSA9IGkgJSBudmRldi0+bnVtX2No bjsKLQogCXJldHVybiAwOwogfQogCi0tIAoyLjIwLjEKCgpGcm9tIGIyMDgwMTM2Y2YwNzIxMGVl YmU1M2Q5NDI4ZmJlMGZiZWZhNmIwZjYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFRh ZWhlZSBZb28gPGFwNDIwMDczQGdtYWlsLmNvbT4KRGF0ZTogV2VkLCAxMSBEZWMgMjAxOSAwODoy MzozNCArMDAwMApTdWJqZWN0OiBbUEFUQ0ggMzkvNDZdIGd0cDogZml4IGFuIHVzZS1hZnRlci1m cmVlIGluIGlwdjRfcGRwX2ZpbmQoKQoKWyBVcHN0cmVhbSBjb21taXQgOTRkYzU1MGE1MDYyMDMw NTY5ZDRhYTc2ZTEwZTUwYzhmYzAwMTkzMCBdCgppcHY0X3BkcF9maW5kKCkgaXMgY2FsbGVkIGlu IFRYIHBhY2tldCBwYXRoIG9mIEdUUC4KaXB2NF9wZHBfZmluZCgpIGludGVybmFsbHkgdXNlcyBn dHAtPnRpZF9oYXNoIHRvIGxvb2t1cCBwZHAgY29udGV4dC4KSW4gdGhlIGN1cnJlbnQgY29kZSwg Z3RwLT50aWRfaGFzaCBhbmQgZ3RwLT5hZGRyX2hhc2ggYXJlIGZyZWVkIGJ5Ci0+ZGVsbGluaygp LCB3aGljaCBpcyBndHBfZGVsbGluaygpLgpCdXQgZ3RwX2RlbGxpbmsoKSB3b3VsZCBiZSBjYWxs ZWQgd2hpbGUgcGFja2V0cyBhcmUgcHJvY2Vzc2luZy4KU28sIGd0cF9kZWxsaW5rKCkgc2hvdWxk IG5vdCBmcmVlIGd0cC0+dGlkX2hhc2ggYW5kIGd0cC0+YWRkcl9oYXNoLgpJbnN0ZWFkLCBkZXYt PnByaXZfZGVzdHJ1Y3RvcigpIHdvdWxkIGJlIHVzZWQgYmVjYXVzZSB0aGlzIGNhbGxiYWNrCmlz IGNhbGxlZCBhZnRlciBhbGwgcGFja2V0IHByb2Nlc3Npbmcgc2FmZWx5LgoKVGVzdCBjb21tYW5k czoKICAgIGlwIGxpbmsgYWRkIHZldGgxIHR5cGUgdmV0aCBwZWVyIG5hbWUgdmV0aDIKICAgIGlw IGEgYSAxNzIuMC4wLjEvMjQgZGV2IHZldGgxCiAgICBpcCBsaW5rIHNldCB2ZXRoMSB1cAogICAg aXAgYSBhIDE3Mi45OS4wLjEvMzIgZGV2IGxvCgogICAgZ3RwLWxpbmsgYWRkIGd0cDEgJgoKICAg IGd0cC10dW5uZWwgYWRkIGd0cDEgdjEgMjAwIDEwMCAxNzIuOTkuMC4yIDE3Mi4wLjAuMgogICAg aXAgciBhICAxNzIuOTkuMC4yLzMyIGRldiBndHAxCiAgICBpcCBsaW5rIHNldCBndHAxIG10dSAx NTAwCgogICAgaXAgbmV0bnMgYWRkIG5zMgogICAgaXAgbGluayBzZXQgdmV0aDIgbmV0bnMgbnMy CiAgICBpcCBuZXRucyBleGVjIG5zMiBpcCBhIGEgMTcyLjAuMC4yLzI0IGRldiB2ZXRoMgogICAg aXAgbmV0bnMgZXhlYyBuczIgaXAgbGluayBzZXQgdmV0aDIgdXAKICAgIGlwIG5ldG5zIGV4ZWMg bnMyIGlwIGEgYSAxNzIuOTkuMC4yLzMyIGRldiBsbwogICAgaXAgbmV0bnMgZXhlYyBuczIgaXAg bGluayBzZXQgbG8gdXAKCiAgICBpcCBuZXRucyBleGVjIG5zMiBndHAtbGluayBhZGQgZ3RwMiAm CiAgICBpcCBuZXRucyBleGVjIG5zMiBndHAtdHVubmVsIGFkZCBndHAyIHYxIDEwMCAyMDAgMTcy Ljk5LjAuMSAxNzIuMC4wLjEKICAgIGlwIG5ldG5zIGV4ZWMgbnMyIGlwIHIgYSAxNzIuOTkuMC4x LzMyIGRldiBndHAyCiAgICBpcCBuZXRucyBleGVjIG5zMiBpcCBsaW5rIHNldCBndHAyIG10dSAx NTAwCgogICAgaHBpbmczIDE3Mi45OS4wLjIgLTIgLS1mbG9vZCAmCiAgICBpcCBsaW5rIGRlbCBn dHAxCgpTcGxhdCBsb29rcyBsaWtlOgpbICAgNzIuNTY4MDgxXVsgVDExOTVdIEJVRzogS0FTQU46 IHVzZS1hZnRlci1mcmVlIGluIGlwdjRfcGRwX2ZpbmQuaXNyYS4xMisweDEzMC8weDE3MCBbZ3Rw XQpbICAgNzIuNTY4OTE2XVsgVDExOTVdIFJlYWQgb2Ygc2l6ZSA4IGF0IGFkZHIgZmZmZjg4ODBi OWEzNWQyOCBieSB0YXNrIGhwaW5nMy8xMTk1ClsgICA3Mi41Njk2MzFdWyBUMTE5NV0KWyAgIDcy LjU2OTg2MV1bIFQxMTk1XSBDUFU6IDIgUElEOiAxMTk1IENvbW06IGhwaW5nMyBOb3QgdGFpbnRl ZCA1LjUuMC1yYzEgIzE5OQpbICAgNzIuNTcwNTQ3XVsgVDExOTVdIEhhcmR3YXJlIG5hbWU6IGlu bm90ZWsgR21iSCBWaXJ0dWFsQm94L1ZpcnR1YWxCb3gsIEJJT1MgVmlydHVhbEJveCAxMi8wMS8y MDA2ClsgICA3Mi41NzE0MzhdWyBUMTE5NV0gQ2FsbCBUcmFjZToKWyAgIDcyLjU3MTc2NF1bIFQx MTk1XSAgZHVtcF9zdGFjaysweDk2LzB4ZGIKWyAgIDcyLjU3MjE3MV1bIFQxMTk1XSAgPyBpcHY0 X3BkcF9maW5kLmlzcmEuMTIrMHgxMzAvMHgxNzAgW2d0cF0KWyAgIDcyLjU3Mjc2MV1bIFQxMTk1 XSAgcHJpbnRfYWRkcmVzc19kZXNjcmlwdGlvbi5jb25zdHByb3AuNSsweDFiZS8weDM2MApbICAg NzIuNTczNDAwXVsgVDExOTVdICA/IGlwdjRfcGRwX2ZpbmQuaXNyYS4xMisweDEzMC8weDE3MCBb Z3RwXQpbICAgNzIuNTczOTcxXVsgVDExOTVdICA/IGlwdjRfcGRwX2ZpbmQuaXNyYS4xMisweDEz MC8weDE3MCBbZ3RwXQpbICAgNzIuNTc0NTQ0XVsgVDExOTVdICBfX2thc2FuX3JlcG9ydCsweDEy YS8weDE2ZgpbICAgNzIuNTc1MDE0XVsgVDExOTVdICA/IGlwdjRfcGRwX2ZpbmQuaXNyYS4xMisw eDEzMC8weDE3MCBbZ3RwXQpbICAgNzIuNTc1NTkzXVsgVDExOTVdICBrYXNhbl9yZXBvcnQrMHhl LzB4MjAKWyAgIDcyLjU3NjAwNF1bIFQxMTk1XSAgaXB2NF9wZHBfZmluZC5pc3JhLjEyKzB4MTMw LzB4MTcwIFtndHBdClsgICA3Mi41NzY1NzddWyBUMTE5NV0gIGd0cF9idWlsZF9za2JfaXA0KzB4 MTk5LzB4MTQyMCBbZ3RwXQpbIC4uLiBdClsgICA3Mi42NDc2NzFdWyBUMTE5NV0gQlVHOiB1bmFi bGUgdG8gaGFuZGxlIHBhZ2UgZmF1bHQgZm9yIGFkZHJlc3M6IGZmZmY4ODgwYjlhMzVkMjgKWyAg IDcyLjY0ODUxMl1bIFQxMTk1XSAjUEY6IHN1cGVydmlzb3IgcmVhZCBhY2Nlc3MgaW4ga2VybmVs IG1vZGUKWyAgIDcyLjY0OTE1OF1bIFQxMTk1XSAjUEY6IGVycm9yX2NvZGUoMHgwMDAwKSAtIG5v dC1wcmVzZW50IHBhZ2UKWyAgIDcyLjY0OTg0OV1bIFQxMTk1XSBQR0QgYTZjMDEwNjcgUDREIGE2 YzAxMDY3IFBVRCAxMWZiMDcwNjcgUE1EIDExZjkzOTA2NyBQVEUgODAwZmZmZmY0NjVjYTA2MApb ICAgNzIuNjUyOTU4XVsgVDExOTVdIE9vcHM6IDAwMDAgWyMxXSBTTVAgREVCVUdfUEFHRUFMTE9D IEtBU0FOIFBUSQpbICAgNzIuNjUzODM0XVsgVDExOTVdIENQVTogMiBQSUQ6IDExOTUgQ29tbTog aHBpbmczIFRhaW50ZWQ6IEcgICAgQiAgICAgICAgICAgICA1LjUuMC1yYzEgIzE5OQpbICAgNzIu NjY4MDYyXVsgVDExOTVdIFJJUDogMDAxMDppcHY0X3BkcF9maW5kLmlzcmEuMTIrMHg4Ni8weDE3 MCBbZ3RwXQpbIC4uLiBdClsgICA3Mi42NzkxNjhdWyBUMTE5NV0gQ2FsbCBUcmFjZToKWyAgIDcy LjY3OTYwM11bIFQxMTk1XSAgZ3RwX2J1aWxkX3NrYl9pcDQrMHgxOTkvMHgxNDIwIFtndHBdClsg ICA3Mi42ODE5MTVdWyBUMTE5NV0gID8gaXB2NF9wZHBfZmluZC5pc3JhLjEyKzB4MTcwLzB4MTcw IFtndHBdClsgICA3Mi42ODI1MTNdWyBUMTE5NV0gID8gbG9ja19hY3F1aXJlKzB4MTY0LzB4M2Iw ClsgICA3Mi42ODI5NjZdWyBUMTE5NV0gID8gZ3RwX2Rldl94bWl0KzB4MzVlLzB4ODkwIFtndHBd ClsgICA3Mi42ODM0ODFdWyBUMTE5NV0gIGd0cF9kZXZfeG1pdCsweDNjMi8weDg5MCBbZ3RwXQpb IC4uLiBdCgpGaXhlczogNDU5YWE2NjBlYjFkICgiZ3RwOiBhZGQgaW5pdGlhbCBkcml2ZXIgZm9y IGRhdGFwYXRoIG9mIEdQUlMgVHVubmVsaW5nIFByb3RvY29sIChHVFAtVSkiKQpTaWduZWQtb2Zm LWJ5OiBUYWVoZWUgWW9vIDxhcDQyMDA3M0BnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IEpha3Vi IEtpY2luc2tpIDxqYWt1Yi5raWNpbnNraUBuZXRyb25vbWUuY29tPgotLS0KIGRyaXZlcnMvbmV0 L2d0cC5jIHwgMzQgKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNo YW5nZWQsIDE3IGluc2VydGlvbnMoKyksIDE3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbmV0L2d0cC5jIGIvZHJpdmVycy9uZXQvZ3RwLmMKaW5kZXggNTIyODAyOTYxNzEyLi5m NWFhNWUxYzc3MjIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2d0cC5jCisrKyBiL2RyaXZlcnMv bmV0L2d0cC5jCkBAIC02NDAsOSArNjQwLDE2IEBAIHN0YXRpYyB2b2lkIGd0cF9saW5rX3NldHVw KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiB9CiAKIHN0YXRpYyBpbnQgZ3RwX2hhc2h0YWJsZV9u ZXcoc3RydWN0IGd0cF9kZXYgKmd0cCwgaW50IGhzaXplKTsKLXN0YXRpYyB2b2lkIGd0cF9oYXNo dGFibGVfZnJlZShzdHJ1Y3QgZ3RwX2RldiAqZ3RwKTsKIHN0YXRpYyBpbnQgZ3RwX2VuY2FwX2Vu YWJsZShzdHJ1Y3QgZ3RwX2RldiAqZ3RwLCBzdHJ1Y3QgbmxhdHRyICpkYXRhW10pOwogCitzdGF0 aWMgdm9pZCBndHBfZGVzdHJ1Y3RvcihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQoreworCXN0cnVj dCBndHBfZGV2ICpndHAgPSBuZXRkZXZfcHJpdihkZXYpOworCisJa2ZyZWUoZ3RwLT5hZGRyX2hh c2gpOworCWtmcmVlKGd0cC0+dGlkX2hhc2gpOworfQorCiBzdGF0aWMgaW50IGd0cF9uZXdsaW5r KHN0cnVjdCBuZXQgKnNyY19uZXQsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAJCSAgICAgICBz dHJ1Y3QgbmxhdHRyICp0YltdLCBzdHJ1Y3QgbmxhdHRyICpkYXRhW10sCiAJCSAgICAgICBzdHJ1 Y3QgbmV0bGlua19leHRfYWNrICpleHRhY2spCkBAIC02ODAsMTMgKzY4NywxNSBAQCBzdGF0aWMg aW50IGd0cF9uZXdsaW5rKHN0cnVjdCBuZXQgKnNyY19uZXQsIHN0cnVjdCBuZXRfZGV2aWNlICpk ZXYsCiAKIAlnbiA9IG5ldF9nZW5lcmljKGRldl9uZXQoZGV2KSwgZ3RwX25ldF9pZCk7CiAJbGlz dF9hZGRfcmN1KCZndHAtPmxpc3QsICZnbi0+Z3RwX2Rldl9saXN0KTsKKwlkZXYtPnByaXZfZGVz dHJ1Y3RvciA9IGd0cF9kZXN0cnVjdG9yOwogCiAJbmV0ZGV2X2RiZyhkZXYsICJyZWdpc3RlcmVk IG5ldyBHVFAgaW50ZXJmYWNlXG4iKTsKIAogCXJldHVybiAwOwogCiBvdXRfaGFzaHRhYmxlOgot CWd0cF9oYXNodGFibGVfZnJlZShndHApOworCWtmcmVlKGd0cC0+YWRkcl9oYXNoKTsKKwlrZnJl ZShndHAtPnRpZF9oYXNoKTsKIG91dF9lbmNhcDoKIAlndHBfZW5jYXBfZGlzYWJsZShndHApOwog CXJldHVybiBlcnI7CkBAIC02OTUsOCArNzA0LDEzIEBAIHN0YXRpYyBpbnQgZ3RwX25ld2xpbmso c3RydWN0IG5ldCAqc3JjX25ldCwgc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKIHN0YXRpYyB2b2lk IGd0cF9kZWxsaW5rKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBsaXN0X2hlYWQgKmhl YWQpCiB7CiAJc3RydWN0IGd0cF9kZXYgKmd0cCA9IG5ldGRldl9wcml2KGRldik7CisJc3RydWN0 IHBkcF9jdHggKnBjdHg7CisJaW50IGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgZ3RwLT5oYXNoX3Np emU7IGkrKykKKwkJaGxpc3RfZm9yX2VhY2hfZW50cnlfcmN1KHBjdHgsICZndHAtPnRpZF9oYXNo W2ldLCBobGlzdF90aWQpCisJCQlwZHBfY29udGV4dF9kZWxldGUocGN0eCk7CiAKLQlndHBfaGFz aHRhYmxlX2ZyZWUoZ3RwKTsKIAlsaXN0X2RlbF9yY3UoJmd0cC0+bGlzdCk7CiAJdW5yZWdpc3Rl cl9uZXRkZXZpY2VfcXVldWUoZGV2LCBoZWFkKTsKIH0KQEAgLTc3NCwyMCArNzg4LDYgQEAgc3Rh dGljIGludCBndHBfaGFzaHRhYmxlX25ldyhzdHJ1Y3QgZ3RwX2RldiAqZ3RwLCBpbnQgaHNpemUp CiAJcmV0dXJuIC1FTk9NRU07CiB9CiAKLXN0YXRpYyB2b2lkIGd0cF9oYXNodGFibGVfZnJlZShz dHJ1Y3QgZ3RwX2RldiAqZ3RwKQotewotCXN0cnVjdCBwZHBfY3R4ICpwY3R4OwotCWludCBpOwot Ci0JZm9yIChpID0gMDsgaSA8IGd0cC0+aGFzaF9zaXplOyBpKyspCi0JCWhsaXN0X2Zvcl9lYWNo X2VudHJ5X3JjdShwY3R4LCAmZ3RwLT50aWRfaGFzaFtpXSwgaGxpc3RfdGlkKQotCQkJcGRwX2Nv bnRleHRfZGVsZXRlKHBjdHgpOwotCi0Jc3luY2hyb25pemVfcmN1KCk7Ci0Ja2ZyZWUoZ3RwLT5h ZGRyX2hhc2gpOwotCWtmcmVlKGd0cC0+dGlkX2hhc2gpOwotfQotCiBzdGF0aWMgc3RydWN0IHNv Y2sgKmd0cF9lbmNhcF9lbmFibGVfc29ja2V0KGludCBmZCwgaW50IHR5cGUsCiAJCQkJCSAgICBz dHJ1Y3QgZ3RwX2RldiAqZ3RwKQogewotLSAKMi4yMC4xCgoKRnJvbSAyN2UzODYwMmQwZWM5ZDUw M2ZkZTY0ODlmYzBlMjFiZWQ0YTAzMmEyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBU YWVoZWUgWW9vIDxhcDQyMDA3M0BnbWFpbC5jb20+CkRhdGU6IFdlZCwgMTEgRGVjIDIwMTkgMDg6 MjM6MDAgKzAwMDAKU3ViamVjdDogW1BBVENIIDQwLzQ2XSBndHA6IGRvIG5vdCBhbGxvdyBhZGRp bmcgZHVwbGljYXRlIHRpZCBhbmQgbXNfYWRkciBwZHAKIGNvbnRleHQKClsgVXBzdHJlYW0gY29t bWl0IDZiMDFiMWQ5YjJkMzhkYzg0YWMzOThiZmU5ZjAwYmFmZjA2YTMxZTUgXQoKR1RQIFJYIHBh Y2tldCBwYXRoIGxvb2t1cHMgcGRwIGNvbnRleHQgd2l0aCBUSUQuIElmIGR1cGxpY2F0ZSBUSUQg cGRwCmNvbnRleHRzIGFyZSBleGlzdGluZyBpbiB0aGUgbGlzdCwgaXQgY291bGRuJ3Qgc2VsZWN0 IGNvcnJlY3QgcGRwIGNvbnRleHQuClNvLCBUSUQgdmFsdWUgIHNob3VsZCBiZSB1bmlxdWUuCkdU UCBUWCBwYWNrZXQgcGF0aCBsb29rdXBzIHBkcCBjb250ZXh0IHdpdGggbXNfYWRkci4gSWYgZHVw bGljYXRlIG1zX2FkZHIgcGRwCmNvbnRleHRzIGFyZSBleGlzdGluZyBpbiB0aGUgbGlzdCwgaXQg Y291bGRuJ3Qgc2VsZWN0IGNvcnJlY3QgcGRwIGNvbnRleHQuClNvLCBtc19hZGRyIHZhbHVlIHNo b3VsZCBiZSB1bmlxdWUuCgpGaXhlczogNDU5YWE2NjBlYjFkICgiZ3RwOiBhZGQgaW5pdGlhbCBk cml2ZXIgZm9yIGRhdGFwYXRoIG9mIEdQUlMgVHVubmVsaW5nIFByb3RvY29sIChHVFAtVSkiKQpT aWduZWQtb2ZmLWJ5OiBUYWVoZWUgWW9vIDxhcDQyMDA3M0BnbWFpbC5jb20+ClNpZ25lZC1vZmYt Ynk6IEpha3ViIEtpY2luc2tpIDxqYWt1Yi5raWNpbnNraUBuZXRyb25vbWUuY29tPgotLS0KIGRy aXZlcnMvbmV0L2d0cC5jIHwgMzIgKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0KIDEg ZmlsZSBjaGFuZ2VkLCAyMiBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9kcml2ZXJzL25ldC9ndHAuYyBiL2RyaXZlcnMvbmV0L2d0cC5jCmluZGV4IGY1YWE1ZTFj NzcyMi4uZmNhNDcxZTI3ZjM5IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ndHAuYworKysgYi9k cml2ZXJzL25ldC9ndHAuYwpAQCAtOTI4LDI0ICs5MjgsMzEgQEAgc3RhdGljIHZvaWQgaXB2NF9w ZHBfZmlsbChzdHJ1Y3QgcGRwX2N0eCAqcGN0eCwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbykKIAl9 CiB9CiAKLXN0YXRpYyBpbnQgaXB2NF9wZHBfYWRkKHN0cnVjdCBndHBfZGV2ICpndHAsIHN0cnVj dCBzb2NrICpzaywKLQkJCXN0cnVjdCBnZW5sX2luZm8gKmluZm8pCitzdGF0aWMgaW50IGd0cF9w ZHBfYWRkKHN0cnVjdCBndHBfZGV2ICpndHAsIHN0cnVjdCBzb2NrICpzaywKKwkJICAgICAgIHN0 cnVjdCBnZW5sX2luZm8gKmluZm8pCiB7CisJc3RydWN0IHBkcF9jdHggKnBjdHgsICpwY3R4X3Rp ZCA9IE5VTEw7CiAJc3RydWN0IG5ldF9kZXZpY2UgKmRldiA9IGd0cC0+ZGV2OwogCXUzMiBoYXNo X21zLCBoYXNoX3RpZCA9IDA7Ci0Jc3RydWN0IHBkcF9jdHggKnBjdHg7CisJdW5zaWduZWQgaW50 IHZlcnNpb247CiAJYm9vbCBmb3VuZCA9IGZhbHNlOwogCV9fYmUzMiBtc19hZGRyOwogCiAJbXNf YWRkciA9IG5sYV9nZXRfYmUzMihpbmZvLT5hdHRyc1tHVFBBX01TX0FERFJFU1NdKTsKIAloYXNo X21zID0gaXB2NF9oYXNoZm4obXNfYWRkcikgJSBndHAtPmhhc2hfc2l6ZTsKKwl2ZXJzaW9uID0g bmxhX2dldF91MzIoaW5mby0+YXR0cnNbR1RQQV9WRVJTSU9OXSk7CiAKLQlobGlzdF9mb3JfZWFj aF9lbnRyeV9yY3UocGN0eCwgJmd0cC0+YWRkcl9oYXNoW2hhc2hfbXNdLCBobGlzdF9hZGRyKSB7 Ci0JCWlmIChwY3R4LT5tc19hZGRyX2lwNC5zX2FkZHIgPT0gbXNfYWRkcikgewotCQkJZm91bmQg PSB0cnVlOwotCQkJYnJlYWs7Ci0JCX0KLQl9CisJcGN0eCA9IGlwdjRfcGRwX2ZpbmQoZ3RwLCBt c19hZGRyKTsKKwlpZiAocGN0eCkKKwkJZm91bmQgPSB0cnVlOworCWlmICh2ZXJzaW9uID09IEdU UF9WMCkKKwkJcGN0eF90aWQgPSBndHAwX3BkcF9maW5kKGd0cCwKKwkJCQkJIG5sYV9nZXRfdTY0 KGluZm8tPmF0dHJzW0dUUEFfVElEXSkpOworCWVsc2UgaWYgKHZlcnNpb24gPT0gR1RQX1YxKQor CQlwY3R4X3RpZCA9IGd0cDFfcGRwX2ZpbmQoZ3RwLAorCQkJCQkgbmxhX2dldF91MzIoaW5mby0+ YXR0cnNbR1RQQV9JX1RFSV0pKTsKKwlpZiAocGN0eF90aWQpCisJCWZvdW5kID0gdHJ1ZTsKIAog CWlmIChmb3VuZCkgewogCQlpZiAoaW5mby0+bmxoZHItPm5sbXNnX2ZsYWdzICYgTkxNX0ZfRVhD TCkKQEAgLTk1Myw2ICs5NjAsMTEgQEAgc3RhdGljIGludCBpcHY0X3BkcF9hZGQoc3RydWN0IGd0 cF9kZXYgKmd0cCwgc3RydWN0IHNvY2sgKnNrLAogCQlpZiAoaW5mby0+bmxoZHItPm5sbXNnX2Zs YWdzICYgTkxNX0ZfUkVQTEFDRSkKIAkJCXJldHVybiAtRU9QTk9UU1VQUDsKIAorCQlpZiAocGN0 eCAmJiBwY3R4X3RpZCkKKwkJCXJldHVybiAtRUVYSVNUOworCQlpZiAoIXBjdHgpCisJCQlwY3R4 ID0gcGN0eF90aWQ7CisKIAkJaXB2NF9wZHBfZmlsbChwY3R4LCBpbmZvKTsKIAogCQlpZiAocGN0 eC0+Z3RwX3ZlcnNpb24gPT0gR1RQX1YwKQpAQCAtMTA3Niw3ICsxMDg4LDcgQEAgc3RhdGljIGlu dCBndHBfZ2VubF9uZXdfcGRwKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8g KmluZm8pCiAJCWdvdG8gb3V0X3VubG9jazsKIAl9CiAKLQllcnIgPSBpcHY0X3BkcF9hZGQoZ3Rw LCBzaywgaW5mbyk7CisJZXJyID0gZ3RwX3BkcF9hZGQoZ3RwLCBzaywgaW5mbyk7CiAKIG91dF91 bmxvY2s6CiAJcmN1X3JlYWRfdW5sb2NrKCk7Ci0tIAoyLjIwLjEKCgpGcm9tIDQ5ZTQ1YmJiNTYw ODJhMDFkMjQ4ZWVjODRhOTExMjJlMTQ2OTZhMDggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IEpvbmF0aGFuIExlbW9uIDxqb25hdGhhbi5sZW1vbkBnbWFpbC5jb20+CkRhdGU6IFR1ZSwg MTAgRGVjIDIwMTkgMDg6Mzk6NDYgLTA4MDAKU3ViamVjdDogW1BBVENIIDQxLzQ2XSBibnh0OiBh cHBseSBjb21wdXRlZCBjbGFtcCB2YWx1ZSBmb3IgY29hbGVjZSBwYXJhbWV0ZXIKClsgVXBzdHJl YW0gY29tbWl0IDZhZGM0NjAxYzJhMWFjODdiNGFiOGVkMGNiNTVkYjZlZmQwMjY0ZTggXQoKQWZ0 ZXIgZXhlY3V0aW5nICJldGh0b29sIC1DIGV0aDAgcngtdXNlY3MtaXJxIDAiLCB0aGUgYm94IGJl Y29tZXMKdW5yZXNwb25zaXZlLCBsaWtlbHkgZHVlIHRvIGludGVycnVwdCBsaXZlbG9jay4gIEl0 IGFwcGVhcnMgdGhhdAphIG1pbmltdW0gY2xhbXAgdmFsdWUgZm9yIHRoZSBpcnEgdGltZXIgaXMg Y29tcHV0ZWQsIGJ1dCBpcyBuZXZlcgphcHBsaWVkLgoKRml4IGJ5IGFwcGx5aW5nIHRoZSBjb3Jy ZWN0ZWQgY2xhbXAgdmFsdWUuCgpGaXhlczogNzQ3MDZhZmE3MTJkICgiYm54dF9lbjogVXBkYXRl IGludGVycnVwdCBjb2FsZXNjaW5nIGxvZ2ljLiIpClNpZ25lZC1vZmYtYnk6IEpvbmF0aGFuIExl bW9uIDxqb25hdGhhbi5sZW1vbkBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IE1pY2hhZWwgQ2hh biA8bWljaGFlbC5jaGFuQGJyb2FkY29tLmNvbT4KU2lnbmVkLW9mZi1ieTogSmFrdWIgS2ljaW5z a2kgPGpha3ViLmtpY2luc2tpQG5ldHJvbm9tZS5jb20+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJu ZXQvYnJvYWRjb20vYm54dC9ibnh0LmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRp b24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9i cm9hZGNvbS9ibnh0L2JueHQuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueHQv Ym54dC5jCmluZGV4IGMwZGY5NDdlZDlmOS4uNWM3NWIwNjEyNDNmIDEwMDY0NAotLS0gYS9kcml2 ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHQuYworKysgYi9kcml2ZXJzL25ldC9l dGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHQuYwpAQCAtNjE3OCw3ICs2MTc4LDcgQEAgc3RhdGlj IHZvaWQgYm54dF9od3JtX3NldF9jb2FsX3BhcmFtcyhzdHJ1Y3QgYm54dCAqYnAsCiAJCXRtciA9 IGJueHRfdXNlY190b19jb2FsX3RtcihicCwgaHdfY29hbC0+Y29hbF90aWNrc19pcnEpOwogCQl2 YWwgPSBjbGFtcF90KHUxNiwgdG1yLCAxLAogCQkJICAgICAgY29hbF9jYXAtPmNtcGxfYWdncl9k bWFfdG1yX2R1cmluZ19pbnRfbWF4KTsKLQkJcmVxLT5jbXBsX2FnZ3JfZG1hX3Rtcl9kdXJpbmdf aW50ID0gY3B1X3RvX2xlMTYodG1yKTsKKwkJcmVxLT5jbXBsX2FnZ3JfZG1hX3Rtcl9kdXJpbmdf aW50ID0gY3B1X3RvX2xlMTYodmFsKTsKIAkJcmVxLT5lbmFibGVzIHw9CiAJCQljcHVfdG9fbGUx NihCTlhUX0NPQUxfQ01QTF9BR0dSX1RNUl9EVVJJTkdfSU5UX0VOQUJMRSk7CiAJfQotLSAKMi4y MC4xCgoKRnJvbSBlZWY1ODA5OWE3ZDhkNjkzMGRmNDZiZTBjYjgwODI1NmZhN2M4ZTc3IE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBIYW5nYmluIExpdSA8bGl1aGFuZ2JpbkBnbWFpbC5j b20+CkRhdGU6IFdlZCwgMTEgRGVjIDIwMTkgMjI6MjA6MTYgKzA4MDAKU3ViamVjdDogW1BBVENI IDQyLzQ2XSBpcHY2L2FkZHJjb25mOiBvbmx5IGNoZWNrIGludmFsaWQgaGVhZGVyIHZhbHVlcyB3 aGVuCiBORVRMSU5LX0ZfU1RSSUNUX0NISyBpcyBzZXQKClsgVXBzdHJlYW0gY29tbWl0IDJiZWI2 ZDI5MDFhM2Y3MzEwNjQ4NWQ1NjBjNDk5ODExNDRhZWFjYjEgXQoKSW4gY29tbWl0IDRiMTM3M2Rl NzNhMyAoIm5ldDogaXB2NjogYWRkcjogcGVyZm9ybSBzdHJpY3QgY2hlY2tzIGFsc28gZm9yCmRv aXQgaGFuZGxlcnMiKSB3ZSBhZGQgc3RyaWN0IGNoZWNrIGZvciBpbmV0Nl9ydG1fZ2V0YWRkcigp LiBCdXQgd2UgZGlkCnRoZSBpbnZhbGlkIGhlYWRlciB2YWx1ZXMgY2hlY2sgYmVmb3JlIGNoZWNr aW5nIGlmIE5FVExJTktfRl9TVFJJQ1RfQ0hLCmlzIHNldC4gVGhpcyBtYXkgYnJlYWsgYmFja3dh cmRzIGNvbXBhdGliaWxpdHkgaWYgdXNlciBhbHJlYWR5IHNldCB0aGUKaWZtLT5pZmFfcHJlZml4 bGVuLCBpZm0tPmlmYV9mbGFncywgaWZtLT5pZmFfc2NvcGUgaW4gdGhlaXIgbmV0bGluayBjb2Rl LgoKSSBkaWRuJ3QgbW92ZSB0aGUgbmxtc2dfbGVuIGNoZWNrIGJlY2F1c2UgSSB0aG91Z2h0IGl0 J3MgYSB2YWxpZCBjaGVjay4KClJlcG9ydGVkLWJ5OiBKaWFubGluIFNoaSA8amlzaGlAcmVkaGF0 LmNvbT4KRml4ZXM6IDRiMTM3M2RlNzNhMyAoIm5ldDogaXB2NjogYWRkcjogcGVyZm9ybSBzdHJp Y3QgY2hlY2tzIGFsc28gZm9yIGRvaXQgaGFuZGxlcnMiKQpTaWduZWQtb2ZmLWJ5OiBIYW5nYmlu IExpdSA8bGl1aGFuZ2JpbkBnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBEYXZpZCBBaGVybiA8ZHNh aGVybkBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IEpha3ViIEtpY2luc2tpIDxqYWt1Yi5raWNp bnNraUBuZXRyb25vbWUuY29tPgotLS0KIG5ldC9pcHY2L2FkZHJjb25mLmMgfCA4ICsrKystLS0t CiAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL25ldC9pcHY2L2FkZHJjb25mLmMgYi9uZXQvaXB2Ni9hZGRyY29uZi5jCmluZGV4IDM0 Y2NlZjE4YjQwZS4uZjliNTY5MGU5NGZkIDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9hZGRyY29uZi5j CisrKyBiL25ldC9pcHY2L2FkZHJjb25mLmMKQEAgLTUyMzEsMTYgKzUyMzEsMTYgQEAgc3RhdGlj IGludCBpbmV0Nl9ydG1fdmFsaWRfZ2V0YWRkcl9yZXEoc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJ cmV0dXJuIC1FSU5WQUw7CiAJfQogCisJaWYgKCFuZXRsaW5rX3N0cmljdF9nZXRfY2hlY2soc2ti KSkKKwkJcmV0dXJuIG5sbXNnX3BhcnNlX2RlcHJlY2F0ZWQobmxoLCBzaXplb2YoKmlmbSksIHRi LCBJRkFfTUFYLAorCQkJCQkgICAgICBpZmFfaXB2Nl9wb2xpY3ksIGV4dGFjayk7CisKIAlpZm0g PSBubG1zZ19kYXRhKG5saCk7CiAJaWYgKGlmbS0+aWZhX3ByZWZpeGxlbiB8fCBpZm0tPmlmYV9m bGFncyB8fCBpZm0tPmlmYV9zY29wZSkgewogCQlOTF9TRVRfRVJSX01TR19NT0QoZXh0YWNrLCAi SW52YWxpZCB2YWx1ZXMgaW4gaGVhZGVyIGZvciBnZXQgYWRkcmVzcyByZXF1ZXN0Iik7CiAJCXJl dHVybiAtRUlOVkFMOwogCX0KIAotCWlmICghbmV0bGlua19zdHJpY3RfZ2V0X2NoZWNrKHNrYikp Ci0JCXJldHVybiBubG1zZ19wYXJzZV9kZXByZWNhdGVkKG5saCwgc2l6ZW9mKCppZm0pLCB0Yiwg SUZBX01BWCwKLQkJCQkJICAgICAgaWZhX2lwdjZfcG9saWN5LCBleHRhY2spOwotCiAJZXJyID0g bmxtc2dfcGFyc2VfZGVwcmVjYXRlZF9zdHJpY3QobmxoLCBzaXplb2YoKmlmbSksIHRiLCBJRkFf TUFYLAogCQkJCQkgICAgaWZhX2lwdjZfcG9saWN5LCBleHRhY2spOwogCWlmIChlcnIpCi0tIAoy LjIwLjEKCgpGcm9tIDlkNmJhODNlNWU0NDQ5ZjNjODdiOGQ1NDc2NmM0ZmI4ZWRhZWI1MTQgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFJ1c3NlbGwgS2luZyA8cm1rK2tlcm5lbEBhcm1s aW51eC5vcmcudWs+CkRhdGU6IEZyaSwgMTMgRGVjIDIwMTkgMTA6MDY6MzAgKzAwMDAKU3ViamVj dDogW1BBVENIIDQzLzQ2XSBuZXQ6IHBoeWxpbms6IGZpeCBpbnRlcmZhY2UgcGFzc2VkIHRvIG1h Y19saW5rX3VwCgpbIFVwc3RyZWFtIGNvbW1pdCA5YjIwNzljMDQ2YTlkNmM5YzczYTRlYzMzODE2 Njc4NTY1ZWUwMWYzIF0KCkEgbWlzbWVyZ2UgYmV0d2VlbiB0aGUgZm9sbG93aW5nIHR3byBjb21t aXRzOgoKYzY3ODcyNjMwNWI5ICgibmV0OiBwaHlsaW5rOiBlbnN1cmUgY29uc2lzdGVudCBwaHkg aW50ZXJmYWNlIG1vZGUiKQoyNzc1NWZmODhjMGUgKCJuZXQ6IHBoeWxpbms6IEFkZCBwaHlsaW5r X21hY19saW5rX3t1cCwgZG93bn0gd3JhcHBlciBmdW5jdGlvbnMiKQoKcmVzdWx0ZWQgaW4gdGhl IHdyb25nIGludGVyZmFjZSBiZWluZyBwYXNzZWQgdG8gdGhlIG1hY19saW5rX3VwKCkKZnVuY3Rp b24uIEZpeCB0aGlzIHVwLgoKRml4ZXM6IGI0YjEyYjBkMmYwMiAoIk1lcmdlIGdpdDovL2dpdC5r ZXJuZWwub3JnL3B1Yi9zY20vbGludXgva2VybmVsL2dpdC9kYXZlbS9uZXQiKQpTaWduZWQtb2Zm LWJ5OiBSdXNzZWxsIEtpbmcgPHJtaytrZXJuZWxAYXJtbGludXgub3JnLnVrPgpTaWduZWQtb2Zm LWJ5OiBKYWt1YiBLaWNpbnNraSA8amFrdWIua2ljaW5za2lAbmV0cm9ub21lLmNvbT4KLS0tCiBk cml2ZXJzL25ldC9waHkvcGh5bGluay5jIHwgMyArLS0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2Vy dGlvbigrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9waHkvcGh5 bGluay5jIGIvZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYwppbmRleCA1MzYyMzZmZGIyMzIuLmJm NWJiYjU2NWNmNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYworKysgYi9k cml2ZXJzL25ldC9waHkvcGh5bGluay5jCkBAIC00NDQsOCArNDQ0LDcgQEAgc3RhdGljIHZvaWQg cGh5bGlua19tYWNfbGlua191cChzdHJ1Y3QgcGh5bGluayAqcGwsCiAKIAlwbC0+Y3VyX2ludGVy ZmFjZSA9IGxpbmtfc3RhdGUuaW50ZXJmYWNlOwogCXBsLT5vcHMtPm1hY19saW5rX3VwKHBsLT5j b25maWcsIHBsLT5saW5rX2FuX21vZGUsCi0JCQkgICAgIHBsLT5waHlfc3RhdGUuaW50ZXJmYWNl LAotCQkJICAgICBwbC0+cGh5ZGV2KTsKKwkJCSAgICAgcGwtPmN1cl9pbnRlcmZhY2UsIHBsLT5w aHlkZXYpOwogCiAJaWYgKG5kZXYpCiAJCW5ldGlmX2NhcnJpZXJfb24obmRldik7Ci0tIAoyLjIw LjEKCgpGcm9tIGEzOGFhNDQyOTFhOTViYjY1ODNhNWFhMTU3ZTlmMWNiZTA5Njk3NmEgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IFVyc3VsYSBCcmF1biA8dWJyYXVuQGxpbnV4LmlibS5j b20+CkRhdGU6IFRodSwgMTIgRGVjIDIwMTkgMjI6MzU6NTggKzAxMDAKU3ViamVjdDogW1BBVENI IDQ0LzQ2XSBuZXQvc21jOiBhZGQgZmFsbGJhY2sgY2hlY2sgdG8gY29ubmVjdCgpCgpbIFVwc3Ry ZWFtIGNvbW1pdCA4NjQzNDc0NGZlZGYwY2ZlMDdhOWVlZTNmNDYzMmMwZTI1YzFkMTM2IF0KCkZB U1RPUEVOIHNldHNvY2tvcHQoKSBvciBzZW5kbXNnKCkgbWF5IHN3aXRjaCB0aGUgU01DIHNvY2tl dCB0byBmYWxsYmFjawptb2RlLiBPbmNlIGZhbGxiYWNrIG1vZGUgaXMgYWN0aXZlLCB0aGUgbmF0 aXZlIFRDUCBzb2NrZXQgZnVuY3Rpb25zIGFyZQpjYWxsZWQuIE5ldmVydGhlbGVzcyB0aGVyZSBp cyBhIHNtYWxsIHJhY2Ugd2luZG93LCB3aGVuIEZBU1RPUEVOCnNldHNvY2tvcHQvc2VuZG1zZyBy dW5zIGluIHBhcmFsbGVsIHRvIGEgY29ubmVjdCgpLCBhbmQgc3dpdGNoIHRoZQpzb2NrZXQgaW50 byBmYWxsYmFjayBtb2RlIGJlZm9yZSBjb25uZWN0KCkgdGFrZXMgdGhlIHNvY2sgbG9jay4KTWFr ZSBzdXJlIHRoZSBTTUMtc3BlY2lmaWMgY29ubmVjdCBzZXR1cCBpcyBvbWl0dGVkIGluIHRoaXMg Y2FzZS4KClRoaXMgd2F5IGEgc3l6Ym90LXJlcG9ydGVkIHJlZmNvdW50IHByb2JsZW0gaXMgZml4 ZWQsIHRyaWdnZXJlZCBieQpkaWZmZXJlbnQgdGhyZWFkcyBydW5uaW5nIG5vbi1ibG9ja2luZyBj b25uZWN0KCkgYW5kIEZBU1RPUEVOX0tFWQpzZXRzb2Nrb3B0LgoKUmVwb3J0ZWQtYnk6IHN5emJv dCs5NmQzZjlmZjZhODZkMzdlNDRjOEBzeXprYWxsZXIuYXBwc3BvdG1haWwuY29tCkZpeGVzOiA2 ZDZkZDUyOGQ1YWYgKCJuZXQvc21jOiBmaXggcmVmY291bnQgbm9uLWJsb2NraW5nIGNvbm5lY3Qo KSAtcGFydCAyIikKU2lnbmVkLW9mZi1ieTogVXJzdWxhIEJyYXVuIDx1YnJhdW5AbGludXguaWJt LmNvbT4KU2lnbmVkLW9mZi1ieTogS2Fyc3RlbiBHcmF1bCA8a2dyYXVsQGxpbnV4LmlibS5jb20+ ClNpZ25lZC1vZmYtYnk6IEpha3ViIEtpY2luc2tpIDxqYWt1Yi5raWNpbnNraUBuZXRyb25vbWUu Y29tPgotLS0KIG5ldC9zbWMvYWZfc21jLmMgfCAxNCArKysrKysrKy0tLS0tLQogMSBmaWxlIGNo YW5nZWQsIDggaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQv c21jL2FmX3NtYy5jIGIvbmV0L3NtYy9hZl9zbWMuYwppbmRleCA3MzdiNDk5MDlhN2EuLjZhNmQz YjJhYTVhOSAxMDA2NDQKLS0tIGEvbmV0L3NtYy9hZl9zbWMuYworKysgYi9uZXQvc21jL2FmX3Nt Yy5jCkBAIC04NTQsNiArODU0LDggQEAgc3RhdGljIGludCBzbWNfY29ubmVjdChzdHJ1Y3Qgc29j a2V0ICpzb2NrLCBzdHJ1Y3Qgc29ja2FkZHIgKmFkZHIsCiAJCWdvdG8gb3V0OwogCiAJc29ja19o b2xkKCZzbWMtPnNrKTsgLyogc29jayBwdXQgaW4gcGFzc2l2ZSBjbG9zaW5nICovCisJaWYgKHNt Yy0+dXNlX2ZhbGxiYWNrKQorCQlnb3RvIG91dDsKIAlpZiAoZmxhZ3MgJiBPX05PTkJMT0NLKSB7 CiAJCWlmIChzY2hlZHVsZV93b3JrKCZzbWMtPmNvbm5lY3Rfd29yaykpCiAJCQlzbWMtPmNvbm5l Y3Rfbm9uYmxvY2sgPSAxOwpAQCAtMTcxNiw4ICsxNzE4LDYgQEAgc3RhdGljIGludCBzbWNfc2V0 c29ja29wdChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBpbnQgbGV2ZWwsIGludCBvcHRuYW1lLAogCQlz ay0+c2tfZXJyID0gc21jLT5jbGNzb2NrLT5zay0+c2tfZXJyOwogCQlzay0+c2tfZXJyb3JfcmVw b3J0KHNrKTsKIAl9Ci0JaWYgKHJjKQotCQlyZXR1cm4gcmM7CiAKIAlpZiAob3B0bGVuIDwgc2l6 ZW9mKGludCkpCiAJCXJldHVybiAtRUlOVkFMOwpAQCAtMTcyNSw2ICsxNzI1LDggQEAgc3RhdGlj IGludCBzbWNfc2V0c29ja29wdChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBpbnQgbGV2ZWwsIGludCBv cHRuYW1lLAogCQlyZXR1cm4gLUVGQVVMVDsKIAogCWxvY2tfc29jayhzayk7CisJaWYgKHJjIHx8 IHNtYy0+dXNlX2ZhbGxiYWNrKQorCQlnb3RvIG91dDsKIAlzd2l0Y2ggKG9wdG5hbWUpIHsKIAlj YXNlIFRDUF9VTFA6CiAJY2FzZSBUQ1BfRkFTVE9QRU46CkBAIC0xNzM2LDE1ICsxNzM4LDE0IEBA IHN0YXRpYyBpbnQgc21jX3NldHNvY2tvcHQoc3RydWN0IHNvY2tldCAqc29jaywgaW50IGxldmVs LCBpbnQgb3B0bmFtZSwKIAkJCXNtY19zd2l0Y2hfdG9fZmFsbGJhY2soc21jKTsKIAkJCXNtYy0+ ZmFsbGJhY2tfcnNuID0gU01DX0NMQ19ERUNMX09QVFVOU1VQUDsKIAkJfSBlbHNlIHsKLQkJCWlm ICghc21jLT51c2VfZmFsbGJhY2spCi0JCQkJcmMgPSAtRUlOVkFMOworCQkJcmMgPSAtRUlOVkFM OwogCQl9CiAJCWJyZWFrOwogCWNhc2UgVENQX05PREVMQVk6CiAJCWlmIChzay0+c2tfc3RhdGUg IT0gU01DX0lOSVQgJiYKIAkJICAgIHNrLT5za19zdGF0ZSAhPSBTTUNfTElTVEVOICYmCiAJCSAg ICBzay0+c2tfc3RhdGUgIT0gU01DX0NMT1NFRCkgewotCQkJaWYgKHZhbCAmJiAhc21jLT51c2Vf ZmFsbGJhY2spCisJCQlpZiAodmFsKQogCQkJCW1vZF9kZWxheWVkX3dvcmsoc3lzdGVtX3dxLCAm c21jLT5jb25uLnR4X3dvcmssCiAJCQkJCQkgMCk7CiAJCX0KQEAgLTE3NTMsNyArMTc1NCw3IEBA IHN0YXRpYyBpbnQgc21jX3NldHNvY2tvcHQoc3RydWN0IHNvY2tldCAqc29jaywgaW50IGxldmVs LCBpbnQgb3B0bmFtZSwKIAkJaWYgKHNrLT5za19zdGF0ZSAhPSBTTUNfSU5JVCAmJgogCQkgICAg c2stPnNrX3N0YXRlICE9IFNNQ19MSVNURU4gJiYKIAkJICAgIHNrLT5za19zdGF0ZSAhPSBTTUNf Q0xPU0VEKSB7Ci0JCQlpZiAoIXZhbCAmJiAhc21jLT51c2VfZmFsbGJhY2spCisJCQlpZiAoIXZh bCkKIAkJCQltb2RfZGVsYXllZF93b3JrKHN5c3RlbV93cSwgJnNtYy0+Y29ubi50eF93b3JrLAog CQkJCQkJIDApOwogCQl9CkBAIC0xNzY0LDYgKzE3NjUsNyBAQCBzdGF0aWMgaW50IHNtY19zZXRz b2Nrb3B0KHN0cnVjdCBzb2NrZXQgKnNvY2ssIGludCBsZXZlbCwgaW50IG9wdG5hbWUsCiAJZGVm YXVsdDoKIAkJYnJlYWs7CiAJfQorb3V0OgogCXJlbGVhc2Vfc29jayhzayk7CiAKIAlyZXR1cm4g cmM7Ci0tIAoyLjIwLjEKCgpGcm9tIDM3MTQyMTAzOWJmODNlNmFmOWQzMzNkZjBhOWExM2U2ZDVm MjM1M2EgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE5ldGFuZWwgQmVsZ2F6YWwgPG5l dGFuZWxAYW1hem9uLmNvbT4KRGF0ZTogVHVlLCAxMCBEZWMgMjAxOSAxMToyNzo0NCArMDAwMApT dWJqZWN0OiBbUEFUQ0ggNDUvNDZdIG5ldDogZW5hOiBmaXggbmFwaSBoYW5kbGVyIG1pc2JlaGF2 aW9yIHdoZW4gdGhlIG5hcGkKIGJ1ZGdldCBpcyB6ZXJvCgpbIFVwc3RyZWFtIGNvbW1pdCAyNGRl ZTBjNzQ3OGQxYTFlMDBhYmRmNTYyNWI3ZjkyMTQ2NzMyNWRjIF0KCkluIG5ldHBvbGwgdGhlIG5h cGkgaGFuZGxlciBjb3VsZCBiZSBjYWxsZWQgd2l0aCBidWRnZXQgZXF1YWwgdG8gemVyby4KQ3Vy cmVudCBFTkEgbmFwaSBoYW5kbGVyIGRvZXNuJ3QgdGFrZSB0aGF0IGludG8gY29uc2lkZXJhdGlv bi4KClRoZSBuYXBpIGhhbmRsZXIgaGFuZGxlcyBSeCBwYWNrZXRzIGluIGEgZG8td2hpbGUgbG9v cC4KQ3VycmVudGx5LCB0aGUgYnVkZ2V0IGNoZWNrIGhhcHBlbnMgb25seSBhZnRlciBkZWNyZW1l bnRpbmcgdGhlCmJ1ZGdldCwgdGhlcmVmb3JlIHRoZSBuYXBpIGhhbmRsZXIsIGluIHJhcmUgY2Fz ZXMsIGNvdWxkIHJ1biBvdmVyCk1BWF9JTlQgcGFja2V0cy4KCkluIGFkZGl0aW9uIHRvIHRoYXQs IHRoaXMgbW92ZXMgYWxsIGJ1ZGdldCByZWxhdGVkIHZhcmlhYmxlcyB0byBpbnQKY2FsY3VsYXRp b24gYW5kIHN0b3AgbWl4aW5nIHUzMiB0byBhdm9pZCBhbWJpZ3VpdHkKCkZpeGVzOiAxNzM4Y2Qz ZWQzNDIgKCJuZXQ6IGVuYTogQWRkIGEgZHJpdmVyIGZvciBBbWF6b24gRWxhc3RpYyBOZXR3b3Jr IEFkYXB0ZXJzIChFTkEpIikKU2lnbmVkLW9mZi1ieTogTmV0YW5lbCBCZWxnYXphbCA8bmV0YW5l bEBhbWF6b24uY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVt bG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1hem9uL2VuYS9lbmFfbmV0ZGV2 LmMgfCAxMCArKysrKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCAzIGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2FtYXpvbi9lbmEv ZW5hX25ldGRldi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1hem9uL2VuYS9lbmFfbmV0ZGV2 LmMKaW5kZXggYzQ4N2QyYTdkNmRkLi5iNGExNDUyMjBhYmEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv bmV0L2V0aGVybmV0L2FtYXpvbi9lbmEvZW5hX25ldGRldi5jCisrKyBiL2RyaXZlcnMvbmV0L2V0 aGVybmV0L2FtYXpvbi9lbmEvZW5hX25ldGRldi5jCkBAIC0xMjM4LDggKzEyMzgsOCBAQCBzdGF0 aWMgaW50IGVuYV9pb19wb2xsKHN0cnVjdCBuYXBpX3N0cnVjdCAqbmFwaSwgaW50IGJ1ZGdldCkK IAlzdHJ1Y3QgZW5hX25hcGkgKmVuYV9uYXBpID0gY29udGFpbmVyX29mKG5hcGksIHN0cnVjdCBl bmFfbmFwaSwgbmFwaSk7CiAJc3RydWN0IGVuYV9yaW5nICp0eF9yaW5nLCAqcnhfcmluZzsKIAot CXUzMiB0eF93b3JrX2RvbmU7Ci0JdTMyIHJ4X3dvcmtfZG9uZTsKKwlpbnQgdHhfd29ya19kb25l OworCWludCByeF93b3JrX2RvbmUgPSAwOwogCWludCB0eF9idWRnZXQ7CiAJaW50IG5hcGlfY29t cF9jYWxsID0gMDsKIAlpbnQgcmV0OwpAQCAtMTI1Niw3ICsxMjU2LDExIEBAIHN0YXRpYyBpbnQg ZW5hX2lvX3BvbGwoc3RydWN0IG5hcGlfc3RydWN0ICpuYXBpLCBpbnQgYnVkZ2V0KQogCX0KIAog CXR4X3dvcmtfZG9uZSA9IGVuYV9jbGVhbl90eF9pcnEodHhfcmluZywgdHhfYnVkZ2V0KTsKLQly eF93b3JrX2RvbmUgPSBlbmFfY2xlYW5fcnhfaXJxKHJ4X3JpbmcsIG5hcGksIGJ1ZGdldCk7CisJ LyogT24gbmV0cG9sbCB0aGUgYnVkZ2V0IGlzIHplcm8gYW5kIHRoZSBoYW5kbGVyIHNob3VsZCBv bmx5IGNsZWFuIHRoZQorCSAqIHR4IGNvbXBsZXRpb25zLgorCSAqLworCWlmIChsaWtlbHkoYnVk Z2V0KSkKKwkJcnhfd29ya19kb25lID0gZW5hX2NsZWFuX3J4X2lycShyeF9yaW5nLCBuYXBpLCBi dWRnZXQpOwogCiAJLyogSWYgdGhlIGRldmljZSBpcyBhYm91dCB0byByZXNldCBvciBkb3duLCBh dm9pZCB1bm1hc2sKIAkgKiB0aGUgaW50ZXJydXB0IGFuZCByZXR1cm4gMCBzbyBOQVBJIHdvbid0 IHJlc2NoZWR1bGUKLS0gCjIuMjAuMQoKCkZyb20gMTBkNzg1MWE4MmRkMDI2MGRiYTczMzg5MTM4 YTFlOGE3YWExOGFhOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogU3RlZmFubyBHYXJ6 YXJlbGxhIDxzZ2FyemFyZUByZWRoYXQuY29tPgpEYXRlOiBGcmksIDYgRGVjIDIwMTkgMTU6Mzk6 MTIgKzAxMDAKU3ViamVjdDogW1BBVENIIDQ2LzQ2XSB2aG9zdC92c29jazogYWNjZXB0IG9ubHkg cGFja2V0cyB3aXRoIHRoZSByaWdodCBkc3RfY2lkCgpbIFVwc3RyZWFtIGNvbW1pdCA4YTNjYzI5 YzMxNmMxN2RlNTkwZTNmZjhiNTlmM2Q2Y2JmZDM3YjBhIF0KCldoZW4gd2UgcmVjZWl2ZSBhIG5l dyBwYWNrZXQgZnJvbSB0aGUgZ3Vlc3QsIHdlIGNoZWNrIGlmIHRoZQpzcmNfY2lkIGlzIGNvcnJl Y3QsIGJ1dCB3ZSBmb3Jnb3QgdG8gY2hlY2sgdGhlIGRzdF9jaWQuCgpUaGUgaG9zdCBzaG91bGQg YWNjZXB0IG9ubHkgcGFja2V0cyB3aGVyZSBkc3RfY2lkIGlzCmVxdWFsIHRvIHRoZSBob3N0IENJ RC4KClNpZ25lZC1vZmYtYnk6IFN0ZWZhbm8gR2FyemFyZWxsYSA8c2dhcnphcmVAcmVkaGF0LmNv bT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0Pgot LS0KIGRyaXZlcnMvdmhvc3QvdnNvY2suYyB8IDQgKysrLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5z ZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmhvc3QvdnNv Y2suYyBiL2RyaXZlcnMvdmhvc3QvdnNvY2suYwppbmRleCA5ZjU3NzM2ZmUxNWUuLjg4YTVhYTY2 MjRiNCAxMDA2NDQKLS0tIGEvZHJpdmVycy92aG9zdC92c29jay5jCisrKyBiL2RyaXZlcnMvdmhv c3QvdnNvY2suYwpAQCAtNDM3LDcgKzQzNyw5IEBAIHN0YXRpYyB2b2lkIHZob3N0X3Zzb2NrX2hh bmRsZV90eF9raWNrKHN0cnVjdCB2aG9zdF93b3JrICp3b3JrKQogCQl2aXJ0aW9fdHJhbnNwb3J0 X2RlbGl2ZXJfdGFwX3BrdChwa3QpOwogCiAJCS8qIE9ubHkgYWNjZXB0IGNvcnJlY3RseSBhZGRy ZXNzZWQgcGFja2V0cyAqLwotCQlpZiAobGU2NF90b19jcHUocGt0LT5oZHIuc3JjX2NpZCkgPT0g dnNvY2stPmd1ZXN0X2NpZCkKKwkJaWYgKGxlNjRfdG9fY3B1KHBrdC0+aGRyLnNyY19jaWQpID09 IHZzb2NrLT5ndWVzdF9jaWQgJiYKKwkJICAgIGxlNjRfdG9fY3B1KHBrdC0+aGRyLmRzdF9jaWQp ID09CisJCSAgICB2aG9zdF90cmFuc3BvcnRfZ2V0X2xvY2FsX2NpZCgpKQogCQkJdmlydGlvX3Ry YW5zcG9ydF9yZWN2X3BrdChwa3QpOwogCQllbHNlCiAJCQl2aXJ0aW9fdHJhbnNwb3J0X2ZyZWVf cGt0KHBrdCk7Ci0tIAoyLjIwLjEKCg== ----Next_Part(Wed_Jan__1_12_13_37_2020_193)----