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 5FACDC282CE for ; Wed, 10 Apr 2019 03:55:47 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id D88D5217D6 for ; Wed, 10 Apr 2019 03:55:46 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727242AbfDJDzp (ORCPT ); Tue, 9 Apr 2019 23:55:45 -0400 Received: from shards.monkeyblade.net ([23.128.96.9]:34026 "EHLO shards.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726808AbfDJDzp (ORCPT ); Tue, 9 Apr 2019 23:55:45 -0400 Received: from localhost (unknown [IPv6:2601:601:9f80:35cd::d71]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) (Authenticated sender: davem-davemloft) by shards.monkeyblade.net (Postfix) with ESMTPSA id 9938614BBAC9F for ; Tue, 9 Apr 2019 20:55:40 -0700 (PDT) Date: Tue, 09 Apr 2019 20:55:38 -0700 (PDT) Message-Id: <20190409.205538.1629702525356131982.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(Tue_Apr__9_20_55_38_2019_143)--" Content-Transfer-Encoding: 7bit X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.5.12 (shards.monkeyblade.net [149.20.54.216]); Tue, 09 Apr 2019 20:55:42 -0700 (PDT) Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org ----Next_Part(Tue_Apr__9_20_55_38_2019_143)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Please queue up the following networking bug fixes for v4.19 and v5.0 stable respectively. Thank you! ----Next_Part(Tue_Apr__9_20_55_38_2019_143)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_419.mbox" RnJvbSBkYmMzMWVhYzFlMDM0ZjI3OGU5ZTVkN2U2N2JmNDE5ZmEzZTBlNDIyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIYWl5YW5nIFpoYW5nIDxoYWl5YW5nekBtaWNyb3NvZnQuY29t PgpEYXRlOiBUaHUsIDI4IE1hciAyMDE5IDE5OjQwOjM2ICswMDAwClN1YmplY3Q6IFtQQVRDSCAw MS8zM10gaHZfbmV0dnNjOiBGaXggdW53YW50ZWQgd2FrZXVwIGFmdGVyIHR4X2Rpc2FibGUKClsg VXBzdHJlYW0gY29tbWl0IDFiNzA0YzRhMWJhOTU1NzQ4MzJlNzMwZjIzODE3YjY1MWRiMmFhNTkg XQoKQWZ0ZXIgcXVldWUgc3RvcHBlZCwgdGhlIHdha2V1cCBtZWNoYW5pc20gbWF5IHdha2UgaXQg dXAgYWdhaW4Kd2hlbiByaW5nIGJ1ZmZlciB1c2FnZSBpcyBsb3dlciB0aGFuIGEgdGhyZXNob2xk LiBUaGlzIG1heSBjYXVzZQpzZW5kIHBhdGggcGFuaWMgb24gTlVMTCBwb2ludGVyIHdoZW4gd2Ug c3RvcHBlZCBhbGwgdHggcXVldWVzIGluCm5ldHZzY19kZXRhY2ggYW5kIHN0YXJ0IHJlbW92aW5n IHRoZSBuZXR2c2MgZGV2aWNlLgoKVGhpcyBwYXRjaCBmaXggaXQgYnkgYWRkaW5nIGEgdHhfZGlz YWJsZSBmbGFnIHRvIHByZXZlbnQgdW53YW50ZWQKcXVldWUgd2FrZXVwLgoKRml4ZXM6IDdiMmVl NTBjMGNkNSAoImh2X25ldHZzYzogY29tbW9uIGRldGFjaCBsb2dpYyIpClJlcG9ydGVkLWJ5OiBN b2hhbW1lZCBHYW1hbCA8bWdhbWFsQHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IEhhaXlhbmcg WmhhbmcgPGhhaXlhbmd6QG1pY3Jvc29mdC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1p bGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9oeXBlcnYvaHlwZXJ2 X25ldC5oIHwgIDEgKwogZHJpdmVycy9uZXQvaHlwZXJ2L25ldHZzYy5jICAgICB8ICA2ICsrKyst LQogZHJpdmVycy9uZXQvaHlwZXJ2L25ldHZzY19kcnYuYyB8IDMyICsrKysrKysrKysrKysrKysr KysrKysrKysrLS0tLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDMxIGluc2VydGlvbnMoKyksIDggZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaHlwZXJ2L2h5cGVydl9uZXQuaCBi L2RyaXZlcnMvbmV0L2h5cGVydi9oeXBlcnZfbmV0LmgKaW5kZXggNDJkMjg0NjY5YjAzLi4zMWQ4 ZDgzYzI1YWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2h5cGVydi9oeXBlcnZfbmV0LmgKKysr IGIvZHJpdmVycy9uZXQvaHlwZXJ2L2h5cGVydl9uZXQuaApAQCAtOTcwLDYgKzk3MCw3IEBAIHN0 cnVjdCBuZXR2c2NfZGV2aWNlIHsKIAogCXdhaXRfcXVldWVfaGVhZF90IHdhaXRfZHJhaW47CiAJ Ym9vbCBkZXN0cm95OworCWJvb2wgdHhfZGlzYWJsZTsgLyogaWYgdHJ1ZSwgZG8gbm90IHdha2Ug dXAgcXVldWUgYWdhaW4gKi8KIAogCS8qIFJlY2VpdmUgYnVmZmVyIGFsbG9jYXRlZCBieSB1cyBi dXQgbWFuYWdlcyBieSBOZXRWU1AgKi8KIAl2b2lkICpyZWN2X2J1ZjsKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbmV0L2h5cGVydi9uZXR2c2MuYyBiL2RyaXZlcnMvbmV0L2h5cGVydi9uZXR2c2MuYwpp bmRleCAxYTk0MmZlYWI5NTQuLmZiMTJiNjM0MzljNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQv aHlwZXJ2L25ldHZzYy5jCisrKyBiL2RyaXZlcnMvbmV0L2h5cGVydi9uZXR2c2MuYwpAQCAtMTEw LDYgKzExMCw3IEBAIHN0YXRpYyBzdHJ1Y3QgbmV0dnNjX2RldmljZSAqYWxsb2NfbmV0X2Rldmlj ZSh2b2lkKQogCiAJaW5pdF93YWl0cXVldWVfaGVhZCgmbmV0X2RldmljZS0+d2FpdF9kcmFpbik7 CiAJbmV0X2RldmljZS0+ZGVzdHJveSA9IGZhbHNlOworCW5ldF9kZXZpY2UtPnR4X2Rpc2FibGUg PSBmYWxzZTsKIAogCW5ldF9kZXZpY2UtPm1heF9wa3QgPSBSTkRJU19NQVhfUEtUX0RFRkFVTFQ7 CiAJbmV0X2RldmljZS0+cGt0X2FsaWduID0gUk5ESVNfUEtUX0FMSUdOX0RFRkFVTFQ7CkBAIC03 MTYsNyArNzE3LDcgQEAgc3RhdGljIHZvaWQgbmV0dnNjX3NlbmRfdHhfY29tcGxldGUoc3RydWN0 IG5ldF9kZXZpY2UgKm5kZXYsCiAJfSBlbHNlIHsKIAkJc3RydWN0IG5ldGRldl9xdWV1ZSAqdHhx ID0gbmV0ZGV2X2dldF90eF9xdWV1ZShuZGV2LCBxX2lkeCk7CiAKLQkJaWYgKG5ldGlmX3R4X3F1 ZXVlX3N0b3BwZWQodHhxKSAmJgorCQlpZiAobmV0aWZfdHhfcXVldWVfc3RvcHBlZCh0eHEpICYm ICFuZXRfZGV2aWNlLT50eF9kaXNhYmxlICYmCiAJCSAgICAoaHZfZ2V0X2F2YWlsX3RvX3dyaXRl X3BlcmNlbnQoJmNoYW5uZWwtPm91dGJvdW5kKSA+CiAJCSAgICAgUklOR19BVkFJTF9QRVJDRU5U X0hJV0FURVIgfHwgcXVldWVfc2VuZHMgPCAxKSkgewogCQkJbmV0aWZfdHhfd2FrZV9xdWV1ZSh0 eHEpOwpAQCAtODcxLDcgKzg3Miw4IEBAIHN0YXRpYyBpbmxpbmUgaW50IG5ldHZzY19zZW5kX3Br dCgKIAl9IGVsc2UgaWYgKHJldCA9PSAtRUFHQUlOKSB7CiAJCW5ldGlmX3R4X3N0b3BfcXVldWUo dHhxKTsKIAkJbmRldl9jdHgtPmV0aF9zdGF0cy5zdG9wX3F1ZXVlKys7Ci0JCWlmIChhdG9taWNf cmVhZCgmbnZjaGFuLT5xdWV1ZV9zZW5kcykgPCAxKSB7CisJCWlmIChhdG9taWNfcmVhZCgmbnZj aGFuLT5xdWV1ZV9zZW5kcykgPCAxICYmCisJCSAgICAhbmV0X2RldmljZS0+dHhfZGlzYWJsZSkg ewogCQkJbmV0aWZfdHhfd2FrZV9xdWV1ZSh0eHEpOwogCQkJbmRldl9jdHgtPmV0aF9zdGF0cy53 YWtlX3F1ZXVlKys7CiAJCQlyZXQgPSAtRU5PU1BDOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQv aHlwZXJ2L25ldHZzY19kcnYuYyBiL2RyaXZlcnMvbmV0L2h5cGVydi9uZXR2c2NfZHJ2LmMKaW5k ZXggYzgzMjA0MDVjOGYxLi45ZDY5OWJkNWY3MTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2h5 cGVydi9uZXR2c2NfZHJ2LmMKKysrIGIvZHJpdmVycy9uZXQvaHlwZXJ2L25ldHZzY19kcnYuYwpA QCAtMTA5LDYgKzEwOSwxNSBAQCBzdGF0aWMgdm9pZCBuZXR2c2Nfc2V0X3J4X21vZGUoc3RydWN0 IG5ldF9kZXZpY2UgKm5ldCkKIAlyY3VfcmVhZF91bmxvY2soKTsKIH0KIAorc3RhdGljIHZvaWQg bmV0dnNjX3R4X2VuYWJsZShzdHJ1Y3QgbmV0dnNjX2RldmljZSAqbnZzY2RldiwKKwkJCSAgICAg c3RydWN0IG5ldF9kZXZpY2UgKm5kZXYpCit7CisJbnZzY2Rldi0+dHhfZGlzYWJsZSA9IGZhbHNl OworCXZpcnRfd21iKCk7IC8qIGVuc3VyZSBxdWV1ZSB3YWtlIHVwIG1lY2hhbmlzbSBpcyBvbiAq LworCisJbmV0aWZfdHhfd2FrZV9hbGxfcXVldWVzKG5kZXYpOworfQorCiBzdGF0aWMgaW50IG5l dHZzY19vcGVuKHN0cnVjdCBuZXRfZGV2aWNlICpuZXQpCiB7CiAJc3RydWN0IG5ldF9kZXZpY2Vf Y29udGV4dCAqbmRldl9jdHggPSBuZXRkZXZfcHJpdihuZXQpOwpAQCAtMTI5LDcgKzEzOCw3IEBA IHN0YXRpYyBpbnQgbmV0dnNjX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKm5ldCkKIAlyZGV2ID0g bnZkZXYtPmV4dGVuc2lvbjsKIAlpZiAoIXJkZXYtPmxpbmtfc3RhdGUpIHsKIAkJbmV0aWZfY2Fy cmllcl9vbihuZXQpOwotCQluZXRpZl90eF93YWtlX2FsbF9xdWV1ZXMobmV0KTsKKwkJbmV0dnNj X3R4X2VuYWJsZShudmRldiwgbmV0KTsKIAl9CiAKIAlpZiAodmZfbmV0ZGV2KSB7CkBAIC0xODQs NiArMTkzLDE3IEBAIHN0YXRpYyBpbnQgbmV0dnNjX3dhaXRfdW50aWxfZW1wdHkoc3RydWN0IG5l dHZzY19kZXZpY2UgKm52ZGV2KQogCX0KIH0KIAorc3RhdGljIHZvaWQgbmV0dnNjX3R4X2Rpc2Fi bGUoc3RydWN0IG5ldHZzY19kZXZpY2UgKm52c2NkZXYsCisJCQkgICAgICBzdHJ1Y3QgbmV0X2Rl dmljZSAqbmRldikKK3sKKwlpZiAobnZzY2RldikgeworCQludnNjZGV2LT50eF9kaXNhYmxlID0g dHJ1ZTsKKwkJdmlydF93bWIoKTsgLyogZW5zdXJlIHR4cSB3aWxsIG5vdCB3YWtlIHVwIGFmdGVy IHN0b3AgKi8KKwl9CisKKwluZXRpZl90eF9kaXNhYmxlKG5kZXYpOworfQorCiBzdGF0aWMgaW50 IG5ldHZzY19jbG9zZShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0KQogewogCXN0cnVjdCBuZXRfZGV2 aWNlX2NvbnRleHQgKm5ldF9kZXZpY2VfY3R4ID0gbmV0ZGV2X3ByaXYobmV0KTsKQEAgLTE5Miw3 ICsyMTIsNyBAQCBzdGF0aWMgaW50IG5ldHZzY19jbG9zZShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0 KQogCXN0cnVjdCBuZXR2c2NfZGV2aWNlICpudmRldiA9IHJ0bmxfZGVyZWZlcmVuY2UobmV0X2Rl dmljZV9jdHgtPm52ZGV2KTsKIAlpbnQgcmV0OwogCi0JbmV0aWZfdHhfZGlzYWJsZShuZXQpOwor CW5ldHZzY190eF9kaXNhYmxlKG52ZGV2LCBuZXQpOwogCiAJLyogTm8gbmVlZCB0byBjbG9zZSBy bmRpcyBmaWx0ZXIgaWYgaXQgaXMgcmVtb3ZlZCBhbHJlYWR5ICovCiAJaWYgKCFudmRldikKQEAg LTkxOCw3ICs5MzgsNyBAQCBzdGF0aWMgaW50IG5ldHZzY19kZXRhY2goc3RydWN0IG5ldF9kZXZp Y2UgKm5kZXYsCiAKIAkvKiBJZiBkZXZpY2Ugd2FzIHVwIChyZWNlaXZpbmcpIHRoZW4gc2h1dGRv d24gKi8KIAlpZiAobmV0aWZfcnVubmluZyhuZGV2KSkgewotCQluZXRpZl90eF9kaXNhYmxlKG5k ZXYpOworCQluZXR2c2NfdHhfZGlzYWJsZShudmRldiwgbmRldik7CiAKIAkJcmV0ID0gcm5kaXNf ZmlsdGVyX2Nsb3NlKG52ZGV2KTsKIAkJaWYgKHJldCkgewpAQCAtMTg5OSw3ICsxOTE5LDcgQEAg c3RhdGljIHZvaWQgbmV0dnNjX2xpbmtfY2hhbmdlKHN0cnVjdCB3b3JrX3N0cnVjdCAqdykKIAkJ aWYgKHJkZXYtPmxpbmtfc3RhdGUpIHsKIAkJCXJkZXYtPmxpbmtfc3RhdGUgPSBmYWxzZTsKIAkJ CW5ldGlmX2NhcnJpZXJfb24obmV0KTsKLQkJCW5ldGlmX3R4X3dha2VfYWxsX3F1ZXVlcyhuZXQp OworCQkJbmV0dnNjX3R4X2VuYWJsZShuZXRfZGV2aWNlLCBuZXQpOwogCQl9IGVsc2UgewogCQkJ bm90aWZ5ID0gdHJ1ZTsKIAkJfQpAQCAtMTkwOSw3ICsxOTI5LDcgQEAgc3RhdGljIHZvaWQgbmV0 dnNjX2xpbmtfY2hhbmdlKHN0cnVjdCB3b3JrX3N0cnVjdCAqdykKIAkJaWYgKCFyZGV2LT5saW5r X3N0YXRlKSB7CiAJCQlyZGV2LT5saW5rX3N0YXRlID0gdHJ1ZTsKIAkJCW5ldGlmX2NhcnJpZXJf b2ZmKG5ldCk7Ci0JCQluZXRpZl90eF9zdG9wX2FsbF9xdWV1ZXMobmV0KTsKKwkJCW5ldHZzY190 eF9kaXNhYmxlKG5ldF9kZXZpY2UsIG5ldCk7CiAJCX0KIAkJa2ZyZWUoZXZlbnQpOwogCQlicmVh azsKQEAgLTE5MTgsNyArMTkzOCw3IEBAIHN0YXRpYyB2b2lkIG5ldHZzY19saW5rX2NoYW5nZShz dHJ1Y3Qgd29ya19zdHJ1Y3QgKncpCiAJCWlmICghcmRldi0+bGlua19zdGF0ZSkgewogCQkJcmRl di0+bGlua19zdGF0ZSA9IHRydWU7CiAJCQluZXRpZl9jYXJyaWVyX29mZihuZXQpOwotCQkJbmV0 aWZfdHhfc3RvcF9hbGxfcXVldWVzKG5ldCk7CisJCQluZXR2c2NfdHhfZGlzYWJsZShuZXRfZGV2 aWNlLCBuZXQpOwogCQkJZXZlbnQtPmV2ZW50ID0gUk5ESVNfU1RBVFVTX01FRElBX0NPTk5FQ1Q7 CiAJCQlzcGluX2xvY2tfaXJxc2F2ZSgmbmRldl9jdHgtPmxvY2ssIGZsYWdzKTsKIAkJCWxpc3Rf YWRkKCZldmVudC0+bGlzdCwgJm5kZXZfY3R4LT5yZWNvbmZpZ19ldmVudHMpOwotLSAKMi4yMC4x CgoKRnJvbSAxMGFlOTczZDdhZDJkYTk2NzcxMGM1YWMyYzMxODgxZDk4Yzk0Y2I3IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUaG9tYXMgRmFsY29uIDx0bGZhbGNvbkBsaW51eC5pYm0u Y29tPgpEYXRlOiBUaHUsIDQgQXByIDIwMTkgMTg6NTg6MjYgLTA1MDAKU3ViamVjdDogW1BBVENI IDAyLzMzXSBpYm12bmljOiBGaXggY29tcGxldGlvbiBzdHJ1Y3R1cmUgaW5pdGlhbGl6YXRpb24K ClsgVXBzdHJlYW0gY29tbWl0IGJiZDY2OWE4NjhiYmE1OTFmZmQzOGI3YmM3NWE3YjM2MWJiNTRi MDQgXQoKRml4IGRldmljZSBpbml0aWFsaXphdGlvbiBjb21wbGV0aW9uIGhhbmRsaW5nIGZvciB2 TklDIGFkYXB0ZXJzLgpJbml0aWFsaXplIHRoZSBjb21wbGV0aW9uIHN0cnVjdHVyZSBvbiBwcm9i ZSBhbmQgcmVpbml0aWFsaXplIHdoZW4gbmVlZGVkLgpUaGlzIGFsc28gZml4ZXMgYSByYWNlIGNv bmRpdGlvbiBkdXJpbmcga2R1bXAgd2hlcmUgdGhlIGRyaXZlciBjYW4gYXR0ZW1wdAp0byBhY2Nl c3MgdGhlIGNvbXBsZXRpb24gc3RydWN0IGJlZm9yZSBpdCBpcyBpbml0aWFsaXplZDoKClVuYWJs ZSB0byBoYW5kbGUga2VybmVsIHBhZ2luZyByZXF1ZXN0IGZvciBkYXRhIGF0IGFkZHJlc3MgMHgw MDAwMDAwMApGYXVsdGluZyBpbnN0cnVjdGlvbiBhZGRyZXNzOiAweGMwMDAwMDAwMDgxYWNiZTAK T29wczogS2VybmVsIGFjY2VzcyBvZiBiYWQgYXJlYSwgc2lnOiAxMSBbIzFdCkxFIFNNUCBOUl9D UFVTPTIwNDggTlVNQSBwU2VyaWVzCk1vZHVsZXMgbGlua2VkIGluOiBpYm12bmljKCspIGlibXZl dGggc3VucnBjIG92ZXJsYXkgc3F1YXNoZnMgbG9vcApDUFU6IDE5IFBJRDogMzAxIENvbW06IHN5 c3RlbWQtdWRldmQgTm90IHRhaW50ZWQgNC4xOC4wLTY0LmVsOC5wcGM2NGxlICMxCk5JUDogIGMw MDAwMDAwMDgxYWNiZTAgTFI6IGMwMDAwMDAwMDgxYWQ5NjQgQ1RSOiBjMDAwMDAwMDA4MWFkOTAw ClJFR1M6IGMwMDAwMDAwMjdmM2Y5OTAgVFJBUDogMDMwMCAgIE5vdCB0YWludGVkICAoNC4xOC4w LTY0LmVsOC5wcGM2NGxlKQpNU1I6ICA4MDAwMDAwMTAyODBiMDMzIDxTRixWRUMsVlNYLEVFLEZQ LE1FLElSLERSLFJJLExFLFRNW0VdPiBDUjogMjgyMjgyODggIFhFUjogMDAwMDAwMDYKQ0ZBUjog YzAwMDAwMDAwODAwODkzNCBEQVI6IDAwMDAwMDAwMDAwMDAwMDAgRFNJU1I6IDQwMDAwMDAwIElS UU1BU0s6IDEKR1BSMDA6IGMwMDAwMDAwMDgxYWQ5NjQgYzAwMDAwMDAyN2YzZmMxMCBjMDAwMDAw MDA5NWI1ODAwIGMwMDAwMDAwMjIxYjRlNTgKR1BSMDQ6IDAwMDAwMDAwMDAwMDAwMDMgMDAwMDAw MDAwMDAwMDAwMSAwMDAwNDlhMDg2OTE4NTgxIDAwMDAwMDAwMDAwMDAwZDQKR1BSMDg6IDAwMDAw MDAwMDAwMDAwMDcgMDAwMDAwMDAwMDAwMDAwMCBmZmZmZmZmZmZmZmZmZmU4IGQwMDAwMDAwMDE0 ZGRlMjgKR1BSMTI6IGMwMDAwMDAwMDgxYWQ5MDAgYzAwMDAwMDAwOWEwMGMwMCAwMDAwMDAwMDAw MDAwMDAxIDAwMDAwMDAwMDAwMDAxMDAKR1BSMTY6IDAwMDAwMDAwMDAwMDAwMzggMDAwMDAwMDAw MDAwMDAwNyBjMDAwMDAwMDA5NWUyMjMwIDAwMDAwMDAwMDAwMDAwMDYKR1BSMjA6IDAwMDAwMDAw MDA0MDAxNDAgMDAwMDAwMDAwMDAwMDAwMSBjMDAwMDAwMDA5MTBjODgwIDAwMDAwMDAwMDAwMDAw MDAKR1BSMjQ6IDAwMDAwMDAwMDAwMDAwMDAgMDAwMDAwMDAwMDAwMDAwNiAwMDAwMDAwMDAwMDAw MDAwIDAwMDAwMDAwMDAwMDAwMDMKR1BSMjg6IDAwMDAwMDAwMDAwMDAwMDEgMDAwMDAwMDAwMDAw MDAwMSBjMDAwMDAwMDIyMWI0ZTYwIGMwMDAwMDAwMjIxYjRlNTgKTklQIFtjMDAwMDAwMDA4MWFj YmUwXSBfX3dha2VfdXBfbG9ja2VkKzB4NTAvMHgxMDAKTFIgW2MwMDAwMDAwMDgxYWQ5NjRdIGNv bXBsZXRlKzB4NjQvMHhhMApDYWxsIFRyYWNlOgpbYzAwMDAwMDAyN2YzZmMxMF0gW2MwMDAwMDAw MjdmM2ZjNjBdIDB4YzAwMDAwMDAyN2YzZmM2MCAodW5yZWxpYWJsZSkKW2MwMDAwMDAwMjdmM2Zj NjBdIFtjMDAwMDAwMDA4MWFkOTY0XSBjb21wbGV0ZSsweDY0LzB4YTAKW2MwMDAwMDAwMjdmM2Zj YTBdIFtkMDAwMDAwMDAxNGRhZDU4XSBpYm12bmljX2hhbmRsZV9jcnErMHhjZTAvMHgxMTYwIFtp Ym12bmljXQpbYzAwMDAwMDAyN2YzZmQ1MF0gW2QwMDAwMDAwMDE0ZGIyNzBdIGlibXZuaWNfdGFz a2xldCsweDk4LzB4MTMwIFtpYm12bmljXQpbYzAwMDAwMDAyN2YzZmRhMF0gW2MwMDAwMDAwMDgx M2YzMzRdIHRhc2tsZXRfYWN0aW9uX2NvbW1vbi5pc3JhLjMrMHhjNC8weDFhMApbYzAwMDAwMDAy N2YzZmUwMF0gW2MwMDAwMDAwMDhjZDEzZjRdIF9fZG9fc29mdGlycSsweDE2NC8weDQwMApbYzAw MDAwMDAyN2YzZmVmMF0gW2MwMDAwMDAwMDgxM2VkNjRdIGlycV9leGl0KzB4MTg0LzB4MWMwCltj MDAwMDAwMDI3ZjNmZjIwXSBbYzAwMDAwMDAwODAxODhlOF0gX19kb19pcnErMHhiOC8weDIxMApb YzAwMDAwMDAyN2YzZmY5MF0gW2MwMDAwMDAwMDgwMmQwYTRdIGNhbGxfZG9faXJxKzB4MTQvMHgy NApbYzAwMDAwMDAyNmE1YjAxMF0gW2MwMDAwMDAwMDgwMThhZGNdIGRvX0lSUSsweDljLzB4MTMw CltjMDAwMDAwMDI2YTViMDYwXSBbYzAwMDAwMDAwODAwOGNlNF0gaGFyZHdhcmVfaW50ZXJydXB0 X2NvbW1vbisweDExNC8weDEyMAoKU2lnbmVkLW9mZi1ieTogVGhvbWFzIEZhbGNvbiA8dGxmYWxj b25AbGludXguaWJtLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBk YXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L2libS9pYm12bmljLmMgfCA1 ICsrKy0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2libS9pYm12bmljLmMgYi9kcml2ZXJz L25ldC9ldGhlcm5ldC9pYm0vaWJtdm5pYy5jCmluZGV4IGM4NzA0YjE2OTBlYi4uYTQ3NWYzNmRk ZjhjIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9pYm0vaWJtdm5pYy5jCisrKyBi L2RyaXZlcnMvbmV0L2V0aGVybmV0L2libS9pYm12bmljLmMKQEAgLTE4ODgsNiArMTg4OCw3IEBA IHN0YXRpYyBpbnQgZG9faGFyZF9yZXNldChzdHJ1Y3QgaWJtdm5pY19hZGFwdGVyICphZGFwdGVy LAogCSAqLwogCWFkYXB0ZXItPnN0YXRlID0gVk5JQ19QUk9CRUQ7CiAKKwlyZWluaXRfY29tcGxl dGlvbigmYWRhcHRlci0+aW5pdF9kb25lKTsKIAlyYyA9IGluaXRfY3JxX3F1ZXVlKGFkYXB0ZXIp OwogCWlmIChyYykgewogCQluZXRkZXZfZXJyKGFkYXB0ZXItPm5ldGRldiwKQEAgLTQ1NjksNyAr NDU3MCw3IEBAIHN0YXRpYyBpbnQgaWJtdm5pY19yZXNldF9pbml0KHN0cnVjdCBpYm12bmljX2Fk YXB0ZXIgKmFkYXB0ZXIpCiAJb2xkX251bV9yeF9xdWV1ZXMgPSBhZGFwdGVyLT5yZXFfcnhfcXVl dWVzOwogCW9sZF9udW1fdHhfcXVldWVzID0gYWRhcHRlci0+cmVxX3R4X3F1ZXVlczsKIAotCWlu aXRfY29tcGxldGlvbigmYWRhcHRlci0+aW5pdF9kb25lKTsKKwlyZWluaXRfY29tcGxldGlvbigm YWRhcHRlci0+aW5pdF9kb25lKTsKIAlhZGFwdGVyLT5pbml0X2RvbmVfcmMgPSAwOwogCWlibXZu aWNfc2VuZF9jcnFfaW5pdChhZGFwdGVyKTsKIAlpZiAoIXdhaXRfZm9yX2NvbXBsZXRpb25fdGlt ZW91dCgmYWRhcHRlci0+aW5pdF9kb25lLCB0aW1lb3V0KSkgewpAQCAtNDYyNCw3ICs0NjI1LDYg QEAgc3RhdGljIGludCBpYm12bmljX2luaXQoc3RydWN0IGlibXZuaWNfYWRhcHRlciAqYWRhcHRl cikKIAogCWFkYXB0ZXItPmZyb21fcGFzc2l2ZV9pbml0ID0gZmFsc2U7CiAKLQlpbml0X2NvbXBs ZXRpb24oJmFkYXB0ZXItPmluaXRfZG9uZSk7CiAJYWRhcHRlci0+aW5pdF9kb25lX3JjID0gMDsK IAlpYm12bmljX3NlbmRfY3JxX2luaXQoYWRhcHRlcik7CiAJaWYgKCF3YWl0X2Zvcl9jb21wbGV0 aW9uX3RpbWVvdXQoJmFkYXB0ZXItPmluaXRfZG9uZSwgdGltZW91dCkpIHsKQEAgLTQ3MDMsNiAr NDcwMyw3IEBAIHN0YXRpYyBpbnQgaWJtdm5pY19wcm9iZShzdHJ1Y3QgdmlvX2RldiAqZGV2LCBj b25zdCBzdHJ1Y3QgdmlvX2RldmljZV9pZCAqaWQpCiAJSU5JVF9XT1JLKCZhZGFwdGVyLT5pYm12 bmljX3Jlc2V0LCBfX2libXZuaWNfcmVzZXQpOwogCUlOSVRfTElTVF9IRUFEKCZhZGFwdGVyLT5y d2lfbGlzdCk7CiAJc3Bpbl9sb2NrX2luaXQoJmFkYXB0ZXItPnJ3aV9sb2NrKTsKKwlpbml0X2Nv bXBsZXRpb24oJmFkYXB0ZXItPmluaXRfZG9uZSk7CiAJYWRhcHRlci0+cmVzZXR0aW5nID0gZmFs c2U7CiAKIAlhZGFwdGVyLT5tYWNfY2hhbmdlX3BlbmRpbmcgPSBmYWxzZTsKLS0gCjIuMjAuMQoK CkZyb20gZTZhODgyMDVhMDE5N2IwMDIyMDUzMDVmYzg4NDQzNDZkY2Y4MDM1NCBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogU2hlZW5hIE1pcmEtYXRvIDxzaGVlbmEubWlyYS1hdG9AYWxs aWVkdGVsZXNpcy5jby5uej4KRGF0ZTogTW9uLCAxIEFwciAyMDE5IDEzOjA0OjQyICsxMzAwClN1 YmplY3Q6IFtQQVRDSCAwMy8zM10gaXA2X3R1bm5lbDogTWF0Y2ggdG8gQVJQSFJEX1RVTk5FTDYg Zm9yIGRldiB0eXBlCgpbIFVwc3RyZWFtIGNvbW1pdCBiMmU1NGIwOWEzZDI5YzRkYjg4M2I5MjAy NzRjYThkY2E0ZDlmMDRkIF0KClRoZSBkZXZpY2UgdHlwZSBmb3IgaXA2IHR1bm5lbHMgaXMgc2V0 IHRvCkFSUEhSRF9UVU5ORUw2LiBIb3dldmVyLCB0aGUgaXA0aXA2X2VyciBmdW5jdGlvbgppcyBl eHBlY3RpbmcgdGhlIGRldmljZSB0eXBlIG9mIHRoZSB0dW5uZWwgdG8gYmUKQVJQSFJEX1RVTk5F TC4gIFNpbmNlIHRoZSBkZXZpY2UgdHlwZXMgZG8gbm90Cm1hdGNoLCB0aGUgZnVuY3Rpb24gZXhp dHMgYW5kIHRoZSBJQ01QIGVycm9yCnBhY2tldCBpcyBub3Qgc2VudCB0byB0aGUgb3JpZ2luYXRp bmcgaG9zdC4gTm90ZQp0aGF0IHRoZSBkZXZpY2UgdHlwZSBmb3IgSVB2NCB0dW5uZWxzIGlzIHNl dCB0bwpBUlBIUkRfVFVOTkVMLgoKRml4IGlzIHRvIGV4cGVjdCBhIHR1bm5lbCBkZXZpY2UgdHlw ZSBvZgpBUlBIUkRfVFVOTkVMNiBpbnN0ZWFkLiAgTm93IHRoZSB0dW5uZWwgZGV2aWNlCnR5cGUg bWF0Y2hlcyBhbmQgdGhlIElDTVAgZXJyb3IgcGFja2V0IGlzIHNlbnQKdG8gdGhlIG9yaWdpbmF0 aW5nIGhvc3QuCgpTaWduZWQtb2ZmLWJ5OiBTaGVlbmEgTWlyYS1hdG8gPHNoZWVuYS5taXJhLWF0 b0BhbGxpZWR0ZWxlc2lzLmNvLm56PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRh dmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjYvaXA2X3R1bm5lbC5jIHwgNCArKy0tCiAx IGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL25ldC9pcHY2L2lwNl90dW5uZWwuYyBiL25ldC9pcHY2L2lwNl90dW5uZWwuYwppbmRleCAw YzY0MDNjZjhiNTIuLmFkZTEzOTBjNjM0OCAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvaXA2X3R1bm5l bC5jCisrKyBiL25ldC9pcHY2L2lwNl90dW5uZWwuYwpAQCAtNjI3LDcgKzYyNyw3IEBAIGlwNGlw Nl9lcnIoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGluZXQ2X3NrYl9wYXJtICpvcHQsCiAJ CXJ0ID0gaXBfcm91dGVfb3V0cHV0X3BvcnRzKGRldl9uZXQoc2tiLT5kZXYpLCAmZmw0LCBOVUxM LAogCQkJCQkgICBlaXBoLT5kYWRkciwgZWlwaC0+c2FkZHIsIDAsIDAsCiAJCQkJCSAgIElQUFJP VE9fSVBJUCwgUlRfVE9TKGVpcGgtPnRvcyksIDApOwotCQlpZiAoSVNfRVJSKHJ0KSB8fCBydC0+ ZHN0LmRldi0+dHlwZSAhPSBBUlBIUkRfVFVOTkVMKSB7CisJCWlmIChJU19FUlIocnQpIHx8IHJ0 LT5kc3QuZGV2LT50eXBlICE9IEFSUEhSRF9UVU5ORUw2KSB7CiAJCQlpZiAoIUlTX0VSUihydCkp CiAJCQkJaXBfcnRfcHV0KHJ0KTsKIAkJCWdvdG8gb3V0OwpAQCAtNjM2LDcgKzYzNiw3IEBAIGlw NGlwNl9lcnIoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGluZXQ2X3NrYl9wYXJtICpvcHQs CiAJfSBlbHNlIHsKIAkJaWYgKGlwX3JvdXRlX2lucHV0KHNrYjIsIGVpcGgtPmRhZGRyLCBlaXBo LT5zYWRkciwgZWlwaC0+dG9zLAogCQkJCSAgIHNrYjItPmRldikgfHwKLQkJICAgIHNrYl9kc3Qo c2tiMiktPmRldi0+dHlwZSAhPSBBUlBIUkRfVFVOTkVMKQorCQkgICAgc2tiX2RzdChza2IyKS0+ ZGV2LT50eXBlICE9IEFSUEhSRF9UVU5ORUw2KQogCQkJZ290byBvdXQ7CiAJfQogCi0tIAoyLjIw LjEKCgpGcm9tIGJjMWI5OWIyODI5MTZhNDhjOTM3YTBhYzVhMzU4MjdlZGU3Yzk4YjcgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IEp1bndlaSBIdSA8aHVqdW53ZWk0QGh1YXdlaS5jb20+ CkRhdGU6IFR1ZSwgMiBBcHIgMjAxOSAxOTozODowNCArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMDQv MzNdIGlwdjY6IEZpeCBkYW5nbGluZyBwb2ludGVyIHdoZW4gaXB2NiBmcmFnbWVudAoKWyBVcHN0 cmVhbSBjb21taXQgZWYwZWZjZDNiZDNmZDA1ODk3MzJiNjdmYjU4NmZmZDNjODcwNTgwNiBdCgpB dCB0aGUgYmVnaW5uaW5nIG9mIGlwNl9mcmFnbWVudCBmdW5jLCB0aGUgcHJldmhkciBwb2ludGVy IGlzCm9idGFpbmVkIGluIHRoZSBpcDZfZmluZF8xc3RmcmFnb3B0IGZ1bmMuCkhvd2V2ZXIsIGFs bCB0aGUgcG9pbnRlcnMgcG9pbnRpbmcgaW50byBza2IgaGVhZGVyIG1heSBjaGFuZ2UKd2hlbiBj YWxsaW5nIHNrYl9jaGVja3N1bV9oZWxwIGZ1bmMgd2l0aApza2ItPmlwX3N1bW1lZCA9IENIRUNL U1VNX1BBUlRJQUwgY29uZGl0aW9uLgpUaGUgcHJldmhkciBwb2ludGUgd2lsbCBiZSBkYW5nbGlu ZyBpZiBpdCBpcyBub3QgcmVsb2FkZWQgYWZ0ZXIKY2FsbGluZyBfX3NrYl9saW5lYXJpemUgZnVu YyBpbiBza2JfY2hlY2tzdW1faGVscCBmdW5jLgoKSGVyZSwgSSBhZGQgYSB2YXJpYWJsZSwgbmV4 dGhkcl9vZmZzZXQsIHRvIGV2YWx1YXRlIHRoZSBvZmZzZXQsCndoaWNoIGRvZXMgbm90IGNoYW5n ZXMgZXZlbiBhZnRlciBjYWxsaW5nIF9fc2tiX2xpbmVhcml6ZSBmdW5jLgoKRml4ZXM6IDQwNWM5 MmY3YTU0MSAoImlwdjY6IGFkZCBkZWZlbnNpdmUgY2hlY2sgZm9yIENIRUNLU1VNX1BBUlRJQUwg c2ticyBpbiBpcF9mcmFnbWVudCIpClNpZ25lZC1vZmYtYnk6IEp1bndlaSBIdSA8aHVqdW53ZWk0 QGh1YXdlaS5jb20+ClJlcG9ydGVkLWJ5OiBXZW5oYW8gWmhhbmcgPHpoYW5nd2VuaGFvOEBodWF3 ZWkuY29tPgpSZXBvcnRlZC1ieTogc3l6Ym90K2U4Y2U1NDFkMDk1ZTQ4NjA3NGZjQHN5emthbGxl ci5hcHBzcG90bWFpbC5jb20KUmV2aWV3ZWQtYnk6IFpoaXFpYW5nIExpdSA8bGl1emhpcWlhbmcy NkBodWF3ZWkuY29tPgpBY2tlZC1ieTogTWFydGluIEthRmFpIExhdSA8a2FmYWlAZmIuY29tPgpT aWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQog bmV0L2lwdjYvaXA2X291dHB1dC5jIHwgNCArKystCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRp b25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvaXA2X291dHB1dC5j IGIvbmV0L2lwdjYvaXA2X291dHB1dC5jCmluZGV4IDBiYjg3ZjNhMTBjNy4uZWVkOTIzMWM5MGFk IDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9pcDZfb3V0cHV0LmMKKysrIGIvbmV0L2lwdjYvaXA2X291 dHB1dC5jCkBAIC01ODcsNyArNTg3LDcgQEAgaW50IGlwNl9mcmFnbWVudChzdHJ1Y3QgbmV0ICpu ZXQsIHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJCQlpbmV0Nl9zayhz a2ItPnNrKSA6IE5VTEw7CiAJc3RydWN0IGlwdjZoZHIgKnRtcF9oZHI7CiAJc3RydWN0IGZyYWdf aGRyICpmaDsKLQl1bnNpZ25lZCBpbnQgbXR1LCBobGVuLCBsZWZ0LCBsZW47CisJdW5zaWduZWQg aW50IG10dSwgaGxlbiwgbGVmdCwgbGVuLCBuZXh0aGRyX29mZnNldDsKIAlpbnQgaHJvb20sIHRy b29tOwogCV9fYmUzMiBmcmFnX2lkOwogCWludCBwdHIsIG9mZnNldCA9IDAsIGVyciA9IDA7CkBA IC01OTgsNiArNTk4LDcgQEAgaW50IGlwNl9mcmFnbWVudChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVj dCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJZ290byBmYWlsOwogCWhsZW4gPSBl cnI7CiAJbmV4dGhkciA9ICpwcmV2aGRyOworCW5leHRoZHJfb2Zmc2V0ID0gcHJldmhkciAtIHNr Yl9uZXR3b3JrX2hlYWRlcihza2IpOwogCiAJbXR1ID0gaXA2X3NrYl9kc3RfbXR1KHNrYik7CiAK QEAgLTYzMiw2ICs2MzMsNyBAQCBpbnQgaXA2X2ZyYWdtZW50KHN0cnVjdCBuZXQgKm5ldCwgc3Ry dWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCSAgICAoZXJyID0gc2tiX2NoZWNr c3VtX2hlbHAoc2tiKSkpCiAJCWdvdG8gZmFpbDsKIAorCXByZXZoZHIgPSBza2JfbmV0d29ya19o ZWFkZXIoc2tiKSArIG5leHRoZHJfb2Zmc2V0OwogCWhyb29tID0gTExfUkVTRVJWRURfU1BBQ0Uo cnQtPmRzdC5kZXYpOwogCWlmIChza2JfaGFzX2ZyYWdfbGlzdChza2IpKSB7CiAJCXVuc2lnbmVk IGludCBmaXJzdF9sZW4gPSBza2JfcGFnZWxlbihza2IpOwotLSAKMi4yMC4xCgoKRnJvbSBlYWRh NDZjNDI4M2Y4YjIxNWJjOTBmZjZlMjJmZTQ1NzNmODM5YWExIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBMb3JlbnpvIEJpYW5jb25pIDxsb3JlbnpvLmJpYW5jb25pQHJlZGhhdC5jb20+ CkRhdGU6IFRodSwgNCBBcHIgMjAxOSAxNjozNzo1MyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDUv MzNdIGlwdjY6IHNpdDogcmVzZXQgaXAgaGVhZGVyIHBvaW50ZXIgaW4gaXBpcDZfcmN2CgpbIFVw c3RyZWFtIGNvbW1pdCBiYjliZDgxNGViZjA0ZjU3OWJlNDY2YmE2MWZjOTIyNjI1NTA4ODA3IF0K CmlwaXA2IHR1bm5lbHMgcnVuIGlwdHVubmVsX3B1bGxfaGVhZGVyIG9uIHJlY2VpdmVkIHNrYnMu IFRoaXMgY2FuCmRldGVybWluZSB0aGUgZm9sbG93aW5nIHVzZS1hZnRlci1mcmVlIGFjY2Vzc2lu ZyBpcGggcG9pbnRlciBzaW5jZQp0aGUgcGFja2V0IHdpbGwgYmUgJ3VuY2xvbmVkJyBydW5uaW5n IHBza2JfZXhwYW5kX2hlYWQgaWYgaXQgaXMgYQpjbG9uZWQgZ3NvIHNrYiAoZS5nIGlmIHRoZSBw YWNrZXQgaGFzIGJlZW4gc2VudCB0aG91Z2ggYSB2ZXRoIGRldmljZSkKClsgIDcwNi4zNjk2NTVd IEJVRzogS0FTQU46IHVzZS1hZnRlci1mcmVlIGluIGlwaXA2X3JjdisweDE2NzgvMHgxNmUwIFtz aXRdClsgIDcwNi40NDkwNTZdIFJlYWQgb2Ygc2l6ZSAxIGF0IGFkZHIgZmZmZmUwMWI2YmQ4NTVm NSBieSB0YXNrIGtzb2Z0aXJxZC8xLz0KWyAgNzA2LjY2OTQ5NF0gSGFyZHdhcmUgbmFtZTogSFBF IFByb0xpYW50IG00MDAgU2VydmVyL1Byb0xpYW50IG00MDAgU2VydmVyLCBCSU9TIFUwMiAwOC8x OS8yMDE2ClsgIDcwNi43NzE4MzldIENhbGwgdHJhY2U6ClsgIDcwNi44MDExNTldICBkdW1wX2Jh Y2t0cmFjZSsweDAvMHgyZjgKWyAgNzA2Ljg0NTA3OV0gIHNob3dfc3RhY2srMHgyNC8weDMwClsg IDcwNi44ODQ4MzNdICBkdW1wX3N0YWNrKzB4ZTAvMHgxMWMKWyAgNzA2LjkyNTYyOV0gIHByaW50 X2FkZHJlc3NfZGVzY3JpcHRpb24rMHg2OC8weDI2MApbICA3MDYuOTgyMDcwXSAga2FzYW5fcmVw b3J0KzB4MTc4LzB4MzQwClsgIDcwNy4wMjU5OTVdICBfX2FzYW5fcmVwb3J0X2xvYWQxX25vYWJv cnQrMHgzMC8weDQwClsgIDcwNy4wODM0ODFdICBpcGlwNl9yY3YrMHgxNjc4LzB4MTZlMCBbc2l0 XQpbICA3MDcuMTMyNjIzXSAgdHVubmVsNjRfcmN2KzB4ZDQvMHgyMDAgW3R1bm5lbDRdClsgIDcw Ny4xODU5NDBdICBpcF9sb2NhbF9kZWxpdmVyX2ZpbmlzaCsweDNiOC8weDk4OApbICA3MDcuMjQx MzM4XSAgaXBfbG9jYWxfZGVsaXZlcisweDE0NC8weDQ3MApbICA3MDcuMjg5NDM2XSAgaXBfcmN2 X2ZpbmlzaCsweDQzYy8weDE0YjAKWyAgNzA3LjMzNTQ0N10gIGlwX3JjdisweDYyOC8weDExMzgK WyAgNzA3LjM3NDE1MV0gIF9fbmV0aWZfcmVjZWl2ZV9za2JfY29yZSsweDE2NzAvMHgyNjAwClsg IDcwNy40MzI2ODBdICBfX25ldGlmX3JlY2VpdmVfc2tiKzB4MjgvMHgxOTAKWyAgNzA3LjQ4Mjg1 OV0gIHByb2Nlc3NfYmFja2xvZysweDFkMC8weDYxMApbICA3MDcuNTI5OTEzXSAgbmV0X3J4X2Fj dGlvbisweDM3Yy8weGY2OApbICA3MDcuNTc0ODgyXSAgX19kb19zb2Z0aXJxKzB4Mjg4LzB4MTAx OApbICA3MDcuNjE5ODUyXSAgcnVuX2tzb2Z0aXJxZCsweDcwLzB4YTgKWyAgNzA3LjY2MjczNF0g IHNtcGJvb3RfdGhyZWFkX2ZuKzB4M2E0LzB4OWU4ClsgIDcwNy43MTE4NzVdICBrdGhyZWFkKzB4 MmM4LzB4MzUwClsgIDcwNy43NTA1ODNdICByZXRfZnJvbV9mb3JrKzB4MTAvMHgxOAoKWyAgNzA3 LjgxMTMwMl0gQWxsb2NhdGVkIGJ5IHRhc2sgMTY5ODI6ClsgIDcwNy44NTQxODJdICBrYXNhbl9r bWFsbG9jLnBhcnQuMSsweDQwLzB4MTA4ClsgIDcwNy45MDU0MDVdICBrYXNhbl9rbWFsbG9jKzB4 YjQvMHhjOApbICA3MDcuOTQ4MjkxXSAga2FzYW5fc2xhYl9hbGxvYysweDE0LzB4MjAKWyAgNzA3 Ljk5NDMwOV0gIF9fa21hbGxvY19ub2RlX3RyYWNrX2NhbGxlcisweDE1OC8weDVlMApbICA3MDgu MDUzOTAyXSAgX19rbWFsbG9jX3Jlc2VydmUuaXNyYS44KzB4NTQvMHhlMApbICA3MDguMTA4Mjgw XSAgX19hbGxvY19za2IrMHhkOC8weDQwMApbICA3MDguMTUwMTM5XSAgc2tfc3RyZWFtX2FsbG9j X3NrYisweGE0LzB4NjM4ClsgIDcwOC4yMDAzNDZdICB0Y3Bfc2VuZG1zZ19sb2NrZWQrMHg4MTgv MHgyYjkwClsgIDcwOC4yNTE1ODFdICB0Y3Bfc2VuZG1zZysweDQwLzB4NjAKWyAgNzA4LjI5MjM3 Nl0gIGluZXRfc2VuZG1zZysweGYwLzB4NTIwClsgIDcwOC4zMzUyNTldICBzb2NrX3NlbmRtc2cr MHhhYy8weGY4ClsgIDcwOC4zNzcwOTZdICBzb2NrX3dyaXRlX2l0ZXIrMHgxYzAvMHgyYzAKWyAg NzA4LjQyNDE1NF0gIG5ld19zeW5jX3dyaXRlKzB4MzU4LzB4NGE4ClsgIDcwOC40NzAxNjJdICBf X3Zmc193cml0ZSsweGM0LzB4ZjgKWyAgNzA4LjUxMDk1MF0gIHZmc193cml0ZSsweDEyYy8weDNk MApbICA3MDguNTUxNzM5XSAga3N5c193cml0ZSsweGNjLzB4MTc4ClsgIDcwOC41OTI1MzNdICBf X2FybTY0X3N5c193cml0ZSsweDcwLzB4YTAKWyAgNzA4LjYzOTU5M10gIGVsMF9zdmNfaGFuZGxl cisweDEzYy8weDI5OApbICA3MDguNjg2NjQ2XSAgZWwwX3N2YysweDgvMHhjCgpbICA3MDguNzM5 MDE5XSBGcmVlZCBieSB0YXNrIDE3OgpbICA3MDguNzc0NTk3XSAgX19rYXNhbl9zbGFiX2ZyZWUr MHgxMTQvMHgyMjgKWyAgNzA4LjgyMzczNl0gIGthc2FuX3NsYWJfZnJlZSsweDEwLzB4MTgKWyAg NzA4Ljg2ODcwM10gIGtmcmVlKzB4MTAwLzB4M2Q4ClsgIDcwOC45MDUzMjBdICBza2JfZnJlZV9o ZWFkKzB4N2MvMHg5OApbICA3MDguOTQ4MjA0XSAgc2tiX3JlbGVhc2VfZGF0YSsweDMyMC8weDQ5 MApbICA3MDguOTk2MzAxXSAgcHNrYl9leHBhbmRfaGVhZCsweDYwYy8weDk3MApbICA3MDkuMDQ0 Mzk5XSAgX19pcHR1bm5lbF9wdWxsX2hlYWRlcisweDNiOC8weDVkMApbICA3MDkuMDk4NzcwXSAg aXBpcDZfcmN2KzB4NDFjLzB4MTZlMCBbc2l0XQpbICA3MDkuMTQ2ODczXSAgdHVubmVsNjRfcmN2 KzB4ZDQvMHgyMDAgW3R1bm5lbDRdClsgIDcwOS4yMDAxOTVdICBpcF9sb2NhbF9kZWxpdmVyX2Zp bmlzaCsweDNiOC8weDk4OApbICA3MDkuMjU1NTk2XSAgaXBfbG9jYWxfZGVsaXZlcisweDE0NC8w eDQ3MApbICA3MDkuMzAzNjkyXSAgaXBfcmN2X2ZpbmlzaCsweDQzYy8weDE0YjAKWyAgNzA5LjM0 OTcwNV0gIGlwX3JjdisweDYyOC8weDExMzgKWyAgNzA5LjM4ODQxM10gIF9fbmV0aWZfcmVjZWl2 ZV9za2JfY29yZSsweDE2NzAvMHgyNjAwClsgIDcwOS40NDY5NDNdICBfX25ldGlmX3JlY2VpdmVf c2tiKzB4MjgvMHgxOTAKWyAgNzA5LjQ5NzEyMF0gIHByb2Nlc3NfYmFja2xvZysweDFkMC8weDYx MApbICA3MDkuNTQ0MTY5XSAgbmV0X3J4X2FjdGlvbisweDM3Yy8weGY2OApbICA3MDkuNTg5MTMx XSAgX19kb19zb2Z0aXJxKzB4Mjg4LzB4MTAxOAoKWyAgNzA5LjY1MTkzOF0gVGhlIGJ1Z2d5IGFk ZHJlc3MgYmVsb25ncyB0byB0aGUgb2JqZWN0IGF0IGZmZmZlMDFiNmJkODU1ODAKICAgICAgICAg ICAgICAgIHdoaWNoIGJlbG9uZ3MgdG8gdGhlIGNhY2hlIGttYWxsb2MtMTAyNCBvZiBzaXplIDEw MjQKWyAgNzA5LjgwNDM1Nl0gVGhlIGJ1Z2d5IGFkZHJlc3MgaXMgbG9jYXRlZCAxMTcgYnl0ZXMg aW5zaWRlIG9mCiAgICAgICAgICAgICAgICAxMDI0LWJ5dGUgcmVnaW9uIFtmZmZmZTAxYjZiZDg1 NTgwLCBmZmZmZTAxYjZiZDg1OTgwKQpbICA3MDkuOTQ2MzQwXSBUaGUgYnVnZ3kgYWRkcmVzcyBi ZWxvbmdzIHRvIHRoZSBwYWdlOgpbICA3MTAuMDAzODI0XSBwYWdlOmZmZmY3ZmY4MDZkYWY2MDAg Y291bnQ6MSBtYXBjb3VudDowIG1hcHBpbmc6ZmZmZmUwMWM0MDAxZjYwMCBpbmRleDoweDAKWyAg NzEwLjA5OTkxNF0gZmxhZ3M6IDB4ZmZmZmY4MDAwMDAwMTAwKHNsYWIpClsgIDcxMC4xNDkwNTld IHJhdzogMGZmZmZmODAwMDAwMDEwMCBkZWFkMDAwMDAwMDAwMTAwIGRlYWQwMDAwMDAwMDAyMDAg ZmZmZmUwMWM0MDAxZjYwMApbICA3MTAuMjQyMDExXSByYXc6IDAwMDAwMDAwMDAwMDAwMDAgMDAw MDAwMDAwMDM4MDAzOCAwMDAwMDAwMWZmZmZmZmZmIDAwMDAwMDAwMDAwMDAwMDAKWyAgNzEwLjMz NDk2Nl0gcGFnZSBkdW1wZWQgYmVjYXVzZToga2FzYW46IGJhZCBhY2Nlc3MgZGV0ZWN0ZWQKCkZp eCBpdCByZXNldHRpbmcgaXBoIHBvaW50ZXIgYWZ0ZXIgaXB0dW5uZWxfcHVsbF9oZWFkZXIKCkZp eGVzOiBhMDlhNGM4ZGQxZWMgKCJ0dW5uZWxzOiBSZW1vdmUgZW5jYXBzdWxhdGlvbiBvZmZsb2Fk cyBvbiBkZWNhcCIpClRlc3RlZC1ieTogSmlhbmxpbiBTaGkgPGppc2hpQHJlZGhhdC5jb20+ClNp Z25lZC1vZmYtYnk6IExvcmVuem8gQmlhbmNvbmkgPGxvcmVuem8uYmlhbmNvbmlAcmVkaGF0LmNv bT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0Pgot LS0KIG5ldC9pcHY2L3NpdC5jIHwgNCArKysrCiAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25z KCspCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvc2l0LmMgYi9uZXQvaXB2Ni9zaXQuYwppbmRleCBk ZTlhYTVjYjI5NWMuLjhmNmNmOGU2YjVjMSAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvc2l0LmMKKysr IGIvbmV0L2lwdjYvc2l0LmMKQEAgLTY2OSw2ICs2NjksMTAgQEAgc3RhdGljIGludCBpcGlwNl9y Y3Yoc3RydWN0IHNrX2J1ZmYgKnNrYikKIAkJICAgICFuZXRfZXEodHVubmVsLT5uZXQsIGRldl9u ZXQodHVubmVsLT5kZXYpKSkpCiAJCQlnb3RvIG91dDsKIAorCQkvKiBza2IgY2FuIGJlIHVuY2xv bmVkIGluIGlwdHVubmVsX3B1bGxfaGVhZGVyLCBzbworCQkgKiBvbGQgaXBoIGlzIG5vIGxvbmdl ciB2YWxpZAorCQkgKi8KKwkJaXBoID0gKGNvbnN0IHN0cnVjdCBpcGhkciAqKXNrYl9tYWNfaGVh ZGVyKHNrYik7CiAJCWVyciA9IElQX0VDTl9kZWNhcHN1bGF0ZShpcGgsIHNrYik7CiAJCWlmICh1 bmxpa2VseShlcnIpKSB7CiAJCQlpZiAobG9nX2Vjbl9lcnJvcikKLS0gCjIuMjAuMQoKCkZyb20g MGIyNjI1ZjEyZjZhZTdiYmY1MDMxYWU3YTIwOTBiZjg4MTFmYmU1YyBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogSmlyaSBTbGFieSA8anNsYWJ5QHN1c2UuY3o+CkRhdGU6IEZyaSwgMjkg TWFyIDIwMTkgMTI6MTk6NDYgKzAxMDAKU3ViamVjdDogW1BBVENIIDA2LzMzXSBrY206IHN3aXRj aCBvcmRlciBvZiBkZXZpY2UgcmVnaXN0cmF0aW9uIHRvIGZpeCBhIGNyYXNoCgpbIFVwc3RyZWFt IGNvbW1pdCAzYzQ0NmU2Zjk2OTk3ZjJhOTViZjAwMzdlZjQ2MzgwMjE2MmQyMzIzIF0KCldoZW4g a2NtIGlzIGxvYWRlZCB3aGlsZSBtYW55IHByb2Nlc3NlcyB0cnkgdG8gY3JlYXRlIGEgS0NNIHNv Y2tldCwgYQpjcmFzaCBvY2N1cnM6CiBCVUc6IHVuYWJsZSB0byBoYW5kbGUga2VybmVsIE5VTEwg cG9pbnRlciBkZXJlZmVyZW5jZSBhdCAwMDAwMDAwMDAwMDAwMDBlCiBJUDogbXV0ZXhfbG9jaysw eDI3LzB4NDAga2VybmVsL2xvY2tpbmcvbXV0ZXguYzoyNDAKIFBHRCA4MDAwMDAwMDE2ZWYyMDY3 IFA0RCA4MDAwMDAwMDE2ZWYyMDY3IFBVRCAzZDZlOTA2NyBQTUQgMAogT29wczogMDAwMiBbIzFd IFNNUCBLQVNBTiBQVEkKIENQVTogMCBQSUQ6IDcwMDUgQ29tbTogc3l6LWV4ZWN1dG9yLjUgTm90 IHRhaW50ZWQgNC4xMi4xNC0zOTYtZGVmYXVsdCAjMSBTTEUxNS1TUDEgKHVucmVsZWFzZWQpCiBS SVA6IDAwMTA6bXV0ZXhfbG9jaysweDI3LzB4NDAga2VybmVsL2xvY2tpbmcvbXV0ZXguYzoyNDAK IFJTUDogMDAxODpmZmZmODgwMDBkNDg3YTAwIEVGTEFHUzogMDAwMTAyNDYKIFJBWDogMDAwMDAw MDAwMDAwMDAwMCBSQlg6IDAwMDAwMDAwMDAwMDAwMGUgUkNYOiAxZmZmZjEwMDA4MmIwNzE5CiAu Li4KIENSMjogMDAwMDAwMDAwMDAwMDAwZSBDUjM6IDAwMDAwMDAwNGIxYmMwMDMgQ1I0OiAwMDAw MDAwMDAwMDYwZWYwCiBDYWxsIFRyYWNlOgogIGtjbV9jcmVhdGUrMHg2MDAvMHhiZjAgW2tjbV0K ICBfX3NvY2tfY3JlYXRlKzB4MzI0LzB4NzUwIG5ldC9zb2NrZXQuYzoxMjcyCiAuLi4KClRoaXMg aXMgZHVlIHRvIHJhY2UgYmV0d2VlbiBzb2NrX2NyZWF0ZSBhbmQgdW5maW5pc2hlZApyZWdpc3Rl cl9wZXJuZXRfZGV2aWNlLiBrY21fY3JlYXRlIHRyaWVzIHRvIGRvICJuZXRfZ2VuZXJpYyhuZXQs CmtjbV9uZXRfaWQpIi4gYnV0IGtjbV9uZXRfaWQgaXMgbm90IGluaXRpYWxpemVkIHlldC4KClNv IHN3aXRjaCB0aGUgb3JkZXIgb2YgdGhlIHR3byB0byBjbG9zZSB0aGUgcmFjZS4KClRoaXMgY2Fu IGJlIHJlcHJvZHVjZWQgd2l0aCBtdXRpcGxlIHByb2Nlc3NlcyBkb2luZyBzb2NrZXQoUEZfS0NN LCAuLi4pCmFuZCBvbmUgcHJvY2VzcyBkb2luZyBtb2R1bGUgcmVtb3ZhbC4KCkZpeGVzOiBhYjdh YzRlYjk4MzIgKCJrY206IEtlcm5lbCBDb25uZWN0aW9uIE11bHRpcGxleG9yIG1vZHVsZSIpClJl dmlld2VkLWJ5OiBNaWNoYWwgS3ViZWNlayA8bWt1YmVjZWtAc3VzZS5jej4KU2lnbmVkLW9mZi1i eTogSmlyaSBTbGFieSA8anNsYWJ5QHN1c2UuY3o+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1p bGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQva2NtL2tjbXNvY2suYyB8IDE2ICsr KysrKysrLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKyksIDggZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2tjbS9rY21zb2NrLmMgYi9uZXQva2NtL2tjbXNvY2su YwppbmRleCA1NzFkODI0ZTRlMjQuLmI5MTlkYjAyYzdmOSAxMDA2NDQKLS0tIGEvbmV0L2tjbS9r Y21zb2NrLmMKKysrIGIvbmV0L2tjbS9rY21zb2NrLmMKQEAgLTIwNTQsMTQgKzIwNTQsMTQgQEAg c3RhdGljIGludCBfX2luaXQga2NtX2luaXQodm9pZCkKIAlpZiAoZXJyKQogCQlnb3RvIGZhaWw7 CiAKLQllcnIgPSBzb2NrX3JlZ2lzdGVyKCZrY21fZmFtaWx5X29wcyk7Ci0JaWYgKGVycikKLQkJ Z290byBzb2NrX3JlZ2lzdGVyX2ZhaWw7Ci0KIAllcnIgPSByZWdpc3Rlcl9wZXJuZXRfZGV2aWNl KCZrY21fbmV0X29wcyk7CiAJaWYgKGVycikKIAkJZ290byBuZXRfb3BzX2ZhaWw7CiAKKwllcnIg PSBzb2NrX3JlZ2lzdGVyKCZrY21fZmFtaWx5X29wcyk7CisJaWYgKGVycikKKwkJZ290byBzb2Nr X3JlZ2lzdGVyX2ZhaWw7CisKIAllcnIgPSBrY21fcHJvY19pbml0KCk7CiAJaWYgKGVycikKIAkJ Z290byBwcm9jX2luaXRfZmFpbDsKQEAgLTIwNjksMTIgKzIwNjksMTIgQEAgc3RhdGljIGludCBf X2luaXQga2NtX2luaXQodm9pZCkKIAlyZXR1cm4gMDsKIAogcHJvY19pbml0X2ZhaWw6Ci0JdW5y ZWdpc3Rlcl9wZXJuZXRfZGV2aWNlKCZrY21fbmV0X29wcyk7Ci0KLW5ldF9vcHNfZmFpbDoKIAlz b2NrX3VucmVnaXN0ZXIoUEZfS0NNKTsKIAogc29ja19yZWdpc3Rlcl9mYWlsOgorCXVucmVnaXN0 ZXJfcGVybmV0X2RldmljZSgma2NtX25ldF9vcHMpOworCituZXRfb3BzX2ZhaWw6CiAJcHJvdG9f dW5yZWdpc3Rlcigma2NtX3Byb3RvKTsKIAogZmFpbDoKQEAgLTIwOTAsOCArMjA5MCw4IEBAIHN0 YXRpYyBpbnQgX19pbml0IGtjbV9pbml0KHZvaWQpCiBzdGF0aWMgdm9pZCBfX2V4aXQga2NtX2V4 aXQodm9pZCkKIHsKIAlrY21fcHJvY19leGl0KCk7Ci0JdW5yZWdpc3Rlcl9wZXJuZXRfZGV2aWNl KCZrY21fbmV0X29wcyk7CiAJc29ja191bnJlZ2lzdGVyKFBGX0tDTSk7CisJdW5yZWdpc3Rlcl9w ZXJuZXRfZGV2aWNlKCZrY21fbmV0X29wcyk7CiAJcHJvdG9fdW5yZWdpc3Rlcigma2NtX3Byb3Rv KTsKIAlkZXN0cm95X3dvcmtxdWV1ZShrY21fd3EpOwogCi0tIAoyLjIwLjEKCgpGcm9tIDZkYWIw ZGM3OGE3Y2U5NmQ0M2QzMmIwYWMyOTczYjQ5MTMwMWI4NjAgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IExpIFJvbmdRaW5nIDxsaXJvbmdxaW5nQGJhaWR1LmNvbT4KRGF0ZTogRnJpLCAy OSBNYXIgMjAxOSAwOToxODowMiArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMDcvMzNdIG5ldDogZXRo dG9vbDogbm90IGNhbGwgdnphbGxvYyBmb3IgemVybyBzaXplZCBtZW1vcnkKIHJlcXVlc3QKClsg VXBzdHJlYW0gY29tbWl0IDNkODgzMDI2NmZmYzI4YzE2MDMyYjg1OWUzOGEwMjUyZTAxNGI2MzEg XQoKTlVMTCBvciBaRVJPX1NJWkVfUFRSIHdpbGwgYmUgcmV0dXJuZWQgZm9yIHplcm8gc2l6ZWQg bWVtb3J5CnJlcXVlc3QsIGFuZCBkZXJlZmVuY2luZyB0aGVtIHdpbGwgbGVhZCB0byBhIHNlZ2Zh dWx0CgpzbyBpdCBpcyB1bm5lY2Vzc29yeSB0byBjYWxsIHZ6YWxsb2MgZm9yIHplcm8gc2l6ZWQg bWVtb3J5CnJlcXVlc3QgYW5kIG5vdCBjYWxsIGZ1bmN0aW9ucyB3aGljaCBtYXliZSBkZXJlZmVu Y2UgdGhlCk5VTEwgYWxsb2NhdGVkIG1lbW9yeQoKdGhpcyBhbHNvIGZpeGVzIGEgcG9zc2libGUg bWVtb3J5IGxlYWsgaWYgcGh5X2V0aHRvb2xfZ2V0X3N0YXRzCnJldHVybnMgZXJyb3IsIG1lbW9y eSBzaG91bGQgYmUgZnJlZWQgYmVmb3JlIGV4aXQKClNpZ25lZC1vZmYtYnk6IExpIFJvbmdRaW5n IDxsaXJvbmdxaW5nQGJhaWR1LmNvbT4KUmV2aWV3ZWQtYnk6IFdhbmcgTGkgPHdhbmdsaTM5QGJh aWR1LmNvbT4KUmV2aWV3ZWQtYnk6IE1pY2hhbCBLdWJlY2VrIDxta3ViZWNla0BzdXNlLmN6PgpT aWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQog bmV0L2NvcmUvZXRodG9vbC5jIHwgNDYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0t LS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDMwIGluc2VydGlvbnMoKyksIDE2IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9jb3JlL2V0aHRvb2wuYyBiL25ldC9jb3JlL2V0aHRv b2wuYwppbmRleCBhZWFiYzQ4MzFmY2EuLjdjYzk3ZjQzZjEzOCAxMDA2NDQKLS0tIGEvbmV0L2Nv cmUvZXRodG9vbC5jCisrKyBiL25ldC9jb3JlL2V0aHRvb2wuYwpAQCAtMTg2MywxMSArMTg2Mywx NiBAQCBzdGF0aWMgaW50IGV0aHRvb2xfZ2V0X3N0cmluZ3Moc3RydWN0IG5ldF9kZXZpY2UgKmRl diwgdm9pZCBfX3VzZXIgKnVzZXJhZGRyKQogCVdBUk5fT05fT05DRSghcmV0KTsKIAogCWdzdHJp bmdzLmxlbiA9IHJldDsKLQlkYXRhID0gdnphbGxvYyhhcnJheV9zaXplKGdzdHJpbmdzLmxlbiwg RVRIX0dTVFJJTkdfTEVOKSk7Ci0JaWYgKGdzdHJpbmdzLmxlbiAmJiAhZGF0YSkKLQkJcmV0dXJu IC1FTk9NRU07CiAKLQlfX2V0aHRvb2xfZ2V0X3N0cmluZ3MoZGV2LCBnc3RyaW5ncy5zdHJpbmdf c2V0LCBkYXRhKTsKKwlpZiAoZ3N0cmluZ3MubGVuKSB7CisJCWRhdGEgPSB2emFsbG9jKGFycmF5 X3NpemUoZ3N0cmluZ3MubGVuLCBFVEhfR1NUUklOR19MRU4pKTsKKwkJaWYgKCFkYXRhKQorCQkJ cmV0dXJuIC1FTk9NRU07CisKKwkJX19ldGh0b29sX2dldF9zdHJpbmdzKGRldiwgZ3N0cmluZ3Mu c3RyaW5nX3NldCwgZGF0YSk7CisJfSBlbHNlIHsKKwkJZGF0YSA9IE5VTEw7CisJfQogCiAJcmV0 ID0gLUVGQVVMVDsKIAlpZiAoY29weV90b191c2VyKHVzZXJhZGRyLCAmZ3N0cmluZ3MsIHNpemVv Zihnc3RyaW5ncykpKQpAQCAtMTk2MywxMSArMTk2OCwxNSBAQCBzdGF0aWMgaW50IGV0aHRvb2xf Z2V0X3N0YXRzKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHZvaWQgX191c2VyICp1c2VyYWRkcikK IAkJcmV0dXJuIC1FRkFVTFQ7CiAKIAlzdGF0cy5uX3N0YXRzID0gbl9zdGF0czsKLQlkYXRhID0g dnphbGxvYyhhcnJheV9zaXplKG5fc3RhdHMsIHNpemVvZih1NjQpKSk7Ci0JaWYgKG5fc3RhdHMg JiYgIWRhdGEpCi0JCXJldHVybiAtRU5PTUVNOwogCi0Jb3BzLT5nZXRfZXRodG9vbF9zdGF0cyhk ZXYsICZzdGF0cywgZGF0YSk7CisJaWYgKG5fc3RhdHMpIHsKKwkJZGF0YSA9IHZ6YWxsb2MoYXJy YXlfc2l6ZShuX3N0YXRzLCBzaXplb2YodTY0KSkpOworCQlpZiAoIWRhdGEpCisJCQlyZXR1cm4g LUVOT01FTTsKKwkJb3BzLT5nZXRfZXRodG9vbF9zdGF0cyhkZXYsICZzdGF0cywgZGF0YSk7CisJ fSBlbHNlIHsKKwkJZGF0YSA9IE5VTEw7CisJfQogCiAJcmV0ID0gLUVGQVVMVDsKIAlpZiAoY29w eV90b191c2VyKHVzZXJhZGRyLCAmc3RhdHMsIHNpemVvZihzdGF0cykpKQpAQCAtMjAwNywxNiAr MjAxNiwyMSBAQCBzdGF0aWMgaW50IGV0aHRvb2xfZ2V0X3BoeV9zdGF0cyhzdHJ1Y3QgbmV0X2Rl dmljZSAqZGV2LCB2b2lkIF9fdXNlciAqdXNlcmFkZHIpCiAJCXJldHVybiAtRUZBVUxUOwogCiAJ c3RhdHMubl9zdGF0cyA9IG5fc3RhdHM7Ci0JZGF0YSA9IHZ6YWxsb2MoYXJyYXlfc2l6ZShuX3N0 YXRzLCBzaXplb2YodTY0KSkpOwotCWlmIChuX3N0YXRzICYmICFkYXRhKQotCQlyZXR1cm4gLUVO T01FTTsKIAotCWlmIChkZXYtPnBoeWRldiAmJiAhb3BzLT5nZXRfZXRodG9vbF9waHlfc3RhdHMp IHsKLQkJcmV0ID0gcGh5X2V0aHRvb2xfZ2V0X3N0YXRzKGRldi0+cGh5ZGV2LCAmc3RhdHMsIGRh dGEpOwotCQlpZiAocmV0IDwgMCkKLQkJCXJldHVybiByZXQ7CisJaWYgKG5fc3RhdHMpIHsKKwkJ ZGF0YSA9IHZ6YWxsb2MoYXJyYXlfc2l6ZShuX3N0YXRzLCBzaXplb2YodTY0KSkpOworCQlpZiAo IWRhdGEpCisJCQlyZXR1cm4gLUVOT01FTTsKKworCQlpZiAoZGV2LT5waHlkZXYgJiYgIW9wcy0+ Z2V0X2V0aHRvb2xfcGh5X3N0YXRzKSB7CisJCQlyZXQgPSBwaHlfZXRodG9vbF9nZXRfc3RhdHMo ZGV2LT5waHlkZXYsICZzdGF0cywgZGF0YSk7CisJCQlpZiAocmV0IDwgMCkKKwkJCQlnb3RvIG91 dDsKKwkJfSBlbHNlIHsKKwkJCW9wcy0+Z2V0X2V0aHRvb2xfcGh5X3N0YXRzKGRldiwgJnN0YXRz LCBkYXRhKTsKKwkJfQogCX0gZWxzZSB7Ci0JCW9wcy0+Z2V0X2V0aHRvb2xfcGh5X3N0YXRzKGRl diwgJnN0YXRzLCBkYXRhKTsKKwkJZGF0YSA9IE5VTEw7CiAJfQogCiAJcmV0ID0gLUVGQVVMVDsK LS0gCjIuMjAuMQoKCkZyb20gMDdkNzI5NDIxMWNkZTM2NDFkZGI3MGViZWY3MGQ4OWRjODViMWU0 OCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogU3RlZmZlbiBLbGFzc2VydCA8c3RlZmZl bi5rbGFzc2VydEBzZWN1bmV0LmNvbT4KRGF0ZTogVHVlLCAyIEFwciAyMDE5IDA4OjE2OjAzICsw MjAwClN1YmplY3Q6IFtQQVRDSCAwOC8zM10gbmV0LWdybzogRml4IEdSTyBmbHVzaCB3aGVuIHJl Y2VpdmluZyBhIEdTTyBwYWNrZXQuCgpbIFVwc3RyZWFtIGNvbW1pdCAwYWIwM2YzNTNkMzYxM2Vh NDlkMWY5MjRmYWY5ODU1OTAwMzY3MGE4IF0KCkN1cnJlbnRseSB3ZSBtYXkgbWVyZ2UgaW5jb3Jy ZWN0bHkgYSByZWNlaXZlZCBHU08gcGFja2V0Cm9yIGEgcGFja2V0IHdpdGggZnJhZ19saXN0IGlu dG8gYSBwYWNrZXQgc2l0dGluZyBpbiB0aGUKZ3JvX2hhc2ggbGlzdC4gc2tiX3NlZ21lbnQoKSBt YXkgY3Jhc2ggY2FzZSBiZWNhdXNlCnRoZSBhc3N1bXB0aW9ucyBvbiB0aGUgc2tiIGxheW91dCBh cmUgbm90IG1ldC4KVGhlIGNvcnJlY3QgYmVoYXZpb3VyIHdvdWxkIGJlIHRvIGZsdXNoIHRoZSBw YWNrZXQgaW4gdGhlCmdyb19oYXNoIGxpc3QgYW5kIHNlbmQgdGhlIHJlY2VpdmVkIEdTTyBwYWNr ZXQgZGlyZWN0bHkKYWZ0ZXJ3YXJkcy4gQ29tbWl0IGQ2MWQwNzJlODdjOGUgKCJuZXQtZ3JvOiBh dm9pZCByZW9yZGVycyIpCnNldHMgTkFQSV9HUk9fQ0Ioc2tiKS0+Zmx1c2ggaW4gdGhpcyBjYXNl LCBidXQgdGhpcyBpcyBub3QKY2hlY2tlZCBiZWZvcmUgbWVyZ2luZy4gVGhpcyBwYXRjaCBtYWtl cyBzdXJlIHRvIGNoZWNrIHRoaXMKZmxhZyBhbmQgdG8gbm90IG1lcmdlIGluIHRoYXQgY2FzZS4K CkZpeGVzOiBkNjFkMDcyZTg3YzhlICgibmV0LWdybzogYXZvaWQgcmVvcmRlcnMiKQpTaWduZWQt b2ZmLWJ5OiBTdGVmZmVuIEtsYXNzZXJ0IDxzdGVmZmVuLmtsYXNzZXJ0QHNlY3VuZXQuY29tPgpT aWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQog bmV0L2NvcmUvc2tidWZmLmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyks IDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvY29yZS9za2J1ZmYuYyBiL25ldC9jb3Jl L3NrYnVmZi5jCmluZGV4IDg2NTZiMWUyMGQzNS4uY2VlZTI4ZTE4NGFmIDEwMDY0NAotLS0gYS9u ZXQvY29yZS9za2J1ZmYuYworKysgYi9uZXQvY29yZS9za2J1ZmYuYwpAQCAtMzgzMiw3ICszODMy LDcgQEAgaW50IHNrYl9ncm9fcmVjZWl2ZShzdHJ1Y3Qgc2tfYnVmZiAqcCwgc3RydWN0IHNrX2J1 ZmYgKnNrYikKIAl1bnNpZ25lZCBpbnQgZGVsdGFfdHJ1ZXNpemU7CiAJc3RydWN0IHNrX2J1ZmYg KmxwOwogCi0JaWYgKHVubGlrZWx5KHAtPmxlbiArIGxlbiA+PSA2NTUzNikpCisJaWYgKHVubGlr ZWx5KHAtPmxlbiArIGxlbiA+PSA2NTUzNiB8fCBOQVBJX0dST19DQihza2IpLT5mbHVzaCkpCiAJ CXJldHVybiAtRTJCSUc7CiAKIAlscCA9IE5BUElfR1JPX0NCKHApLT5sYXN0OwotLSAKMi4yMC4x CgoKRnJvbSBiOTE2ZDQxNzczMjQ1YjRmMjVmYjNjMDEzZjg5YjRjODcwYTg4ZDI2IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBcnRlbXkgS292YWx5b3YgPGFydGVteWtvQG1lbGxhbm94 LmNvbT4KRGF0ZTogVHVlLCAxOSBNYXIgMjAxOSAxMToyNDozOCArMDIwMApTdWJqZWN0OiBbUEFU Q0ggMDkvMzNdIG5ldC9tbHg1OiBEZWNyZWFzZSBkZWZhdWx0IG1yIGNhY2hlIHNpemUKClsgVXBz dHJlYW0gY29tbWl0IGU4YjI2YjIxMzVkZWRjMDI4NDQ5MGJmZWFjMDZkZmM0NDE4ZDAxMDUgXQoK RGVsZXRlIGluaXRpYWxpemF0aW9uIG9mIGhpZ2ggb3JkZXIgZW50cmllcyBpbiBtciBjYWNoZSB0 byBkZWNyZWFzZSBpbml0aWFsCm1lbW9yeSBmb290cHJpbnQuIFdoZW4gcmVxdWlyZWQsIHRoZSBh ZG1pbmlzdHJhdG9yIGNhbiBwb3B1bGF0ZSB0aGUKZW50cmllcyB3aXRoIG1lbW9yeSBrZXlzIHZp YSB0aGUgL3N5cyBpbnRlcmZhY2UuCgpUaGlzIGFwcHJvYWNoIGlzIHZlcnkgaGVscGZ1bCB0byBz aWduaWZpY2FudGx5IHJlZHVjZSB0aGUgcGVyIEhXIGZ1bmN0aW9uCm1lbW9yeSBmb290cHJpbnQg aW4gdmlydHVhbGl6YXRpb24gZW52aXJvbm1lbnRzIHN1Y2ggYXMgU1JJT1YuCgpGaXhlczogOTYw M2I2MWRlMWVlICgibWx4NTogTW92ZSBwY2kgZGV2aWNlIGhhbmRsaW5nIGZyb20gbWx4NV9pYiB0 byBtbHg1X2NvcmUiKQpTaWduZWQtb2ZmLWJ5OiBBcnRlbXkgS292YWx5b3YgPGFydGVteWtvQG1l bGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogTW9uaSBTaG91YSA8bW9uaXNAbWVsbGFub3guY29t PgpTaWduZWQtb2ZmLWJ5OiBMZW9uIFJvbWFub3Zza3kgPGxlb25yb0BtZWxsYW5veC5jb20+ClJl cG9ydGVkLWJ5OiAgU2hhbG9tIFRvbGVkbyA8c2hhbG9tdEBtZWxsYW5veC5jb20+CkFja2VkLWJ5 OiBPciBHZXJsaXR6IDxvZ2VybGl0ekBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IFNhZWVk IE1haGFtZWVkIDxzYWVlZG1AbWVsbGFub3guY29tPgotLS0KIC4uLi9uZXQvZXRoZXJuZXQvbWVs bGFub3gvbWx4NS9jb3JlL21haW4uYyAgICB8IDIwIC0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmls ZSBjaGFuZ2VkLCAyMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhl cm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVs bGFub3gvbWx4NS9jb3JlL21haW4uYwppbmRleCA1NjNjZTNmZWRhYjQuLjBlODIwY2Y5MmY4YSAx MDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL21haW4u YworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbWFpbi5jCkBA IC0xNjIsMjYgKzE2Miw2IEBAIHN0YXRpYyBzdHJ1Y3QgbWx4NV9wcm9maWxlIHByb2ZpbGVbXSA9 IHsKIAkJCS5zaXplCT0gOCwKIAkJCS5saW1pdAk9IDQKIAkJfSwKLQkJLm1yX2NhY2hlWzE2XQk9 IHsKLQkJCS5zaXplCT0gOCwKLQkJCS5saW1pdAk9IDQKLQkJfSwKLQkJLm1yX2NhY2hlWzE3XQk9 IHsKLQkJCS5zaXplCT0gOCwKLQkJCS5saW1pdAk9IDQKLQkJfSwKLQkJLm1yX2NhY2hlWzE4XQk9 IHsKLQkJCS5zaXplCT0gOCwKLQkJCS5saW1pdAk9IDQKLQkJfSwKLQkJLm1yX2NhY2hlWzE5XQk9 IHsKLQkJCS5zaXplCT0gNCwKLQkJCS5saW1pdAk9IDIKLQkJfSwKLQkJLm1yX2NhY2hlWzIwXQk9 IHsKLQkJCS5zaXplCT0gNCwKLQkJCS5saW1pdAk9IDIKLQkJfSwKIAl9LAogfTsKIAotLSAKMi4y MC4xCgoKRnJvbSAxNDI5YjdiN2NlNGE0MTcxYjFhNjRlY2ZiYTg2ZmU1YWE4ZTlkMzM4IE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5j b20+CkRhdGU6IFdlZCwgMjcgTWFyIDIwMTkgMDg6MjE6MzAgLTA3MDAKU3ViamVjdDogW1BBVENI IDEwLzMzXSBuZXRuczogcHJvdmlkZSBwdXJlIGVudHJvcHkgZm9yIG5ldF9oYXNoX21peCgpCgpb IFVwc3RyZWFtIGNvbW1pdCAzNTViOTg1NTM3ODliNjQ2ZWQ5N2FkODAxYTYxOWZmODk4NDcxYjky IF0KCm5ldF9oYXNoX21peCgpIGN1cnJlbnRseSB1c2VzIGtlcm5lbCBhZGRyZXNzIG9mIGEgc3Ry dWN0IG5ldCwKYW5kIGlzIHVzZWQgaW4gbWFueSBwbGFjZXMgdGhhdCBjb3VsZCBiZSB1c2VkIHRv IHJldmVhbCB0aGlzCmFkZHJlc3MgdG8gYSBwYXRpZW50IGF0dGFja2VyLCB0aHVzIGRlZmVhdGlu ZyBLQVNMUiwgZm9yCnRoZSB0eXBpY2FsIGNhc2UgKGluaXRpYWwgbmV0IG5hbWVzcGFjZSwgJmlu aXRfbmV0IGlzCm5vdCBkeW5hbWljYWxseSBhbGxvY2F0ZWQpCgpJIGJlbGlldmUgdGhlIG9yaWdp bmFsIGltcGxlbWVudGF0aW9uIHRyaWVkIHRvIGF2b2lkIHNwZW5kaW5nCnRvbyBtYW55IGN5Y2xl cyBpbiB0aGlzIGZ1bmN0aW9uLCBidXQgc2VjdXJpdHkgY29tZXMgZmlyc3QuCgpBbHNvIHByb3Zp ZGUgZW50cm9weSByZWdhcmRsZXNzIG9mIENPTkZJR19ORVRfTlMuCgpGaXhlczogMGI0NDE5MTYy YWE2ICgibmV0bnM6IGludHJvZHVjZSB0aGUgbmV0X2hhc2hfbWl4ICJzYWx0IiBmb3IgaGFzaGVz IikKU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpSZXBv cnRlZC1ieTogQW1pdCBLbGVpbiA8YWtzZWN1cml0eUBnbWFpbC5jb20+ClJlcG9ydGVkLWJ5OiBC ZW5ueSBQaW5rYXMgPGJlbm55QHBpbmthcy5uZXQ+CkNjOiBQYXZlbCBFbWVseWFub3YgPHhlbXVs QG9wZW52ei5vcmc+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiBpbmNsdWRlL25ldC9uZXRfbmFtZXNwYWNlLmggfCAgMSArCiBpbmNsdWRl L25ldC9uZXRucy9oYXNoLmggICAgfCAxMCArKy0tLS0tLS0tCiBuZXQvY29yZS9uZXRfbmFtZXNw YWNlLmMgICAgfCAgMSArCiAzIGZpbGVzIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgOCBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9uZXRfbmFtZXNwYWNlLmggYi9pbmNs dWRlL25ldC9uZXRfbmFtZXNwYWNlLmgKaW5kZXggOWI1ZmRjNTA1MTlhLi4zZjdiMTY2MjYyZDcg MTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L25ldF9uYW1lc3BhY2UuaAorKysgYi9pbmNsdWRlL25l dC9uZXRfbmFtZXNwYWNlLmgKQEAgLTU3LDYgKzU3LDcgQEAgc3RydWN0IG5ldCB7CiAJCQkJCQkg Ki8KIAlzcGlubG9ja190CQlydWxlc19tb2RfbG9jazsKIAorCXUzMgkJCWhhc2hfbWl4OwogCWF0 b21pYzY0X3QJCWNvb2tpZV9nZW47CiAKIAlzdHJ1Y3QgbGlzdF9oZWFkCWxpc3Q7CQkvKiBsaXN0 IG9mIG5ldHdvcmsgbmFtZXNwYWNlcyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvbmV0bnMv aGFzaC5oIGIvaW5jbHVkZS9uZXQvbmV0bnMvaGFzaC5oCmluZGV4IDE2YTg0MjQ1NjE4OS4uZDli NjY1MTUxZjNkIDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC9uZXRucy9oYXNoLmgKKysrIGIvaW5j bHVkZS9uZXQvbmV0bnMvaGFzaC5oCkBAIC0yLDE2ICsyLDEwIEBACiAjaWZuZGVmIF9fTkVUX05T X0hBU0hfSF9fCiAjZGVmaW5lIF9fTkVUX05TX0hBU0hfSF9fCiAKLSNpbmNsdWRlIDxhc20vY2Fj aGUuaD4KLQotc3RydWN0IG5ldDsKKyNpbmNsdWRlIDxuZXQvbmV0X25hbWVzcGFjZS5oPgogCiBz dGF0aWMgaW5saW5lIHUzMiBuZXRfaGFzaF9taXgoY29uc3Qgc3RydWN0IG5ldCAqbmV0KQogewot I2lmZGVmIENPTkZJR19ORVRfTlMKLQlyZXR1cm4gKHUzMikoKCh1bnNpZ25lZCBsb25nKW5ldCkg Pj4gaWxvZzIoc2l6ZW9mKCpuZXQpKSk7Ci0jZWxzZQotCXJldHVybiAwOwotI2VuZGlmCisJcmV0 dXJuIG5ldC0+aGFzaF9taXg7CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL25ldC9jb3JlL25ldF9u YW1lc3BhY2UuYyBiL25ldC9jb3JlL25ldF9uYW1lc3BhY2UuYwppbmRleCA2NzBjODRiMWJmYzIu LjczMjBmMDg0NGE1MCAxMDA2NDQKLS0tIGEvbmV0L2NvcmUvbmV0X25hbWVzcGFjZS5jCisrKyBi L25ldC9jb3JlL25ldF9uYW1lc3BhY2UuYwpAQCAtMzA0LDYgKzMwNCw3IEBAIHN0YXRpYyBfX25l dF9pbml0IGludCBzZXR1cF9uZXQoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgdXNlcl9uYW1lc3Bh Y2UgKnVzZXJfbnMpCiAKIAlyZWZjb3VudF9zZXQoJm5ldC0+Y291bnQsIDEpOwogCXJlZmNvdW50 X3NldCgmbmV0LT5wYXNzaXZlLCAxKTsKKwlnZXRfcmFuZG9tX2J5dGVzKCZuZXQtPmhhc2hfbWl4 LCBzaXplb2YodTMyKSk7CiAJbmV0LT5kZXZfYmFzZV9zZXEgPSAxOwogCW5ldC0+dXNlcl9ucyA9 IHVzZXJfbnM7CiAJaWRyX2luaXQoJm5ldC0+bmV0bnNfaWRzKTsKLS0gCjIuMjAuMQoKCkZyb20g NjMzZmZiMWE0ZGVjMGJmMTc1YmY4ZWMzNTFhZWNjZmM4MzE0Y2RlOCBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogTWFvIFdlbmFuIDxtYW93ZW5hbkBodWF3ZWkuY29tPgpEYXRlOiBUaHUs IDI4IE1hciAyMDE5IDE3OjEwOjU2ICswODAwClN1YmplY3Q6IFtQQVRDSCAxMS8zM10gbmV0OiBy ZHM6IGZvcmNlIHRvIGRlc3Ryb3kgY29ubmVjdGlvbiBpZiB0X3NvY2sgaXMgTlVMTAogaW4gcmRz X3RjcF9raWxsX3NvY2soKS4KClsgVXBzdHJlYW0gY29tbWl0IGNiNjZkZGQxNTYyMDNkYWVmYjhk NzExNTgwMzZiMjdiMGUyY2FmNjMgXQoKV2hlbiBpdCBpcyB0byBjbGVhbnVwIG5ldCBuYW1lc3Bh Y2UsIHJkc190Y3BfZXhpdF9uZXQoKSB3aWxsIGNhbGwKcmRzX3RjcF9raWxsX3NvY2soKSwgaWYg dF9zb2NrIGlzIE5VTEwsIGl0IHdpbGwgbm90IGNhbGwKcmRzX2Nvbm5fZGVzdHJveSgpLCByZHNf Y29ubl9wYXRoX2Rlc3Ryb3koKSBhbmQgcmRzX3RjcF9jb25uX2ZyZWUoKSB0byBmcmVlCmNvbm5l Y3Rpb24sIGFuZCB0aGUgd29ya2VyIGNwX2Nvbm5fdyBpcyBub3Qgc3RvcHBlZCwgYWZ0ZXJ3YXJk cyB0aGUgbmV0IGlzIGZyZWVkIGluCm5ldF9kcm9wX25zKCk7IFdoaWxlIGNwX2Nvbm5fdyByZHNf Y29ubmVjdF93b3JrZXIoKSB3aWxsIGNhbGwgcmRzX3RjcF9jb25uX3BhdGhfY29ubmVjdCgpCmFu ZCByZWZlcmVuY2UgJ25ldCcgd2hpY2ggaGFzIGFscmVhZHkgYmVlbiBmcmVlZC4KCkluIHJkc190 Y3BfY29ubl9wYXRoX2Nvbm5lY3QoKSwgcmRzX3RjcF9zZXRfY2FsbGJhY2tzKCkgd2lsbCBzZXQg dF9zb2NrID0gc29jayBiZWZvcmUKc29jay0+b3BzLT5jb25uZWN0LCBidXQgaWYgY29ubmVjdCgp IGlzIGZhaWxlZCwgaXQgd2lsbCBjYWxsCnJkc190Y3BfcmVzdG9yZV9jYWxsYmFja3MoKSBhbmQg c2V0IHRfc29jayA9IE5VTEwsIGlmIGNvbm5lY3QgaXMgYWx3YXlzCmZhaWxlZCwgcmRzX2Nvbm5l Y3Rfd29ya2VyKCkgd2lsbCB0cnkgdG8gcmVjb25uZWN0IGFsbCB0aGUgdGltZSwgc28KcmRzX3Rj cF9raWxsX3NvY2soKSB3aWxsIG5ldmVyIHRvIGNhbmNlbCB3b3JrZXIgY3BfY29ubl93IGFuZCBm cmVlIHRoZQpjb25uZWN0aW9ucy4KClRoZXJlZm9yZSwgdGhlIGNvbmRpdGlvbiAhdGMtPnRfc29j ayBpcyBub3QgbmVlZGVkIGlmIGl0IGlzIGdvaW5nIHRvIGRvCmNsZWFudXBfbmV0LT5yZHNfdGNw X2V4aXRfbmV0LT5yZHNfdGNwX2tpbGxfc29jaywgYmVjYXVzZSB0Yy0+dF9zb2NrIGlzIGFsd2F5 cwpOVUxMLCBhbmQgdGhlcmUgaXMgb24gb3RoZXIgcGF0aCB0byBjYW5jZWwgY3BfY29ubl93IGFu ZCBmcmVlCmNvbm5lY3Rpb24uIFNvIHRoaXMgcGF0Y2ggaXMgdG8gZml4IHRoaXMuCgpyZHNfdGNw X2tpbGxfc29jaygpOgouLi4KaWYgKG5ldCAhPSBjX25ldCB8fCAhdGMtPnRfc29jaykKLi4uCkFj a2VkLWJ5OiBTYW50b3NoIFNoaWxpbWthciA8c2FudG9zaC5zaGlsaW1rYXJAb3JhY2xlLmNvbT4K Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQpCVUc6IEtBU0FOOiB1c2UtYWZ0ZXItZnJlZSBpbiBpbmV0X2NyZWF0ZSsweGJj Yy8weGQyOApuZXQvaXB2NC9hZl9pbmV0LmM6MzQwClJlYWQgb2Ygc2l6ZSA0IGF0IGFkZHIgZmZm ZjgwMDM0OTZhNDY4NCBieSB0YXNrIGt3b3JrZXIvdTg6NC8zNzIxCgpDUFU6IDMgUElEOiAzNzIx IENvbW06IGt3b3JrZXIvdTg6NCBOb3QgdGFpbnRlZCA1LjEuMCAjMTEKSGFyZHdhcmUgbmFtZTog bGludXgsZHVtbXktdmlydCAoRFQpCldvcmtxdWV1ZToga3Jkc2QgcmRzX2Nvbm5lY3Rfd29ya2Vy CkNhbGwgdHJhY2U6CiBkdW1wX2JhY2t0cmFjZSsweDAvMHgzYzAgYXJjaC9hcm02NC9rZXJuZWwv dGltZS5jOjUzCiBzaG93X3N0YWNrKzB4MjgvMHgzOCBhcmNoL2FybTY0L2tlcm5lbC90cmFwcy5j OjE1MgogX19kdW1wX3N0YWNrIGxpYi9kdW1wX3N0YWNrLmM6NzcgW2lubGluZV0KIGR1bXBfc3Rh Y2srMHgxMjAvMHgxODggbGliL2R1bXBfc3RhY2suYzoxMTMKIHByaW50X2FkZHJlc3NfZGVzY3Jp cHRpb24rMHg2OC8weDI3OCBtbS9rYXNhbi9yZXBvcnQuYzoyNTMKIGthc2FuX3JlcG9ydF9lcnJv ciBtbS9rYXNhbi9yZXBvcnQuYzozNTEgW2lubGluZV0KIGthc2FuX3JlcG9ydCsweDIxYy8weDM0 OCBtbS9rYXNhbi9yZXBvcnQuYzo0MDkKIF9fYXNhbl9yZXBvcnRfbG9hZDRfbm9hYm9ydCsweDMw LzB4NDAgbW0va2FzYW4vcmVwb3J0LmM6NDI5CiBpbmV0X2NyZWF0ZSsweGJjYy8weGQyOCBuZXQv aXB2NC9hZl9pbmV0LmM6MzQwCiBfX3NvY2tfY3JlYXRlKzB4NGY4LzB4NzcwIG5ldC9zb2NrZXQu YzoxMjc2CiBzb2NrX2NyZWF0ZV9rZXJuKzB4NTAvMHg2OCBuZXQvc29ja2V0LmM6MTMyMgogcmRz X3RjcF9jb25uX3BhdGhfY29ubmVjdCsweDJiNC8weDY5MCBuZXQvcmRzL3RjcF9jb25uZWN0LmM6 MTE0CiByZHNfY29ubmVjdF93b3JrZXIrMHgxMDgvMHgxZDAgbmV0L3Jkcy90aHJlYWRzLmM6MTc1 CiBwcm9jZXNzX29uZV93b3JrKzB4NmU4LzB4MTcwMCBrZXJuZWwvd29ya3F1ZXVlLmM6MjE1Mwog d29ya2VyX3RocmVhZCsweDNiMC8weGRkMCBrZXJuZWwvd29ya3F1ZXVlLmM6MjI5Ngoga3RocmVh ZCsweDJmMC8weDM3OCBrZXJuZWwva3RocmVhZC5jOjI1NQogcmV0X2Zyb21fZm9yaysweDEwLzB4 MTggYXJjaC9hcm02NC9rZXJuZWwvZW50cnkuUzoxMTE3CgpBbGxvY2F0ZWQgYnkgdGFzayA2ODc6 CiBzYXZlX3N0YWNrIG1tL2thc2FuL2thc2FuLmM6NDQ4IFtpbmxpbmVdCiBzZXRfdHJhY2sgbW0v a2FzYW4va2FzYW4uYzo0NjAgW2lubGluZV0KIGthc2FuX2ttYWxsb2MrMHhkNC8weDE4MCBtbS9r YXNhbi9rYXNhbi5jOjU1Mwoga2FzYW5fc2xhYl9hbGxvYysweDE0LzB4MjAgbW0va2FzYW4va2Fz YW4uYzo0OTAKIHNsYWJfcG9zdF9hbGxvY19ob29rIG1tL3NsYWIuaDo0NDQgW2lubGluZV0KIHNs YWJfYWxsb2Nfbm9kZSBtbS9zbHViLmM6MjcwNSBbaW5saW5lXQogc2xhYl9hbGxvYyBtbS9zbHVi LmM6MjcxMyBbaW5saW5lXQoga21lbV9jYWNoZV9hbGxvYysweDE0Yy8weDM4OCBtbS9zbHViLmM6 MjcxOAoga21lbV9jYWNoZV96YWxsb2MgaW5jbHVkZS9saW51eC9zbGFiLmg6Njk3IFtpbmxpbmVd CiBuZXRfYWxsb2MgbmV0L2NvcmUvbmV0X25hbWVzcGFjZS5jOjM4NCBbaW5saW5lXQogY29weV9u ZXRfbnMrMHhjNC8weDJkMCBuZXQvY29yZS9uZXRfbmFtZXNwYWNlLmM6NDI0CiBjcmVhdGVfbmV3 X25hbWVzcGFjZXMrMHgzMDAvMHg2NTgga2VybmVsL25zcHJveHkuYzoxMDcKIHVuc2hhcmVfbnNw cm94eV9uYW1lc3BhY2VzKzB4YTAvMHgxOTgga2VybmVsL25zcHJveHkuYzoyMDYKIGtzeXNfdW5z aGFyZSsweDM0MC8weDYyOCBrZXJuZWwvZm9yay5jOjI1NzcKIF9fZG9fc3lzX3Vuc2hhcmUga2Vy bmVsL2ZvcmsuYzoyNjQ1IFtpbmxpbmVdCiBfX3NlX3N5c191bnNoYXJlIGtlcm5lbC9mb3JrLmM6 MjY0MyBbaW5saW5lXQogX19hcm02NF9zeXNfdW5zaGFyZSsweDM4LzB4NTgga2VybmVsL2Zvcmsu YzoyNjQzCiBfX2ludm9rZV9zeXNjYWxsIGFyY2gvYXJtNjQva2VybmVsL3N5c2NhbGwuYzozNSBb aW5saW5lXQogaW52b2tlX3N5c2NhbGwgYXJjaC9hcm02NC9rZXJuZWwvc3lzY2FsbC5jOjQ3IFtp bmxpbmVdCiBlbDBfc3ZjX2NvbW1vbisweDE2OC8weDM5MCBhcmNoL2FybTY0L2tlcm5lbC9zeXNj YWxsLmM6ODMKIGVsMF9zdmNfaGFuZGxlcisweDYwLzB4ZDAgYXJjaC9hcm02NC9rZXJuZWwvc3lz Y2FsbC5jOjEyOQogZWwwX3N2YysweDgvMHhjIGFyY2gvYXJtNjQva2VybmVsL2VudHJ5LlM6OTYw CgpGcmVlZCBieSB0YXNrIDI2NDoKIHNhdmVfc3RhY2sgbW0va2FzYW4va2FzYW4uYzo0NDggW2lu bGluZV0KIHNldF90cmFjayBtbS9rYXNhbi9rYXNhbi5jOjQ2MCBbaW5saW5lXQogX19rYXNhbl9z bGFiX2ZyZWUrMHgxMTQvMHgyMjAgbW0va2FzYW4va2FzYW4uYzo1MjEKIGthc2FuX3NsYWJfZnJl ZSsweDEwLzB4MTggbW0va2FzYW4va2FzYW4uYzo1MjgKIHNsYWJfZnJlZV9ob29rIG1tL3NsdWIu YzoxMzcwIFtpbmxpbmVdCiBzbGFiX2ZyZWVfZnJlZWxpc3RfaG9vayBtbS9zbHViLmM6MTM5NyBb aW5saW5lXQogc2xhYl9mcmVlIG1tL3NsdWIuYzoyOTUyIFtpbmxpbmVdCiBrbWVtX2NhY2hlX2Zy ZWUrMHhiOC8weDNhOCBtbS9zbHViLmM6Mjk2OAogbmV0X2ZyZWUgbmV0L2NvcmUvbmV0X25hbWVz cGFjZS5jOjQwMCBbaW5saW5lXQogbmV0X2Ryb3BfbnMucGFydC42KzB4NzgvMHg5MCBuZXQvY29y ZS9uZXRfbmFtZXNwYWNlLmM6NDA3CiBuZXRfZHJvcF9ucyBuZXQvY29yZS9uZXRfbmFtZXNwYWNl LmM6NDA2IFtpbmxpbmVdCiBjbGVhbnVwX25ldCsweDUzYy8weDZkOCBuZXQvY29yZS9uZXRfbmFt ZXNwYWNlLmM6NTY5CiBwcm9jZXNzX29uZV93b3JrKzB4NmU4LzB4MTcwMCBrZXJuZWwvd29ya3F1 ZXVlLmM6MjE1Mwogd29ya2VyX3RocmVhZCsweDNiMC8weGRkMCBrZXJuZWwvd29ya3F1ZXVlLmM6 MjI5Ngoga3RocmVhZCsweDJmMC8weDM3OCBrZXJuZWwva3RocmVhZC5jOjI1NQogcmV0X2Zyb21f Zm9yaysweDEwLzB4MTggYXJjaC9hcm02NC9rZXJuZWwvZW50cnkuUzoxMTE3CgpUaGUgYnVnZ3kg YWRkcmVzcyBiZWxvbmdzIHRvIHRoZSBvYmplY3QgYXQgZmZmZjgwMDM0OTZhM2Y4MAogd2hpY2gg YmVsb25ncyB0byB0aGUgY2FjaGUgbmV0X25hbWVzcGFjZSBvZiBzaXplIDc4NzIKVGhlIGJ1Z2d5 IGFkZHJlc3MgaXMgbG9jYXRlZCAxNzk2IGJ5dGVzIGluc2lkZSBvZgogNzg3Mi1ieXRlIHJlZ2lv biBbZmZmZjgwMDM0OTZhM2Y4MCwgZmZmZjgwMDM0OTZhNWU0MCkKVGhlIGJ1Z2d5IGFkZHJlc3Mg YmVsb25ncyB0byB0aGUgcGFnZToKcGFnZTpmZmZmN2UwMDBkMjVhODAwIGNvdW50OjEgbWFwY291 bnQ6MCBtYXBwaW5nOmZmZmY4MDAzNmNlNGIwMDAKaW5kZXg6MHgwIGNvbXBvdW5kX21hcGNvdW50 OiAwCmZsYWdzOiAweGZmZmZlMDAwMDAwODEwMChzbGFifGhlYWQpCnJhdzogMGZmZmZlMDAwMDAw ODEwMCBkZWFkMDAwMDAwMDAwMTAwIGRlYWQwMDAwMDAwMDAyMDAgZmZmZjgwMDM2Y2U0YjAwMApy YXc6IDAwMDAwMDAwMDAwMDAwMDAgMDAwMDAwMDA4MDA0MDAwNCAwMDAwMDAwMWZmZmZmZmZmIDAw MDAwMDAwMDAwMDAwMDAKcGFnZSBkdW1wZWQgYmVjYXVzZToga2FzYW46IGJhZCBhY2Nlc3MgZGV0 ZWN0ZWQKCk1lbW9yeSBzdGF0ZSBhcm91bmQgdGhlIGJ1Z2d5IGFkZHJlc3M6CiBmZmZmODAwMzQ5 NmE0NTgwOiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYgog ZmZmZjgwMDM0OTZhNDYwMDogZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIg ZmIgZmIgZmIKPmZmZmY4MDAzNDk2YTQ2ODA6IGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZi IGZiIGZiIGZiIGZiIGZiIGZiCiAgICAgICAgICAgICAgICAgICBeCiBmZmZmODAwMzQ5NmE0NzAw OiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYgogZmZmZjgw MDM0OTZhNDc4MDogZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIg ZmIKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CgpGaXhlczogNDY3ZmExNTM1NmFjKCJSRFMtVENQOiBTdXBwb3J0IG11bHRp cGxlIFJEUy1UQ1AgbGlzdGVuIGVuZHBvaW50cywgb25lIHBlciBuZXRucy4iKQpSZXBvcnRlZC1i eTogSHVsayBSb2JvdCA8aHVsa2NpQGh1YXdlaS5jb20+ClNpZ25lZC1vZmYtYnk6IE1hbyBXZW5h biA8bWFvd2VuYW5AaHVhd2VpLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxk YXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9yZHMvdGNwLmMgfCAyICstCiAxIGZpbGUgY2hh bmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvcmRz L3RjcC5jIGIvbmV0L3Jkcy90Y3AuYwppbmRleCBiOWJiY2YzZDZjNjMuLjE4YmI1MjJkZjI4MiAx MDA2NDQKLS0tIGEvbmV0L3Jkcy90Y3AuYworKysgYi9uZXQvcmRzL3RjcC5jCkBAIC02MDAsNyAr NjAwLDcgQEAgc3RhdGljIHZvaWQgcmRzX3RjcF9raWxsX3NvY2soc3RydWN0IG5ldCAqbmV0KQog CWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZSh0YywgX3RjLCAmcmRzX3RjcF9jb25uX2xpc3QsIHRf dGNwX25vZGUpIHsKIAkJc3RydWN0IG5ldCAqY19uZXQgPSByZWFkX3BuZXQoJnRjLT50X2NwYXRo LT5jcF9jb25uLT5jX25ldCk7CiAKLQkJaWYgKG5ldCAhPSBjX25ldCB8fCAhdGMtPnRfc29jaykK KwkJaWYgKG5ldCAhPSBjX25ldCkKIAkJCWNvbnRpbnVlOwogCQlpZiAoIWxpc3RfaGFzX2Nvbm4o JnRtcF9saXN0LCB0Yy0+dF9jcGF0aC0+Y3BfY29ubikpIHsKIAkJCWxpc3RfbW92ZV90YWlsKCZ0 Yy0+dF90Y3Bfbm9kZSwgJnRtcF9saXN0KTsKLS0gCjIuMjAuMQoKCkZyb20gMzkxZGNkYzI3MTcz NjI1MDQ5MDY3YTE3YTY0YTQ4NWMwMzdhYTU4YSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogRGF2aWRlIENhcmF0dGkgPGRjYXJhdHRpQHJlZGhhdC5jb20+CkRhdGU6IFRodSwgNCBBcHIg MjAxOSAxMjozMTozNSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTIvMzNdIG5ldC9zY2hlZDogYWN0 X3NhbXBsZTogZml4IGRpdmlkZSBieSB6ZXJvIGluIHRoZQogdHJhZmZpYyBwYXRoCgpbIFVwc3Ry ZWFtIGNvbW1pdCBmYWUyNzA4MTc0YWU5NWQ5OGQxOWYxOTRlMDNkNmU4ZjY4OGFlMTk1IF0KCnRo ZSBjb250cm9sIHBhdGggb2YgJ3NhbXBsZScgYWN0aW9uIGRvZXMgbm90IHZhbGlkYXRlIHRoZSB2 YWx1ZSBvZiAncmF0ZScKcHJvdmlkZWQgYnkgdGhlIHVzZXIsIGJ1dCB0aGVuIGl0IHVzZXMgaXQg YXMgZGl2aXNvciBpbiB0aGUgdHJhZmZpYyBwYXRoLgpWYWxpZGF0ZSBpdCBpbiB0Y2Zfc2FtcGxl X2luaXQoKSwgYW5kIHJldHVybiAtRUlOVkFMIHdpdGggYSBwcm9wZXIgZXh0YWNrCm1lc3NhZ2Ug aW4gY2FzZSB0aGF0IHZhbHVlIGlzIHplcm8sIHRvIGZpeCBhIHNwbGF0IHdpdGggdGhlIHNjcmlw dCBiZWxvdzoKCiAjIHRjIGYgYSBkZXYgdGVzdDAgZWdyZXNzIG1hdGNoYWxsIGFjdGlvbiBzYW1w bGUgcmF0ZSAwIGdyb3VwIDEgaW5kZXggMgogIyB0YyAtcyBhIHMgYWN0aW9uIHNhbXBsZQogdG90 YWwgYWN0cyAxCgogICAgICAgICBhY3Rpb24gb3JkZXIgMDogc2FtcGxlIHJhdGUgMS8wIGdyb3Vw IDEgcGlwZQogICAgICAgICAgaW5kZXggMiByZWYgMSBiaW5kIDEgaW5zdGFsbGVkIDE5IHNlYyB1 c2VkIDE5IHNlYwogICAgICAgICBBY3Rpb24gc3RhdGlzdGljczoKICAgICAgICAgU2VudCAwIGJ5 dGVzIDAgcGt0IChkcm9wcGVkIDAsIG92ZXJsaW1pdHMgMCByZXF1ZXVlcyAwKQogICAgICAgICBi YWNrbG9nIDBiIDBwIHJlcXVldWVzIDAKICMgcGluZyAxOTIuMC4yLjEgLUkgdGVzdDAgLWMxIC1x CgogZGl2aWRlIGVycm9yOiAwMDAwIFsjMV0gU01QIFBUSQogQ1BVOiAxIFBJRDogNjE5MiBDb21t OiBwaW5nIE5vdCB0YWludGVkIDUuMS4wLXJjMi5kaWFnMisgIzU5MQogSGFyZHdhcmUgbmFtZTog UmVkIEhhdCBLVk0sIEJJT1MgMC41LjEgMDEvMDEvMjAxMQogUklQOiAwMDEwOnRjZl9zYW1wbGVf YWN0KzB4OWUvMHgxZTAgW2FjdF9zYW1wbGVdCiBDb2RlOiA2YSBmMSA4NSBjMCA3NCAwZCA4MCAz ZCA4MyAxYSAwMCAwMCAwMCAwZiA4NCA5YyAwMCAwMCAwMCA0ZCA4NSBlNCAwZiA4NCA4NSAwMCAw MCAwMCBlOCA5YiBkNyA5YyBmMSA0NCA4YiA4YiBlMCAwMCAwMCAwMCAzMSBkMiA8NDE+IGY3IGYx IDg1IGQyIDc1IDcwIGY2IDg1IDgzIDAwIDAwIDAwIDEwIDQ4IDhiIDQ1IDEwIDhiIDg4IDA4IDAx CiBSU1A6IDAwMTg6ZmZmZmFlMzIwMTkwYmEzMCBFRkxBR1M6IDAwMDEwMjQ2CiBSQVg6IDAwMDAw MDAwYjA2NzdkMjEgUkJYOiBmZmZmOGFmMWVkOWVjMDAwIFJDWDogMDAwMDAwMDA1OWE5ZmU0OQog UkRYOiAwMDAwMDAwMDAwMDAwMDAwIFJTSTogMDAwMDAwMDAwYzdlMzNiNyBSREk6IGZmZmY4YWYy M2RhYTBhZjAKIFJCUDogZmZmZjhhZjFlZTExYjIwMCBSMDg6IDAwMDAwMDAwNzRmY2FmN2UgUjA5 OiAwMDAwMDAwMDAwMDAwMDAwCiBSMTA6IDAwMDAwMDAwMDAwMDAwNTAgUjExOiBmZmZmZmZmZmIz MDg4NjgwIFIxMjogZmZmZjhhZjIzMjMwN2Y4MAogUjEzOiAwMDAwMDAwMDAwMDAwMDAzIFIxNDog ZmZmZjhhZjFlZDllYzAwMCBSMTU6IDAwMDAwMDAwMDAwMDAwMDAKIEZTOiAgMDAwMDdmZTljNmQy Zjc0MCgwMDAwKSBHUzpmZmZmOGFmMjNkYTgwMDAwKDAwMDApIGtubEdTOjAwMDAwMDAwMDAwMDAw MDAKIENTOiAgMDAxMCBEUzogMDAwMCBFUzogMDAwMCBDUjA6IDAwMDAwMDAwODAwNTAwMzMKIENS MjogMDAwMDdmZmY2NzcyZjAwMCBDUjM6IDAwMDAwMDAwNzQ2YTIwMDQgQ1I0OiAwMDAwMDAwMDAw MTYwNmUwCiBDYWxsIFRyYWNlOgogIHRjZl9hY3Rpb25fZXhlYysweDdjLzB4MWMwCiAgdGNmX2Ns YXNzaWZ5KzB4NTcvMHgxNjAKICBfX2Rldl9xdWV1ZV94bWl0KzB4M2RjLzB4ZDEwCiAgaXBfZmlu aXNoX291dHB1dDIrMHgyNTcvMHg2ZDAKICBpcF9vdXRwdXQrMHg3NS8weDI4MAogIGlwX3NlbmRf c2tiKzB4MTUvMHg0MAogIHJhd19zZW5kbXNnKzB4YWUzLzB4MTQxMAogIHNvY2tfc2VuZG1zZysw eDM2LzB4NDAKICBfX3N5c19zZW5kdG8rMHgxMGUvMHgxNDAKICBfX3g2NF9zeXNfc2VuZHRvKzB4 MjQvMHgzMAogIGRvX3N5c2NhbGxfNjQrMHg2MC8weDIxMAogIGVudHJ5X1NZU0NBTExfNjRfYWZ0 ZXJfaHdmcmFtZSsweDQ5LzB4YmUKICBbLi4uXQogIEtlcm5lbCBwYW5pYyAtIG5vdCBzeW5jaW5n OiBGYXRhbCBleGNlcHRpb24gaW4gaW50ZXJydXB0CgpBZGQgYSBUREMgc2VsZnRlc3QgdG8gZG9j dW1lbnQgdGhhdCAncmF0ZScgaXMgbm93IGJlaW5nIHZhbGlkYXRlZC4KClJlcG9ydGVkLWJ5OiBN YXR0ZW8gQ3JvY2UgPG1jcm9jZUByZWRoYXQuY29tPgpGaXhlczogNWM1NjcwZmFlNDMwICgibmV0 L3NjaGVkOiBJbnRyb2R1Y2Ugc2FtcGxlIHRjIGFjdGlvbiIpClNpZ25lZC1vZmYtYnk6IERhdmlk ZSBDYXJhdHRpIDxkY2FyYXR0aUByZWRoYXQuY29tPgpBY2tlZC1ieTogWW90YW0gR2lnaSA8eW90 YW0uZ2lAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3NjaGVkL2FjdF9zYW1wbGUuYyAgICAgICAgICAgICAgICAg ICAgICAgIHwgMTAgKysrKysrLS0KIC4uLi90Yy10ZXN0aW5nL3RjLXRlc3RzL2FjdGlvbnMvc2Ft cGxlLmpzb24gICB8IDI0ICsrKysrKysrKysrKysrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgMzIg aW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvYWN0 X3NhbXBsZS5jIGIvbmV0L3NjaGVkL2FjdF9zYW1wbGUuYwppbmRleCA2YjY3YWExM2QyZGQuLmM3 ZjVkNjMwZDk3YyAxMDA2NDQKLS0tIGEvbmV0L3NjaGVkL2FjdF9zYW1wbGUuYworKysgYi9uZXQv c2NoZWQvYWN0X3NhbXBsZS5jCkBAIC00Myw4ICs0Myw4IEBAIHN0YXRpYyBpbnQgdGNmX3NhbXBs ZV9pbml0KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IG5sYXR0ciAqbmxhLAogCXN0cnVjdCB0Y19h Y3Rpb25fbmV0ICp0biA9IG5ldF9nZW5lcmljKG5ldCwgc2FtcGxlX25ldF9pZCk7CiAJc3RydWN0 IG5sYXR0ciAqdGJbVENBX1NBTVBMRV9NQVggKyAxXTsKIAlzdHJ1Y3QgcHNhbXBsZV9ncm91cCAq cHNhbXBsZV9ncm91cDsKKwl1MzIgcHNhbXBsZV9ncm91cF9udW0sIHJhdGU7CiAJc3RydWN0IHRj X3NhbXBsZSAqcGFybTsKLQl1MzIgcHNhbXBsZV9ncm91cF9udW07CiAJc3RydWN0IHRjZl9zYW1w bGUgKnM7CiAJYm9vbCBleGlzdHMgPSBmYWxzZTsKIAlpbnQgcmV0LCBlcnI7CkBAIC04MCw2ICs4 MCwxMiBAQCBzdGF0aWMgaW50IHRjZl9zYW1wbGVfaW5pdChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVj dCBubGF0dHIgKm5sYSwKIAkJcmV0dXJuIC1FRVhJU1Q7CiAJfQogCisJcmF0ZSA9IG5sYV9nZXRf dTMyKHRiW1RDQV9TQU1QTEVfUkFURV0pOworCWlmICghcmF0ZSkgeworCQlOTF9TRVRfRVJSX01T RyhleHRhY2ssICJpbnZhbGlkIHNhbXBsZSByYXRlIik7CisJCXRjZl9pZHJfcmVsZWFzZSgqYSwg YmluZCk7CisJCXJldHVybiAtRUlOVkFMOworCX0KIAlwc2FtcGxlX2dyb3VwX251bSA9IG5sYV9n ZXRfdTMyKHRiW1RDQV9TQU1QTEVfUFNBTVBMRV9HUk9VUF0pOwogCXBzYW1wbGVfZ3JvdXAgPSBw c2FtcGxlX2dyb3VwX2dldChuZXQsIHBzYW1wbGVfZ3JvdXBfbnVtKTsKIAlpZiAoIXBzYW1wbGVf Z3JvdXApIHsKQEAgLTkxLDcgKzk3LDcgQEAgc3RhdGljIGludCB0Y2Zfc2FtcGxlX2luaXQoc3Ry dWN0IG5ldCAqbmV0LCBzdHJ1Y3QgbmxhdHRyICpubGEsCiAKIAlzcGluX2xvY2tfYmgoJnMtPnRj Zl9sb2NrKTsKIAlzLT50Y2ZfYWN0aW9uID0gcGFybS0+YWN0aW9uOwotCXMtPnJhdGUgPSBubGFf Z2V0X3UzMih0YltUQ0FfU0FNUExFX1JBVEVdKTsKKwlzLT5yYXRlID0gcmF0ZTsKIAlzLT5wc2Ft cGxlX2dyb3VwX251bSA9IHBzYW1wbGVfZ3JvdXBfbnVtOwogCVJDVV9JTklUX1BPSU5URVIocy0+ cHNhbXBsZV9ncm91cCwgcHNhbXBsZV9ncm91cCk7CiAKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rp bmcvc2VsZnRlc3RzL3RjLXRlc3RpbmcvdGMtdGVzdHMvYWN0aW9ucy9zYW1wbGUuanNvbiBiL3Rv b2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3RjLXRlc3RpbmcvdGMtdGVzdHMvYWN0aW9ucy9zYW1wbGUu anNvbgppbmRleCAzYWNhMzNjMDAwMzkuLjYxOGRlZjliZGYwZSAxMDA2NDQKLS0tIGEvdG9vbHMv dGVzdGluZy9zZWxmdGVzdHMvdGMtdGVzdGluZy90Yy10ZXN0cy9hY3Rpb25zL3NhbXBsZS5qc29u CisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3RjLXRlc3RpbmcvdGMtdGVzdHMvYWN0aW9u cy9zYW1wbGUuanNvbgpAQCAtMTQzLDYgKzE0MywzMCBAQAogICAgICAgICAgICAgIiRUQyBhY3Rp b25zIGZsdXNoIGFjdGlvbiBzYW1wbGUiCiAgICAgICAgIF0KICAgICB9LAorICAgIHsKKyAgICAg ICAgImlkIjogIjc1NzEiLAorICAgICAgICAibmFtZSI6ICJBZGQgc2FtcGxlIGFjdGlvbiB3aXRo IGludmFsaWQgcmF0ZSIsCisgICAgICAgICJjYXRlZ29yeSI6IFsKKyAgICAgICAgICAgICJhY3Rp b25zIiwKKyAgICAgICAgICAgICJzYW1wbGUiCisgICAgICAgIF0sCisgICAgICAgICJzZXR1cCI6 IFsKKyAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAiJFRDIGFjdGlvbnMgZmx1c2ggYWN0 aW9uIHNhbXBsZSIsCisgICAgICAgICAgICAgICAgMCwKKyAgICAgICAgICAgICAgICAxLAorICAg ICAgICAgICAgICAgIDI1NQorICAgICAgICAgICAgXQorICAgICAgICBdLAorICAgICAgICAiY21k VW5kZXJUZXN0IjogIiRUQyBhY3Rpb25zIGFkZCBhY3Rpb24gc2FtcGxlIHJhdGUgMCBncm91cCAx IGluZGV4IDIiLAorICAgICAgICAiZXhwRXhpdENvZGUiOiAiMjU1IiwKKyAgICAgICAgInZlcmlm eUNtZCI6ICIkVEMgYWN0aW9ucyBnZXQgYWN0aW9uIHNhbXBsZSBpbmRleCAyIiwKKyAgICAgICAg Im1hdGNoUGF0dGVybiI6ICJhY3Rpb24gb3JkZXIgWzAtOV0rOiBzYW1wbGUgcmF0ZSAxLzAgZ3Jv dXAgMS4qaW5kZXggMiByZWYiLAorICAgICAgICAibWF0Y2hDb3VudCI6ICIwIiwKKyAgICAgICAg InRlYXJkb3duIjogWworICAgICAgICAgICAgIiRUQyBhY3Rpb25zIGZsdXNoIGFjdGlvbiBzYW1w bGUiCisgICAgICAgIF0KKyAgICB9LAogICAgIHsKICAgICAgICAgImlkIjogImI2ZDQiLAogICAg ICAgICAibmFtZSI6ICJBZGQgc2FtcGxlIGFjdGlvbiB3aXRoIG1hbmRhdG9yeSBhcmd1bWVudHMg YW5kIGludmFsaWQgY29udHJvbCBhY3Rpb24iLAotLSAKMi4yMC4xCgoKRnJvbSA3ODdiODBiY2U4 M2IyZGIxNzA2ZmQ4MmMzYjk2ZDVhNDE5MjhkMDczIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBOaWNvbGFzIERpY2h0ZWwgPG5pY29sYXMuZGljaHRlbEA2d2luZC5jb20+CkRhdGU6IFRo dSwgMjggTWFyIDIwMTkgMTA6MzU6MDYgKzAxMDAKU3ViamVjdDogW1BBVENIIDEzLzMzXSBuZXQv c2NoZWQ6IGZpeCAtPmdldCBoZWxwZXIgb2YgdGhlIG1hdGNoYWxsIGNscwoKWyBVcHN0cmVhbSBj b21taXQgMGRiNmY4YmVmYzMyYzY4YmIxM2Q3ZmZiYjJlNTYzYzc5ZTkxM2UxMyBdCgpJdCByZXR1 cm5lZCBhbHdheXMgTlVMTCwgdGh1cyBpdCB3YXMgbmV2ZXIgcG9zc2libGUgdG8gZ2V0IHRoZSBm aWx0ZXIuCgpFeGFtcGxlOgokIGlwIGxpbmsgYWRkIGZvbyB0eXBlIGR1bW15CiQgaXAgbGluayBh ZGQgYmFyIHR5cGUgZHVtbXkKJCB0YyBxZGlzYyBhZGQgZGV2IGZvbyBjbHNhY3QKJCB0YyBmaWx0 ZXIgYWRkIGRldiBmb28gcHJvdG9jb2wgYWxsIHByZWYgMSBpbmdyZXNzIGhhbmRsZSAxMjM0IFwK CW1hdGNoYWxsIGFjdGlvbiBtaXJyZWQgaW5ncmVzcyBtaXJyb3IgZGV2IGJhcgoKQmVmb3JlIHRo ZSBwYXRjaDoKJCB0YyBmaWx0ZXIgZ2V0IGRldiBmb28gcHJvdG9jb2wgYWxsIHByZWYgMSBpbmdy ZXNzIGhhbmRsZSAxMjM0IG1hdGNoYWxsCkVycm9yOiBTcGVjaWZpZWQgZmlsdGVyIGhhbmRsZSBu b3QgZm91bmQuCldlIGhhdmUgYW4gZXJyb3IgdGFsa2luZyB0byB0aGUga2VybmVsCgpBZnRlcjoK JCB0YyBmaWx0ZXIgZ2V0IGRldiBmb28gcHJvdG9jb2wgYWxsIHByZWYgMSBpbmdyZXNzIGhhbmRs ZSAxMjM0IG1hdGNoYWxsCmZpbHRlciBpbmdyZXNzIHByb3RvY29sIGFsbCBwcmVmIDEgbWF0Y2hh bGwgY2hhaW4gMCBoYW5kbGUgMHg0ZDIKICBub3RfaW5faHcKICAgICAgICBhY3Rpb24gb3JkZXIg MTogbWlycmVkIChJbmdyZXNzIE1pcnJvciB0byBkZXZpY2UgYmFyKSBwaXBlCiAgICAgICAgaW5k ZXggMSByZWYgMSBiaW5kIDEKCkNDOiBZb3RhbSBHaWdpIDx5b3RhbWdAbWVsbGFub3guY29tPgpD QzogSmlyaSBQaXJrbyA8amlyaUBtZWxsYW5veC5jb20+CkZpeGVzOiBmZDYyZDlmNWM1NzUgKCJu ZXQvc2NoZWQ6IG1hdGNoYWxsOiBGaXggY29uZmlndXJhdGlvbiByYWNlIikKU2lnbmVkLW9mZi1i eTogTmljb2xhcyBEaWNodGVsIDxuaWNvbGFzLmRpY2h0ZWxANndpbmQuY29tPgpTaWduZWQtb2Zm LWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3NjaGVk L2Nsc19tYXRjaGFsbC5jIHwgNSArKysrKwogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygr KQoKZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9jbHNfbWF0Y2hhbGwuYyBiL25ldC9zY2hlZC9jbHNf bWF0Y2hhbGwuYwppbmRleCA4NTZmYTc5ZDRmZmQuLjYyMWJjMWQ1YjA1NyAxMDA2NDQKLS0tIGEv bmV0L3NjaGVkL2Nsc19tYXRjaGFsbC5jCisrKyBiL25ldC9zY2hlZC9jbHNfbWF0Y2hhbGwuYwpA QCAtMTI2LDYgKzEyNiwxMSBAQCBzdGF0aWMgdm9pZCBtYWxsX2Rlc3Ryb3koc3RydWN0IHRjZl9w cm90byAqdHAsIHN0cnVjdCBuZXRsaW5rX2V4dF9hY2sgKmV4dGFjaykKIAogc3RhdGljIHZvaWQg Km1hbGxfZ2V0KHN0cnVjdCB0Y2ZfcHJvdG8gKnRwLCB1MzIgaGFuZGxlKQogeworCXN0cnVjdCBj bHNfbWFsbF9oZWFkICpoZWFkID0gcnRubF9kZXJlZmVyZW5jZSh0cC0+cm9vdCk7CisKKwlpZiAo aGVhZCAmJiBoZWFkLT5oYW5kbGUgPT0gaGFuZGxlKQorCQlyZXR1cm4gaGVhZDsKKwogCXJldHVy biBOVUxMOwogfQogCi0tIAoyLjIwLjEKCgpGcm9tIDY0OGIyZGE4MzY5YWZlMjM2NjliODgyMmFj ZTYxYTM5MTZmMjkzMDYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFuZHJlYSBSaWdo aSA8YW5kcmVhLnJpZ2hpQGNhbm9uaWNhbC5jb20+CkRhdGU6IFRodSwgMjggTWFyIDIwMTkgMDc6 MzY6MDAgKzAxMDAKU3ViamVjdDogW1BBVENIIDE0LzMzXSBvcGVudnN3aXRjaDogZml4IGZsb3cg YWN0aW9ucyByZWFsbG9jYXRpb24KClsgVXBzdHJlYW0gY29tbWl0IGYyOGNkMmFmMjJhMGMxMzRl NGFhMWM2NGE3MGY3MGQ4MTVkNDczZmIgXQoKVGhlIGZsb3cgYWN0aW9uIGJ1ZmZlciBjYW4gYmUg cmVzaXplZCBpZiBpdCdzIG5vdCBiaWcgZW5vdWdoIHRvIGNvbnRhaW4KYWxsIHRoZSByZXF1ZXN0 ZWQgZmxvdyBhY3Rpb25zLiBIb3dldmVyLCB0aGlzIHJlc2l6ZSBkb2Vzbid0IHRha2UgaW50bwph Y2NvdW50IHRoZSBuZXcgcmVxdWVzdGVkIHNpemUsIHRoZSBidWZmZXIgaXMgb25seSBpbmNyZWFz ZWQgYnkgYSBmYWN0b3IKb2YgMnguIFRoaXMgbWlnaHQgYmUgbm90IGVub3VnaCB0byBjb250YWlu IHRoZSBuZXcgZGF0YSwgY2F1c2luZyBhCmJ1ZmZlciBvdmVyZmxvdywgZm9yIGV4YW1wbGU6Cgpb ICAgNDIuMDQ0NDcyXSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpbICAgNDIuMDQ1NjA4XSBCVUcga21h bGxvYy05NiAoTm90IHRhaW50ZWQpOiBSZWR6b25lIG92ZXJ3cml0dGVuClsgICA0Mi4wNDY0MTVd IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpbICAgNDIuMDQ3NzE1XSBEaXNhYmxpbmcgbG9jayBkZWJ1 Z2dpbmcgZHVlIHRvIGtlcm5lbCB0YWludApbICAgNDIuMDQ3NzE2XSBJTkZPOiAweDhiZjJjNGE1 LTB4NzIwYzA5MjguIEZpcnN0IGJ5dGUgMHgwIGluc3RlYWQgb2YgMHhjYwpbICAgNDIuMDQ4Njc3 XSBJTkZPOiBTbGFiIDB4YmM2ZDIwNDAgb2JqZWN0cz0yOSB1c2VkPTE4IGZwPTB4ZGMwN2RlYzQg ZmxhZ3M9MHgyODA4MTAxClsgICA0Mi4wNDk3NDNdIElORk86IE9iamVjdCAweGQ1M2EzNDY0IEBv ZmZzZXQ9MjUyOCBmcD0weGNjZGNkZWJiCgpbICAgNDIuMDUwNzQ3XSBSZWR6b25lIDc2ZjFiMjM3 OiBjYyBjYyBjYyBjYyBjYyBjYyBjYyBjYyAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uLi4u Li4KWyAgIDQyLjA1MTgzOV0gT2JqZWN0IGQ1M2EzNDY0OiA2YiA2YiA2YiA2YiA2YiA2YiA2YiA2 YiAwYyAwMCAwMCAwMCA2YyAwMCAwMCAwMCAga2tra2tra2suLi4ubC4uLgpbICAgNDIuMDUzMDE1 XSBPYmplY3QgZjQ5YTMwY2M6IDZjIDAwIDBjIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAzIDc4 IGEzIDE1IGY2ICBsLi4uLi4uLi4uLi54Li4uClsgICA0Mi4wNTQyMDNdIE9iamVjdCBhY2ZlNDIy MDogMjAgMDAgMDIgMDAgZmYgZmYgZmYgZmYgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgICAuLi4u Li4uLi4uLi4uLi4KWyAgIDQyLjA1NTM3MF0gT2JqZWN0IDIxMDI0ZTkxOiAwMCAwMCAwMCAwMCAw MCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAgLi4uLi4uLi4uLi4uLi4uLgpbICAg NDIuMDU2NTQxXSBPYmplY3QgMDcwZTA0YzM6IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAw IDAwIDAwIDAwIDAwIDAwIDAwICAuLi4uLi4uLi4uLi4uLi4uClsgICA0Mi4wNTc3OTddIE9iamVj dCA5NDhhNzc3YTogMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAg MDAgIC4uLi4uLi4uLi4uLi4uLi4KWyAgIDQyLjA1OTA2MV0gUmVkem9uZSA4YmYyYzRhNTogMDAg MDAgMDAgMDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLi4KWyAgIDQy LjA2MDE4OV0gUGFkZGluZyBhNjgxYjQ2ZTogNWEgNWEgNWEgNWEgNWEgNWEgNWEgNWEgICAgICAg ICAgICAgICAgICAgICAgICAgIFpaWlpaWlpaCgpGaXggYnkgbWFraW5nIHN1cmUgdGhlIG5ldyBi dWZmZXIgaXMgcHJvcGVybHkgcmVzaXplZCB0byBjb250YWluIGFsbCB0aGUKcmVxdWVzdGVkIGRh dGEuCgpCdWdMaW5rOiBodHRwczovL2J1Z3MubGF1bmNocGFkLm5ldC9idWdzLzE4MTMyNDQKU2ln bmVkLW9mZi1ieTogQW5kcmVhIFJpZ2hpIDxhbmRyZWEucmlnaGlAY2Fub25pY2FsLmNvbT4KQWNr ZWQtYnk6IFByYXZpbiBCIFNoZWxhciA8cHNoZWxhckBvdm4ub3JnPgpTaWduZWQtb2ZmLWJ5OiBE YXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L29wZW52c3dpdGNo L2Zsb3dfbmV0bGluay5jIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCsp LCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9vcGVudnN3aXRjaC9mbG93X25ldGxp bmsuYyBiL25ldC9vcGVudnN3aXRjaC9mbG93X25ldGxpbmsuYwppbmRleCBjN2I2MDEwYjJjMDku LmVhYjVlOGVhZGRhYSAxMDA2NDQKLS0tIGEvbmV0L29wZW52c3dpdGNoL2Zsb3dfbmV0bGluay5j CisrKyBiL25ldC9vcGVudnN3aXRjaC9mbG93X25ldGxpbmsuYwpAQCAtMjMwNiwxNCArMjMwNiwx NCBAQCBzdGF0aWMgc3RydWN0IG5sYXR0ciAqcmVzZXJ2ZV9zZmFfc2l6ZShzdHJ1Y3Qgc3dfZmxv d19hY3Rpb25zICoqc2ZhLAogCiAJc3RydWN0IHN3X2Zsb3dfYWN0aW9ucyAqYWN0czsKIAlpbnQg bmV3X2FjdHNfc2l6ZTsKLQlpbnQgcmVxX3NpemUgPSBOTEFfQUxJR04oYXR0cl9sZW4pOworCXNp emVfdCByZXFfc2l6ZSA9IE5MQV9BTElHTihhdHRyX2xlbik7CiAJaW50IG5leHRfb2Zmc2V0ID0g b2Zmc2V0b2Yoc3RydWN0IHN3X2Zsb3dfYWN0aW9ucywgYWN0aW9ucykgKwogCQkJCQkoKnNmYSkt PmFjdGlvbnNfbGVuOwogCiAJaWYgKHJlcV9zaXplIDw9IChrc2l6ZSgqc2ZhKSAtIG5leHRfb2Zm c2V0KSkKIAkJZ290byBvdXQ7CiAKLQluZXdfYWN0c19zaXplID0ga3NpemUoKnNmYSkgKiAyOwor CW5ld19hY3RzX3NpemUgPSBtYXgobmV4dF9vZmZzZXQgKyByZXFfc2l6ZSwga3NpemUoKnNmYSkg KiAyKTsKIAogCWlmIChuZXdfYWN0c19zaXplID4gTUFYX0FDVElPTlNfQlVGU0laRSkgewogCQlp ZiAoKE1BWF9BQ1RJT05TX0JVRlNJWkUgLSBuZXh0X29mZnNldCkgPCByZXFfc2l6ZSkgewotLSAK Mi4yMC4xCgoKRnJvbSBlOTE0ZmY2MjljNDY4NTllODc5OWJlZjVkOTNjYzg5MjE5ZDZkYjAwIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Qmo9QzM9Qjhybj0yME1vcms/ PSA8Ympvcm5AbW9yay5ubz4KRGF0ZTogV2VkLCAyNyBNYXIgMjAxOSAxNToyNjowMSArMDEwMApT dWJqZWN0OiBbUEFUQ0ggMTUvMzNdIHFtaV93d2FuOiBhZGQgT2xpY2FyZCA2MDAKTUlNRS1WZXJz aW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQt VHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKClsgVXBzdHJlYW0gY29tbWl0IDYyODlkMGZhY2Q5ZWJj ZTRjYzgzZTVkYTM5ZTE1NjQzZWU5OThkYzUgXQoKVGhpcyBpcyBhIFF1YWxjb21tIGJhc2VkIGRl dmljZSB3aXRoIGEgUU1JIGZ1bmN0aW9uIG9uIGludGVyZmFjZSA0LgpJdCBpcyBtb2RlIHN3aXRj aGVkIGZyb20gMjAyMDoyMDMwIHVzaW5nIGEgc3RhbmRhcmQgZWplY3QgbWVzc2FnZS4KClQ6ICBC dXM9MDEgTGV2PTAxIFBybnQ9MDEgUG9ydD0wMCBDbnQ9MDEgRGV2Iz0gIDYgU3BkPTQ4MCAgTXhD aD0gMApEOiAgVmVyPSAyLjAwIENscz0wMCg+aWZjICkgU3ViPTAwIFByb3Q9MDAgTXhQUz02NCAj Q2Zncz0gIDEKUDogIFZlbmRvcj0yMDIwIFByb2RJRD0yMDMxIFJldj0gMi4zMgpTOiAgTWFudWZh Y3R1cmVyPU1vYmlsZSBDb25uZWN0ClM6ICBQcm9kdWN0PU1vYmlsZSBDb25uZWN0ClM6ICBTZXJp YWxOdW1iZXI9MDEyMzQ1Njc4OUFCQ0RFRgpDOiogI0lmcz0gNiBDZmcjPSAxIEF0cj04MCBNeFB3 cj01MDBtQQpJOiogSWYjPSAwIEFsdD0gMCAjRVBzPSAyIENscz1mZih2ZW5kLikgU3ViPWZmIFBy b3Q9ZmYgRHJpdmVyPShub25lKQpFOiAgQWQ9ODEoSSkgQXRyPTAyKEJ1bGspIE14UFM9IDUxMiBJ dmw9MG1zCkU6ICBBZD0wMShPKSBBdHI9MDIoQnVsaykgTXhQUz0gNTEyIEl2bD0wbXMKSToqIElm Iz0gMSBBbHQ9IDAgI0VQcz0gMyBDbHM9ZmYodmVuZC4pIFN1Yj0wMCBQcm90PTAwIERyaXZlcj0o bm9uZSkKRTogIEFkPTgzKEkpIEF0cj0wMyhJbnQuKSBNeFBTPSAgMTAgSXZsPTMybXMKRTogIEFk PTgyKEkpIEF0cj0wMihCdWxrKSBNeFBTPSA1MTIgSXZsPTBtcwpFOiAgQWQ9MDIoTykgQXRyPTAy KEJ1bGspIE14UFM9IDUxMiBJdmw9MG1zCkk6KiBJZiM9IDIgQWx0PSAwICNFUHM9IDMgQ2xzPWZm KHZlbmQuKSBTdWI9MDAgUHJvdD0wMCBEcml2ZXI9KG5vbmUpCkU6ICBBZD04NShJKSBBdHI9MDMo SW50LikgTXhQUz0gIDEwIEl2bD0zMm1zCkU6ICBBZD04NChJKSBBdHI9MDIoQnVsaykgTXhQUz0g NTEyIEl2bD0wbXMKRTogIEFkPTAzKE8pIEF0cj0wMihCdWxrKSBNeFBTPSA1MTIgSXZsPTBtcwpJ OiogSWYjPSAzIEFsdD0gMCAjRVBzPSAzIENscz1mZih2ZW5kLikgU3ViPTAwIFByb3Q9MDAgRHJp dmVyPShub25lKQpFOiAgQWQ9ODcoSSkgQXRyPTAzKEludC4pIE14UFM9ICAxMCBJdmw9MzJtcwpF OiAgQWQ9ODYoSSkgQXRyPTAyKEJ1bGspIE14UFM9IDUxMiBJdmw9MG1zCkU6ICBBZD0wNChPKSBB dHI9MDIoQnVsaykgTXhQUz0gNTEyIEl2bD0wbXMKSToqIElmIz0gNCBBbHQ9IDAgI0VQcz0gMyBD bHM9ZmYodmVuZC4pIFN1Yj1mZiBQcm90PWZmIERyaXZlcj0obm9uZSkKRTogIEFkPTg5KEkpIEF0 cj0wMyhJbnQuKSBNeFBTPSAgIDggSXZsPTMybXMKRTogIEFkPTg4KEkpIEF0cj0wMihCdWxrKSBN eFBTPSA1MTIgSXZsPTBtcwpFOiAgQWQ9MDUoTykgQXRyPTAyKEJ1bGspIE14UFM9IDUxMiBJdmw9 MG1zCkk6KiBJZiM9IDUgQWx0PSAwICNFUHM9IDIgQ2xzPTA4KHN0b3IuKSBTdWI9MDYgUHJvdD01 MCBEcml2ZXI9KG5vbmUpCkU6ICBBZD04YShJKSBBdHI9MDIoQnVsaykgTXhQUz0gNTEyIEl2bD0w bXMKRTogIEFkPTA2KE8pIEF0cj0wMihCdWxrKSBNeFBTPSA1MTIgSXZsPTEyNXVzCgpTaWduZWQt b2ZmLWJ5OiBCasO4cm4gTW9yayA8Ympvcm5AbW9yay5ubz4KU2lnbmVkLW9mZi1ieTogRGF2aWQg Uy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L3VzYi9xbWlf d3dhbi5jIHwgMSArCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykKCmRpZmYgLS1naXQg YS9kcml2ZXJzL25ldC91c2IvcW1pX3d3YW4uYyBiL2RyaXZlcnMvbmV0L3VzYi9xbWlfd3dhbi5j CmluZGV4IDc0YmViYmRiNGIxNS4uOTE5NWYzNDc2YjFkIDEwMDY0NAotLS0gYS9kcml2ZXJzL25l dC91c2IvcW1pX3d3YW4uYworKysgYi9kcml2ZXJzL25ldC91c2IvcW1pX3d3YW4uYwpAQCAtMTIw Myw2ICsxMjAzLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIHByb2R1Y3Rz W10gPSB7CiAJe1FNSV9GSVhFRF9JTlRGKDB4MTlkMiwgMHgyMDAyLCA0KX0sCS8qIFpURSAoVm9k YWZvbmUpIEszNzY1LVogKi8KIAl7UU1JX0ZJWEVEX0lOVEYoMHgyMDAxLCAweDdlMTksIDQpfSwJ LyogRC1MaW5rIERXTS0yMjEgQjEgKi8KIAl7UU1JX0ZJWEVEX0lOVEYoMHgyMDAxLCAweDdlMzUs IDQpfSwJLyogRC1MaW5rIERXTS0yMjIgKi8KKwl7UU1JX0ZJWEVEX0lOVEYoMHgyMDIwLCAweDIw MzEsIDQpfSwJLyogT2xpY2FyZCA2MDAgKi8KIAl7UU1JX0ZJWEVEX0lOVEYoMHgyMDIwLCAweDIw MzMsIDQpfSwJLyogQnJvYWRNb2JpIEJNODA2VSAqLwogCXtRTUlfRklYRURfSU5URigweDBmM2Qs IDB4NjhhMiwgOCl9LCAgICAvKiBTaWVycmEgV2lyZWxlc3MgTUM3NzAwICovCiAJe1FNSV9GSVhF RF9JTlRGKDB4MTE0ZiwgMHg2OGEyLCA4KX0sICAgIC8qIFNpZXJyYSBXaXJlbGVzcyBNQzc3NTAg Ki8KLS0gCjIuMjAuMQoKCkZyb20gZWEzNmJkNmRjYTcyZTI5YTU2MWFlY2VmZmYyNzk3MDE2NzFl ZmM3OSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSGVpbmVyIEthbGx3ZWl0IDxoa2Fs bHdlaXQxQGdtYWlsLmNvbT4KRGF0ZTogRnJpLCA1IEFwciAyMDE5IDIwOjQ2OjQ2ICswMjAwClN1 YmplY3Q6IFtQQVRDSCAxNi8zM10gcjgxNjk6IGRpc2FibGUgQVNQTSBhZ2FpbgoKWyBVcHN0cmVh bSBjb21taXQgYjc1YmI4YTViNzU1ZDBjN2JmMWFjMDcxZTRkZjIzNDlhNzY0NGExZSBdCgpUaGVy ZSdzIGEgc2lnbmlmaWNhbnQgbnVtYmVyIG9mIHJlcG9ydHMgdGhhdCByZS1lbmFibGluZyBBU1BN IGNhdXNlcwpkaWZmZXJlbnQgaXNzdWVzLCByYW5naW5nIGZyb20gZGVjcmVhc2VkIHBlcmZvcm1h bmNlIHRvIHN5c3RlbSBub3QKYm9vdGluZyBhdCBhbGwuIFRoaXMgYWZmZWN0cyBvbmx5IGEgbWlu b3JpdHkgb2YgdXNlcnMsIGJ1dCB0aGUgbnVtYmVyCm9mIGFmZmVjdGVkIHVzZXJzIGlzIGJpZyBl bm91Z2ggdGhhdCB3ZSBiZXR0ZXIgc3dpdGNoIG9mZiBBU1BNIGFnYWluLgoKVGhpcyB3aWxsIGh1 cnQgbm90ZWJvb2sgdXNlcnMgd2hvIGFyZSBub3QgYWZmZWN0ZWQgYnkgdGhlIGlzc3VlcywgdGhl eQptYXkgc2VlIGRlY3JlYXNlZCBiYXR0ZXJ5IHJ1bnRpbWUgdy9vIEFTUE0uIFdpdGggdGhlIFBD SSBjb3JlIGZvbGtzIGlzCmJlaW5nIGRpc2N1c3NlZCB0byBhZGQgZ2VuZXJpYyBzeXNmcyBhdHRy aWJ1dGVzIHRvIGNvbnRyb2wgQVNQTS4KT25jZSB0aGlzIGlzIGluIHBsYWNlIGJyYXZlIGVub3Vn aCB1c2VycyBjYW4gcmUtZW5hYmxlIEFTUE0gb24gdGhlaXIKc3lzdGVtLgoKRml4ZXM6IGE5OTc5 MGJmNWM3ZiAoInI4MTY5OiBSZWluc3RhdGUgQVNQTSBTdXBwb3J0IikKU2lnbmVkLW9mZi1ieTog SGVpbmVyIEthbGx3ZWl0IDxoa2FsbHdlaXQxQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2 aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVy bmV0L3JlYWx0ZWsvcjgxNjkuYyB8IDYgKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRp b25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvcmVhbHRlay9yODE2OS5j IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvcmVhbHRlay9yODE2OS5jCmluZGV4IDVmNDVmZmVlZWNi NC4uMWQyNDg4NGU5ODk3IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9yZWFsdGVr L3I4MTY5LmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvcmVhbHRlay9yODE2OS5jCkBAIC0y OCw2ICsyOCw3IEBACiAjaW5jbHVkZSA8bGludXgvcG1fcnVudGltZS5oPgogI2luY2x1ZGUgPGxp bnV4L2Zpcm13YXJlLmg+CiAjaW5jbHVkZSA8bGludXgvcHJlZmV0Y2guaD4KKyNpbmNsdWRlIDxs aW51eC9wY2ktYXNwbS5oPgogI2luY2x1ZGUgPGxpbnV4L2lwdjYuaD4KICNpbmNsdWRlIDxuZXQv aXA2X2NoZWNrc3VtLmg+CiAKQEAgLTczMjQsNiArNzMyNSwxMSBAQCBzdGF0aWMgaW50IHJ0bF9p bml0X29uZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQg KmVudCkKIAkJCXJldHVybiByYzsKIAl9CiAKKwkvKiBEaXNhYmxlIEFTUE0gY29tcGxldGVseSBh cyB0aGF0IGNhdXNlIHJhbmRvbSBkZXZpY2Ugc3RvcCB3b3JraW5nCisJICogcHJvYmxlbXMgYXMg d2VsbCBhcyBmdWxsIHN5c3RlbSBoYW5ncyBmb3Igc29tZSBQQ0llIGRldmljZXMgdXNlcnMuCisJ ICovCisJcGNpX2Rpc2FibGVfbGlua19zdGF0ZShwZGV2LCBQQ0lFX0xJTktfU1RBVEVfTDBTIHwg UENJRV9MSU5LX1NUQVRFX0wxKTsKKwogCS8qIGVuYWJsZSBkZXZpY2UgKGluY2wuIFBDSSBQTSB3 YWtldXAgYW5kIGhvdHBsdWcgc2V0dXApICovCiAJcmMgPSBwY2ltX2VuYWJsZV9kZXZpY2UocGRl dik7CiAJaWYgKHJjIDwgMCkgewotLSAKMi4yMC4xCgoKRnJvbSAwZWJjZDY5Y2ZhZjdiY2MwN2I0 NGU4MzgyYTUwNmYzZmY0MGZhZDY4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBYaW4g TG9uZyA8bHVjaWVuLnhpbkBnbWFpbC5jb20+CkRhdGU6IFN1biwgMzEgTWFyIDIwMTkgMTY6NTg6 MTUgKzA4MDAKU3ViamVjdDogW1BBVENIIDE3LzMzXSBzY3RwOiBpbml0aWFsaXplIF9wYWQgb2Yg c29ja2FkZHJfaW4gYmVmb3JlIGNvcHlpbmcgdG8KIHVzZXIgbWVtb3J5CgpbIFVwc3RyZWFtIGNv bW1pdCAwOTI3OWU2MTVjODFjZTU1ZTA0ODM1OTcwNjAxYWUyODZlM2ZhY2JlIF0KClN5emJvdCBy ZXBvcnQgYSBrZXJuZWwtaW5mb2xlYWs6CgogIEJVRzogS01TQU46IGtlcm5lbC1pbmZvbGVhayBp biBfY29weV90b191c2VyKzB4MTZiLzB4MWYwIGxpYi91c2VyY29weS5jOjMyCiAgQ2FsbCBUcmFj ZToKICAgIF9jb3B5X3RvX3VzZXIrMHgxNmIvMHgxZjAgbGliL3VzZXJjb3B5LmM6MzIKICAgIGNv cHlfdG9fdXNlciBpbmNsdWRlL2xpbnV4L3VhY2Nlc3MuaDoxNzQgW2lubGluZV0KICAgIHNjdHBf Z2V0c29ja29wdF9wZWVyX2FkZHJzIG5ldC9zY3RwL3NvY2tldC5jOjU5MTEgW2lubGluZV0KICAg IHNjdHBfZ2V0c29ja29wdCsweDE2NjhlLzB4MTdmNzAgbmV0L3NjdHAvc29ja2V0LmM6NzU2Mgog ICAgLi4uCiAgVW5pbml0IHdhcyBzdG9yZWQgdG8gbWVtb3J5IGF0OgogICAgc2N0cF90cmFuc3Bv cnRfaW5pdCBuZXQvc2N0cC90cmFuc3BvcnQuYzo2MSBbaW5saW5lXQogICAgc2N0cF90cmFuc3Bv cnRfbmV3KzB4MTZkLzB4OWEwIG5ldC9zY3RwL3RyYW5zcG9ydC5jOjExNQogICAgc2N0cF9hc3Nv Y19hZGRfcGVlcisweDUzMi8weDFmNzAgbmV0L3NjdHAvYXNzb2Npb2xhLmM6NjM3CiAgICBzY3Rw X3Byb2Nlc3NfcGFyYW0gbmV0L3NjdHAvc21fbWFrZV9jaHVuay5jOjI1NDggW2lubGluZV0KICAg IHNjdHBfcHJvY2Vzc19pbml0KzB4MWExYi8weDNlZDAgbmV0L3NjdHAvc21fbWFrZV9jaHVuay5j OjIzNjEKICAgIC4uLgogIEJ5dGVzIDgtMTUgb2YgMTYgYXJlIHVuaW5pdGlhbGl6ZWQKCkl0IHdh cyBjYXVzZWQgYnkgdGhhdCB0aCBfcGFkIGZpZWxkICh0aGUgOC0xNSBieXRlcykgb2YgYSB2NCBh ZGRyIChzYXZlZCBpbgpzdHJ1Y3Qgc29ja2FkZHJfaW4pIHdhc24ndCBpbml0aWFsaXplZCwgYnV0 IGRpcmVjdGx5IGNvcGllZCB0byB1c2VyIG1lbW9yeQppbiBzY3RwX2dldHNvY2tvcHRfcGVlcl9h ZGRycygpLgoKU28gZml4IGl0IGJ5IGNhbGxpbmcgbWVtc2V0KGFkZHItPnY0LnNpbl96ZXJvLCAw LCA4KSB0byBpbml0aWFsaXplIF9wYWQgb2YKc29ja2FkZHJfaW4gYmVmb3JlIGNvcHlpbmcgaXQg dG8gdXNlciBtZW1vcnkgaW4gc2N0cF92NF9hZGRyX3RvX3VzZXIoKSwgYXMKc2N0cF92Nl9hZGRy X3RvX3VzZXIoKSBkb2VzLgoKUmVwb3J0ZWQtYnk6IHN5emJvdCs4NmI1YzdjMjM2YTIyNjE2YTcy ZkBzeXprYWxsZXIuYXBwc3BvdG1haWwuY29tClNpZ25lZC1vZmYtYnk6IFhpbiBMb25nIDxsdWNp ZW4ueGluQGdtYWlsLmNvbT4KVGVzdGVkLWJ5OiBBbGV4YW5kZXIgUG90YXBlbmtvIDxnbGlkZXJA Z29vZ2xlLmNvbT4KQWNrZWQtYnk6IE5laWwgSG9ybWFuIDxuaG9ybWFuQHR1eGRyaXZlci5jb20+ ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0t CiBuZXQvc2N0cC9wcm90b2NvbC5jIHwgMSArCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24o KykKCmRpZmYgLS1naXQgYS9uZXQvc2N0cC9wcm90b2NvbC5jIGIvbmV0L3NjdHAvcHJvdG9jb2wu YwppbmRleCAxYzlmMDc5ZThhNTAuLmQ5N2IyYjRiN2E4YiAxMDA2NDQKLS0tIGEvbmV0L3NjdHAv cHJvdG9jb2wuYworKysgYi9uZXQvc2N0cC9wcm90b2NvbC5jCkBAIC02MDAsNiArNjAwLDcgQEAg c3RhdGljIHN0cnVjdCBzb2NrICpzY3RwX3Y0X2NyZWF0ZV9hY2NlcHRfc2soc3RydWN0IHNvY2sg KnNrLAogc3RhdGljIGludCBzY3RwX3Y0X2FkZHJfdG9fdXNlcihzdHJ1Y3Qgc2N0cF9zb2NrICpz cCwgdW5pb24gc2N0cF9hZGRyICphZGRyKQogewogCS8qIE5vIGFkZHJlc3MgbWFwcGluZyBmb3Ig VjQgc29ja2V0cyAqLworCW1lbXNldChhZGRyLT52NC5zaW5femVybywgMCwgc2l6ZW9mKGFkZHIt PnY0LnNpbl96ZXJvKSk7CiAJcmV0dXJuIHNpemVvZihzdHJ1Y3Qgc29ja2FkZHJfaW4pOwogfQog Ci0tIAoyLjIwLjEKCgpGcm9tIDRlYmRjZDcwZWVhMjQwNzQ2MTFhNDVkNTQyOWVhODhiYTdhMDgw NzQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEtvZW4gRGUgU2NoZXBwZXIgPGtvZW4u ZGVfc2NoZXBwZXJAbm9raWEtYmVsbC1sYWJzLmNvbT4KRGF0ZTogVGh1LCA0IEFwciAyMDE5IDEy OjI0OjAyICswMDAwClN1YmplY3Q6IFtQQVRDSCAxOC8zM10gdGNwOiBFbnN1cmUgRENUQ1AgcmVh Y3RzIHRvIGxvc3NlcwpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47 IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAoKWyBVcHN0cmVh bSBjb21taXQgYWVjZmRlMjMxMDhiOGU2MzdkOWY1YzVlNTIzYjI0ZmI5NzAzNWRjMyBdCgpSRkM4 MjU3IMKnMy41IGV4cGxpY2l0bHkgc3RhdGVzIHRoYXQgIkEgRENUQ1Agc2VuZGVyIE1VU1QgcmVh Y3QgdG8KbG9zcyBlcGlzb2RlcyBpbiB0aGUgc2FtZSB3YXkgYXMgY29udmVudGlvbmFsIFRDUCIu CgpDdXJyZW50bHksIExpbnV4IERDVENQIHBlcmZvcm1zIG5vIGN3bmQgcmVkdWN0aW9uIHdoZW4g bG9zc2VzCmFyZSBlbmNvdW50ZXJlZC4gT3B0aW9uYWxseSwgdGhlIGRjdGNwX2NsYW1wX2FscGhh X29uX2xvc3MgcmVzZXRzCmFscGhhIHRvIGl0cyBtYXhpbWFsIHZhbHVlIGlmIGEgUlRPIGhhcHBl bnMuIFRoaXMgYmVoYXZpb3IKaXMgc3ViLW9wdGltYWwgZm9yIGF0IGxlYXN0IHR3byByZWFzb25z OiBpKSBpdCBpZ25vcmVzIGxvc3Nlcwp0cmlnZ2VyaW5nIGZhc3QgcmV0cmFuc21pc3Npb25zOyBh bmQgaWkpIGl0IGNhdXNlcyB1bm5lY2Vzc2FyeSBsYXJnZQpjd25kIHJlZHVjdGlvbiBpbiB0aGUg ZnV0dXJlIGlmIHRoZSBsb3NzIHdhcyBpc29sYXRlZCBhcyBpdCByZXNldHMKdGhlIGhpc3Rvcmlj YWwgdGVybSBvZiBEQ1RDUCdzIGFscGhhIEVXTUEgdG8gaXRzIG1heGltYWwgdmFsdWUgKGkuZS4s CmRlbm90aW5nIGEgdG90YWwgY29uZ2VzdGlvbikuIFRoZSBzZWNvbmQgcmVhc29uIGhhcyBhbiBl c3BlY2lhbGx5Cm5vdGljZWFibGUgZWZmZWN0IHdoZW4gdXNpbmcgRENUQ1AgaW4gaGlnaCBCRFAg ZW52aXJvbm1lbnRzLCB3aGVyZQphbHBoYSBub3JtYWxseSBzdGF5cyBhdCBsb3cgdmFsdWVzLgoK VGhpcyBwYXRjaCByZXBsYWNlIHRoZSBjbGFtcGluZyBvZiBhbHBoYSBieSBzZXR0aW5nIHNzdGhy ZXNoIHRvCmhhbGYgb2YgY3duZCBmb3IgYm90aCBmYXN0IHJldHJhbnNtaXNzaW9ucyBhbmQgUlRP cywgYXQgbW9zdCBvbmNlCnBlciBSVFQuIENvbnNlcXVlbnRseSwgdGhlIGRjdGNwX2NsYW1wX2Fs cGhhX29uX2xvc3MgbW9kdWxlIHBhcmFtZXRlcgpoYXMgYmVlbiByZW1vdmVkLgoKVGhlIHRhYmxl IGJlbG93IHNob3dzIGV4cGVyaW1lbnRhbCByZXN1bHRzIHdoZXJlIHdlIG1lYXN1cmVkIHRoZQpk cm9wIHByb2JhYmlsaXR5IG9mIGEgUElFIEFRTSAobm90IGFwcGx5aW5nIEVDTiBtYXJrcykgYXQg YQpib3R0bGVuZWNrIGluIHRoZSBwcmVzZW5jZSBvZiBhIHNpbmdsZSBUQ1AgZmxvdyB3aXRoIGVp dGhlciB0aGUKYWxwaGEtY2xhbXBpbmcgb3B0aW9uIGVuYWJsZWQgb3IgdGhlIGN3bmQgaGFsdmlu ZyBwcm9wb3NlZCBieSB0aGlzCnBhdGNoLiBSZXN1bHRzIHVzaW5nIHJlbm8gb3IgY3ViaWMgYXJl IGdpdmVuIGZvciBjb21wYXJpc29uLgoKICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBMaW5r ICAgfCAgIFJUVCAgICB8ICAgIERyb3AKICAgICAgICAgICAgICAgICBUQ1AgQ0MgICB8ICBzcGVl ZCAgfCBiYXNlK0FRTSB8IHByb2JhYmlsaXR5CiAgICAgICAgPT09PT09PT09PT09PT09PT09fD09 PT09PT09PXw9PT09PT09PT09fD09PT09PT09PT09PQogICAgICAgICAgICAgICAgICAgIENVQklD IHwgIDQwTWJwcyB8ICA3KzIwbXMgIHwgICAgMC4yMSUKICAgICAgICAgICAgICAgICAgICAgUkVO TyB8ICAgICAgICAgfCAgICAgICAgICB8ICAgIDAuMTklCiAgICAgICAgRENUQ1AtQ0xBTVAtQUxQ SEEgfCAgICAgICAgIHwgICAgICAgICAgfCAgIDI1LjgwJQogICAgICAgICBEQ1RDUC1IQUxWRS1D V05EIHwgICAgICAgICB8ICAgICAgICAgIHwgICAgMC4yMiUKICAgICAgICAtLS0tLS0tLS0tLS0t LS0tLS18LS0tLS0tLS0tfC0tLS0tLS0tLS18LS0tLS0tLS0tLS0tCiAgICAgICAgICAgICAgICAg ICAgQ1VCSUMgfCAxMDBNYnBzIHwgIDcrMjBtcyAgfCAgICAwLjAzJQogICAgICAgICAgICAgICAg ICAgICBSRU5PIHwgICAgICAgICB8ICAgICAgICAgIHwgICAgMC4wMiUKICAgICAgICBEQ1RDUC1D TEFNUC1BTFBIQSB8ICAgICAgICAgfCAgICAgICAgICB8ICAgMjMuMzAlCiAgICAgICAgIERDVENQ LUhBTFZFLUNXTkQgfCAgICAgICAgIHwgICAgICAgICAgfCAgICAwLjA0JQogICAgICAgIC0tLS0t LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS18LS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0KICAgICAgICAg ICAgICAgICAgICBDVUJJQyB8IDgwME1icHMgfCAgIDErMW1zICB8ICAgIDAuMDQlCiAgICAgICAg ICAgICAgICAgICAgIFJFTk8gfCAgICAgICAgIHwgICAgICAgICAgfCAgICAwLjA1JQogICAgICAg IERDVENQLUNMQU1QLUFMUEhBIHwgICAgICAgICB8ICAgICAgICAgIHwgICAxOC43MCUKICAgICAg ICAgRENUQ1AtSEFMVkUtQ1dORCB8ICAgICAgICAgfCAgICAgICAgICB8ICAgIDAuMDYlCgpXZSBz ZWUgdGhhdCwgd2l0aG91dCBoYWx2aW5nIGl0cyBjd25kIGZvciBhbGwgc291cmNlIG9mIGxvc3Nl cywKRENUQ1AgZHJpdmVzIHRoZSBBUU0gdG8gbGFyZ2UgZHJvcCBwcm9iYWJpbGl0aWVzIGluIG9y ZGVyIHRvIGtlZXAKdGhlIHF1ZXVlIGxlbmd0aCB1bmRlciBjb250cm9sIChpLmUuLCBpdCByZXBl YXRlZGx5IGZhY2VzIFJUT3MpLgpJbnN0ZWFkLCBpZiBEQ1RDUCByZWFjdHMgdG8gYWxsIHNvdXJj ZSBvZiBsb3NzZXMsIGl0IGNhbiB0aGVuIGJlCmNvbnRyb2xsZWQgYnkgdGhlIEFRTSB1c2luZyBz aW1pbGFyIGRyb3AgbGV2ZWxzIHRoYW4gY3ViaWMgb3IgcmVuby4KClNpZ25lZC1vZmYtYnk6IEtv ZW4gRGUgU2NoZXBwZXIgPGtvZW4uZGVfc2NoZXBwZXJAbm9raWEtYmVsbC1sYWJzLmNvbT4KU2ln bmVkLW9mZi1ieTogT2xpdmllciBUaWxtYW5zIDxvbGl2aWVyLnRpbG1hbnNAbm9raWEtYmVsbC1s YWJzLmNvbT4KQ2M6IEJvYiBCcmlzY29lIDxyZXNlYXJjaEBib2JicmlzY29lLm5ldD4KQ2M6IExh d3JlbmNlIEJyYWttbyA8YnJha21vQGZiLmNvbT4KQ2M6IEZsb3JpYW4gV2VzdHBoYWwgPGZ3QHN0 cmxlbi5kZT4KQ2M6IERhbmllbCBCb3JrbWFubiA8Ym9ya21hbm5AaW9nZWFyYm94Lm5ldD4KQ2M6 IFl1Y2h1bmcgQ2hlbmcgPHljaGVuZ0Bnb29nbGUuY29tPgpDYzogTmVhbCBDYXJkd2VsbCA8bmNh cmR3ZWxsQGdvb2dsZS5jb20+CkNjOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ CkNjOiBBbmRyZXcgU2hld21ha2VyIDxhZ3NoZXdAZ21haWwuY29tPgpDYzogR2xlbm4gSnVkZCA8 Z2xlbm4uanVkZEBtb3JnYW5zdGFubGV5LmNvbT4KQWNrZWQtYnk6IEZsb3JpYW4gV2VzdHBoYWwg PGZ3QHN0cmxlbi5kZT4KQWNrZWQtYnk6IE5lYWwgQ2FyZHdlbGwgPG5jYXJkd2VsbEBnb29nbGUu Y29tPgpBY2tlZC1ieTogRGFuaWVsIEJvcmttYW5uIDxkYW5pZWxAaW9nZWFyYm94Lm5ldD4KU2ln bmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5l dC9pcHY0L3RjcF9kY3RjcC5jIHwgMzYgKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0t LS0tCiAxIGZpbGUgY2hhbmdlZCwgMTggaW5zZXJ0aW9ucygrKSwgMTggZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvbmV0L2lwdjQvdGNwX2RjdGNwLmMgYi9uZXQvaXB2NC90Y3BfZGN0Y3AuYwpp bmRleCBjYTYxZTJhNjU5ZTcuLjUyMDVjNWE1ZDhkNSAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvdGNw X2RjdGNwLmMKKysrIGIvbmV0L2lwdjQvdGNwX2RjdGNwLmMKQEAgLTY2LDExICs2Niw2IEBAIHN0 YXRpYyB1bnNpZ25lZCBpbnQgZGN0Y3BfYWxwaGFfb25faW5pdCBfX3JlYWRfbW9zdGx5ID0gRENU Q1BfTUFYX0FMUEhBOwogbW9kdWxlX3BhcmFtKGRjdGNwX2FscGhhX29uX2luaXQsIHVpbnQsIDA2 NDQpOwogTU9EVUxFX1BBUk1fREVTQyhkY3RjcF9hbHBoYV9vbl9pbml0LCAicGFyYW1ldGVyIGZv ciBpbml0aWFsIGFscGhhIHZhbHVlIik7CiAKLXN0YXRpYyB1bnNpZ25lZCBpbnQgZGN0Y3BfY2xh bXBfYWxwaGFfb25fbG9zcyBfX3JlYWRfbW9zdGx5OwotbW9kdWxlX3BhcmFtKGRjdGNwX2NsYW1w X2FscGhhX29uX2xvc3MsIHVpbnQsIDA2NDQpOwotTU9EVUxFX1BBUk1fREVTQyhkY3RjcF9jbGFt cF9hbHBoYV9vbl9sb3NzLAotCQkgInBhcmFtZXRlciBmb3IgY2xhbXBpbmcgYWxwaGEgb24gbG9z cyIpOwotCiBzdGF0aWMgc3RydWN0IHRjcF9jb25nZXN0aW9uX29wcyBkY3RjcF9yZW5vOwogCiBz dGF0aWMgdm9pZCBkY3RjcF9yZXNldChjb25zdCBzdHJ1Y3QgdGNwX3NvY2sgKnRwLCBzdHJ1Y3Qg ZGN0Y3AgKmNhKQpAQCAtMjExLDIxICsyMDYsMjMgQEAgc3RhdGljIHZvaWQgZGN0Y3BfdXBkYXRl X2FscGhhKHN0cnVjdCBzb2NrICpzaywgdTMyIGZsYWdzKQogCX0KIH0KIAotc3RhdGljIHZvaWQg ZGN0Y3Bfc3RhdGUoc3RydWN0IHNvY2sgKnNrLCB1OCBuZXdfc3RhdGUpCitzdGF0aWMgdm9pZCBk Y3RjcF9yZWFjdF90b19sb3NzKHN0cnVjdCBzb2NrICpzaykKIHsKLQlpZiAoZGN0Y3BfY2xhbXBf YWxwaGFfb25fbG9zcyAmJiBuZXdfc3RhdGUgPT0gVENQX0NBX0xvc3MpIHsKLQkJc3RydWN0IGRj dGNwICpjYSA9IGluZXRfY3NrX2NhKHNrKTsKKwlzdHJ1Y3QgZGN0Y3AgKmNhID0gaW5ldF9jc2tf Y2Eoc2spOworCXN0cnVjdCB0Y3Bfc29jayAqdHAgPSB0Y3Bfc2soc2spOwogCi0JCS8qIElmIHRo aXMgZXh0ZW5zaW9uIGlzIGVuYWJsZWQsIHdlIGNsYW1wIGRjdGNwX2FscGhhIHRvCi0JCSAqIG1h eCBvbiBwYWNrZXQgbG9zczsgdGhlIG1vdGl2YXRpb24gaXMgdGhhdCBkY3RjcF9hbHBoYQotCQkg KiBpcyBhbiBpbmRpY2F0b3IgdG8gdGhlIGV4dGVuZCBvZiBjb25nZXN0aW9uIGFuZCBwYWNrZXQK LQkJICogbG9zcyBpcyBhbiBpbmRpY2F0b3Igb2YgZXh0cmVtZSBjb25nZXN0aW9uOyBzZXR0aW5n Ci0JCSAqIHRoaXMgaW4gcHJhY3RpY2UgdHVybmVkIG91dCB0byBiZSBiZW5lZmljaWFsLCBhbmQK LQkJICogZWZmZWN0aXZlbHkgYXNzdW1lcyB0b3RhbCBjb25nZXN0aW9uIHdoaWNoIHJlZHVjZXMg dGhlCi0JCSAqIHdpbmRvdyBieSBoYWxmLgotCQkgKi8KLQkJY2EtPmRjdGNwX2FscGhhID0gRENU Q1BfTUFYX0FMUEhBOwotCX0KKwljYS0+bG9zc19jd25kID0gdHAtPnNuZF9jd25kOworCXRwLT5z bmRfc3N0aHJlc2ggPSBtYXgodHAtPnNuZF9jd25kID4+IDFVLCAyVSk7Cit9CisKK3N0YXRpYyB2 b2lkIGRjdGNwX3N0YXRlKHN0cnVjdCBzb2NrICpzaywgdTggbmV3X3N0YXRlKQoreworCWlmIChu ZXdfc3RhdGUgPT0gVENQX0NBX1JlY292ZXJ5ICYmCisJICAgIG5ld19zdGF0ZSAhPSBpbmV0X2Nz ayhzayktPmljc2tfY2Ffc3RhdGUpCisJCWRjdGNwX3JlYWN0X3RvX2xvc3Moc2spOworCS8qIFdl IGhhbmRsZSBSVE8gaW4gZGN0Y3BfY3duZF9ldmVudCB0byBlbnN1cmUgdGhhdCB3ZSBwZXJmb3Jt IG9ubHkKKwkgKiBvbmUgbG9zcy1hZGp1c3RtZW50IHBlciBSVFQuCisJICovCiB9CiAKIHN0YXRp YyB2b2lkIGRjdGNwX2N3bmRfZXZlbnQoc3RydWN0IHNvY2sgKnNrLCBlbnVtIHRjcF9jYV9ldmVu dCBldikKQEAgLTIzNyw2ICsyMzQsOSBAQCBzdGF0aWMgdm9pZCBkY3RjcF9jd25kX2V2ZW50KHN0 cnVjdCBzb2NrICpzaywgZW51bSB0Y3BfY2FfZXZlbnQgZXYpCiAJY2FzZSBDQV9FVkVOVF9FQ05f Tk9fQ0U6CiAJCWRjdGNwX2NlX3N0YXRlXzFfdG9fMChzayk7CiAJCWJyZWFrOworCWNhc2UgQ0Ff RVZFTlRfTE9TUzoKKwkJZGN0Y3BfcmVhY3RfdG9fbG9zcyhzayk7CisJCWJyZWFrOwogCWRlZmF1 bHQ6CiAJCS8qIERvbid0IGNhcmUgZm9yIHRoZSByZXN0LiAqLwogCQlicmVhazsKLS0gCjIuMjAu MQoKCkZyb20gZjYwNzM3M2FkNDI5N2RmNDhiN2U5OThhMGUyNjFlMjY4MDVkZTkzOSBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRHVzdCBMaSA8ZHVzdC5saUBsaW51eC5hbGliYWJhLmNv bT4KRGF0ZTogTW9uLCAxIEFwciAyMDE5IDE2OjA0OjUzICswODAwClN1YmplY3Q6IFtQQVRDSCAx OS8zM10gdGNwOiBmaXggYSBwb3RlbnRpYWwgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlIGluCiB0 Y3Bfc2tfZXhpdAoKWyBVcHN0cmVhbSBjb21taXQgYjUwNmJjOTc1ZjYwZjA2ZTEzZTc0YWRiMzVl NzA4YTIzZGM0ZTg3YyBdCgogV2hlbiB0Y3Bfc2tfaW5pdCgpIGZhaWxlZCBpbiBpbmV0X2N0bF9z b2NrX2NyZWF0ZSgpLAogJ25ldC0+aXB2NC50Y3BfY29uZ2VzdGlvbl9jb250cm9sJyB3aWxsIGJl IGxlZnQKIHVuaW5pdGlhbGl6ZWQsIGJ1dCB0Y3Bfc2tfZXhpdCgpIGhhc24ndCBjaGVjayBmb3IK IHRoYXQuCgogVGhpcyBwYXRjaCBhZGQgY2hlY2tpbmcgb24gJ25ldC0+aXB2NC50Y3BfY29uZ2Vz dGlvbl9jb250cm9sJwogaW4gdGNwX3NrX2V4aXQoKSB0byBwcmV2ZW50IE5VTEwtcHRyIGRlcmVm ZXJlbmNlLgoKRml4ZXM6IDY2NzBlMTUyNDQ3NyAoInRjcDogTmFtZXNwYWNlLWlmeSBzeXNjdGxf dGNwX2RlZmF1bHRfY29uZ2VzdGlvbl9jb250cm9sIikKU2lnbmVkLW9mZi1ieTogRHVzdCBMaSA8 ZHVzdC5saUBsaW51eC5hbGliYWJhLmNvbT4KU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxl ZHVtYXpldEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVt QGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjQvdGNwX2lwdjQuYyB8IDMgKystCiAxIGZpbGUg Y2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0 L2lwdjQvdGNwX2lwdjQuYyBiL25ldC9pcHY0L3RjcF9pcHY0LmMKaW5kZXggMzBmZGY4OTE5NDBi Li4xMTEwMWNmODY5M2IgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3RjcF9pcHY0LmMKKysrIGIvbmV0 L2lwdjQvdGNwX2lwdjQuYwpAQCAtMjQ5MCw3ICsyNDkwLDggQEAgc3RhdGljIHZvaWQgX19uZXRf ZXhpdCB0Y3Bfc2tfZXhpdChzdHJ1Y3QgbmV0ICpuZXQpCiB7CiAJaW50IGNwdTsKIAotCW1vZHVs ZV9wdXQobmV0LT5pcHY0LnRjcF9jb25nZXN0aW9uX2NvbnRyb2wtPm93bmVyKTsKKwlpZiAobmV0 LT5pcHY0LnRjcF9jb25nZXN0aW9uX2NvbnRyb2wpCisJCW1vZHVsZV9wdXQobmV0LT5pcHY0LnRj cF9jb25nZXN0aW9uX2NvbnRyb2wtPm93bmVyKTsKIAogCWZvcl9lYWNoX3Bvc3NpYmxlX2NwdShj cHUpCiAJCWluZXRfY3RsX3NvY2tfZGVzdHJveSgqcGVyX2NwdV9wdHIobmV0LT5pcHY0LnRjcF9z aywgY3B1KSk7Ci0tIAoyLjIwLjEKCgpGcm9tIDg0ZjYwYzYxNjc4OGU0ZmUyZWU1MThiMGZiZjJj ZTVhZmUxYWM4MDAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFN0ZXBoZW4gU3VyeWFw dXRyYSA8c3N1cnlhZXh0ckBnbWFpbC5jb20+CkRhdGU6IE1vbiwgMSBBcHIgMjAxOSAwOToxNzoz MiAtMDQwMApTdWJqZWN0OiBbUEFUQ0ggMjAvMzNdIHZyZjogY2hlY2sgYWNjZXB0X3NvdXJjZV9y b3V0ZSBvbiB0aGUgb3JpZ2luYWwKIG5ldGRldmljZQoKWyBVcHN0cmVhbSBjb21taXQgOGM4M2Yy ZGY5YzY1NzhlYTRjNWI5NDBkODIzOGFkOGE0MWI4N2U5ZSBdCgpDb25maWd1cmF0aW9uIGNoZWNr IHRvIGFjY2VwdCBzb3VyY2Ugcm91dGUgSVAgb3B0aW9ucyBzaG91bGQgYmUgbWFkZSBvbgp0aGUg aW5jb21pbmcgbmV0ZGV2aWNlIHdoZW4gdGhlIHNrYi0+ZGV2IGlzIGFuIGwzbWRldiBtYXN0ZXIu IFRoZSByb3V0ZQpsb29rdXAgZm9yIHRoZSBzb3VyY2Ugcm91dGUgbmV4dCBob3AgYWxzbyBuZWVk cyB0aGUgaW5jb21pbmcgbmV0ZGV2LgoKdjItPnYzOgotIFNpbXBsaWZ5IGJ5IHBhc3NpbmcgdGhl IG9yaWdpbmFsIG5ldGRldmljZSBkb3duIHRoZSBzdGFjayAocGVyIERhdmlkCiAgQWhlcm4pLgoK U2lnbmVkLW9mZi1ieTogU3RlcGhlbiBTdXJ5YXB1dHJhIDxzc3VyeWFleHRyQGdtYWlsLmNvbT4K UmV2aWV3ZWQtYnk6IERhdmlkIEFoZXJuIDxkc2FoZXJuQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1i eTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGluY2x1ZGUvbmV0 L2lwLmggICAgICB8IDIgKy0KIG5ldC9pcHY0L2lwX2lucHV0LmMgICB8IDcgKysrLS0tLQogbmV0 L2lwdjQvaXBfb3B0aW9ucy5jIHwgNCArKy0tCiAzIGZpbGVzIGNoYW5nZWQsIDYgaW5zZXJ0aW9u cygrKSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9pcC5oIGIvaW5j bHVkZS9uZXQvaXAuaAppbmRleCA3MWQzMWU0ZDQzOTEuLmNmYzNkZDVmZjA4NSAxMDA2NDQKLS0t IGEvaW5jbHVkZS9uZXQvaXAuaAorKysgYi9pbmNsdWRlL25ldC9pcC5oCkBAIC02NDgsNyArNjQ4 LDcgQEAgaW50IGlwX29wdGlvbnNfZ2V0X2Zyb21fdXNlcihzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVj dCBpcF9vcHRpb25zX3JjdSAqKm9wdHAsCiAJCQkgICAgIHVuc2lnbmVkIGNoYXIgX191c2VyICpk YXRhLCBpbnQgb3B0bGVuKTsKIHZvaWQgaXBfb3B0aW9uc191bmRvKHN0cnVjdCBpcF9vcHRpb25z ICpvcHQpOwogdm9pZCBpcF9mb3J3YXJkX29wdGlvbnMoc3RydWN0IHNrX2J1ZmYgKnNrYik7Ci1p bnQgaXBfb3B0aW9uc19yY3Zfc3JyKHN0cnVjdCBza19idWZmICpza2IpOworaW50IGlwX29wdGlv bnNfcmN2X3NycihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KTsK IAogLyoKICAqCUZ1bmN0aW9ucyBwcm92aWRlZCBieSBpcF9zb2NrZ2x1ZS5jCmRpZmYgLS1naXQg YS9uZXQvaXB2NC9pcF9pbnB1dC5jIGIvbmV0L2lwdjQvaXBfaW5wdXQuYwppbmRleCBiZDhlZjRm ODdjNzkuLmMzYTA2ODNlODNkZiAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvaXBfaW5wdXQuYworKysg Yi9uZXQvaXB2NC9pcF9pbnB1dC5jCkBAIC0yNTgsMTEgKzI1OCwxMCBAQCBpbnQgaXBfbG9jYWxf ZGVsaXZlcihzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCQkgICAgICAgaXBfbG9jYWxfZGVsaXZlcl9m aW5pc2gpOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgaXBfcmN2X29wdGlvbnMoc3RydWN0IHNr X2J1ZmYgKnNrYikKK3N0YXRpYyBpbmxpbmUgYm9vbCBpcF9yY3Zfb3B0aW9ucyhzdHJ1Y3Qgc2tf YnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogewogCXN0cnVjdCBpcF9vcHRpb25z ICpvcHQ7CiAJY29uc3Qgc3RydWN0IGlwaGRyICppcGg7Ci0Jc3RydWN0IG5ldF9kZXZpY2UgKmRl diA9IHNrYi0+ZGV2OwogCiAJLyogSXQgbG9va3MgYXMgb3ZlcmtpbGwsIGJlY2F1c2Ugbm90IGFs bAogCSAgIElQIG9wdGlvbnMgcmVxdWlyZSBwYWNrZXQgbWFuZ2xpbmcuCkBAIC0yOTgsNyArMjk3 LDcgQEAgc3RhdGljIGlubGluZSBib29sIGlwX3Jjdl9vcHRpb25zKHN0cnVjdCBza19idWZmICpz a2IpCiAJCQl9CiAJCX0KIAotCQlpZiAoaXBfb3B0aW9uc19yY3Zfc3JyKHNrYikpCisJCWlmIChp cF9vcHRpb25zX3Jjdl9zcnIoc2tiLCBkZXYpKQogCQkJZ290byBkcm9wOwogCX0KIApAQCAtMzU0 LDcgKzM1Myw3IEBAIHN0YXRpYyBpbnQgaXBfcmN2X2ZpbmlzaF9jb3JlKHN0cnVjdCBuZXQgKm5l dCwgc3RydWN0IHNvY2sgKnNrLAogCX0KICNlbmRpZgogCi0JaWYgKGlwaC0+aWhsID4gNSAmJiBp cF9yY3Zfb3B0aW9ucyhza2IpKQorCWlmIChpcGgtPmlobCA+IDUgJiYgaXBfcmN2X29wdGlvbnMo c2tiLCBkZXYpKQogCQlnb3RvIGRyb3A7CiAKIAlydCA9IHNrYl9ydGFibGUoc2tiKTsKZGlmZiAt LWdpdCBhL25ldC9pcHY0L2lwX29wdGlvbnMuYyBiL25ldC9pcHY0L2lwX29wdGlvbnMuYwppbmRl eCAzMmEzNTA0M2M5ZjUuLjNkYjMxYmI5ZGY1MCAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvaXBfb3B0 aW9ucy5jCisrKyBiL25ldC9pcHY0L2lwX29wdGlvbnMuYwpAQCAtNjEyLDcgKzYxMiw3IEBAIHZv aWQgaXBfZm9yd2FyZF9vcHRpb25zKHN0cnVjdCBza19idWZmICpza2IpCiAJfQogfQogCi1pbnQg aXBfb3B0aW9uc19yY3Zfc3JyKHN0cnVjdCBza19idWZmICpza2IpCitpbnQgaXBfb3B0aW9uc19y Y3Zfc3JyKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiB7CiAJ c3RydWN0IGlwX29wdGlvbnMgKm9wdCA9ICYoSVBDQihza2IpLT5vcHQpOwogCWludCBzcnJzcGFj ZSwgc3JycHRyOwpAQCAtNjQ3LDcgKzY0Nyw3IEBAIGludCBpcF9vcHRpb25zX3Jjdl9zcnIoc3Ry dWN0IHNrX2J1ZmYgKnNrYikKIAogCQlvcmVmZHN0ID0gc2tiLT5fc2tiX3JlZmRzdDsKIAkJc2ti X2RzdF9zZXQoc2tiLCBOVUxMKTsKLQkJZXJyID0gaXBfcm91dGVfaW5wdXQoc2tiLCBuZXh0aG9w LCBpcGgtPnNhZGRyLCBpcGgtPnRvcywgc2tiLT5kZXYpOworCQllcnIgPSBpcF9yb3V0ZV9pbnB1 dChza2IsIG5leHRob3AsIGlwaC0+c2FkZHIsIGlwaC0+dG9zLCBkZXYpOwogCQlydDIgPSBza2Jf cnRhYmxlKHNrYik7CiAJCWlmIChlcnIgfHwgKHJ0Mi0+cnRfdHlwZSAhPSBSVE5fVU5JQ0FTVCAm JiBydDItPnJ0X3R5cGUgIT0gUlROX0xPQ0FMKSkgewogCQkJc2tiX2RzdF9kcm9wKHNrYik7Ci0t IAoyLjIwLjEKCgpGcm9tIDgzMjA0YjA2OTE2MTJkOWUxOTdiZGVjZjdiMjI5YjFhYjNlOTYwZGYg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEdhdmkgVGVpdHogPGdhdmlAbWVsbGFub3gu Y29tPgpEYXRlOiBNb24sIDExIE1hciAyMDE5IDExOjU2OjM0ICswMjAwClN1YmplY3Q6IFtQQVRD SCAyMS8zM10gbmV0L21seDVlOiBGaXggZXJyb3IgaGFuZGxpbmcgd2hlbiByZWZyZXNoaW5nIFRJ UnMKClsgVXBzdHJlYW0gY29tbWl0IGJjODdhMDAzNjgyNmEzN2I0MzQ4OWIwMjlhZjgxNDNiZDA3 YzZjY2EgXQoKUHJldmlvdXNseSwgYSBmYWxzZSBwb3NpdGl2ZSB3b3VsZCBiZSBjYXVnaHQgaWYg dGhlIFRJUnMgbGlzdCBpcwplbXB0eSwgc2luY2UgdGhlIGVyciB2YWx1ZSB3YXMgaW5pdGlhbGl6 ZWQgdG8gLUVOT01FTSwgYW5kIHdhcyBvbmx5CnVwZGF0ZWQgaWYgYSBUSVIgaXMgcmVmcmVzaGVk LiBUaGlzIGlzIHJlc29sdmVkIGJ5IGluaXRpYWxpemluZyB0aGUKZXJyIHZhbHVlIHRvIHplcm8u CgpGaXhlczogYjY3NmY2NTM4OTZhICgibmV0L21seDVlOiBSZWZhY3RvciByZWZyZXNoIFRJUnMi KQpTaWduZWQtb2ZmLWJ5OiBHYXZpIFRlaXR6IDxnYXZpQG1lbGxhbm94LmNvbT4KUmV2aWV3ZWQt Ynk6IFJvaSBEYXlhbiA8cm9pZEBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IFNhZWVkIE1h aGFtZWVkIDxzYWVlZG1AbWVsbGFub3guY29tPgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21l bGxhbm94L21seDUvY29yZS9lbl9jb21tb24uYyB8IDYgKysrKy0tCiAxIGZpbGUgY2hhbmdlZCwg NCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0 L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9jb21tb24uYyBiL2RyaXZlcnMvbmV0L2V0 aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9jb21tb24uYwppbmRleCBkYjMyNzhjYzA1MmIu LjFlMjg4NjZlMzkyNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gv bWx4NS9jb3JlL2VuX2NvbW1vbi5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94 L21seDUvY29yZS9lbl9jb21tb24uYwpAQCAtMTQxLDE1ICsxNDEsMTcgQEAgaW50IG1seDVlX3Jl ZnJlc2hfdGlycyhzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdiwgYm9vbCBlbmFibGVfdWNfbGIpCiB7 CiAJc3RydWN0IG1seDVfY29yZV9kZXYgKm1kZXYgPSBwcml2LT5tZGV2OwogCXN0cnVjdCBtbHg1 ZV90aXIgKnRpcjsKLQlpbnQgZXJyICA9IC1FTk9NRU07CisJaW50IGVyciAgPSAwOwogCXUzMiB0 aXJuID0gMDsKIAlpbnQgaW5sZW47CiAJdm9pZCAqaW47CiAKIAlpbmxlbiA9IE1MWDVfU1RfU1pf QllURVMobW9kaWZ5X3Rpcl9pbik7CiAJaW4gPSBrdnphbGxvYyhpbmxlbiwgR0ZQX0tFUk5FTCk7 Ci0JaWYgKCFpbikKKwlpZiAoIWluKSB7CisJCWVyciA9IC1FTk9NRU07CiAJCWdvdG8gb3V0Owor CX0KIAogCWlmIChlbmFibGVfdWNfbGIpCiAJCU1MWDVfU0VUKG1vZGlmeV90aXJfaW4sIGluLCBj dHguc2VsZl9sYl9ibG9jaywKLS0gCjIuMjAuMQoKCkZyb20gYmVhNGIwNmVmOGFhYTAwMjA4MTli OTcyZGM2OTY0MzdiYjYyNDU2NyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogWXV2YWwg QXZuZXJ5IDx5dXZhbGF2QG1lbGxhbm94LmNvbT4KRGF0ZTogTW9uLCAxMSBNYXIgMjAxOSAwNjox ODoyNCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMjIvMzNdIG5ldC9tbHg1ZTogQWRkIGEgbG9jayBv biB0aXIgbGlzdAoKWyBVcHN0cmVhbSBjb21taXQgODBhMmE5MDI2YjI0YzZiZDM0YjhkNTgyNTY5 NzNlMjIyNzBiZWRlYyBdCgpSZWZyZXNoIHRpcnMgaXMgbG9vcGluZyBvdmVyIGEgZ2xvYmFsIGxp c3Qgb2YgdGlycyB3aGlsZSBuZXRkZXZzIGFyZQphZGRpbmcgYW5kIHJlbW92aW5nIHRpcnMgZnJv bSB0aGF0IGxpc3QuIFRoYXQgaXMgd2h5IGEgbG9jayBpcwpyZXF1aXJlZC4KCkZpeGVzOiA3MjRi MmFhMTUxMjYgKCJuZXQvbWx4NWU6IFRJUnMgbWFuYWdlbWVudCByZWZhY3RvcmluZyIpClNpZ25l ZC1vZmYtYnk6IFl1dmFsIEF2bmVyeSA8eXV2YWxhdkBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYt Ynk6IFNhZWVkIE1haGFtZWVkIDxzYWVlZG1AbWVsbGFub3guY29tPgotLS0KIGRyaXZlcnMvbmV0 L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9jb21tb24uYyB8IDcgKysrKysrKwogaW5j bHVkZS9saW51eC9tbHg1L2RyaXZlci5oICAgICAgICAgICAgICAgICAgICAgICAgIHwgMiArKwog MiBmaWxlcyBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25l dC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fY29tbW9uLmMgYi9kcml2ZXJzL25ldC9l dGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fY29tbW9uLmMKaW5kZXggMWUyODg2NmUzOTI0 Li4xMjRlNDU2N2E0ZWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94 L21seDUvY29yZS9lbl9jb21tb24uYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5v eC9tbHg1L2NvcmUvZW5fY29tbW9uLmMKQEAgLTQ1LDcgKzQ1LDkgQEAgaW50IG1seDVlX2NyZWF0 ZV90aXIoc3RydWN0IG1seDVfY29yZV9kZXYgKm1kZXYsCiAJaWYgKGVycikKIAkJcmV0dXJuIGVy cjsKIAorCW11dGV4X2xvY2soJm1kZXYtPm1seDVlX3Jlcy50ZC5saXN0X2xvY2spOwogCWxpc3Rf YWRkKCZ0aXItPmxpc3QsICZtZGV2LT5tbHg1ZV9yZXMudGQudGlyc19saXN0KTsKKwltdXRleF91 bmxvY2soJm1kZXYtPm1seDVlX3Jlcy50ZC5saXN0X2xvY2spOwogCiAJcmV0dXJuIDA7CiB9CkBA IC01Myw4ICs1NSwxMCBAQCBpbnQgbWx4NWVfY3JlYXRlX3RpcihzdHJ1Y3QgbWx4NV9jb3JlX2Rl diAqbWRldiwKIHZvaWQgbWx4NWVfZGVzdHJveV90aXIoc3RydWN0IG1seDVfY29yZV9kZXYgKm1k ZXYsCiAJCSAgICAgICBzdHJ1Y3QgbWx4NWVfdGlyICp0aXIpCiB7CisJbXV0ZXhfbG9jaygmbWRl di0+bWx4NWVfcmVzLnRkLmxpc3RfbG9jayk7CiAJbWx4NV9jb3JlX2Rlc3Ryb3lfdGlyKG1kZXYs IHRpci0+dGlybik7CiAJbGlzdF9kZWwoJnRpci0+bGlzdCk7CisJbXV0ZXhfdW5sb2NrKCZtZGV2 LT5tbHg1ZV9yZXMudGQubGlzdF9sb2NrKTsKIH0KIAogc3RhdGljIGludCBtbHg1ZV9jcmVhdGVf bWtleShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqbWRldiwgdTMyIHBkbiwKQEAgLTExNCw2ICsxMTgs NyBAQCBpbnQgbWx4NWVfY3JlYXRlX21kZXZfcmVzb3VyY2VzKHN0cnVjdCBtbHg1X2NvcmVfZGV2 ICptZGV2KQogCX0KIAogCUlOSVRfTElTVF9IRUFEKCZtZGV2LT5tbHg1ZV9yZXMudGQudGlyc19s aXN0KTsKKwltdXRleF9pbml0KCZtZGV2LT5tbHg1ZV9yZXMudGQubGlzdF9sb2NrKTsKIAogCXJl dHVybiAwOwogCkBAIC0xNTksNiArMTY0LDcgQEAgaW50IG1seDVlX3JlZnJlc2hfdGlycyhzdHJ1 Y3QgbWx4NWVfcHJpdiAqcHJpdiwgYm9vbCBlbmFibGVfdWNfbGIpCiAKIAlNTFg1X1NFVChtb2Rp ZnlfdGlyX2luLCBpbiwgYml0bWFzay5zZWxmX2xiX2VuLCAxKTsKIAorCW11dGV4X2xvY2soJm1k ZXYtPm1seDVlX3Jlcy50ZC5saXN0X2xvY2spOwogCWxpc3RfZm9yX2VhY2hfZW50cnkodGlyLCAm bWRldi0+bWx4NWVfcmVzLnRkLnRpcnNfbGlzdCwgbGlzdCkgewogCQl0aXJuID0gdGlyLT50aXJu OwogCQllcnIgPSBtbHg1X2NvcmVfbW9kaWZ5X3RpcihtZGV2LCB0aXJuLCBpbiwgaW5sZW4pOwpA QCAtMTcwLDYgKzE3Niw3IEBAIGludCBtbHg1ZV9yZWZyZXNoX3RpcnMoc3RydWN0IG1seDVlX3By aXYgKnByaXYsIGJvb2wgZW5hYmxlX3VjX2xiKQogCWt2ZnJlZShpbik7CiAJaWYgKGVycikKIAkJ bmV0ZGV2X2Vycihwcml2LT5uZXRkZXYsICJyZWZyZXNoIHRpcigweCV4KSBmYWlsZWQsICVkXG4i LCB0aXJuLCBlcnIpOworCW11dGV4X3VubG9jaygmbWRldi0+bWx4NWVfcmVzLnRkLmxpc3RfbG9j ayk7CiAKIAlyZXR1cm4gZXJyOwogfQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9tbHg1L2Ry aXZlci5oIGIvaW5jbHVkZS9saW51eC9tbHg1L2RyaXZlci5oCmluZGV4IGJiY2ZlMmU1ZmQ5MS4u ZThiOTJkZWU1YTcyIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L21seDUvZHJpdmVyLmgKKysr IGIvaW5jbHVkZS9saW51eC9tbHg1L2RyaXZlci5oCkBAIC03NzYsNiArNzc2LDggQEAgc3RydWN0 IG1seDVfcGFnZWZhdWx0IHsKIH07CiAKIHN0cnVjdCBtbHg1X3RkIHsKKwkvKiBwcm90ZWN0cyB0 aXJzIGxpc3QgY2hhbmdlcyB3aGlsZSB0aXJzIHJlZnJlc2ggKi8KKwlzdHJ1Y3QgbXV0ZXggICAg IGxpc3RfbG9jazsKIAlzdHJ1Y3QgbGlzdF9oZWFkIHRpcnNfbGlzdDsKIAl1MzIgICAgICAgICAg ICAgIHRkbjsKIH07Ci0tIAoyLjIwLjEKCgpGcm9tIDc3NTY0NTY3NmRkZjE2YzhmODU2YWUzMzM0 ZDExY2Y4OWNmMGM3ZjcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEpha3ViIEtpY2lu c2tpIDxqYWt1Yi5raWNpbnNraUBuZXRyb25vbWUuY29tPgpEYXRlOiBXZWQsIDI3IE1hciAyMDE5 IDExOjM4OjM4IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAyMy8zM10gbmZwOiB2YWxpZGF0ZSB0aGUg cmV0dXJuIGNvZGUgZnJvbSBkZXZfcXVldWVfeG1pdCgpCgpbIFVwc3RyZWFtIGNvbW1pdCBjOGJh NWI5MWEwNGUzZTI2NDNlNDg1MDFjMTE0MTA4ODAyZjIxY2RhIF0KCmRldl9xdWV1ZV94bWl0KCkg bWF5IHJldHVybiBlcnJvciBjb2RlcyBhcyB3ZWxsIGFzIG5ldGRldl90eF90LAphbmQgaXQgYWx3 YXlzIGNvbnN1bWVzIHRoZSBza2IuICBNYWtlIHN1cmUgd2UgYWx3YXlzIHJldHVybiBhCmNvcnJl Y3QgbmV0ZGV2X3R4X3QgdmFsdWUuCgpGaXhlczogZWFkZmE0YzNiZTk5ICgibmZwOiBhZGQgc3Rh dHMgYW5kIHhtaXQgaGVscGVycyBmb3IgcmVwcmVzZW50b3JzIikKU2lnbmVkLW9mZi1ieTogSmFr dWIgS2ljaW5za2kgPGpha3ViLmtpY2luc2tpQG5ldHJvbm9tZS5jb20+ClJldmlld2VkLWJ5OiBK b2huIEh1cmxleSA8am9obi5odXJsZXlAbmV0cm9ub21lLmNvbT4KUmV2aWV3ZWQtYnk6IFNpbW9u IEhvcm1hbiA8c2ltb24uaG9ybWFuQG5ldHJvbm9tZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5l dC9uZXRyb25vbWUvbmZwL25mcF9uZXRfcmVwci5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEg aW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRo ZXJuZXQvbmV0cm9ub21lL25mcC9uZnBfbmV0X3JlcHIuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0 L25ldHJvbm9tZS9uZnAvbmZwX25ldF9yZXByLmMKaW5kZXggMThhMDljZGNkOWM2Li5lMGQ3M2Iz ODU1NjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L25ldHJvbm9tZS9uZnAvbmZw X25ldF9yZXByLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbmV0cm9ub21lL25mcC9uZnBf bmV0X3JlcHIuYwpAQCAtMjI1LDcgKzIyNSw3IEBAIHN0YXRpYyBuZXRkZXZfdHhfdCBuZnBfcmVw cl94bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpCiAJ cmV0ID0gZGV2X3F1ZXVlX3htaXQoc2tiKTsKIAluZnBfcmVwcl9pbmNfdHhfc3RhdHMobmV0ZGV2 LCBsZW4sIHJldCk7CiAKLQlyZXR1cm4gcmV0OworCXJldHVybiBORVRERVZfVFhfT0s7CiB9CiAK IHN0YXRpYyBpbnQgbmZwX3JlcHJfc3RvcChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KQotLSAK Mi4yMC4xCgoKRnJvbSA0OGNkNjJiZDQ0NDZiNWM3YTMzYWM1YmQyZDU3NTNiZWFjNzNkNDBlIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKYWt1YiBLaWNpbnNraSA8amFrdWIua2ljaW5z a2lAbmV0cm9ub21lLmNvbT4KRGF0ZTogV2VkLCAyNyBNYXIgMjAxOSAxMTozODozOSAtMDcwMApT dWJqZWN0OiBbUEFUQ0ggMjQvMzNdIG5mcDogZGlzYWJsZSBuZXRwb2xsIG9uIHJlcHJlc2VudG9y cwoKWyBVcHN0cmVhbSBjb21taXQgYzNlMWY3ZmZmNjljNzgxNjljOGFjNDBjYzc0YWM0MzA3Zjc0 ZTM2ZCBdCgpORlAgcmVwcnMgYXJlIHNvZnR3YXJlIGRldmljZSBvbiB0b3Agb2YgdGhlIFBGJ3Mg dk5JQy4KVGhlIGNvbW1lbnQgYWJvdmUgX19kZXZfcXVldWVfeG1pdCgpIHNheWV0aDoKCiBXaGVu IGNhbGxpbmcgdGhpcyBtZXRob2QsIGludGVycnVwdHMgTVVTVCBiZSBlbmFibGVkLiAgVGhpcyBp cyBiZWNhdXNlCiB0aGUgQkggZW5hYmxlIGNvZGUgbXVzdCBoYXZlIElSUXMgZW5hYmxlZCBzbyB0 aGF0IGl0IHdpbGwgbm90IGRlYWRsb2NrLgoKRm9yIG5ldGNvbnNvbGUgd2UgY2FuJ3QgZ3VhcmFu dGVlIElSUSBzdGF0ZSwgbGV0J3MganVzdApkaXNhYmxlIG5ldHBvbGwgb24gcmVwcmVzZW50b3Jz IHRvIGJlIG9uIHRoZSBzYWZlIHNpZGUuCgpXaGVuIHRoZSBpbml0aWFsIGltcGxlbWVudGF0aW9u IG9mIE5GUCByZXBycyB3YXMgYWRkZWQgYnkgdGhlCmNvbW1pdCA1ZGU3M2VlNDY3MDQgKCJuZnA6 IGdlbmVyYWwgcmVwcmVzZW50b3IgaW1wbGVtZW50YXRpb24iKQoubmRvX3BvbGxfY29udHJvbGxl ciB3YXMgcmVxdWlyZWQgZm9yIG5ldHBvbGwgdG8gYmUgZW5hYmxlZC4KCkZpeGVzOiBhYzNkOWRk MDM0ZTUgKCJuZXRwb2xsOiBtYWtlIG5kb19wb2xsX2NvbnRyb2xsZXIoKSBvcHRpb25hbCIpClNp Z25lZC1vZmYtYnk6IEpha3ViIEtpY2luc2tpIDxqYWt1Yi5raWNpbnNraUBuZXRyb25vbWUuY29t PgpSZXZpZXdlZC1ieTogSm9obiBIdXJsZXkgPGpvaG4uaHVybGV5QG5ldHJvbm9tZS5jb20+ClJl dmlld2VkLWJ5OiBTaW1vbiBIb3JtYW4gPHNpbW9uLmhvcm1hbkBuZXRyb25vbWUuY29tPgpTaWdu ZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJp dmVycy9uZXQvZXRoZXJuZXQvbmV0cm9ub21lL25mcC9uZnBfbmV0X3JlcHIuYyB8IDIgKysKIDEg ZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9l dGhlcm5ldC9uZXRyb25vbWUvbmZwL25mcF9uZXRfcmVwci5jIGIvZHJpdmVycy9uZXQvZXRoZXJu ZXQvbmV0cm9ub21lL25mcC9uZnBfbmV0X3JlcHIuYwppbmRleCBlMGQ3M2IzODU1NjMuLmFhNTg2 OWViMmUzZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbmV0cm9ub21lL25mcC9u ZnBfbmV0X3JlcHIuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9uZXRyb25vbWUvbmZwL25m cF9uZXRfcmVwci5jCkBAIC0zMjksNiArMzI5LDggQEAgaW50IG5mcF9yZXByX2luaXQoc3RydWN0 IG5mcF9hcHAgKmFwcCwgc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldiwKIAogCVNXSVRDSERFVl9T RVRfT1BTKG5ldGRldiwgJm5mcF9wb3J0X3N3aXRjaGRldl9vcHMpOwogCisJbmV0ZGV2LT5wcml2 X2ZsYWdzIHw9IElGRl9ESVNBQkxFX05FVFBPTEw7CisKIAlpZiAobmZwX2FwcF9oYXNfdGMoYXBw KSkgewogCQluZXRkZXYtPmZlYXR1cmVzIHw9IE5FVElGX0ZfSFdfVEM7CiAJCW5ldGRldi0+aHdf ZmVhdHVyZXMgfD0gTkVUSUZfRl9IV19UQzsKLS0gCjIuMjAuMQoKCkZyb20gNzYyYmMxNGRkYWZm NDY3Mjg5MDlhOWJhZTBkZjQwYzM3MWI3YjkwOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogTWljaGFlbCBDaGFuIDxtaWNoYWVsLmNoYW5AYnJvYWRjb20uY29tPgpEYXRlOiBNb24sIDgg QXByIDIwMTkgMTc6Mzk6NTQgLTA0MDAKU3ViamVjdDogW1BBVENIIDI1LzMzXSBibnh0X2VuOiBJ bXByb3ZlIFJYIGNvbnN1bWVyIGluZGV4IHZhbGlkaXR5IGNoZWNrLgoKWyBVcHN0cmVhbSBjb21t aXQgYTFiMGU0ZTY4NGU5YzMwMGI5ZTc1OWI0NmNiN2EwMTQ3ZTYxZGRmZiBdCgpUaGVyZSBpcyBs b2dpYyB0byBjaGVjayB0aGF0IHRoZSBSWC9UUEEgY29uc3VtZXIgaW5kZXggaXMgdGhlIGV4cGVj dGVkCmluZGV4IHRvIHdvcmsgYXJvdW5kIGEgaGFyZHdhcmUgcHJvYmxlbS4gIEhvd2V2ZXIsIHRo ZSBwb3RlbnRpYWxseSBiYWQKY29uc3VtZXIgaW5kZXggaXMgZmlyc3QgdXNlZCB0byBpbmRleCBp bnRvIGFuIGFycmF5IHRvIHJlZmVyZW5jZSBhbiBlbnRyeS4KVGhpcyBjYW4gcG90ZW50aWFsbHkg Y3Jhc2ggaWYgdGhlIGJhZCBjb25zdW1lciBpbmRleCBpcyBiZXlvbmQgbGVnYWwKcmFuZ2UuICBJ bXByb3ZlIHRoZSBsb2dpYyB0byB1c2UgdGhlIGNvbnN1bWVyIGluZGV4IGZvciBkZXJlZmVyZW5j aW5nCmFmdGVyIHRoZSB2YWxpZGl0eSBjaGVjayBhbmQgbG9nIGFuIGVycm9yIG1lc3NhZ2UuCgpG aXhlczogZmE3ZTI4MTI3YTVhICgiYm54dF9lbjogQWRkIHdvcmthcm91bmQgdG8gZGV0ZWN0IGJh ZCBvcGFxdWUgaW4gcnggY29tcGxldGlvbiAocGFydCAyKSIpClNpZ25lZC1vZmYtYnk6IE1pY2hh ZWwgQ2hhbiA8bWljaGFlbC5jaGFuQGJyb2FkY29tLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQg Uy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0 L2Jyb2FkY29tL2JueHQvYm54dC5jIHwgMTAgKysrKysrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDcg aW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9l dGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHQuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2Fk Y29tL2JueHQvYm54dC5jCmluZGV4IDBiZDkzYmI3ZDFhMi4uYThhYmI0NzE3OGJlIDEwMDY0NAot LS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHQuYworKysgYi9kcml2 ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHQuYwpAQCAtMTA5Miw2ICsxMDkyLDgg QEAgc3RhdGljIHZvaWQgYm54dF90cGFfc3RhcnQoc3RydWN0IGJueHQgKmJwLCBzdHJ1Y3QgYm54 dF9yeF9yaW5nX2luZm8gKnJ4ciwKIAl0cGFfaW5mbyA9ICZyeHItPnJ4X3RwYVthZ2dfaWRdOwog CiAJaWYgKHVubGlrZWx5KGNvbnMgIT0gcnhyLT5yeF9uZXh0X2NvbnMpKSB7CisJCW5ldGRldl93 YXJuKGJwLT5kZXYsICJUUEEgY29ucyAleCAhPSBleHBlY3RlZCBjb25zICV4XG4iLAorCQkJICAg IGNvbnMsIHJ4ci0+cnhfbmV4dF9jb25zKTsKIAkJYm54dF9zY2hlZF9yZXNldChicCwgcnhyKTsK IAkJcmV0dXJuOwogCX0KQEAgLTE1NDQsMTUgKzE1NDYsMTcgQEAgc3RhdGljIGludCBibnh0X3J4 X3BrdChzdHJ1Y3QgYm54dCAqYnAsIHN0cnVjdCBibnh0X25hcGkgKmJuYXBpLCB1MzIgKnJhd19j b25zLAogCX0KIAogCWNvbnMgPSByeGNtcC0+cnhfY21wX29wYXF1ZTsKLQlyeF9idWYgPSAmcnhy LT5yeF9idWZfcmluZ1tjb25zXTsKLQlkYXRhID0gcnhfYnVmLT5kYXRhOwotCWRhdGFfcHRyID0g cnhfYnVmLT5kYXRhX3B0cjsKIAlpZiAodW5saWtlbHkoY29ucyAhPSByeHItPnJ4X25leHRfY29u cykpIHsKIAkJaW50IHJjMSA9IGJueHRfZGlzY2FyZF9yeChicCwgYm5hcGksIHJhd19jb25zLCBy eGNtcCk7CiAKKwkJbmV0ZGV2X3dhcm4oYnAtPmRldiwgIlJYIGNvbnMgJXggIT0gZXhwZWN0ZWQg Y29ucyAleFxuIiwKKwkJCSAgICBjb25zLCByeHItPnJ4X25leHRfY29ucyk7CiAJCWJueHRfc2No ZWRfcmVzZXQoYnAsIHJ4cik7CiAJCXJldHVybiByYzE7CiAJfQorCXJ4X2J1ZiA9ICZyeHItPnJ4 X2J1Zl9yaW5nW2NvbnNdOworCWRhdGEgPSByeF9idWYtPmRhdGE7CisJZGF0YV9wdHIgPSByeF9i dWYtPmRhdGFfcHRyOwogCXByZWZldGNoKGRhdGFfcHRyKTsKIAogCW1pc2MgPSBsZTMyX3RvX2Nw dShyeGNtcC0+cnhfY21wX21pc2NfdjEpOwotLSAKMi4yMC4xCgoKRnJvbSAxYjg4MzFmMWVhNGUz ZWFiYWUxZjRjNzkxYzgzM2YzM2U4OWE4ZDg3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBNaWNoYWVsIENoYW4gPG1pY2hhZWwuY2hhbkBicm9hZGNvbS5jb20+CkRhdGU6IE1vbiwgOCBB cHIgMjAxOSAxNzozOTo1NSAtMDQwMApTdWJqZWN0OiBbUEFUQ0ggMjYvMzNdIGJueHRfZW46IFJl c2V0IGRldmljZSBvbiBSWCBidWZmZXIgZXJyb3JzLgoKWyBVcHN0cmVhbSBjb21taXQgOGU0NGU5 NmM2YzhlOGZiODBiODRhMmNhMTE3OThhODU1NGY3MTBmMiBdCgpJZiB0aGUgUlggY29tcGxldGlv biBpbmRpY2F0ZXMgUlggYnVmZmVycyBlcnJvcnMsIHRoZSBSWCByaW5nIHdpbGwgYmUKZGlzYWJs ZWQgYnkgZmlybXdhcmUgYW5kIG5vIHBhY2tldHMgd2lsbCBiZSByZWNlaXZlZCBvbiB0aGF0IHJp bmcgZnJvbQp0aGF0IHBvaW50IG9uLiAgUmVjb3ZlciBieSByZXNldHRpbmcgdGhlIGRldmljZS4K CkZpeGVzOiBjMGMwNTBjNThkODQgKCJibnh0X2VuOiBOZXcgQnJvYWRjb20gZXRoZXJuZXQgZHJp dmVyLiIpClNpZ25lZC1vZmYtYnk6IE1pY2hhZWwgQ2hhbiA8bWljaGFlbC5jaGFuQGJyb2FkY29t LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0 PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueHQvYm54dC5jIHwgNiArKysr KysKIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJz L25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHQuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0 L2Jyb2FkY29tL2JueHQvYm54dC5jCmluZGV4IGE4YWJiNDcxNzhiZS4uNTgxYWQwYTE3ZDBjIDEw MDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHQuYworKysg Yi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHQuYwpAQCAtMTU3MywxMSAr MTU3MywxNyBAQCBzdGF0aWMgaW50IGJueHRfcnhfcGt0KHN0cnVjdCBibnh0ICpicCwgc3RydWN0 IGJueHRfbmFwaSAqYm5hcGksIHUzMiAqcmF3X2NvbnMsCiAKIAlyeF9idWYtPmRhdGEgPSBOVUxM OwogCWlmIChyeGNtcDEtPnJ4X2NtcF9jZmFfY29kZV9lcnJvcnNfdjIgJiBSWF9DTVBfTDJfRVJS T1JTKSB7CisJCXUzMiByeF9lcnIgPSBsZTMyX3RvX2NwdShyeGNtcDEtPnJ4X2NtcF9jZmFfY29k ZV9lcnJvcnNfdjIpOworCiAJCWJueHRfcmV1c2VfcnhfZGF0YShyeHIsIGNvbnMsIGRhdGEpOwog CQlpZiAoYWdnX2J1ZnMpCiAJCQlibnh0X3JldXNlX3J4X2FnZ19idWZzKGJuYXBpLCBjcF9jb25z LCBhZ2dfYnVmcyk7CiAKIAkJcmMgPSAtRUlPOworCQlpZiAocnhfZXJyICYgUlhfQ01QTF9FUlJP UlNfQlVGRkVSX0VSUk9SX01BU0spIHsKKwkJCW5ldGRldl93YXJuKGJwLT5kZXYsICJSWCBidWZm ZXIgZXJyb3IgJXhcbiIsIHJ4X2Vycik7CisJCQlibnh0X3NjaGVkX3Jlc2V0KGJwLCByeHIpOwor CQl9CiAJCWdvdG8gbmV4dF9yeDsKIAl9CiAKLS0gCjIuMjAuMQoKCkZyb20gNTkzYmFhMzQyNTEy Yjc5ODhiMzRiNTM5NWRlMmQxOTVmMmM4NzQwZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogTG9yZW56byBCaWFuY29uaSA8bG9yZW56by5iaWFuY29uaUByZWRoYXQuY29tPgpEYXRlOiBT YXQsIDYgQXByIDIwMTkgMTc6MTY6NTIgKzAyMDAKU3ViamVjdDogW1BBVENIIDI3LzMzXSBuZXQ6 IGlwX2dyZTogZml4IHBvc3NpYmxlIHVzZS1hZnRlci1mcmVlIGluIGVyc3Bhbl9yY3YKClsgVXBz dHJlYW0gY29tbWl0IDQ5MmI2N2UyOGVlNWYyYTI1MjJmYjcyZTNkM2JjYjk5MGU0NjE1MTQgXQoK ZXJzcGFuIHR1bm5lbHMgcnVuIF9faXB0dW5uZWxfcHVsbF9oZWFkZXIgb24gcmVjZWl2ZWQgc2ti cyB0byByZW1vdmUKZ3JlIGFuZCBlcnNwYW4gaGVhZGVycy4gVGhpcyBjYW4gZGV0ZXJtaW5lIGEg cG9zc2libGUgdXNlLWFmdGVyLWZyZWUKYWNjZXNzaW5nIHBrdF9tZCBwb2ludGVyIGluIGVyc3Bh bl9yY3Ygc2luY2UgdGhlIHBhY2tldCB3aWxsIGJlICd1bmNsb25lZCcKcnVubmluZyBwc2tiX2V4 cGFuZF9oZWFkIGlmIGl0IGlzIGEgY2xvbmVkIGdzbyBza2IgKGUuZyBpZiB0aGUgcGFja2V0IGhh cwpiZWVuIHNlbnQgdGhvdWdoIGEgdmV0aCBkZXZpY2UpLiBGaXggaXQgcmVzZXR0aW5nIHBrdF9t ZCBwb2ludGVyIGFmdGVyCl9faXB0dW5uZWxfcHVsbF9oZWFkZXIKCkZpeGVzOiAxZDdlMmVkMjJm OGQgKCJuZXQ6IGVyc3BhbjogcmVmYWN0b3IgZXhpc3RpbmcgZXJzcGFuIGNvZGUiKQpTaWduZWQt b2ZmLWJ5OiBMb3JlbnpvIEJpYW5jb25pIDxsb3JlbnpvLmJpYW5jb25pQHJlZGhhdC5jb20+ClNp Z25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBu ZXQvaXB2NC9pcF9ncmUuYyB8IDE1ICsrKysrKysrKystLS0tLQogMSBmaWxlIGNoYW5nZWQsIDEw IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvaXBf Z3JlLmMgYi9uZXQvaXB2NC9pcF9ncmUuYwppbmRleCBmMTk5OTQ1ZjZlNGEuLjNjNzM0ODMyYmI3 YyAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvaXBfZ3JlLmMKKysrIGIvbmV0L2lwdjQvaXBfZ3JlLmMK QEAgLTI2MCw3ICsyNjAsNiBAQCBzdGF0aWMgaW50IGVyc3Bhbl9yY3Yoc3RydWN0IHNrX2J1ZmYg KnNrYiwgc3RydWN0IHRubF9wdGtfaW5mbyAqdHBpLAogCXN0cnVjdCBuZXQgKm5ldCA9IGRldl9u ZXQoc2tiLT5kZXYpOwogCXN0cnVjdCBtZXRhZGF0YV9kc3QgKnR1bl9kc3QgPSBOVUxMOwogCXN0 cnVjdCBlcnNwYW5fYmFzZV9oZHIgKmVyc2hkcjsKLQlzdHJ1Y3QgZXJzcGFuX21ldGFkYXRhICpw a3RfbWQ7CiAJc3RydWN0IGlwX3R1bm5lbF9uZXQgKml0bjsKIAlzdHJ1Y3QgaXBfdHVubmVsICp0 dW5uZWw7CiAJY29uc3Qgc3RydWN0IGlwaGRyICppcGg7CkBAIC0yODMsOSArMjgyLDYgQEAgc3Rh dGljIGludCBlcnNwYW5fcmN2KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCB0bmxfcHRrX2lu Zm8gKnRwaSwKIAkJaWYgKHVubGlrZWx5KCFwc2tiX21heV9wdWxsKHNrYiwgbGVuKSkpCiAJCQly ZXR1cm4gUEFDS0VUX1JFSkVDVDsKIAotCQllcnNoZHIgPSAoc3RydWN0IGVyc3Bhbl9iYXNlX2hk ciAqKShza2ItPmRhdGEgKyBncmVfaGRyX2xlbik7Ci0JCXBrdF9tZCA9IChzdHJ1Y3QgZXJzcGFu X21ldGFkYXRhICopKGVyc2hkciArIDEpOwotCiAJCWlmIChfX2lwdHVubmVsX3B1bGxfaGVhZGVy KHNrYiwKIAkJCQkJICAgbGVuLAogCQkJCQkgICBodG9ucyhFVEhfUF9URUIpLApAQCAtMjkzLDgg KzI4OSw5IEBAIHN0YXRpYyBpbnQgZXJzcGFuX3JjdihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1 Y3QgdG5sX3B0a19pbmZvICp0cGksCiAJCQlnb3RvIGRyb3A7CiAKIAkJaWYgKHR1bm5lbC0+Y29s bGVjdF9tZCkgeworCQkJc3RydWN0IGVyc3Bhbl9tZXRhZGF0YSAqcGt0X21kLCAqbWQ7CiAJCQlz dHJ1Y3QgaXBfdHVubmVsX2luZm8gKmluZm87Ci0JCQlzdHJ1Y3QgZXJzcGFuX21ldGFkYXRhICpt ZDsKKwkJCXVuc2lnbmVkIGNoYXIgKmdoOwogCQkJX19iZTY0IHR1bl9pZDsKIAkJCV9fYmUxNiBm bGFnczsKIApAQCAtMzA3LDYgKzMwNCwxNCBAQCBzdGF0aWMgaW50IGVyc3Bhbl9yY3Yoc3RydWN0 IHNrX2J1ZmYgKnNrYiwgc3RydWN0IHRubF9wdGtfaW5mbyAqdHBpLAogCQkJaWYgKCF0dW5fZHN0 KQogCQkJCXJldHVybiBQQUNLRVRfUkVKRUNUOwogCisJCQkvKiBza2IgY2FuIGJlIHVuY2xvbmVk IGluIF9faXB0dW5uZWxfcHVsbF9oZWFkZXIsIHNvCisJCQkgKiBvbGQgcGt0X21kIGlzIG5vIGxv bmdlciB2YWxpZCBhbmQgd2UgbmVlZCB0byByZXNldAorCQkJICogaXQKKwkJCSAqLworCQkJZ2gg PSBza2JfbmV0d29ya19oZWFkZXIoc2tiKSArCisJCQkgICAgIHNrYl9uZXR3b3JrX2hlYWRlcl9s ZW4oc2tiKTsKKwkJCXBrdF9tZCA9IChzdHJ1Y3QgZXJzcGFuX21ldGFkYXRhICopKGdoICsgZ3Jl X2hkcl9sZW4gKworCQkJCQkJCSAgICBzaXplb2YoKmVyc2hkcikpOwogCQkJbWQgPSBpcF90dW5u ZWxfaW5mb19vcHRzKCZ0dW5fZHN0LT51LnR1bl9pbmZvKTsKIAkJCW1kLT52ZXJzaW9uID0gdmVy OwogCQkJbWQyID0gJm1kLT51Lm1kMjsKLS0gCjIuMjAuMQoKCkZyb20gZDk5ZjYxYmQ2ODkzNjI2 NmM5MzBhMWY0ZmM0ZTkzMDljZTI4MzJhMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog TG9yZW56byBCaWFuY29uaSA8bG9yZW56by5iaWFuY29uaUByZWRoYXQuY29tPgpEYXRlOiBTYXQs IDYgQXByIDIwMTkgMTc6MTY6NTMgKzAyMDAKU3ViamVjdDogW1BBVENIIDI4LzMzXSBuZXQ6IGlw Nl9ncmU6IGZpeCBwb3NzaWJsZSB1c2UtYWZ0ZXItZnJlZSBpbgogaXA2ZXJzcGFuX3JjdgoKWyBV cHN0cmVhbSBjb21taXQgMmEzY2FiYWU0NTM2ZWRiY2IyMWQzNDRlN2FhOGJlN2E1ODRkMmFmYiBd CgplcnNwYW5fdjYgdHVubmVscyBydW4gX19pcHR1bm5lbF9wdWxsX2hlYWRlciBvbiByZWNlaXZl ZCBza2JzIHRvIHJlbW92ZQplcnNwYW4gaGVhZGVyLiBUaGlzIGNhbiBkZXRlcm1pbmUgYSBwb3Nz aWJsZSB1c2UtYWZ0ZXItZnJlZSBhY2Nlc3NpbmcKcGt0X21kIHBvaW50ZXIgaW4gaXA2ZXJzcGFu X3JjdiBzaW5jZSB0aGUgcGFja2V0IHdpbGwgYmUgJ3VuY2xvbmVkJwpydW5uaW5nIHBza2JfZXhw YW5kX2hlYWQgaWYgaXQgaXMgYSBjbG9uZWQgZ3NvIHNrYiAoZS5nIGlmIHRoZSBwYWNrZXQgaGFz CmJlZW4gc2VudCB0aG91Z2ggYSB2ZXRoIGRldmljZSkuIEZpeCBpdCByZXNldHRpbmcgcGt0X21k IHBvaW50ZXIgYWZ0ZXIKX19pcHR1bm5lbF9wdWxsX2hlYWRlcgoKRml4ZXM6IDFkN2UyZWQyMmY4 ZCAoIm5ldDogZXJzcGFuOiByZWZhY3RvciBleGlzdGluZyBlcnNwYW4gY29kZSIpClNpZ25lZC1v ZmYtYnk6IExvcmVuem8gQmlhbmNvbmkgPGxvcmVuem8uYmlhbmNvbmlAcmVkaGF0LmNvbT4KU2ln bmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5l dC9pcHY2L2lwNl9ncmUuYyB8IDIxICsrKysrKysrKysrKystLS0tLS0tLQogMSBmaWxlIGNoYW5n ZWQsIDEzIGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lw djYvaXA2X2dyZS5jIGIvbmV0L2lwdjYvaXA2X2dyZS5jCmluZGV4IGZhZWQ5OGRhYjkxMy4uYzRh N2RiNjI2NThlIDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9pcDZfZ3JlLmMKKysrIGIvbmV0L2lwdjYv aXA2X2dyZS5jCkBAIC01NDAsMTEgKzU0MCwxMCBAQCBzdGF0aWMgaW50IGlwNmdyZV9yY3Yoc3Ry dWN0IHNrX2J1ZmYgKnNrYiwgY29uc3Qgc3RydWN0IHRubF9wdGtfaW5mbyAqdHBpKQogCXJldHVy biBQQUNLRVRfUkVKRUNUOwogfQogCi1zdGF0aWMgaW50IGlwNmVyc3Bhbl9yY3Yoc3RydWN0IHNr X2J1ZmYgKnNrYiwgaW50IGdyZV9oZHJfbGVuLAotCQkJIHN0cnVjdCB0bmxfcHRrX2luZm8gKnRw aSkKK3N0YXRpYyBpbnQgaXA2ZXJzcGFuX3JjdihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3Qg dG5sX3B0a19pbmZvICp0cGksCisJCQkgaW50IGdyZV9oZHJfbGVuKQogewogCXN0cnVjdCBlcnNw YW5fYmFzZV9oZHIgKmVyc2hkcjsKLQlzdHJ1Y3QgZXJzcGFuX21ldGFkYXRhICpwa3RfbWQ7CiAJ Y29uc3Qgc3RydWN0IGlwdjZoZHIgKmlwdjZoOwogCXN0cnVjdCBlcnNwYW5fbWQyICptZDI7CiAJ c3RydWN0IGlwNl90bmwgKnR1bm5lbDsKQEAgLTU2MywxOCArNTYyLDE2IEBAIHN0YXRpYyBpbnQg aXA2ZXJzcGFuX3JjdihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBpbnQgZ3JlX2hkcl9sZW4sCiAJCWlm ICh1bmxpa2VseSghcHNrYl9tYXlfcHVsbChza2IsIGxlbikpKQogCQkJcmV0dXJuIFBBQ0tFVF9S RUpFQ1Q7CiAKLQkJZXJzaGRyID0gKHN0cnVjdCBlcnNwYW5fYmFzZV9oZHIgKilza2ItPmRhdGE7 Ci0JCXBrdF9tZCA9IChzdHJ1Y3QgZXJzcGFuX21ldGFkYXRhICopKGVyc2hkciArIDEpOwotCiAJ CWlmIChfX2lwdHVubmVsX3B1bGxfaGVhZGVyKHNrYiwgbGVuLAogCQkJCQkgICBodG9ucyhFVEhf UF9URUIpLAogCQkJCQkgICBmYWxzZSwgZmFsc2UpIDwgMCkKIAkJCXJldHVybiBQQUNLRVRfUkVK RUNUOwogCiAJCWlmICh0dW5uZWwtPnBhcm1zLmNvbGxlY3RfbWQpIHsKKwkJCXN0cnVjdCBlcnNw YW5fbWV0YWRhdGEgKnBrdF9tZCwgKm1kOwogCQkJc3RydWN0IG1ldGFkYXRhX2RzdCAqdHVuX2Rz dDsKIAkJCXN0cnVjdCBpcF90dW5uZWxfaW5mbyAqaW5mbzsKLQkJCXN0cnVjdCBlcnNwYW5fbWV0 YWRhdGEgKm1kOworCQkJdW5zaWduZWQgY2hhciAqZ2g7CiAJCQlfX2JlNjQgdHVuX2lkOwogCQkJ X19iZTE2IGZsYWdzOwogCkBAIC01ODcsNiArNTg0LDE0IEBAIHN0YXRpYyBpbnQgaXA2ZXJzcGFu X3JjdihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBpbnQgZ3JlX2hkcl9sZW4sCiAJCQlpZiAoIXR1bl9k c3QpCiAJCQkJcmV0dXJuIFBBQ0tFVF9SRUpFQ1Q7CiAKKwkJCS8qIHNrYiBjYW4gYmUgdW5jbG9u ZWQgaW4gX19pcHR1bm5lbF9wdWxsX2hlYWRlciwgc28KKwkJCSAqIG9sZCBwa3RfbWQgaXMgbm8g bG9uZ2VyIHZhbGlkIGFuZCB3ZSBuZWVkIHRvIHJlc2V0CisJCQkgKiBpdAorCQkJICovCisJCQln aCA9IHNrYl9uZXR3b3JrX2hlYWRlcihza2IpICsKKwkJCSAgICAgc2tiX25ldHdvcmtfaGVhZGVy X2xlbihza2IpOworCQkJcGt0X21kID0gKHN0cnVjdCBlcnNwYW5fbWV0YWRhdGEgKikoZ2ggKyBn cmVfaGRyX2xlbiArCisJCQkJCQkJICAgIHNpemVvZigqZXJzaGRyKSk7CiAJCQlpbmZvID0gJnR1 bl9kc3QtPnUudHVuX2luZm87CiAJCQltZCA9IGlwX3R1bm5lbF9pbmZvX29wdHMoaW5mbyk7CiAJ CQltZC0+dmVyc2lvbiA9IHZlcjsKQEAgLTYyMyw3ICs2MjgsNyBAQCBzdGF0aWMgaW50IGdyZV9y Y3Yoc3RydWN0IHNrX2J1ZmYgKnNrYikKIAogCWlmICh1bmxpa2VseSh0cGkucHJvdG8gPT0gaHRv bnMoRVRIX1BfRVJTUEFOKSB8fAogCQkgICAgIHRwaS5wcm90byA9PSBodG9ucyhFVEhfUF9FUlNQ QU4yKSkpIHsKLQkJaWYgKGlwNmVyc3Bhbl9yY3Yoc2tiLCBoZHJfbGVuLCAmdHBpKSA9PSBQQUNL RVRfUkNWRCkKKwkJaWYgKGlwNmVyc3Bhbl9yY3Yoc2tiLCAmdHBpLCBoZHJfbGVuKSA9PSBQQUNL RVRfUkNWRCkKIAkJCXJldHVybiAwOwogCQlnb3RvIG91dDsKIAl9Ci0tIAoyLjIwLjEKCgpGcm9t IGIzZmI1MzU5NGI3ZDZmZDZlNTlhN2U1NWU0NjNmMmM1ZGRkYmVhYzkgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IEFsZXhhbmRlciBMb2Jha2luIDxhbG9iYWtpbkBkbGluay5ydT4KRGF0 ZTogVGh1LCAyOCBNYXIgMjAxOSAxODoyMzowNCArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMjkvMzNd IG5ldDogY29yZTogbmV0aWZfcmVjZWl2ZV9za2JfbGlzdDogdW5saXN0IHNrYiBiZWZvcmUKIHBh c3NpbmcgdG8gcHQtPmZ1bmMKClsgVXBzdHJlYW0gY29tbWl0IDlhNWE5MGQxNjdiMGU1ZmUzZDQ3 YWYxNmI2OGZkMDljZTY0MDg1Y2QgXQoKX19uZXRpZl9yZWNlaXZlX3NrYl9saXN0X3B0eXBlKCkg bGVhdmVzIHNrYi0+bmV4dCBwb2lzb25lZCBiZWZvcmUgcGFzc2luZwppdCB0byBwdF9wcmV2LT5m dW5jIGhhbmRsZXIsIHdoYXQgbWF5IHByb2R1Y2UgKGluIGNlcnRhaW4gY2FzZXMsIGUuZy4gRFNB CnNldHVwKSBjcmFzaGVzIGxpa2U6CgpbIDg4LjYwNjc3N10gQ1BVIDAgVW5hYmxlIHRvIGhhbmRs ZSBrZXJuZWwgcGFnaW5nIHJlcXVlc3QgYXQgdmlydHVhbCBhZGRyZXNzIDAwMDAwMDBlLCBlcGMg PT0gODA2ODcwNzgsIHJhID09IDgwNTJjYzdjClsgODguNjE4NjY2XSBPb3BzWyMxXToKWyA4OC42 MjExOTZdIENQVTogMCBQSUQ6IDAgQ29tbTogc3dhcHBlciBOb3QgdGFpbnRlZCA1LjEuMC1yYzIt ZGxpbmstMDAyMDYtZzQxOTJhMTcyLWRpcnR5ICMxNDczClsgODguNjMwODg1XSAkIDAgOiAwMDAw MDAwMCAxMDAwMDQwMCAwMDAwMDAwMiA4NjRkNzg1MApbIDg4LjYzNjcwOV0gJCA0IDogODdjMGRk ZjAgODY0ZDc4MDAgODdjMGRkZjAgMDAwMDAwMDAKWyA4OC42NDI1MjZdICQgOCA6IDAwMDAwMDAw IDQ5NjAwMDAwIDAwMDAwMDAxIDAwMDAwMDAxClsgODguNjQ4MzQyXSAkMTIgOiAwMDAwMDAwMCBj Mjg4NjE3YiBkYWRiZWUyNyAyNWQxN2M0MQpbIDg4LjY1NDE1OV0gJDE2IDogODdjMGRkZjAgODVj ZmYwODAgODA3OTAwMDAgZmZmZmZmZmQKWyA4OC42NTk5NzVdICQyMCA6IDgwNzk3YjIwIGZmZmZm ZmZmIDAwMDAwMDAxIDg2NGQ3ODAwClsgODguNjY1NzkzXSAkMjQgOiAwMDAwMDAwMCA4MDExZTY1 OApbIDg4LjY3MTYwOV0gJDI4IDogODA3OTAwMDAgODdjMGRiYzAgODdjYWJmMDAgODA1MmNjN2MK WyA4OC42Nzc0MjddIEhpIDogMDAwMDAwMDMKWyA4OC42ODA2MjJdIExvIDogN2I1YjQyMjAKWyA4 OC42ODM4NDBdIGVwYyA6IDgwNjg3MDc4IHZsYW5fZGV2X2hhcmRfc3RhcnRfeG1pdCsweDFjLzB4 MWEwClsgODguNjkwNTMyXSByYSA6IDgwNTJjYzdjIGRldl9oYXJkX3N0YXJ0X3htaXQrMHhhYy8w eDE4OApbIDg4LjY5NjczNF0gU3RhdHVzOiAxMDAwMDQwNAlJRXAKWyA4OC43MDA0MjJdIENhdXNl IDogNTAwMDAwMDggKEV4Y0NvZGUgMDIpClsgODguNzA0ODc0XSBCYWRWQSA6IDAwMDAwMDBlClsg ODguNzA4MDY5XSBQcklkIDogMDAwMWExMjAgKE1JUFMgaW50ZXJBcHRpdiAobXVsdGkpKQpbIDg4 LjcxMzAwNV0gTW9kdWxlcyBsaW5rZWQgaW46ClsgODguNzE2NDA3XSBQcm9jZXNzIHN3YXBwZXIg KHBpZDogMCwgdGhyZWFkaW5mbz0ocHRydmFsKSwgdGFzaz0ocHRydmFsKSwgdGxzPTAwMDAwMDAw KQpbIDg4LjcyNTIxOV0gU3RhY2sgOiA4NWY2MWMyOCAwMDAwMDAwMCAwMDAwMDAwZSA4MDc4MDAw MCA4N2MwZGRmMCA4NWNmZjA4MCA4MDc5MDAwMCA4MDUyY2M3YwpbIDg4LjczNDUyOV0gODdjYWJm MDAgMDAwMDAwMDAgMDAwMDAwMDEgODVmNWZiNDAgODA3YjAwMDAgODY0ZDc4NTAgODdjYWJmMDAg ODA3ZDAwMDAKWyA4OC43NDM4MzldIDg2NGQ3ODAwIDg2NTVmNjAwIDAwMDAwMDAwIDg1Y2ZmMDgw IDg3YzFjMDAwIDAwMDAwMDZhIDAwMDAwMDAwIDgwNTJkOTZjClsgODguNzUzMTQ5XSA4MDdhMDAw MCA4MDU3YWRiOCA4N2MwZGNjOCA4N2MwZGM1MCA4NWNmZmYwOCAwMDAwMDU1OCA4N2NhYmYwMCA4 NWY1OGM1MApbIDg4Ljc2MjQ2MF0gMDAwMDAwMDIgODVmNThjMDAgODY0ZDc4MDAgODA1NDMzMDgg ZmZmZmZmZjQgMDAwMDAwMDEgODVmNThjMDAgODY0ZDc4MDAKWyA4OC43NzE3NzBdIC4uLgpbIDg4 Ljc3NDQ4M10gQ2FsbCBUcmFjZToKWyA4OC43NzcxOTldIFs8ODA2ODcwNzg+XSB2bGFuX2Rldl9o YXJkX3N0YXJ0X3htaXQrMHgxYy8weDFhMApbIDg4Ljc4MzUwNF0gWzw4MDUyY2M3Yz5dIGRldl9o YXJkX3N0YXJ0X3htaXQrMHhhYy8weDE4OApbIDg4Ljc4OTMyNl0gWzw4MDUyZDk2Yz5dIF9fZGV2 X3F1ZXVlX3htaXQrMHg2ZTgvMHg3ZDQKWyA4OC43OTQ5NTVdIFs8ODA1YTg2NDA+XSBpcF9maW5p c2hfb3V0cHV0MisweDIzOC8weDRkMApbIDg4LjgwMDY3N10gWzw4MDVhYjZhMD5dIGlwX291dHB1 dCsweGM4LzB4MTQwClsgODguODA1NTI2XSBbPDgwNWE2OGY0Pl0gaXBfZm9yd2FyZCsweDM2NC8w eDU2MApbIDg4LjgxMDU2N10gWzw4MDVhNGZmOD5dIGlwX3JjdisweDQ4LzB4ZTQKWyA4OC44MTUw MzBdIFs8ODA1MjhkNDQ+XSBfX25ldGlmX3JlY2VpdmVfc2tiX29uZV9jb3JlKzB4NDQvMHg1OApb IDg4LjgyMTYzNV0gWzw4MDY3ZjIyMD5dIGRzYV9zd2l0Y2hfcmN2KzB4MTA4LzB4MWFjClsgODgu ODI3MDY3XSBbPDgwNTI4ZjgwPl0gX19uZXRpZl9yZWNlaXZlX3NrYl9saXN0X2NvcmUrMHgyMjgv MHgyNmMKWyA4OC44MzM5NTFdIFs8ODA1MmVkODQ+XSBuZXRpZl9yZWNlaXZlX3NrYl9saXN0KzB4 MWQ0LzB4Mzk0ClsgODguODQwMTYwXSBbPDgwMzU1YTg4Pl0gbHVuYXJfcnhfcG9sbCsweDM4Yy8w eDgyOApbIDg4Ljg0NTQ5Nl0gWzw4MDUyZmE3OD5dIG5ldF9yeF9hY3Rpb24rMHgxNGMvMHgzY2MK WyA4OC44NTA4MzVdIFs8ODA2YWQzMDA+XSBfX2RvX3NvZnRpcnErMHgxNzgvMHgzMzgKWyA4OC44 NTYwNzddIFs8ODAxMmEyZDQ+XSBpcnFfZXhpdCsweGJjLzB4MTAwClsgODguODYwODQ2XSBbPDgw MmY4YjcwPl0gcGxhdF9pcnFfZGlzcGF0Y2grMHhjMC8weDE0NApbIDg4Ljg2NjQ3N10gWzw4MDEw NTk3ND5dIGhhbmRsZV9pbnQrMHgxNGMvMHgxNTgKWyA4OC44NzE1MTZdIFs8ODA2YWNmYjA+XSBy NGtfd2FpdCsweDMwLzB4NDAKWyA4OC44NzY0NjJdIENvZGU6IGFmYjEwMDE0IDhjODIwMGEwIDAw ODAzMDI1IDw5NDQzMDAwYz4gOTRhMjA0NjggMDAwMDAwMDAgMTA2MjAwNDIgMDBhMDgwMjUgOTYw NTA0NmEKWyA4OC44ODczMzJdClsgODguODg4OTgyXSAtLS1bIGVuZCB0cmFjZSBlYjg2M2QwMDdk YTExY2YxIF0tLS0KWyA4OC44OTQxMjJdIEtlcm5lbCBwYW5pYyAtIG5vdCBzeW5jaW5nOiBGYXRh bCBleGNlcHRpb24gaW4gaW50ZXJydXB0ClsgODguOTAxMjAyXSAtLS1bIGVuZCBLZXJuZWwgcGFu aWMgLSBub3Qgc3luY2luZzogRmF0YWwgZXhjZXB0aW9uIGluIGludGVycnVwdCBdLS0tCgpGaXgg dGhpcyBieSBwdWxsaW5nIHNrYiBvZmYgdGhlIHN1Ymxpc3QgYW5kIHplcm9pbmcgc2tiLT5uZXh0 IHBvaW50ZXIKYmVmb3JlIGNhbGxpbmcgcHR5cGUgY2FsbGJhY2suCgpGaXhlczogODhlYjE5NDRl MThjICgibmV0OiBjb3JlOiBwcm9wYWdhdGUgU0tCIGxpc3RzIHRocm91Z2ggcGFja2V0X3R5cGUg bG9va3VwIikKUmV2aWV3ZWQtYnk6IEVkd2FyZCBDcmVlIDxlY3JlZUBzb2xhcmZsYXJlLmNvbT4K U2lnbmVkLW9mZi1ieTogQWxleGFuZGVyIExvYmFraW4gPGFsb2Jha2luQGRsaW5rLnJ1PgpTaWdu ZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0 L2NvcmUvZGV2LmMgfCA0ICsrKy0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDEg ZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvY29yZS9kZXYuYyBiL25ldC9jb3JlL2Rldi5j CmluZGV4IDVjOGMwYTU3MmVlOS4uZDQ3NTU0MzA3YTZkIDEwMDY0NAotLS0gYS9uZXQvY29yZS9k ZXYuYworKysgYi9uZXQvY29yZS9kZXYuYwpAQCAtNDk1OSw4ICs0OTU5LDEwIEBAIHN0YXRpYyBp bmxpbmUgdm9pZCBfX25ldGlmX3JlY2VpdmVfc2tiX2xpc3RfcHR5cGUoc3RydWN0IGxpc3RfaGVh ZCAqaGVhZCwKIAlpZiAocHRfcHJldi0+bGlzdF9mdW5jICE9IE5VTEwpCiAJCXB0X3ByZXYtPmxp c3RfZnVuYyhoZWFkLCBwdF9wcmV2LCBvcmlnX2Rldik7CiAJZWxzZQotCQlsaXN0X2Zvcl9lYWNo X2VudHJ5X3NhZmUoc2tiLCBuZXh0LCBoZWFkLCBsaXN0KQorCQlsaXN0X2Zvcl9lYWNoX2VudHJ5 X3NhZmUoc2tiLCBuZXh0LCBoZWFkLCBsaXN0KSB7CisJCQlza2JfbGlzdF9kZWxfaW5pdChza2Ip OwogCQkJcHRfcHJldi0+ZnVuYyhza2IsIHNrYi0+ZGV2LCBwdF9wcmV2LCBvcmlnX2Rldik7CisJ CX0KIH0KIAogc3RhdGljIHZvaWQgX19uZXRpZl9yZWNlaXZlX3NrYl9saXN0X2NvcmUoc3RydWN0 IGxpc3RfaGVhZCAqaGVhZCwgYm9vbCBwZm1lbWFsbG9jKQotLSAKMi4yMC4xCgoKRnJvbSA0MWFj OTM5NmE2MWJjOTU3NTdiMmJiYzllYjg5Y2RjOTFmOGUwZWQ2IE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBIZWluZXIgS2FsbHdlaXQgPGhrYWxsd2VpdDFAZ21haWwuY29tPgpEYXRlOiBT YXQsIDMwIE1hciAyMDE5IDE3OjEzOjI0ICswMTAwClN1YmplY3Q6IFtQQVRDSCAzMC8zM10gcjgx Njk6IGRpc2FibGUgZGVmYXVsdCByeCBpbnRlcnJ1cHQgY29hbGVzY2luZyBvbgogUlRMODE2OAoK WyBVcHN0cmVhbSBjb21taXQgMjg4YWM1MjRjZjcwYThlN2VkODUxYTYxZWQyYTk3NDQwMzlkYWU4 ZCBdCgpJdCB3YXMgcmVwb3J0ZWQgdGhhdCByZS1pbnRyb2R1Y2luZyBBU1BNLCBpbiBjb21iaW5h dGlvbiB3aXRoIFJYCmludGVycnVwdCBjb2FsZXNjaW5nLCByZXN1bHRzIGluIHNpZ25pZmljYW50 bHkgaW5jcmVhc2VkIHBhY2tldApsYXRlbmN5LCBzZWUgWzBdLiBEaXNhYmxpbmcgQVNQTSBvciBS WCBpbnRlcnJ1cHQgY29hbGVzY2luZyBmaXhlcwp0aGUgaXNzdWUuIFRoZXJlZm9yZSBjaGFuZ2Ug dGhlIGRyaXZlcidzIGRlZmF1bHQgdG8gZGlzYWJsZSBSWAppbnRlcnJ1cHQgY29hbGVzY2luZy4g VXNlcnMgc3RpbGwgaGF2ZSB0aGUgb3B0aW9uIHRvIGVuYWJsZSBSWApjb2FsZXNjaW5nIHZpYSBl dGh0b29sLgoKWzBdIGh0dHBzOi8vYnVncy5kZWJpYW4ub3JnL2NnaS1iaW4vYnVncmVwb3J0LmNn aT9idWc9OTI1NDk2CgpGaXhlczogYTk5NzkwYmY1YzdmICgicjgxNjk6IFJlaW5zdGF0ZSBBU1BN IFN1cHBvcnQiKQpSZXBvcnRlZC1ieTogTWlrZSBDcm93ZSA8bWFjQG1jcm93ZS5jb20+ClNpZ25l ZC1vZmYtYnk6IEhlaW5lciBLYWxsd2VpdCA8aGthbGx3ZWl0MUBnbWFpbC5jb20+ClNpZ25lZC1v ZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJz L25ldC9ldGhlcm5ldC9yZWFsdGVrL3I4MTY5LmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBp bnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhl cm5ldC9yZWFsdGVrL3I4MTY5LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9yZWFsdGVrL3I4MTY5 LmMKaW5kZXggMWQyNDg4NGU5ODk3Li43YTUwYjkxMWIxODAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv bmV0L2V0aGVybmV0L3JlYWx0ZWsvcjgxNjkuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9y ZWFsdGVrL3I4MTY5LmMKQEAgLTU0MTgsNyArNTQxOCw3IEBAIHN0YXRpYyB2b2lkIHJ0bF9od19z dGFydF84MTY4KHN0cnVjdCBydGw4MTY5X3ByaXZhdGUgKnRwKQogCXRwLT5jcF9jbWQgfD0gUGt0 Q250ckRpc2FibGUgfCBJTlRUXzE7CiAJUlRMX1cxNih0cCwgQ1BsdXNDbWQsIHRwLT5jcF9jbWQp OwogCi0JUlRMX1cxNih0cCwgSW50ck1pdGlnYXRlLCAweDUxNTEpOworCVJUTF9XMTYodHAsIElu dHJNaXRpZ2F0ZSwgMHg1MTAwKTsKIAogCS8qIFdvcmsgYXJvdW5kIGZvciBSeEZJRk8gb3ZlcmZs b3cuICovCiAJaWYgKHRwLT5tYWNfdmVyc2lvbiA9PSBSVExfR0lHQV9NQUNfVkVSXzExKSB7Ci0t IAoyLjIwLjEKCgpGcm9tIDFjMDkzM2VlMjlhOTBlOTRmMGViOWRmMzgxNzcyZDk3YjVhOWNkZDgg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFkaXR5YSBQYWtraSA8cGFra2kwMDFAdW1u LmVkdT4KRGF0ZTogVHVlLCAxOSBNYXIgMjAxOSAxNjo0Mjo0MCAtMDUwMApTdWJqZWN0OiBbUEFU Q0ggMzEvMzNdIG5ldDogbWx4NTogQWRkIGEgbWlzc2luZyBjaGVjayBvbiBpZHJfZmluZCwgZnJl ZSBidWYKClsgVXBzdHJlYW0gY29tbWl0IDhlOTQ5MzYzZjAxN2UyMDExNDY0ODEyYTcxNGZiMjk3 MTBmYjk1YjQgXQoKaWRyX2ZpbmQoKSBjYW4gcmV0dXJuIGEgTlVMTCB2YWx1ZSB0byAnZmxvdycg d2hpY2ggaXMgdXNlZCB3aXRob3V0IGEKY2hlY2suIFRoZSBwYXRjaCBhZGRzIGEgY2hlY2sgdG8g YXZvaWQgcG90ZW50aWFsIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZS4KCkluIGNhc2Ugb2YgbWx4 NV9mcGdhX3NidV9jb25uX3NlbmRtc2coKSBmYWlsdXJlLCBmcmVlIGJ1ZiBhbGxvY2F0ZWQKdXNp bmcga3phbGxvYy4KCkZpeGVzOiBhYjQxMmUxZGQ3ZGIgKCJuZXQvbWx4NTogQWNjZWwsIGFkZCBU TFMgcnggb2ZmbG9hZCByb3V0aW5lcyIpClNpZ25lZC1vZmYtYnk6IEFkaXR5YSBQYWtraSA8cGFr a2kwMDFAdW1uLmVkdT4KUmV2aWV3ZWQtYnk6IFl1dmFsIFNoYWlhIDx5dXZhbC5zaGFpYUBvcmFj bGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBTYWVlZCBNYWhhbWVlZCA8c2FlZWRtQG1lbGxhbm94LmNv bT4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnBnYS90bHMu YyB8IDE0ICsrKysrKysrKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTEgaW5zZXJ0aW9ucygrKSwg MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5v eC9tbHg1L2NvcmUvZnBnYS90bHMuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21s eDUvY29yZS9mcGdhL3Rscy5jCmluZGV4IDVjZjVmMmE5ZDUxZi4uOGRlNjRlODhjNjcwIDEwMDY0 NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnBnYS90bHMu YworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnBnYS90bHMu YwpAQCAtMjE3LDE1ICsyMTcsMjEgQEAgaW50IG1seDVfZnBnYV90bHNfcmVzeW5jX3J4KHN0cnVj dCBtbHg1X2NvcmVfZGV2ICptZGV2LCB1MzIgaGFuZGxlLCB1MzIgc2VxLAogCXZvaWQgKmNtZDsK IAlpbnQgcmV0OwogCisJcmN1X3JlYWRfbG9jaygpOworCWZsb3cgPSBpZHJfZmluZCgmbWRldi0+ ZnBnYS0+dGxzLT5yeF9pZHIsIG50b2hsKGhhbmRsZSkpOworCXJjdV9yZWFkX3VubG9jaygpOwor CisJaWYgKCFmbG93KSB7CisJCVdBUk5fT05DRSgxLCAiUmVjZWl2ZWQgTlVMTCBwb2ludGVyIGZv ciBoYW5kbGVcbiIpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKIAlidWYgPSBremFsbG9jKHNp emUsIEdGUF9BVE9NSUMpOwogCWlmICghYnVmKQogCQlyZXR1cm4gLUVOT01FTTsKIAogCWNtZCA9 IChidWYgKyAxKTsKIAotCXJjdV9yZWFkX2xvY2soKTsKLQlmbG93ID0gaWRyX2ZpbmQoJm1kZXYt PmZwZ2EtPnRscy0+cnhfaWRyLCBudG9obChoYW5kbGUpKTsKLQlyY3VfcmVhZF91bmxvY2soKTsK IAltbHg1X2ZwZ2FfdGxzX2Zsb3dfdG9fY21kKGZsb3csIGNtZCk7CiAKIAlNTFg1X1NFVCh0bHNf Y21kLCBjbWQsIHN3aWQsIG50b2hsKGhhbmRsZSkpOwpAQCAtMjM4LDYgKzI0NCw4IEBAIGludCBt bHg1X2ZwZ2FfdGxzX3Jlc3luY19yeChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqbWRldiwgdTMyIGhh bmRsZSwgdTMyIHNlcSwKIAlidWYtPmNvbXBsZXRlID0gbWx4X3Rsc19rZnJlZV9jb21wbGV0ZTsK IAogCXJldCA9IG1seDVfZnBnYV9zYnVfY29ubl9zZW5kbXNnKG1kZXYtPmZwZ2EtPnRscy0+Y29u biwgYnVmKTsKKwlpZiAocmV0IDwgMCkKKwkJa2ZyZWUoYnVmKTsKIAogCXJldHVybiByZXQ7CiB9 Ci0tIAoyLjIwLjEKCgpGcm9tIDM4MTFiZjE2MWU3ODQwNTI4ZWUzMDVmNGNlMDU2NjVhYmJmZDhl OWUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEh1eSBOZ3V5ZW4gPGh1eW5AbWVsbGFu b3guY29tPgpEYXRlOiBUaHUsIDcgTWFyIDIwMTkgMTQ6NDk6NTAgLTA2MDAKU3ViamVjdDogW1BB VENIIDMyLzMzXSBuZXQvbWx4NWU6IFVwZGF0ZSB4b2ZmIGZvcm11bGEKClsgVXBzdHJlYW0gY29t bWl0IDVlYzk4M2U5MjRjNzk3OGFhZWMzY2Y4Njc5ZWNlOTQzNjUwOGJiMjAgXQoKU2V0IG1pbmlt dW0gc3BlZWQgaW4geG9mZiB0aHJlc2hvbGQgZm9ybXVsYSB0byA0MEdicHMKCkZpeGVzOiAwNjk2 ZDYwODUzZDUgKCJuZXQvbWx4NWU6IFJlY2VpdmUgYnVmZmVyIGNvbmZpZ3VyYXRpb24iKQpTaWdu ZWQtb2ZmLWJ5OiBIdXkgTmd1eWVuIDxodXluQG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTog U2FlZWQgTWFoYW1lZWQgPHNhZWVkbUBtZWxsYW5veC5jb20+Ci0tLQogLi4uL25ldC9ldGhlcm5l dC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcG9ydF9idWZmZXIuYyAgfCAxMSArKysrKystLS0tLQog MSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcG9ydF9idWZm ZXIuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9wb3J0X2J1 ZmZlci5jCmluZGV4IGVhYzI0NWE5M2Y5MS4uZjAwZGUwYzk4N2NkIDEwMDY0NAotLS0gYS9kcml2 ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcG9ydF9idWZmZXIuYworKysg Yi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcG9ydF9idWZmZXIu YwpAQCAtMTIyLDcgKzEyMiw5IEBAIHN0YXRpYyBpbnQgcG9ydF9zZXRfYnVmZmVyKHN0cnVjdCBt bHg1ZV9wcml2ICpwcml2LAogCXJldHVybiBlcnI7CiB9CiAKLS8qIHhvZmYgPSAoKDMwMSsyLjE2 ICogbGVuIFttXSkgKiBzcGVlZCBbR2Jwc10gKyAyLjcyIE1UVSBbQl0pICovCisvKiB4b2ZmID0g KCgzMDErMi4xNiAqIGxlbiBbbV0pICogc3BlZWQgW0dicHNdICsgMi43MiBNVFUgW0JdKQorICog bWluaW11bSBzcGVlZCB2YWx1ZSBpcyA0MEdicHMKKyAqLwogc3RhdGljIHUzMiBjYWxjdWxhdGVf eG9mZihzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdiwgdW5zaWduZWQgaW50IG10dSkKIHsKIAl1MzIg c3BlZWQ7CkBAIC0xMzAsMTAgKzEzMiw5IEBAIHN0YXRpYyB1MzIgY2FsY3VsYXRlX3hvZmYoc3Ry dWN0IG1seDVlX3ByaXYgKnByaXYsIHVuc2lnbmVkIGludCBtdHUpCiAJaW50IGVycjsKIAogCWVy ciA9IG1seDVlX3BvcnRfbGlua3NwZWVkKHByaXYtPm1kZXYsICZzcGVlZCk7Ci0JaWYgKGVycikg ewotCQltbHg1X2NvcmVfd2Fybihwcml2LT5tZGV2LCAiY2Fubm90IGdldCBwb3J0IHNwZWVkXG4i KTsKLQkJcmV0dXJuIDA7Ci0JfQorCWlmIChlcnIpCisJCXNwZWVkID0gU1BFRURfNDAwMDA7CisJ c3BlZWQgPSBtYXhfdCh1MzIsIHNwZWVkLCBTUEVFRF80MDAwMCk7CiAKIAl4b2ZmID0gKDMwMSAr IDIxNiAqIHByaXYtPmRjYnguY2FibGVfbGVuIC8gMTAwKSAqIHNwZWVkIC8gMTAwMCArIDI3MiAq IG10dSAvIDEwMDsKIAotLSAKMi4yMC4xCgoKRnJvbSBmOGI3M2YyZjZhYzYxZGU4ZjYxZDg3NDg5 ZmU2M2M3NGNlZTFmMDZkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBIdXkgTmd1eWVu IDxodXluQG1lbGxhbm94LmNvbT4KRGF0ZTogVGh1LCA3IE1hciAyMDE5IDE0OjA3OjMyIC0wNjAw ClN1YmplY3Q6IFtQQVRDSCAzMy8zM10gbmV0L21seDVlOiBVcGRhdGUgeG9uIGZvcm11bGEKClsg VXBzdHJlYW0gY29tbWl0IGUyODQwOGU5OGJjZWQxMjMwMzg4NTdiNmUzYzgxZmExMmEyZTNlNjgg XQoKU2V0IHhvbiA9IHhvZmYgLSBuZXRkZXYncyBtYXhfbXR1LgpuZXRkZXYncyBtYXhfbXR1IHdp bGwgZ2l2ZSBlbm91Z2ggdGltZSBmb3IgdGhlIHBhdXNlIGZyYW1lIHRvCmFycml2ZSBhdCB0aGUg c2VuZGVyLgoKRml4ZXM6IDA2OTZkNjA4NTNkNSAoIm5ldC9tbHg1ZTogUmVjZWl2ZSBidWZmZXIg Y29uZmlndXJhdGlvbiIpClNpZ25lZC1vZmYtYnk6IEh1eSBOZ3V5ZW4gPGh1eW5AbWVsbGFub3gu Y29tPgpTaWduZWQtb2ZmLWJ5OiBTYWVlZCBNYWhhbWVlZCA8c2FlZWRtQG1lbGxhbm94LmNvbT4K LS0tCiAuLi4vbWVsbGFub3gvbWx4NS9jb3JlL2VuL3BvcnRfYnVmZmVyLmMgICAgICAgfCAyOCAr KysrKysrKysrKy0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTYgaW5zZXJ0aW9ucygrKSwgMTIg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gv bWx4NS9jb3JlL2VuL3BvcnRfYnVmZmVyLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5v eC9tbHg1L2NvcmUvZW4vcG9ydF9idWZmZXIuYwppbmRleCBmMDBkZTBjOTg3Y2QuLjRhYjBkMDMw YjU0NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3Jl L2VuL3BvcnRfYnVmZmVyLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4 NS9jb3JlL2VuL3BvcnRfYnVmZmVyLmMKQEAgLTE0Myw3ICsxNDMsNyBAQCBzdGF0aWMgdTMyIGNh bGN1bGF0ZV94b2ZmKHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2LCB1bnNpZ25lZCBpbnQgbXR1KQog fQogCiBzdGF0aWMgaW50IHVwZGF0ZV94b2ZmX3RocmVzaG9sZChzdHJ1Y3QgbWx4NWVfcG9ydF9i dWZmZXIgKnBvcnRfYnVmZmVyLAotCQkJCSB1MzIgeG9mZiwgdW5zaWduZWQgaW50IG10dSkKKwkJ CQkgdTMyIHhvZmYsIHVuc2lnbmVkIGludCBtYXhfbXR1KQogewogCWludCBpOwogCkBAIC0xNTUs MTEgKzE1NSwxMiBAQCBzdGF0aWMgaW50IHVwZGF0ZV94b2ZmX3RocmVzaG9sZChzdHJ1Y3QgbWx4 NWVfcG9ydF9idWZmZXIgKnBvcnRfYnVmZmVyLAogCQl9CiAKIAkJaWYgKHBvcnRfYnVmZmVyLT5i dWZmZXJbaV0uc2l6ZSA8Ci0JCSAgICAoeG9mZiArIG10dSArICgxIDw8IE1MWDVFX0JVRkZFUl9D RUxMX1NISUZUKSkpCisJCSAgICAoeG9mZiArIG1heF9tdHUgKyAoMSA8PCBNTFg1RV9CVUZGRVJf Q0VMTF9TSElGVCkpKQogCQkJcmV0dXJuIC1FTk9NRU07CiAKIAkJcG9ydF9idWZmZXItPmJ1ZmZl cltpXS54b2ZmID0gcG9ydF9idWZmZXItPmJ1ZmZlcltpXS5zaXplIC0geG9mZjsKLQkJcG9ydF9i dWZmZXItPmJ1ZmZlcltpXS54b24gID0gcG9ydF9idWZmZXItPmJ1ZmZlcltpXS54b2ZmIC0gbXR1 OworCQlwb3J0X2J1ZmZlci0+YnVmZmVyW2ldLnhvbiAgPQorCQkJcG9ydF9idWZmZXItPmJ1ZmZl cltpXS54b2ZmIC0gbWF4X210dTsKIAl9CiAKIAlyZXR1cm4gMDsKQEAgLTE2Nyw3ICsxNjgsNyBA QCBzdGF0aWMgaW50IHVwZGF0ZV94b2ZmX3RocmVzaG9sZChzdHJ1Y3QgbWx4NWVfcG9ydF9idWZm ZXIgKnBvcnRfYnVmZmVyLAogCiAvKioKICAqIHVwZGF0ZV9idWZmZXJfbG9zc3koKQotICogICBt dHU6IGRldmljZSdzIE1UVQorICogICBtYXhfbXR1OiBuZXRkZXYncyBtYXhfbXR1CiAgKiAgIHBm Y19lbjogPGlucHV0PiBjdXJyZW50IHBmYyBjb25maWd1cmF0aW9uCiAgKiAgIGJ1ZmZlcjogPGlu cHV0PiBjdXJyZW50IHByaW8gdG8gYnVmZmVyIG1hcHBpbmcKICAqICAgeG9mZjogICA8aW5wdXQ+ IHhvZmYgdmFsdWUKQEAgLTE4NCw3ICsxODUsNyBAQCBzdGF0aWMgaW50IHVwZGF0ZV94b2ZmX3Ro cmVzaG9sZChzdHJ1Y3QgbWx4NWVfcG9ydF9idWZmZXIgKnBvcnRfYnVmZmVyLAogICogICAgIFJl dHVybiAwIGlmIG5vIGVycm9yLgogICogICAgIFNldCBjaGFuZ2UgdG8gdHJ1ZSBpZiBidWZmZXIg Y29uZmlndXJhdGlvbiBpcyBtb2RpZmllZC4KICAqLwotc3RhdGljIGludCB1cGRhdGVfYnVmZmVy X2xvc3N5KHVuc2lnbmVkIGludCBtdHUsCitzdGF0aWMgaW50IHVwZGF0ZV9idWZmZXJfbG9zc3ko dW5zaWduZWQgaW50IG1heF9tdHUsCiAJCQkgICAgICAgdTggcGZjX2VuLCB1OCAqYnVmZmVyLCB1 MzIgeG9mZiwKIAkJCSAgICAgICBzdHJ1Y3QgbWx4NWVfcG9ydF9idWZmZXIgKnBvcnRfYnVmZmVy LAogCQkJICAgICAgIGJvb2wgKmNoYW5nZSkKQEAgLTIyMSw3ICsyMjIsNyBAQCBzdGF0aWMgaW50 IHVwZGF0ZV9idWZmZXJfbG9zc3kodW5zaWduZWQgaW50IG10dSwKIAl9CiAKIAlpZiAoY2hhbmdl ZCkgewotCQllcnIgPSB1cGRhdGVfeG9mZl90aHJlc2hvbGQocG9ydF9idWZmZXIsIHhvZmYsIG10 dSk7CisJCWVyciA9IHVwZGF0ZV94b2ZmX3RocmVzaG9sZChwb3J0X2J1ZmZlciwgeG9mZiwgbWF4 X210dSk7CiAJCWlmIChlcnIpCiAJCQlyZXR1cm4gZXJyOwogCkBAIC0yMzEsNiArMjMyLDcgQEAg c3RhdGljIGludCB1cGRhdGVfYnVmZmVyX2xvc3N5KHVuc2lnbmVkIGludCBtdHUsCiAJcmV0dXJu IDA7CiB9CiAKKyNkZWZpbmUgTUlOSU1VTV9NQVhfTVRVIDkyMTYKIGludCBtbHg1ZV9wb3J0X21h bnVhbF9idWZmZXJfY29uZmlnKHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2LAogCQkJCSAgICB1MzIg Y2hhbmdlLCB1bnNpZ25lZCBpbnQgbXR1LAogCQkJCSAgICBzdHJ1Y3QgaWVlZV9wZmMgKnBmYywK QEAgLTI0MiwxMiArMjQ0LDE0IEBAIGludCBtbHg1ZV9wb3J0X21hbnVhbF9idWZmZXJfY29uZmln KHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2LAogCWJvb2wgdXBkYXRlX3ByaW8yYnVmZmVyID0gZmFs c2U7CiAJdTggYnVmZmVyW01MWDVFX01BWF9QUklPUklUWV07CiAJYm9vbCB1cGRhdGVfYnVmZmVy ID0gZmFsc2U7CisJdW5zaWduZWQgaW50IG1heF9tdHU7CiAJdTMyIHRvdGFsX3VzZWQgPSAwOwog CXU4IGN1cnJfcGZjX2VuOwogCWludCBlcnI7CiAJaW50IGk7CiAKIAltbHg1ZV9kYmcoSFcsIHBy aXYsICIlczogY2hhbmdlPSV4XG4iLCBfX2Z1bmNfXywgY2hhbmdlKTsKKwltYXhfbXR1ID0gbWF4 X3QodW5zaWduZWQgaW50LCBwcml2LT5uZXRkZXYtPm1heF9tdHUsIE1JTklNVU1fTUFYX01UVSk7 CiAKIAllcnIgPSBtbHg1ZV9wb3J0X3F1ZXJ5X2J1ZmZlcihwcml2LCAmcG9ydF9idWZmZXIpOwog CWlmIChlcnIpCkBAIC0yNTUsNyArMjU5LDcgQEAgaW50IG1seDVlX3BvcnRfbWFudWFsX2J1ZmZl cl9jb25maWcoc3RydWN0IG1seDVlX3ByaXYgKnByaXYsCiAKIAlpZiAoY2hhbmdlICYgTUxYNUVf UE9SVF9CVUZGRVJfQ0FCTEVfTEVOKSB7CiAJCXVwZGF0ZV9idWZmZXIgPSB0cnVlOwotCQllcnIg PSB1cGRhdGVfeG9mZl90aHJlc2hvbGQoJnBvcnRfYnVmZmVyLCB4b2ZmLCBtdHUpOworCQllcnIg PSB1cGRhdGVfeG9mZl90aHJlc2hvbGQoJnBvcnRfYnVmZmVyLCB4b2ZmLCBtYXhfbXR1KTsKIAkJ aWYgKGVycikKIAkJCXJldHVybiBlcnI7CiAJfQpAQCAtMjY1LDcgKzI2OSw3IEBAIGludCBtbHg1 ZV9wb3J0X21hbnVhbF9idWZmZXJfY29uZmlnKHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2LAogCQlp ZiAoZXJyKQogCQkJcmV0dXJuIGVycjsKIAotCQllcnIgPSB1cGRhdGVfYnVmZmVyX2xvc3N5KG10 dSwgcGZjLT5wZmNfZW4sIGJ1ZmZlciwgeG9mZiwKKwkJZXJyID0gdXBkYXRlX2J1ZmZlcl9sb3Nz eShtYXhfbXR1LCBwZmMtPnBmY19lbiwgYnVmZmVyLCB4b2ZmLAogCQkJCQkgICZwb3J0X2J1ZmZl ciwgJnVwZGF0ZV9idWZmZXIpOwogCQlpZiAoZXJyKQogCQkJcmV0dXJuIGVycjsKQEAgLTI3Nyw4 ICsyODEsOCBAQCBpbnQgbWx4NWVfcG9ydF9tYW51YWxfYnVmZmVyX2NvbmZpZyhzdHJ1Y3QgbWx4 NWVfcHJpdiAqcHJpdiwKIAkJaWYgKGVycikKIAkJCXJldHVybiBlcnI7CiAKLQkJZXJyID0gdXBk YXRlX2J1ZmZlcl9sb3NzeShtdHUsIGN1cnJfcGZjX2VuLCBwcmlvMmJ1ZmZlciwgeG9mZiwKLQkJ CQkJICAmcG9ydF9idWZmZXIsICZ1cGRhdGVfYnVmZmVyKTsKKwkJZXJyID0gdXBkYXRlX2J1ZmZl cl9sb3NzeShtYXhfbXR1LCBjdXJyX3BmY19lbiwgcHJpbzJidWZmZXIsCisJCQkJCSAgeG9mZiwg JnBvcnRfYnVmZmVyLCAmdXBkYXRlX2J1ZmZlcik7CiAJCWlmIChlcnIpCiAJCQlyZXR1cm4gZXJy OwogCX0KQEAgLTMwMiw3ICszMDYsNyBAQCBpbnQgbWx4NWVfcG9ydF9tYW51YWxfYnVmZmVyX2Nv bmZpZyhzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdiwKIAkJCXJldHVybiAtRUlOVkFMOwogCiAJCXVw ZGF0ZV9idWZmZXIgPSB0cnVlOwotCQllcnIgPSB1cGRhdGVfeG9mZl90aHJlc2hvbGQoJnBvcnRf YnVmZmVyLCB4b2ZmLCBtdHUpOworCQllcnIgPSB1cGRhdGVfeG9mZl90aHJlc2hvbGQoJnBvcnRf YnVmZmVyLCB4b2ZmLCBtYXhfbXR1KTsKIAkJaWYgKGVycikKIAkJCXJldHVybiBlcnI7CiAJfQpA QCAtMzEwLDcgKzMxNCw3IEBAIGludCBtbHg1ZV9wb3J0X21hbnVhbF9idWZmZXJfY29uZmlnKHN0 cnVjdCBtbHg1ZV9wcml2ICpwcml2LAogCS8qIE5lZWQgdG8gdXBkYXRlIGJ1ZmZlciBjb25maWd1 cmF0aW9uIGlmIHhvZmYgdmFsdWUgaXMgY2hhbmdlZCAqLwogCWlmICghdXBkYXRlX2J1ZmZlciAm JiB4b2ZmICE9IHByaXYtPmRjYngueG9mZikgewogCQl1cGRhdGVfYnVmZmVyID0gdHJ1ZTsKLQkJ ZXJyID0gdXBkYXRlX3hvZmZfdGhyZXNob2xkKCZwb3J0X2J1ZmZlciwgeG9mZiwgbXR1KTsKKwkJ ZXJyID0gdXBkYXRlX3hvZmZfdGhyZXNob2xkKCZwb3J0X2J1ZmZlciwgeG9mZiwgbWF4X210dSk7 CiAJCWlmIChlcnIpCiAJCQlyZXR1cm4gZXJyOwogCX0KLS0gCjIuMjAuMQoK ----Next_Part(Tue_Apr__9_20_55_38_2019_143)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_50.mbox" RnJvbSBiZWJhZmM2NWJkZGY3M2JmYzljODFjZDI0NmM1N2ZmMDA3YTU3MmRiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIYWl5YW5nIFpoYW5nIDxoYWl5YW5nekBtaWNyb3NvZnQuY29t PgpEYXRlOiBUaHUsIDI4IE1hciAyMDE5IDE5OjQwOjM2ICswMDAwClN1YmplY3Q6IFtQQVRDSCAw MS8zNl0gaHZfbmV0dnNjOiBGaXggdW53YW50ZWQgd2FrZXVwIGFmdGVyIHR4X2Rpc2FibGUKClsg VXBzdHJlYW0gY29tbWl0IDFiNzA0YzRhMWJhOTU1NzQ4MzJlNzMwZjIzODE3YjY1MWRiMmFhNTkg XQoKQWZ0ZXIgcXVldWUgc3RvcHBlZCwgdGhlIHdha2V1cCBtZWNoYW5pc20gbWF5IHdha2UgaXQg dXAgYWdhaW4Kd2hlbiByaW5nIGJ1ZmZlciB1c2FnZSBpcyBsb3dlciB0aGFuIGEgdGhyZXNob2xk LiBUaGlzIG1heSBjYXVzZQpzZW5kIHBhdGggcGFuaWMgb24gTlVMTCBwb2ludGVyIHdoZW4gd2Ug c3RvcHBlZCBhbGwgdHggcXVldWVzIGluCm5ldHZzY19kZXRhY2ggYW5kIHN0YXJ0IHJlbW92aW5n IHRoZSBuZXR2c2MgZGV2aWNlLgoKVGhpcyBwYXRjaCBmaXggaXQgYnkgYWRkaW5nIGEgdHhfZGlz YWJsZSBmbGFnIHRvIHByZXZlbnQgdW53YW50ZWQKcXVldWUgd2FrZXVwLgoKRml4ZXM6IDdiMmVl NTBjMGNkNSAoImh2X25ldHZzYzogY29tbW9uIGRldGFjaCBsb2dpYyIpClJlcG9ydGVkLWJ5OiBN b2hhbW1lZCBHYW1hbCA8bWdhbWFsQHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IEhhaXlhbmcg WmhhbmcgPGhhaXlhbmd6QG1pY3Jvc29mdC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1p bGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9oeXBlcnYvaHlwZXJ2 X25ldC5oIHwgIDEgKwogZHJpdmVycy9uZXQvaHlwZXJ2L25ldHZzYy5jICAgICB8ICA2ICsrKyst LQogZHJpdmVycy9uZXQvaHlwZXJ2L25ldHZzY19kcnYuYyB8IDMyICsrKysrKysrKysrKysrKysr KysrKysrKysrLS0tLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDMxIGluc2VydGlvbnMoKyksIDggZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaHlwZXJ2L2h5cGVydl9uZXQuaCBi L2RyaXZlcnMvbmV0L2h5cGVydi9oeXBlcnZfbmV0LmgKaW5kZXggZTg1OWFlMmU0MmQ1Li40OWY0 MWI2NDA3N2IgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2h5cGVydi9oeXBlcnZfbmV0LmgKKysr IGIvZHJpdmVycy9uZXQvaHlwZXJ2L2h5cGVydl9uZXQuaApAQCAtOTg3LDYgKzk4Nyw3IEBAIHN0 cnVjdCBuZXR2c2NfZGV2aWNlIHsKIAogCXdhaXRfcXVldWVfaGVhZF90IHdhaXRfZHJhaW47CiAJ Ym9vbCBkZXN0cm95OworCWJvb2wgdHhfZGlzYWJsZTsgLyogaWYgdHJ1ZSwgZG8gbm90IHdha2Ug dXAgcXVldWUgYWdhaW4gKi8KIAogCS8qIFJlY2VpdmUgYnVmZmVyIGFsbG9jYXRlZCBieSB1cyBi dXQgbWFuYWdlcyBieSBOZXRWU1AgKi8KIAl2b2lkICpyZWN2X2J1ZjsKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbmV0L2h5cGVydi9uZXR2c2MuYyBiL2RyaXZlcnMvbmV0L2h5cGVydi9uZXR2c2MuYwpp bmRleCA4MTNkMTk1YmJkNTcuLmUwZGNlMzczY2RkOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQv aHlwZXJ2L25ldHZzYy5jCisrKyBiL2RyaXZlcnMvbmV0L2h5cGVydi9uZXR2c2MuYwpAQCAtMTEw LDYgKzExMCw3IEBAIHN0YXRpYyBzdHJ1Y3QgbmV0dnNjX2RldmljZSAqYWxsb2NfbmV0X2Rldmlj ZSh2b2lkKQogCiAJaW5pdF93YWl0cXVldWVfaGVhZCgmbmV0X2RldmljZS0+d2FpdF9kcmFpbik7 CiAJbmV0X2RldmljZS0+ZGVzdHJveSA9IGZhbHNlOworCW5ldF9kZXZpY2UtPnR4X2Rpc2FibGUg PSBmYWxzZTsKIAogCW5ldF9kZXZpY2UtPm1heF9wa3QgPSBSTkRJU19NQVhfUEtUX0RFRkFVTFQ7 CiAJbmV0X2RldmljZS0+cGt0X2FsaWduID0gUk5ESVNfUEtUX0FMSUdOX0RFRkFVTFQ7CkBAIC03 MTksNyArNzIwLDcgQEAgc3RhdGljIHZvaWQgbmV0dnNjX3NlbmRfdHhfY29tcGxldGUoc3RydWN0 IG5ldF9kZXZpY2UgKm5kZXYsCiAJfSBlbHNlIHsKIAkJc3RydWN0IG5ldGRldl9xdWV1ZSAqdHhx ID0gbmV0ZGV2X2dldF90eF9xdWV1ZShuZGV2LCBxX2lkeCk7CiAKLQkJaWYgKG5ldGlmX3R4X3F1 ZXVlX3N0b3BwZWQodHhxKSAmJgorCQlpZiAobmV0aWZfdHhfcXVldWVfc3RvcHBlZCh0eHEpICYm ICFuZXRfZGV2aWNlLT50eF9kaXNhYmxlICYmCiAJCSAgICAoaHZfZ2V0X2F2YWlsX3RvX3dyaXRl X3BlcmNlbnQoJmNoYW5uZWwtPm91dGJvdW5kKSA+CiAJCSAgICAgUklOR19BVkFJTF9QRVJDRU5U X0hJV0FURVIgfHwgcXVldWVfc2VuZHMgPCAxKSkgewogCQkJbmV0aWZfdHhfd2FrZV9xdWV1ZSh0 eHEpOwpAQCAtODc0LDcgKzg3NSw4IEBAIHN0YXRpYyBpbmxpbmUgaW50IG5ldHZzY19zZW5kX3Br dCgKIAl9IGVsc2UgaWYgKHJldCA9PSAtRUFHQUlOKSB7CiAJCW5ldGlmX3R4X3N0b3BfcXVldWUo dHhxKTsKIAkJbmRldl9jdHgtPmV0aF9zdGF0cy5zdG9wX3F1ZXVlKys7Ci0JCWlmIChhdG9taWNf cmVhZCgmbnZjaGFuLT5xdWV1ZV9zZW5kcykgPCAxKSB7CisJCWlmIChhdG9taWNfcmVhZCgmbnZj aGFuLT5xdWV1ZV9zZW5kcykgPCAxICYmCisJCSAgICAhbmV0X2RldmljZS0+dHhfZGlzYWJsZSkg ewogCQkJbmV0aWZfdHhfd2FrZV9xdWV1ZSh0eHEpOwogCQkJbmRldl9jdHgtPmV0aF9zdGF0cy53 YWtlX3F1ZXVlKys7CiAJCQlyZXQgPSAtRU5PU1BDOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQv aHlwZXJ2L25ldHZzY19kcnYuYyBiL2RyaXZlcnMvbmV0L2h5cGVydi9uZXR2c2NfZHJ2LmMKaW5k ZXggY2Y0ODk3MDQzZTgzLi5iMjBmYjBmYjU5NWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2h5 cGVydi9uZXR2c2NfZHJ2LmMKKysrIGIvZHJpdmVycy9uZXQvaHlwZXJ2L25ldHZzY19kcnYuYwpA QCAtMTA5LDYgKzEwOSwxNSBAQCBzdGF0aWMgdm9pZCBuZXR2c2Nfc2V0X3J4X21vZGUoc3RydWN0 IG5ldF9kZXZpY2UgKm5ldCkKIAlyY3VfcmVhZF91bmxvY2soKTsKIH0KIAorc3RhdGljIHZvaWQg bmV0dnNjX3R4X2VuYWJsZShzdHJ1Y3QgbmV0dnNjX2RldmljZSAqbnZzY2RldiwKKwkJCSAgICAg c3RydWN0IG5ldF9kZXZpY2UgKm5kZXYpCit7CisJbnZzY2Rldi0+dHhfZGlzYWJsZSA9IGZhbHNl OworCXZpcnRfd21iKCk7IC8qIGVuc3VyZSBxdWV1ZSB3YWtlIHVwIG1lY2hhbmlzbSBpcyBvbiAq LworCisJbmV0aWZfdHhfd2FrZV9hbGxfcXVldWVzKG5kZXYpOworfQorCiBzdGF0aWMgaW50IG5l dHZzY19vcGVuKHN0cnVjdCBuZXRfZGV2aWNlICpuZXQpCiB7CiAJc3RydWN0IG5ldF9kZXZpY2Vf Y29udGV4dCAqbmRldl9jdHggPSBuZXRkZXZfcHJpdihuZXQpOwpAQCAtMTI5LDcgKzEzOCw3IEBA IHN0YXRpYyBpbnQgbmV0dnNjX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKm5ldCkKIAlyZGV2ID0g bnZkZXYtPmV4dGVuc2lvbjsKIAlpZiAoIXJkZXYtPmxpbmtfc3RhdGUpIHsKIAkJbmV0aWZfY2Fy cmllcl9vbihuZXQpOwotCQluZXRpZl90eF93YWtlX2FsbF9xdWV1ZXMobmV0KTsKKwkJbmV0dnNj X3R4X2VuYWJsZShudmRldiwgbmV0KTsKIAl9CiAKIAlpZiAodmZfbmV0ZGV2KSB7CkBAIC0xODQs NiArMTkzLDE3IEBAIHN0YXRpYyBpbnQgbmV0dnNjX3dhaXRfdW50aWxfZW1wdHkoc3RydWN0IG5l dHZzY19kZXZpY2UgKm52ZGV2KQogCX0KIH0KIAorc3RhdGljIHZvaWQgbmV0dnNjX3R4X2Rpc2Fi bGUoc3RydWN0IG5ldHZzY19kZXZpY2UgKm52c2NkZXYsCisJCQkgICAgICBzdHJ1Y3QgbmV0X2Rl dmljZSAqbmRldikKK3sKKwlpZiAobnZzY2RldikgeworCQludnNjZGV2LT50eF9kaXNhYmxlID0g dHJ1ZTsKKwkJdmlydF93bWIoKTsgLyogZW5zdXJlIHR4cSB3aWxsIG5vdCB3YWtlIHVwIGFmdGVy IHN0b3AgKi8KKwl9CisKKwluZXRpZl90eF9kaXNhYmxlKG5kZXYpOworfQorCiBzdGF0aWMgaW50 IG5ldHZzY19jbG9zZShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0KQogewogCXN0cnVjdCBuZXRfZGV2 aWNlX2NvbnRleHQgKm5ldF9kZXZpY2VfY3R4ID0gbmV0ZGV2X3ByaXYobmV0KTsKQEAgLTE5Miw3 ICsyMTIsNyBAQCBzdGF0aWMgaW50IG5ldHZzY19jbG9zZShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0 KQogCXN0cnVjdCBuZXR2c2NfZGV2aWNlICpudmRldiA9IHJ0bmxfZGVyZWZlcmVuY2UobmV0X2Rl dmljZV9jdHgtPm52ZGV2KTsKIAlpbnQgcmV0OwogCi0JbmV0aWZfdHhfZGlzYWJsZShuZXQpOwor CW5ldHZzY190eF9kaXNhYmxlKG52ZGV2LCBuZXQpOwogCiAJLyogTm8gbmVlZCB0byBjbG9zZSBy bmRpcyBmaWx0ZXIgaWYgaXQgaXMgcmVtb3ZlZCBhbHJlYWR5ICovCiAJaWYgKCFudmRldikKQEAg LTkyMCw3ICs5NDAsNyBAQCBzdGF0aWMgaW50IG5ldHZzY19kZXRhY2goc3RydWN0IG5ldF9kZXZp Y2UgKm5kZXYsCiAKIAkvKiBJZiBkZXZpY2Ugd2FzIHVwIChyZWNlaXZpbmcpIHRoZW4gc2h1dGRv d24gKi8KIAlpZiAobmV0aWZfcnVubmluZyhuZGV2KSkgewotCQluZXRpZl90eF9kaXNhYmxlKG5k ZXYpOworCQluZXR2c2NfdHhfZGlzYWJsZShudmRldiwgbmRldik7CiAKIAkJcmV0ID0gcm5kaXNf ZmlsdGVyX2Nsb3NlKG52ZGV2KTsKIAkJaWYgKHJldCkgewpAQCAtMTkwOCw3ICsxOTI4LDcgQEAg c3RhdGljIHZvaWQgbmV0dnNjX2xpbmtfY2hhbmdlKHN0cnVjdCB3b3JrX3N0cnVjdCAqdykKIAkJ aWYgKHJkZXYtPmxpbmtfc3RhdGUpIHsKIAkJCXJkZXYtPmxpbmtfc3RhdGUgPSBmYWxzZTsKIAkJ CW5ldGlmX2NhcnJpZXJfb24obmV0KTsKLQkJCW5ldGlmX3R4X3dha2VfYWxsX3F1ZXVlcyhuZXQp OworCQkJbmV0dnNjX3R4X2VuYWJsZShuZXRfZGV2aWNlLCBuZXQpOwogCQl9IGVsc2UgewogCQkJ bm90aWZ5ID0gdHJ1ZTsKIAkJfQpAQCAtMTkxOCw3ICsxOTM4LDcgQEAgc3RhdGljIHZvaWQgbmV0 dnNjX2xpbmtfY2hhbmdlKHN0cnVjdCB3b3JrX3N0cnVjdCAqdykKIAkJaWYgKCFyZGV2LT5saW5r X3N0YXRlKSB7CiAJCQlyZGV2LT5saW5rX3N0YXRlID0gdHJ1ZTsKIAkJCW5ldGlmX2NhcnJpZXJf b2ZmKG5ldCk7Ci0JCQluZXRpZl90eF9zdG9wX2FsbF9xdWV1ZXMobmV0KTsKKwkJCW5ldHZzY190 eF9kaXNhYmxlKG5ldF9kZXZpY2UsIG5ldCk7CiAJCX0KIAkJa2ZyZWUoZXZlbnQpOwogCQlicmVh azsKQEAgLTE5MjcsNyArMTk0Nyw3IEBAIHN0YXRpYyB2b2lkIG5ldHZzY19saW5rX2NoYW5nZShz dHJ1Y3Qgd29ya19zdHJ1Y3QgKncpCiAJCWlmICghcmRldi0+bGlua19zdGF0ZSkgewogCQkJcmRl di0+bGlua19zdGF0ZSA9IHRydWU7CiAJCQluZXRpZl9jYXJyaWVyX29mZihuZXQpOwotCQkJbmV0 aWZfdHhfc3RvcF9hbGxfcXVldWVzKG5ldCk7CisJCQluZXR2c2NfdHhfZGlzYWJsZShuZXRfZGV2 aWNlLCBuZXQpOwogCQkJZXZlbnQtPmV2ZW50ID0gUk5ESVNfU1RBVFVTX01FRElBX0NPTk5FQ1Q7 CiAJCQlzcGluX2xvY2tfaXJxc2F2ZSgmbmRldl9jdHgtPmxvY2ssIGZsYWdzKTsKIAkJCWxpc3Rf YWRkKCZldmVudC0+bGlzdCwgJm5kZXZfY3R4LT5yZWNvbmZpZ19ldmVudHMpOwotLSAKMi4yMC4x CgoKRnJvbSBkMDQ1Mzg4N2Q3OWUwMmFhN2Q4YmJkODE4OWViYzI0NjIxODFjYmM0IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUaG9tYXMgRmFsY29uIDx0bGZhbGNvbkBsaW51eC5pYm0u Y29tPgpEYXRlOiBUaHUsIDQgQXByIDIwMTkgMTg6NTg6MjYgLTA1MDAKU3ViamVjdDogW1BBVENI IDAyLzM2XSBpYm12bmljOiBGaXggY29tcGxldGlvbiBzdHJ1Y3R1cmUgaW5pdGlhbGl6YXRpb24K ClsgVXBzdHJlYW0gY29tbWl0IGJiZDY2OWE4NjhiYmE1OTFmZmQzOGI3YmM3NWE3YjM2MWJiNTRi MDQgXQoKRml4IGRldmljZSBpbml0aWFsaXphdGlvbiBjb21wbGV0aW9uIGhhbmRsaW5nIGZvciB2 TklDIGFkYXB0ZXJzLgpJbml0aWFsaXplIHRoZSBjb21wbGV0aW9uIHN0cnVjdHVyZSBvbiBwcm9i ZSBhbmQgcmVpbml0aWFsaXplIHdoZW4gbmVlZGVkLgpUaGlzIGFsc28gZml4ZXMgYSByYWNlIGNv bmRpdGlvbiBkdXJpbmcga2R1bXAgd2hlcmUgdGhlIGRyaXZlciBjYW4gYXR0ZW1wdAp0byBhY2Nl c3MgdGhlIGNvbXBsZXRpb24gc3RydWN0IGJlZm9yZSBpdCBpcyBpbml0aWFsaXplZDoKClVuYWJs ZSB0byBoYW5kbGUga2VybmVsIHBhZ2luZyByZXF1ZXN0IGZvciBkYXRhIGF0IGFkZHJlc3MgMHgw MDAwMDAwMApGYXVsdGluZyBpbnN0cnVjdGlvbiBhZGRyZXNzOiAweGMwMDAwMDAwMDgxYWNiZTAK T29wczogS2VybmVsIGFjY2VzcyBvZiBiYWQgYXJlYSwgc2lnOiAxMSBbIzFdCkxFIFNNUCBOUl9D UFVTPTIwNDggTlVNQSBwU2VyaWVzCk1vZHVsZXMgbGlua2VkIGluOiBpYm12bmljKCspIGlibXZl dGggc3VucnBjIG92ZXJsYXkgc3F1YXNoZnMgbG9vcApDUFU6IDE5IFBJRDogMzAxIENvbW06IHN5 c3RlbWQtdWRldmQgTm90IHRhaW50ZWQgNC4xOC4wLTY0LmVsOC5wcGM2NGxlICMxCk5JUDogIGMw MDAwMDAwMDgxYWNiZTAgTFI6IGMwMDAwMDAwMDgxYWQ5NjQgQ1RSOiBjMDAwMDAwMDA4MWFkOTAw ClJFR1M6IGMwMDAwMDAwMjdmM2Y5OTAgVFJBUDogMDMwMCAgIE5vdCB0YWludGVkICAoNC4xOC4w LTY0LmVsOC5wcGM2NGxlKQpNU1I6ICA4MDAwMDAwMTAyODBiMDMzIDxTRixWRUMsVlNYLEVFLEZQ LE1FLElSLERSLFJJLExFLFRNW0VdPiBDUjogMjgyMjgyODggIFhFUjogMDAwMDAwMDYKQ0ZBUjog YzAwMDAwMDAwODAwODkzNCBEQVI6IDAwMDAwMDAwMDAwMDAwMDAgRFNJU1I6IDQwMDAwMDAwIElS UU1BU0s6IDEKR1BSMDA6IGMwMDAwMDAwMDgxYWQ5NjQgYzAwMDAwMDAyN2YzZmMxMCBjMDAwMDAw MDA5NWI1ODAwIGMwMDAwMDAwMjIxYjRlNTgKR1BSMDQ6IDAwMDAwMDAwMDAwMDAwMDMgMDAwMDAw MDAwMDAwMDAwMSAwMDAwNDlhMDg2OTE4NTgxIDAwMDAwMDAwMDAwMDAwZDQKR1BSMDg6IDAwMDAw MDAwMDAwMDAwMDcgMDAwMDAwMDAwMDAwMDAwMCBmZmZmZmZmZmZmZmZmZmU4IGQwMDAwMDAwMDE0 ZGRlMjgKR1BSMTI6IGMwMDAwMDAwMDgxYWQ5MDAgYzAwMDAwMDAwOWEwMGMwMCAwMDAwMDAwMDAw MDAwMDAxIDAwMDAwMDAwMDAwMDAxMDAKR1BSMTY6IDAwMDAwMDAwMDAwMDAwMzggMDAwMDAwMDAw MDAwMDAwNyBjMDAwMDAwMDA5NWUyMjMwIDAwMDAwMDAwMDAwMDAwMDYKR1BSMjA6IDAwMDAwMDAw MDA0MDAxNDAgMDAwMDAwMDAwMDAwMDAwMSBjMDAwMDAwMDA5MTBjODgwIDAwMDAwMDAwMDAwMDAw MDAKR1BSMjQ6IDAwMDAwMDAwMDAwMDAwMDAgMDAwMDAwMDAwMDAwMDAwNiAwMDAwMDAwMDAwMDAw MDAwIDAwMDAwMDAwMDAwMDAwMDMKR1BSMjg6IDAwMDAwMDAwMDAwMDAwMDEgMDAwMDAwMDAwMDAw MDAwMSBjMDAwMDAwMDIyMWI0ZTYwIGMwMDAwMDAwMjIxYjRlNTgKTklQIFtjMDAwMDAwMDA4MWFj YmUwXSBfX3dha2VfdXBfbG9ja2VkKzB4NTAvMHgxMDAKTFIgW2MwMDAwMDAwMDgxYWQ5NjRdIGNv bXBsZXRlKzB4NjQvMHhhMApDYWxsIFRyYWNlOgpbYzAwMDAwMDAyN2YzZmMxMF0gW2MwMDAwMDAw MjdmM2ZjNjBdIDB4YzAwMDAwMDAyN2YzZmM2MCAodW5yZWxpYWJsZSkKW2MwMDAwMDAwMjdmM2Zj NjBdIFtjMDAwMDAwMDA4MWFkOTY0XSBjb21wbGV0ZSsweDY0LzB4YTAKW2MwMDAwMDAwMjdmM2Zj YTBdIFtkMDAwMDAwMDAxNGRhZDU4XSBpYm12bmljX2hhbmRsZV9jcnErMHhjZTAvMHgxMTYwIFtp Ym12bmljXQpbYzAwMDAwMDAyN2YzZmQ1MF0gW2QwMDAwMDAwMDE0ZGIyNzBdIGlibXZuaWNfdGFz a2xldCsweDk4LzB4MTMwIFtpYm12bmljXQpbYzAwMDAwMDAyN2YzZmRhMF0gW2MwMDAwMDAwMDgx M2YzMzRdIHRhc2tsZXRfYWN0aW9uX2NvbW1vbi5pc3JhLjMrMHhjNC8weDFhMApbYzAwMDAwMDAy N2YzZmUwMF0gW2MwMDAwMDAwMDhjZDEzZjRdIF9fZG9fc29mdGlycSsweDE2NC8weDQwMApbYzAw MDAwMDAyN2YzZmVmMF0gW2MwMDAwMDAwMDgxM2VkNjRdIGlycV9leGl0KzB4MTg0LzB4MWMwCltj MDAwMDAwMDI3ZjNmZjIwXSBbYzAwMDAwMDAwODAxODhlOF0gX19kb19pcnErMHhiOC8weDIxMApb YzAwMDAwMDAyN2YzZmY5MF0gW2MwMDAwMDAwMDgwMmQwYTRdIGNhbGxfZG9faXJxKzB4MTQvMHgy NApbYzAwMDAwMDAyNmE1YjAxMF0gW2MwMDAwMDAwMDgwMThhZGNdIGRvX0lSUSsweDljLzB4MTMw CltjMDAwMDAwMDI2YTViMDYwXSBbYzAwMDAwMDAwODAwOGNlNF0gaGFyZHdhcmVfaW50ZXJydXB0 X2NvbW1vbisweDExNC8weDEyMAoKU2lnbmVkLW9mZi1ieTogVGhvbWFzIEZhbGNvbiA8dGxmYWxj b25AbGludXguaWJtLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBk YXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L2libS9pYm12bmljLmMgfCA1 ICsrKy0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2libS9pYm12bmljLmMgYi9kcml2ZXJz L25ldC9ldGhlcm5ldC9pYm0vaWJtdm5pYy5jCmluZGV4IDVlY2JiMWFkY2YzYi4uNTFjZmU5NWYz ZTI0IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9pYm0vaWJtdm5pYy5jCisrKyBi L2RyaXZlcnMvbmV0L2V0aGVybmV0L2libS9pYm12bmljLmMKQEAgLTE4ODUsNiArMTg4NSw3IEBA IHN0YXRpYyBpbnQgZG9faGFyZF9yZXNldChzdHJ1Y3QgaWJtdm5pY19hZGFwdGVyICphZGFwdGVy LAogCSAqLwogCWFkYXB0ZXItPnN0YXRlID0gVk5JQ19QUk9CRUQ7CiAKKwlyZWluaXRfY29tcGxl dGlvbigmYWRhcHRlci0+aW5pdF9kb25lKTsKIAlyYyA9IGluaXRfY3JxX3F1ZXVlKGFkYXB0ZXIp OwogCWlmIChyYykgewogCQluZXRkZXZfZXJyKGFkYXB0ZXItPm5ldGRldiwKQEAgLTQ2MjUsNyAr NDYyNiw3IEBAIHN0YXRpYyBpbnQgaWJtdm5pY19yZXNldF9pbml0KHN0cnVjdCBpYm12bmljX2Fk YXB0ZXIgKmFkYXB0ZXIpCiAJb2xkX251bV9yeF9xdWV1ZXMgPSBhZGFwdGVyLT5yZXFfcnhfcXVl dWVzOwogCW9sZF9udW1fdHhfcXVldWVzID0gYWRhcHRlci0+cmVxX3R4X3F1ZXVlczsKIAotCWlu aXRfY29tcGxldGlvbigmYWRhcHRlci0+aW5pdF9kb25lKTsKKwlyZWluaXRfY29tcGxldGlvbigm YWRhcHRlci0+aW5pdF9kb25lKTsKIAlhZGFwdGVyLT5pbml0X2RvbmVfcmMgPSAwOwogCWlibXZu aWNfc2VuZF9jcnFfaW5pdChhZGFwdGVyKTsKIAlpZiAoIXdhaXRfZm9yX2NvbXBsZXRpb25fdGlt ZW91dCgmYWRhcHRlci0+aW5pdF9kb25lLCB0aW1lb3V0KSkgewpAQCAtNDY4MCw3ICs0NjgxLDYg QEAgc3RhdGljIGludCBpYm12bmljX2luaXQoc3RydWN0IGlibXZuaWNfYWRhcHRlciAqYWRhcHRl cikKIAogCWFkYXB0ZXItPmZyb21fcGFzc2l2ZV9pbml0ID0gZmFsc2U7CiAKLQlpbml0X2NvbXBs ZXRpb24oJmFkYXB0ZXItPmluaXRfZG9uZSk7CiAJYWRhcHRlci0+aW5pdF9kb25lX3JjID0gMDsK IAlpYm12bmljX3NlbmRfY3JxX2luaXQoYWRhcHRlcik7CiAJaWYgKCF3YWl0X2Zvcl9jb21wbGV0 aW9uX3RpbWVvdXQoJmFkYXB0ZXItPmluaXRfZG9uZSwgdGltZW91dCkpIHsKQEAgLTQ3NTksNiAr NDc1OSw3IEBAIHN0YXRpYyBpbnQgaWJtdm5pY19wcm9iZShzdHJ1Y3QgdmlvX2RldiAqZGV2LCBj b25zdCBzdHJ1Y3QgdmlvX2RldmljZV9pZCAqaWQpCiAJSU5JVF9XT1JLKCZhZGFwdGVyLT5pYm12 bmljX3Jlc2V0LCBfX2libXZuaWNfcmVzZXQpOwogCUlOSVRfTElTVF9IRUFEKCZhZGFwdGVyLT5y d2lfbGlzdCk7CiAJc3Bpbl9sb2NrX2luaXQoJmFkYXB0ZXItPnJ3aV9sb2NrKTsKKwlpbml0X2Nv bXBsZXRpb24oJmFkYXB0ZXItPmluaXRfZG9uZSk7CiAJYWRhcHRlci0+cmVzZXR0aW5nID0gZmFs c2U7CiAKIAlhZGFwdGVyLT5tYWNfY2hhbmdlX3BlbmRpbmcgPSBmYWxzZTsKLS0gCjIuMjAuMQoK CkZyb20gYjNhNzQzY2I5ODJkNjMwODM0NmNkMWNlODAzYjU1ODM5NzI2ZDM1NiBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogU2hlZW5hIE1pcmEtYXRvIDxzaGVlbmEubWlyYS1hdG9AYWxs aWVkdGVsZXNpcy5jby5uej4KRGF0ZTogTW9uLCAxIEFwciAyMDE5IDEzOjA0OjQyICsxMzAwClN1 YmplY3Q6IFtQQVRDSCAwMy8zNl0gaXA2X3R1bm5lbDogTWF0Y2ggdG8gQVJQSFJEX1RVTk5FTDYg Zm9yIGRldiB0eXBlCgpbIFVwc3RyZWFtIGNvbW1pdCBiMmU1NGIwOWEzZDI5YzRkYjg4M2I5MjAy NzRjYThkY2E0ZDlmMDRkIF0KClRoZSBkZXZpY2UgdHlwZSBmb3IgaXA2IHR1bm5lbHMgaXMgc2V0 IHRvCkFSUEhSRF9UVU5ORUw2LiBIb3dldmVyLCB0aGUgaXA0aXA2X2VyciBmdW5jdGlvbgppcyBl eHBlY3RpbmcgdGhlIGRldmljZSB0eXBlIG9mIHRoZSB0dW5uZWwgdG8gYmUKQVJQSFJEX1RVTk5F TC4gIFNpbmNlIHRoZSBkZXZpY2UgdHlwZXMgZG8gbm90Cm1hdGNoLCB0aGUgZnVuY3Rpb24gZXhp dHMgYW5kIHRoZSBJQ01QIGVycm9yCnBhY2tldCBpcyBub3Qgc2VudCB0byB0aGUgb3JpZ2luYXRp bmcgaG9zdC4gTm90ZQp0aGF0IHRoZSBkZXZpY2UgdHlwZSBmb3IgSVB2NCB0dW5uZWxzIGlzIHNl dCB0bwpBUlBIUkRfVFVOTkVMLgoKRml4IGlzIHRvIGV4cGVjdCBhIHR1bm5lbCBkZXZpY2UgdHlw ZSBvZgpBUlBIUkRfVFVOTkVMNiBpbnN0ZWFkLiAgTm93IHRoZSB0dW5uZWwgZGV2aWNlCnR5cGUg bWF0Y2hlcyBhbmQgdGhlIElDTVAgZXJyb3IgcGFja2V0IGlzIHNlbnQKdG8gdGhlIG9yaWdpbmF0 aW5nIGhvc3QuCgpTaWduZWQtb2ZmLWJ5OiBTaGVlbmEgTWlyYS1hdG8gPHNoZWVuYS5taXJhLWF0 b0BhbGxpZWR0ZWxlc2lzLmNvLm56PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRh dmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjYvaXA2X3R1bm5lbC5jIHwgNCArKy0tCiAx IGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL25ldC9pcHY2L2lwNl90dW5uZWwuYyBiL25ldC9pcHY2L2lwNl90dW5uZWwuYwppbmRleCAw YzY0MDNjZjhiNTIuLmFkZTEzOTBjNjM0OCAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvaXA2X3R1bm5l bC5jCisrKyBiL25ldC9pcHY2L2lwNl90dW5uZWwuYwpAQCAtNjI3LDcgKzYyNyw3IEBAIGlwNGlw Nl9lcnIoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGluZXQ2X3NrYl9wYXJtICpvcHQsCiAJ CXJ0ID0gaXBfcm91dGVfb3V0cHV0X3BvcnRzKGRldl9uZXQoc2tiLT5kZXYpLCAmZmw0LCBOVUxM LAogCQkJCQkgICBlaXBoLT5kYWRkciwgZWlwaC0+c2FkZHIsIDAsIDAsCiAJCQkJCSAgIElQUFJP VE9fSVBJUCwgUlRfVE9TKGVpcGgtPnRvcyksIDApOwotCQlpZiAoSVNfRVJSKHJ0KSB8fCBydC0+ ZHN0LmRldi0+dHlwZSAhPSBBUlBIUkRfVFVOTkVMKSB7CisJCWlmIChJU19FUlIocnQpIHx8IHJ0 LT5kc3QuZGV2LT50eXBlICE9IEFSUEhSRF9UVU5ORUw2KSB7CiAJCQlpZiAoIUlTX0VSUihydCkp CiAJCQkJaXBfcnRfcHV0KHJ0KTsKIAkJCWdvdG8gb3V0OwpAQCAtNjM2LDcgKzYzNiw3IEBAIGlw NGlwNl9lcnIoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGluZXQ2X3NrYl9wYXJtICpvcHQs CiAJfSBlbHNlIHsKIAkJaWYgKGlwX3JvdXRlX2lucHV0KHNrYjIsIGVpcGgtPmRhZGRyLCBlaXBo LT5zYWRkciwgZWlwaC0+dG9zLAogCQkJCSAgIHNrYjItPmRldikgfHwKLQkJICAgIHNrYl9kc3Qo c2tiMiktPmRldi0+dHlwZSAhPSBBUlBIUkRfVFVOTkVMKQorCQkgICAgc2tiX2RzdChza2IyKS0+ ZGV2LT50eXBlICE9IEFSUEhSRF9UVU5ORUw2KQogCQkJZ290byBvdXQ7CiAJfQogCi0tIAoyLjIw LjEKCgpGcm9tIDIxN2RlYTRiNDU3MjlkYTlmOGEyOGU0MTYwNTFkMmE5NGI5MmUzMzkgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IEp1bndlaSBIdSA8aHVqdW53ZWk0QGh1YXdlaS5jb20+ CkRhdGU6IFR1ZSwgMiBBcHIgMjAxOSAxOTozODowNCArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMDQv MzZdIGlwdjY6IEZpeCBkYW5nbGluZyBwb2ludGVyIHdoZW4gaXB2NiBmcmFnbWVudAoKWyBVcHN0 cmVhbSBjb21taXQgZWYwZWZjZDNiZDNmZDA1ODk3MzJiNjdmYjU4NmZmZDNjODcwNTgwNiBdCgpB dCB0aGUgYmVnaW5uaW5nIG9mIGlwNl9mcmFnbWVudCBmdW5jLCB0aGUgcHJldmhkciBwb2ludGVy IGlzCm9idGFpbmVkIGluIHRoZSBpcDZfZmluZF8xc3RmcmFnb3B0IGZ1bmMuCkhvd2V2ZXIsIGFs bCB0aGUgcG9pbnRlcnMgcG9pbnRpbmcgaW50byBza2IgaGVhZGVyIG1heSBjaGFuZ2UKd2hlbiBj YWxsaW5nIHNrYl9jaGVja3N1bV9oZWxwIGZ1bmMgd2l0aApza2ItPmlwX3N1bW1lZCA9IENIRUNL U1VNX1BBUlRJQUwgY29uZGl0aW9uLgpUaGUgcHJldmhkciBwb2ludGUgd2lsbCBiZSBkYW5nbGlu ZyBpZiBpdCBpcyBub3QgcmVsb2FkZWQgYWZ0ZXIKY2FsbGluZyBfX3NrYl9saW5lYXJpemUgZnVu YyBpbiBza2JfY2hlY2tzdW1faGVscCBmdW5jLgoKSGVyZSwgSSBhZGQgYSB2YXJpYWJsZSwgbmV4 dGhkcl9vZmZzZXQsIHRvIGV2YWx1YXRlIHRoZSBvZmZzZXQsCndoaWNoIGRvZXMgbm90IGNoYW5n ZXMgZXZlbiBhZnRlciBjYWxsaW5nIF9fc2tiX2xpbmVhcml6ZSBmdW5jLgoKRml4ZXM6IDQwNWM5 MmY3YTU0MSAoImlwdjY6IGFkZCBkZWZlbnNpdmUgY2hlY2sgZm9yIENIRUNLU1VNX1BBUlRJQUwg c2ticyBpbiBpcF9mcmFnbWVudCIpClNpZ25lZC1vZmYtYnk6IEp1bndlaSBIdSA8aHVqdW53ZWk0 QGh1YXdlaS5jb20+ClJlcG9ydGVkLWJ5OiBXZW5oYW8gWmhhbmcgPHpoYW5nd2VuaGFvOEBodWF3 ZWkuY29tPgpSZXBvcnRlZC1ieTogc3l6Ym90K2U4Y2U1NDFkMDk1ZTQ4NjA3NGZjQHN5emthbGxl ci5hcHBzcG90bWFpbC5jb20KUmV2aWV3ZWQtYnk6IFpoaXFpYW5nIExpdSA8bGl1emhpcWlhbmcy NkBodWF3ZWkuY29tPgpBY2tlZC1ieTogTWFydGluIEthRmFpIExhdSA8a2FmYWlAZmIuY29tPgpT aWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQog bmV0L2lwdjYvaXA2X291dHB1dC5jIHwgNCArKystCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRp b25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvaXA2X291dHB1dC5j IGIvbmV0L2lwdjYvaXA2X291dHB1dC5jCmluZGV4IDVmOWZhMDMwMmI1YS4uZTcxMjI3MzkwYmVj IDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9pcDZfb3V0cHV0LmMKKysrIGIvbmV0L2lwdjYvaXA2X291 dHB1dC5jCkBAIC01OTUsNyArNTk1LDcgQEAgaW50IGlwNl9mcmFnbWVudChzdHJ1Y3QgbmV0ICpu ZXQsIHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJCQlpbmV0Nl9zayhz a2ItPnNrKSA6IE5VTEw7CiAJc3RydWN0IGlwdjZoZHIgKnRtcF9oZHI7CiAJc3RydWN0IGZyYWdf aGRyICpmaDsKLQl1bnNpZ25lZCBpbnQgbXR1LCBobGVuLCBsZWZ0LCBsZW47CisJdW5zaWduZWQg aW50IG10dSwgaGxlbiwgbGVmdCwgbGVuLCBuZXh0aGRyX29mZnNldDsKIAlpbnQgaHJvb20sIHRy b29tOwogCV9fYmUzMiBmcmFnX2lkOwogCWludCBwdHIsIG9mZnNldCA9IDAsIGVyciA9IDA7CkBA IC02MDYsNiArNjA2LDcgQEAgaW50IGlwNl9mcmFnbWVudChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVj dCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJZ290byBmYWlsOwogCWhsZW4gPSBl cnI7CiAJbmV4dGhkciA9ICpwcmV2aGRyOworCW5leHRoZHJfb2Zmc2V0ID0gcHJldmhkciAtIHNr Yl9uZXR3b3JrX2hlYWRlcihza2IpOwogCiAJbXR1ID0gaXA2X3NrYl9kc3RfbXR1KHNrYik7CiAK QEAgLTY0MCw2ICs2NDEsNyBAQCBpbnQgaXA2X2ZyYWdtZW50KHN0cnVjdCBuZXQgKm5ldCwgc3Ry dWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCSAgICAoZXJyID0gc2tiX2NoZWNr c3VtX2hlbHAoc2tiKSkpCiAJCWdvdG8gZmFpbDsKIAorCXByZXZoZHIgPSBza2JfbmV0d29ya19o ZWFkZXIoc2tiKSArIG5leHRoZHJfb2Zmc2V0OwogCWhyb29tID0gTExfUkVTRVJWRURfU1BBQ0Uo cnQtPmRzdC5kZXYpOwogCWlmIChza2JfaGFzX2ZyYWdfbGlzdChza2IpKSB7CiAJCXVuc2lnbmVk IGludCBmaXJzdF9sZW4gPSBza2JfcGFnZWxlbihza2IpOwotLSAKMi4yMC4xCgoKRnJvbSBhMTRi YTBjMDViMDhlOTRmOTI4ZmY1ZGRhZWI4MTFjMmQ5MGI4MTg3IE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBMb3JlbnpvIEJpYW5jb25pIDxsb3JlbnpvLmJpYW5jb25pQHJlZGhhdC5jb20+ CkRhdGU6IFRodSwgNCBBcHIgMjAxOSAxNjozNzo1MyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDUv MzZdIGlwdjY6IHNpdDogcmVzZXQgaXAgaGVhZGVyIHBvaW50ZXIgaW4gaXBpcDZfcmN2CgpbIFVw c3RyZWFtIGNvbW1pdCBiYjliZDgxNGViZjA0ZjU3OWJlNDY2YmE2MWZjOTIyNjI1NTA4ODA3IF0K CmlwaXA2IHR1bm5lbHMgcnVuIGlwdHVubmVsX3B1bGxfaGVhZGVyIG9uIHJlY2VpdmVkIHNrYnMu IFRoaXMgY2FuCmRldGVybWluZSB0aGUgZm9sbG93aW5nIHVzZS1hZnRlci1mcmVlIGFjY2Vzc2lu ZyBpcGggcG9pbnRlciBzaW5jZQp0aGUgcGFja2V0IHdpbGwgYmUgJ3VuY2xvbmVkJyBydW5uaW5n IHBza2JfZXhwYW5kX2hlYWQgaWYgaXQgaXMgYQpjbG9uZWQgZ3NvIHNrYiAoZS5nIGlmIHRoZSBw YWNrZXQgaGFzIGJlZW4gc2VudCB0aG91Z2ggYSB2ZXRoIGRldmljZSkKClsgIDcwNi4zNjk2NTVd IEJVRzogS0FTQU46IHVzZS1hZnRlci1mcmVlIGluIGlwaXA2X3JjdisweDE2NzgvMHgxNmUwIFtz aXRdClsgIDcwNi40NDkwNTZdIFJlYWQgb2Ygc2l6ZSAxIGF0IGFkZHIgZmZmZmUwMWI2YmQ4NTVm NSBieSB0YXNrIGtzb2Z0aXJxZC8xLz0KWyAgNzA2LjY2OTQ5NF0gSGFyZHdhcmUgbmFtZTogSFBF IFByb0xpYW50IG00MDAgU2VydmVyL1Byb0xpYW50IG00MDAgU2VydmVyLCBCSU9TIFUwMiAwOC8x OS8yMDE2ClsgIDcwNi43NzE4MzldIENhbGwgdHJhY2U6ClsgIDcwNi44MDExNTldICBkdW1wX2Jh Y2t0cmFjZSsweDAvMHgyZjgKWyAgNzA2Ljg0NTA3OV0gIHNob3dfc3RhY2srMHgyNC8weDMwClsg IDcwNi44ODQ4MzNdICBkdW1wX3N0YWNrKzB4ZTAvMHgxMWMKWyAgNzA2LjkyNTYyOV0gIHByaW50 X2FkZHJlc3NfZGVzY3JpcHRpb24rMHg2OC8weDI2MApbICA3MDYuOTgyMDcwXSAga2FzYW5fcmVw b3J0KzB4MTc4LzB4MzQwClsgIDcwNy4wMjU5OTVdICBfX2FzYW5fcmVwb3J0X2xvYWQxX25vYWJv cnQrMHgzMC8weDQwClsgIDcwNy4wODM0ODFdICBpcGlwNl9yY3YrMHgxNjc4LzB4MTZlMCBbc2l0 XQpbICA3MDcuMTMyNjIzXSAgdHVubmVsNjRfcmN2KzB4ZDQvMHgyMDAgW3R1bm5lbDRdClsgIDcw Ny4xODU5NDBdICBpcF9sb2NhbF9kZWxpdmVyX2ZpbmlzaCsweDNiOC8weDk4OApbICA3MDcuMjQx MzM4XSAgaXBfbG9jYWxfZGVsaXZlcisweDE0NC8weDQ3MApbICA3MDcuMjg5NDM2XSAgaXBfcmN2 X2ZpbmlzaCsweDQzYy8weDE0YjAKWyAgNzA3LjMzNTQ0N10gIGlwX3JjdisweDYyOC8weDExMzgK WyAgNzA3LjM3NDE1MV0gIF9fbmV0aWZfcmVjZWl2ZV9za2JfY29yZSsweDE2NzAvMHgyNjAwClsg IDcwNy40MzI2ODBdICBfX25ldGlmX3JlY2VpdmVfc2tiKzB4MjgvMHgxOTAKWyAgNzA3LjQ4Mjg1 OV0gIHByb2Nlc3NfYmFja2xvZysweDFkMC8weDYxMApbICA3MDcuNTI5OTEzXSAgbmV0X3J4X2Fj dGlvbisweDM3Yy8weGY2OApbICA3MDcuNTc0ODgyXSAgX19kb19zb2Z0aXJxKzB4Mjg4LzB4MTAx OApbICA3MDcuNjE5ODUyXSAgcnVuX2tzb2Z0aXJxZCsweDcwLzB4YTgKWyAgNzA3LjY2MjczNF0g IHNtcGJvb3RfdGhyZWFkX2ZuKzB4M2E0LzB4OWU4ClsgIDcwNy43MTE4NzVdICBrdGhyZWFkKzB4 MmM4LzB4MzUwClsgIDcwNy43NTA1ODNdICByZXRfZnJvbV9mb3JrKzB4MTAvMHgxOAoKWyAgNzA3 LjgxMTMwMl0gQWxsb2NhdGVkIGJ5IHRhc2sgMTY5ODI6ClsgIDcwNy44NTQxODJdICBrYXNhbl9r bWFsbG9jLnBhcnQuMSsweDQwLzB4MTA4ClsgIDcwNy45MDU0MDVdICBrYXNhbl9rbWFsbG9jKzB4 YjQvMHhjOApbICA3MDcuOTQ4MjkxXSAga2FzYW5fc2xhYl9hbGxvYysweDE0LzB4MjAKWyAgNzA3 Ljk5NDMwOV0gIF9fa21hbGxvY19ub2RlX3RyYWNrX2NhbGxlcisweDE1OC8weDVlMApbICA3MDgu MDUzOTAyXSAgX19rbWFsbG9jX3Jlc2VydmUuaXNyYS44KzB4NTQvMHhlMApbICA3MDguMTA4Mjgw XSAgX19hbGxvY19za2IrMHhkOC8weDQwMApbICA3MDguMTUwMTM5XSAgc2tfc3RyZWFtX2FsbG9j X3NrYisweGE0LzB4NjM4ClsgIDcwOC4yMDAzNDZdICB0Y3Bfc2VuZG1zZ19sb2NrZWQrMHg4MTgv MHgyYjkwClsgIDcwOC4yNTE1ODFdICB0Y3Bfc2VuZG1zZysweDQwLzB4NjAKWyAgNzA4LjI5MjM3 Nl0gIGluZXRfc2VuZG1zZysweGYwLzB4NTIwClsgIDcwOC4zMzUyNTldICBzb2NrX3NlbmRtc2cr MHhhYy8weGY4ClsgIDcwOC4zNzcwOTZdICBzb2NrX3dyaXRlX2l0ZXIrMHgxYzAvMHgyYzAKWyAg NzA4LjQyNDE1NF0gIG5ld19zeW5jX3dyaXRlKzB4MzU4LzB4NGE4ClsgIDcwOC40NzAxNjJdICBf X3Zmc193cml0ZSsweGM0LzB4ZjgKWyAgNzA4LjUxMDk1MF0gIHZmc193cml0ZSsweDEyYy8weDNk MApbICA3MDguNTUxNzM5XSAga3N5c193cml0ZSsweGNjLzB4MTc4ClsgIDcwOC41OTI1MzNdICBf X2FybTY0X3N5c193cml0ZSsweDcwLzB4YTAKWyAgNzA4LjYzOTU5M10gIGVsMF9zdmNfaGFuZGxl cisweDEzYy8weDI5OApbICA3MDguNjg2NjQ2XSAgZWwwX3N2YysweDgvMHhjCgpbICA3MDguNzM5 MDE5XSBGcmVlZCBieSB0YXNrIDE3OgpbICA3MDguNzc0NTk3XSAgX19rYXNhbl9zbGFiX2ZyZWUr MHgxMTQvMHgyMjgKWyAgNzA4LjgyMzczNl0gIGthc2FuX3NsYWJfZnJlZSsweDEwLzB4MTgKWyAg NzA4Ljg2ODcwM10gIGtmcmVlKzB4MTAwLzB4M2Q4ClsgIDcwOC45MDUzMjBdICBza2JfZnJlZV9o ZWFkKzB4N2MvMHg5OApbICA3MDguOTQ4MjA0XSAgc2tiX3JlbGVhc2VfZGF0YSsweDMyMC8weDQ5 MApbICA3MDguOTk2MzAxXSAgcHNrYl9leHBhbmRfaGVhZCsweDYwYy8weDk3MApbICA3MDkuMDQ0 Mzk5XSAgX19pcHR1bm5lbF9wdWxsX2hlYWRlcisweDNiOC8weDVkMApbICA3MDkuMDk4NzcwXSAg aXBpcDZfcmN2KzB4NDFjLzB4MTZlMCBbc2l0XQpbICA3MDkuMTQ2ODczXSAgdHVubmVsNjRfcmN2 KzB4ZDQvMHgyMDAgW3R1bm5lbDRdClsgIDcwOS4yMDAxOTVdICBpcF9sb2NhbF9kZWxpdmVyX2Zp bmlzaCsweDNiOC8weDk4OApbICA3MDkuMjU1NTk2XSAgaXBfbG9jYWxfZGVsaXZlcisweDE0NC8w eDQ3MApbICA3MDkuMzAzNjkyXSAgaXBfcmN2X2ZpbmlzaCsweDQzYy8weDE0YjAKWyAgNzA5LjM0 OTcwNV0gIGlwX3JjdisweDYyOC8weDExMzgKWyAgNzA5LjM4ODQxM10gIF9fbmV0aWZfcmVjZWl2 ZV9za2JfY29yZSsweDE2NzAvMHgyNjAwClsgIDcwOS40NDY5NDNdICBfX25ldGlmX3JlY2VpdmVf c2tiKzB4MjgvMHgxOTAKWyAgNzA5LjQ5NzEyMF0gIHByb2Nlc3NfYmFja2xvZysweDFkMC8weDYx MApbICA3MDkuNTQ0MTY5XSAgbmV0X3J4X2FjdGlvbisweDM3Yy8weGY2OApbICA3MDkuNTg5MTMx XSAgX19kb19zb2Z0aXJxKzB4Mjg4LzB4MTAxOAoKWyAgNzA5LjY1MTkzOF0gVGhlIGJ1Z2d5IGFk ZHJlc3MgYmVsb25ncyB0byB0aGUgb2JqZWN0IGF0IGZmZmZlMDFiNmJkODU1ODAKICAgICAgICAg ICAgICAgIHdoaWNoIGJlbG9uZ3MgdG8gdGhlIGNhY2hlIGttYWxsb2MtMTAyNCBvZiBzaXplIDEw MjQKWyAgNzA5LjgwNDM1Nl0gVGhlIGJ1Z2d5IGFkZHJlc3MgaXMgbG9jYXRlZCAxMTcgYnl0ZXMg aW5zaWRlIG9mCiAgICAgICAgICAgICAgICAxMDI0LWJ5dGUgcmVnaW9uIFtmZmZmZTAxYjZiZDg1 NTgwLCBmZmZmZTAxYjZiZDg1OTgwKQpbICA3MDkuOTQ2MzQwXSBUaGUgYnVnZ3kgYWRkcmVzcyBi ZWxvbmdzIHRvIHRoZSBwYWdlOgpbICA3MTAuMDAzODI0XSBwYWdlOmZmZmY3ZmY4MDZkYWY2MDAg Y291bnQ6MSBtYXBjb3VudDowIG1hcHBpbmc6ZmZmZmUwMWM0MDAxZjYwMCBpbmRleDoweDAKWyAg NzEwLjA5OTkxNF0gZmxhZ3M6IDB4ZmZmZmY4MDAwMDAwMTAwKHNsYWIpClsgIDcxMC4xNDkwNTld IHJhdzogMGZmZmZmODAwMDAwMDEwMCBkZWFkMDAwMDAwMDAwMTAwIGRlYWQwMDAwMDAwMDAyMDAg ZmZmZmUwMWM0MDAxZjYwMApbICA3MTAuMjQyMDExXSByYXc6IDAwMDAwMDAwMDAwMDAwMDAgMDAw MDAwMDAwMDM4MDAzOCAwMDAwMDAwMWZmZmZmZmZmIDAwMDAwMDAwMDAwMDAwMDAKWyAgNzEwLjMz NDk2Nl0gcGFnZSBkdW1wZWQgYmVjYXVzZToga2FzYW46IGJhZCBhY2Nlc3MgZGV0ZWN0ZWQKCkZp eCBpdCByZXNldHRpbmcgaXBoIHBvaW50ZXIgYWZ0ZXIgaXB0dW5uZWxfcHVsbF9oZWFkZXIKCkZp eGVzOiBhMDlhNGM4ZGQxZWMgKCJ0dW5uZWxzOiBSZW1vdmUgZW5jYXBzdWxhdGlvbiBvZmZsb2Fk cyBvbiBkZWNhcCIpClRlc3RlZC1ieTogSmlhbmxpbiBTaGkgPGppc2hpQHJlZGhhdC5jb20+ClNp Z25lZC1vZmYtYnk6IExvcmVuem8gQmlhbmNvbmkgPGxvcmVuem8uYmlhbmNvbmlAcmVkaGF0LmNv bT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0Pgot LS0KIG5ldC9pcHY2L3NpdC5jIHwgNCArKysrCiAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25z KCspCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvc2l0LmMgYi9uZXQvaXB2Ni9zaXQuYwppbmRleCAw N2UyMWE4MmNlNGMuLmIyMTA5Yjc0ODU3ZCAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvc2l0LmMKKysr IGIvbmV0L2lwdjYvc2l0LmMKQEAgLTY2OSw2ICs2NjksMTAgQEAgc3RhdGljIGludCBpcGlwNl9y Y3Yoc3RydWN0IHNrX2J1ZmYgKnNrYikKIAkJICAgICFuZXRfZXEodHVubmVsLT5uZXQsIGRldl9u ZXQodHVubmVsLT5kZXYpKSkpCiAJCQlnb3RvIG91dDsKIAorCQkvKiBza2IgY2FuIGJlIHVuY2xv bmVkIGluIGlwdHVubmVsX3B1bGxfaGVhZGVyLCBzbworCQkgKiBvbGQgaXBoIGlzIG5vIGxvbmdl ciB2YWxpZAorCQkgKi8KKwkJaXBoID0gKGNvbnN0IHN0cnVjdCBpcGhkciAqKXNrYl9tYWNfaGVh ZGVyKHNrYik7CiAJCWVyciA9IElQX0VDTl9kZWNhcHN1bGF0ZShpcGgsIHNrYik7CiAJCWlmICh1 bmxpa2VseShlcnIpKSB7CiAJCQlpZiAobG9nX2Vjbl9lcnJvcikKLS0gCjIuMjAuMQoKCkZyb20g ZmQxMmRmN2FlMDJhYzMxODlkNmQwMjEwNDg0ZGEwYWU5YzRhNzVjYyBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogSmlyaSBTbGFieSA8anNsYWJ5QHN1c2UuY3o+CkRhdGU6IEZyaSwgMjkg TWFyIDIwMTkgMTI6MTk6NDYgKzAxMDAKU3ViamVjdDogW1BBVENIIDA2LzM2XSBrY206IHN3aXRj aCBvcmRlciBvZiBkZXZpY2UgcmVnaXN0cmF0aW9uIHRvIGZpeCBhIGNyYXNoCgpbIFVwc3RyZWFt IGNvbW1pdCAzYzQ0NmU2Zjk2OTk3ZjJhOTViZjAwMzdlZjQ2MzgwMjE2MmQyMzIzIF0KCldoZW4g a2NtIGlzIGxvYWRlZCB3aGlsZSBtYW55IHByb2Nlc3NlcyB0cnkgdG8gY3JlYXRlIGEgS0NNIHNv Y2tldCwgYQpjcmFzaCBvY2N1cnM6CiBCVUc6IHVuYWJsZSB0byBoYW5kbGUga2VybmVsIE5VTEwg cG9pbnRlciBkZXJlZmVyZW5jZSBhdCAwMDAwMDAwMDAwMDAwMDBlCiBJUDogbXV0ZXhfbG9jaysw eDI3LzB4NDAga2VybmVsL2xvY2tpbmcvbXV0ZXguYzoyNDAKIFBHRCA4MDAwMDAwMDE2ZWYyMDY3 IFA0RCA4MDAwMDAwMDE2ZWYyMDY3IFBVRCAzZDZlOTA2NyBQTUQgMAogT29wczogMDAwMiBbIzFd IFNNUCBLQVNBTiBQVEkKIENQVTogMCBQSUQ6IDcwMDUgQ29tbTogc3l6LWV4ZWN1dG9yLjUgTm90 IHRhaW50ZWQgNC4xMi4xNC0zOTYtZGVmYXVsdCAjMSBTTEUxNS1TUDEgKHVucmVsZWFzZWQpCiBS SVA6IDAwMTA6bXV0ZXhfbG9jaysweDI3LzB4NDAga2VybmVsL2xvY2tpbmcvbXV0ZXguYzoyNDAK IFJTUDogMDAxODpmZmZmODgwMDBkNDg3YTAwIEVGTEFHUzogMDAwMTAyNDYKIFJBWDogMDAwMDAw MDAwMDAwMDAwMCBSQlg6IDAwMDAwMDAwMDAwMDAwMGUgUkNYOiAxZmZmZjEwMDA4MmIwNzE5CiAu Li4KIENSMjogMDAwMDAwMDAwMDAwMDAwZSBDUjM6IDAwMDAwMDAwNGIxYmMwMDMgQ1I0OiAwMDAw MDAwMDAwMDYwZWYwCiBDYWxsIFRyYWNlOgogIGtjbV9jcmVhdGUrMHg2MDAvMHhiZjAgW2tjbV0K ICBfX3NvY2tfY3JlYXRlKzB4MzI0LzB4NzUwIG5ldC9zb2NrZXQuYzoxMjcyCiAuLi4KClRoaXMg aXMgZHVlIHRvIHJhY2UgYmV0d2VlbiBzb2NrX2NyZWF0ZSBhbmQgdW5maW5pc2hlZApyZWdpc3Rl cl9wZXJuZXRfZGV2aWNlLiBrY21fY3JlYXRlIHRyaWVzIHRvIGRvICJuZXRfZ2VuZXJpYyhuZXQs CmtjbV9uZXRfaWQpIi4gYnV0IGtjbV9uZXRfaWQgaXMgbm90IGluaXRpYWxpemVkIHlldC4KClNv IHN3aXRjaCB0aGUgb3JkZXIgb2YgdGhlIHR3byB0byBjbG9zZSB0aGUgcmFjZS4KClRoaXMgY2Fu IGJlIHJlcHJvZHVjZWQgd2l0aCBtdXRpcGxlIHByb2Nlc3NlcyBkb2luZyBzb2NrZXQoUEZfS0NN LCAuLi4pCmFuZCBvbmUgcHJvY2VzcyBkb2luZyBtb2R1bGUgcmVtb3ZhbC4KCkZpeGVzOiBhYjdh YzRlYjk4MzIgKCJrY206IEtlcm5lbCBDb25uZWN0aW9uIE11bHRpcGxleG9yIG1vZHVsZSIpClJl dmlld2VkLWJ5OiBNaWNoYWwgS3ViZWNlayA8bWt1YmVjZWtAc3VzZS5jej4KU2lnbmVkLW9mZi1i eTogSmlyaSBTbGFieSA8anNsYWJ5QHN1c2UuY3o+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1p bGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQva2NtL2tjbXNvY2suYyB8IDE2ICsr KysrKysrLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKyksIDggZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2tjbS9rY21zb2NrLmMgYi9uZXQva2NtL2tjbXNvY2su YwppbmRleCA1NzFkODI0ZTRlMjQuLmI5MTlkYjAyYzdmOSAxMDA2NDQKLS0tIGEvbmV0L2tjbS9r Y21zb2NrLmMKKysrIGIvbmV0L2tjbS9rY21zb2NrLmMKQEAgLTIwNTQsMTQgKzIwNTQsMTQgQEAg c3RhdGljIGludCBfX2luaXQga2NtX2luaXQodm9pZCkKIAlpZiAoZXJyKQogCQlnb3RvIGZhaWw7 CiAKLQllcnIgPSBzb2NrX3JlZ2lzdGVyKCZrY21fZmFtaWx5X29wcyk7Ci0JaWYgKGVycikKLQkJ Z290byBzb2NrX3JlZ2lzdGVyX2ZhaWw7Ci0KIAllcnIgPSByZWdpc3Rlcl9wZXJuZXRfZGV2aWNl KCZrY21fbmV0X29wcyk7CiAJaWYgKGVycikKIAkJZ290byBuZXRfb3BzX2ZhaWw7CiAKKwllcnIg PSBzb2NrX3JlZ2lzdGVyKCZrY21fZmFtaWx5X29wcyk7CisJaWYgKGVycikKKwkJZ290byBzb2Nr X3JlZ2lzdGVyX2ZhaWw7CisKIAllcnIgPSBrY21fcHJvY19pbml0KCk7CiAJaWYgKGVycikKIAkJ Z290byBwcm9jX2luaXRfZmFpbDsKQEAgLTIwNjksMTIgKzIwNjksMTIgQEAgc3RhdGljIGludCBf X2luaXQga2NtX2luaXQodm9pZCkKIAlyZXR1cm4gMDsKIAogcHJvY19pbml0X2ZhaWw6Ci0JdW5y ZWdpc3Rlcl9wZXJuZXRfZGV2aWNlKCZrY21fbmV0X29wcyk7Ci0KLW5ldF9vcHNfZmFpbDoKIAlz b2NrX3VucmVnaXN0ZXIoUEZfS0NNKTsKIAogc29ja19yZWdpc3Rlcl9mYWlsOgorCXVucmVnaXN0 ZXJfcGVybmV0X2RldmljZSgma2NtX25ldF9vcHMpOworCituZXRfb3BzX2ZhaWw6CiAJcHJvdG9f dW5yZWdpc3Rlcigma2NtX3Byb3RvKTsKIAogZmFpbDoKQEAgLTIwOTAsOCArMjA5MCw4IEBAIHN0 YXRpYyBpbnQgX19pbml0IGtjbV9pbml0KHZvaWQpCiBzdGF0aWMgdm9pZCBfX2V4aXQga2NtX2V4 aXQodm9pZCkKIHsKIAlrY21fcHJvY19leGl0KCk7Ci0JdW5yZWdpc3Rlcl9wZXJuZXRfZGV2aWNl KCZrY21fbmV0X29wcyk7CiAJc29ja191bnJlZ2lzdGVyKFBGX0tDTSk7CisJdW5yZWdpc3Rlcl9w ZXJuZXRfZGV2aWNlKCZrY21fbmV0X29wcyk7CiAJcHJvdG9fdW5yZWdpc3Rlcigma2NtX3Byb3Rv KTsKIAlkZXN0cm95X3dvcmtxdWV1ZShrY21fd3EpOwogCi0tIAoyLjIwLjEKCgpGcm9tIDk3YTAy MGE3M2I0Yjk3MGI3NDBmYmNmOGY2ZDI2MzA1YTllYjVkZDAgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IExpIFJvbmdRaW5nIDxsaXJvbmdxaW5nQGJhaWR1LmNvbT4KRGF0ZTogRnJpLCAy OSBNYXIgMjAxOSAwOToxODowMiArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMDcvMzZdIG5ldDogZXRo dG9vbDogbm90IGNhbGwgdnphbGxvYyBmb3IgemVybyBzaXplZCBtZW1vcnkKIHJlcXVlc3QKClsg VXBzdHJlYW0gY29tbWl0IDNkODgzMDI2NmZmYzI4YzE2MDMyYjg1OWUzOGEwMjUyZTAxNGI2MzEg XQoKTlVMTCBvciBaRVJPX1NJWkVfUFRSIHdpbGwgYmUgcmV0dXJuZWQgZm9yIHplcm8gc2l6ZWQg bWVtb3J5CnJlcXVlc3QsIGFuZCBkZXJlZmVuY2luZyB0aGVtIHdpbGwgbGVhZCB0byBhIHNlZ2Zh dWx0CgpzbyBpdCBpcyB1bm5lY2Vzc29yeSB0byBjYWxsIHZ6YWxsb2MgZm9yIHplcm8gc2l6ZWQg bWVtb3J5CnJlcXVlc3QgYW5kIG5vdCBjYWxsIGZ1bmN0aW9ucyB3aGljaCBtYXliZSBkZXJlZmVu Y2UgdGhlCk5VTEwgYWxsb2NhdGVkIG1lbW9yeQoKdGhpcyBhbHNvIGZpeGVzIGEgcG9zc2libGUg bWVtb3J5IGxlYWsgaWYgcGh5X2V0aHRvb2xfZ2V0X3N0YXRzCnJldHVybnMgZXJyb3IsIG1lbW9y eSBzaG91bGQgYmUgZnJlZWQgYmVmb3JlIGV4aXQKClNpZ25lZC1vZmYtYnk6IExpIFJvbmdRaW5n IDxsaXJvbmdxaW5nQGJhaWR1LmNvbT4KUmV2aWV3ZWQtYnk6IFdhbmcgTGkgPHdhbmdsaTM5QGJh aWR1LmNvbT4KUmV2aWV3ZWQtYnk6IE1pY2hhbCBLdWJlY2VrIDxta3ViZWNla0BzdXNlLmN6PgpT aWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQog bmV0L2NvcmUvZXRodG9vbC5jIHwgNDYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0t LS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDMwIGluc2VydGlvbnMoKyksIDE2IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9jb3JlL2V0aHRvb2wuYyBiL25ldC9jb3JlL2V0aHRv b2wuYwppbmRleCAxNTgyNjRmN2NmYWYuLjNhN2YxOWE2MTc2OCAxMDA2NDQKLS0tIGEvbmV0L2Nv cmUvZXRodG9vbC5jCisrKyBiL25ldC9jb3JlL2V0aHRvb2wuYwpAQCAtMTc5NCwxMSArMTc5NCwx NiBAQCBzdGF0aWMgaW50IGV0aHRvb2xfZ2V0X3N0cmluZ3Moc3RydWN0IG5ldF9kZXZpY2UgKmRl diwgdm9pZCBfX3VzZXIgKnVzZXJhZGRyKQogCVdBUk5fT05fT05DRSghcmV0KTsKIAogCWdzdHJp bmdzLmxlbiA9IHJldDsKLQlkYXRhID0gdnphbGxvYyhhcnJheV9zaXplKGdzdHJpbmdzLmxlbiwg RVRIX0dTVFJJTkdfTEVOKSk7Ci0JaWYgKGdzdHJpbmdzLmxlbiAmJiAhZGF0YSkKLQkJcmV0dXJu IC1FTk9NRU07CiAKLQlfX2V0aHRvb2xfZ2V0X3N0cmluZ3MoZGV2LCBnc3RyaW5ncy5zdHJpbmdf c2V0LCBkYXRhKTsKKwlpZiAoZ3N0cmluZ3MubGVuKSB7CisJCWRhdGEgPSB2emFsbG9jKGFycmF5 X3NpemUoZ3N0cmluZ3MubGVuLCBFVEhfR1NUUklOR19MRU4pKTsKKwkJaWYgKCFkYXRhKQorCQkJ cmV0dXJuIC1FTk9NRU07CisKKwkJX19ldGh0b29sX2dldF9zdHJpbmdzKGRldiwgZ3N0cmluZ3Mu c3RyaW5nX3NldCwgZGF0YSk7CisJfSBlbHNlIHsKKwkJZGF0YSA9IE5VTEw7CisJfQogCiAJcmV0 ID0gLUVGQVVMVDsKIAlpZiAoY29weV90b191c2VyKHVzZXJhZGRyLCAmZ3N0cmluZ3MsIHNpemVv Zihnc3RyaW5ncykpKQpAQCAtMTg5NCwxMSArMTg5OSwxNSBAQCBzdGF0aWMgaW50IGV0aHRvb2xf Z2V0X3N0YXRzKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHZvaWQgX191c2VyICp1c2VyYWRkcikK IAkJcmV0dXJuIC1FRkFVTFQ7CiAKIAlzdGF0cy5uX3N0YXRzID0gbl9zdGF0czsKLQlkYXRhID0g dnphbGxvYyhhcnJheV9zaXplKG5fc3RhdHMsIHNpemVvZih1NjQpKSk7Ci0JaWYgKG5fc3RhdHMg JiYgIWRhdGEpCi0JCXJldHVybiAtRU5PTUVNOwogCi0Jb3BzLT5nZXRfZXRodG9vbF9zdGF0cyhk ZXYsICZzdGF0cywgZGF0YSk7CisJaWYgKG5fc3RhdHMpIHsKKwkJZGF0YSA9IHZ6YWxsb2MoYXJy YXlfc2l6ZShuX3N0YXRzLCBzaXplb2YodTY0KSkpOworCQlpZiAoIWRhdGEpCisJCQlyZXR1cm4g LUVOT01FTTsKKwkJb3BzLT5nZXRfZXRodG9vbF9zdGF0cyhkZXYsICZzdGF0cywgZGF0YSk7CisJ fSBlbHNlIHsKKwkJZGF0YSA9IE5VTEw7CisJfQogCiAJcmV0ID0gLUVGQVVMVDsKIAlpZiAoY29w eV90b191c2VyKHVzZXJhZGRyLCAmc3RhdHMsIHNpemVvZihzdGF0cykpKQpAQCAtMTkzOCwxNiAr MTk0NywyMSBAQCBzdGF0aWMgaW50IGV0aHRvb2xfZ2V0X3BoeV9zdGF0cyhzdHJ1Y3QgbmV0X2Rl dmljZSAqZGV2LCB2b2lkIF9fdXNlciAqdXNlcmFkZHIpCiAJCXJldHVybiAtRUZBVUxUOwogCiAJ c3RhdHMubl9zdGF0cyA9IG5fc3RhdHM7Ci0JZGF0YSA9IHZ6YWxsb2MoYXJyYXlfc2l6ZShuX3N0 YXRzLCBzaXplb2YodTY0KSkpOwotCWlmIChuX3N0YXRzICYmICFkYXRhKQotCQlyZXR1cm4gLUVO T01FTTsKIAotCWlmIChkZXYtPnBoeWRldiAmJiAhb3BzLT5nZXRfZXRodG9vbF9waHlfc3RhdHMp IHsKLQkJcmV0ID0gcGh5X2V0aHRvb2xfZ2V0X3N0YXRzKGRldi0+cGh5ZGV2LCAmc3RhdHMsIGRh dGEpOwotCQlpZiAocmV0IDwgMCkKLQkJCXJldHVybiByZXQ7CisJaWYgKG5fc3RhdHMpIHsKKwkJ ZGF0YSA9IHZ6YWxsb2MoYXJyYXlfc2l6ZShuX3N0YXRzLCBzaXplb2YodTY0KSkpOworCQlpZiAo IWRhdGEpCisJCQlyZXR1cm4gLUVOT01FTTsKKworCQlpZiAoZGV2LT5waHlkZXYgJiYgIW9wcy0+ Z2V0X2V0aHRvb2xfcGh5X3N0YXRzKSB7CisJCQlyZXQgPSBwaHlfZXRodG9vbF9nZXRfc3RhdHMo ZGV2LT5waHlkZXYsICZzdGF0cywgZGF0YSk7CisJCQlpZiAocmV0IDwgMCkKKwkJCQlnb3RvIG91 dDsKKwkJfSBlbHNlIHsKKwkJCW9wcy0+Z2V0X2V0aHRvb2xfcGh5X3N0YXRzKGRldiwgJnN0YXRz LCBkYXRhKTsKKwkJfQogCX0gZWxzZSB7Ci0JCW9wcy0+Z2V0X2V0aHRvb2xfcGh5X3N0YXRzKGRl diwgJnN0YXRzLCBkYXRhKTsKKwkJZGF0YSA9IE5VTEw7CiAJfQogCiAJcmV0ID0gLUVGQVVMVDsK LS0gCjIuMjAuMQoKCkZyb20gZTg2ZmRlODRhN2I4ZTRhOTQ3NmUxMzM3YTk2ZmMwYjdiMGI5NTNl ZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogU3RlZmZlbiBLbGFzc2VydCA8c3RlZmZl bi5rbGFzc2VydEBzZWN1bmV0LmNvbT4KRGF0ZTogVHVlLCAyIEFwciAyMDE5IDA4OjE2OjAzICsw MjAwClN1YmplY3Q6IFtQQVRDSCAwOC8zNl0gbmV0LWdybzogRml4IEdSTyBmbHVzaCB3aGVuIHJl Y2VpdmluZyBhIEdTTyBwYWNrZXQuCgpbIFVwc3RyZWFtIGNvbW1pdCAwYWIwM2YzNTNkMzYxM2Vh NDlkMWY5MjRmYWY5ODU1OTAwMzY3MGE4IF0KCkN1cnJlbnRseSB3ZSBtYXkgbWVyZ2UgaW5jb3Jy ZWN0bHkgYSByZWNlaXZlZCBHU08gcGFja2V0Cm9yIGEgcGFja2V0IHdpdGggZnJhZ19saXN0IGlu dG8gYSBwYWNrZXQgc2l0dGluZyBpbiB0aGUKZ3JvX2hhc2ggbGlzdC4gc2tiX3NlZ21lbnQoKSBt YXkgY3Jhc2ggY2FzZSBiZWNhdXNlCnRoZSBhc3N1bXB0aW9ucyBvbiB0aGUgc2tiIGxheW91dCBh cmUgbm90IG1ldC4KVGhlIGNvcnJlY3QgYmVoYXZpb3VyIHdvdWxkIGJlIHRvIGZsdXNoIHRoZSBw YWNrZXQgaW4gdGhlCmdyb19oYXNoIGxpc3QgYW5kIHNlbmQgdGhlIHJlY2VpdmVkIEdTTyBwYWNr ZXQgZGlyZWN0bHkKYWZ0ZXJ3YXJkcy4gQ29tbWl0IGQ2MWQwNzJlODdjOGUgKCJuZXQtZ3JvOiBh dm9pZCByZW9yZGVycyIpCnNldHMgTkFQSV9HUk9fQ0Ioc2tiKS0+Zmx1c2ggaW4gdGhpcyBjYXNl LCBidXQgdGhpcyBpcyBub3QKY2hlY2tlZCBiZWZvcmUgbWVyZ2luZy4gVGhpcyBwYXRjaCBtYWtl cyBzdXJlIHRvIGNoZWNrIHRoaXMKZmxhZyBhbmQgdG8gbm90IG1lcmdlIGluIHRoYXQgY2FzZS4K CkZpeGVzOiBkNjFkMDcyZTg3YzhlICgibmV0LWdybzogYXZvaWQgcmVvcmRlcnMiKQpTaWduZWQt b2ZmLWJ5OiBTdGVmZmVuIEtsYXNzZXJ0IDxzdGVmZmVuLmtsYXNzZXJ0QHNlY3VuZXQuY29tPgpT aWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQog bmV0L2NvcmUvc2tidWZmLmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyks IDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvY29yZS9za2J1ZmYuYyBiL25ldC9jb3Jl L3NrYnVmZi5jCmluZGV4IDI0MTVkOWNiOWI4OS4uZWYyY2Q1NzEyMDk4IDEwMDY0NAotLS0gYS9u ZXQvY29yZS9za2J1ZmYuYworKysgYi9uZXQvY29yZS9za2J1ZmYuYwpAQCAtMzgwMSw3ICszODAx LDcgQEAgaW50IHNrYl9ncm9fcmVjZWl2ZShzdHJ1Y3Qgc2tfYnVmZiAqcCwgc3RydWN0IHNrX2J1 ZmYgKnNrYikKIAl1bnNpZ25lZCBpbnQgZGVsdGFfdHJ1ZXNpemU7CiAJc3RydWN0IHNrX2J1ZmYg KmxwOwogCi0JaWYgKHVubGlrZWx5KHAtPmxlbiArIGxlbiA+PSA2NTUzNikpCisJaWYgKHVubGlr ZWx5KHAtPmxlbiArIGxlbiA+PSA2NTUzNiB8fCBOQVBJX0dST19DQihza2IpLT5mbHVzaCkpCiAJ CXJldHVybiAtRTJCSUc7CiAKIAlscCA9IE5BUElfR1JPX0NCKHApLT5sYXN0OwotLSAKMi4yMC4x CgoKRnJvbSBhNzgxYWU5N2IwNWQxODg0YjUzNzlhMTNiOWQ4OTBkNzg5NzY1MDNmIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBcnRlbXkgS292YWx5b3YgPGFydGVteWtvQG1lbGxhbm94 LmNvbT4KRGF0ZTogVHVlLCAxOSBNYXIgMjAxOSAxMToyNDozOCArMDIwMApTdWJqZWN0OiBbUEFU Q0ggMDkvMzZdIG5ldC9tbHg1OiBEZWNyZWFzZSBkZWZhdWx0IG1yIGNhY2hlIHNpemUKClsgVXBz dHJlYW0gY29tbWl0IGU4YjI2YjIxMzVkZWRjMDI4NDQ5MGJmZWFjMDZkZmM0NDE4ZDAxMDUgXQoK RGVsZXRlIGluaXRpYWxpemF0aW9uIG9mIGhpZ2ggb3JkZXIgZW50cmllcyBpbiBtciBjYWNoZSB0 byBkZWNyZWFzZSBpbml0aWFsCm1lbW9yeSBmb290cHJpbnQuIFdoZW4gcmVxdWlyZWQsIHRoZSBh ZG1pbmlzdHJhdG9yIGNhbiBwb3B1bGF0ZSB0aGUKZW50cmllcyB3aXRoIG1lbW9yeSBrZXlzIHZp YSB0aGUgL3N5cyBpbnRlcmZhY2UuCgpUaGlzIGFwcHJvYWNoIGlzIHZlcnkgaGVscGZ1bCB0byBz aWduaWZpY2FudGx5IHJlZHVjZSB0aGUgcGVyIEhXIGZ1bmN0aW9uCm1lbW9yeSBmb290cHJpbnQg aW4gdmlydHVhbGl6YXRpb24gZW52aXJvbm1lbnRzIHN1Y2ggYXMgU1JJT1YuCgpGaXhlczogOTYw M2I2MWRlMWVlICgibWx4NTogTW92ZSBwY2kgZGV2aWNlIGhhbmRsaW5nIGZyb20gbWx4NV9pYiB0 byBtbHg1X2NvcmUiKQpTaWduZWQtb2ZmLWJ5OiBBcnRlbXkgS292YWx5b3YgPGFydGVteWtvQG1l bGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogTW9uaSBTaG91YSA8bW9uaXNAbWVsbGFub3guY29t PgpTaWduZWQtb2ZmLWJ5OiBMZW9uIFJvbWFub3Zza3kgPGxlb25yb0BtZWxsYW5veC5jb20+ClJl cG9ydGVkLWJ5OiAgU2hhbG9tIFRvbGVkbyA8c2hhbG9tdEBtZWxsYW5veC5jb20+CkFja2VkLWJ5 OiBPciBHZXJsaXR6IDxvZ2VybGl0ekBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IFNhZWVk IE1haGFtZWVkIDxzYWVlZG1AbWVsbGFub3guY29tPgotLS0KIC4uLi9uZXQvZXRoZXJuZXQvbWVs bGFub3gvbWx4NS9jb3JlL21haW4uYyAgICB8IDIwIC0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmls ZSBjaGFuZ2VkLCAyMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhl cm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVs bGFub3gvbWx4NS9jb3JlL21haW4uYwppbmRleCBiZTgxYjMxOWIwZGMuLjY5NGVkZDg5OTMyMiAx MDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL21haW4u YworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbWFpbi5jCkBA IC0xNjMsMjYgKzE2Myw2IEBAIHN0YXRpYyBzdHJ1Y3QgbWx4NV9wcm9maWxlIHByb2ZpbGVbXSA9 IHsKIAkJCS5zaXplCT0gOCwKIAkJCS5saW1pdAk9IDQKIAkJfSwKLQkJLm1yX2NhY2hlWzE2XQk9 IHsKLQkJCS5zaXplCT0gOCwKLQkJCS5saW1pdAk9IDQKLQkJfSwKLQkJLm1yX2NhY2hlWzE3XQk9 IHsKLQkJCS5zaXplCT0gOCwKLQkJCS5saW1pdAk9IDQKLQkJfSwKLQkJLm1yX2NhY2hlWzE4XQk9 IHsKLQkJCS5zaXplCT0gOCwKLQkJCS5saW1pdAk9IDQKLQkJfSwKLQkJLm1yX2NhY2hlWzE5XQk9 IHsKLQkJCS5zaXplCT0gNCwKLQkJCS5saW1pdAk9IDIKLQkJfSwKLQkJLm1yX2NhY2hlWzIwXQk9 IHsKLQkJCS5zaXplCT0gNCwKLQkJCS5saW1pdAk9IDIKLQkJfSwKIAl9LAogfTsKIAotLSAKMi4y MC4xCgoKRnJvbSA3NzJlMmE3Y2NjNzNhNDhlYTE3ZWVlODhiNjA5OTFhZDI0OGFlZWVhIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5j b20+CkRhdGU6IFdlZCwgMjcgTWFyIDIwMTkgMDg6MjE6MzAgLTA3MDAKU3ViamVjdDogW1BBVENI IDEwLzM2XSBuZXRuczogcHJvdmlkZSBwdXJlIGVudHJvcHkgZm9yIG5ldF9oYXNoX21peCgpCgpb IFVwc3RyZWFtIGNvbW1pdCAzNTViOTg1NTM3ODliNjQ2ZWQ5N2FkODAxYTYxOWZmODk4NDcxYjky IF0KCm5ldF9oYXNoX21peCgpIGN1cnJlbnRseSB1c2VzIGtlcm5lbCBhZGRyZXNzIG9mIGEgc3Ry dWN0IG5ldCwKYW5kIGlzIHVzZWQgaW4gbWFueSBwbGFjZXMgdGhhdCBjb3VsZCBiZSB1c2VkIHRv IHJldmVhbCB0aGlzCmFkZHJlc3MgdG8gYSBwYXRpZW50IGF0dGFja2VyLCB0aHVzIGRlZmVhdGlu ZyBLQVNMUiwgZm9yCnRoZSB0eXBpY2FsIGNhc2UgKGluaXRpYWwgbmV0IG5hbWVzcGFjZSwgJmlu aXRfbmV0IGlzCm5vdCBkeW5hbWljYWxseSBhbGxvY2F0ZWQpCgpJIGJlbGlldmUgdGhlIG9yaWdp bmFsIGltcGxlbWVudGF0aW9uIHRyaWVkIHRvIGF2b2lkIHNwZW5kaW5nCnRvbyBtYW55IGN5Y2xl cyBpbiB0aGlzIGZ1bmN0aW9uLCBidXQgc2VjdXJpdHkgY29tZXMgZmlyc3QuCgpBbHNvIHByb3Zp ZGUgZW50cm9weSByZWdhcmRsZXNzIG9mIENPTkZJR19ORVRfTlMuCgpGaXhlczogMGI0NDE5MTYy YWE2ICgibmV0bnM6IGludHJvZHVjZSB0aGUgbmV0X2hhc2hfbWl4ICJzYWx0IiBmb3IgaGFzaGVz IikKU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpSZXBv cnRlZC1ieTogQW1pdCBLbGVpbiA8YWtzZWN1cml0eUBnbWFpbC5jb20+ClJlcG9ydGVkLWJ5OiBC ZW5ueSBQaW5rYXMgPGJlbm55QHBpbmthcy5uZXQ+CkNjOiBQYXZlbCBFbWVseWFub3YgPHhlbXVs QG9wZW52ei5vcmc+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiBpbmNsdWRlL25ldC9uZXRfbmFtZXNwYWNlLmggfCAgMSArCiBpbmNsdWRl L25ldC9uZXRucy9oYXNoLmggICAgfCAxMCArKy0tLS0tLS0tCiBuZXQvY29yZS9uZXRfbmFtZXNw YWNlLmMgICAgfCAgMSArCiAzIGZpbGVzIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgOCBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9uZXRfbmFtZXNwYWNlLmggYi9pbmNs dWRlL25ldC9uZXRfbmFtZXNwYWNlLmgKaW5kZXggOTlkNDE0OGUwZjkwLi4xYzMxMjZjMTQ5MzAg MTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L25ldF9uYW1lc3BhY2UuaAorKysgYi9pbmNsdWRlL25l dC9uZXRfbmFtZXNwYWNlLmgKQEAgLTU4LDYgKzU4LDcgQEAgc3RydWN0IG5ldCB7CiAJCQkJCQkg Ki8KIAlzcGlubG9ja190CQlydWxlc19tb2RfbG9jazsKIAorCXUzMgkJCWhhc2hfbWl4OwogCWF0 b21pYzY0X3QJCWNvb2tpZV9nZW47CiAKIAlzdHJ1Y3QgbGlzdF9oZWFkCWxpc3Q7CQkvKiBsaXN0 IG9mIG5ldHdvcmsgbmFtZXNwYWNlcyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvbmV0bnMv aGFzaC5oIGIvaW5jbHVkZS9uZXQvbmV0bnMvaGFzaC5oCmluZGV4IDE2YTg0MjQ1NjE4OS4uZDli NjY1MTUxZjNkIDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC9uZXRucy9oYXNoLmgKKysrIGIvaW5j bHVkZS9uZXQvbmV0bnMvaGFzaC5oCkBAIC0yLDE2ICsyLDEwIEBACiAjaWZuZGVmIF9fTkVUX05T X0hBU0hfSF9fCiAjZGVmaW5lIF9fTkVUX05TX0hBU0hfSF9fCiAKLSNpbmNsdWRlIDxhc20vY2Fj aGUuaD4KLQotc3RydWN0IG5ldDsKKyNpbmNsdWRlIDxuZXQvbmV0X25hbWVzcGFjZS5oPgogCiBz dGF0aWMgaW5saW5lIHUzMiBuZXRfaGFzaF9taXgoY29uc3Qgc3RydWN0IG5ldCAqbmV0KQogewot I2lmZGVmIENPTkZJR19ORVRfTlMKLQlyZXR1cm4gKHUzMikoKCh1bnNpZ25lZCBsb25nKW5ldCkg Pj4gaWxvZzIoc2l6ZW9mKCpuZXQpKSk7Ci0jZWxzZQotCXJldHVybiAwOwotI2VuZGlmCisJcmV0 dXJuIG5ldC0+aGFzaF9taXg7CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL25ldC9jb3JlL25ldF9u YW1lc3BhY2UuYyBiL25ldC9jb3JlL25ldF9uYW1lc3BhY2UuYwppbmRleCBiMDJmYjE5ZGYyY2Mu LjQwYzI0OWM1NzRjMSAxMDA2NDQKLS0tIGEvbmV0L2NvcmUvbmV0X25hbWVzcGFjZS5jCisrKyBi L25ldC9jb3JlL25ldF9uYW1lc3BhY2UuYwpAQCAtMzA0LDYgKzMwNCw3IEBAIHN0YXRpYyBfX25l dF9pbml0IGludCBzZXR1cF9uZXQoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgdXNlcl9uYW1lc3Bh Y2UgKnVzZXJfbnMpCiAKIAlyZWZjb3VudF9zZXQoJm5ldC0+Y291bnQsIDEpOwogCXJlZmNvdW50 X3NldCgmbmV0LT5wYXNzaXZlLCAxKTsKKwlnZXRfcmFuZG9tX2J5dGVzKCZuZXQtPmhhc2hfbWl4 LCBzaXplb2YodTMyKSk7CiAJbmV0LT5kZXZfYmFzZV9zZXEgPSAxOwogCW5ldC0+dXNlcl9ucyA9 IHVzZXJfbnM7CiAJaWRyX2luaXQoJm5ldC0+bmV0bnNfaWRzKTsKLS0gCjIuMjAuMQoKCkZyb20g YjgyY2UzZmMyOGVhM2FkYmQyZjJmNzUzNDM0ZmNlZTNlNzVjMTVlOCBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogTWFvIFdlbmFuIDxtYW93ZW5hbkBodWF3ZWkuY29tPgpEYXRlOiBUaHUs IDI4IE1hciAyMDE5IDE3OjEwOjU2ICswODAwClN1YmplY3Q6IFtQQVRDSCAxMS8zNl0gbmV0OiBy ZHM6IGZvcmNlIHRvIGRlc3Ryb3kgY29ubmVjdGlvbiBpZiB0X3NvY2sgaXMgTlVMTAogaW4gcmRz X3RjcF9raWxsX3NvY2soKS4KClsgVXBzdHJlYW0gY29tbWl0IGNiNjZkZGQxNTYyMDNkYWVmYjhk NzExNTgwMzZiMjdiMGUyY2FmNjMgXQoKV2hlbiBpdCBpcyB0byBjbGVhbnVwIG5ldCBuYW1lc3Bh Y2UsIHJkc190Y3BfZXhpdF9uZXQoKSB3aWxsIGNhbGwKcmRzX3RjcF9raWxsX3NvY2soKSwgaWYg dF9zb2NrIGlzIE5VTEwsIGl0IHdpbGwgbm90IGNhbGwKcmRzX2Nvbm5fZGVzdHJveSgpLCByZHNf Y29ubl9wYXRoX2Rlc3Ryb3koKSBhbmQgcmRzX3RjcF9jb25uX2ZyZWUoKSB0byBmcmVlCmNvbm5l Y3Rpb24sIGFuZCB0aGUgd29ya2VyIGNwX2Nvbm5fdyBpcyBub3Qgc3RvcHBlZCwgYWZ0ZXJ3YXJk cyB0aGUgbmV0IGlzIGZyZWVkIGluCm5ldF9kcm9wX25zKCk7IFdoaWxlIGNwX2Nvbm5fdyByZHNf Y29ubmVjdF93b3JrZXIoKSB3aWxsIGNhbGwgcmRzX3RjcF9jb25uX3BhdGhfY29ubmVjdCgpCmFu ZCByZWZlcmVuY2UgJ25ldCcgd2hpY2ggaGFzIGFscmVhZHkgYmVlbiBmcmVlZC4KCkluIHJkc190 Y3BfY29ubl9wYXRoX2Nvbm5lY3QoKSwgcmRzX3RjcF9zZXRfY2FsbGJhY2tzKCkgd2lsbCBzZXQg dF9zb2NrID0gc29jayBiZWZvcmUKc29jay0+b3BzLT5jb25uZWN0LCBidXQgaWYgY29ubmVjdCgp IGlzIGZhaWxlZCwgaXQgd2lsbCBjYWxsCnJkc190Y3BfcmVzdG9yZV9jYWxsYmFja3MoKSBhbmQg c2V0IHRfc29jayA9IE5VTEwsIGlmIGNvbm5lY3QgaXMgYWx3YXlzCmZhaWxlZCwgcmRzX2Nvbm5l Y3Rfd29ya2VyKCkgd2lsbCB0cnkgdG8gcmVjb25uZWN0IGFsbCB0aGUgdGltZSwgc28KcmRzX3Rj cF9raWxsX3NvY2soKSB3aWxsIG5ldmVyIHRvIGNhbmNlbCB3b3JrZXIgY3BfY29ubl93IGFuZCBm cmVlIHRoZQpjb25uZWN0aW9ucy4KClRoZXJlZm9yZSwgdGhlIGNvbmRpdGlvbiAhdGMtPnRfc29j ayBpcyBub3QgbmVlZGVkIGlmIGl0IGlzIGdvaW5nIHRvIGRvCmNsZWFudXBfbmV0LT5yZHNfdGNw X2V4aXRfbmV0LT5yZHNfdGNwX2tpbGxfc29jaywgYmVjYXVzZSB0Yy0+dF9zb2NrIGlzIGFsd2F5 cwpOVUxMLCBhbmQgdGhlcmUgaXMgb24gb3RoZXIgcGF0aCB0byBjYW5jZWwgY3BfY29ubl93IGFu ZCBmcmVlCmNvbm5lY3Rpb24uIFNvIHRoaXMgcGF0Y2ggaXMgdG8gZml4IHRoaXMuCgpyZHNfdGNw X2tpbGxfc29jaygpOgouLi4KaWYgKG5ldCAhPSBjX25ldCB8fCAhdGMtPnRfc29jaykKLi4uCkFj a2VkLWJ5OiBTYW50b3NoIFNoaWxpbWthciA8c2FudG9zaC5zaGlsaW1rYXJAb3JhY2xlLmNvbT4K Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQpCVUc6IEtBU0FOOiB1c2UtYWZ0ZXItZnJlZSBpbiBpbmV0X2NyZWF0ZSsweGJj Yy8weGQyOApuZXQvaXB2NC9hZl9pbmV0LmM6MzQwClJlYWQgb2Ygc2l6ZSA0IGF0IGFkZHIgZmZm ZjgwMDM0OTZhNDY4NCBieSB0YXNrIGt3b3JrZXIvdTg6NC8zNzIxCgpDUFU6IDMgUElEOiAzNzIx IENvbW06IGt3b3JrZXIvdTg6NCBOb3QgdGFpbnRlZCA1LjEuMCAjMTEKSGFyZHdhcmUgbmFtZTog bGludXgsZHVtbXktdmlydCAoRFQpCldvcmtxdWV1ZToga3Jkc2QgcmRzX2Nvbm5lY3Rfd29ya2Vy CkNhbGwgdHJhY2U6CiBkdW1wX2JhY2t0cmFjZSsweDAvMHgzYzAgYXJjaC9hcm02NC9rZXJuZWwv dGltZS5jOjUzCiBzaG93X3N0YWNrKzB4MjgvMHgzOCBhcmNoL2FybTY0L2tlcm5lbC90cmFwcy5j OjE1MgogX19kdW1wX3N0YWNrIGxpYi9kdW1wX3N0YWNrLmM6NzcgW2lubGluZV0KIGR1bXBfc3Rh Y2srMHgxMjAvMHgxODggbGliL2R1bXBfc3RhY2suYzoxMTMKIHByaW50X2FkZHJlc3NfZGVzY3Jp cHRpb24rMHg2OC8weDI3OCBtbS9rYXNhbi9yZXBvcnQuYzoyNTMKIGthc2FuX3JlcG9ydF9lcnJv ciBtbS9rYXNhbi9yZXBvcnQuYzozNTEgW2lubGluZV0KIGthc2FuX3JlcG9ydCsweDIxYy8weDM0 OCBtbS9rYXNhbi9yZXBvcnQuYzo0MDkKIF9fYXNhbl9yZXBvcnRfbG9hZDRfbm9hYm9ydCsweDMw LzB4NDAgbW0va2FzYW4vcmVwb3J0LmM6NDI5CiBpbmV0X2NyZWF0ZSsweGJjYy8weGQyOCBuZXQv aXB2NC9hZl9pbmV0LmM6MzQwCiBfX3NvY2tfY3JlYXRlKzB4NGY4LzB4NzcwIG5ldC9zb2NrZXQu YzoxMjc2CiBzb2NrX2NyZWF0ZV9rZXJuKzB4NTAvMHg2OCBuZXQvc29ja2V0LmM6MTMyMgogcmRz X3RjcF9jb25uX3BhdGhfY29ubmVjdCsweDJiNC8weDY5MCBuZXQvcmRzL3RjcF9jb25uZWN0LmM6 MTE0CiByZHNfY29ubmVjdF93b3JrZXIrMHgxMDgvMHgxZDAgbmV0L3Jkcy90aHJlYWRzLmM6MTc1 CiBwcm9jZXNzX29uZV93b3JrKzB4NmU4LzB4MTcwMCBrZXJuZWwvd29ya3F1ZXVlLmM6MjE1Mwog d29ya2VyX3RocmVhZCsweDNiMC8weGRkMCBrZXJuZWwvd29ya3F1ZXVlLmM6MjI5Ngoga3RocmVh ZCsweDJmMC8weDM3OCBrZXJuZWwva3RocmVhZC5jOjI1NQogcmV0X2Zyb21fZm9yaysweDEwLzB4 MTggYXJjaC9hcm02NC9rZXJuZWwvZW50cnkuUzoxMTE3CgpBbGxvY2F0ZWQgYnkgdGFzayA2ODc6 CiBzYXZlX3N0YWNrIG1tL2thc2FuL2thc2FuLmM6NDQ4IFtpbmxpbmVdCiBzZXRfdHJhY2sgbW0v a2FzYW4va2FzYW4uYzo0NjAgW2lubGluZV0KIGthc2FuX2ttYWxsb2MrMHhkNC8weDE4MCBtbS9r YXNhbi9rYXNhbi5jOjU1Mwoga2FzYW5fc2xhYl9hbGxvYysweDE0LzB4MjAgbW0va2FzYW4va2Fz YW4uYzo0OTAKIHNsYWJfcG9zdF9hbGxvY19ob29rIG1tL3NsYWIuaDo0NDQgW2lubGluZV0KIHNs YWJfYWxsb2Nfbm9kZSBtbS9zbHViLmM6MjcwNSBbaW5saW5lXQogc2xhYl9hbGxvYyBtbS9zbHVi LmM6MjcxMyBbaW5saW5lXQoga21lbV9jYWNoZV9hbGxvYysweDE0Yy8weDM4OCBtbS9zbHViLmM6 MjcxOAoga21lbV9jYWNoZV96YWxsb2MgaW5jbHVkZS9saW51eC9zbGFiLmg6Njk3IFtpbmxpbmVd CiBuZXRfYWxsb2MgbmV0L2NvcmUvbmV0X25hbWVzcGFjZS5jOjM4NCBbaW5saW5lXQogY29weV9u ZXRfbnMrMHhjNC8weDJkMCBuZXQvY29yZS9uZXRfbmFtZXNwYWNlLmM6NDI0CiBjcmVhdGVfbmV3 X25hbWVzcGFjZXMrMHgzMDAvMHg2NTgga2VybmVsL25zcHJveHkuYzoxMDcKIHVuc2hhcmVfbnNw cm94eV9uYW1lc3BhY2VzKzB4YTAvMHgxOTgga2VybmVsL25zcHJveHkuYzoyMDYKIGtzeXNfdW5z aGFyZSsweDM0MC8weDYyOCBrZXJuZWwvZm9yay5jOjI1NzcKIF9fZG9fc3lzX3Vuc2hhcmUga2Vy bmVsL2ZvcmsuYzoyNjQ1IFtpbmxpbmVdCiBfX3NlX3N5c191bnNoYXJlIGtlcm5lbC9mb3JrLmM6 MjY0MyBbaW5saW5lXQogX19hcm02NF9zeXNfdW5zaGFyZSsweDM4LzB4NTgga2VybmVsL2Zvcmsu YzoyNjQzCiBfX2ludm9rZV9zeXNjYWxsIGFyY2gvYXJtNjQva2VybmVsL3N5c2NhbGwuYzozNSBb aW5saW5lXQogaW52b2tlX3N5c2NhbGwgYXJjaC9hcm02NC9rZXJuZWwvc3lzY2FsbC5jOjQ3IFtp bmxpbmVdCiBlbDBfc3ZjX2NvbW1vbisweDE2OC8weDM5MCBhcmNoL2FybTY0L2tlcm5lbC9zeXNj YWxsLmM6ODMKIGVsMF9zdmNfaGFuZGxlcisweDYwLzB4ZDAgYXJjaC9hcm02NC9rZXJuZWwvc3lz Y2FsbC5jOjEyOQogZWwwX3N2YysweDgvMHhjIGFyY2gvYXJtNjQva2VybmVsL2VudHJ5LlM6OTYw CgpGcmVlZCBieSB0YXNrIDI2NDoKIHNhdmVfc3RhY2sgbW0va2FzYW4va2FzYW4uYzo0NDggW2lu bGluZV0KIHNldF90cmFjayBtbS9rYXNhbi9rYXNhbi5jOjQ2MCBbaW5saW5lXQogX19rYXNhbl9z bGFiX2ZyZWUrMHgxMTQvMHgyMjAgbW0va2FzYW4va2FzYW4uYzo1MjEKIGthc2FuX3NsYWJfZnJl ZSsweDEwLzB4MTggbW0va2FzYW4va2FzYW4uYzo1MjgKIHNsYWJfZnJlZV9ob29rIG1tL3NsdWIu YzoxMzcwIFtpbmxpbmVdCiBzbGFiX2ZyZWVfZnJlZWxpc3RfaG9vayBtbS9zbHViLmM6MTM5NyBb aW5saW5lXQogc2xhYl9mcmVlIG1tL3NsdWIuYzoyOTUyIFtpbmxpbmVdCiBrbWVtX2NhY2hlX2Zy ZWUrMHhiOC8weDNhOCBtbS9zbHViLmM6Mjk2OAogbmV0X2ZyZWUgbmV0L2NvcmUvbmV0X25hbWVz cGFjZS5jOjQwMCBbaW5saW5lXQogbmV0X2Ryb3BfbnMucGFydC42KzB4NzgvMHg5MCBuZXQvY29y ZS9uZXRfbmFtZXNwYWNlLmM6NDA3CiBuZXRfZHJvcF9ucyBuZXQvY29yZS9uZXRfbmFtZXNwYWNl LmM6NDA2IFtpbmxpbmVdCiBjbGVhbnVwX25ldCsweDUzYy8weDZkOCBuZXQvY29yZS9uZXRfbmFt ZXNwYWNlLmM6NTY5CiBwcm9jZXNzX29uZV93b3JrKzB4NmU4LzB4MTcwMCBrZXJuZWwvd29ya3F1 ZXVlLmM6MjE1Mwogd29ya2VyX3RocmVhZCsweDNiMC8weGRkMCBrZXJuZWwvd29ya3F1ZXVlLmM6 MjI5Ngoga3RocmVhZCsweDJmMC8weDM3OCBrZXJuZWwva3RocmVhZC5jOjI1NQogcmV0X2Zyb21f Zm9yaysweDEwLzB4MTggYXJjaC9hcm02NC9rZXJuZWwvZW50cnkuUzoxMTE3CgpUaGUgYnVnZ3kg YWRkcmVzcyBiZWxvbmdzIHRvIHRoZSBvYmplY3QgYXQgZmZmZjgwMDM0OTZhM2Y4MAogd2hpY2gg YmVsb25ncyB0byB0aGUgY2FjaGUgbmV0X25hbWVzcGFjZSBvZiBzaXplIDc4NzIKVGhlIGJ1Z2d5 IGFkZHJlc3MgaXMgbG9jYXRlZCAxNzk2IGJ5dGVzIGluc2lkZSBvZgogNzg3Mi1ieXRlIHJlZ2lv biBbZmZmZjgwMDM0OTZhM2Y4MCwgZmZmZjgwMDM0OTZhNWU0MCkKVGhlIGJ1Z2d5IGFkZHJlc3Mg YmVsb25ncyB0byB0aGUgcGFnZToKcGFnZTpmZmZmN2UwMDBkMjVhODAwIGNvdW50OjEgbWFwY291 bnQ6MCBtYXBwaW5nOmZmZmY4MDAzNmNlNGIwMDAKaW5kZXg6MHgwIGNvbXBvdW5kX21hcGNvdW50 OiAwCmZsYWdzOiAweGZmZmZlMDAwMDAwODEwMChzbGFifGhlYWQpCnJhdzogMGZmZmZlMDAwMDAw ODEwMCBkZWFkMDAwMDAwMDAwMTAwIGRlYWQwMDAwMDAwMDAyMDAgZmZmZjgwMDM2Y2U0YjAwMApy YXc6IDAwMDAwMDAwMDAwMDAwMDAgMDAwMDAwMDA4MDA0MDAwNCAwMDAwMDAwMWZmZmZmZmZmIDAw MDAwMDAwMDAwMDAwMDAKcGFnZSBkdW1wZWQgYmVjYXVzZToga2FzYW46IGJhZCBhY2Nlc3MgZGV0 ZWN0ZWQKCk1lbW9yeSBzdGF0ZSBhcm91bmQgdGhlIGJ1Z2d5IGFkZHJlc3M6CiBmZmZmODAwMzQ5 NmE0NTgwOiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYgog ZmZmZjgwMDM0OTZhNDYwMDogZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIg ZmIgZmIgZmIKPmZmZmY4MDAzNDk2YTQ2ODA6IGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZi IGZiIGZiIGZiIGZiIGZiIGZiCiAgICAgICAgICAgICAgICAgICBeCiBmZmZmODAwMzQ5NmE0NzAw OiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYgogZmZmZjgw MDM0OTZhNDc4MDogZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIg ZmIKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CgpGaXhlczogNDY3ZmExNTM1NmFjKCJSRFMtVENQOiBTdXBwb3J0IG11bHRp cGxlIFJEUy1UQ1AgbGlzdGVuIGVuZHBvaW50cywgb25lIHBlciBuZXRucy4iKQpSZXBvcnRlZC1i eTogSHVsayBSb2JvdCA8aHVsa2NpQGh1YXdlaS5jb20+ClNpZ25lZC1vZmYtYnk6IE1hbyBXZW5h biA8bWFvd2VuYW5AaHVhd2VpLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxk YXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9yZHMvdGNwLmMgfCAyICstCiAxIGZpbGUgY2hh bmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvcmRz L3RjcC5jIGIvbmV0L3Jkcy90Y3AuYwppbmRleCBjMTZmMGEzNjJjMzIuLmE3MjljNDdkYjc4MSAx MDA2NDQKLS0tIGEvbmV0L3Jkcy90Y3AuYworKysgYi9uZXQvcmRzL3RjcC5jCkBAIC02MDAsNyAr NjAwLDcgQEAgc3RhdGljIHZvaWQgcmRzX3RjcF9raWxsX3NvY2soc3RydWN0IG5ldCAqbmV0KQog CWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZSh0YywgX3RjLCAmcmRzX3RjcF9jb25uX2xpc3QsIHRf dGNwX25vZGUpIHsKIAkJc3RydWN0IG5ldCAqY19uZXQgPSByZWFkX3BuZXQoJnRjLT50X2NwYXRo LT5jcF9jb25uLT5jX25ldCk7CiAKLQkJaWYgKG5ldCAhPSBjX25ldCB8fCAhdGMtPnRfc29jaykK KwkJaWYgKG5ldCAhPSBjX25ldCkKIAkJCWNvbnRpbnVlOwogCQlpZiAoIWxpc3RfaGFzX2Nvbm4o JnRtcF9saXN0LCB0Yy0+dF9jcGF0aC0+Y3BfY29ubikpIHsKIAkJCWxpc3RfbW92ZV90YWlsKCZ0 Yy0+dF90Y3Bfbm9kZSwgJnRtcF9saXN0KTsKLS0gCjIuMjAuMQoKCkZyb20gNzBiOGZmNjg1Zjcz NjQ5MWJlZTk4ZjM5OWYxNDAzM2U3ZGQ0MDJkYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogRGF2aWRlIENhcmF0dGkgPGRjYXJhdHRpQHJlZGhhdC5jb20+CkRhdGU6IFRodSwgNCBBcHIg MjAxOSAxMjozMTozNSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTIvMzZdIG5ldC9zY2hlZDogYWN0 X3NhbXBsZTogZml4IGRpdmlkZSBieSB6ZXJvIGluIHRoZQogdHJhZmZpYyBwYXRoCgpbIFVwc3Ry ZWFtIGNvbW1pdCBmYWUyNzA4MTc0YWU5NWQ5OGQxOWYxOTRlMDNkNmU4ZjY4OGFlMTk1IF0KCnRo ZSBjb250cm9sIHBhdGggb2YgJ3NhbXBsZScgYWN0aW9uIGRvZXMgbm90IHZhbGlkYXRlIHRoZSB2 YWx1ZSBvZiAncmF0ZScKcHJvdmlkZWQgYnkgdGhlIHVzZXIsIGJ1dCB0aGVuIGl0IHVzZXMgaXQg YXMgZGl2aXNvciBpbiB0aGUgdHJhZmZpYyBwYXRoLgpWYWxpZGF0ZSBpdCBpbiB0Y2Zfc2FtcGxl X2luaXQoKSwgYW5kIHJldHVybiAtRUlOVkFMIHdpdGggYSBwcm9wZXIgZXh0YWNrCm1lc3NhZ2Ug aW4gY2FzZSB0aGF0IHZhbHVlIGlzIHplcm8sIHRvIGZpeCBhIHNwbGF0IHdpdGggdGhlIHNjcmlw dCBiZWxvdzoKCiAjIHRjIGYgYSBkZXYgdGVzdDAgZWdyZXNzIG1hdGNoYWxsIGFjdGlvbiBzYW1w bGUgcmF0ZSAwIGdyb3VwIDEgaW5kZXggMgogIyB0YyAtcyBhIHMgYWN0aW9uIHNhbXBsZQogdG90 YWwgYWN0cyAxCgogICAgICAgICBhY3Rpb24gb3JkZXIgMDogc2FtcGxlIHJhdGUgMS8wIGdyb3Vw IDEgcGlwZQogICAgICAgICAgaW5kZXggMiByZWYgMSBiaW5kIDEgaW5zdGFsbGVkIDE5IHNlYyB1 c2VkIDE5IHNlYwogICAgICAgICBBY3Rpb24gc3RhdGlzdGljczoKICAgICAgICAgU2VudCAwIGJ5 dGVzIDAgcGt0IChkcm9wcGVkIDAsIG92ZXJsaW1pdHMgMCByZXF1ZXVlcyAwKQogICAgICAgICBi YWNrbG9nIDBiIDBwIHJlcXVldWVzIDAKICMgcGluZyAxOTIuMC4yLjEgLUkgdGVzdDAgLWMxIC1x CgogZGl2aWRlIGVycm9yOiAwMDAwIFsjMV0gU01QIFBUSQogQ1BVOiAxIFBJRDogNjE5MiBDb21t OiBwaW5nIE5vdCB0YWludGVkIDUuMS4wLXJjMi5kaWFnMisgIzU5MQogSGFyZHdhcmUgbmFtZTog UmVkIEhhdCBLVk0sIEJJT1MgMC41LjEgMDEvMDEvMjAxMQogUklQOiAwMDEwOnRjZl9zYW1wbGVf YWN0KzB4OWUvMHgxZTAgW2FjdF9zYW1wbGVdCiBDb2RlOiA2YSBmMSA4NSBjMCA3NCAwZCA4MCAz ZCA4MyAxYSAwMCAwMCAwMCAwZiA4NCA5YyAwMCAwMCAwMCA0ZCA4NSBlNCAwZiA4NCA4NSAwMCAw MCAwMCBlOCA5YiBkNyA5YyBmMSA0NCA4YiA4YiBlMCAwMCAwMCAwMCAzMSBkMiA8NDE+IGY3IGYx IDg1IGQyIDc1IDcwIGY2IDg1IDgzIDAwIDAwIDAwIDEwIDQ4IDhiIDQ1IDEwIDhiIDg4IDA4IDAx CiBSU1A6IDAwMTg6ZmZmZmFlMzIwMTkwYmEzMCBFRkxBR1M6IDAwMDEwMjQ2CiBSQVg6IDAwMDAw MDAwYjA2NzdkMjEgUkJYOiBmZmZmOGFmMWVkOWVjMDAwIFJDWDogMDAwMDAwMDA1OWE5ZmU0OQog UkRYOiAwMDAwMDAwMDAwMDAwMDAwIFJTSTogMDAwMDAwMDAwYzdlMzNiNyBSREk6IGZmZmY4YWYy M2RhYTBhZjAKIFJCUDogZmZmZjhhZjFlZTExYjIwMCBSMDg6IDAwMDAwMDAwNzRmY2FmN2UgUjA5 OiAwMDAwMDAwMDAwMDAwMDAwCiBSMTA6IDAwMDAwMDAwMDAwMDAwNTAgUjExOiBmZmZmZmZmZmIz MDg4NjgwIFIxMjogZmZmZjhhZjIzMjMwN2Y4MAogUjEzOiAwMDAwMDAwMDAwMDAwMDAzIFIxNDog ZmZmZjhhZjFlZDllYzAwMCBSMTU6IDAwMDAwMDAwMDAwMDAwMDAKIEZTOiAgMDAwMDdmZTljNmQy Zjc0MCgwMDAwKSBHUzpmZmZmOGFmMjNkYTgwMDAwKDAwMDApIGtubEdTOjAwMDAwMDAwMDAwMDAw MDAKIENTOiAgMDAxMCBEUzogMDAwMCBFUzogMDAwMCBDUjA6IDAwMDAwMDAwODAwNTAwMzMKIENS MjogMDAwMDdmZmY2NzcyZjAwMCBDUjM6IDAwMDAwMDAwNzQ2YTIwMDQgQ1I0OiAwMDAwMDAwMDAw MTYwNmUwCiBDYWxsIFRyYWNlOgogIHRjZl9hY3Rpb25fZXhlYysweDdjLzB4MWMwCiAgdGNmX2Ns YXNzaWZ5KzB4NTcvMHgxNjAKICBfX2Rldl9xdWV1ZV94bWl0KzB4M2RjLzB4ZDEwCiAgaXBfZmlu aXNoX291dHB1dDIrMHgyNTcvMHg2ZDAKICBpcF9vdXRwdXQrMHg3NS8weDI4MAogIGlwX3NlbmRf c2tiKzB4MTUvMHg0MAogIHJhd19zZW5kbXNnKzB4YWUzLzB4MTQxMAogIHNvY2tfc2VuZG1zZysw eDM2LzB4NDAKICBfX3N5c19zZW5kdG8rMHgxMGUvMHgxNDAKICBfX3g2NF9zeXNfc2VuZHRvKzB4 MjQvMHgzMAogIGRvX3N5c2NhbGxfNjQrMHg2MC8weDIxMAogIGVudHJ5X1NZU0NBTExfNjRfYWZ0 ZXJfaHdmcmFtZSsweDQ5LzB4YmUKICBbLi4uXQogIEtlcm5lbCBwYW5pYyAtIG5vdCBzeW5jaW5n OiBGYXRhbCBleGNlcHRpb24gaW4gaW50ZXJydXB0CgpBZGQgYSBUREMgc2VsZnRlc3QgdG8gZG9j dW1lbnQgdGhhdCAncmF0ZScgaXMgbm93IGJlaW5nIHZhbGlkYXRlZC4KClJlcG9ydGVkLWJ5OiBN YXR0ZW8gQ3JvY2UgPG1jcm9jZUByZWRoYXQuY29tPgpGaXhlczogNWM1NjcwZmFlNDMwICgibmV0 L3NjaGVkOiBJbnRyb2R1Y2Ugc2FtcGxlIHRjIGFjdGlvbiIpClNpZ25lZC1vZmYtYnk6IERhdmlk ZSBDYXJhdHRpIDxkY2FyYXR0aUByZWRoYXQuY29tPgpBY2tlZC1ieTogWW90YW0gR2lnaSA8eW90 YW0uZ2lAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3NjaGVkL2FjdF9zYW1wbGUuYyB8IDEwICsrKysrKysrLS0K IDEgZmlsZSBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvbmV0L3NjaGVkL2FjdF9zYW1wbGUuYyBiL25ldC9zY2hlZC9hY3Rfc2FtcGxlLmMKaW5k ZXggMWEwYzY4MmZkNzM0Li5mZDYyZmU2YzhlNzMgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9hY3Rf c2FtcGxlLmMKKysrIGIvbmV0L3NjaGVkL2FjdF9zYW1wbGUuYwpAQCAtNDMsOCArNDMsOCBAQCBz dGF0aWMgaW50IHRjZl9zYW1wbGVfaW5pdChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBubGF0dHIg Km5sYSwKIAlzdHJ1Y3QgdGNfYWN0aW9uX25ldCAqdG4gPSBuZXRfZ2VuZXJpYyhuZXQsIHNhbXBs ZV9uZXRfaWQpOwogCXN0cnVjdCBubGF0dHIgKnRiW1RDQV9TQU1QTEVfTUFYICsgMV07CiAJc3Ry dWN0IHBzYW1wbGVfZ3JvdXAgKnBzYW1wbGVfZ3JvdXA7CisJdTMyIHBzYW1wbGVfZ3JvdXBfbnVt LCByYXRlOwogCXN0cnVjdCB0Y19zYW1wbGUgKnBhcm07Ci0JdTMyIHBzYW1wbGVfZ3JvdXBfbnVt OwogCXN0cnVjdCB0Y2Zfc2FtcGxlICpzOwogCWJvb2wgZXhpc3RzID0gZmFsc2U7CiAJaW50IHJl dCwgZXJyOwpAQCAtODAsNiArODAsMTIgQEAgc3RhdGljIGludCB0Y2Zfc2FtcGxlX2luaXQoc3Ry dWN0IG5ldCAqbmV0LCBzdHJ1Y3QgbmxhdHRyICpubGEsCiAJCXJldHVybiAtRUVYSVNUOwogCX0K IAorCXJhdGUgPSBubGFfZ2V0X3UzMih0YltUQ0FfU0FNUExFX1JBVEVdKTsKKwlpZiAoIXJhdGUp IHsKKwkJTkxfU0VUX0VSUl9NU0coZXh0YWNrLCAiaW52YWxpZCBzYW1wbGUgcmF0ZSIpOworCQl0 Y2ZfaWRyX3JlbGVhc2UoKmEsIGJpbmQpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CiAJcHNhbXBs ZV9ncm91cF9udW0gPSBubGFfZ2V0X3UzMih0YltUQ0FfU0FNUExFX1BTQU1QTEVfR1JPVVBdKTsK IAlwc2FtcGxlX2dyb3VwID0gcHNhbXBsZV9ncm91cF9nZXQobmV0LCBwc2FtcGxlX2dyb3VwX251 bSk7CiAJaWYgKCFwc2FtcGxlX2dyb3VwKSB7CkBAIC05MSw3ICs5Nyw3IEBAIHN0YXRpYyBpbnQg dGNmX3NhbXBsZV9pbml0KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IG5sYXR0ciAqbmxhLAogCiAJ c3Bpbl9sb2NrX2JoKCZzLT50Y2ZfbG9jayk7CiAJcy0+dGNmX2FjdGlvbiA9IHBhcm0tPmFjdGlv bjsKLQlzLT5yYXRlID0gbmxhX2dldF91MzIodGJbVENBX1NBTVBMRV9SQVRFXSk7CisJcy0+cmF0 ZSA9IHJhdGU7CiAJcy0+cHNhbXBsZV9ncm91cF9udW0gPSBwc2FtcGxlX2dyb3VwX251bTsKIAlS Q1VfSU5JVF9QT0lOVEVSKHMtPnBzYW1wbGVfZ3JvdXAsIHBzYW1wbGVfZ3JvdXApOwogCi0tIAoy LjIwLjEKCgpGcm9tIGZhMWI3Y2NjODc2MGQ0MzM4N2IyNzM3MjM0ZjMyZWNiMWE4OWNjMDkgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE5pY29sYXMgRGljaHRlbCA8bmljb2xhcy5kaWNo dGVsQDZ3aW5kLmNvbT4KRGF0ZTogVGh1LCAyOCBNYXIgMjAxOSAxMDozNTowNiArMDEwMApTdWJq ZWN0OiBbUEFUQ0ggMTMvMzZdIG5ldC9zY2hlZDogZml4IC0+Z2V0IGhlbHBlciBvZiB0aGUgbWF0 Y2hhbGwgY2xzCgpbIFVwc3RyZWFtIGNvbW1pdCAwZGI2ZjhiZWZjMzJjNjhiYjEzZDdmZmJiMmU1 NjNjNzllOTEzZTEzIF0KCkl0IHJldHVybmVkIGFsd2F5cyBOVUxMLCB0aHVzIGl0IHdhcyBuZXZl ciBwb3NzaWJsZSB0byBnZXQgdGhlIGZpbHRlci4KCkV4YW1wbGU6CiQgaXAgbGluayBhZGQgZm9v IHR5cGUgZHVtbXkKJCBpcCBsaW5rIGFkZCBiYXIgdHlwZSBkdW1teQokIHRjIHFkaXNjIGFkZCBk ZXYgZm9vIGNsc2FjdAokIHRjIGZpbHRlciBhZGQgZGV2IGZvbyBwcm90b2NvbCBhbGwgcHJlZiAx IGluZ3Jlc3MgaGFuZGxlIDEyMzQgXAoJbWF0Y2hhbGwgYWN0aW9uIG1pcnJlZCBpbmdyZXNzIG1p cnJvciBkZXYgYmFyCgpCZWZvcmUgdGhlIHBhdGNoOgokIHRjIGZpbHRlciBnZXQgZGV2IGZvbyBw cm90b2NvbCBhbGwgcHJlZiAxIGluZ3Jlc3MgaGFuZGxlIDEyMzQgbWF0Y2hhbGwKRXJyb3I6IFNw ZWNpZmllZCBmaWx0ZXIgaGFuZGxlIG5vdCBmb3VuZC4KV2UgaGF2ZSBhbiBlcnJvciB0YWxraW5n IHRvIHRoZSBrZXJuZWwKCkFmdGVyOgokIHRjIGZpbHRlciBnZXQgZGV2IGZvbyBwcm90b2NvbCBh bGwgcHJlZiAxIGluZ3Jlc3MgaGFuZGxlIDEyMzQgbWF0Y2hhbGwKZmlsdGVyIGluZ3Jlc3MgcHJv dG9jb2wgYWxsIHByZWYgMSBtYXRjaGFsbCBjaGFpbiAwIGhhbmRsZSAweDRkMgogIG5vdF9pbl9o dwogICAgICAgIGFjdGlvbiBvcmRlciAxOiBtaXJyZWQgKEluZ3Jlc3MgTWlycm9yIHRvIGRldmlj ZSBiYXIpIHBpcGUKICAgICAgICBpbmRleCAxIHJlZiAxIGJpbmQgMQoKQ0M6IFlvdGFtIEdpZ2kg PHlvdGFtZ0BtZWxsYW5veC5jb20+CkNDOiBKaXJpIFBpcmtvIDxqaXJpQG1lbGxhbm94LmNvbT4K Rml4ZXM6IGZkNjJkOWY1YzU3NSAoIm5ldC9zY2hlZDogbWF0Y2hhbGw6IEZpeCBjb25maWd1cmF0 aW9uIHJhY2UiKQpTaWduZWQtb2ZmLWJ5OiBOaWNvbGFzIERpY2h0ZWwgPG5pY29sYXMuZGljaHRl bEA2d2luZC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiBuZXQvc2NoZWQvY2xzX21hdGNoYWxsLmMgfCA1ICsrKysrCiAxIGZpbGUg Y2hhbmdlZCwgNSBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL2Nsc19tYXRj aGFsbC5jIGIvbmV0L3NjaGVkL2Nsc19tYXRjaGFsbC5jCmluZGV4IDBlNDA4ZWU5ZGNlYy4uNWJh MDdjZDExZTMxIDEwMDY0NAotLS0gYS9uZXQvc2NoZWQvY2xzX21hdGNoYWxsLmMKKysrIGIvbmV0 L3NjaGVkL2Nsc19tYXRjaGFsbC5jCkBAIC0xMjUsNiArMTI1LDExIEBAIHN0YXRpYyB2b2lkIG1h bGxfZGVzdHJveShzdHJ1Y3QgdGNmX3Byb3RvICp0cCwgc3RydWN0IG5ldGxpbmtfZXh0X2FjayAq ZXh0YWNrKQogCiBzdGF0aWMgdm9pZCAqbWFsbF9nZXQoc3RydWN0IHRjZl9wcm90byAqdHAsIHUz MiBoYW5kbGUpCiB7CisJc3RydWN0IGNsc19tYWxsX2hlYWQgKmhlYWQgPSBydG5sX2RlcmVmZXJl bmNlKHRwLT5yb290KTsKKworCWlmIChoZWFkICYmIGhlYWQtPmhhbmRsZSA9PSBoYW5kbGUpCisJ CXJldHVybiBoZWFkOworCiAJcmV0dXJuIE5VTEw7CiB9CiAKLS0gCjIuMjAuMQoKCkZyb20gYTM1 ZjI3NTI2Y2Q2ZWJkMTI4MTJhODNmMjI0ZmEwZTYwZDc2YWU1MiBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogQW5kcmVhIFJpZ2hpIDxhbmRyZWEucmlnaGlAY2Fub25pY2FsLmNvbT4KRGF0 ZTogVGh1LCAyOCBNYXIgMjAxOSAwNzozNjowMCArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMTQvMzZd IG9wZW52c3dpdGNoOiBmaXggZmxvdyBhY3Rpb25zIHJlYWxsb2NhdGlvbgoKWyBVcHN0cmVhbSBj b21taXQgZjI4Y2QyYWYyMmEwYzEzNGU0YWExYzY0YTcwZjcwZDgxNWQ0NzNmYiBdCgpUaGUgZmxv dyBhY3Rpb24gYnVmZmVyIGNhbiBiZSByZXNpemVkIGlmIGl0J3Mgbm90IGJpZyBlbm91Z2ggdG8g Y29udGFpbgphbGwgdGhlIHJlcXVlc3RlZCBmbG93IGFjdGlvbnMuIEhvd2V2ZXIsIHRoaXMgcmVz aXplIGRvZXNuJ3QgdGFrZSBpbnRvCmFjY291bnQgdGhlIG5ldyByZXF1ZXN0ZWQgc2l6ZSwgdGhl IGJ1ZmZlciBpcyBvbmx5IGluY3JlYXNlZCBieSBhIGZhY3RvcgpvZiAyeC4gVGhpcyBtaWdodCBi ZSBub3QgZW5vdWdoIHRvIGNvbnRhaW4gdGhlIG5ldyBkYXRhLCBjYXVzaW5nIGEKYnVmZmVyIG92 ZXJmbG93LCBmb3IgZXhhbXBsZToKClsgICA0Mi4wNDQ0NzJdID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 ClsgICA0Mi4wNDU2MDhdIEJVRyBrbWFsbG9jLTk2IChOb3QgdGFpbnRlZCk6IFJlZHpvbmUgb3Zl cndyaXR0ZW4KWyAgIDQyLjA0NjQxNV0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KClsgICA0Mi4wNDc3 MTVdIERpc2FibGluZyBsb2NrIGRlYnVnZ2luZyBkdWUgdG8ga2VybmVsIHRhaW50ClsgICA0Mi4w NDc3MTZdIElORk86IDB4OGJmMmM0YTUtMHg3MjBjMDkyOC4gRmlyc3QgYnl0ZSAweDAgaW5zdGVh ZCBvZiAweGNjClsgICA0Mi4wNDg2NzddIElORk86IFNsYWIgMHhiYzZkMjA0MCBvYmplY3RzPTI5 IHVzZWQ9MTggZnA9MHhkYzA3ZGVjNCBmbGFncz0weDI4MDgxMDEKWyAgIDQyLjA0OTc0M10gSU5G TzogT2JqZWN0IDB4ZDUzYTM0NjQgQG9mZnNldD0yNTI4IGZwPTB4Y2NkY2RlYmIKClsgICA0Mi4w NTA3NDddIFJlZHpvbmUgNzZmMWIyMzc6IGNjIGNjIGNjIGNjIGNjIGNjIGNjIGNjICAgICAgICAg ICAgICAgICAgICAgICAgICAuLi4uLi4uLgpbICAgNDIuMDUxODM5XSBPYmplY3QgZDUzYTM0NjQ6 IDZiIDZiIDZiIDZiIDZiIDZiIDZiIDZiIDBjIDAwIDAwIDAwIDZjIDAwIDAwIDAwICBra2tra2tr ay4uLi5sLi4uClsgICA0Mi4wNTMwMTVdIE9iamVjdCBmNDlhMzBjYzogNmMgMDAgMGMgMDAgMDAg MDAgMDAgMDAgMDAgMDAgMDAgMDMgNzggYTMgMTUgZjYgIGwuLi4uLi4uLi4uLnguLi4KWyAgIDQy LjA1NDIwM10gT2JqZWN0IGFjZmU0MjIwOiAyMCAwMCAwMiAwMCBmZiBmZiBmZiBmZiAwMCAwMCAw MCAwMCAwMCAwMCAwMCAwMCAgIC4uLi4uLi4uLi4uLi4uLgpbICAgNDIuMDU1MzcwXSBPYmplY3Qg MjEwMjRlOTE6IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAw ICAuLi4uLi4uLi4uLi4uLi4uClsgICA0Mi4wNTY1NDFdIE9iamVjdCAwNzBlMDRjMzogMDAgMDAg MDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgIC4uLi4uLi4uLi4uLi4u Li4KWyAgIDQyLjA1Nzc5N10gT2JqZWN0IDk0OGE3NzdhOiAwMCAwMCAwMCAwMCAwMCAwMCAwMCAw MCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAgLi4uLi4uLi4uLi4uLi4uLgpbICAgNDIuMDU5MDYx XSBSZWR6b25lIDhiZjJjNGE1OiAwMCAwMCAwMCAwMCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLi4uLgpbICAgNDIuMDYwMTg5XSBQYWRkaW5nIGE2ODFiNDZlOiA1YSA1YSA1 YSA1YSA1YSA1YSA1YSA1YSAgICAgICAgICAgICAgICAgICAgICAgICAgWlpaWlpaWloKCkZpeCBi eSBtYWtpbmcgc3VyZSB0aGUgbmV3IGJ1ZmZlciBpcyBwcm9wZXJseSByZXNpemVkIHRvIGNvbnRh aW4gYWxsIHRoZQpyZXF1ZXN0ZWQgZGF0YS4KCkJ1Z0xpbms6IGh0dHBzOi8vYnVncy5sYXVuY2hw YWQubmV0L2J1Z3MvMTgxMzI0NApTaWduZWQtb2ZmLWJ5OiBBbmRyZWEgUmlnaGkgPGFuZHJlYS5y aWdoaUBjYW5vbmljYWwuY29tPgpBY2tlZC1ieTogUHJhdmluIEIgU2hlbGFyIDxwc2hlbGFyQG92 bi5vcmc+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5l dD4KLS0tCiBuZXQvb3BlbnZzd2l0Y2gvZmxvd19uZXRsaW5rLmMgfCA0ICsrLS0KIDEgZmlsZSBj aGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0 L29wZW52c3dpdGNoL2Zsb3dfbmV0bGluay5jIGIvbmV0L29wZW52c3dpdGNoL2Zsb3dfbmV0bGlu ay5jCmluZGV4IDY5MWRhODUzYmVmNS4uNGJkZjVlM2FjMjA4IDEwMDY0NAotLS0gYS9uZXQvb3Bl bnZzd2l0Y2gvZmxvd19uZXRsaW5rLmMKKysrIGIvbmV0L29wZW52c3dpdGNoL2Zsb3dfbmV0bGlu ay5jCkBAIC0yMzA2LDE0ICsyMzA2LDE0IEBAIHN0YXRpYyBzdHJ1Y3QgbmxhdHRyICpyZXNlcnZl X3NmYV9zaXplKHN0cnVjdCBzd19mbG93X2FjdGlvbnMgKipzZmEsCiAKIAlzdHJ1Y3Qgc3dfZmxv d19hY3Rpb25zICphY3RzOwogCWludCBuZXdfYWN0c19zaXplOwotCWludCByZXFfc2l6ZSA9IE5M QV9BTElHTihhdHRyX2xlbik7CisJc2l6ZV90IHJlcV9zaXplID0gTkxBX0FMSUdOKGF0dHJfbGVu KTsKIAlpbnQgbmV4dF9vZmZzZXQgPSBvZmZzZXRvZihzdHJ1Y3Qgc3dfZmxvd19hY3Rpb25zLCBh Y3Rpb25zKSArCiAJCQkJCSgqc2ZhKS0+YWN0aW9uc19sZW47CiAKIAlpZiAocmVxX3NpemUgPD0g KGtzaXplKCpzZmEpIC0gbmV4dF9vZmZzZXQpKQogCQlnb3RvIG91dDsKIAotCW5ld19hY3RzX3Np emUgPSBrc2l6ZSgqc2ZhKSAqIDI7CisJbmV3X2FjdHNfc2l6ZSA9IG1heChuZXh0X29mZnNldCAr IHJlcV9zaXplLCBrc2l6ZSgqc2ZhKSAqIDIpOwogCiAJaWYgKG5ld19hY3RzX3NpemUgPiBNQVhf QUNUSU9OU19CVUZTSVpFKSB7CiAJCWlmICgoTUFYX0FDVElPTlNfQlVGU0laRSAtIG5leHRfb2Zm c2V0KSA8IHJlcV9zaXplKSB7Ci0tIAoyLjIwLjEKCgpGcm9tIDA4MWEyMmQ1YzlhZDMyYjRmNzg0 N2VmNWFmMDlkZmI3YjUyZTIxMjQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRG LTg/cT9Caj1DMz1COHJuPTIwTW9yaz89IDxiam9ybkBtb3JrLm5vPgpEYXRlOiBXZWQsIDI3IE1h ciAyMDE5IDE1OjI2OjAxICswMTAwClN1YmplY3Q6IFtQQVRDSCAxNS8zNl0gcW1pX3d3YW46IGFk ZCBPbGljYXJkIDYwMApNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47 IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAoKWyBVcHN0cmVh bSBjb21taXQgNjI4OWQwZmFjZDllYmNlNGNjODNlNWRhMzllMTU2NDNlZTk5OGRjNSBdCgpUaGlz IGlzIGEgUXVhbGNvbW0gYmFzZWQgZGV2aWNlIHdpdGggYSBRTUkgZnVuY3Rpb24gb24gaW50ZXJm YWNlIDQuCkl0IGlzIG1vZGUgc3dpdGNoZWQgZnJvbSAyMDIwOjIwMzAgdXNpbmcgYSBzdGFuZGFy ZCBlamVjdCBtZXNzYWdlLgoKVDogIEJ1cz0wMSBMZXY9MDEgUHJudD0wMSBQb3J0PTAwIENudD0w MSBEZXYjPSAgNiBTcGQ9NDgwICBNeENoPSAwCkQ6ICBWZXI9IDIuMDAgQ2xzPTAwKD5pZmMgKSBT dWI9MDAgUHJvdD0wMCBNeFBTPTY0ICNDZmdzPSAgMQpQOiAgVmVuZG9yPTIwMjAgUHJvZElEPTIw MzEgUmV2PSAyLjMyClM6ICBNYW51ZmFjdHVyZXI9TW9iaWxlIENvbm5lY3QKUzogIFByb2R1Y3Q9 TW9iaWxlIENvbm5lY3QKUzogIFNlcmlhbE51bWJlcj0wMTIzNDU2Nzg5QUJDREVGCkM6KiAjSWZz PSA2IENmZyM9IDEgQXRyPTgwIE14UHdyPTUwMG1BCkk6KiBJZiM9IDAgQWx0PSAwICNFUHM9IDIg Q2xzPWZmKHZlbmQuKSBTdWI9ZmYgUHJvdD1mZiBEcml2ZXI9KG5vbmUpCkU6ICBBZD04MShJKSBB dHI9MDIoQnVsaykgTXhQUz0gNTEyIEl2bD0wbXMKRTogIEFkPTAxKE8pIEF0cj0wMihCdWxrKSBN eFBTPSA1MTIgSXZsPTBtcwpJOiogSWYjPSAxIEFsdD0gMCAjRVBzPSAzIENscz1mZih2ZW5kLikg U3ViPTAwIFByb3Q9MDAgRHJpdmVyPShub25lKQpFOiAgQWQ9ODMoSSkgQXRyPTAzKEludC4pIE14 UFM9ICAxMCBJdmw9MzJtcwpFOiAgQWQ9ODIoSSkgQXRyPTAyKEJ1bGspIE14UFM9IDUxMiBJdmw9 MG1zCkU6ICBBZD0wMihPKSBBdHI9MDIoQnVsaykgTXhQUz0gNTEyIEl2bD0wbXMKSToqIElmIz0g MiBBbHQ9IDAgI0VQcz0gMyBDbHM9ZmYodmVuZC4pIFN1Yj0wMCBQcm90PTAwIERyaXZlcj0obm9u ZSkKRTogIEFkPTg1KEkpIEF0cj0wMyhJbnQuKSBNeFBTPSAgMTAgSXZsPTMybXMKRTogIEFkPTg0 KEkpIEF0cj0wMihCdWxrKSBNeFBTPSA1MTIgSXZsPTBtcwpFOiAgQWQ9MDMoTykgQXRyPTAyKEJ1 bGspIE14UFM9IDUxMiBJdmw9MG1zCkk6KiBJZiM9IDMgQWx0PSAwICNFUHM9IDMgQ2xzPWZmKHZl bmQuKSBTdWI9MDAgUHJvdD0wMCBEcml2ZXI9KG5vbmUpCkU6ICBBZD04NyhJKSBBdHI9MDMoSW50 LikgTXhQUz0gIDEwIEl2bD0zMm1zCkU6ICBBZD04NihJKSBBdHI9MDIoQnVsaykgTXhQUz0gNTEy IEl2bD0wbXMKRTogIEFkPTA0KE8pIEF0cj0wMihCdWxrKSBNeFBTPSA1MTIgSXZsPTBtcwpJOiog SWYjPSA0IEFsdD0gMCAjRVBzPSAzIENscz1mZih2ZW5kLikgU3ViPWZmIFByb3Q9ZmYgRHJpdmVy PShub25lKQpFOiAgQWQ9ODkoSSkgQXRyPTAzKEludC4pIE14UFM9ICAgOCBJdmw9MzJtcwpFOiAg QWQ9ODgoSSkgQXRyPTAyKEJ1bGspIE14UFM9IDUxMiBJdmw9MG1zCkU6ICBBZD0wNShPKSBBdHI9 MDIoQnVsaykgTXhQUz0gNTEyIEl2bD0wbXMKSToqIElmIz0gNSBBbHQ9IDAgI0VQcz0gMiBDbHM9 MDgoc3Rvci4pIFN1Yj0wNiBQcm90PTUwIERyaXZlcj0obm9uZSkKRTogIEFkPThhKEkpIEF0cj0w MihCdWxrKSBNeFBTPSA1MTIgSXZsPTBtcwpFOiAgQWQ9MDYoTykgQXRyPTAyKEJ1bGspIE14UFM9 IDUxMiBJdmw9MTI1dXMKClNpZ25lZC1vZmYtYnk6IEJqw7hybiBNb3JrIDxiam9ybkBtb3JrLm5v PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0t LQogZHJpdmVycy9uZXQvdXNiL3FtaV93d2FuLmMgfCAxICsKIDEgZmlsZSBjaGFuZ2VkLCAxIGlu c2VydGlvbigrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3VzYi9xbWlfd3dhbi5jIGIvZHJp dmVycy9uZXQvdXNiL3FtaV93d2FuLmMKaW5kZXggNzRiZWJiZGI0YjE1Li45MTk1ZjM0NzZiMWQg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3VzYi9xbWlfd3dhbi5jCisrKyBiL2RyaXZlcnMvbmV0 L3VzYi9xbWlfd3dhbi5jCkBAIC0xMjAzLDYgKzEyMDMsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0 IHVzYl9kZXZpY2VfaWQgcHJvZHVjdHNbXSA9IHsKIAl7UU1JX0ZJWEVEX0lOVEYoMHgxOWQyLCAw eDIwMDIsIDQpfSwJLyogWlRFIChWb2RhZm9uZSkgSzM3NjUtWiAqLwogCXtRTUlfRklYRURfSU5U RigweDIwMDEsIDB4N2UxOSwgNCl9LAkvKiBELUxpbmsgRFdNLTIyMSBCMSAqLwogCXtRTUlfRklY RURfSU5URigweDIwMDEsIDB4N2UzNSwgNCl9LAkvKiBELUxpbmsgRFdNLTIyMiAqLworCXtRTUlf RklYRURfSU5URigweDIwMjAsIDB4MjAzMSwgNCl9LAkvKiBPbGljYXJkIDYwMCAqLwogCXtRTUlf RklYRURfSU5URigweDIwMjAsIDB4MjAzMywgNCl9LAkvKiBCcm9hZE1vYmkgQk04MDZVICovCiAJ e1FNSV9GSVhFRF9JTlRGKDB4MGYzZCwgMHg2OGEyLCA4KX0sICAgIC8qIFNpZXJyYSBXaXJlbGVz cyBNQzc3MDAgKi8KIAl7UU1JX0ZJWEVEX0lOVEYoMHgxMTRmLCAweDY4YTIsIDgpfSwgICAgLyog U2llcnJhIFdpcmVsZXNzIE1DNzc1MCAqLwotLSAKMi4yMC4xCgoKRnJvbSAwN2EzODY4MWMzZDE2 MzhkYWViMTVkYTZhN2MyZjc4MmJiYWY3NmZkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBIZWluZXIgS2FsbHdlaXQgPGhrYWxsd2VpdDFAZ21haWwuY29tPgpEYXRlOiBGcmksIDUgQXBy IDIwMTkgMjA6NDY6NDYgKzAyMDAKU3ViamVjdDogW1BBVENIIDE2LzM2XSByODE2OTogZGlzYWJs ZSBBU1BNIGFnYWluCgpbIFVwc3RyZWFtIGNvbW1pdCBiNzViYjhhNWI3NTVkMGM3YmYxYWMwNzFl NGRmMjM0OWE3NjQ0YTFlIF0KClRoZXJlJ3MgYSBzaWduaWZpY2FudCBudW1iZXIgb2YgcmVwb3J0 cyB0aGF0IHJlLWVuYWJsaW5nIEFTUE0gY2F1c2VzCmRpZmZlcmVudCBpc3N1ZXMsIHJhbmdpbmcg ZnJvbSBkZWNyZWFzZWQgcGVyZm9ybWFuY2UgdG8gc3lzdGVtIG5vdApib290aW5nIGF0IGFsbC4g VGhpcyBhZmZlY3RzIG9ubHkgYSBtaW5vcml0eSBvZiB1c2VycywgYnV0IHRoZSBudW1iZXIKb2Yg YWZmZWN0ZWQgdXNlcnMgaXMgYmlnIGVub3VnaCB0aGF0IHdlIGJldHRlciBzd2l0Y2ggb2ZmIEFT UE0gYWdhaW4uCgpUaGlzIHdpbGwgaHVydCBub3RlYm9vayB1c2VycyB3aG8gYXJlIG5vdCBhZmZl Y3RlZCBieSB0aGUgaXNzdWVzLCB0aGV5Cm1heSBzZWUgZGVjcmVhc2VkIGJhdHRlcnkgcnVudGlt ZSB3L28gQVNQTS4gV2l0aCB0aGUgUENJIGNvcmUgZm9sa3MgaXMKYmVpbmcgZGlzY3Vzc2VkIHRv IGFkZCBnZW5lcmljIHN5c2ZzIGF0dHJpYnV0ZXMgdG8gY29udHJvbCBBU1BNLgpPbmNlIHRoaXMg aXMgaW4gcGxhY2UgYnJhdmUgZW5vdWdoIHVzZXJzIGNhbiByZS1lbmFibGUgQVNQTSBvbiB0aGVp cgpzeXN0ZW0uCgpGaXhlczogYTk5NzkwYmY1YzdmICgicjgxNjk6IFJlaW5zdGF0ZSBBU1BNIFN1 cHBvcnQiKQpTaWduZWQtb2ZmLWJ5OiBIZWluZXIgS2FsbHdlaXQgPGhrYWxsd2VpdDFAZ21haWwu Y29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvcmVhbHRlay9yODE2OS5jIHwgNiArKysrKysKIDEg ZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9l dGhlcm5ldC9yZWFsdGVrL3I4MTY5LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9yZWFsdGVrL3I4 MTY5LmMKaW5kZXggZjU1ZDE3N2FlODk0Li41YWRiMDBmNTIxZGIgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvbmV0L2V0aGVybmV0L3JlYWx0ZWsvcjgxNjkuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5l dC9yZWFsdGVrL3I4MTY5LmMKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlIDxsaW51eC9wbV9y dW50aW1lLmg+CiAjaW5jbHVkZSA8bGludXgvZmlybXdhcmUuaD4KICNpbmNsdWRlIDxsaW51eC9w cmVmZXRjaC5oPgorI2luY2x1ZGUgPGxpbnV4L3BjaS1hc3BtLmg+CiAjaW5jbHVkZSA8bGludXgv aXB2Ni5oPgogI2luY2x1ZGUgPG5ldC9pcDZfY2hlY2tzdW0uaD4KIApAQCAtNzIyNCw2ICs3MjI1 LDExIEBAIHN0YXRpYyBpbnQgcnRsX2luaXRfb25lKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBjb25z dCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqZW50KQogCQkJcmV0dXJuIHJjOwogCX0KIAorCS8qIERp c2FibGUgQVNQTSBjb21wbGV0ZWx5IGFzIHRoYXQgY2F1c2UgcmFuZG9tIGRldmljZSBzdG9wIHdv cmtpbmcKKwkgKiBwcm9ibGVtcyBhcyB3ZWxsIGFzIGZ1bGwgc3lzdGVtIGhhbmdzIGZvciBzb21l IFBDSWUgZGV2aWNlcyB1c2Vycy4KKwkgKi8KKwlwY2lfZGlzYWJsZV9saW5rX3N0YXRlKHBkZXYs IFBDSUVfTElOS19TVEFURV9MMFMgfCBQQ0lFX0xJTktfU1RBVEVfTDEpOworCiAJLyogZW5hYmxl IGRldmljZSAoaW5jbC4gUENJIFBNIHdha2V1cCBhbmQgaG90cGx1ZyBzZXR1cCkgKi8KIAlyYyA9 IHBjaW1fZW5hYmxlX2RldmljZShwZGV2KTsKIAlpZiAocmMgPCAwKSB7Ci0tIAoyLjIwLjEKCgpG cm9tIDAzYmY5NjJlYTU0OWE4MmZlYTU1NjQyYjU0ODQxOTY3M2NkZWUwMjcgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IFhpbiBMb25nIDxsdWNpZW4ueGluQGdtYWlsLmNvbT4KRGF0ZTog U3VuLCAzMSBNYXIgMjAxOSAxNjo1ODoxNSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMTcvMzZdIHNj dHA6IGluaXRpYWxpemUgX3BhZCBvZiBzb2NrYWRkcl9pbiBiZWZvcmUgY29weWluZyB0bwogdXNl ciBtZW1vcnkKClsgVXBzdHJlYW0gY29tbWl0IDA5Mjc5ZTYxNWM4MWNlNTVlMDQ4MzU5NzA2MDFh ZTI4NmUzZmFjYmUgXQoKU3l6Ym90IHJlcG9ydCBhIGtlcm5lbC1pbmZvbGVhazoKCiAgQlVHOiBL TVNBTjoga2VybmVsLWluZm9sZWFrIGluIF9jb3B5X3RvX3VzZXIrMHgxNmIvMHgxZjAgbGliL3Vz ZXJjb3B5LmM6MzIKICBDYWxsIFRyYWNlOgogICAgX2NvcHlfdG9fdXNlcisweDE2Yi8weDFmMCBs aWIvdXNlcmNvcHkuYzozMgogICAgY29weV90b191c2VyIGluY2x1ZGUvbGludXgvdWFjY2Vzcy5o OjE3NCBbaW5saW5lXQogICAgc2N0cF9nZXRzb2Nrb3B0X3BlZXJfYWRkcnMgbmV0L3NjdHAvc29j a2V0LmM6NTkxMSBbaW5saW5lXQogICAgc2N0cF9nZXRzb2Nrb3B0KzB4MTY2OGUvMHgxN2Y3MCBu ZXQvc2N0cC9zb2NrZXQuYzo3NTYyCiAgICAuLi4KICBVbmluaXQgd2FzIHN0b3JlZCB0byBtZW1v cnkgYXQ6CiAgICBzY3RwX3RyYW5zcG9ydF9pbml0IG5ldC9zY3RwL3RyYW5zcG9ydC5jOjYxIFtp bmxpbmVdCiAgICBzY3RwX3RyYW5zcG9ydF9uZXcrMHgxNmQvMHg5YTAgbmV0L3NjdHAvdHJhbnNw b3J0LmM6MTE1CiAgICBzY3RwX2Fzc29jX2FkZF9wZWVyKzB4NTMyLzB4MWY3MCBuZXQvc2N0cC9h c3NvY2lvbGEuYzo2MzcKICAgIHNjdHBfcHJvY2Vzc19wYXJhbSBuZXQvc2N0cC9zbV9tYWtlX2No dW5rLmM6MjU0OCBbaW5saW5lXQogICAgc2N0cF9wcm9jZXNzX2luaXQrMHgxYTFiLzB4M2VkMCBu ZXQvc2N0cC9zbV9tYWtlX2NodW5rLmM6MjM2MQogICAgLi4uCiAgQnl0ZXMgOC0xNSBvZiAxNiBh cmUgdW5pbml0aWFsaXplZAoKSXQgd2FzIGNhdXNlZCBieSB0aGF0IHRoIF9wYWQgZmllbGQgKHRo ZSA4LTE1IGJ5dGVzKSBvZiBhIHY0IGFkZHIgKHNhdmVkIGluCnN0cnVjdCBzb2NrYWRkcl9pbikg d2Fzbid0IGluaXRpYWxpemVkLCBidXQgZGlyZWN0bHkgY29waWVkIHRvIHVzZXIgbWVtb3J5Cmlu IHNjdHBfZ2V0c29ja29wdF9wZWVyX2FkZHJzKCkuCgpTbyBmaXggaXQgYnkgY2FsbGluZyBtZW1z ZXQoYWRkci0+djQuc2luX3plcm8sIDAsIDgpIHRvIGluaXRpYWxpemUgX3BhZCBvZgpzb2NrYWRk cl9pbiBiZWZvcmUgY29weWluZyBpdCB0byB1c2VyIG1lbW9yeSBpbiBzY3RwX3Y0X2FkZHJfdG9f dXNlcigpLCBhcwpzY3RwX3Y2X2FkZHJfdG9fdXNlcigpIGRvZXMuCgpSZXBvcnRlZC1ieTogc3l6 Ym90Kzg2YjVjN2MyMzZhMjI2MTZhNzJmQHN5emthbGxlci5hcHBzcG90bWFpbC5jb20KU2lnbmVk LW9mZi1ieTogWGluIExvbmcgPGx1Y2llbi54aW5AZ21haWwuY29tPgpUZXN0ZWQtYnk6IEFsZXhh bmRlciBQb3RhcGVua28gPGdsaWRlckBnb29nbGUuY29tPgpBY2tlZC1ieTogTmVpbCBIb3JtYW4g PG5ob3JtYW5AdHV4ZHJpdmVyLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxk YXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9zY3RwL3Byb3RvY29sLmMgfCAxICsKIDEgZmls ZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQoKZGlmZiAtLWdpdCBhL25ldC9zY3RwL3Byb3RvY29s LmMgYi9uZXQvc2N0cC9wcm90b2NvbC5jCmluZGV4IDZhYmM4YjI3NDI3MC4uOTUxYWZkZWVhNWU5 IDEwMDY0NAotLS0gYS9uZXQvc2N0cC9wcm90b2NvbC5jCisrKyBiL25ldC9zY3RwL3Byb3RvY29s LmMKQEAgLTYwMCw2ICs2MDAsNyBAQCBzdGF0aWMgc3RydWN0IHNvY2sgKnNjdHBfdjRfY3JlYXRl X2FjY2VwdF9zayhzdHJ1Y3Qgc29jayAqc2ssCiBzdGF0aWMgaW50IHNjdHBfdjRfYWRkcl90b191 c2VyKHN0cnVjdCBzY3RwX3NvY2sgKnNwLCB1bmlvbiBzY3RwX2FkZHIgKmFkZHIpCiB7CiAJLyog Tm8gYWRkcmVzcyBtYXBwaW5nIGZvciBWNCBzb2NrZXRzICovCisJbWVtc2V0KGFkZHItPnY0LnNp bl96ZXJvLCAwLCBzaXplb2YoYWRkci0+djQuc2luX3plcm8pKTsKIAlyZXR1cm4gc2l6ZW9mKHN0 cnVjdCBzb2NrYWRkcl9pbik7CiB9CiAKLS0gCjIuMjAuMQoKCkZyb20gZjI0Y2VkNjNmZWRmNzIx MTRiZGI1YzY0MjMyOTg0ODNlYzQ5YmMzNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog S29lbiBEZSBTY2hlcHBlciA8a29lbi5kZV9zY2hlcHBlckBub2tpYS1iZWxsLWxhYnMuY29tPgpE YXRlOiBUaHUsIDQgQXByIDIwMTkgMTI6MjQ6MDIgKzAwMDAKU3ViamVjdDogW1BBVENIIDE4LzM2 XSB0Y3A6IEVuc3VyZSBEQ1RDUCByZWFjdHMgdG8gbG9zc2VzCk1JTUUtVmVyc2lvbjogMS4wCkNv bnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVu Y29kaW5nOiA4Yml0CgpbIFVwc3RyZWFtIGNvbW1pdCBhZWNmZGUyMzEwOGI4ZTYzN2Q5ZjVjNWU1 MjNiMjRmYjk3MDM1ZGMzIF0KClJGQzgyNTcgwqczLjUgZXhwbGljaXRseSBzdGF0ZXMgdGhhdCAi QSBEQ1RDUCBzZW5kZXIgTVVTVCByZWFjdCB0bwpsb3NzIGVwaXNvZGVzIGluIHRoZSBzYW1lIHdh eSBhcyBjb252ZW50aW9uYWwgVENQIi4KCkN1cnJlbnRseSwgTGludXggRENUQ1AgcGVyZm9ybXMg bm8gY3duZCByZWR1Y3Rpb24gd2hlbiBsb3NzZXMKYXJlIGVuY291bnRlcmVkLiBPcHRpb25hbGx5 LCB0aGUgZGN0Y3BfY2xhbXBfYWxwaGFfb25fbG9zcyByZXNldHMKYWxwaGEgdG8gaXRzIG1heGlt YWwgdmFsdWUgaWYgYSBSVE8gaGFwcGVucy4gVGhpcyBiZWhhdmlvcgppcyBzdWItb3B0aW1hbCBm b3IgYXQgbGVhc3QgdHdvIHJlYXNvbnM6IGkpIGl0IGlnbm9yZXMgbG9zc2VzCnRyaWdnZXJpbmcg ZmFzdCByZXRyYW5zbWlzc2lvbnM7IGFuZCBpaSkgaXQgY2F1c2VzIHVubmVjZXNzYXJ5IGxhcmdl CmN3bmQgcmVkdWN0aW9uIGluIHRoZSBmdXR1cmUgaWYgdGhlIGxvc3Mgd2FzIGlzb2xhdGVkIGFz IGl0IHJlc2V0cwp0aGUgaGlzdG9yaWNhbCB0ZXJtIG9mIERDVENQJ3MgYWxwaGEgRVdNQSB0byBp dHMgbWF4aW1hbCB2YWx1ZSAoaS5lLiwKZGVub3RpbmcgYSB0b3RhbCBjb25nZXN0aW9uKS4gVGhl IHNlY29uZCByZWFzb24gaGFzIGFuIGVzcGVjaWFsbHkKbm90aWNlYWJsZSBlZmZlY3Qgd2hlbiB1 c2luZyBEQ1RDUCBpbiBoaWdoIEJEUCBlbnZpcm9ubWVudHMsIHdoZXJlCmFscGhhIG5vcm1hbGx5 IHN0YXlzIGF0IGxvdyB2YWx1ZXMuCgpUaGlzIHBhdGNoIHJlcGxhY2UgdGhlIGNsYW1waW5nIG9m IGFscGhhIGJ5IHNldHRpbmcgc3N0aHJlc2ggdG8KaGFsZiBvZiBjd25kIGZvciBib3RoIGZhc3Qg cmV0cmFuc21pc3Npb25zIGFuZCBSVE9zLCBhdCBtb3N0IG9uY2UKcGVyIFJUVC4gQ29uc2VxdWVu dGx5LCB0aGUgZGN0Y3BfY2xhbXBfYWxwaGFfb25fbG9zcyBtb2R1bGUgcGFyYW1ldGVyCmhhcyBi ZWVuIHJlbW92ZWQuCgpUaGUgdGFibGUgYmVsb3cgc2hvd3MgZXhwZXJpbWVudGFsIHJlc3VsdHMg d2hlcmUgd2UgbWVhc3VyZWQgdGhlCmRyb3AgcHJvYmFiaWxpdHkgb2YgYSBQSUUgQVFNIChub3Qg YXBwbHlpbmcgRUNOIG1hcmtzKSBhdCBhCmJvdHRsZW5lY2sgaW4gdGhlIHByZXNlbmNlIG9mIGEg c2luZ2xlIFRDUCBmbG93IHdpdGggZWl0aGVyIHRoZQphbHBoYS1jbGFtcGluZyBvcHRpb24gZW5h YmxlZCBvciB0aGUgY3duZCBoYWx2aW5nIHByb3Bvc2VkIGJ5IHRoaXMKcGF0Y2guIFJlc3VsdHMg dXNpbmcgcmVubyBvciBjdWJpYyBhcmUgZ2l2ZW4gZm9yIGNvbXBhcmlzb24uCgogICAgICAgICAg ICAgICAgICAgICAgICAgIHwgIExpbmsgICB8ICAgUlRUICAgIHwgICAgRHJvcAogICAgICAgICAg ICAgICAgIFRDUCBDQyAgIHwgIHNwZWVkICB8IGJhc2UrQVFNIHwgcHJvYmFiaWxpdHkKICAgICAg ICA9PT09PT09PT09PT09PT09PT18PT09PT09PT09fD09PT09PT09PT18PT09PT09PT09PT09CiAg ICAgICAgICAgICAgICAgICAgQ1VCSUMgfCAgNDBNYnBzIHwgIDcrMjBtcyAgfCAgICAwLjIxJQog ICAgICAgICAgICAgICAgICAgICBSRU5PIHwgICAgICAgICB8ICAgICAgICAgIHwgICAgMC4xOSUK ICAgICAgICBEQ1RDUC1DTEFNUC1BTFBIQSB8ICAgICAgICAgfCAgICAgICAgICB8ICAgMjUuODAl CiAgICAgICAgIERDVENQLUhBTFZFLUNXTkQgfCAgICAgICAgIHwgICAgICAgICAgfCAgICAwLjIy JQogICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS18LS0tLS0tLS0tLXwtLS0tLS0t LS0tLS0KICAgICAgICAgICAgICAgICAgICBDVUJJQyB8IDEwME1icHMgfCAgNysyMG1zICB8ICAg IDAuMDMlCiAgICAgICAgICAgICAgICAgICAgIFJFTk8gfCAgICAgICAgIHwgICAgICAgICAgfCAg ICAwLjAyJQogICAgICAgIERDVENQLUNMQU1QLUFMUEhBIHwgICAgICAgICB8ICAgICAgICAgIHwg ICAyMy4zMCUKICAgICAgICAgRENUQ1AtSEFMVkUtQ1dORCB8ICAgICAgICAgfCAgICAgICAgICB8 ICAgIDAuMDQlCiAgICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLXwtLS0tLS0tLS0t fC0tLS0tLS0tLS0tLQogICAgICAgICAgICAgICAgICAgIENVQklDIHwgODAwTWJwcyB8ICAgMSsx bXMgIHwgICAgMC4wNCUKICAgICAgICAgICAgICAgICAgICAgUkVOTyB8ICAgICAgICAgfCAgICAg ICAgICB8ICAgIDAuMDUlCiAgICAgICAgRENUQ1AtQ0xBTVAtQUxQSEEgfCAgICAgICAgIHwgICAg ICAgICAgfCAgIDE4LjcwJQogICAgICAgICBEQ1RDUC1IQUxWRS1DV05EIHwgICAgICAgICB8ICAg ICAgICAgIHwgICAgMC4wNiUKCldlIHNlZSB0aGF0LCB3aXRob3V0IGhhbHZpbmcgaXRzIGN3bmQg Zm9yIGFsbCBzb3VyY2Ugb2YgbG9zc2VzLApEQ1RDUCBkcml2ZXMgdGhlIEFRTSB0byBsYXJnZSBk cm9wIHByb2JhYmlsaXRpZXMgaW4gb3JkZXIgdG8ga2VlcAp0aGUgcXVldWUgbGVuZ3RoIHVuZGVy IGNvbnRyb2wgKGkuZS4sIGl0IHJlcGVhdGVkbHkgZmFjZXMgUlRPcykuCkluc3RlYWQsIGlmIERD VENQIHJlYWN0cyB0byBhbGwgc291cmNlIG9mIGxvc3NlcywgaXQgY2FuIHRoZW4gYmUKY29udHJv bGxlZCBieSB0aGUgQVFNIHVzaW5nIHNpbWlsYXIgZHJvcCBsZXZlbHMgdGhhbiBjdWJpYyBvciBy ZW5vLgoKU2lnbmVkLW9mZi1ieTogS29lbiBEZSBTY2hlcHBlciA8a29lbi5kZV9zY2hlcHBlckBu b2tpYS1iZWxsLWxhYnMuY29tPgpTaWduZWQtb2ZmLWJ5OiBPbGl2aWVyIFRpbG1hbnMgPG9saXZp ZXIudGlsbWFuc0Bub2tpYS1iZWxsLWxhYnMuY29tPgpDYzogQm9iIEJyaXNjb2UgPHJlc2VhcmNo QGJvYmJyaXNjb2UubmV0PgpDYzogTGF3cmVuY2UgQnJha21vIDxicmFrbW9AZmIuY29tPgpDYzog RmxvcmlhbiBXZXN0cGhhbCA8ZndAc3RybGVuLmRlPgpDYzogRGFuaWVsIEJvcmttYW5uIDxib3Jr bWFubkBpb2dlYXJib3gubmV0PgpDYzogWXVjaHVuZyBDaGVuZyA8eWNoZW5nQGdvb2dsZS5jb20+ CkNjOiBOZWFsIENhcmR3ZWxsIDxuY2FyZHdlbGxAZ29vZ2xlLmNvbT4KQ2M6IEVyaWMgRHVtYXpl dCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KQ2M6IEFuZHJldyBTaGV3bWFrZXIgPGFnc2hld0BnbWFp bC5jb20+CkNjOiBHbGVubiBKdWRkIDxnbGVubi5qdWRkQG1vcmdhbnN0YW5sZXkuY29tPgpBY2tl ZC1ieTogRmxvcmlhbiBXZXN0cGhhbCA8ZndAc3RybGVuLmRlPgpBY2tlZC1ieTogTmVhbCBDYXJk d2VsbCA8bmNhcmR3ZWxsQGdvb2dsZS5jb20+CkFja2VkLWJ5OiBEYW5pZWwgQm9ya21hbm4gPGRh bmllbEBpb2dlYXJib3gubmV0PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVt QGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjQvdGNwX2RjdGNwLmMgfCAzNiArKysrKysrKysr KysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxOCBpbnNlcnRpb25z KCspLCAxOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2NC90Y3BfZGN0Y3AuYyBi L25ldC9pcHY0L3RjcF9kY3RjcC5jCmluZGV4IGNkNDgxNGY3ZTk2Mi4uMzU5ZGE2OGQ3YzA2IDEw MDY0NAotLS0gYS9uZXQvaXB2NC90Y3BfZGN0Y3AuYworKysgYi9uZXQvaXB2NC90Y3BfZGN0Y3Au YwpAQCAtNjcsMTEgKzY3LDYgQEAgc3RhdGljIHVuc2lnbmVkIGludCBkY3RjcF9hbHBoYV9vbl9p bml0IF9fcmVhZF9tb3N0bHkgPSBEQ1RDUF9NQVhfQUxQSEE7CiBtb2R1bGVfcGFyYW0oZGN0Y3Bf YWxwaGFfb25faW5pdCwgdWludCwgMDY0NCk7CiBNT0RVTEVfUEFSTV9ERVNDKGRjdGNwX2FscGhh X29uX2luaXQsICJwYXJhbWV0ZXIgZm9yIGluaXRpYWwgYWxwaGEgdmFsdWUiKTsKIAotc3RhdGlj IHVuc2lnbmVkIGludCBkY3RjcF9jbGFtcF9hbHBoYV9vbl9sb3NzIF9fcmVhZF9tb3N0bHk7Ci1t b2R1bGVfcGFyYW0oZGN0Y3BfY2xhbXBfYWxwaGFfb25fbG9zcywgdWludCwgMDY0NCk7Ci1NT0RV TEVfUEFSTV9ERVNDKGRjdGNwX2NsYW1wX2FscGhhX29uX2xvc3MsCi0JCSAicGFyYW1ldGVyIGZv ciBjbGFtcGluZyBhbHBoYSBvbiBsb3NzIik7Ci0KIHN0YXRpYyBzdHJ1Y3QgdGNwX2Nvbmdlc3Rp b25fb3BzIGRjdGNwX3Jlbm87CiAKIHN0YXRpYyB2b2lkIGRjdGNwX3Jlc2V0KGNvbnN0IHN0cnVj dCB0Y3Bfc29jayAqdHAsIHN0cnVjdCBkY3RjcCAqY2EpCkBAIC0xNjQsMjEgKzE1OSwyMyBAQCBz dGF0aWMgdm9pZCBkY3RjcF91cGRhdGVfYWxwaGEoc3RydWN0IHNvY2sgKnNrLCB1MzIgZmxhZ3Mp CiAJfQogfQogCi1zdGF0aWMgdm9pZCBkY3RjcF9zdGF0ZShzdHJ1Y3Qgc29jayAqc2ssIHU4IG5l d19zdGF0ZSkKK3N0YXRpYyB2b2lkIGRjdGNwX3JlYWN0X3RvX2xvc3Moc3RydWN0IHNvY2sgKnNr KQogewotCWlmIChkY3RjcF9jbGFtcF9hbHBoYV9vbl9sb3NzICYmIG5ld19zdGF0ZSA9PSBUQ1Bf Q0FfTG9zcykgewotCQlzdHJ1Y3QgZGN0Y3AgKmNhID0gaW5ldF9jc2tfY2Eoc2spOworCXN0cnVj dCBkY3RjcCAqY2EgPSBpbmV0X2Nza19jYShzayk7CisJc3RydWN0IHRjcF9zb2NrICp0cCA9IHRj cF9zayhzayk7CiAKLQkJLyogSWYgdGhpcyBleHRlbnNpb24gaXMgZW5hYmxlZCwgd2UgY2xhbXAg ZGN0Y3BfYWxwaGEgdG8KLQkJICogbWF4IG9uIHBhY2tldCBsb3NzOyB0aGUgbW90aXZhdGlvbiBp cyB0aGF0IGRjdGNwX2FscGhhCi0JCSAqIGlzIGFuIGluZGljYXRvciB0byB0aGUgZXh0ZW5kIG9m IGNvbmdlc3Rpb24gYW5kIHBhY2tldAotCQkgKiBsb3NzIGlzIGFuIGluZGljYXRvciBvZiBleHRy ZW1lIGNvbmdlc3Rpb247IHNldHRpbmcKLQkJICogdGhpcyBpbiBwcmFjdGljZSB0dXJuZWQgb3V0 IHRvIGJlIGJlbmVmaWNpYWwsIGFuZAotCQkgKiBlZmZlY3RpdmVseSBhc3N1bWVzIHRvdGFsIGNv bmdlc3Rpb24gd2hpY2ggcmVkdWNlcyB0aGUKLQkJICogd2luZG93IGJ5IGhhbGYuCi0JCSAqLwot CQljYS0+ZGN0Y3BfYWxwaGEgPSBEQ1RDUF9NQVhfQUxQSEE7Ci0JfQorCWNhLT5sb3NzX2N3bmQg PSB0cC0+c25kX2N3bmQ7CisJdHAtPnNuZF9zc3RocmVzaCA9IG1heCh0cC0+c25kX2N3bmQgPj4g MVUsIDJVKTsKK30KKworc3RhdGljIHZvaWQgZGN0Y3Bfc3RhdGUoc3RydWN0IHNvY2sgKnNrLCB1 OCBuZXdfc3RhdGUpCit7CisJaWYgKG5ld19zdGF0ZSA9PSBUQ1BfQ0FfUmVjb3ZlcnkgJiYKKwkg ICAgbmV3X3N0YXRlICE9IGluZXRfY3NrKHNrKS0+aWNza19jYV9zdGF0ZSkKKwkJZGN0Y3BfcmVh Y3RfdG9fbG9zcyhzayk7CisJLyogV2UgaGFuZGxlIFJUTyBpbiBkY3RjcF9jd25kX2V2ZW50IHRv IGVuc3VyZSB0aGF0IHdlIHBlcmZvcm0gb25seQorCSAqIG9uZSBsb3NzLWFkanVzdG1lbnQgcGVy IFJUVC4KKwkgKi8KIH0KIAogc3RhdGljIHZvaWQgZGN0Y3BfY3duZF9ldmVudChzdHJ1Y3Qgc29j ayAqc2ssIGVudW0gdGNwX2NhX2V2ZW50IGV2KQpAQCAtMTkwLDYgKzE4Nyw5IEBAIHN0YXRpYyB2 b2lkIGRjdGNwX2N3bmRfZXZlbnQoc3RydWN0IHNvY2sgKnNrLCBlbnVtIHRjcF9jYV9ldmVudCBl dikKIAljYXNlIENBX0VWRU5UX0VDTl9OT19DRToKIAkJZGN0Y3BfZWNlX2Fja191cGRhdGUoc2ss IGV2LCAmY2EtPnByaW9yX3Jjdl9ueHQsICZjYS0+Y2Vfc3RhdGUpOwogCQlicmVhazsKKwljYXNl IENBX0VWRU5UX0xPU1M6CisJCWRjdGNwX3JlYWN0X3RvX2xvc3Moc2spOworCQlicmVhazsKIAlk ZWZhdWx0OgogCQkvKiBEb24ndCBjYXJlIGZvciB0aGUgcmVzdC4gKi8KIAkJYnJlYWs7Ci0tIAoy LjIwLjEKCgpGcm9tIGZkZWQ3NTVmMmRhYjgzZDRkMzQ3OGJjYjRkYjE2YWQzNGUzZmU5ZjcgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IER1c3QgTGkgPGR1c3QubGlAbGludXguYWxpYmFi YS5jb20+CkRhdGU6IE1vbiwgMSBBcHIgMjAxOSAxNjowNDo1MyArMDgwMApTdWJqZWN0OiBbUEFU Q0ggMTkvMzZdIHRjcDogZml4IGEgcG90ZW50aWFsIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSBp bgogdGNwX3NrX2V4aXQKClsgVXBzdHJlYW0gY29tbWl0IGI1MDZiYzk3NWY2MGYwNmUxM2U3NGFk YjM1ZTcwOGEyM2RjNGU4N2MgXQoKIFdoZW4gdGNwX3NrX2luaXQoKSBmYWlsZWQgaW4gaW5ldF9j dGxfc29ja19jcmVhdGUoKSwKICduZXQtPmlwdjQudGNwX2Nvbmdlc3Rpb25fY29udHJvbCcgd2ls bCBiZSBsZWZ0CiB1bmluaXRpYWxpemVkLCBidXQgdGNwX3NrX2V4aXQoKSBoYXNuJ3QgY2hlY2sg Zm9yCiB0aGF0LgoKIFRoaXMgcGF0Y2ggYWRkIGNoZWNraW5nIG9uICduZXQtPmlwdjQudGNwX2Nv bmdlc3Rpb25fY29udHJvbCcKIGluIHRjcF9za19leGl0KCkgdG8gcHJldmVudCBOVUxMLXB0ciBk ZXJlZmVyZW5jZS4KCkZpeGVzOiA2NjcwZTE1MjQ0NzcgKCJ0Y3A6IE5hbWVzcGFjZS1pZnkgc3lz Y3RsX3RjcF9kZWZhdWx0X2Nvbmdlc3Rpb25fY29udHJvbCIpClNpZ25lZC1vZmYtYnk6IER1c3Qg TGkgPGR1c3QubGlAbGludXguYWxpYmFiYS5jb20+ClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVtYXpl dCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxk YXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY0L3RjcF9pcHY0LmMgfCAzICsrLQogMSBm aWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBh L25ldC9pcHY0L3RjcF9pcHY0LmMgYi9uZXQvaXB2NC90Y3BfaXB2NC5jCmluZGV4IDFhYWU5YWI1 N2ZlOS4uMDA4NTJmNDdhNzNkIDEwMDY0NAotLS0gYS9uZXQvaXB2NC90Y3BfaXB2NC5jCisrKyBi L25ldC9pcHY0L3RjcF9pcHY0LmMKQEAgLTI1NzgsNyArMjU3OCw4IEBAIHN0YXRpYyB2b2lkIF9f bmV0X2V4aXQgdGNwX3NrX2V4aXQoc3RydWN0IG5ldCAqbmV0KQogewogCWludCBjcHU7CiAKLQlt b2R1bGVfcHV0KG5ldC0+aXB2NC50Y3BfY29uZ2VzdGlvbl9jb250cm9sLT5vd25lcik7CisJaWYg KG5ldC0+aXB2NC50Y3BfY29uZ2VzdGlvbl9jb250cm9sKQorCQltb2R1bGVfcHV0KG5ldC0+aXB2 NC50Y3BfY29uZ2VzdGlvbl9jb250cm9sLT5vd25lcik7CiAKIAlmb3JfZWFjaF9wb3NzaWJsZV9j cHUoY3B1KQogCQlpbmV0X2N0bF9zb2NrX2Rlc3Ryb3koKnBlcl9jcHVfcHRyKG5ldC0+aXB2NC50 Y3Bfc2ssIGNwdSkpOwotLSAKMi4yMC4xCgoKRnJvbSBmOGUwNTZmNTI4ODUwZTA2ZjBiNTM1Njdm OWI0MWE0MTJmZjRkOWY2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTdGVwaGVuIFN1 cnlhcHV0cmEgPHNzdXJ5YWV4dHJAZ21haWwuY29tPgpEYXRlOiBNb24sIDEgQXByIDIwMTkgMDk6 MTc6MzIgLTA0MDAKU3ViamVjdDogW1BBVENIIDIwLzM2XSB2cmY6IGNoZWNrIGFjY2VwdF9zb3Vy Y2Vfcm91dGUgb24gdGhlIG9yaWdpbmFsCiBuZXRkZXZpY2UKClsgVXBzdHJlYW0gY29tbWl0IDhj ODNmMmRmOWM2NTc4ZWE0YzViOTQwZDgyMzhhZDhhNDFiODdlOWUgXQoKQ29uZmlndXJhdGlvbiBj aGVjayB0byBhY2NlcHQgc291cmNlIHJvdXRlIElQIG9wdGlvbnMgc2hvdWxkIGJlIG1hZGUgb24K dGhlIGluY29taW5nIG5ldGRldmljZSB3aGVuIHRoZSBza2ItPmRldiBpcyBhbiBsM21kZXYgbWFz dGVyLiBUaGUgcm91dGUKbG9va3VwIGZvciB0aGUgc291cmNlIHJvdXRlIG5leHQgaG9wIGFsc28g bmVlZHMgdGhlIGluY29taW5nIG5ldGRldi4KCnYyLT52MzoKLSBTaW1wbGlmeSBieSBwYXNzaW5n IHRoZSBvcmlnaW5hbCBuZXRkZXZpY2UgZG93biB0aGUgc3RhY2sgKHBlciBEYXZpZAogIEFoZXJu KS4KClNpZ25lZC1vZmYtYnk6IFN0ZXBoZW4gU3VyeWFwdXRyYSA8c3N1cnlhZXh0ckBnbWFpbC5j b20+ClJldmlld2VkLWJ5OiBEYXZpZCBBaGVybiA8ZHNhaGVybkBnbWFpbC5jb20+ClNpZ25lZC1v ZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNsdWRl L25ldC9pcC5oICAgICAgfCAyICstCiBuZXQvaXB2NC9pcF9pbnB1dC5jICAgfCA3ICsrKy0tLS0K IG5ldC9pcHY0L2lwX29wdGlvbnMuYyB8IDQgKystLQogMyBmaWxlcyBjaGFuZ2VkLCA2IGluc2Vy dGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvaXAuaCBi L2luY2x1ZGUvbmV0L2lwLmgKaW5kZXggYmUzY2FkOWMyZTRjLi41ODM1MjZhYWQxZDAgMTAwNjQ0 Ci0tLSBhL2luY2x1ZGUvbmV0L2lwLmgKKysrIGIvaW5jbHVkZS9uZXQvaXAuaApAQCAtNjc3LDcg KzY3Nyw3IEBAIGludCBpcF9vcHRpb25zX2dldF9mcm9tX3VzZXIoc3RydWN0IG5ldCAqbmV0LCBz dHJ1Y3QgaXBfb3B0aW9uc19yY3UgKipvcHRwLAogCQkJICAgICB1bnNpZ25lZCBjaGFyIF9fdXNl ciAqZGF0YSwgaW50IG9wdGxlbik7CiB2b2lkIGlwX29wdGlvbnNfdW5kbyhzdHJ1Y3QgaXBfb3B0 aW9ucyAqb3B0KTsKIHZvaWQgaXBfZm9yd2FyZF9vcHRpb25zKHN0cnVjdCBza19idWZmICpza2Ip OwotaW50IGlwX29wdGlvbnNfcmN2X3NycihzdHJ1Y3Qgc2tfYnVmZiAqc2tiKTsKK2ludCBpcF9v cHRpb25zX3Jjdl9zcnIoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRl dik7CiAKIC8qCiAgKglGdW5jdGlvbnMgcHJvdmlkZWQgYnkgaXBfc29ja2dsdWUuYwpkaWZmIC0t Z2l0IGEvbmV0L2lwdjQvaXBfaW5wdXQuYyBiL25ldC9pcHY0L2lwX2lucHV0LmMKaW5kZXggMWY0 NzM3Yjc3MDY3Li5jY2YwZDMxYjZjZTUgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L2lwX2lucHV0LmMK KysrIGIvbmV0L2lwdjQvaXBfaW5wdXQuYwpAQCAtMjU3LDExICsyNTcsMTAgQEAgaW50IGlwX2xv Y2FsX2RlbGl2ZXIoc3RydWN0IHNrX2J1ZmYgKnNrYikKIAkJICAgICAgIGlwX2xvY2FsX2RlbGl2 ZXJfZmluaXNoKTsKIH0KIAotc3RhdGljIGlubGluZSBib29sIGlwX3Jjdl9vcHRpb25zKHN0cnVj dCBza19idWZmICpza2IpCitzdGF0aWMgaW5saW5lIGJvb2wgaXBfcmN2X29wdGlvbnMoc3RydWN0 IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgaXBfb3B0 aW9ucyAqb3B0OwogCWNvbnN0IHN0cnVjdCBpcGhkciAqaXBoOwotCXN0cnVjdCBuZXRfZGV2aWNl ICpkZXYgPSBza2ItPmRldjsKIAogCS8qIEl0IGxvb2tzIGFzIG92ZXJraWxsLCBiZWNhdXNlIG5v dCBhbGwKIAkgICBJUCBvcHRpb25zIHJlcXVpcmUgcGFja2V0IG1hbmdsaW5nLgpAQCAtMjk3LDcg KzI5Niw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpcF9yY3Zfb3B0aW9ucyhzdHJ1Y3Qgc2tfYnVm ZiAqc2tiKQogCQkJfQogCQl9CiAKLQkJaWYgKGlwX29wdGlvbnNfcmN2X3Nycihza2IpKQorCQlp ZiAoaXBfb3B0aW9uc19yY3Zfc3JyKHNrYiwgZGV2KSkKIAkJCWdvdG8gZHJvcDsKIAl9CiAKQEAg LTM1Myw3ICszNTIsNyBAQCBzdGF0aWMgaW50IGlwX3Jjdl9maW5pc2hfY29yZShzdHJ1Y3QgbmV0 ICpuZXQsIHN0cnVjdCBzb2NrICpzaywKIAl9CiAjZW5kaWYKIAotCWlmIChpcGgtPmlobCA+IDUg JiYgaXBfcmN2X29wdGlvbnMoc2tiKSkKKwlpZiAoaXBoLT5paGwgPiA1ICYmIGlwX3Jjdl9vcHRp b25zKHNrYiwgZGV2KSkKIAkJZ290byBkcm9wOwogCiAJcnQgPSBza2JfcnRhYmxlKHNrYik7CmRp ZmYgLS1naXQgYS9uZXQvaXB2NC9pcF9vcHRpb25zLmMgYi9uZXQvaXB2NC9pcF9vcHRpb25zLmMK aW5kZXggMzJhMzUwNDNjOWY1Li4zZGIzMWJiOWRmNTAgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L2lw X29wdGlvbnMuYworKysgYi9uZXQvaXB2NC9pcF9vcHRpb25zLmMKQEAgLTYxMiw3ICs2MTIsNyBA QCB2b2lkIGlwX2ZvcndhcmRfb3B0aW9ucyhzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCX0KIH0KIAot aW50IGlwX29wdGlvbnNfcmN2X3NycihzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQoraW50IGlwX29wdGlv bnNfcmN2X3NycihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQog ewogCXN0cnVjdCBpcF9vcHRpb25zICpvcHQgPSAmKElQQ0Ioc2tiKS0+b3B0KTsKIAlpbnQgc3Jy c3BhY2UsIHNycnB0cjsKQEAgLTY0Nyw3ICs2NDcsNyBAQCBpbnQgaXBfb3B0aW9uc19yY3Zfc3Jy KHN0cnVjdCBza19idWZmICpza2IpCiAKIAkJb3JlZmRzdCA9IHNrYi0+X3NrYl9yZWZkc3Q7CiAJ CXNrYl9kc3Rfc2V0KHNrYiwgTlVMTCk7Ci0JCWVyciA9IGlwX3JvdXRlX2lucHV0KHNrYiwgbmV4 dGhvcCwgaXBoLT5zYWRkciwgaXBoLT50b3MsIHNrYi0+ZGV2KTsKKwkJZXJyID0gaXBfcm91dGVf aW5wdXQoc2tiLCBuZXh0aG9wLCBpcGgtPnNhZGRyLCBpcGgtPnRvcywgZGV2KTsKIAkJcnQyID0g c2tiX3J0YWJsZShza2IpOwogCQlpZiAoZXJyIHx8IChydDItPnJ0X3R5cGUgIT0gUlROX1VOSUNB U1QgJiYgcnQyLT5ydF90eXBlICE9IFJUTl9MT0NBTCkpIHsKIAkJCXNrYl9kc3RfZHJvcChza2Ip OwotLSAKMi4yMC4xCgoKRnJvbSA3ZjAyNTdhYjUzMDEzOGI1NzEzNmFkNmFmYTYwMWYzMDYyYzk4 MTExIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBHYXZpIFRlaXR6IDxnYXZpQG1lbGxh bm94LmNvbT4KRGF0ZTogTW9uLCAxMSBNYXIgMjAxOSAxMTo1NjozNCArMDIwMApTdWJqZWN0OiBb UEFUQ0ggMjEvMzZdIG5ldC9tbHg1ZTogRml4IGVycm9yIGhhbmRsaW5nIHdoZW4gcmVmcmVzaGlu ZyBUSVJzCgpbIFVwc3RyZWFtIGNvbW1pdCBiYzg3YTAwMzY4MjZhMzdiNDM0ODliMDI5YWY4MTQz YmQwN2M2Y2NhIF0KClByZXZpb3VzbHksIGEgZmFsc2UgcG9zaXRpdmUgd291bGQgYmUgY2F1Z2h0 IGlmIHRoZSBUSVJzIGxpc3QgaXMKZW1wdHksIHNpbmNlIHRoZSBlcnIgdmFsdWUgd2FzIGluaXRp YWxpemVkIHRvIC1FTk9NRU0sIGFuZCB3YXMgb25seQp1cGRhdGVkIGlmIGEgVElSIGlzIHJlZnJl c2hlZC4gVGhpcyBpcyByZXNvbHZlZCBieSBpbml0aWFsaXppbmcgdGhlCmVyciB2YWx1ZSB0byB6 ZXJvLgoKRml4ZXM6IGI2NzZmNjUzODk2YSAoIm5ldC9tbHg1ZTogUmVmYWN0b3IgcmVmcmVzaCBU SVJzIikKU2lnbmVkLW9mZi1ieTogR2F2aSBUZWl0eiA8Z2F2aUBtZWxsYW5veC5jb20+ClJldmll d2VkLWJ5OiBSb2kgRGF5YW4gPHJvaWRAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBTYWVl ZCBNYWhhbWVlZCA8c2FlZWRtQG1lbGxhbm94LmNvbT4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5l dC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fY29tbW9uLmMgfCA2ICsrKystLQogMSBmaWxlIGNoYW5n ZWQsIDQgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJz L25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fY29tbW9uLmMgYi9kcml2ZXJzL25l dC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fY29tbW9uLmMKaW5kZXggMzA3ODQ5MWNj MGQwLi44MTAwNzg2ZjZmYjUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxh bm94L21seDUvY29yZS9lbl9jb21tb24uYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxs YW5veC9tbHg1L2NvcmUvZW5fY29tbW9uLmMKQEAgLTE0MSwxNSArMTQxLDE3IEBAIGludCBtbHg1 ZV9yZWZyZXNoX3RpcnMoc3RydWN0IG1seDVlX3ByaXYgKnByaXYsIGJvb2wgZW5hYmxlX3VjX2xi KQogewogCXN0cnVjdCBtbHg1X2NvcmVfZGV2ICptZGV2ID0gcHJpdi0+bWRldjsKIAlzdHJ1Y3Qg bWx4NWVfdGlyICp0aXI7Ci0JaW50IGVyciAgPSAtRU5PTUVNOworCWludCBlcnIgID0gMDsKIAl1 MzIgdGlybiA9IDA7CiAJaW50IGlubGVuOwogCXZvaWQgKmluOwogCiAJaW5sZW4gPSBNTFg1X1NU X1NaX0JZVEVTKG1vZGlmeV90aXJfaW4pOwogCWluID0ga3Z6YWxsb2MoaW5sZW4sIEdGUF9LRVJO RUwpOwotCWlmICghaW4pCisJaWYgKCFpbikgeworCQllcnIgPSAtRU5PTUVNOwogCQlnb3RvIG91 dDsKKwl9CiAKIAlpZiAoZW5hYmxlX3VjX2xiKQogCQlNTFg1X1NFVChtb2RpZnlfdGlyX2luLCBp biwgY3R4LnNlbGZfbGJfYmxvY2ssCi0tIAoyLjIwLjEKCgpGcm9tIDY3Mjc3ZjU3MmZlOTNhOWY3 ZmMxODZmMjkzZjQzYTQ5M2IyZDIxMmMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFl1 dmFsIEF2bmVyeSA8eXV2YWxhdkBtZWxsYW5veC5jb20+CkRhdGU6IE1vbiwgMTEgTWFyIDIwMTkg MDY6MTg6MjQgKzAyMDAKU3ViamVjdDogW1BBVENIIDIyLzM2XSBuZXQvbWx4NWU6IEFkZCBhIGxv Y2sgb24gdGlyIGxpc3QKClsgVXBzdHJlYW0gY29tbWl0IDgwYTJhOTAyNmIyNGM2YmQzNGI4ZDU4 MjU2OTczZTIyMjcwYmVkZWMgXQoKUmVmcmVzaCB0aXJzIGlzIGxvb3Bpbmcgb3ZlciBhIGdsb2Jh bCBsaXN0IG9mIHRpcnMgd2hpbGUgbmV0ZGV2cyBhcmUKYWRkaW5nIGFuZCByZW1vdmluZyB0aXJz IGZyb20gdGhhdCBsaXN0LiBUaGF0IGlzIHdoeSBhIGxvY2sgaXMKcmVxdWlyZWQuCgpGaXhlczog NzI0YjJhYTE1MTI2ICgibmV0L21seDVlOiBUSVJzIG1hbmFnZW1lbnQgcmVmYWN0b3JpbmciKQpT aWduZWQtb2ZmLWJ5OiBZdXZhbCBBdm5lcnkgPHl1dmFsYXZAbWVsbGFub3guY29tPgpTaWduZWQt b2ZmLWJ5OiBTYWVlZCBNYWhhbWVlZCA8c2FlZWRtQG1lbGxhbm94LmNvbT4KLS0tCiBkcml2ZXJz L25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fY29tbW9uLmMgfCA3ICsrKysrKysK IGluY2x1ZGUvbGludXgvbWx4NS9kcml2ZXIuaCAgICAgICAgICAgICAgICAgICAgICAgICB8IDIg KysKIDIgZmlsZXMgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2NvbW1vbi5jIGIvZHJpdmVycy9u ZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2NvbW1vbi5jCmluZGV4IDgxMDA3ODZm NmZiNS4uMTUzOWNmM2RlNWRjIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxs YW5veC9tbHg1L2NvcmUvZW5fY29tbW9uLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVs bGFub3gvbWx4NS9jb3JlL2VuX2NvbW1vbi5jCkBAIC00NSw3ICs0NSw5IEBAIGludCBtbHg1ZV9j cmVhdGVfdGlyKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICptZGV2LAogCWlmIChlcnIpCiAJCXJldHVy biBlcnI7CiAKKwltdXRleF9sb2NrKCZtZGV2LT5tbHg1ZV9yZXMudGQubGlzdF9sb2NrKTsKIAls aXN0X2FkZCgmdGlyLT5saXN0LCAmbWRldi0+bWx4NWVfcmVzLnRkLnRpcnNfbGlzdCk7CisJbXV0 ZXhfdW5sb2NrKCZtZGV2LT5tbHg1ZV9yZXMudGQubGlzdF9sb2NrKTsKIAogCXJldHVybiAwOwog fQpAQCAtNTMsOCArNTUsMTAgQEAgaW50IG1seDVlX2NyZWF0ZV90aXIoc3RydWN0IG1seDVfY29y ZV9kZXYgKm1kZXYsCiB2b2lkIG1seDVlX2Rlc3Ryb3lfdGlyKHN0cnVjdCBtbHg1X2NvcmVfZGV2 ICptZGV2LAogCQkgICAgICAgc3RydWN0IG1seDVlX3RpciAqdGlyKQogeworCW11dGV4X2xvY2so Jm1kZXYtPm1seDVlX3Jlcy50ZC5saXN0X2xvY2spOwogCW1seDVfY29yZV9kZXN0cm95X3Rpciht ZGV2LCB0aXItPnRpcm4pOwogCWxpc3RfZGVsKCZ0aXItPmxpc3QpOworCW11dGV4X3VubG9jaygm bWRldi0+bWx4NWVfcmVzLnRkLmxpc3RfbG9jayk7CiB9CiAKIHN0YXRpYyBpbnQgbWx4NWVfY3Jl YXRlX21rZXkoc3RydWN0IG1seDVfY29yZV9kZXYgKm1kZXYsIHUzMiBwZG4sCkBAIC0xMTQsNiAr MTE4LDcgQEAgaW50IG1seDVlX2NyZWF0ZV9tZGV2X3Jlc291cmNlcyhzdHJ1Y3QgbWx4NV9jb3Jl X2RldiAqbWRldikKIAl9CiAKIAlJTklUX0xJU1RfSEVBRCgmbWRldi0+bWx4NWVfcmVzLnRkLnRp cnNfbGlzdCk7CisJbXV0ZXhfaW5pdCgmbWRldi0+bWx4NWVfcmVzLnRkLmxpc3RfbG9jayk7CiAK IAlyZXR1cm4gMDsKIApAQCAtMTU5LDYgKzE2NCw3IEBAIGludCBtbHg1ZV9yZWZyZXNoX3RpcnMo c3RydWN0IG1seDVlX3ByaXYgKnByaXYsIGJvb2wgZW5hYmxlX3VjX2xiKQogCiAJTUxYNV9TRVQo bW9kaWZ5X3Rpcl9pbiwgaW4sIGJpdG1hc2suc2VsZl9sYl9lbiwgMSk7CiAKKwltdXRleF9sb2Nr KCZtZGV2LT5tbHg1ZV9yZXMudGQubGlzdF9sb2NrKTsKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KHRp ciwgJm1kZXYtPm1seDVlX3Jlcy50ZC50aXJzX2xpc3QsIGxpc3QpIHsKIAkJdGlybiA9IHRpci0+ dGlybjsKIAkJZXJyID0gbWx4NV9jb3JlX21vZGlmeV90aXIobWRldiwgdGlybiwgaW4sIGlubGVu KTsKQEAgLTE3MCw2ICsxNzYsNyBAQCBpbnQgbWx4NWVfcmVmcmVzaF90aXJzKHN0cnVjdCBtbHg1 ZV9wcml2ICpwcml2LCBib29sIGVuYWJsZV91Y19sYikKIAlrdmZyZWUoaW4pOwogCWlmIChlcnIp CiAJCW5ldGRldl9lcnIocHJpdi0+bmV0ZGV2LCAicmVmcmVzaCB0aXIoMHgleCkgZmFpbGVkLCAl ZFxuIiwgdGlybiwgZXJyKTsKKwltdXRleF91bmxvY2soJm1kZXYtPm1seDVlX3Jlcy50ZC5saXN0 X2xvY2spOwogCiAJcmV0dXJuIGVycjsKIH0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbWx4 NS9kcml2ZXIuaCBiL2luY2x1ZGUvbGludXgvbWx4NS9kcml2ZXIuaAppbmRleCA1NDI5OTI1MWQ0 MGQuLjRmMDAxNjE5Zjg1NCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9tbHg1L2RyaXZlci5o CisrKyBiL2luY2x1ZGUvbGludXgvbWx4NS9kcml2ZXIuaApAQCAtNTkxLDYgKzU5MSw4IEBAIGVu dW0gbWx4NV9wYWdlZmF1bHRfdHlwZV9mbGFncyB7CiB9OwogCiBzdHJ1Y3QgbWx4NV90ZCB7CisJ LyogcHJvdGVjdHMgdGlycyBsaXN0IGNoYW5nZXMgd2hpbGUgdGlycyByZWZyZXNoICovCisJc3Ry dWN0IG11dGV4ICAgICBsaXN0X2xvY2s7CiAJc3RydWN0IGxpc3RfaGVhZCB0aXJzX2xpc3Q7CiAJ dTMyICAgICAgICAgICAgICB0ZG47CiB9OwotLSAKMi4yMC4xCgoKRnJvbSBmYjZjMWQwN2MzOGJj YmJiYmFiOGI3ZGM3ZjdlZjI4ZDY0NDg5ZWNhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBKYWt1YiBLaWNpbnNraSA8amFrdWIua2ljaW5za2lAbmV0cm9ub21lLmNvbT4KRGF0ZTogV2Vk LCAyNyBNYXIgMjAxOSAxMTozODozOCAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMjMvMzZdIG5mcDog dmFsaWRhdGUgdGhlIHJldHVybiBjb2RlIGZyb20gZGV2X3F1ZXVlX3htaXQoKQoKWyBVcHN0cmVh bSBjb21taXQgYzhiYTViOTFhMDRlM2UyNjQzZTQ4NTAxYzExNDEwODgwMmYyMWNkYSBdCgpkZXZf cXVldWVfeG1pdCgpIG1heSByZXR1cm4gZXJyb3IgY29kZXMgYXMgd2VsbCBhcyBuZXRkZXZfdHhf dCwKYW5kIGl0IGFsd2F5cyBjb25zdW1lcyB0aGUgc2tiLiAgTWFrZSBzdXJlIHdlIGFsd2F5cyBy ZXR1cm4gYQpjb3JyZWN0IG5ldGRldl90eF90IHZhbHVlLgoKRml4ZXM6IGVhZGZhNGMzYmU5OSAo Im5mcDogYWRkIHN0YXRzIGFuZCB4bWl0IGhlbHBlcnMgZm9yIHJlcHJlc2VudG9ycyIpClNpZ25l ZC1vZmYtYnk6IEpha3ViIEtpY2luc2tpIDxqYWt1Yi5raWNpbnNraUBuZXRyb25vbWUuY29tPgpS ZXZpZXdlZC1ieTogSm9obiBIdXJsZXkgPGpvaG4uaHVybGV5QG5ldHJvbm9tZS5jb20+ClJldmll d2VkLWJ5OiBTaW1vbiBIb3JtYW4gPHNpbW9uLmhvcm1hbkBuZXRyb25vbWUuY29tPgpTaWduZWQt b2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVy cy9uZXQvZXRoZXJuZXQvbmV0cm9ub21lL25mcC9uZnBfbmV0X3JlcHIuYyB8IDIgKy0KIDEgZmls ZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbmV0L2V0aGVybmV0L25ldHJvbm9tZS9uZnAvbmZwX25ldF9yZXByLmMgYi9kcml2ZXJz L25ldC9ldGhlcm5ldC9uZXRyb25vbWUvbmZwL25mcF9uZXRfcmVwci5jCmluZGV4IDY5ZDdhZWJk YTA5Yi4uN2Q2MmUzNjk4ZjA4IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9uZXRy b25vbWUvbmZwL25mcF9uZXRfcmVwci5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L25ldHJv bm9tZS9uZnAvbmZwX25ldF9yZXByLmMKQEAgLTE5Niw3ICsxOTYsNyBAQCBzdGF0aWMgbmV0ZGV2 X3R4X3QgbmZwX3JlcHJfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2Rldmlj ZSAqbmV0ZGV2KQogCXJldCA9IGRldl9xdWV1ZV94bWl0KHNrYik7CiAJbmZwX3JlcHJfaW5jX3R4 X3N0YXRzKG5ldGRldiwgbGVuLCByZXQpOwogCi0JcmV0dXJuIHJldDsKKwlyZXR1cm4gTkVUREVW X1RYX09LOwogfQogCiBzdGF0aWMgaW50IG5mcF9yZXByX3N0b3Aoc3RydWN0IG5ldF9kZXZpY2Ug Km5ldGRldikKLS0gCjIuMjAuMQoKCkZyb20gZmIxMjVkMDliYjkzNmRiZGUyZjY2ZmIxMDM2OWJk Y2MxYTY5NDA0YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSmFrdWIgS2ljaW5za2kg PGpha3ViLmtpY2luc2tpQG5ldHJvbm9tZS5jb20+CkRhdGU6IFdlZCwgMjcgTWFyIDIwMTkgMTE6 Mzg6MzkgLTA3MDAKU3ViamVjdDogW1BBVENIIDI0LzM2XSBuZnA6IGRpc2FibGUgbmV0cG9sbCBv biByZXByZXNlbnRvcnMKClsgVXBzdHJlYW0gY29tbWl0IGMzZTFmN2ZmZjY5Yzc4MTY5YzhhYzQw Y2M3NGFjNDMwN2Y3NGUzNmQgXQoKTkZQIHJlcHJzIGFyZSBzb2Z0d2FyZSBkZXZpY2Ugb24gdG9w IG9mIHRoZSBQRidzIHZOSUMuClRoZSBjb21tZW50IGFib3ZlIF9fZGV2X3F1ZXVlX3htaXQoKSBz YXlldGg6CgogV2hlbiBjYWxsaW5nIHRoaXMgbWV0aG9kLCBpbnRlcnJ1cHRzIE1VU1QgYmUgZW5h YmxlZC4gIFRoaXMgaXMgYmVjYXVzZQogdGhlIEJIIGVuYWJsZSBjb2RlIG11c3QgaGF2ZSBJUlFz IGVuYWJsZWQgc28gdGhhdCBpdCB3aWxsIG5vdCBkZWFkbG9jay4KCkZvciBuZXRjb25zb2xlIHdl IGNhbid0IGd1YXJhbnRlZSBJUlEgc3RhdGUsIGxldCdzIGp1c3QKZGlzYWJsZSBuZXRwb2xsIG9u IHJlcHJlc2VudG9ycyB0byBiZSBvbiB0aGUgc2FmZSBzaWRlLgoKV2hlbiB0aGUgaW5pdGlhbCBp bXBsZW1lbnRhdGlvbiBvZiBORlAgcmVwcnMgd2FzIGFkZGVkIGJ5IHRoZQpjb21taXQgNWRlNzNl ZTQ2NzA0ICgibmZwOiBnZW5lcmFsIHJlcHJlc2VudG9yIGltcGxlbWVudGF0aW9uIikKLm5kb19w b2xsX2NvbnRyb2xsZXIgd2FzIHJlcXVpcmVkIGZvciBuZXRwb2xsIHRvIGJlIGVuYWJsZWQuCgpG aXhlczogYWMzZDlkZDAzNGU1ICgibmV0cG9sbDogbWFrZSBuZG9fcG9sbF9jb250cm9sbGVyKCkg b3B0aW9uYWwiKQpTaWduZWQtb2ZmLWJ5OiBKYWt1YiBLaWNpbnNraSA8amFrdWIua2ljaW5za2lA bmV0cm9ub21lLmNvbT4KUmV2aWV3ZWQtYnk6IEpvaG4gSHVybGV5IDxqb2huLmh1cmxleUBuZXRy b25vbWUuY29tPgpSZXZpZXdlZC1ieTogU2ltb24gSG9ybWFuIDxzaW1vbi5ob3JtYW5AbmV0cm9u b21lLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQu bmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L25ldHJvbm9tZS9uZnAvbmZwX25ldF9yZXBy LmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkK CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9uZXRyb25vbWUvbmZwL25mcF9uZXRf cmVwci5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbmV0cm9ub21lL25mcC9uZnBfbmV0X3JlcHIu YwppbmRleCA3ZDYyZTM2OThmMDguLjczZGI5NGU1NWZkMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9u ZXQvZXRoZXJuZXQvbmV0cm9ub21lL25mcC9uZnBfbmV0X3JlcHIuYworKysgYi9kcml2ZXJzL25l dC9ldGhlcm5ldC9uZXRyb25vbWUvbmZwL25mcF9uZXRfcmVwci5jCkBAIC0zODQsNyArMzg0LDcg QEAgaW50IG5mcF9yZXByX2luaXQoc3RydWN0IG5mcF9hcHAgKmFwcCwgc3RydWN0IG5ldF9kZXZp Y2UgKm5ldGRldiwKIAluZXRkZXYtPmZlYXR1cmVzICY9IH4oTkVUSUZfRl9UU08gfCBORVRJRl9G X1RTTzYpOwogCW5ldGRldi0+Z3NvX21heF9zZWdzID0gTkZQX05FVF9MU09fTUFYX1NFR1M7CiAK LQluZXRkZXYtPnByaXZfZmxhZ3MgfD0gSUZGX05PX1FVRVVFOworCW5ldGRldi0+cHJpdl9mbGFn cyB8PSBJRkZfTk9fUVVFVUUgfCBJRkZfRElTQUJMRV9ORVRQT0xMOwogCW5ldGRldi0+ZmVhdHVy ZXMgfD0gTkVUSUZfRl9MTFRYOwogCiAJaWYgKG5mcF9hcHBfaGFzX3RjKGFwcCkpIHsKLS0gCjIu MjAuMQoKCkZyb20gOGM0MDIwZTY3ZTFlMDY3NzZlMDlhZGJmOTA2YThkNTBjZTUwMGExYiBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTWljaGFlbCBDaGFuIDxtaWNoYWVsLmNoYW5AYnJv YWRjb20uY29tPgpEYXRlOiBNb24sIDggQXByIDIwMTkgMTc6Mzk6NTQgLTA0MDAKU3ViamVjdDog W1BBVENIIDI1LzM2XSBibnh0X2VuOiBJbXByb3ZlIFJYIGNvbnN1bWVyIGluZGV4IHZhbGlkaXR5 IGNoZWNrLgoKWyBVcHN0cmVhbSBjb21taXQgYTFiMGU0ZTY4NGU5YzMwMGI5ZTc1OWI0NmNiN2Ew MTQ3ZTYxZGRmZiBdCgpUaGVyZSBpcyBsb2dpYyB0byBjaGVjayB0aGF0IHRoZSBSWC9UUEEgY29u c3VtZXIgaW5kZXggaXMgdGhlIGV4cGVjdGVkCmluZGV4IHRvIHdvcmsgYXJvdW5kIGEgaGFyZHdh cmUgcHJvYmxlbS4gIEhvd2V2ZXIsIHRoZSBwb3RlbnRpYWxseSBiYWQKY29uc3VtZXIgaW5kZXgg aXMgZmlyc3QgdXNlZCB0byBpbmRleCBpbnRvIGFuIGFycmF5IHRvIHJlZmVyZW5jZSBhbiBlbnRy eS4KVGhpcyBjYW4gcG90ZW50aWFsbHkgY3Jhc2ggaWYgdGhlIGJhZCBjb25zdW1lciBpbmRleCBp cyBiZXlvbmQgbGVnYWwKcmFuZ2UuICBJbXByb3ZlIHRoZSBsb2dpYyB0byB1c2UgdGhlIGNvbnN1 bWVyIGluZGV4IGZvciBkZXJlZmVyZW5jaW5nCmFmdGVyIHRoZSB2YWxpZGl0eSBjaGVjayBhbmQg bG9nIGFuIGVycm9yIG1lc3NhZ2UuCgpGaXhlczogZmE3ZTI4MTI3YTVhICgiYm54dF9lbjogQWRk IHdvcmthcm91bmQgdG8gZGV0ZWN0IGJhZCBvcGFxdWUgaW4gcnggY29tcGxldGlvbiAocGFydCAy KSIpClNpZ25lZC1vZmYtYnk6IE1pY2hhZWwgQ2hhbiA8bWljaGFlbC5jaGFuQGJyb2FkY29tLmNv bT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0Pgot LS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueHQvYm54dC5jIHwgMTAgKysrKysr Ky0tLQogMSBmaWxlIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHQuYyBiL2Ry aXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueHQvYm54dC5jCmluZGV4IDgwM2Y3OTkwZDMy Yi4uMzUxNDE3ZTc0YWUyIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNv bS9ibnh0L2JueHQuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2Ju eHQuYwpAQCAtMTEyOSw2ICsxMTI5LDggQEAgc3RhdGljIHZvaWQgYm54dF90cGFfc3RhcnQoc3Ry dWN0IGJueHQgKmJwLCBzdHJ1Y3QgYm54dF9yeF9yaW5nX2luZm8gKnJ4ciwKIAl0cGFfaW5mbyA9 ICZyeHItPnJ4X3RwYVthZ2dfaWRdOwogCiAJaWYgKHVubGlrZWx5KGNvbnMgIT0gcnhyLT5yeF9u ZXh0X2NvbnMpKSB7CisJCW5ldGRldl93YXJuKGJwLT5kZXYsICJUUEEgY29ucyAleCAhPSBleHBl Y3RlZCBjb25zICV4XG4iLAorCQkJICAgIGNvbnMsIHJ4ci0+cnhfbmV4dF9jb25zKTsKIAkJYm54 dF9zY2hlZF9yZXNldChicCwgcnhyKTsKIAkJcmV0dXJuOwogCX0KQEAgLTE1ODEsMTUgKzE1ODMs MTcgQEAgc3RhdGljIGludCBibnh0X3J4X3BrdChzdHJ1Y3QgYm54dCAqYnAsIHN0cnVjdCBibnh0 X2NwX3JpbmdfaW5mbyAqY3ByLAogCX0KIAogCWNvbnMgPSByeGNtcC0+cnhfY21wX29wYXF1ZTsK LQlyeF9idWYgPSAmcnhyLT5yeF9idWZfcmluZ1tjb25zXTsKLQlkYXRhID0gcnhfYnVmLT5kYXRh OwotCWRhdGFfcHRyID0gcnhfYnVmLT5kYXRhX3B0cjsKIAlpZiAodW5saWtlbHkoY29ucyAhPSBy eHItPnJ4X25leHRfY29ucykpIHsKIAkJaW50IHJjMSA9IGJueHRfZGlzY2FyZF9yeChicCwgY3By LCByYXdfY29ucywgcnhjbXApOwogCisJCW5ldGRldl93YXJuKGJwLT5kZXYsICJSWCBjb25zICV4 ICE9IGV4cGVjdGVkIGNvbnMgJXhcbiIsCisJCQkgICAgY29ucywgcnhyLT5yeF9uZXh0X2NvbnMp OwogCQlibnh0X3NjaGVkX3Jlc2V0KGJwLCByeHIpOwogCQlyZXR1cm4gcmMxOwogCX0KKwlyeF9i dWYgPSAmcnhyLT5yeF9idWZfcmluZ1tjb25zXTsKKwlkYXRhID0gcnhfYnVmLT5kYXRhOworCWRh dGFfcHRyID0gcnhfYnVmLT5kYXRhX3B0cjsKIAlwcmVmZXRjaChkYXRhX3B0cik7CiAKIAltaXNj ID0gbGUzMl90b19jcHUocnhjbXAtPnJ4X2NtcF9taXNjX3YxKTsKLS0gCjIuMjAuMQoKCkZyb20g MmJmNjE1MGFiNDc0OWM0ZmU3YzdlMmNjMzQwZWE1ZGEwYmVhYmQ3MSBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogTWljaGFlbCBDaGFuIDxtaWNoYWVsLmNoYW5AYnJvYWRjb20uY29tPgpE YXRlOiBNb24sIDggQXByIDIwMTkgMTc6Mzk6NTUgLTA0MDAKU3ViamVjdDogW1BBVENIIDI2LzM2 XSBibnh0X2VuOiBSZXNldCBkZXZpY2Ugb24gUlggYnVmZmVyIGVycm9ycy4KClsgVXBzdHJlYW0g Y29tbWl0IDhlNDRlOTZjNmM4ZThmYjgwYjg0YTJjYTExNzk4YTg1NTRmNzEwZjIgXQoKSWYgdGhl IFJYIGNvbXBsZXRpb24gaW5kaWNhdGVzIFJYIGJ1ZmZlcnMgZXJyb3JzLCB0aGUgUlggcmluZyB3 aWxsIGJlCmRpc2FibGVkIGJ5IGZpcm13YXJlIGFuZCBubyBwYWNrZXRzIHdpbGwgYmUgcmVjZWl2 ZWQgb24gdGhhdCByaW5nIGZyb20KdGhhdCBwb2ludCBvbi4gIFJlY292ZXIgYnkgcmVzZXR0aW5n IHRoZSBkZXZpY2UuCgpGaXhlczogYzBjMDUwYzU4ZDg0ICgiYm54dF9lbjogTmV3IEJyb2FkY29t IGV0aGVybmV0IGRyaXZlci4iKQpTaWduZWQtb2ZmLWJ5OiBNaWNoYWVsIENoYW4gPG1pY2hhZWwu Y2hhbkBicm9hZGNvbS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1A ZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2Ju eHQuYyB8IDYgKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspCgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0LmMgYi9kcml2ZXJz L25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHQuYwppbmRleCAzNTE0MTdlNzRhZTIuLjQw Y2EzMzllYzNkZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54 dC9ibnh0LmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0LmMK QEAgLTE2MTAsMTEgKzE2MTAsMTcgQEAgc3RhdGljIGludCBibnh0X3J4X3BrdChzdHJ1Y3QgYm54 dCAqYnAsIHN0cnVjdCBibnh0X2NwX3JpbmdfaW5mbyAqY3ByLAogCiAJcnhfYnVmLT5kYXRhID0g TlVMTDsKIAlpZiAocnhjbXAxLT5yeF9jbXBfY2ZhX2NvZGVfZXJyb3JzX3YyICYgUlhfQ01QX0wy X0VSUk9SUykgeworCQl1MzIgcnhfZXJyID0gbGUzMl90b19jcHUocnhjbXAxLT5yeF9jbXBfY2Zh X2NvZGVfZXJyb3JzX3YyKTsKKwogCQlibnh0X3JldXNlX3J4X2RhdGEocnhyLCBjb25zLCBkYXRh KTsKIAkJaWYgKGFnZ19idWZzKQogCQkJYm54dF9yZXVzZV9yeF9hZ2dfYnVmcyhjcHIsIGNwX2Nv bnMsIGFnZ19idWZzKTsKIAogCQlyYyA9IC1FSU87CisJCWlmIChyeF9lcnIgJiBSWF9DTVBMX0VS Uk9SU19CVUZGRVJfRVJST1JfTUFTSykgeworCQkJbmV0ZGV2X3dhcm4oYnAtPmRldiwgIlJYIGJ1 ZmZlciBlcnJvciAleFxuIiwgcnhfZXJyKTsKKwkJCWJueHRfc2NoZWRfcmVzZXQoYnAsIHJ4cik7 CisJCX0KIAkJZ290byBuZXh0X3J4OwogCX0KIAotLSAKMi4yMC4xCgoKRnJvbSAyNjE2ZjY0ZDZh ZmE4NTRlZTA1ZTc4NjdlMzFhNWZlNDQ3OWEzZWQyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBMb3JlbnpvIEJpYW5jb25pIDxsb3JlbnpvLmJpYW5jb25pQHJlZGhhdC5jb20+CkRhdGU6 IFNhdCwgNiBBcHIgMjAxOSAxNzoxNjo1MiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMjcvMzZdIG5l dDogaXBfZ3JlOiBmaXggcG9zc2libGUgdXNlLWFmdGVyLWZyZWUgaW4gZXJzcGFuX3JjdgoKWyBV cHN0cmVhbSBjb21taXQgNDkyYjY3ZTI4ZWU1ZjJhMjUyMmZiNzJlM2QzYmNiOTkwZTQ2MTUxNCBd CgplcnNwYW4gdHVubmVscyBydW4gX19pcHR1bm5lbF9wdWxsX2hlYWRlciBvbiByZWNlaXZlZCBz a2JzIHRvIHJlbW92ZQpncmUgYW5kIGVyc3BhbiBoZWFkZXJzLiBUaGlzIGNhbiBkZXRlcm1pbmUg YSBwb3NzaWJsZSB1c2UtYWZ0ZXItZnJlZQphY2Nlc3NpbmcgcGt0X21kIHBvaW50ZXIgaW4gZXJz cGFuX3JjdiBzaW5jZSB0aGUgcGFja2V0IHdpbGwgYmUgJ3VuY2xvbmVkJwpydW5uaW5nIHBza2Jf ZXhwYW5kX2hlYWQgaWYgaXQgaXMgYSBjbG9uZWQgZ3NvIHNrYiAoZS5nIGlmIHRoZSBwYWNrZXQg aGFzCmJlZW4gc2VudCB0aG91Z2ggYSB2ZXRoIGRldmljZSkuIEZpeCBpdCByZXNldHRpbmcgcGt0 X21kIHBvaW50ZXIgYWZ0ZXIKX19pcHR1bm5lbF9wdWxsX2hlYWRlcgoKRml4ZXM6IDFkN2UyZWQy MmY4ZCAoIm5ldDogZXJzcGFuOiByZWZhY3RvciBleGlzdGluZyBlcnNwYW4gY29kZSIpClNpZ25l ZC1vZmYtYnk6IExvcmVuem8gQmlhbmNvbmkgPGxvcmVuem8uYmlhbmNvbmlAcmVkaGF0LmNvbT4K U2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0K IG5ldC9pcHY0L2lwX2dyZS5jIHwgMTUgKysrKysrKysrKy0tLS0tCiAxIGZpbGUgY2hhbmdlZCwg MTAgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2NC9p cF9ncmUuYyBiL25ldC9pcHY0L2lwX2dyZS5jCmluZGV4IDZhZTg5ZjJiNTQxYi4uMmQ1NzM0MDc5 ZTZiIDEwMDY0NAotLS0gYS9uZXQvaXB2NC9pcF9ncmUuYworKysgYi9uZXQvaXB2NC9pcF9ncmUu YwpAQCAtMjU5LDcgKzI1OSw2IEBAIHN0YXRpYyBpbnQgZXJzcGFuX3JjdihzdHJ1Y3Qgc2tfYnVm ZiAqc2tiLCBzdHJ1Y3QgdG5sX3B0a19pbmZvICp0cGksCiAJc3RydWN0IG5ldCAqbmV0ID0gZGV2 X25ldChza2ItPmRldik7CiAJc3RydWN0IG1ldGFkYXRhX2RzdCAqdHVuX2RzdCA9IE5VTEw7CiAJ c3RydWN0IGVyc3Bhbl9iYXNlX2hkciAqZXJzaGRyOwotCXN0cnVjdCBlcnNwYW5fbWV0YWRhdGEg KnBrdF9tZDsKIAlzdHJ1Y3QgaXBfdHVubmVsX25ldCAqaXRuOwogCXN0cnVjdCBpcF90dW5uZWwg KnR1bm5lbDsKIAljb25zdCBzdHJ1Y3QgaXBoZHIgKmlwaDsKQEAgLTI4Miw5ICsyODEsNiBAQCBz dGF0aWMgaW50IGVyc3Bhbl9yY3Yoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IHRubF9wdGtf aW5mbyAqdHBpLAogCQlpZiAodW5saWtlbHkoIXBza2JfbWF5X3B1bGwoc2tiLCBsZW4pKSkKIAkJ CXJldHVybiBQQUNLRVRfUkVKRUNUOwogCi0JCWVyc2hkciA9IChzdHJ1Y3QgZXJzcGFuX2Jhc2Vf aGRyICopKHNrYi0+ZGF0YSArIGdyZV9oZHJfbGVuKTsKLQkJcGt0X21kID0gKHN0cnVjdCBlcnNw YW5fbWV0YWRhdGEgKikoZXJzaGRyICsgMSk7Ci0KIAkJaWYgKF9faXB0dW5uZWxfcHVsbF9oZWFk ZXIoc2tiLAogCQkJCQkgICBsZW4sCiAJCQkJCSAgIGh0b25zKEVUSF9QX1RFQiksCkBAIC0yOTIs OCArMjg4LDkgQEAgc3RhdGljIGludCBlcnNwYW5fcmN2KHN0cnVjdCBza19idWZmICpza2IsIHN0 cnVjdCB0bmxfcHRrX2luZm8gKnRwaSwKIAkJCWdvdG8gZHJvcDsKIAogCQlpZiAodHVubmVsLT5j b2xsZWN0X21kKSB7CisJCQlzdHJ1Y3QgZXJzcGFuX21ldGFkYXRhICpwa3RfbWQsICptZDsKIAkJ CXN0cnVjdCBpcF90dW5uZWxfaW5mbyAqaW5mbzsKLQkJCXN0cnVjdCBlcnNwYW5fbWV0YWRhdGEg Km1kOworCQkJdW5zaWduZWQgY2hhciAqZ2g7CiAJCQlfX2JlNjQgdHVuX2lkOwogCQkJX19iZTE2 IGZsYWdzOwogCkBAIC0zMDYsNiArMzAzLDE0IEBAIHN0YXRpYyBpbnQgZXJzcGFuX3JjdihzdHJ1 Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgdG5sX3B0a19pbmZvICp0cGksCiAJCQlpZiAoIXR1bl9k c3QpCiAJCQkJcmV0dXJuIFBBQ0tFVF9SRUpFQ1Q7CiAKKwkJCS8qIHNrYiBjYW4gYmUgdW5jbG9u ZWQgaW4gX19pcHR1bm5lbF9wdWxsX2hlYWRlciwgc28KKwkJCSAqIG9sZCBwa3RfbWQgaXMgbm8g bG9uZ2VyIHZhbGlkIGFuZCB3ZSBuZWVkIHRvIHJlc2V0CisJCQkgKiBpdAorCQkJICovCisJCQln aCA9IHNrYl9uZXR3b3JrX2hlYWRlcihza2IpICsKKwkJCSAgICAgc2tiX25ldHdvcmtfaGVhZGVy X2xlbihza2IpOworCQkJcGt0X21kID0gKHN0cnVjdCBlcnNwYW5fbWV0YWRhdGEgKikoZ2ggKyBn cmVfaGRyX2xlbiArCisJCQkJCQkJICAgIHNpemVvZigqZXJzaGRyKSk7CiAJCQltZCA9IGlwX3R1 bm5lbF9pbmZvX29wdHMoJnR1bl9kc3QtPnUudHVuX2luZm8pOwogCQkJbWQtPnZlcnNpb24gPSB2 ZXI7CiAJCQltZDIgPSAmbWQtPnUubWQyOwotLSAKMi4yMC4xCgoKRnJvbSA4YTY2NDFkYjY4ODgx ZGZhMjJmZmY1MGEyMzIwZjA0MmVlNTk2MDhiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBMb3JlbnpvIEJpYW5jb25pIDxsb3JlbnpvLmJpYW5jb25pQHJlZGhhdC5jb20+CkRhdGU6IFNh dCwgNiBBcHIgMjAxOSAxNzoxNjo1MyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMjgvMzZdIG5ldDog aXA2X2dyZTogZml4IHBvc3NpYmxlIHVzZS1hZnRlci1mcmVlIGluCiBpcDZlcnNwYW5fcmN2Cgpb IFVwc3RyZWFtIGNvbW1pdCAyYTNjYWJhZTQ1MzZlZGJjYjIxZDM0NGU3YWE4YmU3YTU4NGQyYWZi IF0KCmVyc3Bhbl92NiB0dW5uZWxzIHJ1biBfX2lwdHVubmVsX3B1bGxfaGVhZGVyIG9uIHJlY2Vp dmVkIHNrYnMgdG8gcmVtb3ZlCmVyc3BhbiBoZWFkZXIuIFRoaXMgY2FuIGRldGVybWluZSBhIHBv c3NpYmxlIHVzZS1hZnRlci1mcmVlIGFjY2Vzc2luZwpwa3RfbWQgcG9pbnRlciBpbiBpcDZlcnNw YW5fcmN2IHNpbmNlIHRoZSBwYWNrZXQgd2lsbCBiZSAndW5jbG9uZWQnCnJ1bm5pbmcgcHNrYl9l eHBhbmRfaGVhZCBpZiBpdCBpcyBhIGNsb25lZCBnc28gc2tiIChlLmcgaWYgdGhlIHBhY2tldCBo YXMKYmVlbiBzZW50IHRob3VnaCBhIHZldGggZGV2aWNlKS4gRml4IGl0IHJlc2V0dGluZyBwa3Rf bWQgcG9pbnRlciBhZnRlcgpfX2lwdHVubmVsX3B1bGxfaGVhZGVyCgpGaXhlczogMWQ3ZTJlZDIy ZjhkICgibmV0OiBlcnNwYW46IHJlZmFjdG9yIGV4aXN0aW5nIGVyc3BhbiBjb2RlIikKU2lnbmVk LW9mZi1ieTogTG9yZW56byBCaWFuY29uaSA8bG9yZW56by5iaWFuY29uaUByZWRoYXQuY29tPgpT aWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQog bmV0L2lwdjYvaXA2X2dyZS5jIHwgMjEgKysrKysrKysrKysrKy0tLS0tLS0tCiAxIGZpbGUgY2hh bmdlZCwgMTMgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQv aXB2Ni9pcDZfZ3JlLmMgYi9uZXQvaXB2Ni9pcDZfZ3JlLmMKaW5kZXggMjZmMjViNmUyODMzLi40 MzhmMWE1ZmQxOWEgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L2lwNl9ncmUuYworKysgYi9uZXQvaXB2 Ni9pcDZfZ3JlLmMKQEAgLTUyNCwxMSArNTI0LDEwIEBAIHN0YXRpYyBpbnQgaXA2Z3JlX3Jjdihz dHJ1Y3Qgc2tfYnVmZiAqc2tiLCBjb25zdCBzdHJ1Y3QgdG5sX3B0a19pbmZvICp0cGkpCiAJcmV0 dXJuIFBBQ0tFVF9SRUpFQ1Q7CiB9CiAKLXN0YXRpYyBpbnQgaXA2ZXJzcGFuX3JjdihzdHJ1Y3Qg c2tfYnVmZiAqc2tiLCBpbnQgZ3JlX2hkcl9sZW4sCi0JCQkgc3RydWN0IHRubF9wdGtfaW5mbyAq dHBpKQorc3RhdGljIGludCBpcDZlcnNwYW5fcmN2KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVj dCB0bmxfcHRrX2luZm8gKnRwaSwKKwkJCSBpbnQgZ3JlX2hkcl9sZW4pCiB7CiAJc3RydWN0IGVy c3Bhbl9iYXNlX2hkciAqZXJzaGRyOwotCXN0cnVjdCBlcnNwYW5fbWV0YWRhdGEgKnBrdF9tZDsK IAljb25zdCBzdHJ1Y3QgaXB2NmhkciAqaXB2Nmg7CiAJc3RydWN0IGVyc3Bhbl9tZDIgKm1kMjsK IAlzdHJ1Y3QgaXA2X3RubCAqdHVubmVsOwpAQCAtNTQ3LDE4ICs1NDYsMTYgQEAgc3RhdGljIGlu dCBpcDZlcnNwYW5fcmN2KHN0cnVjdCBza19idWZmICpza2IsIGludCBncmVfaGRyX2xlbiwKIAkJ aWYgKHVubGlrZWx5KCFwc2tiX21heV9wdWxsKHNrYiwgbGVuKSkpCiAJCQlyZXR1cm4gUEFDS0VU X1JFSkVDVDsKIAotCQllcnNoZHIgPSAoc3RydWN0IGVyc3Bhbl9iYXNlX2hkciAqKXNrYi0+ZGF0 YTsKLQkJcGt0X21kID0gKHN0cnVjdCBlcnNwYW5fbWV0YWRhdGEgKikoZXJzaGRyICsgMSk7Ci0K IAkJaWYgKF9faXB0dW5uZWxfcHVsbF9oZWFkZXIoc2tiLCBsZW4sCiAJCQkJCSAgIGh0b25zKEVU SF9QX1RFQiksCiAJCQkJCSAgIGZhbHNlLCBmYWxzZSkgPCAwKQogCQkJcmV0dXJuIFBBQ0tFVF9S RUpFQ1Q7CiAKIAkJaWYgKHR1bm5lbC0+cGFybXMuY29sbGVjdF9tZCkgeworCQkJc3RydWN0IGVy c3Bhbl9tZXRhZGF0YSAqcGt0X21kLCAqbWQ7CiAJCQlzdHJ1Y3QgbWV0YWRhdGFfZHN0ICp0dW5f ZHN0OwogCQkJc3RydWN0IGlwX3R1bm5lbF9pbmZvICppbmZvOwotCQkJc3RydWN0IGVyc3Bhbl9t ZXRhZGF0YSAqbWQ7CisJCQl1bnNpZ25lZCBjaGFyICpnaDsKIAkJCV9fYmU2NCB0dW5faWQ7CiAJ CQlfX2JlMTYgZmxhZ3M7CiAKQEAgLTU3MSw2ICs1NjgsMTQgQEAgc3RhdGljIGludCBpcDZlcnNw YW5fcmN2KHN0cnVjdCBza19idWZmICpza2IsIGludCBncmVfaGRyX2xlbiwKIAkJCWlmICghdHVu X2RzdCkKIAkJCQlyZXR1cm4gUEFDS0VUX1JFSkVDVDsKIAorCQkJLyogc2tiIGNhbiBiZSB1bmNs b25lZCBpbiBfX2lwdHVubmVsX3B1bGxfaGVhZGVyLCBzbworCQkJICogb2xkIHBrdF9tZCBpcyBu byBsb25nZXIgdmFsaWQgYW5kIHdlIG5lZWQgdG8gcmVzZXQKKwkJCSAqIGl0CisJCQkgKi8KKwkJ CWdoID0gc2tiX25ldHdvcmtfaGVhZGVyKHNrYikgKworCQkJICAgICBza2JfbmV0d29ya19oZWFk ZXJfbGVuKHNrYik7CisJCQlwa3RfbWQgPSAoc3RydWN0IGVyc3Bhbl9tZXRhZGF0YSAqKShnaCAr IGdyZV9oZHJfbGVuICsKKwkJCQkJCQkgICAgc2l6ZW9mKCplcnNoZHIpKTsKIAkJCWluZm8gPSAm dHVuX2RzdC0+dS50dW5faW5mbzsKIAkJCW1kID0gaXBfdHVubmVsX2luZm9fb3B0cyhpbmZvKTsK IAkJCW1kLT52ZXJzaW9uID0gdmVyOwpAQCAtNjA3LDcgKzYxMiw3IEBAIHN0YXRpYyBpbnQgZ3Jl X3JjdihzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCiAJaWYgKHVubGlrZWx5KHRwaS5wcm90byA9PSBo dG9ucyhFVEhfUF9FUlNQQU4pIHx8CiAJCSAgICAgdHBpLnByb3RvID09IGh0b25zKEVUSF9QX0VS U1BBTjIpKSkgewotCQlpZiAoaXA2ZXJzcGFuX3Jjdihza2IsIGhkcl9sZW4sICZ0cGkpID09IFBB Q0tFVF9SQ1ZEKQorCQlpZiAoaXA2ZXJzcGFuX3Jjdihza2IsICZ0cGksIGhkcl9sZW4pID09IFBB Q0tFVF9SQ1ZEKQogCQkJcmV0dXJuIDA7CiAJCWdvdG8gb3V0OwogCX0KLS0gCjIuMjAuMQoKCkZy b20gZDNiZGRjMDY4OTdlOTRhZDQ1M2U0MDhjMzQ4YWVkZDEwOWMwNzMzZSBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogTmlrb2xheSBBbGVrc2FuZHJvdiA8bmlrb2xheUBjdW11bHVzbmV0 d29ya3MuY29tPgpEYXRlOiBXZWQsIDMgQXByIDIwMTkgMjM6Mjc6MjQgKzAzMDAKU3ViamVjdDog W1BBVENIIDI5LzM2XSBuZXQ6IGJyaWRnZTogYWx3YXlzIGNsZWFyIG1jYXN0IG1hdGNoaW5nIHN0 cnVjdCBvbgogcmVwb3J0cyBhbmQgbGVhdmVzCgpbIFVwc3RyZWFtIGNvbW1pdCAxNTE1YTYzZmM0 MTNmMTYwZDIwNTc0YWIwODk0ZTdmMTAyMGM3YmUyIF0KCldlIG5lZWQgdG8gYmUgY2FyZWZ1bCBh bmQgYWx3YXlzIHplcm8gdGhlIHdob2xlIGJyX2lwIHN0cnVjdCB3aGVuIGl0IGlzCnVzZWQgZm9y IG1hdGNoaW5nIHNpbmNlIHRoZSByaGFzaHRhYmxlIGNoYW5nZS4gVGhpcyBwYXRjaCBmaXhlcyBh bGwgdGhlCnBsYWNlcyB3aGljaCBkaWRuJ3QgcHJvcGVybHkgY2xlYXIgaXQgd2hpY2ggaW4gdHVy biBtaWdodCd2ZSBjYXVzZWQKbWlzbWF0Y2hlcy4KClRoYW5rcyBmb3IgdGhlIGdyZWF0IGJ1ZyBy ZXBvcnQgd2l0aCByZXByb2R1Y2luZyBzdGVwcyBhbmQgYmlzZWN0aW9uLgoKU3RlcHMgdG8gcmVw cm9kdWNlIChmcm9tIHRoZSBidWcgcmVwb3J0KToKaXAgbGluayBhZGQgYnIwIHR5cGUgYnJpZGdl IG1jYXN0X3F1ZXJpZXIgMQppcCBsaW5rIHNldCBicjAgdXAKCmlwIGxpbmsgYWRkIHYyIHR5cGUg dmV0aCBwZWVyIG5hbWUgdjMKaXAgbGluayBzZXQgdjIgbWFzdGVyIGJyMAppcCBsaW5rIHNldCB2 MiB1cAppcCBsaW5rIHNldCB2MyB1cAppcCBhZGRyIGFkZCAzLjAuMC4yLzI0IGRldiB2MwoKaXAg bmV0bnMgYWRkIHRlc3QKaXAgbGluayBhZGQgdjEgdHlwZSB2ZXRoIHBlZXIgbmFtZSB2MSBuZXRu cyB0ZXN0CmlwIGxpbmsgc2V0IHYxIG1hc3RlciBicjAKaXAgbGluayBzZXQgdjEgdXAKaXAgLW4g dGVzdCBsaW5rIHNldCB2MSB1cAppcCAtbiB0ZXN0IGFkZHIgYWRkIDMuMC4wLjEvMjQgZGV2IHYx CgojIE11bHRpY2FzdCByZWNlaXZlcgppcCBuZXRucyBleGVjIHRlc3Qgc29jYXQKVURQNC1SRUNW RlJPTTo1NTg4LGlwLWFkZC1tZW1iZXJzaGlwPTIyNC4yMjQuMjI0LjIyNDozLjAuMC4xLGZvcmsg LQoKIyBNdWx0aWNhc3Qgc2VuZGVyCmVjaG8gaGVsbG8gfCBuYyAtdSAtcyAzLjAuMC4yIDIyNC4y MjQuMjI0LjIyNCA1NTg4CgpSZXBvcnRlZC1ieTogbGlhbS5tY2Jpcm5pZUBib2VpbmcuY29tCkZp eGVzOiAxOWUzYTljOTBjNTMgKCJuZXQ6IGJyaWRnZTogY29udmVydCBtdWx0aWNhc3QgdG8gZ2Vu ZXJpYyByaGFzaHRhYmxlIikKU2lnbmVkLW9mZi1ieTogTmlrb2xheSBBbGVrc2FuZHJvdiA8bmlr b2xheUBjdW11bHVzbmV0d29ya3MuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIg PGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2JyaWRnZS9icl9tdWx0aWNhc3QuYyB8IDMg KysrCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbmV0L2Jy aWRnZS9icl9tdWx0aWNhc3QuYyBiL25ldC9icmlkZ2UvYnJfbXVsdGljYXN0LmMKaW5kZXggYWM5 MmIyZWIzMmIxLi5lNDc3NzYxNGE4YTAgMTAwNjQ0Ci0tLSBhL25ldC9icmlkZ2UvYnJfbXVsdGlj YXN0LmMKKysrIGIvbmV0L2JyaWRnZS9icl9tdWx0aWNhc3QuYwpAQCAtNTk5LDYgKzU5OSw3IEBA IHN0YXRpYyBpbnQgYnJfaXA0X211bHRpY2FzdF9hZGRfZ3JvdXAoc3RydWN0IG5ldF9icmlkZ2Ug KmJyLAogCWlmIChpcHY0X2lzX2xvY2FsX211bHRpY2FzdChncm91cCkpCiAJCXJldHVybiAwOwog CisJbWVtc2V0KCZicl9ncm91cCwgMCwgc2l6ZW9mKGJyX2dyb3VwKSk7CiAJYnJfZ3JvdXAudS5p cDQgPSBncm91cDsKIAlicl9ncm91cC5wcm90byA9IGh0b25zKEVUSF9QX0lQKTsKIAlicl9ncm91 cC52aWQgPSB2aWQ7CkBAIC0xNDg5LDYgKzE0OTAsNyBAQCBzdGF0aWMgdm9pZCBicl9pcDRfbXVs dGljYXN0X2xlYXZlX2dyb3VwKHN0cnVjdCBuZXRfYnJpZGdlICpiciwKIAogCW93bl9xdWVyeSA9 IHBvcnQgPyAmcG9ydC0+aXA0X293bl9xdWVyeSA6ICZici0+aXA0X293bl9xdWVyeTsKIAorCW1l bXNldCgmYnJfZ3JvdXAsIDAsIHNpemVvZihicl9ncm91cCkpOwogCWJyX2dyb3VwLnUuaXA0ID0g Z3JvdXA7CiAJYnJfZ3JvdXAucHJvdG8gPSBodG9ucyhFVEhfUF9JUCk7CiAJYnJfZ3JvdXAudmlk ID0gdmlkOwpAQCAtMTUxMiw2ICsxNTE0LDcgQEAgc3RhdGljIHZvaWQgYnJfaXA2X211bHRpY2Fz dF9sZWF2ZV9ncm91cChzdHJ1Y3QgbmV0X2JyaWRnZSAqYnIsCiAKIAlvd25fcXVlcnkgPSBwb3J0 ID8gJnBvcnQtPmlwNl9vd25fcXVlcnkgOiAmYnItPmlwNl9vd25fcXVlcnk7CiAKKwltZW1zZXQo JmJyX2dyb3VwLCAwLCBzaXplb2YoYnJfZ3JvdXApKTsKIAlicl9ncm91cC51LmlwNiA9ICpncm91 cDsKIAlicl9ncm91cC5wcm90byA9IGh0b25zKEVUSF9QX0lQVjYpOwogCWJyX2dyb3VwLnZpZCA9 IHZpZDsKLS0gCjIuMjAuMQoKCkZyb20gYTA5YWNjZGM5OWM3NDYxN2E4NTdiMTIzZDk1Nzg0ZGQ0 MmFkYzVmOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTG9yZW56byBCaWFuY29uaSA8 bG9yZW56by5iaWFuY29uaUByZWRoYXQuY29tPgpEYXRlOiBUaHUsIDQgQXByIDIwMTkgMTI6MTY6 MjcgKzAyMDAKU3ViamVjdDogW1BBVENIIDMwLzM2XSBuZXQ6IHRodW5kZXJ4OiBmaXggTlVMTCBw b2ludGVyIGRlcmVmZXJlbmNlIGluCiBuaWN2Zl9vcGVuL25pY3ZmX3N0b3AKClsgVXBzdHJlYW0g Y29tbWl0IDJlYzFlZDJhYTY4NzgyYjM0MjQ1ODY4MWFhNGQxNmI2NWM5MDE0ZDYgXQoKV2hlbiBh IGJwZiBwcm9ncmFtIGlzIHVwbG9hZGVkLCB0aGUgZHJpdmVyIGNvbXB1dGVzIHRoZSBudW1iZXIg b2YKeGRwIHR4IHF1ZXVlcyByZXN1bHRpbmcgaW4gdGhlIGFsbG9jYXRpb24gb2YgYWRkaXRpb25h bCBxc2V0cy4KU3RhcnRpbmcgZnJvbSBjb21taXQgJzJlY2JlNGY0YTAyNyAoIm5ldDogdGh1bmRl cng6IHJlcGxhY2UgZ2xvYmFsCm5pY3ZmX3J4X21vZGVfd3Egd29yayBxdWV1ZSBmb3IgYWxsIFZG cyB0byBwcml2YXRlIGZvciBlYWNoIG9mIHRoZW0iKScKdGhlIGRyaXZlciBydW5zIGxpbmsgc3Rh dGUgcG9sbGluZyBmb3IgZWFjaCBWRiByZXN1bHRpbmcgaW4gdGhlCmZvbGxvd2luZyBOVUxMIHBv aW50ZXIgZGVyZWZlcmVuY2U6CgpbICAgNTYuMTY5MjU2XSBVbmFibGUgdG8gaGFuZGxlIGtlcm5l bCBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UgYXQgdmlydHVhbCBhZGRyZXNzIDAwMDAwMDAwMDAw MDAwMjAKWyAgIDU2LjE3ODAzMl0gTWVtIGFib3J0IGluZm86ClsgICA1Ni4xODA4MzRdICAgRVNS ID0gMHg5NjAwMDAwNQpbICAgNTYuMTgzODc3XSAgIEV4Y2VwdGlvbiBjbGFzcyA9IERBQlQgKGN1 cnJlbnQgRUwpLCBJTCA9IDMyIGJpdHMKWyAgIDU2LjE4OTc5Ml0gICBTRVQgPSAwLCBGblYgPSAw ClsgICA1Ni4xOTI4MzRdICAgRUEgPSAwLCBTMVBUVyA9IDAKWyAgIDU2LjE5NTk2M10gRGF0YSBh Ym9ydCBpbmZvOgpbICAgNTYuMTk4ODMxXSAgIElTViA9IDAsIElTUyA9IDB4MDAwMDAwMDUKWyAg IDU2LjIwMjY2Ml0gICBDTSA9IDAsIFduUiA9IDAKWyAgIDU2LjIwNTYxOV0gdXNlciBwZ3RhYmxl OiA2NGsgcGFnZXMsIDQ4LWJpdCBWQXMsIHBnZHAgPSAwMDAwMDAwMDIxZjBjN2EwClsgICA1Ni4y MTIzMTVdIFswMDAwMDAwMDAwMDAwMDIwXSBwZ2Q9MDAwMDAwMDAwMDAwMDAwMCwgcHVkPTAwMDAw MDAwMDAwMDAwMDAKWyAgIDU2LjIxOTA5NF0gSW50ZXJuYWwgZXJyb3I6IE9vcHM6IDk2MDAwMDA1 IFsjMV0gU01QClsgICA1Ni4yNjA0NTldIENQVTogMzkgUElEOiAyMDM0IENvbW06IGlwIE5vdCB0 YWludGVkIDUuMS4wLXJjMysgIzMKWyAgIDU2LjI2NjQ1Ml0gSGFyZHdhcmUgbmFtZTogR0lHQUJZ VEUgUjEyMC1UMzMvTVQzMC1HUzEsIEJJT1MgVDQ5IDAyLzAyLzIwMTgKWyAgIDU2LjI3MzMxNV0g cHN0YXRlOiA4MDAwMDAwNSAoTnpjdiBkYWlmIC1QQU4gLVVBTykKWyAgIDU2LjI3ODA5OF0gcGMg OiBfX2xsX3NjX19fY21weGNoZ19jYXNlX2FjcV82NCsweDQvMHgyMApbICAgNTYuMjgzMzEyXSBs ciA6IG11dGV4X2xvY2srMHgyYy8weDUwClsgICA1Ni4yODY5NjJdIHNwIDogZmZmZjAwMDAyMTlh ZjFiMApbICAgNTYuMjkwMjY0XSB4Mjk6IGZmZmYwMDAwMjE5YWYxYjAgeDI4OiBmZmZmODAwZjY0 ZGU0OWEwClsgICA1Ni4yOTU1NjVdIHgyNzogMDAwMDAwMDAwMDAwMDAwMCB4MjY6IDAwMDAwMDAw MDAwMDAwMTUKWyAgIDU2LjMwMDg2NV0geDI1OiAwMDAwMDAwMDAwMDAwMDAwIHgyNDogMDAwMDAw MDAwMDAwMDAwMApbICAgNTYuMzA2MTY1XSB4MjM6IDAwMDAwMDAwMDAwMDAwMDAgeDIyOiBmZmZm MDAwMDExMTE3MDAwClsgICA1Ni4zMTE0NjVdIHgyMTogZmZmZjgwMGY2NGRmYzA4MCB4MjA6IDAw MDAwMDAwMDAwMDAwMjAKWyAgIDU2LjMxNjc2Nl0geDE5OiAwMDAwMDAwMDAwMDAwMDIwIHgxODog MDAwMDAwMDAwMDAwMDAwMQpbICAgNTYuMzIyMDY2XSB4MTc6IDAwMDAwMDAwMDAwMDAwMDAgeDE2 OiBmZmZmODAwZjJlMDc3MDgwClsgICA1Ni4zMjczNjddIHgxNTogMDAwMDAwMDAwMDAwMDAwNCB4 MTQ6IDAwMDAwMDAwMDAwMDAwMDAKWyAgIDU2LjMzMjY2N10geDEzOiBmZmZmMDAwMDEwOTY0NDM4 IHgxMjogMDAwMDAwMDAwMDAwMDAwMgpbICAgNTYuMzM3OTY3XSB4MTE6IDAwMDAwMDAwMDAwMDAw MDAgeDEwOiAwMDAwMDAwMDAwMDAwYzcwClsgICA1Ni4zNDMyNjhdIHg5IDogZmZmZjAwMDAyMTlh ZjEyMCB4OCA6IGZmZmY4MDBmMmUwNzdkNTAKWyAgIDU2LjM0ODU2OF0geDcgOiAwMDAwMDAwMDAw MDAwMDI3IHg2IDogMDAwMDAwMDYyYTlkNmE4NApbICAgNTYuMzUzODY5XSB4NSA6IDAwMDAwMDAw MDAwMDAwMDAgeDQgOiBmZmZmODAwZjJlMDc3NDgwClsgICA1Ni4zNTkxNjldIHgzIDogMDAwMDAw MDAwMDAwMDAwOCB4MiA6IGZmZmY4MDBmMmUwNzcwODAKWyAgIDU2LjM2NDQ2OV0geDEgOiAwMDAw MDAwMDAwMDAwMDAwIHgwIDogMDAwMDAwMDAwMDAwMDAyMApbICAgNTYuMzY5NzcwXSBQcm9jZXNz IGlwIChwaWQ6IDIwMzQsIHN0YWNrIGxpbWl0ID0gMHgwMDAwMDAwMGM4NjJkYTNhKQpbICAgNTYu Mzc2MTEwXSBDYWxsIHRyYWNlOgpbICAgNTYuMzc4NTQ2XSAgX19sbF9zY19fX2NtcHhjaGdfY2Fz ZV9hY3FfNjQrMHg0LzB4MjAKWyAgIDU2LjM4MzQxNF0gIGRyYWluX3dvcmtxdWV1ZSsweDM0LzB4 MTk4ClsgICA1Ni4zODcyNDddICBuaWN2Zl9vcGVuKzB4NDgvMHg5ZTggW25pY3ZmXQpbICAgNTYu MzkxMzM0XSAgbmljdmZfb3BlbisweDg5OC8weDllOCBbbmljdmZdClsgICA1Ni4zOTU1MDddICBu aWN2Zl94ZHArMHgxYmMvMHgyMzggW25pY3ZmXQpbICAgNTYuMzk5NTk1XSAgZGV2X3hkcF9pbnN0 YWxsKzB4NjgvMHg5MApbICAgNTYuNDAzMzMzXSAgZGV2X2NoYW5nZV94ZHBfZmQrMHhjOC8weDI0 MApbICAgNTYuNDA3MzMzXSAgZG9fc2V0bGluaysweDhlMC8weGJlOApbICAgNTYuNDEwODEwXSAg X19ydG5sX25ld2xpbmsrMHg1YjgvMHg2ZDgKWyAgIDU2LjQxNDYzNF0gIHJ0bmxfbmV3bGluaysw eDU0LzB4ODAKWyAgIDU2LjQxODExMl0gIHJ0bmV0bGlua19yY3ZfbXNnKzB4MjJjLzB4MmY4Clsg ICA1Ni40MjIxOTldICBuZXRsaW5rX3Jjdl9za2IrMHg2MC8weDEyMApbICAgNTYuNDI2MDIzXSAg cnRuZXRsaW5rX3JjdisweDI4LzB4MzgKWyAgIDU2LjQyOTU4N10gIG5ldGxpbmtfdW5pY2FzdCsw eDFjOC8weDI1OApbICAgNTYuNDMzNDk4XSAgbmV0bGlua19zZW5kbXNnKzB4MWI0LzB4MzUwClsg ICA1Ni40Mzc0MTBdICBzb2NrX3NlbmRtc2crMHg0Yy8weDY4ClsgICA1Ni40NDA4ODddICBfX19z eXNfc2VuZG1zZysweDI0MC8weDI4MApbICAgNTYuNDQ0NzExXSAgX19zeXNfc2VuZG1zZysweDY4 LzB4YjAKWyAgIDU2LjQ0ODI3NV0gIF9fYXJtNjRfc3lzX3NlbmRtc2crMHgyYy8weDM4ClsgICA1 Ni40NTIzNjFdICBlbDBfc3ZjX2hhbmRsZXIrMHg5Yy8weDEyOApbICAgNTYuNDU2MTg2XSAgZWww X3N2YysweDgvMHhjClsgICA1Ni40NTkwNTZdIENvZGU6IDM1ZmZmZjkxIDJhMTAwM2UwIGQ2NWYw M2MwIGY5ODAwMDExIChjODVmZmMxMCkKWyAgIDU2LjQ2NTE2Nl0gLS0tWyBlbmQgdHJhY2UgNGE1 N2ZkYzI3YjBhNTcyYyBdLS0tClsgICA1Ni40Njk3NzJdIEtlcm5lbCBwYW5pYyAtIG5vdCBzeW5j aW5nOiBGYXRhbCBleGNlcHRpb24KCkZpeCBpdCBieSBjaGVja2luZyBuaWN2Zl9yeF9tb2RlX3dx IHBvaW50ZXIgaW4gbmljdmZfb3BlbiBhbmQgbmljdmZfc3RvcAoKRml4ZXM6IDJlY2JlNGY0YTAy NyAoIm5ldDogdGh1bmRlcng6IHJlcGxhY2UgZ2xvYmFsIG5pY3ZmX3J4X21vZGVfd3Egd29yayBx dWV1ZSBmb3IgYWxsIFZGcyB0byBwcml2YXRlIGZvciBlYWNoIG9mIHRoZW0iKQpGaXhlczogMmM2 MzJhZDhiYzc0ICgibmV0OiB0aHVuZGVyeDogbW92ZSBsaW5rIHN0YXRlIHBvbGxpbmcgZnVuY3Rp b24gdG8gVkYiKQpSZXBvcnRlZC1ieTogTWF0dGVvIENyb2NlIDxtY3JvY2VAcmVkaGF0LmNvbT4K U2lnbmVkLW9mZi1ieTogTG9yZW56byBCaWFuY29uaSA8bG9yZW56by5iaWFuY29uaUByZWRoYXQu Y29tPgpUZXN0ZWQtYnk6IE1hdHRlbyBDcm9jZSA8bWNyb2NlQHJlZGhhdC5jb20+ClNpZ25lZC1v ZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiAuLi4vbmV0 L2V0aGVybmV0L2Nhdml1bS90aHVuZGVyL25pY3ZmX21haW4uYyAgfCAyMCArKysrKysrKysrKy0t LS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTIgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jYXZpdW0vdGh1bmRlci9uaWN2Zl9t YWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9jYXZpdW0vdGh1bmRlci9uaWN2Zl9tYWluLmMK aW5kZXggNTAzY2ZhZGZmNGFjLi5kNGVlOWY5YzhjMzQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0 L2V0aGVybmV0L2Nhdml1bS90aHVuZGVyL25pY3ZmX21haW4uYworKysgYi9kcml2ZXJzL25ldC9l dGhlcm5ldC9jYXZpdW0vdGh1bmRlci9uaWN2Zl9tYWluLmMKQEAgLTEzMjgsMTAgKzEzMjgsMTEg QEAgaW50IG5pY3ZmX3N0b3Aoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldikKIAlzdHJ1Y3Qgbmlj dmZfY3FfcG9sbCAqY3FfcG9sbCA9IE5VTEw7CiAJdW5pb24gbmljX21ieCBtYnggPSB7fTsKIAot CWNhbmNlbF9kZWxheWVkX3dvcmtfc3luYygmbmljLT5saW5rX2NoYW5nZV93b3JrKTsKLQogCS8q IHdhaXQgdGlsbCBhbGwgcXVldWVkIHNldF9yeF9tb2RlIHRhc2tzIGNvbXBsZXRlcyAqLwotCWRy YWluX3dvcmtxdWV1ZShuaWMtPm5pY3ZmX3J4X21vZGVfd3EpOworCWlmIChuaWMtPm5pY3ZmX3J4 X21vZGVfd3EpIHsKKwkJY2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKCZuaWMtPmxpbmtfY2hhbmdl X3dvcmspOworCQlkcmFpbl93b3JrcXVldWUobmljLT5uaWN2Zl9yeF9tb2RlX3dxKTsKKwl9CiAK IAltYngubXNnLm1zZyA9IE5JQ19NQk9YX01TR19TSFVURE9XTjsKIAluaWN2Zl9zZW5kX21zZ190 b19wZihuaWMsICZtYngpOwpAQCAtMTQ1Miw3ICsxNDUzLDggQEAgaW50IG5pY3ZmX29wZW4oc3Ry dWN0IG5ldF9kZXZpY2UgKm5ldGRldikKIAlzdHJ1Y3QgbmljdmZfY3FfcG9sbCAqY3FfcG9sbCA9 IE5VTEw7CiAKIAkvKiB3YWl0IHRpbGwgYWxsIHF1ZXVlZCBzZXRfcnhfbW9kZSB0YXNrcyBjb21w bGV0ZXMgaWYgYW55ICovCi0JZHJhaW5fd29ya3F1ZXVlKG5pYy0+bmljdmZfcnhfbW9kZV93cSk7 CisJaWYgKG5pYy0+bmljdmZfcnhfbW9kZV93cSkKKwkJZHJhaW5fd29ya3F1ZXVlKG5pYy0+bmlj dmZfcnhfbW9kZV93cSk7CiAKIAluZXRpZl9jYXJyaWVyX29mZihuZXRkZXYpOwogCkBAIC0xNTUw LDEwICsxNTUyLDEyIEBAIGludCBuaWN2Zl9vcGVuKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYp CiAJLyogU2VuZCBWRiBjb25maWcgZG9uZSBtc2cgdG8gUEYgKi8KIAluaWN2Zl9zZW5kX2NmZ19k b25lKG5pYyk7CiAKLQlJTklUX0RFTEFZRURfV09SSygmbmljLT5saW5rX2NoYW5nZV93b3JrLAot CQkJICBuaWN2Zl9saW5rX3N0YXR1c19jaGVja190YXNrKTsKLQlxdWV1ZV9kZWxheWVkX3dvcmso bmljLT5uaWN2Zl9yeF9tb2RlX3dxLAotCQkJICAgJm5pYy0+bGlua19jaGFuZ2Vfd29yaywgMCk7 CisJaWYgKG5pYy0+bmljdmZfcnhfbW9kZV93cSkgeworCQlJTklUX0RFTEFZRURfV09SSygmbmlj LT5saW5rX2NoYW5nZV93b3JrLAorCQkJCSAgbmljdmZfbGlua19zdGF0dXNfY2hlY2tfdGFzayk7 CisJCXF1ZXVlX2RlbGF5ZWRfd29yayhuaWMtPm5pY3ZmX3J4X21vZGVfd3EsCisJCQkJICAgJm5p Yy0+bGlua19jaGFuZ2Vfd29yaywgMCk7CisJfQogCiAJcmV0dXJuIDA7CiBjbGVhbnVwOgotLSAK Mi4yMC4xCgoKRnJvbSBmN2JlZmM4OWM1MjYyYmYxZDgyZTgzY2UyYjQ5MGI1ZTc5YWMwOTc5IE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNaWFvaGUgTGluIDxsaW5taWFvaGVAaHVhd2Vp LmNvbT4KRGF0ZTogTW9uLCA4IEFwciAyMDE5IDEwOjA0OjIwICswODAwClN1YmplY3Q6IFtQQVRD SCAzMS8zNl0gbmV0OiB2cmY6IEZpeCBwaW5nIGZhaWxlZCB3aGVuIHZyZiBtdHUgaXMgc2V0IHRv IDAKClsgVXBzdHJlYW0gY29tbWl0IDUwNTUzNzZhM2I0NGM0MDIxZGU4ODMwYzkxNTdmMDg2YTk3 NzMxZGYgXQoKV2hlbiB0aGUgbXR1IG9mIGEgdnJmIGRldmljZSBpcyBzZXQgdG8gMCwgaXQgd291 bGQgY2F1c2UgcGluZwpmYWlsZWQuIFNvIEkgdGhpbmsgd2Ugc2hvdWxkIGxpbWl0IHZyZiBtdHUg aW4gYSByZWFzb25hYmxlIHJhbmdlCnRvIHNvbHZlIHRoaXMgcHJvYmxlbS4gSSBzZXQgZGV2LT5t aW5fbXR1IHRvIElQVjZfTUlOX01UVSwgc28gaXQKd2lsbCB3b3JrcyBmb3IgYm90aCBpcHY0IGFu ZCBpcHY2LiBBbmQgaWYgZGV2LT5tYXhfbXR1IHN0aWxsIGJlIDAKY2FuIGJlIGNvbmZ1c2luZywg c28gSSBzZXQgZGV2LT5tYXhfbXR1IHRvIEVUSF9NQVhfTVRVLgoKSGVyZSBpcyB0aGUgcmVwcm9k dWNlIHN0ZXA6CgoxLkNvbmZpZyB2cmYgaW50ZXJmYWNlIGFuZCBzZXQgbXR1IHRvIDA6CjM6IGVu cDRzMDogPEJST0FEQ0FTVCxNVUxUSUNBU1QsVVAsTE9XRVJfVVA+IG10dSAxNTAwIHFkaXNjIGZx X2NvZGVsCm1hc3RlciB2cmYxIHN0YXRlIFVQIG1vZGUgREVGQVVMVCBncm91cCBkZWZhdWx0IHFs ZW4gMTAwMAogICAgbGluay9ldGhlciA1Mjo1NDowMDo5ZTpkZDpjMSBicmQgZmY6ZmY6ZmY6ZmY6 ZmY6ZmYKCjIuUGluZyBwZWVyOgozOiBlbnA0czA6IDxCUk9BRENBU1QsTVVMVElDQVNULFVQLExP V0VSX1VQPiBtdHUgMTUwMCBxZGlzYyBmcV9jb2RlbAptYXN0ZXIgdnJmMSBzdGF0ZSBVUCBncm91 cCBkZWZhdWx0IHFsZW4gMTAwMAogICAgbGluay9ldGhlciA1Mjo1NDowMDo5ZTpkZDpjMSBicmQg ZmY6ZmY6ZmY6ZmY6ZmY6ZmYKICAgIGluZXQgMTAuMC4wLjEvMTYgc2NvcGUgZ2xvYmFsIGVucDRz MAogICAgICAgdmFsaWRfbGZ0IGZvcmV2ZXIgcHJlZmVycmVkX2xmdCBmb3JldmVyCmNvbm5lY3Q6 IE5ldHdvcmsgaXMgdW5yZWFjaGFibGUKCjMuU2V0IG10dSB0byBkZWZhdWx0IHZhbHVlLCBwaW5n IHdvcmtzOgpQSU5HIDEwLjAuMC4yICgxMC4wLjAuMikgNTYoODQpIGJ5dGVzIG9mIGRhdGEuCjY0 IGJ5dGVzIGZyb20gMTAuMC4wLjI6IGljbXBfc2VxPTEgdHRsPTY0IHRpbWU9MS44OCBtcwoKRml4 ZXM6IGFkNDliYzYzNjFjYTIgKCJuZXQ6IHZyZjogcmVtb3ZlIE1UVSBsaW1pdHMgZm9yIHZyZiBk ZXZpY2UiKQpTaWduZWQtb2ZmLWJ5OiBNaWFvaGUgTGluIDxsaW5taWFvaGVAaHVhd2VpLmNvbT4K UmV2aWV3ZWQtYnk6IERhdmlkIEFoZXJuIDxkc2FoZXJuQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1i eTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0 L3ZyZi5jIHwgOCArKysrKystLQogMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgMiBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC92cmYuYyBiL2RyaXZlcnMvbmV0 L3ZyZi5jCmluZGV4IDZkMWExYWJiZWQyNy4uY2QxNWMzMmIyZTQzIDEwMDY0NAotLS0gYS9kcml2 ZXJzL25ldC92cmYuYworKysgYi9kcml2ZXJzL25ldC92cmYuYwpAQCAtMTI3NSw4ICsxMjc1LDEy IEBAIHN0YXRpYyB2b2lkIHZyZl9zZXR1cChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogCWRldi0+ cHJpdl9mbGFncyB8PSBJRkZfTk9fUVVFVUU7CiAJZGV2LT5wcml2X2ZsYWdzIHw9IElGRl9OT19S WF9IQU5ETEVSOwogCi0JZGV2LT5taW5fbXR1ID0gMDsKLQlkZXYtPm1heF9tdHUgPSAwOworCS8q IFZSRiBkZXZpY2VzIGRvIG5vdCBjYXJlIGFib3V0IE1UVSwgYnV0IGlmIHRoZSBNVFUgaXMgc2V0 CisJICogdG9vIGxvdyB0aGVuIHRoZSBpcHY0IGFuZCBpcHY2IHByb3RvY29scyBhcmUgZGlzYWJs ZWQKKwkgKiB3aGljaCBicmVha3MgbmV0d29ya2luZy4KKwkgKi8KKwlkZXYtPm1pbl9tdHUgPSBJ UFY2X01JTl9NVFU7CisJZGV2LT5tYXhfbXR1ID0gRVRIX01BWF9NVFU7CiB9CiAKIHN0YXRpYyBp bnQgdnJmX3ZhbGlkYXRlKHN0cnVjdCBubGF0dHIgKnRiW10sIHN0cnVjdCBubGF0dHIgKmRhdGFb XSwKLS0gCjIuMjAuMQoKCkZyb20gZDg3YzEwMTJlMDlhMzA3YjM2NTIxZmFhOTVmMzU3ZTQ0YWI4 YTU5NyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQWxleGFuZGVyIExvYmFraW4gPGFs b2Jha2luQGRsaW5rLnJ1PgpEYXRlOiBUaHUsIDI4IE1hciAyMDE5IDE4OjIzOjA0ICswMzAwClN1 YmplY3Q6IFtQQVRDSCAzMi8zNl0gbmV0OiBjb3JlOiBuZXRpZl9yZWNlaXZlX3NrYl9saXN0OiB1 bmxpc3Qgc2tiIGJlZm9yZQogcGFzc2luZyB0byBwdC0+ZnVuYwoKWyBVcHN0cmVhbSBjb21taXQg OWE1YTkwZDE2N2IwZTVmZTNkNDdhZjE2YjY4ZmQwOWNlNjQwODVjZCBdCgpfX25ldGlmX3JlY2Vp dmVfc2tiX2xpc3RfcHR5cGUoKSBsZWF2ZXMgc2tiLT5uZXh0IHBvaXNvbmVkIGJlZm9yZSBwYXNz aW5nCml0IHRvIHB0X3ByZXYtPmZ1bmMgaGFuZGxlciwgd2hhdCBtYXkgcHJvZHVjZSAoaW4gY2Vy dGFpbiBjYXNlcywgZS5nLiBEU0EKc2V0dXApIGNyYXNoZXMgbGlrZToKClsgODguNjA2Nzc3XSBD UFUgMCBVbmFibGUgdG8gaGFuZGxlIGtlcm5lbCBwYWdpbmcgcmVxdWVzdCBhdCB2aXJ0dWFsIGFk ZHJlc3MgMDAwMDAwMGUsIGVwYyA9PSA4MDY4NzA3OCwgcmEgPT0gODA1MmNjN2MKWyA4OC42MTg2 NjZdIE9vcHNbIzFdOgpbIDg4LjYyMTE5Nl0gQ1BVOiAwIFBJRDogMCBDb21tOiBzd2FwcGVyIE5v dCB0YWludGVkIDUuMS4wLXJjMi1kbGluay0wMDIwNi1nNDE5MmExNzItZGlydHkgIzE0NzMKWyA4 OC42MzA4ODVdICQgMCA6IDAwMDAwMDAwIDEwMDAwNDAwIDAwMDAwMDAyIDg2NGQ3ODUwClsgODgu NjM2NzA5XSAkIDQgOiA4N2MwZGRmMCA4NjRkNzgwMCA4N2MwZGRmMCAwMDAwMDAwMApbIDg4LjY0 MjUyNl0gJCA4IDogMDAwMDAwMDAgNDk2MDAwMDAgMDAwMDAwMDEgMDAwMDAwMDEKWyA4OC42NDgz NDJdICQxMiA6IDAwMDAwMDAwIGMyODg2MTdiIGRhZGJlZTI3IDI1ZDE3YzQxClsgODguNjU0MTU5 XSAkMTYgOiA4N2MwZGRmMCA4NWNmZjA4MCA4MDc5MDAwMCBmZmZmZmZmZApbIDg4LjY1OTk3NV0g JDIwIDogODA3OTdiMjAgZmZmZmZmZmYgMDAwMDAwMDEgODY0ZDc4MDAKWyA4OC42NjU3OTNdICQy NCA6IDAwMDAwMDAwIDgwMTFlNjU4ClsgODguNjcxNjA5XSAkMjggOiA4MDc5MDAwMCA4N2MwZGJj MCA4N2NhYmYwMCA4MDUyY2M3YwpbIDg4LjY3NzQyN10gSGkgOiAwMDAwMDAwMwpbIDg4LjY4MDYy Ml0gTG8gOiA3YjViNDIyMApbIDg4LjY4Mzg0MF0gZXBjIDogODA2ODcwNzggdmxhbl9kZXZfaGFy ZF9zdGFydF94bWl0KzB4MWMvMHgxYTAKWyA4OC42OTA1MzJdIHJhIDogODA1MmNjN2MgZGV2X2hh cmRfc3RhcnRfeG1pdCsweGFjLzB4MTg4ClsgODguNjk2NzM0XSBTdGF0dXM6IDEwMDAwNDA0CUlF cApbIDg4LjcwMDQyMl0gQ2F1c2UgOiA1MDAwMDAwOCAoRXhjQ29kZSAwMikKWyA4OC43MDQ4NzRd IEJhZFZBIDogMDAwMDAwMGUKWyA4OC43MDgwNjldIFBySWQgOiAwMDAxYTEyMCAoTUlQUyBpbnRl ckFwdGl2IChtdWx0aSkpClsgODguNzEzMDA1XSBNb2R1bGVzIGxpbmtlZCBpbjoKWyA4OC43MTY0 MDddIFByb2Nlc3Mgc3dhcHBlciAocGlkOiAwLCB0aHJlYWRpbmZvPShwdHJ2YWwpLCB0YXNrPShw dHJ2YWwpLCB0bHM9MDAwMDAwMDApClsgODguNzI1MjE5XSBTdGFjayA6IDg1ZjYxYzI4IDAwMDAw MDAwIDAwMDAwMDBlIDgwNzgwMDAwIDg3YzBkZGYwIDg1Y2ZmMDgwIDgwNzkwMDAwIDgwNTJjYzdj ClsgODguNzM0NTI5XSA4N2NhYmYwMCAwMDAwMDAwMCAwMDAwMDAwMSA4NWY1ZmI0MCA4MDdiMDAw MCA4NjRkNzg1MCA4N2NhYmYwMCA4MDdkMDAwMApbIDg4Ljc0MzgzOV0gODY0ZDc4MDAgODY1NWY2 MDAgMDAwMDAwMDAgODVjZmYwODAgODdjMWMwMDAgMDAwMDAwNmEgMDAwMDAwMDAgODA1MmQ5NmMK WyA4OC43NTMxNDldIDgwN2EwMDAwIDgwNTdhZGI4IDg3YzBkY2M4IDg3YzBkYzUwIDg1Y2ZmZjA4 IDAwMDAwNTU4IDg3Y2FiZjAwIDg1ZjU4YzUwClsgODguNzYyNDYwXSAwMDAwMDAwMiA4NWY1OGMw MCA4NjRkNzgwMCA4MDU0MzMwOCBmZmZmZmZmNCAwMDAwMDAwMSA4NWY1OGMwMCA4NjRkNzgwMApb IDg4Ljc3MTc3MF0gLi4uClsgODguNzc0NDgzXSBDYWxsIFRyYWNlOgpbIDg4Ljc3NzE5OV0gWzw4 MDY4NzA3OD5dIHZsYW5fZGV2X2hhcmRfc3RhcnRfeG1pdCsweDFjLzB4MWEwClsgODguNzgzNTA0 XSBbPDgwNTJjYzdjPl0gZGV2X2hhcmRfc3RhcnRfeG1pdCsweGFjLzB4MTg4ClsgODguNzg5MzI2 XSBbPDgwNTJkOTZjPl0gX19kZXZfcXVldWVfeG1pdCsweDZlOC8weDdkNApbIDg4Ljc5NDk1NV0g Wzw4MDVhODY0MD5dIGlwX2ZpbmlzaF9vdXRwdXQyKzB4MjM4LzB4NGQwClsgODguODAwNjc3XSBb PDgwNWFiNmEwPl0gaXBfb3V0cHV0KzB4YzgvMHgxNDAKWyA4OC44MDU1MjZdIFs8ODA1YTY4ZjQ+ XSBpcF9mb3J3YXJkKzB4MzY0LzB4NTYwClsgODguODEwNTY3XSBbPDgwNWE0ZmY4Pl0gaXBfcmN2 KzB4NDgvMHhlNApbIDg4LjgxNTAzMF0gWzw4MDUyOGQ0ND5dIF9fbmV0aWZfcmVjZWl2ZV9za2Jf b25lX2NvcmUrMHg0NC8weDU4ClsgODguODIxNjM1XSBbPDgwNjdmMjIwPl0gZHNhX3N3aXRjaF9y Y3YrMHgxMDgvMHgxYWMKWyA4OC44MjcwNjddIFs8ODA1MjhmODA+XSBfX25ldGlmX3JlY2VpdmVf c2tiX2xpc3RfY29yZSsweDIyOC8weDI2YwpbIDg4LjgzMzk1MV0gWzw4MDUyZWQ4ND5dIG5ldGlm X3JlY2VpdmVfc2tiX2xpc3QrMHgxZDQvMHgzOTQKWyA4OC44NDAxNjBdIFs8ODAzNTVhODg+XSBs dW5hcl9yeF9wb2xsKzB4MzhjLzB4ODI4ClsgODguODQ1NDk2XSBbPDgwNTJmYTc4Pl0gbmV0X3J4 X2FjdGlvbisweDE0Yy8weDNjYwpbIDg4Ljg1MDgzNV0gWzw4MDZhZDMwMD5dIF9fZG9fc29mdGly cSsweDE3OC8weDMzOApbIDg4Ljg1NjA3N10gWzw4MDEyYTJkND5dIGlycV9leGl0KzB4YmMvMHgx MDAKWyA4OC44NjA4NDZdIFs8ODAyZjhiNzA+XSBwbGF0X2lycV9kaXNwYXRjaCsweGMwLzB4MTQ0 ClsgODguODY2NDc3XSBbPDgwMTA1OTc0Pl0gaGFuZGxlX2ludCsweDE0Yy8weDE1OApbIDg4Ljg3 MTUxNl0gWzw4MDZhY2ZiMD5dIHI0a193YWl0KzB4MzAvMHg0MApbIDg4Ljg3NjQ2Ml0gQ29kZTog YWZiMTAwMTQgOGM4MjAwYTAgMDA4MDMwMjUgPDk0NDMwMDBjPiA5NGEyMDQ2OCAwMDAwMDAwMCAx MDYyMDA0MiAwMGEwODAyNSA5NjA1MDQ2YQpbIDg4Ljg4NzMzMl0KWyA4OC44ODg5ODJdIC0tLVsg ZW5kIHRyYWNlIGViODYzZDAwN2RhMTFjZjEgXS0tLQpbIDg4Ljg5NDEyMl0gS2VybmVsIHBhbmlj IC0gbm90IHN5bmNpbmc6IEZhdGFsIGV4Y2VwdGlvbiBpbiBpbnRlcnJ1cHQKWyA4OC45MDEyMDJd IC0tLVsgZW5kIEtlcm5lbCBwYW5pYyAtIG5vdCBzeW5jaW5nOiBGYXRhbCBleGNlcHRpb24gaW4g aW50ZXJydXB0IF0tLS0KCkZpeCB0aGlzIGJ5IHB1bGxpbmcgc2tiIG9mZiB0aGUgc3VibGlzdCBh bmQgemVyb2luZyBza2ItPm5leHQgcG9pbnRlcgpiZWZvcmUgY2FsbGluZyBwdHlwZSBjYWxsYmFj ay4KCkZpeGVzOiA4OGViMTk0NGUxOGMgKCJuZXQ6IGNvcmU6IHByb3BhZ2F0ZSBTS0IgbGlzdHMg dGhyb3VnaCBwYWNrZXRfdHlwZSBsb29rdXAiKQpSZXZpZXdlZC1ieTogRWR3YXJkIENyZWUgPGVj cmVlQHNvbGFyZmxhcmUuY29tPgpTaWduZWQtb2ZmLWJ5OiBBbGV4YW5kZXIgTG9iYWtpbiA8YWxv YmFraW5AZGxpbmsucnU+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2 ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvY29yZS9kZXYuYyB8IDQgKysrLQogMSBmaWxlIGNoYW5nZWQs IDMgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9jb3JlL2Rl di5jIGIvbmV0L2NvcmUvZGV2LmMKaW5kZXggNWQwMzg4OTUwMmViLi4xMjgyNGUwMDdlMDYgMTAw NjQ0Ci0tLSBhL25ldC9jb3JlL2Rldi5jCisrKyBiL25ldC9jb3JlL2Rldi5jCkBAIC01MDE0LDgg KzUwMTQsMTAgQEAgc3RhdGljIGlubGluZSB2b2lkIF9fbmV0aWZfcmVjZWl2ZV9za2JfbGlzdF9w dHlwZShzdHJ1Y3QgbGlzdF9oZWFkICpoZWFkLAogCWlmIChwdF9wcmV2LT5saXN0X2Z1bmMgIT0g TlVMTCkKIAkJcHRfcHJldi0+bGlzdF9mdW5jKGhlYWQsIHB0X3ByZXYsIG9yaWdfZGV2KTsKIAll bHNlCi0JCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShza2IsIG5leHQsIGhlYWQsIGxpc3QpCisJ CWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShza2IsIG5leHQsIGhlYWQsIGxpc3QpIHsKKwkJCXNr Yl9saXN0X2RlbF9pbml0KHNrYik7CiAJCQlwdF9wcmV2LT5mdW5jKHNrYiwgc2tiLT5kZXYsIHB0 X3ByZXYsIG9yaWdfZGV2KTsKKwkJfQogfQogCiBzdGF0aWMgdm9pZCBfX25ldGlmX3JlY2VpdmVf c2tiX2xpc3RfY29yZShzdHJ1Y3QgbGlzdF9oZWFkICpoZWFkLCBib29sIHBmbWVtYWxsb2MpCi0t IAoyLjIwLjEKCgpGcm9tIDRiZjNiOGZjOGE3MDhlODg4OGNhNzQwMWNmNTBjNWI0NjBlMWIyNzEg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEhlaW5lciBLYWxsd2VpdCA8aGthbGx3ZWl0 MUBnbWFpbC5jb20+CkRhdGU6IFNhdCwgMzAgTWFyIDIwMTkgMTc6MTM6MjQgKzAxMDAKU3ViamVj dDogW1BBVENIIDMzLzM2XSByODE2OTogZGlzYWJsZSBkZWZhdWx0IHJ4IGludGVycnVwdCBjb2Fs ZXNjaW5nIG9uCiBSVEw4MTY4CgpbIFVwc3RyZWFtIGNvbW1pdCAyODhhYzUyNGNmNzBhOGU3ZWQ4 NTFhNjFlZDJhOTc0NDAzOWRhZThkIF0KCkl0IHdhcyByZXBvcnRlZCB0aGF0IHJlLWludHJvZHVj aW5nIEFTUE0sIGluIGNvbWJpbmF0aW9uIHdpdGggUlgKaW50ZXJydXB0IGNvYWxlc2NpbmcsIHJl c3VsdHMgaW4gc2lnbmlmaWNhbnRseSBpbmNyZWFzZWQgcGFja2V0CmxhdGVuY3ksIHNlZSBbMF0u IERpc2FibGluZyBBU1BNIG9yIFJYIGludGVycnVwdCBjb2FsZXNjaW5nIGZpeGVzCnRoZSBpc3N1 ZS4gVGhlcmVmb3JlIGNoYW5nZSB0aGUgZHJpdmVyJ3MgZGVmYXVsdCB0byBkaXNhYmxlIFJYCmlu dGVycnVwdCBjb2FsZXNjaW5nLiBVc2VycyBzdGlsbCBoYXZlIHRoZSBvcHRpb24gdG8gZW5hYmxl IFJYCmNvYWxlc2NpbmcgdmlhIGV0aHRvb2wuCgpbMF0gaHR0cHM6Ly9idWdzLmRlYmlhbi5vcmcv Y2dpLWJpbi9idWdyZXBvcnQuY2dpP2J1Zz05MjU0OTYKCkZpeGVzOiBhOTk3OTBiZjVjN2YgKCJy ODE2OTogUmVpbnN0YXRlIEFTUE0gU3VwcG9ydCIpClJlcG9ydGVkLWJ5OiBNaWtlIENyb3dlIDxt YWNAbWNyb3dlLmNvbT4KU2lnbmVkLW9mZi1ieTogSGVpbmVyIEthbGx3ZWl0IDxoa2FsbHdlaXQx QGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxv ZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L3JlYWx0ZWsvcjgxNjkuYyB8IDIgKy0K IDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdp dCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3JlYWx0ZWsvcjgxNjkuYyBiL2RyaXZlcnMvbmV0L2V0 aGVybmV0L3JlYWx0ZWsvcjgxNjkuYwppbmRleCA1YWRiMDBmNTIxZGIuLjM2NWNkZGJmYzY4NCAx MDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvcmVhbHRlay9yODE2OS5jCisrKyBiL2Ry aXZlcnMvbmV0L2V0aGVybmV0L3JlYWx0ZWsvcjgxNjkuYwpAQCAtNTMzMyw3ICs1MzMzLDcgQEAg c3RhdGljIHZvaWQgcnRsX2h3X3N0YXJ0XzgxNjgoc3RydWN0IHJ0bDgxNjlfcHJpdmF0ZSAqdHAp CiAJdHAtPmNwX2NtZCB8PSBQa3RDbnRyRGlzYWJsZSB8IElOVFRfMTsKIAlSVExfVzE2KHRwLCBD UGx1c0NtZCwgdHAtPmNwX2NtZCk7CiAKLQlSVExfVzE2KHRwLCBJbnRyTWl0aWdhdGUsIDB4NTE1 MSk7CisJUlRMX1cxNih0cCwgSW50ck1pdGlnYXRlLCAweDUxMDApOwogCiAJLyogV29yayBhcm91 bmQgZm9yIFJ4RklGTyBvdmVyZmxvdy4gKi8KIAlpZiAodHAtPm1hY192ZXJzaW9uID09IFJUTF9H SUdBX01BQ19WRVJfMTEpIHsKLS0gCjIuMjAuMQoKCkZyb20gOTdkYmRiOTU1MGEyNmRmZGY5MjM1 M2I0OTVjY2E1NTJkZmZkNjk0MSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQWRpdHlh IFBha2tpIDxwYWtraTAwMUB1bW4uZWR1PgpEYXRlOiBUdWUsIDE5IE1hciAyMDE5IDE2OjQyOjQw IC0wNTAwClN1YmplY3Q6IFtQQVRDSCAzNC8zNl0gbmV0OiBtbHg1OiBBZGQgYSBtaXNzaW5nIGNo ZWNrIG9uIGlkcl9maW5kLCBmcmVlIGJ1ZgoKWyBVcHN0cmVhbSBjb21taXQgOGU5NDkzNjNmMDE3 ZTIwMTE0NjQ4MTJhNzE0ZmIyOTcxMGZiOTViNCBdCgppZHJfZmluZCgpIGNhbiByZXR1cm4gYSBO VUxMIHZhbHVlIHRvICdmbG93JyB3aGljaCBpcyB1c2VkIHdpdGhvdXQgYQpjaGVjay4gVGhlIHBh dGNoIGFkZHMgYSBjaGVjayB0byBhdm9pZCBwb3RlbnRpYWwgTlVMTCBwb2ludGVyIGRlcmVmZXJl bmNlLgoKSW4gY2FzZSBvZiBtbHg1X2ZwZ2Ffc2J1X2Nvbm5fc2VuZG1zZygpIGZhaWx1cmUsIGZy ZWUgYnVmIGFsbG9jYXRlZAp1c2luZyBremFsbG9jLgoKRml4ZXM6IGFiNDEyZTFkZDdkYiAoIm5l dC9tbHg1OiBBY2NlbCwgYWRkIFRMUyByeCBvZmZsb2FkIHJvdXRpbmVzIikKU2lnbmVkLW9mZi1i eTogQWRpdHlhIFBha2tpIDxwYWtraTAwMUB1bW4uZWR1PgpSZXZpZXdlZC1ieTogWXV2YWwgU2hh aWEgPHl1dmFsLnNoYWlhQG9yYWNsZS5jb20+ClNpZ25lZC1vZmYtYnk6IFNhZWVkIE1haGFtZWVk IDxzYWVlZG1AbWVsbGFub3guY29tPgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94 L21seDUvY29yZS9mcGdhL3Rscy5jIHwgMTQgKysrKysrKysrKystLS0KIDEgZmlsZSBjaGFuZ2Vk LCAxMSBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMv bmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mcGdhL3Rscy5jIGIvZHJpdmVycy9uZXQv ZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZwZ2EvdGxzLmMKaW5kZXggNWNmNWYyYTlkNTFm Li44ZGU2NGU4OGM2NzAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94 L21seDUvY29yZS9mcGdhL3Rscy5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94 L21seDUvY29yZS9mcGdhL3Rscy5jCkBAIC0yMTcsMTUgKzIxNywyMSBAQCBpbnQgbWx4NV9mcGdh X3Rsc19yZXN5bmNfcngoc3RydWN0IG1seDVfY29yZV9kZXYgKm1kZXYsIHUzMiBoYW5kbGUsIHUz MiBzZXEsCiAJdm9pZCAqY21kOwogCWludCByZXQ7CiAKKwlyY3VfcmVhZF9sb2NrKCk7CisJZmxv dyA9IGlkcl9maW5kKCZtZGV2LT5mcGdhLT50bHMtPnJ4X2lkciwgbnRvaGwoaGFuZGxlKSk7CisJ cmN1X3JlYWRfdW5sb2NrKCk7CisKKwlpZiAoIWZsb3cpIHsKKwkJV0FSTl9PTkNFKDEsICJSZWNl aXZlZCBOVUxMIHBvaW50ZXIgZm9yIGhhbmRsZVxuIik7CisJCXJldHVybiAtRUlOVkFMOworCX0K KwogCWJ1ZiA9IGt6YWxsb2Moc2l6ZSwgR0ZQX0FUT01JQyk7CiAJaWYgKCFidWYpCiAJCXJldHVy biAtRU5PTUVNOwogCiAJY21kID0gKGJ1ZiArIDEpOwogCi0JcmN1X3JlYWRfbG9jaygpOwotCWZs b3cgPSBpZHJfZmluZCgmbWRldi0+ZnBnYS0+dGxzLT5yeF9pZHIsIG50b2hsKGhhbmRsZSkpOwot CXJjdV9yZWFkX3VubG9jaygpOwogCW1seDVfZnBnYV90bHNfZmxvd190b19jbWQoZmxvdywgY21k KTsKIAogCU1MWDVfU0VUKHRsc19jbWQsIGNtZCwgc3dpZCwgbnRvaGwoaGFuZGxlKSk7CkBAIC0y MzgsNiArMjQ0LDggQEAgaW50IG1seDVfZnBnYV90bHNfcmVzeW5jX3J4KHN0cnVjdCBtbHg1X2Nv cmVfZGV2ICptZGV2LCB1MzIgaGFuZGxlLCB1MzIgc2VxLAogCWJ1Zi0+Y29tcGxldGUgPSBtbHhf dGxzX2tmcmVlX2NvbXBsZXRlOwogCiAJcmV0ID0gbWx4NV9mcGdhX3NidV9jb25uX3NlbmRtc2co bWRldi0+ZnBnYS0+dGxzLT5jb25uLCBidWYpOworCWlmIChyZXQgPCAwKQorCQlrZnJlZShidWYp OwogCiAJcmV0dXJuIHJldDsKIH0KLS0gCjIuMjAuMQoKCkZyb20gNTc2OGNkZjQzYzg4ZjhjNzRk NTI0NjcwYzFmNTQzNGU1ODNlNWU3ZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSHV5 IE5ndXllbiA8aHV5bkBtZWxsYW5veC5jb20+CkRhdGU6IFRodSwgNyBNYXIgMjAxOSAxNDo0OTo1 MCAtMDYwMApTdWJqZWN0OiBbUEFUQ0ggMzUvMzZdIG5ldC9tbHg1ZTogVXBkYXRlIHhvZmYgZm9y bXVsYQoKWyBVcHN0cmVhbSBjb21taXQgNWVjOTgzZTkyNGM3OTc4YWFlYzNjZjg2NzllY2U5NDM2 NTA4YmIyMCBdCgpTZXQgbWluaW11bSBzcGVlZCBpbiB4b2ZmIHRocmVzaG9sZCBmb3JtdWxhIHRv IDQwR2JwcwoKRml4ZXM6IDA2OTZkNjA4NTNkNSAoIm5ldC9tbHg1ZTogUmVjZWl2ZSBidWZmZXIg Y29uZmlndXJhdGlvbiIpClNpZ25lZC1vZmYtYnk6IEh1eSBOZ3V5ZW4gPGh1eW5AbWVsbGFub3gu Y29tPgpTaWduZWQtb2ZmLWJ5OiBTYWVlZCBNYWhhbWVlZCA8c2FlZWRtQG1lbGxhbm94LmNvbT4K LS0tCiAuLi4vbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9wb3J0X2J1ZmZlci5j ICB8IDExICsrKysrKy0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCA1IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21s eDUvY29yZS9lbi9wb3J0X2J1ZmZlci5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gv bWx4NS9jb3JlL2VuL3BvcnRfYnVmZmVyLmMKaW5kZXggZWFjMjQ1YTkzZjkxLi5mMDBkZTBjOTg3 Y2QgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9l bi9wb3J0X2J1ZmZlci5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUv Y29yZS9lbi9wb3J0X2J1ZmZlci5jCkBAIC0xMjIsNyArMTIyLDkgQEAgc3RhdGljIGludCBwb3J0 X3NldF9idWZmZXIoc3RydWN0IG1seDVlX3ByaXYgKnByaXYsCiAJcmV0dXJuIGVycjsKIH0KIAot LyogeG9mZiA9ICgoMzAxKzIuMTYgKiBsZW4gW21dKSAqIHNwZWVkIFtHYnBzXSArIDIuNzIgTVRV IFtCXSkgKi8KKy8qIHhvZmYgPSAoKDMwMSsyLjE2ICogbGVuIFttXSkgKiBzcGVlZCBbR2Jwc10g KyAyLjcyIE1UVSBbQl0pCisgKiBtaW5pbXVtIHNwZWVkIHZhbHVlIGlzIDQwR2JwcworICovCiBz dGF0aWMgdTMyIGNhbGN1bGF0ZV94b2ZmKHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2LCB1bnNpZ25l ZCBpbnQgbXR1KQogewogCXUzMiBzcGVlZDsKQEAgLTEzMCwxMCArMTMyLDkgQEAgc3RhdGljIHUz MiBjYWxjdWxhdGVfeG9mZihzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdiwgdW5zaWduZWQgaW50IG10 dSkKIAlpbnQgZXJyOwogCiAJZXJyID0gbWx4NWVfcG9ydF9saW5rc3BlZWQocHJpdi0+bWRldiwg JnNwZWVkKTsKLQlpZiAoZXJyKSB7Ci0JCW1seDVfY29yZV93YXJuKHByaXYtPm1kZXYsICJjYW5u b3QgZ2V0IHBvcnQgc3BlZWRcbiIpOwotCQlyZXR1cm4gMDsKLQl9CisJaWYgKGVycikKKwkJc3Bl ZWQgPSBTUEVFRF80MDAwMDsKKwlzcGVlZCA9IG1heF90KHUzMiwgc3BlZWQsIFNQRUVEXzQwMDAw KTsKIAogCXhvZmYgPSAoMzAxICsgMjE2ICogcHJpdi0+ZGNieC5jYWJsZV9sZW4gLyAxMDApICog c3BlZWQgLyAxMDAwICsgMjcyICogbXR1IC8gMTAwOwogCi0tIAoyLjIwLjEKCgpGcm9tIDJiN2Y4 YmU1ZTYwOWI5ZWUzNzc1M2M1OGU5ZTJkYjYyYTE3OTRmMTAgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IEh1eSBOZ3V5ZW4gPGh1eW5AbWVsbGFub3guY29tPgpEYXRlOiBUaHUsIDcgTWFy IDIwMTkgMTQ6MDc6MzIgLTA2MDAKU3ViamVjdDogW1BBVENIIDM2LzM2XSBuZXQvbWx4NWU6IFVw ZGF0ZSB4b24gZm9ybXVsYQoKWyBVcHN0cmVhbSBjb21taXQgZTI4NDA4ZTk4YmNlZDEyMzAzODg1 N2I2ZTNjODFmYTEyYTJlM2U2OCBdCgpTZXQgeG9uID0geG9mZiAtIG5ldGRldidzIG1heF9tdHUu Cm5ldGRldidzIG1heF9tdHUgd2lsbCBnaXZlIGVub3VnaCB0aW1lIGZvciB0aGUgcGF1c2UgZnJh bWUgdG8KYXJyaXZlIGF0IHRoZSBzZW5kZXIuCgpGaXhlczogMDY5NmQ2MDg1M2Q1ICgibmV0L21s eDVlOiBSZWNlaXZlIGJ1ZmZlciBjb25maWd1cmF0aW9uIikKU2lnbmVkLW9mZi1ieTogSHV5IE5n dXllbiA8aHV5bkBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IFNhZWVkIE1haGFtZWVkIDxz YWVlZG1AbWVsbGFub3guY29tPgotLS0KIC4uLi9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcG9ydF9i dWZmZXIuYyAgICAgICB8IDI4ICsrKysrKysrKysrLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAx NiBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25l dC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcG9ydF9idWZmZXIuYyBiL2RyaXZlcnMv bmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9wb3J0X2J1ZmZlci5jCmluZGV4IGYw MGRlMGM5ODdjZC4uNGFiMGQwMzBiNTQ0IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5l dC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcG9ydF9idWZmZXIuYworKysgYi9kcml2ZXJzL25ldC9l dGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcG9ydF9idWZmZXIuYwpAQCAtMTQzLDcgKzE0 Myw3IEBAIHN0YXRpYyB1MzIgY2FsY3VsYXRlX3hvZmYoc3RydWN0IG1seDVlX3ByaXYgKnByaXYs IHVuc2lnbmVkIGludCBtdHUpCiB9CiAKIHN0YXRpYyBpbnQgdXBkYXRlX3hvZmZfdGhyZXNob2xk KHN0cnVjdCBtbHg1ZV9wb3J0X2J1ZmZlciAqcG9ydF9idWZmZXIsCi0JCQkJIHUzMiB4b2ZmLCB1 bnNpZ25lZCBpbnQgbXR1KQorCQkJCSB1MzIgeG9mZiwgdW5zaWduZWQgaW50IG1heF9tdHUpCiB7 CiAJaW50IGk7CiAKQEAgLTE1NSwxMSArMTU1LDEyIEBAIHN0YXRpYyBpbnQgdXBkYXRlX3hvZmZf dGhyZXNob2xkKHN0cnVjdCBtbHg1ZV9wb3J0X2J1ZmZlciAqcG9ydF9idWZmZXIsCiAJCX0KIAog CQlpZiAocG9ydF9idWZmZXItPmJ1ZmZlcltpXS5zaXplIDwKLQkJICAgICh4b2ZmICsgbXR1ICsg KDEgPDwgTUxYNUVfQlVGRkVSX0NFTExfU0hJRlQpKSkKKwkJICAgICh4b2ZmICsgbWF4X210dSAr ICgxIDw8IE1MWDVFX0JVRkZFUl9DRUxMX1NISUZUKSkpCiAJCQlyZXR1cm4gLUVOT01FTTsKIAog CQlwb3J0X2J1ZmZlci0+YnVmZmVyW2ldLnhvZmYgPSBwb3J0X2J1ZmZlci0+YnVmZmVyW2ldLnNp emUgLSB4b2ZmOwotCQlwb3J0X2J1ZmZlci0+YnVmZmVyW2ldLnhvbiAgPSBwb3J0X2J1ZmZlci0+ YnVmZmVyW2ldLnhvZmYgLSBtdHU7CisJCXBvcnRfYnVmZmVyLT5idWZmZXJbaV0ueG9uICA9CisJ CQlwb3J0X2J1ZmZlci0+YnVmZmVyW2ldLnhvZmYgLSBtYXhfbXR1OwogCX0KIAogCXJldHVybiAw OwpAQCAtMTY3LDcgKzE2OCw3IEBAIHN0YXRpYyBpbnQgdXBkYXRlX3hvZmZfdGhyZXNob2xkKHN0 cnVjdCBtbHg1ZV9wb3J0X2J1ZmZlciAqcG9ydF9idWZmZXIsCiAKIC8qKgogICogdXBkYXRlX2J1 ZmZlcl9sb3NzeSgpCi0gKiAgIG10dTogZGV2aWNlJ3MgTVRVCisgKiAgIG1heF9tdHU6IG5ldGRl didzIG1heF9tdHUKICAqICAgcGZjX2VuOiA8aW5wdXQ+IGN1cnJlbnQgcGZjIGNvbmZpZ3VyYXRp b24KICAqICAgYnVmZmVyOiA8aW5wdXQ+IGN1cnJlbnQgcHJpbyB0byBidWZmZXIgbWFwcGluZwog ICogICB4b2ZmOiAgIDxpbnB1dD4geG9mZiB2YWx1ZQpAQCAtMTg0LDcgKzE4NSw3IEBAIHN0YXRp YyBpbnQgdXBkYXRlX3hvZmZfdGhyZXNob2xkKHN0cnVjdCBtbHg1ZV9wb3J0X2J1ZmZlciAqcG9y dF9idWZmZXIsCiAgKiAgICAgUmV0dXJuIDAgaWYgbm8gZXJyb3IuCiAgKiAgICAgU2V0IGNoYW5n ZSB0byB0cnVlIGlmIGJ1ZmZlciBjb25maWd1cmF0aW9uIGlzIG1vZGlmaWVkLgogICovCi1zdGF0 aWMgaW50IHVwZGF0ZV9idWZmZXJfbG9zc3kodW5zaWduZWQgaW50IG10dSwKK3N0YXRpYyBpbnQg dXBkYXRlX2J1ZmZlcl9sb3NzeSh1bnNpZ25lZCBpbnQgbWF4X210dSwKIAkJCSAgICAgICB1OCBw ZmNfZW4sIHU4ICpidWZmZXIsIHUzMiB4b2ZmLAogCQkJICAgICAgIHN0cnVjdCBtbHg1ZV9wb3J0 X2J1ZmZlciAqcG9ydF9idWZmZXIsCiAJCQkgICAgICAgYm9vbCAqY2hhbmdlKQpAQCAtMjIxLDcg KzIyMiw3IEBAIHN0YXRpYyBpbnQgdXBkYXRlX2J1ZmZlcl9sb3NzeSh1bnNpZ25lZCBpbnQgbXR1 LAogCX0KIAogCWlmIChjaGFuZ2VkKSB7Ci0JCWVyciA9IHVwZGF0ZV94b2ZmX3RocmVzaG9sZChw b3J0X2J1ZmZlciwgeG9mZiwgbXR1KTsKKwkJZXJyID0gdXBkYXRlX3hvZmZfdGhyZXNob2xkKHBv cnRfYnVmZmVyLCB4b2ZmLCBtYXhfbXR1KTsKIAkJaWYgKGVycikKIAkJCXJldHVybiBlcnI7CiAK QEAgLTIzMSw2ICsyMzIsNyBAQCBzdGF0aWMgaW50IHVwZGF0ZV9idWZmZXJfbG9zc3kodW5zaWdu ZWQgaW50IG10dSwKIAlyZXR1cm4gMDsKIH0KIAorI2RlZmluZSBNSU5JTVVNX01BWF9NVFUgOTIx NgogaW50IG1seDVlX3BvcnRfbWFudWFsX2J1ZmZlcl9jb25maWcoc3RydWN0IG1seDVlX3ByaXYg KnByaXYsCiAJCQkJICAgIHUzMiBjaGFuZ2UsIHVuc2lnbmVkIGludCBtdHUsCiAJCQkJICAgIHN0 cnVjdCBpZWVlX3BmYyAqcGZjLApAQCAtMjQyLDEyICsyNDQsMTQgQEAgaW50IG1seDVlX3BvcnRf bWFudWFsX2J1ZmZlcl9jb25maWcoc3RydWN0IG1seDVlX3ByaXYgKnByaXYsCiAJYm9vbCB1cGRh dGVfcHJpbzJidWZmZXIgPSBmYWxzZTsKIAl1OCBidWZmZXJbTUxYNUVfTUFYX1BSSU9SSVRZXTsK IAlib29sIHVwZGF0ZV9idWZmZXIgPSBmYWxzZTsKKwl1bnNpZ25lZCBpbnQgbWF4X210dTsKIAl1 MzIgdG90YWxfdXNlZCA9IDA7CiAJdTggY3Vycl9wZmNfZW47CiAJaW50IGVycjsKIAlpbnQgaTsK IAogCW1seDVlX2RiZyhIVywgcHJpdiwgIiVzOiBjaGFuZ2U9JXhcbiIsIF9fZnVuY19fLCBjaGFu Z2UpOworCW1heF9tdHUgPSBtYXhfdCh1bnNpZ25lZCBpbnQsIHByaXYtPm5ldGRldi0+bWF4X210 dSwgTUlOSU1VTV9NQVhfTVRVKTsKIAogCWVyciA9IG1seDVlX3BvcnRfcXVlcnlfYnVmZmVyKHBy aXYsICZwb3J0X2J1ZmZlcik7CiAJaWYgKGVycikKQEAgLTI1NSw3ICsyNTksNyBAQCBpbnQgbWx4 NWVfcG9ydF9tYW51YWxfYnVmZmVyX2NvbmZpZyhzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdiwKIAog CWlmIChjaGFuZ2UgJiBNTFg1RV9QT1JUX0JVRkZFUl9DQUJMRV9MRU4pIHsKIAkJdXBkYXRlX2J1 ZmZlciA9IHRydWU7Ci0JCWVyciA9IHVwZGF0ZV94b2ZmX3RocmVzaG9sZCgmcG9ydF9idWZmZXIs IHhvZmYsIG10dSk7CisJCWVyciA9IHVwZGF0ZV94b2ZmX3RocmVzaG9sZCgmcG9ydF9idWZmZXIs IHhvZmYsIG1heF9tdHUpOwogCQlpZiAoZXJyKQogCQkJcmV0dXJuIGVycjsKIAl9CkBAIC0yNjUs NyArMjY5LDcgQEAgaW50IG1seDVlX3BvcnRfbWFudWFsX2J1ZmZlcl9jb25maWcoc3RydWN0IG1s eDVlX3ByaXYgKnByaXYsCiAJCWlmIChlcnIpCiAJCQlyZXR1cm4gZXJyOwogCi0JCWVyciA9IHVw ZGF0ZV9idWZmZXJfbG9zc3kobXR1LCBwZmMtPnBmY19lbiwgYnVmZmVyLCB4b2ZmLAorCQllcnIg PSB1cGRhdGVfYnVmZmVyX2xvc3N5KG1heF9tdHUsIHBmYy0+cGZjX2VuLCBidWZmZXIsIHhvZmYs CiAJCQkJCSAgJnBvcnRfYnVmZmVyLCAmdXBkYXRlX2J1ZmZlcik7CiAJCWlmIChlcnIpCiAJCQly ZXR1cm4gZXJyOwpAQCAtMjc3LDggKzI4MSw4IEBAIGludCBtbHg1ZV9wb3J0X21hbnVhbF9idWZm ZXJfY29uZmlnKHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2LAogCQlpZiAoZXJyKQogCQkJcmV0dXJu IGVycjsKIAotCQllcnIgPSB1cGRhdGVfYnVmZmVyX2xvc3N5KG10dSwgY3Vycl9wZmNfZW4sIHBy aW8yYnVmZmVyLCB4b2ZmLAotCQkJCQkgICZwb3J0X2J1ZmZlciwgJnVwZGF0ZV9idWZmZXIpOwor CQllcnIgPSB1cGRhdGVfYnVmZmVyX2xvc3N5KG1heF9tdHUsIGN1cnJfcGZjX2VuLCBwcmlvMmJ1 ZmZlciwKKwkJCQkJICB4b2ZmLCAmcG9ydF9idWZmZXIsICZ1cGRhdGVfYnVmZmVyKTsKIAkJaWYg KGVycikKIAkJCXJldHVybiBlcnI7CiAJfQpAQCAtMzAyLDcgKzMwNiw3IEBAIGludCBtbHg1ZV9w b3J0X21hbnVhbF9idWZmZXJfY29uZmlnKHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2LAogCQkJcmV0 dXJuIC1FSU5WQUw7CiAKIAkJdXBkYXRlX2J1ZmZlciA9IHRydWU7Ci0JCWVyciA9IHVwZGF0ZV94 b2ZmX3RocmVzaG9sZCgmcG9ydF9idWZmZXIsIHhvZmYsIG10dSk7CisJCWVyciA9IHVwZGF0ZV94 b2ZmX3RocmVzaG9sZCgmcG9ydF9idWZmZXIsIHhvZmYsIG1heF9tdHUpOwogCQlpZiAoZXJyKQog CQkJcmV0dXJuIGVycjsKIAl9CkBAIC0zMTAsNyArMzE0LDcgQEAgaW50IG1seDVlX3BvcnRfbWFu dWFsX2J1ZmZlcl9jb25maWcoc3RydWN0IG1seDVlX3ByaXYgKnByaXYsCiAJLyogTmVlZCB0byB1 cGRhdGUgYnVmZmVyIGNvbmZpZ3VyYXRpb24gaWYgeG9mZiB2YWx1ZSBpcyBjaGFuZ2VkICovCiAJ aWYgKCF1cGRhdGVfYnVmZmVyICYmIHhvZmYgIT0gcHJpdi0+ZGNieC54b2ZmKSB7CiAJCXVwZGF0 ZV9idWZmZXIgPSB0cnVlOwotCQllcnIgPSB1cGRhdGVfeG9mZl90aHJlc2hvbGQoJnBvcnRfYnVm ZmVyLCB4b2ZmLCBtdHUpOworCQllcnIgPSB1cGRhdGVfeG9mZl90aHJlc2hvbGQoJnBvcnRfYnVm ZmVyLCB4b2ZmLCBtYXhfbXR1KTsKIAkJaWYgKGVycikKIAkJCXJldHVybiBlcnI7CiAJfQotLSAK Mi4yMC4xCgo= ----Next_Part(Tue_Apr__9_20_55_38_2019_143)----