From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 89C7DC41518 for ; Sat, 26 Jan 2019 00:18:47 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 227F521902 for ; Sat, 26 Jan 2019 00:18:47 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1725771AbfAZASq (ORCPT ); Fri, 25 Jan 2019 19:18:46 -0500 Received: from shards.monkeyblade.net ([23.128.96.9]:48978 "EHLO shards.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725550AbfAZASp (ORCPT ); Fri, 25 Jan 2019 19:18:45 -0500 Received: from localhost (unknown [IPv6:2601:601:9f80:35cd::bf5]) (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 9533F1091CA0A for ; Fri, 25 Jan 2019 16:18:43 -0800 (PST) Date: Fri, 25 Jan 2019 16:18:32 -0800 (PST) Message-Id: <20190125.161832.395356341894836479.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(Fri_Jan_25_16_18_32_2019_891)--" 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]); Fri, 25 Jan 2019 16:18:44 -0800 (PST) Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org ----Next_Part(Fri_Jan_25_16_18_32_2019_891)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Please queue up the following bug fixes for 4.19 and 4.20 -stable, respectively. Thanks! ----Next_Part(Fri_Jan_25_16_18_32_2019_891)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_419.mbox" RnJvbSA1ZjNkMmJhNGZhNWY3MGQ1NDQxZjI2YjgwN2M0NWY2MzM2YzhlNTBhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiTGVuZGFja3ksIFRob21hcyIgPFRob21hcy5MZW5kYWNreUBh bWQuY29tPgpEYXRlOiBUaHUsIDE3IEphbiAyMDE5IDE0OjIwOjE0ICswMDAwClN1YmplY3Q6IFtQ QVRDSCAwMS8yMV0gYW1kLXhnYmU6IEZpeCBtZGlvIGFjY2VzcyBmb3Igbm9uLXplcm8gcG9ydHMg YW5kIGNsYXVzZQogNDUgUEhZcwoKWyBVcHN0cmVhbSBjb21taXQgNWFiMzEyMWJlZWI3NmFhNjA5 MDE5NWI2N2QyMzcxMTU4NjBkZDllYyBdCgpUaGUgWEdCRSBoYXJkd2FyZSBoYXMgc3VwcG9ydCBm b3IgcGVyZm9ybWluZyBNRElPIG9wZXJhdGlvbnMgdXNpbmcgYW4KTURJTyBjb21tYW5kIHJlcXVl c3QuIFRoZSBkcml2ZXIgbWlzdGFrZW5seSB1c2VzIHRoZSBtZGlvIHBvcnQgYWRkcmVzcwphcyB0 aGUgTURJTyBjb21tYW5kIHJlcXVlc3QgZGV2aWNlIGFkZHJlc3MgaW5zdGVhZCBvZiB0aGUgTURJ TyBjb21tYW5kCnJlcXVlc3QgcG9ydCBhZGRyZXNzLiBBZGRpdGlvbmFsbHksIHRoZSBkcml2ZXIg ZG9lcyBub3QgcHJvcGVybHkgY2hlY2sKZm9yIGFuZCBjcmVhdGUgYSBjbGF1c2UgNDUgTURJTyBj b21tYW5kLgoKQ2hlY2sgdGhlIHN1cHBsaWVkIE1ESU8gcmVnaXN0ZXIgdG8gZGV0ZXJtaW5lIGlm IHRoZSByZXF1ZXN0IGlzIGEgY2xhdXNlCjQ1IG9wZXJhdGlvbiAoTUlJX0FERFJfQzQ1KS4gRm9y IGEgY2xhdXNlIDQ1IG9wZXJhdGlvbiwgZXh0cmFjdCB0aGUgZGV2aWNlCmFkZHJlc3MgYW5kIHJl Z2lzdGVyIG51bWJlciBmcm9tIHRoZSBzdXBwbGllZCBNRElPIHJlZ2lzdGVyIGFuZCB1c2UgdGhl bQp0byBzZXQgdGhlIE1ESU8gY29tbWFuZCByZXF1ZXN0IGRldmljZSBhZGRyZXNzIGFuZCByZWdp c3RlciBudW1iZXIgZmllbGRzLgpGb3IgYSBjbGF1c2UgMjIgb3BlcmF0aW9uLCB0aGUgTURJTyBy ZXF1ZXN0IGRldmljZSBhZGRyZXNzIGlzIHNldCB0byB6ZXJvCmFuZCB0aGUgTURJTyBjb21tYW5k IHJlcXVlc3QgcmVnaXN0ZXIgbnVtYmVyIGlzIHNldCB0byB0aGUgc3VwcGxpZWQgTURJTwpyZWdp c3Rlci4gSW4gZWl0aGVyIGNhc2UsIHRoZSBzdXBwbGllZCBNRElPIHBvcnQgYWRkcmVzcyBpcyB1 c2VkIGFzIHRoZQpNRElPIGNvbW1hbmQgcmVxdWVzdCBwb3J0IGFkZHJlc3MuCgpGaXhlczogNzMy ZjJhYjdhZmI5ICgiYW1kLXhnYmU6IEFkZCBzdXBwb3J0IGZvciBNRElPIGF0dGFjaGVkIFBIWXMi KQpTaWduZWQtb2ZmLWJ5OiBUb20gTGVuZGFja3kgPHRob21hcy5sZW5kYWNreUBhbWQuY29tPgpU ZXN0ZWQtYnk6IFNoeWFtIFN1bmRhciBTIEsgPFNoeWFtLXN1bmRhci5TLWtAYW1kLmNvbT4KU2ln bmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRy aXZlcnMvbmV0L2V0aGVybmV0L2FtZC94Z2JlL3hnYmUtY29tbW9uLmggfCAgMiAtLQogZHJpdmVy cy9uZXQvZXRoZXJuZXQvYW1kL3hnYmUveGdiZS1kZXYuYyAgICB8IDIyICsrKysrKysrKysrKysr Ky0tLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCAxNiBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC94Z2JlL3hnYmUtY29tbW9u LmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQveGdiZS94Z2JlLWNvbW1vbi5oCmluZGV4IGQy NzJkYzY5ODRhYy4uYjQwZDQzNzdjYzcxIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5l dC9hbWQveGdiZS94Z2JlLWNvbW1vbi5oCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC94 Z2JlL3hnYmUtY29tbW9uLmgKQEAgLTQzMSw4ICs0MzEsNiBAQAogI2RlZmluZSBNQUNfTURJT1ND QVJfUEFfV0lEVEgJCTUKICNkZWZpbmUgTUFDX01ESU9TQ0FSX1JBX0lOREVYCQkwCiAjZGVmaW5l IE1BQ19NRElPU0NBUl9SQV9XSURUSAkJMTYKLSNkZWZpbmUgTUFDX01ESU9TQ0FSX1JFR19JTkRF WAkJMAotI2RlZmluZSBNQUNfTURJT1NDQVJfUkVHX1dJRFRICQkyMQogI2RlZmluZSBNQUNfTURJ T1NDQ0RSX0JVU1lfSU5ERVgJMjIKICNkZWZpbmUgTUFDX01ESU9TQ0NEUl9CVVNZX1dJRFRICTEK ICNkZWZpbmUgTUFDX01ESU9TQ0NEUl9DTURfSU5ERVgJCTE2CmRpZmYgLS1naXQgYS9kcml2ZXJz L25ldC9ldGhlcm5ldC9hbWQveGdiZS94Z2JlLWRldi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQv YW1kL3hnYmUveGdiZS1kZXYuYwppbmRleCAxZTkyOWExZTRjYTcuLjQ2NjYwODRlZGExNiAxMDA2 NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3hnYmUveGdiZS1kZXYuYworKysgYi9k cml2ZXJzL25ldC9ldGhlcm5ldC9hbWQveGdiZS94Z2JlLWRldi5jCkBAIC0xMjg0LDYgKzEyODQs MjAgQEAgc3RhdGljIHZvaWQgeGdiZV93cml0ZV9tbWRfcmVncyhzdHJ1Y3QgeGdiZV9wcnZfZGF0 YSAqcGRhdGEsIGludCBwcnRhZCwKIAl9CiB9CiAKK3N0YXRpYyB1bnNpZ25lZCBpbnQgeGdiZV9j cmVhdGVfbWRpb19zY2EoaW50IHBvcnQsIGludCByZWcpCit7CisJdW5zaWduZWQgaW50IG1kaW9f c2NhLCBkYTsKKworCWRhID0gKHJlZyAmIE1JSV9BRERSX0M0NSkgPyByZWcgPj4gMTYgOiAwOwor CisJbWRpb19zY2EgPSAwOworCVhHTUFDX1NFVF9CSVRTKG1kaW9fc2NhLCBNQUNfTURJT1NDQVIs IFJBLCByZWcpOworCVhHTUFDX1NFVF9CSVRTKG1kaW9fc2NhLCBNQUNfTURJT1NDQVIsIFBBLCBw b3J0KTsKKwlYR01BQ19TRVRfQklUUyhtZGlvX3NjYSwgTUFDX01ESU9TQ0FSLCBEQSwgZGEpOwor CisJcmV0dXJuIG1kaW9fc2NhOworfQorCiBzdGF0aWMgaW50IHhnYmVfd3JpdGVfZXh0X21paV9y ZWdzKHN0cnVjdCB4Z2JlX3Bydl9kYXRhICpwZGF0YSwgaW50IGFkZHIsCiAJCQkJICAgaW50IHJl ZywgdTE2IHZhbCkKIHsKQEAgLTEyOTEsOSArMTMwNSw3IEBAIHN0YXRpYyBpbnQgeGdiZV93cml0 ZV9leHRfbWlpX3JlZ3Moc3RydWN0IHhnYmVfcHJ2X2RhdGEgKnBkYXRhLCBpbnQgYWRkciwKIAog CXJlaW5pdF9jb21wbGV0aW9uKCZwZGF0YS0+bWRpb19jb21wbGV0ZSk7CiAKLQltZGlvX3NjYSA9 IDA7Ci0JWEdNQUNfU0VUX0JJVFMobWRpb19zY2EsIE1BQ19NRElPU0NBUiwgUkVHLCByZWcpOwot CVhHTUFDX1NFVF9CSVRTKG1kaW9fc2NhLCBNQUNfTURJT1NDQVIsIERBLCBhZGRyKTsKKwltZGlv X3NjYSA9IHhnYmVfY3JlYXRlX21kaW9fc2NhKGFkZHIsIHJlZyk7CiAJWEdNQUNfSU9XUklURShw ZGF0YSwgTUFDX01ESU9TQ0FSLCBtZGlvX3NjYSk7CiAKIAltZGlvX3NjY2QgPSAwOwpAQCAtMTMx Nyw5ICsxMzI5LDcgQEAgc3RhdGljIGludCB4Z2JlX3JlYWRfZXh0X21paV9yZWdzKHN0cnVjdCB4 Z2JlX3Bydl9kYXRhICpwZGF0YSwgaW50IGFkZHIsCiAKIAlyZWluaXRfY29tcGxldGlvbigmcGRh dGEtPm1kaW9fY29tcGxldGUpOwogCi0JbWRpb19zY2EgPSAwOwotCVhHTUFDX1NFVF9CSVRTKG1k aW9fc2NhLCBNQUNfTURJT1NDQVIsIFJFRywgcmVnKTsKLQlYR01BQ19TRVRfQklUUyhtZGlvX3Nj YSwgTUFDX01ESU9TQ0FSLCBEQSwgYWRkcik7CisJbWRpb19zY2EgPSB4Z2JlX2NyZWF0ZV9tZGlv X3NjYShhZGRyLCByZWcpOwogCVhHTUFDX0lPV1JJVEUocGRhdGEsIE1BQ19NRElPU0NBUiwgbWRp b19zY2EpOwogCiAJbWRpb19zY2NkID0gMDsKLS0gCjIuMjAuMQoKCkZyb20gNzA4NjYyZjkwNTcw YWUzMTI5NDM0ZjFhY2NlMWU0YTVlMDJiYzc2MSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogWXVuamlhbiBXYW5nIDx3YW5neXVuamlhbkBodWF3ZWkuY29tPgpEYXRlOiBUaHUsIDE3IEph biAyMDE5IDA5OjQ2OjQxICswODAwClN1YmplY3Q6IFtQQVRDSCAwMi8yMV0gbmV0OiBicmlkZ2U6 IEZpeCBldGhlcm5ldCBoZWFkZXIgcG9pbnRlciBiZWZvcmUgY2hlY2sKIHNrYiBmb3J3YXJkYWJs ZQoKWyBVcHN0cmVhbSBjb21taXQgMjhjMTM4MmZhMjhmMmUyZDlkMGQ2ZjI1YWU4NzliNWFmMmVj YmQwMyBdCgpUaGUgc2tiIGhlYWRlciBzaG91bGQgYmUgc2V0IHRvIGV0aGVybmV0IGhlYWRlciBi ZWZvcmUgdXNpbmcKaXNfc2tiX2ZvcndhcmRhYmxlLiBCZWNhdXNlIHRoZSBldGhlcm5ldCBoZWFk ZXIgbGVuZ3RoIGhhcyBiZWVuCmNvbnNpZGVyZWQgaW4gaXNfc2tiX2ZvcndhcmRhYmxlKGluY2x1 ZGluZyBkZXYtPmhhcmRfaGVhZGVyX2xlbgpsZW5ndGgpLgoKVG8gcmVwcm9kdWNlIHRoZSBpc3N1 ZToKMSwgYWRkIDIgcG9ydHMgb24gbGludXggYnJpZGdlIGJyIHVzaW5nIGZvbGxvd2luZyBjb21t YW5kczoKJCBicmN0bCBhZGRiciBicgokIGJyY3RsIGFkZGlmIGJyIGV0aDAKJCBicmN0bCBhZGRp ZiBiciBldGgxCjIsIHRoZSBNVFUgb2YgZXRoMCBhbmQgZXRoMSBpcyAxNTAwCjMsIHNlbmQgYSBw YWNrZXQoRGF0YSAxNDgwLCBVRFAgOCwgSVAgMjAsIEV0aGVybmV0IDE0LCBWTEFOIDQpCmZyb20g ZXRoMCB0byBldGgxCgpTbyB0aGUgZXhwZWN0IHJlc3VsdCBpcyBwYWNrZXQgbGFyZ2VyIHRoYW4g MTUwMCBjYW5ub3QgcGFzcyB0aHJvdWdoCmV0aDAgYW5kIGV0aDEuIEJ1dCBjdXJyZW50bHksIHRo ZSBwYWNrZXQgcGFzc2VzIHRocm91Z2ggc3VjY2VzcywgaXQKbWVhbnMgZXRoMSdzIE1UVSBsaW1p dCBkb2Vzbid0IHRha2UgZWZmZWN0LgoKRml4ZXM6IGY2MzY3YjQ2NjBkZCAoImJyaWRnZTogdXNl IGlzX3NrYl9mb3J3YXJkYWJsZSBpbiBmb3J3YXJkIHBhdGgiKQpDYzogYnJpZGdlQGxpc3RzLmxp bnV4LWZvdW5kYXRpb24ub3JnCkNjOiBOa29sYXkgQWxla3NhbmRyb3YgPG5pa29sYXlAY3VtdWx1 c25ldHdvcmtzLmNvbT4KQ2M6IFJvb3BhIFByYWJodSA8cm9vcGFAY3VtdWx1c25ldHdvcmtzLmNv bT4KQ2M6IFN0ZXBoZW4gSGVtbWluZ2VyIDxzdGVwaGVuQG5ldHdvcmtwbHVtYmVyLm9yZz4KU2ln bmVkLW9mZi1ieTogWXVuamlhbiBXYW5nIDx3YW5neXVuamlhbkBodWF3ZWkuY29tPgpTaWduZWQt b2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2Jy aWRnZS9icl9mb3J3YXJkLmMgfCA5ICsrKystLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0 aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvYnJpZGdlL2JyX2Zvcndh cmQuYyBiL25ldC9icmlkZ2UvYnJfZm9yd2FyZC5jCmluZGV4IDUzNzJlMjA0MmFkZi4uZDBmMjY2 OTZmMmZkIDEwMDY0NAotLS0gYS9uZXQvYnJpZGdlL2JyX2ZvcndhcmQuYworKysgYi9uZXQvYnJp ZGdlL2JyX2ZvcndhcmQuYwpAQCAtMzYsMTAgKzM2LDEwIEBAIHN0YXRpYyBpbmxpbmUgaW50IHNo b3VsZF9kZWxpdmVyKGNvbnN0IHN0cnVjdCBuZXRfYnJpZGdlX3BvcnQgKnAsCiAKIGludCBicl9k ZXZfcXVldWVfcHVzaF94bWl0KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNvY2sgKnNrLCBzdHJ1 Y3Qgc2tfYnVmZiAqc2tiKQogeworCXNrYl9wdXNoKHNrYiwgRVRIX0hMRU4pOwogCWlmICghaXNf c2tiX2ZvcndhcmRhYmxlKHNrYi0+ZGV2LCBza2IpKQogCQlnb3RvIGRyb3A7CiAKLQlza2JfcHVz aChza2IsIEVUSF9ITEVOKTsKIAlicl9kcm9wX2Zha2VfcnRhYmxlKHNrYik7CiAKIAlpZiAoc2ti LT5pcF9zdW1tZWQgPT0gQ0hFQ0tTVU1fUEFSVElBTCAmJgpAQCAtOTcsMTIgKzk3LDExIEBAIHN0 YXRpYyB2b2lkIF9fYnJfZm9yd2FyZChjb25zdCBzdHJ1Y3QgbmV0X2JyaWRnZV9wb3J0ICp0bywK IAkJbmV0ID0gZGV2X25ldChpbmRldik7CiAJfSBlbHNlIHsKIAkJaWYgKHVubGlrZWx5KG5ldHBv bGxfdHhfcnVubmluZyh0by0+YnItPmRldikpKSB7Ci0JCQlpZiAoIWlzX3NrYl9mb3J3YXJkYWJs ZShza2ItPmRldiwgc2tiKSkgeworCQkJc2tiX3B1c2goc2tiLCBFVEhfSExFTik7CisJCQlpZiAo IWlzX3NrYl9mb3J3YXJkYWJsZShza2ItPmRldiwgc2tiKSkKIAkJCQlrZnJlZV9za2Ioc2tiKTsK LQkJCX0gZWxzZSB7Ci0JCQkJc2tiX3B1c2goc2tiLCBFVEhfSExFTik7CisJCQllbHNlCiAJCQkJ YnJfbmV0cG9sbF9zZW5kX3NrYih0bywgc2tiKTsKLQkJCX0KIAkJCXJldHVybjsKIAkJfQogCQli cl9ob29rID0gTkZfQlJfTE9DQUxfT1VUOwotLSAKMi4yMC4xCgoKRnJvbSAwNDhmNzNlMjNlOTgx Y2QzMjhkMTI2ZTVhNTBhNDBmYjMyYjg4MjA0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBSb3NzIExhZ2Vyd2FsbCA8cm9zcy5sYWdlcndhbGxAY2l0cml4LmNvbT4KRGF0ZTogVGh1LCAx NyBKYW4gMjAxOSAxNTozNDozOCArMDAwMApTdWJqZWN0OiBbUEFUQ0ggMDMvMjFdIG5ldDogRml4 IHVzYWdlIG9mIHBza2JfdHJpbV9yY3N1bQoKWyBVcHN0cmVhbSBjb21taXQgNmM1N2YwNDU4MDIy Mjk4ZTRkYTE3MjljNjdiZDMzY2U0MWMxNGU3YSBdCgpJbiBjZXJ0YWluIGNhc2VzLCBwc2tiX3Ry aW1fcmNzdW0oKSBtYXkgY2hhbmdlIHNrYiBwb2ludGVycy4KUmVpbml0aWFsaXplIGhlYWRlciBw b2ludGVycyBhZnRlcndhcmRzIHRvIGF2b2lkIHBvdGVudGlhbAp1c2UtYWZ0ZXItZnJlZXMuIEFk ZCBhIG5vdGUgaW4gdGhlIGRvY3VtZW50YXRpb24gb2YKcHNrYl90cmltX3Jjc3VtKCkuIEZvdW5k IGJ5IEtBU0FOLgoKU2lnbmVkLW9mZi1ieTogUm9zcyBMYWdlcndhbGwgPHJvc3MubGFnZXJ3YWxs QGNpdHJpeC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9wcHAvcHBwb2UuYyAgICAgICAgICAgICAgICAgIHwg MSArCiBpbmNsdWRlL2xpbnV4L3NrYnVmZi5oICAgICAgICAgICAgICAgICAgIHwgMSArCiBuZXQv YnJpZGdlL2JyX25ldGZpbHRlcl9pcHY2LmMgICAgICAgICAgIHwgMSArCiBuZXQvYnJpZGdlL25l dGZpbHRlci9uZnRfcmVqZWN0X2JyaWRnZS5jIHwgMSArCiBuZXQvaXB2NC9pcF9pbnB1dC5jICAg ICAgICAgICAgICAgICAgICAgIHwgMSArCiA1IGZpbGVzIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygr KQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3BwcC9wcHBvZS5jIGIvZHJpdmVycy9uZXQvcHBw L3BwcG9lLmMKaW5kZXggNjJkYzU2NGIyNTFkLi5mMjI2MzlmMDExNmEgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvbmV0L3BwcC9wcHBvZS5jCisrKyBiL2RyaXZlcnMvbmV0L3BwcC9wcHBvZS5jCkBAIC00 NDUsNiArNDQ1LDcgQEAgc3RhdGljIGludCBwcHBvZV9yY3Yoc3RydWN0IHNrX2J1ZmYgKnNrYiwg c3RydWN0IG5ldF9kZXZpY2UgKmRldiwKIAlpZiAocHNrYl90cmltX3Jjc3VtKHNrYiwgbGVuKSkK IAkJZ290byBkcm9wOwogCisJcGggPSBwcHBvZV9oZHIoc2tiKTsKIAlwbiA9IHBwcG9lX3Blcm5l dChkZXZfbmV0KGRldikpOwogCiAJLyogTm90ZSB0aGF0IGdldF9pdGVtIGRvZXMgYSBzb2NrX2hv bGQoKSwgc28gc2tfcHBwb3gocG8pCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3NrYnVmZi5o IGIvaW5jbHVkZS9saW51eC9za2J1ZmYuaAppbmRleCA2MGEyZTc2NDY5ODUuLjVkNjllMjA4ZThk OSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9za2J1ZmYuaAorKysgYi9pbmNsdWRlL2xpbnV4 L3NrYnVmZi5oCkBAIC0zMTc4LDYgKzMxNzgsNyBAQCBpbnQgcHNrYl90cmltX3Jjc3VtX3Nsb3co c3RydWN0IHNrX2J1ZmYgKnNrYiwgdW5zaWduZWQgaW50IGxlbik7CiAgKgogICoJVGhpcyBpcyBl eGFjdGx5IHRoZSBzYW1lIGFzIHBza2JfdHJpbSBleGNlcHQgdGhhdCBpdCBlbnN1cmVzIHRoZQog ICoJY2hlY2tzdW0gb2YgcmVjZWl2ZWQgcGFja2V0cyBhcmUgc3RpbGwgdmFsaWQgYWZ0ZXIgdGhl IG9wZXJhdGlvbi4KKyAqCUl0IGNhbiBjaGFuZ2Ugc2tiIHBvaW50ZXJzLgogICovCiAKIHN0YXRp YyBpbmxpbmUgaW50IHBza2JfdHJpbV9yY3N1bShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1bnNpZ25l ZCBpbnQgbGVuKQpkaWZmIC0tZ2l0IGEvbmV0L2JyaWRnZS9icl9uZXRmaWx0ZXJfaXB2Ni5jIGIv bmV0L2JyaWRnZS9icl9uZXRmaWx0ZXJfaXB2Ni5jCmluZGV4IDk2YzA3MmU3MWVhMi4uNTgxMTIw ODg2M2I3IDEwMDY0NAotLS0gYS9uZXQvYnJpZGdlL2JyX25ldGZpbHRlcl9pcHY2LmMKKysrIGIv bmV0L2JyaWRnZS9icl9uZXRmaWx0ZXJfaXB2Ni5jCkBAIC0xMzEsNiArMTMxLDcgQEAgaW50IGJy X3ZhbGlkYXRlX2lwdjYoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCQkJ CQlJUFNUQVRTX01JQl9JTkRJU0NBUkRTKTsKIAkJCWdvdG8gZHJvcDsKIAkJfQorCQloZHIgPSBp cHY2X2hkcihza2IpOwogCX0KIAlpZiAoaGRyLT5uZXh0aGRyID09IE5FWFRIRFJfSE9QICYmIGJy X25mX2NoZWNrX2hiaF9sZW4oc2tiKSkKIAkJZ290byBkcm9wOwpkaWZmIC0tZ2l0IGEvbmV0L2Jy aWRnZS9uZXRmaWx0ZXIvbmZ0X3JlamVjdF9icmlkZ2UuYyBiL25ldC9icmlkZ2UvbmV0ZmlsdGVy L25mdF9yZWplY3RfYnJpZGdlLmMKaW5kZXggMDhjYmVkN2Q5NDBlLi40MTllOGVkZjIzYmEgMTAw NjQ0Ci0tLSBhL25ldC9icmlkZ2UvbmV0ZmlsdGVyL25mdF9yZWplY3RfYnJpZGdlLmMKKysrIGIv bmV0L2JyaWRnZS9uZXRmaWx0ZXIvbmZ0X3JlamVjdF9icmlkZ2UuYwpAQCAtMjI5LDYgKzIyOSw3 IEBAIHN0YXRpYyBib29sIHJlamVjdDZfYnJfY3N1bV9vayhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBp bnQgaG9vaykKIAkgICAgcHNrYl90cmltX3Jjc3VtKHNrYiwgbnRvaHMoaXA2aC0+cGF5bG9hZF9s ZW4pICsgc2l6ZW9mKCppcDZoKSkpCiAJCXJldHVybiBmYWxzZTsKIAorCWlwNmggPSBpcHY2X2hk cihza2IpOwogCXRob2ZmID0gaXB2Nl9za2lwX2V4dGhkcihza2IsICgodTgqKShpcDZoKzEpIC0g c2tiLT5kYXRhKSwgJnByb3RvLCAmZm8pOwogCWlmICh0aG9mZiA8IDAgfHwgdGhvZmYgPj0gc2ti LT5sZW4gfHwgKGZvICYgaHRvbnMofjB4NykpICE9IDApCiAJCXJldHVybiBmYWxzZTsKZGlmZiAt LWdpdCBhL25ldC9pcHY0L2lwX2lucHV0LmMgYi9uZXQvaXB2NC9pcF9pbnB1dC5jCmluZGV4IDI3 Yzg2M2Y2ZGQ4My4uNmY5NzdiMGZlZjU0IDEwMDY0NAotLS0gYS9uZXQvaXB2NC9pcF9pbnB1dC5j CisrKyBiL25ldC9pcHY0L2lwX2lucHV0LmMKQEAgLTQ4OSw2ICs0ODksNyBAQCBzdGF0aWMgc3Ry dWN0IHNrX2J1ZmYgKmlwX3Jjdl9jb3JlKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXQg Km5ldCkKIAkJZ290byBkcm9wOwogCX0KIAorCWlwaCA9IGlwX2hkcihza2IpOwogCXNrYi0+dHJh bnNwb3J0X2hlYWRlciA9IHNrYi0+bmV0d29ya19oZWFkZXIgKyBpcGgtPmlobCo0OwogCiAJLyog UmVtb3ZlIGFueSBkZWJyaXMgaW4gdGhlIHNvY2tldCBjb250cm9sIGJsb2NrICovCi0tIAoyLjIw LjEKCgpGcm9tIDg1YzNmYmY2NDE2MGJiZTQ1MjVkYzIzMWEwMmM1M2E2ZjExM2RhNGQgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFuZHJldyBMdW5uIDxhbmRyZXdAbHVubi5jaD4KRGF0 ZTogVGh1LCAxMCBKYW4gMjAxOSAyMjo0ODozNiArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMDQvMjFd IG5ldDogcGh5OiBtYXJ2ZWxsOiBFcnJhdGEgZm9yIG12ODhlNjM5MCBpbnRlcm5hbCBQSFlzCgpb IFVwc3RyZWFtIGNvbW1pdCA4Y2JjZGMxYTUxOTk5Y2E4MWRiMjk1NjYwOGI5MTdhYWNkMjhkODM3 IF0KClRoZSBWT0QgY2FuIGJlIG91dCBvZiBzcGVjLCB1bmxlc3Mgc29tZSBtYWdpYyB2YWx1ZSBp cyBwb2tlZCBpbnRvIGFuCnVuZG9jdW1lbnRlZCByZWdpc3RlciBpbiBhbiB1bmRvY3VtZW50ZWQg cGFnZS4KCkZpeGVzOiBlNGNmOGEzOGZjMGQgKCJuZXQ6IHBoeTogTWFydmVsbDogQWRkIG12ODhl NjM5MCBpbnRlcm5hbCBQSFkiKQpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgTHVubiA8YW5kcmV3QGx1 bm4uY2g+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5l dD4KLS0tCiBkcml2ZXJzL25ldC9waHkvbWFydmVsbC5jIHwgMzUgKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCAzNCBpbnNlcnRpb25zKCspLCAxIGRl bGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvcGh5L21hcnZlbGwuYyBiL2RyaXZl cnMvbmV0L3BoeS9tYXJ2ZWxsLmMKaW5kZXggZjdjNjljYTM0MDU2Li5iM2FhMDAyN2MwZmYgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3BoeS9tYXJ2ZWxsLmMKKysrIGIvZHJpdmVycy9uZXQvcGh5 L21hcnZlbGwuYwpAQCAtMTA2Myw2ICsxMDYzLDM5IEBAIHN0YXRpYyBpbnQgbTg4ZTExNDVfY29u ZmlnX2luaXQoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldikKIAlyZXR1cm4gMDsKIH0KIAorLyog VGhlIFZPRCBjYW4gYmUgb3V0IG9mIHNwZWNpZmljYXRpb24gb24gbGluayB1cC4gUG9rZSBhbgor ICogdW5kb2N1bWVudGVkIHJlZ2lzdGVyLCBpbiBhbiB1bmRvY3VtZW50ZWQgcGFnZSwgd2l0aCBh IG1hZ2ljIHZhbHVlCisgKiB0byBmaXggdGhpcy4KKyAqLworc3RhdGljIGludCBtODhlNjM5MF9l cnJhdGEoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldikKK3sKKwlpbnQgZXJyOworCisJZXJyID0g cGh5X3dyaXRlKHBoeWRldiwgTUlJX0JNQ1IsCisJCQlCTUNSX0FORU5BQkxFIHwgQk1DUl9TUEVF RDEwMDAgfCBCTUNSX0ZVTExEUExYKTsKKwlpZiAoZXJyKQorCQlyZXR1cm4gZXJyOworCisJdXNs ZWVwX3JhbmdlKDMwMCwgNDAwKTsKKworCWVyciA9IHBoeV93cml0ZV9wYWdlZChwaHlkZXYsIDB4 ZjgsIDB4MDgsIDB4MzYpOworCWlmIChlcnIpCisJCXJldHVybiBlcnI7CisKKwlyZXR1cm4gZ2Vu cGh5X3NvZnRfcmVzZXQocGh5ZGV2KTsKK30KKworc3RhdGljIGludCBtODhlNjM5MF9jb25maWdf YW5lZyhzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2KQoreworCWludCBlcnI7CisKKwllcnIgPSBt ODhlNjM5MF9lcnJhdGEocGh5ZGV2KTsKKwlpZiAoZXJyKQorCQlyZXR1cm4gZXJyOworCisJcmV0 dXJuIG04OGUxNTEwX2NvbmZpZ19hbmVnKHBoeWRldik7Cit9CisKIC8qKgogICogZmliZXJfbHBh X3RvX2V0aHRvb2xfbHBhX3QKICAqIEBscGE6IHZhbHVlIG9mIHRoZSBNSUlfTFBBIHJlZ2lzdGVy IGZvciBmaWJlciBsaW5rCkBAIC0yMzEzLDcgKzIzNDYsNyBAQCBzdGF0aWMgc3RydWN0IHBoeV9k cml2ZXIgbWFydmVsbF9kcml2ZXJzW10gPSB7CiAJCS5mbGFncyA9IFBIWV9IQVNfSU5URVJSVVBU LAogCQkucHJvYmUgPSBtODhlNjM5MF9wcm9iZSwKIAkJLmNvbmZpZ19pbml0ID0gJm1hcnZlbGxf Y29uZmlnX2luaXQsCi0JCS5jb25maWdfYW5lZyA9ICZtODhlMTUxMF9jb25maWdfYW5lZywKKwkJ LmNvbmZpZ19hbmVnID0gJm04OGU2MzkwX2NvbmZpZ19hbmVnLAogCQkucmVhZF9zdGF0dXMgPSAm bWFydmVsbF9yZWFkX3N0YXR1cywKIAkJLmFja19pbnRlcnJ1cHQgPSAmbWFydmVsbF9hY2tfaW50 ZXJydXB0LAogCQkuY29uZmlnX2ludHIgPSAmbWFydmVsbF9jb25maWdfaW50ciwKLS0gCjIuMjAu MQoKCkZyb20gMGRkMWI5MmQzN2Q5Yjg1M2U3NzE3ZmYzZWE3YTUyZWVjZjk1MTBjYiBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogVGhvbWFzIFBldGF6em9uaSA8dGhvbWFzLnBldGF6em9u aUBib290bGluLmNvbT4KRGF0ZTogV2VkLCAxNiBKYW4gMjAxOSAxMDo1Mzo1OCArMDEwMApTdWJq ZWN0OiBbUEFUQ0ggMDUvMjFdIG5ldDogcGh5OiBtZGlvX2J1czogYWRkIG1pc3NpbmcgZGV2aWNl X2RlbCgpIGluCiBtZGlvYnVzX3JlZ2lzdGVyKCkgZXJyb3IgaGFuZGxpbmcKClsgVXBzdHJlYW0g Y29tbWl0IGU0MGUyYTJlNzg2NjRmYTkwZWE0YjliZGY0YTg0ZWZjZTJmZWE5ZDkgXQoKVGhlIGN1 cnJlbnQgY29kZSBpbiBfX21kaW9idXNfcmVnaXN0ZXIoKSBkb2Vzbid0IHByb3Blcmx5IGhhbmRs ZQpmYWlsdXJlcyByZXR1cm5lZCBieSB0aGUgZGV2bV9ncGlvZF9nZXRfb3B0aW9uYWwoKSBjYWxs OiBpdCByZXR1cm5zCmltbWVkaWF0ZWx5LCB3aXRob3V0IHVucmVnaXN0ZXJpbmcgdGhlIGRldmlj ZSB0aGF0IHdhcyBhZGRlZCBieSB0aGUKY2FsbCB0byBkZXZpY2VfcmVnaXN0ZXIoKSBlYXJsaWVy IGluIHRoZSBmdW5jdGlvbi4KClRoaXMgbGVhdmVzIGEgc3RhbGUgZGV2aWNlLCB3aGljaCB0aGVu IGNhdXNlcyBhIE5VTEwgcG9pbnRlcgpkZXJlZmVyZW5jZSBpbiB0aGUgY29kZSB0aGF0IGhhbmRs ZXMgZGVmZXJyZWQgcHJvYmluZzoKClsgICAgMS40ODk5ODJdIFVuYWJsZSB0byBoYW5kbGUga2Vy bmVsIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSBhdCB2aXJ0dWFsIGFkZHJlc3MgMDAwMDAwNzQK WyAgICAxLjQ5ODExMF0gcGdkID0gKHB0cnZhbCkKWyAgICAxLjUwMDgzOF0gWzAwMDAwMDc0XSAq cGdkPTAwMDAwMDAwClsgICAgMS41MDQ0MzJdIEludGVybmFsIGVycm9yOiBPb3BzOiAxNyBbIzFd IFNNUCBBUk0KWyAgICAxLjUwOTEzM10gTW9kdWxlcyBsaW5rZWQgaW46ClsgICAgMS41MTIxOTJd IENQVTogMSBQSUQ6IDUxIENvbW06IGt3b3JrZXIvMTozIE5vdCB0YWludGVkIDQuMjAuMC0wMDAz OS1nM2I3M2E0Y2M4YjNlLWRpcnR5ICM5OQpbICAgIDEuNTIwNzA4XSBIYXJkd2FyZSBuYW1lOiBY aWxpbnggWnlucSBQbGF0Zm9ybQpbICAgIDEuNTI1MjYxXSBXb3JrcXVldWU6IGV2ZW50cyBkZWZl cnJlZF9wcm9iZV93b3JrX2Z1bmMKWyAgICAxLjUzMDQwM10gUEMgaXMgYXQga2xpc3RfbmV4dCsw eDEwLzB4ZmMKWyAgICAxLjUzNDQwM10gTFIgaXMgYXQgZGV2aWNlX2Zvcl9lYWNoX2NoaWxkKzB4 NDAvMHg5NApbICAgIDEuNTM5MzYxXSBwYyA6IFs8YzA2ODNmYmM+XSAgICBsciA6IFs8YzA0NTVk OTA+XSAgICBwc3I6IDIwMGUwMDEzClsgICAgMS41NDU2MjhdIHNwIDogY2VlZWZlNjggIGlwIDog MDAwMDAwMDEgIGZwIDogZmZmZmUwMDAKWyAgICAxLjU1MDg2M10gcjEwOiAwMDAwMDAwMCAgcjkg OiBjMGM2Njc5MCAgcjggOiAwMDAwMDAwMApbICAgIDEuNTU2MDc5XSByNyA6IGMwNDU3ZDQ0ICBy NiA6IDAwMDAwMDAwICByNSA6IGNlZWVmZThjICByNCA6IGNmYTJlYzc4ClsgICAgMS41NjI2MDRd IHIzIDogMDAwMDAwNjQgIHIyIDogYzA0NTdkNDQgIHIxIDogY2VlZWZlOGMgIHIwIDogMDAwMDAw NjQKWyAgICAxLjU2OTEyOV0gRmxhZ3M6IG56Q3YgIElSUXMgb24gIEZJUXMgb24gIE1vZGUgU1ZD XzMyICBJU0EgQVJNICBTZWdtZW50IG5vbmUKWyAgICAxLjU3NjI2M10gQ29udHJvbDogMThjNTM4 N2QgIFRhYmxlOiAwZWQ3ODA0YSAgREFDOiAwMDAwMDA1MQpbICAgIDEuNTgyMDEzXSBQcm9jZXNz IGt3b3JrZXIvMTozIChwaWQ6IDUxLCBzdGFjayBsaW1pdCA9IDB4KHB0cnZhbCkpClsgICAgMS41 ODgyODBdIFN0YWNrOiAoMHhjZWVlZmU2OCB0byAweGNlZWYwMDAwKQpbICAgIDEuNTkyNjMwXSBm ZTYwOiAgICAgICAgICAgICAgICAgICBjZmEyZWM3OCBjMGMwM2MwOCAwMDAwMDAwMCBjMDQ1N2Q0 NCAwMDAwMDAwMCBjMGM2Njc5MApbICAgIDEuNjAwODE0XSBmZTgwOiAwMDAwMDAwMCBjMDQ1NWQ5 MCBjZWVlZmVhYyAwMDAwMDA2NCAwMDAwMDAwMCAwZDdhNTQyZSBjZWU5ZDQ5NCBjZmEyZWM3OApb ICAgIDEuNjA4OTk4XSBmZWEwOiBjZmEyZWM3OCAwMDAwMDAwMCBjMDQ1N2Q0NCBjMDQ1N2Q3YyBj ZWU5ZDQ5NCBjMGMwM2MwOCAwMDAwMDAwMCBjMDQ1NWRhYwpbICAgIDEuNjE3MTgyXSBmZWMwOiBj Zjk4YmE0NCBjZjkyNmEwMCBjZWU5ZDQ5NCAwZDdhNTQyZSAwMDAwMDAwMCBjZjkzNWExMCBjZjkz NWExMCBjZjkzNWExMApbICAgIDEuNjI1MzY2XSBmZWUwOiBjMGM0ZTliOCBjMDQ1N2Q3YyBjMGM0 ZTgwYyAwMDAwMDAwMSBjZjkzNWExMCBjMDQ1N2RmNCBjZjkzNWExMCBjMGM0ZTk5YwpbICAgIDEu NjMzNTUwXSBmZjAwOiBjMGM0ZTk5YyBjMDQ1YTI3YyBjMGM0ZTljNCBjZWQ2M2Y4MCBjZmRlOGE4 MCBjZmRlYmMwMCAwMDAwMDAwMCBjMDEzODkzYwpbICAgIDEuNjQxNzM0XSBmZjIwOiBjZmRlOGE4 MCBjZmRlOGE4MCBjMDdiZDM1NCBjZWQ2M2Y4MCBjZWQ2M2Y5NCBjZmRlOGE4MCAwMDAwMDAwOCBj MGMwMmQwMApbICAgIDEuNjQ5OTM2XSBmZjQwOiBjZmRlOGE5OCBjZmRlOGE4MCBmZmZmZTAwMCBj MDEzOWEzMCBmZmZmZTAwMCBjMGM2NjI0YSBjMDdiZDM1NCAwMDAwMDAwMApbICAgIDEuNjU4MTIw XSBmZjYwOiBmZmZmZTAwMCBjZWU5ZTc4MCBjZWViZmUwMCAwMDAwMDAwMCBjZWVlZTAwMCBjZWQ2 M2Y4MCBjMDEzOTc4OCBjZjhjZGVhNApbICAgIDEuNjY2MzA0XSBmZjgwOiBjZWU5ZTc5YyBjMDEz ZTU5OCAwMDAwMDAwMSBjZWViZmUwMCBjMDEzZTQ0YyAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAw MApbICAgIDEuNjc0NDg4XSBmZmEwOiAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMCBjMDEwMTBl OCAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMApbICAgIDEuNjgyNjcxXSBmZmMw OiAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMCAw MDAwMDAwMCAwMDAwMDAwMApbICAgIDEuNjkwODU1XSBmZmUwOiAwMDAwMDAwMCAwMDAwMDAwMCAw MDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAxMyAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMApbICAg IDEuNjk5MDU4XSBbPGMwNjgzZmJjPl0gKGtsaXN0X25leHQpIGZyb20gWzxjMDQ1NWQ5MD5dIChk ZXZpY2VfZm9yX2VhY2hfY2hpbGQrMHg0MC8weDk0KQpbICAgIDEuNzA3MjQxXSBbPGMwNDU1ZDkw Pl0gKGRldmljZV9mb3JfZWFjaF9jaGlsZCkgZnJvbSBbPGMwNDU3ZDdjPl0gKGRldmljZV9yZW9y ZGVyX3RvX3RhaWwrMHgzOC8weDg4KQpbICAgIDEuNzE2NDc2XSBbPGMwNDU3ZDdjPl0gKGRldmlj ZV9yZW9yZGVyX3RvX3RhaWwpIGZyb20gWzxjMDQ1NWRhYz5dIChkZXZpY2VfZm9yX2VhY2hfY2hp bGQrMHg1Yy8weDk0KQpbICAgIDEuNzI1NjkyXSBbPGMwNDU1ZGFjPl0gKGRldmljZV9mb3JfZWFj aF9jaGlsZCkgZnJvbSBbPGMwNDU3ZDdjPl0gKGRldmljZV9yZW9yZGVyX3RvX3RhaWwrMHgzOC8w eDg4KQpbICAgIDEuNzM0OTI3XSBbPGMwNDU3ZDdjPl0gKGRldmljZV9yZW9yZGVyX3RvX3RhaWwp IGZyb20gWzxjMDQ1N2RmND5dIChkZXZpY2VfcG1fbW92ZV90b190YWlsKzB4MjgvMHg0MCkKWyAg ICAxLjc0NDIzNV0gWzxjMDQ1N2RmND5dIChkZXZpY2VfcG1fbW92ZV90b190YWlsKSBmcm9tIFs8 YzA0NWEyN2M+XSAoZGVmZXJyZWRfcHJvYmVfd29ya19mdW5jKzB4NTgvMHg4YykKWyAgICAxLjc1 Mzc0Nl0gWzxjMDQ1YTI3Yz5dIChkZWZlcnJlZF9wcm9iZV93b3JrX2Z1bmMpIGZyb20gWzxjMDEz ODkzYz5dIChwcm9jZXNzX29uZV93b3JrKzB4MjEwLzB4NGZjKQpbICAgIDEuNzYyODg4XSBbPGMw MTM4OTNjPl0gKHByb2Nlc3Nfb25lX3dvcmspIGZyb20gWzxjMDEzOWEzMD5dICh3b3JrZXJfdGhy ZWFkKzB4MmE4LzB4NWMwKQpbICAgIDEuNzcxMDcyXSBbPGMwMTM5YTMwPl0gKHdvcmtlcl90aHJl YWQpIGZyb20gWzxjMDEzZTU5OD5dIChrdGhyZWFkKzB4MTRjLzB4MTU0KQpbICAgIDEuNzc4NDgy XSBbPGMwMTNlNTk4Pl0gKGt0aHJlYWQpIGZyb20gWzxjMDEwMTBlOD5dIChyZXRfZnJvbV9mb3Jr KzB4MTQvMHgyYykKWyAgICAxLjc4NTY4OV0gRXhjZXB0aW9uIHN0YWNrKDB4Y2VlZWZmYjAgdG8g MHhjZWVlZmZmOCkKWyAgICAxLjc5MDczOV0gZmZhMDogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDAKWyAgICAxLjc5 ODkyM10gZmZjMDogMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDAg MDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDAKWyAgICAxLjgwNzEwN10gZmZlMDogMDAwMDAwMDAg MDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMTMgMDAwMDAwMDAKWyAgICAxLjgxMzcy NF0gQ29kZTogZTkyZDQ3ZjAgZTFhMDUwMDAgZTg5MDAwNDggZTFhMDAwMDMgKGU1OTM3MDEwKQpb ICAgIDEuODE5ODQ0XSAtLS1bIGVuZCB0cmFjZSAzYzJjMGM4YjY1Mzk5ZWM5IF0tLS0KClRoZSBh Y3R1YWwgZXJyb3IgdGhhdCB3ZSBoYWQgZnJvbSBkZXZtX2dwaW9kX2dldF9vcHRpb25hbCgpIHdh cwotRVBST0JFX0RFRkVSLCBkdWUgdG8gdGhlIEdQSU8gYmVpbmcgcHJvdmlkZWQgYnkgYSBkcml2 ZXIgdGhhdCBpcwpwcm9iZWQgbGF0ZXIgdGhhbiB0aGUgRXRoZXJuZXQgY29udHJvbGxlciBkcml2 ZXIuCgpUbyBmaXggdGhpcywgd2Ugc2ltcGx5IGFkZCB0aGUgbWlzc2luZyBkZXZpY2VfZGVsKCkg aW52b2NhdGlvbiBpbiB0aGUKZXJyb3IgcGF0aC4KCkZpeGVzOiA2OTIyNjg5NmFkNjM2ICgibWRp b19idXM6IElzc3VlIEdQSU8gUkVTRVQgdG8gUEhZcyIpClNpZ25lZC1vZmYtYnk6IFRob21hcyBQ ZXRhenpvbmkgPHRob21hcy5wZXRhenpvbmlAYm9vdGxpbi5jb20+ClJldmlld2VkLWJ5OiBBbmRy ZXcgTHVubiA8YW5kcmV3QGx1bm4uY2g+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8 ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9waHkvbWRpb19idXMuYyB8IDEg KwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9u ZXQvcGh5L21kaW9fYnVzLmMgYi9kcml2ZXJzL25ldC9waHkvbWRpb19idXMuYwppbmRleCA5OGY0 YjFmNzA2ZGYuLjE1YzU1ODZkNzRmZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvcGh5L21kaW9f YnVzLmMKKysrIGIvZHJpdmVycy9uZXQvcGh5L21kaW9fYnVzLmMKQEAgLTM5MSw2ICszOTEsNyBA QCBpbnQgX19tZGlvYnVzX3JlZ2lzdGVyKHN0cnVjdCBtaWlfYnVzICpidXMsIHN0cnVjdCBtb2R1 bGUgKm93bmVyKQogCWlmIChJU19FUlIoZ3Bpb2QpKSB7CiAJCWRldl9lcnIoJmJ1cy0+ZGV2LCAi bWlpX2J1cyAlcyBjb3VsZG4ndCBnZXQgcmVzZXQgR1BJT1xuIiwKIAkJCWJ1cy0+aWQpOworCQlk ZXZpY2VfZGVsKCZidXMtPmRldik7CiAJCXJldHVybiBQVFJfRVJSKGdwaW9kKTsKIAl9IGVsc2UJ aWYgKGdwaW9kKSB7CiAJCWJ1cy0+cmVzZXRfZ3Bpb2QgPSBncGlvZDsKLS0gCjIuMjAuMQoKCkZy b20gZjM4NTIzNjkwODAzZDJmN2U4NGRjYjQzZDZlMDczNmI4N2U1ZWYxOSBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogQ2FtZWxpYSBHcm96YSA8Y2FtZWxpYS5ncm96YUBueHAuY29tPgpE YXRlOiBUaHUsIDE3IEphbiAyMDE5IDE0OjIyOjM2ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNi8y MV0gbmV0OiBwaHk6IHBoeSBkcml2ZXIgZmVhdHVyZXMgYXJlIG1hbmRhdG9yeQoKWyBVcHN0cmVh bSBjb21taXQgM2U2NGNmN2E0MzVlZDA1MDBlM2FkYWE4YWFkYTIyNzJkM2FlOGFiYyBdCgpTaW5j ZSBwaHkgZHJpdmVyIGZlYXR1cmVzIGJlY2FtZSBhIGxpbmtfbW9kZSBiaXRtYXAsIHBoeSBkcml2 ZXJzIHRoYXQKZG9uJ3QgaGF2ZSBhIGxpc3Qgb2YgZmVhdHVyZXMgY29uZmlndXJlZCB3aWxsIGNh dXNlIHRoZSBrZXJuZWwgdG8gY3Jhc2gKd2hlbiBwcm9iZWQuCgpQcmV2ZW50IHRoZSBwaHkgZHJp dmVyIGZyb20gcmVnaXN0ZXJpbmcgaWYgdGhlIGZlYXR1cmVzIGZpZWxkIGlzIG1pc3NpbmcuCgpG aXhlczogNzE5NjU1YTE0OTcxICgibmV0OiBwaHk6IFJlcGxhY2UgcGh5IGRyaXZlciBmZWF0dXJl cyB1MzIgd2l0aCBsaW5rX21vZGUgYml0bWFwIikKUmVwb3J0ZWQtYnk6IFNjb3R0IFdvb2QgPG9z c0BidXNlcnJvci5uZXQ+ClNpZ25lZC1vZmYtYnk6IENhbWVsaWEgR3JvemEgPGNhbWVsaWEuZ3Jv emFAbnhwLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxv ZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L3BoeS9waHlfZGV2aWNlLmMgfCA1ICsrKysrCiBpbmNs dWRlL2xpbnV4L3BoeS5oICAgICAgICAgIHwgNCArKy0tCiAyIGZpbGVzIGNoYW5nZWQsIDcgaW5z ZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9waHkv cGh5X2RldmljZS5jIGIvZHJpdmVycy9uZXQvcGh5L3BoeV9kZXZpY2UuYwppbmRleCAyYzMyYzc5 NWY1ZGQuLjhmZDNkZjg4NmEzMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvcGh5L3BoeV9kZXZp Y2UuYworKysgYi9kcml2ZXJzL25ldC9waHkvcGh5X2RldmljZS5jCkBAIC0xOTE3LDYgKzE5MTcs MTEgQEAgaW50IHBoeV9kcml2ZXJfcmVnaXN0ZXIoc3RydWN0IHBoeV9kcml2ZXIgKm5ld19kcml2 ZXIsIHN0cnVjdCBtb2R1bGUgKm93bmVyKQogewogCWludCByZXR2YWw7CiAKKwlpZiAoV0FSTl9P TighbmV3X2RyaXZlci0+ZmVhdHVyZXMpKSB7CisJCXByX2VycigiJXM6IERyaXZlciBmZWF0dXJl cyBhcmUgbWlzc2luZ1xuIiwgbmV3X2RyaXZlci0+bmFtZSk7CisJCXJldHVybiAtRUlOVkFMOwor CX0KKwogCW5ld19kcml2ZXItPm1kaW9kcnYuZmxhZ3MgfD0gTURJT19ERVZJQ0VfSVNfUEhZOwog CW5ld19kcml2ZXItPm1kaW9kcnYuZHJpdmVyLm5hbWUgPSBuZXdfZHJpdmVyLT5uYW1lOwogCW5l d19kcml2ZXItPm1kaW9kcnYuZHJpdmVyLmJ1cyA9ICZtZGlvX2J1c190eXBlOwpkaWZmIC0tZ2l0 IGEvaW5jbHVkZS9saW51eC9waHkuaCBiL2luY2x1ZGUvbGludXgvcGh5LmgKaW5kZXggY2Q2ZjYz N2NiYmZiLi5kY2EwYTA0YjZlMWUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvcGh5LmgKKysr IGIvaW5jbHVkZS9saW51eC9waHkuaApAQCAtNDkxLDggKzQ5MSw4IEBAIHN0cnVjdCBwaHlfZGV2 aWNlIHsKICAqICAgb25seSB3b3JrcyBmb3IgUEhZcyB3aXRoIElEcyB3aGljaCBtYXRjaCB0aGlz IGZpZWxkCiAgKiBuYW1lOiBUaGUgZnJpZW5kbHkgbmFtZSBvZiB0aGlzIFBIWSB0eXBlCiAgKiBw aHlfaWRfbWFzazogRGVmaW5lcyB0aGUgaW1wb3J0YW50IGJpdHMgb2YgdGhlIHBoeV9pZAotICog ZmVhdHVyZXM6IEEgbGlzdCBvZiBmZWF0dXJlcyAoc3BlZWQsIGR1cGxleCwgZXRjKSBzdXBwb3J0 ZWQKLSAqICAgYnkgdGhpcyBQSFkKKyAqIGZlYXR1cmVzOiBBIG1hbmRhdG9yeSBsaXN0IG9mIGZl YXR1cmVzIChzcGVlZCwgZHVwbGV4LCBldGMpCisgKiAgIHN1cHBvcnRlZCBieSB0aGlzIFBIWQog ICogZmxhZ3M6IEEgYml0ZmllbGQgZGVmaW5pbmcgY2VydGFpbiBvdGhlciBmZWF0dXJlcyB0aGlz IFBIWQogICogICBzdXBwb3J0cyAobGlrZSBpbnRlcnJ1cHRzKQogICoKLS0gCjIuMjAuMQoKCkZy b20gZjliYWYwOTFmODBjMjJhNDk5OGQ1MWJlNzEzYWZlNTAwZTdhNGNiNCBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogRGF2aWRlIENhcmF0dGkgPGRjYXJhdHRpQHJlZGhhdC5jb20+CkRh dGU6IFRodSwgMTAgSmFuIDIwMTkgMjA6MjE6MDIgKzAxMDAKU3ViamVjdDogW1BBVENIIDA3LzIx XSBuZXQvc2NoZWQ6IGFjdF90dW5uZWxfa2V5OiBmaXggbWVtb3J5IGxlYWsgaW4gY2FzZSBvZgog YWN0aW9uIHJlcGxhY2UKClsgVXBzdHJlYW0gY29tbWl0IDkxNzRjM2RmMWNkMTgxYzE0OTEzMTM4 ZDUwY2NiZTUzOWJiMDgzMzUgXQoKcnVubmluZyB0aGUgZm9sbG93aW5nIFREQyB0ZXN0IGNhc2Vz OgoKIDdhZmMgLSBSZXBsYWNlIHR1bm5lbF9rZXkgc2V0IGFjdGlvbiB3aXRoIGFsbCBwYXJhbWV0 ZXJzCiAzNjRkIC0gUmVwbGFjZSB0dW5uZWxfa2V5IHNldCBhY3Rpb24gd2l0aCBhbGwgcGFyYW1l dGVycyBhbmQgY29va2llCgppdCdzIHBvc3NpYmxlIHRvIHRyaWdnZXIga21lbWxlYWsgd2Fybmlu Z3MgbGlrZToKCiAgdW5yZWZlcmVuY2VkIG9iamVjdCAweGZmZmY5NDc5NzEyN2FiNDAgKHNpemUg MTkyKToKICBjb21tICJ0YyIsIHBpZCAzMjQ4LCBqaWZmaWVzIDQzMDA1NjUyOTMgKGFnZSAxMDA2 Ljg2MnMpCiAgaGV4IGR1bXAgKGZpcnN0IDMyIGJ5dGVzKToKICAgIDAwIDAwIDAwIDAwIDAwIDAw IDAwIDAwIGMwIDkzIGY5IDhhIGZmIGZmIGZmIGZmICAuLi4uLi4uLi4uLi4uLi4uCiAgICA0MSA4 NCBlZSA4OSBmZiBmZiBmZiBmZiAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAgQS4uLi4uLi4uLi4u Li4uLgogIGJhY2t0cmFjZToKICAgIFs8MDAwMDAwMDAxZTg1YjYxYz5dIHR1bm5lbF9rZXlfaW5p dCsweDMxZC8weDgyMCBbYWN0X3R1bm5lbF9rZXldCiAgICBbPDAwMDAwMDAwN2YzZjZlZTc+XSB0 Y2ZfYWN0aW9uX2luaXRfMSsweDM4NC8weDRjMAogICAgWzwwMDAwMDAwMGU4OWUzZGVkPl0gdGNm X2FjdGlvbl9pbml0KzB4MTJiLzB4MWEwCiAgICBbPDAwMDAwMDAwYzFjOGMwZjg+XSB0Y2ZfYWN0 aW9uX2FkZCsweDczLzB4MTcwCiAgICBbPDAwMDAwMDAwOTVhOWZjMjg+XSB0Y19jdGxfYWN0aW9u KzB4MTIyLzB4MTYwCiAgICBbPDAwMDAwMDAwNGJlYmVhYzU+XSBydG5ldGxpbmtfcmN2X21zZysw eDI2My8weDJkMAogICAgWzwwMDAwMDAwMDlmZDg2MmRkPl0gbmV0bGlua19yY3Zfc2tiKzB4NGEv MHgxMTAKICAgIFs8MDAwMDAwMDBiNTUxOTllNz5dIG5ldGxpbmtfdW5pY2FzdCsweDFhMC8weDI1 MAogICAgWzwwMDAwMDAwMDQ5OTZjZDIxPl0gbmV0bGlua19zZW5kbXNnKzB4MmMxLzB4M2MwCiAg ICBbPDAwMDAwMDAwNGQ2YTk0YjQ+XSBzb2NrX3NlbmRtc2crMHgzNi8weDQwCiAgICBbPDAwMDAw MDAwNWQ5ZjAyMDg+XSBfX19zeXNfc2VuZG1zZysweDI4MC8weDJmMAogICAgWzwwMDAwMDAwMGRl YzE5MDIzPl0gX19zeXNfc2VuZG1zZysweDVlLzB4YTAKICAgIFs8MDAwMDAwMDA0YjgyYWM4MT5d IGRvX3N5c2NhbGxfNjQrMHg1Yi8weDE4MAogICAgWzwwMDAwMDAwMGEwZjEyMDlhPl0gZW50cnlf U1lTQ0FMTF82NF9hZnRlcl9od2ZyYW1lKzB4NDQvMHhhOQogICAgWzwwMDAwMDAwMDI5MjZiMmFi Pl0gMHhmZmZmZmZmZmZmZmZmZmZmCgp3aGVuIHRoZSB0dW5uZWxfa2V5IGFjdGlvbiBpcyByZXBs YWNlZCwgdGhlIGtlcm5lbCBmb3JnZXRzIHRvIHJlbGVhc2UgdGhlCmRzdCBtZXRhZGF0YTogZW5z dXJlIHRoZXkgYXJlIHJlbGVhc2VkIGJ5IHR1bm5lbF9rZXlfaW5pdCgpLCB0aGUgc2FtZSB3YXkK aXQncyBkb25lIGluIHR1bm5lbF9rZXlfcmVsZWFzZSgpLgoKRml4ZXM6IGQwZjZkZDhhOTE0ZjQg KCJuZXQvc2NoZWQ6IEludHJvZHVjZSBhY3RfdHVubmVsX2tleSIpClNpZ25lZC1vZmYtYnk6IERh dmlkZSBDYXJhdHRpIDxkY2FyYXR0aUByZWRoYXQuY29tPgpBY2tlZC1ieTogQ29uZyBXYW5nIDx4 aXlvdS53YW5nY29uZ0BnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8 ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvc2NoZWQvYWN0X3R1bm5lbF9rZXkuYyB8IDE5 ICsrKysrKysrKysrLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxMSBpbnNlcnRpb25zKCspLCA4 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9hY3RfdHVubmVsX2tleS5jIGIv bmV0L3NjaGVkL2FjdF90dW5uZWxfa2V5LmMKaW5kZXggNjgxZjZmMDRlN2RhLi4wZjY2MDFmZGY4 ODkgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9hY3RfdHVubmVsX2tleS5jCisrKyBiL25ldC9zY2hl ZC9hY3RfdHVubmVsX2tleS5jCkBAIC0xOTcsNiArMTk3LDE1IEBAIHN0YXRpYyBjb25zdCBzdHJ1 Y3QgbmxhX3BvbGljeSB0dW5uZWxfa2V5X3BvbGljeVtUQ0FfVFVOTkVMX0tFWV9NQVggKyAxXSA9 IHsKIAlbVENBX1RVTk5FTF9LRVlfRU5DX1RUTF0gICAgICA9IHsgLnR5cGUgPSBOTEFfVTggfSwK IH07CiAKK3N0YXRpYyB2b2lkIHR1bm5lbF9rZXlfcmVsZWFzZV9wYXJhbXMoc3RydWN0IHRjZl90 dW5uZWxfa2V5X3BhcmFtcyAqcCkKK3sKKwlpZiAoIXApCisJCXJldHVybjsKKwlpZiAocC0+dGNm dF9hY3Rpb24gPT0gVENBX1RVTk5FTF9LRVlfQUNUX1NFVCkKKwkJZHN0X3JlbGVhc2UoJnAtPnRj ZnRfZW5jX21ldGFkYXRhLT5kc3QpOworCWtmcmVlX3JjdShwLCByY3UpOworfQorCiBzdGF0aWMg aW50IHR1bm5lbF9rZXlfaW5pdChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBubGF0dHIgKm5sYSwK IAkJCSAgIHN0cnVjdCBubGF0dHIgKmVzdCwgc3RydWN0IHRjX2FjdGlvbiAqKmEsCiAJCQkgICBp bnQgb3ZyLCBpbnQgYmluZCwgYm9vbCBydG5sX2hlbGQsCkBAIC0zNjAsOCArMzY5LDcgQEAgc3Rh dGljIGludCB0dW5uZWxfa2V5X2luaXQoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgbmxhdHRyICpu bGEsCiAJcmN1X3N3YXBfcHJvdGVjdGVkKHQtPnBhcmFtcywgcGFyYW1zX25ldywKIAkJCSAgIGxv Y2tkZXBfaXNfaGVsZCgmdC0+dGNmX2xvY2spKTsKIAlzcGluX3VubG9ja19iaCgmdC0+dGNmX2xv Y2spOwotCWlmIChwYXJhbXNfbmV3KQotCQlrZnJlZV9yY3UocGFyYW1zX25ldywgcmN1KTsKKwl0 dW5uZWxfa2V5X3JlbGVhc2VfcGFyYW1zKHBhcmFtc19uZXcpOwogCiAJaWYgKHJldCA9PSBBQ1Rf UF9DUkVBVEVEKQogCQl0Y2ZfaWRyX2luc2VydCh0biwgKmEpOwpAQCAtMzg1LDEyICszOTMsNyBA QCBzdGF0aWMgdm9pZCB0dW5uZWxfa2V5X3JlbGVhc2Uoc3RydWN0IHRjX2FjdGlvbiAqYSkKIAlz dHJ1Y3QgdGNmX3R1bm5lbF9rZXlfcGFyYW1zICpwYXJhbXM7CiAKIAlwYXJhbXMgPSByY3VfZGVy ZWZlcmVuY2VfcHJvdGVjdGVkKHQtPnBhcmFtcywgMSk7Ci0JaWYgKHBhcmFtcykgewotCQlpZiAo cGFyYW1zLT50Y2Z0X2FjdGlvbiA9PSBUQ0FfVFVOTkVMX0tFWV9BQ1RfU0VUKQotCQkJZHN0X3Jl bGVhc2UoJnBhcmFtcy0+dGNmdF9lbmNfbWV0YWRhdGEtPmRzdCk7Ci0KLQkJa2ZyZWVfcmN1KHBh cmFtcywgcmN1KTsKLQl9CisJdHVubmVsX2tleV9yZWxlYXNlX3BhcmFtcyhwYXJhbXMpOwogfQog CiBzdGF0aWMgaW50IHR1bm5lbF9rZXlfZ2VuZXZlX29wdHNfZHVtcChzdHJ1Y3Qgc2tfYnVmZiAq c2tiLAotLSAKMi4yMC4xCgoKRnJvbSBjODhlMzk1NTVhMzIzNDgwMWRlNTk3ZmI2YjQ4YjJjNDli N2JmM2Y5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBDb25nIFdhbmcgPHhpeW91Lndh bmdjb25nQGdtYWlsLmNvbT4KRGF0ZTogRnJpLCAxMSBKYW4gMjAxOSAxODo1NTo0MiAtMDgwMApT dWJqZWN0OiBbUEFUQ0ggMDgvMjFdIG5ldF9zY2hlZDogcmVmZXRjaCBza2IgcHJvdG9jb2wgZm9y IGVhY2ggZmlsdGVyCgpbIFVwc3RyZWFtIGNvbW1pdCBjZDBjNGU3MGZjMGNjZmE3MDVjZGY1NWVm YjI3NTE5Y2U5MzM3YTI2IF0KCk1hcnRpbiByZXBvcnRlZCBhIHNldCBvZiBmaWx0ZXJzIGRvbid0 IHdvcmsgYWZ0ZXIgY2hhbmdpbmcKZnJvbSByZWNsYXNzaWZ5IHRvIGNvbnRpbnVlLiBMb29raW5n IGludG8gdGhlIGNvZGUsIGl0Cmxvb2tzIGxpa2Ugc2tiIHByb3RvY29sIGlzIG5vdCBhbHdheXMg ZmV0Y2hlZCBmb3IgZWFjaAppdGVyYXRpb24gb2YgdGhlIGZpbHRlcnMuIEJ1dCwgYXMgZGVtb25z dHJhdGVkIGJ5IE1hcnRpbiwKVEMgYWN0aW9ucyBjb3VsZCBtb2RpZnkgc2tiLT5wcm90b2NvbCwg Zm9yIGV4YW1wbGUgYWN0X3ZsYW4sCnRoaXMgbWVhbnMgd2UgaGF2ZSB0byByZWZldGNoIHNrYiBw cm90b2NvbCBpbiBlYWNoIGl0ZXJhdGlvbiwKcmF0aGVyIHRoYW4gdXNpbmcgdGhlIG9uZSB3ZSBm ZXRjaCBpbiB0aGUgYmVnaW5uaW5nIG9mIHRoZSBsb29wLgoKVGhpcyBidWcgaXMgX25vdF8gaW50 cm9kdWNlZCBieSBjb21taXQgM2IzYWU4ODAyNjZkCigibmV0OiBzY2hlZDogY29uc29saWRhdGUg dGNfY2xhc3NpZnl7LF9jb21wYXR9IiksIHRlY2huaWNhbGx5LAppZiBhY3RfdmxhbiBpcyB0aGUg b25seSBhY3Rpb24gdGhhdCBtb2RpZmllcyBza2IgcHJvdG9jb2wsIHRoZW4KaXQgaXMgY29tbWl0 IGM3ZTJiOTY4OWVmOCAoInNjaGVkOiBpbnRyb2R1Y2UgdmxhbiBhY3Rpb24iKSB3aGljaAppbnRy b2R1Y2VkIHRoaXMgYnVnLgoKUmVwb3J0ZWQtYnk6IE1hcnRpbiBPbHNzb24gPG1hcnRpbi5vbHNz b24rbmV0ZGV2QHNlbnRvcnNlY3VyaXR5LmNvbT4KQ2M6IEphbWFsIEhhZGkgU2FsaW0gPGpoc0Bt b2phdGF0dS5jb20+CkNjOiBKaXJpIFBpcmtvIDxqaXJpQHJlc251bGxpLnVzPgpTaWduZWQtb2Zm LWJ5OiBDb25nIFdhbmcgPHhpeW91Lndhbmdjb25nQGdtYWlsLmNvbT4KQWNrZWQtYnk6IEphbWFs IEhhZGkgU2FsaW0gPGpoc0Btb2phdGF0dS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1p bGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvc2NoZWQvY2xzX2FwaS5jIHwgMyAr LS0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9uZXQvc2NoZWQvY2xzX2FwaS5jIGIvbmV0L3NjaGVkL2Nsc19hcGkuYwppbmRleCA3 MGYxNDRhYzVlMWQuLjIxNjdjNmNhNTVlMyAxMDA2NDQKLS0tIGEvbmV0L3NjaGVkL2Nsc19hcGku YworKysgYi9uZXQvc2NoZWQvY2xzX2FwaS5jCkBAIC05NjAsNyArOTYwLDYgQEAgc3RhdGljIGlu dCB0Y2ZfYmxvY2tfY2JfY2FsbChzdHJ1Y3QgdGNmX2Jsb2NrICpibG9jaywgZW51bSB0Y19zZXR1 cF90eXBlIHR5cGUsCiBpbnQgdGNmX2NsYXNzaWZ5KHN0cnVjdCBza19idWZmICpza2IsIGNvbnN0 IHN0cnVjdCB0Y2ZfcHJvdG8gKnRwLAogCQkgc3RydWN0IHRjZl9yZXN1bHQgKnJlcywgYm9vbCBj b21wYXRfbW9kZSkKIHsKLQlfX2JlMTYgcHJvdG9jb2wgPSB0Y19za2JfcHJvdG9jb2woc2tiKTsK ICNpZmRlZiBDT05GSUdfTkVUX0NMU19BQ1QKIAljb25zdCBpbnQgbWF4X3JlY2xhc3NpZnlfbG9v cCA9IDQ7CiAJY29uc3Qgc3RydWN0IHRjZl9wcm90byAqb3JpZ190cCA9IHRwOwpAQCAtOTcwLDYg Kzk2OSw3IEBAIGludCB0Y2ZfY2xhc3NpZnkoc3RydWN0IHNrX2J1ZmYgKnNrYiwgY29uc3Qgc3Ry dWN0IHRjZl9wcm90byAqdHAsCiByZWNsYXNzaWZ5OgogI2VuZGlmCiAJZm9yICg7IHRwOyB0cCA9 IHJjdV9kZXJlZmVyZW5jZV9iaCh0cC0+bmV4dCkpIHsKKwkJX19iZTE2IHByb3RvY29sID0gdGNf c2tiX3Byb3RvY29sKHNrYik7CiAJCWludCBlcnI7CiAKIAkJaWYgKHRwLT5wcm90b2NvbCAhPSBw cm90b2NvbCAmJgpAQCAtMTAwMiw3ICsxMDAyLDYgQEAgaW50IHRjZl9jbGFzc2lmeShzdHJ1Y3Qg c2tfYnVmZiAqc2tiLCBjb25zdCBzdHJ1Y3QgdGNmX3Byb3RvICp0cCwKIAl9CiAKIAl0cCA9IGZp cnN0X3RwOwotCXByb3RvY29sID0gdGNfc2tiX3Byb3RvY29sKHNrYik7CiAJZ290byByZWNsYXNz aWZ5OwogI2VuZGlmCiB9Ci0tIAoyLjIwLjEKCgpGcm9tIDMxYmE4M2E4ODNkMDFjNWI2YmMxZjZm ZTdkZjMxNzlhMTI2OWQ4YzcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFJvc3MgTGFn ZXJ3YWxsIDxyb3NzLmxhZ2Vyd2FsbEBjaXRyaXguY29tPgpEYXRlOiBNb24sIDE0IEphbiAyMDE5 IDA5OjE2OjU2ICswMDAwClN1YmplY3Q6IFtQQVRDSCAwOS8yMV0gb3BlbnZzd2l0Y2g6IEF2b2lk IE9PQiByZWFkIHdoZW4gcGFyc2luZyBmbG93IG5sYXR0cnMKClsgVXBzdHJlYW0gY29tbWl0IDA0 YTRhZjMzNGI5NzE4MTRlZWRmNGU0YTQxMzM0M2FkMzI4N2Q5YTkgXQoKRm9yIG5lc3RlZCBhbmQg dmFyaWFibGUgYXR0cmlidXRlcywgdGhlIGV4cGVjdGVkIGxlbmd0aCBvZiBhbiBhdHRyaWJ1dGUK aXMgbm90IGtub3duIGFuZCBtYXJrZWQgYnkgYSBuZWdhdGl2ZSBudW1iZXIuICBUaGlzIHJlc3Vs dHMgaW4gYW4gT09CCnJlYWQgd2hlbiB0aGUgZXhwZWN0ZWQgbGVuZ3RoIGlzIGxhdGVyIHVzZWQg dG8gY2hlY2sgaWYgdGhlIGF0dHJpYnV0ZSBpcwphbGwgemVyb3MuIEZpeCB0aGlzIGJ5IHVzaW5n IHRoZSBhY3R1YWwgbGVuZ3RoIG9mIHRoZSBhdHRyaWJ1dGUgcmF0aGVyCnRoYW4gdGhlIGV4cGVj dGVkIGxlbmd0aC4KClNpZ25lZC1vZmYtYnk6IFJvc3MgTGFnZXJ3YWxsIDxyb3NzLmxhZ2Vyd2Fs bEBjaXRyaXguY29tPgpBY2tlZC1ieTogUHJhdmluIEIgU2hlbGFyIDxwc2hlbGFyQG92bi5vcmc+ ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0t CiBuZXQvb3BlbnZzd2l0Y2gvZmxvd19uZXRsaW5rLmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwg MSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvb3BlbnZzd2l0 Y2gvZmxvd19uZXRsaW5rLmMgYi9uZXQvb3BlbnZzd2l0Y2gvZmxvd19uZXRsaW5rLmMKaW5kZXgg ODY1ZWNlZjY4MTk2Li5jN2I2MDEwYjJjMDkgMTAwNjQ0Ci0tLSBhL25ldC9vcGVudnN3aXRjaC9m bG93X25ldGxpbmsuYworKysgYi9uZXQvb3BlbnZzd2l0Y2gvZmxvd19uZXRsaW5rLmMKQEAgLTUw MCw3ICs1MDAsNyBAQCBzdGF0aWMgaW50IF9fcGFyc2VfZmxvd19ubGF0dHJzKGNvbnN0IHN0cnVj dCBubGF0dHIgKmF0dHIsCiAJCQlyZXR1cm4gLUVJTlZBTDsKIAkJfQogCi0JCWlmICghbnogfHwg IWlzX2FsbF96ZXJvKG5sYV9kYXRhKG5sYSksIGV4cGVjdGVkX2xlbikpIHsKKwkJaWYgKCFueiB8 fCAhaXNfYWxsX3plcm8obmxhX2RhdGEobmxhKSwgbmxhX2xlbihubGEpKSkgewogCQkJYXR0cnMg fD0gMSA8PCB0eXBlOwogCQkJYVt0eXBlXSA9IG5sYTsKIAkJfQotLSAKMi4yMC4xCgoKRnJvbSBl ZDcyMDI0NWY5YjFiYmM0N2RkYzYzMWVmZWI3MjkxZTZmODljNjMyIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBKYXNvbiBXYW5nIDxqYXNvd2FuZ0ByZWRoYXQuY29tPgpEYXRlOiBXZWQs IDE2IEphbiAyMDE5IDE2OjU0OjQyICswODAwClN1YmplY3Q6IFtQQVRDSCAxMC8yMV0gdmhvc3Q6 IGxvZyBkaXJ0eSBwYWdlIGNvcnJlY3RseQoKWyBVcHN0cmVhbSBjb21taXQgY2M1ZTcxMDc1OTQ3 MGJjN2YzYzYxZDExZmQ1NDU4NmYxNWZkYmRmNCBdCgpWaG9zdCBkaXJ0eSBwYWdlIGxvZ2dpbmcg QVBJIGlzIGRlc2lnbmVkIHRvIHN5bmMgdGhyb3VnaCBHUEEuIEJ1dCB3ZQp0cnkgdG8gbG9nIEdJ T1ZBIHdoZW4gZGV2aWNlIElPVExCIGlzIGVuYWJsZWQuIFRoaXMgaXMgd3JvbmcgYW5kIG1heQps ZWFkIHRvIG1pc3NpbmcgZGF0YSBhZnRlciBtaWdyYXRpb24uCgpUbyBzb2x2ZSB0aGlzIGlzc3Vl LCB3aGVuIGxvZ2dpbmcgd2l0aCBkZXZpY2UgSU9UTEIgZW5hYmxlZCwgd2Ugd2lsbDoKCjEpIHJl dXNlIHRoZSBkZXZpY2UgSU9UTEIgdHJhbnNsYXRpb24gcmVzdWx0IG9mIEdJT1ZBLT5IVkEgbWFw cGluZyB0bwogICBnZXQgSFZBLCBmb3Igd3JpdGFibGUgZGVzY3JpcHRvciwgZ2V0IEhWQSB0aHJv dWdoIGlvdmVjLiBGb3IgdXNlZAogICByaW5nIHVwZGF0ZSwgdHJhbnNsYXRlIGl0cyBHSU9WQSB0 byBIVkEKMikgdHJhdmVyc2UgdGhlIEdQQS0+SFZBIG1hcHBpbmcgdG8gZ2V0IHRoZSBwb3NzaWJs ZSBHUEEgYW5kIGxvZwogICB0aHJvdWdoIEdQQS4gUGF5IGF0dGVudGlvbiB0aGlzIHJldmVyc2Ug bWFwcGluZyBpcyBub3QgZ3VhcmFudGVlZAogICB0byBiZSB1bmlxdWUsIHNvIHdlIHNob3VsZCBs b2cgZWFjaCBwb3NzaWJsZSBHUEEgaW4gdGhpcyBjYXNlLgoKVGhpcyBmaXggdGhlIGZhaWx1cmUg b2Ygc2NwIHRvIGd1ZXN0IGR1cmluZyBtaWdyYXRpb24uIEluIC1uZXh0LCB3ZQp3aWxsIHByb2Jh Ymx5IHN1cHBvcnQgcGFzc2luZyBHSU9WQS0+R1BBIGluc3RlYWQgb2YgR0lPVkEtPkhWQS4KCkZp eGVzOiA2YjFlNmNjNzg1NWIgKCJ2aG9zdDogbmV3IGRldmljZSBJT1RMQiBBUEkiKQpSZXBvcnRl ZC1ieTogSmludGFjayBMaW0gPGppbnRhY2tAY3MuY29sdW1iaWEuZWR1PgpDYzogSmludGFjayBM aW0gPGppbnRhY2tAY3MuY29sdW1iaWEuZWR1PgpTaWduZWQtb2ZmLWJ5OiBKYXNvbiBXYW5nIDxq YXNvd2FuZ0ByZWRoYXQuY29tPgpBY2tlZC1ieTogTWljaGFlbCBTLiBUc2lya2luIDxtc3RAcmVk aGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQu bmV0PgotLS0KIGRyaXZlcnMvdmhvc3QvbmV0LmMgICB8ICAzICstCiBkcml2ZXJzL3Zob3N0L3Zo b3N0LmMgfCA5NyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tCiBk cml2ZXJzL3Zob3N0L3Zob3N0LmggfCAgMyArLQogMyBmaWxlcyBjaGFuZ2VkLCA4NyBpbnNlcnRp b25zKCspLCAxNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Zob3N0L25ldC5j IGIvZHJpdmVycy92aG9zdC9uZXQuYwppbmRleCA0ZTY1NmY4OWNiMjIuLmE4NmFhNjVhZDY2ZCAx MDA2NDQKLS0tIGEvZHJpdmVycy92aG9zdC9uZXQuYworKysgYi9kcml2ZXJzL3Zob3N0L25ldC5j CkBAIC0xMDI0LDcgKzEwMjQsOCBAQCBzdGF0aWMgdm9pZCBoYW5kbGVfcngoc3RydWN0IHZob3N0 X25ldCAqbmV0KQogCQlpZiAobnZxLT5kb25lX2lkeCA+IFZIT1NUX05FVF9CQVRDSCkKIAkJCXZo b3N0X25ldF9zaWduYWxfdXNlZChudnEpOwogCQlpZiAodW5saWtlbHkodnFfbG9nKSkKLQkJCXZo b3N0X2xvZ193cml0ZSh2cSwgdnFfbG9nLCBsb2csIHZob3N0X2xlbik7CisJCQl2aG9zdF9sb2df d3JpdGUodnEsIHZxX2xvZywgbG9nLCB2aG9zdF9sZW4sCisJCQkJCXZxLT5pb3YsIGluKTsKIAkJ dG90YWxfbGVuICs9IHZob3N0X2xlbjsKIAkJaWYgKHVubGlrZWx5KHZob3N0X2V4Y2VlZHNfd2Vp Z2h0KCsrcmVjdl9wa3RzLCB0b3RhbF9sZW4pKSkgewogCQkJdmhvc3RfcG9sbF9xdWV1ZSgmdnEt PnBvbGwpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy92aG9zdC92aG9zdC5jIGIvZHJpdmVycy92aG9z dC92aG9zdC5jCmluZGV4IDU1ZTVhYTY2MmFkNS4uYzY2ZmM4MzA4YjVlIDEwMDY0NAotLS0gYS9k cml2ZXJzL3Zob3N0L3Zob3N0LmMKKysrIGIvZHJpdmVycy92aG9zdC92aG9zdC5jCkBAIC0xNzMz LDEzICsxNzMzLDg3IEBAIHN0YXRpYyBpbnQgbG9nX3dyaXRlKHZvaWQgX191c2VyICpsb2dfYmFz ZSwKIAlyZXR1cm4gcjsKIH0KIAorc3RhdGljIGludCBsb2dfd3JpdGVfaHZhKHN0cnVjdCB2aG9z dF92aXJ0cXVldWUgKnZxLCB1NjQgaHZhLCB1NjQgbGVuKQoreworCXN0cnVjdCB2aG9zdF91bWVt ICp1bWVtID0gdnEtPnVtZW07CisJc3RydWN0IHZob3N0X3VtZW1fbm9kZSAqdTsKKwl1NjQgc3Rh cnQsIGVuZCwgbCwgbWluOworCWludCByOworCWJvb2wgaGl0ID0gZmFsc2U7CisKKwl3aGlsZSAo bGVuKSB7CisJCW1pbiA9IGxlbjsKKwkJLyogTW9yZSB0aGFuIG9uZSBHUEFzIGNhbiBiZSBtYXBw ZWQgaW50byBhIHNpbmdsZSBIVkEuIFNvCisJCSAqIGl0ZXJhdGUgYWxsIHBvc3NpYmxlIHVtZW1z IGhlcmUgdG8gYmUgc2FmZS4KKwkJICovCisJCWxpc3RfZm9yX2VhY2hfZW50cnkodSwgJnVtZW0t PnVtZW1fbGlzdCwgbGluaykgeworCQkJaWYgKHUtPnVzZXJzcGFjZV9hZGRyID4gaHZhIC0gMSAr IGxlbiB8fAorCQkJICAgIHUtPnVzZXJzcGFjZV9hZGRyIC0gMSArIHUtPnNpemUgPCBodmEpCisJ CQkJY29udGludWU7CisJCQlzdGFydCA9IG1heCh1LT51c2Vyc3BhY2VfYWRkciwgaHZhKTsKKwkJ CWVuZCA9IG1pbih1LT51c2Vyc3BhY2VfYWRkciAtIDEgKyB1LT5zaXplLAorCQkJCSAgaHZhIC0g MSArIGxlbik7CisJCQlsID0gZW5kIC0gc3RhcnQgKyAxOworCQkJciA9IGxvZ193cml0ZSh2cS0+ bG9nX2Jhc2UsCisJCQkJICAgICAgdS0+c3RhcnQgKyBzdGFydCAtIHUtPnVzZXJzcGFjZV9hZGRy LAorCQkJCSAgICAgIGwpOworCQkJaWYgKHIgPCAwKQorCQkJCXJldHVybiByOworCQkJaGl0ID0g dHJ1ZTsKKwkJCW1pbiA9IG1pbihsLCBtaW4pOworCQl9CisKKwkJaWYgKCFoaXQpCisJCQlyZXR1 cm4gLUVGQVVMVDsKKworCQlsZW4gLT0gbWluOworCQlodmEgKz0gbWluOworCX0KKworCXJldHVy biAwOworfQorCitzdGF0aWMgaW50IGxvZ191c2VkKHN0cnVjdCB2aG9zdF92aXJ0cXVldWUgKnZx LCB1NjQgdXNlZF9vZmZzZXQsIHU2NCBsZW4pCit7CisJc3RydWN0IGlvdmVjIGlvdls2NF07CisJ aW50IGksIHJldDsKKworCWlmICghdnEtPmlvdGxiKQorCQlyZXR1cm4gbG9nX3dyaXRlKHZxLT5s b2dfYmFzZSwgdnEtPmxvZ19hZGRyICsgdXNlZF9vZmZzZXQsIGxlbik7CisKKwlyZXQgPSB0cmFu c2xhdGVfZGVzYyh2cSwgKHVpbnRwdHJfdCl2cS0+dXNlZCArIHVzZWRfb2Zmc2V0LAorCQkJICAg ICBsZW4sIGlvdiwgNjQsIFZIT1NUX0FDQ0VTU19XTyk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJl dDsKKworCWZvciAoaSA9IDA7IGkgPCByZXQ7IGkrKykgeworCQlyZXQgPSBsb2dfd3JpdGVfaHZh KHZxLAkodWludHB0cl90KWlvdltpXS5pb3ZfYmFzZSwKKwkJCQkgICAgaW92W2ldLmlvdl9sZW4p OworCQlpZiAocmV0KQorCQkJcmV0dXJuIHJldDsKKwl9CisKKwlyZXR1cm4gMDsKK30KKwogaW50 IHZob3N0X2xvZ193cml0ZShzdHJ1Y3Qgdmhvc3RfdmlydHF1ZXVlICp2cSwgc3RydWN0IHZob3N0 X2xvZyAqbG9nLAotCQkgICAgdW5zaWduZWQgaW50IGxvZ19udW0sIHU2NCBsZW4pCisJCSAgICB1 bnNpZ25lZCBpbnQgbG9nX251bSwgdTY0IGxlbiwgc3RydWN0IGlvdmVjICppb3YsIGludCBjb3Vu dCkKIHsKIAlpbnQgaSwgcjsKIAogCS8qIE1ha2Ugc3VyZSBkYXRhIHdyaXR0ZW4gaXMgc2VlbiBi ZWZvcmUgbG9nLiAqLwogCXNtcF93bWIoKTsKKworCWlmICh2cS0+aW90bGIpIHsKKwkJZm9yIChp ID0gMDsgaSA8IGNvdW50OyBpKyspIHsKKwkJCXIgPSBsb2dfd3JpdGVfaHZhKHZxLCAodWludHB0 cl90KWlvdltpXS5pb3ZfYmFzZSwKKwkJCQkJICBpb3ZbaV0uaW92X2xlbik7CisJCQlpZiAociA8 IDApCisJCQkJcmV0dXJuIHI7CisJCX0KKwkJcmV0dXJuIDA7CisJfQorCiAJZm9yIChpID0gMDsg aSA8IGxvZ19udW07ICsraSkgewogCQl1NjQgbCA9IG1pbihsb2dbaV0ubGVuLCBsZW4pOwogCQly ID0gbG9nX3dyaXRlKHZxLT5sb2dfYmFzZSwgbG9nW2ldLmFkZHIsIGwpOwpAQCAtMTc2OSw5ICsx ODQzLDggQEAgc3RhdGljIGludCB2aG9zdF91cGRhdGVfdXNlZF9mbGFncyhzdHJ1Y3Qgdmhvc3Rf dmlydHF1ZXVlICp2cSkKIAkJc21wX3dtYigpOwogCQkvKiBMb2cgdXNlZCBmbGFnIHdyaXRlLiAq LwogCQl1c2VkID0gJnZxLT51c2VkLT5mbGFnczsKLQkJbG9nX3dyaXRlKHZxLT5sb2dfYmFzZSwg dnEtPmxvZ19hZGRyICsKLQkJCSAgKHVzZWQgLSAodm9pZCBfX3VzZXIgKil2cS0+dXNlZCksCi0J CQkgIHNpemVvZiB2cS0+dXNlZC0+ZmxhZ3MpOworCQlsb2dfdXNlZCh2cSwgKHVzZWQgLSAodm9p ZCBfX3VzZXIgKil2cS0+dXNlZCksCisJCQkgc2l6ZW9mIHZxLT51c2VkLT5mbGFncyk7CiAJCWlm ICh2cS0+bG9nX2N0eCkKIAkJCWV2ZW50ZmRfc2lnbmFsKHZxLT5sb2dfY3R4LCAxKTsKIAl9CkBA IC0xNzg5LDkgKzE4NjIsOCBAQCBzdGF0aWMgaW50IHZob3N0X3VwZGF0ZV9hdmFpbF9ldmVudChz dHJ1Y3Qgdmhvc3RfdmlydHF1ZXVlICp2cSwgdTE2IGF2YWlsX2V2ZW50KQogCQlzbXBfd21iKCk7 CiAJCS8qIExvZyBhdmFpbCBldmVudCB3cml0ZSAqLwogCQl1c2VkID0gdmhvc3RfYXZhaWxfZXZl bnQodnEpOwotCQlsb2dfd3JpdGUodnEtPmxvZ19iYXNlLCB2cS0+bG9nX2FkZHIgKwotCQkJICAo dXNlZCAtICh2b2lkIF9fdXNlciAqKXZxLT51c2VkKSwKLQkJCSAgc2l6ZW9mICp2aG9zdF9hdmFp bF9ldmVudCh2cSkpOworCQlsb2dfdXNlZCh2cSwgKHVzZWQgLSAodm9pZCBfX3VzZXIgKil2cS0+ dXNlZCksCisJCQkgc2l6ZW9mICp2aG9zdF9hdmFpbF9ldmVudCh2cSkpOwogCQlpZiAodnEtPmxv Z19jdHgpCiAJCQlldmVudGZkX3NpZ25hbCh2cS0+bG9nX2N0eCwgMSk7CiAJfQpAQCAtMjE5MSwx MCArMjI2Myw4IEBAIHN0YXRpYyBpbnQgX192aG9zdF9hZGRfdXNlZF9uKHN0cnVjdCB2aG9zdF92 aXJ0cXVldWUgKnZxLAogCQkvKiBNYWtlIHN1cmUgZGF0YSBpcyBzZWVuIGJlZm9yZSBsb2cuICov CiAJCXNtcF93bWIoKTsKIAkJLyogTG9nIHVzZWQgcmluZyBlbnRyeSB3cml0ZS4gKi8KLQkJbG9n X3dyaXRlKHZxLT5sb2dfYmFzZSwKLQkJCSAgdnEtPmxvZ19hZGRyICsKLQkJCSAgICgodm9pZCBf X3VzZXIgKil1c2VkIC0gKHZvaWQgX191c2VyICopdnEtPnVzZWQpLAotCQkJICBjb3VudCAqIHNp emVvZiAqdXNlZCk7CisJCWxvZ191c2VkKHZxLCAoKHZvaWQgX191c2VyICopdXNlZCAtICh2b2lk IF9fdXNlciAqKXZxLT51c2VkKSwKKwkJCSBjb3VudCAqIHNpemVvZiAqdXNlZCk7CiAJfQogCW9s ZCA9IHZxLT5sYXN0X3VzZWRfaWR4OwogCW5ldyA9ICh2cS0+bGFzdF91c2VkX2lkeCArPSBjb3Vu dCk7CkBAIC0yMjM2LDkgKzIzMDYsOCBAQCBpbnQgdmhvc3RfYWRkX3VzZWRfbihzdHJ1Y3Qgdmhv c3RfdmlydHF1ZXVlICp2cSwgc3RydWN0IHZyaW5nX3VzZWRfZWxlbSAqaGVhZHMsCiAJCS8qIE1h a2Ugc3VyZSB1c2VkIGlkeCBpcyBzZWVuIGJlZm9yZSBsb2cuICovCiAJCXNtcF93bWIoKTsKIAkJ LyogTG9nIHVzZWQgaW5kZXggdXBkYXRlLiAqLwotCQlsb2dfd3JpdGUodnEtPmxvZ19iYXNlLAot CQkJICB2cS0+bG9nX2FkZHIgKyBvZmZzZXRvZihzdHJ1Y3QgdnJpbmdfdXNlZCwgaWR4KSwKLQkJ CSAgc2l6ZW9mIHZxLT51c2VkLT5pZHgpOworCQlsb2dfdXNlZCh2cSwgb2Zmc2V0b2Yoc3RydWN0 IHZyaW5nX3VzZWQsIGlkeCksCisJCQkgc2l6ZW9mIHZxLT51c2VkLT5pZHgpOwogCQlpZiAodnEt PmxvZ19jdHgpCiAJCQlldmVudGZkX3NpZ25hbCh2cS0+bG9nX2N0eCwgMSk7CiAJfQpkaWZmIC0t Z2l0IGEvZHJpdmVycy92aG9zdC92aG9zdC5oIGIvZHJpdmVycy92aG9zdC92aG9zdC5oCmluZGV4 IDQ2NmVmNzU0MjI5MS4uMWI2NzVkYWQ1ZTA1IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Zob3N0L3Zo b3N0LmgKKysrIGIvZHJpdmVycy92aG9zdC92aG9zdC5oCkBAIC0yMDUsNyArMjA1LDggQEAgYm9v bCB2aG9zdF92cV9hdmFpbF9lbXB0eShzdHJ1Y3Qgdmhvc3RfZGV2ICosIHN0cnVjdCB2aG9zdF92 aXJ0cXVldWUgKik7CiBib29sIHZob3N0X2VuYWJsZV9ub3RpZnkoc3RydWN0IHZob3N0X2RldiAq LCBzdHJ1Y3Qgdmhvc3RfdmlydHF1ZXVlICopOwogCiBpbnQgdmhvc3RfbG9nX3dyaXRlKHN0cnVj dCB2aG9zdF92aXJ0cXVldWUgKnZxLCBzdHJ1Y3Qgdmhvc3RfbG9nICpsb2csCi0JCSAgICB1bnNp Z25lZCBpbnQgbG9nX251bSwgdTY0IGxlbik7CisJCSAgICB1bnNpZ25lZCBpbnQgbG9nX251bSwg dTY0IGxlbiwKKwkJICAgIHN0cnVjdCBpb3ZlYyAqaW92LCBpbnQgY291bnQpOwogaW50IHZxX2lv dGxiX3ByZWZldGNoKHN0cnVjdCB2aG9zdF92aXJ0cXVldWUgKnZxKTsKIAogc3RydWN0IHZob3N0 X21zZ19ub2RlICp2aG9zdF9uZXdfbXNnKHN0cnVjdCB2aG9zdF92aXJ0cXVldWUgKnZxLCBpbnQg dHlwZSk7Ci0tIAoyLjIwLjEKCgpGcm9tIDJiMGI4Yjc3ODcxYTJlMjFhNzk5ZTI3Zjg0YmZlMzdl MjYzN2IxMzAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE5pciBEb3RhbiA8bmlyZEBt ZWxsYW5veC5jb20+CkRhdGU6IEZyaSwgMTggSmFuIDIwMTkgMTU6NTc6NTYgKzAwMDAKU3ViamVj dDogW1BBVENIIDExLzIxXSBtbHhzdzogcGNpOiBJbmNyZWFzZSBQQ0kgU1cgcmVzZXQgdGltZW91 dAoKWyBVcHN0cmVhbSBjb21taXQgZDJmMzcyYmEwOTE0ZTU3MjJhYzI4ZTE1ZjJlZDJkYjYxYmNm MGU0NCBdCgpTcGVjdHJ1bS0yIFBIWSBsYXllciBpbnRyb2R1Y2VzIGEgY2FsaWJyYXRpb24gcGVy aW9kIHdoaWNoIGlzIGEgcGFydCBvZiB0aGUKU3BlY3RydW0tMiBmaXJtd2FyZSBib290IHByb2Nl c3MuIEhlbmNlIGluY3JlYXNlIHRoZSBTVyB0aW1lb3V0IHdhaXRpbmcgZm9yCnRoZSBmaXJtd2Fy ZSB0byBjb21lIG91dCBvZiBib290LiBUaGlzIGRvZXMgbm90IGluY3JlYXNlIHN5c3RlbSBib290 IHRpbWUKaW4gY2FzZXMgd2hlcmUgdGhlIGZpcm13YXJlIFBIWSBjYWxpYnJhdGlvbiBwcm9jZXNz IGlzIGRvbmUgcXVpY2tseS4KCkZpeGVzOiBjM2FiNDM1NDY2ZDUgKCJtbHhzdzogc3BlY3RydW06 IEV4dGVuZCB0byBzdXBwb3J0IFNwZWN0cnVtLTIgQVNJQyIpClNpZ25lZC1vZmYtYnk6IE5pciBE b3RhbiA8bmlyZEBtZWxsYW5veC5jb20+CkFja2VkLWJ5OiBKaXJpIFBpcmtvIDxqaXJpQG1lbGxh bm94LmNvbT4KU2lnbmVkLW9mZi1ieTogSWRvIFNjaGltbWVsIDxpZG9zY2hAbWVsbGFub3guY29t PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0t LQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvcGNpX2h3LmggfCAyICstCiAx IGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQg YS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9wY2lfaHcuaCBiL2RyaXZlcnMv bmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L3BjaV9ody5oCmluZGV4IDgzZjQ1MmI3Y2NiYi4u MDkyYmQ2YjNhMjEwIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9t bHhzdy9wY2lfaHcuaAorKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9w Y2lfaHcuaApAQCAtMjcsNyArMjcsNyBAQAogCiAjZGVmaW5lIE1MWFNXX1BDSV9TV19SRVNFVAkJ CTB4RjAwMTAKICNkZWZpbmUgTUxYU1dfUENJX1NXX1JFU0VUX1JTVF9CSVQJCUJJVCgwKQotI2Rl ZmluZSBNTFhTV19QQ0lfU1dfUkVTRVRfVElNRU9VVF9NU0VDUwk1MDAwCisjZGVmaW5lIE1MWFNX X1BDSV9TV19SRVNFVF9USU1FT1VUX01TRUNTCTEzMDAwCiAjZGVmaW5lIE1MWFNXX1BDSV9TV19S RVNFVF9XQUlUX01TRUNTCQkxMDAKICNkZWZpbmUgTUxYU1dfUENJX0ZXX1JFQURZCQkJMHhBMTg0 NAogI2RlZmluZSBNTFhTV19QQ0lfRldfUkVBRFlfTUFTSwkJCTB4RkZGRgotLSAKMi4yMC4xCgoK RnJvbSBkZWMzNzUxNzVhMDU0MWQ5Y2Y2NmE5YTFmMjNhN2M1N2E2ODZlYjk5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBJZG8gU2NoaW1tZWwgPGlkb3NjaEBtZWxsYW5veC5jb20+CkRh dGU6IFdlZCwgOSBKYW4gMjAxOSAwOTo1NzozOSArMDAwMApTdWJqZWN0OiBbUEFUQ0ggMTIvMjFd IG5ldDogaXB2NDogRml4IG1lbW9yeSBsZWFrIGluIG5ldHdvcmsgbmFtZXNwYWNlCiBkaXNtYW50 bGUKClsgVXBzdHJlYW0gY29tbWl0IGY5N2Y0ZGQ4YjNiYjlkMDk5M2QyNDkxZTBmMjIwMjRjNjgx MDkxODQgXQoKSVB2NCByb3V0aW5nIHRhYmxlcyBhcmUgZmx1c2hlZCBpbiB0d28gY2FzZXM6Cgox LiBJbiByZXNwb25zZSB0byBldmVudHMgaW4gdGhlIG5ldGRldiBhbmQgaW5ldGFkZHIgbm90aWZp Y2F0aW9uIGNoYWlucwoyLiBXaGVuIGEgbmV0d29yayBuYW1lc3BhY2UgaXMgYmVpbmcgZGlzbWFu dGxlZAoKSW4gYm90aCBjYXNlcyBvbmx5IHJvdXRlcyBhc3NvY2lhdGVkIHdpdGggYSBkZWFkIG5l eHRob3AgZ3JvdXAgYXJlCmZsdXNoZWQuIEhvd2V2ZXIsIGEgbmV4dGhvcCBncm91cCB3aWxsIG9u bHkgYmUgbWFya2VkIGFzIGRlYWQgaW4gY2FzZSBpdAppcyBwb3B1bGF0ZWQgd2l0aCBhY3R1YWwg bmV4dGhvcHMgdXNpbmcgYSBuZXh0aG9wIGRldmljZS4gVGhpcyBpcyBub3QKdGhlIGNhc2Ugd2hl biB0aGUgcm91dGUgaW4gcXVlc3Rpb24gaXMgYW4gZXJyb3Igcm91dGUgKGUuZy4sCidibGFja2hv bGUnLCAndW5yZWFjaGFibGUnKS4KClRoZXJlZm9yZSwgd2hlbiBhIG5ldHdvcmsgbmFtZXNwYWNl IGlzIGJlaW5nIGRpc21hbnRsZWQgc3VjaCByb3V0ZXMgYXJlCm5vdCBmbHVzaGVkIGFuZCBsZWFr ZWQgWzFdLgoKVG8gcmVwcm9kdWNlOgojIGlwIG5ldG5zIGFkZCBibHVlCiMgaXAgLW4gYmx1ZSBy b3V0ZSBhZGQgdW5yZWFjaGFibGUgMTkyLjAuMi4wLzI0CiMgaXAgbmV0bnMgZGVsIGJsdWUKCkZp eCB0aGlzIGJ5IG5vdCBza2lwcGluZyBlcnJvciByb3V0ZXMgdGhhdCBhcmUgbm90IG1hcmtlZCB3 aXRoClJUTkhfRl9ERUFEIHdoZW4gZmx1c2hpbmcgdGhlIHJvdXRpbmcgdGFibGVzLgoKVG8gcHJl dmVudCB0aGUgZmx1c2hpbmcgb2Ygc3VjaCByb3V0ZXMgaW4gY2FzZSAjMSwgYWRkIGEgcGFyYW1l dGVyIHRvCmZpYl90YWJsZV9mbHVzaCgpIHRoYXQgaW5kaWNhdGVzIGlmIHRoZSB0YWJsZSBpcyBm bHVzaGVkIGFzIHBhcnQgb2YKbmFtZXNwYWNlIGRpc21hbnRsZSBvciBub3QuCgpOb3RlIHRoYXQg dGhpcyBwcm9ibGVtIGRvZXMgbm90IGV4aXN0IGluIElQdjYgc2luY2UgZXJyb3Igcm91dGVzIGFy ZQphc3NvY2lhdGVkIHdpdGggdGhlIGxvb3BiYWNrIGRldmljZS4KClsxXQp1bnJlZmVyZW5jZWQg b2JqZWN0IDB4ZmZmZjg4ODA2NjY1MDMzOCAoc2l6ZSA1Nik6CiAgY29tbSAiaXAiLCBwaWQgMTIw NiwgamlmZmllcyA0Mjk0Nzg2MDYzIChhZ2UgMjYuMjM1cykKICBoZXggZHVtcCAoZmlyc3QgMzIg Ynl0ZXMpOgogICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgYjAgMWMgNjIgNjEgODAgODggZmYg ZmYgIC4uLi4uLi4uLi5iYS4uLi4KICAgIGU4IDhiIGExIDY0IDgwIDg4IGZmIGZmIDAwIDA3IDAw IDA4IGZlIDAwIDAwIDAwICAuLi5kLi4uLi4uLi4uLi4uCiAgYmFja3RyYWNlOgogICAgWzwwMDAw MDAwMDg1NmVkMjdkPl0gaW5ldF9ydG1fbmV3cm91dGUrMHgxMjkvMHgyMjAKICAgIFs8MDAwMDAw MDBmY2RmYzAwYT5dIHJ0bmV0bGlua19yY3ZfbXNnKzB4Mzk3LzB4YTIwCiAgICBbPDAwMDAwMDAw Y2I4NTgwMWE+XSBuZXRsaW5rX3Jjdl9za2IrMHgxMzIvMHgzODAKICAgIFs8MDAwMDAwMDBlYmM5 OTFkMj5dIG5ldGxpbmtfdW5pY2FzdCsweDRjMC8weDY5MAogICAgWzwwMDAwMDAwMDE0ZjYyODc1 Pl0gbmV0bGlua19zZW5kbXNnKzB4OTI5LzB4ZTEwCiAgICBbPDAwMDAwMDAwYmFjOWQ5Njc+XSBz b2NrX3NlbmRtc2crMHhjOC8weDExMAogICAgWzwwMDAwMDAwMDIyM2U2NDg1Pl0gX19fc3lzX3Nl bmRtc2crMHg3N2EvMHg4ZjAKICAgIFs8MDAwMDAwMDAyZTk0Zjg4MD5dIF9fc3lzX3NlbmRtc2cr MHhmNy8weDI1MAogICAgWzwwMDAwMDAwMGNjYjFmYTcyPl0gZG9fc3lzY2FsbF82NCsweDE0ZC8w eDYxMAogICAgWzwwMDAwMDAwMGZmYmUzZGFlPl0gZW50cnlfU1lTQ0FMTF82NF9hZnRlcl9od2Zy YW1lKzB4NDkvMHhiZQogICAgWzwwMDAwMDAwMDNhOGI2MDViPl0gMHhmZmZmZmZmZmZmZmZmZmZm CnVucmVmZXJlbmNlZCBvYmplY3QgMHhmZmZmODg4MDYxNjIxYzg4IChzaXplIDQ4KToKICBjb21t ICJpcCIsIHBpZCAxMjA2LCBqaWZmaWVzIDQyOTQ3ODYwNjMgKGFnZSAyNi4yMzVzKQogIGhleCBk dW1wIChmaXJzdCAzMiBieXRlcyk6CiAgICA2YiA2YiA2YiA2YiA2YiA2YiA2YiA2YiA2YiA2YiA2 YiA2YiA2YiA2YiA2YiA2YiAga2tra2tra2tra2tra2trawogICAgNmIgNmIgNmIgNmIgNmIgNmIg NmIgNmIgZDggOGUgMjYgNWYgODAgODggZmYgZmYgIGtra2tra2trLi4mXy4uLi4KICBiYWNrdHJh Y2U6CiAgICBbPDAwMDAwMDAwNzMzNjA5ZTM+XSBmaWJfdGFibGVfaW5zZXJ0KzB4OTc4LzB4MTUw MAogICAgWzwwMDAwMDAwMDg1NmVkMjdkPl0gaW5ldF9ydG1fbmV3cm91dGUrMHgxMjkvMHgyMjAK ICAgIFs8MDAwMDAwMDBmY2RmYzAwYT5dIHJ0bmV0bGlua19yY3ZfbXNnKzB4Mzk3LzB4YTIwCiAg ICBbPDAwMDAwMDAwY2I4NTgwMWE+XSBuZXRsaW5rX3Jjdl9za2IrMHgxMzIvMHgzODAKICAgIFs8 MDAwMDAwMDBlYmM5OTFkMj5dIG5ldGxpbmtfdW5pY2FzdCsweDRjMC8weDY5MAogICAgWzwwMDAw MDAwMDE0ZjYyODc1Pl0gbmV0bGlua19zZW5kbXNnKzB4OTI5LzB4ZTEwCiAgICBbPDAwMDAwMDAw YmFjOWQ5Njc+XSBzb2NrX3NlbmRtc2crMHhjOC8weDExMAogICAgWzwwMDAwMDAwMDIyM2U2NDg1 Pl0gX19fc3lzX3NlbmRtc2crMHg3N2EvMHg4ZjAKICAgIFs8MDAwMDAwMDAyZTk0Zjg4MD5dIF9f c3lzX3NlbmRtc2crMHhmNy8weDI1MAogICAgWzwwMDAwMDAwMGNjYjFmYTcyPl0gZG9fc3lzY2Fs bF82NCsweDE0ZC8weDYxMAogICAgWzwwMDAwMDAwMGZmYmUzZGFlPl0gZW50cnlfU1lTQ0FMTF82 NF9hZnRlcl9od2ZyYW1lKzB4NDkvMHhiZQogICAgWzwwMDAwMDAwMDNhOGI2MDViPl0gMHhmZmZm ZmZmZmZmZmZmZmZmCgpGaXhlczogOGNjZWQ5ZWZmMWQ0ICgiW05FVE5TXTogRW5hYmxlIHJvdXRp bmcgY29uZmlndXJhdGlvbiBpbiBub24taW5pdGlhbCBuYW1lc3BhY2UuIikKU2lnbmVkLW9mZi1i eTogSWRvIFNjaGltbWVsIDxpZG9zY2hAbWVsbGFub3guY29tPgpSZXZpZXdlZC1ieTogRGF2aWQg QWhlcm4gPGRzYWhlcm5AZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIg PGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogaW5jbHVkZS9uZXQvaXBfZmliLmggICAgfCAgMiAr LQogbmV0L2lwdjQvZmliX2Zyb250ZW5kLmMgfCAgNCArKy0tCiBuZXQvaXB2NC9maWJfdHJpZS5j ICAgICB8IDE1ICsrKysrKysrKysrKy0tLQogMyBmaWxlcyBjaGFuZ2VkLCAxNSBpbnNlcnRpb25z KCspLCA2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L2lwX2ZpYi5oIGIv aW5jbHVkZS9uZXQvaXBfZmliLmgKaW5kZXggYzliN2IxMzY5MzlkLi45NWVlZDMyZDhjNmIgMTAw NjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L2lwX2ZpYi5oCisrKyBiL2luY2x1ZGUvbmV0L2lwX2ZpYi5o CkBAIC0yMzAsNyArMjMwLDcgQEAgaW50IGZpYl90YWJsZV9kZWxldGUoc3RydWN0IG5ldCAqLCBz dHJ1Y3QgZmliX3RhYmxlICosIHN0cnVjdCBmaWJfY29uZmlnICosCiAJCSAgICAgc3RydWN0IG5l dGxpbmtfZXh0X2FjayAqZXh0YWNrKTsKIGludCBmaWJfdGFibGVfZHVtcChzdHJ1Y3QgZmliX3Rh YmxlICp0YWJsZSwgc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJICAgc3RydWN0IG5ldGxpbmtfY2Fs bGJhY2sgKmNiKTsKLWludCBmaWJfdGFibGVfZmx1c2goc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qg ZmliX3RhYmxlICp0YWJsZSk7CitpbnQgZmliX3RhYmxlX2ZsdXNoKHN0cnVjdCBuZXQgKm5ldCwg c3RydWN0IGZpYl90YWJsZSAqdGFibGUsIGJvb2wgZmx1c2hfYWxsKTsKIHN0cnVjdCBmaWJfdGFi bGUgKmZpYl90cmllX3VubWVyZ2Uoc3RydWN0IGZpYl90YWJsZSAqbWFpbl90Yik7CiB2b2lkIGZp Yl90YWJsZV9mbHVzaF9leHRlcm5hbChzdHJ1Y3QgZmliX3RhYmxlICp0YWJsZSk7CiB2b2lkIGZp Yl9mcmVlX3RhYmxlKHN0cnVjdCBmaWJfdGFibGUgKnRiKTsKZGlmZiAtLWdpdCBhL25ldC9pcHY0 L2ZpYl9mcm9udGVuZC5jIGIvbmV0L2lwdjQvZmliX2Zyb250ZW5kLmMKaW5kZXggMDExMzk5M2U5 YjJjLi45NThlMTg1YThlOGQgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L2ZpYl9mcm9udGVuZC5jCisr KyBiL25ldC9pcHY0L2ZpYl9mcm9udGVuZC5jCkBAIC0yMDMsNyArMjAzLDcgQEAgc3RhdGljIHZv aWQgZmliX2ZsdXNoKHN0cnVjdCBuZXQgKm5ldCkKIAkJc3RydWN0IGZpYl90YWJsZSAqdGI7CiAK IAkJaGxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZSh0YiwgdG1wLCBoZWFkLCB0Yl9obGlzdCkKLQkJ CWZsdXNoZWQgKz0gZmliX3RhYmxlX2ZsdXNoKG5ldCwgdGIpOworCQkJZmx1c2hlZCArPSBmaWJf dGFibGVfZmx1c2gobmV0LCB0YiwgZmFsc2UpOwogCX0KIAogCWlmIChmbHVzaGVkKQpAQCAtMTM1 Nyw3ICsxMzU3LDcgQEAgc3RhdGljIHZvaWQgaXBfZmliX25ldF9leGl0KHN0cnVjdCBuZXQgKm5l dCkKIAogCQlobGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHRiLCB0bXAsIGhlYWQsIHRiX2hsaXN0 KSB7CiAJCQlobGlzdF9kZWwoJnRiLT50Yl9obGlzdCk7Ci0JCQlmaWJfdGFibGVfZmx1c2gobmV0 LCB0Yik7CisJCQlmaWJfdGFibGVfZmx1c2gobmV0LCB0YiwgdHJ1ZSk7CiAJCQlmaWJfZnJlZV90 YWJsZSh0Yik7CiAJCX0KIAl9CmRpZmYgLS1naXQgYS9uZXQvaXB2NC9maWJfdHJpZS5jIGIvbmV0 L2lwdjQvZmliX3RyaWUuYwppbmRleCA1YmMwYzg5ZTgxZTQuLjM5NTVhNmQ3ZWE2NiAxMDA2NDQK LS0tIGEvbmV0L2lwdjQvZmliX3RyaWUuYworKysgYi9uZXQvaXB2NC9maWJfdHJpZS5jCkBAIC0x ODU2LDcgKzE4NTYsNyBAQCB2b2lkIGZpYl90YWJsZV9mbHVzaF9leHRlcm5hbChzdHJ1Y3QgZmli X3RhYmxlICp0YikKIH0KIAogLyogQ2FsbGVyIG11c3QgaG9sZCBSVE5MLiAqLwotaW50IGZpYl90 YWJsZV9mbHVzaChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBmaWJfdGFibGUgKnRiKQoraW50IGZp Yl90YWJsZV9mbHVzaChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBmaWJfdGFibGUgKnRiLCBib29s IGZsdXNoX2FsbCkKIHsKIAlzdHJ1Y3QgdHJpZSAqdCA9IChzdHJ1Y3QgdHJpZSAqKXRiLT50Yl9k YXRhOwogCXN0cnVjdCBrZXlfdmVjdG9yICpwbiA9IHQtPmt2OwpAQCAtMTkwNCw4ICsxOTA0LDE3 IEBAIGludCBmaWJfdGFibGVfZmx1c2goc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgZmliX3RhYmxl ICp0YikKIAkJaGxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShmYSwgdG1wLCAmbi0+bGVhZiwgZmFf bGlzdCkgewogCQkJc3RydWN0IGZpYl9pbmZvICpmaSA9IGZhLT5mYV9pbmZvOwogCi0JCQlpZiAo IWZpIHx8ICEoZmktPmZpYl9mbGFncyAmIFJUTkhfRl9ERUFEKSB8fAotCQkJICAgIHRiLT50Yl9p ZCAhPSBmYS0+dGJfaWQpIHsKKwkJCWlmICghZmkgfHwgdGItPnRiX2lkICE9IGZhLT50Yl9pZCB8 fAorCQkJICAgICghKGZpLT5maWJfZmxhZ3MgJiBSVE5IX0ZfREVBRCkgJiYKKwkJCSAgICAgIWZp Yl9wcm9wc1tmYS0+ZmFfdHlwZV0uZXJyb3IpKSB7CisJCQkJc2xlbiA9IGZhLT5mYV9zbGVuOwor CQkJCWNvbnRpbnVlOworCQkJfQorCisJCQkvKiBEbyBub3QgZmx1c2ggZXJyb3Igcm91dGVzIGlm IG5ldHdvcmsgbmFtZXNwYWNlIGlzCisJCQkgKiBub3QgYmVpbmcgZGlzbWFudGxlZAorCQkJICov CisJCQlpZiAoIWZsdXNoX2FsbCAmJiBmaWJfcHJvcHNbZmEtPmZhX3R5cGVdLmVycm9yKSB7CiAJ CQkJc2xlbiA9IGZhLT5mYV9zbGVuOwogCQkJCWNvbnRpbnVlOwogCQkJfQotLSAKMi4yMC4xCgoK RnJvbSA4MDc3NWZmYzVlOGRkYzFjMGMwNGEyNTIxNGIwMmI2YjJkZTk2ZmY1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaXIgRG90YW4gPG5pcmRAbWVsbGFub3guY29tPgpEYXRlOiBG cmksIDE4IEphbiAyMDE5IDE1OjU3OjU5ICswMDAwClN1YmplY3Q6IFtQQVRDSCAxMy8yMV0gbWx4 c3c6IHNwZWN0cnVtX2ZpZDogVXBkYXRlIGR1bW15IEZJRCBpbmRleAoKWyBVcHN0cmVhbSBjb21t aXQgYTExZGNkNjQ5NzkxNWJhNzlkOTVlZjRmZTI1NDFhYWFjMjdmNjIwMSBdCgpXaGVuIHVzaW5n IGEgdGMgZmxvd2VyIGFjdGlvbiBvZiBlZ3Jlc3MgbWlycmVkIHJlZGlyZWN0LCB0aGUgZHJpdmVy IGFkZHMKYW4gaW1wbGljaXQgRklEIHNldHRpbmcgYWN0aW9uLiBUaGlzIGltcGxpY2l0IGFjdGlv biBzZXRzIGEgZHVtbXkgRklEIHRvCnRoZSBwYWNrZXQgYW5kIGlzIHVzZWQgYXMgcGFydCBvZiBh IGRlc2lnbiBmb3IgdHJhcHBpbmcgdW5tYXRjaGVkIGZsb3dzCmluIE9WUy4gIFdoaWxlIHRoaXMg aW1wbGljaXQgRklEIHNldHRpbmcgYWN0aW9uIGlzIHN1cHBvc2VkIHRvIGJlIGEgTk9QCndoZW4g YSByZWRpcmVjdCBhY3Rpb24gaXMgYWRkZWQsIGluIFNwZWN0cnVtLTIgdGhlIEZJRCByZWNvcmQg aXMKY29uc3VsdGVkIGFzIHRoZSBkdW1teSBGSUQgaW5kZXggaXMgYW4gODAyLjFEIEZJRCBpbmRl eCBhbmQgdGhlIHBhY2tldAppcyBkcm9wcGVkIGluc3RlYWQgb2YgYmVpbmcgcmVkaXJlY3RlZC4K ClNldCB0aGUgZHVtbXkgRklEIGluZGV4IHZhbHVlIHRvIGJlIHdpdGhpbiA4MDIuMVEgcmFuZ2Uu IFRoaXMgc2F0aXNmaWVzCmJvdGggU3BlY3RydW0tMSB3aGljaCBpZ25vcmVzIHRoZSBGSUQgYW5k IFNwZWN0cnVtLTIgd2hpY2ggaWRlbnRpZmllcyBpdAphcyBhbiA4MDIuMVEgRklEIGFuZCB3aWxs IHRoZW4gZm9sbG93IHRoZSByZWRpcmVjdCBhY3Rpb24uCgpGaXhlczogYzNhYjQzNTQ2NmQ1ICgi bWx4c3c6IHNwZWN0cnVtOiBFeHRlbmQgdG8gc3VwcG9ydCBTcGVjdHJ1bS0yIEFTSUMiKQpTaWdu ZWQtb2ZmLWJ5OiBOaXIgRG90YW4gPG5pcmRAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBJ ZG8gU2NoaW1tZWwgPGlkb3NjaEBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMu IE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9t ZWxsYW5veC9tbHhzdy9zcGVjdHJ1bV9maWQuYyB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIg aW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9l dGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bV9maWQuYyBiL2RyaXZlcnMvbmV0L2V0aGVy bmV0L21lbGxhbm94L21seHN3L3NwZWN0cnVtX2ZpZC5jCmluZGV4IDcxNWQyNGZmOTM3ZS4uNTYy YzQ0MjllZWM3IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhz dy9zcGVjdHJ1bV9maWQuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhz dy9zcGVjdHJ1bV9maWQuYwpAQCAtNjk2LDggKzY5Niw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg bWx4c3dfc3BfZmlkX29wcyBtbHhzd19zcF9maWRfZHVtbXlfb3BzID0gewogc3RhdGljIGNvbnN0 IHN0cnVjdCBtbHhzd19zcF9maWRfZmFtaWx5IG1seHN3X3NwX2ZpZF9kdW1teV9mYW1pbHkgPSB7 CiAJLnR5cGUJCQk9IE1MWFNXX1NQX0ZJRF9UWVBFX0RVTU1ZLAogCS5maWRfc2l6ZQkJPSBzaXpl b2Yoc3RydWN0IG1seHN3X3NwX2ZpZCksCi0JLnN0YXJ0X2luZGV4CQk9IE1MWFNXX1NQX1JGSURf QkFTRSAtIDEsCi0JLmVuZF9pbmRleAkJPSBNTFhTV19TUF9SRklEX0JBU0UgLSAxLAorCS5zdGFy dF9pbmRleAkJPSBWTEFOX05fVklEIC0gMSwKKwkuZW5kX2luZGV4CQk9IFZMQU5fTl9WSUQgLSAx LAogCS5vcHMJCQk9ICZtbHhzd19zcF9maWRfZHVtbXlfb3BzLAogfTsKIAotLSAKMi4yMC4xCgoK RnJvbSBlODlmNjQ5NTBhZjcxZjc5MzIwOGQ1ZWVmYTIzNDg3ZjgwNTFmMWU0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBJZG8gU2NoaW1tZWwgPGlkb3NjaEBtZWxsYW5veC5jb20+CkRh dGU6IEZyaSwgMTggSmFuIDIwMTkgMTU6NTc6NTUgKzAwMDAKU3ViamVjdDogW1BBVENIIDE0LzIx XSBtbHhzdzogcGNpOiBSaW5nIENRJ3MgZG9vcmJlbGwgYmVmb3JlIFJEUSdzCgpXaGVuIGEgcGFj a2V0IHNob3VsZCBiZSB0cmFwcGVkIHRvIHRoZSBDUFUgdGhlIGRldmljZSBjb25zdW1lcyBhIFdR RQood29yayBxdWV1ZSBlbGVtZW50KSBmcm9tIGFuIFJEUSAocmVjZWl2ZSBkZXNjcmlwdG9yIHF1 ZXVlKSBhbmQgY29waWVzCnRoZSBwYWNrZXQgdG8gdGhlIGFkZHJlc3Mgc3BlY2lmaWVkIGluIHRo ZSBXUUUuIFRoZSBkZXZpY2UgdGhlbiB0cmllcyB0bwpwb3N0IGEgQ1FFIChjb21wbGV0aW9uIHF1 ZXVlIGVsZW1lbnQpIHRoYXQgY29udGFpbnMgdmFyaW91cyBtZXRhZGF0YQooZS5nLiwgaW5ncmVz cyBwb3J0KSBhYm91dCB0aGUgcGFja2V0IHRvIGEgQ1EgKGNvbXBsZXRpb24gcXVldWUpLgoKSW4g Y2FzZSB0aGUgZGV2aWNlIG1hbmFnZWQgdG8gY29uc3VtZSBhIFdRRSwgYnV0IGRpZCBub3QgbWFu YWdlIHRvIHBvc3QKdGhlIGNvcnJlc3BvbmRpbmcgQ1FFLCBpdCB3aWxsIGdldCBzdHVjay4gVGhp cyB1bmxpa2VseSBzaXR1YXRpb24gY2FuIGJlCnRyaWdnZXJlZCBkdWUgdG8gdGhlIHNjaGVtZSB0 aGUgZHJpdmVyIGlzIGN1cnJlbnRseSB1c2luZyB0byBwcm9jZXNzCkNRRXMuCgpUaGUgZHJpdmVy IHdpbGwgY29uc3VtZSB1cCB0byA1MTIgQ1FFcyBhdCBhIHRpbWUgYW5kIGFmdGVyIHByb2Nlc3Np bmcKZWFjaCBjb3JyZXNwb25kaW5nIFdRRSBpdCB3aWxsIHJpbmcgdGhlIFJEUSdzIGRvb3JiZWxs LCBsZXR0aW5nIHRoZQpkZXZpY2Uga25vdyB0aGF0IGEgbmV3IFdRRSB3YXMgcG9zdGVkIGZvciBp dCB0byBjb25zdW1lLiBPbmx5IGFmdGVyCnByb2Nlc3NpbmcgYWxsIHRoZSBDUUVzICh1cCB0byA1 MTIpLCB0aGUgZHJpdmVyIHdpbGwgcmluZyB0aGUgQ1Encwpkb29yYmVsbCwgbGV0dGluZyB0aGUg ZGV2aWNlIGtub3cgdGhhdCBuZXcgb25lcyBjYW4gYmUgcG9zdGVkLgoKRml4IHRoaXMgYnkgaGF2 aW5nIHRoZSBkcml2ZXIgcmluZyB0aGUgQ1EncyBkb29yYmVsbCBmb3IgZXZlcnkgcHJvY2Vzc2Vk CkNRRSwgYnV0IGJlZm9yZSByaW5naW5nIHRoZSBSRFEncyBkb29yYmVsbC4gVGhpcyBndWFyYW50 ZWVzIHRoYXQKd2hlbmV2ZXIgd2UgcG9zdCBhIG5ldyBXUUUsIHRoZXJlIGlzIGEgY29ycmVzcG9u ZGluZyBDUUUgYXZhaWxhYmxlLiBDb3B5CnRoZSBjdXJyZW50bHkgcHJvY2Vzc2VkIENRRSB0byBw cmV2ZW50IHRoZSBkZXZpY2UgZnJvbSBvdmVyd3JpdGluZyBpdAp3aXRoIGEgbmV3IENRRSBhZnRl ciByaW5naW5nIHRoZSBkb29yYmVsbC4KCk5vdGUgdGhhdCB0aGUgZHJpdmVyIHN0aWxsIGFybXMg dGhlIENRIG9ubHkgYWZ0ZXIgcHJvY2Vzc2luZyBhbGwgdGhlCnBlbmRpbmcgQ1FFcywgc28gdGhh dCBpbnRlcnJ1cHRzIGZvciB0aGlzIENRIHdpbGwgb25seSBiZSBkZWxpdmVyZWQKYWZ0ZXIgdGhl IGRyaXZlciBmaW5pc2hlZCBpdHMgcHJvY2Vzc2luZy4KCkJlZm9yZSBjb21taXQgODQwNGY2ZjJl OGVkICgibWx4c3c6IHBjaTogQWxsb3cgdG8gdXNlIENRRXMgb2YgdmVyc2lvbiAxCmFuZCB2ZXJz aW9uIDIiKSB0aGUgaXNzdWUgd2FzIHZpcnR1YWxseSBpbXBvc3NpYmxlIHRvIHRyaWdnZXIgc2lu Y2UgdGhlCm51bWJlciBvZiBDUUVzIHdhcyB0d2ljZSB0aGUgbnVtYmVyIG9mIFdRRXMgYW5kIHRo ZSBudW1iZXIgb2YgQ1FFcwpwcm9jZXNzZWQgYXQgYSB0aW1lIHdhcyBlcXVhbCB0byB0aGUgbnVt YmVyIG9mIGF2YWlsYWJsZSBXUUVzLgoKRml4ZXM6IDg0MDRmNmYyZThlZCAoIm1seHN3OiBwY2k6 IEFsbG93IHRvIHVzZSBDUUVzIG9mIHZlcnNpb24gMSBhbmQgdmVyc2lvbiAyIikKU2lnbmVkLW9m Zi1ieTogSWRvIFNjaGltbWVsIDxpZG9zY2hAbWVsbGFub3guY29tPgpSZXBvcnRlZC1ieTogU2Vt aW9uIExpc3lhbnNreSA8c2VtaW9ubEBtZWxsYW5veC5jb20+ClRlc3RlZC1ieTogU2VtaW9uIExp c3lhbnNreSA8c2VtaW9ubEBtZWxsYW5veC5jb20+CkFja2VkLWJ5OiBKaXJpIFBpcmtvIDxqaXJp QG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZl bWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L3BjaS5j ICAgIHwgMTIgKysrKysrKy0tLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhz dy9wY2lfaHcuaCB8ICAxICsKIDIgZmlsZXMgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCA1IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21s eHN3L3BjaS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvcGNpLmMKaW5k ZXggNTg5MGZkZmQ2MmMzLi5jNzkwMWEzZjJhNzkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0 aGVybmV0L21lbGxhbm94L21seHN3L3BjaS5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21l bGxhbm94L21seHN3L3BjaS5jCkBAIC02MDQsMjkgKzYwNCwzMSBAQCBzdGF0aWMgdm9pZCBtbHhz d19wY2lfY3FfdGFza2xldCh1bnNpZ25lZCBsb25nIGRhdGEpCiAJCXUxNiB3cWVfY291bnRlciA9 IG1seHN3X3BjaV9jcWVfd3FlX2NvdW50ZXJfZ2V0KGNxZSk7CiAJCXU4IHNlbmRxID0gbWx4c3df cGNpX2NxZV9zcl9nZXQocS0+dS5jcS52LCBjcWUpOwogCQl1OCBkcW4gPSBtbHhzd19wY2lfY3Fl X2Rxbl9nZXQocS0+dS5jcS52LCBjcWUpOworCQljaGFyIG5jcWVbTUxYU1dfUENJX0NRRV9TSVpF X01BWF07CisKKwkJbWVtY3B5KG5jcWUsIGNxZSwgcS0+ZWxlbV9zaXplKTsKKwkJbWx4c3dfcGNp X3F1ZXVlX2Rvb3JiZWxsX2NvbnN1bWVyX3JpbmcobWx4c3dfcGNpLCBxKTsKIAogCQlpZiAoc2Vu ZHEpIHsKIAkJCXN0cnVjdCBtbHhzd19wY2lfcXVldWUgKnNkcTsKIAogCQkJc2RxID0gbWx4c3df cGNpX3NkcV9nZXQobWx4c3dfcGNpLCBkcW4pOwogCQkJbWx4c3dfcGNpX2NxZV9zZHFfaGFuZGxl KG1seHN3X3BjaSwgc2RxLAotCQkJCQkJIHdxZV9jb3VudGVyLCBjcWUpOworCQkJCQkJIHdxZV9j b3VudGVyLCBuY3FlKTsKIAkJCXEtPnUuY3EuY29tcF9zZHFfY291bnQrKzsKIAkJfSBlbHNlIHsK IAkJCXN0cnVjdCBtbHhzd19wY2lfcXVldWUgKnJkcTsKIAogCQkJcmRxID0gbWx4c3dfcGNpX3Jk cV9nZXQobWx4c3dfcGNpLCBkcW4pOwogCQkJbWx4c3dfcGNpX2NxZV9yZHFfaGFuZGxlKG1seHN3 X3BjaSwgcmRxLAotCQkJCQkJIHdxZV9jb3VudGVyLCBxLT51LmNxLnYsIGNxZSk7CisJCQkJCQkg d3FlX2NvdW50ZXIsIHEtPnUuY3EudiwgbmNxZSk7CiAJCQlxLT51LmNxLmNvbXBfcmRxX2NvdW50 Kys7CiAJCX0KIAkJaWYgKCsraXRlbXMgPT0gY3JlZGl0cykKIAkJCWJyZWFrOwogCX0KLQlpZiAo aXRlbXMpIHsKLQkJbWx4c3dfcGNpX3F1ZXVlX2Rvb3JiZWxsX2NvbnN1bWVyX3JpbmcobWx4c3df cGNpLCBxKTsKKwlpZiAoaXRlbXMpCiAJCW1seHN3X3BjaV9xdWV1ZV9kb29yYmVsbF9hcm1fY29u c3VtZXJfcmluZyhtbHhzd19wY2ksIHEpOwotCX0KIH0KIAogc3RhdGljIHUxNiBtbHhzd19wY2lf Y3FfZWxlbV9jb3VudChjb25zdCBzdHJ1Y3QgbWx4c3dfcGNpX3F1ZXVlICpxKQpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvcGNpX2h3LmggYi9kcml2ZXJz L25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9wY2lfaHcuaAppbmRleCAwOTJiZDZiM2EyMTAu LjcyY2RhYTAxZDU2ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gv bWx4c3cvcGNpX2h3LmgKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cv cGNpX2h3LmgKQEAgLTUzLDYgKzUzLDcgQEAKICNkZWZpbmUgTUxYU1dfUENJX1dRRV9TSVpFCTMy IC8qIDMyIGJ5dGVzIHBlciBlbGVtZW50ICovCiAjZGVmaW5lIE1MWFNXX1BDSV9DUUUwMV9TSVpF CTE2IC8qIDE2IGJ5dGVzIHBlciBlbGVtZW50ICovCiAjZGVmaW5lIE1MWFNXX1BDSV9DUUUyX1NJ WkUJMzIgLyogMzIgYnl0ZXMgcGVyIGVsZW1lbnQgKi8KKyNkZWZpbmUgTUxYU1dfUENJX0NRRV9T SVpFX01BWAlNTFhTV19QQ0lfQ1FFMl9TSVpFCiAjZGVmaW5lIE1MWFNXX1BDSV9FUUVfU0laRQkx NiAvKiAxNiBieXRlcyBwZXIgZWxlbWVudCAqLwogI2RlZmluZSBNTFhTV19QQ0lfV1FFX0NPVU5U CShNTFhTV19QQ0lfQVFfU0laRSAvIE1MWFNXX1BDSV9XUUVfU0laRSkKICNkZWZpbmUgTUxYU1df UENJX0NRRTAxX0NPVU5UCShNTFhTV19QQ0lfQVFfU0laRSAvIE1MWFNXX1BDSV9DUUUwMV9TSVpF KQotLSAKMi4yMC4xCgoKRnJvbSA2ZjljZTczYzEwM2YxZTY0NmMzMjgxOTY5MmE3ODE1ZmEwNjA2 MjI5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBJdmFuIFZlY2VyYSA8aXZlY2VyYUBy ZWRoYXQuY29tPgpEYXRlOiBXZWQsIDE2IEphbiAyMDE5IDE2OjUzOjUyICswMTAwClN1YmplY3Q6 IFtQQVRDSCAxNS8yMV0gbmV0L3NjaGVkOiBjbHNfZmxvd2VyOiBhbGxvY2F0ZSBtYXNrIGR5bmFt aWNhbGx5IGluCiBmbF9jaGFuZ2UoKQoKWyBVcHN0cmVhbSBjb21taXQgMmNkZGQyMDE0NzgyNmFl ZjI4MzExNWFiYjAwMDEyZDRkYWZlM2NkYiBdCgpSZWNlbnQgY2hhbmdlcyAoZXNwZWNpYWxseSAw NWNkMjcxZmQ2MWEgKCJjbHNfZmxvd2VyOiBTdXBwb3J0IG11bHRpcGxlCm1hc2tzIHBlciBwcmlv cml0eSIpKSBpbiB0aGUgZmxfZmxvd19tYXNrIHN0cnVjdHVyZSBncm93IGl0IGFuZCBpdHMKY3Vy cmVudCBzaXplIGUuZy4gb24geDg2XzY0IHdpdGggZGVmY29uZmlnIGlzIDc2MCBieXRlcyBhbmQg bW9yZSB0aGFuCjEwMjQgYnl0ZXMgd2l0aCBzb21lIGRlYnVnIG9wdGlvbnMgZW5hYmxlZC4gUHJp b3IgdGhlIG1lbnRpb25lZCBjb21taXQKaXRzIHNpemUgd2FzIDE3NiBieXRlcyAodXNpbmcgZGVm Y29uZmlnIG9uIHg4Nl82NCkuCldpdGggcmVnYXJkIHRvIHRoaXMgZmFjdCBpdCdzIHJlYXNvbmFi bGUgdG8gYWxsb2NhdGUgdGhpcyBzdHJ1Y3R1cmUKZHluYW1pY2FsbHkgaW4gZmxfY2hhbmdlKCkg dG8gcmVkdWNlIGl0cyBzdGFjayBzaXplLgoKdjI6Ci0gdXNlIGt6YWxsb2MoKSBpbnN0ZWFkIG9m IGtjYWxsb2MoKQoKRml4ZXM6IDA1Y2QyNzFmZDYxYSAoImNsc19mbG93ZXI6IFN1cHBvcnQgbXVs dGlwbGUgbWFza3MgcGVyIHByaW9yaXR5IikKQ2M6IEppcmkgUGlya28gPGppcmlAcmVzbnVsbGku dXM+CkNjOiBQYXVsIEJsYWtleSA8cGF1bGJAbWVsbGFub3guY29tPgpBY2tlZC1ieTogSmlyaSBQ aXJrbyA8amlyaUBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IEl2YW4gVmVjZXJhIDxpdmVj ZXJhQHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2 ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvc2NoZWQvY2xzX2Zsb3dlci5jIHwgMTkgKysrKysrKysrKysr KystLS0tLQogMSBmaWxlIGNoYW5nZWQsIDE0IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL2Nsc19mbG93ZXIuYyBiL25ldC9zY2hlZC9jbHNfZmxv d2VyLmMKaW5kZXggN2ZhZGU3MTA3Zjk1Li44NDg5M2JjNjc1MzEgMTAwNjQ0Ci0tLSBhL25ldC9z Y2hlZC9jbHNfZmxvd2VyLmMKKysrIGIvbmV0L3NjaGVkL2Nsc19mbG93ZXIuYwpAQCAtMTE3Niwx NyArMTE3NiwyMyBAQCBzdGF0aWMgaW50IGZsX2NoYW5nZShzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVj dCBza19idWZmICppbl9za2IsCiAJc3RydWN0IGNsc19mbF9oZWFkICpoZWFkID0gcnRubF9kZXJl ZmVyZW5jZSh0cC0+cm9vdCk7CiAJc3RydWN0IGNsc19mbF9maWx0ZXIgKmZvbGQgPSAqYXJnOwog CXN0cnVjdCBjbHNfZmxfZmlsdGVyICpmbmV3OworCXN0cnVjdCBmbF9mbG93X21hc2sgKm1hc2s7 CiAJc3RydWN0IG5sYXR0ciAqKnRiOwotCXN0cnVjdCBmbF9mbG93X21hc2sgbWFzayA9IHt9Owog CWludCBlcnI7CiAKIAlpZiAoIXRjYVtUQ0FfT1BUSU9OU10pCiAJCXJldHVybiAtRUlOVkFMOwog Ci0JdGIgPSBrY2FsbG9jKFRDQV9GTE9XRVJfTUFYICsgMSwgc2l6ZW9mKHN0cnVjdCBubGF0dHIg KiksIEdGUF9LRVJORUwpOwotCWlmICghdGIpCisJbWFzayA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVj dCBmbF9mbG93X21hc2spLCBHRlBfS0VSTkVMKTsKKwlpZiAoIW1hc2spCiAJCXJldHVybiAtRU5P QlVGUzsKIAorCXRiID0ga2NhbGxvYyhUQ0FfRkxPV0VSX01BWCArIDEsIHNpemVvZihzdHJ1Y3Qg bmxhdHRyICopLCBHRlBfS0VSTkVMKTsKKwlpZiAoIXRiKSB7CisJCWVyciA9IC1FTk9CVUZTOwor CQlnb3RvIGVycm91dF9tYXNrX2FsbG9jOworCX0KKwogCWVyciA9IG5sYV9wYXJzZV9uZXN0ZWQo dGIsIFRDQV9GTE9XRVJfTUFYLCB0Y2FbVENBX09QVElPTlNdLAogCQkJICAgICAgIGZsX3BvbGlj eSwgTlVMTCk7CiAJaWYgKGVyciA8IDApCkBAIC0xMjI5LDEyICsxMjM1LDEyIEBAIHN0YXRpYyBp bnQgZmxfY2hhbmdlKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNrX2J1ZmYgKmluX3NrYiwKIAkJ fQogCX0KIAotCWVyciA9IGZsX3NldF9wYXJtcyhuZXQsIHRwLCBmbmV3LCAmbWFzaywgYmFzZSwg dGIsIHRjYVtUQ0FfUkFURV0sIG92ciwKKwllcnIgPSBmbF9zZXRfcGFybXMobmV0LCB0cCwgZm5l dywgbWFzaywgYmFzZSwgdGIsIHRjYVtUQ0FfUkFURV0sIG92ciwKIAkJCSAgIHRwLT5jaGFpbi0+ dG1wbHRfcHJpdiwgZXh0YWNrKTsKIAlpZiAoZXJyKQogCQlnb3RvIGVycm91dF9pZHI7CiAKLQll cnIgPSBmbF9jaGVja19hc3NpZ25fbWFzayhoZWFkLCBmbmV3LCBmb2xkLCAmbWFzayk7CisJZXJy ID0gZmxfY2hlY2tfYXNzaWduX21hc2soaGVhZCwgZm5ldywgZm9sZCwgbWFzayk7CiAJaWYgKGVy cikKIAkJZ290byBlcnJvdXRfaWRyOwogCkBAIC0xMjgxLDYgKzEyODcsNyBAQCBzdGF0aWMgaW50 IGZsX2NoYW5nZShzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBza19idWZmICppbl9za2IsCiAJfQog CiAJa2ZyZWUodGIpOworCWtmcmVlKG1hc2spOwogCXJldHVybiAwOwogCiBlcnJvdXRfbWFzazoK QEAgLTEyOTQsNiArMTMwMSw4IEBAIHN0YXRpYyBpbnQgZmxfY2hhbmdlKHN0cnVjdCBuZXQgKm5l dCwgc3RydWN0IHNrX2J1ZmYgKmluX3NrYiwKIAlrZnJlZShmbmV3KTsKIGVycm91dF90YjoKIAlr ZnJlZSh0Yik7CitlcnJvdXRfbWFza19hbGxvYzoKKwlrZnJlZShtYXNrKTsKIAlyZXR1cm4gZXJy OwogfQogCi0tIAoyLjIwLjEKCgpGcm9tIDg4NjMxYjU1NzU4Y2YzZGQyNTYzZWE5OGNhYzcxOGYx MWRjYzlkMTAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFdpbGxlbSBkZSBCcnVpam4g PHdpbGxlbWJAZ29vZ2xlLmNvbT4KRGF0ZTogVHVlLCAxNSBKYW4gMjAxOSAxMTo0MDowMiAtMDUw MApTdWJqZWN0OiBbUEFUQ0ggMTYvMjFdIHVkcDogd2l0aCB1ZHBfc2VnbWVudCByZWxlYXNlIG9u IGVycm9yIHBhdGgKClsgVXBzdHJlYW0gY29tbWl0IDBmMTQ5YzlmZWMzY2Q3MjA2MjhlY2RlODNi ZmM2ZjY0YzFlN2RjYjYgXQoKRmFpbHVyZSBfX2lwX2FwcGVuZF9kYXRhIHRyaWdnZXJzIHVkcF9m bHVzaF9wZW5kaW5nX2ZyYW1lcywgYnV0IHRoZXNlCnRlc3RzIGhhcHBlbiBsYXRlci4gVGhlIHNr YiBtdXN0IGJlIGZyZWVkIGRpcmVjdGx5LgoKRml4ZXM6IGJlYzFmNmY2OTczNjIgKCJ1ZHA6IGdl bmVyYXRlIGdzbyB3aXRoIFVEUF9TRUdNRU5UIikKUmVwb3J0ZWQtYnk6IEVyaWMgRHVtYXpldCA8 ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogV2lsbGVtIGRlIEJydWlqbiA8d2ls bGVtYkBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjQvdWRwLmMgfCAxNiArKysrKysrKysrKystLS0tCiBu ZXQvaXB2Ni91ZHAuYyB8IDE2ICsrKysrKysrKysrKy0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgMjQg aW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2NC91ZHAu YyBiL25ldC9pcHY0L3VkcC5jCmluZGV4IGY4MTgzZmRjZTViMi4uZTQ1YTVlMTllNTA5IDEwMDY0 NAotLS0gYS9uZXQvaXB2NC91ZHAuYworKysgYi9uZXQvaXB2NC91ZHAuYwpAQCAtNzg1LDE1ICs3 ODUsMjMgQEAgc3RhdGljIGludCB1ZHBfc2VuZF9za2Ioc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3Ry dWN0IGZsb3dpNCAqZmw0LAogCQljb25zdCBpbnQgaGxlbiA9IHNrYl9uZXR3b3JrX2hlYWRlcl9s ZW4oc2tiKSArCiAJCQkJIHNpemVvZihzdHJ1Y3QgdWRwaGRyKTsKIAotCQlpZiAoaGxlbiArIGNv cmstPmdzb19zaXplID4gY29yay0+ZnJhZ3NpemUpCisJCWlmIChobGVuICsgY29yay0+Z3NvX3Np emUgPiBjb3JrLT5mcmFnc2l6ZSkgeworCQkJa2ZyZWVfc2tiKHNrYik7CiAJCQlyZXR1cm4gLUVJ TlZBTDsKLQkJaWYgKHNrYi0+bGVuID4gY29yay0+Z3NvX3NpemUgKiBVRFBfTUFYX1NFR01FTlRT KQorCQl9CisJCWlmIChza2ItPmxlbiA+IGNvcmstPmdzb19zaXplICogVURQX01BWF9TRUdNRU5U UykgeworCQkJa2ZyZWVfc2tiKHNrYik7CiAJCQlyZXR1cm4gLUVJTlZBTDsKLQkJaWYgKHNrLT5z a19ub19jaGVja190eCkKKwkJfQorCQlpZiAoc2stPnNrX25vX2NoZWNrX3R4KSB7CisJCQlrZnJl ZV9za2Ioc2tiKTsKIAkJCXJldHVybiAtRUlOVkFMOworCQl9CiAJCWlmIChza2ItPmlwX3N1bW1l ZCAhPSBDSEVDS1NVTV9QQVJUSUFMIHx8IGlzX3VkcGxpdGUgfHwKLQkJICAgIGRzdF94ZnJtKHNr Yl9kc3Qoc2tiKSkpCisJCSAgICBkc3RfeGZybShza2JfZHN0KHNrYikpKSB7CisJCQlrZnJlZV9z a2Ioc2tiKTsKIAkJCXJldHVybiAtRUlPOworCQl9CiAKIAkJc2tiX3NoaW5mbyhza2IpLT5nc29f c2l6ZSA9IGNvcmstPmdzb19zaXplOwogCQlza2Jfc2hpbmZvKHNrYiktPmdzb190eXBlID0gU0tC X0dTT19VRFBfTDQ7CmRpZmYgLS1naXQgYS9uZXQvaXB2Ni91ZHAuYyBiL25ldC9pcHY2L3VkcC5j CmluZGV4IGIzNjY5NGI2NzE2ZS4uNzZiYTJmMzRlZjZiIDEwMDY0NAotLS0gYS9uZXQvaXB2Ni91 ZHAuYworKysgYi9uZXQvaXB2Ni91ZHAuYwpAQCAtMTA1NiwxNSArMTA1NiwyMyBAQCBzdGF0aWMg aW50IHVkcF92Nl9zZW5kX3NrYihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZmxvd2k2ICpm bDYsCiAJCWNvbnN0IGludCBobGVuID0gc2tiX25ldHdvcmtfaGVhZGVyX2xlbihza2IpICsKIAkJ CQkgc2l6ZW9mKHN0cnVjdCB1ZHBoZHIpOwogCi0JCWlmIChobGVuICsgY29yay0+Z3NvX3NpemUg PiBjb3JrLT5mcmFnc2l6ZSkKKwkJaWYgKGhsZW4gKyBjb3JrLT5nc29fc2l6ZSA+IGNvcmstPmZy YWdzaXplKSB7CisJCQlrZnJlZV9za2Ioc2tiKTsKIAkJCXJldHVybiAtRUlOVkFMOwotCQlpZiAo c2tiLT5sZW4gPiBjb3JrLT5nc29fc2l6ZSAqIFVEUF9NQVhfU0VHTUVOVFMpCisJCX0KKwkJaWYg KHNrYi0+bGVuID4gY29yay0+Z3NvX3NpemUgKiBVRFBfTUFYX1NFR01FTlRTKSB7CisJCQlrZnJl ZV9za2Ioc2tiKTsKIAkJCXJldHVybiAtRUlOVkFMOwotCQlpZiAodWRwX3NrKHNrKS0+bm9fY2hl Y2s2X3R4KQorCQl9CisJCWlmICh1ZHBfc2soc2spLT5ub19jaGVjazZfdHgpIHsKKwkJCWtmcmVl X3NrYihza2IpOwogCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KIAkJaWYgKHNrYi0+aXBfc3VtbWVk ICE9IENIRUNLU1VNX1BBUlRJQUwgfHwgaXNfdWRwbGl0ZSB8fAotCQkgICAgZHN0X3hmcm0oc2ti X2RzdChza2IpKSkKKwkJICAgIGRzdF94ZnJtKHNrYl9kc3Qoc2tiKSkpIHsKKwkJCWtmcmVlX3Nr Yihza2IpOwogCQkJcmV0dXJuIC1FSU87CisJCX0KIAogCQlza2Jfc2hpbmZvKHNrYiktPmdzb19z aXplID0gY29yay0+Z3NvX3NpemU7CiAJCXNrYl9zaGluZm8oc2tiKS0+Z3NvX3R5cGUgPSBTS0Jf R1NPX1VEUF9MNDsKLS0gCjIuMjAuMQoKCkZyb20gZGFlYzFiMzU1MjY3MzgzNDFmOTVhMzExZWM5 NzgyZTQ1YmQ5Mzk3OCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogT2xpdmllciBNYXR6 IDxvbGl2aWVyLm1hdHpANndpbmQuY29tPgpEYXRlOiBXZWQsIDkgSmFuIDIwMTkgMTA6NTc6MjEg KzAxMDAKU3ViamVjdDogW1BBVENIIDE3LzIxXSBpcDZfZ3JlOiBmaXggdHVubmVsIGxpc3QgY29y cnVwdGlvbiBmb3IgeC1uZXRucwoKWyBVcHN0cmVhbSBjb21taXQgYWI1MDk4ZmEyNWI5MWNiNmZl MGEwNjc2ZjE3YWJiNjRmMmJiZjAyNCBdCgpJbiBjaGFuZ2VsaW5rIG9wcywgdGhlIGlwNmdyZV9u ZXQgcG9pbnRlciBpcyByZXRyaWV2ZWQgZnJvbQpkZXZfbmV0KGRldiksIHdoaWNoIGlzIHdyb25n IGluIGNhc2Ugb2YgeC1uZXRucy4gVGh1cywgdGhlIHR1bm5lbCBpcyBub3QKdW5saW5rZWQgZnJv bSBpdHMgY3VycmVudCBsaXN0IGFuZCBpcyByZWxpbmtlZCBpbnRvIGFub3RoZXIgbmV0Cm5hbWVz cGFjZS4gVGhpcyBjb3JydXB0cyB0aGUgdHVubmVsIGxpc3RzIGFuZCBjYW4gbGF0ZXIgdHJpZ2dl ciBhIGtlcm5lbApvb3BzLgoKRml4IHRoaXMgYnkgcmV0cmlldmluZyB0aGUgbmV0bnMgZnJvbSBk ZXZpY2UgcHJpdmF0ZSBhcmVhLgoKRml4ZXM6IGM4NjMyZmMzMGJiMCAoIm5ldDogaXA2X2dyZTog U3BsaXQgdXAgaXA2Z3JlX2NoYW5nZWxpbmsoKSIpCkNjOiBQZXRyIE1hY2hhdGEgPHBldHJtQG1l bGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogT2xpdmllciBNYXR6IDxvbGl2aWVyLm1hdHpANndp bmQuY29tPgpBY2tlZC1ieTogTmljb2xhcyBEaWNodGVsIDxuaWNvbGFzLmRpY2h0ZWxANndpbmQu Y29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ Ci0tLQogbmV0L2lwdjYvaXA2X2dyZS5jIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNl cnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2lwNl9ncmUu YyBiL25ldC9pcHY2L2lwNl9ncmUuYwppbmRleCBjMjcwNzI2YjAxYjAuLmMwYWFkMWY5YWIxNSAx MDA2NDQKLS0tIGEvbmV0L2lwdjYvaXA2X2dyZS5jCisrKyBiL25ldC9pcHY2L2lwNl9ncmUuYwpA QCAtMjA0Nyw5ICsyMDQ3LDkgQEAgc3RhdGljIGludCBpcDZncmVfY2hhbmdlbGluayhzdHJ1Y3Qg bmV0X2RldmljZSAqZGV2LCBzdHJ1Y3QgbmxhdHRyICp0YltdLAogCQkJICAgICBzdHJ1Y3Qgbmxh dHRyICpkYXRhW10sCiAJCQkgICAgIHN0cnVjdCBuZXRsaW5rX2V4dF9hY2sgKmV4dGFjaykKIHsK LQlzdHJ1Y3QgaXA2Z3JlX25ldCAqaWduID0gbmV0X2dlbmVyaWMoZGV2X25ldChkZXYpLCBpcDZn cmVfbmV0X2lkKTsKKwlzdHJ1Y3QgaXA2X3RubCAqdCA9IG5ldGRldl9wcml2KGRldik7CisJc3Ry dWN0IGlwNmdyZV9uZXQgKmlnbiA9IG5ldF9nZW5lcmljKHQtPm5ldCwgaXA2Z3JlX25ldF9pZCk7 CiAJc3RydWN0IF9faXA2X3RubF9wYXJtIHA7Ci0Jc3RydWN0IGlwNl90bmwgKnQ7CiAKIAl0ID0g aXA2Z3JlX2NoYW5nZWxpbmtfY29tbW9uKGRldiwgdGIsIGRhdGEsICZwLCBleHRhY2spOwogCWlm IChJU19FUlIodCkpCi0tIAoyLjIwLjEKCgpGcm9tIGQ5ZDhlMWI0MTUxMjRjNGQ1NGJmZmRlNDU0 MTNjNDU0ZGFiMDZhYWIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFhpbiBMb25nIDxs dWNpZW4ueGluQGdtYWlsLmNvbT4KRGF0ZTogTW9uLCAxNCBKYW4gMjAxOSAxODoxMDowNiArMDgw MApTdWJqZWN0OiBbUEFUQ0ggMTgvMjFdIGVyc3BhbjogYnVpbGQgdGhlIGhlYWRlciB3aXRoIHRo ZSByaWdodCBwcm90byBhY2NvcmRpbmcKIHRvIGVyc3Bhbl92ZXIKClsgVXBzdHJlYW0gY29tbWl0 IDIwNzA0YmQxNjMzZGQ1YWZiMjlhMzIxZDNhNjE1YzljOGU5YzlkMDUgXQoKQXMgc2FpZCBpbiBk cmFmdC1mb3NjaGlhbm8tZXJzcGFuLTAzI3NlY3Rpb240OgoKICAgRGlmZmVyZW50IGZyYW1lIHZh cmlhbnRzIGtub3duIGFzICJFUlNQQU4gVHlwZXMiIGNhbiBiZQogICBkaXN0aW5ndWlzaGVkIGJh c2VkIG9uIHRoZSBHUkUgIlByb3RvY29sIFR5cGUiIGZpZWxkIHZhbHVlOiBUeXBlIEkKICAgYW5k IElJJ3MgdmFsdWUgaXMgMHg4OEJFIHdoaWxlIFR5cGUgSUlJJ3MgaXMgMHgyMkVCIFtFVFlQRVNd LgoKU28gc2V0IGl0IHByb3Blcmx5IGluIGVyc3Bhbl94bWl0KCkgYWNjb3JkaW5nIHRvIGVyc3Bh bl92ZXIuIFdoaWxlIGF0Cml0LCBhbHNvIHJlbW92ZSB0aGUgdW51c2VkIHBhcmFtZXRlciAncHJv dG8nIGluIGVyc3Bhbl9mYl94bWl0KCkuCgpGaXhlczogOTRkN2Q4ZjI5Mjg3ICgiaXA2X2dyZTog YWRkIGVyc3BhbiB2MiBzdXBwb3J0IikKUmVwb3J0ZWQtYnk6IEppYW5saW4gU2hpIDxqaXNoaUBy ZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBYaW4gTG9uZyA8bHVjaWVuLnhpbkBnbWFpbC5jb20+ ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0t CiBuZXQvaXB2NC9pcF9ncmUuYyAgfCAyMyArKysrKysrKysrKysrKy0tLS0tLS0tLQogbmV0L2lw djYvaXA2X2dyZS5jIHwgIDYgKysrKy0tCiAyIGZpbGVzIGNoYW5nZWQsIDE4IGluc2VydGlvbnMo KyksIDExIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY0L2lwX2dyZS5jIGIvbmV0 L2lwdjQvaXBfZ3JlLmMKaW5kZXggNWVmNWRmM2EwNmYxLi4wYmZhZDNlNzI1MDkgMTAwNjQ0Ci0t LSBhL25ldC9pcHY0L2lwX2dyZS5jCisrKyBiL25ldC9pcHY0L2lwX2dyZS5jCkBAIC01NzAsOCAr NTcwLDcgQEAgc3RhdGljIHZvaWQgZ3JlX2ZiX3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3Ry dWN0IG5ldF9kZXZpY2UgKmRldiwKIAlkZXYtPnN0YXRzLnR4X2Ryb3BwZWQrKzsKIH0KIAotc3Rh dGljIHZvaWQgZXJzcGFuX2ZiX3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9k ZXZpY2UgKmRldiwKLQkJCSAgIF9fYmUxNiBwcm90bykKK3N0YXRpYyB2b2lkIGVyc3Bhbl9mYl94 bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiB7CiAJc3Ry dWN0IGlwX3R1bm5lbCAqdHVubmVsID0gbmV0ZGV2X3ByaXYoZGV2KTsKIAlzdHJ1Y3QgaXBfdHVu bmVsX2luZm8gKnR1bl9pbmZvOwpAQCAtNTc5LDEwICs1NzgsMTAgQEAgc3RhdGljIHZvaWQgZXJz cGFuX2ZiX3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldiwK IAlzdHJ1Y3QgZXJzcGFuX21ldGFkYXRhICptZDsKIAlzdHJ1Y3QgcnRhYmxlICpydCA9IE5VTEw7 CiAJYm9vbCB0cnVuY2F0ZSA9IGZhbHNlOworCV9fYmUxNiBkZiwgcHJvdG87CiAJc3RydWN0IGZs b3dpNCBmbDsKIAlpbnQgdHVubmVsX2hsZW47CiAJaW50IHZlcnNpb247Ci0JX19iZTE2IGRmOwog CWludCBuaG9mZjsKIAlpbnQgdGhvZmY7CiAKQEAgLTYyNywxOCArNjI2LDIwIEBAIHN0YXRpYyB2 b2lkIGVyc3Bhbl9mYl94bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNl ICpkZXYsCiAJaWYgKHZlcnNpb24gPT0gMSkgewogCQllcnNwYW5fYnVpbGRfaGVhZGVyKHNrYiwg bnRvaGwodHVubmVsX2lkX3RvX2tleTMyKGtleS0+dHVuX2lkKSksCiAJCQkJICAgIG50b2hsKG1k LT51LmluZGV4KSwgdHJ1bmNhdGUsIHRydWUpOworCQlwcm90byA9IGh0b25zKEVUSF9QX0VSU1BB Tik7CiAJfSBlbHNlIGlmICh2ZXJzaW9uID09IDIpIHsKIAkJZXJzcGFuX2J1aWxkX2hlYWRlcl92 Mihza2IsCiAJCQkJICAgICAgIG50b2hsKHR1bm5lbF9pZF90b19rZXkzMihrZXktPnR1bl9pZCkp LAogCQkJCSAgICAgICBtZC0+dS5tZDIuZGlyLAogCQkJCSAgICAgICBnZXRfaHdpZCgmbWQtPnUu bWQyKSwKIAkJCQkgICAgICAgdHJ1bmNhdGUsIHRydWUpOworCQlwcm90byA9IGh0b25zKEVUSF9Q X0VSU1BBTjIpOwogCX0gZWxzZSB7CiAJCWdvdG8gZXJyX2ZyZWVfcnQ7CiAJfQogCiAJZ3JlX2J1 aWxkX2hlYWRlcihza2IsIDgsIFRVTk5FTF9TRVEsCi0JCQkgaHRvbnMoRVRIX1BfRVJTUEFOKSwg MCwgaHRvbmwodHVubmVsLT5vX3NlcW5vKyspKTsKKwkJCSBwcm90bywgMCwgaHRvbmwodHVubmVs LT5vX3NlcW5vKyspKTsKIAogCWRmID0ga2V5LT50dW5fZmxhZ3MgJiBUVU5ORUxfRE9OVF9GUkFH TUVOVCA/ICBodG9ucyhJUF9ERikgOiAwOwogCkBAIC03MjIsMTIgKzcyMywxMyBAQCBzdGF0aWMg bmV0ZGV2X3R4X3QgZXJzcGFuX3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwKIHsKIAlzdHJ1Y3Qg aXBfdHVubmVsICp0dW5uZWwgPSBuZXRkZXZfcHJpdihkZXYpOwogCWJvb2wgdHJ1bmNhdGUgPSBm YWxzZTsKKwlfX2JlMTYgcHJvdG87CiAKIAlpZiAoIXBza2JfaW5ldF9tYXlfcHVsbChza2IpKQog CQlnb3RvIGZyZWVfc2tiOwogCiAJaWYgKHR1bm5lbC0+Y29sbGVjdF9tZCkgewotCQllcnNwYW5f ZmJfeG1pdChza2IsIGRldiwgc2tiLT5wcm90b2NvbCk7CisJCWVyc3Bhbl9mYl94bWl0KHNrYiwg ZGV2KTsKIAkJcmV0dXJuIE5FVERFVl9UWF9PSzsKIAl9CiAKQEAgLTc0MywxOSArNzQ1LDIyIEBA IHN0YXRpYyBuZXRkZXZfdHhfdCBlcnNwYW5feG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCX0K IAogCS8qIFB1c2ggRVJTUEFOIGhlYWRlciAqLwotCWlmICh0dW5uZWwtPmVyc3Bhbl92ZXIgPT0g MSkKKwlpZiAodHVubmVsLT5lcnNwYW5fdmVyID09IDEpIHsKIAkJZXJzcGFuX2J1aWxkX2hlYWRl cihza2IsIG50b2hsKHR1bm5lbC0+cGFybXMub19rZXkpLAogCQkJCSAgICB0dW5uZWwtPmluZGV4 LAogCQkJCSAgICB0cnVuY2F0ZSwgdHJ1ZSk7Ci0JZWxzZSBpZiAodHVubmVsLT5lcnNwYW5fdmVy ID09IDIpCisJCXByb3RvID0gaHRvbnMoRVRIX1BfRVJTUEFOKTsKKwl9IGVsc2UgaWYgKHR1bm5l bC0+ZXJzcGFuX3ZlciA9PSAyKSB7CiAJCWVyc3Bhbl9idWlsZF9oZWFkZXJfdjIoc2tiLCBudG9o bCh0dW5uZWwtPnBhcm1zLm9fa2V5KSwKIAkJCQkgICAgICAgdHVubmVsLT5kaXIsIHR1bm5lbC0+ aHdpZCwKIAkJCQkgICAgICAgdHJ1bmNhdGUsIHRydWUpOwotCWVsc2UKKwkJcHJvdG8gPSBodG9u cyhFVEhfUF9FUlNQQU4yKTsKKwl9IGVsc2UgewogCQlnb3RvIGZyZWVfc2tiOworCX0KIAogCXR1 bm5lbC0+cGFybXMub19mbGFncyAmPSB+VFVOTkVMX0tFWTsKLQlfX2dyZV94bWl0KHNrYiwgZGV2 LCAmdHVubmVsLT5wYXJtcy5pcGgsIGh0b25zKEVUSF9QX0VSU1BBTikpOworCV9fZ3JlX3htaXQo c2tiLCBkZXYsICZ0dW5uZWwtPnBhcm1zLmlwaCwgcHJvdG8pOwogCXJldHVybiBORVRERVZfVFhf T0s7CiAKIGZyZWVfc2tiOgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvaXA2X2dyZS5jIGIvbmV0L2lw djYvaXA2X2dyZS5jCmluZGV4IGMwYWFkMWY5YWIxNS4uMjgwNWQ3OGM5NjU4IDEwMDY0NAotLS0g YS9uZXQvaXB2Ni9pcDZfZ3JlLmMKKysrIGIvbmV0L2lwdjYvaXA2X2dyZS5jCkBAIC05MzgsNiAr OTM4LDcgQEAgc3RhdGljIG5ldGRldl90eF90IGlwNmVyc3Bhbl90dW5uZWxfeG1pdChzdHJ1Y3Qg c2tfYnVmZiAqc2tiLAogCV9fdTggZHNmaWVsZCA9IGZhbHNlOwogCXN0cnVjdCBmbG93aTYgZmw2 OwogCWludCBlcnIgPSAtRUlOVkFMOworCV9fYmUxNiBwcm90bzsKIAlfX3UzMiBtdHU7CiAJaW50 IG5ob2ZmOwogCWludCB0aG9mZjsKQEAgLTEwNTEsOCArMTA1Miw5IEBAIHN0YXRpYyBuZXRkZXZf dHhfdCBpcDZlcnNwYW5fdHVubmVsX3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAl9CiAKIAkv KiBQdXNoIEdSRSBoZWFkZXIuICovCi0JZ3JlX2J1aWxkX2hlYWRlcihza2IsIDgsIFRVTk5FTF9T RVEsCi0JCQkgaHRvbnMoRVRIX1BfRVJTUEFOKSwgMCwgaHRvbmwodC0+b19zZXFubysrKSk7CisJ cHJvdG8gPSAodC0+cGFybXMuZXJzcGFuX3ZlciA9PSAxKSA/IGh0b25zKEVUSF9QX0VSU1BBTikK KwkJCQkJICAgOiBodG9ucyhFVEhfUF9FUlNQQU4yKTsKKwlncmVfYnVpbGRfaGVhZGVyKHNrYiwg OCwgVFVOTkVMX1NFUSwgcHJvdG8sIDAsIGh0b25sKHQtPm9fc2Vxbm8rKykpOwogCiAJLyogVG9v QmlnIHBhY2tldCBtYXkgaGF2ZSB1cGRhdGVkIGRzdC0+ZGV2J3MgbXR1ICovCiAJaWYgKCF0LT5w YXJtcy5jb2xsZWN0X21kICYmIGRzdCAmJiBkc3RfbXR1KGRzdCkgPiBkc3QtPmRldi0+bXR1KQot LSAKMi4yMC4xCgoKRnJvbSBmYThhNGFiNjk3NWQyNjk0ZGZhZDg0MWE3YmQ3NmI2NzAxZWMyYWI5 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXcgTHVubiA8YW5kcmV3QGx1bm4u Y2g+CkRhdGU6IEZyaSwgMTEgSmFuIDIwMTkgMDA6MTU6MjEgKzAxMDAKU3ViamVjdDogW1BBVENI IDE5LzIxXSBuZXQ6IHBoeTogbWFydmVsbDogRml4IGRlYWRsb2NrIGZyb20gd3JvbmcgbG9ja2lu ZwpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRG LTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAoKWyBVcHN0cmVhbSBjb21taXQgZTBh NzMyOGZhZDk5NzkxMDRmNzNlMTliZWRjYTgyMWVmMzI2MmFlMSBdCgptODhlMTMxOF9zZXRfd29s KCkgdGFrZXMgdGhlIGxvY2sgYXMgcGFydCBvZiBwaHlfc2VsZWN0X3BhZ2UoKS4gRG9uJ3QKdGFr ZSB0aGUgbG9jayBhZ2FpbiB3aXRoIHBoeV9yZWFkKCksIHVzZSB0aGUgdW5sb2NrZWQgX19waHlf cmVhZCgpLgoKRml4ZXM6IDQyNGNhNGM1NTEyMSAoIm5ldDogcGh5OiBtYXJ2ZWxsOiBmaXggcGFn ZWQgYWNjZXNzIHJhY2VzIikKUmVwb3J0ZWQtYnk6IMOFa2UgUmVobm1hbiA8YWtlLnJlaG5tYW5A Z21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgTHVubiA8YW5kcmV3QGx1bm4uY2g+ClNp Z25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBk cml2ZXJzL25ldC9waHkvbWFydmVsbC5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0 aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvcGh5L21hcnZl bGwuYyBiL2RyaXZlcnMvbmV0L3BoeS9tYXJ2ZWxsLmMKaW5kZXggYjNhYTAwMjdjMGZmLi5kNzFi ZTE1YzhjNjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3BoeS9tYXJ2ZWxsLmMKKysrIGIvZHJp dmVycy9uZXQvcGh5L21hcnZlbGwuYwpAQCAtMTQ1MSw3ICsxNDUxLDcgQEAgc3RhdGljIGludCBt ODhlMTMxOF9zZXRfd29sKHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYsCiAJCSAqIGJlZm9yZSBl bmFibGluZyBpdCBpZiAhcGh5X2ludGVycnVwdF9pc192YWxpZCgpCiAJCSAqLwogCQlpZiAoIXBo eV9pbnRlcnJ1cHRfaXNfdmFsaWQocGh5ZGV2KSkKLQkJCXBoeV9yZWFkKHBoeWRldiwgTUlJX00x MDExX0lFVkVOVCk7CisJCQlfX3BoeV9yZWFkKHBoeWRldiwgTUlJX00xMDExX0lFVkVOVCk7CiAK IAkJLyogRW5hYmxlIHRoZSBXT0wgaW50ZXJydXB0ICovCiAJCWVyciA9IF9fcGh5X21vZGlmeShw aHlkZXYsIE1JSV84OEUxMzE4U19QSFlfQ1NJRVIsIDAsCi0tIAoyLjIwLjEKCgpGcm9tIDZjZTBl M2FlZTU1YmI5M2JhYzFjNTkxYWIzMzFkMDA2ODExMGQyYjIgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IEhhbmdiaW4gTGl1IDxsaXVoYW5nYmluQGdtYWlsLmNvbT4KRGF0ZTogVGh1LCAx MCBKYW4gMjAxOSAxMToxNzo0MiArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMjAvMjFdIGlwNl9ncmU6 IHVwZGF0ZSB2ZXJzaW9uIHJlbGF0ZWQgaW5mbyB3aGVuIGNoYW5naW5nIGxpbmsKClsgVXBzdHJl YW0gY29tbWl0IDgwYjM2NzFlOTM3NzkxNmJmMmIwMmU1NjExM2ZhNzM3N2NlNTcwNWEgXQoKV2Ug Zm9yZ290IHRvIHVwZGF0ZSBpcDZlcnNwYW4gdmVyc2lvbiByZWxhdGVkIGluZm8gd2hlbiBjaGFu Z2luZyBsaW5rLAp3aGljaCB3aWxsIGNhdXNlIHNldHRpbmcgbmV3IGh3aWQgZmFpbGVkLgoKUmVw b3J0ZWQtYnk6IEppYW5saW4gU2hpIDxqaXNoaUByZWRoYXQuY29tPgpGaXhlczogOTRkN2Q4ZjI5 Mjg3MCAoImlwNl9ncmU6IGFkZCBlcnNwYW4gdjIgc3VwcG9ydCIpClNpZ25lZC1vZmYtYnk6IEhh bmdiaW4gTGl1IDxsaXVoYW5nYmluQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4g TWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY2L2lwNl9ncmUuYyB8IDQg KysrKwogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL25ldC9p cHY2L2lwNl9ncmUuYyBiL25ldC9pcHY2L2lwNl9ncmUuYwppbmRleCAyODA1ZDc4Yzk2NTguLjM0 NWU2ODM5ZjAzMSAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvaXA2X2dyZS5jCisrKyBiL25ldC9pcHY2 L2lwNl9ncmUuYwpAQCAtMTE4Nyw2ICsxMTg3LDEwIEBAIHN0YXRpYyB2b2lkIGlwNmdyZV90bmxf Y29weV90bmxfcGFybShzdHJ1Y3QgaXA2X3RubCAqdCwKIAl0LT5wYXJtcy5pX2ZsYWdzID0gcC0+ aV9mbGFnczsKIAl0LT5wYXJtcy5vX2ZsYWdzID0gcC0+b19mbGFnczsKIAl0LT5wYXJtcy5md21h cmsgPSBwLT5md21hcms7CisJdC0+cGFybXMuZXJzcGFuX3ZlciA9IHAtPmVyc3Bhbl92ZXI7CisJ dC0+cGFybXMuaW5kZXggPSBwLT5pbmRleDsKKwl0LT5wYXJtcy5kaXIgPSBwLT5kaXI7CisJdC0+ cGFybXMuaHdpZCA9IHAtPmh3aWQ7CiAJZHN0X2NhY2hlX3Jlc2V0KCZ0LT5kc3RfY2FjaGUpOwog fQogCi0tIAoyLjIwLjEKCgpGcm9tIGQwYzFmODMwNjY2YTlhY2IwOGIxNDM2YzhkMGQ2MzVkY2Y1 NmJjZDIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFdpbGxlbSBkZSBCcnVpam4gPHdp bGxlbWJAZ29vZ2xlLmNvbT4KRGF0ZTogVGh1LCAxMCBKYW4gMjAxOSAxNDo0MDozMyAtMDUwMApT dWJqZWN0OiBbUEFUQ0ggMjEvMjFdIHRjcDogYWxsb3cgTVNHX1pFUk9DT1BZIHRyYW5zbWlzc2lv biBhbHNvIGluIENMT1NFX1dBSVQKIHN0YXRlCgpbIFVwc3RyZWFtIGNvbW1pdCAxM2Q3ZjQ2Mzg2 ZTA2MGRmMzFiNzI3Yzk5NzVlMzgzMDZmYTUxZTdhIF0KClRDUCB0cmFuc21pc3Npb24gd2l0aCBN U0dfWkVST0NPUFkgZmFpbHMgaWYgdGhlIHBlZXIgY2xvc2VzIGl0cyBlbmQgb2YKdGhlIGNvbm5l Y3Rpb24gYW5kIHNvIHRyYW5zaXRpb25zIHRoaXMgc29ja2V0IHRvIENMT1NFX1dBSVQgc3RhdGUu CgpUcmFuc21pc3Npb24gaW4gY2xvc2Ugd2FpdCBzdGF0ZSBpcyBhY2NlcHRhYmxlLiBPdGhlciBz aW1pbGFyIHRlc3RzIGluCnRoZSBzdGFjayAoZS5nLiwgaW4gRmFzdE9wZW4pIGFjY2VwdCBib3Ro IHN0YXRlcy4gUmVsYXggdGhpcyB0ZXN0LCB0b28uCgpMaW5rOiBodHRwczovL3d3dy5tYWlsLWFy Y2hpdmUuY29tL25ldGRldkB2Z2VyLmtlcm5lbC5vcmcvbXNnMjc2ODg2Lmh0bWwKTGluazogaHR0 cHM6Ly93d3cubWFpbC1hcmNoaXZlLmNvbS9uZXRkZXZAdmdlci5rZXJuZWwub3JnL21zZzIyNzM5 MC5odG1sCkZpeGVzOiBmMjE0ZjkxNWU3ZGIgKCJ0Y3A6IGVuYWJsZSBNU0dfWkVST0NPUFkiKQpS ZXBvcnRlZC1ieTogTWFyZWsgTWFqa293c2tpIDxtYXJla0BjbG91ZGZsYXJlLmNvbT4KU2lnbmVk LW9mZi1ieTogV2lsbGVtIGRlIEJydWlqbiA8d2lsbGVtYkBnb29nbGUuY29tPgpDQzogWXVjaHVu ZyBDaGVuZyA8eWNoZW5nQGdvb2dsZS5jb20+CkNDOiBOZWFsIENhcmR3ZWxsIDxuY2FyZHdlbGxA Z29vZ2xlLmNvbT4KQ0M6IFNvaGVpbCBIYXNzYXMgWWVnYW5laCA8c29oZWlsQGdvb2dsZS5jb20+ CkNDOiBBbGV4ZXkgS29kYW5ldiA8YWxleGV5LmtvZGFuZXZAb3JhY2xlLmNvbT4KQWNrZWQtYnk6 IFNvaGVpbCBIYXNzYXMgWWVnYW5laCA8c29oZWlsQGdvb2dsZS5jb20+ClJldmlld2VkLWJ5OiBF cmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMu IE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2NC90Y3AuYyB8IDIgKy0K IDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdp dCBhL25ldC9pcHY0L3RjcC5jIGIvbmV0L2lwdjQvdGNwLmMKaW5kZXggYTMyYTBmNGNjMTM4Li44 N2ZlNDQxOTdhYTEgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3RjcC5jCisrKyBiL25ldC9pcHY0L3Rj cC5jCkBAIC0xMTg2LDcgKzExODYsNyBAQCBpbnQgdGNwX3NlbmRtc2dfbG9ja2VkKHN0cnVjdCBz b2NrICpzaywgc3RydWN0IG1zZ2hkciAqbXNnLCBzaXplX3Qgc2l6ZSkKIAlmbGFncyA9IG1zZy0+ bXNnX2ZsYWdzOwogCiAJaWYgKGZsYWdzICYgTVNHX1pFUk9DT1BZICYmIHNpemUgJiYgc29ja19m bGFnKHNrLCBTT0NLX1pFUk9DT1BZKSkgewotCQlpZiAoc2stPnNrX3N0YXRlICE9IFRDUF9FU1RB QkxJU0hFRCkgeworCQlpZiAoKDEgPDwgc2stPnNrX3N0YXRlKSAmIH4oVENQRl9FU1RBQkxJU0hF RCB8IFRDUEZfQ0xPU0VfV0FJVCkpIHsKIAkJCWVyciA9IC1FSU5WQUw7CiAJCQlnb3RvIG91dF9l cnI7CiAJCX0KLS0gCjIuMjAuMQoK ----Next_Part(Fri_Jan_25_16_18_32_2019_891)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_420.mbox" RnJvbSBiMDcwMTZhZGI5YjE5NTBhYzE0YWVkNDgxMmI0MTFmYmYyMmUyMTU3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiTGVuZGFja3ksIFRob21hcyIgPFRob21hcy5MZW5kYWNreUBh bWQuY29tPgpEYXRlOiBUaHUsIDE3IEphbiAyMDE5IDE0OjIwOjE0ICswMDAwClN1YmplY3Q6IFtQ QVRDSCAwMS8yMV0gYW1kLXhnYmU6IEZpeCBtZGlvIGFjY2VzcyBmb3Igbm9uLXplcm8gcG9ydHMg YW5kIGNsYXVzZQogNDUgUEhZcwoKWyBVcHN0cmVhbSBjb21taXQgNWFiMzEyMWJlZWI3NmFhNjA5 MDE5NWI2N2QyMzcxMTU4NjBkZDllYyBdCgpUaGUgWEdCRSBoYXJkd2FyZSBoYXMgc3VwcG9ydCBm b3IgcGVyZm9ybWluZyBNRElPIG9wZXJhdGlvbnMgdXNpbmcgYW4KTURJTyBjb21tYW5kIHJlcXVl c3QuIFRoZSBkcml2ZXIgbWlzdGFrZW5seSB1c2VzIHRoZSBtZGlvIHBvcnQgYWRkcmVzcwphcyB0 aGUgTURJTyBjb21tYW5kIHJlcXVlc3QgZGV2aWNlIGFkZHJlc3MgaW5zdGVhZCBvZiB0aGUgTURJ TyBjb21tYW5kCnJlcXVlc3QgcG9ydCBhZGRyZXNzLiBBZGRpdGlvbmFsbHksIHRoZSBkcml2ZXIg ZG9lcyBub3QgcHJvcGVybHkgY2hlY2sKZm9yIGFuZCBjcmVhdGUgYSBjbGF1c2UgNDUgTURJTyBj b21tYW5kLgoKQ2hlY2sgdGhlIHN1cHBsaWVkIE1ESU8gcmVnaXN0ZXIgdG8gZGV0ZXJtaW5lIGlm IHRoZSByZXF1ZXN0IGlzIGEgY2xhdXNlCjQ1IG9wZXJhdGlvbiAoTUlJX0FERFJfQzQ1KS4gRm9y IGEgY2xhdXNlIDQ1IG9wZXJhdGlvbiwgZXh0cmFjdCB0aGUgZGV2aWNlCmFkZHJlc3MgYW5kIHJl Z2lzdGVyIG51bWJlciBmcm9tIHRoZSBzdXBwbGllZCBNRElPIHJlZ2lzdGVyIGFuZCB1c2UgdGhl bQp0byBzZXQgdGhlIE1ESU8gY29tbWFuZCByZXF1ZXN0IGRldmljZSBhZGRyZXNzIGFuZCByZWdp c3RlciBudW1iZXIgZmllbGRzLgpGb3IgYSBjbGF1c2UgMjIgb3BlcmF0aW9uLCB0aGUgTURJTyBy ZXF1ZXN0IGRldmljZSBhZGRyZXNzIGlzIHNldCB0byB6ZXJvCmFuZCB0aGUgTURJTyBjb21tYW5k IHJlcXVlc3QgcmVnaXN0ZXIgbnVtYmVyIGlzIHNldCB0byB0aGUgc3VwcGxpZWQgTURJTwpyZWdp c3Rlci4gSW4gZWl0aGVyIGNhc2UsIHRoZSBzdXBwbGllZCBNRElPIHBvcnQgYWRkcmVzcyBpcyB1 c2VkIGFzIHRoZQpNRElPIGNvbW1hbmQgcmVxdWVzdCBwb3J0IGFkZHJlc3MuCgpGaXhlczogNzMy ZjJhYjdhZmI5ICgiYW1kLXhnYmU6IEFkZCBzdXBwb3J0IGZvciBNRElPIGF0dGFjaGVkIFBIWXMi KQpTaWduZWQtb2ZmLWJ5OiBUb20gTGVuZGFja3kgPHRob21hcy5sZW5kYWNreUBhbWQuY29tPgpU ZXN0ZWQtYnk6IFNoeWFtIFN1bmRhciBTIEsgPFNoeWFtLXN1bmRhci5TLWtAYW1kLmNvbT4KU2ln bmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRy aXZlcnMvbmV0L2V0aGVybmV0L2FtZC94Z2JlL3hnYmUtY29tbW9uLmggfCAgMiAtLQogZHJpdmVy cy9uZXQvZXRoZXJuZXQvYW1kL3hnYmUveGdiZS1kZXYuYyAgICB8IDIyICsrKysrKysrKysrKysr Ky0tLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCAxNiBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC94Z2JlL3hnYmUtY29tbW9u LmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQveGdiZS94Z2JlLWNvbW1vbi5oCmluZGV4IGQy NzJkYzY5ODRhYy4uYjQwZDQzNzdjYzcxIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5l dC9hbWQveGdiZS94Z2JlLWNvbW1vbi5oCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC94 Z2JlL3hnYmUtY29tbW9uLmgKQEAgLTQzMSw4ICs0MzEsNiBAQAogI2RlZmluZSBNQUNfTURJT1ND QVJfUEFfV0lEVEgJCTUKICNkZWZpbmUgTUFDX01ESU9TQ0FSX1JBX0lOREVYCQkwCiAjZGVmaW5l IE1BQ19NRElPU0NBUl9SQV9XSURUSAkJMTYKLSNkZWZpbmUgTUFDX01ESU9TQ0FSX1JFR19JTkRF WAkJMAotI2RlZmluZSBNQUNfTURJT1NDQVJfUkVHX1dJRFRICQkyMQogI2RlZmluZSBNQUNfTURJ T1NDQ0RSX0JVU1lfSU5ERVgJMjIKICNkZWZpbmUgTUFDX01ESU9TQ0NEUl9CVVNZX1dJRFRICTEK ICNkZWZpbmUgTUFDX01ESU9TQ0NEUl9DTURfSU5ERVgJCTE2CmRpZmYgLS1naXQgYS9kcml2ZXJz L25ldC9ldGhlcm5ldC9hbWQveGdiZS94Z2JlLWRldi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQv YW1kL3hnYmUveGdiZS1kZXYuYwppbmRleCAxZTkyOWExZTRjYTcuLjQ2NjYwODRlZGExNiAxMDA2 NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3hnYmUveGdiZS1kZXYuYworKysgYi9k cml2ZXJzL25ldC9ldGhlcm5ldC9hbWQveGdiZS94Z2JlLWRldi5jCkBAIC0xMjg0LDYgKzEyODQs MjAgQEAgc3RhdGljIHZvaWQgeGdiZV93cml0ZV9tbWRfcmVncyhzdHJ1Y3QgeGdiZV9wcnZfZGF0 YSAqcGRhdGEsIGludCBwcnRhZCwKIAl9CiB9CiAKK3N0YXRpYyB1bnNpZ25lZCBpbnQgeGdiZV9j cmVhdGVfbWRpb19zY2EoaW50IHBvcnQsIGludCByZWcpCit7CisJdW5zaWduZWQgaW50IG1kaW9f c2NhLCBkYTsKKworCWRhID0gKHJlZyAmIE1JSV9BRERSX0M0NSkgPyByZWcgPj4gMTYgOiAwOwor CisJbWRpb19zY2EgPSAwOworCVhHTUFDX1NFVF9CSVRTKG1kaW9fc2NhLCBNQUNfTURJT1NDQVIs IFJBLCByZWcpOworCVhHTUFDX1NFVF9CSVRTKG1kaW9fc2NhLCBNQUNfTURJT1NDQVIsIFBBLCBw b3J0KTsKKwlYR01BQ19TRVRfQklUUyhtZGlvX3NjYSwgTUFDX01ESU9TQ0FSLCBEQSwgZGEpOwor CisJcmV0dXJuIG1kaW9fc2NhOworfQorCiBzdGF0aWMgaW50IHhnYmVfd3JpdGVfZXh0X21paV9y ZWdzKHN0cnVjdCB4Z2JlX3Bydl9kYXRhICpwZGF0YSwgaW50IGFkZHIsCiAJCQkJICAgaW50IHJl ZywgdTE2IHZhbCkKIHsKQEAgLTEyOTEsOSArMTMwNSw3IEBAIHN0YXRpYyBpbnQgeGdiZV93cml0 ZV9leHRfbWlpX3JlZ3Moc3RydWN0IHhnYmVfcHJ2X2RhdGEgKnBkYXRhLCBpbnQgYWRkciwKIAog CXJlaW5pdF9jb21wbGV0aW9uKCZwZGF0YS0+bWRpb19jb21wbGV0ZSk7CiAKLQltZGlvX3NjYSA9 IDA7Ci0JWEdNQUNfU0VUX0JJVFMobWRpb19zY2EsIE1BQ19NRElPU0NBUiwgUkVHLCByZWcpOwot CVhHTUFDX1NFVF9CSVRTKG1kaW9fc2NhLCBNQUNfTURJT1NDQVIsIERBLCBhZGRyKTsKKwltZGlv X3NjYSA9IHhnYmVfY3JlYXRlX21kaW9fc2NhKGFkZHIsIHJlZyk7CiAJWEdNQUNfSU9XUklURShw ZGF0YSwgTUFDX01ESU9TQ0FSLCBtZGlvX3NjYSk7CiAKIAltZGlvX3NjY2QgPSAwOwpAQCAtMTMx Nyw5ICsxMzI5LDcgQEAgc3RhdGljIGludCB4Z2JlX3JlYWRfZXh0X21paV9yZWdzKHN0cnVjdCB4 Z2JlX3Bydl9kYXRhICpwZGF0YSwgaW50IGFkZHIsCiAKIAlyZWluaXRfY29tcGxldGlvbigmcGRh dGEtPm1kaW9fY29tcGxldGUpOwogCi0JbWRpb19zY2EgPSAwOwotCVhHTUFDX1NFVF9CSVRTKG1k aW9fc2NhLCBNQUNfTURJT1NDQVIsIFJFRywgcmVnKTsKLQlYR01BQ19TRVRfQklUUyhtZGlvX3Nj YSwgTUFDX01ESU9TQ0FSLCBEQSwgYWRkcik7CisJbWRpb19zY2EgPSB4Z2JlX2NyZWF0ZV9tZGlv X3NjYShhZGRyLCByZWcpOwogCVhHTUFDX0lPV1JJVEUocGRhdGEsIE1BQ19NRElPU0NBUiwgbWRp b19zY2EpOwogCiAJbWRpb19zY2NkID0gMDsKLS0gCjIuMjAuMQoKCkZyb20gZThkZjUzYTdmNzE5 MjAwYWUxZmYyN2FjN2NkYWJmODY5YWU5OWE5MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogWXVuamlhbiBXYW5nIDx3YW5neXVuamlhbkBodWF3ZWkuY29tPgpEYXRlOiBUaHUsIDE3IEph biAyMDE5IDA5OjQ2OjQxICswODAwClN1YmplY3Q6IFtQQVRDSCAwMi8yMV0gbmV0OiBicmlkZ2U6 IEZpeCBldGhlcm5ldCBoZWFkZXIgcG9pbnRlciBiZWZvcmUgY2hlY2sKIHNrYiBmb3J3YXJkYWJs ZQoKWyBVcHN0cmVhbSBjb21taXQgMjhjMTM4MmZhMjhmMmUyZDlkMGQ2ZjI1YWU4NzliNWFmMmVj YmQwMyBdCgpUaGUgc2tiIGhlYWRlciBzaG91bGQgYmUgc2V0IHRvIGV0aGVybmV0IGhlYWRlciBi ZWZvcmUgdXNpbmcKaXNfc2tiX2ZvcndhcmRhYmxlLiBCZWNhdXNlIHRoZSBldGhlcm5ldCBoZWFk ZXIgbGVuZ3RoIGhhcyBiZWVuCmNvbnNpZGVyZWQgaW4gaXNfc2tiX2ZvcndhcmRhYmxlKGluY2x1 ZGluZyBkZXYtPmhhcmRfaGVhZGVyX2xlbgpsZW5ndGgpLgoKVG8gcmVwcm9kdWNlIHRoZSBpc3N1 ZToKMSwgYWRkIDIgcG9ydHMgb24gbGludXggYnJpZGdlIGJyIHVzaW5nIGZvbGxvd2luZyBjb21t YW5kczoKJCBicmN0bCBhZGRiciBicgokIGJyY3RsIGFkZGlmIGJyIGV0aDAKJCBicmN0bCBhZGRp ZiBiciBldGgxCjIsIHRoZSBNVFUgb2YgZXRoMCBhbmQgZXRoMSBpcyAxNTAwCjMsIHNlbmQgYSBw YWNrZXQoRGF0YSAxNDgwLCBVRFAgOCwgSVAgMjAsIEV0aGVybmV0IDE0LCBWTEFOIDQpCmZyb20g ZXRoMCB0byBldGgxCgpTbyB0aGUgZXhwZWN0IHJlc3VsdCBpcyBwYWNrZXQgbGFyZ2VyIHRoYW4g MTUwMCBjYW5ub3QgcGFzcyB0aHJvdWdoCmV0aDAgYW5kIGV0aDEuIEJ1dCBjdXJyZW50bHksIHRo ZSBwYWNrZXQgcGFzc2VzIHRocm91Z2ggc3VjY2VzcywgaXQKbWVhbnMgZXRoMSdzIE1UVSBsaW1p dCBkb2Vzbid0IHRha2UgZWZmZWN0LgoKRml4ZXM6IGY2MzY3YjQ2NjBkZCAoImJyaWRnZTogdXNl IGlzX3NrYl9mb3J3YXJkYWJsZSBpbiBmb3J3YXJkIHBhdGgiKQpDYzogYnJpZGdlQGxpc3RzLmxp bnV4LWZvdW5kYXRpb24ub3JnCkNjOiBOa29sYXkgQWxla3NhbmRyb3YgPG5pa29sYXlAY3VtdWx1 c25ldHdvcmtzLmNvbT4KQ2M6IFJvb3BhIFByYWJodSA8cm9vcGFAY3VtdWx1c25ldHdvcmtzLmNv bT4KQ2M6IFN0ZXBoZW4gSGVtbWluZ2VyIDxzdGVwaGVuQG5ldHdvcmtwbHVtYmVyLm9yZz4KU2ln bmVkLW9mZi1ieTogWXVuamlhbiBXYW5nIDx3YW5neXVuamlhbkBodWF3ZWkuY29tPgpTaWduZWQt b2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2Jy aWRnZS9icl9mb3J3YXJkLmMgfCA5ICsrKystLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0 aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvYnJpZGdlL2JyX2Zvcndh cmQuYyBiL25ldC9icmlkZ2UvYnJfZm9yd2FyZC5jCmluZGV4IDUzNzJlMjA0MmFkZi4uZDBmMjY2 OTZmMmZkIDEwMDY0NAotLS0gYS9uZXQvYnJpZGdlL2JyX2ZvcndhcmQuYworKysgYi9uZXQvYnJp ZGdlL2JyX2ZvcndhcmQuYwpAQCAtMzYsMTAgKzM2LDEwIEBAIHN0YXRpYyBpbmxpbmUgaW50IHNo b3VsZF9kZWxpdmVyKGNvbnN0IHN0cnVjdCBuZXRfYnJpZGdlX3BvcnQgKnAsCiAKIGludCBicl9k ZXZfcXVldWVfcHVzaF94bWl0KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNvY2sgKnNrLCBzdHJ1 Y3Qgc2tfYnVmZiAqc2tiKQogeworCXNrYl9wdXNoKHNrYiwgRVRIX0hMRU4pOwogCWlmICghaXNf c2tiX2ZvcndhcmRhYmxlKHNrYi0+ZGV2LCBza2IpKQogCQlnb3RvIGRyb3A7CiAKLQlza2JfcHVz aChza2IsIEVUSF9ITEVOKTsKIAlicl9kcm9wX2Zha2VfcnRhYmxlKHNrYik7CiAKIAlpZiAoc2ti LT5pcF9zdW1tZWQgPT0gQ0hFQ0tTVU1fUEFSVElBTCAmJgpAQCAtOTcsMTIgKzk3LDExIEBAIHN0 YXRpYyB2b2lkIF9fYnJfZm9yd2FyZChjb25zdCBzdHJ1Y3QgbmV0X2JyaWRnZV9wb3J0ICp0bywK IAkJbmV0ID0gZGV2X25ldChpbmRldik7CiAJfSBlbHNlIHsKIAkJaWYgKHVubGlrZWx5KG5ldHBv bGxfdHhfcnVubmluZyh0by0+YnItPmRldikpKSB7Ci0JCQlpZiAoIWlzX3NrYl9mb3J3YXJkYWJs ZShza2ItPmRldiwgc2tiKSkgeworCQkJc2tiX3B1c2goc2tiLCBFVEhfSExFTik7CisJCQlpZiAo IWlzX3NrYl9mb3J3YXJkYWJsZShza2ItPmRldiwgc2tiKSkKIAkJCQlrZnJlZV9za2Ioc2tiKTsK LQkJCX0gZWxzZSB7Ci0JCQkJc2tiX3B1c2goc2tiLCBFVEhfSExFTik7CisJCQllbHNlCiAJCQkJ YnJfbmV0cG9sbF9zZW5kX3NrYih0bywgc2tiKTsKLQkJCX0KIAkJCXJldHVybjsKIAkJfQogCQli cl9ob29rID0gTkZfQlJfTE9DQUxfT1VUOwotLSAKMi4yMC4xCgoKRnJvbSBkOGY4NjMzYTkyN2Q2 OTc4N2NiN2I4YWE4NTRlZTQ0NWYyZDc2NDFkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBSb3NzIExhZ2Vyd2FsbCA8cm9zcy5sYWdlcndhbGxAY2l0cml4LmNvbT4KRGF0ZTogVGh1LCAx NyBKYW4gMjAxOSAxNTozNDozOCArMDAwMApTdWJqZWN0OiBbUEFUQ0ggMDMvMjFdIG5ldDogRml4 IHVzYWdlIG9mIHBza2JfdHJpbV9yY3N1bQoKWyBVcHN0cmVhbSBjb21taXQgNmM1N2YwNDU4MDIy Mjk4ZTRkYTE3MjljNjdiZDMzY2U0MWMxNGU3YSBdCgpJbiBjZXJ0YWluIGNhc2VzLCBwc2tiX3Ry aW1fcmNzdW0oKSBtYXkgY2hhbmdlIHNrYiBwb2ludGVycy4KUmVpbml0aWFsaXplIGhlYWRlciBw b2ludGVycyBhZnRlcndhcmRzIHRvIGF2b2lkIHBvdGVudGlhbAp1c2UtYWZ0ZXItZnJlZXMuIEFk ZCBhIG5vdGUgaW4gdGhlIGRvY3VtZW50YXRpb24gb2YKcHNrYl90cmltX3Jjc3VtKCkuIEZvdW5k IGJ5IEtBU0FOLgoKU2lnbmVkLW9mZi1ieTogUm9zcyBMYWdlcndhbGwgPHJvc3MubGFnZXJ3YWxs QGNpdHJpeC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9wcHAvcHBwb2UuYyAgICAgICAgICAgICAgICAgIHwg MSArCiBpbmNsdWRlL2xpbnV4L3NrYnVmZi5oICAgICAgICAgICAgICAgICAgIHwgMSArCiBuZXQv YnJpZGdlL2JyX25ldGZpbHRlcl9pcHY2LmMgICAgICAgICAgIHwgMSArCiBuZXQvYnJpZGdlL25l dGZpbHRlci9uZnRfcmVqZWN0X2JyaWRnZS5jIHwgMSArCiBuZXQvaXB2NC9pcF9pbnB1dC5jICAg ICAgICAgICAgICAgICAgICAgIHwgMSArCiA1IGZpbGVzIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygr KQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3BwcC9wcHBvZS5jIGIvZHJpdmVycy9uZXQvcHBw L3BwcG9lLmMKaW5kZXggNjJkYzU2NGIyNTFkLi5mMjI2MzlmMDExNmEgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvbmV0L3BwcC9wcHBvZS5jCisrKyBiL2RyaXZlcnMvbmV0L3BwcC9wcHBvZS5jCkBAIC00 NDUsNiArNDQ1LDcgQEAgc3RhdGljIGludCBwcHBvZV9yY3Yoc3RydWN0IHNrX2J1ZmYgKnNrYiwg c3RydWN0IG5ldF9kZXZpY2UgKmRldiwKIAlpZiAocHNrYl90cmltX3Jjc3VtKHNrYiwgbGVuKSkK IAkJZ290byBkcm9wOwogCisJcGggPSBwcHBvZV9oZHIoc2tiKTsKIAlwbiA9IHBwcG9lX3Blcm5l dChkZXZfbmV0KGRldikpOwogCiAJLyogTm90ZSB0aGF0IGdldF9pdGVtIGRvZXMgYSBzb2NrX2hv bGQoKSwgc28gc2tfcHBwb3gocG8pCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3NrYnVmZi5o IGIvaW5jbHVkZS9saW51eC9za2J1ZmYuaAppbmRleCAwZDFiMmMzZjEyN2IuLmE2ZDgyMGFkMTdm MCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9za2J1ZmYuaAorKysgYi9pbmNsdWRlL2xpbnV4 L3NrYnVmZi5oCkBAIC0zMjA0LDYgKzMyMDQsNyBAQCBpbnQgcHNrYl90cmltX3Jjc3VtX3Nsb3co c3RydWN0IHNrX2J1ZmYgKnNrYiwgdW5zaWduZWQgaW50IGxlbik7CiAgKgogICoJVGhpcyBpcyBl eGFjdGx5IHRoZSBzYW1lIGFzIHBza2JfdHJpbSBleGNlcHQgdGhhdCBpdCBlbnN1cmVzIHRoZQog ICoJY2hlY2tzdW0gb2YgcmVjZWl2ZWQgcGFja2V0cyBhcmUgc3RpbGwgdmFsaWQgYWZ0ZXIgdGhl IG9wZXJhdGlvbi4KKyAqCUl0IGNhbiBjaGFuZ2Ugc2tiIHBvaW50ZXJzLgogICovCiAKIHN0YXRp YyBpbmxpbmUgaW50IHBza2JfdHJpbV9yY3N1bShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1bnNpZ25l ZCBpbnQgbGVuKQpkaWZmIC0tZ2l0IGEvbmV0L2JyaWRnZS9icl9uZXRmaWx0ZXJfaXB2Ni5jIGIv bmV0L2JyaWRnZS9icl9uZXRmaWx0ZXJfaXB2Ni5jCmluZGV4IDk2YzA3MmU3MWVhMi4uNTgxMTIw ODg2M2I3IDEwMDY0NAotLS0gYS9uZXQvYnJpZGdlL2JyX25ldGZpbHRlcl9pcHY2LmMKKysrIGIv bmV0L2JyaWRnZS9icl9uZXRmaWx0ZXJfaXB2Ni5jCkBAIC0xMzEsNiArMTMxLDcgQEAgaW50IGJy X3ZhbGlkYXRlX2lwdjYoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCQkJ CQlJUFNUQVRTX01JQl9JTkRJU0NBUkRTKTsKIAkJCWdvdG8gZHJvcDsKIAkJfQorCQloZHIgPSBp cHY2X2hkcihza2IpOwogCX0KIAlpZiAoaGRyLT5uZXh0aGRyID09IE5FWFRIRFJfSE9QICYmIGJy X25mX2NoZWNrX2hiaF9sZW4oc2tiKSkKIAkJZ290byBkcm9wOwpkaWZmIC0tZ2l0IGEvbmV0L2Jy aWRnZS9uZXRmaWx0ZXIvbmZ0X3JlamVjdF9icmlkZ2UuYyBiL25ldC9icmlkZ2UvbmV0ZmlsdGVy L25mdF9yZWplY3RfYnJpZGdlLmMKaW5kZXggMDhjYmVkN2Q5NDBlLi40MTllOGVkZjIzYmEgMTAw NjQ0Ci0tLSBhL25ldC9icmlkZ2UvbmV0ZmlsdGVyL25mdF9yZWplY3RfYnJpZGdlLmMKKysrIGIv bmV0L2JyaWRnZS9uZXRmaWx0ZXIvbmZ0X3JlamVjdF9icmlkZ2UuYwpAQCAtMjI5LDYgKzIyOSw3 IEBAIHN0YXRpYyBib29sIHJlamVjdDZfYnJfY3N1bV9vayhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBp bnQgaG9vaykKIAkgICAgcHNrYl90cmltX3Jjc3VtKHNrYiwgbnRvaHMoaXA2aC0+cGF5bG9hZF9s ZW4pICsgc2l6ZW9mKCppcDZoKSkpCiAJCXJldHVybiBmYWxzZTsKIAorCWlwNmggPSBpcHY2X2hk cihza2IpOwogCXRob2ZmID0gaXB2Nl9za2lwX2V4dGhkcihza2IsICgodTgqKShpcDZoKzEpIC0g c2tiLT5kYXRhKSwgJnByb3RvLCAmZm8pOwogCWlmICh0aG9mZiA8IDAgfHwgdGhvZmYgPj0gc2ti LT5sZW4gfHwgKGZvICYgaHRvbnMofjB4NykpICE9IDApCiAJCXJldHVybiBmYWxzZTsKZGlmZiAt LWdpdCBhL25ldC9pcHY0L2lwX2lucHV0LmMgYi9uZXQvaXB2NC9pcF9pbnB1dC5jCmluZGV4IGU2 MDliMDhjOWRmNC4uMzE2MzQyODIxOWNkIDEwMDY0NAotLS0gYS9uZXQvaXB2NC9pcF9pbnB1dC5j CisrKyBiL25ldC9pcHY0L2lwX2lucHV0LmMKQEAgLTQ4OSw2ICs0ODksNyBAQCBzdGF0aWMgc3Ry dWN0IHNrX2J1ZmYgKmlwX3Jjdl9jb3JlKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXQg Km5ldCkKIAkJZ290byBkcm9wOwogCX0KIAorCWlwaCA9IGlwX2hkcihza2IpOwogCXNrYi0+dHJh bnNwb3J0X2hlYWRlciA9IHNrYi0+bmV0d29ya19oZWFkZXIgKyBpcGgtPmlobCo0OwogCiAJLyog UmVtb3ZlIGFueSBkZWJyaXMgaW4gdGhlIHNvY2tldCBjb250cm9sIGJsb2NrICovCi0tIAoyLjIw LjEKCgpGcm9tIDNiOTg2NzVkODNiNzU2MjNhYmIyYzk0ZGNhNGFhOTBmN2U3YjgwYzUgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFuZHJldyBMdW5uIDxhbmRyZXdAbHVubi5jaD4KRGF0 ZTogVGh1LCAxMCBKYW4gMjAxOSAyMjo0ODozNiArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMDQvMjFd IG5ldDogcGh5OiBtYXJ2ZWxsOiBFcnJhdGEgZm9yIG12ODhlNjM5MCBpbnRlcm5hbCBQSFlzCgpb IFVwc3RyZWFtIGNvbW1pdCA4Y2JjZGMxYTUxOTk5Y2E4MWRiMjk1NjYwOGI5MTdhYWNkMjhkODM3 IF0KClRoZSBWT0QgY2FuIGJlIG91dCBvZiBzcGVjLCB1bmxlc3Mgc29tZSBtYWdpYyB2YWx1ZSBp cyBwb2tlZCBpbnRvIGFuCnVuZG9jdW1lbnRlZCByZWdpc3RlciBpbiBhbiB1bmRvY3VtZW50ZWQg cGFnZS4KCkZpeGVzOiBlNGNmOGEzOGZjMGQgKCJuZXQ6IHBoeTogTWFydmVsbDogQWRkIG12ODhl NjM5MCBpbnRlcm5hbCBQSFkiKQpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgTHVubiA8YW5kcmV3QGx1 bm4uY2g+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5l dD4KLS0tCiBkcml2ZXJzL25ldC9waHkvbWFydmVsbC5jIHwgMzUgKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCAzNCBpbnNlcnRpb25zKCspLCAxIGRl bGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvcGh5L21hcnZlbGwuYyBiL2RyaXZl cnMvbmV0L3BoeS9tYXJ2ZWxsLmMKaW5kZXggY2JlYzI5NjEwN2JkLi40MjYwOTdlN2EyNzUgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3BoeS9tYXJ2ZWxsLmMKKysrIGIvZHJpdmVycy9uZXQvcGh5 L21hcnZlbGwuYwpAQCAtMTA0Miw2ICsxMDQyLDM5IEBAIHN0YXRpYyBpbnQgbTg4ZTExNDVfY29u ZmlnX2luaXQoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldikKIAlyZXR1cm4gMDsKIH0KIAorLyog VGhlIFZPRCBjYW4gYmUgb3V0IG9mIHNwZWNpZmljYXRpb24gb24gbGluayB1cC4gUG9rZSBhbgor ICogdW5kb2N1bWVudGVkIHJlZ2lzdGVyLCBpbiBhbiB1bmRvY3VtZW50ZWQgcGFnZSwgd2l0aCBh IG1hZ2ljIHZhbHVlCisgKiB0byBmaXggdGhpcy4KKyAqLworc3RhdGljIGludCBtODhlNjM5MF9l cnJhdGEoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldikKK3sKKwlpbnQgZXJyOworCisJZXJyID0g cGh5X3dyaXRlKHBoeWRldiwgTUlJX0JNQ1IsCisJCQlCTUNSX0FORU5BQkxFIHwgQk1DUl9TUEVF RDEwMDAgfCBCTUNSX0ZVTExEUExYKTsKKwlpZiAoZXJyKQorCQlyZXR1cm4gZXJyOworCisJdXNs ZWVwX3JhbmdlKDMwMCwgNDAwKTsKKworCWVyciA9IHBoeV93cml0ZV9wYWdlZChwaHlkZXYsIDB4 ZjgsIDB4MDgsIDB4MzYpOworCWlmIChlcnIpCisJCXJldHVybiBlcnI7CisKKwlyZXR1cm4gZ2Vu cGh5X3NvZnRfcmVzZXQocGh5ZGV2KTsKK30KKworc3RhdGljIGludCBtODhlNjM5MF9jb25maWdf YW5lZyhzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2KQoreworCWludCBlcnI7CisKKwllcnIgPSBt ODhlNjM5MF9lcnJhdGEocGh5ZGV2KTsKKwlpZiAoZXJyKQorCQlyZXR1cm4gZXJyOworCisJcmV0 dXJuIG04OGUxNTEwX2NvbmZpZ19hbmVnKHBoeWRldik7Cit9CisKIC8qKgogICogZmliZXJfbHBh X3RvX2V0aHRvb2xfbHBhX3QKICAqIEBscGE6IHZhbHVlIG9mIHRoZSBNSUlfTFBBIHJlZ2lzdGVy IGZvciBmaWJlciBsaW5rCkBAIC0yMjkyLDcgKzIzMjUsNyBAQCBzdGF0aWMgc3RydWN0IHBoeV9k cml2ZXIgbWFydmVsbF9kcml2ZXJzW10gPSB7CiAJCS5mbGFncyA9IFBIWV9IQVNfSU5URVJSVVBU LAogCQkucHJvYmUgPSBtODhlNjM5MF9wcm9iZSwKIAkJLmNvbmZpZ19pbml0ID0gJm1hcnZlbGxf Y29uZmlnX2luaXQsCi0JCS5jb25maWdfYW5lZyA9ICZtODhlMTUxMF9jb25maWdfYW5lZywKKwkJ LmNvbmZpZ19hbmVnID0gJm04OGU2MzkwX2NvbmZpZ19hbmVnLAogCQkucmVhZF9zdGF0dXMgPSAm bWFydmVsbF9yZWFkX3N0YXR1cywKIAkJLmFja19pbnRlcnJ1cHQgPSAmbWFydmVsbF9hY2tfaW50 ZXJydXB0LAogCQkuY29uZmlnX2ludHIgPSAmbWFydmVsbF9jb25maWdfaW50ciwKLS0gCjIuMjAu MQoKCkZyb20gYWU5NjE5NmI0NWRiNjBjNDI2ZDczOTUyNmI3OWQ5NTQ5NzU0MjgyNCBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogVGhvbWFzIFBldGF6em9uaSA8dGhvbWFzLnBldGF6em9u aUBib290bGluLmNvbT4KRGF0ZTogV2VkLCAxNiBKYW4gMjAxOSAxMDo1Mzo1OCArMDEwMApTdWJq ZWN0OiBbUEFUQ0ggMDUvMjFdIG5ldDogcGh5OiBtZGlvX2J1czogYWRkIG1pc3NpbmcgZGV2aWNl X2RlbCgpIGluCiBtZGlvYnVzX3JlZ2lzdGVyKCkgZXJyb3IgaGFuZGxpbmcKClsgVXBzdHJlYW0g Y29tbWl0IGU0MGUyYTJlNzg2NjRmYTkwZWE0YjliZGY0YTg0ZWZjZTJmZWE5ZDkgXQoKVGhlIGN1 cnJlbnQgY29kZSBpbiBfX21kaW9idXNfcmVnaXN0ZXIoKSBkb2Vzbid0IHByb3Blcmx5IGhhbmRs ZQpmYWlsdXJlcyByZXR1cm5lZCBieSB0aGUgZGV2bV9ncGlvZF9nZXRfb3B0aW9uYWwoKSBjYWxs OiBpdCByZXR1cm5zCmltbWVkaWF0ZWx5LCB3aXRob3V0IHVucmVnaXN0ZXJpbmcgdGhlIGRldmlj ZSB0aGF0IHdhcyBhZGRlZCBieSB0aGUKY2FsbCB0byBkZXZpY2VfcmVnaXN0ZXIoKSBlYXJsaWVy IGluIHRoZSBmdW5jdGlvbi4KClRoaXMgbGVhdmVzIGEgc3RhbGUgZGV2aWNlLCB3aGljaCB0aGVu IGNhdXNlcyBhIE5VTEwgcG9pbnRlcgpkZXJlZmVyZW5jZSBpbiB0aGUgY29kZSB0aGF0IGhhbmRs ZXMgZGVmZXJyZWQgcHJvYmluZzoKClsgICAgMS40ODk5ODJdIFVuYWJsZSB0byBoYW5kbGUga2Vy bmVsIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSBhdCB2aXJ0dWFsIGFkZHJlc3MgMDAwMDAwNzQK WyAgICAxLjQ5ODExMF0gcGdkID0gKHB0cnZhbCkKWyAgICAxLjUwMDgzOF0gWzAwMDAwMDc0XSAq cGdkPTAwMDAwMDAwClsgICAgMS41MDQ0MzJdIEludGVybmFsIGVycm9yOiBPb3BzOiAxNyBbIzFd IFNNUCBBUk0KWyAgICAxLjUwOTEzM10gTW9kdWxlcyBsaW5rZWQgaW46ClsgICAgMS41MTIxOTJd IENQVTogMSBQSUQ6IDUxIENvbW06IGt3b3JrZXIvMTozIE5vdCB0YWludGVkIDQuMjAuMC0wMDAz OS1nM2I3M2E0Y2M4YjNlLWRpcnR5ICM5OQpbICAgIDEuNTIwNzA4XSBIYXJkd2FyZSBuYW1lOiBY aWxpbnggWnlucSBQbGF0Zm9ybQpbICAgIDEuNTI1MjYxXSBXb3JrcXVldWU6IGV2ZW50cyBkZWZl cnJlZF9wcm9iZV93b3JrX2Z1bmMKWyAgICAxLjUzMDQwM10gUEMgaXMgYXQga2xpc3RfbmV4dCsw eDEwLzB4ZmMKWyAgICAxLjUzNDQwM10gTFIgaXMgYXQgZGV2aWNlX2Zvcl9lYWNoX2NoaWxkKzB4 NDAvMHg5NApbICAgIDEuNTM5MzYxXSBwYyA6IFs8YzA2ODNmYmM+XSAgICBsciA6IFs8YzA0NTVk OTA+XSAgICBwc3I6IDIwMGUwMDEzClsgICAgMS41NDU2MjhdIHNwIDogY2VlZWZlNjggIGlwIDog MDAwMDAwMDEgIGZwIDogZmZmZmUwMDAKWyAgICAxLjU1MDg2M10gcjEwOiAwMDAwMDAwMCAgcjkg OiBjMGM2Njc5MCAgcjggOiAwMDAwMDAwMApbICAgIDEuNTU2MDc5XSByNyA6IGMwNDU3ZDQ0ICBy NiA6IDAwMDAwMDAwICByNSA6IGNlZWVmZThjICByNCA6IGNmYTJlYzc4ClsgICAgMS41NjI2MDRd IHIzIDogMDAwMDAwNjQgIHIyIDogYzA0NTdkNDQgIHIxIDogY2VlZWZlOGMgIHIwIDogMDAwMDAw NjQKWyAgICAxLjU2OTEyOV0gRmxhZ3M6IG56Q3YgIElSUXMgb24gIEZJUXMgb24gIE1vZGUgU1ZD XzMyICBJU0EgQVJNICBTZWdtZW50IG5vbmUKWyAgICAxLjU3NjI2M10gQ29udHJvbDogMThjNTM4 N2QgIFRhYmxlOiAwZWQ3ODA0YSAgREFDOiAwMDAwMDA1MQpbICAgIDEuNTgyMDEzXSBQcm9jZXNz IGt3b3JrZXIvMTozIChwaWQ6IDUxLCBzdGFjayBsaW1pdCA9IDB4KHB0cnZhbCkpClsgICAgMS41 ODgyODBdIFN0YWNrOiAoMHhjZWVlZmU2OCB0byAweGNlZWYwMDAwKQpbICAgIDEuNTkyNjMwXSBm ZTYwOiAgICAgICAgICAgICAgICAgICBjZmEyZWM3OCBjMGMwM2MwOCAwMDAwMDAwMCBjMDQ1N2Q0 NCAwMDAwMDAwMCBjMGM2Njc5MApbICAgIDEuNjAwODE0XSBmZTgwOiAwMDAwMDAwMCBjMDQ1NWQ5 MCBjZWVlZmVhYyAwMDAwMDA2NCAwMDAwMDAwMCAwZDdhNTQyZSBjZWU5ZDQ5NCBjZmEyZWM3OApb ICAgIDEuNjA4OTk4XSBmZWEwOiBjZmEyZWM3OCAwMDAwMDAwMCBjMDQ1N2Q0NCBjMDQ1N2Q3YyBj ZWU5ZDQ5NCBjMGMwM2MwOCAwMDAwMDAwMCBjMDQ1NWRhYwpbICAgIDEuNjE3MTgyXSBmZWMwOiBj Zjk4YmE0NCBjZjkyNmEwMCBjZWU5ZDQ5NCAwZDdhNTQyZSAwMDAwMDAwMCBjZjkzNWExMCBjZjkz NWExMCBjZjkzNWExMApbICAgIDEuNjI1MzY2XSBmZWUwOiBjMGM0ZTliOCBjMDQ1N2Q3YyBjMGM0 ZTgwYyAwMDAwMDAwMSBjZjkzNWExMCBjMDQ1N2RmNCBjZjkzNWExMCBjMGM0ZTk5YwpbICAgIDEu NjMzNTUwXSBmZjAwOiBjMGM0ZTk5YyBjMDQ1YTI3YyBjMGM0ZTljNCBjZWQ2M2Y4MCBjZmRlOGE4 MCBjZmRlYmMwMCAwMDAwMDAwMCBjMDEzODkzYwpbICAgIDEuNjQxNzM0XSBmZjIwOiBjZmRlOGE4 MCBjZmRlOGE4MCBjMDdiZDM1NCBjZWQ2M2Y4MCBjZWQ2M2Y5NCBjZmRlOGE4MCAwMDAwMDAwOCBj MGMwMmQwMApbICAgIDEuNjQ5OTM2XSBmZjQwOiBjZmRlOGE5OCBjZmRlOGE4MCBmZmZmZTAwMCBj MDEzOWEzMCBmZmZmZTAwMCBjMGM2NjI0YSBjMDdiZDM1NCAwMDAwMDAwMApbICAgIDEuNjU4MTIw XSBmZjYwOiBmZmZmZTAwMCBjZWU5ZTc4MCBjZWViZmUwMCAwMDAwMDAwMCBjZWVlZTAwMCBjZWQ2 M2Y4MCBjMDEzOTc4OCBjZjhjZGVhNApbICAgIDEuNjY2MzA0XSBmZjgwOiBjZWU5ZTc5YyBjMDEz ZTU5OCAwMDAwMDAwMSBjZWViZmUwMCBjMDEzZTQ0YyAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAw MApbICAgIDEuNjc0NDg4XSBmZmEwOiAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMCBjMDEwMTBl OCAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMApbICAgIDEuNjgyNjcxXSBmZmMw OiAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMCAw MDAwMDAwMCAwMDAwMDAwMApbICAgIDEuNjkwODU1XSBmZmUwOiAwMDAwMDAwMCAwMDAwMDAwMCAw MDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAxMyAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMApbICAg IDEuNjk5MDU4XSBbPGMwNjgzZmJjPl0gKGtsaXN0X25leHQpIGZyb20gWzxjMDQ1NWQ5MD5dIChk ZXZpY2VfZm9yX2VhY2hfY2hpbGQrMHg0MC8weDk0KQpbICAgIDEuNzA3MjQxXSBbPGMwNDU1ZDkw Pl0gKGRldmljZV9mb3JfZWFjaF9jaGlsZCkgZnJvbSBbPGMwNDU3ZDdjPl0gKGRldmljZV9yZW9y ZGVyX3RvX3RhaWwrMHgzOC8weDg4KQpbICAgIDEuNzE2NDc2XSBbPGMwNDU3ZDdjPl0gKGRldmlj ZV9yZW9yZGVyX3RvX3RhaWwpIGZyb20gWzxjMDQ1NWRhYz5dIChkZXZpY2VfZm9yX2VhY2hfY2hp bGQrMHg1Yy8weDk0KQpbICAgIDEuNzI1NjkyXSBbPGMwNDU1ZGFjPl0gKGRldmljZV9mb3JfZWFj aF9jaGlsZCkgZnJvbSBbPGMwNDU3ZDdjPl0gKGRldmljZV9yZW9yZGVyX3RvX3RhaWwrMHgzOC8w eDg4KQpbICAgIDEuNzM0OTI3XSBbPGMwNDU3ZDdjPl0gKGRldmljZV9yZW9yZGVyX3RvX3RhaWwp IGZyb20gWzxjMDQ1N2RmND5dIChkZXZpY2VfcG1fbW92ZV90b190YWlsKzB4MjgvMHg0MCkKWyAg ICAxLjc0NDIzNV0gWzxjMDQ1N2RmND5dIChkZXZpY2VfcG1fbW92ZV90b190YWlsKSBmcm9tIFs8 YzA0NWEyN2M+XSAoZGVmZXJyZWRfcHJvYmVfd29ya19mdW5jKzB4NTgvMHg4YykKWyAgICAxLjc1 Mzc0Nl0gWzxjMDQ1YTI3Yz5dIChkZWZlcnJlZF9wcm9iZV93b3JrX2Z1bmMpIGZyb20gWzxjMDEz ODkzYz5dIChwcm9jZXNzX29uZV93b3JrKzB4MjEwLzB4NGZjKQpbICAgIDEuNzYyODg4XSBbPGMw MTM4OTNjPl0gKHByb2Nlc3Nfb25lX3dvcmspIGZyb20gWzxjMDEzOWEzMD5dICh3b3JrZXJfdGhy ZWFkKzB4MmE4LzB4NWMwKQpbICAgIDEuNzcxMDcyXSBbPGMwMTM5YTMwPl0gKHdvcmtlcl90aHJl YWQpIGZyb20gWzxjMDEzZTU5OD5dIChrdGhyZWFkKzB4MTRjLzB4MTU0KQpbICAgIDEuNzc4NDgy XSBbPGMwMTNlNTk4Pl0gKGt0aHJlYWQpIGZyb20gWzxjMDEwMTBlOD5dIChyZXRfZnJvbV9mb3Jr KzB4MTQvMHgyYykKWyAgICAxLjc4NTY4OV0gRXhjZXB0aW9uIHN0YWNrKDB4Y2VlZWZmYjAgdG8g MHhjZWVlZmZmOCkKWyAgICAxLjc5MDczOV0gZmZhMDogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDAKWyAgICAxLjc5 ODkyM10gZmZjMDogMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDAg MDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDAKWyAgICAxLjgwNzEwN10gZmZlMDogMDAwMDAwMDAg MDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMTMgMDAwMDAwMDAKWyAgICAxLjgxMzcy NF0gQ29kZTogZTkyZDQ3ZjAgZTFhMDUwMDAgZTg5MDAwNDggZTFhMDAwMDMgKGU1OTM3MDEwKQpb ICAgIDEuODE5ODQ0XSAtLS1bIGVuZCB0cmFjZSAzYzJjMGM4YjY1Mzk5ZWM5IF0tLS0KClRoZSBh Y3R1YWwgZXJyb3IgdGhhdCB3ZSBoYWQgZnJvbSBkZXZtX2dwaW9kX2dldF9vcHRpb25hbCgpIHdh cwotRVBST0JFX0RFRkVSLCBkdWUgdG8gdGhlIEdQSU8gYmVpbmcgcHJvdmlkZWQgYnkgYSBkcml2 ZXIgdGhhdCBpcwpwcm9iZWQgbGF0ZXIgdGhhbiB0aGUgRXRoZXJuZXQgY29udHJvbGxlciBkcml2 ZXIuCgpUbyBmaXggdGhpcywgd2Ugc2ltcGx5IGFkZCB0aGUgbWlzc2luZyBkZXZpY2VfZGVsKCkg aW52b2NhdGlvbiBpbiB0aGUKZXJyb3IgcGF0aC4KCkZpeGVzOiA2OTIyNjg5NmFkNjM2ICgibWRp b19idXM6IElzc3VlIEdQSU8gUkVTRVQgdG8gUEhZcyIpClNpZ25lZC1vZmYtYnk6IFRob21hcyBQ ZXRhenpvbmkgPHRob21hcy5wZXRhenpvbmlAYm9vdGxpbi5jb20+ClJldmlld2VkLWJ5OiBBbmRy ZXcgTHVubiA8YW5kcmV3QGx1bm4uY2g+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8 ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9waHkvbWRpb19idXMuYyB8IDEg KwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9u ZXQvcGh5L21kaW9fYnVzLmMgYi9kcml2ZXJzL25ldC9waHkvbWRpb19idXMuYwppbmRleCAyZTU5 YTg0MTliMTcuLjY2YjljZmU2OTJmYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvcGh5L21kaW9f YnVzLmMKKysrIGIvZHJpdmVycy9uZXQvcGh5L21kaW9fYnVzLmMKQEAgLTM5MCw2ICszOTAsNyBA QCBpbnQgX19tZGlvYnVzX3JlZ2lzdGVyKHN0cnVjdCBtaWlfYnVzICpidXMsIHN0cnVjdCBtb2R1 bGUgKm93bmVyKQogCWlmIChJU19FUlIoZ3Bpb2QpKSB7CiAJCWRldl9lcnIoJmJ1cy0+ZGV2LCAi bWlpX2J1cyAlcyBjb3VsZG4ndCBnZXQgcmVzZXQgR1BJT1xuIiwKIAkJCWJ1cy0+aWQpOworCQlk ZXZpY2VfZGVsKCZidXMtPmRldik7CiAJCXJldHVybiBQVFJfRVJSKGdwaW9kKTsKIAl9IGVsc2UJ aWYgKGdwaW9kKSB7CiAJCWJ1cy0+cmVzZXRfZ3Bpb2QgPSBncGlvZDsKLS0gCjIuMjAuMQoKCkZy b20gN2UwMTA0ZDE2MGQ0NTE2NDhhNDBkMzc2ODU2ODg5N2M0MGIzZmI0MSBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogQ2FtZWxpYSBHcm96YSA8Y2FtZWxpYS5ncm96YUBueHAuY29tPgpE YXRlOiBUaHUsIDE3IEphbiAyMDE5IDE0OjIyOjM2ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNi8y MV0gbmV0OiBwaHk6IHBoeSBkcml2ZXIgZmVhdHVyZXMgYXJlIG1hbmRhdG9yeQoKWyBVcHN0cmVh bSBjb21taXQgM2U2NGNmN2E0MzVlZDA1MDBlM2FkYWE4YWFkYTIyNzJkM2FlOGFiYyBdCgpTaW5j ZSBwaHkgZHJpdmVyIGZlYXR1cmVzIGJlY2FtZSBhIGxpbmtfbW9kZSBiaXRtYXAsIHBoeSBkcml2 ZXJzIHRoYXQKZG9uJ3QgaGF2ZSBhIGxpc3Qgb2YgZmVhdHVyZXMgY29uZmlndXJlZCB3aWxsIGNh dXNlIHRoZSBrZXJuZWwgdG8gY3Jhc2gKd2hlbiBwcm9iZWQuCgpQcmV2ZW50IHRoZSBwaHkgZHJp dmVyIGZyb20gcmVnaXN0ZXJpbmcgaWYgdGhlIGZlYXR1cmVzIGZpZWxkIGlzIG1pc3NpbmcuCgpG aXhlczogNzE5NjU1YTE0OTcxICgibmV0OiBwaHk6IFJlcGxhY2UgcGh5IGRyaXZlciBmZWF0dXJl cyB1MzIgd2l0aCBsaW5rX21vZGUgYml0bWFwIikKUmVwb3J0ZWQtYnk6IFNjb3R0IFdvb2QgPG9z c0BidXNlcnJvci5uZXQ+ClNpZ25lZC1vZmYtYnk6IENhbWVsaWEgR3JvemEgPGNhbWVsaWEuZ3Jv emFAbnhwLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxv ZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L3BoeS9waHlfZGV2aWNlLmMgfCA1ICsrKysrCiBpbmNs dWRlL2xpbnV4L3BoeS5oICAgICAgICAgIHwgNCArKy0tCiAyIGZpbGVzIGNoYW5nZWQsIDcgaW5z ZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9waHkv cGh5X2RldmljZS5jIGIvZHJpdmVycy9uZXQvcGh5L3BoeV9kZXZpY2UuYwppbmRleCBmZDA1MWFl Nzg3Y2IuLjVkZDY2MWZiNjYyZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvcGh5L3BoeV9kZXZp Y2UuYworKysgYi9kcml2ZXJzL25ldC9waHkvcGh5X2RldmljZS5jCkBAIC0yMTk2LDYgKzIxOTYs MTEgQEAgaW50IHBoeV9kcml2ZXJfcmVnaXN0ZXIoc3RydWN0IHBoeV9kcml2ZXIgKm5ld19kcml2 ZXIsIHN0cnVjdCBtb2R1bGUgKm93bmVyKQogewogCWludCByZXR2YWw7CiAKKwlpZiAoV0FSTl9P TighbmV3X2RyaXZlci0+ZmVhdHVyZXMpKSB7CisJCXByX2VycigiJXM6IERyaXZlciBmZWF0dXJl cyBhcmUgbWlzc2luZ1xuIiwgbmV3X2RyaXZlci0+bmFtZSk7CisJCXJldHVybiAtRUlOVkFMOwor CX0KKwogCW5ld19kcml2ZXItPm1kaW9kcnYuZmxhZ3MgfD0gTURJT19ERVZJQ0VfSVNfUEhZOwog CW5ld19kcml2ZXItPm1kaW9kcnYuZHJpdmVyLm5hbWUgPSBuZXdfZHJpdmVyLT5uYW1lOwogCW5l d19kcml2ZXItPm1kaW9kcnYuZHJpdmVyLmJ1cyA9ICZtZGlvX2J1c190eXBlOwpkaWZmIC0tZ2l0 IGEvaW5jbHVkZS9saW51eC9waHkuaCBiL2luY2x1ZGUvbGludXgvcGh5LmgKaW5kZXggMzA2NjMw ZDEzNTIzLi5mNWQ0MjM1ZTM4NDQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvcGh5LmgKKysr IGIvaW5jbHVkZS9saW51eC9waHkuaApAQCAtNTAyLDggKzUwMiw4IEBAIHN0cnVjdCBwaHlfZGV2 aWNlIHsKICAqICAgb25seSB3b3JrcyBmb3IgUEhZcyB3aXRoIElEcyB3aGljaCBtYXRjaCB0aGlz IGZpZWxkCiAgKiBuYW1lOiBUaGUgZnJpZW5kbHkgbmFtZSBvZiB0aGlzIFBIWSB0eXBlCiAgKiBw aHlfaWRfbWFzazogRGVmaW5lcyB0aGUgaW1wb3J0YW50IGJpdHMgb2YgdGhlIHBoeV9pZAotICog ZmVhdHVyZXM6IEEgbGlzdCBvZiBmZWF0dXJlcyAoc3BlZWQsIGR1cGxleCwgZXRjKSBzdXBwb3J0 ZWQKLSAqICAgYnkgdGhpcyBQSFkKKyAqIGZlYXR1cmVzOiBBIG1hbmRhdG9yeSBsaXN0IG9mIGZl YXR1cmVzIChzcGVlZCwgZHVwbGV4LCBldGMpCisgKiAgIHN1cHBvcnRlZCBieSB0aGlzIFBIWQog ICogZmxhZ3M6IEEgYml0ZmllbGQgZGVmaW5pbmcgY2VydGFpbiBvdGhlciBmZWF0dXJlcyB0aGlz IFBIWQogICogICBzdXBwb3J0cyAobGlrZSBpbnRlcnJ1cHRzKQogICoKLS0gCjIuMjAuMQoKCkZy b20gNjZkZTVkNDBjMTU4NzEzYmUyN2FlM2QzYTAwNmIwNjM3MjRmZmVmNyBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogRGF2aWRlIENhcmF0dGkgPGRjYXJhdHRpQHJlZGhhdC5jb20+CkRh dGU6IFRodSwgMTAgSmFuIDIwMTkgMjA6MjE6MDIgKzAxMDAKU3ViamVjdDogW1BBVENIIDA3LzIx XSBuZXQvc2NoZWQ6IGFjdF90dW5uZWxfa2V5OiBmaXggbWVtb3J5IGxlYWsgaW4gY2FzZSBvZgog YWN0aW9uIHJlcGxhY2UKClsgVXBzdHJlYW0gY29tbWl0IDkxNzRjM2RmMWNkMTgxYzE0OTEzMTM4 ZDUwY2NiZTUzOWJiMDgzMzUgXQoKcnVubmluZyB0aGUgZm9sbG93aW5nIFREQyB0ZXN0IGNhc2Vz OgoKIDdhZmMgLSBSZXBsYWNlIHR1bm5lbF9rZXkgc2V0IGFjdGlvbiB3aXRoIGFsbCBwYXJhbWV0 ZXJzCiAzNjRkIC0gUmVwbGFjZSB0dW5uZWxfa2V5IHNldCBhY3Rpb24gd2l0aCBhbGwgcGFyYW1l dGVycyBhbmQgY29va2llCgppdCdzIHBvc3NpYmxlIHRvIHRyaWdnZXIga21lbWxlYWsgd2Fybmlu Z3MgbGlrZToKCiAgdW5yZWZlcmVuY2VkIG9iamVjdCAweGZmZmY5NDc5NzEyN2FiNDAgKHNpemUg MTkyKToKICBjb21tICJ0YyIsIHBpZCAzMjQ4LCBqaWZmaWVzIDQzMDA1NjUyOTMgKGFnZSAxMDA2 Ljg2MnMpCiAgaGV4IGR1bXAgKGZpcnN0IDMyIGJ5dGVzKToKICAgIDAwIDAwIDAwIDAwIDAwIDAw IDAwIDAwIGMwIDkzIGY5IDhhIGZmIGZmIGZmIGZmICAuLi4uLi4uLi4uLi4uLi4uCiAgICA0MSA4 NCBlZSA4OSBmZiBmZiBmZiBmZiAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAgQS4uLi4uLi4uLi4u Li4uLgogIGJhY2t0cmFjZToKICAgIFs8MDAwMDAwMDAxZTg1YjYxYz5dIHR1bm5lbF9rZXlfaW5p dCsweDMxZC8weDgyMCBbYWN0X3R1bm5lbF9rZXldCiAgICBbPDAwMDAwMDAwN2YzZjZlZTc+XSB0 Y2ZfYWN0aW9uX2luaXRfMSsweDM4NC8weDRjMAogICAgWzwwMDAwMDAwMGU4OWUzZGVkPl0gdGNm X2FjdGlvbl9pbml0KzB4MTJiLzB4MWEwCiAgICBbPDAwMDAwMDAwYzFjOGMwZjg+XSB0Y2ZfYWN0 aW9uX2FkZCsweDczLzB4MTcwCiAgICBbPDAwMDAwMDAwOTVhOWZjMjg+XSB0Y19jdGxfYWN0aW9u KzB4MTIyLzB4MTYwCiAgICBbPDAwMDAwMDAwNGJlYmVhYzU+XSBydG5ldGxpbmtfcmN2X21zZysw eDI2My8weDJkMAogICAgWzwwMDAwMDAwMDlmZDg2MmRkPl0gbmV0bGlua19yY3Zfc2tiKzB4NGEv MHgxMTAKICAgIFs8MDAwMDAwMDBiNTUxOTllNz5dIG5ldGxpbmtfdW5pY2FzdCsweDFhMC8weDI1 MAogICAgWzwwMDAwMDAwMDQ5OTZjZDIxPl0gbmV0bGlua19zZW5kbXNnKzB4MmMxLzB4M2MwCiAg ICBbPDAwMDAwMDAwNGQ2YTk0YjQ+XSBzb2NrX3NlbmRtc2crMHgzNi8weDQwCiAgICBbPDAwMDAw MDAwNWQ5ZjAyMDg+XSBfX19zeXNfc2VuZG1zZysweDI4MC8weDJmMAogICAgWzwwMDAwMDAwMGRl YzE5MDIzPl0gX19zeXNfc2VuZG1zZysweDVlLzB4YTAKICAgIFs8MDAwMDAwMDA0YjgyYWM4MT5d IGRvX3N5c2NhbGxfNjQrMHg1Yi8weDE4MAogICAgWzwwMDAwMDAwMGEwZjEyMDlhPl0gZW50cnlf U1lTQ0FMTF82NF9hZnRlcl9od2ZyYW1lKzB4NDQvMHhhOQogICAgWzwwMDAwMDAwMDI5MjZiMmFi Pl0gMHhmZmZmZmZmZmZmZmZmZmZmCgp3aGVuIHRoZSB0dW5uZWxfa2V5IGFjdGlvbiBpcyByZXBs YWNlZCwgdGhlIGtlcm5lbCBmb3JnZXRzIHRvIHJlbGVhc2UgdGhlCmRzdCBtZXRhZGF0YTogZW5z dXJlIHRoZXkgYXJlIHJlbGVhc2VkIGJ5IHR1bm5lbF9rZXlfaW5pdCgpLCB0aGUgc2FtZSB3YXkK aXQncyBkb25lIGluIHR1bm5lbF9rZXlfcmVsZWFzZSgpLgoKRml4ZXM6IGQwZjZkZDhhOTE0ZjQg KCJuZXQvc2NoZWQ6IEludHJvZHVjZSBhY3RfdHVubmVsX2tleSIpClNpZ25lZC1vZmYtYnk6IERh dmlkZSBDYXJhdHRpIDxkY2FyYXR0aUByZWRoYXQuY29tPgpBY2tlZC1ieTogQ29uZyBXYW5nIDx4 aXlvdS53YW5nY29uZ0BnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8 ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvc2NoZWQvYWN0X3R1bm5lbF9rZXkuYyB8IDE5 ICsrKysrKysrKysrLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxMSBpbnNlcnRpb25zKCspLCA4 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9hY3RfdHVubmVsX2tleS5jIGIv bmV0L3NjaGVkL2FjdF90dW5uZWxfa2V5LmMKaW5kZXggNGNjYThmMjc0NjYyLi45MDQ3MzBiOGNl OGYgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9hY3RfdHVubmVsX2tleS5jCisrKyBiL25ldC9zY2hl ZC9hY3RfdHVubmVsX2tleS5jCkBAIC0xOTcsNiArMTk3LDE1IEBAIHN0YXRpYyBjb25zdCBzdHJ1 Y3QgbmxhX3BvbGljeSB0dW5uZWxfa2V5X3BvbGljeVtUQ0FfVFVOTkVMX0tFWV9NQVggKyAxXSA9 IHsKIAlbVENBX1RVTk5FTF9LRVlfRU5DX1RUTF0gICAgICA9IHsgLnR5cGUgPSBOTEFfVTggfSwK IH07CiAKK3N0YXRpYyB2b2lkIHR1bm5lbF9rZXlfcmVsZWFzZV9wYXJhbXMoc3RydWN0IHRjZl90 dW5uZWxfa2V5X3BhcmFtcyAqcCkKK3sKKwlpZiAoIXApCisJCXJldHVybjsKKwlpZiAocC0+dGNm dF9hY3Rpb24gPT0gVENBX1RVTk5FTF9LRVlfQUNUX1NFVCkKKwkJZHN0X3JlbGVhc2UoJnAtPnRj ZnRfZW5jX21ldGFkYXRhLT5kc3QpOworCWtmcmVlX3JjdShwLCByY3UpOworfQorCiBzdGF0aWMg aW50IHR1bm5lbF9rZXlfaW5pdChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBubGF0dHIgKm5sYSwK IAkJCSAgIHN0cnVjdCBubGF0dHIgKmVzdCwgc3RydWN0IHRjX2FjdGlvbiAqKmEsCiAJCQkgICBp bnQgb3ZyLCBpbnQgYmluZCwgYm9vbCBydG5sX2hlbGQsCkBAIC0zNjAsOCArMzY5LDcgQEAgc3Rh dGljIGludCB0dW5uZWxfa2V5X2luaXQoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgbmxhdHRyICpu bGEsCiAJcmN1X3N3YXBfcHJvdGVjdGVkKHQtPnBhcmFtcywgcGFyYW1zX25ldywKIAkJCSAgIGxv Y2tkZXBfaXNfaGVsZCgmdC0+dGNmX2xvY2spKTsKIAlzcGluX3VubG9ja19iaCgmdC0+dGNmX2xv Y2spOwotCWlmIChwYXJhbXNfbmV3KQotCQlrZnJlZV9yY3UocGFyYW1zX25ldywgcmN1KTsKKwl0 dW5uZWxfa2V5X3JlbGVhc2VfcGFyYW1zKHBhcmFtc19uZXcpOwogCiAJaWYgKHJldCA9PSBBQ1Rf UF9DUkVBVEVEKQogCQl0Y2ZfaWRyX2luc2VydCh0biwgKmEpOwpAQCAtMzg1LDEyICszOTMsNyBA QCBzdGF0aWMgdm9pZCB0dW5uZWxfa2V5X3JlbGVhc2Uoc3RydWN0IHRjX2FjdGlvbiAqYSkKIAlz dHJ1Y3QgdGNmX3R1bm5lbF9rZXlfcGFyYW1zICpwYXJhbXM7CiAKIAlwYXJhbXMgPSByY3VfZGVy ZWZlcmVuY2VfcHJvdGVjdGVkKHQtPnBhcmFtcywgMSk7Ci0JaWYgKHBhcmFtcykgewotCQlpZiAo cGFyYW1zLT50Y2Z0X2FjdGlvbiA9PSBUQ0FfVFVOTkVMX0tFWV9BQ1RfU0VUKQotCQkJZHN0X3Jl bGVhc2UoJnBhcmFtcy0+dGNmdF9lbmNfbWV0YWRhdGEtPmRzdCk7Ci0KLQkJa2ZyZWVfcmN1KHBh cmFtcywgcmN1KTsKLQl9CisJdHVubmVsX2tleV9yZWxlYXNlX3BhcmFtcyhwYXJhbXMpOwogfQog CiBzdGF0aWMgaW50IHR1bm5lbF9rZXlfZ2VuZXZlX29wdHNfZHVtcChzdHJ1Y3Qgc2tfYnVmZiAq c2tiLAotLSAKMi4yMC4xCgoKRnJvbSA4M2IyMzkwYjBmZTFiZmY0ODhhZDU4MzAwNmVhZjMwNDg1 M2JiNzA5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBDb25nIFdhbmcgPHhpeW91Lndh bmdjb25nQGdtYWlsLmNvbT4KRGF0ZTogRnJpLCAxMSBKYW4gMjAxOSAxODo1NTo0MiAtMDgwMApT dWJqZWN0OiBbUEFUQ0ggMDgvMjFdIG5ldF9zY2hlZDogcmVmZXRjaCBza2IgcHJvdG9jb2wgZm9y IGVhY2ggZmlsdGVyCgpbIFVwc3RyZWFtIGNvbW1pdCBjZDBjNGU3MGZjMGNjZmE3MDVjZGY1NWVm YjI3NTE5Y2U5MzM3YTI2IF0KCk1hcnRpbiByZXBvcnRlZCBhIHNldCBvZiBmaWx0ZXJzIGRvbid0 IHdvcmsgYWZ0ZXIgY2hhbmdpbmcKZnJvbSByZWNsYXNzaWZ5IHRvIGNvbnRpbnVlLiBMb29raW5n IGludG8gdGhlIGNvZGUsIGl0Cmxvb2tzIGxpa2Ugc2tiIHByb3RvY29sIGlzIG5vdCBhbHdheXMg ZmV0Y2hlZCBmb3IgZWFjaAppdGVyYXRpb24gb2YgdGhlIGZpbHRlcnMuIEJ1dCwgYXMgZGVtb25z dHJhdGVkIGJ5IE1hcnRpbiwKVEMgYWN0aW9ucyBjb3VsZCBtb2RpZnkgc2tiLT5wcm90b2NvbCwg Zm9yIGV4YW1wbGUgYWN0X3ZsYW4sCnRoaXMgbWVhbnMgd2UgaGF2ZSB0byByZWZldGNoIHNrYiBw cm90b2NvbCBpbiBlYWNoIGl0ZXJhdGlvbiwKcmF0aGVyIHRoYW4gdXNpbmcgdGhlIG9uZSB3ZSBm ZXRjaCBpbiB0aGUgYmVnaW5uaW5nIG9mIHRoZSBsb29wLgoKVGhpcyBidWcgaXMgX25vdF8gaW50 cm9kdWNlZCBieSBjb21taXQgM2IzYWU4ODAyNjZkCigibmV0OiBzY2hlZDogY29uc29saWRhdGUg dGNfY2xhc3NpZnl7LF9jb21wYXR9IiksIHRlY2huaWNhbGx5LAppZiBhY3RfdmxhbiBpcyB0aGUg b25seSBhY3Rpb24gdGhhdCBtb2RpZmllcyBza2IgcHJvdG9jb2wsIHRoZW4KaXQgaXMgY29tbWl0 IGM3ZTJiOTY4OWVmOCAoInNjaGVkOiBpbnRyb2R1Y2UgdmxhbiBhY3Rpb24iKSB3aGljaAppbnRy b2R1Y2VkIHRoaXMgYnVnLgoKUmVwb3J0ZWQtYnk6IE1hcnRpbiBPbHNzb24gPG1hcnRpbi5vbHNz b24rbmV0ZGV2QHNlbnRvcnNlY3VyaXR5LmNvbT4KQ2M6IEphbWFsIEhhZGkgU2FsaW0gPGpoc0Bt b2phdGF0dS5jb20+CkNjOiBKaXJpIFBpcmtvIDxqaXJpQHJlc251bGxpLnVzPgpTaWduZWQtb2Zm LWJ5OiBDb25nIFdhbmcgPHhpeW91Lndhbmdjb25nQGdtYWlsLmNvbT4KQWNrZWQtYnk6IEphbWFs IEhhZGkgU2FsaW0gPGpoc0Btb2phdGF0dS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1p bGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvc2NoZWQvY2xzX2FwaS5jIHwgMyAr LS0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9uZXQvc2NoZWQvY2xzX2FwaS5jIGIvbmV0L3NjaGVkL2Nsc19hcGkuYwppbmRleCBm NDI3YTFlMDBlN2UuLjFjNDQzNjUyM2FhNSAxMDA2NDQKLS0tIGEvbmV0L3NjaGVkL2Nsc19hcGku YworKysgYi9uZXQvc2NoZWQvY2xzX2FwaS5jCkBAIC0xMDUzLDcgKzEwNTMsNiBAQCBzdGF0aWMg aW50IHRjZl9ibG9ja19jYl9jYWxsKHN0cnVjdCB0Y2ZfYmxvY2sgKmJsb2NrLCBlbnVtIHRjX3Nl dHVwX3R5cGUgdHlwZSwKIGludCB0Y2ZfY2xhc3NpZnkoc3RydWN0IHNrX2J1ZmYgKnNrYiwgY29u c3Qgc3RydWN0IHRjZl9wcm90byAqdHAsCiAJCSBzdHJ1Y3QgdGNmX3Jlc3VsdCAqcmVzLCBib29s IGNvbXBhdF9tb2RlKQogewotCV9fYmUxNiBwcm90b2NvbCA9IHRjX3NrYl9wcm90b2NvbChza2Ip OwogI2lmZGVmIENPTkZJR19ORVRfQ0xTX0FDVAogCWNvbnN0IGludCBtYXhfcmVjbGFzc2lmeV9s b29wID0gNDsKIAljb25zdCBzdHJ1Y3QgdGNmX3Byb3RvICpvcmlnX3RwID0gdHA7CkBAIC0xMDYz LDYgKzEwNjIsNyBAQCBpbnQgdGNmX2NsYXNzaWZ5KHN0cnVjdCBza19idWZmICpza2IsIGNvbnN0 IHN0cnVjdCB0Y2ZfcHJvdG8gKnRwLAogcmVjbGFzc2lmeToKICNlbmRpZgogCWZvciAoOyB0cDsg dHAgPSByY3VfZGVyZWZlcmVuY2VfYmgodHAtPm5leHQpKSB7CisJCV9fYmUxNiBwcm90b2NvbCA9 IHRjX3NrYl9wcm90b2NvbChza2IpOwogCQlpbnQgZXJyOwogCiAJCWlmICh0cC0+cHJvdG9jb2wg IT0gcHJvdG9jb2wgJiYKQEAgLTEwOTUsNyArMTA5NSw2IEBAIGludCB0Y2ZfY2xhc3NpZnkoc3Ry dWN0IHNrX2J1ZmYgKnNrYiwgY29uc3Qgc3RydWN0IHRjZl9wcm90byAqdHAsCiAJfQogCiAJdHAg PSBmaXJzdF90cDsKLQlwcm90b2NvbCA9IHRjX3NrYl9wcm90b2NvbChza2IpOwogCWdvdG8gcmVj bGFzc2lmeTsKICNlbmRpZgogfQotLSAKMi4yMC4xCgoKRnJvbSAxYzMzYTM3ZDFiYzBkM2RhOGUy ZGMyYzIzYjg4NDY5NmU3YzgyM2M3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBSb3Nz IExhZ2Vyd2FsbCA8cm9zcy5sYWdlcndhbGxAY2l0cml4LmNvbT4KRGF0ZTogTW9uLCAxNCBKYW4g MjAxOSAwOToxNjo1NiArMDAwMApTdWJqZWN0OiBbUEFUQ0ggMDkvMjFdIG9wZW52c3dpdGNoOiBB dm9pZCBPT0IgcmVhZCB3aGVuIHBhcnNpbmcgZmxvdyBubGF0dHJzCgpbIFVwc3RyZWFtIGNvbW1p dCAwNGE0YWYzMzRiOTcxODE0ZWVkZjRlNGE0MTMzNDNhZDMyODdkOWE5IF0KCkZvciBuZXN0ZWQg YW5kIHZhcmlhYmxlIGF0dHJpYnV0ZXMsIHRoZSBleHBlY3RlZCBsZW5ndGggb2YgYW4gYXR0cmli dXRlCmlzIG5vdCBrbm93biBhbmQgbWFya2VkIGJ5IGEgbmVnYXRpdmUgbnVtYmVyLiAgVGhpcyBy ZXN1bHRzIGluIGFuIE9PQgpyZWFkIHdoZW4gdGhlIGV4cGVjdGVkIGxlbmd0aCBpcyBsYXRlciB1 c2VkIHRvIGNoZWNrIGlmIHRoZSBhdHRyaWJ1dGUgaXMKYWxsIHplcm9zLiBGaXggdGhpcyBieSB1 c2luZyB0aGUgYWN0dWFsIGxlbmd0aCBvZiB0aGUgYXR0cmlidXRlIHJhdGhlcgp0aGFuIHRoZSBl eHBlY3RlZCBsZW5ndGguCgpTaWduZWQtb2ZmLWJ5OiBSb3NzIExhZ2Vyd2FsbCA8cm9zcy5sYWdl cndhbGxAY2l0cml4LmNvbT4KQWNrZWQtYnk6IFByYXZpbiBCIFNoZWxhciA8cHNoZWxhckBvdm4u b3JnPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ Ci0tLQogbmV0L29wZW52c3dpdGNoL2Zsb3dfbmV0bGluay5jIHwgMiArLQogMSBmaWxlIGNoYW5n ZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L29wZW52 c3dpdGNoL2Zsb3dfbmV0bGluay5jIGIvbmV0L29wZW52c3dpdGNoL2Zsb3dfbmV0bGluay5jCmlu ZGV4IDg2NWVjZWY2ODE5Ni4uYzdiNjAxMGIyYzA5IDEwMDY0NAotLS0gYS9uZXQvb3BlbnZzd2l0 Y2gvZmxvd19uZXRsaW5rLmMKKysrIGIvbmV0L29wZW52c3dpdGNoL2Zsb3dfbmV0bGluay5jCkBA IC01MDAsNyArNTAwLDcgQEAgc3RhdGljIGludCBfX3BhcnNlX2Zsb3dfbmxhdHRycyhjb25zdCBz dHJ1Y3QgbmxhdHRyICphdHRyLAogCQkJcmV0dXJuIC1FSU5WQUw7CiAJCX0KIAotCQlpZiAoIW56 IHx8ICFpc19hbGxfemVybyhubGFfZGF0YShubGEpLCBleHBlY3RlZF9sZW4pKSB7CisJCWlmICgh bnogfHwgIWlzX2FsbF96ZXJvKG5sYV9kYXRhKG5sYSksIG5sYV9sZW4obmxhKSkpIHsKIAkJCWF0 dHJzIHw9IDEgPDwgdHlwZTsKIAkJCWFbdHlwZV0gPSBubGE7CiAJCX0KLS0gCjIuMjAuMQoKCkZy b20gMDI4ZWM4OTRhMDg2YjllZjZlYWY0OWUyNDcxMWI2NGJlMTBhYTc2OCBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogSmFzb24gV2FuZyA8amFzb3dhbmdAcmVkaGF0LmNvbT4KRGF0ZTog V2VkLCAxNiBKYW4gMjAxOSAxNjo1NDo0MiArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMTAvMjFdIHZo b3N0OiBsb2cgZGlydHkgcGFnZSBjb3JyZWN0bHkKClsgVXBzdHJlYW0gY29tbWl0IGNjNWU3MTA3 NTk0NzBiYzdmM2M2MWQxMWZkNTQ1ODZmMTVmZGJkZjQgXQoKVmhvc3QgZGlydHkgcGFnZSBsb2dn aW5nIEFQSSBpcyBkZXNpZ25lZCB0byBzeW5jIHRocm91Z2ggR1BBLiBCdXQgd2UKdHJ5IHRvIGxv ZyBHSU9WQSB3aGVuIGRldmljZSBJT1RMQiBpcyBlbmFibGVkLiBUaGlzIGlzIHdyb25nIGFuZCBt YXkKbGVhZCB0byBtaXNzaW5nIGRhdGEgYWZ0ZXIgbWlncmF0aW9uLgoKVG8gc29sdmUgdGhpcyBp c3N1ZSwgd2hlbiBsb2dnaW5nIHdpdGggZGV2aWNlIElPVExCIGVuYWJsZWQsIHdlIHdpbGw6Cgox KSByZXVzZSB0aGUgZGV2aWNlIElPVExCIHRyYW5zbGF0aW9uIHJlc3VsdCBvZiBHSU9WQS0+SFZB IG1hcHBpbmcgdG8KICAgZ2V0IEhWQSwgZm9yIHdyaXRhYmxlIGRlc2NyaXB0b3IsIGdldCBIVkEg dGhyb3VnaCBpb3ZlYy4gRm9yIHVzZWQKICAgcmluZyB1cGRhdGUsIHRyYW5zbGF0ZSBpdHMgR0lP VkEgdG8gSFZBCjIpIHRyYXZlcnNlIHRoZSBHUEEtPkhWQSBtYXBwaW5nIHRvIGdldCB0aGUgcG9z c2libGUgR1BBIGFuZCBsb2cKICAgdGhyb3VnaCBHUEEuIFBheSBhdHRlbnRpb24gdGhpcyByZXZl cnNlIG1hcHBpbmcgaXMgbm90IGd1YXJhbnRlZWQKICAgdG8gYmUgdW5pcXVlLCBzbyB3ZSBzaG91 bGQgbG9nIGVhY2ggcG9zc2libGUgR1BBIGluIHRoaXMgY2FzZS4KClRoaXMgZml4IHRoZSBmYWls dXJlIG9mIHNjcCB0byBndWVzdCBkdXJpbmcgbWlncmF0aW9uLiBJbiAtbmV4dCwgd2UKd2lsbCBw cm9iYWJseSBzdXBwb3J0IHBhc3NpbmcgR0lPVkEtPkdQQSBpbnN0ZWFkIG9mIEdJT1ZBLT5IVkEu CgpGaXhlczogNmIxZTZjYzc4NTViICgidmhvc3Q6IG5ldyBkZXZpY2UgSU9UTEIgQVBJIikKUmVw b3J0ZWQtYnk6IEppbnRhY2sgTGltIDxqaW50YWNrQGNzLmNvbHVtYmlhLmVkdT4KQ2M6IEppbnRh Y2sgTGltIDxqaW50YWNrQGNzLmNvbHVtYmlhLmVkdT4KU2lnbmVkLW9mZi1ieTogSmFzb24gV2Fu ZyA8amFzb3dhbmdAcmVkaGF0LmNvbT4KQWNrZWQtYnk6IE1pY2hhZWwgUy4gVHNpcmtpbiA8bXN0 QHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL3Zob3N0L25ldC5jICAgfCAgMyArLQogZHJpdmVycy92aG9z dC92aG9zdC5jIHwgOTcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0t LQogZHJpdmVycy92aG9zdC92aG9zdC5oIHwgIDMgKy0KIDMgZmlsZXMgY2hhbmdlZCwgODcgaW5z ZXJ0aW9ucygrKSwgMTYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy92aG9zdC9u ZXQuYyBiL2RyaXZlcnMvdmhvc3QvbmV0LmMKaW5kZXggYWQ3YTZmNDc1YTQ0Li43ODRkZjJiNDk2 MjggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmhvc3QvbmV0LmMKKysrIGIvZHJpdmVycy92aG9zdC9u ZXQuYwpAQCAtMTE5Miw3ICsxMTkyLDggQEAgc3RhdGljIHZvaWQgaGFuZGxlX3J4KHN0cnVjdCB2 aG9zdF9uZXQgKm5ldCkKIAkJaWYgKG52cS0+ZG9uZV9pZHggPiBWSE9TVF9ORVRfQkFUQ0gpCiAJ CQl2aG9zdF9uZXRfc2lnbmFsX3VzZWQobnZxKTsKIAkJaWYgKHVubGlrZWx5KHZxX2xvZykpCi0J CQl2aG9zdF9sb2dfd3JpdGUodnEsIHZxX2xvZywgbG9nLCB2aG9zdF9sZW4pOworCQkJdmhvc3Rf bG9nX3dyaXRlKHZxLCB2cV9sb2csIGxvZywgdmhvc3RfbGVuLAorCQkJCQl2cS0+aW92LCBpbik7 CiAJCXRvdGFsX2xlbiArPSB2aG9zdF9sZW47CiAJCWlmICh1bmxpa2VseSh2aG9zdF9leGNlZWRz X3dlaWdodCgrK3JlY3ZfcGt0cywgdG90YWxfbGVuKSkpIHsKIAkJCXZob3N0X3BvbGxfcXVldWUo JnZxLT5wb2xsKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmhvc3Qvdmhvc3QuYyBiL2RyaXZlcnMv dmhvc3Qvdmhvc3QuYwppbmRleCA1NWU1YWE2NjJhZDUuLmM2NmZjODMwOGI1ZSAxMDA2NDQKLS0t IGEvZHJpdmVycy92aG9zdC92aG9zdC5jCisrKyBiL2RyaXZlcnMvdmhvc3Qvdmhvc3QuYwpAQCAt MTczMywxMyArMTczMyw4NyBAQCBzdGF0aWMgaW50IGxvZ193cml0ZSh2b2lkIF9fdXNlciAqbG9n X2Jhc2UsCiAJcmV0dXJuIHI7CiB9CiAKK3N0YXRpYyBpbnQgbG9nX3dyaXRlX2h2YShzdHJ1Y3Qg dmhvc3RfdmlydHF1ZXVlICp2cSwgdTY0IGh2YSwgdTY0IGxlbikKK3sKKwlzdHJ1Y3Qgdmhvc3Rf dW1lbSAqdW1lbSA9IHZxLT51bWVtOworCXN0cnVjdCB2aG9zdF91bWVtX25vZGUgKnU7CisJdTY0 IHN0YXJ0LCBlbmQsIGwsIG1pbjsKKwlpbnQgcjsKKwlib29sIGhpdCA9IGZhbHNlOworCisJd2hp bGUgKGxlbikgeworCQltaW4gPSBsZW47CisJCS8qIE1vcmUgdGhhbiBvbmUgR1BBcyBjYW4gYmUg bWFwcGVkIGludG8gYSBzaW5nbGUgSFZBLiBTbworCQkgKiBpdGVyYXRlIGFsbCBwb3NzaWJsZSB1 bWVtcyBoZXJlIHRvIGJlIHNhZmUuCisJCSAqLworCQlsaXN0X2Zvcl9lYWNoX2VudHJ5KHUsICZ1 bWVtLT51bWVtX2xpc3QsIGxpbmspIHsKKwkJCWlmICh1LT51c2Vyc3BhY2VfYWRkciA+IGh2YSAt IDEgKyBsZW4gfHwKKwkJCSAgICB1LT51c2Vyc3BhY2VfYWRkciAtIDEgKyB1LT5zaXplIDwgaHZh KQorCQkJCWNvbnRpbnVlOworCQkJc3RhcnQgPSBtYXgodS0+dXNlcnNwYWNlX2FkZHIsIGh2YSk7 CisJCQllbmQgPSBtaW4odS0+dXNlcnNwYWNlX2FkZHIgLSAxICsgdS0+c2l6ZSwKKwkJCQkgIGh2 YSAtIDEgKyBsZW4pOworCQkJbCA9IGVuZCAtIHN0YXJ0ICsgMTsKKwkJCXIgPSBsb2dfd3JpdGUo dnEtPmxvZ19iYXNlLAorCQkJCSAgICAgIHUtPnN0YXJ0ICsgc3RhcnQgLSB1LT51c2Vyc3BhY2Vf YWRkciwKKwkJCQkgICAgICBsKTsKKwkJCWlmIChyIDwgMCkKKwkJCQlyZXR1cm4gcjsKKwkJCWhp dCA9IHRydWU7CisJCQltaW4gPSBtaW4obCwgbWluKTsKKwkJfQorCisJCWlmICghaGl0KQorCQkJ cmV0dXJuIC1FRkFVTFQ7CisKKwkJbGVuIC09IG1pbjsKKwkJaHZhICs9IG1pbjsKKwl9CisKKwly ZXR1cm4gMDsKK30KKworc3RhdGljIGludCBsb2dfdXNlZChzdHJ1Y3Qgdmhvc3RfdmlydHF1ZXVl ICp2cSwgdTY0IHVzZWRfb2Zmc2V0LCB1NjQgbGVuKQoreworCXN0cnVjdCBpb3ZlYyBpb3ZbNjRd OworCWludCBpLCByZXQ7CisKKwlpZiAoIXZxLT5pb3RsYikKKwkJcmV0dXJuIGxvZ193cml0ZSh2 cS0+bG9nX2Jhc2UsIHZxLT5sb2dfYWRkciArIHVzZWRfb2Zmc2V0LCBsZW4pOworCisJcmV0ID0g dHJhbnNsYXRlX2Rlc2ModnEsICh1aW50cHRyX3QpdnEtPnVzZWQgKyB1c2VkX29mZnNldCwKKwkJ CSAgICAgbGVuLCBpb3YsIDY0LCBWSE9TVF9BQ0NFU1NfV08pOworCWlmIChyZXQpCisJCXJldHVy biByZXQ7CisKKwlmb3IgKGkgPSAwOyBpIDwgcmV0OyBpKyspIHsKKwkJcmV0ID0gbG9nX3dyaXRl X2h2YSh2cSwJKHVpbnRwdHJfdClpb3ZbaV0uaW92X2Jhc2UsCisJCQkJICAgIGlvdltpXS5pb3Zf bGVuKTsKKwkJaWYgKHJldCkKKwkJCXJldHVybiByZXQ7CisJfQorCisJcmV0dXJuIDA7Cit9CisK IGludCB2aG9zdF9sb2dfd3JpdGUoc3RydWN0IHZob3N0X3ZpcnRxdWV1ZSAqdnEsIHN0cnVjdCB2 aG9zdF9sb2cgKmxvZywKLQkJICAgIHVuc2lnbmVkIGludCBsb2dfbnVtLCB1NjQgbGVuKQorCQkg ICAgdW5zaWduZWQgaW50IGxvZ19udW0sIHU2NCBsZW4sIHN0cnVjdCBpb3ZlYyAqaW92LCBpbnQg Y291bnQpCiB7CiAJaW50IGksIHI7CiAKIAkvKiBNYWtlIHN1cmUgZGF0YSB3cml0dGVuIGlzIHNl ZW4gYmVmb3JlIGxvZy4gKi8KIAlzbXBfd21iKCk7CisKKwlpZiAodnEtPmlvdGxiKSB7CisJCWZv ciAoaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7CisJCQlyID0gbG9nX3dyaXRlX2h2YSh2cSwgKHVp bnRwdHJfdClpb3ZbaV0uaW92X2Jhc2UsCisJCQkJCSAgaW92W2ldLmlvdl9sZW4pOworCQkJaWYg KHIgPCAwKQorCQkJCXJldHVybiByOworCQl9CisJCXJldHVybiAwOworCX0KKwogCWZvciAoaSA9 IDA7IGkgPCBsb2dfbnVtOyArK2kpIHsKIAkJdTY0IGwgPSBtaW4obG9nW2ldLmxlbiwgbGVuKTsK IAkJciA9IGxvZ193cml0ZSh2cS0+bG9nX2Jhc2UsIGxvZ1tpXS5hZGRyLCBsKTsKQEAgLTE3Njks OSArMTg0Myw4IEBAIHN0YXRpYyBpbnQgdmhvc3RfdXBkYXRlX3VzZWRfZmxhZ3Moc3RydWN0IHZo b3N0X3ZpcnRxdWV1ZSAqdnEpCiAJCXNtcF93bWIoKTsKIAkJLyogTG9nIHVzZWQgZmxhZyB3cml0 ZS4gKi8KIAkJdXNlZCA9ICZ2cS0+dXNlZC0+ZmxhZ3M7Ci0JCWxvZ193cml0ZSh2cS0+bG9nX2Jh c2UsIHZxLT5sb2dfYWRkciArCi0JCQkgICh1c2VkIC0gKHZvaWQgX191c2VyICopdnEtPnVzZWQp LAotCQkJICBzaXplb2YgdnEtPnVzZWQtPmZsYWdzKTsKKwkJbG9nX3VzZWQodnEsICh1c2VkIC0g KHZvaWQgX191c2VyICopdnEtPnVzZWQpLAorCQkJIHNpemVvZiB2cS0+dXNlZC0+ZmxhZ3MpOwog CQlpZiAodnEtPmxvZ19jdHgpCiAJCQlldmVudGZkX3NpZ25hbCh2cS0+bG9nX2N0eCwgMSk7CiAJ fQpAQCAtMTc4OSw5ICsxODYyLDggQEAgc3RhdGljIGludCB2aG9zdF91cGRhdGVfYXZhaWxfZXZl bnQoc3RydWN0IHZob3N0X3ZpcnRxdWV1ZSAqdnEsIHUxNiBhdmFpbF9ldmVudCkKIAkJc21wX3dt YigpOwogCQkvKiBMb2cgYXZhaWwgZXZlbnQgd3JpdGUgKi8KIAkJdXNlZCA9IHZob3N0X2F2YWls X2V2ZW50KHZxKTsKLQkJbG9nX3dyaXRlKHZxLT5sb2dfYmFzZSwgdnEtPmxvZ19hZGRyICsKLQkJ CSAgKHVzZWQgLSAodm9pZCBfX3VzZXIgKil2cS0+dXNlZCksCi0JCQkgIHNpemVvZiAqdmhvc3Rf YXZhaWxfZXZlbnQodnEpKTsKKwkJbG9nX3VzZWQodnEsICh1c2VkIC0gKHZvaWQgX191c2VyICop dnEtPnVzZWQpLAorCQkJIHNpemVvZiAqdmhvc3RfYXZhaWxfZXZlbnQodnEpKTsKIAkJaWYgKHZx LT5sb2dfY3R4KQogCQkJZXZlbnRmZF9zaWduYWwodnEtPmxvZ19jdHgsIDEpOwogCX0KQEAgLTIx OTEsMTAgKzIyNjMsOCBAQCBzdGF0aWMgaW50IF9fdmhvc3RfYWRkX3VzZWRfbihzdHJ1Y3Qgdmhv c3RfdmlydHF1ZXVlICp2cSwKIAkJLyogTWFrZSBzdXJlIGRhdGEgaXMgc2VlbiBiZWZvcmUgbG9n LiAqLwogCQlzbXBfd21iKCk7CiAJCS8qIExvZyB1c2VkIHJpbmcgZW50cnkgd3JpdGUuICovCi0J CWxvZ193cml0ZSh2cS0+bG9nX2Jhc2UsCi0JCQkgIHZxLT5sb2dfYWRkciArCi0JCQkgICAoKHZv aWQgX191c2VyICopdXNlZCAtICh2b2lkIF9fdXNlciAqKXZxLT51c2VkKSwKLQkJCSAgY291bnQg KiBzaXplb2YgKnVzZWQpOworCQlsb2dfdXNlZCh2cSwgKCh2b2lkIF9fdXNlciAqKXVzZWQgLSAo dm9pZCBfX3VzZXIgKil2cS0+dXNlZCksCisJCQkgY291bnQgKiBzaXplb2YgKnVzZWQpOwogCX0K IAlvbGQgPSB2cS0+bGFzdF91c2VkX2lkeDsKIAluZXcgPSAodnEtPmxhc3RfdXNlZF9pZHggKz0g Y291bnQpOwpAQCAtMjIzNiw5ICsyMzA2LDggQEAgaW50IHZob3N0X2FkZF91c2VkX24oc3RydWN0 IHZob3N0X3ZpcnRxdWV1ZSAqdnEsIHN0cnVjdCB2cmluZ191c2VkX2VsZW0gKmhlYWRzLAogCQkv KiBNYWtlIHN1cmUgdXNlZCBpZHggaXMgc2VlbiBiZWZvcmUgbG9nLiAqLwogCQlzbXBfd21iKCk7 CiAJCS8qIExvZyB1c2VkIGluZGV4IHVwZGF0ZS4gKi8KLQkJbG9nX3dyaXRlKHZxLT5sb2dfYmFz ZSwKLQkJCSAgdnEtPmxvZ19hZGRyICsgb2Zmc2V0b2Yoc3RydWN0IHZyaW5nX3VzZWQsIGlkeCks Ci0JCQkgIHNpemVvZiB2cS0+dXNlZC0+aWR4KTsKKwkJbG9nX3VzZWQodnEsIG9mZnNldG9mKHN0 cnVjdCB2cmluZ191c2VkLCBpZHgpLAorCQkJIHNpemVvZiB2cS0+dXNlZC0+aWR4KTsKIAkJaWYg KHZxLT5sb2dfY3R4KQogCQkJZXZlbnRmZF9zaWduYWwodnEtPmxvZ19jdHgsIDEpOwogCX0KZGlm ZiAtLWdpdCBhL2RyaXZlcnMvdmhvc3Qvdmhvc3QuaCBiL2RyaXZlcnMvdmhvc3Qvdmhvc3QuaApp bmRleCA0NjZlZjc1NDIyOTEuLjFiNjc1ZGFkNWUwNSAxMDA2NDQKLS0tIGEvZHJpdmVycy92aG9z dC92aG9zdC5oCisrKyBiL2RyaXZlcnMvdmhvc3Qvdmhvc3QuaApAQCAtMjA1LDcgKzIwNSw4IEBA IGJvb2wgdmhvc3RfdnFfYXZhaWxfZW1wdHkoc3RydWN0IHZob3N0X2RldiAqLCBzdHJ1Y3Qgdmhv c3RfdmlydHF1ZXVlICopOwogYm9vbCB2aG9zdF9lbmFibGVfbm90aWZ5KHN0cnVjdCB2aG9zdF9k ZXYgKiwgc3RydWN0IHZob3N0X3ZpcnRxdWV1ZSAqKTsKIAogaW50IHZob3N0X2xvZ193cml0ZShz dHJ1Y3Qgdmhvc3RfdmlydHF1ZXVlICp2cSwgc3RydWN0IHZob3N0X2xvZyAqbG9nLAotCQkgICAg dW5zaWduZWQgaW50IGxvZ19udW0sIHU2NCBsZW4pOworCQkgICAgdW5zaWduZWQgaW50IGxvZ19u dW0sIHU2NCBsZW4sCisJCSAgICBzdHJ1Y3QgaW92ZWMgKmlvdiwgaW50IGNvdW50KTsKIGludCB2 cV9pb3RsYl9wcmVmZXRjaChzdHJ1Y3Qgdmhvc3RfdmlydHF1ZXVlICp2cSk7CiAKIHN0cnVjdCB2 aG9zdF9tc2dfbm9kZSAqdmhvc3RfbmV3X21zZyhzdHJ1Y3Qgdmhvc3RfdmlydHF1ZXVlICp2cSwg aW50IHR5cGUpOwotLSAKMi4yMC4xCgoKRnJvbSBmMDc3MTA1MjcxNjg3ODFhY2U3MzNkYmFhODQw YzU3ZWVlN2JjODE5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBOaXIgRG90YW4gPG5p cmRAbWVsbGFub3guY29tPgpEYXRlOiBGcmksIDE4IEphbiAyMDE5IDE1OjU3OjU2ICswMDAwClN1 YmplY3Q6IFtQQVRDSCAxMS8yMV0gbWx4c3c6IHBjaTogSW5jcmVhc2UgUENJIFNXIHJlc2V0IHRp bWVvdXQKClsgVXBzdHJlYW0gY29tbWl0IGQyZjM3MmJhMDkxNGU1NzIyYWMyOGUxNWYyZWQyZGI2 MWJjZjBlNDQgXQoKU3BlY3RydW0tMiBQSFkgbGF5ZXIgaW50cm9kdWNlcyBhIGNhbGlicmF0aW9u IHBlcmlvZCB3aGljaCBpcyBhIHBhcnQgb2YgdGhlClNwZWN0cnVtLTIgZmlybXdhcmUgYm9vdCBw cm9jZXNzLiBIZW5jZSBpbmNyZWFzZSB0aGUgU1cgdGltZW91dCB3YWl0aW5nIGZvcgp0aGUgZmly bXdhcmUgdG8gY29tZSBvdXQgb2YgYm9vdC4gVGhpcyBkb2VzIG5vdCBpbmNyZWFzZSBzeXN0ZW0g Ym9vdCB0aW1lCmluIGNhc2VzIHdoZXJlIHRoZSBmaXJtd2FyZSBQSFkgY2FsaWJyYXRpb24gcHJv Y2VzcyBpcyBkb25lIHF1aWNrbHkuCgpGaXhlczogYzNhYjQzNTQ2NmQ1ICgibWx4c3c6IHNwZWN0 cnVtOiBFeHRlbmQgdG8gc3VwcG9ydCBTcGVjdHJ1bS0yIEFTSUMiKQpTaWduZWQtb2ZmLWJ5OiBO aXIgRG90YW4gPG5pcmRAbWVsbGFub3guY29tPgpBY2tlZC1ieTogSmlyaSBQaXJrbyA8amlyaUBt ZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IElkbyBTY2hpbW1lbCA8aWRvc2NoQG1lbGxhbm94 LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0 PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L3BjaV9ody5oIHwgMiAr LQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvcGNpX2h3LmggYi9kcml2 ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9wY2lfaHcuaAppbmRleCBiYjk5ZjZkNDFm ZTAuLjljNjAxYzE3ZjdhZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFu b3gvbWx4c3cvcGNpX2h3LmgKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4 c3cvcGNpX2h3LmgKQEAgLTI3LDcgKzI3LDcgQEAKIAogI2RlZmluZSBNTFhTV19QQ0lfU1dfUkVT RVQJCQkweEYwMDEwCiAjZGVmaW5lIE1MWFNXX1BDSV9TV19SRVNFVF9SU1RfQklUCQlCSVQoMCkK LSNkZWZpbmUgTUxYU1dfUENJX1NXX1JFU0VUX1RJTUVPVVRfTVNFQ1MJNTAwMAorI2RlZmluZSBN TFhTV19QQ0lfU1dfUkVTRVRfVElNRU9VVF9NU0VDUwkxMzAwMAogI2RlZmluZSBNTFhTV19QQ0lf U1dfUkVTRVRfV0FJVF9NU0VDUwkJMTAwCiAjZGVmaW5lIE1MWFNXX1BDSV9GV19SRUFEWQkJCTB4 QTE4NDQKICNkZWZpbmUgTUxYU1dfUENJX0ZXX1JFQURZX01BU0sJCQkweEZGRkYKLS0gCjIuMjAu MQoKCkZyb20gZWM4Yzk0NTEyZDVkNGNlYjQ2NWI3ODc5Zjg0ZWZiNTgxZGIyMDM0YyBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSWRvIFNjaGltbWVsIDxpZG9zY2hAbWVsbGFub3guY29t PgpEYXRlOiBXZWQsIDkgSmFuIDIwMTkgMDk6NTc6MzkgKzAwMDAKU3ViamVjdDogW1BBVENIIDEy LzIxXSBuZXQ6IGlwdjQ6IEZpeCBtZW1vcnkgbGVhayBpbiBuZXR3b3JrIG5hbWVzcGFjZQogZGlz bWFudGxlCgpbIFVwc3RyZWFtIGNvbW1pdCBmOTdmNGRkOGIzYmI5ZDA5OTNkMjQ5MWUwZjIyMDI0 YzY4MTA5MTg0IF0KCklQdjQgcm91dGluZyB0YWJsZXMgYXJlIGZsdXNoZWQgaW4gdHdvIGNhc2Vz OgoKMS4gSW4gcmVzcG9uc2UgdG8gZXZlbnRzIGluIHRoZSBuZXRkZXYgYW5kIGluZXRhZGRyIG5v dGlmaWNhdGlvbiBjaGFpbnMKMi4gV2hlbiBhIG5ldHdvcmsgbmFtZXNwYWNlIGlzIGJlaW5nIGRp c21hbnRsZWQKCkluIGJvdGggY2FzZXMgb25seSByb3V0ZXMgYXNzb2NpYXRlZCB3aXRoIGEgZGVh ZCBuZXh0aG9wIGdyb3VwIGFyZQpmbHVzaGVkLiBIb3dldmVyLCBhIG5leHRob3AgZ3JvdXAgd2ls bCBvbmx5IGJlIG1hcmtlZCBhcyBkZWFkIGluIGNhc2UgaXQKaXMgcG9wdWxhdGVkIHdpdGggYWN0 dWFsIG5leHRob3BzIHVzaW5nIGEgbmV4dGhvcCBkZXZpY2UuIFRoaXMgaXMgbm90CnRoZSBjYXNl IHdoZW4gdGhlIHJvdXRlIGluIHF1ZXN0aW9uIGlzIGFuIGVycm9yIHJvdXRlIChlLmcuLAonYmxh Y2tob2xlJywgJ3VucmVhY2hhYmxlJykuCgpUaGVyZWZvcmUsIHdoZW4gYSBuZXR3b3JrIG5hbWVz cGFjZSBpcyBiZWluZyBkaXNtYW50bGVkIHN1Y2ggcm91dGVzIGFyZQpub3QgZmx1c2hlZCBhbmQg bGVha2VkIFsxXS4KClRvIHJlcHJvZHVjZToKIyBpcCBuZXRucyBhZGQgYmx1ZQojIGlwIC1uIGJs dWUgcm91dGUgYWRkIHVucmVhY2hhYmxlIDE5Mi4wLjIuMC8yNAojIGlwIG5ldG5zIGRlbCBibHVl CgpGaXggdGhpcyBieSBub3Qgc2tpcHBpbmcgZXJyb3Igcm91dGVzIHRoYXQgYXJlIG5vdCBtYXJr ZWQgd2l0aApSVE5IX0ZfREVBRCB3aGVuIGZsdXNoaW5nIHRoZSByb3V0aW5nIHRhYmxlcy4KClRv IHByZXZlbnQgdGhlIGZsdXNoaW5nIG9mIHN1Y2ggcm91dGVzIGluIGNhc2UgIzEsIGFkZCBhIHBh cmFtZXRlciB0bwpmaWJfdGFibGVfZmx1c2goKSB0aGF0IGluZGljYXRlcyBpZiB0aGUgdGFibGUg aXMgZmx1c2hlZCBhcyBwYXJ0IG9mCm5hbWVzcGFjZSBkaXNtYW50bGUgb3Igbm90LgoKTm90ZSB0 aGF0IHRoaXMgcHJvYmxlbSBkb2VzIG5vdCBleGlzdCBpbiBJUHY2IHNpbmNlIGVycm9yIHJvdXRl cyBhcmUKYXNzb2NpYXRlZCB3aXRoIHRoZSBsb29wYmFjayBkZXZpY2UuCgpbMV0KdW5yZWZlcmVu Y2VkIG9iamVjdCAweGZmZmY4ODgwNjY2NTAzMzggKHNpemUgNTYpOgogIGNvbW0gImlwIiwgcGlk IDEyMDYsIGppZmZpZXMgNDI5NDc4NjA2MyAoYWdlIDI2LjIzNXMpCiAgaGV4IGR1bXAgKGZpcnN0 IDMyIGJ5dGVzKToKICAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIGIwIDFjIDYyIDYxIDgwIDg4 IGZmIGZmICAuLi4uLi4uLi4uYmEuLi4uCiAgICBlOCA4YiBhMSA2NCA4MCA4OCBmZiBmZiAwMCAw NyAwMCAwOCBmZSAwMCAwMCAwMCAgLi4uZC4uLi4uLi4uLi4uLgogIGJhY2t0cmFjZToKICAgIFs8 MDAwMDAwMDA4NTZlZDI3ZD5dIGluZXRfcnRtX25ld3JvdXRlKzB4MTI5LzB4MjIwCiAgICBbPDAw MDAwMDAwZmNkZmMwMGE+XSBydG5ldGxpbmtfcmN2X21zZysweDM5Ny8weGEyMAogICAgWzwwMDAw MDAwMGNiODU4MDFhPl0gbmV0bGlua19yY3Zfc2tiKzB4MTMyLzB4MzgwCiAgICBbPDAwMDAwMDAw ZWJjOTkxZDI+XSBuZXRsaW5rX3VuaWNhc3QrMHg0YzAvMHg2OTAKICAgIFs8MDAwMDAwMDAxNGY2 Mjg3NT5dIG5ldGxpbmtfc2VuZG1zZysweDkyOS8weGUxMAogICAgWzwwMDAwMDAwMGJhYzlkOTY3 Pl0gc29ja19zZW5kbXNnKzB4YzgvMHgxMTAKICAgIFs8MDAwMDAwMDAyMjNlNjQ4NT5dIF9fX3N5 c19zZW5kbXNnKzB4NzdhLzB4OGYwCiAgICBbPDAwMDAwMDAwMmU5NGY4ODA+XSBfX3N5c19zZW5k bXNnKzB4ZjcvMHgyNTAKICAgIFs8MDAwMDAwMDBjY2IxZmE3Mj5dIGRvX3N5c2NhbGxfNjQrMHgx NGQvMHg2MTAKICAgIFs8MDAwMDAwMDBmZmJlM2RhZT5dIGVudHJ5X1NZU0NBTExfNjRfYWZ0ZXJf aHdmcmFtZSsweDQ5LzB4YmUKICAgIFs8MDAwMDAwMDAzYThiNjA1Yj5dIDB4ZmZmZmZmZmZmZmZm ZmZmZgp1bnJlZmVyZW5jZWQgb2JqZWN0IDB4ZmZmZjg4ODA2MTYyMWM4OCAoc2l6ZSA0OCk6CiAg Y29tbSAiaXAiLCBwaWQgMTIwNiwgamlmZmllcyA0Mjk0Nzg2MDYzIChhZ2UgMjYuMjM1cykKICBo ZXggZHVtcCAoZmlyc3QgMzIgYnl0ZXMpOgogICAgNmIgNmIgNmIgNmIgNmIgNmIgNmIgNmIgNmIg NmIgNmIgNmIgNmIgNmIgNmIgNmIgIGtra2tra2tra2tra2tra2sKICAgIDZiIDZiIDZiIDZiIDZi IDZiIDZiIDZiIGQ4IDhlIDI2IDVmIDgwIDg4IGZmIGZmICBra2tra2tray4uJl8uLi4uCiAgYmFj a3RyYWNlOgogICAgWzwwMDAwMDAwMDczMzYwOWUzPl0gZmliX3RhYmxlX2luc2VydCsweDk3OC8w eDE1MDAKICAgIFs8MDAwMDAwMDA4NTZlZDI3ZD5dIGluZXRfcnRtX25ld3JvdXRlKzB4MTI5LzB4 MjIwCiAgICBbPDAwMDAwMDAwZmNkZmMwMGE+XSBydG5ldGxpbmtfcmN2X21zZysweDM5Ny8weGEy MAogICAgWzwwMDAwMDAwMGNiODU4MDFhPl0gbmV0bGlua19yY3Zfc2tiKzB4MTMyLzB4MzgwCiAg ICBbPDAwMDAwMDAwZWJjOTkxZDI+XSBuZXRsaW5rX3VuaWNhc3QrMHg0YzAvMHg2OTAKICAgIFs8 MDAwMDAwMDAxNGY2Mjg3NT5dIG5ldGxpbmtfc2VuZG1zZysweDkyOS8weGUxMAogICAgWzwwMDAw MDAwMGJhYzlkOTY3Pl0gc29ja19zZW5kbXNnKzB4YzgvMHgxMTAKICAgIFs8MDAwMDAwMDAyMjNl NjQ4NT5dIF9fX3N5c19zZW5kbXNnKzB4NzdhLzB4OGYwCiAgICBbPDAwMDAwMDAwMmU5NGY4ODA+ XSBfX3N5c19zZW5kbXNnKzB4ZjcvMHgyNTAKICAgIFs8MDAwMDAwMDBjY2IxZmE3Mj5dIGRvX3N5 c2NhbGxfNjQrMHgxNGQvMHg2MTAKICAgIFs8MDAwMDAwMDBmZmJlM2RhZT5dIGVudHJ5X1NZU0NB TExfNjRfYWZ0ZXJfaHdmcmFtZSsweDQ5LzB4YmUKICAgIFs8MDAwMDAwMDAzYThiNjA1Yj5dIDB4 ZmZmZmZmZmZmZmZmZmZmZgoKRml4ZXM6IDhjY2VkOWVmZjFkNCAoIltORVROU106IEVuYWJsZSBy b3V0aW5nIGNvbmZpZ3VyYXRpb24gaW4gbm9uLWluaXRpYWwgbmFtZXNwYWNlLiIpClNpZ25lZC1v ZmYtYnk6IElkbyBTY2hpbW1lbCA8aWRvc2NoQG1lbGxhbm94LmNvbT4KUmV2aWV3ZWQtYnk6IERh dmlkIEFoZXJuIDxkc2FoZXJuQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWls bGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGluY2x1ZGUvbmV0L2lwX2ZpYi5oICAgIHwg IDIgKy0KIG5ldC9pcHY0L2ZpYl9mcm9udGVuZC5jIHwgIDQgKystLQogbmV0L2lwdjQvZmliX3Ry aWUuYyAgICAgfCAxNSArKysrKysrKysrKystLS0KIDMgZmlsZXMgY2hhbmdlZCwgMTUgaW5zZXJ0 aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9pcF9maWIu aCBiL2luY2x1ZGUvbmV0L2lwX2ZpYi5oCmluZGV4IGM1OTY5NzYyYThmNC4uOWM4MjE0ZDIxMTZk IDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC9pcF9maWIuaAorKysgYi9pbmNsdWRlL25ldC9pcF9m aWIuaApAQCAtMjQxLDcgKzI0MSw3IEBAIGludCBmaWJfdGFibGVfZGVsZXRlKHN0cnVjdCBuZXQg Kiwgc3RydWN0IGZpYl90YWJsZSAqLCBzdHJ1Y3QgZmliX2NvbmZpZyAqLAogCQkgICAgIHN0cnVj dCBuZXRsaW5rX2V4dF9hY2sgKmV4dGFjayk7CiBpbnQgZmliX3RhYmxlX2R1bXAoc3RydWN0IGZp Yl90YWJsZSAqdGFibGUsIHN0cnVjdCBza19idWZmICpza2IsCiAJCSAgIHN0cnVjdCBuZXRsaW5r X2NhbGxiYWNrICpjYiwgc3RydWN0IGZpYl9kdW1wX2ZpbHRlciAqZmlsdGVyKTsKLWludCBmaWJf dGFibGVfZmx1c2goc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgZmliX3RhYmxlICp0YWJsZSk7Citp bnQgZmliX3RhYmxlX2ZsdXNoKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IGZpYl90YWJsZSAqdGFi bGUsIGJvb2wgZmx1c2hfYWxsKTsKIHN0cnVjdCBmaWJfdGFibGUgKmZpYl90cmllX3VubWVyZ2Uo c3RydWN0IGZpYl90YWJsZSAqbWFpbl90Yik7CiB2b2lkIGZpYl90YWJsZV9mbHVzaF9leHRlcm5h bChzdHJ1Y3QgZmliX3RhYmxlICp0YWJsZSk7CiB2b2lkIGZpYl9mcmVlX3RhYmxlKHN0cnVjdCBm aWJfdGFibGUgKnRiKTsKZGlmZiAtLWdpdCBhL25ldC9pcHY0L2ZpYl9mcm9udGVuZC5jIGIvbmV0 L2lwdjQvZmliX2Zyb250ZW5kLmMKaW5kZXggNmRmOTViZTk2MzExLi5mZTRmNmE2MjQyMzggMTAw NjQ0Ci0tLSBhL25ldC9pcHY0L2ZpYl9mcm9udGVuZC5jCisrKyBiL25ldC9pcHY0L2ZpYl9mcm9u dGVuZC5jCkBAIC0yMDMsNyArMjAzLDcgQEAgc3RhdGljIHZvaWQgZmliX2ZsdXNoKHN0cnVjdCBu ZXQgKm5ldCkKIAkJc3RydWN0IGZpYl90YWJsZSAqdGI7CiAKIAkJaGxpc3RfZm9yX2VhY2hfZW50 cnlfc2FmZSh0YiwgdG1wLCBoZWFkLCB0Yl9obGlzdCkKLQkJCWZsdXNoZWQgKz0gZmliX3RhYmxl X2ZsdXNoKG5ldCwgdGIpOworCQkJZmx1c2hlZCArPSBmaWJfdGFibGVfZmx1c2gobmV0LCB0Yiwg ZmFsc2UpOwogCX0KIAogCWlmIChmbHVzaGVkKQpAQCAtMTQ2Myw3ICsxNDYzLDcgQEAgc3RhdGlj IHZvaWQgaXBfZmliX25ldF9leGl0KHN0cnVjdCBuZXQgKm5ldCkKIAogCQlobGlzdF9mb3JfZWFj aF9lbnRyeV9zYWZlKHRiLCB0bXAsIGhlYWQsIHRiX2hsaXN0KSB7CiAJCQlobGlzdF9kZWwoJnRi LT50Yl9obGlzdCk7Ci0JCQlmaWJfdGFibGVfZmx1c2gobmV0LCB0Yik7CisJCQlmaWJfdGFibGVf Zmx1c2gobmV0LCB0YiwgdHJ1ZSk7CiAJCQlmaWJfZnJlZV90YWJsZSh0Yik7CiAJCX0KIAl9CmRp ZmYgLS1naXQgYS9uZXQvaXB2NC9maWJfdHJpZS5jIGIvbmV0L2lwdjQvZmliX3RyaWUuYwppbmRl eCAyMzdjOWY3MmIyNjUuLmE1NzNlMzdlMDYxNSAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvZmliX3Ry aWUuYworKysgYi9uZXQvaXB2NC9maWJfdHJpZS5jCkBAIC0xODU2LDcgKzE4NTYsNyBAQCB2b2lk IGZpYl90YWJsZV9mbHVzaF9leHRlcm5hbChzdHJ1Y3QgZmliX3RhYmxlICp0YikKIH0KIAogLyog Q2FsbGVyIG11c3QgaG9sZCBSVE5MLiAqLwotaW50IGZpYl90YWJsZV9mbHVzaChzdHJ1Y3QgbmV0 ICpuZXQsIHN0cnVjdCBmaWJfdGFibGUgKnRiKQoraW50IGZpYl90YWJsZV9mbHVzaChzdHJ1Y3Qg bmV0ICpuZXQsIHN0cnVjdCBmaWJfdGFibGUgKnRiLCBib29sIGZsdXNoX2FsbCkKIHsKIAlzdHJ1 Y3QgdHJpZSAqdCA9IChzdHJ1Y3QgdHJpZSAqKXRiLT50Yl9kYXRhOwogCXN0cnVjdCBrZXlfdmVj dG9yICpwbiA9IHQtPmt2OwpAQCAtMTkwNCw4ICsxOTA0LDE3IEBAIGludCBmaWJfdGFibGVfZmx1 c2goc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgZmliX3RhYmxlICp0YikKIAkJaGxpc3RfZm9yX2Vh Y2hfZW50cnlfc2FmZShmYSwgdG1wLCAmbi0+bGVhZiwgZmFfbGlzdCkgewogCQkJc3RydWN0IGZp Yl9pbmZvICpmaSA9IGZhLT5mYV9pbmZvOwogCi0JCQlpZiAoIWZpIHx8ICEoZmktPmZpYl9mbGFn cyAmIFJUTkhfRl9ERUFEKSB8fAotCQkJICAgIHRiLT50Yl9pZCAhPSBmYS0+dGJfaWQpIHsKKwkJ CWlmICghZmkgfHwgdGItPnRiX2lkICE9IGZhLT50Yl9pZCB8fAorCQkJICAgICghKGZpLT5maWJf ZmxhZ3MgJiBSVE5IX0ZfREVBRCkgJiYKKwkJCSAgICAgIWZpYl9wcm9wc1tmYS0+ZmFfdHlwZV0u ZXJyb3IpKSB7CisJCQkJc2xlbiA9IGZhLT5mYV9zbGVuOworCQkJCWNvbnRpbnVlOworCQkJfQor CisJCQkvKiBEbyBub3QgZmx1c2ggZXJyb3Igcm91dGVzIGlmIG5ldHdvcmsgbmFtZXNwYWNlIGlz CisJCQkgKiBub3QgYmVpbmcgZGlzbWFudGxlZAorCQkJICovCisJCQlpZiAoIWZsdXNoX2FsbCAm JiBmaWJfcHJvcHNbZmEtPmZhX3R5cGVdLmVycm9yKSB7CiAJCQkJc2xlbiA9IGZhLT5mYV9zbGVu OwogCQkJCWNvbnRpbnVlOwogCQkJfQotLSAKMi4yMC4xCgoKRnJvbSAzYzY2YzYyMWNmNTVjOWEz ZjEwNDZhOWY5ZjVjODU3YWJlNDBmN2FlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBO aXIgRG90YW4gPG5pcmRAbWVsbGFub3guY29tPgpEYXRlOiBGcmksIDE4IEphbiAyMDE5IDE1OjU3 OjU5ICswMDAwClN1YmplY3Q6IFtQQVRDSCAxMy8yMV0gbWx4c3c6IHNwZWN0cnVtX2ZpZDogVXBk YXRlIGR1bW15IEZJRCBpbmRleAoKWyBVcHN0cmVhbSBjb21taXQgYTExZGNkNjQ5NzkxNWJhNzlk OTVlZjRmZTI1NDFhYWFjMjdmNjIwMSBdCgpXaGVuIHVzaW5nIGEgdGMgZmxvd2VyIGFjdGlvbiBv ZiBlZ3Jlc3MgbWlycmVkIHJlZGlyZWN0LCB0aGUgZHJpdmVyIGFkZHMKYW4gaW1wbGljaXQgRklE IHNldHRpbmcgYWN0aW9uLiBUaGlzIGltcGxpY2l0IGFjdGlvbiBzZXRzIGEgZHVtbXkgRklEIHRv CnRoZSBwYWNrZXQgYW5kIGlzIHVzZWQgYXMgcGFydCBvZiBhIGRlc2lnbiBmb3IgdHJhcHBpbmcg dW5tYXRjaGVkIGZsb3dzCmluIE9WUy4gIFdoaWxlIHRoaXMgaW1wbGljaXQgRklEIHNldHRpbmcg YWN0aW9uIGlzIHN1cHBvc2VkIHRvIGJlIGEgTk9QCndoZW4gYSByZWRpcmVjdCBhY3Rpb24gaXMg YWRkZWQsIGluIFNwZWN0cnVtLTIgdGhlIEZJRCByZWNvcmQgaXMKY29uc3VsdGVkIGFzIHRoZSBk dW1teSBGSUQgaW5kZXggaXMgYW4gODAyLjFEIEZJRCBpbmRleCBhbmQgdGhlIHBhY2tldAppcyBk cm9wcGVkIGluc3RlYWQgb2YgYmVpbmcgcmVkaXJlY3RlZC4KClNldCB0aGUgZHVtbXkgRklEIGlu ZGV4IHZhbHVlIHRvIGJlIHdpdGhpbiA4MDIuMVEgcmFuZ2UuIFRoaXMgc2F0aXNmaWVzCmJvdGgg U3BlY3RydW0tMSB3aGljaCBpZ25vcmVzIHRoZSBGSUQgYW5kIFNwZWN0cnVtLTIgd2hpY2ggaWRl bnRpZmllcyBpdAphcyBhbiA4MDIuMVEgRklEIGFuZCB3aWxsIHRoZW4gZm9sbG93IHRoZSByZWRp cmVjdCBhY3Rpb24uCgpGaXhlczogYzNhYjQzNTQ2NmQ1ICgibWx4c3c6IHNwZWN0cnVtOiBFeHRl bmQgdG8gc3VwcG9ydCBTcGVjdHJ1bS0yIEFTSUMiKQpTaWduZWQtb2ZmLWJ5OiBOaXIgRG90YW4g PG5pcmRAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBJZG8gU2NoaW1tZWwgPGlkb3NjaEBt ZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1 bV9maWQuYyB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhz dy9zcGVjdHJ1bV9maWQuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L3Nw ZWN0cnVtX2ZpZC5jCmluZGV4IGEzZGIwMzNkNzM5OS4uYjQ5MDU4OWVmMjVjIDEwMDY0NAotLS0g YS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bV9maWQuYworKysg Yi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bV9maWQuYwpAQCAt ODgyLDggKzg4Miw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbWx4c3dfc3BfZmlkX29wcyBtbHhz d19zcF9maWRfZHVtbXlfb3BzID0gewogc3RhdGljIGNvbnN0IHN0cnVjdCBtbHhzd19zcF9maWRf ZmFtaWx5IG1seHN3X3NwX2ZpZF9kdW1teV9mYW1pbHkgPSB7CiAJLnR5cGUJCQk9IE1MWFNXX1NQ X0ZJRF9UWVBFX0RVTU1ZLAogCS5maWRfc2l6ZQkJPSBzaXplb2Yoc3RydWN0IG1seHN3X3NwX2Zp ZCksCi0JLnN0YXJ0X2luZGV4CQk9IE1MWFNXX1NQX1JGSURfQkFTRSAtIDEsCi0JLmVuZF9pbmRl eAkJPSBNTFhTV19TUF9SRklEX0JBU0UgLSAxLAorCS5zdGFydF9pbmRleAkJPSBWTEFOX05fVklE IC0gMSwKKwkuZW5kX2luZGV4CQk9IFZMQU5fTl9WSUQgLSAxLAogCS5vcHMJCQk9ICZtbHhzd19z cF9maWRfZHVtbXlfb3BzLAogfTsKIAotLSAKMi4yMC4xCgoKRnJvbSA4NmQ3Y2U1NzA5OTM3MThh YTZhZDQwZWZiOGI2MGI2MDUxODkwMjNjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBJ ZG8gU2NoaW1tZWwgPGlkb3NjaEBtZWxsYW5veC5jb20+CkRhdGU6IEZyaSwgMTggSmFuIDIwMTkg MTU6NTc6NTUgKzAwMDAKU3ViamVjdDogW1BBVENIIDE0LzIxXSBtbHhzdzogcGNpOiBSaW5nIENR J3MgZG9vcmJlbGwgYmVmb3JlIFJEUSdzCgpXaGVuIGEgcGFja2V0IHNob3VsZCBiZSB0cmFwcGVk IHRvIHRoZSBDUFUgdGhlIGRldmljZSBjb25zdW1lcyBhIFdRRQood29yayBxdWV1ZSBlbGVtZW50 KSBmcm9tIGFuIFJEUSAocmVjZWl2ZSBkZXNjcmlwdG9yIHF1ZXVlKSBhbmQgY29waWVzCnRoZSBw YWNrZXQgdG8gdGhlIGFkZHJlc3Mgc3BlY2lmaWVkIGluIHRoZSBXUUUuIFRoZSBkZXZpY2UgdGhl biB0cmllcyB0bwpwb3N0IGEgQ1FFIChjb21wbGV0aW9uIHF1ZXVlIGVsZW1lbnQpIHRoYXQgY29u dGFpbnMgdmFyaW91cyBtZXRhZGF0YQooZS5nLiwgaW5ncmVzcyBwb3J0KSBhYm91dCB0aGUgcGFj a2V0IHRvIGEgQ1EgKGNvbXBsZXRpb24gcXVldWUpLgoKSW4gY2FzZSB0aGUgZGV2aWNlIG1hbmFn ZWQgdG8gY29uc3VtZSBhIFdRRSwgYnV0IGRpZCBub3QgbWFuYWdlIHRvIHBvc3QKdGhlIGNvcnJl c3BvbmRpbmcgQ1FFLCBpdCB3aWxsIGdldCBzdHVjay4gVGhpcyB1bmxpa2VseSBzaXR1YXRpb24g Y2FuIGJlCnRyaWdnZXJlZCBkdWUgdG8gdGhlIHNjaGVtZSB0aGUgZHJpdmVyIGlzIGN1cnJlbnRs eSB1c2luZyB0byBwcm9jZXNzCkNRRXMuCgpUaGUgZHJpdmVyIHdpbGwgY29uc3VtZSB1cCB0byA1 MTIgQ1FFcyBhdCBhIHRpbWUgYW5kIGFmdGVyIHByb2Nlc3NpbmcKZWFjaCBjb3JyZXNwb25kaW5n IFdRRSBpdCB3aWxsIHJpbmcgdGhlIFJEUSdzIGRvb3JiZWxsLCBsZXR0aW5nIHRoZQpkZXZpY2Ug a25vdyB0aGF0IGEgbmV3IFdRRSB3YXMgcG9zdGVkIGZvciBpdCB0byBjb25zdW1lLiBPbmx5IGFm dGVyCnByb2Nlc3NpbmcgYWxsIHRoZSBDUUVzICh1cCB0byA1MTIpLCB0aGUgZHJpdmVyIHdpbGwg cmluZyB0aGUgQ1Encwpkb29yYmVsbCwgbGV0dGluZyB0aGUgZGV2aWNlIGtub3cgdGhhdCBuZXcg b25lcyBjYW4gYmUgcG9zdGVkLgoKRml4IHRoaXMgYnkgaGF2aW5nIHRoZSBkcml2ZXIgcmluZyB0 aGUgQ1EncyBkb29yYmVsbCBmb3IgZXZlcnkgcHJvY2Vzc2VkCkNRRSwgYnV0IGJlZm9yZSByaW5n aW5nIHRoZSBSRFEncyBkb29yYmVsbC4gVGhpcyBndWFyYW50ZWVzIHRoYXQKd2hlbmV2ZXIgd2Ug cG9zdCBhIG5ldyBXUUUsIHRoZXJlIGlzIGEgY29ycmVzcG9uZGluZyBDUUUgYXZhaWxhYmxlLiBD b3B5CnRoZSBjdXJyZW50bHkgcHJvY2Vzc2VkIENRRSB0byBwcmV2ZW50IHRoZSBkZXZpY2UgZnJv bSBvdmVyd3JpdGluZyBpdAp3aXRoIGEgbmV3IENRRSBhZnRlciByaW5naW5nIHRoZSBkb29yYmVs bC4KCk5vdGUgdGhhdCB0aGUgZHJpdmVyIHN0aWxsIGFybXMgdGhlIENRIG9ubHkgYWZ0ZXIgcHJv Y2Vzc2luZyBhbGwgdGhlCnBlbmRpbmcgQ1FFcywgc28gdGhhdCBpbnRlcnJ1cHRzIGZvciB0aGlz IENRIHdpbGwgb25seSBiZSBkZWxpdmVyZWQKYWZ0ZXIgdGhlIGRyaXZlciBmaW5pc2hlZCBpdHMg cHJvY2Vzc2luZy4KCkJlZm9yZSBjb21taXQgODQwNGY2ZjJlOGVkICgibWx4c3c6IHBjaTogQWxs b3cgdG8gdXNlIENRRXMgb2YgdmVyc2lvbiAxCmFuZCB2ZXJzaW9uIDIiKSB0aGUgaXNzdWUgd2Fz IHZpcnR1YWxseSBpbXBvc3NpYmxlIHRvIHRyaWdnZXIgc2luY2UgdGhlCm51bWJlciBvZiBDUUVz IHdhcyB0d2ljZSB0aGUgbnVtYmVyIG9mIFdRRXMgYW5kIHRoZSBudW1iZXIgb2YgQ1FFcwpwcm9j ZXNzZWQgYXQgYSB0aW1lIHdhcyBlcXVhbCB0byB0aGUgbnVtYmVyIG9mIGF2YWlsYWJsZSBXUUVz LgoKRml4ZXM6IDg0MDRmNmYyZThlZCAoIm1seHN3OiBwY2k6IEFsbG93IHRvIHVzZSBDUUVzIG9m IHZlcnNpb24gMSBhbmQgdmVyc2lvbiAyIikKU2lnbmVkLW9mZi1ieTogSWRvIFNjaGltbWVsIDxp ZG9zY2hAbWVsbGFub3guY29tPgpSZXBvcnRlZC1ieTogU2VtaW9uIExpc3lhbnNreSA8c2VtaW9u bEBtZWxsYW5veC5jb20+ClRlc3RlZC1ieTogU2VtaW9uIExpc3lhbnNreSA8c2VtaW9ubEBtZWxs YW5veC5jb20+CkFja2VkLWJ5OiBKaXJpIFBpcmtvIDxqaXJpQG1lbGxhbm94LmNvbT4KU2lnbmVk LW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZl cnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L3BjaS5jICAgIHwgMTIgKysrKysrKy0tLS0t CiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9wY2lfaHcuaCB8ICAxICsKIDIg ZmlsZXMgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L3BjaS5jIGIvZHJpdmVycy9u ZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvcGNpLmMKaW5kZXggNTg5MGZkZmQ2MmMzLi5jNzkw MWEzZjJhNzkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3 L3BjaS5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L3BjaS5jCkBA IC02MDQsMjkgKzYwNCwzMSBAQCBzdGF0aWMgdm9pZCBtbHhzd19wY2lfY3FfdGFza2xldCh1bnNp Z25lZCBsb25nIGRhdGEpCiAJCXUxNiB3cWVfY291bnRlciA9IG1seHN3X3BjaV9jcWVfd3FlX2Nv dW50ZXJfZ2V0KGNxZSk7CiAJCXU4IHNlbmRxID0gbWx4c3dfcGNpX2NxZV9zcl9nZXQocS0+dS5j cS52LCBjcWUpOwogCQl1OCBkcW4gPSBtbHhzd19wY2lfY3FlX2Rxbl9nZXQocS0+dS5jcS52LCBj cWUpOworCQljaGFyIG5jcWVbTUxYU1dfUENJX0NRRV9TSVpFX01BWF07CisKKwkJbWVtY3B5KG5j cWUsIGNxZSwgcS0+ZWxlbV9zaXplKTsKKwkJbWx4c3dfcGNpX3F1ZXVlX2Rvb3JiZWxsX2NvbnN1 bWVyX3JpbmcobWx4c3dfcGNpLCBxKTsKIAogCQlpZiAoc2VuZHEpIHsKIAkJCXN0cnVjdCBtbHhz d19wY2lfcXVldWUgKnNkcTsKIAogCQkJc2RxID0gbWx4c3dfcGNpX3NkcV9nZXQobWx4c3dfcGNp LCBkcW4pOwogCQkJbWx4c3dfcGNpX2NxZV9zZHFfaGFuZGxlKG1seHN3X3BjaSwgc2RxLAotCQkJ CQkJIHdxZV9jb3VudGVyLCBjcWUpOworCQkJCQkJIHdxZV9jb3VudGVyLCBuY3FlKTsKIAkJCXEt PnUuY3EuY29tcF9zZHFfY291bnQrKzsKIAkJfSBlbHNlIHsKIAkJCXN0cnVjdCBtbHhzd19wY2lf cXVldWUgKnJkcTsKIAogCQkJcmRxID0gbWx4c3dfcGNpX3JkcV9nZXQobWx4c3dfcGNpLCBkcW4p OwogCQkJbWx4c3dfcGNpX2NxZV9yZHFfaGFuZGxlKG1seHN3X3BjaSwgcmRxLAotCQkJCQkJIHdx ZV9jb3VudGVyLCBxLT51LmNxLnYsIGNxZSk7CisJCQkJCQkgd3FlX2NvdW50ZXIsIHEtPnUuY3Eu diwgbmNxZSk7CiAJCQlxLT51LmNxLmNvbXBfcmRxX2NvdW50Kys7CiAJCX0KIAkJaWYgKCsraXRl bXMgPT0gY3JlZGl0cykKIAkJCWJyZWFrOwogCX0KLQlpZiAoaXRlbXMpIHsKLQkJbWx4c3dfcGNp X3F1ZXVlX2Rvb3JiZWxsX2NvbnN1bWVyX3JpbmcobWx4c3dfcGNpLCBxKTsKKwlpZiAoaXRlbXMp CiAJCW1seHN3X3BjaV9xdWV1ZV9kb29yYmVsbF9hcm1fY29uc3VtZXJfcmluZyhtbHhzd19wY2ks IHEpOwotCX0KIH0KIAogc3RhdGljIHUxNiBtbHhzd19wY2lfY3FfZWxlbV9jb3VudChjb25zdCBz dHJ1Y3QgbWx4c3dfcGNpX3F1ZXVlICpxKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJu ZXQvbWVsbGFub3gvbWx4c3cvcGNpX2h3LmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5v eC9tbHhzdy9wY2lfaHcuaAppbmRleCA5YzYwMWMxN2Y3YWUuLmZmZWUzOGUzNmNlOCAxMDA2NDQK LS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvcGNpX2h3LmgKKysrIGIv ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvcGNpX2h3LmgKQEAgLTUzLDYgKzUz LDcgQEAKICNkZWZpbmUgTUxYU1dfUENJX1dRRV9TSVpFCTMyIC8qIDMyIGJ5dGVzIHBlciBlbGVt ZW50ICovCiAjZGVmaW5lIE1MWFNXX1BDSV9DUUUwMV9TSVpFCTE2IC8qIDE2IGJ5dGVzIHBlciBl bGVtZW50ICovCiAjZGVmaW5lIE1MWFNXX1BDSV9DUUUyX1NJWkUJMzIgLyogMzIgYnl0ZXMgcGVy IGVsZW1lbnQgKi8KKyNkZWZpbmUgTUxYU1dfUENJX0NRRV9TSVpFX01BWAlNTFhTV19QQ0lfQ1FF Ml9TSVpFCiAjZGVmaW5lIE1MWFNXX1BDSV9FUUVfU0laRQkxNiAvKiAxNiBieXRlcyBwZXIgZWxl bWVudCAqLwogI2RlZmluZSBNTFhTV19QQ0lfV1FFX0NPVU5UCShNTFhTV19QQ0lfQVFfU0laRSAv IE1MWFNXX1BDSV9XUUVfU0laRSkKICNkZWZpbmUgTUxYU1dfUENJX0NRRTAxX0NPVU5UCShNTFhT V19QQ0lfQVFfU0laRSAvIE1MWFNXX1BDSV9DUUUwMV9TSVpFKQotLSAKMi4yMC4xCgoKRnJvbSA1 MGE4YTljNjIyZDBmNmFkNjFlNDZiZTYyMGIxNDJkNTc1MWYwZDg2IE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBJdmFuIFZlY2VyYSA8aXZlY2VyYUByZWRoYXQuY29tPgpEYXRlOiBXZWQs IDE2IEphbiAyMDE5IDE2OjUzOjUyICswMTAwClN1YmplY3Q6IFtQQVRDSCAxNS8yMV0gbmV0L3Nj aGVkOiBjbHNfZmxvd2VyOiBhbGxvY2F0ZSBtYXNrIGR5bmFtaWNhbGx5IGluCiBmbF9jaGFuZ2Uo KQoKWyBVcHN0cmVhbSBjb21taXQgMmNkZGQyMDE0NzgyNmFlZjI4MzExNWFiYjAwMDEyZDRkYWZl M2NkYiBdCgpSZWNlbnQgY2hhbmdlcyAoZXNwZWNpYWxseSAwNWNkMjcxZmQ2MWEgKCJjbHNfZmxv d2VyOiBTdXBwb3J0IG11bHRpcGxlCm1hc2tzIHBlciBwcmlvcml0eSIpKSBpbiB0aGUgZmxfZmxv d19tYXNrIHN0cnVjdHVyZSBncm93IGl0IGFuZCBpdHMKY3VycmVudCBzaXplIGUuZy4gb24geDg2 XzY0IHdpdGggZGVmY29uZmlnIGlzIDc2MCBieXRlcyBhbmQgbW9yZSB0aGFuCjEwMjQgYnl0ZXMg d2l0aCBzb21lIGRlYnVnIG9wdGlvbnMgZW5hYmxlZC4gUHJpb3IgdGhlIG1lbnRpb25lZCBjb21t aXQKaXRzIHNpemUgd2FzIDE3NiBieXRlcyAodXNpbmcgZGVmY29uZmlnIG9uIHg4Nl82NCkuCldp dGggcmVnYXJkIHRvIHRoaXMgZmFjdCBpdCdzIHJlYXNvbmFibGUgdG8gYWxsb2NhdGUgdGhpcyBz dHJ1Y3R1cmUKZHluYW1pY2FsbHkgaW4gZmxfY2hhbmdlKCkgdG8gcmVkdWNlIGl0cyBzdGFjayBz aXplLgoKdjI6Ci0gdXNlIGt6YWxsb2MoKSBpbnN0ZWFkIG9mIGtjYWxsb2MoKQoKRml4ZXM6IDA1 Y2QyNzFmZDYxYSAoImNsc19mbG93ZXI6IFN1cHBvcnQgbXVsdGlwbGUgbWFza3MgcGVyIHByaW9y aXR5IikKQ2M6IEppcmkgUGlya28gPGppcmlAcmVzbnVsbGkudXM+CkNjOiBQYXVsIEJsYWtleSA8 cGF1bGJAbWVsbGFub3guY29tPgpBY2tlZC1ieTogSmlyaSBQaXJrbyA8amlyaUBtZWxsYW5veC5j b20+ClNpZ25lZC1vZmYtYnk6IEl2YW4gVmVjZXJhIDxpdmVjZXJhQHJlZGhhdC5jb20+ClNpZ25l ZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQv c2NoZWQvY2xzX2Zsb3dlci5jIHwgMTkgKysrKysrKysrKysrKystLS0tLQogMSBmaWxlIGNoYW5n ZWQsIDE0IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3Nj aGVkL2Nsc19mbG93ZXIuYyBiL25ldC9zY2hlZC9jbHNfZmxvd2VyLmMKaW5kZXggMjA4ZDk0MDQ2 NGQ3Li40NWJjMmI3MmRjMWMgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9jbHNfZmxvd2VyLmMKKysr IGIvbmV0L3NjaGVkL2Nsc19mbG93ZXIuYwpAQCAtMTE3NiwxNyArMTE3NiwyMyBAQCBzdGF0aWMg aW50IGZsX2NoYW5nZShzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBza19idWZmICppbl9za2IsCiAJ c3RydWN0IGNsc19mbF9oZWFkICpoZWFkID0gcnRubF9kZXJlZmVyZW5jZSh0cC0+cm9vdCk7CiAJ c3RydWN0IGNsc19mbF9maWx0ZXIgKmZvbGQgPSAqYXJnOwogCXN0cnVjdCBjbHNfZmxfZmlsdGVy ICpmbmV3OworCXN0cnVjdCBmbF9mbG93X21hc2sgKm1hc2s7CiAJc3RydWN0IG5sYXR0ciAqKnRi OwotCXN0cnVjdCBmbF9mbG93X21hc2sgbWFzayA9IHt9OwogCWludCBlcnI7CiAKIAlpZiAoIXRj YVtUQ0FfT1BUSU9OU10pCiAJCXJldHVybiAtRUlOVkFMOwogCi0JdGIgPSBrY2FsbG9jKFRDQV9G TE9XRVJfTUFYICsgMSwgc2l6ZW9mKHN0cnVjdCBubGF0dHIgKiksIEdGUF9LRVJORUwpOwotCWlm ICghdGIpCisJbWFzayA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBmbF9mbG93X21hc2spLCBHRlBf S0VSTkVMKTsKKwlpZiAoIW1hc2spCiAJCXJldHVybiAtRU5PQlVGUzsKIAorCXRiID0ga2NhbGxv YyhUQ0FfRkxPV0VSX01BWCArIDEsIHNpemVvZihzdHJ1Y3QgbmxhdHRyICopLCBHRlBfS0VSTkVM KTsKKwlpZiAoIXRiKSB7CisJCWVyciA9IC1FTk9CVUZTOworCQlnb3RvIGVycm91dF9tYXNrX2Fs bG9jOworCX0KKwogCWVyciA9IG5sYV9wYXJzZV9uZXN0ZWQodGIsIFRDQV9GTE9XRVJfTUFYLCB0 Y2FbVENBX09QVElPTlNdLAogCQkJICAgICAgIGZsX3BvbGljeSwgTlVMTCk7CiAJaWYgKGVyciA8 IDApCkBAIC0xMjI5LDEyICsxMjM1LDEyIEBAIHN0YXRpYyBpbnQgZmxfY2hhbmdlKHN0cnVjdCBu ZXQgKm5ldCwgc3RydWN0IHNrX2J1ZmYgKmluX3NrYiwKIAkJfQogCX0KIAotCWVyciA9IGZsX3Nl dF9wYXJtcyhuZXQsIHRwLCBmbmV3LCAmbWFzaywgYmFzZSwgdGIsIHRjYVtUQ0FfUkFURV0sIG92 ciwKKwllcnIgPSBmbF9zZXRfcGFybXMobmV0LCB0cCwgZm5ldywgbWFzaywgYmFzZSwgdGIsIHRj YVtUQ0FfUkFURV0sIG92ciwKIAkJCSAgIHRwLT5jaGFpbi0+dG1wbHRfcHJpdiwgZXh0YWNrKTsK IAlpZiAoZXJyKQogCQlnb3RvIGVycm91dF9pZHI7CiAKLQllcnIgPSBmbF9jaGVja19hc3NpZ25f bWFzayhoZWFkLCBmbmV3LCBmb2xkLCAmbWFzayk7CisJZXJyID0gZmxfY2hlY2tfYXNzaWduX21h c2soaGVhZCwgZm5ldywgZm9sZCwgbWFzayk7CiAJaWYgKGVycikKIAkJZ290byBlcnJvdXRfaWRy OwogCkBAIC0xMjc4LDYgKzEyODQsNyBAQCBzdGF0aWMgaW50IGZsX2NoYW5nZShzdHJ1Y3QgbmV0 ICpuZXQsIHN0cnVjdCBza19idWZmICppbl9za2IsCiAJfQogCiAJa2ZyZWUodGIpOworCWtmcmVl KG1hc2spOwogCXJldHVybiAwOwogCiBlcnJvdXRfbWFzazoKQEAgLTEyOTEsNiArMTI5OCw4IEBA IHN0YXRpYyBpbnQgZmxfY2hhbmdlKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNrX2J1ZmYgKmlu X3NrYiwKIAlrZnJlZShmbmV3KTsKIGVycm91dF90YjoKIAlrZnJlZSh0Yik7CitlcnJvdXRfbWFz a19hbGxvYzoKKwlrZnJlZShtYXNrKTsKIAlyZXR1cm4gZXJyOwogfQogCi0tIAoyLjIwLjEKCgpG cm9tIDRmMjlkMzE4NmI4ZTVmNDcxZWNlOGFjMDM2ZDY2OTY4NTlkNTIzYjUgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IFdpbGxlbSBkZSBCcnVpam4gPHdpbGxlbWJAZ29vZ2xlLmNvbT4K RGF0ZTogVHVlLCAxNSBKYW4gMjAxOSAxMTo0MDowMiAtMDUwMApTdWJqZWN0OiBbUEFUQ0ggMTYv MjFdIHVkcDogd2l0aCB1ZHBfc2VnbWVudCByZWxlYXNlIG9uIGVycm9yIHBhdGgKClsgVXBzdHJl YW0gY29tbWl0IDBmMTQ5YzlmZWMzY2Q3MjA2MjhlY2RlODNiZmM2ZjY0YzFlN2RjYjYgXQoKRmFp bHVyZSBfX2lwX2FwcGVuZF9kYXRhIHRyaWdnZXJzIHVkcF9mbHVzaF9wZW5kaW5nX2ZyYW1lcywg YnV0IHRoZXNlCnRlc3RzIGhhcHBlbiBsYXRlci4gVGhlIHNrYiBtdXN0IGJlIGZyZWVkIGRpcmVj dGx5LgoKRml4ZXM6IGJlYzFmNmY2OTczNjIgKCJ1ZHA6IGdlbmVyYXRlIGdzbyB3aXRoIFVEUF9T RUdNRU5UIikKUmVwb3J0ZWQtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4K U2lnbmVkLW9mZi1ieTogV2lsbGVtIGRlIEJydWlqbiA8d2lsbGVtYkBnb29nbGUuY29tPgpTaWdu ZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0 L2lwdjQvdWRwLmMgfCAxNiArKysrKysrKysrKystLS0tCiBuZXQvaXB2Ni91ZHAuYyB8IDE2ICsr KysrKysrKysrKy0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgMjQgaW5zZXJ0aW9ucygrKSwgOCBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2NC91ZHAuYyBiL25ldC9pcHY0L3VkcC5jCmlu ZGV4IDE5NzZmZGRiOWUwMC4uY2UxMjVmNGRjODEwIDEwMDY0NAotLS0gYS9uZXQvaXB2NC91ZHAu YworKysgYi9uZXQvaXB2NC91ZHAuYwpAQCAtNzg1LDE1ICs3ODUsMjMgQEAgc3RhdGljIGludCB1 ZHBfc2VuZF9za2Ioc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGZsb3dpNCAqZmw0LAogCQlj b25zdCBpbnQgaGxlbiA9IHNrYl9uZXR3b3JrX2hlYWRlcl9sZW4oc2tiKSArCiAJCQkJIHNpemVv ZihzdHJ1Y3QgdWRwaGRyKTsKIAotCQlpZiAoaGxlbiArIGNvcmstPmdzb19zaXplID4gY29yay0+ ZnJhZ3NpemUpCisJCWlmIChobGVuICsgY29yay0+Z3NvX3NpemUgPiBjb3JrLT5mcmFnc2l6ZSkg eworCQkJa2ZyZWVfc2tiKHNrYik7CiAJCQlyZXR1cm4gLUVJTlZBTDsKLQkJaWYgKHNrYi0+bGVu ID4gY29yay0+Z3NvX3NpemUgKiBVRFBfTUFYX1NFR01FTlRTKQorCQl9CisJCWlmIChza2ItPmxl biA+IGNvcmstPmdzb19zaXplICogVURQX01BWF9TRUdNRU5UUykgeworCQkJa2ZyZWVfc2tiKHNr Yik7CiAJCQlyZXR1cm4gLUVJTlZBTDsKLQkJaWYgKHNrLT5za19ub19jaGVja190eCkKKwkJfQor CQlpZiAoc2stPnNrX25vX2NoZWNrX3R4KSB7CisJCQlrZnJlZV9za2Ioc2tiKTsKIAkJCXJldHVy biAtRUlOVkFMOworCQl9CiAJCWlmIChza2ItPmlwX3N1bW1lZCAhPSBDSEVDS1NVTV9QQVJUSUFM IHx8IGlzX3VkcGxpdGUgfHwKLQkJICAgIGRzdF94ZnJtKHNrYl9kc3Qoc2tiKSkpCisJCSAgICBk c3RfeGZybShza2JfZHN0KHNrYikpKSB7CisJCQlrZnJlZV9za2Ioc2tiKTsKIAkJCXJldHVybiAt RUlPOworCQl9CiAKIAkJc2tiX3NoaW5mbyhza2IpLT5nc29fc2l6ZSA9IGNvcmstPmdzb19zaXpl OwogCQlza2Jfc2hpbmZvKHNrYiktPmdzb190eXBlID0gU0tCX0dTT19VRFBfTDQ7CmRpZmYgLS1n aXQgYS9uZXQvaXB2Ni91ZHAuYyBiL25ldC9pcHY2L3VkcC5jCmluZGV4IGQyZDk3ZDA3ZWYyNy4u ZDAxZWMyNTJjYjgxIDEwMDY0NAotLS0gYS9uZXQvaXB2Ni91ZHAuYworKysgYi9uZXQvaXB2Ni91 ZHAuYwpAQCAtMTA1NiwxNSArMTA1NiwyMyBAQCBzdGF0aWMgaW50IHVkcF92Nl9zZW5kX3NrYihz dHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZmxvd2k2ICpmbDYsCiAJCWNvbnN0IGludCBobGVu ID0gc2tiX25ldHdvcmtfaGVhZGVyX2xlbihza2IpICsKIAkJCQkgc2l6ZW9mKHN0cnVjdCB1ZHBo ZHIpOwogCi0JCWlmIChobGVuICsgY29yay0+Z3NvX3NpemUgPiBjb3JrLT5mcmFnc2l6ZSkKKwkJ aWYgKGhsZW4gKyBjb3JrLT5nc29fc2l6ZSA+IGNvcmstPmZyYWdzaXplKSB7CisJCQlrZnJlZV9z a2Ioc2tiKTsKIAkJCXJldHVybiAtRUlOVkFMOwotCQlpZiAoc2tiLT5sZW4gPiBjb3JrLT5nc29f c2l6ZSAqIFVEUF9NQVhfU0VHTUVOVFMpCisJCX0KKwkJaWYgKHNrYi0+bGVuID4gY29yay0+Z3Nv X3NpemUgKiBVRFBfTUFYX1NFR01FTlRTKSB7CisJCQlrZnJlZV9za2Ioc2tiKTsKIAkJCXJldHVy biAtRUlOVkFMOwotCQlpZiAodWRwX3NrKHNrKS0+bm9fY2hlY2s2X3R4KQorCQl9CisJCWlmICh1 ZHBfc2soc2spLT5ub19jaGVjazZfdHgpIHsKKwkJCWtmcmVlX3NrYihza2IpOwogCQkJcmV0dXJu IC1FSU5WQUw7CisJCX0KIAkJaWYgKHNrYi0+aXBfc3VtbWVkICE9IENIRUNLU1VNX1BBUlRJQUwg fHwgaXNfdWRwbGl0ZSB8fAotCQkgICAgZHN0X3hmcm0oc2tiX2RzdChza2IpKSkKKwkJICAgIGRz dF94ZnJtKHNrYl9kc3Qoc2tiKSkpIHsKKwkJCWtmcmVlX3NrYihza2IpOwogCQkJcmV0dXJuIC1F SU87CisJCX0KIAogCQlza2Jfc2hpbmZvKHNrYiktPmdzb19zaXplID0gY29yay0+Z3NvX3NpemU7 CiAJCXNrYl9zaGluZm8oc2tiKS0+Z3NvX3R5cGUgPSBTS0JfR1NPX1VEUF9MNDsKLS0gCjIuMjAu MQoKCkZyb20gZjVjMzFkMWEzZWIxYzU4ODk4OWQ5ZTMyNTEzNGJjMjMyOTcwNGNiMyBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogT2xpdmllciBNYXR6IDxvbGl2aWVyLm1hdHpANndpbmQu Y29tPgpEYXRlOiBXZWQsIDkgSmFuIDIwMTkgMTA6NTc6MjEgKzAxMDAKU3ViamVjdDogW1BBVENI IDE3LzIxXSBpcDZfZ3JlOiBmaXggdHVubmVsIGxpc3QgY29ycnVwdGlvbiBmb3IgeC1uZXRucwoK WyBVcHN0cmVhbSBjb21taXQgYWI1MDk4ZmEyNWI5MWNiNmZlMGEwNjc2ZjE3YWJiNjRmMmJiZjAy NCBdCgpJbiBjaGFuZ2VsaW5rIG9wcywgdGhlIGlwNmdyZV9uZXQgcG9pbnRlciBpcyByZXRyaWV2 ZWQgZnJvbQpkZXZfbmV0KGRldiksIHdoaWNoIGlzIHdyb25nIGluIGNhc2Ugb2YgeC1uZXRucy4g VGh1cywgdGhlIHR1bm5lbCBpcyBub3QKdW5saW5rZWQgZnJvbSBpdHMgY3VycmVudCBsaXN0IGFu ZCBpcyByZWxpbmtlZCBpbnRvIGFub3RoZXIgbmV0Cm5hbWVzcGFjZS4gVGhpcyBjb3JydXB0cyB0 aGUgdHVubmVsIGxpc3RzIGFuZCBjYW4gbGF0ZXIgdHJpZ2dlciBhIGtlcm5lbApvb3BzLgoKRml4 IHRoaXMgYnkgcmV0cmlldmluZyB0aGUgbmV0bnMgZnJvbSBkZXZpY2UgcHJpdmF0ZSBhcmVhLgoK Rml4ZXM6IGM4NjMyZmMzMGJiMCAoIm5ldDogaXA2X2dyZTogU3BsaXQgdXAgaXA2Z3JlX2NoYW5n ZWxpbmsoKSIpCkNjOiBQZXRyIE1hY2hhdGEgPHBldHJtQG1lbGxhbm94LmNvbT4KU2lnbmVkLW9m Zi1ieTogT2xpdmllciBNYXR6IDxvbGl2aWVyLm1hdHpANndpbmQuY29tPgpBY2tlZC1ieTogTmlj b2xhcyBEaWNodGVsIDxuaWNvbGFzLmRpY2h0ZWxANndpbmQuY29tPgpTaWduZWQtb2ZmLWJ5OiBE YXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjYvaXA2X2dy ZS5jIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2lwNl9ncmUuYyBiL25ldC9pcHY2L2lwNl9ncmUu YwppbmRleCAwZjdkNDM0YzFlZWQuLjZhYzI2MGFkZmM5YyAxMDA2NDQKLS0tIGEvbmV0L2lwdjYv aXA2X2dyZS5jCisrKyBiL25ldC9pcHY2L2lwNl9ncmUuYwpAQCAtMjAyOSw5ICsyMDI5LDkgQEAg c3RhdGljIGludCBpcDZncmVfY2hhbmdlbGluayhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1 Y3QgbmxhdHRyICp0YltdLAogCQkJICAgICBzdHJ1Y3QgbmxhdHRyICpkYXRhW10sCiAJCQkgICAg IHN0cnVjdCBuZXRsaW5rX2V4dF9hY2sgKmV4dGFjaykKIHsKLQlzdHJ1Y3QgaXA2Z3JlX25ldCAq aWduID0gbmV0X2dlbmVyaWMoZGV2X25ldChkZXYpLCBpcDZncmVfbmV0X2lkKTsKKwlzdHJ1Y3Qg aXA2X3RubCAqdCA9IG5ldGRldl9wcml2KGRldik7CisJc3RydWN0IGlwNmdyZV9uZXQgKmlnbiA9 IG5ldF9nZW5lcmljKHQtPm5ldCwgaXA2Z3JlX25ldF9pZCk7CiAJc3RydWN0IF9faXA2X3RubF9w YXJtIHA7Ci0Jc3RydWN0IGlwNl90bmwgKnQ7CiAKIAl0ID0gaXA2Z3JlX2NoYW5nZWxpbmtfY29t bW9uKGRldiwgdGIsIGRhdGEsICZwLCBleHRhY2spOwogCWlmIChJU19FUlIodCkpCi0tIAoyLjIw LjEKCgpGcm9tIDJiMTFmMDFjN2U0MmYxZmFhNzk4ZTJjMTQxYjg5MWIyMjUzZjU2YjQgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IFhpbiBMb25nIDxsdWNpZW4ueGluQGdtYWlsLmNvbT4K RGF0ZTogTW9uLCAxNCBKYW4gMjAxOSAxODoxMDowNiArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMTgv MjFdIGVyc3BhbjogYnVpbGQgdGhlIGhlYWRlciB3aXRoIHRoZSByaWdodCBwcm90byBhY2NvcmRp bmcKIHRvIGVyc3Bhbl92ZXIKClsgVXBzdHJlYW0gY29tbWl0IDIwNzA0YmQxNjMzZGQ1YWZiMjlh MzIxZDNhNjE1YzljOGU5YzlkMDUgXQoKQXMgc2FpZCBpbiBkcmFmdC1mb3NjaGlhbm8tZXJzcGFu LTAzI3NlY3Rpb240OgoKICAgRGlmZmVyZW50IGZyYW1lIHZhcmlhbnRzIGtub3duIGFzICJFUlNQ QU4gVHlwZXMiIGNhbiBiZQogICBkaXN0aW5ndWlzaGVkIGJhc2VkIG9uIHRoZSBHUkUgIlByb3Rv Y29sIFR5cGUiIGZpZWxkIHZhbHVlOiBUeXBlIEkKICAgYW5kIElJJ3MgdmFsdWUgaXMgMHg4OEJF IHdoaWxlIFR5cGUgSUlJJ3MgaXMgMHgyMkVCIFtFVFlQRVNdLgoKU28gc2V0IGl0IHByb3Blcmx5 IGluIGVyc3Bhbl94bWl0KCkgYWNjb3JkaW5nIHRvIGVyc3Bhbl92ZXIuIFdoaWxlIGF0Cml0LCBh bHNvIHJlbW92ZSB0aGUgdW51c2VkIHBhcmFtZXRlciAncHJvdG8nIGluIGVyc3Bhbl9mYl94bWl0 KCkuCgpGaXhlczogOTRkN2Q4ZjI5Mjg3ICgiaXA2X2dyZTogYWRkIGVyc3BhbiB2MiBzdXBwb3J0 IikKUmVwb3J0ZWQtYnk6IEppYW5saW4gU2hpIDxqaXNoaUByZWRoYXQuY29tPgpTaWduZWQtb2Zm LWJ5OiBYaW4gTG9uZyA8bHVjaWVuLnhpbkBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2NC9pcF9ncmUuYyAg fCAyMyArKysrKysrKysrKysrKy0tLS0tLS0tLQogbmV0L2lwdjYvaXA2X2dyZS5jIHwgIDYgKysr Ky0tCiAyIGZpbGVzIGNoYW5nZWQsIDE4IGluc2VydGlvbnMoKyksIDExIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL25ldC9pcHY0L2lwX2dyZS5jIGIvbmV0L2lwdjQvaXBfZ3JlLmMKaW5kZXgg MGZlOTQxOWJkMTJiLi4zNDA3YTgyZDQ1NDkgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L2lwX2dyZS5j CisrKyBiL25ldC9pcHY0L2lwX2dyZS5jCkBAIC01NjcsOCArNTY3LDcgQEAgc3RhdGljIHZvaWQg Z3JlX2ZiX3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldiwK IAlkZXYtPnN0YXRzLnR4X2Ryb3BwZWQrKzsKIH0KIAotc3RhdGljIHZvaWQgZXJzcGFuX2ZiX3ht aXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKLQkJCSAgIF9f YmUxNiBwcm90bykKK3N0YXRpYyB2b2lkIGVyc3Bhbl9mYl94bWl0KHN0cnVjdCBza19idWZmICpz a2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiB7CiAJc3RydWN0IGlwX3R1bm5lbCAqdHVubmVs ID0gbmV0ZGV2X3ByaXYoZGV2KTsKIAlzdHJ1Y3QgaXBfdHVubmVsX2luZm8gKnR1bl9pbmZvOwpA QCAtNTc2LDEwICs1NzUsMTAgQEAgc3RhdGljIHZvaWQgZXJzcGFuX2ZiX3htaXQoc3RydWN0IHNr X2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKIAlzdHJ1Y3QgZXJzcGFuX21ldGFk YXRhICptZDsKIAlzdHJ1Y3QgcnRhYmxlICpydCA9IE5VTEw7CiAJYm9vbCB0cnVuY2F0ZSA9IGZh bHNlOworCV9fYmUxNiBkZiwgcHJvdG87CiAJc3RydWN0IGZsb3dpNCBmbDsKIAlpbnQgdHVubmVs X2hsZW47CiAJaW50IHZlcnNpb247Ci0JX19iZTE2IGRmOwogCWludCBuaG9mZjsKIAlpbnQgdGhv ZmY7CiAKQEAgLTYyNCwxOCArNjIzLDIwIEBAIHN0YXRpYyB2b2lkIGVyc3Bhbl9mYl94bWl0KHN0 cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAJaWYgKHZlcnNpb24g PT0gMSkgewogCQllcnNwYW5fYnVpbGRfaGVhZGVyKHNrYiwgbnRvaGwodHVubmVsX2lkX3RvX2tl eTMyKGtleS0+dHVuX2lkKSksCiAJCQkJICAgIG50b2hsKG1kLT51LmluZGV4KSwgdHJ1bmNhdGUs IHRydWUpOworCQlwcm90byA9IGh0b25zKEVUSF9QX0VSU1BBTik7CiAJfSBlbHNlIGlmICh2ZXJz aW9uID09IDIpIHsKIAkJZXJzcGFuX2J1aWxkX2hlYWRlcl92Mihza2IsCiAJCQkJICAgICAgIG50 b2hsKHR1bm5lbF9pZF90b19rZXkzMihrZXktPnR1bl9pZCkpLAogCQkJCSAgICAgICBtZC0+dS5t ZDIuZGlyLAogCQkJCSAgICAgICBnZXRfaHdpZCgmbWQtPnUubWQyKSwKIAkJCQkgICAgICAgdHJ1 bmNhdGUsIHRydWUpOworCQlwcm90byA9IGh0b25zKEVUSF9QX0VSU1BBTjIpOwogCX0gZWxzZSB7 CiAJCWdvdG8gZXJyX2ZyZWVfcnQ7CiAJfQogCiAJZ3JlX2J1aWxkX2hlYWRlcihza2IsIDgsIFRV Tk5FTF9TRVEsCi0JCQkgaHRvbnMoRVRIX1BfRVJTUEFOKSwgMCwgaHRvbmwodHVubmVsLT5vX3Nl cW5vKyspKTsKKwkJCSBwcm90bywgMCwgaHRvbmwodHVubmVsLT5vX3NlcW5vKyspKTsKIAogCWRm ID0ga2V5LT50dW5fZmxhZ3MgJiBUVU5ORUxfRE9OVF9GUkFHTUVOVCA/ICBodG9ucyhJUF9ERikg OiAwOwogCkBAIC03MTksMTIgKzcyMCwxMyBAQCBzdGF0aWMgbmV0ZGV2X3R4X3QgZXJzcGFuX3ht aXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwKIHsKIAlzdHJ1Y3QgaXBfdHVubmVsICp0dW5uZWwgPSBu ZXRkZXZfcHJpdihkZXYpOwogCWJvb2wgdHJ1bmNhdGUgPSBmYWxzZTsKKwlfX2JlMTYgcHJvdG87 CiAKIAlpZiAoIXBza2JfaW5ldF9tYXlfcHVsbChza2IpKQogCQlnb3RvIGZyZWVfc2tiOwogCiAJ aWYgKHR1bm5lbC0+Y29sbGVjdF9tZCkgewotCQllcnNwYW5fZmJfeG1pdChza2IsIGRldiwgc2ti LT5wcm90b2NvbCk7CisJCWVyc3Bhbl9mYl94bWl0KHNrYiwgZGV2KTsKIAkJcmV0dXJuIE5FVERF Vl9UWF9PSzsKIAl9CiAKQEAgLTc0MCwxOSArNzQyLDIyIEBAIHN0YXRpYyBuZXRkZXZfdHhfdCBl cnNwYW5feG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCX0KIAogCS8qIFB1c2ggRVJTUEFOIGhl YWRlciAqLwotCWlmICh0dW5uZWwtPmVyc3Bhbl92ZXIgPT0gMSkKKwlpZiAodHVubmVsLT5lcnNw YW5fdmVyID09IDEpIHsKIAkJZXJzcGFuX2J1aWxkX2hlYWRlcihza2IsIG50b2hsKHR1bm5lbC0+ cGFybXMub19rZXkpLAogCQkJCSAgICB0dW5uZWwtPmluZGV4LAogCQkJCSAgICB0cnVuY2F0ZSwg dHJ1ZSk7Ci0JZWxzZSBpZiAodHVubmVsLT5lcnNwYW5fdmVyID09IDIpCisJCXByb3RvID0gaHRv bnMoRVRIX1BfRVJTUEFOKTsKKwl9IGVsc2UgaWYgKHR1bm5lbC0+ZXJzcGFuX3ZlciA9PSAyKSB7 CiAJCWVyc3Bhbl9idWlsZF9oZWFkZXJfdjIoc2tiLCBudG9obCh0dW5uZWwtPnBhcm1zLm9fa2V5 KSwKIAkJCQkgICAgICAgdHVubmVsLT5kaXIsIHR1bm5lbC0+aHdpZCwKIAkJCQkgICAgICAgdHJ1 bmNhdGUsIHRydWUpOwotCWVsc2UKKwkJcHJvdG8gPSBodG9ucyhFVEhfUF9FUlNQQU4yKTsKKwl9 IGVsc2UgewogCQlnb3RvIGZyZWVfc2tiOworCX0KIAogCXR1bm5lbC0+cGFybXMub19mbGFncyAm PSB+VFVOTkVMX0tFWTsKLQlfX2dyZV94bWl0KHNrYiwgZGV2LCAmdHVubmVsLT5wYXJtcy5pcGgs IGh0b25zKEVUSF9QX0VSU1BBTikpOworCV9fZ3JlX3htaXQoc2tiLCBkZXYsICZ0dW5uZWwtPnBh cm1zLmlwaCwgcHJvdG8pOwogCXJldHVybiBORVRERVZfVFhfT0s7CiAKIGZyZWVfc2tiOgpkaWZm IC0tZ2l0IGEvbmV0L2lwdjYvaXA2X2dyZS5jIGIvbmV0L2lwdjYvaXA2X2dyZS5jCmluZGV4IDZh YzI2MGFkZmM5Yy4uYTM4ZTIzYThhMjgwIDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9pcDZfZ3JlLmMK KysrIGIvbmV0L2lwdjYvaXA2X2dyZS5jCkBAIC05MjAsNiArOTIwLDcgQEAgc3RhdGljIG5ldGRl dl90eF90IGlwNmVyc3Bhbl90dW5uZWxfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCV9fdTgg ZHNmaWVsZCA9IGZhbHNlOwogCXN0cnVjdCBmbG93aTYgZmw2OwogCWludCBlcnIgPSAtRUlOVkFM OworCV9fYmUxNiBwcm90bzsKIAlfX3UzMiBtdHU7CiAJaW50IG5ob2ZmOwogCWludCB0aG9mZjsK QEAgLTEwMzMsOCArMTAzNCw5IEBAIHN0YXRpYyBuZXRkZXZfdHhfdCBpcDZlcnNwYW5fdHVubmVs X3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAl9CiAKIAkvKiBQdXNoIEdSRSBoZWFkZXIuICov Ci0JZ3JlX2J1aWxkX2hlYWRlcihza2IsIDgsIFRVTk5FTF9TRVEsCi0JCQkgaHRvbnMoRVRIX1Bf RVJTUEFOKSwgMCwgaHRvbmwodC0+b19zZXFubysrKSk7CisJcHJvdG8gPSAodC0+cGFybXMuZXJz cGFuX3ZlciA9PSAxKSA/IGh0b25zKEVUSF9QX0VSU1BBTikKKwkJCQkJICAgOiBodG9ucyhFVEhf UF9FUlNQQU4yKTsKKwlncmVfYnVpbGRfaGVhZGVyKHNrYiwgOCwgVFVOTkVMX1NFUSwgcHJvdG8s IDAsIGh0b25sKHQtPm9fc2Vxbm8rKykpOwogCiAJLyogVG9vQmlnIHBhY2tldCBtYXkgaGF2ZSB1 cGRhdGVkIGRzdC0+ZGV2J3MgbXR1ICovCiAJaWYgKCF0LT5wYXJtcy5jb2xsZWN0X21kICYmIGRz dCAmJiBkc3RfbXR1KGRzdCkgPiBkc3QtPmRldi0+bXR1KQotLSAKMi4yMC4xCgoKRnJvbSBmNmI5 NDc5ZGNjNTIxNDkxMDJhM2QxM2QxNzIwODdjODNkYjUwMzU4IE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBBbmRyZXcgTHVubiA8YW5kcmV3QGx1bm4uY2g+CkRhdGU6IEZyaSwgMTEgSmFu IDIwMTkgMDA6MTU6MjEgKzAxMDAKU3ViamVjdDogW1BBVENIIDE5LzIxXSBuZXQ6IHBoeTogbWFy dmVsbDogRml4IGRlYWRsb2NrIGZyb20gd3JvbmcgbG9ja2luZwpNSU1FLVZlcnNpb246IDEuMApD b250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zlci1F bmNvZGluZzogOGJpdAoKWyBVcHN0cmVhbSBjb21taXQgZTBhNzMyOGZhZDk5NzkxMDRmNzNlMTli ZWRjYTgyMWVmMzI2MmFlMSBdCgptODhlMTMxOF9zZXRfd29sKCkgdGFrZXMgdGhlIGxvY2sgYXMg cGFydCBvZiBwaHlfc2VsZWN0X3BhZ2UoKS4gRG9uJ3QKdGFrZSB0aGUgbG9jayBhZ2FpbiB3aXRo IHBoeV9yZWFkKCksIHVzZSB0aGUgdW5sb2NrZWQgX19waHlfcmVhZCgpLgoKRml4ZXM6IDQyNGNh NGM1NTEyMSAoIm5ldDogcGh5OiBtYXJ2ZWxsOiBmaXggcGFnZWQgYWNjZXNzIHJhY2VzIikKUmVw b3J0ZWQtYnk6IMOFa2UgUmVobm1hbiA8YWtlLnJlaG5tYW5AZ21haWwuY29tPgpTaWduZWQtb2Zm LWJ5OiBBbmRyZXcgTHVubiA8YW5kcmV3QGx1bm4uY2g+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMu IE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9waHkvbWFydmVs bC5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0p CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvcGh5L21hcnZlbGwuYyBiL2RyaXZlcnMvbmV0L3Bo eS9tYXJ2ZWxsLmMKaW5kZXggNDI2MDk3ZTdhMjc1Li5mNDZkYTYyNjJhYmUgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvbmV0L3BoeS9tYXJ2ZWxsLmMKKysrIGIvZHJpdmVycy9uZXQvcGh5L21hcnZlbGwu YwpAQCAtMTQzMCw3ICsxNDMwLDcgQEAgc3RhdGljIGludCBtODhlMTMxOF9zZXRfd29sKHN0cnVj dCBwaHlfZGV2aWNlICpwaHlkZXYsCiAJCSAqIGJlZm9yZSBlbmFibGluZyBpdCBpZiAhcGh5X2lu dGVycnVwdF9pc192YWxpZCgpCiAJCSAqLwogCQlpZiAoIXBoeV9pbnRlcnJ1cHRfaXNfdmFsaWQo cGh5ZGV2KSkKLQkJCXBoeV9yZWFkKHBoeWRldiwgTUlJX00xMDExX0lFVkVOVCk7CisJCQlfX3Bo eV9yZWFkKHBoeWRldiwgTUlJX00xMDExX0lFVkVOVCk7CiAKIAkJLyogRW5hYmxlIHRoZSBXT0wg aW50ZXJydXB0ICovCiAJCWVyciA9IF9fcGh5X21vZGlmeShwaHlkZXYsIE1JSV84OEUxMzE4U19Q SFlfQ1NJRVIsIDAsCi0tIAoyLjIwLjEKCgpGcm9tIDU3YmI3MGFiOGNlMjY0OGVjNTcxYTA1MTNk NWU4OGQ4MzMzMjhlZTMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEhhbmdiaW4gTGl1 IDxsaXVoYW5nYmluQGdtYWlsLmNvbT4KRGF0ZTogVGh1LCAxMCBKYW4gMjAxOSAxMToxNzo0MiAr MDgwMApTdWJqZWN0OiBbUEFUQ0ggMjAvMjFdIGlwNl9ncmU6IHVwZGF0ZSB2ZXJzaW9uIHJlbGF0 ZWQgaW5mbyB3aGVuIGNoYW5naW5nIGxpbmsKClsgVXBzdHJlYW0gY29tbWl0IDgwYjM2NzFlOTM3 NzkxNmJmMmIwMmU1NjExM2ZhNzM3N2NlNTcwNWEgXQoKV2UgZm9yZ290IHRvIHVwZGF0ZSBpcDZl cnNwYW4gdmVyc2lvbiByZWxhdGVkIGluZm8gd2hlbiBjaGFuZ2luZyBsaW5rLAp3aGljaCB3aWxs IGNhdXNlIHNldHRpbmcgbmV3IGh3aWQgZmFpbGVkLgoKUmVwb3J0ZWQtYnk6IEppYW5saW4gU2hp IDxqaXNoaUByZWRoYXQuY29tPgpGaXhlczogOTRkN2Q4ZjI5Mjg3MCAoImlwNl9ncmU6IGFkZCBl cnNwYW4gdjIgc3VwcG9ydCIpClNpZ25lZC1vZmYtYnk6IEhhbmdiaW4gTGl1IDxsaXVoYW5nYmlu QGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxv ZnQubmV0PgotLS0KIG5ldC9pcHY2L2lwNl9ncmUuYyB8IDQgKysrKwogMSBmaWxlIGNoYW5nZWQs IDQgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2lwNl9ncmUuYyBiL25ldC9p cHY2L2lwNl9ncmUuYwppbmRleCBhMzhlMjNhOGEyODAuLmI1MjlhNzlhYzIyMiAxMDA2NDQKLS0t IGEvbmV0L2lwdjYvaXA2X2dyZS5jCisrKyBiL25ldC9pcHY2L2lwNl9ncmUuYwpAQCAtMTE2OSw2 ICsxMTY5LDEwIEBAIHN0YXRpYyB2b2lkIGlwNmdyZV90bmxfY29weV90bmxfcGFybShzdHJ1Y3Qg aXA2X3RubCAqdCwKIAl0LT5wYXJtcy5pX2ZsYWdzID0gcC0+aV9mbGFnczsKIAl0LT5wYXJtcy5v X2ZsYWdzID0gcC0+b19mbGFnczsKIAl0LT5wYXJtcy5md21hcmsgPSBwLT5md21hcms7CisJdC0+ cGFybXMuZXJzcGFuX3ZlciA9IHAtPmVyc3Bhbl92ZXI7CisJdC0+cGFybXMuaW5kZXggPSBwLT5p bmRleDsKKwl0LT5wYXJtcy5kaXIgPSBwLT5kaXI7CisJdC0+cGFybXMuaHdpZCA9IHAtPmh3aWQ7 CiAJZHN0X2NhY2hlX3Jlc2V0KCZ0LT5kc3RfY2FjaGUpOwogfQogCi0tIAoyLjIwLjEKCgpGcm9t IDUyYzU0MGRjZmE2YmJlY2ZmOGU2NjVkZjllMTQ1M2QyMDM4ZTkzYzQgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IFdpbGxlbSBkZSBCcnVpam4gPHdpbGxlbWJAZ29vZ2xlLmNvbT4KRGF0 ZTogVGh1LCAxMCBKYW4gMjAxOSAxNDo0MDozMyAtMDUwMApTdWJqZWN0OiBbUEFUQ0ggMjEvMjFd IHRjcDogYWxsb3cgTVNHX1pFUk9DT1BZIHRyYW5zbWlzc2lvbiBhbHNvIGluIENMT1NFX1dBSVQK IHN0YXRlCgpbIFVwc3RyZWFtIGNvbW1pdCAxM2Q3ZjQ2Mzg2ZTA2MGRmMzFiNzI3Yzk5NzVlMzgz MDZmYTUxZTdhIF0KClRDUCB0cmFuc21pc3Npb24gd2l0aCBNU0dfWkVST0NPUFkgZmFpbHMgaWYg dGhlIHBlZXIgY2xvc2VzIGl0cyBlbmQgb2YKdGhlIGNvbm5lY3Rpb24gYW5kIHNvIHRyYW5zaXRp b25zIHRoaXMgc29ja2V0IHRvIENMT1NFX1dBSVQgc3RhdGUuCgpUcmFuc21pc3Npb24gaW4gY2xv c2Ugd2FpdCBzdGF0ZSBpcyBhY2NlcHRhYmxlLiBPdGhlciBzaW1pbGFyIHRlc3RzIGluCnRoZSBz dGFjayAoZS5nLiwgaW4gRmFzdE9wZW4pIGFjY2VwdCBib3RoIHN0YXRlcy4gUmVsYXggdGhpcyB0 ZXN0LCB0b28uCgpMaW5rOiBodHRwczovL3d3dy5tYWlsLWFyY2hpdmUuY29tL25ldGRldkB2Z2Vy Lmtlcm5lbC5vcmcvbXNnMjc2ODg2Lmh0bWwKTGluazogaHR0cHM6Ly93d3cubWFpbC1hcmNoaXZl LmNvbS9uZXRkZXZAdmdlci5rZXJuZWwub3JnL21zZzIyNzM5MC5odG1sCkZpeGVzOiBmMjE0Zjkx NWU3ZGIgKCJ0Y3A6IGVuYWJsZSBNU0dfWkVST0NPUFkiKQpSZXBvcnRlZC1ieTogTWFyZWsgTWFq a293c2tpIDxtYXJla0BjbG91ZGZsYXJlLmNvbT4KU2lnbmVkLW9mZi1ieTogV2lsbGVtIGRlIEJy dWlqbiA8d2lsbGVtYkBnb29nbGUuY29tPgpDQzogWXVjaHVuZyBDaGVuZyA8eWNoZW5nQGdvb2ds ZS5jb20+CkNDOiBOZWFsIENhcmR3ZWxsIDxuY2FyZHdlbGxAZ29vZ2xlLmNvbT4KQ0M6IFNvaGVp bCBIYXNzYXMgWWVnYW5laCA8c29oZWlsQGdvb2dsZS5jb20+CkNDOiBBbGV4ZXkgS29kYW5ldiA8 YWxleGV5LmtvZGFuZXZAb3JhY2xlLmNvbT4KQWNrZWQtYnk6IFNvaGVpbCBIYXNzYXMgWWVnYW5l aCA8c29oZWlsQGdvb2dsZS5jb20+ClJldmlld2VkLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0 QGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiBuZXQvaXB2NC90Y3AuYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGlu c2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY0L3RjcC5jIGIv bmV0L2lwdjQvdGNwLmMKaW5kZXggOWU2YmM0ZDZkYWE3Li40MGNiZTU2MDk2NjMgMTAwNjQ0Ci0t LSBhL25ldC9pcHY0L3RjcC5jCisrKyBiL25ldC9pcHY0L3RjcC5jCkBAIC0xMTg2LDcgKzExODYs NyBAQCBpbnQgdGNwX3NlbmRtc2dfbG9ja2VkKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IG1zZ2hk ciAqbXNnLCBzaXplX3Qgc2l6ZSkKIAlmbGFncyA9IG1zZy0+bXNnX2ZsYWdzOwogCiAJaWYgKGZs YWdzICYgTVNHX1pFUk9DT1BZICYmIHNpemUgJiYgc29ja19mbGFnKHNrLCBTT0NLX1pFUk9DT1BZ KSkgewotCQlpZiAoc2stPnNrX3N0YXRlICE9IFRDUF9FU1RBQkxJU0hFRCkgeworCQlpZiAoKDEg PDwgc2stPnNrX3N0YXRlKSAmIH4oVENQRl9FU1RBQkxJU0hFRCB8IFRDUEZfQ0xPU0VfV0FJVCkp IHsKIAkJCWVyciA9IC1FSU5WQUw7CiAJCQlnb3RvIG91dF9lcnI7CiAJCX0KLS0gCjIuMjAuMQoK ----Next_Part(Fri_Jan_25_16_18_32_2019_891)----