From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 6ADE7A0C43 for ; Fri, 22 Oct 2021 09:49:03 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 52A9B4116D; Fri, 22 Oct 2021 09:49:03 +0200 (CEST) Received: from mail-pf1-f226.google.com (mail-pf1-f226.google.com [209.85.210.226]) by mails.dpdk.org (Postfix) with ESMTP id 46FED4068C for ; Fri, 22 Oct 2021 04:29:00 +0200 (CEST) Received: by mail-pf1-f226.google.com with SMTP id o133so2329202pfg.7 for ; Thu, 21 Oct 2021 19:29:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=iol.unh.edu; s=unh-iol; h=mime-version:subject:from:to:cc:message-id:date; bh=8Dwh5He9mAm29u5sMyKe2dZRmhMuhX42d7yI1MTJuK4=; b=K72NO8vDOjo62k/VliQ1PuTYraXuwfjk3zw4DNfdV/M709Hi7O++NnFx2pTGSR5Wy5 POUWXsww/jmK5iTfzHOdhCajZxKJ3AFMnPmMeOxNiXkW0yHNn074iad7smtFePIQN/ea Sc+a68k9Ljf7yd4FgjcleYMiM3UkLNWT+duBM= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:subject:from:to:cc:message-id:date; bh=8Dwh5He9mAm29u5sMyKe2dZRmhMuhX42d7yI1MTJuK4=; b=gSpqwPtW9vgJZZ0KaC9eiARk3b71dE8ZQmOdaocKj783nzPeUMNb0RRcVmEDy1kD4v L92kt2XbN9vAbRh/BqKnRrnnFH1fKP3odsk0Nh5ODofrnbToPp6GtgqvdZVhuiHvpXMH 62bie7vXTMsaEh5fEDYyx+q2Y8EM4OJHF5Z2wV1NeTL7RxVkj7SG0eUtc2vP08VbRZYX j8jRyxGCiRnB/TtpZRi0lzcC4CXmWWRqemvNHheS1gkaJ2IMSWMvnTOWyUd+YNn08/g6 mjPktjA0VcjW8OBl7mqFrC5p8lB41IzH4prBnRndR8LGGBQ+gvQ4SUXPeR+HYoy1Psj4 hNZA== X-Gm-Message-State: AOAM532MJY+lTO2nCbse8Iq8i2swiVsQ+h7pX90cng/OzVzcB3gpJrrH wUGLnaCugPM2hx5RcjtuEA4jCKd6ZQZM73Ahf1e3ClXeaLjctgbbXcYvvWSuUkK2AQ== X-Google-Smtp-Source: ABdhPJxiGsbGXwJ8KGgp4auz4hmisUee0w3mzVqPID7PYSweUzKTqp5anKhQPx/yt5oWTeJCRFyImC86SKg7 X-Received: by 2002:a05:6a00:b8f:b0:44c:6220:3396 with SMTP id g15-20020a056a000b8f00b0044c62203396mr9316764pfj.58.1634869739230; Thu, 21 Oct 2021 19:28:59 -0700 (PDT) Received: from postal.iol.unh.edu (postal.iol.unh.edu. [2606:4100:3880:1234::84]) by smtp-relay.gmail.com with ESMTPS id mm1sm2167569pjb.10.2021.10.21.19.28.58 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 21 Oct 2021 19:28:59 -0700 (PDT) X-Relaying-Domain: iol.unh.edu Received: from dpdk-ubuntu.dpdklab.iol.unh.edu (unknown [IPv6:2606:4100:3880:1722::32]) by postal.iol.unh.edu (Postfix) with ESMTP id 8C183605247D; Thu, 21 Oct 2021 22:28:57 -0400 (EDT) Received: from dpdk-ubuntu.dpdklab.iol.unh.edu (localhost [IPv6:::1]) by dpdk-ubuntu.dpdklab.iol.unh.edu (Postfix) with ESMTP id 7892B6008E; Fri, 22 Oct 2021 02:28:57 +0000 (UTC) Content-Type: multipart/mixed; boundary="===============0923624009156625691==" MIME-Version: 1.0 From: dpdklab@iol.unh.edu To: test-report@dpdk.org Cc: dpdk-test-reports@iol.unh.edu Message-Id: <20211022022857.7892B6008E@dpdk-ubuntu.dpdklab.iol.unh.edu> Date: Fri, 22 Oct 2021 02:28:57 +0000 (UTC) X-Mailman-Approved-At: Fri, 22 Oct 2021 09:48:58 +0200 Subject: [dpdk-test-report] |WARNING| pw102611 [PATCH] [v6] ethdev: add namespace X-BeenThere: test-report@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: automatic DPDK test reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: test-report-bounces@dpdk.org Sender: "test-report" --===============0923624009156625691== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGVzdC1MYWJlbDogaW9sLXRlc3RpbmcKVGVzdC1TdGF0dXM6IFdBUk5JTkcKaHR0cDovL2RwZGsu b3JnL3BhdGNoLzEwMjYxMQoKX2FwcGx5IHBhdGNoIGZhaWx1cmVfCgpTdWJtaXR0ZXI6IEZlcnJ1 aCBZaWdpdCA8ZmVycnVoLnlpZ2l0QGludGVsLmNvbT4KRGF0ZTogRnJpZGF5LCBPY3RvYmVyIDIy IDIwMjEgMDI6MDI6NDEgCkFwcGxpZWQgb246IENvbW1pdElEOjNhYzJkZmZhZTg4ZThlYjVjMzc0 YjFmZGQ0MGQ2MDUwMTQ1MjY1MTAKQXBwbHkgcGF0Y2ggc2V0IDEwMjYxMSBmYWlsZWQ6CgpDaGVj a2luZyBwYXRjaCBhcHAvcHJvYy1pbmZvL21haW4uYy4uLgpDaGVja2luZyBwYXRjaCBhcHAvdGVz dC1ldmVudGRldi90ZXN0X3BlcmZfY29tbW9uLmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBm b3I6CglzdHJ1Y3QgdGVzdF9wZXJmICp0ID0gZXZ0X3Rlc3RfcHJpdih0ZXN0KTsKCXN0cnVjdCBy dGVfZXRoX2NvbmYgcG9ydF9jb25mID0gewoJCS5yeG1vZGUgPSB7CgkJCS5tcV9tb2RlID0gRVRI X01RX1JYX1JTUywKCQkJLnNwbGl0X2hkcl9zaXplID0gMCwKCQl9LAoJCS5yeF9hZHZfY29uZiA9 IHsKCQkJLnJzc19jb25mID0gewoJCQkJLnJzc19rZXkgPSBOVUxMLAoJCQkJLnJzc19oZiA9IEVU SF9SU1NfSVAsCgkJCX0sCgkJfSwKCX07CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBhcHAvdGVzdC1l dmVudGRldi90ZXN0X3BlcmZfY29tbW9uLmM6NjY4CkNoZWNraW5nIHBhdGNoIGFwcC90ZXN0LWV2 ZW50ZGV2L3Rlc3RfcGlwZWxpbmVfY29tbW9uLmMuLi4KSHVuayAjMiBzdWNjZWVkZWQgYXQgMjI0 IChvZmZzZXQgMSBsaW5lKS4KSHVuayAjMyBzdWNjZWVkZWQgYXQgMjM0IChvZmZzZXQgMSBsaW5l KS4KQ2hlY2tpbmcgcGF0Y2ggYXBwL3Rlc3QtZmxvdy1wZXJmL2NvbmZpZy5oLi4uCkNoZWNraW5n IHBhdGNoIGFwcC90ZXN0LXBpcGVsaW5lL2luaXQuYy4uLgpDaGVja2luZyBwYXRjaCBhcHAvdGVz dC1wbWQvY21kbGluZS5jLi4uCkh1bmsgIzEgc3VjY2VlZGVkIGF0IDE0NzIgKG9mZnNldCAtNiBs aW5lcykuCkh1bmsgIzIgc3VjY2VlZGVkIGF0IDIxNjcgKG9mZnNldCAxIGxpbmUpLgpIdW5rICMz IHN1Y2NlZWRlZCBhdCAyMjA3IChvZmZzZXQgMSBsaW5lKS4KSHVuayAjNCBzdWNjZWVkZWQgYXQg Mjk4MyAob2Zmc2V0IDEgbGluZSkuCkh1bmsgIzUgc3VjY2VlZGVkIGF0IDMwMTMgKG9mZnNldCAx IGxpbmUpLgpIdW5rICM2IHN1Y2NlZWRlZCBhdCAzMDg3IChvZmZzZXQgMSBsaW5lKS4KSHVuayAj NyBzdWNjZWVkZWQgYXQgMzEzMyAob2Zmc2V0IDEgbGluZSkuCkh1bmsgIzggc3VjY2VlZGVkIGF0 IDMyNzMgKG9mZnNldCAxIGxpbmUpLgpIdW5rICM5IHN1Y2NlZWRlZCBhdCA0Mjc3IChvZmZzZXQg MSBsaW5lKS4KSHVuayAjMTAgc3VjY2VlZGVkIGF0IDQ2MTYgKG9mZnNldCAxIGxpbmUpLgpIdW5r ICMxMSBzdWNjZWVkZWQgYXQgNDcxNCAob2Zmc2V0IDEgbGluZSkuCkh1bmsgIzEyIHN1Y2NlZWRl ZCBhdCA0NzIzIChvZmZzZXQgMSBsaW5lKS4KSHVuayAjMTMgc3VjY2VlZGVkIGF0IDQ3MzIgKG9m ZnNldCAxIGxpbmUpLgpIdW5rICMxNCBzdWNjZWVkZWQgYXQgNDc0MSAob2Zmc2V0IDEgbGluZSku Ckh1bmsgIzE1IHN1Y2NlZWRlZCBhdCA0NzUwIChvZmZzZXQgMSBsaW5lKS4KSHVuayAjMTYgc3Vj Y2VlZGVkIGF0IDQ3NjAgKG9mZnNldCAxIGxpbmUpLgpIdW5rICMxNyBzdWNjZWVkZWQgYXQgNDkx NyAob2Zmc2V0IDEgbGluZSkuCkh1bmsgIzE4IHN1Y2NlZWRlZCBhdCA0OTI1IChvZmZzZXQgMSBs aW5lKS4KSHVuayAjMTkgc3VjY2VlZGVkIGF0IDQ5NDEgKG9mZnNldCAxIGxpbmUpLgpIdW5rICMy MCBzdWNjZWVkZWQgYXQgNTAxMiAob2Zmc2V0IDEgbGluZSkuCkh1bmsgIzIxIHN1Y2NlZWRlZCBh dCA1MDYwIChvZmZzZXQgMSBsaW5lKS4KSHVuayAjMjIgc3VjY2VlZGVkIGF0IDUwOTYgKG9mZnNl dCAxIGxpbmUpLgpIdW5rICMyMyBzdWNjZWVkZWQgYXQgNzA0OCAob2Zmc2V0IC0xNzkgbGluZXMp LgpIdW5rICMyNCBzdWNjZWVkZWQgYXQgNzMyOCAob2Zmc2V0IC0xNzkgbGluZXMpLgpIdW5rICMy NSBzdWNjZWVkZWQgYXQgNzM0NiAob2Zmc2V0IC0xNzkgbGluZXMpLgpIdW5rICMyNiBzdWNjZWVk ZWQgYXQgNzQxOCAob2Zmc2V0IC0xNzkgbGluZXMpLgpIdW5rICMyNyBzdWNjZWVkZWQgYXQgODk0 MCAob2Zmc2V0IC0zMTAgbGluZXMpLgpIdW5rICMyOCBzdWNjZWVkZWQgYXQgOTM0NiAob2Zmc2V0 IC0zMTAgbGluZXMpLgpIdW5rICMyOSBzdWNjZWVkZWQgYXQgOTQxMiAob2Zmc2V0IC0zMTAgbGlu ZXMpLgpIdW5rICMzMCBzdWNjZWVkZWQgYXQgMTE1NDkgKG9mZnNldCAtMzEwIGxpbmVzKS4KSHVu ayAjMzEgc3VjY2VlZGVkIGF0IDExNTYwIChvZmZzZXQgLTMxMCBsaW5lcykuCkh1bmsgIzMyIHN1 Y2NlZWRlZCBhdCAxMTY0NiAob2Zmc2V0IC0zMTAgbGluZXMpLgpIdW5rICMzMyBzdWNjZWVkZWQg YXQgMTE2NTQgKG9mZnNldCAtMzEwIGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2ggYXBwL3Rlc3QtcG1k L2NvbmZpZy5jLi4uCkh1bmsgIzIgc3VjY2VlZGVkIGF0IDQ3NiAob2Zmc2V0IC02MiBsaW5lcyku Ckh1bmsgIzMgc3VjY2VlZGVkIGF0IDYzOCAob2Zmc2V0IC04NSBsaW5lcykuCkh1bmsgIzQgc3Vj Y2VlZGVkIGF0IDY1OCAob2Zmc2V0IC04NSBsaW5lcykuCkh1bmsgIzUgc3VjY2VlZGVkIGF0IDI3 NjcgKG9mZnNldCAtMTg2IGxpbmVzKS4KSHVuayAjNiBzdWNjZWVkZWQgYXQgMzEzNiAob2Zmc2V0 IC0yOTEgbGluZXMpLgpIdW5rICM3IHN1Y2NlZWRlZCBhdCA0MTk5IChvZmZzZXQgLTI5MSBsaW5l cykuCkh1bmsgIzggc3VjY2VlZGVkIGF0IDQyMjkgKG9mZnNldCAtMjkxIGxpbmVzKS4KSHVuayAj OSBzdWNjZWVkZWQgYXQgNDI3NCAob2Zmc2V0IC0yOTEgbGluZXMpLgpIdW5rICMxMCBzdWNjZWVk ZWQgYXQgNDMwNCAob2Zmc2V0IC0yOTEgbGluZXMpLgpIdW5rICMxMSBzdWNjZWVkZWQgYXQgNDM3 OCAob2Zmc2V0IC0yOTEgbGluZXMpLgpIdW5rICMxMiBzdWNjZWVkZWQgYXQgNDM4NyAob2Zmc2V0 IC0yOTEgbGluZXMpLgpIdW5rICMxMyBzdWNjZWVkZWQgYXQgNDM5NSAob2Zmc2V0IC0yOTEgbGlu ZXMpLgpIdW5rICMxNCBzdWNjZWVkZWQgYXQgNDQxNCAob2Zmc2V0IC0yOTEgbGluZXMpLgpIdW5r ICMxNSBzdWNjZWVkZWQgYXQgNDQyMiAob2Zmc2V0IC0yOTEgbGluZXMpLgpIdW5rICMxNiBzdWNj ZWVkZWQgYXQgNDQzMiAob2Zmc2V0IC0yOTEgbGluZXMpLgpIdW5rICMxNyBzdWNjZWVkZWQgYXQg NDgzOSAob2Zmc2V0IC0yOTEgbGluZXMpLgpDaGVja2luZyBwYXRjaCBhcHAvdGVzdC1wbWQvY3N1 bW9ubHkuYy4uLgpDaGVja2luZyBwYXRjaCBhcHAvdGVzdC1wbWQvZmxvd2dlbi5jLi4uCkNoZWNr aW5nIHBhdGNoIGFwcC90ZXN0LXBtZC9tYWNmd2QuYy4uLgpDaGVja2luZyBwYXRjaCBhcHAvdGVz dC1wbWQvbWFjc3dhcF9jb21tb24uaC4uLgpDaGVja2luZyBwYXRjaCBhcHAvdGVzdC1wbWQvcGFy YW1ldGVycy5jLi4uCkh1bmsgIzEgc3VjY2VlZGVkIGF0IDQ3NiAob2Zmc2V0IC03MSBsaW5lcyku Ckh1bmsgIzIgc3VjY2VlZGVkIGF0IDkxOSAob2Zmc2V0IC04MyBsaW5lcykuCkh1bmsgIzMgc3Vj Y2VlZGVkIGF0IDk2NyAob2Zmc2V0IC04MyBsaW5lcykuCkh1bmsgIzQgc3VjY2VlZGVkIGF0IDEw MTYgKG9mZnNldCAtODMgbGluZXMpLgpIdW5rICM1IHN1Y2NlZWRlZCBhdCAxNDAxIChvZmZzZXQg LTk0IGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2ggYXBwL3Rlc3QtcG1kL3Rlc3RwbWQuYy4uLgpIdW5r ICMxIHN1Y2NlZWRlZCBhdCAzMzggKG9mZnNldCAtMTEgbGluZXMpLgplcnJvcjogd2hpbGUgc2Vh cmNoaW5nIGZvcjoKc3RydWN0IHJ0ZV9ldGhfcnhtb2RlIHJ4X21vZGU7CgpzdHJ1Y3QgcnRlX2V0 aF90eG1vZGUgdHhfbW9kZSA9IHsKCS5vZmZsb2FkcyA9IERFVl9UWF9PRkZMT0FEX01CVUZfRkFT VF9GUkVFLAp9OwoKc3RydWN0IHJ0ZV9mZGlyX2NvbmYgZmRpcl9jb25mID0gewoJLm1vZGUgPSBS VEVfRkRJUl9NT0RFX05PTkUsCgkucGJhbGxvYyA9IFJURV9GRElSX1BCQUxMT0NfNjRLLAoJLnN0 YXR1cyA9IFJURV9GRElSX1JFUE9SVF9TVEFUVVMsCgkubWFzayA9IHsKCQkudmxhbl90Y2lfbWFz ayA9IDB4RkZFRiwKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGFwcC90ZXN0LXBtZC90ZXN0cG1kLmM6 NDYwCkh1bmsgIzMgc3VjY2VlZGVkIGF0IDUxNCAob2Zmc2V0IC0xMCBsaW5lcykuCmVycm9yOiB3 aGlsZSBzZWFyY2hpbmcgZm9yOgoJaWYgKHJldCAhPSAwKQoJCXJ0ZV9leGl0KEVYSVRfRkFJTFVS RSwgInJ0ZV9ldGhfZGV2X2luZm9fZ2V0KCkgZmFpbGVkXG4iKTsKCglpZiAoIShwb3J0LT5kZXZf aW5mby50eF9vZmZsb2FkX2NhcGEgJiBERVZfVFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJFRSkpCgkJ cG9ydC0+ZGV2X2NvbmYudHhtb2RlLm9mZmxvYWRzICY9CgkJCX5ERVZfVFhfT0ZGTE9BRF9NQlVG X0ZBU1RfRlJFRTsKCgkvKiBBcHBseSBSeCBvZmZsb2FkcyBjb25maWd1cmF0aW9uICovCglmb3Ig KGkgPSAwOyBpIDwgcG9ydC0+ZGV2X2luZm8ubWF4X3J4X3F1ZXVlczsgaSsrKQoKZXJyb3I6IHBh dGNoIGZhaWxlZDogYXBwL3Rlc3QtcG1kL3Rlc3RwbWQuYzoxNTc4Ckh1bmsgIzUgc3VjY2VlZGVk IGF0IDE2MzEgKG9mZnNldCAtODYgbGluZXMpLgpIdW5rICM2IHN1Y2NlZWRlZCBhdCAzMjIxIChv ZmZzZXQgLTI0NSBsaW5lcykuCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJCQlpZiAocG9y dC0+ZGV2X2NvbmYucnhfYWR2X2NvbmYucnNzX2NvbmYucnNzX2hmICE9IDApIHsKCQkJCXBvcnQt PmRldl9jb25mLnJ4bW9kZS5tcV9tb2RlID0KCQkJCQkoZW51bSBydGVfZXRoX3J4X21xX21vZGUp CgkJCQkJCShyeF9tcV9tb2RlICYgRVRIX01RX1JYX1JTUyk7CgkJCX0gZWxzZSB7CgkJCQlwb3J0 LT5kZXZfY29uZi5yeG1vZGUubXFfbW9kZSA9IEVUSF9NUV9SWF9OT05FOwoJCQkJcG9ydC0+ZGV2 X2NvbmYucnhtb2RlLm9mZmxvYWRzICY9CgkJCQkJCX5ERVZfUlhfT0ZGTE9BRF9SU1NfSEFTSDsK CgkJCQlmb3IgKGkgPSAwOwoJCQkJICAgICBpIDwgcG9ydC0+ZGV2X2luZm8ubmJfcnhfcXVldWVz OwoJCQkJICAgICBpKyspCgkJCQkJcG9ydC0+cnhfY29uZltpXS5vZmZsb2FkcyAmPQoJCQkJCQl+ REVWX1JYX09GRkxPQURfUlNTX0hBU0g7CgkJCX0KCQl9CgoKZXJyb3I6IHBhdGNoIGZhaWxlZDog YXBwL3Rlc3QtcG1kL3Rlc3RwbWQuYzozNzY5Ckh1bmsgIzggc3VjY2VlZGVkIGF0IDM2NDIgKG9m ZnNldCAtMjI1IGxpbmVzKS4KSHVuayAjOSBzdWNjZWVkZWQgYXQgMzY1MiAob2Zmc2V0IC0yMjUg bGluZXMpLgpIdW5rICMxMCBzdWNjZWVkZWQgYXQgMzY2MCAob2Zmc2V0IC0yMjUgbGluZXMpLgpI dW5rICMxMSBzdWNjZWVkZWQgYXQgMzY3NyAob2Zmc2V0IC0yMjUgbGluZXMpLgpIdW5rICMxMiBz dWNjZWVkZWQgYXQgMzcyNCAob2Zmc2V0IC0yMjMgbGluZXMpLgplcnJvcjogd2hpbGUgc2VhcmNo aW5nIGZvcjoKCglyeHR4X3BvcnRfY29uZmlnKHBpZCk7CgkvKiBWTEFOIGZpbHRlciAqLwoJcnRl X3BvcnQtPmRldl9jb25mLnJ4bW9kZS5vZmZsb2FkcyB8PSBERVZfUlhfT0ZGTE9BRF9WTEFOX0ZJ TFRFUjsKCWZvciAoaSA9IDA7IGkgPCBSVEVfRElNKHZsYW5fdGFncyk7IGkrKykKCQlyeF92ZnRf c2V0KHBpZCwgdmxhbl90YWdzW2ldLCAxKTsKCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBhcHAvdGVz dC1wbWQvdGVzdHBtZC5jOjM5OTcKQ2hlY2tpbmcgcGF0Y2ggYXBwL3Rlc3QtcG1kL3Rlc3RwbWQu aC4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKZXh0ZXJuIHVpbnQ4X3QgYml0cmF0ZV9l bmFibGVkOwojZW5kaWYKCmV4dGVybiBzdHJ1Y3QgcnRlX2ZkaXJfY29uZiBmZGlyX2NvbmY7Cgpl eHRlcm4gdWludDMyX3QgbWF4X3J4X3BrdF9sZW47CgoKZXJyb3I6IHBhdGNoIGZhaWxlZDogYXBw L3Rlc3QtcG1kL3Rlc3RwbWQuaDo0OTMKQ2hlY2tpbmcgcGF0Y2ggYXBwL3Rlc3QtcG1kL3R4b25s eS5jLi4uCkh1bmsgIzEgc3VjY2VlZGVkIGF0IDM1MiAob2Zmc2V0IC0yIGxpbmVzKS4KQ2hlY2tp bmcgcGF0Y2ggYXBwL3Rlc3QvdGVzdF9ldGhkZXZfbGluay5jLi4uCkNoZWNraW5nIHBhdGNoIGFw cC90ZXN0L3Rlc3RfZXZlbnRfZXRoX3J4X2FkYXB0ZXIuYy4uLgpDaGVja2luZyBwYXRjaCBhcHAv dGVzdC90ZXN0X2tuaS5jLi4uCkNoZWNraW5nIHBhdGNoIGFwcC90ZXN0L3Rlc3RfbGlua19ib25k aW5nLmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgpzdGF0aWMgc3RydWN0IHJ0ZV9l dGhfY29uZiBkZWZhdWx0X3BtZF9jb25mID0gewoJLnJ4bW9kZSA9IHsKCQkubXFfbW9kZSA9IEVU SF9NUV9SWF9OT05FLAoJCS5zcGxpdF9oZHJfc2l6ZSA9IDAsCgl9LAoJLnR4bW9kZSA9IHsKCQku bXFfbW9kZSA9IEVUSF9NUV9UWF9OT05FLAoJfSwKCS5scGJrX21vZGUgPSAwLAp9OwoKZXJyb3I6 IHBhdGNoIGZhaWxlZDogYXBwL3Rlc3QvdGVzdF9saW5rX2JvbmRpbmcuYzoxMzQKQ2hlY2tpbmcg cGF0Y2ggYXBwL3Rlc3QvdGVzdF9saW5rX2JvbmRpbmdfbW9kZTQuYy4uLgplcnJvcjogd2hpbGUg c2VhcmNoaW5nIGZvcjoKCnN0YXRpYyBzdHJ1Y3QgcnRlX2V0aF9jb25mIGRlZmF1bHRfcG1kX2Nv bmYgPSB7Cgkucnhtb2RlID0gewoJCS5tcV9tb2RlID0gRVRIX01RX1JYX05PTkUsCgkJLnNwbGl0 X2hkcl9zaXplID0gMCwKCX0sCgkudHhtb2RlID0gewoJCS5tcV9tb2RlID0gRVRIX01RX1RYX05P TkUsCgl9LAoJLmxwYmtfbW9kZSA9IDAsCn07CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBhcHAvdGVz dC90ZXN0X2xpbmtfYm9uZGluZ19tb2RlNC5jOjEwNwpDaGVja2luZyBwYXRjaCBhcHAvdGVzdC90 ZXN0X2xpbmtfYm9uZGluZ19yc3Njb25mLmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6 CiAqLwpzdGF0aWMgc3RydWN0IHJ0ZV9ldGhfY29uZiBkZWZhdWx0X3BtZF9jb25mID0gewoJLnJ4 bW9kZSA9IHsKCQkubXFfbW9kZSA9IEVUSF9NUV9SWF9OT05FLAoJCS5zcGxpdF9oZHJfc2l6ZSA9 IDAsCgl9LAoJLnR4bW9kZSA9IHsKCQkubXFfbW9kZSA9IEVUSF9NUV9UWF9OT05FLAoJfSwKCS5s cGJrX21vZGUgPSAwLAp9OwoKc3RhdGljIHN0cnVjdCBydGVfZXRoX2NvbmYgcnNzX3BtZF9jb25m ID0gewoJLnJ4bW9kZSA9IHsKCQkubXFfbW9kZSA9IEVUSF9NUV9SWF9SU1MsCgkJLnNwbGl0X2hk cl9zaXplID0gMCwKCX0sCgkudHhtb2RlID0gewoJCS5tcV9tb2RlID0gRVRIX01RX1RYX05PTkUs Cgl9LAoJLnJ4X2Fkdl9jb25mID0gewoJCS5yc3NfY29uZiA9IHsKCQkJLnJzc19rZXkgPSBOVUxM LAoJCQkucnNzX2hmID0gRVRIX1JTU19JUFY2LAoJCX0sCgl9LAoJLmxwYmtfbW9kZSA9IDAsCgpl cnJvcjogcGF0Y2ggZmFpbGVkOiBhcHAvdGVzdC90ZXN0X2xpbmtfYm9uZGluZ19yc3Njb25mLmM6 ODAKSHVuayAjNCBzdWNjZWVkZWQgYXQgMjA5IChvZmZzZXQgMiBsaW5lcykuCkh1bmsgIzUgc3Vj Y2VlZGVkIGF0IDIzNCAob2Zmc2V0IDIgbGluZXMpLgpIdW5rICM2IHN1Y2NlZWRlZCBhdCAyNTMg KG9mZnNldCAyIGxpbmVzKS4KSHVuayAjNyBzdWNjZWVkZWQgYXQgMjcwIChvZmZzZXQgMiBsaW5l cykuCkNoZWNraW5nIHBhdGNoIGFwcC90ZXN0L3Rlc3RfcG1kX3BlcmYuYy4uLgplcnJvcjogd2hp bGUgc2VhcmNoaW5nIGZvcjoKCnN0YXRpYyBzdHJ1Y3QgcnRlX2V0aF9jb25mIHBvcnRfY29uZiA9 IHsKCS5yeG1vZGUgPSB7CgkJLm1xX21vZGUgPSBFVEhfTVFfUlhfTk9ORSwKCQkuc3BsaXRfaGRy X3NpemUgPSAwLAoJfSwKCS50eG1vZGUgPSB7CgkJLm1xX21vZGUgPSBFVEhfTVFfVFhfTk9ORSwK CX0sCgkubHBia19tb2RlID0gMSwgIC8qIGVuYWJsZSBsb29wYmFjayAqLwp9OwoKZXJyb3I6IHBh dGNoIGZhaWxlZDogYXBwL3Rlc3QvdGVzdF9wbWRfcGVyZi5jOjYyCkh1bmsgIzIgc3VjY2VlZGVk IGF0IDE1NiAob2Zmc2V0IDEgbGluZSkuCkh1bmsgIzMgc3VjY2VlZGVkIGF0IDgyMyAob2Zmc2V0 IDEgbGluZSkuCkh1bmsgIzQgc3VjY2VlZGVkIGF0IDgzMiAob2Zmc2V0IDEgbGluZSkuCkNoZWNr aW5nIHBhdGNoIGFwcC90ZXN0L3ZpcnR1YWxfcG1kLmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZG9jL2d1 aWRlcy9ldmVudGRldnMvY254ay5yc3QuLi4KQ2hlY2tpbmcgcGF0Y2ggZG9jL2d1aWRlcy9ldmVu dGRldnMvb2N0ZW9udHgyLnJzdC4uLgpDaGVja2luZyBwYXRjaCBkb2MvZ3VpZGVzL25pY3MvYWZf cGFja2V0LnJzdC4uLgpDaGVja2luZyBwYXRjaCBkb2MvZ3VpZGVzL25pY3MvYm54dC5yc3QuLi4K ZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CiAgIMKgKiBUWDogb25seSB0aGUgZm9sbG93aW5n IHJlZHVjZWQgc2V0IG9mIHRyYW5zbWl0IG9mZmxvYWRzIGlzIHN1cHBvcnRlZCBpbgogICAgICB2 ZWN0b3IgbW9kZTo6CgogICDCoCAgIERFVl9UWF9PRkZMT0FEX01CVUZfRkFTVF9GUkVFCgogICDC oCogUlg6IG9ubHkgdGhlIGZvbGxvd2luZyByZWR1Y2VkIHNldCBvZiByZWNlaXZlIG9mZmxvYWRz IGlzIHN1cHBvcnRlZCBpbgogICAgICB2ZWN0b3IgbW9kZSAobm90ZSB0aGF0IGp1bWJvIE1UVSBp cyBhbGxvd2VkIG9ubHkgd2hlbiB0aGUgTVRVIHNldHRpbmcKICAgICAgZG9lcyBub3QgcmVxdWly ZSBgREVWX1JYX09GRkxPQURfU0NBVFRFUmAgdG8gYmUgZW5hYmxlZCk6OgoKICAgwqAgICBERVZf UlhfT0ZGTE9BRF9WTEFOX1NUUklQCiAgIMKgICAgREVWX1JYX09GRkxPQURfS0VFUF9DUkMKICAg wqAgICBERVZfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNCiAgIMKgICAgREVWX1JYX09GRkxPQURfVURQ X0NLU1VNCiAgIMKgICAgREVWX1JYX09GRkxPQURfVENQX0NLU1VNCiAgIMKgICAgREVWX1JYX09G RkxPQURfT1VURVJfSVBWNF9DS1NVTQogICDCoCAgIERFVl9SWF9PRkZMT0FEX09VVEVSX1VEUF9D S1NVTQogICDCoCAgIERFVl9SWF9PRkZMT0FEX1JTU19IQVNICiAgIMKgICAgREVWX1JYX09GRkxP QURfVkxBTl9GSUxURVIKClRoZSBCTlhUIFZlY3RvciBQTUQgaXMgZW5hYmxlZCBpbiBEUERLIGJ1 aWxkcyBieSBkZWZhdWx0LiBUaGUgZGVjaXNpb24gdG8gZW5hYmxlCnZlY3RvciBwcm9jZXNzaW5n IGlzIG1hZGUgYXQgcnVuLXRpbWUgd2hlbiB0aGUgcG9ydCBpcyBzdGFydGVkOyBpZiBubyB0cmFu c21pdAoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZG9jL2d1aWRlcy9uaWNzL2JueHQucnN0Ojg3NwpD aGVja2luZyBwYXRjaCBkb2MvZ3VpZGVzL25pY3MvZW5pYy5yc3QuLi4KQ2hlY2tpbmcgcGF0Y2gg ZG9jL2d1aWRlcy9uaWNzL2ZlYXR1cmVzLnJzdC4uLgpIdW5rICM0IHN1Y2NlZWRlZCBhdCAxNzgg KG9mZnNldCAxIGxpbmUpLgpIdW5rICM1IHN1Y2NlZWRlZCBhdCAyMDYgKG9mZnNldCAxIGxpbmUp LgpIdW5rICM2IHN1Y2NlZWRlZCBhdCAyMjIgKG9mZnNldCAxIGxpbmUpLgpIdW5rICM3IHN1Y2Nl ZWRlZCBhdCAyODggKG9mZnNldCAxIGxpbmUpLgpIdW5rICM4IHN1Y2NlZWRlZCBhdCAzMDMgKG9m ZnNldCAxIGxpbmUpLgpIdW5rICM5IHN1Y2NlZWRlZCBhdCAzNDAgKG9mZnNldCAxIGxpbmUpLgpI dW5rICMxMCBzdWNjZWVkZWQgYXQgMzYzIChvZmZzZXQgMSBsaW5lKS4KSHVuayAjMTEgc3VjY2Vl ZGVkIGF0IDM3OSAob2Zmc2V0IDEgbGluZSkuCkh1bmsgIzEyIHN1Y2NlZWRlZCBhdCA0MTcgKG9m ZnNldCAxIGxpbmUpLgpIdW5rICMxMyBzdWNjZWVkZWQgYXQgNDM5IChvZmZzZXQgMSBsaW5lKS4K SHVuayAjMTQgc3VjY2VlZGVkIGF0IDQ2MCAob2Zmc2V0IDEgbGluZSkuCkh1bmsgIzE1IHN1Y2Nl ZWRlZCBhdCA0NzAgKG9mZnNldCAxIGxpbmUpLgpIdW5rICMxNiBzdWNjZWVkZWQgYXQgNDg4IChv ZmZzZXQgMSBsaW5lKS4KSHVuayAjMTcgc3VjY2VlZGVkIGF0IDUwOSAob2Zmc2V0IDEgbGluZSku Ckh1bmsgIzE4IHN1Y2NlZWRlZCBhdCA1MjAgKG9mZnNldCAxIGxpbmUpLgpIdW5rICMxOSBzdWNj ZWVkZWQgYXQgNTM5IChvZmZzZXQgMSBsaW5lKS4KSHVuayAjMjAgc3VjY2VlZGVkIGF0IDU0OCAo b2Zmc2V0IDEgbGluZSkuCkh1bmsgIzIxIHN1Y2NlZWRlZCBhdCA1NTggKG9mZnNldCAxIGxpbmUp LgpIdW5rICMyMiBzdWNjZWVkZWQgYXQgNTcxIChvZmZzZXQgMSBsaW5lKS4KSHVuayAjMjMgc3Vj Y2VlZGVkIGF0IDU4NSAob2Zmc2V0IDEgbGluZSkuCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9y OgoKU3VwcG9ydHMgaW5uZXIgcGFja2V0IEw0IGNoZWNrc3VtLgoKKiAqKlt1c2VzXSAgICAgcnRl X2V0aF9yeGNvbmYscnRlX2V0aF9yeG1vZGUqKjogYGBvZmZsb2FkczpERVZfUlhfT0ZGTE9BRF9P VVRFUl9VRFBfQ0tTVU1gYC4KKiAqKltwcm92aWRlc10gbWJ1ZioqOiBgYG1idWYub2xfZmxhZ3M6 UEtUX1JYX09VVEVSX0w0X0NLU1VNX1VOS05PV05gYCB8CiAgYGBQS1RfUlhfT1VURVJfTDRfQ0tT VU1fQkFEYGAgfCBgYFBLVF9SWF9PVVRFUl9MNF9DS1NVTV9HT09EYGAgfCBgYFBLVF9SWF9PVVRF Ul9MNF9DS1NVTV9JTlZBTElEYGAuCiogKipbdXNlc10gICAgIHJ0ZV9ldGhfdHhjb25mLHJ0ZV9l dGhfdHhtb2RlKio6IGBgb2ZmbG9hZHM6REVWX1RYX09GRkxPQURfT1VURVJfVURQX0NLU1VNYGAu CiogKipbdXNlc10gICAgIG1idWYqKjogYGBtYnVmLm9sX2ZsYWdzOlBLVF9UWF9PVVRFUl9JUFY0 YGAgfCBgYFBLVF9UWF9PVVRFUl9JUFY2YGAuCiAgYGBtYnVmLm9sX2ZsYWdzOlBLVF9UWF9PVVRF Ul9VRFBfQ0tTVU1gYC4KKiAqKlt1c2VzXSAgICAgbWJ1ZioqOiBgYG1idWYub3V0ZXJfbDJfbGVu YGAsIGBgbWJ1Zi5vdXRlcl9sM19sZW5gYC4KKiAqKltwcm92aWRlc10gcnRlX2V0aF9kZXZfaW5m byoqOiBgYHJ4X29mZmxvYWRfY2FwYSxyeF9xdWV1ZV9vZmZsb2FkX2NhcGE6REVWX1JYX09GRkxP QURfT1VURVJfVURQX0NLU1VNYGAsCiAgYGB0eF9vZmZsb2FkX2NhcGEsdHhfcXVldWVfb2ZmbG9h ZF9jYXBhOkRFVl9UWF9PRkZMT0FEX09VVEVSX1VEUF9DS1NVTWBgLgoKCi4uIF9uaWNfZmVhdHVy ZXNfc2hhcmVkX3J4X3F1ZXVlOgoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZG9jL2d1aWRlcy9uaWNz L2ZlYXR1cmVzLnJzdDo2MDMKQ2hlY2tpbmcgcGF0Y2ggZG9jL2d1aWRlcy9uaWNzL2ZtMTBrLnJz dC4uLgpDaGVja2luZyBwYXRjaCBkb2MvZ3VpZGVzL25pY3MvaW50ZWxfdmYucnN0Li4uCkNoZWNr aW5nIHBhdGNoIGRvYy9ndWlkZXMvbmljcy9peGdiZS5yc3QuLi4KQ2hlY2tpbmcgcGF0Y2ggZG9j L2d1aWRlcy9uaWNzL21seDUucnN0Li4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgogIHNt YWxsLXBhY2tldCB0cmFmZmljLgoKICBXaGVuIE1QUlEgaXMgZW5hYmxlZCwgTVRVIGNhbiBiZSBs YXJnZXIgdGhhbiB0aGUgc2l6ZSBvZgogIHVzZXItcHJvdmlkZWQgbWJ1ZiBldmVuIGlmIERFVl9S WF9PRkZMT0FEX1NDQVRURVIgaXNuJ3QgZW5hYmxlZC4gUE1EIHdpbGwKICBjb25maWd1cmUgbGFy Z2Ugc3RyaWRlIHNpemUgZW5vdWdoIHRvIGFjY29tbW9kYXRlIE1UVSBhcyBsb25nIGFzCiAgZGV2 aWNlIGFsbG93cy4gTm90ZSB0aGF0IHRoaXMgY2FuIHdhc3RlIHN5c3RlbSBtZW1vcnkgY29tcGFy ZWQgdG8gZW5hYmxpbmcgUngKICBzY2F0dGVyIGFuZCBtdWx0aS1zZWdtZW50IHBhY2tldC4KCmVy cm9yOiBwYXRjaCBmYWlsZWQ6IGRvYy9ndWlkZXMvbmljcy9tbHg1LnJzdDo2MTEKQ2hlY2tpbmcg cGF0Y2ggZG9jL2d1aWRlcy9uaWNzL3RhcC5yc3QuLi4KQ2hlY2tpbmcgcGF0Y2ggZG9jL2d1aWRl cy9wcm9nX2d1aWRlL2dlbmVyaWNfc2VnbWVudGF0aW9uX29mZmxvYWRfbGliLnJzdC4uLgpDaGVj a2luZyBwYXRjaCBkb2MvZ3VpZGVzL3Byb2dfZ3VpZGUvbWJ1Zl9saWIucnN0Li4uCkNoZWNraW5n IHBhdGNoIGRvYy9ndWlkZXMvcHJvZ19ndWlkZS9wb2xsX21vZGVfZHJ2LnJzdC4uLgpDaGVja2lu ZyBwYXRjaCBkb2MvZ3VpZGVzL3Byb2dfZ3VpZGUvcnRlX2Zsb3cucnN0Li4uCkh1bmsgIzEgc3Vj Y2VlZGVkIGF0IDE4MzUgKG9mZnNldCAtMTU4IGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2ggZG9jL2d1 aWRlcy9wcm9nX2d1aWRlL3J0ZV9zZWN1cml0eS5yc3QuLi4KQ2hlY2tpbmcgcGF0Y2ggZG9jL2d1 aWRlcy9yZWxfbm90ZXMvZGVwcmVjYXRpb24ucnN0Li4uCkNoZWNraW5nIHBhdGNoIGRvYy9ndWlk ZXMvcmVsX25vdGVzL3JlbGVhc2VfMjFfMTEucnN0Li4uCkh1bmsgIzEgc3VjY2VlZGVkIGF0IDM0 MSAob2Zmc2V0IC0xMDUgbGluZXMpLgpDaGVja2luZyBwYXRjaCBkb2MvZ3VpZGVzL3NhbXBsZV9h cHBfdWcvaXBzZWNfc2VjZ3cucnN0Li4uCkNoZWNraW5nIHBhdGNoIGRvYy9ndWlkZXMvdGVzdHBt ZF9hcHBfdWcvcnVuX2FwcC5yc3QuLi4KSHVuayAjMSBzdWNjZWVkZWQgYXQgNTMxIChvZmZzZXQg LTE1IGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9idXMvZHBhYS9pbmNsdWRlL3Byb2Nl c3MuaC4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL2NvbW1vbi9jbnhrL3JvY19ucGMuaC4uLgpI dW5rICMxIHN1Y2NlZWRlZCBhdCAxNTQgKG9mZnNldCAtMTMgbGluZXMpLgpDaGVja2luZyBwYXRj aCBkcml2ZXJzL25ldC9hZl9wYWNrZXQvcnRlX2V0aF9hZl9wYWNrZXQuYy4uLgpDaGVja2luZyBw YXRjaCBkcml2ZXJzL25ldC9hZl94ZHAvcnRlX2V0aF9hZl94ZHAuYy4uLgpDaGVja2luZyBwYXRj aCBkcml2ZXJzL25ldC9hcmsvYXJrX2V0aGRldi5jLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMv bmV0L2F0bGFudGljL2F0bF9ldGhkZXYuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoK CS5yZW1vdmUgPSBldGhfYXRsX3BjaV9yZW1vdmUsCn07CgojZGVmaW5lIEFUTF9SWF9PRkZMT0FE UyAoREVWX1JYX09GRkxPQURfVkxBTl9TVFJJUCBcCgkJCXwgREVWX1JYX09GRkxPQURfSVBWNF9D S1NVTSBcCgkJCXwgREVWX1JYX09GRkxPQURfVURQX0NLU1VNIFwKCQkJfCBERVZfUlhfT0ZGTE9B RF9UQ1BfQ0tTVU0gXAoJCQl8IERFVl9SWF9PRkZMT0FEX01BQ1NFQ19TVFJJUCBcCgkJCXwgREVW X1JYX09GRkxPQURfVkxBTl9GSUxURVIpCgojZGVmaW5lIEFUTF9UWF9PRkZMT0FEUyAoREVWX1RY X09GRkxPQURfVkxBTl9JTlNFUlQgXAoJCQl8IERFVl9UWF9PRkZMT0FEX0lQVjRfQ0tTVU0gXAoJ CQl8IERFVl9UWF9PRkZMT0FEX1VEUF9DS1NVTSBcCgkJCXwgREVWX1RYX09GRkxPQURfVENQX0NL U1VNIFwKCQkJfCBERVZfVFhfT0ZGTE9BRF9UQ1BfVFNPIFwKCQkJfCBERVZfVFhfT0ZGTE9BRF9N QUNTRUNfSU5TRVJUIFwKCQkJfCBERVZfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTKQoKI2RlZmluZSBT RlBfRUVQUk9NX1NJWkUgMHgxMDAKCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9h dGxhbnRpYy9hdGxfZXRoZGV2LmM6MTU0Ckh1bmsgIzIgc3VjY2VlZGVkIGF0IDQ4OSAob2Zmc2V0 IDEgbGluZSkuCkh1bmsgIzMgc3VjY2VlZGVkIGF0IDY1NiAob2Zmc2V0IDEgbGluZSkuCkh1bmsg IzQgc3VjY2VlZGVkIGF0IDExMjggKG9mZnNldCAxIGxpbmUpLgpIdW5rICM1IHN1Y2NlZWRlZCBh dCAxMTc2IChvZmZzZXQgMSBsaW5lKS4KSHVuayAjNiBzdWNjZWVkZWQgYXQgMTE5OSAob2Zmc2V0 IDEgbGluZSkuCkh1bmsgIzcgc3VjY2VlZGVkIGF0IDEzMzQgKG9mZnNldCAxIGxpbmUpLgpIdW5r ICM4IHN1Y2NlZWRlZCBhdCAxNTMzIChvZmZzZXQgMSBsaW5lKS4KSHVuayAjOSBzdWNjZWVkZWQg YXQgMTU1NCAob2Zmc2V0IDEgbGluZSkuCkh1bmsgIzEwIHN1Y2NlZWRlZCBhdCAxNzMxIChvZmZz ZXQgNCBsaW5lcykuCkh1bmsgIzExIHN1Y2NlZWRlZCBhdCAxNzU0IChvZmZzZXQgNCBsaW5lcyku CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2F0bGFudGljL2F0bF9ldGhkZXYuaC4uLgpDaGVj a2luZyBwYXRjaCBkcml2ZXJzL25ldC9hdGxhbnRpYy9hdGxfcnh0eC5jLi4uCkNoZWNraW5nIHBh dGNoIGRyaXZlcnMvbmV0L2F2cC9hdnBfZXRoZGV2LmMuLi4KSHVuayAjMSBzdWNjZWVkZWQgYXQg MTk5NyAob2Zmc2V0IC0xIGxpbmVzKS4KSHVuayAjMiBzdWNjZWVkZWQgYXQgMjEzOSAob2Zmc2V0 IC0xIGxpbmVzKS4KSHVuayAjMyBzdWNjZWVkZWQgYXQgMjE5MCAob2Zmc2V0IC0xIGxpbmVzKS4K SHVuayAjNCBzdWNjZWVkZWQgYXQgMjIwNCAob2Zmc2V0IC0xIGxpbmVzKS4KSHVuayAjNSBzdWNj ZWVkZWQgYXQgMjIxNSAob2Zmc2V0IC0xIGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9u ZXQvYXhnYmUvYXhnYmVfZGV2LmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvYXhnYmUv YXhnYmVfZXRoZGV2LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CglydGVfYml0X3Jl bGF4ZWRfY2xlYXIzMihBWEdCRV9ET1dOLCAmcGRhdGEtPmRldl9zdGF0ZSk7CgoJbWF4X3BrdF9s ZW4gPSBkZXZfZGF0YS0+bXR1ICsgUlRFX0VUSEVSX0hEUl9MRU4gKyBSVEVfRVRIRVJfQ1JDX0xF TjsKCWlmICgoZGV2X2RhdGEtPmRldl9jb25mLnJ4bW9kZS5vZmZsb2FkcyAmIERFVl9SWF9PRkZM T0FEX1NDQVRURVIpIHx8CgkJCQltYXhfcGt0X2xlbiA+IHBkYXRhLT5yeF9idWZfc2l6ZSkKCQlk ZXZfZGF0YS0+c2NhdHRlcmVkX3J4ID0gMTsKCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJz L25ldC9heGdiZS9heGdiZV9ldGhkZXYuYzozODUKSHVuayAjNCBzdWNjZWVkZWQgYXQgNTE5IChv ZmZzZXQgLTIgbGluZXMpLgpIdW5rICM1IHN1Y2NlZWRlZCBhdCA1NTAgKG9mZnNldCAtMiBsaW5l cykuCkh1bmsgIzYgc3VjY2VlZGVkIGF0IDU4OCAob2Zmc2V0IC0yIGxpbmVzKS4KSHVuayAjNyBz dWNjZWVkZWQgYXQgNzYzIChvZmZzZXQgLTIgbGluZXMpLgplcnJvcjogd2hpbGUgc2VhcmNoaW5n IGZvcjoKCWRldl9pbmZvLT5tYXhfcnhfcGt0bGVuID0gQVhHQkVfUlhfTUFYX0JVRl9TSVpFOwoJ ZGV2X2luZm8tPm1heF9tYWNfYWRkcnMgPSBwZGF0YS0+aHdfZmVhdC5hZGRuX21hYyArIDE7Cglk ZXZfaW5mby0+bWF4X2hhc2hfbWFjX2FkZHJzID0gcGRhdGEtPmh3X2ZlYXQuaGFzaF90YWJsZV9z aXplOwoJZGV2X2luZm8tPnNwZWVkX2NhcGEgPSAgRVRIX0xJTktfU1BFRURfMTBHOwoKCWRldl9p bmZvLT5yeF9vZmZsb2FkX2NhcGEgPQoJCURFVl9SWF9PRkZMT0FEX1ZMQU5fU1RSSVAgfAoJCURF Vl9SWF9PRkZMT0FEX1ZMQU5fRklMVEVSIHwKCQlERVZfUlhfT0ZGTE9BRF9WTEFOX0VYVEVORCB8 CgkJREVWX1JYX09GRkxPQURfSVBWNF9DS1NVTSB8CgkJREVWX1JYX09GRkxPQURfVURQX0NLU1VN ICB8CgkJREVWX1JYX09GRkxPQURfVENQX0NLU1VNICB8CgkJREVWX1JYX09GRkxPQURfU0NBVFRF UgkgIHwKCQlERVZfUlhfT0ZGTE9BRF9LRUVQX0NSQzsKCglkZXZfaW5mby0+dHhfb2ZmbG9hZF9j YXBhID0KCQlERVZfVFhfT0ZGTE9BRF9WTEFOX0lOU0VSVCB8CgkJREVWX1RYX09GRkxPQURfUUlO UV9JTlNFUlQgfAoJCURFVl9UWF9PRkZMT0FEX0lQVjRfQ0tTVU0gIHwKCQlERVZfVFhfT0ZGTE9B RF9VRFBfQ0tTVU0gICB8CgkJREVWX1RYX09GRkxPQURfVENQX0NLU1VNOwoKCWlmIChwZGF0YS0+ aHdfZmVhdC5yc3MpIHsKCQlkZXZfaW5mby0+Zmxvd190eXBlX3Jzc19vZmZsb2FkcyA9IEFYR0JF X1JTU19PRkZMT0FEOwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvYXhnYmUvYXhn YmVfZXRoZGV2LmM6MTIwOApIdW5rICM5IHN1Y2NlZWRlZCBhdCAxMjYxIChvZmZzZXQgLTEgbGlu ZXMpLgpIdW5rICMxMCBzdWNjZWVkZWQgYXQgMTI5NyAob2Zmc2V0IC0xIGxpbmVzKS4KSHVuayAj MTEgc3VjY2VlZGVkIGF0IDEzODUgKG9mZnNldCAtMSBsaW5lcykuCkh1bmsgIzEyIHN1Y2NlZWRl ZCBhdCAxODQyIChvZmZzZXQgMTIgbGluZXMpLgpIdW5rICMxMyBzdWNjZWVkZWQgYXQgMTg2MCAo b2Zmc2V0IDEyIGxpbmVzKS4KSHVuayAjMTQgc3VjY2VlZGVkIGF0IDE4NzggKG9mZnNldCAxMiBs aW5lcykuCkh1bmsgIzE1IHN1Y2NlZWRlZCBhdCAxOTE2IChvZmZzZXQgMTIgbGluZXMpLgpIdW5r ICMxNiBzdWNjZWVkZWQgYXQgMTkyNyAob2Zmc2V0IDEyIGxpbmVzKS4KSHVuayAjMTcgc3VjY2Vl ZGVkIGF0IDE5MzggKG9mZnNldCAxMiBsaW5lcykuCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0 L2F4Z2JlL2F4Z2JlX2V0aGRldi5oLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2F4Z2Jl L2F4Z2JlX21kaW8uYy4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9heGdiZS9heGdiZV9y eHR4LmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvYm54MngvYm54MnhfZXRoZGV2LmMu Li4KSHVuayAjMiBzdWNjZWVkZWQgYXQgNDEyIChvZmZzZXQgNCBsaW5lcykuCmVycm9yOiB3aGls ZSBzZWFyY2hpbmcgZm9yOgoJZGV2X2luZm8tPm1pbl9yeF9idWZzaXplID0gQk5YMlhfTUlOX1JY X0JVRl9TSVpFOwoJZGV2X2luZm8tPm1heF9yeF9wa3RsZW4gID0gQk5YMlhfTUFYX1JYX1BLVF9M RU47CglkZXZfaW5mby0+bWF4X21hY19hZGRycyAgPSBCTlgyWF9NQVhfTUFDX0FERFJTOwoJZGV2 X2luZm8tPnNwZWVkX2NhcGEgPSBFVEhfTElOS19TUEVFRF8xMEcgfCBFVEhfTElOS19TUEVFRF8y MEc7CgoJZGV2X2luZm8tPnJ4X2Rlc2NfbGltLm5iX21heCA9IE1BWF9SWF9BVkFJTDsKCWRldl9p bmZvLT5yeF9kZXNjX2xpbS5uYl9taW4gPSBNSU5fUlhfU0laRV9OT05UUEE7CgplcnJvcjogcGF0 Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9ibngyeC9ibngyeF9ldGhkZXYuYzo1MzQKSHVuayAjNCBz dWNjZWVkZWQgYXQgNjc1IChvZmZzZXQgNiBsaW5lcykuCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMv bmV0L2JueHQvYm54dC5oLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgojZGVmaW5lIEJO WFRfRldfU1RBVFVTX1NIVVRET1dOCQkweDEwMDAwMAoKI2RlZmluZSBCTlhUX0VUSF9SU1NfU1VQ UE9SVCAoCVwKCUVUSF9SU1NfSVBWNCB8CQlcCglFVEhfUlNTX05PTkZSQUdfSVBWNF9UQ1AgfAlc CglFVEhfUlNTX05PTkZSQUdfSVBWNF9VRFAgfAlcCglFVEhfUlNTX0lQVjYgfAkJXAoJRVRIX1JT U19OT05GUkFHX0lQVjZfVENQIHwJXAoJRVRIX1JTU19OT05GUkFHX0lQVjZfVURQIHwJXAoJRVRI X1JTU19MRVZFTF9NQVNLKQoKI2RlZmluZSBCTlhUX0RFVl9UWF9PRkZMT0FEX1NVUFBPUlQgKERF Vl9UWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfCBcCgkJCQkgICAgIERFVl9UWF9PRkZMT0FEX1RDUF9D S1NVTSB8IFwKCQkJCSAgICAgREVWX1RYX09GRkxPQURfVURQX0NLU1VNIHwgXAoJCQkJICAgICBE RVZfVFhfT0ZGTE9BRF9UQ1BfVFNPIHwgXAoJCQkJICAgICBERVZfVFhfT0ZGTE9BRF9PVVRFUl9J UFY0X0NLU1VNIHwgXAoJCQkJICAgICBERVZfVFhfT0ZGTE9BRF9WWExBTl9UTkxfVFNPIHwgXAoJ CQkJICAgICBERVZfVFhfT0ZGTE9BRF9HUkVfVE5MX1RTTyB8IFwKCQkJCSAgICAgREVWX1RYX09G RkxPQURfSVBJUF9UTkxfVFNPIHwgXAoJCQkJICAgICBERVZfVFhfT0ZGTE9BRF9HRU5FVkVfVE5M X1RTTyB8IFwKCQkJCSAgICAgREVWX1RYX09GRkxPQURfUUlOUV9JTlNFUlQgfCBcCgkJCQkgICAg IERFVl9UWF9PRkZMT0FEX01VTFRJX1NFR1MpCgojZGVmaW5lIEJOWFRfREVWX1JYX09GRkxPQURf U1VQUE9SVCAoREVWX1JYX09GRkxPQURfVkxBTl9GSUxURVIgfCBcCgkJCQkgICAgIERFVl9SWF9P RkZMT0FEX0lQVjRfQ0tTVU0gfCBcCgkJCQkgICAgIERFVl9SWF9PRkZMT0FEX1VEUF9DS1NVTSB8 IFwKCQkJCSAgICAgREVWX1JYX09GRkxPQURfVENQX0NLU1VNIHwgXAoJCQkJICAgICBERVZfUlhf T0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNIHwgXAoJCQkJICAgICBERVZfUlhfT0ZGTE9BRF9PVVRF Ul9VRFBfQ0tTVU0gfCBcCgkJCQkgICAgIERFVl9SWF9PRkZMT0FEX0tFRVBfQ1JDIHwgXAoJCQkJ ICAgICBERVZfUlhfT0ZGTE9BRF9WTEFOX0VYVEVORCB8IFwKCQkJCSAgICAgREVWX1JYX09GRkxP QURfVENQX0xSTyB8IFwKCQkJCSAgICAgREVWX1JYX09GRkxPQURfU0NBVFRFUiB8IFwKCQkJCSAg ICAgREVWX1JYX09GRkxPQURfUlNTX0hBU0gpCgojZGVmaW5lIEJOWFRfSFdSTV9TSE9SVF9SRVFf TEVOCQlzaXplb2Yoc3RydWN0IGh3cm1fc2hvcnRfaW5wdXQpCgoKZXJyb3I6IHBhdGNoIGZhaWxl ZDogZHJpdmVycy9uZXQvYm54dC9ibnh0Lmg6NTY5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0 L2JueHQvYm54dF9ldGhkZXYuYy4uLgpIdW5rICMzIHN1Y2NlZWRlZCBhdCA0OTkgKG9mZnNldCA2 IGxpbmVzKS4KSHVuayAjNCBzdWNjZWVkZWQgYXQgOTI0IChvZmZzZXQgMSBsaW5lKS4KSHVuayAj NSBzdWNjZWVkZWQgYXQgOTk2IChvZmZzZXQgMSBsaW5lKS4KSHVuayAjNiBzdWNjZWVkZWQgYXQg MTA1MCAob2Zmc2V0IDEgbGluZSkuCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJICAgICh1 aW50MzJfdCkoZXRoX2Rldi0+ZGF0YS0+bmJfcnhfcXVldWVzKSA+IGJwLT5tYXhfcmluZ19ncnBz KQoJCWdvdG8gcmVzb3VyY2VfZXJyb3I7CgoJaWYgKCEoZXRoX2Rldi0+ZGF0YS0+ZGV2X2NvbmYu cnhtb2RlLm1xX21vZGUgJiBFVEhfTVFfUlhfUlNTKSAmJgoJICAgIGJwLT5tYXhfdm5pY3MgPCBl dGhfZGV2LT5kYXRhLT5uYl9yeF9xdWV1ZXMpCgkJZ290byByZXNvdXJjZV9lcnJvcjsKCglicC0+ cnhfY3BfbnJfcmluZ3MgPSBicC0+cnhfbnJfcmluZ3M7CglicC0+dHhfY3BfbnJfcmluZ3MgPSBi cC0+dHhfbnJfcmluZ3M7CgoJaWYgKGV0aF9kZXYtPmRhdGEtPmRldl9jb25mLnJ4bW9kZS5tcV9t b2RlICYgRVRIX01RX1JYX1JTU19GTEFHKQoJCXJ4X29mZmxvYWRzIHw9IERFVl9SWF9PRkZMT0FE X1JTU19IQVNIOwoJZXRoX2Rldi0+ZGF0YS0+ZGV2X2NvbmYucnhtb2RlLm9mZmxvYWRzID0gcnhf b2ZmbG9hZHM7CgoJYm54dF9tdHVfc2V0X29wKGV0aF9kZXYsIGV0aF9kZXYtPmRhdGEtPm10dSk7 CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9ibnh0L2JueHRfZXRoZGV2LmM6MTE0 NQpIdW5rICM4IHN1Y2NlZWRlZCBhdCAxMTg4IChvZmZzZXQgNiBsaW5lcykuCkh1bmsgIzkgc3Vj Y2VlZGVkIGF0IDEyMDQgKG9mZnNldCA1IGxpbmVzKS4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBm b3I6CgkgKiBhIGxpbWl0ZWQgc3Vic2V0IGhhdmUgYmVlbiBlbmFibGVkLgoJICovCglpZiAoZXRo X2Rldi0+ZGF0YS0+ZGV2X2NvbmYucnhtb2RlLm9mZmxvYWRzICYKCQl+KERFVl9SWF9PRkZMT0FE X1ZMQU5fU1RSSVAgfAoJCSAgREVWX1JYX09GRkxPQURfS0VFUF9DUkMgfAoJCSAgREVWX1JYX09G RkxPQURfSVBWNF9DS1NVTSB8CgkJICBERVZfUlhfT0ZGTE9BRF9VRFBfQ0tTVU0gfAoJCSAgREVW X1JYX09GRkxPQURfVENQX0NLU1VNIHwKCQkgIERFVl9SWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tT VU0gfAoJCSAgREVWX1JYX09GRkxPQURfT1VURVJfVURQX0NLU1VNIHwKCQkgIERFVl9SWF9PRkZM T0FEX1JTU19IQVNIIHwKCQkgIERFVl9SWF9PRkZMT0FEX1ZMQU5fRklMVEVSKSkKCQlnb3RvIHVz ZV9zY2FsYXJfcng7CgojaWYgZGVmaW5lZChSVEVfQVJDSF9YODYpICYmIGRlZmluZWQoQ0NfQVZY Ml9TVVBQT1JUKQoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvYm54dC9ibnh0X2V0 aGRldi5jOjEyNDcKSHVuayAjMTEgc3VjY2VlZGVkIGF0IDEzMTMgKG9mZnNldCA2IGxpbmVzKS4K SHVuayAjMTIgc3VjY2VlZGVkIGF0IDE2MTQgKG9mZnNldCA2IGxpbmVzKS4KSHVuayAjMTMgc3Vj Y2VlZGVkIGF0IDE4MzkgKG9mZnNldCA2IGxpbmVzKS4KSHVuayAjMTQgc3VjY2VlZGVkIGF0IDIw MzQgKG9mZnNldCA2IGxpbmVzKS4KSHVuayAjMTUgc3VjY2VlZGVkIGF0IDIwNDcgKG9mZnNldCA2 IGxpbmVzKS4KSHVuayAjMTYgc3VjY2VlZGVkIGF0IDIxMDEgKG9mZnNldCA2IGxpbmVzKS4KSHVu ayAjMTcgc3VjY2VlZGVkIGF0IDIxNDAgKG9mZnNldCA2IGxpbmVzKS4KSHVuayAjMTggc3VjY2Vl ZGVkIGF0IDIxNTggKG9mZnNldCA2IGxpbmVzKS4KSHVuayAjMTkgc3VjY2VlZGVkIGF0IDIyMDMg KG9mZnNldCA2IGxpbmVzKS4KSHVuayAjMjAgc3VjY2VlZGVkIGF0IDIyNjYgKG9mZnNldCA2IGxp bmVzKS4KSHVuayAjMjEgc3VjY2VlZGVkIGF0IDIyOTkgKG9mZnNldCA2IGxpbmVzKS4KSHVuayAj MjIgc3VjY2VlZGVkIGF0IDIzMTQgKG9mZnNldCA2IGxpbmVzKS4KSHVuayAjMjMgc3VjY2VlZGVk IGF0IDIzMjUgKG9mZnNldCA2IGxpbmVzKS4KSHVuayAjMjQgc3VjY2VlZGVkIGF0IDIzNTYgKG9m ZnNldCA2IGxpbmVzKS4KSHVuayAjMjUgc3VjY2VlZGVkIGF0IDIzNzAgKG9mZnNldCA2IGxpbmVz KS4KSHVuayAjMjYgc3VjY2VlZGVkIGF0IDI0MTkgKG9mZnNldCA2IGxpbmVzKS4KSHVuayAjMjcg c3VjY2VlZGVkIGF0IDI0MzYgKG9mZnNldCA2IGxpbmVzKS4KSHVuayAjMjggc3VjY2VlZGVkIGF0 IDI2MTQgKG9mZnNldCA2IGxpbmVzKS4KSHVuayAjMjkgc3VjY2VlZGVkIGF0IDI2MzQgKG9mZnNl dCA2IGxpbmVzKS4KSHVuayAjMzAgc3VjY2VlZGVkIGF0IDI2NDcgKG9mZnNldCA2IGxpbmVzKS4K SHVuayAjMzEgc3VjY2VlZGVkIGF0IDI2ODYgKG9mZnNldCA2IGxpbmVzKS4KSHVuayAjMzIgc3Vj Y2VlZGVkIGF0IDI3MDQgKG9mZnNldCA2IGxpbmVzKS4KSHVuayAjMzMgc3VjY2VlZGVkIGF0IDI3 MjQgKG9mZnNldCA2IGxpbmVzKS4KSHVuayAjMzQgc3VjY2VlZGVkIGF0IDI3NTQgKG9mZnNldCA2 IGxpbmVzKS4KSHVuayAjMzUgc3VjY2VlZGVkIGF0IDI3NjkgKG9mZnNldCA2IGxpbmVzKS4KSHVu ayAjMzYgc3VjY2VlZGVkIGF0IDI3OTcgKG9mZnNldCA2IGxpbmVzKS4KSHVuayAjMzcgc3VjY2Vl ZGVkIGF0IDI4MzcgKG9mZnNldCA2IGxpbmVzKS4KLmdpdC9yZWJhc2UtYXBwbHkvcGF0Y2g6NDY0 NDogbmV3IGJsYW5rIGxpbmUgYXQgRU9GLgorCkh1bmsgIzM4IHN1Y2NlZWRlZCBhdCA2NTY4IChv ZmZzZXQgMTIgbGluZXMpLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9ibnh0L2JueHRfZmxv dy5jLi4uCkh1bmsgIzEgc3VjY2VlZGVkIGF0IDk3NCAob2Zmc2V0IC00IGxpbmVzKS4KZXJyb3I6 IHdoaWxlIHNlYXJjaGluZyBmb3I6Cgl9CgoJLyogSWYgUlNTIHR5cGVzIGlzIDAsIHVzZSBhIGJl c3QgZWZmb3J0IGNvbmZpZ3VyYXRpb24gKi8KCXR5cGVzID0gcnNzLT50eXBlcyA/IHJzcy0+dHlw ZXMgOiBFVEhfUlNTX0lQVjQ7CgoJaGFzaF90eXBlID0gYm54dF9ydGVfdG9faHdybV9oYXNoX3R5 cGVzKHR5cGVzKTsKCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9ibnh0L2JueHRf Zmxvdy5jOjExNzcKSHVuayAjMyBzdWNjZWVkZWQgYXQgMTE1NyAob2Zmc2V0IC0xNjUgbGluZXMp LgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9ibnh0L2JueHRfaHdybS5jLi4uCkh1bmsgIzIg c3VjY2VlZGVkIGF0IDI5NzAgKG9mZnNldCAtOSBsaW5lcykuCkh1bmsgIzMgc3VjY2VlZGVkIGF0 IDI5OTIgKG9mZnNldCAtOSBsaW5lcykuCkh1bmsgIzQgc3VjY2VlZGVkIGF0IDMwNDkgKG9mZnNl dCAtOSBsaW5lcykuCkh1bmsgIzUgc3VjY2VlZGVkIGF0IDMwNjIgKG9mZnNldCAtOSBsaW5lcyku Ckh1bmsgIzYgc3VjY2VlZGVkIGF0IDMwOTggKG9mZnNldCAtOSBsaW5lcykuCkh1bmsgIzcgc3Vj Y2VlZGVkIGF0IDMxNzUgKG9mZnNldCAtOSBsaW5lcykuCkh1bmsgIzggc3VjY2VlZGVkIGF0IDMy MTMgKG9mZnNldCAtOSBsaW5lcykuCkh1bmsgIzkgc3VjY2VlZGVkIGF0IDMyNDQgKG9mZnNldCAt OSBsaW5lcykuCkh1bmsgIzEwIHN1Y2NlZWRlZCBhdCAzMzM1IChvZmZzZXQgLTkgbGluZXMpLgpD aGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9ibnh0L2JueHRfcmVwcy5jLi4uCkh1bmsgIzEgc3Vj Y2VlZGVkIGF0IDUzNiAob2Zmc2V0IC0xIGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9u ZXQvYm54dC9ibnh0X3JpbmcuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCQkJcnhf cmluZ19pbmZvLT5yeF9yaW5nX3N0cnVjdC0+cmluZ19zaXplICoKCQkJQUdHX1JJTkdfU0laRV9G QUNUT1IpKSA6IDA7CgoJCWlmIChyeF9yaW5nX2luZm8gJiYgKHJ4X29mZmxvYWRzICYgREVWX1JY X09GRkxPQURfVENQX0xSTykpIHsKCQkJaW50IHRwYV9tYXggPSBCTlhUX1RQQV9NQVhfQUdHUyhi cCk7CgoJCQl0cGFfaW5mb19sZW4gPSB0cGFfbWF4ICogc2l6ZW9mKHN0cnVjdCBibnh0X3RwYV9p bmZvKTsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2JueHQvYm54dF9yaW5nLmM6 MTg3CmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJCQkJCSAgICBhZ19iaXRtYXBfc3RhcnQs IGFnX2JpdG1hcF9sZW4pOwoKCQkJLyogVFBBIGluZm8gKi8KCQkJaWYgKHJ4X29mZmxvYWRzICYg REVWX1JYX09GRkxPQURfVENQX0xSTykKCQkJCXJ4X3JpbmdfaW5mby0+dHBhX2luZm8gPQoJCQkJ CSgoc3RydWN0IGJueHRfdHBhX2luZm8gKikKCQkJCQkgKChjaGFyICopbXotPmFkZHIgKyB0cGFf aW5mb19zdGFydCkpOwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvYm54dC9ibnh0 X3JpbmcuYzoyODMKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvYm54dC9ibnh0X3J4cS5jLi4u Ckh1bmsgIzEgc3VjY2VlZGVkIGF0IDQxIChvZmZzZXQgLTExIGxpbmVzKS4KSHVuayAjMiBzdWNj ZWVkZWQgYXQgNTUgKG9mZnNldCAtMTEgbGluZXMpLgpIdW5rICMzIHN1Y2NlZWRlZCBhdCAxMDAg KG9mZnNldCAtMTEgbGluZXMpLgpIdW5rICM0IHN1Y2NlZWRlZCBhdCAxMTAgKG9mZnNldCAtMTEg bGluZXMpLgpIdW5rICM1IHN1Y2NlZWRlZCBhdCAxMzYgKG9mZnNldCAtMTEgbGluZXMpLgpIdW5r ICM2IHN1Y2NlZWRlZCBhdCAzNDEgKG9mZnNldCAtMjIgbGluZXMpLgpIdW5rICM3IHN1Y2NlZWRl ZCBhdCA0NTYgKG9mZnNldCAtMjIgbGluZXMpLgpIdW5rICM4IHN1Y2NlZWRlZCBhdCA1MjcgKG9m ZnNldCAtMjIgbGluZXMpLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9ibnh0L2JueHRfcnhy LmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvYm54dC9ibnh0X3J4dHhfdmVjX2F2eDIu Yy4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9ibnh0L2JueHRfcnh0eF92ZWNfY29tbW9u LmguLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvYm54dC9ibnh0X3J4dHhfdmVjX25lb24u Yy4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9ibnh0L2JueHRfcnh0eF92ZWNfc3NlLmMu Li4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvYm54dC9ibnh0X3R4ci5jLi4uCkNoZWNraW5n IHBhdGNoIGRyaXZlcnMvbmV0L2JueHQvYm54dF92bmljLmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJp dmVycy9uZXQvYm54dC9ydGVfcG1kX2JueHQuYy4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25l dC9ib25kaW5nL2V0aF9ib25kX3ByaXZhdGUuaC4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25l dC9ib25kaW5nL3J0ZV9ldGhfYm9uZF84MDIzYWQuYy4uLgpIdW5rICMyIHN1Y2NlZWRlZCBhdCA4 NjYgKG9mZnNldCAtMjEgbGluZXMpLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9ib25kaW5n L3J0ZV9ldGhfYm9uZF9hcGkuYy4uLgpIdW5rICMyIHN1Y2NlZWRlZCBhdCA1ODYgKG9mZnNldCAt NiBsaW5lcykuCkh1bmsgIzMgc3VjY2VlZGVkIGF0IDcyMSAob2Zmc2V0IC02IGxpbmVzKS4KQ2hl Y2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvYm9uZGluZy9ydGVfZXRoX2JvbmRfcG1kLmMuLi4KZXJy b3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJc2xhdmVfZXRoX2Rldi0+ZGF0YS0+ZGV2X2NvbmYu aW50cl9jb25mLmxzYyA9IDE7CgoJLyogSWYgUlNTIGlzIGVuYWJsZWQgZm9yIGJvbmRpbmcsIHRy eSB0byBlbmFibGUgaXQgZm9yIHNsYXZlcyAgKi8KCWlmIChib25kZWRfZXRoX2Rldi0+ZGF0YS0+ ZGV2X2NvbmYucnhtb2RlLm1xX21vZGUgJiBFVEhfTVFfUlhfUlNTX0ZMQUcpIHsKCQkvKiByc3Nf a2V5IHdvbid0IGJlIGVtcHR5IGlmIFJTUyBpcyBjb25maWd1cmVkIGluIGJvbmRlZCBkZXYgKi8K CQlzbGF2ZV9ldGhfZGV2LT5kYXRhLT5kZXZfY29uZi5yeF9hZHZfY29uZi5yc3NfY29uZi5yc3Nf a2V5X2xlbiA9CgkJCQkJaW50ZXJuYWxzLT5yc3Nfa2V5X2xlbjsKCmVycm9yOiBwYXRjaCBmYWls ZWQ6IGRyaXZlcnMvbmV0L2JvbmRpbmcvcnRlX2V0aF9ib25kX3BtZC5jOjE3MDAKZXJyb3I6IHdo aWxlIHNlYXJjaGluZyBmb3I6Cgl9CgoJaWYgKGJvbmRlZF9ldGhfZGV2LT5kYXRhLT5kZXZfY29u Zi5yeG1vZGUub2ZmbG9hZHMgJgoJCQlERVZfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUikKCQlzbGF2 ZV9ldGhfZGV2LT5kYXRhLT5kZXZfY29uZi5yeG1vZGUub2ZmbG9hZHMgfD0KCQkJCURFVl9SWF9P RkZMT0FEX1ZMQU5fRklMVEVSOwoJZWxzZQoJCXNsYXZlX2V0aF9kZXYtPmRhdGEtPmRldl9jb25m LnJ4bW9kZS5vZmZsb2FkcyAmPQoJCQkJfkRFVl9SWF9PRkZMT0FEX1ZMQU5fRklMVEVSOwoKCXNs YXZlX2V0aF9kZXYtPmRhdGEtPmRldl9jb25mLnJ4bW9kZS5tdHUgPQoJCQlib25kZWRfZXRoX2Rl di0+ZGF0YS0+ZGV2X2NvbmYucnhtb2RlLm10dTsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZl cnMvbmV0L2JvbmRpbmcvcnRlX2V0aF9ib25kX3BtZC5jOjE3MTQKSHVuayAjNCBzdWNjZWVkZWQg YXQgMTgzNCAob2Zmc2V0IDExIGxpbmVzKS4KSHVuayAjNSBzdWNjZWVkZWQgYXQgMTk1NyAob2Zm c2V0IDExIGxpbmVzKS4KSHVuayAjNiBzdWNjZWVkZWQgYXQgMjA5NyAob2Zmc2V0IDExIGxpbmVz KS4KSHVuayAjNyBzdWNjZWVkZWQgYXQgMjQyNiAob2Zmc2V0IDEwIGxpbmVzKS4KSHVuayAjOCBz dWNjZWVkZWQgYXQgMjQ1OSAob2Zmc2V0IDEwIGxpbmVzKS4KSHVuayAjOSBzdWNjZWVkZWQgYXQg MjUwMSAob2Zmc2V0IDEwIGxpbmVzKS4KSHVuayAjMTAgc3VjY2VlZGVkIGF0IDI4NzUgKG9mZnNl dCAxMCBsaW5lcykuCkh1bmsgIzExIHN1Y2NlZWRlZCBhdCAyODkxIChvZmZzZXQgMTAgbGluZXMp LgpIdW5rICMxMiBzdWNjZWVkZWQgYXQgMjk4MyAob2Zmc2V0IDEwIGxpbmVzKS4KSHVuayAjMTMg c3VjY2VlZGVkIGF0IDMwMjEgKG9mZnNldCAxMCBsaW5lcykuCkh1bmsgIzE0IHN1Y2NlZWRlZCBh dCAzMjgyIChvZmZzZXQgOCBsaW5lcykuCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJICog c2V0IGtleSB0byB0aGUgdGhlIHZhbHVlIHNwZWNpZmllZCBpbiBwb3J0IFJTUyBjb25maWd1cmF0 aW9uLgoJICogRmFsbCBiYWNrIHRvIGRlZmF1bHQgUlNTIGtleSBpZiB0aGUga2V5IGlzIG5vdCBz cGVjaWZpZWQKCSAqLwoJaWYgKGRldi0+ZGF0YS0+ZGV2X2NvbmYucnhtb2RlLm1xX21vZGUgJiBF VEhfTVFfUlhfUlNTKSB7CgkJc3RydWN0IHJ0ZV9ldGhfcnNzX2NvbmYgKnJzc19jb25mID0KCQkJ JmRldi0+ZGF0YS0+ZGV2X2NvbmYucnhfYWR2X2NvbmYucnNzX2NvbmY7CgkJaWYgKHJzc19jb25m LT5yc3Nfa2V5ICE9IE5VTEwpIHsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2Jv bmRpbmcvcnRlX2V0aF9ib25kX3BtZC5jOjM1MDEKSHVuayAjMTYgc3VjY2VlZGVkIGF0IDM1MjQg KG9mZnNldCAtMiBsaW5lcykuCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2NueGsvY24xMGtf ZXRoZGV2LmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvY254ay9jbjEwa19ydGVfZmxv dy5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJCXJldHVybiAtRUlOVkFMOwoJfQoK CWlmIChldGhfZGV2LT5kYXRhLT5kZXZfY29uZi5yeG1vZGUubXFfbW9kZSAhPSBFVEhfTVFfUlhf UlNTKSB7CgkJcGx0X2VycigibXVsdGktcXVldWUgbW9kZSBpcyBkaXNhYmxlZCIpOwoJCXJldHVy biAtRU5PVFNVUDsKCX0KCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2NueGsvY24x MGtfcnRlX2Zsb3cuYzo5OApDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9jbnhrL2NuMTBrX3J4 LmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvY254ay9jbjEwa190eC5jLi4uCkNoZWNr aW5nIHBhdGNoIGRyaXZlcnMvbmV0L2NueGsvY245a19ldGhkZXYuYy4uLgpDaGVja2luZyBwYXRj aCBkcml2ZXJzL25ldC9jbnhrL2NuOWtfcnguYy4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25l dC9jbnhrL2NuOWtfdHguYy4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9jbnhrL2NueGtf ZXRoZGV2LmMuLi4KSHVuayAjNyBzdWNjZWVkZWQgYXQgMTUwIChvZmZzZXQgLTMyIGxpbmVzKS4K SHVuayAjOCBzdWNjZWVkZWQgYXQgMTY3IChvZmZzZXQgLTMyIGxpbmVzKS4KZXJyb3I6IHdoaWxl IHNlYXJjaGluZyBmb3I6CglidWZmc3ogPSBtYnBfcHJpdi0+bWJ1Zl9kYXRhX3Jvb21fc2l6ZSAt IFJURV9QS1RNQlVGX0hFQURST09NOwoKCWlmIChldGhfZGV2LT5kYXRhLT5tdHUgKyAodWludDMy X3QpQ05YS19OSVhfTDJfT1ZFUkhFQUQgPiBidWZmc3opIHsKCQlkZXYtPnJ4X29mZmxvYWRzIHw9 IERFVl9SWF9PRkZMT0FEX1NDQVRURVI7CgkJZGV2LT50eF9vZmZsb2FkcyB8PSBERVZfVFhfT0ZG TE9BRF9NVUxUSV9TRUdTOwoJfQp9CgoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQv Y254ay9jbnhrX2V0aGRldi5jOjI0MgpIdW5rICMxMCBzdWNjZWVkZWQgYXQgMjQ2IChvZmZzZXQg LTI3IGxpbmVzKS4KSHVuayAjMTEgc3VjY2VlZGVkIGF0IDI1NCAob2Zmc2V0IC0yNyBsaW5lcyku Ckh1bmsgIzEyIHN1Y2NlZWRlZCBhdCAyNzggKG9mZnNldCAtMjcgbGluZXMpLgpIdW5rICMxMyBz dWNjZWVkZWQgYXQgMzI1IChvZmZzZXQgLTI3IGxpbmVzKS4KSHVuayAjMTQgc3VjY2VlZGVkIGF0 IDM1MyAob2Zmc2V0IC0yNyBsaW5lcykuCkh1bmsgIzE1IHN1Y2NlZWRlZCBhdCA0NzIgKG9mZnNl dCAtMjcgbGluZXMpLgpIdW5rICMxNiBzdWNjZWVkZWQgYXQgNTM0IChvZmZzZXQgLTI3IGxpbmVz KS4KSHVuayAjMTcgc3VjY2VlZGVkIGF0IDU1MiAob2Zmc2V0IC0yNyBsaW5lcykuCkh1bmsgIzE4 IHN1Y2NlZWRlZCBhdCA1OTEgKG9mZnNldCAtMjcgbGluZXMpLgpIdW5rICMxOSBzdWNjZWVkZWQg YXQgNjMwIChvZmZzZXQgLTI3IGxpbmVzKS4KSHVuayAjMjAgc3VjY2VlZGVkIGF0IDY1NiAob2Zm c2V0IC0yNyBsaW5lcykuCkh1bmsgIzIxIHN1Y2NlZWRlZCBhdCA3MDkgKG9mZnNldCAtMzcgbGlu ZXMpLgpIdW5rICMyMiBzdWNjZWVkZWQgYXQgOTIxIChvZmZzZXQgLTM3IGxpbmVzKS4KSHVuayAj MjMgc3VjY2VlZGVkIGF0IDk3MCAob2Zmc2V0IC0zNyBsaW5lcykuCkh1bmsgIzI0IHN1Y2NlZWRl ZCBhdCAxMDEyIChvZmZzZXQgLTQyIGxpbmVzKS4KSHVuayAjMjUgc3VjY2VlZGVkIGF0IDEwMjAg KG9mZnNldCAtNDIgbGluZXMpLgpIdW5rICMyNiBzdWNjZWVkZWQgYXQgMTQwNiAob2Zmc2V0IC00 OCBsaW5lcykuCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2NueGsvY254a19ldGhkZXYuaC4u LgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCSBDTlhLX05JWF9UWF9OQl9TRUdfTUFYKQoK I2RlZmluZSBDTlhLX05JWF9SU1NfTDNfTDRfU1JDX0RTVCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwKCShFVEhfUlNTX0wzX1NSQ19PTkxZIHwgRVRIX1JTU19M M19EU1RfT05MWSB8IEVUSF9SU1NfTDRfU1JDX09OTFkgfCAgICAgXAoJIEVUSF9SU1NfTDRfRFNU X09OTFkpCgojZGVmaW5lIENOWEtfTklYX1JTU19PRkZMT0FEICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAoJKEVUSF9SU1NfUE9SVCB8IEVUSF9SU1Nf SVAgfCBFVEhfUlNTX1VEUCB8IEVUSF9SU1NfVENQIHwgICAgICAgICAgICAgICBcCgkgRVRIX1JT U19TQ1RQIHwgRVRIX1JTU19UVU5ORUwgfCBFVEhfUlNTX0wyX1BBWUxPQUQgfCAgICAgICAgICAg ICAgICAgIFwKCSBDTlhLX05JWF9SU1NfTDNfTDRfU1JDX0RTVCB8IEVUSF9SU1NfTEVWRUxfTUFT SyB8IEVUSF9SU1NfQ19WTEFOKQoKI2RlZmluZSBDTlhLX05JWF9UWF9PRkZMT0FEX0NBUEEgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKCShERVZfVFhfT0ZG TE9BRF9NQlVGX0ZBU1RfRlJFRSB8IERFVl9UWF9PRkZMT0FEX01UX0xPQ0tGUkVFIHwgICAgICAg ICAgXAoJIERFVl9UWF9PRkZMT0FEX1ZMQU5fSU5TRVJUIHwgREVWX1RYX09GRkxPQURfUUlOUV9J TlNFUlQgfCAgICAgICAgICAgICBcCgkgREVWX1RYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTSB8 IERFVl9UWF9PRkZMT0FEX09VVEVSX1VEUF9DS1NVTSB8ICAgIFwKCSBERVZfVFhfT0ZGTE9BRF9U Q1BfQ0tTVU0gfCBERVZfVFhfT0ZGTE9BRF9VRFBfQ0tTVU0gfCAgICAgICAgICAgICAgICAgXAoJ IERFVl9UWF9PRkZMT0FEX1NDVFBfQ0tTVU0gfCBERVZfVFhfT0ZGTE9BRF9UQ1BfVFNPIHwgICAg ICAgICAgICAgICAgICBcCgkgREVWX1RYX09GRkxPQURfVlhMQU5fVE5MX1RTTyB8IERFVl9UWF9P RkZMT0FEX0dFTkVWRV9UTkxfVFNPIHwgICAgICAgIFwKCSBERVZfVFhfT0ZGTE9BRF9HUkVfVE5M X1RTTyB8IERFVl9UWF9PRkZMT0FEX01VTFRJX1NFR1MgfCAgICAgICAgICAgICAgXAoJIERFVl9U WF9PRkZMT0FEX0lQVjRfQ0tTVU0gfCBERVZfVFhfT0ZGTE9BRF9TRUNVUklUWSkKCiNkZWZpbmUg Q05YS19OSVhfUlhfT0ZGTE9BRF9DQVBBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcCgkoREVWX1JYX09GRkxPQURfQ0hFQ0tTVU0gfCBERVZfUlhfT0ZGTE9B RF9TQ1RQX0NLU1VNIHwgICAgICAgICAgICAgICAgIFwKCSBERVZfUlhfT0ZGTE9BRF9PVVRFUl9J UFY0X0NLU1VNIHwgREVWX1JYX09GRkxPQURfU0NBVFRFUiB8ICAgICAgICAgICAgXAoJIERFVl9S WF9PRkZMT0FEX09VVEVSX1VEUF9DS1NVTSB8IERFVl9SWF9PRkZMT0FEX1JTU19IQVNIIHwgICAg ICAgICAgICBcCgkgREVWX1JYX09GRkxPQURfVElNRVNUQU1QIHwgREVWX1JYX09GRkxPQURfVkxB Tl9TVFJJUCB8ICAgICAgICAgICAgICAgIFwKCSBERVZfUlhfT0ZGTE9BRF9TRUNVUklUWSkKCiNk ZWZpbmUgUlNTX0lQVjRfRU5BQkxFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcCgkoRVRIX1JTU19JUFY0IHwgRVRIX1JTU19GUkFHX0lQVjQg fCBFVEhfUlNTX05PTkZSQUdfSVBWNF9VRFAgfCAgICAgICAgIFwKCSBFVEhfUlNTX05PTkZSQUdf SVBWNF9UQ1AgfCBFVEhfUlNTX05PTkZSQUdfSVBWNF9TQ1RQKQoKI2RlZmluZSBSU1NfSVBWNl9F TkFCTEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKCShFVEhfUlNTX0lQVjYgfCBFVEhfUlNTX0ZSQUdfSVBWNiB8IEVUSF9SU1NfTk9ORlJB R19JUFY2X1VEUCB8ICAgICAgICAgXAoJIEVUSF9SU1NfTk9ORlJBR19JUFY2X1RDUCB8IEVUSF9S U1NfTk9ORlJBR19JUFY2X1NDVFApCgojZGVmaW5lIFJTU19JUFY2X0VYX0VOQUJMRSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAoJKEVUSF9SU1Nf SVBWNl9FWCB8IEVUSF9SU1NfSVBWNl9UQ1BfRVggfCBFVEhfUlNTX0lQVjZfVURQX0VYKQoKI2Rl ZmluZSBSU1NfTUFYX0xFVkVMUyAzCgoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQv Y254ay9jbnhrX2V0aGRldi5oOjU4CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2NueGsvY254 a19ldGhkZXZfZGV2YXJncy5jLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2NueGsvY254 a19ldGhkZXZfb3BzLmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJdWludDY0X3Qg ZmxhZ3M7CgkJY29uc3QgY2hhciAqb3V0cHV0OwoJfSByeF9vZmZsb2FkX21hcFtdID0gewoJCXtE RVZfUlhfT0ZGTE9BRF9WTEFOX1NUUklQLCAiIFZMQU4gU3RyaXAsIn0sCgkJe0RFVl9SWF9PRkZM T0FEX0lQVjRfQ0tTVU0sICIgSW5uZXIgSVB2NCBDaGVja3N1bSwifSwKCQl7REVWX1JYX09GRkxP QURfVURQX0NLU1VNLCAiIFVEUCBDaGVja3N1bSwifSwKCQl7REVWX1JYX09GRkxPQURfVENQX0NL U1VNLCAiIFRDUCBDaGVja3N1bSwifSwKCQl7REVWX1JYX09GRkxPQURfVENQX0xSTywgIiBUQ1Ag TFJPLCJ9LAoJCXtERVZfUlhfT0ZGTE9BRF9RSU5RX1NUUklQLCAiIFFpblEgVkxBTiBTdHJpcCwi fSwKCQl7REVWX1JYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTSwgIiBPdXRlciBJUHY0IENoZWNr c3VtLCJ9LAoJCXtERVZfUlhfT0ZGTE9BRF9NQUNTRUNfU1RSSVAsICIgTUFDc2VjIFN0cmlwLCJ9 LAoJCXtERVZfUlhfT0ZGTE9BRF9IRUFERVJfU1BMSVQsICIgSGVhZGVyIFNwbGl0LCJ9LAoJCXtE RVZfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUiwgIiBWTEFOIEZpbHRlciwifSwKCQl7REVWX1JYX09G RkxPQURfVkxBTl9FWFRFTkQsICIgVkxBTiBFeHRlbmQsIn0sCgkJe0RFVl9SWF9PRkZMT0FEX1ND QVRURVIsICIgU2NhdHRlcmVkLCJ9LAoJCXtERVZfUlhfT0ZGTE9BRF9USU1FU1RBTVAsICIgVGlt ZXN0YW1wLCJ9LAoJCXtERVZfUlhfT0ZGTE9BRF9TRUNVUklUWSwgIiBTZWN1cml0eSwifSwKCQl7 REVWX1JYX09GRkxPQURfS0VFUF9DUkMsICIgS2VlcCBDUkMsIn0sCgkJe0RFVl9SWF9PRkZMT0FE X1NDVFBfQ0tTVU0sICIgU0NUUCwifSwKCQl7REVWX1JYX09GRkxPQURfT1VURVJfVURQX0NLU1VN LCAiIE91dGVyIFVEUCBDaGVja3N1bSwifSwKCQl7REVWX1JYX09GRkxPQURfUlNTX0hBU0gsICIg UlNTLCJ9Cgl9OwoJc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IGJ1cnN0X21vZGVbXSA9IHsiVmVj dG9yIE5lb24sIFJ4IE9mZmxvYWRzOiIsCgkJCQkJCSAiU2NhbGFyLCBSeCBPZmZsb2FkczoiCgpl cnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9jbnhrL2NueGtfZXRoZGV2X29wcy5jOjgx Ckh1bmsgIzIgc3VjY2VlZGVkIGF0IDE0MyAob2Zmc2V0IDEgbGluZSkuCkh1bmsgIzMgc3VjY2Vl ZGVkIGF0IDIwNCAob2Zmc2V0IDEgbGluZSkuCkh1bmsgIzQgc3VjY2VlZGVkIGF0IDI2NSAob2Zm c2V0IDEgbGluZSkuCkh1bmsgIzUgc3VjY2VlZGVkIGF0IDQwOSAob2Zmc2V0IDEgbGluZSkuCkh1 bmsgIzYgc3VjY2VlZGVkIGF0IDc0NiAob2Zmc2V0IDEyIGxpbmVzKS4KSHVuayAjNyBzdWNjZWVk ZWQgYXQgNzgyIChvZmZzZXQgMTIgbGluZXMpLgpIdW5rICM4IHN1Y2NlZWRlZCBhdCA4MTYgKG9m ZnNldCAxMiBsaW5lcykuCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2NueGsvY254a19saW5r LmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvY254ay9jbnhrX3B0cC5jLi4uCkNoZWNr aW5nIHBhdGNoIGRyaXZlcnMvbmV0L2NueGsvY254a19ydGVfZmxvdy5jLi4uCkNoZWNraW5nIHBh dGNoIGRyaXZlcnMvbmV0L2N4Z2JlL2N4Z2JlLmguLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBm b3I6CiNkZWZpbmUgQ1hHQkVfTElOS19TVEFUVVNfUE9MTF9DTlQgMTAwIC8qIE1heCBudW1iZXIg b2YgdGltZXMgdG8gcG9sbCAqLwoKI2RlZmluZSBDWEdCRV9ERUZBVUxUX1JTU19LRVlfTEVOICAg ICA0MCAvKiAzMjAtYml0cyAqLwojZGVmaW5lIENYR0JFX1JTU19IRl9JUFY0X01BU0sgKEVUSF9S U1NfSVBWNCB8IEVUSF9SU1NfRlJBR19JUFY0IHwgXAoJCQkJRVRIX1JTU19OT05GUkFHX0lQVjRf T1RIRVIpCiNkZWZpbmUgQ1hHQkVfUlNTX0hGX0lQVjZfTUFTSyAoRVRIX1JTU19JUFY2IHwgRVRI X1JTU19GUkFHX0lQVjYgfCBcCgkJCQlFVEhfUlNTX05PTkZSQUdfSVBWNl9PVEhFUiB8IFwKCQkJ CUVUSF9SU1NfSVBWNl9FWCkKI2RlZmluZSBDWEdCRV9SU1NfSEZfVENQX0lQVjZfTUFTSyAoRVRI X1JTU19OT05GUkFHX0lQVjZfVENQIHwgXAoJCQkJICAgIEVUSF9SU1NfSVBWNl9UQ1BfRVgpCiNk ZWZpbmUgQ1hHQkVfUlNTX0hGX1VEUF9JUFY2X01BU0sgKEVUSF9SU1NfTk9ORlJBR19JUFY2X1VE UCB8IFwKCQkJCSAgICBFVEhfUlNTX0lQVjZfVURQX0VYKQojZGVmaW5lIENYR0JFX1JTU19IRl9B TEwgKEVUSF9SU1NfSVAgfCBFVEhfUlNTX1RDUCB8IEVUSF9SU1NfVURQKQoKLyogVHgvUnggT2Zm bG9hZHMgc3VwcG9ydGVkICovCiNkZWZpbmUgQ1hHQkVfVFhfT0ZGTE9BRFMgKERFVl9UWF9PRkZM T0FEX1ZMQU5fSU5TRVJUIHwgXAoJCQkgICBERVZfVFhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwgXAoJ CQkgICBERVZfVFhfT0ZGTE9BRF9VRFBfQ0tTVU0gfCBcCgkJCSAgIERFVl9UWF9PRkZMT0FEX1RD UF9DS1NVTSB8IFwKCQkJICAgREVWX1RYX09GRkxPQURfVENQX1RTTyB8IFwKCQkJICAgREVWX1RY X09GRkxPQURfTVVMVElfU0VHUykKCiNkZWZpbmUgQ1hHQkVfUlhfT0ZGTE9BRFMgKERFVl9SWF9P RkZMT0FEX1ZMQU5fU1RSSVAgfCBcCgkJCSAgIERFVl9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfCBc CgkJCSAgIERFVl9SWF9PRkZMT0FEX1VEUF9DS1NVTSB8IFwKCQkJICAgREVWX1JYX09GRkxPQURf VENQX0NLU1VNIHwgXAoJCQkgICBERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSIHwgXAoJCQkgICBERVZf UlhfT0ZGTE9BRF9SU1NfSEFTSCkKCi8qIERldmFyZ3MgZmlsdGVybW9kZSBhbmQgZmlsdGVybWFz ayByZXByZXNlbnRhdGlvbiAqLwplbnVtIGN4Z2JlX2RldmFyZ3NfZmlsdGVyX21vZGVfZmxhZ3Mg ewoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvY3hnYmUvY3hnYmUuaDoyOApDaGVj a2luZyBwYXRjaCBkcml2ZXJzL25ldC9jeGdiZS9jeGdiZV9ldGhkZXYuYy4uLgpIdW5rICMyIHN1 Y2NlZWRlZCBhdCAzOTYgKG9mZnNldCAyMiBsaW5lcykuCkh1bmsgIzMgc3VjY2VlZGVkIGF0IDQ2 MCAob2Zmc2V0IDIyIGxpbmVzKS4KSHVuayAjNCBzdWNjZWVkZWQgYXQgMTEwOSAob2Zmc2V0IDI5 IGxpbmVzKS4KSHVuayAjNSBzdWNjZWVkZWQgYXQgMTEyOCAob2Zmc2V0IDI5IGxpbmVzKS4KSHVu ayAjNiBzdWNjZWVkZWQgYXQgMTIyOSAob2Zmc2V0IDI5IGxpbmVzKS4KSHVuayAjNyBzdWNjZWVk ZWQgYXQgMTI3NSAob2Zmc2V0IDI5IGxpbmVzKS4KSHVuayAjOCBzdWNjZWVkZWQgYXQgMTMwNiAo b2Zmc2V0IDI5IGxpbmVzKS4KSHVuayAjOSBzdWNjZWVkZWQgYXQgMTUwOCAob2Zmc2V0IDI5IGxp bmVzKS4KSHVuayAjMTAgc3VjY2VlZGVkIGF0IDE1MTcgKG9mZnNldCAyOSBsaW5lcykuCkh1bmsg IzExIHN1Y2NlZWRlZCBhdCAxNTI2IChvZmZzZXQgMjkgbGluZXMpLgpDaGVja2luZyBwYXRjaCBk cml2ZXJzL25ldC9jeGdiZS9jeGdiZV9tYWluLmMuLi4KSHVuayAjMSBzdWNjZWVkZWQgYXQgMTY3 MSAob2Zmc2V0IDEgbGluZSkuCkh1bmsgIzIgc3VjY2VlZGVkIGF0IDE2OTUgKG9mZnNldCAxIGxp bmUpLgpIdW5rICMzIHN1Y2NlZWRlZCBhdCAxNzI2IChvZmZzZXQgMSBsaW5lKS4KSHVuayAjNCBz dWNjZWVkZWQgYXQgMTg2NiAob2Zmc2V0IDEgbGluZSkuCkh1bmsgIzUgc3VjY2VlZGVkIGF0IDE5 NTMgKG9mZnNldCAxIGxpbmUpLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9kcGFhL2RwYWFf ZXRoZGV2LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgovKiBTdXBwb3J0ZWQgUngg b2ZmbG9hZHMgKi8Kc3RhdGljIHVpbnQ2NF90IGRldl9yeF9vZmZsb2Fkc19zdXAgPQoJCURFVl9S WF9PRkZMT0FEX1NDQVRURVI7CgovKiBSeCBvZmZsb2FkcyB3aGljaCBjYW5ub3QgYmUgZGlzYWJs ZWQgKi8Kc3RhdGljIHVpbnQ2NF90IGRldl9yeF9vZmZsb2Fkc19ub2RpcyA9CgkJREVWX1JYX09G RkxPQURfSVBWNF9DS1NVTSB8CgkJREVWX1JYX09GRkxPQURfVURQX0NLU1VNIHwKCQlERVZfUlhf T0ZGTE9BRF9UQ1BfQ0tTVU0gfAoJCURFVl9SWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gfAoJ CURFVl9SWF9PRkZMT0FEX1JTU19IQVNIOwoKLyogU3VwcG9ydGVkIFR4IG9mZmxvYWRzICovCnN0 YXRpYyB1aW50NjRfdCBkZXZfdHhfb2ZmbG9hZHNfc3VwID0KCQlERVZfVFhfT0ZGTE9BRF9NVF9M T0NLRlJFRSB8CgkJREVWX1RYX09GRkxPQURfTUJVRl9GQVNUX0ZSRUU7CgovKiBUeCBvZmZsb2Fk cyB3aGljaCBjYW5ub3QgYmUgZGlzYWJsZWQgKi8Kc3RhdGljIHVpbnQ2NF90IGRldl90eF9vZmZs b2Fkc19ub2RpcyA9CgkJREVWX1RYX09GRkxPQURfSVBWNF9DS1NVTSB8CgkJREVWX1RYX09GRkxP QURfVURQX0NLU1VNIHwKCQlERVZfVFhfT0ZGTE9BRF9UQ1BfQ0tTVU0gfAoJCURFVl9UWF9PRkZM T0FEX1NDVFBfQ0tTVU0gfAoJCURFVl9UWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gfAoJCURF Vl9UWF9PRkZMT0FEX01VTFRJX1NFR1M7CgovKiBLZWVwIHRyYWNrIG9mIHdoZXRoZXIgUU1BTiBh bmQgQk1BTiBoYXZlIGJlZW4gZ2xvYmFsbHkgaW5pdGlhbGl6ZWQgKi8Kc3RhdGljIGludCBpc19n bG9iYWxfaW5pdDsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2RwYWEvZHBhYV9l dGhkZXYuYzo1NAplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCglmbWFuX2lmX3NldF9tYXhm cm0oZGV2LT5wcm9jZXNzX3ByaXZhdGUsIG1heF9yeF9wa3RsZW4pOwoKCWlmIChyeF9vZmZsb2Fk cyAmIERFVl9SWF9PRkZMT0FEX1NDQVRURVIpIHsKCQlEUEFBX1BNRF9ERUJVRygiZW5hYmxpbmcg c2NhdHRlciBtb2RlIik7CgkJZm1hbl9pZl9zZXRfc2coZGV2LT5wcm9jZXNzX3ByaXZhdGUsIDEp OwoJCWRldi0+ZGF0YS0+c2NhdHRlcmVkX3J4ID0gMTsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRy aXZlcnMvbmV0L2RwYWEvZHBhYV9ldGhkZXYuYzoyMzgKSHVuayAjMyBzdWNjZWVkZWQgYXQgMzA0 IChvZmZzZXQgMjEgbGluZXMpLgpIdW5rICM0IHN1Y2NlZWRlZCBhdCA1NTYgKG9mZnNldCAyMSBs aW5lcykuCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJCXVpbnQ2NF90IGZsYWdzOwoJCWNv bnN0IGNoYXIgKm91dHB1dDsKCX0gcnhfb2ZmbG9hZF9tYXBbXSA9IHsKCQkJe0RFVl9SWF9PRkZM T0FEX1NDQVRURVIsICIgU2NhdHRlcmVkLCJ9LAoJCQl7REVWX1JYX09GRkxPQURfSVBWNF9DS1NV TSwgIiBJUFY0IGNzdW0sIn0sCgkJCXtERVZfUlhfT0ZGTE9BRF9VRFBfQ0tTVU0sICIgVURQIGNz dW0sIn0sCgkJCXtERVZfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0sICIgVENQIGNzdW0sIn0sCgkJCXtE RVZfUlhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNLCAiIE91dGVyIElQVjQgY3N1bSwifSwKCQkJ e0RFVl9SWF9PRkZMT0FEX1JTU19IQVNILCAiIFJTUywifQoJfTsKCgkvKiBVcGRhdGUgUnggb2Zm bG9hZCBpbmZvICovCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9kcGFhL2RwYWFf ZXRoZGV2LmM6NTkxCkh1bmsgIzYgc3VjY2VlZGVkIGF0IDY0NSAob2Zmc2V0IDIyIGxpbmVzKS4K SHVuayAjNyBzdWNjZWVkZWQgYXQgNjg2IChvZmZzZXQgMjIgbGluZXMpLgpIdW5rICM4IHN1Y2Nl ZWRlZCBhdCA2OTcgKG9mZnNldCAyMiBsaW5lcykuCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9y OgoJaWYgKG1heF9yeF9wa3RsZW4gPD0gYnVmZnN6KSB7CgkJOwoJfSBlbHNlIGlmIChkZXYtPmRh dGEtPmRldl9jb25mLnJ4bW9kZS5vZmZsb2FkcyAmCgkJCURFVl9SWF9PRkZMT0FEX1NDQVRURVIp IHsKCQlpZiAobWF4X3J4X3BrdGxlbiA+IGJ1ZmZzeiAqIERQQUFfU0dUX01BWF9FTlRSSUVTKSB7 CgkJCURQQUFfUE1EX0VSUigiTWF4aW11bSBSeCBwYWNrZXQgc2l6ZSAlZCB0b28gYmlnIHRvIGZp dCAiCgkJCQkiTWF4U0dsaXN0ICVkIiwKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0 L2RwYWEvZHBhYV9ldGhkZXYuYzo5NjIKSHVuayAjMTAgc3VjY2VlZGVkIGF0IDEyOTIgKG9mZnNl dCAyNCBsaW5lcykuCkh1bmsgIzExIHN1Y2NlZWRlZCBhdCAxMzA4IChvZmZzZXQgMjQgbGluZXMp LgpIdW5rICMxMiBzdWNjZWVkZWQgYXQgMTMzOCAob2Zmc2V0IDI0IGxpbmVzKS4KSHVuayAjMTMg c3VjY2VlZGVkIGF0IDEzODUgKG9mZnNldCAyNCBsaW5lcykuCkh1bmsgIzE0IHN1Y2NlZWRlZCBh dCAxNjUwIChvZmZzZXQgMjQgbGluZXMpLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9kcGFh L2RwYWFfZXRoZGV2LmguLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvZHBhYS9kcGFhX2Zs b3cuYy4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9kcGFhMi9iYXNlL2RwYWEyX2h3X2Rw bmkuYy4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9kcGFhMi9kcGFhMl9ldGhkZXYuYy4u LgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCi8qIFN1cHBvcnRlZCBSeCBvZmZsb2FkcyAq LwpzdGF0aWMgdWludDY0X3QgZGV2X3J4X29mZmxvYWRzX3N1cCA9CgkJREVWX1JYX09GRkxPQURf Q0hFQ0tTVU0gfAoJCURFVl9SWF9PRkZMT0FEX1NDVFBfQ0tTVU0gfAoJCURFVl9SWF9PRkZMT0FE X09VVEVSX0lQVjRfQ0tTVU0gfAoJCURFVl9SWF9PRkZMT0FEX09VVEVSX1VEUF9DS1NVTSB8CgkJ REVWX1JYX09GRkxPQURfVkxBTl9TVFJJUCB8CgkJREVWX1JYX09GRkxPQURfVkxBTl9GSUxURVIg fAoJCURFVl9SWF9PRkZMT0FEX1RJTUVTVEFNUDsKCi8qIFJ4IG9mZmxvYWRzIHdoaWNoIGNhbm5v dCBiZSBkaXNhYmxlZCAqLwpzdGF0aWMgdWludDY0X3QgZGV2X3J4X29mZmxvYWRzX25vZGlzID0K CQlERVZfUlhfT0ZGTE9BRF9SU1NfSEFTSCB8CgkJREVWX1JYX09GRkxPQURfU0NBVFRFUjsKCi8q IFN1cHBvcnRlZCBUeCBvZmZsb2FkcyAqLwpzdGF0aWMgdWludDY0X3QgZGV2X3R4X29mZmxvYWRz X3N1cCA9CgkJREVWX1RYX09GRkxPQURfVkxBTl9JTlNFUlQgfAoJCURFVl9UWF9PRkZMT0FEX0lQ VjRfQ0tTVU0gfAoJCURFVl9UWF9PRkZMT0FEX1VEUF9DS1NVTSB8CgkJREVWX1RYX09GRkxPQURf VENQX0NLU1VNIHwKCQlERVZfVFhfT0ZGTE9BRF9TQ1RQX0NLU1VNIHwKCQlERVZfVFhfT0ZGTE9B RF9PVVRFUl9JUFY0X0NLU1VNIHwKCQlERVZfVFhfT0ZGTE9BRF9NVF9MT0NLRlJFRSB8CgkJREVW X1RYX09GRkxPQURfTUJVRl9GQVNUX0ZSRUU7CgovKiBUeCBvZmZsb2FkcyB3aGljaCBjYW5ub3Qg YmUgZGlzYWJsZWQgKi8Kc3RhdGljIHVpbnQ2NF90IGRldl90eF9vZmZsb2Fkc19ub2RpcyA9CgkJ REVWX1RYX09GRkxPQURfTVVMVElfU0VHUzsKCi8qIGVuYWJsZSB0aW1lc3RhbXAgaW4gbWJ1ZiAq Lwpib29sIGRwYWEyX2VuYWJsZV90c1tSVEVfTUFYX0VUSFBPUlRTXTsKCmVycm9yOiBwYXRjaCBm YWlsZWQ6IGRyaXZlcnMvbmV0L2RwYWEyL2RwYWEyX2V0aGRldi5jOjM4Ckh1bmsgIzIgc3VjY2Vl ZGVkIGF0IDE0MyAob2Zmc2V0IDEgbGluZSkuCkh1bmsgIzMgc3VjY2VlZGVkIGF0IDE1MSAob2Zm c2V0IDEgbGluZSkuCkh1bmsgIzQgc3VjY2VlZGVkIGF0IDI1MiAob2Zmc2V0IDEgbGluZSkuCkh1 bmsgIzUgc3VjY2VlZGVkIGF0IDI3MSAob2Zmc2V0IDEgbGluZSkuCmVycm9yOiB3aGlsZSBzZWFy Y2hpbmcgZm9yOgoJCXVpbnQ2NF90IGZsYWdzOwoJCWNvbnN0IGNoYXIgKm91dHB1dDsKCX0gcnhf b2ZmbG9hZF9tYXBbXSA9IHsKCQkJe0RFVl9SWF9PRkZMT0FEX0NIRUNLU1VNLCAiIENoZWNrc3Vt LCJ9LAoJCQl7REVWX1JYX09GRkxPQURfU0NUUF9DS1NVTSwgIiBTQ1RQIGNzdW0sIn0sCgkJCXtE RVZfUlhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNLCAiIE91dGVyIElQVjQgY3N1bSwifSwKCQkJ e0RFVl9SWF9PRkZMT0FEX09VVEVSX1VEUF9DS1NVTSwgIiBPdXRlciBVRFAgY3N1bSwifSwKCQkJ e0RFVl9SWF9PRkZMT0FEX1ZMQU5fU1RSSVAsICIgVkxBTiBzdHJpcCwifSwKCQkJe0RFVl9SWF9P RkZMT0FEX1ZMQU5fRklMVEVSLCAiIFZMQU4gZmlsdGVyLCJ9LAoJCQl7REVWX1JYX09GRkxPQURf VElNRVNUQU1QLCAiIFRpbWVzdGFtcCwifSwKCQkJe0RFVl9SWF9PRkZMT0FEX1JTU19IQVNILCAi IFJTUywifSwKCQkJe0RFVl9SWF9PRkZMT0FEX1NDQVRURVIsICIgU2NhdHRlcmVkLCJ9Cgl9OwoK CS8qIFVwZGF0ZSBSeCBvZmZsb2FkIGluZm8gKi8KCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZl cnMvbmV0L2RwYWEyL2RwYWEyX2V0aGRldi5jOjI5MQpIdW5rICM3IHN1Y2NlZWRlZCBhdCAzMjgg KG9mZnNldCAyIGxpbmVzKS4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJcmV0dXJuIC0x OwoJfQoKCWlmIChldGhfY29uZi0+cnhtb2RlLm1xX21vZGUgPT0gRVRIX01RX1JYX1JTUykgewoJ CWZvciAodGNfaW5kZXggPSAwOyB0Y19pbmRleCA8IHByaXYtPm51bV9yeF90YzsgdGNfaW5kZXgr KykgewoJCQlyZXQgPSBkcGFhMl9zZXR1cF9mbG93X2Rpc3QoZGV2LAoJCQkJCWV0aF9jb25mLT5y eF9hZHZfY29uZi5yc3NfY29uZi5yc3NfaGYsCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJz L25ldC9kcGFhMi9kcGFhMl9ldGhkZXYuYzo1NzMKSHVuayAjOSBzdWNjZWVkZWQgYXQgNTk0IChv ZmZzZXQgNyBsaW5lcykuCkh1bmsgIzEwIHN1Y2NlZWRlZCBhdCA2MTcgKG9mZnNldCA3IGxpbmVz KS4KSHVuayAjMTEgc3VjY2VlZGVkIGF0IDYzMCAob2Zmc2V0IDcgbGluZXMpLgpIdW5rICMxMiBz dWNjZWVkZWQgYXQgNjY3IChvZmZzZXQgNyBsaW5lcykuCkh1bmsgIzEzIHN1Y2NlZWRlZCBhdCAx ODc3IChvZmZzZXQgMjEgbGluZXMpLgpIdW5rICMxNCBzdWNjZWVkZWQgYXQgMTg4OSAob2Zmc2V0 IDIxIGxpbmVzKS4KSHVuayAjMTUgc3VjY2VlZGVkIGF0IDIwNTIgKG9mZnNldCAyMSBsaW5lcyku Ckh1bmsgIzE2IHN1Y2NlZWRlZCBhdCAyMDY0IChvZmZzZXQgMjEgbGluZXMpLgpIdW5rICMxNyBz dWNjZWVkZWQgYXQgMjExMCAob2Zmc2V0IDIxIGxpbmVzKS4KSHVuayAjMTggc3VjY2VlZGVkIGF0 IDIxMjUgKG9mZnNldCAyMSBsaW5lcykuCkh1bmsgIzE5IHN1Y2NlZWRlZCBhdCAyMTMzIChvZmZz ZXQgMjEgbGluZXMpLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9kcGFhMi9kcGFhMl9ldGhk ZXYuaC4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9kcGFhMi9kcGFhMl9yeHR4LmMuLi4K Q2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvZTEwMDAvZTEwMDBfZXRoZGV2LmguLi4KSHVuayAj MSBzdWNjZWVkZWQgYXQgODEgKG9mZnNldCAtMSBsaW5lcykuCkNoZWNraW5nIHBhdGNoIGRyaXZl cnMvbmV0L2UxMDAwL2VtX2V0aGRldi5jLi4uCkh1bmsgIzEgc3VjY2VlZGVkIGF0IDU5OSAob2Zm c2V0IDIgbGluZXMpLgpIdW5rICMyIHN1Y2NlZWRlZCBhdCA2MTMgKG9mZnNldCAyIGxpbmVzKS4K SHVuayAjMyBzdWNjZWVkZWQgYXQgMTEwNCAob2Zmc2V0IDIgbGluZXMpLgpIdW5rICM0IHN1Y2Nl ZWRlZCBhdCAxMTY0IChvZmZzZXQgMiBsaW5lcykuCkh1bmsgIzUgc3VjY2VlZGVkIGF0IDE0MjYg KG9mZnNldCAyIGxpbmVzKS4KSHVuayAjNiBzdWNjZWVkZWQgYXQgMTYwMyAob2Zmc2V0IDIgbGlu ZXMpLgpIdW5rICM3IHN1Y2NlZWRlZCBhdCAxNjg1IChvZmZzZXQgMiBsaW5lcykuCkNoZWNraW5n IHBhdGNoIGRyaXZlcnMvbmV0L2UxMDAwL2VtX3J4dHguYy4uLgplcnJvcjogd2hpbGUgc2VhcmNo aW5nIGZvcjoKCXVpbnQ2NF90IHJ4X29mZmxvYWRfY2FwYTsKCglyeF9vZmZsb2FkX2NhcGEgPQoJ CURFVl9SWF9PRkZMT0FEX1ZMQU5fU1RSSVAgIHwKCQlERVZfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRF UiB8CgkJREVWX1JYX09GRkxPQURfSVBWNF9DS1NVTSAgfAoJCURFVl9SWF9PRkZMT0FEX1VEUF9D S1NVTSAgIHwKCQlERVZfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0gICB8CgkJREVWX1JYX09GRkxPQURf S0VFUF9DUkMgICAgfAoJCURFVl9SWF9PRkZMT0FEX1NDQVRURVI7CgoJcmV0dXJuIHJ4X29mZmxv YWRfY2FwYTsKfQoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvZTEwMDAvZW1fcnh0 eC5jOjEzNjkKSHVuayAjNSBzdWNjZWVkZWQgYXQgMTQ3NCAob2Zmc2V0IDUgbGluZXMpLgpIdW5r ICM2IHN1Y2NlZWRlZCBhdCAxODEwIChvZmZzZXQgMjIgbGluZXMpLgpIdW5rICM3IHN1Y2NlZWRl ZCBhdCAxODUzIChvZmZzZXQgMjIgbGluZXMpLgpIdW5rICM4IHN1Y2NlZWRlZCBhdCAxODY2IChv ZmZzZXQgMjIgbGluZXMpLgpIdW5rICM5IHN1Y2NlZWRlZCBhdCAxODkyIChvZmZzZXQgMjIgbGlu ZXMpLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9lMTAwMC9pZ2JfZXRoZGV2LmMuLi4KSHVu ayAjMSBzdWNjZWVkZWQgYXQgMTA3NyAob2Zmc2V0IDQgbGluZXMpLgpIdW5rICMyIHN1Y2NlZWRl ZCBhdCAxMTAzIChvZmZzZXQgNCBsaW5lcykuCkh1bmsgIzMgc3VjY2VlZGVkIGF0IDExMjEgKG9m ZnNldCA0IGxpbmVzKS4KSHVuayAjNCBzdWNjZWVkZWQgYXQgMTE1MCAob2Zmc2V0IDQgbGluZXMp LgpIdW5rICM1IHN1Y2NlZWRlZCBhdCAxMjkxIChvZmZzZXQgNCBsaW5lcykuCkh1bmsgIzYgc3Vj Y2VlZGVkIGF0IDEzMDAgKG9mZnNldCA0IGxpbmVzKS4KSHVuayAjNyBzdWNjZWVkZWQgYXQgMTMx NCAob2Zmc2V0IDQgbGluZXMpLgpIdW5rICM4IHN1Y2NlZWRlZCBhdCAyMTg5IChvZmZzZXQgNCBs aW5lcykuCkh1bmsgIzkgc3VjY2VlZGVkIGF0IDIyMjkgKG9mZnNldCA0IGxpbmVzKS4KSHVuayAj MTAgc3VjY2VlZGVkIGF0IDIyNTUgKG9mZnNldCA0IGxpbmVzKS4KSHVuayAjMTEgc3VjY2VlZGVk IGF0IDIzMDAgKG9mZnNldCA0IGxpbmVzKS4KSHVuayAjMTIgc3VjY2VlZGVkIGF0IDI0MDYgKG9m ZnNldCA0IGxpbmVzKS4KSHVuayAjMTMgc3VjY2VlZGVkIGF0IDI1OTIgKG9mZnNldCA0IGxpbmVz KS4KSHVuayAjMTQgc3VjY2VlZGVkIGF0IDI3MTEgKG9mZnNldCA4IGxpbmVzKS4KSHVuayAjMTUg c3VjY2VlZGVkIGF0IDI4NzggKG9mZnNldCA4IGxpbmVzKS4KSHVuayAjMTYgc3VjY2VlZGVkIGF0 IDMwMzIgKG9mZnNldCA4IGxpbmVzKS4KSHVuayAjMTcgc3VjY2VlZGVkIGF0IDMxMDcgKG9mZnNl dCA4IGxpbmVzKS4KSHVuayAjMTggc3VjY2VlZGVkIGF0IDMyNjYgKG9mZnNldCA4IGxpbmVzKS4K SHVuayAjMTkgc3VjY2VlZGVkIGF0IDM1NzkgKG9mZnNldCA4IGxpbmVzKS4KSHVuayAjMjAgc3Vj Y2VlZGVkIGF0IDM2MjAgKG9mZnNldCA4IGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9u ZXQvZTEwMDAvaWdiX3BmLmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvZTEwMDAvaWdi X3J4dHguYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCglodyA9IEUxMDAwX0RFVl9Q UklWQVRFX1RPX0hXKGRldi0+ZGF0YS0+ZGV2X3ByaXZhdGUpOwoKCXJ4X29mZmxvYWRfY2FwYSA9 IERFVl9SWF9PRkZMT0FEX1ZMQU5fU1RSSVAgIHwKCQkJICBERVZfUlhfT0ZGTE9BRF9WTEFOX0ZJ TFRFUiB8CgkJCSAgREVWX1JYX09GRkxPQURfSVBWNF9DS1NVTSAgfAoJCQkgIERFVl9SWF9PRkZM T0FEX1VEUF9DS1NVTSAgIHwKCQkJICBERVZfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0gICB8CgkJCSAg REVWX1JYX09GRkxPQURfS0VFUF9DUkMgICAgfAoJCQkgIERFVl9SWF9PRkZMT0FEX1NDQVRURVIg ICAgIHwKCQkJICBERVZfUlhfT0ZGTE9BRF9SU1NfSEFTSDsKCglpZiAoaHctPm1hYy50eXBlID09 IGUxMDAwX2kzNTAgfHwKCSAgICBody0+bWFjLnR5cGUgPT0gZTEwMDBfaTIxMCB8fAoJICAgIGh3 LT5tYWMudHlwZSA9PSBlMTAwMF9pMjExKQoJCXJ4X29mZmxvYWRfY2FwYSB8PSBERVZfUlhfT0ZG TE9BRF9WTEFOX0VYVEVORDsKCglyZXR1cm4gcnhfb2ZmbG9hZF9jYXBhOwp9CgplcnJvcjogcGF0 Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9lMTAwMC9pZ2Jfcnh0eC5jOjE2NDAKSHVuayAjNSBzdWNj ZWVkZWQgYXQgMTczNCAob2Zmc2V0IDEgbGluZSkuCkh1bmsgIzYgc3VjY2VlZGVkIGF0IDE5Njgg KG9mZnNldCAxOCBsaW5lcykuCkh1bmsgIzcgc3VjY2VlZGVkIGF0IDIwNTAgKG9mZnNldCAxOCBs aW5lcykuCkh1bmsgIzggc3VjY2VlZGVkIGF0IDIxODggKG9mZnNldCAxOCBsaW5lcykuCkh1bmsg Izkgc3VjY2VlZGVkIGF0IDIyMzIgKG9mZnNldCAxOCBsaW5lcykuCkh1bmsgIzEwIHN1Y2NlZWRl ZCBhdCAyMjg2IChvZmZzZXQgMTggbGluZXMpLgpIdW5rICMxMSBzdWNjZWVkZWQgYXQgMjMwMCAo b2Zmc2V0IDE4IGxpbmVzKS4KSHVuayAjMTIgc3VjY2VlZGVkIGF0IDIzNTYgKG9mZnNldCAxOCBs aW5lcykuCkh1bmsgIzEzIHN1Y2NlZWRlZCBhdCAyMzkyIChvZmZzZXQgMTggbGluZXMpLgpIdW5r ICMxNCBzdWNjZWVkZWQgYXQgMjQ2MyAob2Zmc2V0IDE5IGxpbmVzKS4KSHVuayAjMTUgc3VjY2Vl ZGVkIGF0IDI1MDcgKG9mZnNldCAxOSBsaW5lcykuCkh1bmsgIzE2IHN1Y2NlZWRlZCBhdCAyNTI0 IChvZmZzZXQgMTkgbGluZXMpLgpIdW5rICMxNyBzdWNjZWVkZWQgYXQgMjU2NCAob2Zmc2V0IDE5 IGxpbmVzKS4KSHVuayAjMTggc3VjY2VlZGVkIGF0IDI3NjMgKG9mZnNldCAyMCBsaW5lcykuCkNo ZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2VuYS9lbmFfZXRoZGV2LmMuLi4KSHVuayAjMSBzdWNj ZWVkZWQgYXQgMTE2IChvZmZzZXQgLTEgbGluZXMpLgpIdW5rICMyIHN1Y2NlZWRlZCBhdCAzMTAg KG9mZnNldCAtMjIgbGluZXMpLgpIdW5rICMzIHN1Y2NlZWRlZCBhdCAzMTggKG9mZnNldCAtMjIg bGluZXMpLgpIdW5rICM0IHN1Y2NlZWRlZCBhdCAzMzUgKG9mZnNldCAtMjIgbGluZXMpLgpIdW5r ICM1IHN1Y2NlZWRlZCBhdCA2MjEgKG9mZnNldCAtMjIgbGluZXMpLgpIdW5rICM2IHN1Y2NlZWRl ZCBhdCA5MTMgKG9mZnNldCAtMTAgbGluZXMpLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoK CglhZGFwdGVyLT5zdGF0ZSA9IEVOQV9BREFQVEVSX1NUQVRFX0NPTkZJRzsKCglpZiAoZGV2LT5k YXRhLT5kZXZfY29uZi5yeG1vZGUubXFfbW9kZSAmIEVUSF9NUV9SWF9SU1NfRkxBRykKCQlkZXYt PmRhdGEtPmRldl9jb25mLnJ4bW9kZS5vZmZsb2FkcyB8PSBERVZfUlhfT0ZGTE9BRF9SU1NfSEFT SDsKCWRldi0+ZGF0YS0+ZGV2X2NvbmYudHhtb2RlLm9mZmxvYWRzIHw9IERFVl9UWF9PRkZMT0FE X01VTFRJX1NFR1M7CgoJLyogU2NhdHRlcmVkIFJ4IGNhbm5vdCBiZSB0dXJuZWQgb2ZmIGluIHRo ZSBIVywgc28gdGhpcyBjYXBhYmlsaXR5IG11c3QKCSAqIGJlIGZvcmNlZC4KCmVycm9yOiBwYXRj aCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2VuYS9lbmFfZXRoZGV2LmM6MjAwNAplcnJvcjogd2hpbGUg c2VhcmNoaW5nIGZvcjoKCXVpbnQ2NF90IHBvcnRfb2ZmbG9hZHMgPSAwOwoKCWlmIChhZGFwdGVy LT5vZmZsb2Fkcy5yeF9vZmZsb2FkcyAmIEVOQV9MM19JUFY0X0NTVU0pCgkJcG9ydF9vZmZsb2Fk cyB8PSBERVZfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNOwoKCWlmIChhZGFwdGVyLT5vZmZsb2Fkcy5y eF9vZmZsb2FkcyAmCgkgICAgKEVOQV9MNF9JUFY0X0NTVU0gfCBFTkFfTDRfSVBWNl9DU1VNKSkK CQlwb3J0X29mZmxvYWRzIHw9CgkJCURFVl9SWF9PRkZMT0FEX1VEUF9DS1NVTSB8IERFVl9SWF9P RkZMT0FEX1RDUF9DS1NVTTsKCglpZiAoYWRhcHRlci0+b2ZmbG9hZHMucnhfb2ZmbG9hZHMgJiBF TkFfUlhfUlNTX0hBU0gpCgkJcG9ydF9vZmZsb2FkcyB8PSBERVZfUlhfT0ZGTE9BRF9SU1NfSEFT SDsKCglwb3J0X29mZmxvYWRzIHw9IERFVl9SWF9PRkZMT0FEX1NDQVRURVI7CgoJcmV0dXJuIHBv cnRfb2ZmbG9hZHM7Cn0KCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2VuYS9lbmFf ZXRoZGV2LmM6MjA2NwplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCXVpbnQ2NF90IHBvcnRf b2ZmbG9hZHMgPSAwOwoKCWlmIChhZGFwdGVyLT5vZmZsb2Fkcy50eF9vZmZsb2FkcyAmIEVOQV9J UFY0X1RTTykKCQlwb3J0X29mZmxvYWRzIHw9IERFVl9UWF9PRkZMT0FEX1RDUF9UU087CgoJaWYg KGFkYXB0ZXItPm9mZmxvYWRzLnR4X29mZmxvYWRzICYgRU5BX0wzX0lQVjRfQ1NVTSkKCQlwb3J0 X29mZmxvYWRzIHw9IERFVl9UWF9PRkZMT0FEX0lQVjRfQ0tTVU07CglpZiAoYWRhcHRlci0+b2Zm bG9hZHMudHhfb2ZmbG9hZHMgJgoJICAgIChFTkFfTDRfSVBWNF9DU1VNX1BBUlRJQUwgfCBFTkFf TDRfSVBWNF9DU1VNIHwKCSAgICAgRU5BX0w0X0lQVjZfQ1NVTSB8IEVOQV9MNF9JUFY2X0NTVU1f UEFSVElBTCkpCgkJcG9ydF9vZmZsb2FkcyB8PQoJCQlERVZfVFhfT0ZGTE9BRF9VRFBfQ0tTVU0g fCBERVZfVFhfT0ZGTE9BRF9UQ1BfQ0tTVU07CgoJcG9ydF9vZmZsb2FkcyB8PSBERVZfVFhfT0ZG TE9BRF9NVUxUSV9TRUdTOwoKCXJldHVybiBwb3J0X29mZmxvYWRzOwp9CgplcnJvcjogcGF0Y2gg ZmFpbGVkOiBkcml2ZXJzL25ldC9lbmEvZW5hX2V0aGRldi5jOjIwODcKZXJyb3I6IHdoaWxlIHNl YXJjaGluZyBmb3I6CgllbmFfYXNzZXJ0X21zZyhlbmFfZGV2ICE9IE5VTEwsICJVbmluaXRpYWxp emVkIGRldmljZVxuIik7CgoJZGV2X2luZm8tPnNwZWVkX2NhcGEgPQoJCQlFVEhfTElOS19TUEVF RF8xRyAgIHwKCQkJRVRIX0xJTktfU1BFRURfMl81RyB8CgkJCUVUSF9MSU5LX1NQRUVEXzVHICAg fAoJCQlFVEhfTElOS19TUEVFRF8xMEcgIHwKCQkJRVRIX0xJTktfU1BFRURfMjVHICB8CgkJCUVU SF9MSU5LX1NQRUVEXzQwRyAgfAoJCQlFVEhfTElOS19TUEVFRF81MEcgIHwKCQkJRVRIX0xJTktf U1BFRURfMTAwRzsKCgkvKiBJbmZvcm0gZnJhbWV3b3JrIGFib3V0IGF2YWlsYWJsZSBmZWF0dXJl cyAqLwoJZGV2X2luZm8tPnJ4X29mZmxvYWRfY2FwYSA9IGVuYV9nZXRfcnhfcG9ydF9vZmZsb2Fk cyhhZGFwdGVyKTsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2VuYS9lbmFfZXRo ZGV2LmM6MjEzMApIdW5rICMxMSBzdWNjZWVkZWQgYXQgMjA5OCAob2Zmc2V0IC0yMDUgbGluZXMp LgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKI2lmZGVmIFJURV9MSUJSVEVfRVRIREVWX0RF QlVHCgkJLyogQ2hlY2sgaWYgcmVxdWVzdGVkIG9mZmxvYWQgaXMgYWxzbyBlbmFibGVkIGZvciB0 aGUgcXVldWUgKi8KCQlpZiAoKG9sX2ZsYWdzICYgUEtUX1RYX0lQX0NLU1VNICYmCgkJICAgICAh KHR4X3JpbmctPm9mZmxvYWRzICYgREVWX1RYX09GRkxPQURfSVBWNF9DS1NVTSkpIHx8CgkJICAg IChsNF9jc3VtX2ZsYWcgPT0gUEtUX1RYX1RDUF9DS1NVTSAmJgoJCSAgICAgISh0eF9yaW5nLT5v ZmZsb2FkcyAmIERFVl9UWF9PRkZMT0FEX1RDUF9DS1NVTSkpIHx8CgkJICAgIChsNF9jc3VtX2Zs YWcgPT0gUEtUX1RYX1VEUF9DS1NVTSAmJgoJCSAgICAgISh0eF9yaW5nLT5vZmZsb2FkcyAmIERF Vl9UWF9PRkZMT0FEX1VEUF9DS1NVTSkpKSB7CgkJCVBNRF9UWF9MT0coREVCVUcsCgkJCQkibWJ1 ZlslIiBQUkl1MzIgIl06IHJlcXVlc3RlZCBvZmZsb2FkczogJSIgUFJJdTE2ICIgYXJlIG5vdCBl bmFibGVkIGZvciB0aGUgcXVldWVbJXVdXG4iLAoJCQkJaSwgbS0+bmJfc2VncywgdHhfcmluZy0+ aWQpOwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvZW5hL2VuYV9ldGhkZXYuYzoy NDE2CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2VuYS9lbmFfZXRoZGV2LmguLi4KSHVuayAj MSBzdWNjZWVkZWQgYXQgNTQgKG9mZnNldCAtNCBsaW5lcykuCkNoZWNraW5nIHBhdGNoIGRyaXZl cnMvbmV0L2VuYS9lbmFfcnNzLmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CglpZiAo cmV0YV9zaXplID09IDAgfHwgcmV0YV9jb25mID09IE5VTEwpCgkJcmV0dXJuIC1FSU5WQUw7CgoJ aWYgKCEoZGV2LT5kYXRhLT5kZXZfY29uZi5yeG1vZGUub2ZmbG9hZHMgJiBERVZfUlhfT0ZGTE9B RF9SU1NfSEFTSCkpIHsKCQlQTURfRFJWX0xPRyhFUlIsCgkJCSJSU1Mgd2FzIG5vdCBjb25maWd1 cmVkIGZvciB0aGUgUE1EXG4iKTsKCQlyZXR1cm4gLUVOT1RTVVA7CgplcnJvcjogcGF0Y2ggZmFp bGVkOiBkcml2ZXJzL25ldC9lbmEvZW5hX3Jzcy5jOjEzOQpIdW5rICM0IHN1Y2NlZWRlZCBhdCAx NTUgKG9mZnNldCAxIGxpbmUpLgpIdW5rICM1IHN1Y2NlZWRlZCBhdCAyMDAgKG9mZnNldCAxIGxp bmUpLgpIdW5rICM2IHN1Y2NlZWRlZCBhdCAyMzYgKG9mZnNldCAxIGxpbmUpLgpIdW5rICM3IHN1 Y2NlZWRlZCBhdCAyNDggKG9mZnNldCAxIGxpbmUpLgpIdW5rICM4IHN1Y2NlZWRlZCBhdCAyNjkg KG9mZnNldCAxIGxpbmUpLgpIdW5rICM5IHN1Y2NlZWRlZCBhdCAyODUgKG9mZnNldCAxIGxpbmUp LgpIdW5rICMxMCBzdWNjZWVkZWQgYXQgMzM1IChvZmZzZXQgMSBsaW5lKS4KSHVuayAjMTEgc3Vj Y2VlZGVkIGF0IDU0MiAob2Zmc2V0IDEgbGluZSkuCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0 L2VuZXRjL2VuZXRjX2V0aGRldi5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJZGV2 X2luZm8tPm1heF90eF9xdWV1ZXMgPSBNQVhfVFhfUklOR1M7CglkZXZfaW5mby0+bWF4X3J4X3Br dGxlbiA9IEVORVRDX01BQ19NQVhGUk1fU0laRTsKCWRldl9pbmZvLT5yeF9vZmZsb2FkX2NhcGEg PQoJCShERVZfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwKCQkgREVWX1JYX09GRkxPQURfVURQX0NL U1VNIHwKCQkgREVWX1JYX09GRkxPQURfVENQX0NLU1VNIHwKCQkgREVWX1JYX09GRkxPQURfS0VF UF9DUkMpOwoKCXJldHVybiAwOwp9CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9l bmV0Yy9lbmV0Y19ldGhkZXYuYzoyMDcKSHVuayAjMyBzdWNjZWVkZWQgYXQgNDY0IChvZmZzZXQg MSBsaW5lKS4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgllbmV0Y19wb3J0X3dyKGVuZXRj X2h3LCBFTkVUQ19QVENNU0RVUigwKSwgRU5FVENfTUFDX01BWEZSTV9TSVpFKTsKCWVuZXRjX3Bv cnRfd3IoZW5ldGNfaHcsIEVORVRDX1BUWE1CQVIsIDIgKiBFTkVUQ19NQUNfTUFYRlJNX1NJWkUp OwoKCWlmIChyeF9vZmZsb2FkcyAmIERFVl9SWF9PRkZMT0FEX0tFRVBfQ1JDKSB7CgkJaW50IGNv bmZpZzsKCgkJY29uZmlnID0gZW5ldGNfcG9ydF9yZChlbmV0Y19odywgRU5FVENfUE0wX0NNRF9D RkcpOwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvZW5ldGMvZW5ldGNfZXRoZGV2 LmM6NzA1Ckh1bmsgIzUgc3VjY2VlZGVkIGF0IDczNSAob2Zmc2V0IDIyIGxpbmVzKS4KQ2hlY2tp bmcgcGF0Y2ggZHJpdmVycy9uZXQvZW5pYy9lbmljLmguLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVy cy9uZXQvZW5pYy9lbmljX2V0aGRldi5jLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2Vu aWMvZW5pY19tYWluLmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgltYXhfcnhfcGt0 bGVuID0gZW5pY19tdHVfdG9fbWF4X3J4X3BrdGxlbihlbmljLT5ydGVfZGV2LT5kYXRhLT5tdHUp OwoKCWlmIChlbmljLT5ydGVfZGV2LT5kYXRhLT5kZXZfY29uZi5yeG1vZGUub2ZmbG9hZHMgJgoJ ICAgIERFVl9SWF9PRkZMT0FEX1NDQVRURVIpIHsKCQlkZXZfaW5mbyhlbmljLCAiUnEgJXUgU2Nh dHRlciByeCBtb2RlIGVuYWJsZWRcbiIsIHF1ZXVlX2lkeCk7CgkJLyogY2VpbCgobWF4IHBrdCBs ZW4pL21idWZfc2l6ZSkgKi8KCQltYnVmc19wZXJfcGt0ID0gKG1heF9yeF9wa3RsZW4gKyBtYnVm X3NpemUgLSAxKSAvIG1idWZfc2l6ZTsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0 L2VuaWMvZW5pY19tYWluLmM6ODU4Ckh1bmsgIzUgc3VjY2VlZGVkIGF0IDEzODYgKG9mZnNldCAx IGxpbmUpLgpIdW5rICM2IHN1Y2NlZWRlZCBhdCAxNDA1IChvZmZzZXQgMSBsaW5lKS4KSHVuayAj NyBzdWNjZWVkZWQgYXQgMTc1MSAob2Zmc2V0IDYgbGluZXMpLgpDaGVja2luZyBwYXRjaCBkcml2 ZXJzL25ldC9lbmljL2VuaWNfcmVzLmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6Cgll bmljLT50eF9xdWV1ZV9vZmZsb2FkX2NhcGEgPSAwOwoJZW5pYy0+dHhfb2ZmbG9hZF9jYXBhID0K CQllbmljLT50eF9xdWV1ZV9vZmZsb2FkX2NhcGEgfAoJCURFVl9UWF9PRkZMT0FEX01VTFRJX1NF R1MgfAoJCURFVl9UWF9PRkZMT0FEX1ZMQU5fSU5TRVJUIHwKCQlERVZfVFhfT0ZGTE9BRF9JUFY0 X0NLU1VNIHwKCQlERVZfVFhfT0ZGTE9BRF9VRFBfQ0tTVU0gfAoJCURFVl9UWF9PRkZMT0FEX1RD UF9DS1NVTSB8CgkJREVWX1RYX09GRkxPQURfVENQX1RTTzsKCWVuaWMtPnJ4X29mZmxvYWRfY2Fw YSA9CgkJREVWX1JYX09GRkxPQURfU0NBVFRFUiB8CgkJREVWX1JYX09GRkxPQURfVkxBTl9TVFJJ UCB8CgkJREVWX1JYX09GRkxPQURfSVBWNF9DS1NVTSB8CgkJREVWX1JYX09GRkxPQURfVURQX0NL U1VNIHwKCQlERVZfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0gfAoJCURFVl9SWF9PRkZMT0FEX1JTU19I QVNIOwoJZW5pYy0+dHhfb2ZmbG9hZF9tYXNrID0KCQlQS1RfVFhfSVBWNiB8CgkJUEtUX1RYX0lQ VjQgfAoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvZW5pYy9lbmljX3Jlcy5jOjIw MQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9mYWlsc2FmZS9mYWlsc2FmZS5jLi4uCkNoZWNr aW5nIHBhdGNoIGRyaXZlcnMvbmV0L2ZhaWxzYWZlL2ZhaWxzYWZlX2ludHIuYy4uLgpDaGVja2lu ZyBwYXRjaCBkcml2ZXJzL25ldC9mYWlsc2FmZS9mYWlsc2FmZV9vcHMuYy4uLgplcnJvcjogd2hp bGUgc2VhcmNoaW5nIGZvcjoKCSAqIGNvbmZpZ3VyaW5nIGEgc3ViLWRldmljZS4KCSAqLwoJaW5m b3MtPnJ4X29mZmxvYWRfY2FwYSA9CgkJREVWX1JYX09GRkxPQURfVkxBTl9TVFJJUCB8CgkJREVW X1JYX09GRkxPQURfSVBWNF9DS1NVTSB8CgkJREVWX1JYX09GRkxPQURfVURQX0NLU1VNIHwKCQlE RVZfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0gfAoJCURFVl9SWF9PRkZMT0FEX1RDUF9MUk8gfAoJCURF Vl9SWF9PRkZMT0FEX1FJTlFfU1RSSVAgfAoJCURFVl9SWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tT VU0gfAoJCURFVl9SWF9PRkZMT0FEX01BQ1NFQ19TVFJJUCB8CgkJREVWX1JYX09GRkxPQURfSEVB REVSX1NQTElUIHwKCQlERVZfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUiB8CgkJREVWX1JYX09GRkxP QURfVkxBTl9FWFRFTkQgfAoJCURFVl9SWF9PRkZMT0FEX1NDQVRURVIgfAoJCURFVl9SWF9PRkZM T0FEX1RJTUVTVEFNUCB8CgkJREVWX1JYX09GRkxPQURfU0VDVVJJVFkgfAoJCURFVl9SWF9PRkZM T0FEX1JTU19IQVNIOwoKCWluZm9zLT5yeF9xdWV1ZV9vZmZsb2FkX2NhcGEgPQoJCURFVl9SWF9P RkZMT0FEX1ZMQU5fU1RSSVAgfAoJCURFVl9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAoJCURFVl9S WF9PRkZMT0FEX1VEUF9DS1NVTSB8CgkJREVWX1JYX09GRkxPQURfVENQX0NLU1VNIHwKCQlERVZf UlhfT0ZGTE9BRF9UQ1BfTFJPIHwKCQlERVZfUlhfT0ZGTE9BRF9RSU5RX1NUUklQIHwKCQlERVZf UlhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNIHwKCQlERVZfUlhfT0ZGTE9BRF9NQUNTRUNfU1RS SVAgfAoJCURFVl9SWF9PRkZMT0FEX0hFQURFUl9TUExJVCB8CgkJREVWX1JYX09GRkxPQURfVkxB Tl9GSUxURVIgfAoJCURFVl9SWF9PRkZMT0FEX1ZMQU5fRVhURU5EIHwKCQlERVZfUlhfT0ZGTE9B RF9TQ0FUVEVSIHwKCQlERVZfUlhfT0ZGTE9BRF9USU1FU1RBTVAgfAoJCURFVl9SWF9PRkZMT0FE X1NFQ1VSSVRZIHwKCQlERVZfUlhfT0ZGTE9BRF9SU1NfSEFTSDsKCglpbmZvcy0+dHhfb2ZmbG9h ZF9jYXBhID0KCQlERVZfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTIHwKCQlERVZfVFhfT0ZGTE9BRF9N QlVGX0ZBU1RfRlJFRSB8CgkJREVWX1RYX09GRkxPQURfSVBWNF9DS1NVTSB8CgkJREVWX1RYX09G RkxPQURfVURQX0NLU1VNIHwKCQlERVZfVFhfT0ZGTE9BRF9UQ1BfQ0tTVU0gfAoJCURFVl9UWF9P RkZMT0FEX1RDUF9UU087CgoJaW5mb3MtPmZsb3dfdHlwZV9yc3Nfb2ZmbG9hZHMgPQoJCUVUSF9S U1NfSVAgfAoJCUVUSF9SU1NfVURQIHwKCQlFVEhfUlNTX1RDUDsKCWluZm9zLT5kZXZfY2FwYSA9 CgkJUlRFX0VUSF9ERVZfQ0FQQV9SVU5USU1FX1JYX1FVRVVFX1NFVFVQIHwKCQlSVEVfRVRIX0RF Vl9DQVBBX1JVTlRJTUVfVFhfUVVFVUVfU0VUVVA7CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2 ZXJzL25ldC9mYWlsc2FmZS9mYWlsc2FmZV9vcHMuYzoxMTcyCkNoZWNraW5nIHBhdGNoIGRyaXZl cnMvbmV0L2ZtMTBrL2ZtMTBrLmguLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvZm0xMGsv Zm0xMGtfZXRoZGV2LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJLyogSXQgYWRk cyBkdWFsIFZMQU4gbGVuZ3RoIGZvciBzdXBwb3J0aW5nIGR1YWwgVkxBTiAqLwoJCWlmICgoZGV2 LT5kYXRhLT5tdHUgKyBSVEVfRVRIRVJfSERSX0xFTiArIFJURV9FVEhFUl9DUkNfTEVOICsKCQkJ CTIgKiBGTTEwS19WTEFOX1RBR19TSVpFKSA+IGJ1Zl9zaXplIHx8CgkJCXJ4cS0+b2ZmbG9hZHMg JiBERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSKSB7CgkJCXVpbnQzMl90IHJlZzsKCQkJZGV2LT5kYXRh LT5zY2F0dGVyZWRfcnggPSAxOwoJCQlyZWcgPSBGTTEwS19SRUFEX1JFRyhodywgRk0xMEtfU1JS Q1RMKGkpKTsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2ZtMTBrL2ZtMTBrX2V0 aGRldi5jOjc1OQplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKewoJUlRFX1NFVF9VU0VEKGRl dik7CgoJcmV0dXJuICh1aW50NjRfdCkoREVWX1JYX09GRkxPQURfU0NBVFRFUik7Cn0KCnN0YXRp YyB1aW50NjRfdCBmbTEwa19nZXRfcnhfcG9ydF9vZmZsb2Fkc19jYXBhKHN0cnVjdCBydGVfZXRo X2RldiAqZGV2KQp7CglSVEVfU0VUX1VTRUQoZGV2KTsKCglyZXR1cm4gICh1aW50NjRfdCkoREVW X1JYX09GRkxPQURfVkxBTl9TVFJJUCAgfAoJCQkgICBERVZfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRF UiB8CgkJCSAgIERFVl9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0gIHwKCQkJICAgREVWX1JYX09GRkxP QURfVURQX0NLU1VNICAgfAoJCQkgICBERVZfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0gICB8CgkJCSAg IERFVl9SWF9PRkZMT0FEX0hFQURFUl9TUExJVCB8CgkJCSAgIERFVl9SWF9PRkZMT0FEX1JTU19I QVNIKTsKfQoKc3RhdGljIGludAoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvZm0x MGsvZm0xMGtfZXRoZGV2LmM6MTc2NwpIdW5rICMxNCBzdWNjZWVkZWQgYXQgMTk2NiAob2Zmc2V0 IDEgbGluZSkuCkh1bmsgIzE1IHN1Y2NlZWRlZCBhdCAyMTEyIChvZmZzZXQgMSBsaW5lKS4KSHVu ayAjMTYgc3VjY2VlZGVkIGF0IDIxNjEgKG9mZnNldCAxIGxpbmUpLgpIdW5rICMxNyBzdWNjZWVk ZWQgYXQgMjE5OSAob2Zmc2V0IDEgbGluZSkuCkh1bmsgIzE4IHN1Y2NlZWRlZCBhdCAyMjQ0IChv ZmZzZXQgMSBsaW5lKS4KSHVuayAjMTkgc3VjY2VlZGVkIGF0IDI2MDcgKG9mZnNldCAxIGxpbmUp LgpIdW5rICMyMCBzdWNjZWVkZWQgYXQgMjYyMyAob2Zmc2V0IDEgbGluZSkuCkNoZWNraW5nIHBh dGNoIGRyaXZlcnMvbmV0L2ZtMTBrL2ZtMTBrX3J4dHhfdmVjLmMuLi4KQ2hlY2tpbmcgcGF0Y2gg ZHJpdmVycy9uZXQvaGluaWMvYmFzZS9oaW5pY19wbWRfaHdkZXYuYy4uLgpDaGVja2luZyBwYXRj aCBkcml2ZXJzL25ldC9oaW5pYy9oaW5pY19wbWRfZXRoZGV2LmMuLi4KZXJyb3I6IHdoaWxlIHNl YXJjaGluZyBmb3I6CgkJcmV0dXJuIC1FSU5WQUw7Cgl9CgoJaWYgKGRldi0+ZGF0YS0+ZGV2X2Nv bmYucnhtb2RlLm1xX21vZGUgJiBFVEhfTVFfUlhfUlNTX0ZMQUcpCgkJZGV2LT5kYXRhLT5kZXZf Y29uZi5yeG1vZGUub2ZmbG9hZHMgfD0gREVWX1JYX09GRkxPQURfUlNTX0hBU0g7CgoJLyogbXR1 IHNpemUgaXMgMjU2fjk2MDAgKi8KCWlmIChISU5JQ19NVFVfVE9fUEtUTEVOKGRldi0+ZGF0YS0+ ZGV2X2NvbmYucnhtb2RlLm10dSkgPAoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQv aGluaWMvaGluaWNfcG1kX2V0aGRldi5jOjMxMQplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoK CgloaW5pY19nZXRfc3BlZWRfY2FwYShkZXYsICZpbmZvLT5zcGVlZF9jYXBhKTsKCWluZm8tPnJ4 X3F1ZXVlX29mZmxvYWRfY2FwYSA9IDA7CglpbmZvLT5yeF9vZmZsb2FkX2NhcGEgPSBERVZfUlhf T0ZGTE9BRF9WTEFOX1NUUklQIHwKCQkJCURFVl9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAoJCQkJ REVWX1JYX09GRkxPQURfVURQX0NLU1VNIHwKCQkJCURFVl9SWF9PRkZMT0FEX1RDUF9DS1NVTSB8 CgkJCQlERVZfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUiB8CgkJCQlERVZfUlhfT0ZGTE9BRF9TQ0FU VEVSIHwKCQkJCURFVl9SWF9PRkZMT0FEX1RDUF9MUk8gfAoJCQkJREVWX1JYX09GRkxPQURfUlNT X0hBU0g7CgoJaW5mby0+dHhfcXVldWVfb2ZmbG9hZF9jYXBhID0gMDsKCWluZm8tPnR4X29mZmxv YWRfY2FwYSA9IERFVl9UWF9PRkZMT0FEX1ZMQU5fSU5TRVJUIHwKCQkJCURFVl9UWF9PRkZMT0FE X0lQVjRfQ0tTVU0gfAoJCQkJREVWX1RYX09GRkxPQURfVURQX0NLU1VNIHwKCQkJCURFVl9UWF9P RkZMT0FEX1RDUF9DS1NVTSB8CgkJCQlERVZfVFhfT0ZGTE9BRF9TQ1RQX0NLU1VNIHwKCQkJCURF Vl9UWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gfAoJCQkJREVWX1RYX09GRkxPQURfVENQX1RT TyB8CgkJCQlERVZfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTOwoKCWluZm8tPmhhc2hfa2V5X3NpemUg PSBISU5JQ19SU1NfS0VZX1NJWkU7CglpbmZvLT5yZXRhX3NpemUgPSBISU5JQ19SU1NfSU5ESVJf U0laRTsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2hpbmljL2hpbmljX3BtZF9l dGhkZXYuYzo3MzIKSHVuayAjNSBzdWNjZWVkZWQgYXQgODQ3IChvZmZzZXQgMSBsaW5lKS4KSHVu ayAjNiBzdWNjZWVkZWQgYXQgOTAyIChvZmZzZXQgMSBsaW5lKS4KSHVuayAjNyBzdWNjZWVkZWQg YXQgMTY2OCAob2Zmc2V0IDE4IGxpbmVzKS4KSHVuayAjOCBzdWNjZWVkZWQgYXQgMTY5MCAob2Zm c2V0IDE4IGxpbmVzKS4KSHVuayAjOSBzdWNjZWVkZWQgYXQgMTg3NyAob2Zmc2V0IDE4IGxpbmVz KS4KSHVuayAjMTAgc3VjY2VlZGVkIGF0IDE4OTcgKG9mZnNldCAxOCBsaW5lcykuCkh1bmsgIzEx IHN1Y2NlZWRlZCBhdCAxOTQ4IChvZmZzZXQgMTggbGluZXMpLgpIdW5rICMxMiBzdWNjZWVkZWQg YXQgMTk2OSAob2Zmc2V0IDE4IGxpbmVzKS4KSHVuayAjMTMgc3VjY2VlZGVkIGF0IDIwMTIgKG9m ZnNldCAxOCBsaW5lcykuCkh1bmsgIzE0IHN1Y2NlZWRlZCBhdCAyMDMzIChvZmZzZXQgMTggbGlu ZXMpLgpIdW5rICMxNSBzdWNjZWVkZWQgYXQgMjA3MSAob2Zmc2V0IDE4IGxpbmVzKS4KSHVuayAj MTYgc3VjY2VlZGVkIGF0IDIwODUgKG9mZnNldCAxOCBsaW5lcykuCkh1bmsgIzE3IHN1Y2NlZWRl ZCBhdCAyMTUxIChvZmZzZXQgMTggbGluZXMpLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9o aW5pYy9oaW5pY19wbWRfcnguYy4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9oaW5pYy9o aW5pY19wbWRfcnguaC4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9obnMzL2huczNfZGNi LmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaG5zMy9obnMzX2V0aGRldi5jLi4uCkh1 bmsgIzEyIHN1Y2NlZWRlZCBhdCAyNDM1IChvZmZzZXQgMzUgbGluZXMpLgpIdW5rICMxMyBzdWNj ZWVkZWQgYXQgMjQ5OSAob2Zmc2V0IDM1IGxpbmVzKS4KSHVuayAjMTQgc3VjY2VlZGVkIGF0IDI1 MjggKG9mZnNldCAzNSBsaW5lcykuCkh1bmsgIzE1IHN1Y2NlZWRlZCBhdCAyNjQ0IChvZmZzZXQg NDQgbGluZXMpLgpIdW5rICMxNiBzdWNjZWVkZWQgYXQgMjY2MyAob2Zmc2V0IDQ0IGxpbmVzKS4K SHVuayAjMTcgc3VjY2VlZGVkIGF0IDI2OTQgKG9mZnNldCA0NCBsaW5lcykuCmVycm9yOiB3aGls ZSBzZWFyY2hpbmcgZm9yOgoJaW5mby0+bWF4X21hY19hZGRycyA9IEhOUzNfVUNfTUFDQUREUl9O VU07CglpbmZvLT5tYXhfbXR1ID0gaW5mby0+bWF4X3J4X3BrdGxlbiAtIEhOUzNfRVRIX09WRVJI RUFEOwoJaW5mby0+bWF4X2xyb19wa3Rfc2l6ZSA9IEhOUzNfTUFYX0xST19TSVpFOwoJaW5mby0+ cnhfb2ZmbG9hZF9jYXBhID0gKERFVl9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAoJCQkJIERFVl9S WF9PRkZMT0FEX1RDUF9DS1NVTSB8CgkJCQkgREVWX1JYX09GRkxPQURfVURQX0NLU1VNIHwKCQkJ CSBERVZfUlhfT0ZGTE9BRF9TQ1RQX0NLU1VNIHwKCQkJCSBERVZfUlhfT0ZGTE9BRF9PVVRFUl9J UFY0X0NLU1VNIHwKCQkJCSBERVZfUlhfT0ZGTE9BRF9PVVRFUl9VRFBfQ0tTVU0gfAoJCQkJIERF Vl9SWF9PRkZMT0FEX0tFRVBfQ1JDIHwKCQkJCSBERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSIHwKCQkJ CSBERVZfUlhfT0ZGTE9BRF9WTEFOX1NUUklQIHwKCQkJCSBERVZfUlhfT0ZGTE9BRF9WTEFOX0ZJ TFRFUiB8CgkJCQkgREVWX1JYX09GRkxPQURfUlNTX0hBU0ggfAoJCQkJIERFVl9SWF9PRkZMT0FE X1RDUF9MUk8pOwoJaW5mby0+dHhfb2ZmbG9hZF9jYXBhID0gKERFVl9UWF9PRkZMT0FEX09VVEVS X0lQVjRfQ0tTVU0gfAoJCQkJIERFVl9UWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAoJCQkJIERFVl9U WF9PRkZMT0FEX1RDUF9DS1NVTSB8CgkJCQkgREVWX1RYX09GRkxPQURfVURQX0NLU1VNIHwKCQkJ CSBERVZfVFhfT0ZGTE9BRF9TQ1RQX0NLU1VNIHwKCQkJCSBERVZfVFhfT0ZGTE9BRF9NVUxUSV9T RUdTIHwKCQkJCSBERVZfVFhfT0ZGTE9BRF9UQ1BfVFNPIHwKCQkJCSBERVZfVFhfT0ZGTE9BRF9W WExBTl9UTkxfVFNPIHwKCQkJCSBERVZfVFhfT0ZGTE9BRF9HUkVfVE5MX1RTTyB8CgkJCQkgREVW X1RYX09GRkxPQURfR0VORVZFX1ROTF9UU08gfAoJCQkJIERFVl9UWF9PRkZMT0FEX01CVUZfRkFT VF9GUkVFIHwKCQkJCSBobnMzX3R4dmxhbl9jYXBfZ2V0KGh3KSk7CgoJaWYgKGhuczNfZGV2X2dl dF9zdXBwb3J0KGh3LCBPVVRFUl9VRFBfQ0tTVU0pKQoJCWluZm8tPnR4X29mZmxvYWRfY2FwYSB8 PSBERVZfVFhfT0ZGTE9BRF9PVVRFUl9VRFBfQ0tTVU07CgoJaWYgKGhuczNfZGV2X2dldF9zdXBw b3J0KGh3LCBJTkRFUF9UWFJYKSkKCQlpbmZvLT5kZXZfY2FwYSA9IFJURV9FVEhfREVWX0NBUEFf UlVOVElNRV9SWF9RVUVVRV9TRVRVUCB8CgkJCQkgUlRFX0VUSF9ERVZfQ0FQQV9SVU5USU1FX1RY X1FVRVVFX1NFVFVQOwoKCWlmIChobnMzX2Rldl9nZXRfc3VwcG9ydChodywgUFRQKSkKCQlpbmZv LT5yeF9vZmZsb2FkX2NhcGEgfD0gREVWX1JYX09GRkxPQURfVElNRVNUQU1QOwoKCWluZm8tPnJ4 X2Rlc2NfbGltID0gKHN0cnVjdCBydGVfZXRoX2Rlc2NfbGltKSB7CgkJLm5iX21heCA9IEhOUzNf TUFYX1JJTkdfREVTQywKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2huczMvaG5z M19ldGhkZXYuYzoyNjc2Ckh1bmsgIzE5IHN1Y2NlZWRlZCBhdCAyODM4IChvZmZzZXQgNDUgbGlu ZXMpLgpIdW5rICMyMCBzdWNjZWVkZWQgYXQgMjg1MSAob2Zmc2V0IDQ1IGxpbmVzKS4KSHVuayAj MjEgc3VjY2VlZGVkIGF0IDI4OTMgKG9mZnNldCA0NSBsaW5lcykuCkh1bmsgIzIyIHN1Y2NlZWRl ZCBhdCAyOTA2IChvZmZzZXQgNDUgbGluZXMpLgpIdW5rICMyMyBzdWNjZWVkZWQgYXQgMzI1MiAo b2Zmc2V0IDQ1IGxpbmVzKS4KSHVuayAjMjQgc3VjY2VlZGVkIGF0IDM2MDQgKG9mZnNldCA0NSBs aW5lcykuCkh1bmsgIzI1IHN1Y2NlZWRlZCBhdCA0Mjk5IChvZmZzZXQgNDUgbGluZXMpLgpIdW5r ICMyNiBzdWNjZWVkZWQgYXQgNDU1NiAob2Zmc2V0IDQ1IGxpbmVzKS4KSHVuayAjMjcgc3VjY2Vl ZGVkIGF0IDQ1OTcgKG9mZnNldCA0NSBsaW5lcykuCkh1bmsgIzI4IHN1Y2NlZWRlZCBhdCA0NzE3 IChvZmZzZXQgNDUgbGluZXMpLgpIdW5rICMyOSBzdWNjZWVkZWQgYXQgNDcyOSAob2Zmc2V0IDQ1 IGxpbmVzKS4KSHVuayAjMzAgc3VjY2VlZGVkIGF0IDQ3ODAgKG9mZnNldCA0NSBsaW5lcykuCkh1 bmsgIzMxIHN1Y2NlZWRlZCBhdCA0ODA3IChvZmZzZXQgNDUgbGluZXMpLgpIdW5rICMzMiBzdWNj ZWVkZWQgYXQgNDkyNiAob2Zmc2V0IDQ1IGxpbmVzKS4KSHVuayAjMzMgc3VjY2VlZGVkIGF0IDQ5 NTcgKG9mZnNldCA0NSBsaW5lcykuCkh1bmsgIzM0IHN1Y2NlZWRlZCBhdCA1MTM5IChvZmZzZXQg NDUgbGluZXMpLgpIdW5rICMzNSBzdWNjZWVkZWQgYXQgNTM4OSAob2Zmc2V0IDQ1IGxpbmVzKS4K SHVuayAjMzYgc3VjY2VlZGVkIGF0IDU0MTggKG9mZnNldCA0NSBsaW5lcykuCkh1bmsgIzM3IHN1 Y2NlZWRlZCBhdCA1NDcyIChvZmZzZXQgNDUgbGluZXMpLgpIdW5rICMzOCBzdWNjZWVkZWQgYXQg NTUwMSAob2Zmc2V0IDQ1IGxpbmVzKS4KSHVuayAjMzkgc3VjY2VlZGVkIGF0IDU2MzkgKG9mZnNl dCA0NSBsaW5lcykuCkh1bmsgIzQwIHN1Y2NlZWRlZCBhdCA1OTE0IChvZmZzZXQgNDUgbGluZXMp LgpIdW5rICM0MSBzdWNjZWVkZWQgYXQgNjEyNSAob2Zmc2V0IDQ1IGxpbmVzKS4KSHVuayAjNDIg c3VjY2VlZGVkIGF0IDYyODEgKG9mZnNldCA0NSBsaW5lcykuCkh1bmsgIzQzIHN1Y2NlZWRlZCBh dCA2NTgxIChvZmZzZXQgNDUgbGluZXMpLgpIdW5rICM0NCBzdWNjZWVkZWQgYXQgNjg3MSAob2Zm c2V0IDQ1IGxpbmVzKS4KSHVuayAjNDUgc3VjY2VlZGVkIGF0IDY5MDMgKG9mZnNldCA0NSBsaW5l cykuCkh1bmsgIzQ2IHN1Y2NlZWRlZCBhdCA3MDAyIChvZmZzZXQgNDUgbGluZXMpLgpDaGVja2lu ZyBwYXRjaCBkcml2ZXJzL25ldC9obnMzL2huczNfZXRoZGV2LmguLi4KSHVuayAjMiBzdWNjZWVk ZWQgYXQgMTExMyAob2Zmc2V0IDM3IGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQv aG5zMy9obnMzX2V0aGRldl92Zi5jLi4uCkh1bmsgIzEgc3VjY2VlZGVkIGF0IDgwOSAob2Zmc2V0 IDIgbGluZXMpLgpIdW5rICMyIHN1Y2NlZWRlZCBhdCA4NTMgKG9mZnNldCAyMSBsaW5lcykuCmVy cm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJaW5mby0+bWF4X210dSA9IGluZm8tPm1heF9yeF9w a3RsZW4gLSBITlMzX0VUSF9PVkVSSEVBRDsKCWluZm8tPm1heF9scm9fcGt0X3NpemUgPSBITlMz X01BWF9MUk9fU0laRTsKCglpbmZvLT5yeF9vZmZsb2FkX2NhcGEgPSAoREVWX1JYX09GRkxPQURf SVBWNF9DS1NVTSB8CgkJCQkgREVWX1JYX09GRkxPQURfVURQX0NLU1VNIHwKCQkJCSBERVZfUlhf T0ZGTE9BRF9UQ1BfQ0tTVU0gfAoJCQkJIERFVl9SWF9PRkZMT0FEX1NDVFBfQ0tTVU0gfAoJCQkJ IERFVl9SWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gfAoJCQkJIERFVl9SWF9PRkZMT0FEX09V VEVSX1VEUF9DS1NVTSB8CgkJCQkgREVWX1JYX09GRkxPQURfU0NBVFRFUiB8CgkJCQkgREVWX1JY X09GRkxPQURfVkxBTl9TVFJJUCB8CgkJCQkgREVWX1JYX09GRkxPQURfVkxBTl9GSUxURVIgfAoJ CQkJIERFVl9SWF9PRkZMT0FEX1JTU19IQVNIIHwKCQkJCSBERVZfUlhfT0ZGTE9BRF9UQ1BfTFJP KTsKCWluZm8tPnR4X29mZmxvYWRfY2FwYSA9IChERVZfVFhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NL U1VNIHwKCQkJCSBERVZfVFhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwKCQkJCSBERVZfVFhfT0ZGTE9B RF9UQ1BfQ0tTVU0gfAoJCQkJIERFVl9UWF9PRkZMT0FEX1VEUF9DS1NVTSB8CgkJCQkgREVWX1RY X09GRkxPQURfU0NUUF9DS1NVTSB8CgkJCQkgREVWX1RYX09GRkxPQURfTVVMVElfU0VHUyB8CgkJ CQkgREVWX1RYX09GRkxPQURfVENQX1RTTyB8CgkJCQkgREVWX1RYX09GRkxPQURfVlhMQU5fVE5M X1RTTyB8CgkJCQkgREVWX1RYX09GRkxPQURfR1JFX1ROTF9UU08gfAoJCQkJIERFVl9UWF9PRkZM T0FEX0dFTkVWRV9UTkxfVFNPIHwKCQkJCSBERVZfVFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJFRSB8 CgkJCQkgaG5zM190eHZsYW5fY2FwX2dldChodykpOwoKCWlmIChobnMzX2Rldl9nZXRfc3VwcG9y dChodywgT1VURVJfVURQX0NLU1VNKSkKCQlpbmZvLT50eF9vZmZsb2FkX2NhcGEgfD0gREVWX1RY X09GRkxPQURfT1VURVJfVURQX0NLU1VNOwoKCWlmIChobnMzX2Rldl9nZXRfc3VwcG9ydChodywg SU5ERVBfVFhSWCkpCgkJaW5mby0+ZGV2X2NhcGEgPSBSVEVfRVRIX0RFVl9DQVBBX1JVTlRJTUVf UlhfUVVFVUVfU0VUVVAgfAoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvaG5zMy9o bnMzX2V0aGRldl92Zi5jOjkzNQpIdW5rICM0IHN1Y2NlZWRlZCBhdCAxNjY5IChvZmZzZXQgMjkg bGluZXMpLgpIdW5rICM1IHN1Y2NlZWRlZCBhdCAxNjgyIChvZmZzZXQgMjkgbGluZXMpLgpIdW5r ICM2IHN1Y2NlZWRlZCBhdCAxNzUzIChvZmZzZXQgMjkgbGluZXMpLgpIdW5rICM3IHN1Y2NlZWRl ZCBhdCAxNzc4IChvZmZzZXQgMjkgbGluZXMpLgpIdW5rICM4IHN1Y2NlZWRlZCBhdCAyMDg4IChv ZmZzZXQgMjkgbGluZXMpLgpIdW5rICM5IHN1Y2NlZWRlZCBhdCAyMjQ3IChvZmZzZXQgMjkgbGlu ZXMpLgpIdW5rICMxMCBzdWNjZWVkZWQgYXQgMjU5OSAob2Zmc2V0IDI5IGxpbmVzKS4KQ2hlY2tp bmcgcGF0Y2ggZHJpdmVycy9uZXQvaG5zMy9obnMzX2Zsb3cuYy4uLgpDaGVja2luZyBwYXRjaCBk cml2ZXJzL25ldC9obnMzL2huczNfcHRwLmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQv aG5zMy9obnMzX3Jzcy5jLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2huczMvaG5zM19y c3MuaC4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9obnMzL2huczNfcnh0eC5jLi4uCmVy cm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJCQkJCQkgcnhxLT5yeF9idWZfbGVuKTsKCX0KCglp ZiAoZGV2X2NvbmYtPnJ4bW9kZS5vZmZsb2FkcyAmIERFVl9SWF9PRkZMT0FEX1NDQVRURVIgfHwK CSAgICBkZXYtPmRhdGEtPm10dSArIEhOUzNfRVRIX09WRVJIRUFEID4gaHctPnJ4X2J1Zl9sZW4p CgkJZGV2LT5kYXRhLT5zY2F0dGVyZWRfcnggPSB0cnVlOwp9CgplcnJvcjogcGF0Y2ggZmFpbGVk OiBkcml2ZXJzL25ldC9obnMzL2huczNfcnh0eC5jOjE5NjkKZXJyb3I6IHdoaWxlIHNlYXJjaGlu ZyBmb3I6CglpZiAoaG5zM19kZXZfZ2V0X3N1cHBvcnQoaHcsIFBUUCkpCgkJcmV0dXJuIGZhbHNl OwoKCXJldHVybiAob2ZmbG9hZHMgPT0gKG9mZmxvYWRzICYgREVWX1RYX09GRkxPQURfTUJVRl9G QVNUX0ZSRUUpKTsKfQoKc3RhdGljIGJvb2wKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMv bmV0L2huczMvaG5zM19yeHR4LmM6NDI5MQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9obnMz L2huczNfcnh0eC5oLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2huczMvaG5zM19yeHR4 X3ZlYy5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJaWYgKGhuczNfZGV2X2dldF9z dXBwb3J0KGh3LCBQVFApKQoJCXJldHVybiAtRU5PVFNVUDsKCgkvKiBPbmx5IHN1cHBvcnQgREVW X1RYX09GRkxPQURfTUJVRl9GQVNUX0ZSRUUgKi8KCWlmICh0eG1vZGUtPm9mZmxvYWRzICE9IERF Vl9UWF9PRkZMT0FEX01CVUZfRkFTVF9GUkVFKQoJCXJldHVybiAtRU5PVFNVUDsKCglyZXR1cm4g MDsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2huczMvaG5zM19yeHR4X3ZlYy5j OjIyCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgppbnQKaG5zM19yeF9jaGVja192ZWNfc3Vw cG9ydChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldikKewoJc3RydWN0IHJ0ZV9mZGlyX2NvbmYgKmZj b25mID0gJmRldi0+ZGF0YS0+ZGV2X2NvbmYuZmRpcl9jb25mOwoJc3RydWN0IHJ0ZV9ldGhfcnht b2RlICpyeG1vZGUgPSAmZGV2LT5kYXRhLT5kZXZfY29uZi5yeG1vZGU7Cgl1aW50NjRfdCBvZmZs b2Fkc19tYXNrID0gREVWX1JYX09GRkxPQURfVENQX0xSTyB8CgkJCQkgREVWX1JYX09GRkxPQURf VkxBTjsKCglzdHJ1Y3QgaG5zM19odyAqaHcgPSBITlMzX0RFVl9QUklWQVRFX1RPX0hXKGRldi0+ ZGF0YS0+ZGV2X3ByaXZhdGUpOwoJaWYgKGhuczNfZGV2X2dldF9zdXBwb3J0KGh3LCBQVFApKQoK ZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvaG5zMy9obnMzX3J4dHhfdmVjLmM6MjI4 CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYy4uLgpIdW5rICM2 IHN1Y2NlZWRlZCBhdCAyODc3IChvZmZzZXQgMSBsaW5lKS4KSHVuayAjNyBzdWNjZWVkZWQgYXQg MjkzMSAob2Zmc2V0IDEgbGluZSkuCkh1bmsgIzggc3VjY2VlZGVkIGF0IDI5NDcgKG9mZnNldCAx IGxpbmUpLgpIdW5rICM5IHN1Y2NlZWRlZCBhdCAyOTg1IChvZmZzZXQgMSBsaW5lKS4KZXJyb3I6 IHdoaWxlIHNlYXJjaGluZyBmb3I6CglkZXZfaW5mby0+bWluX210dSA9IFJURV9FVEhFUl9NSU5f TVRVOwoJZGV2X2luZm8tPnJ4X3F1ZXVlX29mZmxvYWRfY2FwYSA9IDA7CglkZXZfaW5mby0+cnhf b2ZmbG9hZF9jYXBhID0KCQlERVZfUlhfT0ZGTE9BRF9WTEFOX1NUUklQIHwKCQlERVZfUlhfT0ZG TE9BRF9RSU5RX1NUUklQIHwKCQlERVZfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwKCQlERVZfUlhf T0ZGTE9BRF9VRFBfQ0tTVU0gfAoJCURFVl9SWF9PRkZMT0FEX1RDUF9DS1NVTSB8CgkJREVWX1JY X09GRkxPQURfT1VURVJfSVBWNF9DS1NVTSB8CgkJREVWX1JYX09GRkxPQURfS0VFUF9DUkMgfAoJ CURFVl9SWF9PRkZMT0FEX1NDQVRURVIgfAoJCURFVl9SWF9PRkZMT0FEX1ZMQU5fRVhURU5EIHwK CQlERVZfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUiB8CgkJREVWX1JYX09GRkxPQURfUlNTX0hBU0g7 CgoJZGV2X2luZm8tPnR4X3F1ZXVlX29mZmxvYWRfY2FwYSA9IERFVl9UWF9PRkZMT0FEX01CVUZf RkFTVF9GUkVFOwoJZGV2X2luZm8tPnR4X29mZmxvYWRfY2FwYSA9CgkJREVWX1RYX09GRkxPQURf VkxBTl9JTlNFUlQgfAoJCURFVl9UWF9PRkZMT0FEX1FJTlFfSU5TRVJUIHwKCQlERVZfVFhfT0ZG TE9BRF9JUFY0X0NLU1VNIHwKCQlERVZfVFhfT0ZGTE9BRF9VRFBfQ0tTVU0gfAoJCURFVl9UWF9P RkZMT0FEX1RDUF9DS1NVTSB8CgkJREVWX1RYX09GRkxPQURfU0NUUF9DS1NVTSB8CgkJREVWX1RY X09GRkxPQURfT1VURVJfSVBWNF9DS1NVTSB8CgkJREVWX1RYX09GRkxPQURfVENQX1RTTyB8CgkJ REVWX1RYX09GRkxPQURfVlhMQU5fVE5MX1RTTyB8CgkJREVWX1RYX09GRkxPQURfR1JFX1ROTF9U U08gfAoJCURFVl9UWF9PRkZMT0FEX0lQSVBfVE5MX1RTTyB8CgkJREVWX1RYX09GRkxPQURfR0VO RVZFX1ROTF9UU08gfAoJCURFVl9UWF9PRkZMT0FEX01VTFRJX1NFR1MgfAoJCWRldl9pbmZvLT50 eF9xdWV1ZV9vZmZsb2FkX2NhcGE7CglkZXZfaW5mby0+ZGV2X2NhcGEgPQoJCVJURV9FVEhfREVW X0NBUEFfUlVOVElNRV9SWF9RVUVVRV9TRVRVUCB8CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2 ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MzcyMApIdW5rICMxMSBzdWNjZWVkZWQgYXQgMzgw MSAob2Zmc2V0IC00IGxpbmVzKS4KSHVuayAjMTIgc3VjY2VlZGVkIGF0IDM4MTUgKG9mZnNldCAt NCBsaW5lcykuCkh1bmsgIzEzIHN1Y2NlZWRlZCBhdCAzODY0IChvZmZzZXQgLTQgbGluZXMpLgpI dW5rICMxNCBzdWNjZWVkZWQgYXQgMzkxMSAob2Zmc2V0IC00IGxpbmVzKS4KSHVuayAjMTUgc3Vj Y2VlZGVkIGF0IDM5MzAgKG9mZnNldCAtNCBsaW5lcykuCkh1bmsgIzE2IHN1Y2NlZWRlZCBhdCAz OTk0IChvZmZzZXQgLTQgbGluZXMpLgpIdW5rICMxNyBzdWNjZWVkZWQgYXQgNDEwNyAob2Zmc2V0 IC00IGxpbmVzKS4KSHVuayAjMTggc3VjY2VlZGVkIGF0IDQxMzMgKG9mZnNldCAtNCBsaW5lcyku Ckh1bmsgIzE5IHN1Y2NlZWRlZCBhdCA0MjgzIChvZmZzZXQgLTQgbGluZXMpLgpIdW5rICMyMCBz dWNjZWVkZWQgYXQgNDQzNiAob2Zmc2V0IC00IGxpbmVzKS4KSHVuayAjMjEgc3VjY2VlZGVkIGF0 IDQ0NTIgKG9mZnNldCAtNCBsaW5lcykuCkh1bmsgIzIyIHN1Y2NlZWRlZCBhdCA0NDc5IChvZmZz ZXQgLTQgbGluZXMpLgpIdW5rICMyMyBzdWNjZWVkZWQgYXQgNDQ5NiAob2Zmc2V0IC00IGxpbmVz KS4KSHVuayAjMjQgc3VjY2VlZGVkIGF0IDQ4MTQgKG9mZnNldCAtNCBsaW5lcykuCkh1bmsgIzI1 IHN1Y2NlZWRlZCBhdCA2MTAwIChvZmZzZXQgLTQgbGluZXMpLgpIdW5rICMyNiBzdWNjZWVkZWQg YXQgNjIzMCAob2Zmc2V0IC02IGxpbmVzKS4KSHVuayAjMjcgc3VjY2VlZGVkIGF0IDcwODUgKG9m ZnNldCAtMTMgbGluZXMpLgpIdW5rICMyOCBzdWNjZWVkZWQgYXQgNzEyMCAob2Zmc2V0IC0xMyBs aW5lcykuCkh1bmsgIzI5IHN1Y2NlZWRlZCBhdCA3NzE0IChvZmZzZXQgLTEzIGxpbmVzKS4KSHVu ayAjMzAgc3VjY2VlZGVkIGF0IDg2OTggKG9mZnNldCAtMTMgbGluZXMpLgpIdW5rICMzMSBzdWNj ZWVkZWQgYXQgODczMyAob2Zmc2V0IC0xMyBsaW5lcykuCkh1bmsgIzMyIHN1Y2NlZWRlZCBhdCA4 ODMwIChvZmZzZXQgLTEzIGxpbmVzKS4KSHVuayAjMzMgc3VjY2VlZGVkIGF0IDg4MzggKG9mZnNl dCAtMTMgbGluZXMpLgpIdW5rICMzNCBzdWNjZWVkZWQgYXQgODkxNyAob2Zmc2V0IC0xMyBsaW5l cykuCkh1bmsgIzM1IHN1Y2NlZWRlZCBhdCAxMDI1NCAob2Zmc2V0IC0xMyBsaW5lcykuCkh1bmsg IzM2IHN1Y2NlZWRlZCBhdCAxMDQ5MSAob2Zmc2V0IC0xMyBsaW5lcykuCkh1bmsgIzM3IHN1Y2Nl ZWRlZCBhdCAxMDk5OSAob2Zmc2V0IC0xMyBsaW5lcykuCkh1bmsgIzM4IHN1Y2NlZWRlZCBhdCAx MTA0NyAob2Zmc2V0IC0xMyBsaW5lcykuCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2k0MGUv aTQwZV9ldGhkZXYuaC4uLgpIdW5rICMxIHN1Y2NlZWRlZCBhdCAxNDAgKG9mZnNldCAtNyBsaW5l cykuCkh1bmsgIzIgc3VjY2VlZGVkIGF0IDEwNTYgKG9mZnNldCAtNyBsaW5lcykuCkNoZWNraW5n IHBhdGNoIGRyaXZlcnMvbmV0L2k0MGUvaTQwZV9mbG93LmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJp dmVycy9uZXQvaTQwZS9pNDBlX2hhc2guYy4uLgpIdW5rICMxIHN1Y2NlZWRlZCBhdCAxMDIgKG9m ZnNldCAtMyBsaW5lcykuCkh1bmsgIzIgc3VjY2VlZGVkIGF0IDIwMSAob2Zmc2V0IC03IGxpbmVz KS4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CnN0YXRpYyBjb25zdCBzdHJ1Y3QgaTQwZV9o YXNoX21hdGNoX3BhdHRlcm4gbWF0Y2hfcGF0dGVybnNbXSA9IHsKCS8qIEV0aGVyICovCglJNDBF X0hBU0hfTUFQX1BBVFRFUk4oSTQwRV9QSElOVF9FVEgsCgkJCSAgICAgIEVUSF9SU1NfTDJfUEFZ TE9BRCB8IEk0MEVfSEFTSF9MMl9SU1NfTUFTSywKCQkJICAgICAgSTQwRV9GSUxURVJfUENUWVBF X0wyX1BBWUxPQUQpLAoKCS8qIElQdjQgKi8KCUk0MEVfSEFTSF9NQVBfUEFUVEVSTihJNDBFX1BI SU5UX0lQVjQsCgkJCSAgICAgIEVUSF9SU1NfRlJBR19JUFY0IHwgSTQwRV9IQVNIX0lQVjRfTDIz X1JTU19NQVNLLAoJCQkgICAgICBJNDBFX0ZJTFRFUl9QQ1RZUEVfRlJBR19JUFY0KSwKCglJNDBF X0hBU0hfTUFQX1BBVFRFUk4oSTQwRV9QSElOVF9JUFY0LAoJCQkgICAgICBFVEhfUlNTX05PTkZS QUdfSVBWNF9PVEhFUiB8CgkJCSAgICAgIEk0MEVfSEFTSF9JUFY0X0wyM19SU1NfTUFTSywKCQkJ ICAgICAgSTQwRV9GSUxURVJfUENUWVBFX05PTkZfSVBWNF9PVEhFUiksCgoJSTQwRV9IQVNIX01B UF9QQVRURVJOKEk0MEVfUEhJTlRfSVBWNF9UQ1AsCgkJCSAgICAgIEVUSF9SU1NfTk9ORlJBR19J UFY0X1RDUCB8CgkJCSAgICAgIEk0MEVfSEFTSF9JUFY0X0wyMzRfUlNTX01BU0ssCgkJCSAgICAg IEk0MEVfRklMVEVSX1BDVFlQRV9OT05GX0lQVjRfVENQKSwKCglJNDBFX0hBU0hfTUFQX1BBVFRF Uk4oSTQwRV9QSElOVF9JUFY0X1VEUCwKCQkJICAgICAgRVRIX1JTU19OT05GUkFHX0lQVjRfVURQ IHwKCQkJICAgICAgSTQwRV9IQVNIX0lQVjRfTDIzNF9SU1NfTUFTSywKCQkJICAgICAgSTQwRV9G SUxURVJfUENUWVBFX05PTkZfSVBWNF9VRFApLAoKCUk0MEVfSEFTSF9NQVBfUEFUVEVSTihJNDBF X1BISU5UX0lQVjRfU0NUUCwKCQkJICAgICAgRVRIX1JTU19OT05GUkFHX0lQVjRfU0NUUCB8CgkJ CSAgICAgIEk0MEVfSEFTSF9JUFY0X0wyMzRfUlNTX01BU0ssCgkJCSAgICAgIEk0MEVfRklMVEVS X1BDVFlQRV9OT05GX0lQVjRfU0NUUCksCgoJLyogSVB2NiAqLwoJSTQwRV9IQVNIX01BUF9QQVRU RVJOKEk0MEVfUEhJTlRfSVBWNiwKCQkJICAgICAgRVRIX1JTU19GUkFHX0lQVjYgfCBJNDBFX0hB U0hfSVBWNl9MMjNfUlNTX01BU0ssCgkJCSAgICAgIEk0MEVfRklMVEVSX1BDVFlQRV9GUkFHX0lQ VjYpLAoKCUk0MEVfSEFTSF9NQVBfUEFUVEVSTihJNDBFX1BISU5UX0lQVjYsCgkJCSAgICAgIEVU SF9SU1NfTk9ORlJBR19JUFY2X09USEVSIHwKCQkJICAgICAgSTQwRV9IQVNIX0lQVjZfTDIzX1JT U19NQVNLLAoJCQkgICAgICBJNDBFX0ZJTFRFUl9QQ1RZUEVfTk9ORl9JUFY2X09USEVSKSwKCglJ NDBFX0hBU0hfTUFQX1BBVFRFUk4oSTQwRV9QSElOVF9JUFY2X0ZSQUcsCgkJCSAgICAgIEVUSF9S U1NfRlJBR19JUFY2IHwgSTQwRV9IQVNIX0wyM19SU1NfTUFTSywKCQkJICAgICAgSTQwRV9GSUxU RVJfUENUWVBFX0ZSQUdfSVBWNiksCgoJSTQwRV9IQVNIX01BUF9QQVRURVJOKEk0MEVfUEhJTlRf SVBWNl9UQ1AsCgkJCSAgICAgIEVUSF9SU1NfTk9ORlJBR19JUFY2X1RDUCB8CgkJCSAgICAgIEk0 MEVfSEFTSF9JUFY2X0wyMzRfUlNTX01BU0ssCgkJCSAgICAgIEk0MEVfRklMVEVSX1BDVFlQRV9O T05GX0lQVjZfVENQKSwKCglJNDBFX0hBU0hfTUFQX1BBVFRFUk4oSTQwRV9QSElOVF9JUFY2X1VE UCwKCQkJICAgICAgRVRIX1JTU19OT05GUkFHX0lQVjZfVURQIHwKCQkJICAgICAgSTQwRV9IQVNI X0lQVjZfTDIzNF9SU1NfTUFTSywKCQkJICAgICAgSTQwRV9GSUxURVJfUENUWVBFX05PTkZfSVBW Nl9VRFApLAoKCUk0MEVfSEFTSF9NQVBfUEFUVEVSTihJNDBFX1BISU5UX0lQVjZfU0NUUCwKCQkJ ICAgICAgRVRIX1JTU19OT05GUkFHX0lQVjZfU0NUUCB8CgkJCSAgICAgIEk0MEVfSEFTSF9JUFY2 X0wyMzRfUlNTX01BU0ssCgkJCSAgICAgIEk0MEVfRklMVEVSX1BDVFlQRV9OT05GX0lQVjZfU0NU UCksCgoJLyogRVNQICovCglJNDBFX0hBU0hfTUFQX0NVU19QQVRURVJOKEk0MEVfUEhJTlRfSVBW NF9FU1AsCgkJCQkgIEVUSF9SU1NfRVNQLCBJNDBFX0NVU1RPTUlaRURfRVNQX0lQVjQpLAoJSTQw RV9IQVNIX01BUF9DVVNfUEFUVEVSTihJNDBFX1BISU5UX0lQVjZfRVNQLAoJCQkJICBFVEhfUlNT X0VTUCwgSTQwRV9DVVNUT01JWkVEX0VTUF9JUFY2KSwKCUk0MEVfSEFTSF9NQVBfQ1VTX1BBVFRF Uk4oSTQwRV9QSElOVF9JUFY0X1VEUF9FU1AsCgkJCQkgIEVUSF9SU1NfRVNQLCBJNDBFX0NVU1RP TUlaRURfRVNQX0lQVjRfVURQKSwKCUk0MEVfSEFTSF9NQVBfQ1VTX1BBVFRFUk4oSTQwRV9QSElO VF9JUFY2X1VEUF9FU1AsCgkJCQkgIEVUSF9SU1NfRVNQLCBJNDBFX0NVU1RPTUlaRURfRVNQX0lQ VjZfVURQKSwKCgkvKiBHVFBDICovCglJNDBFX0hBU0hfTUFQX0NVU19QQVRURVJOKEk0MEVfUEhJ TlRfSVBWNF9HVFBDLAoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvaTQwZS9pNDBl X2hhc2guYzoyMzkKSHVuayAjNCBzdWNjZWVkZWQgYXQgMzA4IChvZmZzZXQgLTExIGxpbmVzKS4K SHVuayAjNSBzdWNjZWVkZWQgYXQgNTY0IChvZmZzZXQgLTExIGxpbmVzKS4KSHVuayAjNiBzdWNj ZWVkZWQgYXQgODI1IChvZmZzZXQgLTExIGxpbmVzKS4KSHVuayAjNyBzdWNjZWVkZWQgYXQgOTMy IChvZmZzZXQgLTExIGxpbmVzKS4KSHVuayAjOCBzdWNjZWVkZWQgYXQgMTA3MCAob2Zmc2V0IC0x MSBsaW5lcykuCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2k0MGUvaTQwZV9wZi5jLi4uCkNo ZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2k0MGUvaTQwZV9yeHR4LmMuLi4KSHVuayAjMyBzdWNj ZWVkZWQgYXQgMjI2OSAob2Zmc2V0IDI2IGxpbmVzKS4KSHVuayAjNCBzdWNjZWVkZWQgYXQgMzQ0 MyAob2Zmc2V0IDI2IGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaTQwZS9pNDBl X3J4dHguaC4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9pNDBlL2k0MGVfcnh0eF92ZWNf YXZ4NTEyLmMuLi4KSHVuayAjMSBzdWNjZWVkZWQgYXQgODk5IChvZmZzZXQgLTEgbGluZXMpLgpD aGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9pNDBlL2k0MGVfcnh0eF92ZWNfY29tbW9uLmguLi4K Q2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaTQwZS9pNDBlX3ZmX3JlcHJlc2VudG9yLmMuLi4K Q2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaWF2Zi9pYXZmLmguLi4KQ2hlY2tpbmcgcGF0Y2gg ZHJpdmVycy9uZXQvaWF2Zi9pYXZmX2V0aGRldi5jLi4uCkh1bmsgIzcgc3VjY2VlZGVkIGF0IDYx MCAob2Zmc2V0IC0xIGxpbmVzKS4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CglkZXZfaW5m by0+Zmxvd190eXBlX3Jzc19vZmZsb2FkcyA9IElBVkZfUlNTX09GRkxPQURfQUxMOwoJZGV2X2lu Zm8tPm1heF9tYWNfYWRkcnMgPSBJQVZGX05VTV9NQUNBRERSX01BWDsKCWRldl9pbmZvLT5yeF9v ZmZsb2FkX2NhcGEgPQoJCURFVl9SWF9PRkZMT0FEX1ZMQU5fU1RSSVAgfAoJCURFVl9SWF9PRkZM T0FEX1FJTlFfU1RSSVAgfAoJCURFVl9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAoJCURFVl9SWF9P RkZMT0FEX1VEUF9DS1NVTSB8CgkJREVWX1JYX09GRkxPQURfVENQX0NLU1VNIHwKCQlERVZfUlhf T0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNIHwKCQlERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSIHwKCQlE RVZfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUiB8CgkJREVWX1JYX09GRkxPQURfUlNTX0hBU0g7CgoJ ZGV2X2luZm8tPnR4X29mZmxvYWRfY2FwYSA9CgkJREVWX1RYX09GRkxPQURfVkxBTl9JTlNFUlQg fAoJCURFVl9UWF9PRkZMT0FEX1FJTlFfSU5TRVJUIHwKCQlERVZfVFhfT0ZGTE9BRF9JUFY0X0NL U1VNIHwKCQlERVZfVFhfT0ZGTE9BRF9VRFBfQ0tTVU0gfAoJCURFVl9UWF9PRkZMT0FEX1RDUF9D S1NVTSB8CgkJREVWX1RYX09GRkxPQURfU0NUUF9DS1NVTSB8CgkJREVWX1RYX09GRkxPQURfT1VU RVJfSVBWNF9DS1NVTSB8CgkJREVWX1RYX09GRkxPQURfVENQX1RTTyB8CgkJREVWX1RYX09GRkxP QURfVlhMQU5fVE5MX1RTTyB8CgkJREVWX1RYX09GRkxPQURfR1JFX1ROTF9UU08gfAoJCURFVl9U WF9PRkZMT0FEX0lQSVBfVE5MX1RTTyB8CgkJREVWX1RYX09GRkxPQURfR0VORVZFX1ROTF9UU08g fAoJCURFVl9UWF9PRkZMT0FEX01VTFRJX1NFR1MgfAoJCURFVl9UWF9PRkZMT0FEX01CVUZfRkFT VF9GUkVFOwoKCWlmICh2Zi0+dmZfcmVzLT52Zl9jYXBfZmxhZ3MgJiBWSVJUQ0hOTF9WRl9PRkZM T0FEX0NSQykKCQlkZXZfaW5mby0+cnhfb2ZmbG9hZF9jYXBhIHw9IERFVl9SWF9PRkZMT0FEX0tF RVBfQ1JDOwoKCWRldl9pbmZvLT5kZWZhdWx0X3J4Y29uZiA9IChzdHJ1Y3QgcnRlX2V0aF9yeGNv bmYpIHsKCQkucnhfZnJlZV90aHJlc2ggPSBJQVZGX0RFRkFVTFRfUlhfRlJFRV9USFJFU0gsCgpl cnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9pYXZmL2lhdmZfZXRoZGV2LmM6OTYxCkh1 bmsgIzE0IHN1Y2NlZWRlZCBhdCAxNTcxIChvZmZzZXQgMTUgbGluZXMpLgpDaGVja2luZyBwYXRj aCBkcml2ZXJzL25ldC9pYXZmL2lhdmZfaGFzaC5jLi4uCkh1bmsgIzEgc3VjY2VlZGVkIGF0IDM0 MSAob2Zmc2V0IC01NCBsaW5lcykuCkh1bmsgIzIgc3VjY2VlZGVkIGF0IDQ0MiAob2Zmc2V0IC01 NCBsaW5lcykuCkh1bmsgIzMgc3VjY2VlZGVkIGF0IDQ4NCAob2Zmc2V0IC01NCBsaW5lcykuCkh1 bmsgIzQgc3VjY2VlZGVkIGF0IDUwNCAob2Zmc2V0IC02MSBsaW5lcykuCkh1bmsgIzUgc3VjY2Vl ZGVkIGF0IDU0NiAob2Zmc2V0IC02MSBsaW5lcykuCkh1bmsgIzYgc3VjY2VlZGVkIGF0IDU4MCAo b2Zmc2V0IC02OCBsaW5lcykuCkh1bmsgIzcgc3VjY2VlZGVkIGF0IDc3OSAob2Zmc2V0IC03NiBs aW5lcykuCkh1bmsgIzggc3VjY2VlZGVkIGF0IDgwOCAob2Zmc2V0IC03NiBsaW5lcykuCkh1bmsg Izkgc3VjY2VlZGVkIGF0IDg1NyAob2Zmc2V0IC03NiBsaW5lcykuCkh1bmsgIzEwIHN1Y2NlZWRl ZCBhdCA4NjUgKG9mZnNldCAtNzYgbGluZXMpLgpIdW5rICMxMSBzdWNjZWVkZWQgYXQgOTYyIChv ZmZzZXQgLTc2IGxpbmVzKS4KSHVuayAjMTIgc3VjY2VlZGVkIGF0IDEwNTkgKG9mZnNldCAtMTA0 IGxpbmVzKS4KSHVuayAjMTMgc3VjY2VlZGVkIGF0IDEwNzMgKG9mZnNldCAtMTA0IGxpbmVzKS4K SHVuayAjMTQgc3VjY2VlZGVkIGF0IDExMDMgKG9mZnNldCAtMTA0IGxpbmVzKS4KSHVuayAjMTUg c3VjY2VlZGVkIGF0IDExMjIgKG9mZnNldCAtMTA0IGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2ggZHJp dmVycy9uZXQvaWF2Zi9pYXZmX3J4dHguYy4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9p YXZmL2lhdmZfcnh0eC5oLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2lhdmYvaWF2Zl9y eHR4X3ZlY19hdngyLmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJICogbmVlZHMg dG8gbG9hZCAybmQgMTZCIG9mIGVhY2ggZGVzYyBmb3IgUlNTIGhhc2ggcGFyc2luZywKCQkgKiB3 aWxsIGNhdXNlIHBlcmZvcm1hbmNlIGRyb3AgdG8gZ2V0IGludG8gdGhpcyBjb250ZXh0LgoJCSAq LwoJCWlmIChvZmZsb2FkcyAmIERFVl9SWF9PRkZMT0FEX1JTU19IQVNIIHx8CgkJICAgIHJ4cS0+ cnhfZmxhZ3MgJiBJQVZGX1JYX0ZMQUdTX1ZMQU5fVEFHX0xPQ19MMlRBRzJfMikgewoJCQkvKiBs b2FkIGJvdHRvbSBoYWxmIG9mIGV2ZXJ5IDMyQiBkZXNjICovCgkJCWNvbnN0IF9fbTEyOGkgcmF3 X2Rlc2NfYmg3ID0KCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2lhdmYvaWF2Zl9y eHR4X3ZlY19hdngyLmM6OTA2CmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJCQkJCShfbW0y NTZfY2FzdHNpMTI4X3NpMjU2KHJhd19kZXNjX2JoMCksCgkJCQkJcmF3X2Rlc2NfYmgxLCAxKTsK CgkJCWlmIChvZmZsb2FkcyAmIERFVl9SWF9PRkZMT0FEX1JTU19IQVNIKSB7CgkJCQkvKioKCQkJ CSAqIHRvIHNoaWZ0IHRoZSAzMmIgUlNTIGhhc2ggdmFsdWUgdG8gdGhlCgkJCQkgKiBoaWdoZXN0 IDMyYiBvZiBlYWNoIDEyOGIgYmVmb3JlIG1hc2sKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZl cnMvbmV0L2lhdmYvaWF2Zl9yeHR4X3ZlY19hdngyLmM6OTU4CkNoZWNraW5nIHBhdGNoIGRyaXZl cnMvbmV0L2lhdmYvaWF2Zl9yeHR4X3ZlY19hdng1MTIuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNo aW5nIGZvcjoKCQkJICogbmVlZHMgdG8gbG9hZCAybmQgMTZCIG9mIGVhY2ggZGVzYyBmb3IgUlNT IGhhc2ggcGFyc2luZywKCQkJICogd2lsbCBjYXVzZSBwZXJmb3JtYW5jZSBkcm9wIHRvIGdldCBp bnRvIHRoaXMgY29udGV4dC4KCQkJICovCgkJCWlmIChvZmZsb2FkcyAmIERFVl9SWF9PRkZMT0FE X1JTU19IQVNIIHx8CgkJCSAgICByeHEtPnJ4X2ZsYWdzICYgSUFWRl9SWF9GTEFHU19WTEFOX1RB R19MT0NfTDJUQUcyXzIpIHsKCQkJCS8qIGxvYWQgYm90dG9tIGhhbGYgb2YgZXZlcnkgMzJCIGRl c2MgKi8KCQkJCWNvbnN0IF9fbTEyOGkgcmF3X2Rlc2NfYmg3ID0KCmVycm9yOiBwYXRjaCBmYWls ZWQ6IGRyaXZlcnMvbmV0L2lhdmYvaWF2Zl9yeHR4X3ZlY19hdng1MTIuYzoxMTQxCmVycm9yOiB3 aGlsZSBzZWFyY2hpbmcgZm9yOgoJCQkJCQkoX21tMjU2X2Nhc3RzaTEyOF9zaTI1NihyYXdfZGVz Y19iaDApLAoJCQkJCQkgcmF3X2Rlc2NfYmgxLCAxKTsKCgkJCQlpZiAob2ZmbG9hZHMgJiBERVZf UlhfT0ZGTE9BRF9SU1NfSEFTSCkgewoJCQkJCS8qKgoJCQkJCSAqIHRvIHNoaWZ0IHRoZSAzMmIg UlNTIGhhc2ggdmFsdWUgdG8gdGhlCgkJCQkJICogaGlnaGVzdCAzMmIgb2YgZWFjaCAxMjhiIGJl Zm9yZSBtYXNrCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9pYXZmL2lhdmZfcnh0 eF92ZWNfYXZ4NTEyLmM6MTE5MwpIdW5rICMzIHN1Y2NlZWRlZCBhdCAxNzE5IChvZmZzZXQgLTIg bGluZXMpLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9pYXZmL2lhdmZfcnh0eF92ZWNfc3Nl LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJICogbmVlZHMgdG8gbG9hZCAybmQg MTZCIG9mIGVhY2ggZGVzYyBmb3IgUlNTIGhhc2ggcGFyc2luZywKCQkgKiB3aWxsIGNhdXNlIHBl cmZvcm1hbmNlIGRyb3AgdG8gZ2V0IGludG8gdGhpcyBjb250ZXh0LgoJCSAqLwoJCWlmIChvZmZs b2FkcyAmIERFVl9SWF9PRkZMT0FEX1JTU19IQVNIKSB7CgkJCS8qIGxvYWQgYm90dG9tIGhhbGYg b2YgZXZlcnkgMzJCIGRlc2MgKi8KCQkJY29uc3QgX19tMTI4aSByYXdfZGVzY19iaDMgPQoJCQkJ X21tX2xvYWRfc2kxMjgKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2lhdmYvaWF2 Zl9yeHR4X3ZlY19zc2UuYzo4MTkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaWNlL2ljZV9k Y2YuYy4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9pY2UvaWNlX2RjZl9ldGhkZXYuYy4u LgpIdW5rICMxIHN1Y2NlZWRlZCBhdCA5NiAob2Zmc2V0IDEgbGluZSkuCkh1bmsgIzIgc3VjY2Vl ZGVkIGF0IDU3NyAob2Zmc2V0IC01IGxpbmVzKS4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6 Cgl9CgoJaWNlX2RjZl9hZGRfZGVsX2FsbF9tYWNfYWRkcigmZGNmX2FkLT5yZWFsX2h3LCBmYWxz ZSk7CglkZXYtPmRhdGEtPmRldl9saW5rLmxpbmtfc3RhdHVzID0gRVRIX0xJTktfRE9XTjsKCWFk LT5wZi5hZGFwdGVyX3N0b3BwZWQgPSAxOwoJaHctPnRtX2NvbmYuY29tbWl0dGVkID0gZmFsc2U7 CgoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvaWNlL2ljZV9kY2ZfZXRoZGV2LmM6 NjQ0Ckh1bmsgIzQgc3VjY2VlZGVkIGF0IDY1NSAob2Zmc2V0IC01IGxpbmVzKS4KZXJyb3I6IHdo aWxlIHNlYXJjaGluZyBmb3I6CglkZXZfaW5mby0+Zmxvd190eXBlX3Jzc19vZmZsb2FkcyA9IElD RV9SU1NfT0ZGTE9BRF9BTEw7CgoJZGV2X2luZm8tPnJ4X29mZmxvYWRfY2FwYSA9CgkJREVWX1JY X09GRkxPQURfVkxBTl9TVFJJUCB8CgkJREVWX1JYX09GRkxPQURfSVBWNF9DS1NVTSB8CgkJREVW X1JYX09GRkxPQURfVURQX0NLU1VNIHwKCQlERVZfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0gfAoJCURF Vl9SWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gfAoJCURFVl9SWF9PRkZMT0FEX1NDQVRURVIg fAoJCURFVl9SWF9PRkZMT0FEX1ZMQU5fRklMVEVSIHwKCQlERVZfUlhfT0ZGTE9BRF9SU1NfSEFT SDsKCWRldl9pbmZvLT50eF9vZmZsb2FkX2NhcGEgPQoJCURFVl9UWF9PRkZMT0FEX1ZMQU5fSU5T RVJUIHwKCQlERVZfVFhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwKCQlERVZfVFhfT0ZGTE9BRF9VRFBf Q0tTVU0gfAoJCURFVl9UWF9PRkZMT0FEX1RDUF9DS1NVTSB8CgkJREVWX1RYX09GRkxPQURfU0NU UF9DS1NVTSB8CgkJREVWX1RYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTSB8CgkJREVWX1RYX09G RkxPQURfVENQX1RTTyB8CgkJREVWX1RYX09GRkxPQURfVlhMQU5fVE5MX1RTTyB8CgkJREVWX1RY X09GRkxPQURfR1JFX1ROTF9UU08gfAoJCURFVl9UWF9PRkZMT0FEX0lQSVBfVE5MX1RTTyB8CgkJ REVWX1RYX09GRkxPQURfR0VORVZFX1ROTF9UU08gfAoJCURFVl9UWF9PRkZMT0FEX01VTFRJX1NF R1M7CgoJZGV2X2luZm8tPmRlZmF1bHRfcnhjb25mID0gKHN0cnVjdCBydGVfZXRoX3J4Y29uZikg ewoJCS5yeF90aHJlc2ggPSB7CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9pY2Uv aWNlX2RjZl9ldGhkZXYuYzo2ODMKSHVuayAjNiBzdWNjZWVkZWQgYXQgOTI3IChvZmZzZXQgLTYg bGluZXMpLgpIdW5rICM3IHN1Y2NlZWRlZCBhdCA5ODEgKG9mZnNldCAtNiBsaW5lcykuCkh1bmsg Izggc3VjY2VlZGVkIGF0IDEwMTIgKG9mZnNldCAtNiBsaW5lcykuCkNoZWNraW5nIHBhdGNoIGRy aXZlcnMvbmV0L2ljZS9pY2VfZGNmX3ZmX3JlcHJlc2VudG9yLmMuLi4KZXJyb3I6IHdoaWxlIHNl YXJjaGluZyBmb3I6CglkZXZfaW5mby0+Zmxvd190eXBlX3Jzc19vZmZsb2FkcyA9IElDRV9SU1Nf T0ZGTE9BRF9BTEw7CgoJZGV2X2luZm8tPnJ4X29mZmxvYWRfY2FwYSA9CgkJREVWX1JYX09GRkxP QURfVkxBTl9TVFJJUCB8CgkJREVWX1JYX09GRkxPQURfSVBWNF9DS1NVTSB8CgkJREVWX1JYX09G RkxPQURfVURQX0NLU1VNIHwKCQlERVZfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0gfAoJCURFVl9SWF9P RkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gfAoJCURFVl9SWF9PRkZMT0FEX1NDQVRURVIgfAoJCURF Vl9SWF9PRkZMT0FEX1ZMQU5fRklMVEVSIHwKCQlERVZfUlhfT0ZGTE9BRF9WTEFOX0VYVEVORCB8 CgkJREVWX1JYX09GRkxPQURfUlNTX0hBU0g7CglkZXZfaW5mby0+dHhfb2ZmbG9hZF9jYXBhID0K CQlERVZfVFhfT0ZGTE9BRF9WTEFOX0lOU0VSVCB8CgkJREVWX1RYX09GRkxPQURfSVBWNF9DS1NV TSB8CgkJREVWX1RYX09GRkxPQURfVURQX0NLU1VNIHwKCQlERVZfVFhfT0ZGTE9BRF9UQ1BfQ0tT VU0gfAoJCURFVl9UWF9PRkZMT0FEX1NDVFBfQ0tTVU0gfAoJCURFVl9UWF9PRkZMT0FEX09VVEVS X0lQVjRfQ0tTVU0gfAoJCURFVl9UWF9PRkZMT0FEX1RDUF9UU08gfAoJCURFVl9UWF9PRkZMT0FE X1ZYTEFOX1ROTF9UU08gfAoJCURFVl9UWF9PRkZMT0FEX0dSRV9UTkxfVFNPIHwKCQlERVZfVFhf T0ZGTE9BRF9JUElQX1ROTF9UU08gfAoJCURFVl9UWF9PRkZMT0FEX0dFTkVWRV9UTkxfVFNPIHwK CQlERVZfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTOwoKCWRldl9pbmZvLT5kZWZhdWx0X3J4Y29uZiA9 IChzdHJ1Y3QgcnRlX2V0aF9yeGNvbmYpIHsKCQkucnhfdGhyZXNoID0gewoKZXJyb3I6IHBhdGNo IGZhaWxlZDogZHJpdmVycy9uZXQvaWNlL2ljZV9kY2ZfdmZfcmVwcmVzZW50b3IuYzoxNDMKSHVu ayAjNCBzdWNjZWVkZWQgYXQgMjQ3IChvZmZzZXQgMSBsaW5lKS4KSHVuayAjNSBzdWNjZWVkZWQg YXQgMzQ2IChvZmZzZXQgMSBsaW5lKS4KSHVuayAjNiBzdWNjZWVkZWQgYXQgMzc2IChvZmZzZXQg MSBsaW5lKS4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaWNlL2ljZV9ldGhkZXYuYy4uLgpI dW5rICMxIHN1Y2NlZWRlZCBhdCAxNDgwIChvZmZzZXQgLTcgbGluZXMpLgpIdW5rICMyIHN1Y2Nl ZWRlZCBhdCAyOTg2IChvZmZzZXQgLTcgbGluZXMpLgpIdW5rICMzIHN1Y2NlZWRlZCBhdCAzMDAz IChvZmZzZXQgLTcgbGluZXMpLgpIdW5rICM0IHN1Y2NlZWRlZCBhdCAzMDEzIChvZmZzZXQgLTcg bGluZXMpLgpIdW5rICM1IHN1Y2NlZWRlZCBhdCAzMDIzIChvZmZzZXQgLTcgbGluZXMpLgpIdW5r ICM2IHN1Y2NlZWRlZCBhdCAzMDM0IChvZmZzZXQgLTcgbGluZXMpLgpIdW5rICM3IHN1Y2NlZWRl ZCBhdCAzMDQ1IChvZmZzZXQgLTcgbGluZXMpLgpIdW5rICM4IHN1Y2NlZWRlZCBhdCAzMDU2IChv ZmZzZXQgLTcgbGluZXMpLgpIdW5rICM5IHN1Y2NlZWRlZCBhdCAzMDY3IChvZmZzZXQgLTcgbGlu ZXMpLgpIdW5rICMxMCBzdWNjZWVkZWQgYXQgMzA3OCAob2Zmc2V0IC03IGxpbmVzKS4KSHVuayAj MTEgc3VjY2VlZGVkIGF0IDMwODggKG9mZnNldCAtNyBsaW5lcykuCkh1bmsgIzEyIHN1Y2NlZWRl ZCBhdCAzMDk4IChvZmZzZXQgLTcgbGluZXMpLgpIdW5rICMxMyBzdWNjZWVkZWQgYXQgMzEwOCAo b2Zmc2V0IC03IGxpbmVzKS4KSHVuayAjMTQgc3VjY2VlZGVkIGF0IDMxMTggKG9mZnNldCAtNyBs aW5lcykuCkh1bmsgIzE1IHN1Y2NlZWRlZCBhdCAzMTI4IChvZmZzZXQgLTcgbGluZXMpLgpIdW5r ICMxNiBzdWNjZWVkZWQgYXQgMzEzOCAob2Zmc2V0IC03IGxpbmVzKS4KSHVuayAjMTcgc3VjY2Vl ZGVkIGF0IDMyODEgKG9mZnNldCAtNyBsaW5lcykuCkh1bmsgIzE4IHN1Y2NlZWRlZCBhdCAzNTYy IChvZmZzZXQgLTcgbGluZXMpLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCWRldl9pbmZv LT5taW5fbXR1ID0gUlRFX0VUSEVSX01JTl9NVFU7CgoJZGV2X2luZm8tPnJ4X29mZmxvYWRfY2Fw YSA9CgkJREVWX1JYX09GRkxPQURfVkxBTl9TVFJJUCB8CgkJREVWX1JYX09GRkxPQURfS0VFUF9D UkMgfAoJCURFVl9SWF9PRkZMT0FEX1NDQVRURVIgfAoJCURFVl9SWF9PRkZMT0FEX1ZMQU5fRklM VEVSOwoJZGV2X2luZm8tPnR4X29mZmxvYWRfY2FwYSA9CgkJREVWX1RYX09GRkxPQURfVkxBTl9J TlNFUlQgfAoJCURFVl9UWF9PRkZMT0FEX1RDUF9UU08gfAoJCURFVl9UWF9PRkZMT0FEX01VTFRJ X1NFR1MgfAoJCURFVl9UWF9PRkZMT0FEX01CVUZfRkFTVF9GUkVFOwoJZGV2X2luZm8tPmZsb3df dHlwZV9yc3Nfb2ZmbG9hZHMgPSAwOwoKCWlmICghaXNfc2FmZV9tb2RlKSB7CgkJZGV2X2luZm8t PnJ4X29mZmxvYWRfY2FwYSB8PQoJCQlERVZfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwKCQkJREVW X1JYX09GRkxPQURfVURQX0NLU1VNIHwKCQkJREVWX1JYX09GRkxPQURfVENQX0NLU1VNIHwKCQkJ REVWX1JYX09GRkxPQURfUUlOUV9TVFJJUCB8CgkJCURFVl9SWF9PRkZMT0FEX09VVEVSX0lQVjRf Q0tTVU0gfAoJCQlERVZfUlhfT0ZGTE9BRF9WTEFOX0VYVEVORCB8CgkJCURFVl9SWF9PRkZMT0FE X1JTU19IQVNIIHwKCQkJREVWX1JYX09GRkxPQURfVElNRVNUQU1QOwoJCWRldl9pbmZvLT50eF9v ZmZsb2FkX2NhcGEgfD0KCQkJREVWX1RYX09GRkxPQURfUUlOUV9JTlNFUlQgfAoJCQlERVZfVFhf T0ZGTE9BRF9JUFY0X0NLU1VNIHwKCQkJREVWX1RYX09GRkxPQURfVURQX0NLU1VNIHwKCQkJREVW X1RYX09GRkxPQURfVENQX0NLU1VNIHwKCQkJREVWX1RYX09GRkxPQURfU0NUUF9DS1NVTSB8CgkJ CURFVl9UWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gfAoJCQlERVZfVFhfT0ZGTE9BRF9PVVRF Ul9VRFBfQ0tTVU07CgkJZGV2X2luZm8tPmZsb3dfdHlwZV9yc3Nfb2ZmbG9hZHMgfD0gSUNFX1JT U19PRkZMT0FEX0FMTDsKCX0KCglkZXZfaW5mby0+cnhfcXVldWVfb2ZmbG9hZF9jYXBhID0gMDsK CWRldl9pbmZvLT50eF9xdWV1ZV9vZmZsb2FkX2NhcGEgPSBERVZfVFhfT0ZGTE9BRF9NQlVGX0ZB U1RfRlJFRTsKCglkZXZfaW5mby0+cmV0YV9zaXplID0gcGYtPmhhc2hfbHV0X3NpemU7CglkZXZf aW5mby0+aGFzaF9rZXlfc2l6ZSA9IChWU0lRRl9IS0VZX01BWF9JTkRFWCArIDEpICogc2l6ZW9m KHVpbnQzMl90KTsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2ljZS9pY2VfZXRo ZGV2LmM6MzY4MgpIdW5rICMyMCBzdWNjZWVkZWQgYXQgMzc0OCAob2Zmc2V0IC02IGxpbmVzKS4K SHVuayAjMjEgc3VjY2VlZGVkIGF0IDM4MzAgKG9mZnNldCAtNiBsaW5lcykuCkh1bmsgIzIyIHN1 Y2NlZWRlZCBhdCAzODQ3IChvZmZzZXQgLTYgbGluZXMpLgpIdW5rICMyMyBzdWNjZWVkZWQgYXQg NDM4OCAob2Zmc2V0IDExIGxpbmVzKS4KSHVuayAjMjQgc3VjY2VlZGVkIGF0IDQ1MTEgKG9mZnNl dCAxMSBsaW5lcykuCkh1bmsgIzI1IHN1Y2NlZWRlZCBhdCA0NTYxIChvZmZzZXQgMTEgbGluZXMp LgpIdW5rICMyNiBzdWNjZWVkZWQgYXQgNTQ3MSAob2Zmc2V0IDExIGxpbmVzKS4KSHVuayAjMjcg c3VjY2VlZGVkIGF0IDU0OTUgKG9mZnNldCAxMSBsaW5lcykuCkh1bmsgIzI4IHN1Y2NlZWRlZCBh dCA1NTE2IChvZmZzZXQgMTEgbGluZXMpLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9pY2Uv aWNlX2V0aGRldi5oLi4uCkh1bmsgIzEgc3VjY2VlZGVkIGF0IDExNiAob2Zmc2V0IC0xIGxpbmVz KS4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaWNlL2ljZV9oYXNoLmMuLi4KQ2hlY2tpbmcg cGF0Y2ggZHJpdmVycy9uZXQvaWNlL2ljZV9yeHR4LmMuLi4KSHVuayAjMyBzdWNjZWVkZWQgYXQg MTEyMCAob2Zmc2V0IDMgbGluZXMpLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCQkJaWNl X3J4ZF90b192bGFuX3RjaShtYiwgJnJ4ZHBbal0pOwoJCQlyeHEtPnJ4ZF90b19wa3RfZmllbGRz KHJ4cSwgbWIsICZyeGRwW2pdKTsKI2lmbmRlZiBSVEVfTElCUlRFX0lDRV8xNkJZVEVfUlhfREVT QwoJCQlpZiAocnhxLT5vZmZsb2FkcyAmIERFVl9SWF9PRkZMT0FEX1RJTUVTVEFNUCkgewoJCQkJ dHNfbnMgPSBpY2VfdHN0YW1wX2NvbnZlcnRfMzJiXzY0YihodywKCQkJCQlydGVfbGVfdG9fY3B1 XzMyKHJ4ZHBbal0ud2IuZmxleF90cy50c19oaWdoKSk7CgkJCQlpZiAoaWNlX3RpbWVzdGFtcF9k eW5mbGFnID4gMCkgewoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvaWNlL2ljZV9y eHR4LmM6MTYyNAplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCQlyeHEtPnJ4ZF90b19wa3Rf ZmllbGRzKHJ4cSwgZmlyc3Rfc2VnLCAmcnhkKTsKCQlwa3RfZmxhZ3MgPSBpY2VfcnhkX2Vycm9y X3RvX3BrdF9mbGFncyhyeF9zdGF0X2VycjApOwojaWZuZGVmIFJURV9MSUJSVEVfSUNFXzE2QllU RV9SWF9ERVNDCgkJaWYgKHJ4cS0+b2ZmbG9hZHMgJiBERVZfUlhfT0ZGTE9BRF9USU1FU1RBTVAp IHsKCQkJdHNfbnMgPSBpY2VfdHN0YW1wX2NvbnZlcnRfMzJiXzY0YihodywKCQkJCXJ0ZV9sZV90 b19jcHVfMzIocnhkLndiLmZsZXhfdHMudHNfaGlnaCkpOwoJCQlpZiAoaWNlX3RpbWVzdGFtcF9k eW5mbGFnID4gMCkgewoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvaWNlL2ljZV9y eHR4LmM6MTk0MgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCQlyeHEtPnJ4ZF90b19wa3Rf ZmllbGRzKHJ4cSwgcnhtLCAmcnhkKTsKCQlwa3RfZmxhZ3MgPSBpY2VfcnhkX2Vycm9yX3RvX3Br dF9mbGFncyhyeF9zdGF0X2VycjApOwojaWZuZGVmIFJURV9MSUJSVEVfSUNFXzE2QllURV9SWF9E RVNDCgkJaWYgKHJ4cS0+b2ZmbG9hZHMgJiBERVZfUlhfT0ZGTE9BRF9USU1FU1RBTVApIHsKCQkJ dHNfbnMgPSBpY2VfdHN0YW1wX2NvbnZlcnRfMzJiXzY0YihodywKCQkJCXJ0ZV9sZV90b19jcHVf MzIocnhkLndiLmZsZXhfdHMudHNfaGlnaCkpOwoJCQlpZiAoaWNlX3RpbWVzdGFtcF9keW5mbGFn ID4gMCkgewoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvaWNlL2ljZV9yeHR4LmM6 MjM3MwpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9pY2UvaWNlX3J4dHhfdmVjX2F2eDIuYy4u LgpIdW5rICMxIHN1Y2NlZWRlZCBhdCA0NzMgKG9mZnNldCAtMSBsaW5lcykuCkNoZWNraW5nIHBh dGNoIGRyaXZlcnMvbmV0L2ljZS9pY2Vfcnh0eF92ZWNfYXZ4NTEyLmMuLi4KSHVuayAjMSBzdWNj ZWVkZWQgYXQgNTg0IChvZmZzZXQgLTEgbGluZXMpLgpIdW5rICMyIHN1Y2NlZWRlZCBhdCA5OTQg KG9mZnNldCAtMSBsaW5lcykuCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2ljZS9pY2Vfcnh0 eF92ZWNfY29tbW9uLmguLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaWNlL2ljZV9yeHR4 X3ZlY19zc2UuYy4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9pZ2MvaWdjX2V0aGRldi5j Li4uCkh1bmsgIzEgc3VjY2VlZGVkIGF0IDMxNCAob2Zmc2V0IDcgbGluZXMpLgpIdW5rICMyIHN1 Y2NlZWRlZCBhdCAzMjUgKG9mZnNldCA3IGxpbmVzKS4KSHVuayAjMyBzdWNjZWVkZWQgYXQgMzQx IChvZmZzZXQgNyBsaW5lcykuCkh1bmsgIzQgc3VjY2VlZGVkIGF0IDQ4MCAob2Zmc2V0IDcgbGlu ZXMpLgpIdW5rICM1IHN1Y2NlZWRlZCBhdCA0OTcgKG9mZnNldCA3IGxpbmVzKS4KSHVuayAjNiBz dWNjZWVkZWQgYXQgNTMyIChvZmZzZXQgNyBsaW5lcykuCkh1bmsgIzcgc3VjY2VlZGVkIGF0IDk3 OSAob2Zmc2V0IDcgbGluZXMpLgpIdW5rICM4IHN1Y2NlZWRlZCBhdCAxMDAwIChvZmZzZXQgNyBs aW5lcykuCkh1bmsgIzkgc3VjY2VlZGVkIGF0IDE0OTAgKG9mZnNldCA4IGxpbmVzKS4KSHVuayAj MTAgc3VjY2VlZGVkIGF0IDE1MjMgKG9mZnNldCA4IGxpbmVzKS4KSHVuayAjMTEgc3VjY2VlZGVk IGF0IDIxNjUgKG9mZnNldCAyNCBsaW5lcykuCkh1bmsgIzEyIHN1Y2NlZWRlZCBhdCAyMjAzIChv ZmZzZXQgMjQgbGluZXMpLgpIdW5rICMxMyBzdWNjZWVkZWQgYXQgMjI1OCAob2Zmc2V0IDI0IGxp bmVzKS4KSHVuayAjMTQgc3VjY2VlZGVkIGF0IDIzMTQgKG9mZnNldCAyNCBsaW5lcykuCkh1bmsg IzE1IHN1Y2NlZWRlZCBhdCAyMzkzIChvZmZzZXQgMjQgbGluZXMpLgpIdW5rICMxNiBzdWNjZWVk ZWQgYXQgMjU1NCAob2Zmc2V0IDQwIGxpbmVzKS4KSHVuayAjMTcgc3VjY2VlZGVkIGF0IDI1ODcg KG9mZnNldCA0MCBsaW5lcykuCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2lnYy9pZ2NfZXRo ZGV2LmguLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CiNkZWZpbmUgSUdDX1RYX01BWF9N VFVfU0VHCVVJTlQ4X01BWAoKI2RlZmluZSBJR0NfUlhfT0ZGTE9BRF9BTEwJKCAgICBcCglERVZf UlhfT0ZGTE9BRF9WTEFOX1NUUklQICB8IFwKCURFVl9SWF9PRkZMT0FEX1ZMQU5fRklMVEVSIHwg XAoJREVWX1JYX09GRkxPQURfVkxBTl9FWFRFTkQgfCBcCglERVZfUlhfT0ZGTE9BRF9JUFY0X0NL U1VNICB8IFwKCURFVl9SWF9PRkZMT0FEX1VEUF9DS1NVTSAgIHwgXAoJREVWX1JYX09GRkxPQURf VENQX0NLU1VNICAgfCBcCglERVZfUlhfT0ZGTE9BRF9TQ1RQX0NLU1VNICB8IFwKCURFVl9SWF9P RkZMT0FEX0tFRVBfQ1JDICAgIHwgXAoJREVWX1JYX09GRkxPQURfU0NBVFRFUiAgICAgfCBcCglE RVZfUlhfT0ZGTE9BRF9SU1NfSEFTSCkKCiNkZWZpbmUgSUdDX1RYX09GRkxPQURfQUxMCSggICAg XAoJREVWX1RYX09GRkxPQURfVkxBTl9JTlNFUlQgfCBcCglERVZfVFhfT0ZGTE9BRF9JUFY0X0NL U1VNICB8IFwKCURFVl9UWF9PRkZMT0FEX1VEUF9DS1NVTSAgIHwgXAoJREVWX1RYX09GRkxPQURf VENQX0NLU1VNICAgfCBcCglERVZfVFhfT0ZGTE9BRF9TQ1RQX0NLU1VNICB8IFwKCURFVl9UWF9P RkZMT0FEX1RDUF9UU08gICAgIHwgXAoJREVWX1RYX09GRkxPQURfVURQX1RTTwkgICB8IFwKCURF Vl9UWF9PRkZMT0FEX01VTFRJX1NFR1MpCgojZGVmaW5lIElHQ19SU1NfT0ZGTE9BRF9BTEwJKCAg ICBcCglFVEhfUlNTX0lQVjQgICAgICAgICAgICAgICB8IFwKCUVUSF9SU1NfTk9ORlJBR19JUFY0 X1RDUCAgIHwgXAoJRVRIX1JTU19OT05GUkFHX0lQVjRfVURQICAgfCBcCglFVEhfUlNTX0lQVjYg ICAgICAgICAgICAgICB8IFwKCUVUSF9SU1NfTk9ORlJBR19JUFY2X1RDUCAgIHwgXAoJRVRIX1JT U19OT05GUkFHX0lQVjZfVURQICAgfCBcCglFVEhfUlNTX0lQVjZfRVggICAgICAgICAgICB8IFwK CUVUSF9SU1NfSVBWNl9UQ1BfRVggICAgICAgIHwgXAoJRVRIX1JTU19JUFY2X1VEUF9FWCkKCiNk ZWZpbmUgSUdDX01BWF9FVFFGX0ZJTFRFUlMJCTMJLyogZXRxZigzKSBpcyB1c2VkIGZvciAxNTg4 ICovCiNkZWZpbmUgSUdDX0VUUUZfRklMVEVSXzE1ODgJCTMKCmVycm9yOiBwYXRjaCBmYWlsZWQ6 IGRyaXZlcnMvbmV0L2lnYy9pZ2NfZXRoZGV2Lmg6NjYKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9u ZXQvaWdjL2lnY190eHJ4LmMuLi4KSHVuayAjMyBzdWNjZWVkZWQgYXQgODY2IChvZmZzZXQgMTkg bGluZXMpLgpIdW5rICM0IHN1Y2NlZWRlZCBhdCAxMDU2IChvZmZzZXQgMTkgbGluZXMpLgpIdW5r ICM1IHN1Y2NlZWRlZCBhdCAxMTMwIChvZmZzZXQgMTkgbGluZXMpLgpIdW5rICM2IHN1Y2NlZWRl ZCBhdCAxMTk2IChvZmZzZXQgMTkgbGluZXMpLgpIdW5rICM3IHN1Y2NlZWRlZCBhdCAxMjQwIChv ZmZzZXQgMTkgbGluZXMpLgpIdW5rICM4IHN1Y2NlZWRlZCBhdCAxMjYxIChvZmZzZXQgMTkgbGlu ZXMpLgpIdW5rICM5IHN1Y2NlZWRlZCBhdCAxMjk4IChvZmZzZXQgMTkgbGluZXMpLgpIdW5rICMx MCBzdWNjZWVkZWQgYXQgMjI3MiAob2Zmc2V0IDE5IGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2ggZHJp dmVycy9uZXQvaW9uaWMvaW9uaWNfZXRoZGV2LmMuLi4KSHVuayAjMiBzdWNjZWVkZWQgYXQgMzk3 IChvZmZzZXQgMTAgbGluZXMpLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCSAqLwoKCWRl dl9pbmZvLT5yeF9vZmZsb2FkX2NhcGEgPSBkZXZfaW5mby0+cnhfcXVldWVfb2ZmbG9hZF9jYXBh IHwKCQlERVZfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwKCQlERVZfUlhfT0ZGTE9BRF9VRFBfQ0tT VU0gfAoJCURFVl9SWF9PRkZMT0FEX1RDUF9DS1NVTSB8CgkJREVWX1JYX09GRkxPQURfVkxBTl9G SUxURVIgfAoJCURFVl9SWF9PRkZMT0FEX1ZMQU5fU1RSSVAgfAoJCURFVl9SWF9PRkZMT0FEX1ND QVRURVIgfAoJCURFVl9SWF9PRkZMT0FEX1JTU19IQVNIIHwKCQkwOwoKCWRldl9pbmZvLT50eF9v ZmZsb2FkX2NhcGEgPSBkZXZfaW5mby0+dHhfcXVldWVfb2ZmbG9hZF9jYXBhIHwKCQlERVZfVFhf T0ZGTE9BRF9JUFY0X0NLU1VNIHwKCQlERVZfVFhfT0ZGTE9BRF9VRFBfQ0tTVU0gfAoJCURFVl9U WF9PRkZMT0FEX1RDUF9DS1NVTSB8CgkJREVWX1RYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTSB8 CgkJREVWX1RYX09GRkxPQURfT1VURVJfVURQX0NLU1VNIHwKCQlERVZfVFhfT0ZGTE9BRF9NVUxU SV9TRUdTIHwKCQlERVZfVFhfT0ZGTE9BRF9UQ1BfVFNPIHwKCQlERVZfVFhfT0ZGTE9BRF9WTEFO X0lOU0VSVCB8CgkJMDsKCglkZXZfaW5mby0+cnhfZGVzY19saW0gPSByeF9kZXNjX2xpbTsKCmVy cm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2lvbmljL2lvbmljX2V0aGRldi5jOjQxMQpI dW5rICM0IHN1Y2NlZWRlZCBhdCA0NzQgKG9mZnNldCAxMSBsaW5lcykuCkh1bmsgIzUgc3VjY2Vl ZGVkIGF0IDQ5OCAob2Zmc2V0IDExIGxpbmVzKS4KSHVuayAjNiBzdWNjZWVkZWQgYXQgNTU2IChv ZmZzZXQgMTEgbGluZXMpLgpIdW5rICM3IHN1Y2NlZWRlZCBhdCA1OTYgKG9mZnNldCAxMSBsaW5l cykuCkh1bmsgIzggc3VjY2VlZGVkIGF0IDYyOSAob2Zmc2V0IDExIGxpbmVzKS4KSHVuayAjOSBz dWNjZWVkZWQgYXQgNjcxIChvZmZzZXQgMTEgbGluZXMpLgpIdW5rICMxMCBzdWNjZWVkZWQgYXQg ODUzIChvZmZzZXQgMTEgbGluZXMpLgpIdW5rICMxMSBzdWNjZWVkZWQgYXQgODg1IChvZmZzZXQg MTEgbGluZXMpLgpIdW5rICMxMiBzdWNjZWVkZWQgYXQgOTA3IChvZmZzZXQgMTEgbGluZXMpLgpD aGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9pb25pYy9pb25pY19ldGhkZXYuaC4uLgpDaGVja2lu ZyBwYXRjaCBkcml2ZXJzL25ldC9pb25pYy9pb25pY19saWYuYy4uLgpDaGVja2luZyBwYXRjaCBk cml2ZXJzL25ldC9pb25pYy9pb25pY19yeHR4LmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9u ZXQvaXBuM2tlL2lwbjNrZV9yZXByZXNlbnRvci5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcg Zm9yOgoJfTsKCWRldl9pbmZvLT5yeF9xdWV1ZV9vZmZsb2FkX2NhcGEgPSAwOwoJZGV2X2luZm8t PnJ4X29mZmxvYWRfY2FwYSA9CgkJREVWX1JYX09GRkxPQURfVkxBTl9TVFJJUCB8CgkJREVWX1JY X09GRkxPQURfUUlOUV9TVFJJUCB8CgkJREVWX1JYX09GRkxPQURfSVBWNF9DS1NVTSB8CgkJREVW X1JYX09GRkxPQURfVURQX0NLU1VNIHwKCQlERVZfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0gfAoJCURF Vl9SWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gfAoJCURFVl9SWF9PRkZMT0FEX1ZMQU5fRVhU RU5EIHwKCQlERVZfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUjsKCglkZXZfaW5mby0+dHhfcXVldWVf b2ZmbG9hZF9jYXBhID0gREVWX1RYX09GRkxPQURfTUJVRl9GQVNUX0ZSRUU7CglkZXZfaW5mby0+ dHhfb2ZmbG9hZF9jYXBhID0KCQlERVZfVFhfT0ZGTE9BRF9WTEFOX0lOU0VSVCB8CgkJREVWX1RY X09GRkxPQURfUUlOUV9JTlNFUlQgfAoJCURFVl9UWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAoJCURF Vl9UWF9PRkZMT0FEX1VEUF9DS1NVTSB8CgkJREVWX1RYX09GRkxPQURfVENQX0NLU1VNIHwKCQlE RVZfVFhfT0ZGTE9BRF9TQ1RQX0NLU1VNIHwKCQlERVZfVFhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NL U1VNIHwKCQlERVZfVFhfT0ZGTE9BRF9UQ1BfVFNPIHwKCQlERVZfVFhfT0ZGTE9BRF9WWExBTl9U TkxfVFNPIHwKCQlERVZfVFhfT0ZGTE9BRF9HUkVfVE5MX1RTTyB8CgkJREVWX1RYX09GRkxPQURf SVBJUF9UTkxfVFNPIHwKCQlERVZfVFhfT0ZGTE9BRF9HRU5FVkVfVE5MX1RTTyB8CgkJREVWX1RY X09GRkxPQURfTVVMVElfU0VHUyB8CgkJZGV2X2luZm8tPnR4X3F1ZXVlX29mZmxvYWRfY2FwYTsK CglkZXZfaW5mby0+ZGV2X2NhcGEgPQoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQv aXBuM2tlL2lwbjNrZV9yZXByZXNlbnRvci5jOjY3Ckh1bmsgIzMgc3VjY2VlZGVkIGF0IDI0MDAg KG9mZnNldCAxIGxpbmUpLgpIdW5rICM0IHN1Y2NlZWRlZCBhdCAyNDYxIChvZmZzZXQgMSBsaW5l KS4KSHVuayAjNSBzdWNjZWVkZWQgYXQgMjUxOSAob2Zmc2V0IDEgbGluZSkuCkNoZWNraW5nIHBh dGNoIGRyaXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX2V0aGRldi5jLi4uCkh1bmsgIzEgc3VjY2VlZGVk IGF0IDE4NTkgKG9mZnNldCAyIGxpbmVzKS4KSHVuayAjMiBzdWNjZWVkZWQgYXQgMTg3NCAob2Zm c2V0IDIgbGluZXMpLgpIdW5rICMzIHN1Y2NlZWRlZCBhdCAxOTYxIChvZmZzZXQgMiBsaW5lcyku Ckh1bmsgIzQgc3VjY2VlZGVkIGF0IDIwODUgKG9mZnNldCAyIGxpbmVzKS4KSHVuayAjNSBzdWNj ZWVkZWQgYXQgMjEwMiAob2Zmc2V0IDIgbGluZXMpLgpIdW5rICM2IHN1Y2NlZWRlZCBhdCAyMTI0 IChvZmZzZXQgMiBsaW5lcykuCkh1bmsgIzcgc3VjY2VlZGVkIGF0IDIxNDUgKG9mZnNldCAyIGxp bmVzKS4KSHVuayAjOCBzdWNjZWVkZWQgYXQgMjE5NSAob2Zmc2V0IDIgbGluZXMpLgpIdW5rICM5 IHN1Y2NlZWRlZCBhdCAyMjIyIChvZmZzZXQgMiBsaW5lcykuCkh1bmsgIzEwIHN1Y2NlZWRlZCBh dCAyMjQzIChvZmZzZXQgMiBsaW5lcykuCkh1bmsgIzExIHN1Y2NlZWRlZCBhdCAyMjU3IChvZmZz ZXQgMiBsaW5lcykuCkh1bmsgIzEyIHN1Y2NlZWRlZCBhdCAyMjc3IChvZmZzZXQgMiBsaW5lcyku Ckh1bmsgIzEzIHN1Y2NlZWRlZCBhdCAyMjkyIChvZmZzZXQgMiBsaW5lcykuCkh1bmsgIzE0IHN1 Y2NlZWRlZCBhdCAyMzA5IChvZmZzZXQgMiBsaW5lcykuCkh1bmsgIzE1IHN1Y2NlZWRlZCBhdCAy MzUwIChvZmZzZXQgMiBsaW5lcykuCkh1bmsgIzE2IHN1Y2NlZWRlZCBhdCAyMzc0IChvZmZzZXQg MiBsaW5lcykuCkh1bmsgIzE3IHN1Y2NlZWRlZCBhdCAyNjIwIChvZmZzZXQgMiBsaW5lcykuCkh1 bmsgIzE4IHN1Y2NlZWRlZCBhdCAyNzA1IChvZmZzZXQgMiBsaW5lcykuCkh1bmsgIzE5IHN1Y2Nl ZWRlZCBhdCAyNzI5IChvZmZzZXQgMiBsaW5lcykuCkh1bmsgIzIwIHN1Y2NlZWRlZCBhdCAyNzQ3 IChvZmZzZXQgMiBsaW5lcykuCkh1bmsgIzIxIHN1Y2NlZWRlZCBhdCAzODMzIChvZmZzZXQgMiBs aW5lcykuCkh1bmsgIzIyIHN1Y2NlZWRlZCBhdCAzODQzIChvZmZzZXQgMiBsaW5lcykuCkh1bmsg IzIzIHN1Y2NlZWRlZCBhdCAzODg0IChvZmZzZXQgMiBsaW5lcykuCkh1bmsgIzI0IHN1Y2NlZWRl ZCBhdCAzOTY3IChvZmZzZXQgMiBsaW5lcykuCkh1bmsgIzI1IHN1Y2NlZWRlZCBhdCA0MjEyIChv ZmZzZXQgMiBsaW5lcykuCkh1bmsgIzI2IHN1Y2NlZWRlZCBhdCA0MjM4IChvZmZzZXQgMiBsaW5l cykuCkh1bmsgIzI3IHN1Y2NlZWRlZCBhdCA0Mjc1IChvZmZzZXQgMiBsaW5lcykuCkh1bmsgIzI4 IHN1Y2NlZWRlZCBhdCA0NTIyIChvZmZzZXQgMiBsaW5lcykuCkh1bmsgIzI5IHN1Y2NlZWRlZCBh dCA0NzQxIChvZmZzZXQgMiBsaW5lcykuCkh1bmsgIzMwIHN1Y2NlZWRlZCBhdCA1MDQ1IChvZmZz ZXQgMiBsaW5lcykuCkh1bmsgIzMxIHN1Y2NlZWRlZCBhdCA1MDkzIChvZmZzZXQgMiBsaW5lcyku Ckh1bmsgIzMyIHN1Y2NlZWRlZCBhdCA1MjY1IChvZmZzZXQgMTEgbGluZXMpLgpIdW5rICMzMyBz dWNjZWVkZWQgYXQgNTM0MCAob2Zmc2V0IDExIGxpbmVzKS4KSHVuayAjMzQgc3VjY2VlZGVkIGF0 IDU1NzggKG9mZnNldCAxMSBsaW5lcykuCkh1bmsgIzM1IHN1Y2NlZWRlZCBhdCA1NzEyIChvZmZz ZXQgMTEgbGluZXMpLgpIdW5rICMzNiBzdWNjZWVkZWQgYXQgNTczMSAob2Zmc2V0IDExIGxpbmVz KS4KSHVuayAjMzcgc3VjY2VlZGVkIGF0IDY3NDIgKG9mZnNldCAxOSBsaW5lcykuCkh1bmsgIzM4 IHN1Y2NlZWRlZCBhdCA3MTYxIChvZmZzZXQgMTkgbGluZXMpLgpIdW5rICMzOSBzdWNjZWVkZWQg YXQgNzE4MCAob2Zmc2V0IDE5IGxpbmVzKS4KSHVuayAjNDAgc3VjY2VlZGVkIGF0IDcyMzkgKG9m ZnNldCAxOSBsaW5lcykuCkh1bmsgIzQxIHN1Y2NlZWRlZCBhdCA3MjUwIChvZmZzZXQgMTkgbGlu ZXMpLgpIdW5rICM0MiBzdWNjZWVkZWQgYXQgNzI3NCAob2Zmc2V0IDE5IGxpbmVzKS4KSHVuayAj NDMgc3VjY2VlZGVkIGF0IDcyODkgKG9mZnNldCAxOSBsaW5lcykuCkh1bmsgIzQ0IHN1Y2NlZWRl ZCBhdCA3NTQyIChvZmZzZXQgMTkgbGluZXMpLgpIdW5rICM0NSBzdWNjZWVkZWQgYXQgNzU3NCAo b2Zmc2V0IDE5IGxpbmVzKS4KSHVuayAjNDYgc3VjY2VlZGVkIGF0IDc2NzEgKG9mZnNldCAxOSBs aW5lcykuCkh1bmsgIzQ3IHN1Y2NlZWRlZCBhdCA3NzA4IChvZmZzZXQgMTkgbGluZXMpLgpDaGVj a2luZyBwYXRjaCBkcml2ZXJzL25ldC9peGdiZS9peGdiZV9ldGhkZXYuaC4uLgpDaGVja2luZyBw YXRjaCBkcml2ZXJzL25ldC9peGdiZS9peGdiZV9mZGlyLmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJp dmVycy9uZXQvaXhnYmUvaXhnYmVfZmxvdy5jLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0 L2l4Z2JlL2l4Z2JlX2lwc2VjLmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaXhnYmUv aXhnYmVfcGYuYy4uLgpIdW5rICMzIHN1Y2NlZWRlZCBhdCA2ODEgKG9mZnNldCA3IGxpbmVzKS4K Q2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfcnh0eC5jLi4uCmVycm9yOiB3 aGlsZSBzZWFyY2hpbmcgZm9yOgoJdWludDY0X3Qgb2ZmbG9hZHM7CglzdHJ1Y3QgaXhnYmVfaHcg Kmh3ID0gSVhHQkVfREVWX1BSSVZBVEVfVE9fSFcoZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZSk7CgoJ b2ZmbG9hZHMgPSBERVZfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNICB8CgkJICAgREVWX1JYX09GRkxP QURfVURQX0NLU1VNICAgfAoJCSAgIERFVl9SWF9PRkZMT0FEX1RDUF9DS1NVTSAgIHwKCQkgICBE RVZfUlhfT0ZGTE9BRF9LRUVQX0NSQyAgICB8CgkJICAgREVWX1JYX09GRkxPQURfVkxBTl9GSUxU RVIgfAoJCSAgIERFVl9SWF9PRkZMT0FEX1NDQVRURVIgfAoJCSAgIERFVl9SWF9PRkZMT0FEX1JT U19IQVNIOwoKCWlmIChody0+bWFjLnR5cGUgPT0gaXhnYmVfbWFjXzgyNTk4RUIpCgkJb2ZmbG9h ZHMgfD0gREVWX1JYX09GRkxPQURfVkxBTl9TVFJJUDsKCglpZiAoaXhnYmVfaXNfdmYoZGV2KSA9 PSAwKQoJCW9mZmxvYWRzIHw9IERFVl9SWF9PRkZMT0FEX1ZMQU5fRVhURU5EOwoKCS8qCgkgKiBS U0MgaXMgb25seSBzdXBwb3J0ZWQgYnkgODI1OTkgYW5kIHg1NDAgUEYgZGV2aWNlcyBpbiBhIG5v bi1TUi1JT1YKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX3J4 dHguYzozMDMyCkh1bmsgIzUgc3VjY2VlZGVkIGF0IDMwNTUgKG9mZnNldCAxIGxpbmUpLgpIdW5r ICM2IHN1Y2NlZWRlZCBhdCAzMTIzIChvZmZzZXQgMSBsaW5lKS4KSHVuayAjNyBzdWNjZWVkZWQg YXQgMzUyNiAob2Zmc2V0IDE5IGxpbmVzKS4KSHVuayAjOCBzdWNjZWVkZWQgYXQgMzYyNCAob2Zm c2V0IDE5IGxpbmVzKS4KSHVuayAjOSBzdWNjZWVkZWQgYXQgMzcxNiAob2Zmc2V0IDE5IGxpbmVz KS4KSHVuayAjMTAgc3VjY2VlZGVkIGF0IDM3NDYgKG9mZnNldCAxOSBsaW5lcykuCkh1bmsgIzEx IHN1Y2NlZWRlZCBhdCAzNzU1IChvZmZzZXQgMTkgbGluZXMpLgpIdW5rICMxMiBzdWNjZWVkZWQg YXQgMzc3MSAob2Zmc2V0IDE5IGxpbmVzKS4KSHVuayAjMTMgc3VjY2VlZGVkIGF0IDM3OTUgKG9m ZnNldCAxOSBsaW5lcykuCkh1bmsgIzE0IHN1Y2NlZWRlZCBhdCAzODc3IChvZmZzZXQgMTkgbGlu ZXMpLgpIdW5rICMxNSBzdWNjZWVkZWQgYXQgMzg5MyAob2Zmc2V0IDE5IGxpbmVzKS4KSHVuayAj MTYgc3VjY2VlZGVkIGF0IDM5MDggKG9mZnNldCAxOSBsaW5lcykuCkh1bmsgIzE3IHN1Y2NlZWRl ZCBhdCAzOTI2IChvZmZzZXQgMTkgbGluZXMpLgpIdW5rICMxOCBzdWNjZWVkZWQgYXQgMzk0MSAo b2Zmc2V0IDE5IGxpbmVzKS4KSHVuayAjMTkgc3VjY2VlZGVkIGF0IDM5NjggKG9mZnNldCAxOSBs aW5lcykuCkh1bmsgIzIwIHN1Y2NlZWRlZCBhdCAzOTk1IChvZmZzZXQgMTkgbGluZXMpLgpIdW5r ICMyMSBzdWNjZWVkZWQgYXQgNDE2NCAob2Zmc2V0IDE5IGxpbmVzKS4KSHVuayAjMjIgc3VjY2Vl ZGVkIGF0IDQxNzcgKG9mZnNldCAxOSBsaW5lcykuCkh1bmsgIzIzIHN1Y2NlZWRlZCBhdCA0MTkx IChvZmZzZXQgMTkgbGluZXMpLgpIdW5rICMyNCBzdWNjZWVkZWQgYXQgNDIwMiAob2Zmc2V0IDE5 IGxpbmVzKS4KSHVuayAjMjUgc3VjY2VlZGVkIGF0IDQyMTggKG9mZnNldCAxOSBsaW5lcykuCkh1 bmsgIzI2IHN1Y2NlZWRlZCBhdCA0Mjc2IChvZmZzZXQgMTkgbGluZXMpLgpIdW5rICMyNyBzdWNj ZWVkZWQgYXQgNDI5MSAob2Zmc2V0IDE5IGxpbmVzKS4KSHVuayAjMjggc3VjY2VlZGVkIGF0IDQz MjcgKG9mZnNldCAxOSBsaW5lcykuCkh1bmsgIzI5IHN1Y2NlZWRlZCBhdCA0MzQxIChvZmZzZXQg MTkgbGluZXMpLgpIdW5rICMzMCBzdWNjZWVkZWQgYXQgNDM2MiAob2Zmc2V0IDE5IGxpbmVzKS4K SHVuayAjMzEgc3VjY2VlZGVkIGF0IDQ0MjMgKG9mZnNldCAxOSBsaW5lcykuCkh1bmsgIzMyIHN1 Y2NlZWRlZCBhdCA0NTQ0IChvZmZzZXQgMTkgbGluZXMpLgpIdW5rICMzMyBzdWNjZWVkZWQgYXQg NDU2OSAob2Zmc2V0IDE5IGxpbmVzKS4KSHVuayAjMzQgc3VjY2VlZGVkIGF0IDQ2MDYgKG9mZnNl dCAxOSBsaW5lcykuCkh1bmsgIzM1IHN1Y2NlZWRlZCBhdCA0NjMxIChvZmZzZXQgMTkgbGluZXMp LgpIdW5rICMzNiBzdWNjZWVkZWQgYXQgNDY3NiAob2Zmc2V0IDE5IGxpbmVzKS4KSHVuayAjMzcg c3VjY2VlZGVkIGF0IDQ2ODkgKG9mZnNldCAxOSBsaW5lcykuCkh1bmsgIzM4IHN1Y2NlZWRlZCBh dCA0OTAzIChvZmZzZXQgMTkgbGluZXMpLgpIdW5rICMzOSBzdWNjZWVkZWQgYXQgNDkzMSAob2Zm c2V0IDE5IGxpbmVzKS4KSHVuayAjNDAgc3VjY2VlZGVkIGF0IDQ5NDIgKG9mZnNldCAxOSBsaW5l cykuCkh1bmsgIzQxIHN1Y2NlZWRlZCBhdCA0OTU3IChvZmZzZXQgMTkgbGluZXMpLgpIdW5rICM0 MiBzdWNjZWVkZWQgYXQgNDk2NiAob2Zmc2V0IDE5IGxpbmVzKS4KSHVuayAjNDMgc3VjY2VlZGVk IGF0IDUwODcgKG9mZnNldCAxOCBsaW5lcykuCkh1bmsgIzQ0IHN1Y2NlZWRlZCBhdCA1MTI0IChv ZmZzZXQgMTggbGluZXMpLgpIdW5rICM0NSBzdWNjZWVkZWQgYXQgNTEzMyAob2Zmc2V0IDE4IGxp bmVzKS4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJLyogSXQgYWRkcyBkdWFsIFZMQU4g bGVuZ3RoIGZvciBzdXBwb3J0aW5nIGR1YWwgVkxBTiAqLwoJCWlmIChmcmFtZV9zaXplICsgMiAq IElYR0JFX1ZMQU5fVEFHX1NJWkUgPiBidWZfc2l6ZSkKCQkJZGV2LT5kYXRhLT5zY2F0dGVyZWRf cnggPSAxOwoJCWlmIChyeHEtPm9mZmxvYWRzICYgREVWX1JYX09GRkxPQURfVkxBTl9TVFJJUCkK CQkJcnhfY29uZi0+b2ZmbG9hZHMgfD0gREVWX1JYX09GRkxPQURfVkxBTl9TVFJJUDsKCX0KCglp ZiAocnhfY29uZi0+b2ZmbG9hZHMgJiBERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSKQoJCWRldi0+ZGF0 YS0+c2NhdHRlcmVkX3J4ID0gMTsKCgkvKgoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9u ZXQvaXhnYmUvaXhnYmVfcnh0eC5jOjUxNTgKSHVuayAjNDcgc3VjY2VlZGVkIGF0IDUxOTUgKG9m ZnNldCAxOSBsaW5lcykuCkh1bmsgIzQ4IHN1Y2NlZWRlZCBhdCA1MjA1IChvZmZzZXQgMTkgbGlu ZXMpLgpIdW5rICM0OSBzdWNjZWVkZWQgYXQgNTQxMSAob2Zmc2V0IDE5IGxpbmVzKS4KSHVuayAj NTAgc3VjY2VlZGVkIGF0IDU3MDEgKG9mZnNldCAyMSBsaW5lcykuCmVycm9yOiB3aGlsZSBzZWFy Y2hpbmcgZm9yOgoJCWJ1Zl9zaXplID0gKHVpbnQxNl90KSAoKHNycmN0bCAmIElYR0JFX1NSUkNU TF9CU0laRVBLVF9NQVNLKSA8PAoJCQkJICAgICAgIElYR0JFX1NSUkNUTF9CU0laRVBLVF9TSElG VCk7CgoJCWlmIChyeG1vZGUtPm9mZmxvYWRzICYgREVWX1JYX09GRkxPQURfU0NBVFRFUiB8fAoJ CSAgICAvKiBJdCBhZGRzIGR1YWwgVkxBTiBsZW5ndGggZm9yIHN1cHBvcnRpbmcgZHVhbCBWTEFO ICovCgkJICAgIChmcmFtZV9zaXplICsgMiAqIElYR0JFX1ZMQU5fVEFHX1NJWkUpID4gYnVmX3Np emUpIHsKCQkJaWYgKCFkZXYtPmRhdGEtPnNjYXR0ZXJlZF9yeCkKCmVycm9yOiBwYXRjaCBmYWls ZWQ6IGRyaXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX3J4dHguYzo1NzMwCkh1bmsgIzUyIHN1Y2NlZWRl ZCBhdCA1NzU5IChvZmZzZXQgMjIgbGluZXMpLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9p eGdiZS9peGdiZV9yeHR4LmguLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaXhnYmUvaXhn YmVfcnh0eF92ZWNfY29tbW9uLmguLi4KSHVuayAjMSBzdWNjZWVkZWQgYXQgMjc4IChvZmZzZXQg MSBsaW5lKS4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfdG0uYy4uLgpD aGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9peGdiZS9peGdiZV92Zl9yZXByZXNlbnRvci5jLi4u CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2l4Z2JlL3J0ZV9wbWRfaXhnYmUuYy4uLgpDaGVj a2luZyBwYXRjaCBkcml2ZXJzL25ldC9peGdiZS9ydGVfcG1kX2l4Z2JlLmguLi4KQ2hlY2tpbmcg cGF0Y2ggZHJpdmVycy9uZXQva25pL3J0ZV9ldGhfa25pLmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJp dmVycy9uZXQvbGlxdWlkaW8vbGlvX2V0aGRldi5jLi4uCkh1bmsgIzMgc3VjY2VlZGVkIGF0IDU0 MCAob2Zmc2V0IDIxIGxpbmVzKS4KSHVuayAjNCBzdWNjZWVkZWQgYXQgNTgzIChvZmZzZXQgMjEg bGluZXMpLgpIdW5rICM1IHN1Y2NlZWRlZCBhdCA2MTYgKG9mZnNldCAyMSBsaW5lcykuCkh1bmsg IzYgc3VjY2VlZGVkIGF0IDY5NCAob2Zmc2V0IDIxIGxpbmVzKS4KSHVuayAjNyBzdWNjZWVkZWQg YXQgNzc4IChvZmZzZXQgMjEgbGluZXMpLgpIdW5rICM4IHN1Y2NlZWRlZCBhdCA4MzUgKG9mZnNl dCAyMSBsaW5lcykuCkh1bmsgIzkgc3VjY2VlZGVkIGF0IDkzMyAob2Zmc2V0IDIxIGxpbmVzKS4K SHVuayAjMTAgc3VjY2VlZGVkIGF0IDk0NCAob2Zmc2V0IDIxIGxpbmVzKS4KSHVuayAjMTEgc3Vj Y2VlZGVkIGF0IDExMDcgKG9mZnNldCAyMSBsaW5lcykuCkh1bmsgIzEyIHN1Y2NlZWRlZCBhdCAx MTI0IChvZmZzZXQgMjEgbGluZXMpLgpIdW5rICMxMyBzdWNjZWVkZWQgYXQgMTUxMyAob2Zmc2V0 IDI5IGxpbmVzKS4KSHVuayAjMTQgc3VjY2VlZGVkIGF0IDE1MzQgKG9mZnNldCAyOSBsaW5lcyku Ckh1bmsgIzE1IHN1Y2NlZWRlZCBhdCAxNzUwIChvZmZzZXQgMjkgbGluZXMpLgpDaGVja2luZyBw YXRjaCBkcml2ZXJzL25ldC9tZW1pZi9tZW1pZl9zb2NrZXQuYy4uLgpDaGVja2luZyBwYXRjaCBk cml2ZXJzL25ldC9tZW1pZi9ydGVfZXRoX21lbWlmLmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVy cy9uZXQvbWx4NC9tbHg0X2V0aGRldi5jLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L21s eDQvbWx4NF9mbG93LmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvbWx4NC9tbHg0X2lu dHIuYy4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9tbHg0L21seDRfcnhxLmMuLi4KZXJy b3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CnVpbnQ2NF90Cm1seDRfZ2V0X3J4X3F1ZXVlX29mZmxv YWRzKHN0cnVjdCBtbHg0X3ByaXYgKnByaXYpCnsKCXVpbnQ2NF90IG9mZmxvYWRzID0gREVWX1JY X09GRkxPQURfU0NBVFRFUiB8CgkJCSAgICBERVZfUlhfT0ZGTE9BRF9LRUVQX0NSQyB8CgkJCSAg ICBERVZfUlhfT0ZGTE9BRF9SU1NfSEFTSDsKCglpZiAocHJpdi0+aHdfY3N1bSkKCQlvZmZsb2Fk cyB8PSBERVZfUlhfT0ZGTE9BRF9DSEVDS1NVTTsKCXJldHVybiBvZmZsb2FkczsKfQoKCmVycm9y OiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L21seDQvbWx4NF9yeHEuYzo2ODIKSHVuayAjMiBz dWNjZWVkZWQgYXQgNzA0IChvZmZzZXQgMSBsaW5lKS4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBm b3I6CgltYXhfcnhfcGt0bGVuID0gZGV2LT5kYXRhLT5tdHUgKyBSVEVfRVRIRVJfSERSX0xFTiAr IFJURV9FVEhFUl9DUkNfTEVOOwoJaWYgKG1heF9yeF9wa3RsZW4gPD0gKG1iX2xlbiAtIFJURV9Q S1RNQlVGX0hFQURST09NKSkgewoJCTsKCX0gZWxzZSBpZiAob2ZmbG9hZHMgJiBERVZfUlhfT0ZG TE9BRF9TQ0FUVEVSKSB7CgkJdWludDMyX3Qgc2l6ZSA9IFJURV9QS1RNQlVGX0hFQURST09NICsg bWF4X3J4X3BrdGxlbjsKCQl1aW50MzJfdCBzZ2VzX247CgoKZXJyb3I6IHBhdGNoIGZhaWxlZDog ZHJpdmVycy9uZXQvbWx4NC9tbHg0X3J4cS5jOjgzMgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25l dC9tbHg0L21seDRfdHhxLmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvbWx4NS9saW51 eC9tbHg1X2V0aGRldl9vcy5jLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L21seDUvbGlu dXgvbWx4NV9vcy5jLi4uCkh1bmsgIzEgc3VjY2VlZGVkIGF0IDEzNDIgKG9mZnNldCAzMiBsaW5l cykuCkh1bmsgIzIgc3VjY2VlZGVkIGF0IDE2MjYgKG9mZnNldCAzMiBsaW5lcykuCkNoZWNraW5n IHBhdGNoIGRyaXZlcnMvbmV0L21seDUvbWx4NS5jLi4uCkh1bmsgIzEgc3VjY2VlZGVkIGF0IDE2 MTggKG9mZnNldCAtODYgbGluZXMpLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9tbHg1L21s eDUuaC4uLgpIdW5rICMxIHN1Y2NlZWRlZCBhdCAxMjM1IChvZmZzZXQgMiBsaW5lcykuCkNoZWNr aW5nIHBhdGNoIGRyaXZlcnMvbmV0L21seDUvbWx4NV9kZWZzLmguLi4KQ2hlY2tpbmcgcGF0Y2gg ZHJpdmVycy9uZXQvbWx4NS9tbHg1X2V0aGRldi5jLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMv bmV0L21seDUvbWx4NV9mbG93LmMuLi4KSHVuayAjMiBzdWNjZWVkZWQgYXQgMjkyIChvZmZzZXQg LTYgbGluZXMpLgpIdW5rICMzIHN1Y2NlZWRlZCBhdCA1NDYgKG9mZnNldCAtMTQgbGluZXMpLgpI dW5rICM0IHN1Y2NlZWRlZCBhdCA1NTUgKG9mZnNldCAtMTQgbGluZXMpLgpIdW5rICM1IHN1Y2Nl ZWRlZCBhdCA1NzAgKG9mZnNldCAtMTQgbGluZXMpLgpIdW5rICM2IHN1Y2NlZWRlZCBhdCA1Nzkg KG9mZnNldCAtMTQgbGluZXMpLgpIdW5rICM3IHN1Y2NlZWRlZCBhdCA2MzYgKG9mZnNldCAtMjMg bGluZXMpLgpIdW5rICM4IHN1Y2NlZWRlZCBhdCAxMDcyIChvZmZzZXQgLTI4IGxpbmVzKS4KSHVu ayAjOSBzdWNjZWVkZWQgYXQgMTYyNSAob2Zmc2V0IC0yOCBsaW5lcykuCkh1bmsgIzEwIHN1Y2Nl ZWRlZCBhdCA2Mzg4IChvZmZzZXQgLTM5IGxpbmVzKS4KSHVuayAjMTEgc3VjY2VlZGVkIGF0IDcw MTMgKG9mZnNldCAtMTEzIGxpbmVzKS4KSHVuayAjMTIgc3VjY2VlZGVkIGF0IDg2ODEgKG9mZnNl dCAtMTEzIGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvbWx4NS9tbHg1X2Zsb3cu aC4uLgpIdW5rICMxIHN1Y2NlZWRlZCBhdCAzMjggKG9mZnNldCAtMyBsaW5lcykuCkNoZWNraW5n IHBhdGNoIGRyaXZlcnMvbmV0L21seDUvbWx4NV9mbG93X2R2LmMuLi4KSHVuayAjMSBzdWNjZWVk ZWQgYXQgMTA5MjggKG9mZnNldCA2NiBsaW5lcykuCkh1bmsgIzIgc3VjY2VlZGVkIGF0IDEwOTM4 IChvZmZzZXQgNjYgbGluZXMpLgpIdW5rICMzIHN1Y2NlZWRlZCBhdCAxMDk1NCAob2Zmc2V0IDY2 IGxpbmVzKS4KSHVuayAjNCBzdWNjZWVkZWQgYXQgMTA5NjYgKG9mZnNldCA2NiBsaW5lcykuCkh1 bmsgIzUgc3VjY2VlZGVkIGF0IDE0NTA4IChvZmZzZXQgNjQgbGluZXMpLgpIdW5rICM2IHN1Y2Nl ZWRlZCBhdCAxNDUxOSAob2Zmc2V0IDY0IGxpbmVzKS4KSHVuayAjNyBzdWNjZWVkZWQgYXQgMTQ1 MzAgKG9mZnNldCA2NCBsaW5lcykuCkh1bmsgIzggc3VjY2VlZGVkIGF0IDE0NTQzIChvZmZzZXQg NjQgbGluZXMpLgpIdW5rICM5IHN1Y2NlZWRlZCBhdCAxNDY5NSAob2Zmc2V0IDY0IGxpbmVzKS4K Q2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvbWx4NS9tbHg1X2Zsb3dfdmVyYnMuYy4uLgpIdW5r ICMxIHN1Y2NlZWRlZCBhdCAxODM0IChvZmZzZXQgMTAgbGluZXMpLgpIdW5rICMyIHN1Y2NlZWRl ZCBhdCAxODQ3IChvZmZzZXQgMTAgbGluZXMpLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9t bHg1L21seDVfcnNzLmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvbWx4NS9tbHg1X3J4 cS5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgp7CglzdHJ1Y3QgbWx4NV9wcml2ICpw cml2ID0gZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZTsKCXN0cnVjdCBtbHg1X2Rldl9jb25maWcgKmNv bmZpZyA9ICZwcml2LT5jb25maWc7Cgl1aW50NjRfdCBvZmZsb2FkcyA9IChERVZfUlhfT0ZGTE9B RF9TQ0FUVEVSIHwKCQkJICAgICBERVZfUlhfT0ZGTE9BRF9USU1FU1RBTVAgfAoJCQkgICAgIERF Vl9SWF9PRkZMT0FEX1JTU19IQVNIKTsKCglpZiAoIWNvbmZpZy0+bXBycS5lbmFibGVkKQoJCW9m ZmxvYWRzIHw9IFJURV9FVEhfUlhfT0ZGTE9BRF9CVUZGRVJfU1BMSVQ7CglpZiAoY29uZmlnLT5o d19mY3Nfc3RyaXApCgkJb2ZmbG9hZHMgfD0gREVWX1JYX09GRkxPQURfS0VFUF9DUkM7CglpZiAo Y29uZmlnLT5od19jc3VtKQoJCW9mZmxvYWRzIHw9IChERVZfUlhfT0ZGTE9BRF9JUFY0X0NLU1VN IHwKCQkJICAgICBERVZfUlhfT0ZGTE9BRF9VRFBfQ0tTVU0gfAoJCQkgICAgIERFVl9SWF9PRkZM T0FEX1RDUF9DS1NVTSk7CglpZiAoY29uZmlnLT5od192bGFuX3N0cmlwKQoJCW9mZmxvYWRzIHw9 IERFVl9SWF9PRkZMT0FEX1ZMQU5fU1RSSVA7CglpZiAoTUxYNV9MUk9fU1VQUE9SVEVEKGRldikp CgkJb2ZmbG9hZHMgfD0gREVWX1JYX09GRkxPQURfVENQX0xSTzsKCXJldHVybiBvZmZsb2FkczsK fQoKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L21seDUvbWx4NV9yeHEuYzozMzMK SHVuayAjMiBzdWNjZWVkZWQgYXQgMzYzIChvZmZzZXQgMSBsaW5lKS4KSHVuayAjMyBzdWNjZWVk ZWQgYXQgNjk1IChvZmZzZXQgMSBsaW5lKS4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6Cglz dHJ1Y3QgbWx4NV9kZXZfY29uZmlnICpjb25maWcgPSAmcHJpdi0+Y29uZmlnOwoJdWludDY0X3Qg b2ZmbG9hZHMgPSBjb25mLT5vZmZsb2FkcyB8CgkJCSAgIGRldi0+ZGF0YS0+ZGV2X2NvbmYucnht b2RlLm9mZmxvYWRzOwoJdW5zaWduZWQgaW50IGxyb19vbl9xdWV1ZSA9ICEhKG9mZmxvYWRzICYg REVWX1JYX09GRkxPQURfVENQX0xSTyk7Cgl1bnNpZ25lZCBpbnQgbWF4X3J4X3BrdGxlbiA9IGxy b19vbl9xdWV1ZSA/CgkJCWRldi0+ZGF0YS0+ZGV2X2NvbmYucnhtb2RlLm1heF9scm9fcGt0X3Np emUgOgoJCQlkZXYtPmRhdGEtPm10dSArICh1bnNpZ25lZCBpbnQpUlRFX0VUSEVSX0hEUl9MRU4g KwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvbWx4NS9tbHg1X3J4cS5jOjEzMzYK ZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJCWNvbmZpZy0+bXBycS5zdHJpZGVfc2l6ZV9u IDogbXBycV9zdHJpZGVfc2l6ZTsKCQl0bXBsLT5yeHEuc3RyZF9zaGlmdF9lbiA9IE1MWDVfTVBS UV9UV09fQllURV9TSElGVDsKCQl0bXBsLT5yeHEuc3RyZF9zY2F0dGVyX2VuID0KCQkJCSEhKG9m ZmxvYWRzICYgREVWX1JYX09GRkxPQURfU0NBVFRFUik7CgkJdG1wbC0+cnhxLm1wcnFfbWF4X21l bWNweV9sZW4gPSBSVEVfTUlOKGZpcnN0X21iX2ZyZWVfc2l6ZSwKCQkJCWNvbmZpZy0+bXBycS5t YXhfbWVtY3B5X2xlbik7CgkJbWF4X2xyb19zaXplID0gUlRFX01JTihtYXhfcnhfcGt0bGVuLAoK ZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvbWx4NS9tbHg1X3J4cS5jOjE0ODUKZXJy b3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJTUxYNV9BU1NFUlQobWF4X3J4X3BrdGxlbiA8PSBm aXJzdF9tYl9mcmVlX3NpemUpOwoJCXRtcGwtPnJ4cS5zZ2VzX24gPSAwOwoJCW1heF9scm9fc2l6 ZSA9IG1heF9yeF9wa3RsZW47Cgl9IGVsc2UgaWYgKG9mZmxvYWRzICYgREVWX1JYX09GRkxPQURf U0NBVFRFUikgewoJCXVuc2lnbmVkIGludCBzZ2VzX247CgoJCWlmIChscm9fb25fcXVldWUgJiYg Zmlyc3RfbWJfZnJlZV9zaXplIDwKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L21s eDUvbWx4NV9yeHEuYzoxNTAwCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L21seDUvbWx4NV9y eHR4X3ZlYy5oLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L21seDUvbWx4NV90eC5jLi4u CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L21seDUvbWx4NV90eHEuYy4uLgplcnJvcjogd2hp bGUgc2VhcmNoaW5nIGZvcjoKbWx4NV9nZXRfdHhfcG9ydF9vZmZsb2FkcyhzdHJ1Y3QgcnRlX2V0 aF9kZXYgKmRldikKewoJc3RydWN0IG1seDVfcHJpdiAqcHJpdiA9IGRldi0+ZGF0YS0+ZGV2X3By aXZhdGU7Cgl1aW50NjRfdCBvZmZsb2FkcyA9IChERVZfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTIHwK CQkJICAgICBERVZfVFhfT0ZGTE9BRF9WTEFOX0lOU0VSVCk7CglzdHJ1Y3QgbWx4NV9kZXZfY29u ZmlnICpjb25maWcgPSAmcHJpdi0+Y29uZmlnOwoKCWlmIChjb25maWctPmh3X2NzdW0pCgkJb2Zm bG9hZHMgfD0gKERFVl9UWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAoJCQkgICAgIERFVl9UWF9PRkZM T0FEX1VEUF9DS1NVTSB8CgkJCSAgICAgREVWX1RYX09GRkxPQURfVENQX0NLU1VNKTsKCWlmIChj b25maWctPnRzbykKCQlvZmZsb2FkcyB8PSBERVZfVFhfT0ZGTE9BRF9UQ1BfVFNPOwoJaWYgKGNv bmZpZy0+dHhfcHApCgkJb2ZmbG9hZHMgfD0gREVWX1RYX09GRkxPQURfU0VORF9PTl9USU1FU1RB TVA7CglpZiAoY29uZmlnLT5zd3ApIHsKCQlpZiAoY29uZmlnLT5zd3AgJiBNTFg1X1NXX1BBUlNJ TkdfQ1NVTV9DQVApCgkJCW9mZmxvYWRzIHw9IERFVl9UWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tT VU07CgkJaWYgKGNvbmZpZy0+c3dwICYgTUxYNV9TV19QQVJTSU5HX1RTT19DQVApCgkJCW9mZmxv YWRzIHw9IChERVZfVFhfT0ZGTE9BRF9JUF9UTkxfVFNPIHwKCQkJCSAgICAgREVWX1RYX09GRkxP QURfVURQX1ROTF9UU08pOwoJfQoJaWYgKGNvbmZpZy0+dHVubmVsX2VuKSB7CgkJaWYgKGNvbmZp Zy0+aHdfY3N1bSkKCQkJb2ZmbG9hZHMgfD0gREVWX1RYX09GRkxPQURfT1VURVJfSVBWNF9DS1NV TTsKCQlpZiAoY29uZmlnLT50c28pIHsKCQkJaWYgKGNvbmZpZy0+dHVubmVsX2VuICYKCQkJCU1M WDVfVFVOTkVMRURfT0ZGTE9BRFNfVlhMQU5fQ0FQKQoJCQkJb2ZmbG9hZHMgfD0gREVWX1RYX09G RkxPQURfVlhMQU5fVE5MX1RTTzsKCQkJaWYgKGNvbmZpZy0+dHVubmVsX2VuICYKCQkJCU1MWDVf VFVOTkVMRURfT0ZGTE9BRFNfR1JFX0NBUCkKCQkJCW9mZmxvYWRzIHw9IERFVl9UWF9PRkZMT0FE X0dSRV9UTkxfVFNPOwoJCQlpZiAoY29uZmlnLT50dW5uZWxfZW4gJgoJCQkJTUxYNV9UVU5ORUxF RF9PRkZMT0FEU19HRU5FVkVfQ0FQKQoJCQkJb2ZmbG9hZHMgfD0gREVWX1RYX09GRkxPQURfR0VO RVZFX1ROTF9UU087CgkJfQoJfQoJaWYgKCFjb25maWctPm1wcnEuZW5hYmxlZCkKCQlvZmZsb2Fk cyB8PSBERVZfVFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJFRTsKCXJldHVybiBvZmZsb2FkczsKfQoK CmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L21seDUvbWx4NV90eHEuYzo5OApIdW5r ICMyIHN1Y2NlZWRlZCBhdCA3OTQgKG9mZnNldCAtNyBsaW5lcykuCkh1bmsgIzMgc3VjY2VlZGVk IGF0IDg2MyAob2Zmc2V0IC03IGxpbmVzKS4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJ CQkJCSAgICBNTFg1X01BWF9UU09fSEVBREVSKTsKCQl0eHFfY3RybC0+dHhxLnRzb19lbiA9IDE7 Cgl9CglpZiAoKChERVZfVFhfT0ZGTE9BRF9WWExBTl9UTkxfVFNPICYgdHhxX2N0cmwtPnR4cS5v ZmZsb2FkcykgJiYKCSAgICAoY29uZmlnLT50dW5uZWxfZW4gJiBNTFg1X1RVTk5FTEVEX09GRkxP QURTX1ZYTEFOX0NBUCkpIHwKCSAgICgoREVWX1RYX09GRkxPQURfR1JFX1ROTF9UU08gJiB0eHFf Y3RybC0+dHhxLm9mZmxvYWRzKSAmJgoJICAgIChjb25maWctPnR1bm5lbF9lbiAmIE1MWDVfVFVO TkVMRURfT0ZGTE9BRFNfR1JFX0NBUCkpIHwKCSAgICgoREVWX1RYX09GRkxPQURfR0VORVZFX1RO TF9UU08gJiB0eHFfY3RybC0+dHhxLm9mZmxvYWRzKSAmJgoJICAgIChjb25maWctPnR1bm5lbF9l biAmIE1MWDVfVFVOTkVMRURfT0ZGTE9BRFNfR0VORVZFX0NBUCkpIHwKCSAgIChjb25maWctPnN3 cCAgJiBNTFg1X1NXX1BBUlNJTkdfVFNPX0NBUCkpCgkJdHhxX2N0cmwtPnR4cS50dW5uZWxfZW4g PSAxOwoJdHhxX2N0cmwtPnR4cS5zd3BfZW4gPSAoKChERVZfVFhfT0ZGTE9BRF9JUF9UTkxfVFNP IHwKCQkJCSAgREVWX1RYX09GRkxPQURfVURQX1ROTF9UU08pICYKCQkJCSAgdHhxX2N0cmwtPnR4 cS5vZmZsb2FkcykgJiYgKGNvbmZpZy0+c3dwICYKCQkJCSAgTUxYNV9TV19QQVJTSU5HX1RTT19D QVApKSB8CgkJCQkoKERFVl9UWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gJgoJCQkJIHR4cV9j dHJsLT50eHEub2ZmbG9hZHMpICYmIChjb25maWctPnN3cCAmCgkJCQkgTUxYNV9TV19QQVJTSU5H X0NTVU1fQ0FQKSk7Cn0KCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L21seDUvbWx4 NV90eHEuYzo5NzgKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvbWx4NS9tbHg1X3ZsYW4uYy4u LgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9tbHg1L3dpbmRvd3MvbWx4NV9vcy5jLi4uCmVy cm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJICogUmVtb3ZlIHRoaXMgY2hlY2sgb25jZSBEUERL IHN1cHBvcnRzIGxhcmdlci92YXJpYWJsZQoJICogaW5kaXJlY3Rpb24gdGFibGVzLgoJICovCglp ZiAoY29uZmlnLT5pbmRfdGFibGVfbWF4X3NpemUgPiAodW5zaWduZWQgaW50KUVUSF9SU1NfUkVU QV9TSVpFXzUxMikKCQljb25maWctPmluZF90YWJsZV9tYXhfc2l6ZSA9IEVUSF9SU1NfUkVUQV9T SVpFXzUxMjsKCURSVl9MT0coREVCVUcsICJtYXhpbXVtIFJ4IGluZGlyZWN0aW9uIHRhYmxlIHNp emUgaXMgJXUiLAoJCWNvbmZpZy0+aW5kX3RhYmxlX21heF9zaXplKTsKCWlmIChjb25maWctPmh3 X3BhZGRpbmcpIHsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L21seDUvd2luZG93 cy9tbHg1X29zLmM6NDg1CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L212bmV0YS9tdm5ldGFf ZXRoZGV2LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJcmV0dXJuIC1FSU5WQUw7 Cgl9CgoJaWYgKGRldi0+ZGF0YS0+ZGV2X2NvbmYudHhtb2RlLm9mZmxvYWRzICYgREVWX1RYX09G RkxPQURfTVVMVElfU0VHUykKCQlwcml2LT5tdWx0aXNlZyA9IDE7CgoJcHBpb19wYXJhbXMgPSAm cHJpdi0+cHBpb19wYXJhbXM7CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9tdm5l dGEvbXZuZXRhX2V0aGRldi5jOjEyNgpIdW5rICMzIHN1Y2NlZWRlZCBhdCAxNTUgKG9mZnNldCA0 IGxpbmVzKS4KSHVuayAjNCBzdWNjZWVkZWQgYXQgNTEwIChvZmZzZXQgNyBsaW5lcykuCkNoZWNr aW5nIHBhdGNoIGRyaXZlcnMvbmV0L212bmV0YS9tdm5ldGFfZXRoZGV2LmguLi4KZXJyb3I6IHdo aWxlIHNlYXJjaGluZyBmb3I6CiNkZWZpbmUgTVJWTF9ORVRBX01SVV9UT19NVFUobXJ1KQkoKG1y dSkgLSBNUlZMX05FVEFfSERSU19MRU4pCgovKiogUnggb2ZmbG9hZHMgY2FwYWJpbGl0aWVzICov CiNkZWZpbmUgTVZORVRBX1JYX09GRkxPQURTIChERVZfUlhfT0ZGTE9BRF9DSEVDS1NVTSkKCi8q KiBUeCBvZmZsb2FkcyBjYXBhYmlsaXRpZXMgKi8KI2RlZmluZSBNVk5FVEFfVFhfT0ZGTE9BRF9D SEVDS1NVTSAoREVWX1RYX09GRkxPQURfSVBWNF9DS1NVTSB8IFwKCQkJCSAgICBERVZfVFhfT0ZG TE9BRF9VRFBfQ0tTVU0gIHwgXAoJCQkJICAgIERFVl9UWF9PRkZMT0FEX1RDUF9DS1NVTSkKI2Rl ZmluZSBNVk5FVEFfVFhfT0ZGTE9BRFMgKE1WTkVUQV9UWF9PRkZMT0FEX0NIRUNLU1VNIHwgXAoJ CQkgICAgREVWX1RYX09GRkxPQURfTVVMVElfU0VHUykKCiNkZWZpbmUgTVZORVRBX1RYX1BLVF9P RkZMT0FEUyAoUEtUX1RYX0lQX0NLU1VNIHwgXAoJCQkJUEtUX1RYX1RDUF9DS1NVTSB8IFwKCmVy cm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L212bmV0YS9tdm5ldGFfZXRoZGV2Lmg6NTQK Q2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvbXZuZXRhL212bmV0YV9yeHR4LmMuLi4KSHVuayAj MSBzdWNjZWVkZWQgYXQgNzM1IChvZmZzZXQgMSBsaW5lKS4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVy cy9uZXQvbXZwcDIvbXJ2bF9ldGhkZXYuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoK I2RlZmluZSBNUlZMX0NPT0tJRV9ISUdIX0FERFJfTUFTSyAweGZmZmZmZjAwMDAwMDAwMDAKCi8q KiBQb3J0IFJ4IG9mZmxvYWQgY2FwYWJpbGl0aWVzICovCiNkZWZpbmUgTVJWTF9SWF9PRkZMT0FE UyAoREVWX1JYX09GRkxPQURfVkxBTl9GSUxURVIgfCBcCgkJCSAgREVWX1JYX09GRkxPQURfQ0hF Q0tTVU0pCgovKiogUG9ydCBUeCBvZmZsb2FkcyBjYXBhYmlsaXRpZXMgKi8KI2RlZmluZSBNUlZM X1RYX09GRkxPQURfQ0hFQ0tTVU0gKERFVl9UWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfCBcCgkJCQkg IERFVl9UWF9PRkZMT0FEX1VEUF9DS1NVTSAgfCBcCgkJCQkgIERFVl9UWF9PRkZMT0FEX1RDUF9D S1NVTSkKI2RlZmluZSBNUlZMX1RYX09GRkxPQURTIChNUlZMX1RYX09GRkxPQURfQ0hFQ0tTVU0g fCBcCgkJCSAgREVWX1RYX09GRkxPQURfTVVMVElfU0VHUykKCiNkZWZpbmUgTVJWTF9UWF9QS1Rf T0ZGTE9BRFMgKFBLVF9UWF9JUF9DS1NVTSB8IFwKCQkJICAgICAgUEtUX1RYX1RDUF9DS1NVTSB8 IFwKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L212cHAyL21ydmxfZXRoZGV2LmM6 NTgKSHVuayAjMiBzdWNjZWVkZWQgYXQgNDQzIChvZmZzZXQgMSBsaW5lKS4KSHVuayAjMyBzdWNj ZWVkZWQgYXQgNDg0IChvZmZzZXQgMSBsaW5lKS4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6 CgkJcmV0dXJuIC1FSU5WQUw7Cgl9CgoJaWYgKGRldi0+ZGF0YS0+ZGV2X2NvbmYudHhtb2RlLm9m ZmxvYWRzICYgREVWX1RYX09GRkxPQURfTVVMVElfU0VHUykKCQlwcml2LT5tdWx0aXNlZyA9IDE7 CgoJcmV0ID0gbXJ2bF9jb25maWd1cmVfcnhxcyhwcml2LCBkZXYtPmRhdGEtPnBvcnRfaWQsCgpl cnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9tdnBwMi9tcnZsX2V0aGRldi5jOjUwMgpI dW5rICM1IHN1Y2NlZWRlZCBhdCA1MzAgKG9mZnNldCA2IGxpbmVzKS4KSHVuayAjNiBzdWNjZWVk ZWQgYXQgNjMyIChvZmZzZXQgOSBsaW5lcykuCkh1bmsgIzcgc3VjY2VlZGVkIGF0IDY1MyAob2Zm c2V0IDkgbGluZXMpLgpIdW5rICM4IHN1Y2NlZWRlZCBhdCA2NzMgKG9mZnNldCA5IGxpbmVzKS4K SHVuayAjOSBzdWNjZWVkZWQgYXQgOTAyIChvZmZzZXQgOSBsaW5lcykuCkh1bmsgIzEwIHN1Y2Nl ZWRlZCBhdCA5MzggKG9mZnNldCA5IGxpbmVzKS4KSHVuayAjMTEgc3VjY2VlZGVkIGF0IDEyMTEg KG9mZnNldCA5IGxpbmVzKS4KSHVuayAjMTIgc3VjY2VlZGVkIGF0IDE3MTggKG9mZnNldCA5IGxp bmVzKS4KSHVuayAjMTMgc3VjY2VlZGVkIGF0IDE3NDIgKG9mZnNldCA5IGxpbmVzKS4KSHVuayAj MTQgc3VjY2VlZGVkIGF0IDE4NzMgKG9mZnNldCA5IGxpbmVzKS4KSHVuayAjMTUgc3VjY2VlZGVk IGF0IDE4ODggKG9mZnNldCA5IGxpbmVzKS4KSHVuayAjMTYgc3VjY2VlZGVkIGF0IDIwMzMgKG9m ZnNldCAxMSBsaW5lcykuCkh1bmsgIzE3IHN1Y2NlZWRlZCBhdCAyMTkzIChvZmZzZXQgMTEgbGlu ZXMpLgpIdW5rICMxOCBzdWNjZWVkZWQgYXQgMjIwMiAob2Zmc2V0IDExIGxpbmVzKS4KSHVuayAj MTkgc3VjY2VlZGVkIGF0IDIyNTEgKG9mZnNldCAxMSBsaW5lcykuCkh1bmsgIzIwIHN1Y2NlZWRl ZCBhdCAyMzQwIChvZmZzZXQgMTEgbGluZXMpLgpIdW5rICMyMSBzdWNjZWVkZWQgYXQgMzE2MyAo b2Zmc2V0IDExIGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvbmV0dnNjL2huX2V0 aGRldi5jLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L25ldHZzYy9obl9ybmRpcy5jLi4u CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L25mYi9uZmJfZXRoZGV2LmMuLi4KQ2hlY2tpbmcg cGF0Y2ggZHJpdmVycy9uZXQvbmZiL25mYl9yeC5jLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMv bmV0L25mcC9uZnBfY29tbW9uLmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CglyeG1v ZGUgPSAmZGV2X2NvbmYtPnJ4bW9kZTsKCXR4bW9kZSA9ICZkZXZfY29uZi0+dHhtb2RlOwoKCWlm IChyeG1vZGUtPm9mZmxvYWRzICYgREVWX1JYX09GRkxPQURfSVBWNF9DS1NVTSkgewoJCWlmICho dy0+Y2FwICYgTkZQX05FVF9DRkdfQ1RSTF9SWENTVU0pCgkJCWN0cmwgfD0gTkZQX05FVF9DRkdf Q1RSTF9SWENTVU07Cgl9CgoJaWYgKHJ4bW9kZS0+b2ZmbG9hZHMgJiBERVZfUlhfT0ZGTE9BRF9W TEFOX1NUUklQKSB7CgkJaWYgKGh3LT5jYXAgJiBORlBfTkVUX0NGR19DVFJMX1JYVkxBTikKCQkJ Y3RybCB8PSBORlBfTkVUX0NGR19DVFJMX1JYVkxBTjsKCX0KCglody0+bXR1ID0gZGV2LT5kYXRh LT5tdHU7CgoJaWYgKHR4bW9kZS0+b2ZmbG9hZHMgJiBERVZfVFhfT0ZGTE9BRF9WTEFOX0lOU0VS VCkKCQljdHJsIHw9IE5GUF9ORVRfQ0ZHX0NUUkxfVFhWTEFOOwoKCS8qIEwyIGJyb2FkY2FzdCAq LwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvbmZwL25mcF9jb21tb24uYzozNTkK SHVuayAjNCBzdWNjZWVkZWQgYXQgMzg0IChvZmZzZXQgMSBsaW5lKS4KSHVuayAjNSBzdWNjZWVk ZWQgYXQgMzk4IChvZmZzZXQgMSBsaW5lKS4KSHVuayAjNiBzdWNjZWVkZWQgYXQgNDg2IChvZmZz ZXQgMSBsaW5lKS4KSHVuayAjNyBzdWNjZWVkZWQgYXQgNTA1IChvZmZzZXQgMSBsaW5lKS4KSHVu ayAjOCBzdWNjZWVkZWQgYXQgNzAyIChvZmZzZXQgMSBsaW5lKS4KZXJyb3I6IHdoaWxlIHNlYXJj aGluZyBmb3I6Cgl9OwoKCWlmIChody0+Y2FwICYgTkZQX05FVF9DRkdfQ1RSTF9SU1MpIHsKCQlk ZXZfaW5mby0+cnhfb2ZmbG9hZF9jYXBhIHw9IERFVl9SWF9PRkZMT0FEX1JTU19IQVNIOwoKCQlk ZXZfaW5mby0+Zmxvd190eXBlX3Jzc19vZmZsb2FkcyA9IEVUSF9SU1NfSVBWNCB8CgkJCQkJCSAg IEVUSF9SU1NfTk9ORlJBR19JUFY0X1RDUCB8CgkJCQkJCSAgIEVUSF9SU1NfTk9ORlJBR19JUFY0 X1VEUCB8CgkJCQkJCSAgIEVUSF9SU1NfSVBWNiB8CgkJCQkJCSAgIEVUSF9SU1NfTk9ORlJBR19J UFY2X1RDUCB8CgkJCQkJCSAgIEVUSF9SU1NfTk9ORlJBR19JUFY2X1VEUDsKCgkJZGV2X2luZm8t PnJldGFfc2l6ZSA9IE5GUF9ORVRfQ0ZHX1JTU19JVEJMX1NaOwoJCWRldl9pbmZvLT5oYXNoX2tl eV9zaXplID0gTkZQX05FVF9DRkdfUlNTX0tFWV9TWjsKCX0KCglkZXZfaW5mby0+c3BlZWRfY2Fw YSA9IEVUSF9MSU5LX1NQRUVEXzFHIHwgRVRIX0xJTktfU1BFRURfMTBHIHwKCQkJICAgICAgIEVU SF9MSU5LX1NQRUVEXzI1RyB8IEVUSF9MSU5LX1NQRUVEXzQwRyB8CgkJCSAgICAgICBFVEhfTElO S19TUEVFRF81MEcgfCBFVEhfTElOS19TUEVFRF8xMDBHOwoKCXJldHVybiAwOwp9CgplcnJvcjog cGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9uZnAvbmZwX2NvbW1vbi5jOjc1NwpIdW5rICMxMCBz dWNjZWVkZWQgYXQgODQ3IChvZmZzZXQgNCBsaW5lcykuCkh1bmsgIzExIHN1Y2NlZWRlZCBhdCA5 OTAgKG9mZnNldCAxNyBsaW5lcykuCkh1bmsgIzEyIHN1Y2NlZWRlZCBhdCAxMDM1IChvZmZzZXQg MTcgbGluZXMpLgpIdW5rICMxMyBzdWNjZWVkZWQgYXQgMTExNiAob2Zmc2V0IDE3IGxpbmVzKS4K SHVuayAjMTQgc3VjY2VlZGVkIGF0IDExNTUgKG9mZnNldCAxNyBsaW5lcykuCkh1bmsgIzE1IHN1 Y2NlZWRlZCBhdCAxMjQwIChvZmZzZXQgMTcgbGluZXMpLgpDaGVja2luZyBwYXRjaCBkcml2ZXJz L25ldC9uZnAvbmZwX2V0aGRldi5jLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L25mcC9u ZnBfZXRoZGV2X3ZmLmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvbmdiZS9uZ2JlX2V0 aGRldi5jLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L251bGwvcnRlX2V0aF9udWxsLmMu Li4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvb2N0ZW9udHgvb2N0ZW9udHhfZXRoZGV2LmMu Li4KSHVuayAjNiBzdWNjZWVkZWQgYXQgNTM0IChvZmZzZXQgNCBsaW5lcykuCmVycm9yOiB3aGls ZSBzZWFyY2hpbmcgZm9yOgoKCS8qIFNldHVwIHNjYXR0ZXIgbW9kZSBpZiBuZWVkZWQgYnkganVt Ym8gKi8KCWlmIChkYXRhLT5tdHUgPiBidWZmc3opIHsKCQluaWMtPnJ4X29mZmxvYWRzIHw9IERF Vl9SWF9PRkZMT0FEX1NDQVRURVI7CgkJbmljLT5yeF9vZmZsb2FkX2ZsYWdzIHw9IG9jdGVvbnR4 X3J4X29mZmxvYWRfZmxhZ3MoZXRoX2Rldik7CgkJbmljLT50eF9vZmZsb2FkX2ZsYWdzIHw9IG9j dGVvbnR4X3R4X29mZmxvYWRfZmxhZ3MoZXRoX2Rldik7Cgl9CgplcnJvcjogcGF0Y2ggZmFpbGVk OiBkcml2ZXJzL25ldC9vY3Rlb250eC9vY3Rlb250eF9ldGhkZXYuYzo1NzEKSHVuayAjOCBzdWNj ZWVkZWQgYXQgODU0IChvZmZzZXQgMTEgbGluZXMpLgpIdW5rICM5IHN1Y2NlZWRlZCBhdCAxMzY3 IChvZmZzZXQgMTEgbGluZXMpLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9vY3Rlb250eC9v Y3Rlb250eF9ldGhkZXYuaC4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKI2RlZmluZSBP Q0NUWF9NQVhfTVRVCQkoT0NDVFhfTUFYX0ZSUyAtIE9DQ1RYX0wyX09WRVJIRUFEKQoKI2RlZmlu ZSBPQ1RFT05UWF9SWF9PRkZMT0FEUwkJKAkJCQkgICBcCgkJCQkJIERFVl9SWF9PRkZMT0FEX0NI RUNLU1VNCSB8IFwKCQkJCQkgREVWX1JYX09GRkxPQURfU0NUUF9DS1NVTSAgICAgICB8IFwKCQkJ CQkgREVWX1JYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTSB8IFwKCQkJCQkgREVWX1JYX09GRkxP QURfU0NBVFRFUgkgICAgICAgICB8IFwKCQkJCQkgREVWX1JYX09GRkxPQURfU0NBVFRFUgkJIHwg XAoJCQkJCSBERVZfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUikKCiNkZWZpbmUgT0NURU9OVFhfVFhf T0ZGTE9BRFMJCSgJCQkJICAgXAoJCQkJCSBERVZfVFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJFRQkg fCBcCgkJCQkJIERFVl9UWF9PRkZMT0FEX01UX0xPQ0tGUkVFCSB8IFwKCQkJCQkgREVWX1RYX09G RkxPQURfT1VURVJfSVBWNF9DS1NVTSB8IFwKCQkJCQkgREVWX1RYX09GRkxPQURfT1VURVJfVURQ X0NLU1VNCSB8IFwKCQkJCQkgREVWX1RYX09GRkxPQURfSVBWNF9DS1NVTQkgfCBcCgkJCQkJIERF Vl9UWF9PRkZMT0FEX1RDUF9DS1NVTQkgfCBcCgkJCQkJIERFVl9UWF9PRkZMT0FEX1VEUF9DS1NV TQkgfCBcCgkJCQkJIERFVl9UWF9PRkZMT0FEX1NDVFBfQ0tTVU0JIHwgXAoJCQkJCSBERVZfVFhf T0ZGTE9BRF9NVUxUSV9TRUdTKQoKc3RhdGljIGlubGluZSBzdHJ1Y3Qgb2N0ZW9udHhfbmljICoK b2N0ZW9udHhfcG1kX3ByaXYoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYpCgplcnJvcjogcGF0Y2gg ZmFpbGVkOiBkcml2ZXJzL25ldC9vY3Rlb250eC9vY3Rlb250eF9ldGhkZXYuaDo1NQpDaGVja2lu ZyBwYXRjaCBkcml2ZXJzL25ldC9vY3Rlb250eC9vY3Rlb250eF9ldGhkZXZfb3BzLmMuLi4KQ2hl Y2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvb2N0ZW9udHgyL290eDJfZXRoZGV2LmMuLi4KZXJyb3I6 IHdoaWxlIHNlYXJjaGluZyBmb3I6CglidWZmc3ogPSBtYnBfcHJpdi0+bWJ1Zl9kYXRhX3Jvb21f c2l6ZSAtIFJURV9QS1RNQlVGX0hFQURST09NOwoKCWlmIChldGhfZGV2LT5kYXRhLT5tdHUgKyAo dWludDMyX3QpTklYX0wyX09WRVJIRUFEID4gYnVmZnN6KSB7CgkJZGV2LT5yeF9vZmZsb2FkcyB8 PSBERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSOwoJCWRldi0+dHhfb2ZmbG9hZHMgfD0gREVWX1RYX09G RkxPQURfTVVMVElfU0VHUzsKCgkJLyogU2V0dGluZyB1cCB0aGUgcnhbdHhdX29mZmxvYWRfZmxh Z3MgZHVlIHRvIGNoYW5nZQoJCSAqIGluIHJ4W3R4XV9vZmZsb2Fkcy4KCmVycm9yOiBwYXRjaCBm YWlsZWQ6IGRyaXZlcnMvbmV0L29jdGVvbnR4Mi9vdHgyX2V0aGRldi5jOjkxNApIdW5rICMxMiBz dWNjZWVkZWQgYXQgMjU2NCAob2Zmc2V0IDEgbGluZSkuCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMv bmV0L29jdGVvbnR4Mi9vdHgyX2V0aGRldi5oLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9y OgojZGVmaW5lIENRX1RJTUVSX1RIUkVTSF9ERUZBVUxUCTB4QVVMTCAvKiB+MXVzZWMgaS5lICgw eEEgKiAxMDBuc2VjKSAqLwojZGVmaW5lIENRX1RJTUVSX1RIUkVTSF9NQVggICAgIDI1NQoKI2Rl ZmluZSBOSVhfUlNTX0wzX0w0X1NSQ19EU1QgIChFVEhfUlNTX0wzX1NSQ19PTkxZIHwgRVRIX1JT U19MM19EU1RfT05MWSBcCgkJCQl8IEVUSF9SU1NfTDRfU1JDX09OTFkgfCBFVEhfUlNTX0w0X0RT VF9PTkxZKQoKI2RlZmluZSBOSVhfUlNTX09GRkxPQUQJCShFVEhfUlNTX1BPUlQgfCBFVEhfUlNT X0lQIHwgRVRIX1JTU19VRFAgfFwKCQkJCSBFVEhfUlNTX1RDUCB8IEVUSF9SU1NfU0NUUCB8IFwK CQkJCSBFVEhfUlNTX1RVTk5FTCB8IEVUSF9SU1NfTDJfUEFZTE9BRCB8IFwKCQkJCSBOSVhfUlNT X0wzX0w0X1NSQ19EU1QgfCBFVEhfUlNTX0xFVkVMX01BU0sgfCBcCgkJCQkgRVRIX1JTU19DX1ZM QU4pCgojZGVmaW5lIE5JWF9UWF9PRkZMT0FEX0NBUEEgKCBcCglERVZfVFhfT0ZGTE9BRF9NQlVG X0ZBU1RfRlJFRQl8IFwKCURFVl9UWF9PRkZMT0FEX01UX0xPQ0tGUkVFCXwgXAoJREVWX1RYX09G RkxPQURfVkxBTl9JTlNFUlQJfCBcCglERVZfVFhfT0ZGTE9BRF9RSU5RX0lOU0VSVAl8IFwKCURF Vl9UWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0JfCBcCglERVZfVFhfT0ZGTE9BRF9PVVRFUl9V RFBfQ0tTVU0JfCBcCglERVZfVFhfT0ZGTE9BRF9UQ1BfQ0tTVU0JfCBcCglERVZfVFhfT0ZGTE9B RF9VRFBfQ0tTVU0JfCBcCglERVZfVFhfT0ZGTE9BRF9TQ1RQX0NLU1VNCXwgXAoJREVWX1RYX09G RkxPQURfVENQX1RTTwkJfCBcCglERVZfVFhfT0ZGTE9BRF9WWExBTl9UTkxfVFNPICAgIHwgXAoJ REVWX1RYX09GRkxPQURfR0VORVZFX1ROTF9UU08gICB8IFwKCURFVl9UWF9PRkZMT0FEX0dSRV9U TkxfVFNPCXwgXAoJREVWX1RYX09GRkxPQURfTVVMVElfU0VHUwl8IFwKCURFVl9UWF9PRkZMT0FE X0lQVjRfQ0tTVU0pCgojZGVmaW5lIE5JWF9SWF9PRkZMT0FEX0NBUEEgKCBcCglERVZfUlhfT0ZG TE9BRF9DSEVDS1NVTQkJfCBcCglERVZfUlhfT0ZGTE9BRF9TQ1RQX0NLU1VNCXwgXAoJREVWX1JY X09GRkxPQURfT1VURVJfSVBWNF9DS1NVTSB8IFwKCURFVl9SWF9PRkZMT0FEX1NDQVRURVIJCXwg XAoJREVWX1JYX09GRkxPQURfT1VURVJfVURQX0NLU1VNCXwgXAoJREVWX1JYX09GRkxPQURfVkxB Tl9TVFJJUAl8IFwKCURFVl9SWF9PRkZMT0FEX1ZMQU5fRklMVEVSCXwgXAoJREVWX1JYX09GRkxP QURfUUlOUV9TVFJJUAl8IFwKCURFVl9SWF9PRkZMT0FEX1RJTUVTVEFNUAl8IFwKCURFVl9SWF9P RkZMT0FEX1JTU19IQVNIKQoKI2RlZmluZSBOSVhfREVGQVVMVF9SU1NfQ1RYX0dST1VQICAwCiNk ZWZpbmUgTklYX0RFRkFVTFRfUlNTX01DQU1fSURYICAtMQoKZXJyb3I6IHBhdGNoIGZhaWxlZDog ZHJpdmVycy9uZXQvb2N0ZW9udHgyL290eDJfZXRoZGV2Lmg6MTE3CkNoZWNraW5nIHBhdGNoIGRy aXZlcnMvbmV0L29jdGVvbnR4Mi9vdHgyX2V0aGRldl9kZXZhcmdzLmMuLi4KQ2hlY2tpbmcgcGF0 Y2ggZHJpdmVycy9uZXQvb2N0ZW9udHgyL290eDJfZXRoZGV2X29wcy5jLi4uCkh1bmsgIzEgc3Vj Y2VlZGVkIGF0IDMwIChvZmZzZXQgNCBsaW5lcykuCkh1bmsgIzIgc3VjY2VlZGVkIGF0IDU5NiAo b2Zmc2V0IDI4IGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvb2N0ZW9udHgyL290 eDJfZXRoZGV2X3NlYy5jLi4uCkh1bmsgIzEgc3VjY2VlZGVkIGF0IDg5MCAob2Zmc2V0IDIxIGxp bmVzKS4KSHVuayAjMiBzdWNjZWVkZWQgYXQgOTMzIChvZmZzZXQgMjEgbGluZXMpLgpDaGVja2lu ZyBwYXRjaCBkcml2ZXJzL25ldC9vY3Rlb250eDIvb3R4Ml9mbG93LmMuLi4KQ2hlY2tpbmcgcGF0 Y2ggZHJpdmVycy9uZXQvb2N0ZW9udHgyL290eDJfZmxvd19jdHJsLmMuLi4KQ2hlY2tpbmcgcGF0 Y2ggZHJpdmVycy9uZXQvb2N0ZW9udHgyL290eDJfZmxvd19wYXJzZS5jLi4uCkh1bmsgIzIgc3Vj Y2VlZGVkIGF0IDExODggKG9mZnNldCAyIGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9u ZXQvb2N0ZW9udHgyL290eDJfbGluay5jLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L29j dGVvbnR4Mi9vdHgyX21jYXN0LmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvb2N0ZW9u dHgyL290eDJfcHRwLmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvb2N0ZW9udHgyL290 eDJfcnNzLmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvb2N0ZW9udHgyL290eDJfcngu Yy4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9vY3Rlb250eDIvb3R4Ml90eC5jLi4uCkNo ZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L29jdGVvbnR4Mi9vdHgyX3ZsYW4uYy4uLgpDaGVja2lu ZyBwYXRjaCBkcml2ZXJzL25ldC9vY3Rlb250eF9lcC9vdHhfZXBfZXRoZGV2LmMuLi4KZXJyb3I6 IHdoaWxlIHNlYXJjaGluZyBmb3I6CgoJb3R4X2VwdmYgPSBPVFhfRVBfREVWKGV0aF9kZXYpOwoK CWRldmluZm8tPnNwZWVkX2NhcGEgPSBFVEhfTElOS19TUEVFRF8xMEc7CglkZXZpbmZvLT5tYXhf cnhfcXVldWVzID0gb3R4X2VwdmYtPm1heF9yeF9xdWV1ZXM7CglkZXZpbmZvLT5tYXhfdHhfcXVl dWVzID0gb3R4X2VwdmYtPm1heF90eF9xdWV1ZXM7CgoJZGV2aW5mby0+bWluX3J4X2J1ZnNpemUg PSBPVFhfRVBfTUlOX1JYX0JVRl9TSVpFOwoJZGV2aW5mby0+bWF4X3J4X3BrdGxlbiA9IE9UWF9F UF9NQVhfUEtUX1NaOwoJZGV2aW5mby0+cnhfb2ZmbG9hZF9jYXBhID0gREVWX1JYX09GRkxPQURf U0NBVFRFUjsKCWRldmluZm8tPnR4X29mZmxvYWRfY2FwYSA9IERFVl9UWF9PRkZMT0FEX01VTFRJ X1NFR1M7CgoJZGV2aW5mby0+bWF4X21hY19hZGRycyA9IE9UWF9FUF9NQVhfTUFDX0FERFJTOwoK CmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L29jdGVvbnR4X2VwL290eF9lcF9ldGhk ZXYuYzozMwpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9vY3Rlb250eF9lcC9vdHhfZXBfcnh0 eC5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJZHJvcV9wa3QtPmw0X2xlbiA9IGhk cl9sZW5zLmw0X2xlbjsKCglpZiAoZHJvcV9wa3QtPm5iX3NlZ3MgPiAxICYmCgkgICAgIShvdHhf ZXAtPnJ4X29mZmxvYWRzICYgREVWX1JYX09GRkxPQURfU0NBVFRFUikpIHsKCQlydGVfcGt0bWJ1 Zl9mcmVlKGRyb3FfcGt0KTsKCQlnb3RvIG9xX3JlYWRfZmFpbDsKCX0KCmVycm9yOiBwYXRjaCBm YWlsZWQ6IGRyaXZlcnMvbmV0L29jdGVvbnR4X2VwL290eF9lcF9yeHR4LmM6OTU0CkNoZWNraW5n IHBhdGNoIGRyaXZlcnMvbmV0L3BjYXAvcGNhcF9ldGhkZXYuYy4uLgpDaGVja2luZyBwYXRjaCBk cml2ZXJzL25ldC9wZmUvcGZlX2V0aGRldi5jLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0 L3FlZGUvYmFzZS9tY3BfcHVibGljLmguLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvcWVk ZS9xZWRlX2V0aGRldi5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJCQlyZXR1cm4g LUVOT01FTTsKCX0KCglpZiAocnhtb2RlLT5vZmZsb2FkcyAmIERFVl9SWF9PRkZMT0FEX1NDQVRU RVIpCgkJZXRoX2Rldi0+ZGF0YS0+c2NhdHRlcmVkX3J4ID0gMTsKCglpZiAocWVkZV9zdGFydF92 cG9ydChxZGV2LCBldGhfZGV2LT5kYXRhLT5tdHUpKQoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJp dmVycy9uZXQvcWVkZS9xZWRlX2V0aGRldi5jOjEzMTIKSHVuayAjMTAgc3VjY2VlZGVkIGF0IDEz MjcgKG9mZnNldCA2IGxpbmVzKS4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CglkZXZfaW5m by0+cmV0YV9zaXplID0gRUNPUkVfUlNTX0lORF9UQUJMRV9TSVpFOwoJZGV2X2luZm8tPmhhc2hf a2V5X3NpemUgPSBFQ09SRV9SU1NfS0VZX1NJWkUgKiBzaXplb2YodWludDMyX3QpOwoJZGV2X2lu Zm8tPmZsb3dfdHlwZV9yc3Nfb2ZmbG9hZHMgPSAodWludDY0X3QpUUVERV9SU1NfT0ZGTE9BRF9B TEw7CglkZXZfaW5mby0+cnhfb2ZmbG9hZF9jYXBhID0gKERFVl9SWF9PRkZMT0FEX0lQVjRfQ0tT VU0JfAoJCQkJICAgICBERVZfUlhfT0ZGTE9BRF9VRFBfQ0tTVU0JfAoJCQkJICAgICBERVZfUlhf T0ZGTE9BRF9UQ1BfQ0tTVU0JfAoJCQkJICAgICBERVZfUlhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NL U1VNIHwKCQkJCSAgICAgREVWX1JYX09GRkxPQURfVENQX0xSTwl8CgkJCQkgICAgIERFVl9SWF9P RkZMT0FEX0tFRVBfQ1JDICAgIHwKCQkJCSAgICAgREVWX1JYX09GRkxPQURfU0NBVFRFUgl8CgkJ CQkgICAgIERFVl9SWF9PRkZMT0FEX1ZMQU5fRklMVEVSIHwKCQkJCSAgICAgREVWX1JYX09GRkxP QURfVkxBTl9TVFJJUCAgfAoJCQkJICAgICBERVZfUlhfT0ZGTE9BRF9SU1NfSEFTSCk7CglkZXZf aW5mby0+cnhfcXVldWVfb2ZmbG9hZF9jYXBhID0gMDsKCgkvKiBUWCBvZmZsb2FkcyBhcmUgb24g YSBwZXItcGFja2V0IGJhc2lzLCBzbyBpdCBpcyBhcHBsaWNhYmxlCgkgKiB0byBib3RoIGF0IHBv cnQgYW5kIHF1ZXVlIGxldmVscy4KCSAqLwoJZGV2X2luZm8tPnR4X29mZmxvYWRfY2FwYSA9IChE RVZfVFhfT0ZGTE9BRF9WTEFOX0lOU0VSVAl8CgkJCQkgICAgIERFVl9UWF9PRkZMT0FEX0lQVjRf Q0tTVU0JfAoJCQkJICAgICBERVZfVFhfT0ZGTE9BRF9VRFBfQ0tTVU0JfAoJCQkJICAgICBERVZf VFhfT0ZGTE9BRF9UQ1BfQ0tTVU0JfAoJCQkJICAgICBERVZfVFhfT0ZGTE9BRF9PVVRFUl9JUFY0 X0NLU1VNIHwKCQkJCSAgICAgREVWX1RYX09GRkxPQURfTVVMVElfU0VHUyAgfAoJCQkJICAgICBE RVZfVFhfT0ZGTE9BRF9UQ1BfVFNPCXwKCQkJCSAgICAgREVWX1RYX09GRkxPQURfVlhMQU5fVE5M X1RTTyB8CgkJCQkgICAgIERFVl9UWF9PRkZMT0FEX0dFTkVWRV9UTkxfVFNPKTsKCWRldl9pbmZv LT50eF9xdWV1ZV9vZmZsb2FkX2NhcGEgPSBkZXZfaW5mby0+dHhfb2ZmbG9hZF9jYXBhOwoKCWRl dl9pbmZvLT5kZWZhdWx0X3R4Y29uZiA9IChzdHJ1Y3QgcnRlX2V0aF90eGNvbmYpIHsKCQkub2Zm bG9hZHMgPSBERVZfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTLAoJfTsKCglkZXZfaW5mby0+ZGVmYXVs dF9yeGNvbmYgPSAoc3RydWN0IHJ0ZV9ldGhfcnhjb25mKSB7CgplcnJvcjogcGF0Y2ggZmFpbGVk OiBkcml2ZXJzL25ldC9xZWRlL3FlZGVfZXRoZGV2LmM6MTM4NQpIdW5rICMxMiBzdWNjZWVkZWQg YXQgMTQzMSAob2Zmc2V0IDcgbGluZXMpLgpIdW5rICMxMyBzdWNjZWVkZWQgYXQgMTQ2OCAob2Zm c2V0IDcgbGluZXMpLgpIdW5rICMxNCBzdWNjZWVkZWQgYXQgMTQ4MCAob2Zmc2V0IDcgbGluZXMp LgpIdW5rICMxNSBzdWNjZWVkZWQgYXQgMjAxOSAob2Zmc2V0IDcgbGluZXMpLgpIdW5rICMxNiBz dWNjZWVkZWQgYXQgMjA0OCAob2Zmc2V0IDcgbGluZXMpLgpIdW5rICMxNyBzdWNjZWVkZWQgYXQg MjA5NSAob2Zmc2V0IDcgbGluZXMpLgpIdW5rICMxOCBzdWNjZWVkZWQgYXQgMjIyOCAob2Zmc2V0 IDcgbGluZXMpLgpIdW5rICMxOSBzdWNjZWVkZWQgYXQgMjI1MiAob2Zmc2V0IDcgbGluZXMpLgpI dW5rICMyMCBzdWNjZWVkZWQgYXQgMjI4OSAob2Zmc2V0IDcgbGluZXMpLgpIdW5rICMyMSBzdWNj ZWVkZWQgYXQgMjc0NSAob2Zmc2V0IDI3IGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9u ZXQvcWVkZS9xZWRlX2ZpbHRlci5jLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L3FlZGUv cWVkZV9yeHR4LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CglidWZzeiA9ICh1aW50 MTZfdClydGVfcGt0bWJ1Zl9kYXRhX3Jvb21fc2l6ZShtcCkgLSBSVEVfUEtUTUJVRl9IRUFEUk9P TTsKCS8qIGNhY2hlIGFsaWduIHRoZSBtYnVmIHNpemUgdG8gc2ltcGxmeSByeF9idWZfc2l6ZSBj YWxjdWxhdGlvbiAqLwoJYnVmc3ogPSBRRURFX0ZMT09SX1RPX0NBQ0hFX0xJTkVfU0laRShidWZz eik7CglpZiAoKHJ4bW9kZS0+b2ZmbG9hZHMgJiBERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSKQl8fAoJ ICAgIChtYXhfcnhfcGt0bGVuICsgUUVERV9FVEhfT1ZFUkhFQUQpID4gYnVmc3opIHsKCQlpZiAo IWRldi0+ZGF0YS0+c2NhdHRlcmVkX3J4KSB7CgkJCURQX0lORk8oZWRldiwgIkZvcmNpbmcgc2Nh dHRlci1nYXRoZXIgbW9kZVxuIik7CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9x ZWRlL3FlZGVfcnh0eC5jOjI0OQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9xZWRlL3FlZGVf cnh0eC5oLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L3JpbmcvcnRlX2V0aF9yaW5nLmMu Li4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvc2ZjL3NmYy5jLi4uCkh1bmsgIzEgc3VjY2Vl ZGVkIGF0IDgxIChvZmZzZXQgLTI1IGxpbmVzKS4KSHVuayAjMiBzdWNjZWVkZWQgYXQgOTYgKG9m ZnNldCAtMjUgbGluZXMpLgpIdW5rICMzIHN1Y2NlZWRlZCBhdCAzMzcgKG9mZnNldCAtNjQgbGlu ZXMpLgpIdW5rICM0IHN1Y2NlZWRlZCBhdCA4MjcgKG9mZnNldCAtNzIgbGluZXMpLgpIdW5rICM1 IHN1Y2NlZWRlZCBhdCA4MzYgKG9mZnNldCAtNzIgbGluZXMpLgpDaGVja2luZyBwYXRjaCBkcml2 ZXJzL25ldC9zZmMvc2ZjX2VmMTAwX3J4LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6 CgkJCQkgIFNGQ19EUF9SWF9GRUFUX0lOVFIgfAoJCQkJICBTRkNfRFBfUlhfRkVBVF9TVEFUUywK CS5kZXZfb2ZmbG9hZF9jYXBhCT0gMCwKCS5xdWV1ZV9vZmZsb2FkX2NhcGEJPSBERVZfUlhfT0ZG TE9BRF9DSEVDS1NVTSB8CgkJCQkgIERFVl9SWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gfAoJ CQkJICBERVZfUlhfT0ZGTE9BRF9PVVRFUl9VRFBfQ0tTVU0gfAoJCQkJICBERVZfUlhfT0ZGTE9B RF9TQ0FUVEVSIHwKCQkJCSAgREVWX1JYX09GRkxPQURfUlNTX0hBU0gsCgkuZ2V0X2Rldl9pbmZv CQk9IHNmY19lZjEwMF9yeF9nZXRfZGV2X2luZm8sCgkucXNpemVfdXBfcmluZ3MJCT0gc2ZjX2Vm MTAwX3J4X3FzaXplX3VwX3JpbmdzLAoJLnFjcmVhdGUJCT0gc2ZjX2VmMTAwX3J4X3FjcmVhdGUs CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9zZmMvc2ZjX2VmMTAwX3J4LmM6OTc5 CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L3NmYy9zZmNfZWYxMDBfdHguYy4uLgplcnJvcjog d2hpbGUgc2VhcmNoaW5nIGZvcjoKCS5mZWF0dXJlcwkJPSBTRkNfRFBfVFhfRkVBVF9NVUxUSV9Q Uk9DRVNTIHwKCQkJCSAgU0ZDX0RQX1RYX0ZFQVRfU1RBVFMsCgkuZGV2X29mZmxvYWRfY2FwYQk9 IDAsCgkucXVldWVfb2ZmbG9hZF9jYXBhCT0gREVWX1RYX09GRkxPQURfVkxBTl9JTlNFUlQgfAoJ CQkJICBERVZfVFhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwKCQkJCSAgREVWX1RYX09GRkxPQURfT1VU RVJfSVBWNF9DS1NVTSB8CgkJCQkgIERFVl9UWF9PRkZMT0FEX09VVEVSX1VEUF9DS1NVTSB8CgkJ CQkgIERFVl9UWF9PRkZMT0FEX1VEUF9DS1NVTSB8CgkJCQkgIERFVl9UWF9PRkZMT0FEX1RDUF9D S1NVTSB8CgkJCQkgIERFVl9UWF9PRkZMT0FEX01VTFRJX1NFR1MgfAoJCQkJICBERVZfVFhfT0ZG TE9BRF9UQ1BfVFNPIHwKCQkJCSAgREVWX1RYX09GRkxPQURfVlhMQU5fVE5MX1RTTyB8CgkJCQkg IERFVl9UWF9PRkZMT0FEX0dFTkVWRV9UTkxfVFNPLAoJLmdldF9kZXZfaW5mbwkJPSBzZmNfZWYx MDBfZ2V0X2Rldl9pbmZvLAoJLnFzaXplX3VwX3JpbmdzCQk9IHNmY19lZjEwMF90eF9xc2l6ZV91 cF9yaW5ncywKCS5xY3JlYXRlCQk9IHNmY19lZjEwMF90eF9xY3JlYXRlLAoKZXJyb3I6IHBhdGNo IGZhaWxlZDogZHJpdmVycy9uZXQvc2ZjL3NmY19lZjEwMF90eC5jOjk3MQpDaGVja2luZyBwYXRj aCBkcml2ZXJzL25ldC9zZmMvc2ZjX2VmMTBfZXNzYl9yeC5jLi4uCkNoZWNraW5nIHBhdGNoIGRy aXZlcnMvbmV0L3NmYy9zZmNfZWYxMF9yeC5jLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0 L3NmYy9zZmNfZWYxMF90eC5jLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L3NmYy9zZmNf ZXRoZGV2LmMuLi4KSHVuayAjMSBzdWNjZWVkZWQgYXQgMTAyIChvZmZzZXQgLTMgbGluZXMpLgpI dW5rICMyIHN1Y2NlZWRlZCBhdCAxNDIgKG9mZnNldCAtMyBsaW5lcykuCkh1bmsgIzMgc3VjY2Vl ZGVkIGF0IDkxMyAob2Zmc2V0IC03NiBsaW5lcykuCkh1bmsgIzQgc3VjY2VlZGVkIGF0IDk1MyAo b2Zmc2V0IC03NiBsaW5lcykuCkh1bmsgIzUgc3VjY2VlZGVkIGF0IDEyNDggKG9mZnNldCAtNjUg bGluZXMpLgpIdW5rICM2IHN1Y2NlZWRlZCBhdCAxNDczIChvZmZzZXQgLTUwIGxpbmVzKS4KSHVu ayAjNyBzdWNjZWVkZWQgYXQgMTYwMiAob2Zmc2V0IC01MCBsaW5lcykuCkh1bmsgIzggc3VjY2Vl ZGVkIGF0IDE3MjggKG9mZnNldCAtNTAgbGluZXMpLgpIdW5rICM5IHN1Y2NlZWRlZCBhdCAxNzc4 IChvZmZzZXQgLTUwIGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvc2ZjL3NmY19m bG93LmMuLi4KSHVuayAjMSBzdWNjZWVkZWQgYXQgMzkwIChvZmZzZXQgLTIgbGluZXMpLgpDaGVj a2luZyBwYXRjaCBkcml2ZXJzL25ldC9zZmMvc2ZjX3BvcnQuYy4uLgpIdW5rICMxIHN1Y2NlZWRl ZCBhdCA1NzcgKG9mZnNldCA0IGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvc2Zj L3NmY19yZXByLmMuLi4KZXJyb3I6IGRyaXZlcnMvbmV0L3NmYy9zZmNfcmVwci5jOiBkb2VzIG5v dCBleGlzdCBpbiBpbmRleApDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9zZmMvc2ZjX3J4LmMu Li4KSHVuayAjMSBzdWNjZWVkZWQgYXQgNjQ3IChvZmZzZXQgLTEgbGluZXMpLgpIdW5rICMyIHN1 Y2NlZWRlZCBhdCA5MzAgKG9mZnNldCAtMSBsaW5lcykuCkh1bmsgIzMgc3VjY2VlZGVkIGF0IDEx NDEgKG9mZnNldCAxIGxpbmUpLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCQlyeHFfaW5m by0+dHlwZSA9IEVGWF9SWFFfVFlQRV9ERUZBVUxUOwoKCXJ4cV9pbmZvLT50eXBlX2ZsYWdzIHw9 CgkJKG9mZmxvYWRzICYgREVWX1JYX09GRkxPQURfU0NBVFRFUikgPwoJCUVGWF9SWFFfRkxBR19T Q0FUVEVSIDogRUZYX1JYUV9GTEFHX05PTkU7CgoJaWYgKChlbmNwLT5lbmNfdHVubmVsX2VuY2Fw c3VsYXRpb25zX3N1cHBvcnRlZCAhPSAwKSAmJgoJICAgIChzZmNfZHBfcnhfb2ZmbG9hZF9jYXBh KHNhLT5wcml2LmRwX3J4KSAmCgkgICAgIERFVl9SWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0p ICE9IDApCgkJcnhxX2luZm8tPnR5cGVfZmxhZ3MgfD0gRUZYX1JYUV9GTEFHX0lOTkVSX0NMQVNT RVM7CgoJaWYgKG9mZmxvYWRzICYgREVWX1JYX09GRkxPQURfUlNTX0hBU0gpCgkJcnhxX2luZm8t PnR5cGVfZmxhZ3MgfD0gRUZYX1JYUV9GTEFHX1JTU19IQVNIOwoKCWlmICgoc2EtPm5lZ290aWF0 ZWRfcnhfbWV0YWRhdGEgJiBSVEVfRVRIX1JYX01FVEFEQVRBX1VTRVJfRkxBRykgIT0gMCkKCmVy cm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L3NmYy9zZmNfcnguYzoxMTY2Ckh1bmsgIzUg c3VjY2VlZGVkIGF0IDEyMDUgKG9mZnNldCAtNiBsaW5lcykuCkh1bmsgIzYgc3VjY2VlZGVkIGF0 IDEzMDEgKG9mZnNldCAtMTIgbGluZXMpLgpIdW5rICM3IHN1Y2NlZWRlZCBhdCAxNjMzIChvZmZz ZXQgLTEyIGxpbmVzKS4KSHVuayAjOCBzdWNjZWVkZWQgYXQgMTY1MyAob2Zmc2V0IC0xMiBsaW5l cykuCkh1bmsgIzkgc3VjY2VlZGVkIGF0IDE4MDggKG9mZnNldCAtMTIgbGluZXMpLgpDaGVja2lu ZyBwYXRjaCBkcml2ZXJzL25ldC9zZmMvc2ZjX3R4LmMuLi4KSHVuayAjNCBzdWNjZWVkZWQgYXQg NTE1IChvZmZzZXQgLTE0IGxpbmVzKS4KSHVuayAjNSBzdWNjZWVkZWQgYXQgODYyIChvZmZzZXQg LTE0IGxpbmVzKS4KSHVuayAjNiBzdWNjZWVkZWQgYXQgMTIyOCAob2Zmc2V0IC0xNCBsaW5lcyku CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L3NvZnRuaWMvcnRlX2V0aF9zb2Z0bmljLmMuLi4K Q2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvc3plZGF0YTIvcnRlX2V0aF9zemVkYXRhMi5jLi4u CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L3RhcC9ydGVfZXRoX3RhcC5jLi4uCkh1bmsgIzEx IHN1Y2NlZWRlZCBhdCAxNzY1IChvZmZzZXQgNSBsaW5lcykuCkh1bmsgIzEyIHN1Y2NlZWRlZCBh dCAxNzczIChvZmZzZXQgNSBsaW5lcykuCkh1bmsgIzEzIHN1Y2NlZWRlZCBhdCAyMjY3IChvZmZz ZXQgNSBsaW5lcykuCkh1bmsgIzE0IHN1Y2NlZWRlZCBhdCAyNDQxIChvZmZzZXQgNSBsaW5lcyku CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L3RhcC90YXBfcnNzLmguLi4KQ2hlY2tpbmcgcGF0 Y2ggZHJpdmVycy9uZXQvdGh1bmRlcngvbmljdmZfZXRoZGV2LmMuLi4KSHVuayAjMyBzdWNjZWVk ZWQgYXQgNDA0IChvZmZzZXQgMTQgbGluZXMpLgpIdW5rICM0IHN1Y2NlZWRlZCBhdCA0NDUgKG9m ZnNldCAxNCBsaW5lcykuCkh1bmsgIzUgc3VjY2VlZGVkIGF0IDQ5MyAob2Zmc2V0IDE0IGxpbmVz KS4KSHVuayAjNiBzdWNjZWVkZWQgYXQgNTIzIChvZmZzZXQgMTQgbGluZXMpLgpIdW5rICM3IHN1 Y2NlZWRlZCBhdCA4MjEgKG9mZnNldCAxNCBsaW5lcykuCkh1bmsgIzggc3VjY2VlZGVkIGF0IDg4 NCAob2Zmc2V0IDE0IGxpbmVzKS4KSHVuayAjOSBzdWNjZWVkZWQgYXQgMTAwNiAob2Zmc2V0IDE0 IGxpbmVzKS4KSHVuayAjMTAgc3VjY2VlZGVkIGF0IDEzOTcgKG9mZnNldCAxNSBsaW5lcykuCkh1 bmsgIzExIHN1Y2NlZWRlZCBhdCAxNDMwIChvZmZzZXQgMTUgbGluZXMpLgpIdW5rICMxMiBzdWNj ZWVkZWQgYXQgMTU5NyAob2Zmc2V0IDE1IGxpbmVzKS4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBm b3I6CgkvKiBTZXR1cCBzY2F0dGVyIG1vZGUgaWYgbmVlZGVkIGJ5IGp1bWJvICovCglpZiAoZGV2 LT5kYXRhLT5tdHUgKyAodWludDMyX3QpTklDX0hXX0wyX09WRVJIRUFEICsgMiAqIFZMQU5fVEFH X1NJWkUgPiBidWZmc3opCgkJZGV2LT5kYXRhLT5zY2F0dGVyZWRfcnggPSAxOwoJaWYgKChyeF9j b25mLT5vZmZsb2FkcyAmIERFVl9SWF9PRkZMT0FEX1NDQVRURVIpICE9IDApCgkJZGV2LT5kYXRh LT5zY2F0dGVyZWRfcnggPSAxOwoKCS8qIFNldHVwIE1UVSAqLwoKZXJyb3I6IHBhdGNoIGZhaWxl ZDogZHJpdmVycy9uZXQvdGh1bmRlcngvbmljdmZfZXRoZGV2LmM6MTcxMQpIdW5rICMxNCBzdWNj ZWVkZWQgYXQgMTkxNCAob2Zmc2V0IDE4IGxpbmVzKS4KSHVuayAjMTUgc3VjY2VlZGVkIGF0IDE5 MjcgKG9mZnNldCAxOCBsaW5lcykuCkh1bmsgIzE2IHN1Y2NlZWRlZCBhdCAxOTM4IChvZmZzZXQg MTggbGluZXMpLgpIdW5rICMxNyBzdWNjZWVkZWQgYXQgMTk3MyAob2Zmc2V0IDE4IGxpbmVzKS4K SHVuayAjMTggc3VjY2VlZGVkIGF0IDIwNTAgKG9mZnNldCAxOCBsaW5lcykuCkNoZWNraW5nIHBh dGNoIGRyaXZlcnMvbmV0L3RodW5kZXJ4L25pY3ZmX2V0aGRldi5oLi4uCmVycm9yOiB3aGlsZSBz ZWFyY2hpbmcgZm9yOgojZGVmaW5lIE5JQ1ZGX1VOS05PV05fRFVQTEVYCQkweGZmCgojZGVmaW5l IE5JQ1ZGX1JTU19PRkZMT0FEX1BBU1MxICggXAoJRVRIX1JTU19QT1JUIHwgXAoJRVRIX1JTU19J UFY0IHwgXAoJRVRIX1JTU19OT05GUkFHX0lQVjRfVENQIHwgXAoJRVRIX1JTU19OT05GUkFHX0lQ VjRfVURQIHwgXAoJRVRIX1JTU19JUFY2IHwgXAoJRVRIX1JTU19OT05GUkFHX0lQVjZfVENQIHwg XAoJRVRIX1JTU19OT05GUkFHX0lQVjZfVURQKQoKI2RlZmluZSBOSUNWRl9SU1NfT0ZGTE9BRF9U VU5ORUwgKCBcCglFVEhfUlNTX1ZYTEFOIHwgXAoJRVRIX1JTU19HRU5FVkUgfCBcCglFVEhfUlNT X05WR1JFKQoKI2RlZmluZSBOSUNWRl9UWF9PRkZMT0FEX0NBUEEgKCBcCglERVZfVFhfT0ZGTE9B RF9JUFY0X0NLU1VNICAgICAgIHwgXAoJREVWX1RYX09GRkxPQURfVURQX0NLU1VNICAgICAgICB8 IFwKCURFVl9UWF9PRkZMT0FEX1RDUF9DS1NVTSAgICAgICAgfCBcCglERVZfVFhfT0ZGTE9BRF9P VVRFUl9JUFY0X0NLU1VNIHwgXAoJREVWX1RYX09GRkxPQURfTUJVRl9GQVNUX0ZSRUUgICB8IFwK CURFVl9UWF9PRkZMT0FEX01VTFRJX1NFR1MpCgojZGVmaW5lIE5JQ1ZGX1JYX09GRkxPQURfQ0FQ QSAoIFwKCURFVl9SWF9PRkZMT0FEX0NIRUNLU1VNICAgIHwgXAoJREVWX1JYX09GRkxPQURfVkxB Tl9TVFJJUCAgfCBcCglERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSICAgICB8IFwKCURFVl9SWF9PRkZM T0FEX1JTU19IQVNIKQoKI2RlZmluZSBOSUNWRl9ERUZBVUxUX1JYX0ZSRUVfVEhSRVNIICAgIDIy NAojZGVmaW5lIE5JQ1ZGX0RFRkFVTFRfVFhfRlJFRV9USFJFU0ggICAgMjI0CgplcnJvcjogcGF0 Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC90aHVuZGVyeC9uaWN2Zl9ldGhkZXYuaDoxNgpDaGVja2lu ZyBwYXRjaCBkcml2ZXJzL25ldC90eGdiZS90eGdiZV9ldGhkZXYuYy4uLgpIdW5rICMxIHN1Y2Nl ZWRlZCBhdCA5OTcgKG9mZnNldCAtMSBsaW5lcykuCkh1bmsgIzIgc3VjY2VlZGVkIGF0IDEwMzIg KG9mZnNldCAtMSBsaW5lcykuCkh1bmsgIzMgc3VjY2VlZGVkIGF0IDEwNTIgKG9mZnNldCAtMSBs aW5lcykuCkh1bmsgIzQgc3VjY2VlZGVkIGF0IDExMzcgKG9mZnNldCAtMSBsaW5lcykuCkh1bmsg IzUgc3VjY2VlZGVkIGF0IDEyMzkgKG9mZnNldCAtMSBsaW5lcykuCkh1bmsgIzYgc3VjY2VlZGVk IGF0IDEyNTMgKG9mZnNldCAtMSBsaW5lcykuCkh1bmsgIzcgc3VjY2VlZGVkIGF0IDEyNzQgKG9m ZnNldCAtMSBsaW5lcykuCkh1bmsgIzggc3VjY2VlZGVkIGF0IDEzMzAgKG9mZnNldCAtMSBsaW5l cykuCkh1bmsgIzkgc3VjY2VlZGVkIGF0IDEzNTYgKG9mZnNldCAtMSBsaW5lcykuCkh1bmsgIzEw IHN1Y2NlZWRlZCBhdCAxMzc3IChvZmZzZXQgLTEgbGluZXMpLgpIdW5rICMxMSBzdWNjZWVkZWQg YXQgMTM5MiAob2Zmc2V0IC0xIGxpbmVzKS4KSHVuayAjMTIgc3VjY2VlZGVkIGF0IDE0MTMgKG9m ZnNldCAtMSBsaW5lcykuCkh1bmsgIzEzIHN1Y2NlZWRlZCBhdCAxNDI4IChvZmZzZXQgLTEgbGlu ZXMpLgpIdW5rICMxNCBzdWNjZWVkZWQgYXQgMTQ0NSAob2Zmc2V0IC0xIGxpbmVzKS4KSHVuayAj MTUgc3VjY2VlZGVkIGF0IDE0OTQgKG9mZnNldCAtMSBsaW5lcykuCkh1bmsgIzE2IHN1Y2NlZWRl ZCBhdCAxNzA0IChvZmZzZXQgMTAgbGluZXMpLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoK CWlmIChlcnIpCgkJZ290byBlcnJvcjsKCglhbGxvd2VkX3NwZWVkcyA9IEVUSF9MSU5LX1NQRUVE XzEwME0gfCBFVEhfTElOS19TUEVFRF8xRyB8CgkJCUVUSF9MSU5LX1NQRUVEXzEwRzsKCglsaW5r X3NwZWVkcyA9ICZkZXYtPmRhdGEtPmRldl9jb25mLmxpbmtfc3BlZWRzOwoJaWYgKCgoKmxpbmtf c3BlZWRzKSA+PiAxKSAmIH4oYWxsb3dlZF9zcGVlZHMgPj4gMSkpIHsKCmVycm9yOiBwYXRjaCBm YWlsZWQ6IGRyaXZlcnMvbmV0L3R4Z2JlL3R4Z2JlX2V0aGRldi5jOjE3NjMKSHVuayAjMTggc3Vj Y2VlZGVkIGF0IDE3ODMgKG9mZnNldCAxMCBsaW5lcykuCkh1bmsgIzE5IHN1Y2NlZWRlZCBhdCAy NjExIChvZmZzZXQgMTAgbGluZXMpLgpIdW5rICMyMCBzdWNjZWVkZWQgYXQgMjY0NCAob2Zmc2V0 IDEwIGxpbmVzKS4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CglpbnQgd2FpdCA9IDE7CgoJ bWVtc2V0KCZsaW5rLCAwLCBzaXplb2YobGluaykpOwoJbGluay5saW5rX3N0YXR1cyA9IEVUSF9M SU5LX0RPV047CglsaW5rLmxpbmtfc3BlZWQgPSBFVEhfU1BFRURfTlVNX05PTkU7CglsaW5rLmxp bmtfZHVwbGV4ID0gRVRIX0xJTktfSEFMRl9EVVBMRVg7CglsaW5rLmxpbmtfYXV0b25lZyA9ICEo ZGV2LT5kYXRhLT5kZXZfY29uZi5saW5rX3NwZWVkcyAmCgkJCUVUSF9MSU5LX1NQRUVEX0ZJWEVE KTsKCglody0+bWFjLmdldF9saW5rX3N0YXR1cyA9IHRydWU7CgoKZXJyb3I6IHBhdGNoIGZhaWxl ZDogZHJpdmVycy9uZXQvdHhnYmUvdHhnYmVfZXRoZGV2LmM6MjY5NQpIdW5rICMyMiBzdWNjZWVk ZWQgYXQgMjcyMiAob2Zmc2V0IDkgbGluZXMpLgpIdW5rICMyMyBzdWNjZWVkZWQgYXQgMjc0MiAo b2Zmc2V0IDkgbGluZXMpLgpIdW5rICMyNCBzdWNjZWVkZWQgYXQgMjk5NCAob2Zmc2V0IDQgbGlu ZXMpLgpIdW5rICMyNSBzdWNjZWVkZWQgYXQgMzIyNSAob2Zmc2V0IDQgbGluZXMpLgpIdW5rICMy NiBzdWNjZWVkZWQgYXQgMzM2MyAob2Zmc2V0IDQgbGluZXMpLgpIdW5rICMyNyBzdWNjZWVkZWQg YXQgMzQwNCAob2Zmc2V0IDQgbGluZXMpLgpIdW5rICMyOCBzdWNjZWVkZWQgYXQgMzU5MyAob2Zm c2V0IDE3IGxpbmVzKS4KSHVuayAjMjkgc3VjY2VlZGVkIGF0IDM2MjIgKG9mZnNldCAxNyBsaW5l cykuCkh1bmsgIzMwIHN1Y2NlZWRlZCBhdCA0MjgxIChvZmZzZXQgMTcgbGluZXMpLgpIdW5rICMz MSBzdWNjZWVkZWQgYXQgNDY0NSAob2Zmc2V0IDE3IGxpbmVzKS4KSHVuayAjMzIgc3VjY2VlZGVk IGF0IDQ2NTYgKG9mZnNldCAxNyBsaW5lcykuCkh1bmsgIzMzIHN1Y2NlZWRlZCBhdCA0NjgwIChv ZmZzZXQgMTcgbGluZXMpLgpIdW5rICMzNCBzdWNjZWVkZWQgYXQgNDY5NSAob2Zmc2V0IDE3IGxp bmVzKS4KSHVuayAjMzUgc3VjY2VlZGVkIGF0IDQ5MjUgKG9mZnNldCAxNyBsaW5lcykuCkh1bmsg IzM2IHN1Y2NlZWRlZCBhdCA0OTU2IChvZmZzZXQgMTcgbGluZXMpLgpIdW5rICMzNyBzdWNjZWVk ZWQgYXQgNDk5NiAob2Zmc2V0IDE3IGxpbmVzKS4KSHVuayAjMzggc3VjY2VlZGVkIGF0IDUwMDQg KG9mZnNldCAxNyBsaW5lcykuCkh1bmsgIzM5IHN1Y2NlZWRlZCBhdCA1MDEyIChvZmZzZXQgMTcg bGluZXMpLgpIdW5rICM0MCBzdWNjZWVkZWQgYXQgNTAyMCAob2Zmc2V0IDE3IGxpbmVzKS4KSHVu ayAjNDEgc3VjY2VlZGVkIGF0IDUwNTIgKG9mZnNldCAxNyBsaW5lcykuCkh1bmsgIzQyIHN1Y2Nl ZWRlZCBhdCA1MDYyIChvZmZzZXQgMTcgbGluZXMpLgpIdW5rICM0MyBzdWNjZWVkZWQgYXQgNTA3 MiAob2Zmc2V0IDE3IGxpbmVzKS4KSHVuayAjNDQgc3VjY2VlZGVkIGF0IDUwODIgKG9mZnNldCAx NyBsaW5lcykuCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L3R4Z2JlL3R4Z2JlX2V0aGRldi5o Li4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgojZGVmaW5lIFRYR0JFX0VUSF9PVkVSSEVB RCAoUlRFX0VUSEVSX0hEUl9MRU4gKyBSVEVfRVRIRVJfQ1JDX0xFTikKCiNkZWZpbmUgVFhHQkVf UlNTX09GRkxPQURfQUxMICggXAoJRVRIX1JTU19JUFY0IHwgXAoJRVRIX1JTU19OT05GUkFHX0lQ VjRfVENQIHwgXAoJRVRIX1JTU19OT05GUkFHX0lQVjRfVURQIHwgXAoJRVRIX1JTU19JUFY2IHwg XAoJRVRIX1JTU19OT05GUkFHX0lQVjZfVENQIHwgXAoJRVRIX1JTU19OT05GUkFHX0lQVjZfVURQ IHwgXAoJRVRIX1JTU19JUFY2X0VYIHwgXAoJRVRIX1JTU19JUFY2X1RDUF9FWCB8IFwKCUVUSF9S U1NfSVBWNl9VRFBfRVgpCgojZGVmaW5lIFRYR0JFX01JU0NfVkVDX0lEICAgICAgICAgICAgICAg UlRFX0lOVFJfVkVDX1pFUk9fT0ZGU0VUCiNkZWZpbmUgVFhHQkVfUlhfVkVDX1NUQVJUICAgICAg ICAgICAgICBSVEVfSU5UUl9WRUNfUlhUWF9PRkZTRVQKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRy aXZlcnMvbmV0L3R4Z2JlL3R4Z2JlX2V0aGRldi5oOjYwCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMv bmV0L3R4Z2JlL3R4Z2JlX2V0aGRldl92Zi5jLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0 L3R4Z2JlL3R4Z2JlX2ZkaXIuYy4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC90eGdiZS90 eGdiZV9mbG93LmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvdHhnYmUvdHhnYmVfaXBz ZWMuYy4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC90eGdiZS90eGdiZV9wZi5jLi4uCkNo ZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L3R4Z2JlL3R4Z2JlX3J4dHguYy4uLgpIdW5rICMxIHN1 Y2NlZWRlZCBhdCAxOTM5IChvZmZzZXQgLTIxIGxpbmVzKS4KZXJyb3I6IHdoaWxlIHNlYXJjaGlu ZyBmb3I6CglzdHJ1Y3QgdHhnYmVfaHcgKmh3ID0gVFhHQkVfREVWX0hXKGRldik7CglzdHJ1Y3Qg cnRlX2V0aF9kZXZfc3Jpb3YgKnNyaW92ID0gJlJURV9FVEhfREVWX1NSSU9WKGRldik7CgoJb2Zm bG9hZHMgPSBERVZfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNICB8CgkJICAgREVWX1JYX09GRkxPQURf VURQX0NLU1VNICAgfAoJCSAgIERFVl9SWF9PRkZMT0FEX1RDUF9DS1NVTSAgIHwKCQkgICBERVZf UlhfT0ZGTE9BRF9LRUVQX0NSQyAgICB8CgkJICAgREVWX1JYX09GRkxPQURfVkxBTl9GSUxURVIg fAoJCSAgIERFVl9SWF9PRkZMT0FEX1JTU19IQVNIIHwKCQkgICBERVZfUlhfT0ZGTE9BRF9TQ0FU VEVSOwoKCWlmICghdHhnYmVfaXNfdmYoZGV2KSkKCQlvZmZsb2FkcyB8PSAoREVWX1JYX09GRkxP QURfVkxBTl9GSUxURVIgfAoJCQkgICAgIERFVl9SWF9PRkZMT0FEX1FJTlFfU1RSSVAgfAoJCQkg ICAgIERFVl9SWF9PRkZMT0FEX1ZMQU5fRVhURU5EKTsKCgkvKgoJICogUlNDIGlzIG9ubHkgc3Vw cG9ydGVkIGJ5IFBGIGRldmljZXMgaW4gYSBub24tU1ItSU9WCgkgKiBtb2RlLgoJICovCglpZiAo aHctPm1hYy50eXBlID09IHR4Z2JlX21hY19yYXB0b3IgJiYgIXNyaW92LT5hY3RpdmUpCgkJb2Zm bG9hZHMgfD0gREVWX1JYX09GRkxPQURfVENQX0xSTzsKCglpZiAoaHctPm1hYy50eXBlID09IHR4 Z2JlX21hY19yYXB0b3IpCgkJb2ZmbG9hZHMgfD0gREVWX1JYX09GRkxPQURfTUFDU0VDX1NUUklQ OwoKCW9mZmxvYWRzIHw9IERFVl9SWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU07CgojaWZkZWYg UlRFX0xJQl9TRUNVUklUWQoJaWYgKGRldi0+c2VjdXJpdHlfY3R4KQoJCW9mZmxvYWRzIHw9IERF Vl9SWF9PRkZMT0FEX1NFQ1VSSVRZOwojZW5kaWYKCglyZXR1cm4gb2ZmbG9hZHM7CgplcnJvcjog cGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC90eGdiZS90eGdiZV9yeHR4LmM6MTk3MApIdW5rICMz IHN1Y2NlZWRlZCBhdCAyMjAyIChvZmZzZXQgLTIwIGxpbmVzKS4KSHVuayAjNCBzdWNjZWVkZWQg YXQgMjMyOSAob2Zmc2V0IC0yMCBsaW5lcykuCkh1bmsgIzUgc3VjY2VlZGVkIGF0IDI1NzkgKG9m ZnNldCAtMjAgbGluZXMpLgpIdW5rICM2IHN1Y2NlZWRlZCBhdCAyODgwIChvZmZzZXQgLTIwIGxp bmVzKS4KSHVuayAjNyBzdWNjZWVkZWQgYXQgMjkxMCAob2Zmc2V0IC0yMCBsaW5lcykuCkh1bmsg Izggc3VjY2VlZGVkIGF0IDI5NjQgKG9mZnNldCAtMjAgbGluZXMpLgpIdW5rICM5IHN1Y2NlZWRl ZCBhdCAzMDI2IChvZmZzZXQgLTIwIGxpbmVzKS4KSHVuayAjMTAgc3VjY2VlZGVkIGF0IDMwNjMg KG9mZnNldCAtMjAgbGluZXMpLgpIdW5rICMxMSBzdWNjZWVkZWQgYXQgMzA4MyAob2Zmc2V0IC0y MCBsaW5lcykuCkh1bmsgIzEyIHN1Y2NlZWRlZCBhdCAzMDkxIChvZmZzZXQgLTIwIGxpbmVzKS4K SHVuayAjMTMgc3VjY2VlZGVkIGF0IDMxMTAgKG9mZnNldCAtMjAgbGluZXMpLgpIdW5rICMxNCBz dWNjZWVkZWQgYXQgMzEzMSAob2Zmc2V0IC0yMCBsaW5lcykuCkh1bmsgIzE1IHN1Y2NlZWRlZCBh dCAzMjAxIChvZmZzZXQgLTIwIGxpbmVzKS4KSHVuayAjMTYgc3VjY2VlZGVkIGF0IDMyMTcgKG9m ZnNldCAtMjAgbGluZXMpLgpIdW5rICMxNyBzdWNjZWVkZWQgYXQgMzIzMiAob2Zmc2V0IC0yMCBs aW5lcykuCkh1bmsgIzE4IHN1Y2NlZWRlZCBhdCAzMjUwIChvZmZzZXQgLTIwIGxpbmVzKS4KSHVu ayAjMTkgc3VjY2VlZGVkIGF0IDMyNjUgKG9mZnNldCAtMjAgbGluZXMpLgpIdW5rICMyMCBzdWNj ZWVkZWQgYXQgMzI5MiAob2Zmc2V0IC0yMCBsaW5lcykuCkh1bmsgIzIxIHN1Y2NlZWRlZCBhdCAz MzE5IChvZmZzZXQgLTIwIGxpbmVzKS4KSHVuayAjMjIgc3VjY2VlZGVkIGF0IDM0NTUgKG9mZnNl dCAtMjAgbGluZXMpLgpIdW5rICMyMyBzdWNjZWVkZWQgYXQgMzQ2NiAob2Zmc2V0IC0yMCBsaW5l cykuCkh1bmsgIzI0IHN1Y2NlZWRlZCBhdCAzNDgwIChvZmZzZXQgLTIwIGxpbmVzKS4KSHVuayAj MjUgc3VjY2VlZGVkIGF0IDM0OTEgKG9mZnNldCAtMjAgbGluZXMpLgpIdW5rICMyNiBzdWNjZWVk ZWQgYXQgMzUwNyAob2Zmc2V0IC0yMCBsaW5lcykuCkh1bmsgIzI3IHN1Y2NlZWRlZCBhdCAzNTU2 IChvZmZzZXQgLTIwIGxpbmVzKS4KSHVuayAjMjggc3VjY2VlZGVkIGF0IDM1NzIgKG9mZnNldCAt MjAgbGluZXMpLgpIdW5rICMyOSBzdWNjZWVkZWQgYXQgMzYxNCAob2Zmc2V0IC0yMCBsaW5lcyku Ckh1bmsgIzMwIHN1Y2NlZWRlZCBhdCAzNjI4IChvZmZzZXQgLTIwIGxpbmVzKS4KSHVuayAjMzEg c3VjY2VlZGVkIGF0IDM2OTkgKG9mZnNldCAtMjAgbGluZXMpLgpIdW5rICMzMiBzdWNjZWVkZWQg YXQgMzc2MCAob2Zmc2V0IC0yMCBsaW5lcykuCkh1bmsgIzMzIHN1Y2NlZWRlZCBhdCAzOTExIChv ZmZzZXQgNyBsaW5lcykuCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJbXJxYyA9IHJkMzIo aHcsIFRYR0JFX1BPUlRDVEwpOwoJbXJxYyAmPSB+KFRYR0JFX1BPUlRDVExfTlVNVENfTUFTSyB8 IFRYR0JFX1BPUlRDVExfTlVNVlRfTUFTSyk7Cglzd2l0Y2ggKFJURV9FVEhfREVWX1NSSU9WKGRl dikuYWN0aXZlKSB7CgljYXNlIEVUSF82NF9QT09MUzoKCQltcnFjIHw9IFRYR0JFX1BPUlRDVExf TlVNVlRfNjQ7CgkJYnJlYWs7CgoJY2FzZSBFVEhfMzJfUE9PTFM6CgkJbXJxYyB8PSBUWEdCRV9Q T1JUQ1RMX05VTVZUXzMyOwoJCWJyZWFrOwoKCWNhc2UgRVRIXzE2X1BPT0xTOgoJCW1ycWMgfD0g VFhHQkVfUE9SVENUTF9OVU1WVF8xNjsKCQlicmVhazsKCWRlZmF1bHQ6CgplcnJvcjogcGF0Y2gg ZmFpbGVkOiBkcml2ZXJzL25ldC90eGdiZS90eGdiZV9yeHR4LmM6MzkzMQpIdW5rICMzNSBzdWNj ZWVkZWQgYXQgMzk0MiAob2Zmc2V0IC0yMCBsaW5lcykuCkh1bmsgIzM2IHN1Y2NlZWRlZCBhdCAz OTY3IChvZmZzZXQgLTIwIGxpbmVzKS4KSHVuayAjMzcgc3VjY2VlZGVkIGF0IDQwMDggKG9mZnNl dCAtMjAgbGluZXMpLgpIdW5rICMzOCBzdWNjZWVkZWQgYXQgNDAxOCAob2Zmc2V0IC0yMCBsaW5l cykuCkh1bmsgIzM5IHN1Y2NlZWRlZCBhdCA0MDg3IChvZmZzZXQgLTIwIGxpbmVzKS4KSHVuayAj NDAgc3VjY2VlZGVkIGF0IDQwOTggKG9mZnNldCAtMjAgbGluZXMpLgpIdW5rICM0MSBzdWNjZWVk ZWQgYXQgNDI1MyAob2Zmc2V0IC0yMCBsaW5lcykuCkh1bmsgIzQyIHN1Y2NlZWRlZCBhdCA0Mjk2 IChvZmZzZXQgLTIwIGxpbmVzKS4KSHVuayAjNDMgc3VjY2VlZGVkIGF0IDQzMjkgKG9mZnNldCAt MTUgbGluZXMpLgpIdW5rICM0NCBzdWNjZWVkZWQgYXQgNDMzOSAob2Zmc2V0IC0xNSBsaW5lcyku CmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJCWlmIChkZXYtPmRhdGEtPm10dSArIFRYR0JF X0VUSF9PVkVSSEVBRCArCgkJCQkyICogVFhHQkVfVkxBTl9UQUdfU0laRSA+IGJ1Zl9zaXplKQoJ CQlkZXYtPmRhdGEtPnNjYXR0ZXJlZF9yeCA9IDE7CgkJaWYgKHJ4cS0+b2ZmbG9hZHMgJiBERVZf UlhfT0ZGTE9BRF9WTEFOX1NUUklQKQoJCQlyeF9jb25mLT5vZmZsb2FkcyB8PSBERVZfUlhfT0ZG TE9BRF9WTEFOX1NUUklQOwoJfQoKCWlmIChyeF9jb25mLT5vZmZsb2FkcyAmIERFVl9SWF9PRkZM T0FEX1NDQVRURVIpCgkJZGV2LT5kYXRhLT5zY2F0dGVyZWRfcnggPSAxOwoKCS8qCgplcnJvcjog cGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC90eGdiZS90eGdiZV9yeHR4LmM6NDM5MQpIdW5rICM0 NiBzdWNjZWVkZWQgYXQgNDM5NSAob2Zmc2V0IC0xNSBsaW5lcykuCkh1bmsgIzQ3IHN1Y2NlZWRl ZCBhdCA0NDA0IChvZmZzZXQgLTE1IGxpbmVzKS4KSHVuayAjNDggc3VjY2VlZGVkIGF0IDQ1Mjcg KG9mZnNldCAtMTUgbGluZXMpLgpIdW5rICM0OSBzdWNjZWVkZWQgYXQgNDgzNiAob2Zmc2V0IC0x NSBsaW5lcykuCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJCSAqLwoJCXdyMzIoaHcsIFRY R0JFX1JYQ0ZHKGkpLCBzcnJjdGwpOwoKCQlpZiAocnhtb2RlLT5vZmZsb2FkcyAmIERFVl9SWF9P RkZMT0FEX1NDQVRURVIgfHwKCQkgICAgLyogSXQgYWRkcyBkdWFsIFZMQU4gbGVuZ3RoIGZvciBz dXBwb3J0aW5nIGR1YWwgVkxBTiAqLwoJCSAgICAoZGV2LT5kYXRhLT5tdHUgKyBUWEdCRV9FVEhf T1ZFUkhFQUQgKwoJCQkJMiAqIFRYR0JFX1ZMQU5fVEFHX1NJWkUpID4gYnVmX3NpemUpIHsKCmVy cm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L3R4Z2JlL3R4Z2JlX3J4dHguYzo0OTAzCkh1 bmsgIzUxIHN1Y2NlZWRlZCBhdCA0ODk3IChvZmZzZXQgLTE1IGxpbmVzKS4KSHVuayAjNTIgc3Vj Y2VlZGVkIGF0IDUwNjkgKG9mZnNldCAtMTUgbGluZXMpLgpDaGVja2luZyBwYXRjaCBkcml2ZXJz L25ldC90eGdiZS90eGdiZV9yeHR4LmguLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvdHhn YmUvdHhnYmVfdG0uYy4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC92aG9zdC9ydGVfZXRo X3Zob3N0LmMuLi4KSHVuayAjMiBzdWNjZWVkZWQgYXQgODIzIChvZmZzZXQgNiBsaW5lcykuCkh1 bmsgIzMgc3VjY2VlZGVkIGF0IDg1OCAob2Zmc2V0IDYgbGluZXMpLgpIdW5rICM0IHN1Y2NlZWRl ZCBhdCAxMTI0IChvZmZzZXQgNiBsaW5lcykuCkh1bmsgIzUgc3VjY2VlZGVkIGF0IDEyNzMgKG9m ZnNldCA2IGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb19l dGhkZXYuYy4uLgpIdW5rICMyIHN1Y2NlZWRlZCBhdCAxNzcyIChvZmZzZXQgLTIgbGluZXMpLgpI dW5rICMzIHN1Y2NlZWRlZCBhdCAxNzg2IChvZmZzZXQgLTIgbGluZXMpLgpIdW5rICM0IHN1Y2Nl ZWRlZCBhdCAxODg1IChvZmZzZXQgLTIgbGluZXMpLgpIdW5rICM1IHN1Y2NlZWRlZCBhdCAxOTU3 IChvZmZzZXQgLTEgbGluZXMpLgpIdW5rICM2IHN1Y2NlZWRlZCBhdCAyMDg4IChvZmZzZXQgLTEg bGluZXMpLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCglody0+bWF4X3J4X3BrdF9sZW4g PSBldGhlcl9oZHJfbGVuICsgcnhtb2RlLT5tdHU7CgoJaWYgKHJ4X29mZmxvYWRzICYgKERFVl9S WF9PRkZMT0FEX1VEUF9DS1NVTSB8CgkJCSAgIERFVl9SWF9PRkZMT0FEX1RDUF9DS1NVTSkpCgkJ cmVxX2ZlYXR1cmVzIHw9ICgxVUxMIDw8IFZJUlRJT19ORVRfRl9HVUVTVF9DU1VNKTsKCglpZiAo cnhfb2ZmbG9hZHMgJiBERVZfUlhfT0ZGTE9BRF9UQ1BfTFJPKQoJCXJlcV9mZWF0dXJlcyB8PQoJ CQkoMVVMTCA8PCBWSVJUSU9fTkVUX0ZfR1VFU1RfVFNPNCkgfAoJCQkoMVVMTCA8PCBWSVJUSU9f TkVUX0ZfR1VFU1RfVFNPNik7CgoJaWYgKHR4X29mZmxvYWRzICYgKERFVl9UWF9PRkZMT0FEX1VE UF9DS1NVTSB8CgkJCSAgIERFVl9UWF9PRkZMT0FEX1RDUF9DS1NVTSkpCgkJcmVxX2ZlYXR1cmVz IHw9ICgxVUxMIDw8IFZJUlRJT19ORVRfRl9DU1VNKTsKCglpZiAodHhfb2ZmbG9hZHMgJiBERVZf VFhfT0ZGTE9BRF9UQ1BfVFNPKQoJCXJlcV9mZWF0dXJlcyB8PQoJCQkoMVVMTCA8PCBWSVJUSU9f TkVUX0ZfSE9TVF9UU080KSB8CgkJCSgxVUxMIDw8IFZJUlRJT19ORVRfRl9IT1NUX1RTTzYpOwoK ZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb19ldGhkZXYuYzoy MTE0Ckh1bmsgIzggc3VjY2VlZGVkIGF0IDIxNDIgKG9mZnNldCAzIGxpbmVzKS4KSHVuayAjOSBz dWNjZWVkZWQgYXQgMjE2MiAob2Zmc2V0IDMgbGluZXMpLgpIdW5rICMxMCBzdWNjZWVkZWQgYXQg MjIyMCAob2Zmc2V0IDMgbGluZXMpLgpIdW5rICMxMSBzdWNjZWVkZWQgYXQgMjI0NyAob2Zmc2V0 IDMgbGluZXMpLgpIdW5rICMxMiBzdWNjZWVkZWQgYXQgMjQ0MyAob2Zmc2V0IDMgbGluZXMpLgpI dW5rICMxMyBzdWNjZWVkZWQgYXQgMjQ4NCAob2Zmc2V0IDMgbGluZXMpLgpIdW5rICMxNCBzdWNj ZWVkZWQgYXQgMjUxOCAob2Zmc2V0IDMgbGluZXMpLgpIdW5rICMxNSBzdWNjZWVkZWQgYXQgMjUy OSAob2Zmc2V0IDMgbGluZXMpLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCWRldl9pbmZv LT5tYXhfbXR1ID0gaHctPm1heF9tdHU7CgoJaG9zdF9mZWF0dXJlcyA9IFZJUlRJT19PUFMoaHcp LT5nZXRfZmVhdHVyZXMoaHcpOwoJZGV2X2luZm8tPnJ4X29mZmxvYWRfY2FwYSA9IERFVl9SWF9P RkZMT0FEX1ZMQU5fU1RSSVA7CglpZiAoaG9zdF9mZWF0dXJlcyAmICgxVUxMIDw8IFZJUlRJT19O RVRfRl9NUkdfUlhCVUYpKQoJCWRldl9pbmZvLT5yeF9vZmZsb2FkX2NhcGEgfD0gREVWX1JYX09G RkxPQURfU0NBVFRFUjsKCWlmIChob3N0X2ZlYXR1cmVzICYgKDFVTEwgPDwgVklSVElPX05FVF9G X0dVRVNUX0NTVU0pKSB7CgkJZGV2X2luZm8tPnJ4X29mZmxvYWRfY2FwYSB8PQoJCQlERVZfUlhf T0ZGTE9BRF9UQ1BfQ0tTVU0gfAoJCQlERVZfUlhfT0ZGTE9BRF9VRFBfQ0tTVU07Cgl9CglpZiAo aG9zdF9mZWF0dXJlcyAmICgxVUxMIDw8IFZJUlRJT19ORVRfRl9DVFJMX1ZMQU4pKQoJCWRldl9p bmZvLT5yeF9vZmZsb2FkX2NhcGEgfD0gREVWX1JYX09GRkxPQURfVkxBTl9GSUxURVI7Cgl0c29f bWFzayA9ICgxVUxMIDw8IFZJUlRJT19ORVRfRl9HVUVTVF9UU080KSB8CgkJKDFVTEwgPDwgVklS VElPX05FVF9GX0dVRVNUX1RTTzYpOwoJaWYgKChob3N0X2ZlYXR1cmVzICYgdHNvX21hc2spID09 IHRzb19tYXNrKQoJCWRldl9pbmZvLT5yeF9vZmZsb2FkX2NhcGEgfD0gREVWX1JYX09GRkxPQURf VENQX0xSTzsKCglkZXZfaW5mby0+dHhfb2ZmbG9hZF9jYXBhID0gREVWX1RYX09GRkxPQURfTVVM VElfU0VHUyB8CgkJCQkgICAgREVWX1RYX09GRkxPQURfVkxBTl9JTlNFUlQ7CglpZiAoaG9zdF9m ZWF0dXJlcyAmICgxVUxMIDw8IFZJUlRJT19ORVRfRl9DU1VNKSkgewoJCWRldl9pbmZvLT50eF9v ZmZsb2FkX2NhcGEgfD0KCQkJREVWX1RYX09GRkxPQURfVURQX0NLU1VNIHwKCQkJREVWX1RYX09G RkxPQURfVENQX0NLU1VNOwoJfQoJdHNvX21hc2sgPSAoMVVMTCA8PCBWSVJUSU9fTkVUX0ZfSE9T VF9UU080KSB8CgkJKDFVTEwgPDwgVklSVElPX05FVF9GX0hPU1RfVFNPNik7CglpZiAoKGhvc3Rf ZmVhdHVyZXMgJiB0c29fbWFzaykgPT0gdHNvX21hc2spCgkJZGV2X2luZm8tPnR4X29mZmxvYWRf Y2FwYSB8PSBERVZfVFhfT0ZGTE9BRF9UQ1BfVFNPOwoKCWlmIChob3N0X2ZlYXR1cmVzICYgKDFV TEwgPDwgVklSVElPX0ZfUklOR19QQUNLRUQpKSB7CgkJLyoKCmVycm9yOiBwYXRjaCBmYWlsZWQ6 IGRyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fZXRoZGV2LmM6MjU0OQpDaGVja2luZyBwYXRjaCBk cml2ZXJzL25ldC92bXhuZXQzL3ZteG5ldDNfZXRoZGV2LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJj aGluZyBmb3I6CiNkZWZpbmUJVk1YTkVUM19UWF9NQVhfU0VHCVVJTlQ4X01BWAoKI2RlZmluZSBW TVhORVQzX1RYX09GRkxPQURfQ0FQCQlcCgkoREVWX1RYX09GRkxPQURfVkxBTl9JTlNFUlQgfAlc CgkgREVWX1RYX09GRkxPQURfVENQX0NLU1VNIHwJXAoJIERFVl9UWF9PRkZMT0FEX1VEUF9DS1NV TSB8CVwKCSBERVZfVFhfT0ZGTE9BRF9UQ1BfVFNPIHwJXAoJIERFVl9UWF9PRkZMT0FEX01VTFRJ X1NFR1MpCgojZGVmaW5lIFZNWE5FVDNfUlhfT0ZGTE9BRF9DQVAJCVwKCShERVZfUlhfT0ZGTE9B RF9WTEFOX1NUUklQIHwJXAoJIERFVl9SWF9PRkZMT0FEX1ZMQU5fRklMVEVSIHwgICBcCgkgREVW X1JYX09GRkxPQURfU0NBVFRFUiB8CVwKCSBERVZfUlhfT0ZGTE9BRF9VRFBfQ0tTVU0gfAlcCgkg REVWX1JYX09GRkxPQURfVENQX0NLU1VNIHwJXAoJIERFVl9SWF9PRkZMT0FEX1RDUF9MUk8gfAlc CgkgREVWX1JYX09GRkxPQURfUlNTX0hBU0gpCgppbnQgdm14bmV0M19zZWdzX2R5bmZpZWxkX29m ZnNldCA9IC0xOwoKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L3ZteG5ldDMvdm14 bmV0M19ldGhkZXYuYzo0MQpIdW5rICMyIHN1Y2NlZWRlZCBhdCAzOTkgKG9mZnNldCAxIGxpbmUp LgpIdW5rICMzIHN1Y2NlZWRlZCBhdCA0ODcgKG9mZnNldCAxIGxpbmUpLgpIdW5rICM0IHN1Y2Nl ZWRlZCBhdCA1NDggKG9mZnNldCAxIGxpbmUpLgpIdW5rICM1IHN1Y2NlZWRlZCBhdCA4NDQgKG9m ZnNldCAxIGxpbmUpLgpIdW5rICM2IHN1Y2NlZWRlZCBhdCA4NjQgKG9mZnNldCAxIGxpbmUpLgpI dW5rICM3IHN1Y2NlZWRlZCBhdCA5MzEgKG9mZnNldCAxIGxpbmUpLgpIdW5rICM4IHN1Y2NlZWRl ZCBhdCAxMDQwIChvZmZzZXQgMSBsaW5lKS4KSHVuayAjOSBzdWNjZWVkZWQgYXQgMTM2NiAob2Zm c2V0IDEgbGluZSkuCkh1bmsgIzEwIHN1Y2NlZWRlZCBhdCAxNDQ4IChvZmZzZXQgMSBsaW5lKS4K SHVuayAjMTEgc3VjY2VlZGVkIGF0IDE1MDQgKG9mZnNldCAxIGxpbmUpLgpIdW5rICMxMiBzdWNj ZWVkZWQgYXQgMTU3NCAob2Zmc2V0IDEgbGluZSkuCkh1bmsgIzEzIHN1Y2NlZWRlZCBhdCAxNTg0 IChvZmZzZXQgMSBsaW5lKS4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvdm14bmV0My92bXhu ZXQzX2V0aGRldi5oLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L3ZteG5ldDMvdm14bmV0 M19yeHR4LmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZXhhbXBsZXMvYmJkZXZfYXBwL21haW4uYy4uLgpl cnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnRlX2V0aF9j b25mIHBvcnRfY29uZiA9IHsKCS5yeG1vZGUgPSB7CgkJLm1xX21vZGUgPSBFVEhfTVFfUlhfTk9O RSwKCQkuc3BsaXRfaGRyX3NpemUgPSAwLAoJfSwKCS50eG1vZGUgPSB7CgkJLm1xX21vZGUgPSBF VEhfTVFfVFhfTk9ORSwKCX0sCn07CgoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZXhhbXBsZXMvYmJk ZXZfYXBwL21haW4uYzo3MApIdW5rICMyIHN1Y2NlZWRlZCBhdCAzMjggKG9mZnNldCAxIGxpbmUp LgpDaGVja2luZyBwYXRjaCBleGFtcGxlcy9ib25kL21haW4uYy4uLgplcnJvcjogd2hpbGUgc2Vh cmNoaW5nIGZvcjoKCnN0YXRpYyBzdHJ1Y3QgcnRlX2V0aF9jb25mIHBvcnRfY29uZiA9IHsKCS5y eG1vZGUgPSB7CgkJLm1xX21vZGUgPSBFVEhfTVFfUlhfTk9ORSwKCQkuc3BsaXRfaGRyX3NpemUg PSAwLAoJfSwKCS5yeF9hZHZfY29uZiA9IHsKCQkucnNzX2NvbmYgPSB7CgkJCS5yc3Nfa2V5ID0g TlVMTCwKCQkJLnJzc19oZiA9IEVUSF9SU1NfSVAsCgkJfSwKCX0sCgkudHhtb2RlID0gewoJCS5t cV9tb2RlID0gRVRIX01RX1RYX05PTkUsCgl9LAp9OwoKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGV4 YW1wbGVzL2JvbmQvbWFpbi5jOjExNApIdW5rICMyIHN1Y2NlZWRlZCBhdCAxNDkgKG9mZnNldCAx IGxpbmUpLgpIdW5rICMzIHN1Y2NlZWRlZCBhdCAyNDEgKG9mZnNldCAxIGxpbmUpLgpDaGVja2lu ZyBwYXRjaCBleGFtcGxlcy9kaXN0cmlidXRvci9tYWluLmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJj aGluZyBmb3I6CgpzdGF0aWMgY29uc3Qgc3RydWN0IHJ0ZV9ldGhfY29uZiBwb3J0X2NvbmZfZGVm YXVsdCA9IHsKCS5yeG1vZGUgPSB7CgkJLm1xX21vZGUgPSBFVEhfTVFfUlhfUlNTLAoJfSwKCS50 eG1vZGUgPSB7CgkJLm1xX21vZGUgPSBFVEhfTVFfVFhfTk9ORSwKCX0sCgkucnhfYWR2X2NvbmYg PSB7CgkJLnJzc19jb25mID0gewoJCQkucnNzX2hmID0gRVRIX1JTU19JUCB8IEVUSF9SU1NfVURQ IHwKCQkJCUVUSF9SU1NfVENQIHwgRVRIX1JTU19TQ1RQLAoJCX0KCX0sCn07CgplcnJvcjogcGF0 Y2ggZmFpbGVkOiBleGFtcGxlcy9kaXN0cmlidXRvci9tYWluLmM6ODAKSHVuayAjMiBzdWNjZWVk ZWQgYXQgMTI3IChvZmZzZXQgMSBsaW5lKS4KQ2hlY2tpbmcgcGF0Y2ggZXhhbXBsZXMvZXRodG9v bC9ldGh0b29sLWFwcC9tYWluLmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZXhhbXBsZXMvZXRodG9vbC9s aWIvcnRlX2V0aHRvb2wuYy4uLgpDaGVja2luZyBwYXRjaCBleGFtcGxlcy9ldmVudGRldl9waXBl bGluZS9waXBlbGluZV93b3JrZXJfZ2VuZXJpYy5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcg Zm9yOgoJc3RydWN0IHJ0ZV9ldGhfcnhjb25mIHJ4X2NvbmY7CglzdGF0aWMgY29uc3Qgc3RydWN0 IHJ0ZV9ldGhfY29uZiBwb3J0X2NvbmZfZGVmYXVsdCA9IHsKCQkucnhtb2RlID0gewoJCQkubXFf bW9kZSA9IEVUSF9NUV9SWF9SU1MsCgkJfSwKCQkucnhfYWR2X2NvbmYgPSB7CgkJCS5yc3NfY29u ZiA9IHsKCQkJCS5yc3NfaGYgPSBFVEhfUlNTX0lQIHwKCQkJCQkgIEVUSF9SU1NfVENQIHwKCQkJ CQkgIEVUSF9SU1NfVURQLAoJCQl9CgkJfQoJfTsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGV4YW1w bGVzL2V2ZW50ZGV2X3BpcGVsaW5lL3BpcGVsaW5lX3dvcmtlcl9nZW5lcmljLmM6MjgzCkh1bmsg IzIgc3VjY2VlZGVkIGF0IDMxMiAob2Zmc2V0IDEgbGluZSkuCkNoZWNraW5nIHBhdGNoIGV4YW1w bGVzL2V2ZW50ZGV2X3BpcGVsaW5lL3BpcGVsaW5lX3dvcmtlcl90eC5jLi4uCmVycm9yOiB3aGls ZSBzZWFyY2hpbmcgZm9yOgoJc3RydWN0IHJ0ZV9ldGhfcnhjb25mIHJ4X2NvbmY7CglzdGF0aWMg Y29uc3Qgc3RydWN0IHJ0ZV9ldGhfY29uZiBwb3J0X2NvbmZfZGVmYXVsdCA9IHsKCQkucnhtb2Rl ID0gewoJCQkubXFfbW9kZSA9IEVUSF9NUV9SWF9SU1MsCgkJfSwKCQkucnhfYWR2X2NvbmYgPSB7 CgkJCS5yc3NfY29uZiA9IHsKCQkJCS5yc3NfaGYgPSBFVEhfUlNTX0lQIHwKCQkJCQkgIEVUSF9S U1NfVENQIHwKCQkJCQkgIEVUSF9SU1NfVURQLAoJCQl9CgkJfQoJfTsKCmVycm9yOiBwYXRjaCBm YWlsZWQ6IGV4YW1wbGVzL2V2ZW50ZGV2X3BpcGVsaW5lL3BpcGVsaW5lX3dvcmtlcl90eC5jOjYx NApIdW5rICMyIHN1Y2NlZWRlZCBhdCA2NDMgKG9mZnNldCAxIGxpbmUpLgpDaGVja2luZyBwYXRj aCBleGFtcGxlcy9mbG93X2NsYXNzaWZ5L2Zsb3dfY2xhc3NpZnkuYy4uLgpIdW5rICMxIHN1Y2Nl ZWRlZCBhdCAyMTggKG9mZnNldCA2IGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2ggZXhhbXBsZXMvZmxv d19maWx0ZXJpbmcvbWFpbi5jLi4uCkNoZWNraW5nIHBhdGNoIGV4YW1wbGVzL2lvYXQvaW9hdGZ3 ZC5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJLyogQ29uZmlndXJpbmcgcG9ydCB0 byB1c2UgUlNTIGZvciBtdWx0aXBsZSBSWCBxdWV1ZXMuIDg8ICovCglzdGF0aWMgY29uc3Qgc3Ry dWN0IHJ0ZV9ldGhfY29uZiBwb3J0X2NvbmYgPSB7CgkJLnJ4bW9kZSA9IHsKCQkJLm1xX21vZGUg PSBFVEhfTVFfUlhfUlNTLAoJCX0sCgkJLnJ4X2Fkdl9jb25mID0gewoJCQkucnNzX2NvbmYgPSB7 CgkJCQkucnNzX2tleSA9IE5VTEwsCgkJCQkucnNzX2hmID0gRVRIX1JTU19QUk9UT19NQVNLLAoJ CQl9CgkJfQoJfTsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGV4YW1wbGVzL2lvYXQvaW9hdGZ3ZC5j OjgxOQpIdW5rICMyIHN1Y2NlZWRlZCBhdCA4NTMgKG9mZnNldCAxIGxpbmUpLgpDaGVja2luZyBw YXRjaCBleGFtcGxlcy9pcF9mcmFnbWVudGF0aW9uL21haW4uYy4uLgplcnJvcjogd2hpbGUgc2Vh cmNoaW5nIGZvcjoKCQkubXR1ID0gSlVNQk9fRlJBTUVfTUFYX1NJWkUgLSBSVEVfRVRIRVJfSERS X0xFTiAtCgkJCVJURV9FVEhFUl9DUkNfTEVOLAoJCS5zcGxpdF9oZHJfc2l6ZSA9IDAsCgkJLm9m ZmxvYWRzID0gKERFVl9SWF9PRkZMT0FEX0NIRUNLU1VNIHwKCQkJICAgICBERVZfUlhfT0ZGTE9B RF9TQ0FUVEVSKSwKCX0sCgkudHhtb2RlID0gewoJCS5tcV9tb2RlID0gRVRIX01RX1RYX05PTkUs CgkJLm9mZmxvYWRzID0gKERFVl9UWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAoJCQkgICAgIERFVl9U WF9PRkZMT0FEX01VTFRJX1NFR1MpLAoJfSwKfTsKCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBleGFt cGxlcy9pcF9mcmFnbWVudGF0aW9uL21haW4uYzoxNDgKQ2hlY2tpbmcgcGF0Y2ggZXhhbXBsZXMv aXBfcGlwZWxpbmUvbGluay5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgpzdGF0aWMg c3RydWN0IHJ0ZV9ldGhfY29uZiBwb3J0X2NvbmZfZGVmYXVsdCA9IHsKCS5saW5rX3NwZWVkcyA9 IDAsCgkucnhtb2RlID0gewoJCS5tcV9tb2RlID0gRVRIX01RX1JYX05PTkUsCgkJLm10dSA9IDkw MDAgLSAoUlRFX0VUSEVSX0hEUl9MRU4gKyBSVEVfRVRIRVJfQ1JDX0xFTiksIC8qIEp1bWJvIGZy YW1lIE1UVSAqLwoJCS5zcGxpdF9oZHJfc2l6ZSA9IDAsIC8qIEhlYWRlciBzcGxpdCBidWZmZXIg c2l6ZSAqLwoJfSwKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGV4YW1wbGVzL2lwX3BpcGVsaW5lL2xp bmsuYzo0NQpDaGVja2luZyBwYXRjaCBleGFtcGxlcy9pcF9yZWFzc2VtYmx5L21haW4uYy4uLgpl cnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCnN0YXRpYyBzdHJ1Y3QgcnRlX2V0aF9jb25mIHBv cnRfY29uZiA9IHsKCS5yeG1vZGUgPSB7CgkJLm1xX21vZGUgICAgICAgID0gRVRIX01RX1JYX1JT UywKCQkubXR1ID0gSlVNQk9fRlJBTUVfTUFYX1NJWkUgLSBSVEVfRVRIRVJfSERSX0xFTiAtCgkJ CVJURV9FVEhFUl9DUkNfTEVOLAoJCS5zcGxpdF9oZHJfc2l6ZSA9IDAsCgkJLm9mZmxvYWRzID0g REVWX1JYX09GRkxPQURfQ0hFQ0tTVU0sCgl9LAoJLnJ4X2Fkdl9jb25mID0gewoJCQkucnNzX2Nv bmYgPSB7CgkJCQkucnNzX2tleSA9IE5VTEwsCgkJCQkucnNzX2hmID0gRVRIX1JTU19JUCwKCQl9 LAoJfSwKCS50eG1vZGUgPSB7CgkJLm1xX21vZGUgPSBFVEhfTVFfVFhfTk9ORSwKCQkub2ZmbG9h ZHMgPSAoREVWX1RYX09GRkxPQURfSVBWNF9DS1NVTSB8CgkJCSAgICAgREVWX1RYX09GRkxPQURf TVVMVElfU0VHUyksCgl9LAp9OwoKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGV4YW1wbGVzL2lwX3Jl YXNzZW1ibHkvbWFpbi5jOjE2MApIdW5rICMyIHN1Y2NlZWRlZCBhdCA3MzkgKG9mZnNldCAyIGxp bmVzKS4KSHVuayAjMyBzdWNjZWVkZWQgYXQgMTA5NiAob2Zmc2V0IDEgbGluZSkuCkNoZWNraW5n IHBhdGNoIGV4YW1wbGVzL2lwc2VjLXNlY2d3L2lwc2VjLXNlY2d3LmMuLi4KZXJyb3I6IHdoaWxl IHNlYXJjaGluZyBmb3I6CgpzdGF0aWMgc3RydWN0IHJ0ZV9ldGhfY29uZiBwb3J0X2NvbmYgPSB7 Cgkucnhtb2RlID0gewoJCS5tcV9tb2RlCT0gRVRIX01RX1JYX1JTUywKCQkuc3BsaXRfaGRyX3Np emUgPSAwLAoJCS5vZmZsb2FkcyA9IERFVl9SWF9PRkZMT0FEX0NIRUNLU1VNLAoJfSwKCS5yeF9h ZHZfY29uZiA9IHsKCQkucnNzX2NvbmYgPSB7CgkJCS5yc3Nfa2V5ID0gTlVMTCwKCQkJLnJzc19o ZiA9IEVUSF9SU1NfSVAgfCBFVEhfUlNTX1VEUCB8CgkJCQlFVEhfUlNTX1RDUCB8IEVUSF9SU1Nf U0NUUCwKCQl9LAoJfSwKCS50eG1vZGUgPSB7CgkJLm1xX21vZGUgPSBFVEhfTVFfVFhfTk9ORSwK CX0sCn07CgoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZXhhbXBsZXMvaXBzZWMtc2VjZ3cvaXBzZWMt c2VjZ3cuYzoyMzMKSHVuayAjMiBzdWNjZWVkZWQgYXQgMTQ0NSAob2Zmc2V0IDEgbGluZSkuCkh1 bmsgIzMgc3VjY2VlZGVkIGF0IDE4OTkgKG9mZnNldCAxIGxpbmUpLgplcnJvcjogd2hpbGUgc2Vh cmNoaW5nIGZvcjoKCWxvY2FsX3BvcnRfY29uZi5yeG1vZGUubXR1ID0gbXR1X3NpemU7CgoJaWYg KG11bHRpX3NlZ19yZXF1aXJlZCgpKSB7CgkJbG9jYWxfcG9ydF9jb25mLnJ4bW9kZS5vZmZsb2Fk cyB8PSBERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSOwoJCWxvY2FsX3BvcnRfY29uZi50eG1vZGUub2Zm bG9hZHMgfD0gREVWX1RYX09GRkxPQURfTVVMVElfU0VHUzsKCX0KCglsb2NhbF9wb3J0X2NvbmYu cnhtb2RlLm9mZmxvYWRzIHw9IHJlcV9yeF9vZmZsb2FkczsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6 IGV4YW1wbGVzL2lwc2VjLXNlY2d3L2lwc2VjLXNlY2d3LmM6MjIwMQpIdW5rICM1IHN1Y2NlZWRl ZCBhdCAyMjMwIChvZmZzZXQgNSBsaW5lcykuCkh1bmsgIzYgc3VjY2VlZGVkIGF0IDIyOTMgKG9m ZnNldCA1IGxpbmVzKS4KSHVuayAjNyBzdWNjZWVkZWQgYXQgMjY1NCAob2Zmc2V0IDUgbGluZXMp LgpDaGVja2luZyBwYXRjaCBleGFtcGxlcy9pcHNlYy1zZWNndy9zYS5jLi4uCkNoZWNraW5nIHBh dGNoIGV4YW1wbGVzL2lwdjRfbXVsdGljYXN0L21haW4uYy4uLgplcnJvcjogd2hpbGUgc2VhcmNo aW5nIGZvcjoKCQkuc3BsaXRfaGRyX3NpemUgPSAwLAoJfSwKCS50eG1vZGUgPSB7CgkJLm1xX21v ZGUgPSBFVEhfTVFfVFhfTk9ORSwKCQkub2ZmbG9hZHMgPSBERVZfVFhfT0ZGTE9BRF9NVUxUSV9T RUdTLAoJfSwKfTsKCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBleGFtcGxlcy9pcHY0X211bHRpY2Fz dC9tYWluLmM6MTE0CkNoZWNraW5nIHBhdGNoIGV4YW1wbGVzL2tuaS9tYWluLmMuLi4KQ2hlY2tp bmcgcGF0Y2ggZXhhbXBsZXMvbDJmd2QtY3J5cHRvL21haW4uYy4uLgplcnJvcjogd2hpbGUgc2Vh cmNoaW5nIGZvcjoKCnN0YXRpYyBzdHJ1Y3QgcnRlX2V0aF9jb25mIHBvcnRfY29uZiA9IHsKCS5y eG1vZGUgPSB7CgkJLm1xX21vZGUgPSBFVEhfTVFfUlhfTk9ORSwKCQkuc3BsaXRfaGRyX3NpemUg PSAwLAoJfSwKCS50eG1vZGUgPSB7CgkJLm1xX21vZGUgPSBFVEhfTVFfVFhfTk9ORSwKCX0sCn07 CgoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZXhhbXBsZXMvbDJmd2QtY3J5cHRvL21haW4uYzoyMTUK SHVuayAjMiBzdWNjZWVkZWQgYXQgMTgwOCAob2Zmc2V0IDEgbGluZSkuCkh1bmsgIzMgc3VjY2Vl ZGVkIGF0IDI2MzIgKG9mZnNldCAxIGxpbmUpLgpDaGVja2luZyBwYXRjaCBleGFtcGxlcy9sMmZ3 ZC1ldmVudC9sMmZ3ZF9jb21tb24uYy4uLgpIdW5rICMxIHN1Y2NlZWRlZCBhdCAxNSAob2Zmc2V0 IDEgbGluZSkuCkh1bmsgIzIgc3VjY2VlZGVkIGF0IDIzIChvZmZzZXQgMSBsaW5lKS4KSHVuayAj MyBzdWNjZWVkZWQgYXQgNjEgKG9mZnNldCAxIGxpbmUpLgpDaGVja2luZyBwYXRjaCBleGFtcGxl cy9sMmZ3ZC1ldmVudC9tYWluLmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZXhhbXBsZXMvbDJmd2Qtam9i c3RhdHMvbWFpbi5jLi4uCkNoZWNraW5nIHBhdGNoIGV4YW1wbGVzL2wyZndkLWtlZXBhbGl2ZS9t YWluLmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZXhhbXBsZXMvbDJmd2QvbWFpbi5jLi4uCkNoZWNraW5n IHBhdGNoIGV4YW1wbGVzL2wzZndkLWFjbC9tYWluLmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGlu ZyBmb3I6CgpzdGF0aWMgc3RydWN0IHJ0ZV9ldGhfY29uZiBwb3J0X2NvbmYgPSB7Cgkucnhtb2Rl ID0gewoJCS5tcV9tb2RlCT0gRVRIX01RX1JYX1JTUywKCQkuc3BsaXRfaGRyX3NpemUgPSAwLAoJ CS5vZmZsb2FkcyA9IERFVl9SWF9PRkZMT0FEX0NIRUNLU1VNLAoJfSwKCS5yeF9hZHZfY29uZiA9 IHsKCQkucnNzX2NvbmYgPSB7CgkJCS5yc3Nfa2V5ID0gTlVMTCwKCQkJLnJzc19oZiA9IEVUSF9S U1NfSVAgfCBFVEhfUlNTX1VEUCB8CgkJCQlFVEhfUlNTX1RDUCB8IEVUSF9SU1NfU0NUUCwKCQl9 LAoJfSwKCS50eG1vZGUgPSB7CgkJLm1xX21vZGUgPSBFVEhfTVFfVFhfTk9ORSwKCX0sCn07CgoK ZXJyb3I6IHBhdGNoIGZhaWxlZDogZXhhbXBsZXMvbDNmd2QtYWNsL21haW4uYzoxMjMKSHVuayAj MiBzdWNjZWVkZWQgYXQgMTk3MSAob2Zmc2V0IDM2IGxpbmVzKS4KZXJyb3I6IHdoaWxlIHNlYXJj aGluZyBmb3I6Cgljb25mLT5yeG1vZGUubXR1ID0gbWF4X3BrdF9sZW4gLSBvdmVyaGVhZF9sZW47 CgoJaWYgKGNvbmYtPnJ4bW9kZS5tdHUgPiBSVEVfRVRIRVJfTVRVKQoJCWNvbmYtPnR4bW9kZS5v ZmZsb2FkcyB8PSBERVZfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTOwoKCXJldHVybiAwOwp9CgplcnJv cjogcGF0Y2ggZmFpbGVkOiBleGFtcGxlcy9sM2Z3ZC1hY2wvbWFpbi5jOjIwMDMKZXJyb3I6IHdo aWxlIHNlYXJjaGluZyBmb3I6CgkJCQkiSW52YWxpZCBtYXggcGFja2V0IGxlbmd0aDogJXUgKHBv cnQgJXUpXG4iLAoJCQkJbWF4X3BrdF9sZW4sIHBvcnRpZCk7CgoJCWlmIChkZXZfaW5mby50eF9v ZmZsb2FkX2NhcGEgJiBERVZfVFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJFRSkKCQkJbG9jYWxfcG9y dF9jb25mLnR4bW9kZS5vZmZsb2FkcyB8PQoJCQkJREVWX1RYX09GRkxPQURfTUJVRl9GQVNUX0ZS RUU7CgoJCWxvY2FsX3BvcnRfY29uZi5yeF9hZHZfY29uZi5yc3NfY29uZi5yc3NfaGYgJj0KCQkJ ZGV2X2luZm8uZmxvd190eXBlX3Jzc19vZmZsb2FkczsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGV4 YW1wbGVzL2wzZndkLWFjbC9tYWluLmM6MjA4NwpDaGVja2luZyBwYXRjaCBleGFtcGxlcy9sM2Z3 ZC1ncmFwaC9tYWluLmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgpzdGF0aWMgc3Ry dWN0IHJ0ZV9ldGhfY29uZiBwb3J0X2NvbmYgPSB7Cgkucnhtb2RlID0gewoJCS5tcV9tb2RlID0g RVRIX01RX1JYX1JTUywKCQkuc3BsaXRfaGRyX3NpemUgPSAwLAoJfSwKCS5yeF9hZHZfY29uZiA9 IHsKCQkucnNzX2NvbmYgPSB7CgkJCQkucnNzX2tleSA9IE5VTEwsCgkJCQkucnNzX2hmID0gRVRI X1JTU19JUCwKCQl9LAoJfSwKCS50eG1vZGUgPSB7CgkJLm1xX21vZGUgPSBFVEhfTVFfVFhfTk9O RSwKCX0sCn07CgoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZXhhbXBsZXMvbDNmd2QtZ3JhcGgvbWFp bi5jOjExMQpIdW5rICMyIHN1Y2NlZWRlZCBhdCA2MjggKG9mZnNldCAyMSBsaW5lcykuCmVycm9y OiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJY29uZi0+cnhtb2RlLm10dSA9IG1heF9wa3RfbGVuIC0g b3ZlcmhlYWRfbGVuOwoKCWlmIChjb25mLT5yeG1vZGUubXR1ID4gUlRFX0VUSEVSX01UVSkKCQlj b25mLT50eG1vZGUub2ZmbG9hZHMgfD0gREVWX1RYX09GRkxPQURfTVVMVElfU0VHUzsKCglyZXR1 cm4gMDsKfQoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZXhhbXBsZXMvbDNmd2QtZ3JhcGgvbWFpbi5j OjczMQplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCQkJCSJJbnZhbGlkIG1heCBwYWNrZXQg bGVuZ3RoOiAldSAocG9ydCAldSlcbiIsCgkJCQltYXhfcGt0X2xlbiwgcG9ydGlkKTsKCgkJaWYg KGRldl9pbmZvLnR4X29mZmxvYWRfY2FwYSAmIERFVl9UWF9PRkZMT0FEX01CVUZfRkFTVF9GUkVF KQoJCQlsb2NhbF9wb3J0X2NvbmYudHhtb2RlLm9mZmxvYWRzIHw9CgkJCQlERVZfVFhfT0ZGTE9B RF9NQlVGX0ZBU1RfRlJFRTsKCgkJbG9jYWxfcG9ydF9jb25mLnJ4X2Fkdl9jb25mLnJzc19jb25m LnJzc19oZiAmPQoJCQlkZXZfaW5mby5mbG93X3R5cGVfcnNzX29mZmxvYWRzOwoKZXJyb3I6IHBh dGNoIGZhaWxlZDogZXhhbXBsZXMvbDNmd2QtZ3JhcGgvbWFpbi5jOjgyOApDaGVja2luZyBwYXRj aCBleGFtcGxlcy9sM2Z3ZC1wb3dlci9tYWluLmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBm b3I6CgpzdGF0aWMgc3RydWN0IHJ0ZV9ldGhfY29uZiBwb3J0X2NvbmYgPSB7Cgkucnhtb2RlID0g ewoJCS5tcV9tb2RlICAgICAgICA9IEVUSF9NUV9SWF9SU1MsCgkJLnNwbGl0X2hkcl9zaXplID0g MCwKCQkub2ZmbG9hZHMgPSBERVZfUlhfT0ZGTE9BRF9DSEVDS1NVTSwKCX0sCgkucnhfYWR2X2Nv bmYgPSB7CgkJLnJzc19jb25mID0gewoJCQkucnNzX2tleSA9IE5VTEwsCgkJCS5yc3NfaGYgPSBF VEhfUlNTX1VEUCwKCQl9LAoJfSwKCS50eG1vZGUgPSB7CgkJLm1xX21vZGUgPSBFVEhfTVFfVFhf Tk9ORSwKCX0KfTsKCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBleGFtcGxlcy9sM2Z3ZC1wb3dlci9t YWluLmM6MjQ5Ckh1bmsgIzIgc3VjY2VlZGVkIGF0IDIyMjEgKG9mZnNldCAyNSBsaW5lcykuCmVy cm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJY29uZi0+cnhtb2RlLm10dSA9IG1heF9wa3RfbGVu IC0gb3ZlcmhlYWRfbGVuOwoKCWlmIChjb25mLT5yeG1vZGUubXR1ID4gUlRFX0VUSEVSX01UVSkK CQljb25mLT50eG1vZGUub2ZmbG9hZHMgfD0gREVWX1RYX09GRkxPQURfTVVMVElfU0VHUzsKCgly ZXR1cm4gMDsKfQoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZXhhbXBsZXMvbDNmd2QtcG93ZXIvbWFp bi5jOjI1MDkKZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJCQkiSW52YWxpZCBtYXggcGFj a2V0IGxlbmd0aDogJXUgKHBvcnQgJXUpXG4iLAoJCQkJbWF4X3BrdF9sZW4sIHBvcnRpZCk7CgoJ CWlmIChkZXZfaW5mby50eF9vZmZsb2FkX2NhcGEgJiBERVZfVFhfT0ZGTE9BRF9NQlVGX0ZBU1Rf RlJFRSkKCQkJbG9jYWxfcG9ydF9jb25mLnR4bW9kZS5vZmZsb2FkcyB8PQoJCQkJREVWX1RYX09G RkxPQURfTUJVRl9GQVNUX0ZSRUU7CgoJCWxvY2FsX3BvcnRfY29uZi5yeF9hZHZfY29uZi5yc3Nf Y29uZi5yc3NfaGYgJj0KCQkJZGV2X2luZm8uZmxvd190eXBlX3Jzc19vZmZsb2FkczsKCmVycm9y OiBwYXRjaCBmYWlsZWQ6IGV4YW1wbGVzL2wzZndkLXBvd2VyL21haW4uYzoyNjM3CkNoZWNraW5n IHBhdGNoIGV4YW1wbGVzL2wzZndkL2wzZndkX2V2ZW50LmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZXhh bXBsZXMvbDNmd2QvbWFpbi5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoKc3RhdGlj IHN0cnVjdCBydGVfZXRoX2NvbmYgcG9ydF9jb25mID0gewoJLnJ4bW9kZSA9IHsKCQkubXFfbW9k ZSA9IEVUSF9NUV9SWF9SU1MsCgkJLnNwbGl0X2hkcl9zaXplID0gMCwKCQkub2ZmbG9hZHMgPSBE RVZfUlhfT0ZGTE9BRF9DSEVDS1NVTSwKCX0sCgkucnhfYWR2X2NvbmYgPSB7CgkJLnJzc19jb25m ID0gewoJCQkucnNzX2tleSA9IE5VTEwsCgkJCS5yc3NfaGYgPSBFVEhfUlNTX0lQLAoJCX0sCgl9 LAoJLnR4bW9kZSA9IHsKCQkubXFfbW9kZSA9IEVUSF9NUV9UWF9OT05FLAoJfSwKfTsKCgplcnJv cjogcGF0Y2ggZmFpbGVkOiBleGFtcGxlcy9sM2Z3ZC9tYWluLmM6MTE5Ckh1bmsgIzIgc3VjY2Vl ZGVkIGF0IDkyNSAob2Zmc2V0IDIzIGxpbmVzKS4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6 Cgljb25mLT5yeG1vZGUubXR1ID0gbWF4X3BrdF9sZW4gLSBvdmVyaGVhZF9sZW47CgoJaWYgKGNv bmYtPnJ4bW9kZS5tdHUgPiBSVEVfRVRIRVJfTVRVKQoJCWNvbmYtPnR4bW9kZS5vZmZsb2FkcyB8 PSBERVZfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTOwoKCXJldHVybiAwOwp9CgplcnJvcjogcGF0Y2gg ZmFpbGVkOiBleGFtcGxlcy9sM2Z3ZC9tYWluLmM6OTg3CmVycm9yOiB3aGlsZSBzZWFyY2hpbmcg Zm9yOgoJCQkJIkludmFsaWQgbWF4IHBhY2tldCBsZW5ndGg6ICV1IChwb3J0ICV1KVxuIiwKCQkJ CW1heF9wa3RfbGVuLCBwb3J0aWQpOwoKCQlpZiAoZGV2X2luZm8udHhfb2ZmbG9hZF9jYXBhICYg REVWX1RYX09GRkxPQURfTUJVRl9GQVNUX0ZSRUUpCgkJCWxvY2FsX3BvcnRfY29uZi50eG1vZGUu b2ZmbG9hZHMgfD0KCQkJCURFVl9UWF9PRkZMT0FEX01CVUZfRkFTVF9GUkVFOwoKCQlsb2NhbF9w b3J0X2NvbmYucnhfYWR2X2NvbmYucnNzX2NvbmYucnNzX2hmICY9CgkJCWRldl9pbmZvLmZsb3df dHlwZV9yc3Nfb2ZmbG9hZHM7CgoJCWlmIChkZXZfaW5mby5tYXhfcnhfcXVldWVzID09IDEpCgkJ CWxvY2FsX3BvcnRfY29uZi5yeG1vZGUubXFfbW9kZSA9IEVUSF9NUV9SWF9OT05FOwoKCQlpZiAo bG9jYWxfcG9ydF9jb25mLnJ4X2Fkdl9jb25mLnJzc19jb25mLnJzc19oZiAhPQoJCQkJcG9ydF9j b25mLnJ4X2Fkdl9jb25mLnJzc19jb25mLnJzc19oZikgewoKZXJyb3I6IHBhdGNoIGZhaWxlZDog ZXhhbXBsZXMvbDNmd2QvbWFpbi5jOjEwNTIKQ2hlY2tpbmcgcGF0Y2ggZXhhbXBsZXMvbGlua19z dGF0dXNfaW50ZXJydXB0L21haW4uYy4uLgpDaGVja2luZyBwYXRjaCBleGFtcGxlcy9tdWx0aV9w cm9jZXNzL2NsaWVudF9zZXJ2ZXJfbXAvbXBfc2VydmVyL2luaXQuYy4uLgpDaGVja2luZyBwYXRj aCBleGFtcGxlcy9tdWx0aV9wcm9jZXNzL3N5bW1ldHJpY19tcC9tYWluLmMuLi4KQ2hlY2tpbmcg cGF0Y2ggZXhhbXBsZXMvbnRiL250Yl9md2QuYy4uLgpDaGVja2luZyBwYXRjaCBleGFtcGxlcy9w YWNrZXRfb3JkZXJpbmcvbWFpbi5jLi4uCkNoZWNraW5nIHBhdGNoIGV4YW1wbGVzL3BlcmZvcm1h bmNlLXRocmVhZC9sM2Z3ZC10aHJlYWQvbWFpbi5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcg Zm9yOgoKc3RhdGljIHN0cnVjdCBydGVfZXRoX2NvbmYgcG9ydF9jb25mID0gewoJLnJ4bW9kZSA9 IHsKCQkubXFfbW9kZSA9IEVUSF9NUV9SWF9SU1MsCgkJLnNwbGl0X2hkcl9zaXplID0gMCwKCQku b2ZmbG9hZHMgPSBERVZfUlhfT0ZGTE9BRF9DSEVDS1NVTSwKCX0sCgkucnhfYWR2X2NvbmYgPSB7 CgkJLnJzc19jb25mID0gewoJCQkucnNzX2tleSA9IE5VTEwsCgkJCS5yc3NfaGYgPSBFVEhfUlNT X1RDUCwKCQl9LAoJfSwKCS50eG1vZGUgPSB7CgkJLm1xX21vZGUgPSBFVEhfTVFfVFhfTk9ORSwK CX0sCn07CgoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZXhhbXBsZXMvcGVyZm9ybWFuY2UtdGhyZWFk L2wzZndkLXRocmVhZC9tYWluLmM6MzA2Ckh1bmsgIzIgc3VjY2VlZGVkIGF0IDM0NjIgKG9mZnNl dCAyNSBsaW5lcykuCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJY29uZi0+cnhtb2RlLm10 dSA9IG1heF9wa3RfbGVuIC0gb3ZlcmhlYWRfbGVuOwoKCWlmIChjb25mLT5yeG1vZGUubXR1ID4g UlRFX0VUSEVSX01UVSkKCQljb25mLT50eG1vZGUub2ZmbG9hZHMgfD0gREVWX1RYX09GRkxPQURf TVVMVElfU0VHUzsKCglyZXR1cm4gMDsKfQoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZXhhbXBsZXMv cGVyZm9ybWFuY2UtdGhyZWFkL2wzZndkLXRocmVhZC9tYWluLmM6MzQ5MAplcnJvcjogd2hpbGUg c2VhcmNoaW5nIGZvcjoKCQkJCSJJbnZhbGlkIG1heCBwYWNrZXQgbGVuZ3RoOiAldSAocG9ydCAl dSlcbiIsCgkJCQltYXhfcGt0X2xlbiwgcG9ydGlkKTsKCgkJaWYgKGRldl9pbmZvLnR4X29mZmxv YWRfY2FwYSAmIERFVl9UWF9PRkZMT0FEX01CVUZfRkFTVF9GUkVFKQoJCQlsb2NhbF9wb3J0X2Nv bmYudHhtb2RlLm9mZmxvYWRzIHw9CgkJCQlERVZfVFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJFRTsK CgkJbG9jYWxfcG9ydF9jb25mLnJ4X2Fkdl9jb25mLnJzc19jb25mLnJzc19oZiAmPQoJCQlkZXZf aW5mby5mbG93X3R5cGVfcnNzX29mZmxvYWRzOwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZXhhbXBs ZXMvcGVyZm9ybWFuY2UtdGhyZWFkL2wzZndkLXRocmVhZC9tYWluLmM6MzU4OQpDaGVja2luZyBw YXRjaCBleGFtcGxlcy9waXBlbGluZS9vYmouYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZv cjoKc3RhdGljIHN0cnVjdCBydGVfZXRoX2NvbmYgcG9ydF9jb25mX2RlZmF1bHQgPSB7CgkubGlu a19zcGVlZHMgPSAwLAoJLnJ4bW9kZSA9IHsKCQkubXFfbW9kZSA9IEVUSF9NUV9SWF9OT05FLAoJ CS5tdHUgPSA5MDAwIC0gKFJURV9FVEhFUl9IRFJfTEVOICsgUlRFX0VUSEVSX0NSQ19MRU4pLCAv KiBKdW1ibyBmcmFtZSBNVFUgKi8KCQkuc3BsaXRfaGRyX3NpemUgPSAwLCAvKiBIZWFkZXIgc3Bs aXQgYnVmZmVyIHNpemUgKi8KCX0sCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBleGFtcGxlcy9waXBl bGluZS9vYmouYzoxMzMKQ2hlY2tpbmcgcGF0Y2ggZXhhbXBsZXMvcHRwY2xpZW50L3B0cGNsaWVu dC5jLi4uCkh1bmsgIzEgc3VjY2VlZGVkIGF0IDE5NyAob2Zmc2V0IDQgbGluZXMpLgpDaGVja2lu ZyBwYXRjaCBleGFtcGxlcy9xb3NfbWV0ZXIvbWFpbi5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hp bmcgZm9yOgogKioqLwpzdGF0aWMgc3RydWN0IHJ0ZV9ldGhfY29uZiBwb3J0X2NvbmYgPSB7Cgku cnhtb2RlID0gewoJCS5tcV9tb2RlCT0gRVRIX01RX1JYX1JTUywKCQkuc3BsaXRfaGRyX3NpemUg PSAwLAoJCS5vZmZsb2FkcyA9IERFVl9SWF9PRkZMT0FEX0NIRUNLU1VNLAoJfSwKCS5yeF9hZHZf Y29uZiA9IHsKCQkucnNzX2NvbmYgPSB7CgkJCS5yc3Nfa2V5ID0gTlVMTCwKCQkJLnJzc19oZiA9 IEVUSF9SU1NfSVAsCgkJfSwKCX0sCgkudHhtb2RlID0gewoJCS5tcV9tb2RlID0gRVRIX0RDQl9O T05FLAoJfSwKfTsKCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBleGFtcGxlcy9xb3NfbWV0ZXIvbWFp bi5jOjUxCkh1bmsgIzIgc3VjY2VlZGVkIGF0IDMzMyAob2Zmc2V0IDEgbGluZSkuCkh1bmsgIzMg c3VjY2VlZGVkIGF0IDM3OSAob2Zmc2V0IDEgbGluZSkuCkNoZWNraW5nIHBhdGNoIGV4YW1wbGVz L3Fvc19zY2hlZC9pbml0LmMuLi4KSHVuayAjMSBzdWNjZWVkZWQgYXQgNjEgKG9mZnNldCAxIGxp bmUpLgpIdW5rICMyIHN1Y2NlZWRlZCBhdCAxMDYgKG9mZnNldCAxIGxpbmUpLgpDaGVja2luZyBw YXRjaCBleGFtcGxlcy9yeHR4X2NhbGxiYWNrcy9tYWluLmMuLi4KSHVuayAjMSBzdWNjZWVkZWQg YXQgMTQ1IChvZmZzZXQgNCBsaW5lcykuCkNoZWNraW5nIHBhdGNoIGV4YW1wbGVzL3NlcnZlcl9u b2RlX2VmZC9zZXJ2ZXIvaW5pdC5jLi4uCkNoZWNraW5nIHBhdGNoIGV4YW1wbGVzL3NrZWxldG9u L2Jhc2ljZndkLmMuLi4KSHVuayAjMSBzdWNjZWVkZWQgYXQgNTUgKG9mZnNldCA2IGxpbmVzKS4K Q2hlY2tpbmcgcGF0Y2ggZXhhbXBsZXMvdmhvc3QvbWFpbi5jLi4uCkh1bmsgIzEgc3VjY2VlZGVk IGF0IDEwOSAob2Zmc2V0IC0xIGxpbmVzKS4KSHVuayAjMiBzdWNjZWVkZWQgYXQgMTMzIChvZmZz ZXQgLTEgbGluZXMpLgpIdW5rICMzIHN1Y2NlZWRlZCBhdCAyOTAgKG9mZnNldCAtMSBsaW5lcyku Ckh1bmsgIzQgc3VjY2VlZGVkIGF0IDU1NiAob2Zmc2V0IC0xIGxpbmVzKS4KQ2hlY2tpbmcgcGF0 Y2ggZXhhbXBsZXMvdm1fcG93ZXJfbWFuYWdlci9tYWluLmMuLi4KSHVuayAjMSBzdWNjZWVkZWQg YXQgNzggKG9mZnNldCA1IGxpbmVzKS4KSHVuayAjMiBzdWNjZWVkZWQgYXQgMjc1IChvZmZzZXQg NSBsaW5lcykuCkNoZWNraW5nIHBhdGNoIGV4YW1wbGVzL3ZtZHEvbWFpbi5jLi4uCkNoZWNraW5n IHBhdGNoIGV4YW1wbGVzL3ZtZHFfZGNiL21haW4uYy4uLgpDaGVja2luZyBwYXRjaCBsaWIvZXRo ZGV2L2V0aGRldl9kcml2ZXIuaC4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCS8qKiBE ZXZpY2UgRXRoZXJuZXQgbGluayBhZGRyZXNzLiBAc2VlIHJ0ZV9ldGhfZGV2X3JlbGVhc2VfcG9y dCgpICovCglzdHJ1Y3QgcnRlX2V0aGVyX2FkZHIgKm1hY19hZGRyczsKCS8qKiBCaXRtYXAgYXNz b2NpYXRpbmcgTUFDIGFkZHJlc3NlcyB0byBwb29scyAqLwoJdWludDY0X3QgbWFjX3Bvb2xfc2Vs W0VUSF9OVU1fUkVDRUlWRV9NQUNfQUREUl07CgkvKioKCSAqIERldmljZSBFdGhlcm5ldCBNQUMg YWRkcmVzc2VzIG9mIGhhc2ggZmlsdGVyaW5nLgoJICogQHNlZSBydGVfZXRoX2Rldl9yZWxlYXNl X3BvcnQoKQoKZXJyb3I6IHBhdGNoIGZhaWxlZDogbGliL2V0aGRldi9ldGhkZXZfZHJpdmVyLmg6 MTE0Ckh1bmsgIzIgc3VjY2VlZGVkIGF0IDE0ODEgKG9mZnNldCAtMjE5IGxpbmVzKS4KQ2hlY2tp bmcgcGF0Y2ggbGliL2V0aGRldi9ydGVfZXRoZGV2LmMuLi4KSHVuayAjMSBzdWNjZWVkZWQgYXQg OTggKG9mZnNldCAtMyBsaW5lcykuCkh1bmsgIzIgc3VjY2VlZGVkIGF0IDEyMyAob2Zmc2V0IC0y IGxpbmVzKS4KSHVuayAjMyBzdWNjZWVkZWQgYXQgMTE5NCAob2Zmc2V0IDE1IGxpbmVzKS4KZXJy b3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkgKiBJZiBMUk8gaXMgZW5hYmxlZCwgY2hlY2sgdGhh dCB0aGUgbWF4aW11bSBhZ2dyZWdhdGVkIHBhY2tldAoJICogc2l6ZSBpcyBzdXBwb3J0ZWQgYnkg dGhlIGNvbmZpZ3VyZWQgZGV2aWNlLgoJICovCglpZiAoZGV2X2NvbmYtPnJ4bW9kZS5vZmZsb2Fk cyAmIERFVl9SWF9PRkZMT0FEX1RDUF9MUk8pIHsKCQl1aW50MzJfdCBtYXhfcnhfcGt0bGVuOwoJ CXVpbnQzMl90IG92ZXJoZWFkX2xlbjsKCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBsaWIvZXRoZGV2 L3J0ZV9ldGhkZXYuYzoxNTI4Ckh1bmsgIzUgc3VjY2VlZGVkIGF0IDE1NTMgKG9mZnNldCAtMjkg bGluZXMpLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCSAqIHNpemUgaXMgc3VwcG9ydGVk IGJ5IHRoZSBjb25maWd1cmVkIGRldmljZS4KCSAqLwoJLyogR2V0IHRoZSByZWFsIEV0aGVybmV0 IG92ZXJoZWFkIGxlbmd0aCAqLwoJaWYgKGxvY2FsX2NvbmYub2ZmbG9hZHMgJiBERVZfUlhfT0ZG TE9BRF9UQ1BfTFJPKSB7CgkJdWludDMyX3Qgb3ZlcmhlYWRfbGVuOwoJCXVpbnQzMl90IG1heF9y eF9wa3RsZW47CgkJaW50IHJldDsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGxpYi9ldGhkZXYvcnRl X2V0aGRldi5jOjIyMTMKSHVuayAjNyBzdWNjZWVkZWQgYXQgMjczNCAob2Zmc2V0IC01NiBsaW5l cykuCkh1bmsgIzggc3VjY2VlZGVkIGF0IDI3NzIgKG9mZnNldCAtNTYgbGluZXMpLgplcnJvcjog d2hpbGUgc2VhcmNoaW5nIGZvcjoKCWRldiA9ICZydGVfZXRoX2RldmljZXNbcG9ydF9pZF07CgoJ aWYgKCEoZGV2LT5kYXRhLT5kZXZfY29uZi5yeG1vZGUub2ZmbG9hZHMgJgoJICAgICAgREVWX1JY X09GRkxPQURfVkxBTl9GSUxURVIpKSB7CgkJUlRFX0VUSERFVl9MT0coRVJSLCAiUG9ydCAldTog VkxBTi1maWx0ZXJpbmcgZGlzYWJsZWRcbiIsCgkJCXBvcnRfaWQpOwoJCXJldHVybiAtRU5PU1lT OwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogbGliL2V0aGRldi9ydGVfZXRoZGV2LmM6Mzc0NQpIdW5r ICMxMCBzdWNjZWVkZWQgYXQgMzcyNiAob2Zmc2V0IC0xMDMgbGluZXMpLgpIdW5rICMxMSBzdWNj ZWVkZWQgYXQgMzgwOCAob2Zmc2V0IC0xMDMgbGluZXMpLgpIdW5rICMxMiBzdWNjZWVkZWQgYXQg Mzg5NSAob2Zmc2V0IC0xMDMgbGluZXMpLgpIdW5rICMxMyBzdWNjZWVkZWQgYXQgMzkxMyAob2Zm c2V0IC0xMDMgbGluZXMpLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCX0KCglmb3IgKGkg PSAwOyBpIDwgcmV0YV9zaXplOyBpKyspIHsKCQlpZHggPSBpIC8gUlRFX1JFVEFfR1JPVVBfU0la RTsKCQlzaGlmdCA9IGkgJSBSVEVfUkVUQV9HUk9VUF9TSVpFOwoJCWlmICgocmV0YV9jb25mW2lk eF0ubWFzayAmIFJURV9CSVQ2NChzaGlmdCkpICYmCgkJCShyZXRhX2NvbmZbaWR4XS5yZXRhW3No aWZ0XSA+PSBtYXhfcnhxKSkgewoJCQlSVEVfRVRIREVWX0xPRyhFUlIsCgplcnJvcjogcGF0Y2gg ZmFpbGVkOiBsaWIvZXRoZGV2L3J0ZV9ldGhkZXYuYzo0MDQxCkh1bmsgIzE1IHN1Y2NlZWRlZCBh dCA0MTE4IChvZmZzZXQgLTc3IGxpbmVzKS4KSHVuayAjMTYgc3VjY2VlZGVkIGF0IDQwOTIgKG9m ZnNldCAtMTI5IGxpbmVzKS4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJCXBvcnRfaWQp OwoJCXJldHVybiAtRUlOVkFMOwoJfQoJaWYgKHBvb2wgPj0gRVRIXzY0X1BPT0xTKSB7CgkJUlRF X0VUSERFVl9MT0coRVJSLCAiUG9vbCBJRCBtdXN0IGJlIDAtJWRcbiIsIEVUSF82NF9QT09MUyAt IDEpOwoJCXJldHVybiAtRUlOVkFMOwoJfQoKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGxpYi9ldGhk ZXYvcnRlX2V0aGRldi5jOjQzNjUKSHVuayAjMTggc3VjY2VlZGVkIGF0IDYxNTMgKG9mZnNldCAt MTE5IGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2ggbGliL2V0aGRldi9ydGVfZXRoZGV2LmguLi4KSHVu ayAjMSBzdWNjZWVkZWQgYXQgMjQ5IChvZmZzZXQgLTEgbGluZXMpLgplcnJvcjogd2hpbGUgc2Vh cmNoaW5nIGZvcjoKLyoqQHtAbmFtZSBMaW5rIHNwZWVkIGNhcGFiaWxpdGllcwogKiBEZXZpY2Ug c3VwcG9ydGVkIHNwZWVkcyBiaXRtYXAgZmxhZ3MKICovCiNkZWZpbmUgRVRIX0xJTktfU1BFRURf QVVUT05FRyAwICAgICAgICAgICAgIC8qKjwgQXV0b25lZ290aWF0ZSAoYWxsIHNwZWVkcykgKi8K I2RlZmluZSBFVEhfTElOS19TUEVFRF9GSVhFRCAgIFJURV9CSVQzMigwKSAgLyoqPCBEaXNhYmxl IGF1dG9uZWcgKGZpeGVkIHNwZWVkKSAqLwojZGVmaW5lIEVUSF9MSU5LX1NQRUVEXzEwTV9IRCAg UlRFX0JJVDMyKDEpICAvKio8ICAxMCBNYnBzIGhhbGYtZHVwbGV4ICovCiNkZWZpbmUgRVRIX0xJ TktfU1BFRURfMTBNICAgICBSVEVfQklUMzIoMikgIC8qKjwgIDEwIE1icHMgZnVsbC1kdXBsZXgg Ki8KI2RlZmluZSBFVEhfTElOS19TUEVFRF8xMDBNX0hEIFJURV9CSVQzMigzKSAgLyoqPCAxMDAg TWJwcyBoYWxmLWR1cGxleCAqLwojZGVmaW5lIEVUSF9MSU5LX1NQRUVEXzEwME0gICAgUlRFX0JJ VDMyKDQpICAvKio8IDEwMCBNYnBzIGZ1bGwtZHVwbGV4ICovCiNkZWZpbmUgRVRIX0xJTktfU1BF RURfMUcgICAgICBSVEVfQklUMzIoNSkgIC8qKjwgICAxIEdicHMgKi8KI2RlZmluZSBFVEhfTElO S19TUEVFRF8yXzVHICAgIFJURV9CSVQzMig2KSAgLyoqPCAyLjUgR2JwcyAqLwojZGVmaW5lIEVU SF9MSU5LX1NQRUVEXzVHICAgICAgUlRFX0JJVDMyKDcpICAvKio8ICAgNSBHYnBzICovCiNkZWZp bmUgRVRIX0xJTktfU1BFRURfMTBHICAgICBSVEVfQklUMzIoOCkgIC8qKjwgIDEwIEdicHMgKi8K I2RlZmluZSBFVEhfTElOS19TUEVFRF8yMEcgICAgIFJURV9CSVQzMig5KSAgLyoqPCAgMjAgR2Jw cyAqLwojZGVmaW5lIEVUSF9MSU5LX1NQRUVEXzI1RyAgICAgUlRFX0JJVDMyKDEwKSAvKio8ICAy NSBHYnBzICovCiNkZWZpbmUgRVRIX0xJTktfU1BFRURfNDBHICAgICBSVEVfQklUMzIoMTEpIC8q KjwgIDQwIEdicHMgKi8KI2RlZmluZSBFVEhfTElOS19TUEVFRF81MEcgICAgIFJURV9CSVQzMigx MikgLyoqPCAgNTAgR2JwcyAqLwojZGVmaW5lIEVUSF9MSU5LX1NQRUVEXzU2RyAgICAgUlRFX0JJ VDMyKDEzKSAvKio8ICA1NiBHYnBzICovCiNkZWZpbmUgRVRIX0xJTktfU1BFRURfMTAwRyAgICBS VEVfQklUMzIoMTQpIC8qKjwgMTAwIEdicHMgKi8KI2RlZmluZSBFVEhfTElOS19TUEVFRF8yMDBH ICAgIFJURV9CSVQzMigxNSkgLyoqPCAyMDAgR2JwcyAqLwovKipAfSovCgovKipAe0BuYW1lIExp bmsgc3BlZWQKICogRXRoZXJuZXQgbnVtZXJpYyBsaW5rIHNwZWVkcyBpbiBNYnBzCiAqLwojZGVm aW5lIEVUSF9TUEVFRF9OVU1fTk9ORSAgICAgICAgIDAgLyoqPCBOb3QgZGVmaW5lZCAqLwojZGVm aW5lIEVUSF9TUEVFRF9OVU1fMTBNICAgICAgICAgMTAgLyoqPCAgMTAgTWJwcyAqLwojZGVmaW5l IEVUSF9TUEVFRF9OVU1fMTAwTSAgICAgICAxMDAgLyoqPCAxMDAgTWJwcyAqLwojZGVmaW5lIEVU SF9TUEVFRF9OVU1fMUcgICAgICAgIDEwMDAgLyoqPCAgIDEgR2JwcyAqLwojZGVmaW5lIEVUSF9T UEVFRF9OVU1fMl81RyAgICAgIDI1MDAgLyoqPCAyLjUgR2JwcyAqLwojZGVmaW5lIEVUSF9TUEVF RF9OVU1fNUcgICAgICAgIDUwMDAgLyoqPCAgIDUgR2JwcyAqLwojZGVmaW5lIEVUSF9TUEVFRF9O VU1fMTBHICAgICAgMTAwMDAgLyoqPCAgMTAgR2JwcyAqLwojZGVmaW5lIEVUSF9TUEVFRF9OVU1f MjBHICAgICAgMjAwMDAgLyoqPCAgMjAgR2JwcyAqLwojZGVmaW5lIEVUSF9TUEVFRF9OVU1fMjVH ICAgICAgMjUwMDAgLyoqPCAgMjUgR2JwcyAqLwojZGVmaW5lIEVUSF9TUEVFRF9OVU1fNDBHICAg ICAgNDAwMDAgLyoqPCAgNDAgR2JwcyAqLwojZGVmaW5lIEVUSF9TUEVFRF9OVU1fNTBHICAgICAg NTAwMDAgLyoqPCAgNTAgR2JwcyAqLwojZGVmaW5lIEVUSF9TUEVFRF9OVU1fNTZHICAgICAgNTYw MDAgLyoqPCAgNTYgR2JwcyAqLwojZGVmaW5lIEVUSF9TUEVFRF9OVU1fMTAwRyAgICAxMDAwMDAg LyoqPCAxMDAgR2JwcyAqLwojZGVmaW5lIEVUSF9TUEVFRF9OVU1fMjAwRyAgICAyMDAwMDAgLyoq PCAyMDAgR2JwcyAqLwojZGVmaW5lIEVUSF9TUEVFRF9OVU1fVU5LTk9XTiBVSU5UMzJfTUFYIC8q KjwgVW5rbm93biAqLwovKipAfSovCgovKioKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGxpYi9ldGhk ZXYvcnRlX2V0aGRldi5oOjI4MQpIdW5rICMzIHN1Y2NlZWRlZCBhdCAzMjMgKG9mZnNldCAtMzQg bGluZXMpLgpIdW5rICM0IHN1Y2NlZWRlZCBhdCAzNjAgKG9mZnNldCAtMzQgbGluZXMpLgplcnJv cjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKICovCmVudW0gcnRlX2V0aF9yeF9tcV9tb2RlIHsKCS8q KiBOb25lIG9mIERDQiwgUlNTIG9yIFZNRHEgbW9kZSAqLwoJRVRIX01RX1JYX05PTkUgPSAwLAoK CS8qKiBGb3IgUnggc2lkZSwgb25seSBSU1MgaXMgb24gKi8KCUVUSF9NUV9SWF9SU1MgPSBFVEhf TVFfUlhfUlNTX0ZMQUcsCgkvKiogRm9yIFJ4IHNpZGUsb25seSBEQ0IgaXMgb24uICovCglFVEhf TVFfUlhfRENCID0gRVRIX01RX1JYX0RDQl9GTEFHLAoJLyoqIEJvdGggRENCIGFuZCBSU1MgZW5h YmxlICovCglFVEhfTVFfUlhfRENCX1JTUyA9IEVUSF9NUV9SWF9SU1NfRkxBRyB8IEVUSF9NUV9S WF9EQ0JfRkxBRywKCgkvKiogT25seSBWTURxLCBubyBSU1Mgbm9yIERDQiAqLwoJRVRIX01RX1JY X1ZNRFFfT05MWSA9IEVUSF9NUV9SWF9WTURRX0ZMQUcsCgkvKiogUlNTIG1vZGUgd2l0aCBWTURx ICovCglFVEhfTVFfUlhfVk1EUV9SU1MgPSBFVEhfTVFfUlhfUlNTX0ZMQUcgfCBFVEhfTVFfUlhf Vk1EUV9GTEFHLAoJLyoqIFVzZSBWTURxK0RDQiB0byByb3V0ZSB0cmFmZmljIHRvIHF1ZXVlcyAq LwoJRVRIX01RX1JYX1ZNRFFfRENCID0gRVRIX01RX1JYX1ZNRFFfRkxBRyB8IEVUSF9NUV9SWF9E Q0JfRkxBRywKCS8qKiBFbmFibGUgYm90aCBWTURxIGFuZCBEQ0IgaW4gVk1EcSAqLwoJRVRIX01R X1JYX1ZNRFFfRENCX1JTUyA9IEVUSF9NUV9SWF9SU1NfRkxBRyB8IEVUSF9NUV9SWF9EQ0JfRkxB RyB8CgkJCQkgRVRIX01RX1JYX1ZNRFFfRkxBRywKfTsKCi8qKgogKiBmb3IgUnggbXEgbW9kZSBi YWNrd2FyZCBjb21wYXRpYmxlCiAqLwojZGVmaW5lIEVUSF9SU1MgICAgICAgICAgICAgICAgICAg ICAgIEVUSF9NUV9SWF9SU1MKI2RlZmluZSBWTURRX0RDQiAgICAgICAgICAgICAgICAgICAgICBF VEhfTVFfUlhfVk1EUV9EQ0IKI2RlZmluZSBFVEhfRENCX1JYICAgICAgICAgICAgICAgICAgICBF VEhfTVFfUlhfRENCCgovKioKICogQSBzZXQgb2YgdmFsdWVzIHRvIGlkZW50aWZ5IHdoYXQgbWV0 aG9kIGlzIHRvIGJlIHVzZWQgdG8gdHJhbnNtaXQKICogcGFja2V0cyB1c2luZyBtdWx0aS1UQ3Mu CiAqLwplbnVtIHJ0ZV9ldGhfdHhfbXFfbW9kZSB7CglFVEhfTVFfVFhfTk9ORSAgICA9IDAsICAv Kio8IEl0IGlzIGluIG5laXRoZXIgRENCIG5vciBWVCBtb2RlLiAqLwoJRVRIX01RX1RYX0RDQiwg ICAgICAgICAgLyoqPCBGb3IgVHggc2lkZSxvbmx5IERDQiBpcyBvbi4gKi8KCUVUSF9NUV9UWF9W TURRX0RDQiwJLyoqPCBGb3IgVHggc2lkZSxib3RoIERDQiBhbmQgVlQgaXMgb24uICovCglFVEhf TVFfVFhfVk1EUV9PTkxZLCAgICAvKio8IE9ubHkgVlQgb24sIG5vIERDQiAqLwp9OwoKLyoqCiAq IGZvciBUeCBtcSBtb2RlIGJhY2t3YXJkIGNvbXBhdGlibGUKICovCiNkZWZpbmUgRVRIX0RDQl9O T05FICAgICAgICAgICAgICAgIEVUSF9NUV9UWF9OT05FCiNkZWZpbmUgRVRIX1ZNRFFfRENCX1RY ICAgICAgICAgICAgIEVUSF9NUV9UWF9WTURRX0RDQgojZGVmaW5lIEVUSF9EQ0JfVFggICAgICAg ICAgICAgICAgICBFVEhfTVFfVFhfRENCCgovKioKICogQSBzdHJ1Y3R1cmUgdXNlZCB0byBjb25m aWd1cmUgdGhlIFJ4IGZlYXR1cmVzIG9mIGFuIEV0aGVybmV0IHBvcnQuCgplcnJvcjogcGF0Y2gg ZmFpbGVkOiBsaWIvZXRoZGV2L3J0ZV9ldGhkZXYuaDozNjcKSHVuayAjNiBzdWNjZWVkZWQgYXQg NDMwIChvZmZzZXQgLTMzIGxpbmVzKS4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CiAqIE5v dGUgdGhhdCBzaW5nbGUgVkxBTiBpcyB0cmVhdGVkIHRoZSBzYW1lIGFzIGlubmVyIFZMQU4uCiAq LwplbnVtIHJ0ZV92bGFuX3R5cGUgewoJRVRIX1ZMQU5fVFlQRV9VTktOT1dOID0gMCwKCUVUSF9W TEFOX1RZUEVfSU5ORVIsIC8qKjwgSW5uZXIgVkxBTi4gKi8KCUVUSF9WTEFOX1RZUEVfT1VURVIs IC8qKjwgU2luZ2xlIFZMQU4sIG9yIG91dGVyIFZMQU4uICovCglFVEhfVkxBTl9UWVBFX01BWCwK fTsKCi8qKgogKiBBIHN0cnVjdHVyZSB1c2VkIHRvIGRlc2NyaWJlIGEgVkxBTiBmaWx0ZXIuCiAq IElmIHRoZSBiaXQgY29ycmVzcG9uZGluZyB0byBhIFZJRCBpcyBzZXQsIHN1Y2ggVklEIGlzIG9u LgoKZXJyb3I6IHBhdGNoIGZhaWxlZDogbGliL2V0aGRldi9ydGVfZXRoZGV2Lmg6NDM4CmVycm9y OiB3aGlsZSBzZWFyY2hpbmcgZm9yOgogKiBCZWxvdyBtYWNyb3MgYXJlIGRlZmluZWQgZm9yIFJT UyBvZmZsb2FkIHR5cGVzLCB0aGV5IGNhbiBiZSB1c2VkIHRvCiAqIGZpbGwgcnRlX2V0aF9yc3Nf Y29uZi5yc3NfaGYgb3IgcnRlX2Zsb3dfYWN0aW9uX3Jzcy50eXBlcy4KICovCiNkZWZpbmUgRVRI X1JTU19JUFY0ICAgICAgICAgICAgICAgUlRFX0JJVDY0KDIpCiNkZWZpbmUgRVRIX1JTU19GUkFH X0lQVjQgICAgICAgICAgUlRFX0JJVDY0KDMpCiNkZWZpbmUgRVRIX1JTU19OT05GUkFHX0lQVjRf VENQICAgUlRFX0JJVDY0KDQpCiNkZWZpbmUgRVRIX1JTU19OT05GUkFHX0lQVjRfVURQICAgUlRF X0JJVDY0KDUpCiNkZWZpbmUgRVRIX1JTU19OT05GUkFHX0lQVjRfU0NUUCAgUlRFX0JJVDY0KDYp CiNkZWZpbmUgRVRIX1JTU19OT05GUkFHX0lQVjRfT1RIRVIgUlRFX0JJVDY0KDcpCiNkZWZpbmUg RVRIX1JTU19JUFY2ICAgICAgICAgICAgICAgUlRFX0JJVDY0KDgpCiNkZWZpbmUgRVRIX1JTU19G UkFHX0lQVjYgICAgICAgICAgUlRFX0JJVDY0KDkpCiNkZWZpbmUgRVRIX1JTU19OT05GUkFHX0lQ VjZfVENQICAgUlRFX0JJVDY0KDEwKQojZGVmaW5lIEVUSF9SU1NfTk9ORlJBR19JUFY2X1VEUCAg IFJURV9CSVQ2NCgxMSkKI2RlZmluZSBFVEhfUlNTX05PTkZSQUdfSVBWNl9TQ1RQICBSVEVfQklU NjQoMTIpCiNkZWZpbmUgRVRIX1JTU19OT05GUkFHX0lQVjZfT1RIRVIgUlRFX0JJVDY0KDEzKQoj ZGVmaW5lIEVUSF9SU1NfTDJfUEFZTE9BRCAgICAgICAgIFJURV9CSVQ2NCgxNCkKI2RlZmluZSBF VEhfUlNTX0lQVjZfRVggICAgICAgICAgICBSVEVfQklUNjQoMTUpCiNkZWZpbmUgRVRIX1JTU19J UFY2X1RDUF9FWCAgICAgICAgUlRFX0JJVDY0KDE2KQojZGVmaW5lIEVUSF9SU1NfSVBWNl9VRFBf RVggICAgICAgIFJURV9CSVQ2NCgxNykKI2RlZmluZSBFVEhfUlNTX1BPUlQgICAgICAgICAgICAg ICBSVEVfQklUNjQoMTgpCiNkZWZpbmUgRVRIX1JTU19WWExBTiAgICAgICAgICAgICAgUlRFX0JJ VDY0KDE5KQojZGVmaW5lIEVUSF9SU1NfR0VORVZFICAgICAgICAgICAgIFJURV9CSVQ2NCgyMCkK I2RlZmluZSBFVEhfUlNTX05WR1JFICAgICAgICAgICAgICBSVEVfQklUNjQoMjEpCiNkZWZpbmUg RVRIX1JTU19HVFBVICAgICAgICAgICAgICAgUlRFX0JJVDY0KDIzKQojZGVmaW5lIEVUSF9SU1Nf RVRIICAgICAgICAgICAgICAgIFJURV9CSVQ2NCgyNCkKI2RlZmluZSBFVEhfUlNTX1NfVkxBTiAg ICAgICAgICAgICBSVEVfQklUNjQoMjUpCiNkZWZpbmUgRVRIX1JTU19DX1ZMQU4gICAgICAgICAg ICAgUlRFX0JJVDY0KDI2KQojZGVmaW5lIEVUSF9SU1NfRVNQICAgICAgICAgICAgICAgIFJURV9C SVQ2NCgyNykKI2RlZmluZSBFVEhfUlNTX0FIICAgICAgICAgICAgICAgICBSVEVfQklUNjQoMjgp CiNkZWZpbmUgRVRIX1JTU19MMlRQVjMgICAgICAgICAgICAgUlRFX0JJVDY0KDI5KQojZGVmaW5l IEVUSF9SU1NfUEZDUCAgICAgICAgICAgICAgIFJURV9CSVQ2NCgzMCkKI2RlZmluZSBFVEhfUlNT X1BQUE9FICAgICAgICAgICAgICBSVEVfQklUNjQoMzEpCiNkZWZpbmUgRVRIX1JTU19FQ1BSSSAg ICAgICAgICAgICAgUlRFX0JJVDY0KDMyKQojZGVmaW5lIEVUSF9SU1NfTVBMUyAgICAgICAgICAg ICAgIFJURV9CSVQ2NCgzMykKI2RlZmluZSBFVEhfUlNTX0lQVjRfQ0hLU1VNICAgICAgICBSVEVf QklUNjQoMzQpCgovKioKICogVGhlIEVUSF9SU1NfTDRfQ0hLU1VNIHdvcmtzIG9uIGNoZWNrc3Vt IGZpZWxkIG9mIGFueSBMNCBoZWFkZXIuCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBsaWIvZXRoZGV2 L3J0ZV9ldGhkZXYuaDo1MTQKZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CiAqIGNoZWNrc3Vt IHR5cGUgZm9yIGNvbnN0cnVjdGluZyB0aGUgdXNlIG9mIFJTUyBvZmZsb2FkIGJpdHMuCiAqCiAq IER1ZSB0byBhYm92ZSByZWFzb24sIHNvbWUgb2xkIEFQSXMgKGFuZCBjb25maWd1cmF0aW9uKSBk b24ndCBzdXBwb3J0CiAqIEVUSF9SU1NfTDRfQ0hLU1VNLiBUaGUgcnRlX2Zsb3cgUlNTIEFQSSBz dXBwb3J0cyBpdC4KICoKICogRm9yIHRoZSBjYXNlIHRoYXQgY2hlY2tzdW0gaXMgbm90IHVzZWQg aW4gYW4gVURQIGhlYWRlciwKICogaXQgdGFrZXMgdGhlIHJlc2VydmVkIHZhbHVlIDAgYXMgaW5w dXQgZm9yIHRoZSBoYXNoIGZ1bmN0aW9uLgogKi8KI2RlZmluZSBFVEhfUlNTX0w0X0NIS1NVTSAg ICAgICAgICBSVEVfQklUNjQoMzUpCgovKgogKiBXZSB1c2UgdGhlIGZvbGxvd2luZyBtYWNyb3Mg dG8gY29tYmluZSB3aXRoIGFib3ZlIEVUSF9SU1NfKiBmb3IKICogbW9yZSBzcGVjaWZpYyBpbnB1 dCBzZXQgc2VsZWN0aW9uLiBUaGVzZSBiaXRzIGFyZSBkZWZpbmVkIHN0YXJ0aW5nCiAqIGZyb20g dGhlIGhpZ2ggZW5kIG9mIHRoZSA2NCBiaXRzLgogKiBOb3RlOiBJZiB3ZSB1c2UgYWJvdmUgRVRI X1JTU18qIHdpdGhvdXQgU1JDL0RTVF9PTkxZLCBpdCByZXByZXNlbnRzCiAqIGJvdGggU1JDIGFu ZCBEU1QgYXJlIHRha2VuIGludG8gYWNjb3VudC4gSWYgU1JDX09OTFkgYW5kIERTVF9PTkxZIG9m CiAqIHRoZSBzYW1lIGxldmVsIGFyZSB1c2VkIHNpbXVsdGFuZW91c2x5LCBpdCBpcyB0aGUgc2Ft ZSBjYXNlIGFzIG5vbmUgb2YKICogdGhlbSBhcmUgYWRkZWQuCiAqLwojZGVmaW5lIEVUSF9SU1Nf TDNfU1JDX09OTFkgICAgICAgIFJURV9CSVQ2NCg2MykKI2RlZmluZSBFVEhfUlNTX0wzX0RTVF9P TkxZICAgICAgICBSVEVfQklUNjQoNjIpCiNkZWZpbmUgRVRIX1JTU19MNF9TUkNfT05MWSAgICAg ICAgUlRFX0JJVDY0KDYxKQojZGVmaW5lIEVUSF9SU1NfTDRfRFNUX09OTFkgICAgICAgIFJURV9C SVQ2NCg2MCkKI2RlZmluZSBFVEhfUlNTX0wyX1NSQ19PTkxZICAgICAgICBSVEVfQklUNjQoNTkp CiNkZWZpbmUgRVRIX1JTU19MMl9EU1RfT05MWSAgICAgICAgUlRFX0JJVDY0KDU4KQoKLyoKICog T25seSBzZWxlY3QgSVBWNiBhZGRyZXNzIHByZWZpeCBhcyBSU1MgaW5wdXQgc2V0IGFjY29yZGlu ZyB0bwogKiBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNjA1MgogKiBNdXN0IGJlIGNv bWJpbmVkIHdpdGggRVRIX1JTU19JUFY2LCBFVEhfUlNTX05PTkZSQUdfSVBWNl9VRFAsCiAqIEVU SF9SU1NfTk9ORlJBR19JUFY2X1RDUCwgRVRIX1JTU19OT05GUkFHX0lQVjZfU0NUUC4KICovCiNk ZWZpbmUgUlRFX0VUSF9SU1NfTDNfUFJFMzIJICAgUlRFX0JJVDY0KDU3KQojZGVmaW5lIFJURV9F VEhfUlNTX0wzX1BSRTQwCSAgIFJURV9CSVQ2NCg1NikKI2RlZmluZSBSVEVfRVRIX1JTU19MM19Q UkU0OAkgICBSVEVfQklUNjQoNTUpCiNkZWZpbmUgUlRFX0VUSF9SU1NfTDNfUFJFNTYJICAgUlRF X0JJVDY0KDU0KQojZGVmaW5lIFJURV9FVEhfUlNTX0wzX1BSRTY0CSAgIFJURV9CSVQ2NCg1MykK I2RlZmluZSBSVEVfRVRIX1JTU19MM19QUkU5NgkgICBSVEVfQklUNjQoNTIpCgovKgogKiBVc2Ug dGhlIGZvbGxvd2luZyBtYWNyb3MgdG8gY29tYmluZSB3aXRoIHRoZSBhYm92ZSBsYXllcnMKCmVy cm9yOiBwYXRjaCBmYWlsZWQ6IGxpYi9ldGhkZXYvcnRlX2V0aGRldi5oOjU1NApIdW5rICMxMCBz dWNjZWVkZWQgYXQgNjEwIChvZmZzZXQgLTc3IGxpbmVzKS4KZXJyb3I6IHdoaWxlIHNlYXJjaGlu ZyBmb3I6CnN0YXRpYyBpbmxpbmUgdWludDY0X3QKcnRlX2V0aF9yc3NfaGZfcmVmaW5lKHVpbnQ2 NF90IHJzc19oZikKewoJaWYgKChyc3NfaGYgJiBFVEhfUlNTX0wzX1NSQ19PTkxZKSAmJiAocnNz X2hmICYgRVRIX1JTU19MM19EU1RfT05MWSkpCgkJcnNzX2hmICY9IH4oRVRIX1JTU19MM19TUkNf T05MWSB8IEVUSF9SU1NfTDNfRFNUX09OTFkpOwoKCWlmICgocnNzX2hmICYgRVRIX1JTU19MNF9T UkNfT05MWSkgJiYgKHJzc19oZiAmIEVUSF9SU1NfTDRfRFNUX09OTFkpKQoJCXJzc19oZiAmPSB+ KEVUSF9SU1NfTDRfU1JDX09OTFkgfCBFVEhfUlNTX0w0X0RTVF9PTkxZKTsKCglyZXR1cm4gcnNz X2hmOwp9CgojZGVmaW5lIEVUSF9SU1NfSVBWNl9QUkUzMiAoIFwKCQlFVEhfUlNTX0lQVjYgfCBc CgkJUlRFX0VUSF9SU1NfTDNfUFJFMzIpCgojZGVmaW5lIEVUSF9SU1NfSVBWNl9QUkU0MCAoIFwK CQlFVEhfUlNTX0lQVjYgfCBcCgkJUlRFX0VUSF9SU1NfTDNfUFJFNDApCgojZGVmaW5lIEVUSF9S U1NfSVBWNl9QUkU0OCAoIFwKCQlFVEhfUlNTX0lQVjYgfCBcCgkJUlRFX0VUSF9SU1NfTDNfUFJF NDgpCgojZGVmaW5lIEVUSF9SU1NfSVBWNl9QUkU1NiAoIFwKCQlFVEhfUlNTX0lQVjYgfCBcCgkJ UlRFX0VUSF9SU1NfTDNfUFJFNTYpCgojZGVmaW5lIEVUSF9SU1NfSVBWNl9QUkU2NCAoIFwKCQlF VEhfUlNTX0lQVjYgfCBcCgkJUlRFX0VUSF9SU1NfTDNfUFJFNjQpCgojZGVmaW5lIEVUSF9SU1Nf SVBWNl9QUkU5NiAoIFwKCQlFVEhfUlNTX0lQVjYgfCBcCgkJUlRFX0VUSF9SU1NfTDNfUFJFOTYp CgojZGVmaW5lIEVUSF9SU1NfSVBWNl9QUkUzMl9VRFAgKCBcCgkJRVRIX1JTU19OT05GUkFHX0lQ VjZfVURQIHwgXAoJCVJURV9FVEhfUlNTX0wzX1BSRTMyKQoKI2RlZmluZSBFVEhfUlNTX0lQVjZf UFJFNDBfVURQICggXAoJCUVUSF9SU1NfTk9ORlJBR19JUFY2X1VEUCB8IFwKCQlSVEVfRVRIX1JT U19MM19QUkU0MCkKCiNkZWZpbmUgRVRIX1JTU19JUFY2X1BSRTQ4X1VEUCAoIFwKCQlFVEhfUlNT X05PTkZSQUdfSVBWNl9VRFAgfCBcCgkJUlRFX0VUSF9SU1NfTDNfUFJFNDgpCgojZGVmaW5lIEVU SF9SU1NfSVBWNl9QUkU1Nl9VRFAgKCBcCgkJRVRIX1JTU19OT05GUkFHX0lQVjZfVURQIHwgXAoJ CVJURV9FVEhfUlNTX0wzX1BSRTU2KQoKI2RlZmluZSBFVEhfUlNTX0lQVjZfUFJFNjRfVURQICgg XAoJCUVUSF9SU1NfTk9ORlJBR19JUFY2X1VEUCB8IFwKCQlSVEVfRVRIX1JTU19MM19QUkU2NCkK CiNkZWZpbmUgRVRIX1JTU19JUFY2X1BSRTk2X1VEUCAoIFwKCQlFVEhfUlNTX05PTkZSQUdfSVBW Nl9VRFAgfCBcCgkJUlRFX0VUSF9SU1NfTDNfUFJFOTYpCgojZGVmaW5lIEVUSF9SU1NfSVBWNl9Q UkUzMl9UQ1AgKCBcCgkJRVRIX1JTU19OT05GUkFHX0lQVjZfVENQIHwgXAoJCVJURV9FVEhfUlNT X0wzX1BSRTMyKQoKI2RlZmluZSBFVEhfUlNTX0lQVjZfUFJFNDBfVENQICggXAoJCUVUSF9SU1Nf Tk9ORlJBR19JUFY2X1RDUCB8IFwKCQlSVEVfRVRIX1JTU19MM19QUkU0MCkKCiNkZWZpbmUgRVRI X1JTU19JUFY2X1BSRTQ4X1RDUCAoIFwKCQlFVEhfUlNTX05PTkZSQUdfSVBWNl9UQ1AgfCBcCgkJ UlRFX0VUSF9SU1NfTDNfUFJFNDgpCgojZGVmaW5lIEVUSF9SU1NfSVBWNl9QUkU1Nl9UQ1AgKCBc CgkJRVRIX1JTU19OT05GUkFHX0lQVjZfVENQIHwgXAoJCVJURV9FVEhfUlNTX0wzX1BSRTU2KQoK I2RlZmluZSBFVEhfUlNTX0lQVjZfUFJFNjRfVENQICggXAoJCUVUSF9SU1NfTk9ORlJBR19JUFY2 X1RDUCB8IFwKCQlSVEVfRVRIX1JTU19MM19QUkU2NCkKCiNkZWZpbmUgRVRIX1JTU19JUFY2X1BS RTk2X1RDUCAoIFwKCQlFVEhfUlNTX05PTkZSQUdfSVBWNl9UQ1AgfCBcCgkJUlRFX0VUSF9SU1Nf TDNfUFJFOTYpCgojZGVmaW5lIEVUSF9SU1NfSVBWNl9QUkUzMl9TQ1RQICggXAoJCUVUSF9SU1Nf Tk9ORlJBR19JUFY2X1NDVFAgfCBcCgkJUlRFX0VUSF9SU1NfTDNfUFJFMzIpCgojZGVmaW5lIEVU SF9SU1NfSVBWNl9QUkU0MF9TQ1RQICggXAoJCUVUSF9SU1NfTk9ORlJBR19JUFY2X1NDVFAgfCBc CgkJUlRFX0VUSF9SU1NfTDNfUFJFNDApCgojZGVmaW5lIEVUSF9SU1NfSVBWNl9QUkU0OF9TQ1RQ ICggXAoJCUVUSF9SU1NfTk9ORlJBR19JUFY2X1NDVFAgfCBcCgkJUlRFX0VUSF9SU1NfTDNfUFJF NDgpCgojZGVmaW5lIEVUSF9SU1NfSVBWNl9QUkU1Nl9TQ1RQICggXAoJCUVUSF9SU1NfTk9ORlJB R19JUFY2X1NDVFAgfCBcCgkJUlRFX0VUSF9SU1NfTDNfUFJFNTYpCgojZGVmaW5lIEVUSF9SU1Nf SVBWNl9QUkU2NF9TQ1RQICggXAoJCUVUSF9SU1NfTk9ORlJBR19JUFY2X1NDVFAgfCBcCgkJUlRF X0VUSF9SU1NfTDNfUFJFNjQpCgojZGVmaW5lIEVUSF9SU1NfSVBWNl9QUkU5Nl9TQ1RQICggXAoJ CUVUSF9SU1NfTk9ORlJBR19JUFY2X1NDVFAgfCBcCgkJUlRFX0VUSF9SU1NfTDNfUFJFOTYpCgoj ZGVmaW5lIEVUSF9SU1NfSVAgKCBcCglFVEhfUlNTX0lQVjQgfCBcCglFVEhfUlNTX0ZSQUdfSVBW NCB8IFwKCUVUSF9SU1NfTk9ORlJBR19JUFY0X09USEVSIHwgXAoJRVRIX1JTU19JUFY2IHwgXAoJ RVRIX1JTU19GUkFHX0lQVjYgfCBcCglFVEhfUlNTX05PTkZSQUdfSVBWNl9PVEhFUiB8IFwKCUVU SF9SU1NfSVBWNl9FWCkKCiNkZWZpbmUgRVRIX1JTU19VRFAgKCBcCglFVEhfUlNTX05PTkZSQUdf SVBWNF9VRFAgfCBcCglFVEhfUlNTX05PTkZSQUdfSVBWNl9VRFAgfCBcCglFVEhfUlNTX0lQVjZf VURQX0VYKQoKI2RlZmluZSBFVEhfUlNTX1RDUCAoIFwKCUVUSF9SU1NfTk9ORlJBR19JUFY0X1RD UCB8IFwKCUVUSF9SU1NfTk9ORlJBR19JUFY2X1RDUCB8IFwKCUVUSF9SU1NfSVBWNl9UQ1BfRVgp CgojZGVmaW5lIEVUSF9SU1NfU0NUUCAoIFwKCUVUSF9SU1NfTk9ORlJBR19JUFY0X1NDVFAgfCBc CglFVEhfUlNTX05PTkZSQUdfSVBWNl9TQ1RQKQoKI2RlZmluZSBFVEhfUlNTX1RVTk5FTCAoIFwK CUVUSF9SU1NfVlhMQU4gIHwgXAoJRVRIX1JTU19HRU5FVkUgfCBcCglFVEhfUlNTX05WR1JFKQoK I2RlZmluZSBFVEhfUlNTX1ZMQU4gKCBcCglFVEhfUlNTX1NfVkxBTiAgfCBcCglFVEhfUlNTX0Nf VkxBTikKCi8qKiBNYXNrIG9mIHZhbGlkIFJTUyBoYXNoIHByb3RvY29scyAqLwojZGVmaW5lIEVU SF9SU1NfUFJPVE9fTUFTSyAoIFwKCUVUSF9SU1NfSVBWNCB8IFwKCUVUSF9SU1NfRlJBR19JUFY0 IHwgXAoJRVRIX1JTU19OT05GUkFHX0lQVjRfVENQIHwgXAoJRVRIX1JTU19OT05GUkFHX0lQVjRf VURQIHwgXAoJRVRIX1JTU19OT05GUkFHX0lQVjRfU0NUUCB8IFwKCUVUSF9SU1NfTk9ORlJBR19J UFY0X09USEVSIHwgXAoJRVRIX1JTU19JUFY2IHwgXAoJRVRIX1JTU19GUkFHX0lQVjYgfCBcCglF VEhfUlNTX05PTkZSQUdfSVBWNl9UQ1AgfCBcCglFVEhfUlNTX05PTkZSQUdfSVBWNl9VRFAgfCBc CglFVEhfUlNTX05PTkZSQUdfSVBWNl9TQ1RQIHwgXAoJRVRIX1JTU19OT05GUkFHX0lQVjZfT1RI RVIgfCBcCglFVEhfUlNTX0wyX1BBWUxPQUQgfCBcCglFVEhfUlNTX0lQVjZfRVggfCBcCglFVEhf UlNTX0lQVjZfVENQX0VYIHwgXAoJRVRIX1JTU19JUFY2X1VEUF9FWCB8IFwKCUVUSF9SU1NfUE9S VCAgfCBcCglFVEhfUlNTX1ZYTEFOIHwgXAoJRVRIX1JTU19HRU5FVkUgfCBcCglFVEhfUlNTX05W R1JFIHwgXAoJRVRIX1JTU19NUExTKQoKLyoKICogRGVmaW5pdGlvbnMgdXNlZCBmb3IgcmVkaXJl Y3Rpb24gdGFibGUgZW50cnkgc2l6ZS4KICogU29tZSBSU1MgUkVUQSBzaXplcyBtYXkgbm90IGJl IHN1cHBvcnRlZCBieSBzb21lIGRyaXZlcnMsIGNoZWNrIHRoZQogKiBkb2N1bWVudGF0aW9uIG9y IHRoZSBkZXNjcmlwdGlvbiBvZiByZWxldmFudCBmdW5jdGlvbnMgZm9yIG1vcmUgZGV0YWlscy4K ICovCiNkZWZpbmUgRVRIX1JTU19SRVRBX1NJWkVfNjQgIDY0CiNkZWZpbmUgRVRIX1JTU19SRVRB X1NJWkVfMTI4IDEyOAojZGVmaW5lIEVUSF9SU1NfUkVUQV9TSVpFXzI1NiAyNTYKI2RlZmluZSBF VEhfUlNTX1JFVEFfU0laRV81MTIgNTEyCiNkZWZpbmUgUlRFX1JFVEFfR1JPVVBfU0laRSAgIDY0 CgovKipAe0BuYW1lIFZNRHEgYW5kIERDQiBtYXhpbXVtcwplcnJvcjogcGF0Y2ggZmFpbGVkOiBs aWIvZXRoZGV2L3J0ZV9ldGhkZXYuaDo2MzMKZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6Cgkv KiogTWFzayBiaXRzIGluZGljYXRlIHdoaWNoIGVudHJpZXMgbmVlZCB0byBiZSB1cGRhdGVkL3F1 ZXJpZWQuICovCgl1aW50NjRfdCBtYXNrOwoJLyoqIEdyb3VwIG9mIDY0IHJlZGlyZWN0aW9uIHRh YmxlIGVudHJpZXMuICovCgl1aW50MTZfdCByZXRhW1JURV9SRVRBX0dST1VQX1NJWkVdOwp9OwoK LyoqCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBsaWIvZXRoZGV2L3J0ZV9ldGhkZXYuaDo4NTYKZXJy b3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CiAqIGluIERDQiBjb25maWd1cmF0aW9ucwogKi8KZW51 bSBydGVfZXRoX25iX3RjcyB7CglFVEhfNF9UQ1MgPSA0LCAvKio8IDQgVENzIHdpdGggRENCLiAq LwoJRVRIXzhfVENTID0gOCAgLyoqPCA4IFRDcyB3aXRoIERDQi4gKi8KfTsKCi8qKgogKiBUaGlz IGVudW0gaW5kaWNhdGVzIHRoZSBwb3NzaWJsZSBudW1iZXIgb2YgcXVldWUgcG9vbHMKICogaW4g Vk1EcSBjb25maWd1cmF0aW9ucy4KICovCmVudW0gcnRlX2V0aF9uYl9wb29scyB7CglFVEhfOF9Q T09MUyA9IDgsICAgIC8qKjwgOCBWTURxIHBvb2xzLiAqLwoJRVRIXzE2X1BPT0xTID0gMTYsICAv Kio8IDE2IFZNRHEgcG9vbHMuICovCglFVEhfMzJfUE9PTFMgPSAzMiwgIC8qKjwgMzIgVk1EcSBw b29scy4gKi8KCUVUSF82NF9QT09MUyA9IDY0ICAgLyoqPCA2NCBWTURxIHBvb2xzLiAqLwp9OwoK LyogVGhpcyBzdHJ1Y3R1cmUgbWF5IGJlIGV4dGVuZGVkIGluIGZ1dHVyZS4gKi8Kc3RydWN0IHJ0 ZV9ldGhfZGNiX3J4X2NvbmYgewoJZW51bSBydGVfZXRoX25iX3RjcyBuYl90Y3M7IC8qKjwgUG9z c2libGUgRENCIFRDcywgNCBvciA4IFRDcyAqLwoJLyoqIFRyYWZmaWMgY2xhc3MgZWFjaCBVUCBt YXBwZWQgdG8uICovCgl1aW50OF90IGRjYl90Y1tFVEhfRENCX05VTV9VU0VSX1BSSU9SSVRJRVNd Owp9OwoKc3RydWN0IHJ0ZV9ldGhfdm1kcV9kY2JfdHhfY29uZiB7CgllbnVtIHJ0ZV9ldGhfbmJf cG9vbHMgbmJfcXVldWVfcG9vbHM7IC8qKjwgV2l0aCBEQ0IsIDE2IG9yIDMyIHBvb2xzLiAqLwoJ LyoqIFRyYWZmaWMgY2xhc3MgZWFjaCBVUCBtYXBwZWQgdG8uICovCgl1aW50OF90IGRjYl90Y1tF VEhfRENCX05VTV9VU0VSX1BSSU9SSVRJRVNdOwp9OwoKc3RydWN0IHJ0ZV9ldGhfZGNiX3R4X2Nv bmYgewoJZW51bSBydGVfZXRoX25iX3RjcyBuYl90Y3M7IC8qKjwgUG9zc2libGUgRENCIFRDcywg NCBvciA4IFRDcy4gKi8KCS8qKiBUcmFmZmljIGNsYXNzIGVhY2ggVVAgbWFwcGVkIHRvLiAqLwoJ dWludDhfdCBkY2JfdGNbRVRIX0RDQl9OVU1fVVNFUl9QUklPUklUSUVTXTsKfTsKCnN0cnVjdCBy dGVfZXRoX3ZtZHFfdHhfY29uZiB7CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBsaWIvZXRoZGV2L3J0 ZV9ldGhkZXYuaDo4NjQKZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CglzdHJ1Y3QgewoJCXVp bnQxNl90IHZsYW5faWQ7IC8qKjwgVGhlIFZMQU4gSUQgb2YgdGhlIHJlY2VpdmVkIGZyYW1lICov CgkJdWludDY0X3QgcG9vbHM7ICAgLyoqPCBCaXRtYXNrIG9mIHBvb2xzIGZvciBwYWNrZXQgUngg Ki8KCX0gcG9vbF9tYXBbRVRIX1ZNRFFfTUFYX1ZMQU5fRklMVEVSU107IC8qKjwgVk1EcSBWTEFO IHBvb2wgbWFwcy4gKi8KCS8qKiBTZWxlY3RzIGEgcXVldWUgaW4gYSBwb29sICovCgl1aW50OF90 IGRjYl90Y1tFVEhfRENCX05VTV9VU0VSX1BSSU9SSVRJRVNdOwp9OwoKLyoqCgplcnJvcjogcGF0 Y2ggZmFpbGVkOiBsaWIvZXRoZGV2L3J0ZV9ldGhkZXYuaDo5MjEKZXJyb3I6IHdoaWxlIHNlYXJj aGluZyBmb3I6CiAqIFVzaW5nIHRoaXMgZmVhdHVyZSwgcGFja2V0cyBhcmUgcm91dGVkIHRvIGEg cG9vbCBvZiBxdWV1ZXMuIEJ5IGRlZmF1bHQsCiAqIHRoZSBwb29sIHNlbGVjdGlvbiBpcyBiYXNl ZCBvbiB0aGUgTUFDIGFkZHJlc3MsIHRoZSBWTEFOIElEIGluIHRoZQogKiBWTEFOIHRhZyBhcyBz cGVjaWZpZWQgaW4gdGhlIHBvb2xfbWFwIGFycmF5LgogKiBQYXNzaW5nIHRoZSBFVEhfVk1EUV9B Q0NFUFRfVU5UQUcgaW4gdGhlIHJ4X21vZGUgZmllbGQgYWxsb3dzIHBvb2wKICogc2VsZWN0aW9u IHVzaW5nIG9ubHkgdGhlIE1BQyBhZGRyZXNzLiBNQUMgYWRkcmVzcyB0byBwb29sIG1hcHBpbmcg aXMgZG9uZQogKiB1c2luZyB0aGUgcnRlX2V0aF9kZXZfbWFjX2FkZHJfYWRkIGZ1bmN0aW9uLCB3 aXRoIHRoZSBwb29sIHBhcmFtZXRlcgogKiBjb3JyZXNwb25kaW5nIHRvIHRoZSBwb29sIElELgoK ZXJyb3I6IHBhdGNoIGZhaWxlZDogbGliL2V0aGRldi9ydGVfZXRoZGV2Lmg6OTMzCmVycm9yOiB3 aGlsZSBzZWFyY2hpbmcgZm9yOgoJc3RydWN0IHsKCQl1aW50MTZfdCB2bGFuX2lkOyAvKio8IFRo ZSBWTEFOIElEIG9mIHRoZSByZWNlaXZlZCBmcmFtZSAqLwoJCXVpbnQ2NF90IHBvb2xzOyAgIC8q KjwgQml0bWFzayBvZiBwb29scyBmb3IgcGFja2V0IFJ4ICovCgl9IHBvb2xfbWFwW0VUSF9WTURR X01BWF9WTEFOX0ZJTFRFUlNdOyAvKio8IFZNRHEgVkxBTiBwb29sIG1hcHMuICovCn07CgovKioK CmVycm9yOiBwYXRjaCBmYWlsZWQ6IGxpYi9ldGhkZXYvcnRlX2V0aGRldi5oOjk1NAplcnJvcjog d2hpbGUgc2VhcmNoaW5nIGZvcjoKc3RydWN0IHJ0ZV9ldGhfdHhtb2RlIHsKCWVudW0gcnRlX2V0 aF90eF9tcV9tb2RlIG1xX21vZGU7IC8qKjwgVHggbXVsdGktcXVldWVzIG1vZGUuICovCgkvKioK CSAqIFBlci1wb3J0IFR4IG9mZmxvYWRzIHRvIGJlIHNldCB1c2luZyBERVZfVFhfT0ZGTE9BRF8q IGZsYWdzLgoJICogT25seSBvZmZsb2FkcyBzZXQgb24gdHhfb2ZmbG9hZF9jYXBhIGZpZWxkIG9u IHJ0ZV9ldGhfZGV2X2luZm8KCSAqIHN0cnVjdHVyZSBhcmUgYWxsb3dlZCB0byBiZSBzZXQuCgkg Ki8KCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGxpYi9ldGhkZXYvcnRlX2V0aGRldi5oOjk2MwplcnJv cjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCXVpbnQxNl90IHNoYXJlX2dyb3VwOwoJdWludDE2X3Qg c2hhcmVfcWlkOyAvKio8IFNoYXJlZCBSeCBxdWV1ZSBJRCBpbiBncm91cCAqLwoJLyoqCgkgKiBQ ZXItcXVldWUgUnggb2ZmbG9hZHMgdG8gYmUgc2V0IHVzaW5nIERFVl9SWF9PRkZMT0FEXyogZmxh Z3MuCgkgKiBPbmx5IG9mZmxvYWRzIHNldCBvbiByeF9xdWV1ZV9vZmZsb2FkX2NhcGEgb3Igcnhf b2ZmbG9hZF9jYXBhCgkgKiBmaWVsZHMgb24gcnRlX2V0aF9kZXZfaW5mbyBzdHJ1Y3R1cmUgYXJl IGFsbG93ZWQgdG8gYmUgc2V0LgoJICovCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBsaWIvZXRoZGV2 L3J0ZV9ldGhkZXYuaDoxMDU1Ckh1bmsgIzE5IHN1Y2NlZWRlZCBhdCAxMDg4IChvZmZzZXQgLTE4 NCBsaW5lcykuCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgogKiBUaGlzIGVudW0gaW5kaWNh dGVzIHRoZSBmbG93IGNvbnRyb2wgbW9kZQogKi8KZW51bSBydGVfZXRoX2ZjX21vZGUgewoJUlRF X0ZDX05PTkUgPSAwLCAvKio8IERpc2FibGUgZmxvdyBjb250cm9sLiAqLwoJUlRFX0ZDX1JYX1BB VVNFLCAvKio8IFJ4IHBhdXNlIGZyYW1lLCBlbmFibGUgZmxvd2N0cmwgb24gVHggc2lkZS4gKi8K CVJURV9GQ19UWF9QQVVTRSwgLyoqPCBUeCBwYXVzZSBmcmFtZSwgZW5hYmxlIGZsb3djdHJsIG9u IFJ4IHNpZGUuICovCglSVEVfRkNfRlVMTCAgICAgIC8qKjwgRW5hYmxlIGZsb3cgY29udHJvbCBv biBib3RoIHNpZGUuICovCn07CgovKioKICogQSBzdHJ1Y3R1cmUgdXNlZCB0byBjb25maWd1cmUg RXRoZXJuZXQgZmxvdyBjb250cm9sIHBhcmFtZXRlci4KICogVGhlc2UgcGFyYW1ldGVycyB3aWxs IGJlIGNvbmZpZ3VyZWQgaW50byB0aGUgcmVnaXN0ZXIgb2YgdGhlIE5JQy4KCmVycm9yOiBwYXRj aCBmYWlsZWQ6IGxpYi9ldGhkZXYvcnRlX2V0aGRldi5oOjExOTUKSHVuayAjMjEgc3VjY2VlZGVk IGF0IDEyMzUgKG9mZnNldCAtMTg5IGxpbmVzKS4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6 CiAqICBNZW1vcnkgc3BhY2UgdGhhdCBjYW4gYmUgY29uZmlndXJlZCB0byBzdG9yZSBGbG93IERp cmVjdG9yIGZpbHRlcnMKICogIGluIHRoZSBib2FyZCBtZW1vcnkuCiAqLwplbnVtIHJ0ZV9mZGly X3BiYWxsb2NfdHlwZSB7CglSVEVfRkRJUl9QQkFMTE9DXzY0SyA9IDAsICAvKio8IDY0ay4gKi8K CVJURV9GRElSX1BCQUxMT0NfMTI4SywgICAgIC8qKjwgMTI4ay4gKi8KCVJURV9GRElSX1BCQUxM T0NfMjU2SywgICAgIC8qKjwgMjU2ay4gKi8KfTsKCi8qKgogKiAgU2VsZWN0IHJlcG9ydCBtb2Rl IG9mIEZESVIgaGFzaCBpbmZvcm1hdGlvbiBpbiBSeCBkZXNjcmlwdG9ycy4KCmVycm9yOiBwYXRj aCBmYWlsZWQ6IGxpYi9ldGhkZXYvcnRlX2V0aGRldi5oOjEyNTAKZXJyb3I6IHdoaWxlIHNlYXJj aGluZyBmb3I6CiAqCiAqIElmIG1vZGUgaXMgUlRFX0ZESVJfTU9ERV9OT05FLCB0aGUgcGJhbGxv YyB2YWx1ZSBpcyBpZ25vcmVkLgogKi8Kc3RydWN0IHJ0ZV9mZGlyX2NvbmYgewoJZW51bSBydGVf ZmRpcl9tb2RlIG1vZGU7IC8qKjwgRmxvdyBEaXJlY3RvciBtb2RlLiAqLwoJZW51bSBydGVfZmRp cl9wYmFsbG9jX3R5cGUgcGJhbGxvYzsgLyoqPCBTcGFjZSBmb3IgRkRJUiBmaWx0ZXJzLiAqLwoJ ZW51bSBydGVfZmRpcl9zdGF0dXNfbW9kZSBzdGF0dXM7ICAvKio8IEhvdyB0byByZXBvcnQgRkRJ UiBoYXNoLiAqLwoJLyoqIFJ4IHF1ZXVlIG9mIHBhY2tldHMgbWF0Y2hpbmcgYSAiZHJvcCIgZmls dGVyIGluIHBlcmZlY3QgbW9kZS4gKi8KCXVpbnQ4X3QgZHJvcF9xdWV1ZTsKCmVycm9yOiBwYXRj aCBmYWlsZWQ6IGxpYi9ldGhkZXYvcnRlX2V0aGRldi5oOjEyNzEKZXJyb3I6IHdoaWxlIHNlYXJj aGluZyBmb3I6CglzdHJ1Y3QgcnRlX2V0aF9mZGlyX2ZsZXhfY29uZiBmbGV4X2NvbmY7Cn07Cgov KioKICogVURQIHR1bm5lbGluZyBjb25maWd1cmF0aW9uLgogKgoKZXJyb3I6IHBhdGNoIGZhaWxl ZDogbGliL2V0aGRldi9ydGVfZXRoZGV2Lmg6MTI4MgpIdW5rICMyNSBzdWNjZWVkZWQgYXQgMTMx NCAob2Zmc2V0IC0xOTYgbGluZXMpLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCXVpbnQz Ml90IHJtdjoxOwp9OwoKLyoqCiAqIEEgc3RydWN0dXJlIHVzZWQgdG8gY29uZmlndXJlIGFuIEV0 aGVybmV0IHBvcnQuCiAqIERlcGVuZGluZyB1cG9uIHRoZSBSeCBtdWx0aS1xdWV1ZSBtb2RlLCBl eHRyYSBhZHZhbmNlZAogKiBjb25maWd1cmF0aW9uIHNldHRpbmdzIG1heSBiZSBuZWVkZWQuCiAq LwpzdHJ1Y3QgcnRlX2V0aF9jb25mIHsKCXVpbnQzMl90IGxpbmtfc3BlZWRzOyAvKio8IGJpdG1h cCBvZiBFVEhfTElOS19TUEVFRF9YWFggb2Ygc3BlZWRzIHRvIGJlCgkJCQl1c2VkLiBFVEhfTElO S19TUEVFRF9GSVhFRCBkaXNhYmxlcyBsaW5rCgkJCQlhdXRvbmVnb3RpYXRpb24sIGFuZCBhIHVu aXF1ZSBzcGVlZCBzaGFsbCBiZQoJCQkJc2V0LiBPdGhlcndpc2UsIHRoZSBiaXRtYXAgZGVmaW5l cyB0aGUgc2V0IG9mCgkJCQlzcGVlZHMgdG8gYmUgYWR2ZXJ0aXNlZC4gSWYgdGhlIHNwZWNpYWwg dmFsdWUKCQkJCUVUSF9MSU5LX1NQRUVEX0FVVE9ORUcgKDApIGlzIHVzZWQsIGFsbCBzcGVlZHMK CQkJCXN1cHBvcnRlZCBhcmUgYWR2ZXJ0aXNlZC4gKi8KCXN0cnVjdCBydGVfZXRoX3J4bW9kZSBy eG1vZGU7IC8qKjwgUG9ydCBSeCBjb25maWd1cmF0aW9uLiAqLwoJc3RydWN0IHJ0ZV9ldGhfdHht b2RlIHR4bW9kZTsgLyoqPCBQb3J0IFR4IGNvbmZpZ3VyYXRpb24uICovCgplcnJvcjogcGF0Y2gg ZmFpbGVkOiBsaWIvZXRoZGV2L3J0ZV9ldGhkZXYuaDoxMzA4CmVycm9yOiB3aGlsZSBzZWFyY2hp bmcgZm9yOgoJCXN0cnVjdCBydGVfZXRoX3ZtZHFfdHhfY29uZiB2bWRxX3R4X2NvbmY7Cgl9IHR4 X2Fkdl9jb25mOyAvKio8IFBvcnQgVHggRENCIGNvbmZpZ3VyYXRpb24gKHVuaW9uKS4gKi8KCS8q KiBDdXJyZW50bHksUHJpb3JpdHkgRmxvdyBDb250cm9sKFBGQykgYXJlIHN1cHBvcnRlZCxpZiBE Q0Igd2l0aCBQRkMKCSAgICBpcyBuZWVkZWQsYW5kIHRoZSB2YXJpYWJsZSBtdXN0IGJlIHNldCBF VEhfRENCX1BGQ19TVVBQT1JULiAqLwoJdWludDMyX3QgZGNiX2NhcGFiaWxpdHlfZW47CglzdHJ1 Y3QgcnRlX2ZkaXJfY29uZiBmZGlyX2NvbmY7IC8qKjwgRkRJUiBjb25maWd1cmF0aW9uLiBERVBS RUNBVEVEICovCglzdHJ1Y3QgcnRlX2ludHJfY29uZiBpbnRyX2NvbmY7IC8qKjwgSW50ZXJydXB0 IG1vZGUgY29uZmlndXJhdGlvbi4gKi8KfTsKCi8qKgogKiBSeCBvZmZsb2FkIGNhcGFiaWxpdGll cyBvZiBhIGRldmljZS4KICovCiNkZWZpbmUgREVWX1JYX09GRkxPQURfVkxBTl9TVFJJUCAgMHgw MDAwMDAwMQojZGVmaW5lIERFVl9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0gIDB4MDAwMDAwMDIKI2Rl ZmluZSBERVZfUlhfT0ZGTE9BRF9VRFBfQ0tTVU0gICAweDAwMDAwMDA0CiNkZWZpbmUgREVWX1JY X09GRkxPQURfVENQX0NLU1VNICAgMHgwMDAwMDAwOAojZGVmaW5lIERFVl9SWF9PRkZMT0FEX1RD UF9MUk8gICAgIDB4MDAwMDAwMTAKI2RlZmluZSBERVZfUlhfT0ZGTE9BRF9RSU5RX1NUUklQICAw eDAwMDAwMDIwCiNkZWZpbmUgREVWX1JYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTSAweDAwMDAw MDQwCiNkZWZpbmUgREVWX1JYX09GRkxPQURfTUFDU0VDX1NUUklQICAgICAweDAwMDAwMDgwCiNk ZWZpbmUgREVWX1JYX09GRkxPQURfSEVBREVSX1NQTElUCTB4MDAwMDAxMDAKI2RlZmluZSBERVZf UlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUgkweDAwMDAwMjAwCiNkZWZpbmUgREVWX1JYX09GRkxPQURf VkxBTl9FWFRFTkQJMHgwMDAwMDQwMAojZGVmaW5lIERFVl9SWF9PRkZMT0FEX1NDQVRURVIJCTB4 MDAwMDIwMDAKLyoqCiAqIFRpbWVzdGFtcCBpcyBzZXQgYnkgdGhlIGRyaXZlciBpbiBSVEVfTUJV Rl9EWU5GSUVMRF9USU1FU1RBTVBfTkFNRQogKiBhbmQgUlRFX01CVUZfRFlORkxBR19SWF9USU1F U1RBTVBfTkFNRSBpcyBzZXQgaW4gb2xfZmxhZ3MuCiAqIFRoZSBtYnVmIGZpZWxkIGFuZCBmbGFn IGFyZSByZWdpc3RlcmVkIHdoZW4gdGhlIG9mZmxvYWQgaXMgY29uZmlndXJlZC4KICovCiNkZWZp bmUgREVWX1JYX09GRkxPQURfVElNRVNUQU1QCTB4MDAwMDQwMDAKI2RlZmluZSBERVZfUlhfT0ZG TE9BRF9TRUNVUklUWSAgICAgICAgIDB4MDAwMDgwMDAKI2RlZmluZSBERVZfUlhfT0ZGTE9BRF9L RUVQX0NSQwkJMHgwMDAxMDAwMAojZGVmaW5lIERFVl9SWF9PRkZMT0FEX1NDVFBfQ0tTVU0JMHgw MDAyMDAwMAojZGVmaW5lIERFVl9SWF9PRkZMT0FEX09VVEVSX1VEUF9DS1NVTSAgMHgwMDA0MDAw MAojZGVmaW5lIERFVl9SWF9PRkZMT0FEX1JTU19IQVNICQkweDAwMDgwMDAwCiNkZWZpbmUgUlRF X0VUSF9SWF9PRkZMT0FEX0JVRkZFUl9TUExJVCAweDAwMTAwMDAwCgojZGVmaW5lIERFVl9SWF9P RkZMT0FEX0NIRUNLU1VNIChERVZfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwgXAoJCQkJIERFVl9S WF9PRkZMT0FEX1VEUF9DS1NVTSB8IFwKCQkJCSBERVZfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0pCiNk ZWZpbmUgREVWX1JYX09GRkxPQURfVkxBTiAoREVWX1JYX09GRkxPQURfVkxBTl9TVFJJUCB8IFwK CQkJICAgICBERVZfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUiB8IFwKCQkJICAgICBERVZfUlhfT0ZG TE9BRF9WTEFOX0VYVEVORCB8IFwKCQkJICAgICBERVZfUlhfT0ZGTE9BRF9RSU5RX1NUUklQKQoK LyoKICogSWYgbmV3IFJ4IG9mZmxvYWQgY2FwYWJpbGl0aWVzIGFyZSBkZWZpbmVkLCB0aGV5IGFs c28gbXVzdCBiZQoKZXJyb3I6IHBhdGNoIGZhaWxlZDogbGliL2V0aGRldi9ydGVfZXRoZGV2Lmg6 MTM0NgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKLyoqCiAqIFR4IG9mZmxvYWQgY2FwYWJp bGl0aWVzIG9mIGEgZGV2aWNlLgogKi8KI2RlZmluZSBERVZfVFhfT0ZGTE9BRF9WTEFOX0lOU0VS VCAweDAwMDAwMDAxCiNkZWZpbmUgREVWX1RYX09GRkxPQURfSVBWNF9DS1NVTSAgMHgwMDAwMDAw MgojZGVmaW5lIERFVl9UWF9PRkZMT0FEX1VEUF9DS1NVTSAgIDB4MDAwMDAwMDQKI2RlZmluZSBE RVZfVFhfT0ZGTE9BRF9UQ1BfQ0tTVU0gICAweDAwMDAwMDA4CiNkZWZpbmUgREVWX1RYX09GRkxP QURfU0NUUF9DS1NVTSAgMHgwMDAwMDAxMAojZGVmaW5lIERFVl9UWF9PRkZMT0FEX1RDUF9UU08g ICAgIDB4MDAwMDAwMjAKI2RlZmluZSBERVZfVFhfT0ZGTE9BRF9VRFBfVFNPICAgICAweDAwMDAw MDQwCiNkZWZpbmUgREVWX1RYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTSAweDAwMDAwMDgwIC8q KjwgVXNlZCBmb3IgdHVubmVsaW5nIHBhY2tldC4gKi8KI2RlZmluZSBERVZfVFhfT0ZGTE9BRF9R SU5RX0lOU0VSVCAweDAwMDAwMTAwCiNkZWZpbmUgREVWX1RYX09GRkxPQURfVlhMQU5fVE5MX1RT TyAgICAweDAwMDAwMjAwICAgIC8qKjwgVXNlZCBmb3IgdHVubmVsaW5nIHBhY2tldC4gKi8KI2Rl ZmluZSBERVZfVFhfT0ZGTE9BRF9HUkVfVE5MX1RTTyAgICAgIDB4MDAwMDA0MDAgICAgLyoqPCBV c2VkIGZvciB0dW5uZWxpbmcgcGFja2V0LiAqLwojZGVmaW5lIERFVl9UWF9PRkZMT0FEX0lQSVBf VE5MX1RTTyAgICAgMHgwMDAwMDgwMCAgICAvKio8IFVzZWQgZm9yIHR1bm5lbGluZyBwYWNrZXQu ICovCiNkZWZpbmUgREVWX1RYX09GRkxPQURfR0VORVZFX1ROTF9UU08gICAweDAwMDAxMDAwICAg IC8qKjwgVXNlZCBmb3IgdHVubmVsaW5nIHBhY2tldC4gKi8KI2RlZmluZSBERVZfVFhfT0ZGTE9B RF9NQUNTRUNfSU5TRVJUICAgIDB4MDAwMDIwMDAKLyoqCiAqIE11bHRpcGxlIHRocmVhZHMgY2Fu IGludm9rZSBydGVfZXRoX3R4X2J1cnN0KCkgY29uY3VycmVudGx5IG9uIHRoZSBzYW1lCiAqIFR4 IHF1ZXVlIHdpdGhvdXQgU1cgbG9jay4KICovCiNkZWZpbmUgREVWX1RYX09GRkxPQURfTVRfTE9D S0ZSRUUgICAgICAweDAwMDA0MDAwCi8qKiBEZXZpY2Ugc3VwcG9ydHMgbXVsdGkgc2VnbWVudCBz ZW5kLiAqLwojZGVmaW5lIERFVl9UWF9PRkZMT0FEX01VTFRJX1NFR1MJMHgwMDAwODAwMAovKioK ICogRGV2aWNlIHN1cHBvcnRzIG9wdGltaXphdGlvbiBmb3IgZmFzdCByZWxlYXNlIG9mIG1idWZz LgogKiBXaGVuIHNldCBhcHBsaWNhdGlvbiBtdXN0IGd1YXJhbnRlZSB0aGF0IHBlci1xdWV1ZSBh bGwgbWJ1ZnMgY29tZXMgZnJvbQogKiB0aGUgc2FtZSBtZW1wb29sIGFuZCBoYXMgcmVmY250ID0g MS4KICovCiNkZWZpbmUgREVWX1RYX09GRkxPQURfTUJVRl9GQVNUX0ZSRUUJMHgwMDAxMDAwMAoj ZGVmaW5lIERFVl9UWF9PRkZMT0FEX1NFQ1VSSVRZICAgICAgICAgMHgwMDAyMDAwMAovKioKICog RGV2aWNlIHN1cHBvcnRzIGdlbmVyaWMgVURQIHR1bm5lbGVkIHBhY2tldCBUU08uCiAqIEFwcGxp Y2F0aW9uIG11c3Qgc2V0IFBLVF9UWF9UVU5ORUxfVURQIGFuZCBvdGhlciBtYnVmIGZpZWxkcyBy ZXF1aXJlZAogKiBmb3IgdHVubmVsIFRTTy4KICovCiNkZWZpbmUgREVWX1RYX09GRkxPQURfVURQ X1ROTF9UU08gICAgICAweDAwMDQwMDAwCi8qKgogKiBEZXZpY2Ugc3VwcG9ydHMgZ2VuZXJpYyBJ UCB0dW5uZWxlZCBwYWNrZXQgVFNPLgogKiBBcHBsaWNhdGlvbiBtdXN0IHNldCBQS1RfVFhfVFVO TkVMX0lQIGFuZCBvdGhlciBtYnVmIGZpZWxkcyByZXF1aXJlZAogKiBmb3IgdHVubmVsIFRTTy4K ICovCiNkZWZpbmUgREVWX1RYX09GRkxPQURfSVBfVE5MX1RTTyAgICAgICAweDAwMDgwMDAwCi8q KiBEZXZpY2Ugc3VwcG9ydHMgb3V0ZXIgVURQIGNoZWNrc3VtICovCiNkZWZpbmUgREVWX1RYX09G RkxPQURfT1VURVJfVURQX0NLU1VNICAweDAwMTAwMDAwCi8qKgogKiBEZXZpY2Ugc2VuZHMgb24g dGltZSByZWFkIGZyb20gUlRFX01CVUZfRFlORklFTERfVElNRVNUQU1QX05BTUUKICogaWYgUlRF X01CVUZfRFlORkxBR19UWF9USU1FU1RBTVBfTkFNRSBpcyBzZXQgaW4gb2xfZmxhZ3MuCiAqIFRo ZSBtYnVmIGZpZWxkIGFuZCBmbGFnIGFyZSByZWdpc3RlcmVkIHdoZW4gdGhlIG9mZmxvYWQgaXMg Y29uZmlndXJlZC4KICovCiNkZWZpbmUgREVWX1RYX09GRkxPQURfU0VORF9PTl9USU1FU1RBTVAg MHgwMDIwMDAwMAovKgogKiBJZiBuZXcgVHggb2ZmbG9hZCBjYXBhYmlsaXRpZXMgYXJlIGRlZmlu ZWQsIHRoZXkgYWxzbyBtdXN0IGJlCiAqIG1lbnRpb25lZCBpbiBydGVfdHhfb2ZmbG9hZF9uYW1l cyBpbiBydGVfZXRoZGV2LmMgZmlsZS4KCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGxpYi9ldGhkZXYv cnRlX2V0aGRldi5oOjEzOTYKZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CiAqIERlZmF1bHQg dmFsdWVzIGZvciBzd2l0Y2ggZG9tYWluIElEIHdoZW4gZXRoZGV2IGRvZXMgbm90IHN1cHBvcnQg c3dpdGNoCiAqIGRvbWFpbiBkZWZpbml0aW9ucy4KICovCiNkZWZpbmUgUlRFX0VUSF9ERVZfU1dJ VENIX0RPTUFJTl9JRF9JTlZBTElECShVSU5UMTZfTUFYKQoKLyoqCiAqIEV0aGVybmV0IGRldmlj ZSBhc3NvY2lhdGVkIHN3aXRjaCBpbmZvcm1hdGlvbgoKZXJyb3I6IHBhdGNoIGZhaWxlZDogbGli L2V0aGRldi9ydGVfZXRoZGV2Lmg6MTQ5MwplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCXVp bnQxNl90IHZtZHFfcG9vbF9iYXNlOyAgLyoqPCBGaXJzdCBJRCBvZiBWTURxIHBvb2xzLiAqLwoJ c3RydWN0IHJ0ZV9ldGhfZGVzY19saW0gcnhfZGVzY19saW07ICAvKio8IFJ4IGRlc2NyaXB0b3Jz IGxpbWl0cyAqLwoJc3RydWN0IHJ0ZV9ldGhfZGVzY19saW0gdHhfZGVzY19saW07ICAvKio8IFR4 IGRlc2NyaXB0b3JzIGxpbWl0cyAqLwoJdWludDMyX3Qgc3BlZWRfY2FwYTsgIC8qKjwgU3VwcG9y dGVkIHNwZWVkcyBiaXRtYXAgKEVUSF9MSU5LX1NQRUVEXykuICovCgkvKiogQ29uZmlndXJlZCBu dW1iZXIgb2YgUngvVHggcXVldWVzICovCgl1aW50MTZfdCBuYl9yeF9xdWV1ZXM7IC8qKjwgTnVt YmVyIG9mIFJ4IHF1ZXVlcy4gKi8KCXVpbnQxNl90IG5iX3R4X3F1ZXVlczsgLyoqPCBOdW1iZXIg b2YgVHggcXVldWVzLiAqLwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogbGliL2V0aGRldi9ydGVfZXRo ZGV2Lmg6MTU5MQpIdW5rICMzMSBzdWNjZWVkZWQgYXQgMTY5MyAob2Zmc2V0IC0yNTcgbGluZXMp LgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCXN0cnVjdCB7CgkJdWludDE2X3QgYmFzZTsK CQl1aW50MTZfdCBuYl9xdWV1ZTsKCX0gdGNfcnhxW0VUSF9NQVhfVk1EUV9QT09MXVtFVEhfRENC X05VTV9UQ1NdOwoJLyoqIFJ4IHF1ZXVlcyBhc3NpZ25lZCB0byB0YyBwZXIgUG9vbCAqLwoJc3Ry dWN0IHsKCQl1aW50MTZfdCBiYXNlOwoJCXVpbnQxNl90IG5iX3F1ZXVlOwoJfSB0Y190eHFbRVRI X01BWF9WTURRX1BPT0xdW0VUSF9EQ0JfTlVNX1RDU107Cn07CgovKioKCmVycm9yOiBwYXRjaCBm YWlsZWQ6IGxpYi9ldGhkZXYvcnRlX2V0aGRldi5oOjE3MDcKZXJyb3I6IHdoaWxlIHNlYXJjaGlu ZyBmb3I6CiAqLwpzdHJ1Y3QgcnRlX2V0aF9kY2JfaW5mbyB7Cgl1aW50OF90IG5iX3RjczsgICAg ICAgIC8qKjwgbnVtYmVyIG9mIFRDcyAqLwoJdWludDhfdCBwcmlvX3RjW0VUSF9EQ0JfTlVNX1VT RVJfUFJJT1JJVElFU107IC8qKjwgUHJpb3JpdHkgdG8gdGMgKi8KCXVpbnQ4X3QgdGNfYndzW0VU SF9EQ0JfTlVNX1RDU107IC8qKjwgVHggQlcgcGVyY2VudGFnZSBmb3IgZWFjaCBUQyAqLwoJLyoq IFJ4IHF1ZXVlcyBhc3NpZ25lZCB0byB0YyAqLwoJc3RydWN0IHJ0ZV9ldGhfZGNiX3RjX3F1ZXVl X21hcHBpbmcgdGNfcXVldWU7Cn07CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBsaWIvZXRoZGV2L3J0 ZV9ldGhkZXYuaDoxNzIxCkh1bmsgIzM0IHN1Y2NlZWRlZCBhdCAxNzQ2IChvZmZzZXQgLTI1NyBs aW5lcykuCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoKLyoqQHtAbmFtZSBMMiB0dW5uZWwg Y29uZmlndXJhdGlvbiAqLwovKiogTDIgdHVubmVsIGVuYWJsZSBtYXNrICovCiNkZWZpbmUgRVRI X0wyX1RVTk5FTF9FTkFCTEVfTUFTSyAgICAgICAweDAwMDAwMDAxCi8qKiBMMiB0dW5uZWwgaW5z ZXJ0aW9uIG1hc2sgKi8KI2RlZmluZSBFVEhfTDJfVFVOTkVMX0lOU0VSVElPTl9NQVNLICAgIDB4 MDAwMDAwMDIKLyoqIEwyIHR1bm5lbCBzdHJpcHBpbmcgbWFzayAqLwojZGVmaW5lIEVUSF9MMl9U VU5ORUxfU1RSSVBQSU5HX01BU0sgICAgMHgwMDAwMDAwNAovKiogTDIgdHVubmVsIGZvcndhcmRp bmcgbWFzayAqLwojZGVmaW5lIEVUSF9MMl9UVU5ORUxfRk9SV0FSRElOR19NQVNLICAgMHgwMDAw MDAwOAovKipAfSovCgovKioKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGxpYi9ldGhkZXYvcnRlX2V0 aGRldi5oOjE3NjkKSHVuayAjMzYgc3VjY2VlZGVkIGF0IDIwODYgKG9mZnNldCAtMjYxIGxpbmVz KS4KSHVuayAjMzcgc3VjY2VlZGVkIGF0IDIxMDMgKG9mZnNldCAtMjYxIGxpbmVzKS4KSHVuayAj Mzggc3VjY2VlZGVkIGF0IDIxOTcgKG9mZnNldCAtMjc1IGxpbmVzKS4KSHVuayAjMzkgc3VjY2Vl ZGVkIGF0IDI3NzQgKG9mZnNldCAtMjc1IGxpbmVzKS4KSHVuayAjNDAgc3VjY2VlZGVkIGF0IDMy NzggKG9mZnNldCAtMzE3IGxpbmVzKS4KSHVuayAjNDEgc3VjY2VlZGVkIGF0IDMyOTcgKG9mZnNl dCAtMzE3IGxpbmVzKS4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CiAqIHJ0ZV9ldGhfdHhf YnVyc3QoKSBmdW5jdGlvbiBtdXN0IFthdHRlbXB0IHRvXSBmcmVlIHRoZSAqcnRlX21idWYqICBi dWZmZXJzCiAqIG9mIHRob3NlIHBhY2tldHMgd2hvc2UgdHJhbnNtaXNzaW9uIHdhcyBlZmZlY3Rp dmVseSBjb21wbGV0ZWQuCiAqCiAqIElmIHRoZSBQTUQgaXMgREVWX1RYX09GRkxPQURfTVRfTE9D S0ZSRUUgY2FwYWJsZSwgbXVsdGlwbGUgdGhyZWFkcyBjYW4KICogaW52b2tlIHRoaXMgZnVuY3Rp b24gY29uY3VycmVudGx5IG9uIHRoZSBzYW1lIFR4IHF1ZXVlIHdpdGhvdXQgU1cgbG9jay4KICog QHNlZSBydGVfZXRoX2Rldl9pbmZvX2dldCwgc3RydWN0IHJ0ZV9ldGhfdHhjb25mOjpvZmZsb2Fk cwogKgoKZXJyb3I6IHBhdGNoIGZhaWxlZDogbGliL2V0aGRldi9ydGVfZXRoZGV2Lmg6NTM4MgpD aGVja2luZyBwYXRjaCBsaWIvZXRoZGV2L3J0ZV9mbG93LmguLi4KSHVuayAjMSBzdWNjZWVkZWQg YXQgMjU5MyAob2Zmc2V0IC0zNjQgbGluZXMpLgpDaGVja2luZyBwYXRjaCBsaWIvZ3NvL3J0ZV9n c28uYy4uLgpDaGVja2luZyBwYXRjaCBsaWIvZ3NvL3J0ZV9nc28uaC4uLgpDaGVja2luZyBwYXRj aCBsaWIvbWJ1Zi9ydGVfbWJ1Zl9jb3JlLmguLi4KQ2hlY2tpbmcgcGF0Y2ggbGliL21idWYvcnRl X21idWZfZHluLmguLi4KQXBwbGllZCBwYXRjaCBhcHAvcHJvYy1pbmZvL21haW4uYyBjbGVhbmx5 LgpBcHBseWluZyBwYXRjaCBhcHAvdGVzdC1ldmVudGRldi90ZXN0X3BlcmZfY29tbW9uLmMgd2l0 aCAxIHJlamVjdC4uLgpSZWplY3RlZCBodW5rICMxLgpBcHBsaWVkIHBhdGNoIGFwcC90ZXN0LWV2 ZW50ZGV2L3Rlc3RfcGlwZWxpbmVfY29tbW9uLmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBhcHAv dGVzdC1mbG93LXBlcmYvY29uZmlnLmggY2xlYW5seS4KQXBwbGllZCBwYXRjaCBhcHAvdGVzdC1w aXBlbGluZS9pbml0LmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBhcHAvdGVzdC1wbWQvY21kbGlu ZS5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggYXBwL3Rlc3QtcG1kL2NvbmZpZy5jIGNsZWFubHku CkFwcGxpZWQgcGF0Y2ggYXBwL3Rlc3QtcG1kL2NzdW1vbmx5LmMgY2xlYW5seS4KQXBwbGllZCBw YXRjaCBhcHAvdGVzdC1wbWQvZmxvd2dlbi5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggYXBwL3Rl c3QtcG1kL21hY2Z3ZC5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggYXBwL3Rlc3QtcG1kL21hY3N3 YXBfY29tbW9uLmggY2xlYW5seS4KQXBwbGllZCBwYXRjaCBhcHAvdGVzdC1wbWQvcGFyYW1ldGVy cy5jIGNsZWFubHkuCkFwcGx5aW5nIHBhdGNoIGFwcC90ZXN0LXBtZC90ZXN0cG1kLmMgd2l0aCA0 IHJlamVjdHMuLi4KSHVuayAjMSBhcHBsaWVkIGNsZWFubHkuClJlamVjdGVkIGh1bmsgIzIuCkh1 bmsgIzMgYXBwbGllZCBjbGVhbmx5LgpSZWplY3RlZCBodW5rICM0LgpIdW5rICM1IGFwcGxpZWQg Y2xlYW5seS4KSHVuayAjNiBhcHBsaWVkIGNsZWFubHkuClJlamVjdGVkIGh1bmsgIzcuCkh1bmsg IzggYXBwbGllZCBjbGVhbmx5LgpIdW5rICM5IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTAgYXBw bGllZCBjbGVhbmx5LgpIdW5rICMxMSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzEyIGFwcGxpZWQg Y2xlYW5seS4KUmVqZWN0ZWQgaHVuayAjMTMuCkFwcGx5aW5nIHBhdGNoIGFwcC90ZXN0LXBtZC90 ZXN0cG1kLmggd2l0aCAxIHJlamVjdC4uLgpSZWplY3RlZCBodW5rICMxLgpBcHBsaWVkIHBhdGNo IGFwcC90ZXN0LXBtZC90eG9ubHkuYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGFwcC90ZXN0L3Rl c3RfZXRoZGV2X2xpbmsuYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGFwcC90ZXN0L3Rlc3RfZXZl bnRfZXRoX3J4X2FkYXB0ZXIuYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGFwcC90ZXN0L3Rlc3Rf a25pLmMgY2xlYW5seS4KQXBwbHlpbmcgcGF0Y2ggYXBwL3Rlc3QvdGVzdF9saW5rX2JvbmRpbmcu YyB3aXRoIDEgcmVqZWN0Li4uClJlamVjdGVkIGh1bmsgIzEuCkFwcGx5aW5nIHBhdGNoIGFwcC90 ZXN0L3Rlc3RfbGlua19ib25kaW5nX21vZGU0LmMgd2l0aCAxIHJlamVjdC4uLgpSZWplY3RlZCBo dW5rICMxLgpBcHBseWluZyBwYXRjaCBhcHAvdGVzdC90ZXN0X2xpbmtfYm9uZGluZ19yc3Njb25m LmMgd2l0aCAxIHJlamVjdC4uLgpIdW5rICMxIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMiBhcHBs aWVkIGNsZWFubHkuClJlamVjdGVkIGh1bmsgIzMuCkh1bmsgIzQgYXBwbGllZCBjbGVhbmx5LgpI dW5rICM1IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzcg YXBwbGllZCBjbGVhbmx5LgpBcHBseWluZyBwYXRjaCBhcHAvdGVzdC90ZXN0X3BtZF9wZXJmLmMg d2l0aCAxIHJlamVjdC4uLgpSZWplY3RlZCBodW5rICMxLgpIdW5rICMyIGFwcGxpZWQgY2xlYW5s eS4KSHVuayAjMyBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzQgYXBwbGllZCBjbGVhbmx5LgpBcHBs aWVkIHBhdGNoIGFwcC90ZXN0L3ZpcnR1YWxfcG1kLmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBk b2MvZ3VpZGVzL2V2ZW50ZGV2cy9jbnhrLnJzdCBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRvYy9n dWlkZXMvZXZlbnRkZXZzL29jdGVvbnR4Mi5yc3QgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkb2Mv Z3VpZGVzL25pY3MvYWZfcGFja2V0LnJzdCBjbGVhbmx5LgpBcHBseWluZyBwYXRjaCBkb2MvZ3Vp ZGVzL25pY3MvYm54dC5yc3Qgd2l0aCAxIHJlamVjdC4uLgpSZWplY3RlZCBodW5rICMxLgpBcHBs aWVkIHBhdGNoIGRvYy9ndWlkZXMvbmljcy9lbmljLnJzdCBjbGVhbmx5LgpBcHBseWluZyBwYXRj aCBkb2MvZ3VpZGVzL25pY3MvZmVhdHVyZXMucnN0IHdpdGggMSByZWplY3QuLi4KSHVuayAjMSBh cHBsaWVkIGNsZWFubHkuCkh1bmsgIzIgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMzIGFwcGxpZWQg Y2xlYW5seS4KSHVuayAjNCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzUgYXBwbGllZCBjbGVhbmx5 LgpIdW5rICM2IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNyBhcHBsaWVkIGNsZWFubHkuCkh1bmsg IzggYXBwbGllZCBjbGVhbmx5LgpIdW5rICM5IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTAgYXBw bGllZCBjbGVhbmx5LgpIdW5rICMxMSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzEyIGFwcGxpZWQg Y2xlYW5seS4KSHVuayAjMTMgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxNCBhcHBsaWVkIGNsZWFu bHkuCkh1bmsgIzE1IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTYgYXBwbGllZCBjbGVhbmx5LgpI dW5rICMxNyBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzE4IGFwcGxpZWQgY2xlYW5seS4KSHVuayAj MTkgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMyMCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzIxIGFw cGxpZWQgY2xlYW5seS4KSHVuayAjMjIgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMyMyBhcHBsaWVk IGNsZWFubHkuClJlamVjdGVkIGh1bmsgIzI0LgpBcHBsaWVkIHBhdGNoIGRvYy9ndWlkZXMvbmlj cy9mbTEway5yc3QgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkb2MvZ3VpZGVzL25pY3MvaW50ZWxf dmYucnN0IGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZG9jL2d1aWRlcy9uaWNzL2l4Z2JlLnJzdCBj bGVhbmx5LgpBcHBseWluZyBwYXRjaCBkb2MvZ3VpZGVzL25pY3MvbWx4NS5yc3Qgd2l0aCAxIHJl amVjdC4uLgpIdW5rICMxIGFwcGxpZWQgY2xlYW5seS4KUmVqZWN0ZWQgaHVuayAjMi4KQXBwbGll ZCBwYXRjaCBkb2MvZ3VpZGVzL25pY3MvdGFwLnJzdCBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRv Yy9ndWlkZXMvcHJvZ19ndWlkZS9nZW5lcmljX3NlZ21lbnRhdGlvbl9vZmZsb2FkX2xpYi5yc3Qg Y2xlYW5seS4KQXBwbGllZCBwYXRjaCBkb2MvZ3VpZGVzL3Byb2dfZ3VpZGUvbWJ1Zl9saWIucnN0 IGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZG9jL2d1aWRlcy9wcm9nX2d1aWRlL3BvbGxfbW9kZV9k cnYucnN0IGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZG9jL2d1aWRlcy9wcm9nX2d1aWRlL3J0ZV9m bG93LnJzdCBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRvYy9ndWlkZXMvcHJvZ19ndWlkZS9ydGVf c2VjdXJpdHkucnN0IGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZG9jL2d1aWRlcy9yZWxfbm90ZXMv ZGVwcmVjYXRpb24ucnN0IGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZG9jL2d1aWRlcy9yZWxfbm90 ZXMvcmVsZWFzZV8yMV8xMS5yc3QgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkb2MvZ3VpZGVzL3Nh bXBsZV9hcHBfdWcvaXBzZWNfc2VjZ3cucnN0IGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZG9jL2d1 aWRlcy90ZXN0cG1kX2FwcF91Zy9ydW5fYXBwLnJzdCBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRy aXZlcnMvYnVzL2RwYWEvaW5jbHVkZS9wcm9jZXNzLmggY2xlYW5seS4KQXBwbGllZCBwYXRjaCBk cml2ZXJzL2NvbW1vbi9jbnhrL3JvY19ucGMuaCBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZl cnMvbmV0L2FmX3BhY2tldC9ydGVfZXRoX2FmX3BhY2tldC5jIGNsZWFubHkuCkFwcGxpZWQgcGF0 Y2ggZHJpdmVycy9uZXQvYWZfeGRwL3J0ZV9ldGhfYWZfeGRwLmMgY2xlYW5seS4KQXBwbGllZCBw YXRjaCBkcml2ZXJzL25ldC9hcmsvYXJrX2V0aGRldi5jIGNsZWFubHkuCkFwcGx5aW5nIHBhdGNo IGRyaXZlcnMvbmV0L2F0bGFudGljL2F0bF9ldGhkZXYuYyB3aXRoIDEgcmVqZWN0Li4uClJlamVj dGVkIGh1bmsgIzEuCkh1bmsgIzIgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMzIGFwcGxpZWQgY2xl YW5seS4KSHVuayAjNCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzUgYXBwbGllZCBjbGVhbmx5LgpI dW5rICM2IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNyBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzgg YXBwbGllZCBjbGVhbmx5LgpIdW5rICM5IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTAgYXBwbGll ZCBjbGVhbmx5LgpIdW5rICMxMSBhcHBsaWVkIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVy cy9uZXQvYXRsYW50aWMvYXRsX2V0aGRldi5oIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVy cy9uZXQvYXRsYW50aWMvYXRsX3J4dHguYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMv bmV0L2F2cC9hdnBfZXRoZGV2LmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9h eGdiZS9heGdiZV9kZXYuYyBjbGVhbmx5LgpBcHBseWluZyBwYXRjaCBkcml2ZXJzL25ldC9heGdi ZS9heGdiZV9ldGhkZXYuYyB3aXRoIDIgcmVqZWN0cy4uLgpIdW5rICMxIGFwcGxpZWQgY2xlYW5s eS4KSHVuayAjMiBhcHBsaWVkIGNsZWFubHkuClJlamVjdGVkIGh1bmsgIzMuCkh1bmsgIzQgYXBw bGllZCBjbGVhbmx5LgpIdW5rICM1IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNiBhcHBsaWVkIGNs ZWFubHkuCkh1bmsgIzcgYXBwbGllZCBjbGVhbmx5LgpSZWplY3RlZCBodW5rICM4LgpIdW5rICM5 IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTAgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxMSBhcHBs aWVkIGNsZWFubHkuCkh1bmsgIzEyIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTMgYXBwbGllZCBj bGVhbmx5LgpIdW5rICMxNCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzE1IGFwcGxpZWQgY2xlYW5s eS4KSHVuayAjMTYgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxNyBhcHBsaWVkIGNsZWFubHkuCkFw cGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvYXhnYmUvYXhnYmVfZXRoZGV2LmggY2xlYW5seS4KQXBw bGllZCBwYXRjaCBkcml2ZXJzL25ldC9heGdiZS9heGdiZV9tZGlvLmMgY2xlYW5seS4KQXBwbGll ZCBwYXRjaCBkcml2ZXJzL25ldC9heGdiZS9heGdiZV9yeHR4LmMgY2xlYW5seS4KQXBwbHlpbmcg cGF0Y2ggZHJpdmVycy9uZXQvYm54MngvYm54MnhfZXRoZGV2LmMgd2l0aCAxIHJlamVjdC4uLgpI dW5rICMxIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMiBhcHBsaWVkIGNsZWFubHkuClJlamVjdGVk IGh1bmsgIzMuCkh1bmsgIzQgYXBwbGllZCBjbGVhbmx5LgpBcHBseWluZyBwYXRjaCBkcml2ZXJz L25ldC9ibnh0L2JueHQuaCB3aXRoIDEgcmVqZWN0Li4uClJlamVjdGVkIGh1bmsgIzEuCkFwcGx5 aW5nIHBhdGNoIGRyaXZlcnMvbmV0L2JueHQvYm54dF9ldGhkZXYuYyB3aXRoIDIgcmVqZWN0cy4u LgpIdW5rICMxIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMiBhcHBsaWVkIGNsZWFubHkuCkh1bmsg IzMgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM0IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNSBhcHBs aWVkIGNsZWFubHkuCkh1bmsgIzYgYXBwbGllZCBjbGVhbmx5LgpSZWplY3RlZCBodW5rICM3LgpI dW5rICM4IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjOSBhcHBsaWVkIGNsZWFubHkuClJlamVjdGVk IGh1bmsgIzEwLgpIdW5rICMxMSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzEyIGFwcGxpZWQgY2xl YW5seS4KSHVuayAjMTMgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxNCBhcHBsaWVkIGNsZWFubHku Ckh1bmsgIzE1IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTYgYXBwbGllZCBjbGVhbmx5LgpIdW5r ICMxNyBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzE4IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTkg YXBwbGllZCBjbGVhbmx5LgpIdW5rICMyMCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzIxIGFwcGxp ZWQgY2xlYW5seS4KSHVuayAjMjIgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMyMyBhcHBsaWVkIGNs ZWFubHkuCkh1bmsgIzI0IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMjUgYXBwbGllZCBjbGVhbmx5 LgpIdW5rICMyNiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzI3IGFwcGxpZWQgY2xlYW5seS4KSHVu ayAjMjggYXBwbGllZCBjbGVhbmx5LgpIdW5rICMyOSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzMw IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMzEgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMzMiBhcHBs aWVkIGNsZWFubHkuCkh1bmsgIzMzIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMzQgYXBwbGllZCBj bGVhbmx5LgpIdW5rICMzNSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzM2IGFwcGxpZWQgY2xlYW5s eS4KSHVuayAjMzcgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMzOCBhcHBsaWVkIGNsZWFubHkuCkFw cGx5aW5nIHBhdGNoIGRyaXZlcnMvbmV0L2JueHQvYm54dF9mbG93LmMgd2l0aCAxIHJlamVjdC4u LgpIdW5rICMxIGFwcGxpZWQgY2xlYW5seS4KUmVqZWN0ZWQgaHVuayAjMi4KSHVuayAjMyBhcHBs aWVkIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvYm54dC9ibnh0X2h3cm0uYyBj bGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L2JueHQvYm54dF9yZXBzLmMgY2xlYW5s eS4KQXBwbHlpbmcgcGF0Y2ggZHJpdmVycy9uZXQvYm54dC9ibnh0X3JpbmcuYyB3aXRoIDIgcmVq ZWN0cy4uLgpSZWplY3RlZCBodW5rICMxLgpSZWplY3RlZCBodW5rICMyLgpBcHBsaWVkIHBhdGNo IGRyaXZlcnMvbmV0L2JueHQvYm54dF9yeHEuYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZl cnMvbmV0L2JueHQvYm54dF9yeHIuYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0 L2JueHQvYm54dF9yeHR4X3ZlY19hdngyLmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJz L25ldC9ibnh0L2JueHRfcnh0eF92ZWNfY29tbW9uLmggY2xlYW5seS4KQXBwbGllZCBwYXRjaCBk cml2ZXJzL25ldC9ibnh0L2JueHRfcnh0eF92ZWNfbmVvbi5jIGNsZWFubHkuCkFwcGxpZWQgcGF0 Y2ggZHJpdmVycy9uZXQvYm54dC9ibnh0X3J4dHhfdmVjX3NzZS5jIGNsZWFubHkuCkFwcGxpZWQg cGF0Y2ggZHJpdmVycy9uZXQvYm54dC9ibnh0X3R4ci5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2gg ZHJpdmVycy9uZXQvYm54dC9ibnh0X3ZuaWMuYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZl cnMvbmV0L2JueHQvcnRlX3BtZF9ibnh0LmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJz L25ldC9ib25kaW5nL2V0aF9ib25kX3ByaXZhdGUuaCBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRy aXZlcnMvbmV0L2JvbmRpbmcvcnRlX2V0aF9ib25kXzgwMjNhZC5jIGNsZWFubHkuCkFwcGxpZWQg cGF0Y2ggZHJpdmVycy9uZXQvYm9uZGluZy9ydGVfZXRoX2JvbmRfYXBpLmMgY2xlYW5seS4KQXBw bHlpbmcgcGF0Y2ggZHJpdmVycy9uZXQvYm9uZGluZy9ydGVfZXRoX2JvbmRfcG1kLmMgd2l0aCAz IHJlamVjdHMuLi4KSHVuayAjMSBhcHBsaWVkIGNsZWFubHkuClJlamVjdGVkIGh1bmsgIzIuClJl amVjdGVkIGh1bmsgIzMuCkh1bmsgIzQgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM1IGFwcGxpZWQg Y2xlYW5seS4KSHVuayAjNiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzcgYXBwbGllZCBjbGVhbmx5 LgpIdW5rICM4IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjOSBhcHBsaWVkIGNsZWFubHkuCkh1bmsg IzEwIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTEgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxMiBh cHBsaWVkIGNsZWFubHkuCkh1bmsgIzEzIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTQgYXBwbGll ZCBjbGVhbmx5LgpSZWplY3RlZCBodW5rICMxNS4KSHVuayAjMTYgYXBwbGllZCBjbGVhbmx5LgpB cHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L2NueGsvY24xMGtfZXRoZGV2LmMgY2xlYW5seS4KQXBw bHlpbmcgcGF0Y2ggZHJpdmVycy9uZXQvY254ay9jbjEwa19ydGVfZmxvdy5jIHdpdGggMSByZWpl Y3QuLi4KUmVqZWN0ZWQgaHVuayAjMS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9jbnhrL2Nu MTBrX3J4LmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9jbnhrL2NuMTBrX3R4 LmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9jbnhrL2NuOWtfZXRoZGV2LmMg Y2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9jbnhrL2NuOWtfcnguYyBjbGVhbmx5 LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L2NueGsvY245a190eC5jIGNsZWFubHkuCkFwcGx5 aW5nIHBhdGNoIGRyaXZlcnMvbmV0L2NueGsvY254a19ldGhkZXYuYyB3aXRoIDEgcmVqZWN0Li4u Ckh1bmsgIzEgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMyIGFwcGxpZWQgY2xlYW5seS4KSHVuayAj MyBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzQgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM1IGFwcGxp ZWQgY2xlYW5seS4KSHVuayAjNiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzcgYXBwbGllZCBjbGVh bmx5LgpIdW5rICM4IGFwcGxpZWQgY2xlYW5seS4KUmVqZWN0ZWQgaHVuayAjOS4KSHVuayAjMTAg YXBwbGllZCBjbGVhbmx5LgpIdW5rICMxMSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzEyIGFwcGxp ZWQgY2xlYW5seS4KSHVuayAjMTMgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxNCBhcHBsaWVkIGNs ZWFubHkuCkh1bmsgIzE1IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTYgYXBwbGllZCBjbGVhbmx5 LgpIdW5rICMxNyBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzE4IGFwcGxpZWQgY2xlYW5seS4KSHVu ayAjMTkgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMyMCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzIx IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMjIgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMyMyBhcHBs aWVkIGNsZWFubHkuCkh1bmsgIzI0IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMjUgYXBwbGllZCBj bGVhbmx5LgpIdW5rICMyNiBhcHBsaWVkIGNsZWFubHkuCkFwcGx5aW5nIHBhdGNoIGRyaXZlcnMv bmV0L2NueGsvY254a19ldGhkZXYuaCB3aXRoIDEgcmVqZWN0Li4uClJlamVjdGVkIGh1bmsgIzEu CkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvY254ay9jbnhrX2V0aGRldl9kZXZhcmdzLmMgY2xl YW5seS4KQXBwbHlpbmcgcGF0Y2ggZHJpdmVycy9uZXQvY254ay9jbnhrX2V0aGRldl9vcHMuYyB3 aXRoIDEgcmVqZWN0Li4uClJlamVjdGVkIGh1bmsgIzEuCkh1bmsgIzIgYXBwbGllZCBjbGVhbmx5 LgpIdW5rICMzIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNCBhcHBsaWVkIGNsZWFubHkuCkh1bmsg IzUgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM2IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNyBhcHBs aWVkIGNsZWFubHkuCkh1bmsgIzggYXBwbGllZCBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZl cnMvbmV0L2NueGsvY254a19saW5rLmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25l dC9jbnhrL2NueGtfcHRwLmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9jbnhr L2NueGtfcnRlX2Zsb3cuYyBjbGVhbmx5LgpBcHBseWluZyBwYXRjaCBkcml2ZXJzL25ldC9jeGdi ZS9jeGdiZS5oIHdpdGggMSByZWplY3QuLi4KUmVqZWN0ZWQgaHVuayAjMS4KQXBwbGllZCBwYXRj aCBkcml2ZXJzL25ldC9jeGdiZS9jeGdiZV9ldGhkZXYuYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNo IGRyaXZlcnMvbmV0L2N4Z2JlL2N4Z2JlX21haW4uYyBjbGVhbmx5LgpBcHBseWluZyBwYXRjaCBk cml2ZXJzL25ldC9kcGFhL2RwYWFfZXRoZGV2LmMgd2l0aCA0IHJlamVjdHMuLi4KUmVqZWN0ZWQg aHVuayAjMS4KUmVqZWN0ZWQgaHVuayAjMi4KSHVuayAjMyBhcHBsaWVkIGNsZWFubHkuCkh1bmsg IzQgYXBwbGllZCBjbGVhbmx5LgpSZWplY3RlZCBodW5rICM1LgpIdW5rICM2IGFwcGxpZWQgY2xl YW5seS4KSHVuayAjNyBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzggYXBwbGllZCBjbGVhbmx5LgpS ZWplY3RlZCBodW5rICM5LgpIdW5rICMxMCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzExIGFwcGxp ZWQgY2xlYW5seS4KSHVuayAjMTIgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxMyBhcHBsaWVkIGNs ZWFubHkuCkh1bmsgIzE0IGFwcGxpZWQgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25l dC9kcGFhL2RwYWFfZXRoZGV2LmggY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9k cGFhL2RwYWFfZmxvdy5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvZHBhYTIv YmFzZS9kcGFhMl9od19kcG5pLmMgY2xlYW5seS4KQXBwbHlpbmcgcGF0Y2ggZHJpdmVycy9uZXQv ZHBhYTIvZHBhYTJfZXRoZGV2LmMgd2l0aCAzIHJlamVjdHMuLi4KUmVqZWN0ZWQgaHVuayAjMS4K SHVuayAjMiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzMgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM0 IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNSBhcHBsaWVkIGNsZWFubHkuClJlamVjdGVkIGh1bmsg IzYuCkh1bmsgIzcgYXBwbGllZCBjbGVhbmx5LgpSZWplY3RlZCBodW5rICM4LgpIdW5rICM5IGFw cGxpZWQgY2xlYW5seS4KSHVuayAjMTAgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxMSBhcHBsaWVk IGNsZWFubHkuCkh1bmsgIzEyIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTMgYXBwbGllZCBjbGVh bmx5LgpIdW5rICMxNCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzE1IGFwcGxpZWQgY2xlYW5seS4K SHVuayAjMTYgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxNyBhcHBsaWVkIGNsZWFubHkuCkh1bmsg IzE4IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTkgYXBwbGllZCBjbGVhbmx5LgpBcHBsaWVkIHBh dGNoIGRyaXZlcnMvbmV0L2RwYWEyL2RwYWEyX2V0aGRldi5oIGNsZWFubHkuCkFwcGxpZWQgcGF0 Y2ggZHJpdmVycy9uZXQvZHBhYTIvZHBhYTJfcnh0eC5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2gg ZHJpdmVycy9uZXQvZTEwMDAvZTEwMDBfZXRoZGV2LmggY2xlYW5seS4KQXBwbGllZCBwYXRjaCBk cml2ZXJzL25ldC9lMTAwMC9lbV9ldGhkZXYuYyBjbGVhbmx5LgpBcHBseWluZyBwYXRjaCBkcml2 ZXJzL25ldC9lMTAwMC9lbV9yeHR4LmMgd2l0aCAxIHJlamVjdC4uLgpIdW5rICMxIGFwcGxpZWQg Y2xlYW5seS4KSHVuayAjMiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzMgYXBwbGllZCBjbGVhbmx5 LgpSZWplY3RlZCBodW5rICM0LgpIdW5rICM1IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNiBhcHBs aWVkIGNsZWFubHkuCkh1bmsgIzcgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM4IGFwcGxpZWQgY2xl YW5seS4KSHVuayAjOSBhcHBsaWVkIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQv ZTEwMDAvaWdiX2V0aGRldi5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvZTEw MDAvaWdiX3BmLmMgY2xlYW5seS4KQXBwbHlpbmcgcGF0Y2ggZHJpdmVycy9uZXQvZTEwMDAvaWdi X3J4dHguYyB3aXRoIDEgcmVqZWN0Li4uCkh1bmsgIzEgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMy IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMyBhcHBsaWVkIGNsZWFubHkuClJlamVjdGVkIGh1bmsg IzQuCkh1bmsgIzUgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM2IGFwcGxpZWQgY2xlYW5seS4KSHVu ayAjNyBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzggYXBwbGllZCBjbGVhbmx5LgpIdW5rICM5IGFw cGxpZWQgY2xlYW5seS4KSHVuayAjMTAgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxMSBhcHBsaWVk IGNsZWFubHkuCkh1bmsgIzEyIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTMgYXBwbGllZCBjbGVh bmx5LgpIdW5rICMxNCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzE1IGFwcGxpZWQgY2xlYW5seS4K SHVuayAjMTYgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxNyBhcHBsaWVkIGNsZWFubHkuCkh1bmsg IzE4IGFwcGxpZWQgY2xlYW5seS4KQXBwbHlpbmcgcGF0Y2ggZHJpdmVycy9uZXQvZW5hL2VuYV9l dGhkZXYuYyB3aXRoIDUgcmVqZWN0cy4uLgpIdW5rICMxIGFwcGxpZWQgY2xlYW5seS4KSHVuayAj MiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzMgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM0IGFwcGxp ZWQgY2xlYW5seS4KSHVuayAjNSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzYgYXBwbGllZCBjbGVh bmx5LgpSZWplY3RlZCBodW5rICM3LgpSZWplY3RlZCBodW5rICM4LgpSZWplY3RlZCBodW5rICM5 LgpSZWplY3RlZCBodW5rICMxMC4KSHVuayAjMTEgYXBwbGllZCBjbGVhbmx5LgpSZWplY3RlZCBo dW5rICMxMi4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9lbmEvZW5hX2V0aGRldi5oIGNsZWFu bHkuCkFwcGx5aW5nIHBhdGNoIGRyaXZlcnMvbmV0L2VuYS9lbmFfcnNzLmMgd2l0aCAxIHJlamVj dC4uLgpIdW5rICMxIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMiBhcHBsaWVkIGNsZWFubHkuClJl amVjdGVkIGh1bmsgIzMuCkh1bmsgIzQgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM1IGFwcGxpZWQg Y2xlYW5seS4KSHVuayAjNiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzcgYXBwbGllZCBjbGVhbmx5 LgpIdW5rICM4IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjOSBhcHBsaWVkIGNsZWFubHkuCkh1bmsg IzEwIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTEgYXBwbGllZCBjbGVhbmx5LgpBcHBseWluZyBw YXRjaCBkcml2ZXJzL25ldC9lbmV0Yy9lbmV0Y19ldGhkZXYuYyB3aXRoIDIgcmVqZWN0cy4uLgpI dW5rICMxIGFwcGxpZWQgY2xlYW5seS4KUmVqZWN0ZWQgaHVuayAjMi4KSHVuayAjMyBhcHBsaWVk IGNsZWFubHkuClJlamVjdGVkIGh1bmsgIzQuCkh1bmsgIzUgYXBwbGllZCBjbGVhbmx5LgpBcHBs aWVkIHBhdGNoIGRyaXZlcnMvbmV0L2VuaWMvZW5pYy5oIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2gg ZHJpdmVycy9uZXQvZW5pYy9lbmljX2V0aGRldi5jIGNsZWFubHkuCkFwcGx5aW5nIHBhdGNoIGRy aXZlcnMvbmV0L2VuaWMvZW5pY19tYWluLmMgd2l0aCAxIHJlamVjdC4uLgpIdW5rICMxIGFwcGxp ZWQgY2xlYW5seS4KSHVuayAjMiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzMgYXBwbGllZCBjbGVh bmx5LgpSZWplY3RlZCBodW5rICM0LgpIdW5rICM1IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNiBh cHBsaWVkIGNsZWFubHkuCkh1bmsgIzcgYXBwbGllZCBjbGVhbmx5LgpBcHBseWluZyBwYXRjaCBk cml2ZXJzL25ldC9lbmljL2VuaWNfcmVzLmMgd2l0aCAxIHJlamVjdC4uLgpIdW5rICMxIGFwcGxp ZWQgY2xlYW5seS4KUmVqZWN0ZWQgaHVuayAjMi4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9m YWlsc2FmZS9mYWlsc2FmZS5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvZmFp bHNhZmUvZmFpbHNhZmVfaW50ci5jIGNsZWFubHkuCkFwcGx5aW5nIHBhdGNoIGRyaXZlcnMvbmV0 L2ZhaWxzYWZlL2ZhaWxzYWZlX29wcy5jIHdpdGggMSByZWplY3QuLi4KUmVqZWN0ZWQgaHVuayAj MS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9mbTEway9mbTEway5oIGNsZWFubHkuCkFwcGx5 aW5nIHBhdGNoIGRyaXZlcnMvbmV0L2ZtMTBrL2ZtMTBrX2V0aGRldi5jIHdpdGggMiByZWplY3Rz Li4uCkh1bmsgIzEgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMyIGFwcGxpZWQgY2xlYW5seS4KSHVu ayAjMyBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzQgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM1IGFw cGxpZWQgY2xlYW5seS4KUmVqZWN0ZWQgaHVuayAjNi4KSHVuayAjNyBhcHBsaWVkIGNsZWFubHku Ckh1bmsgIzggYXBwbGllZCBjbGVhbmx5LgpIdW5rICM5IGFwcGxpZWQgY2xlYW5seS4KSHVuayAj MTAgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxMSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzEyIGFw cGxpZWQgY2xlYW5seS4KUmVqZWN0ZWQgaHVuayAjMTMuCkh1bmsgIzE0IGFwcGxpZWQgY2xlYW5s eS4KSHVuayAjMTUgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxNiBhcHBsaWVkIGNsZWFubHkuCkh1 bmsgIzE3IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTggYXBwbGllZCBjbGVhbmx5LgpIdW5rICMx OSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzIwIGFwcGxpZWQgY2xlYW5seS4KQXBwbGllZCBwYXRj aCBkcml2ZXJzL25ldC9mbTEway9mbTEwa19yeHR4X3ZlYy5jIGNsZWFubHkuCkFwcGxpZWQgcGF0 Y2ggZHJpdmVycy9uZXQvaGluaWMvYmFzZS9oaW5pY19wbWRfaHdkZXYuYyBjbGVhbmx5LgpBcHBs eWluZyBwYXRjaCBkcml2ZXJzL25ldC9oaW5pYy9oaW5pY19wbWRfZXRoZGV2LmMgd2l0aCAyIHJl amVjdHMuLi4KUmVqZWN0ZWQgaHVuayAjMS4KSHVuayAjMiBhcHBsaWVkIGNsZWFubHkuCkh1bmsg IzMgYXBwbGllZCBjbGVhbmx5LgpSZWplY3RlZCBodW5rICM0LgpIdW5rICM1IGFwcGxpZWQgY2xl YW5seS4KSHVuayAjNiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzcgYXBwbGllZCBjbGVhbmx5LgpI dW5rICM4IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjOSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzEw IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTEgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxMiBhcHBs aWVkIGNsZWFubHkuCkh1bmsgIzEzIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTQgYXBwbGllZCBj bGVhbmx5LgpIdW5rICMxNSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzE2IGFwcGxpZWQgY2xlYW5s eS4KSHVuayAjMTcgYXBwbGllZCBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L2hp bmljL2hpbmljX3BtZF9yeC5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvaGlu aWMvaGluaWNfcG1kX3J4LmggY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9obnMz L2huczNfZGNiLmMgY2xlYW5seS4KQXBwbHlpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaG5zMy9obnMz X2V0aGRldi5jIHdpdGggMSByZWplY3QuLi4KSHVuayAjMSBhcHBsaWVkIGNsZWFubHkuCkh1bmsg IzIgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMzIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNCBhcHBs aWVkIGNsZWFubHkuCkh1bmsgIzUgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM2IGFwcGxpZWQgY2xl YW5seS4KSHVuayAjNyBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzggYXBwbGllZCBjbGVhbmx5LgpI dW5rICM5IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTAgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMx MSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzEyIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTMgYXBw bGllZCBjbGVhbmx5LgpIdW5rICMxNCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzE1IGFwcGxpZWQg Y2xlYW5seS4KSHVuayAjMTYgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxNyBhcHBsaWVkIGNsZWFu bHkuClJlamVjdGVkIGh1bmsgIzE4LgpIdW5rICMxOSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzIw IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMjEgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMyMiBhcHBs aWVkIGNsZWFubHkuCkh1bmsgIzIzIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMjQgYXBwbGllZCBj bGVhbmx5LgpIdW5rICMyNSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzI2IGFwcGxpZWQgY2xlYW5s eS4KSHVuayAjMjcgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMyOCBhcHBsaWVkIGNsZWFubHkuCkh1 bmsgIzI5IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMzAgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMz MSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzMyIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMzMgYXBw bGllZCBjbGVhbmx5LgpIdW5rICMzNCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzM1IGFwcGxpZWQg Y2xlYW5seS4KSHVuayAjMzYgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMzNyBhcHBsaWVkIGNsZWFu bHkuCkh1bmsgIzM4IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMzkgYXBwbGllZCBjbGVhbmx5LgpI dW5rICM0MCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzQxIGFwcGxpZWQgY2xlYW5seS4KSHVuayAj NDIgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM0MyBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzQ0IGFw cGxpZWQgY2xlYW5seS4KSHVuayAjNDUgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM0NiBhcHBsaWVk IGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvaG5zMy9obnMzX2V0aGRldi5oIGNs ZWFubHkuCkFwcGx5aW5nIHBhdGNoIGRyaXZlcnMvbmV0L2huczMvaG5zM19ldGhkZXZfdmYuYyB3 aXRoIDEgcmVqZWN0Li4uCkh1bmsgIzEgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMyIGFwcGxpZWQg Y2xlYW5seS4KUmVqZWN0ZWQgaHVuayAjMy4KSHVuayAjNCBhcHBsaWVkIGNsZWFubHkuCkh1bmsg IzUgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM2IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNyBhcHBs aWVkIGNsZWFubHkuCkh1bmsgIzggYXBwbGllZCBjbGVhbmx5LgpIdW5rICM5IGFwcGxpZWQgY2xl YW5seS4KSHVuayAjMTAgYXBwbGllZCBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0 L2huczMvaG5zM19mbG93LmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9obnMz L2huczNfcHRwLmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9obnMzL2huczNf cnNzLmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9obnMzL2huczNfcnNzLmgg Y2xlYW5seS4KQXBwbHlpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaG5zMy9obnMzX3J4dHguYyB3aXRo IDIgcmVqZWN0cy4uLgpIdW5rICMxIGFwcGxpZWQgY2xlYW5seS4KUmVqZWN0ZWQgaHVuayAjMi4K SHVuayAjMyBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzQgYXBwbGllZCBjbGVhbmx5LgpSZWplY3Rl ZCBodW5rICM1LgpIdW5rICM2IGFwcGxpZWQgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJz L25ldC9obnMzL2huczNfcnh0eC5oIGNsZWFubHkuCkFwcGx5aW5nIHBhdGNoIGRyaXZlcnMvbmV0 L2huczMvaG5zM19yeHR4X3ZlYy5jIHdpdGggMiByZWplY3RzLi4uClJlamVjdGVkIGh1bmsgIzEu ClJlamVjdGVkIGh1bmsgIzIuCkFwcGx5aW5nIHBhdGNoIGRyaXZlcnMvbmV0L2k0MGUvaTQwZV9l dGhkZXYuYyB3aXRoIDEgcmVqZWN0Li4uCkh1bmsgIzEgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMy IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMyBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzQgYXBwbGll ZCBjbGVhbmx5LgpIdW5rICM1IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNiBhcHBsaWVkIGNsZWFu bHkuCkh1bmsgIzcgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM4IGFwcGxpZWQgY2xlYW5seS4KSHVu ayAjOSBhcHBsaWVkIGNsZWFubHkuClJlamVjdGVkIGh1bmsgIzEwLgpIdW5rICMxMSBhcHBsaWVk IGNsZWFubHkuCkh1bmsgIzEyIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTMgYXBwbGllZCBjbGVh bmx5LgpIdW5rICMxNCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzE1IGFwcGxpZWQgY2xlYW5seS4K SHVuayAjMTYgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxNyBhcHBsaWVkIGNsZWFubHkuCkh1bmsg IzE4IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTkgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMyMCBh cHBsaWVkIGNsZWFubHkuCkh1bmsgIzIxIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMjIgYXBwbGll ZCBjbGVhbmx5LgpIdW5rICMyMyBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzI0IGFwcGxpZWQgY2xl YW5seS4KSHVuayAjMjUgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMyNiBhcHBsaWVkIGNsZWFubHku Ckh1bmsgIzI3IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMjggYXBwbGllZCBjbGVhbmx5LgpIdW5r ICMyOSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzMwIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMzEg YXBwbGllZCBjbGVhbmx5LgpIdW5rICMzMiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzMzIGFwcGxp ZWQgY2xlYW5seS4KSHVuayAjMzQgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMzNSBhcHBsaWVkIGNs ZWFubHkuCkh1bmsgIzM2IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMzcgYXBwbGllZCBjbGVhbmx5 LgpIdW5rICMzOCBhcHBsaWVkIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvaTQw ZS9pNDBlX2V0aGRldi5oIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvaTQwZS9p NDBlX2Zsb3cuYyBjbGVhbmx5LgpBcHBseWluZyBwYXRjaCBkcml2ZXJzL25ldC9pNDBlL2k0MGVf aGFzaC5jIHdpdGggMSByZWplY3QuLi4KSHVuayAjMSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzIg YXBwbGllZCBjbGVhbmx5LgpSZWplY3RlZCBodW5rICMzLgpIdW5rICM0IGFwcGxpZWQgY2xlYW5s eS4KSHVuayAjNSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzYgYXBwbGllZCBjbGVhbmx5LgpIdW5r ICM3IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjOCBhcHBsaWVkIGNsZWFubHkuCkFwcGxpZWQgcGF0 Y2ggZHJpdmVycy9uZXQvaTQwZS9pNDBlX3BmLmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2 ZXJzL25ldC9pNDBlL2k0MGVfcnh0eC5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9u ZXQvaTQwZS9pNDBlX3J4dHguaCBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L2k0 MGUvaTQwZV9yeHR4X3ZlY19hdng1MTIuYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMv bmV0L2k0MGUvaTQwZV9yeHR4X3ZlY19jb21tb24uaCBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRy aXZlcnMvbmV0L2k0MGUvaTQwZV92Zl9yZXByZXNlbnRvci5jIGNsZWFubHkuCkFwcGxpZWQgcGF0 Y2ggZHJpdmVycy9uZXQvaWF2Zi9pYXZmLmggY2xlYW5seS4KQXBwbHlpbmcgcGF0Y2ggZHJpdmVy cy9uZXQvaWF2Zi9pYXZmX2V0aGRldi5jIHdpdGggMSByZWplY3QuLi4KSHVuayAjMSBhcHBsaWVk IGNsZWFubHkuCkh1bmsgIzIgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMzIGFwcGxpZWQgY2xlYW5s eS4KSHVuayAjNCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzUgYXBwbGllZCBjbGVhbmx5LgpIdW5r ICM2IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNyBhcHBsaWVkIGNsZWFubHkuClJlamVjdGVkIGh1 bmsgIzguCkh1bmsgIzkgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxMCBhcHBsaWVkIGNsZWFubHku Ckh1bmsgIzExIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTIgYXBwbGllZCBjbGVhbmx5LgpIdW5r ICMxMyBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzE0IGFwcGxpZWQgY2xlYW5seS4KQXBwbGllZCBw YXRjaCBkcml2ZXJzL25ldC9pYXZmL2lhdmZfaGFzaC5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2gg ZHJpdmVycy9uZXQvaWF2Zi9pYXZmX3J4dHguYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZl cnMvbmV0L2lhdmYvaWF2Zl9yeHR4LmggY2xlYW5seS4KQXBwbHlpbmcgcGF0Y2ggZHJpdmVycy9u ZXQvaWF2Zi9pYXZmX3J4dHhfdmVjX2F2eDIuYyB3aXRoIDIgcmVqZWN0cy4uLgpSZWplY3RlZCBo dW5rICMxLgpSZWplY3RlZCBodW5rICMyLgpBcHBseWluZyBwYXRjaCBkcml2ZXJzL25ldC9pYXZm L2lhdmZfcnh0eF92ZWNfYXZ4NTEyLmMgd2l0aCAyIHJlamVjdHMuLi4KUmVqZWN0ZWQgaHVuayAj MS4KUmVqZWN0ZWQgaHVuayAjMi4KSHVuayAjMyBhcHBsaWVkIGNsZWFubHkuCkFwcGx5aW5nIHBh dGNoIGRyaXZlcnMvbmV0L2lhdmYvaWF2Zl9yeHR4X3ZlY19zc2UuYyB3aXRoIDEgcmVqZWN0Li4u ClJlamVjdGVkIGh1bmsgIzEuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvaWNlL2ljZV9kY2Yu YyBjbGVhbmx5LgpBcHBseWluZyBwYXRjaCBkcml2ZXJzL25ldC9pY2UvaWNlX2RjZl9ldGhkZXYu YyB3aXRoIDIgcmVqZWN0cy4uLgpIdW5rICMxIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMiBhcHBs aWVkIGNsZWFubHkuClJlamVjdGVkIGh1bmsgIzMuCkh1bmsgIzQgYXBwbGllZCBjbGVhbmx5LgpS ZWplY3RlZCBodW5rICM1LgpIdW5rICM2IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNyBhcHBsaWVk IGNsZWFubHkuCkh1bmsgIzggYXBwbGllZCBjbGVhbmx5LgpBcHBseWluZyBwYXRjaCBkcml2ZXJz L25ldC9pY2UvaWNlX2RjZl92Zl9yZXByZXNlbnRvci5jIHdpdGggMSByZWplY3QuLi4KSHVuayAj MSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzIgYXBwbGllZCBjbGVhbmx5LgpSZWplY3RlZCBodW5r ICMzLgpIdW5rICM0IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNSBhcHBsaWVkIGNsZWFubHkuCkh1 bmsgIzYgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM3IGFwcGxpZWQgY2xlYW5seS4KQXBwbHlpbmcg cGF0Y2ggZHJpdmVycy9uZXQvaWNlL2ljZV9ldGhkZXYuYyB3aXRoIDEgcmVqZWN0Li4uCkh1bmsg IzEgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMyIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMyBhcHBs aWVkIGNsZWFubHkuCkh1bmsgIzQgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM1IGFwcGxpZWQgY2xl YW5seS4KSHVuayAjNiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzcgYXBwbGllZCBjbGVhbmx5LgpI dW5rICM4IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjOSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzEw IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTEgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxMiBhcHBs aWVkIGNsZWFubHkuCkh1bmsgIzEzIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTQgYXBwbGllZCBj bGVhbmx5LgpIdW5rICMxNSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzE2IGFwcGxpZWQgY2xlYW5s eS4KSHVuayAjMTcgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxOCBhcHBsaWVkIGNsZWFubHkuClJl amVjdGVkIGh1bmsgIzE5LgpIdW5rICMyMCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzIxIGFwcGxp ZWQgY2xlYW5seS4KSHVuayAjMjIgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMyMyBhcHBsaWVkIGNs ZWFubHkuCkh1bmsgIzI0IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMjUgYXBwbGllZCBjbGVhbmx5 LgpIdW5rICMyNiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzI3IGFwcGxpZWQgY2xlYW5seS4KSHVu ayAjMjggYXBwbGllZCBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L2ljZS9pY2Vf ZXRoZGV2LmggY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9pY2UvaWNlX2hhc2gu YyBjbGVhbmx5LgpBcHBseWluZyBwYXRjaCBkcml2ZXJzL25ldC9pY2UvaWNlX3J4dHguYyB3aXRo IDMgcmVqZWN0cy4uLgpIdW5rICMxIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMiBhcHBsaWVkIGNs ZWFubHkuCkh1bmsgIzMgYXBwbGllZCBjbGVhbmx5LgpSZWplY3RlZCBodW5rICM0LgpSZWplY3Rl ZCBodW5rICM1LgpSZWplY3RlZCBodW5rICM2LgpIdW5rICM3IGFwcGxpZWQgY2xlYW5seS4KSHVu ayAjOCBhcHBsaWVkIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvaWNlL2ljZV9y eHR4X3ZlY19hdngyLmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9pY2UvaWNl X3J4dHhfdmVjX2F2eDUxMi5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvaWNl L2ljZV9yeHR4X3ZlY19jb21tb24uaCBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0 L2ljZS9pY2Vfcnh0eF92ZWNfc3NlLmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25l dC9pZ2MvaWdjX2V0aGRldi5jIGNsZWFubHkuCkFwcGx5aW5nIHBhdGNoIGRyaXZlcnMvbmV0L2ln Yy9pZ2NfZXRoZGV2Lmggd2l0aCAxIHJlamVjdC4uLgpSZWplY3RlZCBodW5rICMxLgpBcHBsaWVk IHBhdGNoIGRyaXZlcnMvbmV0L2lnYy9pZ2NfdHhyeC5jIGNsZWFubHkuCkFwcGx5aW5nIHBhdGNo IGRyaXZlcnMvbmV0L2lvbmljL2lvbmljX2V0aGRldi5jIHdpdGggMSByZWplY3QuLi4KSHVuayAj MSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzIgYXBwbGllZCBjbGVhbmx5LgpSZWplY3RlZCBodW5r ICMzLgpIdW5rICM0IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNSBhcHBsaWVkIGNsZWFubHkuCkh1 bmsgIzYgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM3IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjOCBh cHBsaWVkIGNsZWFubHkuCkh1bmsgIzkgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxMCBhcHBsaWVk IGNsZWFubHkuCkh1bmsgIzExIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTIgYXBwbGllZCBjbGVh bmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L2lvbmljL2lvbmljX2V0aGRldi5oIGNsZWFu bHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvaW9uaWMvaW9uaWNfbGlmLmMgY2xlYW5seS4K QXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9pb25pYy9pb25pY19yeHR4LmMgY2xlYW5seS4KQXBw bHlpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaXBuM2tlL2lwbjNrZV9yZXByZXNlbnRvci5jIHdpdGgg MSByZWplY3QuLi4KSHVuayAjMSBhcHBsaWVkIGNsZWFubHkuClJlamVjdGVkIGh1bmsgIzIuCkh1 bmsgIzMgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM0IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNSBh cHBsaWVkIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfZXRo ZGV2LmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9peGdiZS9peGdiZV9ldGhk ZXYuaCBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX2ZkaXIu YyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX2Zsb3cuYyBj bGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX2lwc2VjLmMgY2xl YW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9peGdiZS9peGdiZV9wZi5jIGNsZWFubHku CkFwcGx5aW5nIHBhdGNoIGRyaXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX3J4dHguYyB3aXRoIDMgcmVq ZWN0cy4uLgpIdW5rICMxIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMiBhcHBsaWVkIGNsZWFubHku Ckh1bmsgIzMgYXBwbGllZCBjbGVhbmx5LgpSZWplY3RlZCBodW5rICM0LgpIdW5rICM1IGFwcGxp ZWQgY2xlYW5seS4KSHVuayAjNiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzcgYXBwbGllZCBjbGVh bmx5LgpIdW5rICM4IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjOSBhcHBsaWVkIGNsZWFubHkuCkh1 bmsgIzEwIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTEgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMx MiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzEzIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTQgYXBw bGllZCBjbGVhbmx5LgpIdW5rICMxNSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzE2IGFwcGxpZWQg Y2xlYW5seS4KSHVuayAjMTcgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxOCBhcHBsaWVkIGNsZWFu bHkuCkh1bmsgIzE5IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMjAgYXBwbGllZCBjbGVhbmx5LgpI dW5rICMyMSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzIyIGFwcGxpZWQgY2xlYW5seS4KSHVuayAj MjMgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMyNCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzI1IGFw cGxpZWQgY2xlYW5seS4KSHVuayAjMjYgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMyNyBhcHBsaWVk IGNsZWFubHkuCkh1bmsgIzI4IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMjkgYXBwbGllZCBjbGVh bmx5LgpIdW5rICMzMCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzMxIGFwcGxpZWQgY2xlYW5seS4K SHVuayAjMzIgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMzMyBhcHBsaWVkIGNsZWFubHkuCkh1bmsg IzM0IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMzUgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMzNiBh cHBsaWVkIGNsZWFubHkuCkh1bmsgIzM3IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMzggYXBwbGll ZCBjbGVhbmx5LgpIdW5rICMzOSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzQwIGFwcGxpZWQgY2xl YW5seS4KSHVuayAjNDEgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM0MiBhcHBsaWVkIGNsZWFubHku Ckh1bmsgIzQzIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNDQgYXBwbGllZCBjbGVhbmx5LgpIdW5r ICM0NSBhcHBsaWVkIGNsZWFubHkuClJlamVjdGVkIGh1bmsgIzQ2LgpIdW5rICM0NyBhcHBsaWVk IGNsZWFubHkuCkh1bmsgIzQ4IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNDkgYXBwbGllZCBjbGVh bmx5LgpIdW5rICM1MCBhcHBsaWVkIGNsZWFubHkuClJlamVjdGVkIGh1bmsgIzUxLgpIdW5rICM1 MiBhcHBsaWVkIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVf cnh0eC5oIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfcnh0 eF92ZWNfY29tbW9uLmggY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9peGdiZS9p eGdiZV90bS5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVf dmZfcmVwcmVzZW50b3IuYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L2l4Z2Jl L3J0ZV9wbWRfaXhnYmUuYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L2l4Z2Jl L3J0ZV9wbWRfaXhnYmUuaCBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L2tuaS9y dGVfZXRoX2tuaS5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvbGlxdWlkaW8v bGlvX2V0aGRldi5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvbWVtaWYvbWVt aWZfc29ja2V0LmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9tZW1pZi9ydGVf ZXRoX21lbWlmLmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9tbHg0L21seDRf ZXRoZGV2LmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9tbHg0L21seDRfZmxv dy5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvbWx4NC9tbHg0X2ludHIuYyBj bGVhbmx5LgpBcHBseWluZyBwYXRjaCBkcml2ZXJzL25ldC9tbHg0L21seDRfcnhxLmMgd2l0aCAy IHJlamVjdHMuLi4KUmVqZWN0ZWQgaHVuayAjMS4KSHVuayAjMiBhcHBsaWVkIGNsZWFubHkuCkh1 bmsgIzMgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM0IGFwcGxpZWQgY2xlYW5seS4KUmVqZWN0ZWQg aHVuayAjNS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9tbHg0L21seDRfdHhxLmMgY2xlYW5s eS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9tbHg1L2xpbnV4L21seDVfZXRoZGV2X29zLmMg Y2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9tbHg1L2xpbnV4L21seDVfb3MuYyBj bGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L21seDUvbWx4NS5jIGNsZWFubHkuCkFw cGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvbWx4NS9tbHg1LmggY2xlYW5seS4KQXBwbGllZCBwYXRj aCBkcml2ZXJzL25ldC9tbHg1L21seDVfZGVmcy5oIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJp dmVycy9uZXQvbWx4NS9tbHg1X2V0aGRldi5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVy cy9uZXQvbWx4NS9tbHg1X2Zsb3cuYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0 L21seDUvbWx4NV9mbG93LmggY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9tbHg1 L21seDVfZmxvd19kdi5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvbWx4NS9t bHg1X2Zsb3dfdmVyYnMuYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L21seDUv bWx4NV9yc3MuYyBjbGVhbmx5LgpBcHBseWluZyBwYXRjaCBkcml2ZXJzL25ldC9tbHg1L21seDVf cnhxLmMgd2l0aCA0IHJlamVjdHMuLi4KUmVqZWN0ZWQgaHVuayAjMS4KSHVuayAjMiBhcHBsaWVk IGNsZWFubHkuCkh1bmsgIzMgYXBwbGllZCBjbGVhbmx5LgpSZWplY3RlZCBodW5rICM0LgpIdW5r ICM1IGFwcGxpZWQgY2xlYW5seS4KUmVqZWN0ZWQgaHVuayAjNi4KUmVqZWN0ZWQgaHVuayAjNy4K SHVuayAjOCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzkgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMx MCBhcHBsaWVkIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvbWx4NS9tbHg1X3J4 dHhfdmVjLmggY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9tbHg1L21seDVfdHgu YyBjbGVhbmx5LgpBcHBseWluZyBwYXRjaCBkcml2ZXJzL25ldC9tbHg1L21seDVfdHhxLmMgd2l0 aCAyIHJlamVjdHMuLi4KUmVqZWN0ZWQgaHVuayAjMS4KSHVuayAjMiBhcHBsaWVkIGNsZWFubHku Ckh1bmsgIzMgYXBwbGllZCBjbGVhbmx5LgpSZWplY3RlZCBodW5rICM0LgpBcHBsaWVkIHBhdGNo IGRyaXZlcnMvbmV0L21seDUvbWx4NV92bGFuLmMgY2xlYW5seS4KQXBwbHlpbmcgcGF0Y2ggZHJp dmVycy9uZXQvbWx4NS93aW5kb3dzL21seDVfb3MuYyB3aXRoIDEgcmVqZWN0Li4uClJlamVjdGVk IGh1bmsgIzEuCkFwcGx5aW5nIHBhdGNoIGRyaXZlcnMvbmV0L212bmV0YS9tdm5ldGFfZXRoZGV2 LmMgd2l0aCAxIHJlamVjdC4uLgpIdW5rICMxIGFwcGxpZWQgY2xlYW5seS4KUmVqZWN0ZWQgaHVu ayAjMi4KSHVuayAjMyBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzQgYXBwbGllZCBjbGVhbmx5LgpB cHBseWluZyBwYXRjaCBkcml2ZXJzL25ldC9tdm5ldGEvbXZuZXRhX2V0aGRldi5oIHdpdGggMSBy ZWplY3QuLi4KUmVqZWN0ZWQgaHVuayAjMS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9tdm5l dGEvbXZuZXRhX3J4dHguYyBjbGVhbmx5LgpBcHBseWluZyBwYXRjaCBkcml2ZXJzL25ldC9tdnBw Mi9tcnZsX2V0aGRldi5jIHdpdGggMiByZWplY3RzLi4uClJlamVjdGVkIGh1bmsgIzEuCkh1bmsg IzIgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMzIGFwcGxpZWQgY2xlYW5seS4KUmVqZWN0ZWQgaHVu ayAjNC4KSHVuayAjNSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzYgYXBwbGllZCBjbGVhbmx5LgpI dW5rICM3IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjOCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzkg YXBwbGllZCBjbGVhbmx5LgpIdW5rICMxMCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzExIGFwcGxp ZWQgY2xlYW5seS4KSHVuayAjMTIgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxMyBhcHBsaWVkIGNs ZWFubHkuCkh1bmsgIzE0IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTUgYXBwbGllZCBjbGVhbmx5 LgpIdW5rICMxNiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzE3IGFwcGxpZWQgY2xlYW5seS4KSHVu ayAjMTggYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxOSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzIw IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMjEgYXBwbGllZCBjbGVhbmx5LgpBcHBsaWVkIHBhdGNo IGRyaXZlcnMvbmV0L25ldHZzYy9obl9ldGhkZXYuYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRy aXZlcnMvbmV0L25ldHZzYy9obl9ybmRpcy5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVy cy9uZXQvbmZiL25mYl9ldGhkZXYuYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0 L25mYi9uZmJfcnguYyBjbGVhbmx5LgpBcHBseWluZyBwYXRjaCBkcml2ZXJzL25ldC9uZnAvbmZw X2NvbW1vbi5jIHdpdGggMiByZWplY3RzLi4uCkh1bmsgIzEgYXBwbGllZCBjbGVhbmx5LgpIdW5r ICMyIGFwcGxpZWQgY2xlYW5seS4KUmVqZWN0ZWQgaHVuayAjMy4KSHVuayAjNCBhcHBsaWVkIGNs ZWFubHkuCkh1bmsgIzUgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM2IGFwcGxpZWQgY2xlYW5seS4K SHVuayAjNyBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzggYXBwbGllZCBjbGVhbmx5LgpSZWplY3Rl ZCBodW5rICM5LgpIdW5rICMxMCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzExIGFwcGxpZWQgY2xl YW5seS4KSHVuayAjMTIgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxMyBhcHBsaWVkIGNsZWFubHku Ckh1bmsgIzE0IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTUgYXBwbGllZCBjbGVhbmx5LgpBcHBs aWVkIHBhdGNoIGRyaXZlcnMvbmV0L25mcC9uZnBfZXRoZGV2LmMgY2xlYW5seS4KQXBwbGllZCBw YXRjaCBkcml2ZXJzL25ldC9uZnAvbmZwX2V0aGRldl92Zi5jIGNsZWFubHkuCkFwcGxpZWQgcGF0 Y2ggZHJpdmVycy9uZXQvbmdiZS9uZ2JlX2V0aGRldi5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2gg ZHJpdmVycy9uZXQvbnVsbC9ydGVfZXRoX251bGwuYyBjbGVhbmx5LgpBcHBseWluZyBwYXRjaCBk cml2ZXJzL25ldC9vY3Rlb250eC9vY3Rlb250eF9ldGhkZXYuYyB3aXRoIDEgcmVqZWN0Li4uCkh1 bmsgIzEgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMyIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMyBh cHBsaWVkIGNsZWFubHkuCkh1bmsgIzQgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM1IGFwcGxpZWQg Y2xlYW5seS4KSHVuayAjNiBhcHBsaWVkIGNsZWFubHkuClJlamVjdGVkIGh1bmsgIzcuCkh1bmsg IzggYXBwbGllZCBjbGVhbmx5LgpIdW5rICM5IGFwcGxpZWQgY2xlYW5seS4KQXBwbHlpbmcgcGF0 Y2ggZHJpdmVycy9uZXQvb2N0ZW9udHgvb2N0ZW9udHhfZXRoZGV2Lmggd2l0aCAxIHJlamVjdC4u LgpSZWplY3RlZCBodW5rICMxLgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L29jdGVvbnR4L29j dGVvbnR4X2V0aGRldl9vcHMuYyBjbGVhbmx5LgpBcHBseWluZyBwYXRjaCBkcml2ZXJzL25ldC9v Y3Rlb250eDIvb3R4Ml9ldGhkZXYuYyB3aXRoIDEgcmVqZWN0Li4uCkh1bmsgIzEgYXBwbGllZCBj bGVhbmx5LgpIdW5rICMyIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMyBhcHBsaWVkIGNsZWFubHku Ckh1bmsgIzQgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM1IGFwcGxpZWQgY2xlYW5seS4KSHVuayAj NiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzcgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM4IGFwcGxp ZWQgY2xlYW5seS4KUmVqZWN0ZWQgaHVuayAjOS4KSHVuayAjMTAgYXBwbGllZCBjbGVhbmx5LgpI dW5rICMxMSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzEyIGFwcGxpZWQgY2xlYW5seS4KQXBwbHlp bmcgcGF0Y2ggZHJpdmVycy9uZXQvb2N0ZW9udHgyL290eDJfZXRoZGV2Lmggd2l0aCAxIHJlamVj dC4uLgpSZWplY3RlZCBodW5rICMxLgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L29jdGVvbnR4 Mi9vdHgyX2V0aGRldl9kZXZhcmdzLmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25l dC9vY3Rlb250eDIvb3R4Ml9ldGhkZXZfb3BzLmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2 ZXJzL25ldC9vY3Rlb250eDIvb3R4Ml9ldGhkZXZfc2VjLmMgY2xlYW5seS4KQXBwbGllZCBwYXRj aCBkcml2ZXJzL25ldC9vY3Rlb250eDIvb3R4Ml9mbG93LmMgY2xlYW5seS4KQXBwbGllZCBwYXRj aCBkcml2ZXJzL25ldC9vY3Rlb250eDIvb3R4Ml9mbG93X2N0cmwuYyBjbGVhbmx5LgpBcHBsaWVk IHBhdGNoIGRyaXZlcnMvbmV0L29jdGVvbnR4Mi9vdHgyX2Zsb3dfcGFyc2UuYyBjbGVhbmx5LgpB cHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L29jdGVvbnR4Mi9vdHgyX2xpbmsuYyBjbGVhbmx5LgpB cHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L29jdGVvbnR4Mi9vdHgyX21jYXN0LmMgY2xlYW5seS4K QXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9vY3Rlb250eDIvb3R4Ml9wdHAuYyBjbGVhbmx5LgpB cHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L29jdGVvbnR4Mi9vdHgyX3Jzcy5jIGNsZWFubHkuCkFw cGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvb2N0ZW9udHgyL290eDJfcnguYyBjbGVhbmx5LgpBcHBs aWVkIHBhdGNoIGRyaXZlcnMvbmV0L29jdGVvbnR4Mi9vdHgyX3R4LmMgY2xlYW5seS4KQXBwbGll ZCBwYXRjaCBkcml2ZXJzL25ldC9vY3Rlb250eDIvb3R4Ml92bGFuLmMgY2xlYW5seS4KQXBwbHlp bmcgcGF0Y2ggZHJpdmVycy9uZXQvb2N0ZW9udHhfZXAvb3R4X2VwX2V0aGRldi5jIHdpdGggMSBy ZWplY3QuLi4KUmVqZWN0ZWQgaHVuayAjMS4KQXBwbHlpbmcgcGF0Y2ggZHJpdmVycy9uZXQvb2N0 ZW9udHhfZXAvb3R4X2VwX3J4dHguYyB3aXRoIDEgcmVqZWN0Li4uCkh1bmsgIzEgYXBwbGllZCBj bGVhbmx5LgpIdW5rICMyIGFwcGxpZWQgY2xlYW5seS4KUmVqZWN0ZWQgaHVuayAjMy4KQXBwbGll ZCBwYXRjaCBkcml2ZXJzL25ldC9wY2FwL3BjYXBfZXRoZGV2LmMgY2xlYW5seS4KQXBwbGllZCBw YXRjaCBkcml2ZXJzL25ldC9wZmUvcGZlX2V0aGRldi5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2gg ZHJpdmVycy9uZXQvcWVkZS9iYXNlL21jcF9wdWJsaWMuaCBjbGVhbmx5LgpBcHBseWluZyBwYXRj aCBkcml2ZXJzL25ldC9xZWRlL3FlZGVfZXRoZGV2LmMgd2l0aCAyIHJlamVjdHMuLi4KSHVuayAj MSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzIgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMzIGFwcGxp ZWQgY2xlYW5seS4KSHVuayAjNCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzUgYXBwbGllZCBjbGVh bmx5LgpIdW5rICM2IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNyBhcHBsaWVkIGNsZWFubHkuCkh1 bmsgIzggYXBwbGllZCBjbGVhbmx5LgpSZWplY3RlZCBodW5rICM5LgpIdW5rICMxMCBhcHBsaWVk IGNsZWFubHkuClJlamVjdGVkIGh1bmsgIzExLgpIdW5rICMxMiBhcHBsaWVkIGNsZWFubHkuCkh1 bmsgIzEzIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTQgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMx NSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzE2IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTcgYXBw bGllZCBjbGVhbmx5LgpIdW5rICMxOCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzE5IGFwcGxpZWQg Y2xlYW5seS4KSHVuayAjMjAgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMyMSBhcHBsaWVkIGNsZWFu bHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvcWVkZS9xZWRlX2ZpbHRlci5jIGNsZWFubHku CkFwcGx5aW5nIHBhdGNoIGRyaXZlcnMvbmV0L3FlZGUvcWVkZV9yeHR4LmMgd2l0aCAxIHJlamVj dC4uLgpSZWplY3RlZCBodW5rICMxLgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L3FlZGUvcWVk ZV9yeHR4LmggY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9yaW5nL3J0ZV9ldGhf cmluZy5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvc2ZjL3NmYy5jIGNsZWFu bHkuCkFwcGx5aW5nIHBhdGNoIGRyaXZlcnMvbmV0L3NmYy9zZmNfZWYxMDBfcnguYyB3aXRoIDEg cmVqZWN0Li4uClJlamVjdGVkIGh1bmsgIzEuCkFwcGx5aW5nIHBhdGNoIGRyaXZlcnMvbmV0L3Nm Yy9zZmNfZWYxMDBfdHguYyB3aXRoIDEgcmVqZWN0Li4uClJlamVjdGVkIGh1bmsgIzEuCkFwcGxp ZWQgcGF0Y2ggZHJpdmVycy9uZXQvc2ZjL3NmY19lZjEwX2Vzc2JfcnguYyBjbGVhbmx5LgpBcHBs aWVkIHBhdGNoIGRyaXZlcnMvbmV0L3NmYy9zZmNfZWYxMF9yeC5jIGNsZWFubHkuCkFwcGxpZWQg cGF0Y2ggZHJpdmVycy9uZXQvc2ZjL3NmY19lZjEwX3R4LmMgY2xlYW5seS4KQXBwbGllZCBwYXRj aCBkcml2ZXJzL25ldC9zZmMvc2ZjX2V0aGRldi5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJp dmVycy9uZXQvc2ZjL3NmY19mbG93LmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25l dC9zZmMvc2ZjX3BvcnQuYyBjbGVhbmx5LgpBcHBseWluZyBwYXRjaCBkcml2ZXJzL25ldC9zZmMv c2ZjX3J4LmMgd2l0aCAxIHJlamVjdC4uLgpIdW5rICMxIGFwcGxpZWQgY2xlYW5seS4KSHVuayAj MiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzMgYXBwbGllZCBjbGVhbmx5LgpSZWplY3RlZCBodW5r ICM0LgpIdW5rICM1IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNiBhcHBsaWVkIGNsZWFubHkuCkh1 bmsgIzcgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM4IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjOSBh cHBsaWVkIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvc2ZjL3NmY190eC5jIGNs ZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvc29mdG5pYy9ydGVfZXRoX3NvZnRuaWMu YyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L3N6ZWRhdGEyL3J0ZV9ldGhfc3pl ZGF0YTIuYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L3RhcC9ydGVfZXRoX3Rh cC5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvdGFwL3RhcF9yc3MuaCBjbGVh bmx5LgpBcHBseWluZyBwYXRjaCBkcml2ZXJzL25ldC90aHVuZGVyeC9uaWN2Zl9ldGhkZXYuYyB3 aXRoIDEgcmVqZWN0Li4uCkh1bmsgIzEgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMyIGFwcGxpZWQg Y2xlYW5seS4KSHVuayAjMyBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzQgYXBwbGllZCBjbGVhbmx5 LgpIdW5rICM1IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNiBhcHBsaWVkIGNsZWFubHkuCkh1bmsg IzcgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM4IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjOSBhcHBs aWVkIGNsZWFubHkuCkh1bmsgIzEwIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTEgYXBwbGllZCBj bGVhbmx5LgpIdW5rICMxMiBhcHBsaWVkIGNsZWFubHkuClJlamVjdGVkIGh1bmsgIzEzLgpIdW5r ICMxNCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzE1IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTYg YXBwbGllZCBjbGVhbmx5LgpIdW5rICMxNyBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzE4IGFwcGxp ZWQgY2xlYW5seS4KQXBwbHlpbmcgcGF0Y2ggZHJpdmVycy9uZXQvdGh1bmRlcngvbmljdmZfZXRo ZGV2Lmggd2l0aCAxIHJlamVjdC4uLgpSZWplY3RlZCBodW5rICMxLgpBcHBseWluZyBwYXRjaCBk cml2ZXJzL25ldC90eGdiZS90eGdiZV9ldGhkZXYuYyB3aXRoIDIgcmVqZWN0cy4uLgpIdW5rICMx IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzMgYXBwbGll ZCBjbGVhbmx5LgpIdW5rICM0IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNSBhcHBsaWVkIGNsZWFu bHkuCkh1bmsgIzYgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM3IGFwcGxpZWQgY2xlYW5seS4KSHVu ayAjOCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzkgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxMCBh cHBsaWVkIGNsZWFubHkuCkh1bmsgIzExIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTIgYXBwbGll ZCBjbGVhbmx5LgpIdW5rICMxMyBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzE0IGFwcGxpZWQgY2xl YW5seS4KSHVuayAjMTUgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxNiBhcHBsaWVkIGNsZWFubHku ClJlamVjdGVkIGh1bmsgIzE3LgpIdW5rICMxOCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzE5IGFw cGxpZWQgY2xlYW5seS4KSHVuayAjMjAgYXBwbGllZCBjbGVhbmx5LgpSZWplY3RlZCBodW5rICMy MS4KSHVuayAjMjIgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMyMyBhcHBsaWVkIGNsZWFubHkuCkh1 bmsgIzI0IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMjUgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMy NiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzI3IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMjggYXBw bGllZCBjbGVhbmx5LgpIdW5rICMyOSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzMwIGFwcGxpZWQg Y2xlYW5seS4KSHVuayAjMzEgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMzMiBhcHBsaWVkIGNsZWFu bHkuCkh1bmsgIzMzIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMzQgYXBwbGllZCBjbGVhbmx5LgpI dW5rICMzNSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzM2IGFwcGxpZWQgY2xlYW5seS4KSHVuayAj MzcgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMzOCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzM5IGFw cGxpZWQgY2xlYW5seS4KSHVuayAjNDAgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM0MSBhcHBsaWVk IGNsZWFubHkuCkh1bmsgIzQyIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNDMgYXBwbGllZCBjbGVh bmx5LgpIdW5rICM0NCBhcHBsaWVkIGNsZWFubHkuCkFwcGx5aW5nIHBhdGNoIGRyaXZlcnMvbmV0 L3R4Z2JlL3R4Z2JlX2V0aGRldi5oIHdpdGggMSByZWplY3QuLi4KUmVqZWN0ZWQgaHVuayAjMS4K QXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC90eGdiZS90eGdiZV9ldGhkZXZfdmYuYyBjbGVhbmx5 LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L3R4Z2JlL3R4Z2JlX2ZkaXIuYyBjbGVhbmx5LgpB cHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L3R4Z2JlL3R4Z2JlX2Zsb3cuYyBjbGVhbmx5LgpBcHBs aWVkIHBhdGNoIGRyaXZlcnMvbmV0L3R4Z2JlL3R4Z2JlX2lwc2VjLmMgY2xlYW5seS4KQXBwbGll ZCBwYXRjaCBkcml2ZXJzL25ldC90eGdiZS90eGdiZV9wZi5jIGNsZWFubHkuCkFwcGx5aW5nIHBh dGNoIGRyaXZlcnMvbmV0L3R4Z2JlL3R4Z2JlX3J4dHguYyB3aXRoIDQgcmVqZWN0cy4uLgpIdW5r ICMxIGFwcGxpZWQgY2xlYW5seS4KUmVqZWN0ZWQgaHVuayAjMi4KSHVuayAjMyBhcHBsaWVkIGNs ZWFubHkuCkh1bmsgIzQgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM1IGFwcGxpZWQgY2xlYW5seS4K SHVuayAjNiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzcgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM4 IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjOSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzEwIGFwcGxp ZWQgY2xlYW5seS4KSHVuayAjMTEgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxMiBhcHBsaWVkIGNs ZWFubHkuCkh1bmsgIzEzIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTQgYXBwbGllZCBjbGVhbmx5 LgpIdW5rICMxNSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzE2IGFwcGxpZWQgY2xlYW5seS4KSHVu ayAjMTcgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxOCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzE5 IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMjAgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMyMSBhcHBs aWVkIGNsZWFubHkuCkh1bmsgIzIyIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMjMgYXBwbGllZCBj bGVhbmx5LgpIdW5rICMyNCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzI1IGFwcGxpZWQgY2xlYW5s eS4KSHVuayAjMjYgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMyNyBhcHBsaWVkIGNsZWFubHkuCkh1 bmsgIzI4IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMjkgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMz MCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzMxIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMzIgYXBw bGllZCBjbGVhbmx5LgpIdW5rICMzMyBhcHBsaWVkIGNsZWFubHkuClJlamVjdGVkIGh1bmsgIzM0 LgpIdW5rICMzNSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzM2IGFwcGxpZWQgY2xlYW5seS4KSHVu ayAjMzcgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMzOCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzM5 IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNDAgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM0MSBhcHBs aWVkIGNsZWFubHkuCkh1bmsgIzQyIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNDMgYXBwbGllZCBj bGVhbmx5LgpIdW5rICM0NCBhcHBsaWVkIGNsZWFubHkuClJlamVjdGVkIGh1bmsgIzQ1LgpIdW5r ICM0NiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzQ3IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNDgg YXBwbGllZCBjbGVhbmx5LgpIdW5rICM0OSBhcHBsaWVkIGNsZWFubHkuClJlamVjdGVkIGh1bmsg IzUwLgpIdW5rICM1MSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzUyIGFwcGxpZWQgY2xlYW5seS4K QXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC90eGdiZS90eGdiZV9yeHR4LmggY2xlYW5seS4KQXBw bGllZCBwYXRjaCBkcml2ZXJzL25ldC90eGdiZS90eGdiZV90bS5jIGNsZWFubHkuCkFwcGxpZWQg cGF0Y2ggZHJpdmVycy9uZXQvdmhvc3QvcnRlX2V0aF92aG9zdC5jIGNsZWFubHkuCkFwcGx5aW5n IHBhdGNoIGRyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fZXRoZGV2LmMgd2l0aCAyIHJlamVjdHMu Li4KSHVuayAjMSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzIgYXBwbGllZCBjbGVhbmx5LgpIdW5r ICMzIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzUgYXBw bGllZCBjbGVhbmx5LgpIdW5rICM2IGFwcGxpZWQgY2xlYW5seS4KUmVqZWN0ZWQgaHVuayAjNy4K SHVuayAjOCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzkgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMx MCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzExIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTIgYXBw bGllZCBjbGVhbmx5LgpIdW5rICMxMyBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzE0IGFwcGxpZWQg Y2xlYW5seS4KSHVuayAjMTUgYXBwbGllZCBjbGVhbmx5LgpSZWplY3RlZCBodW5rICMxNi4KQXBw bHlpbmcgcGF0Y2ggZHJpdmVycy9uZXQvdm14bmV0My92bXhuZXQzX2V0aGRldi5jIHdpdGggMSBy ZWplY3QuLi4KUmVqZWN0ZWQgaHVuayAjMS4KSHVuayAjMiBhcHBsaWVkIGNsZWFubHkuCkh1bmsg IzMgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM0IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNSBhcHBs aWVkIGNsZWFubHkuCkh1bmsgIzYgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM3IGFwcGxpZWQgY2xl YW5seS4KSHVuayAjOCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzkgYXBwbGllZCBjbGVhbmx5LgpI dW5rICMxMCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzExIGFwcGxpZWQgY2xlYW5seS4KSHVuayAj MTIgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxMyBhcHBsaWVkIGNsZWFubHkuCkFwcGxpZWQgcGF0 Y2ggZHJpdmVycy9uZXQvdm14bmV0My92bXhuZXQzX2V0aGRldi5oIGNsZWFubHkuCkFwcGxpZWQg cGF0Y2ggZHJpdmVycy9uZXQvdm14bmV0My92bXhuZXQzX3J4dHguYyBjbGVhbmx5LgpBcHBseWlu ZyBwYXRjaCBleGFtcGxlcy9iYmRldl9hcHAvbWFpbi5jIHdpdGggMSByZWplY3QuLi4KUmVqZWN0 ZWQgaHVuayAjMS4KSHVuayAjMiBhcHBsaWVkIGNsZWFubHkuCkFwcGx5aW5nIHBhdGNoIGV4YW1w bGVzL2JvbmQvbWFpbi5jIHdpdGggMSByZWplY3QuLi4KUmVqZWN0ZWQgaHVuayAjMS4KSHVuayAj MiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzMgYXBwbGllZCBjbGVhbmx5LgpBcHBseWluZyBwYXRj aCBleGFtcGxlcy9kaXN0cmlidXRvci9tYWluLmMgd2l0aCAxIHJlamVjdC4uLgpSZWplY3RlZCBo dW5rICMxLgpIdW5rICMyIGFwcGxpZWQgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBleGFtcGxlcy9l dGh0b29sL2V0aHRvb2wtYXBwL21haW4uYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGV4YW1wbGVz L2V0aHRvb2wvbGliL3J0ZV9ldGh0b29sLmMgY2xlYW5seS4KQXBwbHlpbmcgcGF0Y2ggZXhhbXBs ZXMvZXZlbnRkZXZfcGlwZWxpbmUvcGlwZWxpbmVfd29ya2VyX2dlbmVyaWMuYyB3aXRoIDEgcmVq ZWN0Li4uClJlamVjdGVkIGh1bmsgIzEuCkh1bmsgIzIgYXBwbGllZCBjbGVhbmx5LgpBcHBseWlu ZyBwYXRjaCBleGFtcGxlcy9ldmVudGRldl9waXBlbGluZS9waXBlbGluZV93b3JrZXJfdHguYyB3 aXRoIDEgcmVqZWN0Li4uClJlamVjdGVkIGh1bmsgIzEuCkh1bmsgIzIgYXBwbGllZCBjbGVhbmx5 LgpBcHBsaWVkIHBhdGNoIGV4YW1wbGVzL2Zsb3dfY2xhc3NpZnkvZmxvd19jbGFzc2lmeS5jIGNs ZWFubHkuCkFwcGxpZWQgcGF0Y2ggZXhhbXBsZXMvZmxvd19maWx0ZXJpbmcvbWFpbi5jIGNsZWFu bHkuCkFwcGx5aW5nIHBhdGNoIGV4YW1wbGVzL2lvYXQvaW9hdGZ3ZC5jIHdpdGggMSByZWplY3Qu Li4KUmVqZWN0ZWQgaHVuayAjMS4KSHVuayAjMiBhcHBsaWVkIGNsZWFubHkuCkFwcGx5aW5nIHBh dGNoIGV4YW1wbGVzL2lwX2ZyYWdtZW50YXRpb24vbWFpbi5jIHdpdGggMSByZWplY3QuLi4KUmVq ZWN0ZWQgaHVuayAjMS4KSHVuayAjMiBhcHBsaWVkIGNsZWFubHkuCkFwcGx5aW5nIHBhdGNoIGV4 YW1wbGVzL2lwX3BpcGVsaW5lL2xpbmsuYyB3aXRoIDEgcmVqZWN0Li4uClJlamVjdGVkIGh1bmsg IzEuCkh1bmsgIzIgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMzIGFwcGxpZWQgY2xlYW5seS4KSHVu ayAjNCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzUgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM2IGFw cGxpZWQgY2xlYW5seS4KQXBwbHlpbmcgcGF0Y2ggZXhhbXBsZXMvaXBfcmVhc3NlbWJseS9tYWlu LmMgd2l0aCAxIHJlamVjdC4uLgpSZWplY3RlZCBodW5rICMxLgpIdW5rICMyIGFwcGxpZWQgY2xl YW5seS4KSHVuayAjMyBhcHBsaWVkIGNsZWFubHkuCkFwcGx5aW5nIHBhdGNoIGV4YW1wbGVzL2lw c2VjLXNlY2d3L2lwc2VjLXNlY2d3LmMgd2l0aCAyIHJlamVjdHMuLi4KUmVqZWN0ZWQgaHVuayAj MS4KSHVuayAjMiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzMgYXBwbGllZCBjbGVhbmx5LgpSZWpl Y3RlZCBodW5rICM0LgpIdW5rICM1IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNiBhcHBsaWVkIGNs ZWFubHkuCkh1bmsgIzcgYXBwbGllZCBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGV4YW1wbGVzL2lw c2VjLXNlY2d3L3NhLmMgY2xlYW5seS4KQXBwbHlpbmcgcGF0Y2ggZXhhbXBsZXMvaXB2NF9tdWx0 aWNhc3QvbWFpbi5jIHdpdGggMSByZWplY3QuLi4KUmVqZWN0ZWQgaHVuayAjMS4KSHVuayAjMiBh cHBsaWVkIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZXhhbXBsZXMva25pL21haW4uYyBjbGVhbmx5 LgpBcHBseWluZyBwYXRjaCBleGFtcGxlcy9sMmZ3ZC1jcnlwdG8vbWFpbi5jIHdpdGggMSByZWpl Y3QuLi4KUmVqZWN0ZWQgaHVuayAjMS4KSHVuayAjMiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzMg YXBwbGllZCBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGV4YW1wbGVzL2wyZndkLWV2ZW50L2wyZndk X2NvbW1vbi5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZXhhbXBsZXMvbDJmd2QtZXZlbnQvbWFp bi5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZXhhbXBsZXMvbDJmd2Qtam9ic3RhdHMvbWFpbi5j IGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZXhhbXBsZXMvbDJmd2Qta2VlcGFsaXZlL21haW4uYyBj bGVhbmx5LgpBcHBsaWVkIHBhdGNoIGV4YW1wbGVzL2wyZndkL21haW4uYyBjbGVhbmx5LgpBcHBs eWluZyBwYXRjaCBleGFtcGxlcy9sM2Z3ZC1hY2wvbWFpbi5jIHdpdGggMyByZWplY3RzLi4uClJl amVjdGVkIGh1bmsgIzEuCkh1bmsgIzIgYXBwbGllZCBjbGVhbmx5LgpSZWplY3RlZCBodW5rICMz LgpSZWplY3RlZCBodW5rICM0LgpBcHBseWluZyBwYXRjaCBleGFtcGxlcy9sM2Z3ZC1ncmFwaC9t YWluLmMgd2l0aCAzIHJlamVjdHMuLi4KUmVqZWN0ZWQgaHVuayAjMS4KSHVuayAjMiBhcHBsaWVk IGNsZWFubHkuClJlamVjdGVkIGh1bmsgIzMuClJlamVjdGVkIGh1bmsgIzQuCkFwcGx5aW5nIHBh dGNoIGV4YW1wbGVzL2wzZndkLXBvd2VyL21haW4uYyB3aXRoIDMgcmVqZWN0cy4uLgpSZWplY3Rl ZCBodW5rICMxLgpIdW5rICMyIGFwcGxpZWQgY2xlYW5seS4KUmVqZWN0ZWQgaHVuayAjMy4KUmVq ZWN0ZWQgaHVuayAjNC4KQXBwbGllZCBwYXRjaCBleGFtcGxlcy9sM2Z3ZC9sM2Z3ZF9ldmVudC5j IGNsZWFubHkuCkFwcGx5aW5nIHBhdGNoIGV4YW1wbGVzL2wzZndkL21haW4uYyB3aXRoIDMgcmVq ZWN0cy4uLgpSZWplY3RlZCBodW5rICMxLgpIdW5rICMyIGFwcGxpZWQgY2xlYW5seS4KUmVqZWN0 ZWQgaHVuayAjMy4KUmVqZWN0ZWQgaHVuayAjNC4KQXBwbGllZCBwYXRjaCBleGFtcGxlcy9saW5r X3N0YXR1c19pbnRlcnJ1cHQvbWFpbi5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZXhhbXBsZXMv bXVsdGlfcHJvY2Vzcy9jbGllbnRfc2VydmVyX21wL21wX3NlcnZlci9pbml0LmMgY2xlYW5seS4K QXBwbGllZCBwYXRjaCBleGFtcGxlcy9tdWx0aV9wcm9jZXNzL3N5bW1ldHJpY19tcC9tYWluLmMg Y2xlYW5seS4KQXBwbGllZCBwYXRjaCBleGFtcGxlcy9udGIvbnRiX2Z3ZC5jIGNsZWFubHkuCkFw cGxpZWQgcGF0Y2ggZXhhbXBsZXMvcGFja2V0X29yZGVyaW5nL21haW4uYyBjbGVhbmx5LgpBcHBs eWluZyBwYXRjaCBleGFtcGxlcy9wZXJmb3JtYW5jZS10aHJlYWQvbDNmd2QtdGhyZWFkL21haW4u YyB3aXRoIDMgcmVqZWN0cy4uLgpSZWplY3RlZCBodW5rICMxLgpIdW5rICMyIGFwcGxpZWQgY2xl YW5seS4KUmVqZWN0ZWQgaHVuayAjMy4KUmVqZWN0ZWQgaHVuayAjNC4KQXBwbHlpbmcgcGF0Y2gg ZXhhbXBsZXMvcGlwZWxpbmUvb2JqLmMgd2l0aCAxIHJlamVjdC4uLgpSZWplY3RlZCBodW5rICMx LgpIdW5rICMyIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMyBhcHBsaWVkIGNsZWFubHkuCkh1bmsg IzQgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM1IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNiBhcHBs aWVkIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZXhhbXBsZXMvcHRwY2xpZW50L3B0cGNsaWVudC5j IGNsZWFubHkuCkFwcGx5aW5nIHBhdGNoIGV4YW1wbGVzL3Fvc19tZXRlci9tYWluLmMgd2l0aCAx IHJlamVjdC4uLgpSZWplY3RlZCBodW5rICMxLgpIdW5rICMyIGFwcGxpZWQgY2xlYW5seS4KSHVu ayAjMyBhcHBsaWVkIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZXhhbXBsZXMvcW9zX3NjaGVkL2lu aXQuYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGV4YW1wbGVzL3J4dHhfY2FsbGJhY2tzL21haW4u YyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGV4YW1wbGVzL3NlcnZlcl9ub2RlX2VmZC9zZXJ2ZXIv aW5pdC5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZXhhbXBsZXMvc2tlbGV0b24vYmFzaWNmd2Qu YyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGV4YW1wbGVzL3Zob3N0L21haW4uYyBjbGVhbmx5LgpB cHBsaWVkIHBhdGNoIGV4YW1wbGVzL3ZtX3Bvd2VyX21hbmFnZXIvbWFpbi5jIGNsZWFubHkuCkFw cGxpZWQgcGF0Y2ggZXhhbXBsZXMvdm1kcS9tYWluLmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBl eGFtcGxlcy92bWRxX2RjYi9tYWluLmMgY2xlYW5seS4KQXBwbHlpbmcgcGF0Y2ggbGliL2V0aGRl di9ldGhkZXZfZHJpdmVyLmggd2l0aCAxIHJlamVjdC4uLgpSZWplY3RlZCBodW5rICMxLgpIdW5r ICMyIGFwcGxpZWQgY2xlYW5seS4KQXBwbHlpbmcgcGF0Y2ggbGliL2V0aGRldi9ydGVfZXRoZGV2 LmMgd2l0aCA1IHJlamVjdHMuLi4KSHVuayAjMSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzIgYXBw bGllZCBjbGVhbmx5LgpIdW5rICMzIGFwcGxpZWQgY2xlYW5seS4KUmVqZWN0ZWQgaHVuayAjNC4K SHVuayAjNSBhcHBsaWVkIGNsZWFubHkuClJlamVjdGVkIGh1bmsgIzYuCkh1bmsgIzcgYXBwbGll ZCBjbGVhbmx5LgpIdW5rICM4IGFwcGxpZWQgY2xlYW5seS4KUmVqZWN0ZWQgaHVuayAjOS4KSHVu ayAjMTAgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxMSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzEy IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTMgYXBwbGllZCBjbGVhbmx5LgpSZWplY3RlZCBodW5r ICMxNC4KSHVuayAjMTUgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxNiBhcHBsaWVkIGNsZWFubHku ClJlamVjdGVkIGh1bmsgIzE3LgpIdW5rICMxOCBhcHBsaWVkIGNsZWFubHkuCkFwcGx5aW5nIHBh dGNoIGxpYi9ldGhkZXYvcnRlX2V0aGRldi5oIHdpdGggMjYgcmVqZWN0cy4uLgpIdW5rICMxIGFw cGxpZWQgY2xlYW5seS4KUmVqZWN0ZWQgaHVuayAjMi4KSHVuayAjMyBhcHBsaWVkIGNsZWFubHku Ckh1bmsgIzQgYXBwbGllZCBjbGVhbmx5LgpSZWplY3RlZCBodW5rICM1LgpIdW5rICM2IGFwcGxp ZWQgY2xlYW5seS4KUmVqZWN0ZWQgaHVuayAjNy4KUmVqZWN0ZWQgaHVuayAjOC4KUmVqZWN0ZWQg aHVuayAjOS4KSHVuayAjMTAgYXBwbGllZCBjbGVhbmx5LgpSZWplY3RlZCBodW5rICMxMS4KUmVq ZWN0ZWQgaHVuayAjMTIuClJlamVjdGVkIGh1bmsgIzEzLgpSZWplY3RlZCBodW5rICMxNC4KUmVq ZWN0ZWQgaHVuayAjMTUuClJlamVjdGVkIGh1bmsgIzE2LgpSZWplY3RlZCBodW5rICMxNy4KUmVq ZWN0ZWQgaHVuayAjMTguCkh1bmsgIzE5IGFwcGxpZWQgY2xlYW5seS4KUmVqZWN0ZWQgaHVuayAj MjAuCkh1bmsgIzIxIGFwcGxpZWQgY2xlYW5seS4KUmVqZWN0ZWQgaHVuayAjMjIuClJlamVjdGVk IGh1bmsgIzIzLgpSZWplY3RlZCBodW5rICMyNC4KSHVuayAjMjUgYXBwbGllZCBjbGVhbmx5LgpS ZWplY3RlZCBodW5rICMyNi4KUmVqZWN0ZWQgaHVuayAjMjcuClJlamVjdGVkIGh1bmsgIzI4LgpS ZWplY3RlZCBodW5rICMyOS4KUmVqZWN0ZWQgaHVuayAjMzAuCkh1bmsgIzMxIGFwcGxpZWQgY2xl YW5seS4KUmVqZWN0ZWQgaHVuayAjMzIuClJlamVjdGVkIGh1bmsgIzMzLgpIdW5rICMzNCBhcHBs aWVkIGNsZWFubHkuClJlamVjdGVkIGh1bmsgIzM1LgpIdW5rICMzNiBhcHBsaWVkIGNsZWFubHku Ckh1bmsgIzM3IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMzggYXBwbGllZCBjbGVhbmx5LgpIdW5r ICMzOSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzQwIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNDEg YXBwbGllZCBjbGVhbmx5LgpSZWplY3RlZCBodW5rICM0Mi4KQXBwbGllZCBwYXRjaCBsaWIvZXRo ZGV2L3J0ZV9mbG93LmggY2xlYW5seS4KQXBwbGllZCBwYXRjaCBsaWIvZ3NvL3J0ZV9nc28uYyBj bGVhbmx5LgpBcHBsaWVkIHBhdGNoIGxpYi9nc28vcnRlX2dzby5oIGNsZWFubHkuCkFwcGxpZWQg cGF0Y2ggbGliL21idWYvcnRlX21idWZfY29yZS5oIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggbGli L21idWYvcnRlX21idWZfZHluLmggY2xlYW5seS4KZGlmZiBhL2FwcC90ZXN0LWV2ZW50ZGV2L3Rl c3RfcGVyZl9jb21tb24uYyBiL2FwcC90ZXN0LWV2ZW50ZGV2L3Rlc3RfcGVyZl9jb21tb24uYwko cmVqZWN0ZWQgaHVua3MpCkBAIC02NjgsMTMgKzY2OCwxMyBAQCBwZXJmX2V0aGRldl9zZXR1cChz dHJ1Y3QgZXZ0X3Rlc3QgKnRlc3QsIHN0cnVjdCBldnRfb3B0aW9ucyAqb3B0KQogCXN0cnVjdCB0 ZXN0X3BlcmYgKnQgPSBldnRfdGVzdF9wcml2KHRlc3QpOwogCXN0cnVjdCBydGVfZXRoX2NvbmYg cG9ydF9jb25mID0gewogCQkucnhtb2RlID0gewotCQkJLm1xX21vZGUgPSBFVEhfTVFfUlhfUlNT LAorCQkJLm1xX21vZGUgPSBSVEVfRVRIX01RX1JYX1JTUywKIAkJCS5zcGxpdF9oZHJfc2l6ZSA9 IDAsCiAJCX0sCiAJCS5yeF9hZHZfY29uZiA9IHsKIAkJCS5yc3NfY29uZiA9IHsKIAkJCQkucnNz X2tleSA9IE5VTEwsCi0JCQkJLnJzc19oZiA9IEVUSF9SU1NfSVAsCisJCQkJLnJzc19oZiA9IFJU RV9FVEhfUlNTX0lQLAogCQkJfSwKIAkJfSwKIAl9OwpkaWZmIGEvYXBwL3Rlc3QtcG1kL3Rlc3Rw bWQuYyBiL2FwcC90ZXN0LXBtZC90ZXN0cG1kLmMJKHJlamVjdGVkIGh1bmtzKQpAQCAtNDYwLDEy ICs0NjAsMTIgQEAgbGNvcmVpZF90IGxhdGVuY3lzdGF0c19sY29yZV9pZCA9IC0xOwogc3RydWN0 IHJ0ZV9ldGhfcnhtb2RlIHJ4X21vZGU7CiAKIHN0cnVjdCBydGVfZXRoX3R4bW9kZSB0eF9tb2Rl ID0gewotCS5vZmZsb2FkcyA9IERFVl9UWF9PRkZMT0FEX01CVUZfRkFTVF9GUkVFLAorCS5vZmZs b2FkcyA9IFJURV9FVEhfVFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJFRSwKIH07CiAKLXN0cnVjdCBy dGVfZmRpcl9jb25mIGZkaXJfY29uZiA9IHsKK3N0cnVjdCBydGVfZXRoX2ZkaXJfY29uZiBmZGly X2NvbmYgPSB7CiAJLm1vZGUgPSBSVEVfRkRJUl9NT0RFX05PTkUsCi0JLnBiYWxsb2MgPSBSVEVf RkRJUl9QQkFMTE9DXzY0SywKKwkucGJhbGxvYyA9IFJURV9FVEhfRkRJUl9QQkFMTE9DXzY0SywK IAkuc3RhdHVzID0gUlRFX0ZESVJfUkVQT1JUX1NUQVRVUywKIAkubWFzayA9IHsKIAkJLnZsYW5f dGNpX21hc2sgPSAweEZGRUYsCkBAIC0xNTc4LDkgKzE1NzgsOSBAQCBpbml0X2NvbmZpZ19wb3J0 X29mZmxvYWRzKHBvcnRpZF90IHBpZCwgdWludDMyX3Qgc29ja2V0X2lkKQogCWlmIChyZXQgIT0g MCkKIAkJcnRlX2V4aXQoRVhJVF9GQUlMVVJFLCAicnRlX2V0aF9kZXZfaW5mb19nZXQoKSBmYWls ZWRcbiIpOwogCi0JaWYgKCEocG9ydC0+ZGV2X2luZm8udHhfb2ZmbG9hZF9jYXBhICYgREVWX1RY X09GRkxPQURfTUJVRl9GQVNUX0ZSRUUpKQorCWlmICghKHBvcnQtPmRldl9pbmZvLnR4X29mZmxv YWRfY2FwYSAmIFJURV9FVEhfVFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJFRSkpCiAJCXBvcnQtPmRl dl9jb25mLnR4bW9kZS5vZmZsb2FkcyAmPQotCQkJfkRFVl9UWF9PRkZMT0FEX01CVUZfRkFTVF9G UkVFOworCQkJflJURV9FVEhfVFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJFRTsKIAogCS8qIEFwcGx5 IFJ4IG9mZmxvYWRzIGNvbmZpZ3VyYXRpb24gKi8KIAlmb3IgKGkgPSAwOyBpIDwgcG9ydC0+ZGV2 X2luZm8ubWF4X3J4X3F1ZXVlczsgaSsrKQpAQCAtMzc2OSwxNyArMzc2OSwxNyBAQCBpbml0X3Bv cnRfY29uZmlnKHZvaWQpCiAJCQlpZiAocG9ydC0+ZGV2X2NvbmYucnhfYWR2X2NvbmYucnNzX2Nv bmYucnNzX2hmICE9IDApIHsKIAkJCQlwb3J0LT5kZXZfY29uZi5yeG1vZGUubXFfbW9kZSA9CiAJ CQkJCShlbnVtIHJ0ZV9ldGhfcnhfbXFfbW9kZSkKLQkJCQkJCShyeF9tcV9tb2RlICYgRVRIX01R X1JYX1JTUyk7CisJCQkJCQkocnhfbXFfbW9kZSAmIFJURV9FVEhfTVFfUlhfUlNTKTsKIAkJCX0g ZWxzZSB7Ci0JCQkJcG9ydC0+ZGV2X2NvbmYucnhtb2RlLm1xX21vZGUgPSBFVEhfTVFfUlhfTk9O RTsKKwkJCQlwb3J0LT5kZXZfY29uZi5yeG1vZGUubXFfbW9kZSA9IFJURV9FVEhfTVFfUlhfTk9O RTsKIAkJCQlwb3J0LT5kZXZfY29uZi5yeG1vZGUub2ZmbG9hZHMgJj0KLQkJCQkJCX5ERVZfUlhf T0ZGTE9BRF9SU1NfSEFTSDsKKwkJCQkJCX5SVEVfRVRIX1JYX09GRkxPQURfUlNTX0hBU0g7CiAK IAkJCQlmb3IgKGkgPSAwOwogCQkJCSAgICAgaSA8IHBvcnQtPmRldl9pbmZvLm5iX3J4X3F1ZXVl czsKIAkJCQkgICAgIGkrKykKIAkJCQkJcG9ydC0+cnhfY29uZltpXS5vZmZsb2FkcyAmPQotCQkJ CQkJfkRFVl9SWF9PRkZMT0FEX1JTU19IQVNIOworCQkJCQkJflJURV9FVEhfUlhfT0ZGTE9BRF9S U1NfSEFTSDsKIAkJCX0KIAkJfQogCkBAIC0zOTk3LDcgKzM5OTcsNyBAQCBpbml0X3BvcnRfZGNi X2NvbmZpZyhwb3J0aWRfdCBwaWQsCiAKIAlyeHR4X3BvcnRfY29uZmlnKHBpZCk7CiAJLyogVkxB TiBmaWx0ZXIgKi8KLQlydGVfcG9ydC0+ZGV2X2NvbmYucnhtb2RlLm9mZmxvYWRzIHw9IERFVl9S WF9PRkZMT0FEX1ZMQU5fRklMVEVSOworCXJ0ZV9wb3J0LT5kZXZfY29uZi5yeG1vZGUub2ZmbG9h ZHMgfD0gUlRFX0VUSF9SWF9PRkZMT0FEX1ZMQU5fRklMVEVSOwogCWZvciAoaSA9IDA7IGkgPCBS VEVfRElNKHZsYW5fdGFncyk7IGkrKykKIAkJcnhfdmZ0X3NldChwaWQsIHZsYW5fdGFnc1tpXSwg MSk7CiAKZGlmZiBhL2FwcC90ZXN0LXBtZC90ZXN0cG1kLmggYi9hcHAvdGVzdC1wbWQvdGVzdHBt ZC5oCShyZWplY3RlZCBodW5rcykKQEAgLTQ5Myw3ICs0OTMsNyBAQCBleHRlcm4gbGNvcmVpZF90 IGJpdHJhdGVfbGNvcmVfaWQ7CiBleHRlcm4gdWludDhfdCBiaXRyYXRlX2VuYWJsZWQ7CiAjZW5k aWYKIAotZXh0ZXJuIHN0cnVjdCBydGVfZmRpcl9jb25mIGZkaXJfY29uZjsKK2V4dGVybiBzdHJ1 Y3QgcnRlX2V0aF9mZGlyX2NvbmYgZmRpcl9jb25mOwogCiBleHRlcm4gdWludDMyX3QgbWF4X3J4 X3BrdF9sZW47CiAKZGlmZiBhL2FwcC90ZXN0L3Rlc3RfbGlua19ib25kaW5nLmMgYi9hcHAvdGVz dC90ZXN0X2xpbmtfYm9uZGluZy5jCShyZWplY3RlZCBodW5rcykKQEAgLTEzNCwxMSArMTM0LDEx IEBAIHN0YXRpYyB1aW50MTZfdCB2bGFuX2lkID0gMHgxMDA7CiAKIHN0YXRpYyBzdHJ1Y3QgcnRl X2V0aF9jb25mIGRlZmF1bHRfcG1kX2NvbmYgPSB7CiAJLnJ4bW9kZSA9IHsKLQkJLm1xX21vZGUg PSBFVEhfTVFfUlhfTk9ORSwKKwkJLm1xX21vZGUgPSBSVEVfRVRIX01RX1JYX05PTkUsCiAJCS5z cGxpdF9oZHJfc2l6ZSA9IDAsCiAJfSwKIAkudHhtb2RlID0gewotCQkubXFfbW9kZSA9IEVUSF9N UV9UWF9OT05FLAorCQkubXFfbW9kZSA9IFJURV9FVEhfTVFfVFhfTk9ORSwKIAl9LAogCS5scGJr X21vZGUgPSAwLAogfTsKZGlmZiBhL2FwcC90ZXN0L3Rlc3RfbGlua19ib25kaW5nX21vZGU0LmMg Yi9hcHAvdGVzdC90ZXN0X2xpbmtfYm9uZGluZ19tb2RlNC5jCShyZWplY3RlZCBodW5rcykKQEAg LTEwNywxMSArMTA3LDExIEBAIHN0YXRpYyBzdHJ1Y3QgbGlua19ib25kaW5nX3VuaXR0ZXN0X3Bh cmFtcyB0ZXN0X3BhcmFtcyAgPSB7CiAKIHN0YXRpYyBzdHJ1Y3QgcnRlX2V0aF9jb25mIGRlZmF1 bHRfcG1kX2NvbmYgPSB7CiAJLnJ4bW9kZSA9IHsKLQkJLm1xX21vZGUgPSBFVEhfTVFfUlhfTk9O RSwKKwkJLm1xX21vZGUgPSBSVEVfRVRIX01RX1JYX05PTkUsCiAJCS5zcGxpdF9oZHJfc2l6ZSA9 IDAsCiAJfSwKIAkudHhtb2RlID0gewotCQkubXFfbW9kZSA9IEVUSF9NUV9UWF9OT05FLAorCQku bXFfbW9kZSA9IFJURV9FVEhfTVFfVFhfTk9ORSwKIAl9LAogCS5scGJrX21vZGUgPSAwLAogfTsK ZGlmZiBhL2FwcC90ZXN0L3Rlc3RfbGlua19ib25kaW5nX3Jzc2NvbmYuYyBiL2FwcC90ZXN0L3Rl c3RfbGlua19ib25kaW5nX3Jzc2NvbmYuYwkocmVqZWN0ZWQgaHVua3MpCkBAIC04MCwyNyArODAs MjcgQEAgc3RhdGljIHN0cnVjdCBsaW5rX2JvbmRpbmdfcnNzY29uZl91bml0dGVzdF9wYXJhbXMg dGVzdF9wYXJhbXMgID0gewogICovCiBzdGF0aWMgc3RydWN0IHJ0ZV9ldGhfY29uZiBkZWZhdWx0 X3BtZF9jb25mID0gewogCS5yeG1vZGUgPSB7Ci0JCS5tcV9tb2RlID0gRVRIX01RX1JYX05PTkUs CisJCS5tcV9tb2RlID0gUlRFX0VUSF9NUV9SWF9OT05FLAogCQkuc3BsaXRfaGRyX3NpemUgPSAw LAogCX0sCiAJLnR4bW9kZSA9IHsKLQkJLm1xX21vZGUgPSBFVEhfTVFfVFhfTk9ORSwKKwkJLm1x X21vZGUgPSBSVEVfRVRIX01RX1RYX05PTkUsCiAJfSwKIAkubHBia19tb2RlID0gMCwKIH07CiAK IHN0YXRpYyBzdHJ1Y3QgcnRlX2V0aF9jb25mIHJzc19wbWRfY29uZiA9IHsKIAkucnhtb2RlID0g ewotCQkubXFfbW9kZSA9IEVUSF9NUV9SWF9SU1MsCisJCS5tcV9tb2RlID0gUlRFX0VUSF9NUV9S WF9SU1MsCiAJCS5zcGxpdF9oZHJfc2l6ZSA9IDAsCiAJfSwKIAkudHhtb2RlID0gewotCQkubXFf bW9kZSA9IEVUSF9NUV9UWF9OT05FLAorCQkubXFfbW9kZSA9IFJURV9FVEhfTVFfVFhfTk9ORSwK IAl9LAogCS5yeF9hZHZfY29uZiA9IHsKIAkJLnJzc19jb25mID0gewogCQkJLnJzc19rZXkgPSBO VUxMLAotCQkJLnJzc19oZiA9IEVUSF9SU1NfSVBWNiwKKwkJCS5yc3NfaGYgPSBSVEVfRVRIX1JT U19JUFY2LAogCQl9LAogCX0sCiAJLmxwYmtfbW9kZSA9IDAsCmRpZmYgYS9hcHAvdGVzdC90ZXN0 X3BtZF9wZXJmLmMgYi9hcHAvdGVzdC90ZXN0X3BtZF9wZXJmLmMJKHJlamVjdGVkIGh1bmtzKQpA QCAtNjIsMTEgKzYyLDExIEBAIHN0YXRpYyBzdHJ1Y3QgcnRlX2V0aGVyX2FkZHIgcG9ydHNfZXRo X2FkZHJbUlRFX01BWF9FVEhQT1JUU107CiAKIHN0YXRpYyBzdHJ1Y3QgcnRlX2V0aF9jb25mIHBv cnRfY29uZiA9IHsKIAkucnhtb2RlID0gewotCQkubXFfbW9kZSA9IEVUSF9NUV9SWF9OT05FLAor CQkubXFfbW9kZSA9IFJURV9FVEhfTVFfUlhfTk9ORSwKIAkJLnNwbGl0X2hkcl9zaXplID0gMCwK IAl9LAogCS50eG1vZGUgPSB7Ci0JCS5tcV9tb2RlID0gRVRIX01RX1RYX05PTkUsCisJCS5tcV9t b2RlID0gUlRFX0VUSF9NUV9UWF9OT05FLAogCX0sCiAJLmxwYmtfbW9kZSA9IDEsICAvKiBlbmFi bGUgbG9vcGJhY2sgKi8KIH07CmRpZmYgYS9kb2MvZ3VpZGVzL25pY3MvYm54dC5yc3QgYi9kb2Mv Z3VpZGVzL25pY3MvYm54dC5yc3QJKHJlamVjdGVkIGh1bmtzKQpAQCAtODc3LDIxICs4NzcsMjEg QEAgcHJvY2Vzc2luZy4gVGhpcyBpbXByb3ZlZCBwZXJmb3JtYW5jZSBpcyBkZXJpdmVkIGZyb20g YSBudW1iZXIgb2Ygb3B0aW1pemF0aW9uczoKICAgIMKgKiBUWDogb25seSB0aGUgZm9sbG93aW5n IHJlZHVjZWQgc2V0IG9mIHRyYW5zbWl0IG9mZmxvYWRzIGlzIHN1cHBvcnRlZCBpbgogICAgICAg dmVjdG9yIG1vZGU6OgogCi0gICDCoCAgIERFVl9UWF9PRkZMT0FEX01CVUZfRkFTVF9GUkVFCisg ICDCoCAgIFJURV9FVEhfVFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJFRQogCiAgICDCoCogUlg6IG9u bHkgdGhlIGZvbGxvd2luZyByZWR1Y2VkIHNldCBvZiByZWNlaXZlIG9mZmxvYWRzIGlzIHN1cHBv cnRlZCBpbgogICAgICAgdmVjdG9yIG1vZGUgKG5vdGUgdGhhdCBqdW1ibyBNVFUgaXMgYWxsb3dl ZCBvbmx5IHdoZW4gdGhlIE1UVSBzZXR0aW5nCi0gICAgICBkb2VzIG5vdCByZXF1aXJlIGBERVZf UlhfT0ZGTE9BRF9TQ0FUVEVSYCB0byBiZSBlbmFibGVkKTo6Ci0KLSAgIMKgICAgREVWX1JYX09G RkxPQURfVkxBTl9TVFJJUAotICAgwqAgICBERVZfUlhfT0ZGTE9BRF9LRUVQX0NSQwotICAgwqAg ICBERVZfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNCi0gICDCoCAgIERFVl9SWF9PRkZMT0FEX1VEUF9D S1NVTQotICAgwqAgICBERVZfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0KLSAgIMKgICAgREVWX1JYX09G RkxPQURfT1VURVJfSVBWNF9DS1NVTQotICAgwqAgICBERVZfUlhfT0ZGTE9BRF9PVVRFUl9VRFBf Q0tTVU0KLSAgIMKgICAgREVWX1JYX09GRkxPQURfUlNTX0hBU0gKLSAgIMKgICAgREVWX1JYX09G RkxPQURfVkxBTl9GSUxURVIKKyAgICAgIGRvZXMgbm90IHJlcXVpcmUgYFJURV9FVEhfUlhfT0ZG TE9BRF9TQ0FUVEVSYCB0byBiZSBlbmFibGVkKTo6CisKKyAgIMKgICAgUlRFX0VUSF9SWF9PRkZM T0FEX1ZMQU5fU1RSSVAKKyAgIMKgICAgUlRFX0VUSF9SWF9PRkZMT0FEX0tFRVBfQ1JDCisgICDC oCAgIFJURV9FVEhfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNCisgICDCoCAgIFJURV9FVEhfUlhfT0ZG TE9BRF9VRFBfQ0tTVU0KKyAgIMKgICAgUlRFX0VUSF9SWF9PRkZMT0FEX1RDUF9DS1NVTQorICAg wqAgICBSVEVfRVRIX1JYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTQorICAgwqAgICBSVEVfRVRI X1JYX09GRkxPQURfT1VURVJfVURQX0NLU1VNCisgICDCoCAgIFJURV9FVEhfUlhfT0ZGTE9BRF9S U1NfSEFTSAorICAgwqAgICBSVEVfRVRIX1JYX09GRkxPQURfVkxBTl9GSUxURVIKIAogVGhlIEJO WFQgVmVjdG9yIFBNRCBpcyBlbmFibGVkIGluIERQREsgYnVpbGRzIGJ5IGRlZmF1bHQuIFRoZSBk ZWNpc2lvbiB0byBlbmFibGUKIHZlY3RvciBwcm9jZXNzaW5nIGlzIG1hZGUgYXQgcnVuLXRpbWUg d2hlbiB0aGUgcG9ydCBpcyBzdGFydGVkOyBpZiBubyB0cmFuc21pdApkaWZmIGEvZG9jL2d1aWRl cy9uaWNzL2ZlYXR1cmVzLnJzdCBiL2RvYy9ndWlkZXMvbmljcy9mZWF0dXJlcy5yc3QJKHJlamVj dGVkIGh1bmtzKQpAQCAtNjAzLDE1ICs2MDMsMTUgQEAgSW5uZXIgTDQgY2hlY2tzdW0KIAogU3Vw cG9ydHMgaW5uZXIgcGFja2V0IEw0IGNoZWNrc3VtLgogCi0qICoqW3VzZXNdICAgICBydGVfZXRo X3J4Y29uZixydGVfZXRoX3J4bW9kZSoqOiBgYG9mZmxvYWRzOkRFVl9SWF9PRkZMT0FEX09VVEVS X1VEUF9DS1NVTWBgLgorKiAqKlt1c2VzXSAgICAgcnRlX2V0aF9yeGNvbmYscnRlX2V0aF9yeG1v ZGUqKjogYGBvZmZsb2FkczpSVEVfRVRIX1JYX09GRkxPQURfT1VURVJfVURQX0NLU1VNYGAuCiAq ICoqW3Byb3ZpZGVzXSBtYnVmKio6IGBgbWJ1Zi5vbF9mbGFnczpQS1RfUlhfT1VURVJfTDRfQ0tT VU1fVU5LTk9XTmBgIHwKICAgYGBQS1RfUlhfT1VURVJfTDRfQ0tTVU1fQkFEYGAgfCBgYFBLVF9S WF9PVVRFUl9MNF9DS1NVTV9HT09EYGAgfCBgYFBLVF9SWF9PVVRFUl9MNF9DS1NVTV9JTlZBTElE YGAuCi0qICoqW3VzZXNdICAgICBydGVfZXRoX3R4Y29uZixydGVfZXRoX3R4bW9kZSoqOiBgYG9m ZmxvYWRzOkRFVl9UWF9PRkZMT0FEX09VVEVSX1VEUF9DS1NVTWBgLgorKiAqKlt1c2VzXSAgICAg cnRlX2V0aF90eGNvbmYscnRlX2V0aF90eG1vZGUqKjogYGBvZmZsb2FkczpSVEVfRVRIX1RYX09G RkxPQURfT1VURVJfVURQX0NLU1VNYGAuCiAqICoqW3VzZXNdICAgICBtYnVmKio6IGBgbWJ1Zi5v bF9mbGFnczpQS1RfVFhfT1VURVJfSVBWNGBgIHwgYGBQS1RfVFhfT1VURVJfSVBWNmBgLgogICBg YG1idWYub2xfZmxhZ3M6UEtUX1RYX09VVEVSX1VEUF9DS1NVTWBgLgogKiAqKlt1c2VzXSAgICAg bWJ1ZioqOiBgYG1idWYub3V0ZXJfbDJfbGVuYGAsIGBgbWJ1Zi5vdXRlcl9sM19sZW5gYC4KLSog KipbcHJvdmlkZXNdIHJ0ZV9ldGhfZGV2X2luZm8qKjogYGByeF9vZmZsb2FkX2NhcGEscnhfcXVl dWVfb2ZmbG9hZF9jYXBhOkRFVl9SWF9PRkZMT0FEX09VVEVSX1VEUF9DS1NVTWBgLAotICBgYHR4 X29mZmxvYWRfY2FwYSx0eF9xdWV1ZV9vZmZsb2FkX2NhcGE6REVWX1RYX09GRkxPQURfT1VURVJf VURQX0NLU1VNYGAuCisqICoqW3Byb3ZpZGVzXSBydGVfZXRoX2Rldl9pbmZvKio6IGBgcnhfb2Zm bG9hZF9jYXBhLHJ4X3F1ZXVlX29mZmxvYWRfY2FwYTpSVEVfRVRIX1JYX09GRkxPQURfT1VURVJf VURQX0NLU1VNYGAsCisgIGBgdHhfb2ZmbG9hZF9jYXBhLHR4X3F1ZXVlX29mZmxvYWRfY2FwYTpS VEVfRVRIX1RYX09GRkxPQURfT1VURVJfVURQX0NLU1VNYGAuCiAKIAogLi4gX25pY19mZWF0dXJl c19zaGFyZWRfcnhfcXVldWU6CmRpZmYgYS9kb2MvZ3VpZGVzL25pY3MvbWx4NS5yc3QgYi9kb2Mv Z3VpZGVzL25pY3MvbWx4NS5yc3QJKHJlamVjdGVkIGh1bmtzKQpAQCAtNjExLDcgKzYxMSw3IEBA IERyaXZlciBvcHRpb25zCiAgIHNtYWxsLXBhY2tldCB0cmFmZmljLgogCiAgIFdoZW4gTVBSUSBp cyBlbmFibGVkLCBNVFUgY2FuIGJlIGxhcmdlciB0aGFuIHRoZSBzaXplIG9mCi0gIHVzZXItcHJv dmlkZWQgbWJ1ZiBldmVuIGlmIERFVl9SWF9PRkZMT0FEX1NDQVRURVIgaXNuJ3QgZW5hYmxlZC4g UE1EIHdpbGwKKyAgdXNlci1wcm92aWRlZCBtYnVmIGV2ZW4gaWYgUlRFX0VUSF9SWF9PRkZMT0FE X1NDQVRURVIgaXNuJ3QgZW5hYmxlZC4gUE1EIHdpbGwKICAgY29uZmlndXJlIGxhcmdlIHN0cmlk ZSBzaXplIGVub3VnaCB0byBhY2NvbW1vZGF0ZSBNVFUgYXMgbG9uZyBhcwogICBkZXZpY2UgYWxs b3dzLiBOb3RlIHRoYXQgdGhpcyBjYW4gd2FzdGUgc3lzdGVtIG1lbW9yeSBjb21wYXJlZCB0byBl bmFibGluZyBSeAogICBzY2F0dGVyIGFuZCBtdWx0aS1zZWdtZW50IHBhY2tldC4KZGlmZiBhL2Ry aXZlcnMvbmV0L2F0bGFudGljL2F0bF9ldGhkZXYuYyBiL2RyaXZlcnMvbmV0L2F0bGFudGljL2F0 bF9ldGhkZXYuYwkocmVqZWN0ZWQgaHVua3MpCkBAIC0xNTQsMjAgKzE1NCwyMCBAQCBzdGF0aWMg c3RydWN0IHJ0ZV9wY2lfZHJpdmVyIHJ0ZV9hdGxfcG1kID0gewogCS5yZW1vdmUgPSBldGhfYXRs X3BjaV9yZW1vdmUsCiB9OwogCi0jZGVmaW5lIEFUTF9SWF9PRkZMT0FEUyAoREVWX1JYX09GRkxP QURfVkxBTl9TVFJJUCBcCi0JCQl8IERFVl9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0gXAotCQkJfCBE RVZfUlhfT0ZGTE9BRF9VRFBfQ0tTVU0gXAotCQkJfCBERVZfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0g XAotCQkJfCBERVZfUlhfT0ZGTE9BRF9NQUNTRUNfU1RSSVAgXAotCQkJfCBERVZfUlhfT0ZGTE9B RF9WTEFOX0ZJTFRFUikKLQotI2RlZmluZSBBVExfVFhfT0ZGTE9BRFMgKERFVl9UWF9PRkZMT0FE X1ZMQU5fSU5TRVJUIFwKLQkJCXwgREVWX1RYX09GRkxPQURfSVBWNF9DS1NVTSBcCi0JCQl8IERF Vl9UWF9PRkZMT0FEX1VEUF9DS1NVTSBcCi0JCQl8IERFVl9UWF9PRkZMT0FEX1RDUF9DS1NVTSBc Ci0JCQl8IERFVl9UWF9PRkZMT0FEX1RDUF9UU08gXAotCQkJfCBERVZfVFhfT0ZGTE9BRF9NQUNT RUNfSU5TRVJUIFwKLQkJCXwgREVWX1RYX09GRkxPQURfTVVMVElfU0VHUykKKyNkZWZpbmUgQVRM X1JYX09GRkxPQURTIChSVEVfRVRIX1JYX09GRkxPQURfVkxBTl9TVFJJUCBcCisJCQl8IFJURV9F VEhfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNIFwKKwkJCXwgUlRFX0VUSF9SWF9PRkZMT0FEX1VEUF9D S1NVTSBcCisJCQl8IFJURV9FVEhfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0gXAorCQkJfCBSVEVfRVRI X1JYX09GRkxPQURfTUFDU0VDX1NUUklQIFwKKwkJCXwgUlRFX0VUSF9SWF9PRkZMT0FEX1ZMQU5f RklMVEVSKQorCisjZGVmaW5lIEFUTF9UWF9PRkZMT0FEUyAoUlRFX0VUSF9UWF9PRkZMT0FEX1ZM QU5fSU5TRVJUIFwKKwkJCXwgUlRFX0VUSF9UWF9PRkZMT0FEX0lQVjRfQ0tTVU0gXAorCQkJfCBS VEVfRVRIX1RYX09GRkxPQURfVURQX0NLU1VNIFwKKwkJCXwgUlRFX0VUSF9UWF9PRkZMT0FEX1RD UF9DS1NVTSBcCisJCQl8IFJURV9FVEhfVFhfT0ZGTE9BRF9UQ1BfVFNPIFwKKwkJCXwgUlRFX0VU SF9UWF9PRkZMT0FEX01BQ1NFQ19JTlNFUlQgXAorCQkJfCBSVEVfRVRIX1RYX09GRkxPQURfTVVM VElfU0VHUykKIAogI2RlZmluZSBTRlBfRUVQUk9NX1NJWkUgMHgxMDAKIApkaWZmIGEvZHJpdmVy cy9uZXQvYXhnYmUvYXhnYmVfZXRoZGV2LmMgYi9kcml2ZXJzL25ldC9heGdiZS9heGdiZV9ldGhk ZXYuYwkocmVqZWN0ZWQgaHVua3MpCkBAIC0zODUsNyArMzg1LDcgQEAgYXhnYmVfZGV2X3N0YXJ0 KHN0cnVjdCBydGVfZXRoX2RldiAqZGV2KQogCXJ0ZV9iaXRfcmVsYXhlZF9jbGVhcjMyKEFYR0JF X0RPV04sICZwZGF0YS0+ZGV2X3N0YXRlKTsKIAogCW1heF9wa3RfbGVuID0gZGV2X2RhdGEtPm10 dSArIFJURV9FVEhFUl9IRFJfTEVOICsgUlRFX0VUSEVSX0NSQ19MRU47Ci0JaWYgKChkZXZfZGF0 YS0+ZGV2X2NvbmYucnhtb2RlLm9mZmxvYWRzICYgREVWX1JYX09GRkxPQURfU0NBVFRFUikgfHwK KwlpZiAoKGRldl9kYXRhLT5kZXZfY29uZi5yeG1vZGUub2ZmbG9hZHMgJiBSVEVfRVRIX1JYX09G RkxPQURfU0NBVFRFUikgfHwKIAkJCQltYXhfcGt0X2xlbiA+IHBkYXRhLT5yeF9idWZfc2l6ZSkK IAkJZGV2X2RhdGEtPnNjYXR0ZXJlZF9yeCA9IDE7CiAKQEAgLTEyMDgsMjQgKzEyMDgsMjQgQEAg YXhnYmVfZGV2X2luZm9fZ2V0KHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCBzdHJ1Y3QgcnRlX2V0 aF9kZXZfaW5mbyAqZGV2X2luZm8pCiAJZGV2X2luZm8tPm1heF9yeF9wa3RsZW4gPSBBWEdCRV9S WF9NQVhfQlVGX1NJWkU7CiAJZGV2X2luZm8tPm1heF9tYWNfYWRkcnMgPSBwZGF0YS0+aHdfZmVh dC5hZGRuX21hYyArIDE7CiAJZGV2X2luZm8tPm1heF9oYXNoX21hY19hZGRycyA9IHBkYXRhLT5o d19mZWF0Lmhhc2hfdGFibGVfc2l6ZTsKLQlkZXZfaW5mby0+c3BlZWRfY2FwYSA9ICBFVEhfTElO S19TUEVFRF8xMEc7CisJZGV2X2luZm8tPnNwZWVkX2NhcGEgPSBSVEVfRVRIX0xJTktfU1BFRURf MTBHOwogCiAJZGV2X2luZm8tPnJ4X29mZmxvYWRfY2FwYSA9Ci0JCURFVl9SWF9PRkZMT0FEX1ZM QU5fU1RSSVAgfAotCQlERVZfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUiB8Ci0JCURFVl9SWF9PRkZM T0FEX1ZMQU5fRVhURU5EIHwKLQkJREVWX1JYX09GRkxPQURfSVBWNF9DS1NVTSB8Ci0JCURFVl9S WF9PRkZMT0FEX1VEUF9DS1NVTSAgfAotCQlERVZfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0gIHwKLQkJ REVWX1JYX09GRkxPQURfU0NBVFRFUgkgIHwKLQkJREVWX1JYX09GRkxPQURfS0VFUF9DUkM7CisJ CVJURV9FVEhfUlhfT0ZGTE9BRF9WTEFOX1NUUklQIHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX1ZM QU5fRklMVEVSIHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX1ZMQU5fRVhURU5EIHwKKwkJUlRFX0VU SF9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAorCQlSVEVfRVRIX1JYX09GRkxPQURfVURQX0NLU1VN ICB8CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0gIHwKKwkJUlRFX0VUSF9SWF9PRkZM T0FEX1NDQVRURVIJICB8CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9LRUVQX0NSQzsKIAogCWRldl9p bmZvLT50eF9vZmZsb2FkX2NhcGEgPQotCQlERVZfVFhfT0ZGTE9BRF9WTEFOX0lOU0VSVCB8Ci0J CURFVl9UWF9PRkZMT0FEX1FJTlFfSU5TRVJUIHwKLQkJREVWX1RYX09GRkxPQURfSVBWNF9DS1NV TSAgfAotCQlERVZfVFhfT0ZGTE9BRF9VRFBfQ0tTVU0gICB8Ci0JCURFVl9UWF9PRkZMT0FEX1RD UF9DS1NVTTsKKwkJUlRFX0VUSF9UWF9PRkZMT0FEX1ZMQU5fSU5TRVJUIHwKKwkJUlRFX0VUSF9U WF9PRkZMT0FEX1FJTlFfSU5TRVJUIHwKKwkJUlRFX0VUSF9UWF9PRkZMT0FEX0lQVjRfQ0tTVU0g IHwKKwkJUlRFX0VUSF9UWF9PRkZMT0FEX1VEUF9DS1NVTSAgIHwKKwkJUlRFX0VUSF9UWF9PRkZM T0FEX1RDUF9DS1NVTTsKIAogCWlmIChwZGF0YS0+aHdfZmVhdC5yc3MpIHsKIAkJZGV2X2luZm8t PmZsb3dfdHlwZV9yc3Nfb2ZmbG9hZHMgPSBBWEdCRV9SU1NfT0ZGTE9BRDsKZGlmZiBhL2RyaXZl cnMvbmV0L2JueDJ4L2JueDJ4X2V0aGRldi5jIGIvZHJpdmVycy9uZXQvYm54MngvYm54MnhfZXRo ZGV2LmMJKHJlamVjdGVkIGh1bmtzKQpAQCAtNTM0LDcgKzUzNCw3IEBAIGJueDJ4X2Rldl9pbmZv c19nZXQoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIHN0cnVjdCBydGVfZXRoX2Rldl9pbmZvICpk ZXZfaW5mbykKIAlkZXZfaW5mby0+bWluX3J4X2J1ZnNpemUgPSBCTlgyWF9NSU5fUlhfQlVGX1NJ WkU7CiAJZGV2X2luZm8tPm1heF9yeF9wa3RsZW4gID0gQk5YMlhfTUFYX1JYX1BLVF9MRU47CiAJ ZGV2X2luZm8tPm1heF9tYWNfYWRkcnMgID0gQk5YMlhfTUFYX01BQ19BRERSUzsKLQlkZXZfaW5m by0+c3BlZWRfY2FwYSA9IEVUSF9MSU5LX1NQRUVEXzEwRyB8IEVUSF9MSU5LX1NQRUVEXzIwRzsK KwlkZXZfaW5mby0+c3BlZWRfY2FwYSA9IFJURV9FVEhfTElOS19TUEVFRF8xMEcgfCBSVEVfRVRI X0xJTktfU1BFRURfMjBHOwogCiAJZGV2X2luZm8tPnJ4X2Rlc2NfbGltLm5iX21heCA9IE1BWF9S WF9BVkFJTDsKIAlkZXZfaW5mby0+cnhfZGVzY19saW0ubmJfbWluID0gTUlOX1JYX1NJWkVfTk9O VFBBOwpkaWZmIGEvZHJpdmVycy9uZXQvYm54dC9ibnh0LmggYi9kcml2ZXJzL25ldC9ibnh0L2Ju eHQuaAkocmVqZWN0ZWQgaHVua3MpCkBAIC01NjksMzcgKzU2OSwzNyBAQCBzdHJ1Y3QgYm54dF9y ZXBfaW5mbyB7CiAjZGVmaW5lIEJOWFRfRldfU1RBVFVTX1NIVVRET1dOCQkweDEwMDAwMAogCiAj ZGVmaW5lIEJOWFRfRVRIX1JTU19TVVBQT1JUICgJXAotCUVUSF9SU1NfSVBWNCB8CQlcCi0JRVRI X1JTU19OT05GUkFHX0lQVjRfVENQIHwJXAotCUVUSF9SU1NfTk9ORlJBR19JUFY0X1VEUCB8CVwK LQlFVEhfUlNTX0lQVjYgfAkJXAotCUVUSF9SU1NfTk9ORlJBR19JUFY2X1RDUCB8CVwKLQlFVEhf UlNTX05PTkZSQUdfSVBWNl9VRFAgfAlcCi0JRVRIX1JTU19MRVZFTF9NQVNLKQotCi0jZGVmaW5l IEJOWFRfREVWX1RYX09GRkxPQURfU1VQUE9SVCAoREVWX1RYX09GRkxPQURfSVBWNF9DS1NVTSB8 IFwKLQkJCQkgICAgIERFVl9UWF9PRkZMT0FEX1RDUF9DS1NVTSB8IFwKLQkJCQkgICAgIERFVl9U WF9PRkZMT0FEX1VEUF9DS1NVTSB8IFwKLQkJCQkgICAgIERFVl9UWF9PRkZMT0FEX1RDUF9UU08g fCBcCi0JCQkJICAgICBERVZfVFhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNIHwgXAotCQkJCSAg ICAgREVWX1RYX09GRkxPQURfVlhMQU5fVE5MX1RTTyB8IFwKLQkJCQkgICAgIERFVl9UWF9PRkZM T0FEX0dSRV9UTkxfVFNPIHwgXAotCQkJCSAgICAgREVWX1RYX09GRkxPQURfSVBJUF9UTkxfVFNP IHwgXAotCQkJCSAgICAgREVWX1RYX09GRkxPQURfR0VORVZFX1ROTF9UU08gfCBcCi0JCQkJICAg ICBERVZfVFhfT0ZGTE9BRF9RSU5RX0lOU0VSVCB8IFwKLQkJCQkgICAgIERFVl9UWF9PRkZMT0FE X01VTFRJX1NFR1MpCi0KLSNkZWZpbmUgQk5YVF9ERVZfUlhfT0ZGTE9BRF9TVVBQT1JUIChERVZf UlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUiB8IFwKLQkJCQkgICAgIERFVl9SWF9PRkZMT0FEX0lQVjRf Q0tTVU0gfCBcCi0JCQkJICAgICBERVZfUlhfT0ZGTE9BRF9VRFBfQ0tTVU0gfCBcCi0JCQkJICAg ICBERVZfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0gfCBcCi0JCQkJICAgICBERVZfUlhfT0ZGTE9BRF9P VVRFUl9JUFY0X0NLU1VNIHwgXAotCQkJCSAgICAgREVWX1JYX09GRkxPQURfT1VURVJfVURQX0NL U1VNIHwgXAotCQkJCSAgICAgREVWX1JYX09GRkxPQURfS0VFUF9DUkMgfCBcCi0JCQkJICAgICBE RVZfUlhfT0ZGTE9BRF9WTEFOX0VYVEVORCB8IFwKLQkJCQkgICAgIERFVl9SWF9PRkZMT0FEX1RD UF9MUk8gfCBcCi0JCQkJICAgICBERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSIHwgXAotCQkJCSAgICAg REVWX1JYX09GRkxPQURfUlNTX0hBU0gpCisJUlRFX0VUSF9SU1NfSVBWNCB8CQlcCisJUlRFX0VU SF9SU1NfTk9ORlJBR19JUFY0X1RDUCB8CVwKKwlSVEVfRVRIX1JTU19OT05GUkFHX0lQVjRfVURQ IHwJXAorCVJURV9FVEhfUlNTX0lQVjYgfAkJXAorCVJURV9FVEhfUlNTX05PTkZSQUdfSVBWNl9U Q1AgfAlcCisJUlRFX0VUSF9SU1NfTk9ORlJBR19JUFY2X1VEUCB8CVwKKwlSVEVfRVRIX1JTU19M RVZFTF9NQVNLKQorCisjZGVmaW5lIEJOWFRfREVWX1RYX09GRkxPQURfU1VQUE9SVCAoUlRFX0VU SF9UWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfCBcCisJCQkJICAgICBSVEVfRVRIX1RYX09GRkxPQURf VENQX0NLU1VNIHwgXAorCQkJCSAgICAgUlRFX0VUSF9UWF9PRkZMT0FEX1VEUF9DS1NVTSB8IFwK KwkJCQkgICAgIFJURV9FVEhfVFhfT0ZGTE9BRF9UQ1BfVFNPIHwgXAorCQkJCSAgICAgUlRFX0VU SF9UWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gfCBcCisJCQkJICAgICBSVEVfRVRIX1RYX09G RkxPQURfVlhMQU5fVE5MX1RTTyB8IFwKKwkJCQkgICAgIFJURV9FVEhfVFhfT0ZGTE9BRF9HUkVf VE5MX1RTTyB8IFwKKwkJCQkgICAgIFJURV9FVEhfVFhfT0ZGTE9BRF9JUElQX1ROTF9UU08gfCBc CisJCQkJICAgICBSVEVfRVRIX1RYX09GRkxPQURfR0VORVZFX1ROTF9UU08gfCBcCisJCQkJICAg ICBSVEVfRVRIX1RYX09GRkxPQURfUUlOUV9JTlNFUlQgfCBcCisJCQkJICAgICBSVEVfRVRIX1RY X09GRkxPQURfTVVMVElfU0VHUykKKworI2RlZmluZSBCTlhUX0RFVl9SWF9PRkZMT0FEX1NVUFBP UlQgKFJURV9FVEhfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUiB8IFwKKwkJCQkgICAgIFJURV9FVEhf UlhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwgXAorCQkJCSAgICAgUlRFX0VUSF9SWF9PRkZMT0FEX1VE UF9DS1NVTSB8IFwKKwkJCQkgICAgIFJURV9FVEhfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0gfCBcCisJ CQkJICAgICBSVEVfRVRIX1JYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTSB8IFwKKwkJCQkgICAg IFJURV9FVEhfUlhfT0ZGTE9BRF9PVVRFUl9VRFBfQ0tTVU0gfCBcCisJCQkJICAgICBSVEVfRVRI X1JYX09GRkxPQURfS0VFUF9DUkMgfCBcCisJCQkJICAgICBSVEVfRVRIX1JYX09GRkxPQURfVkxB Tl9FWFRFTkQgfCBcCisJCQkJICAgICBSVEVfRVRIX1JYX09GRkxPQURfVENQX0xSTyB8IFwKKwkJ CQkgICAgIFJURV9FVEhfUlhfT0ZGTE9BRF9TQ0FUVEVSIHwgXAorCQkJCSAgICAgUlRFX0VUSF9S WF9PRkZMT0FEX1JTU19IQVNIKQogCiAjZGVmaW5lIEJOWFRfSFdSTV9TSE9SVF9SRVFfTEVOCQlz aXplb2Yoc3RydWN0IGh3cm1fc2hvcnRfaW5wdXQpCiAKZGlmZiBhL2RyaXZlcnMvbmV0L2JueHQv Ym54dF9ldGhkZXYuYyBiL2RyaXZlcnMvbmV0L2JueHQvYm54dF9ldGhkZXYuYwkocmVqZWN0ZWQg aHVua3MpCkBAIC0xMTQ1LDE1ICsxMTQ1LDE1IEBAIHN0YXRpYyBpbnQgYm54dF9kZXZfY29uZmln dXJlX29wKHN0cnVjdCBydGVfZXRoX2RldiAqZXRoX2RldikKIAkgICAgKHVpbnQzMl90KShldGhf ZGV2LT5kYXRhLT5uYl9yeF9xdWV1ZXMpID4gYnAtPm1heF9yaW5nX2dycHMpCiAJCWdvdG8gcmVz b3VyY2VfZXJyb3I7CiAKLQlpZiAoIShldGhfZGV2LT5kYXRhLT5kZXZfY29uZi5yeG1vZGUubXFf bW9kZSAmIEVUSF9NUV9SWF9SU1MpICYmCisJaWYgKCEoZXRoX2Rldi0+ZGF0YS0+ZGV2X2NvbmYu cnhtb2RlLm1xX21vZGUgJiBSVEVfRVRIX01RX1JYX1JTUykgJiYKIAkgICAgYnAtPm1heF92bmlj cyA8IGV0aF9kZXYtPmRhdGEtPm5iX3J4X3F1ZXVlcykKIAkJZ290byByZXNvdXJjZV9lcnJvcjsK IAogCWJwLT5yeF9jcF9ucl9yaW5ncyA9IGJwLT5yeF9ucl9yaW5nczsKIAlicC0+dHhfY3BfbnJf cmluZ3MgPSBicC0+dHhfbnJfcmluZ3M7CiAKLQlpZiAoZXRoX2Rldi0+ZGF0YS0+ZGV2X2NvbmYu cnhtb2RlLm1xX21vZGUgJiBFVEhfTVFfUlhfUlNTX0ZMQUcpCi0JCXJ4X29mZmxvYWRzIHw9IERF Vl9SWF9PRkZMT0FEX1JTU19IQVNIOworCWlmIChldGhfZGV2LT5kYXRhLT5kZXZfY29uZi5yeG1v ZGUubXFfbW9kZSAmIFJURV9FVEhfTVFfUlhfUlNTX0ZMQUcpCisJCXJ4X29mZmxvYWRzIHw9IFJU RV9FVEhfUlhfT0ZGTE9BRF9SU1NfSEFTSDsKIAlldGhfZGV2LT5kYXRhLT5kZXZfY29uZi5yeG1v ZGUub2ZmbG9hZHMgPSByeF9vZmZsb2FkczsKIAogCWJueHRfbXR1X3NldF9vcChldGhfZGV2LCBl dGhfZGV2LT5kYXRhLT5tdHUpOwpAQCAtMTI0NywxNSArMTI0NywxNSBAQCBibnh0X3JlY2VpdmVf ZnVuY3Rpb24oc3RydWN0IHJ0ZV9ldGhfZGV2ICpldGhfZGV2KQogCSAqIGEgbGltaXRlZCBzdWJz ZXQgaGF2ZSBiZWVuIGVuYWJsZWQuCiAJICovCiAJaWYgKGV0aF9kZXYtPmRhdGEtPmRldl9jb25m LnJ4bW9kZS5vZmZsb2FkcyAmCi0JCX4oREVWX1JYX09GRkxPQURfVkxBTl9TVFJJUCB8Ci0JCSAg REVWX1JYX09GRkxPQURfS0VFUF9DUkMgfAotCQkgIERFVl9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0g fAotCQkgIERFVl9SWF9PRkZMT0FEX1VEUF9DS1NVTSB8Ci0JCSAgREVWX1JYX09GRkxPQURfVENQ X0NLU1VNIHwKLQkJICBERVZfUlhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNIHwKLQkJICBERVZf UlhfT0ZGTE9BRF9PVVRFUl9VRFBfQ0tTVU0gfAotCQkgIERFVl9SWF9PRkZMT0FEX1JTU19IQVNI IHwKLQkJICBERVZfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUikpCisJCX4oUlRFX0VUSF9SWF9PRkZM T0FEX1ZMQU5fU1RSSVAgfAorCQkgIFJURV9FVEhfUlhfT0ZGTE9BRF9LRUVQX0NSQyB8CisJCSAg UlRFX0VUSF9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAorCQkgIFJURV9FVEhfUlhfT0ZGTE9BRF9V RFBfQ0tTVU0gfAorCQkgIFJURV9FVEhfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0gfAorCQkgIFJURV9F VEhfUlhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNIHwKKwkJICBSVEVfRVRIX1JYX09GRkxPQURf T1VURVJfVURQX0NLU1VNIHwKKwkJICBSVEVfRVRIX1JYX09GRkxPQURfUlNTX0hBU0ggfAorCQkg IFJURV9FVEhfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUikpCiAJCWdvdG8gdXNlX3NjYWxhcl9yeDsK IAogI2lmIGRlZmluZWQoUlRFX0FSQ0hfWDg2KSAmJiBkZWZpbmVkKENDX0FWWDJfU1VQUE9SVCkK ZGlmZiBhL2RyaXZlcnMvbmV0L2JueHQvYm54dF9mbG93LmMgYi9kcml2ZXJzL25ldC9ibnh0L2Ju eHRfZmxvdy5jCShyZWplY3RlZCBodW5rcykKQEAgLTExNzcsNyArMTE3Nyw3IEBAIGJueHRfdm5p Y19yc3NfY2ZnX3VwZGF0ZShzdHJ1Y3QgYm54dCAqYnAsCiAJfQogCiAJLyogSWYgUlNTIHR5cGVz IGlzIDAsIHVzZSBhIGJlc3QgZWZmb3J0IGNvbmZpZ3VyYXRpb24gKi8KLQl0eXBlcyA9IHJzcy0+ dHlwZXMgPyByc3MtPnR5cGVzIDogRVRIX1JTU19JUFY0OworCXR5cGVzID0gcnNzLT50eXBlcyA/ IHJzcy0+dHlwZXMgOiBSVEVfRVRIX1JTU19JUFY0OwogCiAJaGFzaF90eXBlID0gYm54dF9ydGVf dG9faHdybV9oYXNoX3R5cGVzKHR5cGVzKTsKIApkaWZmIGEvZHJpdmVycy9uZXQvYm54dC9ibnh0 X3JpbmcuYyBiL2RyaXZlcnMvbmV0L2JueHQvYm54dF9yaW5nLmMJKHJlamVjdGVkIGh1bmtzKQpA QCAtMTg3LDcgKzE4Nyw3IEBAIGludCBibnh0X2FsbG9jX3JpbmdzKHN0cnVjdCBibnh0ICpicCwg dW5zaWduZWQgaW50IHNvY2tldF9pZCwgdWludDE2X3QgcWlkeCwKIAkJCXJ4X3JpbmdfaW5mby0+ cnhfcmluZ19zdHJ1Y3QtPnJpbmdfc2l6ZSAqCiAJCQlBR0dfUklOR19TSVpFX0ZBQ1RPUikpIDog MDsKIAotCQlpZiAocnhfcmluZ19pbmZvICYmIChyeF9vZmZsb2FkcyAmIERFVl9SWF9PRkZMT0FE X1RDUF9MUk8pKSB7CisJCWlmIChyeF9yaW5nX2luZm8gJiYgKHJ4X29mZmxvYWRzICYgUlRFX0VU SF9SWF9PRkZMT0FEX1RDUF9MUk8pKSB7CiAJCQlpbnQgdHBhX21heCA9IEJOWFRfVFBBX01BWF9B R0dTKGJwKTsKIAogCQkJdHBhX2luZm9fbGVuID0gdHBhX21heCAqIHNpemVvZihzdHJ1Y3QgYm54 dF90cGFfaW5mbyk7CkBAIC0yODMsNyArMjgzLDcgQEAgaW50IGJueHRfYWxsb2NfcmluZ3Moc3Ry dWN0IGJueHQgKmJwLCB1bnNpZ25lZCBpbnQgc29ja2V0X2lkLCB1aW50MTZfdCBxaWR4LAogCQkJ CQkgICAgYWdfYml0bWFwX3N0YXJ0LCBhZ19iaXRtYXBfbGVuKTsKIAogCQkJLyogVFBBIGluZm8g Ki8KLQkJCWlmIChyeF9vZmZsb2FkcyAmIERFVl9SWF9PRkZMT0FEX1RDUF9MUk8pCisJCQlpZiAo cnhfb2ZmbG9hZHMgJiBSVEVfRVRIX1JYX09GRkxPQURfVENQX0xSTykKIAkJCQlyeF9yaW5nX2lu Zm8tPnRwYV9pbmZvID0KIAkJCQkJKChzdHJ1Y3QgYm54dF90cGFfaW5mbyAqKQogCQkJCQkgKChj aGFyICopbXotPmFkZHIgKyB0cGFfaW5mb19zdGFydCkpOwpkaWZmIGEvZHJpdmVycy9uZXQvYm9u ZGluZy9ydGVfZXRoX2JvbmRfcG1kLmMgYi9kcml2ZXJzL25ldC9ib25kaW5nL3J0ZV9ldGhfYm9u ZF9wbWQuYwkocmVqZWN0ZWQgaHVua3MpCkBAIC0xNzAwLDcgKzE3MDAsNyBAQCBzbGF2ZV9jb25m aWd1cmUoc3RydWN0IHJ0ZV9ldGhfZGV2ICpib25kZWRfZXRoX2RldiwKIAkJc2xhdmVfZXRoX2Rl di0+ZGF0YS0+ZGV2X2NvbmYuaW50cl9jb25mLmxzYyA9IDE7CiAKIAkvKiBJZiBSU1MgaXMgZW5h YmxlZCBmb3IgYm9uZGluZywgdHJ5IHRvIGVuYWJsZSBpdCBmb3Igc2xhdmVzICAqLwotCWlmIChi b25kZWRfZXRoX2Rldi0+ZGF0YS0+ZGV2X2NvbmYucnhtb2RlLm1xX21vZGUgJiBFVEhfTVFfUlhf UlNTX0ZMQUcpIHsKKwlpZiAoYm9uZGVkX2V0aF9kZXYtPmRhdGEtPmRldl9jb25mLnJ4bW9kZS5t cV9tb2RlICYgUlRFX0VUSF9NUV9SWF9SU1NfRkxBRykgewogCQkvKiByc3Nfa2V5IHdvbid0IGJl IGVtcHR5IGlmIFJTUyBpcyBjb25maWd1cmVkIGluIGJvbmRlZCBkZXYgKi8KIAkJc2xhdmVfZXRo X2Rldi0+ZGF0YS0+ZGV2X2NvbmYucnhfYWR2X2NvbmYucnNzX2NvbmYucnNzX2tleV9sZW4gPQog CQkJCQlpbnRlcm5hbHMtPnJzc19rZXlfbGVuOwpAQCAtMTcxNCwxMiArMTcxNCwxMiBAQCBzbGF2 ZV9jb25maWd1cmUoc3RydWN0IHJ0ZV9ldGhfZGV2ICpib25kZWRfZXRoX2RldiwKIAl9CiAKIAlp ZiAoYm9uZGVkX2V0aF9kZXYtPmRhdGEtPmRldl9jb25mLnJ4bW9kZS5vZmZsb2FkcyAmCi0JCQlE RVZfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUikKKwkJCVJURV9FVEhfUlhfT0ZGTE9BRF9WTEFOX0ZJ TFRFUikKIAkJc2xhdmVfZXRoX2Rldi0+ZGF0YS0+ZGV2X2NvbmYucnhtb2RlLm9mZmxvYWRzIHw9 Ci0JCQkJREVWX1JYX09GRkxPQURfVkxBTl9GSUxURVI7CisJCQkJUlRFX0VUSF9SWF9PRkZMT0FE X1ZMQU5fRklMVEVSOwogCWVsc2UKIAkJc2xhdmVfZXRoX2Rldi0+ZGF0YS0+ZGV2X2NvbmYucnht b2RlLm9mZmxvYWRzICY9Ci0JCQkJfkRFVl9SWF9PRkZMT0FEX1ZMQU5fRklMVEVSOworCQkJCX5S VEVfRVRIX1JYX09GRkxPQURfVkxBTl9GSUxURVI7CiAKIAlzbGF2ZV9ldGhfZGV2LT5kYXRhLT5k ZXZfY29uZi5yeG1vZGUubXR1ID0KIAkJCWJvbmRlZF9ldGhfZGV2LT5kYXRhLT5kZXZfY29uZi5y eG1vZGUubXR1OwpAQCAtMzUwMSw3ICszNTAxLDcgQEAgYm9uZF9ldGhkZXZfY29uZmlndXJlKHN0 cnVjdCBydGVfZXRoX2RldiAqZGV2KQogCSAqIHNldCBrZXkgdG8gdGhlIHRoZSB2YWx1ZSBzcGVj aWZpZWQgaW4gcG9ydCBSU1MgY29uZmlndXJhdGlvbi4KIAkgKiBGYWxsIGJhY2sgdG8gZGVmYXVs dCBSU1Mga2V5IGlmIHRoZSBrZXkgaXMgbm90IHNwZWNpZmllZAogCSAqLwotCWlmIChkZXYtPmRh dGEtPmRldl9jb25mLnJ4bW9kZS5tcV9tb2RlICYgRVRIX01RX1JYX1JTUykgeworCWlmIChkZXYt PmRhdGEtPmRldl9jb25mLnJ4bW9kZS5tcV9tb2RlICYgUlRFX0VUSF9NUV9SWF9SU1MpIHsKIAkJ c3RydWN0IHJ0ZV9ldGhfcnNzX2NvbmYgKnJzc19jb25mID0KIAkJCSZkZXYtPmRhdGEtPmRldl9j b25mLnJ4X2Fkdl9jb25mLnJzc19jb25mOwogCQlpZiAocnNzX2NvbmYtPnJzc19rZXkgIT0gTlVM TCkgewpkaWZmIGEvZHJpdmVycy9uZXQvY254ay9jbjEwa19ydGVfZmxvdy5jIGIvZHJpdmVycy9u ZXQvY254ay9jbjEwa19ydGVfZmxvdy5jCShyZWplY3RlZCBodW5rcykKQEAgLTk4LDcgKzk4LDcg QEAgY24xMGtfcnNzX2FjdGlvbl92YWxpZGF0ZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmV0aF9kZXYs CiAJCXJldHVybiAtRUlOVkFMOwogCX0KIAotCWlmIChldGhfZGV2LT5kYXRhLT5kZXZfY29uZi5y eG1vZGUubXFfbW9kZSAhPSBFVEhfTVFfUlhfUlNTKSB7CisJaWYgKGV0aF9kZXYtPmRhdGEtPmRl dl9jb25mLnJ4bW9kZS5tcV9tb2RlICE9IFJURV9FVEhfTVFfUlhfUlNTKSB7CiAJCXBsdF9lcnIo Im11bHRpLXF1ZXVlIG1vZGUgaXMgZGlzYWJsZWQiKTsKIAkJcmV0dXJuIC1FTk9UU1VQOwogCX0K ZGlmZiBhL2RyaXZlcnMvbmV0L2NueGsvY254a19ldGhkZXYuYyBiL2RyaXZlcnMvbmV0L2NueGsv Y254a19ldGhkZXYuYwkocmVqZWN0ZWQgaHVua3MpCkBAIC0yNDIsOCArMjQyLDggQEAgbml4X2Vu YWJsZV9tc2VnX29uX2p1bWJvKHN0cnVjdCBjbnhrX2V0aF9yeHFfc3AgKnJ4cSkKIAlidWZmc3og PSBtYnBfcHJpdi0+bWJ1Zl9kYXRhX3Jvb21fc2l6ZSAtIFJURV9QS1RNQlVGX0hFQURST09NOwog CiAJaWYgKGV0aF9kZXYtPmRhdGEtPm10dSArICh1aW50MzJfdClDTlhLX05JWF9MMl9PVkVSSEVB RCA+IGJ1ZmZzeikgewotCQlkZXYtPnJ4X29mZmxvYWRzIHw9IERFVl9SWF9PRkZMT0FEX1NDQVRU RVI7Ci0JCWRldi0+dHhfb2ZmbG9hZHMgfD0gREVWX1RYX09GRkxPQURfTVVMVElfU0VHUzsKKwkJ ZGV2LT5yeF9vZmZsb2FkcyB8PSBSVEVfRVRIX1JYX09GRkxPQURfU0NBVFRFUjsKKwkJZGV2LT50 eF9vZmZsb2FkcyB8PSBSVEVfRVRIX1RYX09GRkxPQURfTVVMVElfU0VHUzsKIAl9CiB9CiAKZGlm ZiBhL2RyaXZlcnMvbmV0L2NueGsvY254a19ldGhkZXYuaCBiL2RyaXZlcnMvbmV0L2NueGsvY254 a19ldGhkZXYuaAkocmVqZWN0ZWQgaHVua3MpCkBAIC01OCw0MSArNTgsNDQgQEAKIAkgQ05YS19O SVhfVFhfTkJfU0VHX01BWCkKIAogI2RlZmluZSBDTlhLX05JWF9SU1NfTDNfTDRfU1JDX0RTVCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLQkoRVRIX1JTU19M M19TUkNfT05MWSB8IEVUSF9SU1NfTDNfRFNUX09OTFkgfCBFVEhfUlNTX0w0X1NSQ19PTkxZIHwg ICAgIFwKLQkgRVRIX1JTU19MNF9EU1RfT05MWSkKKwkoUlRFX0VUSF9SU1NfTDNfU1JDX09OTFkg fCBSVEVfRVRIX1JTU19MM19EU1RfT05MWSB8ICAgICAgICAgICAgICAgICAgIFwKKwkgUlRFX0VU SF9SU1NfTDRfU1JDX09OTFkgfCBSVEVfRVRIX1JTU19MNF9EU1RfT05MWSkKIAogI2RlZmluZSBD TlhLX05JWF9SU1NfT0ZGTE9BRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwKLQkoRVRIX1JTU19QT1JUIHwgRVRIX1JTU19JUCB8IEVUSF9SU1NfVURQ IHwgRVRIX1JTU19UQ1AgfCAgICAgICAgICAgICAgIFwKLQkgRVRIX1JTU19TQ1RQIHwgRVRIX1JT U19UVU5ORUwgfCBFVEhfUlNTX0wyX1BBWUxPQUQgfCAgICAgICAgICAgICAgICAgIFwKLQkgQ05Y S19OSVhfUlNTX0wzX0w0X1NSQ19EU1QgfCBFVEhfUlNTX0xFVkVMX01BU0sgfCBFVEhfUlNTX0Nf VkxBTikKKwkoUlRFX0VUSF9SU1NfUE9SVCB8IFJURV9FVEhfUlNTX0lQIHwgUlRFX0VUSF9SU1Nf VURQIHwgICAgICAgICAgICAgICAgIFwKKwkgUlRFX0VUSF9SU1NfVENQIHwgUlRFX0VUSF9SU1Nf U0NUUCB8IFJURV9FVEhfUlNTX1RVTk5FTCB8ICAgICAgICAgICAgIFwKKwkgUlRFX0VUSF9SU1Nf TDJfUEFZTE9BRCB8IENOWEtfTklYX1JTU19MM19MNF9TUkNfRFNUIHwgICAgICAgICAgICAgICAg IFwKKwkgUlRFX0VUSF9SU1NfTEVWRUxfTUFTSyB8IFJURV9FVEhfUlNTX0NfVkxBTikKIAogI2Rl ZmluZSBDTlhLX05JWF9UWF9PRkZMT0FEX0NBUEEgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwKLQkoREVWX1RYX09GRkxPQURfTUJVRl9GQVNUX0ZSRUUgfCBE RVZfVFhfT0ZGTE9BRF9NVF9MT0NLRlJFRSB8ICAgICAgICAgIFwKLQkgREVWX1RYX09GRkxPQURf VkxBTl9JTlNFUlQgfCBERVZfVFhfT0ZGTE9BRF9RSU5RX0lOU0VSVCB8ICAgICAgICAgICAgIFwK LQkgREVWX1RYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTSB8IERFVl9UWF9PRkZMT0FEX09VVEVS X1VEUF9DS1NVTSB8ICAgIFwKLQkgREVWX1RYX09GRkxPQURfVENQX0NLU1VNIHwgREVWX1RYX09G RkxPQURfVURQX0NLU1VNIHwgICAgICAgICAgICAgICAgIFwKLQkgREVWX1RYX09GRkxPQURfU0NU UF9DS1NVTSB8IERFVl9UWF9PRkZMT0FEX1RDUF9UU08gfCAgICAgICAgICAgICAgICAgIFwKLQkg REVWX1RYX09GRkxPQURfVlhMQU5fVE5MX1RTTyB8IERFVl9UWF9PRkZMT0FEX0dFTkVWRV9UTkxf VFNPIHwgICAgICAgIFwKLQkgREVWX1RYX09GRkxPQURfR1JFX1ROTF9UU08gfCBERVZfVFhfT0ZG TE9BRF9NVUxUSV9TRUdTIHwgICAgICAgICAgICAgIFwKLQkgREVWX1RYX09GRkxPQURfSVBWNF9D S1NVTSB8IERFVl9UWF9PRkZMT0FEX1NFQ1VSSVRZKQorCShSVEVfRVRIX1RYX09GRkxPQURfTUJV Rl9GQVNUX0ZSRUUgfCBSVEVfRVRIX1RYX09GRkxPQURfTVRfTE9DS0ZSRUUgfCAgICAgICAgICBc CisJIFJURV9FVEhfVFhfT0ZGTE9BRF9WTEFOX0lOU0VSVCB8IFJURV9FVEhfVFhfT0ZGTE9BRF9R SU5RX0lOU0VSVCB8ICAgICAgICAgICAgIFwKKwkgUlRFX0VUSF9UWF9PRkZMT0FEX09VVEVSX0lQ VjRfQ0tTVU0gfCBSVEVfRVRIX1RYX09GRkxPQURfT1VURVJfVURQX0NLU1VNIHwgICAgXAorCSBS VEVfRVRIX1RYX09GRkxPQURfVENQX0NLU1VNIHwgUlRFX0VUSF9UWF9PRkZMT0FEX1VEUF9DS1NV TSB8ICAgICAgICAgICAgICAgICBcCisJIFJURV9FVEhfVFhfT0ZGTE9BRF9TQ1RQX0NLU1VNIHwg UlRFX0VUSF9UWF9PRkZMT0FEX1RDUF9UU08gfCAgICAgICAgICAgICAgICAgIFwKKwkgUlRFX0VU SF9UWF9PRkZMT0FEX1ZYTEFOX1ROTF9UU08gfCBSVEVfRVRIX1RYX09GRkxPQURfR0VORVZFX1RO TF9UU08gfCAgICAgICAgXAorCSBSVEVfRVRIX1RYX09GRkxPQURfR1JFX1ROTF9UU08gfCBSVEVf RVRIX1RYX09GRkxPQURfTVVMVElfU0VHUyB8ICAgICAgICAgICAgICBcCisJIFJURV9FVEhfVFhf T0ZGTE9BRF9JUFY0X0NLU1VNIHwgUlRFX0VUSF9UWF9PRkZMT0FEX1NFQ1VSSVRZKQogCiAjZGVm aW5lIENOWEtfTklYX1JYX09GRkxPQURfQ0FQQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAotCShERVZfUlhfT0ZGTE9BRF9DSEVDS1NVTSB8IERFVl9SWF9P RkZMT0FEX1NDVFBfQ0tTVU0gfCAgICAgICAgICAgICAgICAgXAotCSBERVZfUlhfT0ZGTE9BRF9P VVRFUl9JUFY0X0NLU1VNIHwgREVWX1JYX09GRkxPQURfU0NBVFRFUiB8ICAgICAgICAgICAgXAot CSBERVZfUlhfT0ZGTE9BRF9PVVRFUl9VRFBfQ0tTVU0gfCBERVZfUlhfT0ZGTE9BRF9SU1NfSEFT SCB8ICAgICAgICAgICAgXAotCSBERVZfUlhfT0ZGTE9BRF9USU1FU1RBTVAgfCBERVZfUlhfT0ZG TE9BRF9WTEFOX1NUUklQIHwgICAgICAgICAgICAgICAgXAotCSBERVZfUlhfT0ZGTE9BRF9TRUNV UklUWSkKKwkoUlRFX0VUSF9SWF9PRkZMT0FEX0NIRUNLU1VNIHwgUlRFX0VUSF9SWF9PRkZMT0FE X1NDVFBfQ0tTVU0gfCAgICAgICAgIFwKKwkgUlRFX0VUSF9SWF9PRkZMT0FEX09VVEVSX0lQVjRf Q0tTVU0gfCBSVEVfRVRIX1JYX09GRkxPQURfU0NBVFRFUiB8ICAgIFwKKwkgUlRFX0VUSF9SWF9P RkZMT0FEX09VVEVSX1VEUF9DS1NVTSB8IFJURV9FVEhfUlhfT0ZGTE9BRF9SU1NfSEFTSCB8ICAg IFwKKwkgUlRFX0VUSF9SWF9PRkZMT0FEX1RJTUVTVEFNUCB8IFJURV9FVEhfUlhfT0ZGTE9BRF9W TEFOX1NUUklQIHwgICAgICAgIFwKKwkgUlRFX0VUSF9SWF9PRkZMT0FEX1NFQ1VSSVRZKQogCiAj ZGVmaW5lIFJTU19JUFY0X0VOQUJMRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXAotCShFVEhfUlNTX0lQVjQgfCBFVEhfUlNTX0ZSQUdfSVBW NCB8IEVUSF9SU1NfTk9ORlJBR19JUFY0X1VEUCB8ICAgICAgICAgXAotCSBFVEhfUlNTX05PTkZS QUdfSVBWNF9UQ1AgfCBFVEhfUlNTX05PTkZSQUdfSVBWNF9TQ1RQKQorCShSVEVfRVRIX1JTU19J UFY0IHwgUlRFX0VUSF9SU1NfRlJBR19JUFY0IHwgICAgICAgICAgICAgICAgICAgICAgICAgICAg XAorCSBSVEVfRVRIX1JTU19OT05GUkFHX0lQVjRfVURQIHwgUlRFX0VUSF9SU1NfTk9ORlJBR19J UFY0X1RDUCB8ICAgICAgICAgXAorCSBSVEVfRVRIX1JTU19OT05GUkFHX0lQVjRfU0NUUCkKIAog I2RlZmluZSBSU1NfSVBWNl9FTkFCTEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwKLQkoRVRIX1JTU19JUFY2IHwgRVRIX1JTU19GUkFHX0lQ VjYgfCBFVEhfUlNTX05PTkZSQUdfSVBWNl9VRFAgfCAgICAgICAgIFwKLQkgRVRIX1JTU19OT05G UkFHX0lQVjZfVENQIHwgRVRIX1JTU19OT05GUkFHX0lQVjZfU0NUUCkKKwkoUlRFX0VUSF9SU1Nf SVBWNiB8IFJURV9FVEhfUlNTX0ZSQUdfSVBWNiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKKwkgUlRFX0VUSF9SU1NfTk9ORlJBR19JUFY2X1VEUCB8IFJURV9FVEhfUlNTX05PTkZSQUdf SVBWNl9UQ1AgfCAgICAgICAgIFwKKwkgUlRFX0VUSF9SU1NfTk9ORlJBR19JUFY2X1NDVFApCiAK ICNkZWZpbmUgUlNTX0lQVjZfRVhfRU5BQkxFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcCi0JKEVUSF9SU1NfSVBWNl9FWCB8IEVUSF9SU1NfSVBW Nl9UQ1BfRVggfCBFVEhfUlNTX0lQVjZfVURQX0VYKQorCShSVEVfRVRIX1JTU19JUFY2X0VYIHwg UlRFX0VUSF9SU1NfSVBWNl9UQ1BfRVggfCBSVEVfRVRIX1JTU19JUFY2X1VEUF9FWCkKIAogI2Rl ZmluZSBSU1NfTUFYX0xFVkVMUyAzCiAKZGlmZiBhL2RyaXZlcnMvbmV0L2NueGsvY254a19ldGhk ZXZfb3BzLmMgYi9kcml2ZXJzL25ldC9jbnhrL2NueGtfZXRoZGV2X29wcy5jCShyZWplY3RlZCBo dW5rcykKQEAgLTgxLDI0ICs4MSwyNCBAQCBjbnhrX25peF9yeF9idXJzdF9tb2RlX2dldChzdHJ1 Y3QgcnRlX2V0aF9kZXYgKmV0aF9kZXYsIHVpbnQxNl90IHF1ZXVlX2lkLAogCQl1aW50NjRfdCBm bGFnczsKIAkJY29uc3QgY2hhciAqb3V0cHV0OwogCX0gcnhfb2ZmbG9hZF9tYXBbXSA9IHsKLQkJ e0RFVl9SWF9PRkZMT0FEX1ZMQU5fU1RSSVAsICIgVkxBTiBTdHJpcCwifSwKLQkJe0RFVl9SWF9P RkZMT0FEX0lQVjRfQ0tTVU0sICIgSW5uZXIgSVB2NCBDaGVja3N1bSwifSwKLQkJe0RFVl9SWF9P RkZMT0FEX1VEUF9DS1NVTSwgIiBVRFAgQ2hlY2tzdW0sIn0sCi0JCXtERVZfUlhfT0ZGTE9BRF9U Q1BfQ0tTVU0sICIgVENQIENoZWNrc3VtLCJ9LAotCQl7REVWX1JYX09GRkxPQURfVENQX0xSTywg IiBUQ1AgTFJPLCJ9LAotCQl7REVWX1JYX09GRkxPQURfUUlOUV9TVFJJUCwgIiBRaW5RIFZMQU4g U3RyaXAsIn0sCi0JCXtERVZfUlhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNLCAiIE91dGVyIElQ djQgQ2hlY2tzdW0sIn0sCi0JCXtERVZfUlhfT0ZGTE9BRF9NQUNTRUNfU1RSSVAsICIgTUFDc2Vj IFN0cmlwLCJ9LAotCQl7REVWX1JYX09GRkxPQURfSEVBREVSX1NQTElULCAiIEhlYWRlciBTcGxp dCwifSwKLQkJe0RFVl9SWF9PRkZMT0FEX1ZMQU5fRklMVEVSLCAiIFZMQU4gRmlsdGVyLCJ9LAot CQl7REVWX1JYX09GRkxPQURfVkxBTl9FWFRFTkQsICIgVkxBTiBFeHRlbmQsIn0sCi0JCXtERVZf UlhfT0ZGTE9BRF9TQ0FUVEVSLCAiIFNjYXR0ZXJlZCwifSwKLQkJe0RFVl9SWF9PRkZMT0FEX1RJ TUVTVEFNUCwgIiBUaW1lc3RhbXAsIn0sCi0JCXtERVZfUlhfT0ZGTE9BRF9TRUNVUklUWSwgIiBT ZWN1cml0eSwifSwKLQkJe0RFVl9SWF9PRkZMT0FEX0tFRVBfQ1JDLCAiIEtlZXAgQ1JDLCJ9LAot CQl7REVWX1JYX09GRkxPQURfU0NUUF9DS1NVTSwgIiBTQ1RQLCJ9LAotCQl7REVWX1JYX09GRkxP QURfT1VURVJfVURQX0NLU1VNLCAiIE91dGVyIFVEUCBDaGVja3N1bSwifSwKLQkJe0RFVl9SWF9P RkZMT0FEX1JTU19IQVNILCAiIFJTUywifQorCQl7UlRFX0VUSF9SWF9PRkZMT0FEX1ZMQU5fU1RS SVAsICIgVkxBTiBTdHJpcCwifSwKKwkJe1JURV9FVEhfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNLCAi IElubmVyIElQdjQgQ2hlY2tzdW0sIn0sCisJCXtSVEVfRVRIX1JYX09GRkxPQURfVURQX0NLU1VN LCAiIFVEUCBDaGVja3N1bSwifSwKKwkJe1JURV9FVEhfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0sICIg VENQIENoZWNrc3VtLCJ9LAorCQl7UlRFX0VUSF9SWF9PRkZMT0FEX1RDUF9MUk8sICIgVENQIExS TywifSwKKwkJe1JURV9FVEhfUlhfT0ZGTE9BRF9RSU5RX1NUUklQLCAiIFFpblEgVkxBTiBTdHJp cCwifSwKKwkJe1JURV9FVEhfUlhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNLCAiIE91dGVyIElQ djQgQ2hlY2tzdW0sIn0sCisJCXtSVEVfRVRIX1JYX09GRkxPQURfTUFDU0VDX1NUUklQLCAiIE1B Q3NlYyBTdHJpcCwifSwKKwkJe1JURV9FVEhfUlhfT0ZGTE9BRF9IRUFERVJfU1BMSVQsICIgSGVh ZGVyIFNwbGl0LCJ9LAorCQl7UlRFX0VUSF9SWF9PRkZMT0FEX1ZMQU5fRklMVEVSLCAiIFZMQU4g RmlsdGVyLCJ9LAorCQl7UlRFX0VUSF9SWF9PRkZMT0FEX1ZMQU5fRVhURU5ELCAiIFZMQU4gRXh0 ZW5kLCJ9LAorCQl7UlRFX0VUSF9SWF9PRkZMT0FEX1NDQVRURVIsICIgU2NhdHRlcmVkLCJ9LAor CQl7UlRFX0VUSF9SWF9PRkZMT0FEX1RJTUVTVEFNUCwgIiBUaW1lc3RhbXAsIn0sCisJCXtSVEVf RVRIX1JYX09GRkxPQURfU0VDVVJJVFksICIgU2VjdXJpdHksIn0sCisJCXtSVEVfRVRIX1JYX09G RkxPQURfS0VFUF9DUkMsICIgS2VlcCBDUkMsIn0sCisJCXtSVEVfRVRIX1JYX09GRkxPQURfU0NU UF9DS1NVTSwgIiBTQ1RQLCJ9LAorCQl7UlRFX0VUSF9SWF9PRkZMT0FEX09VVEVSX1VEUF9DS1NV TSwgIiBPdXRlciBVRFAgQ2hlY2tzdW0sIn0sCisJCXtSVEVfRVRIX1JYX09GRkxPQURfUlNTX0hB U0gsICIgUlNTLCJ9CiAJfTsKIAlzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgYnVyc3RfbW9kZVtd ID0geyJWZWN0b3IgTmVvbiwgUnggT2ZmbG9hZHM6IiwKIAkJCQkJCSAiU2NhbGFyLCBSeCBPZmZs b2FkczoiCmRpZmYgYS9kcml2ZXJzL25ldC9jeGdiZS9jeGdiZS5oIGIvZHJpdmVycy9uZXQvY3hn YmUvY3hnYmUuaAkocmVqZWN0ZWQgaHVua3MpCkBAIC0yOCwzMSArMjgsMzEgQEAKICNkZWZpbmUg Q1hHQkVfTElOS19TVEFUVVNfUE9MTF9DTlQgMTAwIC8qIE1heCBudW1iZXIgb2YgdGltZXMgdG8g cG9sbCAqLwogCiAjZGVmaW5lIENYR0JFX0RFRkFVTFRfUlNTX0tFWV9MRU4gICAgIDQwIC8qIDMy MC1iaXRzICovCi0jZGVmaW5lIENYR0JFX1JTU19IRl9JUFY0X01BU0sgKEVUSF9SU1NfSVBWNCB8 IEVUSF9SU1NfRlJBR19JUFY0IHwgXAotCQkJCUVUSF9SU1NfTk9ORlJBR19JUFY0X09USEVSKQot I2RlZmluZSBDWEdCRV9SU1NfSEZfSVBWNl9NQVNLIChFVEhfUlNTX0lQVjYgfCBFVEhfUlNTX0ZS QUdfSVBWNiB8IFwKLQkJCQlFVEhfUlNTX05PTkZSQUdfSVBWNl9PVEhFUiB8IFwKLQkJCQlFVEhf UlNTX0lQVjZfRVgpCi0jZGVmaW5lIENYR0JFX1JTU19IRl9UQ1BfSVBWNl9NQVNLIChFVEhfUlNT X05PTkZSQUdfSVBWNl9UQ1AgfCBcCi0JCQkJICAgIEVUSF9SU1NfSVBWNl9UQ1BfRVgpCi0jZGVm aW5lIENYR0JFX1JTU19IRl9VRFBfSVBWNl9NQVNLIChFVEhfUlNTX05PTkZSQUdfSVBWNl9VRFAg fCBcCi0JCQkJICAgIEVUSF9SU1NfSVBWNl9VRFBfRVgpCi0jZGVmaW5lIENYR0JFX1JTU19IRl9B TEwgKEVUSF9SU1NfSVAgfCBFVEhfUlNTX1RDUCB8IEVUSF9SU1NfVURQKQorI2RlZmluZSBDWEdC RV9SU1NfSEZfSVBWNF9NQVNLIChSVEVfRVRIX1JTU19JUFY0IHwgUlRFX0VUSF9SU1NfRlJBR19J UFY0IHwgXAorCQkJCVJURV9FVEhfUlNTX05PTkZSQUdfSVBWNF9PVEhFUikKKyNkZWZpbmUgQ1hH QkVfUlNTX0hGX0lQVjZfTUFTSyAoUlRFX0VUSF9SU1NfSVBWNiB8IFJURV9FVEhfUlNTX0ZSQUdf SVBWNiB8IFwKKwkJCQlSVEVfRVRIX1JTU19OT05GUkFHX0lQVjZfT1RIRVIgfCBcCisJCQkJUlRF X0VUSF9SU1NfSVBWNl9FWCkKKyNkZWZpbmUgQ1hHQkVfUlNTX0hGX1RDUF9JUFY2X01BU0sgKFJU RV9FVEhfUlNTX05PTkZSQUdfSVBWNl9UQ1AgfCBcCisJCQkJICAgIFJURV9FVEhfUlNTX0lQVjZf VENQX0VYKQorI2RlZmluZSBDWEdCRV9SU1NfSEZfVURQX0lQVjZfTUFTSyAoUlRFX0VUSF9SU1Nf Tk9ORlJBR19JUFY2X1VEUCB8IFwKKwkJCQkgICAgUlRFX0VUSF9SU1NfSVBWNl9VRFBfRVgpCisj ZGVmaW5lIENYR0JFX1JTU19IRl9BTEwgKFJURV9FVEhfUlNTX0lQIHwgUlRFX0VUSF9SU1NfVENQ IHwgUlRFX0VUSF9SU1NfVURQKQogCiAvKiBUeC9SeCBPZmZsb2FkcyBzdXBwb3J0ZWQgKi8KLSNk ZWZpbmUgQ1hHQkVfVFhfT0ZGTE9BRFMgKERFVl9UWF9PRkZMT0FEX1ZMQU5fSU5TRVJUIHwgXAot CQkJICAgREVWX1RYX09GRkxPQURfSVBWNF9DS1NVTSB8IFwKLQkJCSAgIERFVl9UWF9PRkZMT0FE X1VEUF9DS1NVTSB8IFwKLQkJCSAgIERFVl9UWF9PRkZMT0FEX1RDUF9DS1NVTSB8IFwKLQkJCSAg IERFVl9UWF9PRkZMT0FEX1RDUF9UU08gfCBcCi0JCQkgICBERVZfVFhfT0ZGTE9BRF9NVUxUSV9T RUdTKQotCi0jZGVmaW5lIENYR0JFX1JYX09GRkxPQURTIChERVZfUlhfT0ZGTE9BRF9WTEFOX1NU UklQIHwgXAotCQkJICAgREVWX1JYX09GRkxPQURfSVBWNF9DS1NVTSB8IFwKLQkJCSAgIERFVl9S WF9PRkZMT0FEX1VEUF9DS1NVTSB8IFwKLQkJCSAgIERFVl9SWF9PRkZMT0FEX1RDUF9DS1NVTSB8 IFwKLQkJCSAgIERFVl9SWF9PRkZMT0FEX1NDQVRURVIgfCBcCi0JCQkgICBERVZfUlhfT0ZGTE9B RF9SU1NfSEFTSCkKKyNkZWZpbmUgQ1hHQkVfVFhfT0ZGTE9BRFMgKFJURV9FVEhfVFhfT0ZGTE9B RF9WTEFOX0lOU0VSVCB8IFwKKwkJCSAgIFJURV9FVEhfVFhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwg XAorCQkJICAgUlRFX0VUSF9UWF9PRkZMT0FEX1VEUF9DS1NVTSB8IFwKKwkJCSAgIFJURV9FVEhf VFhfT0ZGTE9BRF9UQ1BfQ0tTVU0gfCBcCisJCQkgICBSVEVfRVRIX1RYX09GRkxPQURfVENQX1RT TyB8IFwKKwkJCSAgIFJURV9FVEhfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTKQorCisjZGVmaW5lIENY R0JFX1JYX09GRkxPQURTIChSVEVfRVRIX1JYX09GRkxPQURfVkxBTl9TVFJJUCB8IFwKKwkJCSAg IFJURV9FVEhfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwgXAorCQkJICAgUlRFX0VUSF9SWF9PRkZM T0FEX1VEUF9DS1NVTSB8IFwKKwkJCSAgIFJURV9FVEhfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0gfCBc CisJCQkgICBSVEVfRVRIX1JYX09GRkxPQURfU0NBVFRFUiB8IFwKKwkJCSAgIFJURV9FVEhfUlhf T0ZGTE9BRF9SU1NfSEFTSCkKIAogLyogRGV2YXJncyBmaWx0ZXJtb2RlIGFuZCBmaWx0ZXJtYXNr IHJlcHJlc2VudGF0aW9uICovCiBlbnVtIGN4Z2JlX2RldmFyZ3NfZmlsdGVyX21vZGVfZmxhZ3Mg ewpkaWZmIGEvZHJpdmVycy9uZXQvZHBhYS9kcGFhX2V0aGRldi5jIGIvZHJpdmVycy9uZXQvZHBh YS9kcGFhX2V0aGRldi5jCShyZWplY3RlZCBodW5rcykKQEAgLTU0LDI5ICs1NCwyOSBAQAogCiAv KiBTdXBwb3J0ZWQgUnggb2ZmbG9hZHMgKi8KIHN0YXRpYyB1aW50NjRfdCBkZXZfcnhfb2ZmbG9h ZHNfc3VwID0KLQkJREVWX1JYX09GRkxPQURfU0NBVFRFUjsKKwkJUlRFX0VUSF9SWF9PRkZMT0FE X1NDQVRURVI7CiAKIC8qIFJ4IG9mZmxvYWRzIHdoaWNoIGNhbm5vdCBiZSBkaXNhYmxlZCAqLwog c3RhdGljIHVpbnQ2NF90IGRldl9yeF9vZmZsb2Fkc19ub2RpcyA9Ci0JCURFVl9SWF9PRkZMT0FE X0lQVjRfQ0tTVU0gfAotCQlERVZfUlhfT0ZGTE9BRF9VRFBfQ0tTVU0gfAotCQlERVZfUlhfT0ZG TE9BRF9UQ1BfQ0tTVU0gfAotCQlERVZfUlhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNIHwKLQkJ REVWX1JYX09GRkxPQURfUlNTX0hBU0g7CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9JUFY0X0NLU1VN IHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX1VEUF9DS1NVTSB8CisJCVJURV9FVEhfUlhfT0ZGTE9B RF9UQ1BfQ0tTVU0gfAorCQlSVEVfRVRIX1JYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTSB8CisJ CVJURV9FVEhfUlhfT0ZGTE9BRF9SU1NfSEFTSDsKIAogLyogU3VwcG9ydGVkIFR4IG9mZmxvYWRz ICovCiBzdGF0aWMgdWludDY0X3QgZGV2X3R4X29mZmxvYWRzX3N1cCA9Ci0JCURFVl9UWF9PRkZM T0FEX01UX0xPQ0tGUkVFIHwKLQkJREVWX1RYX09GRkxPQURfTUJVRl9GQVNUX0ZSRUU7CisJCVJU RV9FVEhfVFhfT0ZGTE9BRF9NVF9MT0NLRlJFRSB8CisJCVJURV9FVEhfVFhfT0ZGTE9BRF9NQlVG X0ZBU1RfRlJFRTsKIAogLyogVHggb2ZmbG9hZHMgd2hpY2ggY2Fubm90IGJlIGRpc2FibGVkICov CiBzdGF0aWMgdWludDY0X3QgZGV2X3R4X29mZmxvYWRzX25vZGlzID0KLQkJREVWX1RYX09GRkxP QURfSVBWNF9DS1NVTSB8Ci0JCURFVl9UWF9PRkZMT0FEX1VEUF9DS1NVTSB8Ci0JCURFVl9UWF9P RkZMT0FEX1RDUF9DS1NVTSB8Ci0JCURFVl9UWF9PRkZMT0FEX1NDVFBfQ0tTVU0gfAotCQlERVZf VFhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNIHwKLQkJREVWX1RYX09GRkxPQURfTVVMVElfU0VH UzsKKwkJUlRFX0VUSF9UWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAorCQlSVEVfRVRIX1RYX09GRkxP QURfVURQX0NLU1VNIHwKKwkJUlRFX0VUSF9UWF9PRkZMT0FEX1RDUF9DS1NVTSB8CisJCVJURV9F VEhfVFhfT0ZGTE9BRF9TQ1RQX0NLU1VNIHwKKwkJUlRFX0VUSF9UWF9PRkZMT0FEX09VVEVSX0lQ VjRfQ0tTVU0gfAorCQlSVEVfRVRIX1RYX09GRkxPQURfTVVMVElfU0VHUzsKIAogLyogS2VlcCB0 cmFjayBvZiB3aGV0aGVyIFFNQU4gYW5kIEJNQU4gaGF2ZSBiZWVuIGdsb2JhbGx5IGluaXRpYWxp emVkICovCiBzdGF0aWMgaW50IGlzX2dsb2JhbF9pbml0OwpAQCAtMjM4LDcgKzIzOCw3IEBAIGRw YWFfZXRoX2Rldl9jb25maWd1cmUoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYpCiAKIAlmbWFuX2lm X3NldF9tYXhmcm0oZGV2LT5wcm9jZXNzX3ByaXZhdGUsIG1heF9yeF9wa3RsZW4pOwogCi0JaWYg KHJ4X29mZmxvYWRzICYgREVWX1JYX09GRkxPQURfU0NBVFRFUikgeworCWlmIChyeF9vZmZsb2Fk cyAmIFJURV9FVEhfUlhfT0ZGTE9BRF9TQ0FUVEVSKSB7CiAJCURQQUFfUE1EX0RFQlVHKCJlbmFi bGluZyBzY2F0dGVyIG1vZGUiKTsKIAkJZm1hbl9pZl9zZXRfc2coZGV2LT5wcm9jZXNzX3ByaXZh dGUsIDEpOwogCQlkZXYtPmRhdGEtPnNjYXR0ZXJlZF9yeCA9IDE7CkBAIC01OTEsMTIgKzU5MSwx MiBAQCBkcGFhX2Rldl9yeF9idXJzdF9tb2RlX2dldChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwK IAkJdWludDY0X3QgZmxhZ3M7CiAJCWNvbnN0IGNoYXIgKm91dHB1dDsKIAl9IHJ4X29mZmxvYWRf bWFwW10gPSB7Ci0JCQl7REVWX1JYX09GRkxPQURfU0NBVFRFUiwgIiBTY2F0dGVyZWQsIn0sCi0J CQl7REVWX1JYX09GRkxPQURfSVBWNF9DS1NVTSwgIiBJUFY0IGNzdW0sIn0sCi0JCQl7REVWX1JY X09GRkxPQURfVURQX0NLU1VNLCAiIFVEUCBjc3VtLCJ9LAotCQkJe0RFVl9SWF9PRkZMT0FEX1RD UF9DS1NVTSwgIiBUQ1AgY3N1bSwifSwKLQkJCXtERVZfUlhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NL U1VNLCAiIE91dGVyIElQVjQgY3N1bSwifSwKLQkJCXtERVZfUlhfT0ZGTE9BRF9SU1NfSEFTSCwg IiBSU1MsIn0KKwkJCXtSVEVfRVRIX1JYX09GRkxPQURfU0NBVFRFUiwgIiBTY2F0dGVyZWQsIn0s CisJCQl7UlRFX0VUSF9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0sICIgSVBWNCBjc3VtLCJ9LAorCQkJ e1JURV9FVEhfUlhfT0ZGTE9BRF9VRFBfQ0tTVU0sICIgVURQIGNzdW0sIn0sCisJCQl7UlRFX0VU SF9SWF9PRkZMT0FEX1RDUF9DS1NVTSwgIiBUQ1AgY3N1bSwifSwKKwkJCXtSVEVfRVRIX1JYX09G RkxPQURfT1VURVJfSVBWNF9DS1NVTSwgIiBPdXRlciBJUFY0IGNzdW0sIn0sCisJCQl7UlRFX0VU SF9SWF9PRkZMT0FEX1JTU19IQVNILCAiIFJTUywifQogCX07CiAKIAkvKiBVcGRhdGUgUnggb2Zm bG9hZCBpbmZvICovCkBAIC05NjIsNyArOTYyLDcgQEAgaW50IGRwYWFfZXRoX3J4X3F1ZXVlX3Nl dHVwKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCB1aW50MTZfdCBxdWV1ZV9pZHgsCiAJaWYgKG1h eF9yeF9wa3RsZW4gPD0gYnVmZnN6KSB7CiAJCTsKIAl9IGVsc2UgaWYgKGRldi0+ZGF0YS0+ZGV2 X2NvbmYucnhtb2RlLm9mZmxvYWRzICYKLQkJCURFVl9SWF9PRkZMT0FEX1NDQVRURVIpIHsKKwkJ CVJURV9FVEhfUlhfT0ZGTE9BRF9TQ0FUVEVSKSB7CiAJCWlmIChtYXhfcnhfcGt0bGVuID4gYnVm ZnN6ICogRFBBQV9TR1RfTUFYX0VOVFJJRVMpIHsKIAkJCURQQUFfUE1EX0VSUigiTWF4aW11bSBS eCBwYWNrZXQgc2l6ZSAlZCB0b28gYmlnIHRvIGZpdCAiCiAJCQkJIk1heFNHbGlzdCAlZCIsCmRp ZmYgYS9kcml2ZXJzL25ldC9kcGFhMi9kcGFhMl9ldGhkZXYuYyBiL2RyaXZlcnMvbmV0L2RwYWEy L2RwYWEyX2V0aGRldi5jCShyZWplY3RlZCBodW5rcykKQEAgLTM4LDMzICszOCwzMyBAQAogCiAv KiBTdXBwb3J0ZWQgUnggb2ZmbG9hZHMgKi8KIHN0YXRpYyB1aW50NjRfdCBkZXZfcnhfb2ZmbG9h ZHNfc3VwID0KLQkJREVWX1JYX09GRkxPQURfQ0hFQ0tTVU0gfAotCQlERVZfUlhfT0ZGTE9BRF9T Q1RQX0NLU1VNIHwKLQkJREVWX1JYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTSB8Ci0JCURFVl9S WF9PRkZMT0FEX09VVEVSX1VEUF9DS1NVTSB8Ci0JCURFVl9SWF9PRkZMT0FEX1ZMQU5fU1RSSVAg fAotCQlERVZfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUiB8Ci0JCURFVl9SWF9PRkZMT0FEX1RJTUVT VEFNUDsKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX0NIRUNLU1VNIHwKKwkJUlRFX0VUSF9SWF9PRkZM T0FEX1NDVFBfQ0tTVU0gfAorCQlSVEVfRVRIX1JYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTSB8 CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9PVVRFUl9VRFBfQ0tTVU0gfAorCQlSVEVfRVRIX1JYX09G RkxPQURfVkxBTl9TVFJJUCB8CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUiB8CisJ CVJURV9FVEhfUlhfT0ZGTE9BRF9USU1FU1RBTVA7CiAKIC8qIFJ4IG9mZmxvYWRzIHdoaWNoIGNh bm5vdCBiZSBkaXNhYmxlZCAqLwogc3RhdGljIHVpbnQ2NF90IGRldl9yeF9vZmZsb2Fkc19ub2Rp cyA9Ci0JCURFVl9SWF9PRkZMT0FEX1JTU19IQVNIIHwKLQkJREVWX1JYX09GRkxPQURfU0NBVFRF UjsKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX1JTU19IQVNIIHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FE X1NDQVRURVI7CiAKIC8qIFN1cHBvcnRlZCBUeCBvZmZsb2FkcyAqLwogc3RhdGljIHVpbnQ2NF90 IGRldl90eF9vZmZsb2Fkc19zdXAgPQotCQlERVZfVFhfT0ZGTE9BRF9WTEFOX0lOU0VSVCB8Ci0J CURFVl9UWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAotCQlERVZfVFhfT0ZGTE9BRF9VRFBfQ0tTVU0g fAotCQlERVZfVFhfT0ZGTE9BRF9UQ1BfQ0tTVU0gfAotCQlERVZfVFhfT0ZGTE9BRF9TQ1RQX0NL U1VNIHwKLQkJREVWX1RYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTSB8Ci0JCURFVl9UWF9PRkZM T0FEX01UX0xPQ0tGUkVFIHwKLQkJREVWX1RYX09GRkxPQURfTUJVRl9GQVNUX0ZSRUU7CisJCVJU RV9FVEhfVFhfT0ZGTE9BRF9WTEFOX0lOU0VSVCB8CisJCVJURV9FVEhfVFhfT0ZGTE9BRF9JUFY0 X0NLU1VNIHwKKwkJUlRFX0VUSF9UWF9PRkZMT0FEX1VEUF9DS1NVTSB8CisJCVJURV9FVEhfVFhf T0ZGTE9BRF9UQ1BfQ0tTVU0gfAorCQlSVEVfRVRIX1RYX09GRkxPQURfU0NUUF9DS1NVTSB8CisJ CVJURV9FVEhfVFhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNIHwKKwkJUlRFX0VUSF9UWF9PRkZM T0FEX01UX0xPQ0tGUkVFIHwKKwkJUlRFX0VUSF9UWF9PRkZMT0FEX01CVUZfRkFTVF9GUkVFOwog CiAvKiBUeCBvZmZsb2FkcyB3aGljaCBjYW5ub3QgYmUgZGlzYWJsZWQgKi8KIHN0YXRpYyB1aW50 NjRfdCBkZXZfdHhfb2ZmbG9hZHNfbm9kaXMgPQotCQlERVZfVFhfT0ZGTE9BRF9NVUxUSV9TRUdT OworCQlSVEVfRVRIX1RYX09GRkxPQURfTVVMVElfU0VHUzsKIAogLyogZW5hYmxlIHRpbWVzdGFt cCBpbiBtYnVmICovCiBib29sIGRwYWEyX2VuYWJsZV90c1tSVEVfTUFYX0VUSFBPUlRTXTsKQEAg LTI5MSwxNSArMjkxLDE1IEBAIGRwYWEyX2Rldl9yeF9idXJzdF9tb2RlX2dldChzdHJ1Y3QgcnRl X2V0aF9kZXYgKmRldiwKIAkJdWludDY0X3QgZmxhZ3M7CiAJCWNvbnN0IGNoYXIgKm91dHB1dDsK IAl9IHJ4X29mZmxvYWRfbWFwW10gPSB7Ci0JCQl7REVWX1JYX09GRkxPQURfQ0hFQ0tTVU0sICIg Q2hlY2tzdW0sIn0sCi0JCQl7REVWX1JYX09GRkxPQURfU0NUUF9DS1NVTSwgIiBTQ1RQIGNzdW0s In0sCi0JCQl7REVWX1JYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTSwgIiBPdXRlciBJUFY0IGNz dW0sIn0sCi0JCQl7REVWX1JYX09GRkxPQURfT1VURVJfVURQX0NLU1VNLCAiIE91dGVyIFVEUCBj c3VtLCJ9LAotCQkJe0RFVl9SWF9PRkZMT0FEX1ZMQU5fU1RSSVAsICIgVkxBTiBzdHJpcCwifSwK LQkJCXtERVZfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUiwgIiBWTEFOIGZpbHRlciwifSwKLQkJCXtE RVZfUlhfT0ZGTE9BRF9USU1FU1RBTVAsICIgVGltZXN0YW1wLCJ9LAotCQkJe0RFVl9SWF9PRkZM T0FEX1JTU19IQVNILCAiIFJTUywifSwKLQkJCXtERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSLCAiIFNj YXR0ZXJlZCwifQorCQkJe1JURV9FVEhfUlhfT0ZGTE9BRF9DSEVDS1NVTSwgIiBDaGVja3N1bSwi fSwKKwkJCXtSVEVfRVRIX1JYX09GRkxPQURfU0NUUF9DS1NVTSwgIiBTQ1RQIGNzdW0sIn0sCisJ CQl7UlRFX0VUSF9SWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0sICIgT3V0ZXIgSVBWNCBjc3Vt LCJ9LAorCQkJe1JURV9FVEhfUlhfT0ZGTE9BRF9PVVRFUl9VRFBfQ0tTVU0sICIgT3V0ZXIgVURQ IGNzdW0sIn0sCisJCQl7UlRFX0VUSF9SWF9PRkZMT0FEX1ZMQU5fU1RSSVAsICIgVkxBTiBzdHJp cCwifSwKKwkJCXtSVEVfRVRIX1JYX09GRkxPQURfVkxBTl9GSUxURVIsICIgVkxBTiBmaWx0ZXIs In0sCisJCQl7UlRFX0VUSF9SWF9PRkZMT0FEX1RJTUVTVEFNUCwgIiBUaW1lc3RhbXAsIn0sCisJ CQl7UlRFX0VUSF9SWF9PRkZMT0FEX1JTU19IQVNILCAiIFJTUywifSwKKwkJCXtSVEVfRVRIX1JY X09GRkxPQURfU0NBVFRFUiwgIiBTY2F0dGVyZWQsIn0KIAl9OwogCiAJLyogVXBkYXRlIFJ4IG9m ZmxvYWQgaW5mbyAqLwpAQCAtNTczLDcgKzU3Myw3IEBAIGRwYWEyX2V0aF9kZXZfY29uZmlndXJl KHN0cnVjdCBydGVfZXRoX2RldiAqZGV2KQogCQlyZXR1cm4gLTE7CiAJfQogCi0JaWYgKGV0aF9j b25mLT5yeG1vZGUubXFfbW9kZSA9PSBFVEhfTVFfUlhfUlNTKSB7CisJaWYgKGV0aF9jb25mLT5y eG1vZGUubXFfbW9kZSA9PSBSVEVfRVRIX01RX1JYX1JTUykgewogCQlmb3IgKHRjX2luZGV4ID0g MDsgdGNfaW5kZXggPCBwcml2LT5udW1fcnhfdGM7IHRjX2luZGV4KyspIHsKIAkJCXJldCA9IGRw YWEyX3NldHVwX2Zsb3dfZGlzdChkZXYsCiAJCQkJCWV0aF9jb25mLT5yeF9hZHZfY29uZi5yc3Nf Y29uZi5yc3NfaGYsCmRpZmYgYS9kcml2ZXJzL25ldC9lMTAwMC9lbV9yeHR4LmMgYi9kcml2ZXJz L25ldC9lMTAwMC9lbV9yeHR4LmMJKHJlamVjdGVkIGh1bmtzKQpAQCAtMTM2OSwxMyArMTM2OSwx MyBAQCBlbV9nZXRfcnhfcG9ydF9vZmZsb2Fkc19jYXBhKHZvaWQpCiAJdWludDY0X3Qgcnhfb2Zm bG9hZF9jYXBhOwogCiAJcnhfb2ZmbG9hZF9jYXBhID0KLQkJREVWX1JYX09GRkxPQURfVkxBTl9T VFJJUCAgfAotCQlERVZfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUiB8Ci0JCURFVl9SWF9PRkZMT0FE X0lQVjRfQ0tTVU0gIHwKLQkJREVWX1JYX09GRkxPQURfVURQX0NLU1VNICAgfAotCQlERVZfUlhf T0ZGTE9BRF9UQ1BfQ0tTVU0gICB8Ci0JCURFVl9SWF9PRkZMT0FEX0tFRVBfQ1JDICAgIHwKLQkJ REVWX1JYX09GRkxPQURfU0NBVFRFUjsKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX1ZMQU5fU1RSSVAg IHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX1ZMQU5fRklMVEVSIHwKKwkJUlRFX0VUSF9SWF9PRkZM T0FEX0lQVjRfQ0tTVU0gIHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX1VEUF9DS1NVTSAgIHwKKwkJ UlRFX0VUSF9SWF9PRkZMT0FEX1RDUF9DS1NVTSAgIHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX0tF RVBfQ1JDICAgIHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX1NDQVRURVI7CiAKIAlyZXR1cm4gcnhf b2ZmbG9hZF9jYXBhOwogfQpkaWZmIGEvZHJpdmVycy9uZXQvZTEwMDAvaWdiX3J4dHguYyBiL2Ry aXZlcnMvbmV0L2UxMDAwL2lnYl9yeHR4LmMJKHJlamVjdGVkIGh1bmtzKQpAQCAtMTY0MCwxOSAr MTY0MCwxOSBAQCBpZ2JfZ2V0X3J4X3BvcnRfb2ZmbG9hZHNfY2FwYShzdHJ1Y3QgcnRlX2V0aF9k ZXYgKmRldikKIAogCWh3ID0gRTEwMDBfREVWX1BSSVZBVEVfVE9fSFcoZGV2LT5kYXRhLT5kZXZf cHJpdmF0ZSk7CiAKLQlyeF9vZmZsb2FkX2NhcGEgPSBERVZfUlhfT0ZGTE9BRF9WTEFOX1NUUklQ ICB8Ci0JCQkgIERFVl9SWF9PRkZMT0FEX1ZMQU5fRklMVEVSIHwKLQkJCSAgREVWX1JYX09GRkxP QURfSVBWNF9DS1NVTSAgfAotCQkJICBERVZfUlhfT0ZGTE9BRF9VRFBfQ0tTVU0gICB8Ci0JCQkg IERFVl9SWF9PRkZMT0FEX1RDUF9DS1NVTSAgIHwKLQkJCSAgREVWX1JYX09GRkxPQURfS0VFUF9D UkMgICAgfAotCQkJICBERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSICAgICB8Ci0JCQkgIERFVl9SWF9P RkZMT0FEX1JTU19IQVNIOworCXJ4X29mZmxvYWRfY2FwYSA9IFJURV9FVEhfUlhfT0ZGTE9BRF9W TEFOX1NUUklQICB8CisJCQkgIFJURV9FVEhfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUiB8CisJCQkg IFJURV9FVEhfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNICB8CisJCQkgIFJURV9FVEhfUlhfT0ZGTE9B RF9VRFBfQ0tTVU0gICB8CisJCQkgIFJURV9FVEhfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0gICB8CisJ CQkgIFJURV9FVEhfUlhfT0ZGTE9BRF9LRUVQX0NSQyAgICB8CisJCQkgIFJURV9FVEhfUlhfT0ZG TE9BRF9TQ0FUVEVSICAgICB8CisJCQkgIFJURV9FVEhfUlhfT0ZGTE9BRF9SU1NfSEFTSDsKIAog CWlmIChody0+bWFjLnR5cGUgPT0gZTEwMDBfaTM1MCB8fAogCSAgICBody0+bWFjLnR5cGUgPT0g ZTEwMDBfaTIxMCB8fAogCSAgICBody0+bWFjLnR5cGUgPT0gZTEwMDBfaTIxMSkKLQkJcnhfb2Zm bG9hZF9jYXBhIHw9IERFVl9SWF9PRkZMT0FEX1ZMQU5fRVhURU5EOworCQlyeF9vZmZsb2FkX2Nh cGEgfD0gUlRFX0VUSF9SWF9PRkZMT0FEX1ZMQU5fRVhURU5EOwogCiAJcmV0dXJuIHJ4X29mZmxv YWRfY2FwYTsKIH0KZGlmZiBhL2RyaXZlcnMvbmV0L2VuYS9lbmFfZXRoZGV2LmMgYi9kcml2ZXJz L25ldC9lbmEvZW5hX2V0aGRldi5jCShyZWplY3RlZCBodW5rcykKQEAgLTIwMDQsOSArMjAwNCw5 IEBAIHN0YXRpYyBpbnQgZW5hX2Rldl9jb25maWd1cmUoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYp CiAKIAlhZGFwdGVyLT5zdGF0ZSA9IEVOQV9BREFQVEVSX1NUQVRFX0NPTkZJRzsKIAotCWlmIChk ZXYtPmRhdGEtPmRldl9jb25mLnJ4bW9kZS5tcV9tb2RlICYgRVRIX01RX1JYX1JTU19GTEFHKQot CQlkZXYtPmRhdGEtPmRldl9jb25mLnJ4bW9kZS5vZmZsb2FkcyB8PSBERVZfUlhfT0ZGTE9BRF9S U1NfSEFTSDsKLQlkZXYtPmRhdGEtPmRldl9jb25mLnR4bW9kZS5vZmZsb2FkcyB8PSBERVZfVFhf T0ZGTE9BRF9NVUxUSV9TRUdTOworCWlmIChkZXYtPmRhdGEtPmRldl9jb25mLnJ4bW9kZS5tcV9t b2RlICYgUlRFX0VUSF9NUV9SWF9SU1NfRkxBRykKKwkJZGV2LT5kYXRhLT5kZXZfY29uZi5yeG1v ZGUub2ZmbG9hZHMgfD0gUlRFX0VUSF9SWF9PRkZMT0FEX1JTU19IQVNIOworCWRldi0+ZGF0YS0+ ZGV2X2NvbmYudHhtb2RlLm9mZmxvYWRzIHw9IFJURV9FVEhfVFhfT0ZGTE9BRF9NVUxUSV9TRUdT OwogCiAJLyogU2NhdHRlcmVkIFJ4IGNhbm5vdCBiZSB0dXJuZWQgb2ZmIGluIHRoZSBIVywgc28g dGhpcyBjYXBhYmlsaXR5IG11c3QKIAkgKiBiZSBmb3JjZWQuCkBAIC0yMDY3LDE3ICsyMDY3LDE3 IEBAIHN0YXRpYyB1aW50NjRfdCBlbmFfZ2V0X3J4X3BvcnRfb2ZmbG9hZHMoc3RydWN0IGVuYV9h ZGFwdGVyICphZGFwdGVyKQogCXVpbnQ2NF90IHBvcnRfb2ZmbG9hZHMgPSAwOwogCiAJaWYgKGFk YXB0ZXItPm9mZmxvYWRzLnJ4X29mZmxvYWRzICYgRU5BX0wzX0lQVjRfQ1NVTSkKLQkJcG9ydF9v ZmZsb2FkcyB8PSBERVZfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNOworCQlwb3J0X29mZmxvYWRzIHw9 IFJURV9FVEhfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNOwogCiAJaWYgKGFkYXB0ZXItPm9mZmxvYWRz LnJ4X29mZmxvYWRzICYKIAkgICAgKEVOQV9MNF9JUFY0X0NTVU0gfCBFTkFfTDRfSVBWNl9DU1VN KSkKIAkJcG9ydF9vZmZsb2FkcyB8PQotCQkJREVWX1JYX09GRkxPQURfVURQX0NLU1VNIHwgREVW X1JYX09GRkxPQURfVENQX0NLU1VNOworCQkJUlRFX0VUSF9SWF9PRkZMT0FEX1VEUF9DS1NVTSB8 IFJURV9FVEhfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU07CiAKIAlpZiAoYWRhcHRlci0+b2ZmbG9hZHMu cnhfb2ZmbG9hZHMgJiBFTkFfUlhfUlNTX0hBU0gpCi0JCXBvcnRfb2ZmbG9hZHMgfD0gREVWX1JY X09GRkxPQURfUlNTX0hBU0g7CisJCXBvcnRfb2ZmbG9hZHMgfD0gUlRFX0VUSF9SWF9PRkZMT0FE X1JTU19IQVNIOwogCi0JcG9ydF9vZmZsb2FkcyB8PSBERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSOwor CXBvcnRfb2ZmbG9hZHMgfD0gUlRFX0VUSF9SWF9PRkZMT0FEX1NDQVRURVI7CiAKIAlyZXR1cm4g cG9ydF9vZmZsb2FkczsKIH0KQEAgLTIwODcsMTcgKzIwODcsMTcgQEAgc3RhdGljIHVpbnQ2NF90 IGVuYV9nZXRfdHhfcG9ydF9vZmZsb2FkcyhzdHJ1Y3QgZW5hX2FkYXB0ZXIgKmFkYXB0ZXIpCiAJ dWludDY0X3QgcG9ydF9vZmZsb2FkcyA9IDA7CiAKIAlpZiAoYWRhcHRlci0+b2ZmbG9hZHMudHhf b2ZmbG9hZHMgJiBFTkFfSVBWNF9UU08pCi0JCXBvcnRfb2ZmbG9hZHMgfD0gREVWX1RYX09GRkxP QURfVENQX1RTTzsKKwkJcG9ydF9vZmZsb2FkcyB8PSBSVEVfRVRIX1RYX09GRkxPQURfVENQX1RT TzsKIAogCWlmIChhZGFwdGVyLT5vZmZsb2Fkcy50eF9vZmZsb2FkcyAmIEVOQV9MM19JUFY0X0NT VU0pCi0JCXBvcnRfb2ZmbG9hZHMgfD0gREVWX1RYX09GRkxPQURfSVBWNF9DS1NVTTsKKwkJcG9y dF9vZmZsb2FkcyB8PSBSVEVfRVRIX1RYX09GRkxPQURfSVBWNF9DS1NVTTsKIAlpZiAoYWRhcHRl ci0+b2ZmbG9hZHMudHhfb2ZmbG9hZHMgJgogCSAgICAoRU5BX0w0X0lQVjRfQ1NVTV9QQVJUSUFM IHwgRU5BX0w0X0lQVjRfQ1NVTSB8CiAJICAgICBFTkFfTDRfSVBWNl9DU1VNIHwgRU5BX0w0X0lQ VjZfQ1NVTV9QQVJUSUFMKSkKIAkJcG9ydF9vZmZsb2FkcyB8PQotCQkJREVWX1RYX09GRkxPQURf VURQX0NLU1VNIHwgREVWX1RYX09GRkxPQURfVENQX0NLU1VNOworCQkJUlRFX0VUSF9UWF9PRkZM T0FEX1VEUF9DS1NVTSB8IFJURV9FVEhfVFhfT0ZGTE9BRF9UQ1BfQ0tTVU07CiAKLQlwb3J0X29m ZmxvYWRzIHw9IERFVl9UWF9PRkZMT0FEX01VTFRJX1NFR1M7CisJcG9ydF9vZmZsb2FkcyB8PSBS VEVfRVRIX1RYX09GRkxPQURfTVVMVElfU0VHUzsKIAogCXJldHVybiBwb3J0X29mZmxvYWRzOwog fQpAQCAtMjEzMCwxNCArMjEzMCwxNCBAQCBzdGF0aWMgaW50IGVuYV9pbmZvc19nZXQoc3RydWN0 IHJ0ZV9ldGhfZGV2ICpkZXYsCiAJZW5hX2Fzc2VydF9tc2coZW5hX2RldiAhPSBOVUxMLCAiVW5p bml0aWFsaXplZCBkZXZpY2VcbiIpOwogCiAJZGV2X2luZm8tPnNwZWVkX2NhcGEgPQotCQkJRVRI X0xJTktfU1BFRURfMUcgICB8Ci0JCQlFVEhfTElOS19TUEVFRF8yXzVHIHwKLQkJCUVUSF9MSU5L X1NQRUVEXzVHICAgfAotCQkJRVRIX0xJTktfU1BFRURfMTBHICB8Ci0JCQlFVEhfTElOS19TUEVF RF8yNUcgIHwKLQkJCUVUSF9MSU5LX1NQRUVEXzQwRyAgfAotCQkJRVRIX0xJTktfU1BFRURfNTBH ICB8Ci0JCQlFVEhfTElOS19TUEVFRF8xMDBHOworCQkJUlRFX0VUSF9MSU5LX1NQRUVEXzFHICAg fAorCQkJUlRFX0VUSF9MSU5LX1NQRUVEXzJfNUcgfAorCQkJUlRFX0VUSF9MSU5LX1NQRUVEXzVH ICAgfAorCQkJUlRFX0VUSF9MSU5LX1NQRUVEXzEwRyAgfAorCQkJUlRFX0VUSF9MSU5LX1NQRUVE XzI1RyAgfAorCQkJUlRFX0VUSF9MSU5LX1NQRUVEXzQwRyAgfAorCQkJUlRFX0VUSF9MSU5LX1NQ RUVEXzUwRyAgfAorCQkJUlRFX0VUSF9MSU5LX1NQRUVEXzEwMEc7CiAKIAkvKiBJbmZvcm0gZnJh bWV3b3JrIGFib3V0IGF2YWlsYWJsZSBmZWF0dXJlcyAqLwogCWRldl9pbmZvLT5yeF9vZmZsb2Fk X2NhcGEgPSBlbmFfZ2V0X3J4X3BvcnRfb2ZmbG9hZHMoYWRhcHRlcik7CkBAIC0yNDE2LDExICsy NDE2LDExIEBAIGV0aF9lbmFfcHJlcF9wa3RzKHZvaWQgKnR4X3F1ZXVlLCBzdHJ1Y3QgcnRlX21i dWYgKip0eF9wa3RzLAogI2lmZGVmIFJURV9MSUJSVEVfRVRIREVWX0RFQlVHCiAJCS8qIENoZWNr IGlmIHJlcXVlc3RlZCBvZmZsb2FkIGlzIGFsc28gZW5hYmxlZCBmb3IgdGhlIHF1ZXVlICovCiAJ CWlmICgob2xfZmxhZ3MgJiBQS1RfVFhfSVBfQ0tTVU0gJiYKLQkJICAgICAhKHR4X3JpbmctPm9m ZmxvYWRzICYgREVWX1RYX09GRkxPQURfSVBWNF9DS1NVTSkpIHx8CisJCSAgICAgISh0eF9yaW5n LT5vZmZsb2FkcyAmIFJURV9FVEhfVFhfT0ZGTE9BRF9JUFY0X0NLU1VNKSkgfHwKIAkJICAgIChs NF9jc3VtX2ZsYWcgPT0gUEtUX1RYX1RDUF9DS1NVTSAmJgotCQkgICAgICEodHhfcmluZy0+b2Zm bG9hZHMgJiBERVZfVFhfT0ZGTE9BRF9UQ1BfQ0tTVU0pKSB8fAorCQkgICAgICEodHhfcmluZy0+ b2ZmbG9hZHMgJiBSVEVfRVRIX1RYX09GRkxPQURfVENQX0NLU1VNKSkgfHwKIAkJICAgIChsNF9j c3VtX2ZsYWcgPT0gUEtUX1RYX1VEUF9DS1NVTSAmJgotCQkgICAgICEodHhfcmluZy0+b2ZmbG9h ZHMgJiBERVZfVFhfT0ZGTE9BRF9VRFBfQ0tTVU0pKSkgeworCQkgICAgICEodHhfcmluZy0+b2Zm bG9hZHMgJiBSVEVfRVRIX1RYX09GRkxPQURfVURQX0NLU1VNKSkpIHsKIAkJCVBNRF9UWF9MT0co REVCVUcsCiAJCQkJIm1idWZbJSIgUFJJdTMyICJdOiByZXF1ZXN0ZWQgb2ZmbG9hZHM6ICUiIFBS SXUxNiAiIGFyZSBub3QgZW5hYmxlZCBmb3IgdGhlIHF1ZXVlWyV1XVxuIiwKIAkJCQlpLCBtLT5u Yl9zZWdzLCB0eF9yaW5nLT5pZCk7CmRpZmYgYS9kcml2ZXJzL25ldC9lbmEvZW5hX3Jzcy5jIGIv ZHJpdmVycy9uZXQvZW5hL2VuYV9yc3MuYwkocmVqZWN0ZWQgaHVua3MpCkBAIC0xMzksNyArMTM5 LDcgQEAgaW50IGVuYV9yc3NfcmV0YV9xdWVyeShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwKIAlp ZiAocmV0YV9zaXplID09IDAgfHwgcmV0YV9jb25mID09IE5VTEwpCiAJCXJldHVybiAtRUlOVkFM OwogCi0JaWYgKCEoZGV2LT5kYXRhLT5kZXZfY29uZi5yeG1vZGUub2ZmbG9hZHMgJiBERVZfUlhf T0ZGTE9BRF9SU1NfSEFTSCkpIHsKKwlpZiAoIShkZXYtPmRhdGEtPmRldl9jb25mLnJ4bW9kZS5v ZmZsb2FkcyAmIFJURV9FVEhfUlhfT0ZGTE9BRF9SU1NfSEFTSCkpIHsKIAkJUE1EX0RSVl9MT0co RVJSLAogCQkJIlJTUyB3YXMgbm90IGNvbmZpZ3VyZWQgZm9yIHRoZSBQTURcbiIpOwogCQlyZXR1 cm4gLUVOT1RTVVA7CmRpZmYgYS9kcml2ZXJzL25ldC9lbmV0Yy9lbmV0Y19ldGhkZXYuYyBiL2Ry aXZlcnMvbmV0L2VuZXRjL2VuZXRjX2V0aGRldi5jCShyZWplY3RlZCBodW5rcykKQEAgLTIwNywx MCArMjA3LDEwIEBAIGVuZXRjX2Rldl9pbmZvc19nZXQoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYg X19ydGVfdW51c2VkLAogCWRldl9pbmZvLT5tYXhfdHhfcXVldWVzID0gTUFYX1RYX1JJTkdTOwog CWRldl9pbmZvLT5tYXhfcnhfcGt0bGVuID0gRU5FVENfTUFDX01BWEZSTV9TSVpFOwogCWRldl9p bmZvLT5yeF9vZmZsb2FkX2NhcGEgPQotCQkoREVWX1JYX09GRkxPQURfSVBWNF9DS1NVTSB8Ci0J CSBERVZfUlhfT0ZGTE9BRF9VRFBfQ0tTVU0gfAotCQkgREVWX1JYX09GRkxPQURfVENQX0NLU1VN IHwKLQkJIERFVl9SWF9PRkZMT0FEX0tFRVBfQ1JDKTsKKwkJKFJURV9FVEhfUlhfT0ZGTE9BRF9J UFY0X0NLU1VNIHwKKwkJIFJURV9FVEhfUlhfT0ZGTE9BRF9VRFBfQ0tTVU0gfAorCQkgUlRFX0VU SF9SWF9PRkZMT0FEX1RDUF9DS1NVTSB8CisJCSBSVEVfRVRIX1JYX09GRkxPQURfS0VFUF9DUkMp OwogCiAJcmV0dXJuIDA7CiB9CkBAIC03MDUsNyArNzA1LDcgQEAgZW5ldGNfZGV2X2NvbmZpZ3Vy ZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldikKIAllbmV0Y19wb3J0X3dyKGVuZXRjX2h3LCBFTkVU Q19QVENNU0RVUigwKSwgRU5FVENfTUFDX01BWEZSTV9TSVpFKTsKIAllbmV0Y19wb3J0X3dyKGVu ZXRjX2h3LCBFTkVUQ19QVFhNQkFSLCAyICogRU5FVENfTUFDX01BWEZSTV9TSVpFKTsKIAotCWlm IChyeF9vZmZsb2FkcyAmIERFVl9SWF9PRkZMT0FEX0tFRVBfQ1JDKSB7CisJaWYgKHJ4X29mZmxv YWRzICYgUlRFX0VUSF9SWF9PRkZMT0FEX0tFRVBfQ1JDKSB7CiAJCWludCBjb25maWc7CiAKIAkJ Y29uZmlnID0gZW5ldGNfcG9ydF9yZChlbmV0Y19odywgRU5FVENfUE0wX0NNRF9DRkcpOwpkaWZm IGEvZHJpdmVycy9uZXQvZW5pYy9lbmljX21haW4uYyBiL2RyaXZlcnMvbmV0L2VuaWMvZW5pY19t YWluLmMJKHJlamVjdGVkIGh1bmtzKQpAQCAtODU4LDcgKzg1OCw3IEBAIGludCBlbmljX2FsbG9j X3JxKHN0cnVjdCBlbmljICplbmljLCB1aW50MTZfdCBxdWV1ZV9pZHgsCiAJbWF4X3J4X3BrdGxl biA9IGVuaWNfbXR1X3RvX21heF9yeF9wa3RsZW4oZW5pYy0+cnRlX2Rldi0+ZGF0YS0+bXR1KTsK IAogCWlmIChlbmljLT5ydGVfZGV2LT5kYXRhLT5kZXZfY29uZi5yeG1vZGUub2ZmbG9hZHMgJgot CSAgICBERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSKSB7CisJICAgIFJURV9FVEhfUlhfT0ZGTE9BRF9T Q0FUVEVSKSB7CiAJCWRldl9pbmZvKGVuaWMsICJScSAldSBTY2F0dGVyIHJ4IG1vZGUgZW5hYmxl ZFxuIiwgcXVldWVfaWR4KTsKIAkJLyogY2VpbCgobWF4IHBrdCBsZW4pL21idWZfc2l6ZSkgKi8K IAkJbWJ1ZnNfcGVyX3BrdCA9IChtYXhfcnhfcGt0bGVuICsgbWJ1Zl9zaXplIC0gMSkgLyBtYnVm X3NpemU7CmRpZmYgYS9kcml2ZXJzL25ldC9lbmljL2VuaWNfcmVzLmMgYi9kcml2ZXJzL25ldC9l bmljL2VuaWNfcmVzLmMJKHJlamVjdGVkIGh1bmtzKQpAQCAtMjAxLDE5ICsyMDEsMTkgQEAgaW50 IGVuaWNfZ2V0X3ZuaWNfY29uZmlnKHN0cnVjdCBlbmljICplbmljKQogCWVuaWMtPnR4X3F1ZXVl X29mZmxvYWRfY2FwYSA9IDA7CiAJZW5pYy0+dHhfb2ZmbG9hZF9jYXBhID0KIAkJZW5pYy0+dHhf cXVldWVfb2ZmbG9hZF9jYXBhIHwKLQkJREVWX1RYX09GRkxPQURfTVVMVElfU0VHUyB8Ci0JCURF Vl9UWF9PRkZMT0FEX1ZMQU5fSU5TRVJUIHwKLQkJREVWX1RYX09GRkxPQURfSVBWNF9DS1NVTSB8 Ci0JCURFVl9UWF9PRkZMT0FEX1VEUF9DS1NVTSB8Ci0JCURFVl9UWF9PRkZMT0FEX1RDUF9DS1NV TSB8Ci0JCURFVl9UWF9PRkZMT0FEX1RDUF9UU087CisJCVJURV9FVEhfVFhfT0ZGTE9BRF9NVUxU SV9TRUdTIHwKKwkJUlRFX0VUSF9UWF9PRkZMT0FEX1ZMQU5fSU5TRVJUIHwKKwkJUlRFX0VUSF9U WF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAorCQlSVEVfRVRIX1RYX09GRkxPQURfVURQX0NLU1VNIHwK KwkJUlRFX0VUSF9UWF9PRkZMT0FEX1RDUF9DS1NVTSB8CisJCVJURV9FVEhfVFhfT0ZGTE9BRF9U Q1BfVFNPOwogCWVuaWMtPnJ4X29mZmxvYWRfY2FwYSA9Ci0JCURFVl9SWF9PRkZMT0FEX1NDQVRU RVIgfAotCQlERVZfUlhfT0ZGTE9BRF9WTEFOX1NUUklQIHwKLQkJREVWX1JYX09GRkxPQURfSVBW NF9DS1NVTSB8Ci0JCURFVl9SWF9PRkZMT0FEX1VEUF9DS1NVTSB8Ci0JCURFVl9SWF9PRkZMT0FE X1RDUF9DS1NVTSB8Ci0JCURFVl9SWF9PRkZMT0FEX1JTU19IQVNIOworCQlSVEVfRVRIX1JYX09G RkxPQURfU0NBVFRFUiB8CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9WTEFOX1NUUklQIHwKKwkJUlRF X0VUSF9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAorCQlSVEVfRVRIX1JYX09GRkxPQURfVURQX0NL U1VNIHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX1RDUF9DS1NVTSB8CisJCVJURV9FVEhfUlhfT0ZG TE9BRF9SU1NfSEFTSDsKIAllbmljLT50eF9vZmZsb2FkX21hc2sgPQogCQlQS1RfVFhfSVBWNiB8 CiAJCVBLVF9UWF9JUFY0IHwKZGlmZiBhL2RyaXZlcnMvbmV0L2ZhaWxzYWZlL2ZhaWxzYWZlX29w cy5jIGIvZHJpdmVycy9uZXQvZmFpbHNhZmUvZmFpbHNhZmVfb3BzLmMJKHJlamVjdGVkIGh1bmtz KQpAQCAtMTE3Miw1MSArMTE3Miw1MSBAQCBmc19kZXZfaW5mb3NfZ2V0KHN0cnVjdCBydGVfZXRo X2RldiAqZGV2LAogCSAqIGNvbmZpZ3VyaW5nIGEgc3ViLWRldmljZS4KIAkgKi8KIAlpbmZvcy0+ cnhfb2ZmbG9hZF9jYXBhID0KLQkJREVWX1JYX09GRkxPQURfVkxBTl9TVFJJUCB8Ci0JCURFVl9S WF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAotCQlERVZfUlhfT0ZGTE9BRF9VRFBfQ0tTVU0gfAotCQlE RVZfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0gfAotCQlERVZfUlhfT0ZGTE9BRF9UQ1BfTFJPIHwKLQkJ REVWX1JYX09GRkxPQURfUUlOUV9TVFJJUCB8Ci0JCURFVl9SWF9PRkZMT0FEX09VVEVSX0lQVjRf Q0tTVU0gfAotCQlERVZfUlhfT0ZGTE9BRF9NQUNTRUNfU1RSSVAgfAotCQlERVZfUlhfT0ZGTE9B RF9IRUFERVJfU1BMSVQgfAotCQlERVZfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUiB8Ci0JCURFVl9S WF9PRkZMT0FEX1ZMQU5fRVhURU5EIHwKLQkJREVWX1JYX09GRkxPQURfU0NBVFRFUiB8Ci0JCURF Vl9SWF9PRkZMT0FEX1RJTUVTVEFNUCB8Ci0JCURFVl9SWF9PRkZMT0FEX1NFQ1VSSVRZIHwKLQkJ REVWX1JYX09GRkxPQURfUlNTX0hBU0g7CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9WTEFOX1NUUklQ IHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAorCQlSVEVfRVRIX1JYX09GRkxP QURfVURQX0NLU1VNIHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX1RDUF9DS1NVTSB8CisJCVJURV9F VEhfUlhfT0ZGTE9BRF9UQ1BfTFJPIHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX1FJTlFfU1RSSVAg fAorCQlSVEVfRVRIX1JYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTSB8CisJCVJURV9FVEhfUlhf T0ZGTE9BRF9NQUNTRUNfU1RSSVAgfAorCQlSVEVfRVRIX1JYX09GRkxPQURfSEVBREVSX1NQTElU IHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX1ZMQU5fRklMVEVSIHwKKwkJUlRFX0VUSF9SWF9PRkZM T0FEX1ZMQU5fRVhURU5EIHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX1NDQVRURVIgfAorCQlSVEVf RVRIX1JYX09GRkxPQURfVElNRVNUQU1QIHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX1NFQ1VSSVRZ IHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX1JTU19IQVNIOwogCiAJaW5mb3MtPnJ4X3F1ZXVlX29m ZmxvYWRfY2FwYSA9Ci0JCURFVl9SWF9PRkZMT0FEX1ZMQU5fU1RSSVAgfAotCQlERVZfUlhfT0ZG TE9BRF9JUFY0X0NLU1VNIHwKLQkJREVWX1JYX09GRkxPQURfVURQX0NLU1VNIHwKLQkJREVWX1JY X09GRkxPQURfVENQX0NLU1VNIHwKLQkJREVWX1JYX09GRkxPQURfVENQX0xSTyB8Ci0JCURFVl9S WF9PRkZMT0FEX1FJTlFfU1RSSVAgfAotCQlERVZfUlhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VN IHwKLQkJREVWX1JYX09GRkxPQURfTUFDU0VDX1NUUklQIHwKLQkJREVWX1JYX09GRkxPQURfSEVB REVSX1NQTElUIHwKLQkJREVWX1JYX09GRkxPQURfVkxBTl9GSUxURVIgfAotCQlERVZfUlhfT0ZG TE9BRF9WTEFOX0VYVEVORCB8Ci0JCURFVl9SWF9PRkZMT0FEX1NDQVRURVIgfAotCQlERVZfUlhf T0ZGTE9BRF9USU1FU1RBTVAgfAotCQlERVZfUlhfT0ZGTE9BRF9TRUNVUklUWSB8Ci0JCURFVl9S WF9PRkZMT0FEX1JTU19IQVNIOworCQlSVEVfRVRIX1JYX09GRkxPQURfVkxBTl9TVFJJUCB8CisJ CVJURV9FVEhfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX1VE UF9DS1NVTSB8CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0gfAorCQlSVEVfRVRIX1JY X09GRkxPQURfVENQX0xSTyB8CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9RSU5RX1NUUklQIHwKKwkJ UlRFX0VUSF9SWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gfAorCQlSVEVfRVRIX1JYX09GRkxP QURfTUFDU0VDX1NUUklQIHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX0hFQURFUl9TUExJVCB8CisJ CVJURV9FVEhfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUiB8CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9W TEFOX0VYVEVORCB8CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9TQ0FUVEVSIHwKKwkJUlRFX0VUSF9S WF9PRkZMT0FEX1RJTUVTVEFNUCB8CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9TRUNVUklUWSB8CisJ CVJURV9FVEhfUlhfT0ZGTE9BRF9SU1NfSEFTSDsKIAogCWluZm9zLT50eF9vZmZsb2FkX2NhcGEg PQotCQlERVZfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTIHwKLQkJREVWX1RYX09GRkxPQURfTUJVRl9G QVNUX0ZSRUUgfAotCQlERVZfVFhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwKLQkJREVWX1RYX09GRkxP QURfVURQX0NLU1VNIHwKLQkJREVWX1RYX09GRkxPQURfVENQX0NLU1VNIHwKLQkJREVWX1RYX09G RkxPQURfVENQX1RTTzsKKwkJUlRFX0VUSF9UWF9PRkZMT0FEX01VTFRJX1NFR1MgfAorCQlSVEVf RVRIX1RYX09GRkxPQURfTUJVRl9GQVNUX0ZSRUUgfAorCQlSVEVfRVRIX1RYX09GRkxPQURfSVBW NF9DS1NVTSB8CisJCVJURV9FVEhfVFhfT0ZGTE9BRF9VRFBfQ0tTVU0gfAorCQlSVEVfRVRIX1RY X09GRkxPQURfVENQX0NLU1VNIHwKKwkJUlRFX0VUSF9UWF9PRkZMT0FEX1RDUF9UU087CiAKIAlp bmZvcy0+Zmxvd190eXBlX3Jzc19vZmZsb2FkcyA9Ci0JCUVUSF9SU1NfSVAgfAotCQlFVEhfUlNT X1VEUCB8Ci0JCUVUSF9SU1NfVENQOworCQlSVEVfRVRIX1JTU19JUCB8CisJCVJURV9FVEhfUlNT X1VEUCB8CisJCVJURV9FVEhfUlNTX1RDUDsKIAlpbmZvcy0+ZGV2X2NhcGEgPQogCQlSVEVfRVRI X0RFVl9DQVBBX1JVTlRJTUVfUlhfUVVFVUVfU0VUVVAgfAogCQlSVEVfRVRIX0RFVl9DQVBBX1JV TlRJTUVfVFhfUVVFVUVfU0VUVVA7CmRpZmYgYS9kcml2ZXJzL25ldC9mbTEway9mbTEwa19ldGhk ZXYuYyBiL2RyaXZlcnMvbmV0L2ZtMTBrL2ZtMTBrX2V0aGRldi5jCShyZWplY3RlZCBodW5rcykK QEAgLTc1OSw3ICs3NTksNyBAQCBmbTEwa19kZXZfcnhfaW5pdChzdHJ1Y3QgcnRlX2V0aF9kZXYg KmRldikKIAkJLyogSXQgYWRkcyBkdWFsIFZMQU4gbGVuZ3RoIGZvciBzdXBwb3J0aW5nIGR1YWwg VkxBTiAqLwogCQlpZiAoKGRldi0+ZGF0YS0+bXR1ICsgUlRFX0VUSEVSX0hEUl9MRU4gKyBSVEVf RVRIRVJfQ1JDX0xFTiArCiAJCQkJMiAqIEZNMTBLX1ZMQU5fVEFHX1NJWkUpID4gYnVmX3NpemUg fHwKLQkJCXJ4cS0+b2ZmbG9hZHMgJiBERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSKSB7CisJCQlyeHEt Pm9mZmxvYWRzICYgUlRFX0VUSF9SWF9PRkZMT0FEX1NDQVRURVIpIHsKIAkJCXVpbnQzMl90IHJl ZzsKIAkJCWRldi0+ZGF0YS0+c2NhdHRlcmVkX3J4ID0gMTsKIAkJCXJlZyA9IEZNMTBLX1JFQURf UkVHKGh3LCBGTTEwS19TUlJDVEwoaSkpOwpAQCAtMTc2NywyMCArMTc2NywyMCBAQCBzdGF0aWMg dWludDY0X3QgZm0xMGtfZ2V0X3J4X3F1ZXVlX29mZmxvYWRzX2NhcGEoc3RydWN0IHJ0ZV9ldGhf ZGV2ICpkZXYpCiB7CiAJUlRFX1NFVF9VU0VEKGRldik7CiAKLQlyZXR1cm4gKHVpbnQ2NF90KShE RVZfUlhfT0ZGTE9BRF9TQ0FUVEVSKTsKKwlyZXR1cm4gKHVpbnQ2NF90KShSVEVfRVRIX1JYX09G RkxPQURfU0NBVFRFUik7CiB9CiAKIHN0YXRpYyB1aW50NjRfdCBmbTEwa19nZXRfcnhfcG9ydF9v ZmZsb2Fkc19jYXBhKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2KQogewogCVJURV9TRVRfVVNFRChk ZXYpOwogCi0JcmV0dXJuICAodWludDY0X3QpKERFVl9SWF9PRkZMT0FEX1ZMQU5fU1RSSVAgIHwK LQkJCSAgIERFVl9SWF9PRkZMT0FEX1ZMQU5fRklMVEVSIHwKLQkJCSAgIERFVl9SWF9PRkZMT0FE X0lQVjRfQ0tTVU0gIHwKLQkJCSAgIERFVl9SWF9PRkZMT0FEX1VEUF9DS1NVTSAgIHwKLQkJCSAg IERFVl9SWF9PRkZMT0FEX1RDUF9DS1NVTSAgIHwKLQkJCSAgIERFVl9SWF9PRkZMT0FEX0hFQURF Ul9TUExJVCB8Ci0JCQkgICBERVZfUlhfT0ZGTE9BRF9SU1NfSEFTSCk7CisJcmV0dXJuICAodWlu dDY0X3QpKFJURV9FVEhfUlhfT0ZGTE9BRF9WTEFOX1NUUklQICB8CisJCQkgICBSVEVfRVRIX1JY X09GRkxPQURfVkxBTl9GSUxURVIgfAorCQkJICAgUlRFX0VUSF9SWF9PRkZMT0FEX0lQVjRfQ0tT VU0gIHwKKwkJCSAgIFJURV9FVEhfUlhfT0ZGTE9BRF9VRFBfQ0tTVU0gICB8CisJCQkgICBSVEVf RVRIX1JYX09GRkxPQURfVENQX0NLU1VNICAgfAorCQkJICAgUlRFX0VUSF9SWF9PRkZMT0FEX0hF QURFUl9TUExJVCB8CisJCQkgICBSVEVfRVRIX1JYX09GRkxPQURfUlNTX0hBU0gpOwogfQogCiBz dGF0aWMgaW50CmRpZmYgYS9kcml2ZXJzL25ldC9oaW5pYy9oaW5pY19wbWRfZXRoZGV2LmMgYi9k cml2ZXJzL25ldC9oaW5pYy9oaW5pY19wbWRfZXRoZGV2LmMJKHJlamVjdGVkIGh1bmtzKQpAQCAt MzExLDggKzMxMSw4IEBAIHN0YXRpYyBpbnQgaGluaWNfZGV2X2NvbmZpZ3VyZShzdHJ1Y3QgcnRl X2V0aF9kZXYgKmRldikKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCi0JaWYgKGRldi0+ZGF0YS0+ ZGV2X2NvbmYucnhtb2RlLm1xX21vZGUgJiBFVEhfTVFfUlhfUlNTX0ZMQUcpCi0JCWRldi0+ZGF0 YS0+ZGV2X2NvbmYucnhtb2RlLm9mZmxvYWRzIHw9IERFVl9SWF9PRkZMT0FEX1JTU19IQVNIOwor CWlmIChkZXYtPmRhdGEtPmRldl9jb25mLnJ4bW9kZS5tcV9tb2RlICYgUlRFX0VUSF9NUV9SWF9S U1NfRkxBRykKKwkJZGV2LT5kYXRhLT5kZXZfY29uZi5yeG1vZGUub2ZmbG9hZHMgfD0gUlRFX0VU SF9SWF9PRkZMT0FEX1JTU19IQVNIOwogCiAJLyogbXR1IHNpemUgaXMgMjU2fjk2MDAgKi8KIAlp ZiAoSElOSUNfTVRVX1RPX1BLVExFTihkZXYtPmRhdGEtPmRldl9jb25mLnJ4bW9kZS5tdHUpIDwK QEAgLTczMiwyNCArNzMyLDI0IEBAIGhpbmljX2Rldl9pbmZvc19nZXQoc3RydWN0IHJ0ZV9ldGhf ZGV2ICpkZXYsIHN0cnVjdCBydGVfZXRoX2Rldl9pbmZvICppbmZvKQogCiAJaGluaWNfZ2V0X3Nw ZWVkX2NhcGEoZGV2LCAmaW5mby0+c3BlZWRfY2FwYSk7CiAJaW5mby0+cnhfcXVldWVfb2ZmbG9h ZF9jYXBhID0gMDsKLQlpbmZvLT5yeF9vZmZsb2FkX2NhcGEgPSBERVZfUlhfT0ZGTE9BRF9WTEFO X1NUUklQIHwKLQkJCQlERVZfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwKLQkJCQlERVZfUlhfT0ZG TE9BRF9VRFBfQ0tTVU0gfAotCQkJCURFVl9SWF9PRkZMT0FEX1RDUF9DS1NVTSB8Ci0JCQkJREVW X1JYX09GRkxPQURfVkxBTl9GSUxURVIgfAotCQkJCURFVl9SWF9PRkZMT0FEX1NDQVRURVIgfAot CQkJCURFVl9SWF9PRkZMT0FEX1RDUF9MUk8gfAotCQkJCURFVl9SWF9PRkZMT0FEX1JTU19IQVNI OworCWluZm8tPnJ4X29mZmxvYWRfY2FwYSA9IFJURV9FVEhfUlhfT0ZGTE9BRF9WTEFOX1NUUklQ IHwKKwkJCQlSVEVfRVRIX1JYX09GRkxPQURfSVBWNF9DS1NVTSB8CisJCQkJUlRFX0VUSF9SWF9P RkZMT0FEX1VEUF9DS1NVTSB8CisJCQkJUlRFX0VUSF9SWF9PRkZMT0FEX1RDUF9DS1NVTSB8CisJ CQkJUlRFX0VUSF9SWF9PRkZMT0FEX1ZMQU5fRklMVEVSIHwKKwkJCQlSVEVfRVRIX1JYX09GRkxP QURfU0NBVFRFUiB8CisJCQkJUlRFX0VUSF9SWF9PRkZMT0FEX1RDUF9MUk8gfAorCQkJCVJURV9F VEhfUlhfT0ZGTE9BRF9SU1NfSEFTSDsKIAogCWluZm8tPnR4X3F1ZXVlX29mZmxvYWRfY2FwYSA9 IDA7Ci0JaW5mby0+dHhfb2ZmbG9hZF9jYXBhID0gREVWX1RYX09GRkxPQURfVkxBTl9JTlNFUlQg fAotCQkJCURFVl9UWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAotCQkJCURFVl9UWF9PRkZMT0FEX1VE UF9DS1NVTSB8Ci0JCQkJREVWX1RYX09GRkxPQURfVENQX0NLU1VNIHwKLQkJCQlERVZfVFhfT0ZG TE9BRF9TQ1RQX0NLU1VNIHwKLQkJCQlERVZfVFhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNIHwK LQkJCQlERVZfVFhfT0ZGTE9BRF9UQ1BfVFNPIHwKLQkJCQlERVZfVFhfT0ZGTE9BRF9NVUxUSV9T RUdTOworCWluZm8tPnR4X29mZmxvYWRfY2FwYSA9IFJURV9FVEhfVFhfT0ZGTE9BRF9WTEFOX0lO U0VSVCB8CisJCQkJUlRFX0VUSF9UWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAorCQkJCVJURV9FVEhf VFhfT0ZGTE9BRF9VRFBfQ0tTVU0gfAorCQkJCVJURV9FVEhfVFhfT0ZGTE9BRF9UQ1BfQ0tTVU0g fAorCQkJCVJURV9FVEhfVFhfT0ZGTE9BRF9TQ1RQX0NLU1VNIHwKKwkJCQlSVEVfRVRIX1RYX09G RkxPQURfT1VURVJfSVBWNF9DS1NVTSB8CisJCQkJUlRFX0VUSF9UWF9PRkZMT0FEX1RDUF9UU08g fAorCQkJCVJURV9FVEhfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTOwogCiAJaW5mby0+aGFzaF9rZXlf c2l6ZSA9IEhJTklDX1JTU19LRVlfU0laRTsKIAlpbmZvLT5yZXRhX3NpemUgPSBISU5JQ19SU1Nf SU5ESVJfU0laRTsKZGlmZiBhL2RyaXZlcnMvbmV0L2huczMvaG5zM19ldGhkZXYuYyBiL2RyaXZl cnMvbmV0L2huczMvaG5zM19ldGhkZXYuYwkocmVqZWN0ZWQgaHVua3MpCkBAIC0yNjc2LDQwICsy Njc2LDQwIEBAIGhuczNfZGV2X2luZm9zX2dldChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmV0aF9kZXYs IHN0cnVjdCBydGVfZXRoX2Rldl9pbmZvICppbmZvKQogCWluZm8tPm1heF9tYWNfYWRkcnMgPSBI TlMzX1VDX01BQ0FERFJfTlVNOwogCWluZm8tPm1heF9tdHUgPSBpbmZvLT5tYXhfcnhfcGt0bGVu IC0gSE5TM19FVEhfT1ZFUkhFQUQ7CiAJaW5mby0+bWF4X2xyb19wa3Rfc2l6ZSA9IEhOUzNfTUFY X0xST19TSVpFOwotCWluZm8tPnJ4X29mZmxvYWRfY2FwYSA9IChERVZfUlhfT0ZGTE9BRF9JUFY0 X0NLU1VNIHwKLQkJCQkgREVWX1JYX09GRkxPQURfVENQX0NLU1VNIHwKLQkJCQkgREVWX1JYX09G RkxPQURfVURQX0NLU1VNIHwKLQkJCQkgREVWX1JYX09GRkxPQURfU0NUUF9DS1NVTSB8Ci0JCQkJ IERFVl9SWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gfAotCQkJCSBERVZfUlhfT0ZGTE9BRF9P VVRFUl9VRFBfQ0tTVU0gfAotCQkJCSBERVZfUlhfT0ZGTE9BRF9LRUVQX0NSQyB8Ci0JCQkJIERF Vl9SWF9PRkZMT0FEX1NDQVRURVIgfAotCQkJCSBERVZfUlhfT0ZGTE9BRF9WTEFOX1NUUklQIHwK LQkJCQkgREVWX1JYX09GRkxPQURfVkxBTl9GSUxURVIgfAotCQkJCSBERVZfUlhfT0ZGTE9BRF9S U1NfSEFTSCB8Ci0JCQkJIERFVl9SWF9PRkZMT0FEX1RDUF9MUk8pOwotCWluZm8tPnR4X29mZmxv YWRfY2FwYSA9IChERVZfVFhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNIHwKLQkJCQkgREVWX1RY X09GRkxPQURfSVBWNF9DS1NVTSB8Ci0JCQkJIERFVl9UWF9PRkZMT0FEX1RDUF9DS1NVTSB8Ci0J CQkJIERFVl9UWF9PRkZMT0FEX1VEUF9DS1NVTSB8Ci0JCQkJIERFVl9UWF9PRkZMT0FEX1NDVFBf Q0tTVU0gfAotCQkJCSBERVZfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTIHwKLQkJCQkgREVWX1RYX09G RkxPQURfVENQX1RTTyB8Ci0JCQkJIERFVl9UWF9PRkZMT0FEX1ZYTEFOX1ROTF9UU08gfAotCQkJ CSBERVZfVFhfT0ZGTE9BRF9HUkVfVE5MX1RTTyB8Ci0JCQkJIERFVl9UWF9PRkZMT0FEX0dFTkVW RV9UTkxfVFNPIHwKLQkJCQkgREVWX1RYX09GRkxPQURfTUJVRl9GQVNUX0ZSRUUgfAorCWluZm8t PnJ4X29mZmxvYWRfY2FwYSA9IChSVEVfRVRIX1JYX09GRkxPQURfSVBWNF9DS1NVTSB8CisJCQkJ IFJURV9FVEhfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0gfAorCQkJCSBSVEVfRVRIX1JYX09GRkxPQURf VURQX0NLU1VNIHwKKwkJCQkgUlRFX0VUSF9SWF9PRkZMT0FEX1NDVFBfQ0tTVU0gfAorCQkJCSBS VEVfRVRIX1JYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTSB8CisJCQkJIFJURV9FVEhfUlhfT0ZG TE9BRF9PVVRFUl9VRFBfQ0tTVU0gfAorCQkJCSBSVEVfRVRIX1JYX09GRkxPQURfS0VFUF9DUkMg fAorCQkJCSBSVEVfRVRIX1JYX09GRkxPQURfU0NBVFRFUiB8CisJCQkJIFJURV9FVEhfUlhfT0ZG TE9BRF9WTEFOX1NUUklQIHwKKwkJCQkgUlRFX0VUSF9SWF9PRkZMT0FEX1ZMQU5fRklMVEVSIHwK KwkJCQkgUlRFX0VUSF9SWF9PRkZMT0FEX1JTU19IQVNIIHwKKwkJCQkgUlRFX0VUSF9SWF9PRkZM T0FEX1RDUF9MUk8pOworCWluZm8tPnR4X29mZmxvYWRfY2FwYSA9IChSVEVfRVRIX1RYX09GRkxP QURfT1VURVJfSVBWNF9DS1NVTSB8CisJCQkJIFJURV9FVEhfVFhfT0ZGTE9BRF9JUFY0X0NLU1VN IHwKKwkJCQkgUlRFX0VUSF9UWF9PRkZMT0FEX1RDUF9DS1NVTSB8CisJCQkJIFJURV9FVEhfVFhf T0ZGTE9BRF9VRFBfQ0tTVU0gfAorCQkJCSBSVEVfRVRIX1RYX09GRkxPQURfU0NUUF9DS1NVTSB8 CisJCQkJIFJURV9FVEhfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTIHwKKwkJCQkgUlRFX0VUSF9UWF9P RkZMT0FEX1RDUF9UU08gfAorCQkJCSBSVEVfRVRIX1RYX09GRkxPQURfVlhMQU5fVE5MX1RTTyB8 CisJCQkJIFJURV9FVEhfVFhfT0ZGTE9BRF9HUkVfVE5MX1RTTyB8CisJCQkJIFJURV9FVEhfVFhf T0ZGTE9BRF9HRU5FVkVfVE5MX1RTTyB8CisJCQkJIFJURV9FVEhfVFhfT0ZGTE9BRF9NQlVGX0ZB U1RfRlJFRSB8CiAJCQkJIGhuczNfdHh2bGFuX2NhcF9nZXQoaHcpKTsKIAogCWlmIChobnMzX2Rl dl9nZXRfc3VwcG9ydChodywgT1VURVJfVURQX0NLU1VNKSkKLQkJaW5mby0+dHhfb2ZmbG9hZF9j YXBhIHw9IERFVl9UWF9PRkZMT0FEX09VVEVSX1VEUF9DS1NVTTsKKwkJaW5mby0+dHhfb2ZmbG9h ZF9jYXBhIHw9IFJURV9FVEhfVFhfT0ZGTE9BRF9PVVRFUl9VRFBfQ0tTVU07CiAKIAlpZiAoaG5z M19kZXZfZ2V0X3N1cHBvcnQoaHcsIElOREVQX1RYUlgpKQogCQlpbmZvLT5kZXZfY2FwYSA9IFJU RV9FVEhfREVWX0NBUEFfUlVOVElNRV9SWF9RVUVVRV9TRVRVUCB8CiAJCQkJIFJURV9FVEhfREVW X0NBUEFfUlVOVElNRV9UWF9RVUVVRV9TRVRVUDsKIAogCWlmIChobnMzX2Rldl9nZXRfc3VwcG9y dChodywgUFRQKSkKLQkJaW5mby0+cnhfb2ZmbG9hZF9jYXBhIHw9IERFVl9SWF9PRkZMT0FEX1RJ TUVTVEFNUDsKKwkJaW5mby0+cnhfb2ZmbG9hZF9jYXBhIHw9IFJURV9FVEhfUlhfT0ZGTE9BRF9U SU1FU1RBTVA7CiAKIAlpbmZvLT5yeF9kZXNjX2xpbSA9IChzdHJ1Y3QgcnRlX2V0aF9kZXNjX2xp bSkgewogCQkubmJfbWF4ID0gSE5TM19NQVhfUklOR19ERVNDLApkaWZmIGEvZHJpdmVycy9uZXQv aG5zMy9obnMzX2V0aGRldl92Zi5jIGIvZHJpdmVycy9uZXQvaG5zMy9obnMzX2V0aGRldl92Zi5j CShyZWplY3RlZCBodW5rcykKQEAgLTkzNSwzMiArOTM1LDMyIEBAIGhuczN2Zl9kZXZfaW5mb3Nf Z2V0KHN0cnVjdCBydGVfZXRoX2RldiAqZXRoX2Rldiwgc3RydWN0IHJ0ZV9ldGhfZGV2X2luZm8g KmluZm8pCiAJaW5mby0+bWF4X210dSA9IGluZm8tPm1heF9yeF9wa3RsZW4gLSBITlMzX0VUSF9P VkVSSEVBRDsKIAlpbmZvLT5tYXhfbHJvX3BrdF9zaXplID0gSE5TM19NQVhfTFJPX1NJWkU7CiAK LQlpbmZvLT5yeF9vZmZsb2FkX2NhcGEgPSAoREVWX1JYX09GRkxPQURfSVBWNF9DS1NVTSB8Ci0J CQkJIERFVl9SWF9PRkZMT0FEX1VEUF9DS1NVTSB8Ci0JCQkJIERFVl9SWF9PRkZMT0FEX1RDUF9D S1NVTSB8Ci0JCQkJIERFVl9SWF9PRkZMT0FEX1NDVFBfQ0tTVU0gfAotCQkJCSBERVZfUlhfT0ZG TE9BRF9PVVRFUl9JUFY0X0NLU1VNIHwKLQkJCQkgREVWX1JYX09GRkxPQURfT1VURVJfVURQX0NL U1VNIHwKLQkJCQkgREVWX1JYX09GRkxPQURfU0NBVFRFUiB8Ci0JCQkJIERFVl9SWF9PRkZMT0FE X1ZMQU5fU1RSSVAgfAotCQkJCSBERVZfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUiB8Ci0JCQkJIERF Vl9SWF9PRkZMT0FEX1JTU19IQVNIIHwKLQkJCQkgREVWX1JYX09GRkxPQURfVENQX0xSTyk7Ci0J aW5mby0+dHhfb2ZmbG9hZF9jYXBhID0gKERFVl9UWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0g fAotCQkJCSBERVZfVFhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwKLQkJCQkgREVWX1RYX09GRkxPQURf VENQX0NLU1VNIHwKLQkJCQkgREVWX1RYX09GRkxPQURfVURQX0NLU1VNIHwKLQkJCQkgREVWX1RY X09GRkxPQURfU0NUUF9DS1NVTSB8Ci0JCQkJIERFVl9UWF9PRkZMT0FEX01VTFRJX1NFR1MgfAot CQkJCSBERVZfVFhfT0ZGTE9BRF9UQ1BfVFNPIHwKLQkJCQkgREVWX1RYX09GRkxPQURfVlhMQU5f VE5MX1RTTyB8Ci0JCQkJIERFVl9UWF9PRkZMT0FEX0dSRV9UTkxfVFNPIHwKLQkJCQkgREVWX1RY X09GRkxPQURfR0VORVZFX1ROTF9UU08gfAotCQkJCSBERVZfVFhfT0ZGTE9BRF9NQlVGX0ZBU1Rf RlJFRSB8CisJaW5mby0+cnhfb2ZmbG9hZF9jYXBhID0gKFJURV9FVEhfUlhfT0ZGTE9BRF9JUFY0 X0NLU1VNIHwKKwkJCQkgUlRFX0VUSF9SWF9PRkZMT0FEX1VEUF9DS1NVTSB8CisJCQkJIFJURV9F VEhfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0gfAorCQkJCSBSVEVfRVRIX1JYX09GRkxPQURfU0NUUF9D S1NVTSB8CisJCQkJIFJURV9FVEhfUlhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNIHwKKwkJCQkg UlRFX0VUSF9SWF9PRkZMT0FEX09VVEVSX1VEUF9DS1NVTSB8CisJCQkJIFJURV9FVEhfUlhfT0ZG TE9BRF9TQ0FUVEVSIHwKKwkJCQkgUlRFX0VUSF9SWF9PRkZMT0FEX1ZMQU5fU1RSSVAgfAorCQkJ CSBSVEVfRVRIX1JYX09GRkxPQURfVkxBTl9GSUxURVIgfAorCQkJCSBSVEVfRVRIX1JYX09GRkxP QURfUlNTX0hBU0ggfAorCQkJCSBSVEVfRVRIX1JYX09GRkxPQURfVENQX0xSTyk7CisJaW5mby0+ dHhfb2ZmbG9hZF9jYXBhID0gKFJURV9FVEhfVFhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNIHwK KwkJCQkgUlRFX0VUSF9UWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAorCQkJCSBSVEVfRVRIX1RYX09G RkxPQURfVENQX0NLU1VNIHwKKwkJCQkgUlRFX0VUSF9UWF9PRkZMT0FEX1VEUF9DS1NVTSB8CisJ CQkJIFJURV9FVEhfVFhfT0ZGTE9BRF9TQ1RQX0NLU1VNIHwKKwkJCQkgUlRFX0VUSF9UWF9PRkZM T0FEX01VTFRJX1NFR1MgfAorCQkJCSBSVEVfRVRIX1RYX09GRkxPQURfVENQX1RTTyB8CisJCQkJ IFJURV9FVEhfVFhfT0ZGTE9BRF9WWExBTl9UTkxfVFNPIHwKKwkJCQkgUlRFX0VUSF9UWF9PRkZM T0FEX0dSRV9UTkxfVFNPIHwKKwkJCQkgUlRFX0VUSF9UWF9PRkZMT0FEX0dFTkVWRV9UTkxfVFNP IHwKKwkJCQkgUlRFX0VUSF9UWF9PRkZMT0FEX01CVUZfRkFTVF9GUkVFIHwKIAkJCQkgaG5zM190 eHZsYW5fY2FwX2dldChodykpOwogCiAJaWYgKGhuczNfZGV2X2dldF9zdXBwb3J0KGh3LCBPVVRF Ul9VRFBfQ0tTVU0pKQotCQlpbmZvLT50eF9vZmZsb2FkX2NhcGEgfD0gREVWX1RYX09GRkxPQURf T1VURVJfVURQX0NLU1VNOworCQlpbmZvLT50eF9vZmZsb2FkX2NhcGEgfD0gUlRFX0VUSF9UWF9P RkZMT0FEX09VVEVSX1VEUF9DS1NVTTsKIAogCWlmIChobnMzX2Rldl9nZXRfc3VwcG9ydChodywg SU5ERVBfVFhSWCkpCiAJCWluZm8tPmRldl9jYXBhID0gUlRFX0VUSF9ERVZfQ0FQQV9SVU5USU1F X1JYX1FVRVVFX1NFVFVQIHwKZGlmZiBhL2RyaXZlcnMvbmV0L2huczMvaG5zM19yeHR4LmMgYi9k cml2ZXJzL25ldC9obnMzL2huczNfcnh0eC5jCShyZWplY3RlZCBodW5rcykKQEAgLTE5NjksNyAr MTk2OSw3IEBAIGhuczNfcnhfc2NhdHRlcmVkX2NhbGMoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYp CiAJCQkJCQkgcnhxLT5yeF9idWZfbGVuKTsKIAl9CiAKLQlpZiAoZGV2X2NvbmYtPnJ4bW9kZS5v ZmZsb2FkcyAmIERFVl9SWF9PRkZMT0FEX1NDQVRURVIgfHwKKwlpZiAoZGV2X2NvbmYtPnJ4bW9k ZS5vZmZsb2FkcyAmIFJURV9FVEhfUlhfT0ZGTE9BRF9TQ0FUVEVSIHx8CiAJICAgIGRldi0+ZGF0 YS0+bXR1ICsgSE5TM19FVEhfT1ZFUkhFQUQgPiBody0+cnhfYnVmX2xlbikKIAkJZGV2LT5kYXRh LT5zY2F0dGVyZWRfcnggPSB0cnVlOwogfQpAQCAtNDI5MSw3ICs0MjkxLDcgQEAgaG5zM190eF9j aGVja19zaW1wbGVfc3VwcG9ydChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldikKIAlpZiAoaG5zM19k ZXZfZ2V0X3N1cHBvcnQoaHcsIFBUUCkpCiAJCXJldHVybiBmYWxzZTsKIAotCXJldHVybiAob2Zm bG9hZHMgPT0gKG9mZmxvYWRzICYgREVWX1RYX09GRkxPQURfTUJVRl9GQVNUX0ZSRUUpKTsKKwly ZXR1cm4gKG9mZmxvYWRzID09IChvZmZsb2FkcyAmIFJURV9FVEhfVFhfT0ZGTE9BRF9NQlVGX0ZB U1RfRlJFRSkpOwogfQogCiBzdGF0aWMgYm9vbApkaWZmIGEvZHJpdmVycy9uZXQvaG5zMy9obnMz X3J4dHhfdmVjLmMgYi9kcml2ZXJzL25ldC9obnMzL2huczNfcnh0eF92ZWMuYwkocmVqZWN0ZWQg aHVua3MpCkBAIC0yMiw4ICsyMiw4IEBAIGhuczNfdHhfY2hlY2tfdmVjX3N1cHBvcnQoc3RydWN0 IHJ0ZV9ldGhfZGV2ICpkZXYpCiAJaWYgKGhuczNfZGV2X2dldF9zdXBwb3J0KGh3LCBQVFApKQog CQlyZXR1cm4gLUVOT1RTVVA7CiAKLQkvKiBPbmx5IHN1cHBvcnQgREVWX1RYX09GRkxPQURfTUJV Rl9GQVNUX0ZSRUUgKi8KLQlpZiAodHhtb2RlLT5vZmZsb2FkcyAhPSBERVZfVFhfT0ZGTE9BRF9N QlVGX0ZBU1RfRlJFRSkKKwkvKiBPbmx5IHN1cHBvcnQgUlRFX0VUSF9UWF9PRkZMT0FEX01CVUZf RkFTVF9GUkVFICovCisJaWYgKHR4bW9kZS0+b2ZmbG9hZHMgIT0gUlRFX0VUSF9UWF9PRkZMT0FE X01CVUZfRkFTVF9GUkVFKQogCQlyZXR1cm4gLUVOT1RTVVA7CiAKIAlyZXR1cm4gMDsKQEAgLTIy OCwxMCArMjI4LDEwIEBAIGhuczNfcnhxX3ZlY19jaGVjayhzdHJ1Y3QgaG5zM19yeF9xdWV1ZSAq cnhxLCB2b2lkICphcmcpCiBpbnQKIGhuczNfcnhfY2hlY2tfdmVjX3N1cHBvcnQoc3RydWN0IHJ0 ZV9ldGhfZGV2ICpkZXYpCiB7Ci0Jc3RydWN0IHJ0ZV9mZGlyX2NvbmYgKmZjb25mID0gJmRldi0+ ZGF0YS0+ZGV2X2NvbmYuZmRpcl9jb25mOworCXN0cnVjdCBydGVfZXRoX2ZkaXJfY29uZiAqZmNv bmYgPSAmZGV2LT5kYXRhLT5kZXZfY29uZi5mZGlyX2NvbmY7CiAJc3RydWN0IHJ0ZV9ldGhfcnht b2RlICpyeG1vZGUgPSAmZGV2LT5kYXRhLT5kZXZfY29uZi5yeG1vZGU7Ci0JdWludDY0X3Qgb2Zm bG9hZHNfbWFzayA9IERFVl9SWF9PRkZMT0FEX1RDUF9MUk8gfAotCQkJCSBERVZfUlhfT0ZGTE9B RF9WTEFOOworCXVpbnQ2NF90IG9mZmxvYWRzX21hc2sgPSBSVEVfRVRIX1JYX09GRkxPQURfVENQ X0xSTyB8CisJCQkJIFJURV9FVEhfUlhfT0ZGTE9BRF9WTEFOOwogCiAJc3RydWN0IGhuczNfaHcg Kmh3ID0gSE5TM19ERVZfUFJJVkFURV9UT19IVyhkZXYtPmRhdGEtPmRldl9wcml2YXRlKTsKIAlp ZiAoaG5zM19kZXZfZ2V0X3N1cHBvcnQoaHcsIFBUUCkpCmRpZmYgYS9kcml2ZXJzL25ldC9pNDBl L2k0MGVfZXRoZGV2LmMgYi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmMJKHJlamVjdGVk IGh1bmtzKQpAQCAtMzcyMCwzMyArMzcyMCwzMyBAQCBpNDBlX2Rldl9pbmZvX2dldChzdHJ1Y3Qg cnRlX2V0aF9kZXYgKmRldiwgc3RydWN0IHJ0ZV9ldGhfZGV2X2luZm8gKmRldl9pbmZvKQogCWRl dl9pbmZvLT5taW5fbXR1ID0gUlRFX0VUSEVSX01JTl9NVFU7CiAJZGV2X2luZm8tPnJ4X3F1ZXVl X29mZmxvYWRfY2FwYSA9IDA7CiAJZGV2X2luZm8tPnJ4X29mZmxvYWRfY2FwYSA9Ci0JCURFVl9S WF9PRkZMT0FEX1ZMQU5fU1RSSVAgfAotCQlERVZfUlhfT0ZGTE9BRF9RSU5RX1NUUklQIHwKLQkJ REVWX1JYX09GRkxPQURfSVBWNF9DS1NVTSB8Ci0JCURFVl9SWF9PRkZMT0FEX1VEUF9DS1NVTSB8 Ci0JCURFVl9SWF9PRkZMT0FEX1RDUF9DS1NVTSB8Ci0JCURFVl9SWF9PRkZMT0FEX09VVEVSX0lQ VjRfQ0tTVU0gfAotCQlERVZfUlhfT0ZGTE9BRF9LRUVQX0NSQyB8Ci0JCURFVl9SWF9PRkZMT0FE X1NDQVRURVIgfAotCQlERVZfUlhfT0ZGTE9BRF9WTEFOX0VYVEVORCB8Ci0JCURFVl9SWF9PRkZM T0FEX1ZMQU5fRklMVEVSIHwKLQkJREVWX1JYX09GRkxPQURfUlNTX0hBU0g7Ci0KLQlkZXZfaW5m by0+dHhfcXVldWVfb2ZmbG9hZF9jYXBhID0gREVWX1RYX09GRkxPQURfTUJVRl9GQVNUX0ZSRUU7 CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9WTEFOX1NUUklQIHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FE X1FJTlFfU1RSSVAgfAorCQlSVEVfRVRIX1JYX09GRkxPQURfSVBWNF9DS1NVTSB8CisJCVJURV9F VEhfUlhfT0ZGTE9BRF9VRFBfQ0tTVU0gfAorCQlSVEVfRVRIX1JYX09GRkxPQURfVENQX0NLU1VN IHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gfAorCQlSVEVfRVRIX1JY X09GRkxPQURfS0VFUF9DUkMgfAorCQlSVEVfRVRIX1JYX09GRkxPQURfU0NBVFRFUiB8CisJCVJU RV9FVEhfUlhfT0ZGTE9BRF9WTEFOX0VYVEVORCB8CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9WTEFO X0ZJTFRFUiB8CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9SU1NfSEFTSDsKKworCWRldl9pbmZvLT50 eF9xdWV1ZV9vZmZsb2FkX2NhcGEgPSBSVEVfRVRIX1RYX09GRkxPQURfTUJVRl9GQVNUX0ZSRUU7 CiAJZGV2X2luZm8tPnR4X29mZmxvYWRfY2FwYSA9Ci0JCURFVl9UWF9PRkZMT0FEX1ZMQU5fSU5T RVJUIHwKLQkJREVWX1RYX09GRkxPQURfUUlOUV9JTlNFUlQgfAotCQlERVZfVFhfT0ZGTE9BRF9J UFY0X0NLU1VNIHwKLQkJREVWX1RYX09GRkxPQURfVURQX0NLU1VNIHwKLQkJREVWX1RYX09GRkxP QURfVENQX0NLU1VNIHwKLQkJREVWX1RYX09GRkxPQURfU0NUUF9DS1NVTSB8Ci0JCURFVl9UWF9P RkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gfAotCQlERVZfVFhfT0ZGTE9BRF9UQ1BfVFNPIHwKLQkJ REVWX1RYX09GRkxPQURfVlhMQU5fVE5MX1RTTyB8Ci0JCURFVl9UWF9PRkZMT0FEX0dSRV9UTkxf VFNPIHwKLQkJREVWX1RYX09GRkxPQURfSVBJUF9UTkxfVFNPIHwKLQkJREVWX1RYX09GRkxPQURf R0VORVZFX1ROTF9UU08gfAotCQlERVZfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTIHwKKwkJUlRFX0VU SF9UWF9PRkZMT0FEX1ZMQU5fSU5TRVJUIHwKKwkJUlRFX0VUSF9UWF9PRkZMT0FEX1FJTlFfSU5T RVJUIHwKKwkJUlRFX0VUSF9UWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAorCQlSVEVfRVRIX1RYX09G RkxPQURfVURQX0NLU1VNIHwKKwkJUlRFX0VUSF9UWF9PRkZMT0FEX1RDUF9DS1NVTSB8CisJCVJU RV9FVEhfVFhfT0ZGTE9BRF9TQ1RQX0NLU1VNIHwKKwkJUlRFX0VUSF9UWF9PRkZMT0FEX09VVEVS X0lQVjRfQ0tTVU0gfAorCQlSVEVfRVRIX1RYX09GRkxPQURfVENQX1RTTyB8CisJCVJURV9FVEhf VFhfT0ZGTE9BRF9WWExBTl9UTkxfVFNPIHwKKwkJUlRFX0VUSF9UWF9PRkZMT0FEX0dSRV9UTkxf VFNPIHwKKwkJUlRFX0VUSF9UWF9PRkZMT0FEX0lQSVBfVE5MX1RTTyB8CisJCVJURV9FVEhfVFhf T0ZGTE9BRF9HRU5FVkVfVE5MX1RTTyB8CisJCVJURV9FVEhfVFhfT0ZGTE9BRF9NVUxUSV9TRUdT IHwKIAkJZGV2X2luZm8tPnR4X3F1ZXVlX29mZmxvYWRfY2FwYTsKIAlkZXZfaW5mby0+ZGV2X2Nh cGEgPQogCQlSVEVfRVRIX0RFVl9DQVBBX1JVTlRJTUVfUlhfUVVFVUVfU0VUVVAgfApkaWZmIGEv ZHJpdmVycy9uZXQvaTQwZS9pNDBlX2hhc2guYyBiL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9oYXNo LmMJKHJlamVjdGVkIGh1bmtzKQpAQCAtMjM5LDcyICsyMzksNzIgQEAgc3RydWN0IGk0MGVfaGFz aF9tYXRjaF9wYXR0ZXJuIHsKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaTQwZV9oYXNoX21hdGNoX3Bh dHRlcm4gbWF0Y2hfcGF0dGVybnNbXSA9IHsKIAkvKiBFdGhlciAqLwogCUk0MEVfSEFTSF9NQVBf UEFUVEVSTihJNDBFX1BISU5UX0VUSCwKLQkJCSAgICAgIEVUSF9SU1NfTDJfUEFZTE9BRCB8IEk0 MEVfSEFTSF9MMl9SU1NfTUFTSywKKwkJCSAgICAgIFJURV9FVEhfUlNTX0wyX1BBWUxPQUQgfCBJ NDBFX0hBU0hfTDJfUlNTX01BU0ssCiAJCQkgICAgICBJNDBFX0ZJTFRFUl9QQ1RZUEVfTDJfUEFZ TE9BRCksCiAKIAkvKiBJUHY0ICovCiAJSTQwRV9IQVNIX01BUF9QQVRURVJOKEk0MEVfUEhJTlRf SVBWNCwKLQkJCSAgICAgIEVUSF9SU1NfRlJBR19JUFY0IHwgSTQwRV9IQVNIX0lQVjRfTDIzX1JT U19NQVNLLAorCQkJICAgICAgUlRFX0VUSF9SU1NfRlJBR19JUFY0IHwgSTQwRV9IQVNIX0lQVjRf TDIzX1JTU19NQVNLLAogCQkJICAgICAgSTQwRV9GSUxURVJfUENUWVBFX0ZSQUdfSVBWNCksCiAK IAlJNDBFX0hBU0hfTUFQX1BBVFRFUk4oSTQwRV9QSElOVF9JUFY0LAotCQkJICAgICAgRVRIX1JT U19OT05GUkFHX0lQVjRfT1RIRVIgfAorCQkJICAgICAgUlRFX0VUSF9SU1NfTk9ORlJBR19JUFY0 X09USEVSIHwKIAkJCSAgICAgIEk0MEVfSEFTSF9JUFY0X0wyM19SU1NfTUFTSywKIAkJCSAgICAg IEk0MEVfRklMVEVSX1BDVFlQRV9OT05GX0lQVjRfT1RIRVIpLAogCiAJSTQwRV9IQVNIX01BUF9Q QVRURVJOKEk0MEVfUEhJTlRfSVBWNF9UQ1AsCi0JCQkgICAgICBFVEhfUlNTX05PTkZSQUdfSVBW NF9UQ1AgfAorCQkJICAgICAgUlRFX0VUSF9SU1NfTk9ORlJBR19JUFY0X1RDUCB8CiAJCQkgICAg ICBJNDBFX0hBU0hfSVBWNF9MMjM0X1JTU19NQVNLLAogCQkJICAgICAgSTQwRV9GSUxURVJfUENU WVBFX05PTkZfSVBWNF9UQ1ApLAogCiAJSTQwRV9IQVNIX01BUF9QQVRURVJOKEk0MEVfUEhJTlRf SVBWNF9VRFAsCi0JCQkgICAgICBFVEhfUlNTX05PTkZSQUdfSVBWNF9VRFAgfAorCQkJICAgICAg UlRFX0VUSF9SU1NfTk9ORlJBR19JUFY0X1VEUCB8CiAJCQkgICAgICBJNDBFX0hBU0hfSVBWNF9M MjM0X1JTU19NQVNLLAogCQkJICAgICAgSTQwRV9GSUxURVJfUENUWVBFX05PTkZfSVBWNF9VRFAp LAogCiAJSTQwRV9IQVNIX01BUF9QQVRURVJOKEk0MEVfUEhJTlRfSVBWNF9TQ1RQLAotCQkJICAg ICAgRVRIX1JTU19OT05GUkFHX0lQVjRfU0NUUCB8CisJCQkgICAgICBSVEVfRVRIX1JTU19OT05G UkFHX0lQVjRfU0NUUCB8CiAJCQkgICAgICBJNDBFX0hBU0hfSVBWNF9MMjM0X1JTU19NQVNLLAog CQkJICAgICAgSTQwRV9GSUxURVJfUENUWVBFX05PTkZfSVBWNF9TQ1RQKSwKIAogCS8qIElQdjYg Ki8KIAlJNDBFX0hBU0hfTUFQX1BBVFRFUk4oSTQwRV9QSElOVF9JUFY2LAotCQkJICAgICAgRVRI X1JTU19GUkFHX0lQVjYgfCBJNDBFX0hBU0hfSVBWNl9MMjNfUlNTX01BU0ssCisJCQkgICAgICBS VEVfRVRIX1JTU19GUkFHX0lQVjYgfCBJNDBFX0hBU0hfSVBWNl9MMjNfUlNTX01BU0ssCiAJCQkg ICAgICBJNDBFX0ZJTFRFUl9QQ1RZUEVfRlJBR19JUFY2KSwKIAogCUk0MEVfSEFTSF9NQVBfUEFU VEVSTihJNDBFX1BISU5UX0lQVjYsCi0JCQkgICAgICBFVEhfUlNTX05PTkZSQUdfSVBWNl9PVEhF UiB8CisJCQkgICAgICBSVEVfRVRIX1JTU19OT05GUkFHX0lQVjZfT1RIRVIgfAogCQkJICAgICAg STQwRV9IQVNIX0lQVjZfTDIzX1JTU19NQVNLLAogCQkJICAgICAgSTQwRV9GSUxURVJfUENUWVBF X05PTkZfSVBWNl9PVEhFUiksCiAKIAlJNDBFX0hBU0hfTUFQX1BBVFRFUk4oSTQwRV9QSElOVF9J UFY2X0ZSQUcsCi0JCQkgICAgICBFVEhfUlNTX0ZSQUdfSVBWNiB8IEk0MEVfSEFTSF9MMjNfUlNT X01BU0ssCisJCQkgICAgICBSVEVfRVRIX1JTU19GUkFHX0lQVjYgfCBJNDBFX0hBU0hfTDIzX1JT U19NQVNLLAogCQkJICAgICAgSTQwRV9GSUxURVJfUENUWVBFX0ZSQUdfSVBWNiksCiAKIAlJNDBF X0hBU0hfTUFQX1BBVFRFUk4oSTQwRV9QSElOVF9JUFY2X1RDUCwKLQkJCSAgICAgIEVUSF9SU1Nf Tk9ORlJBR19JUFY2X1RDUCB8CisJCQkgICAgICBSVEVfRVRIX1JTU19OT05GUkFHX0lQVjZfVENQ IHwKIAkJCSAgICAgIEk0MEVfSEFTSF9JUFY2X0wyMzRfUlNTX01BU0ssCiAJCQkgICAgICBJNDBF X0ZJTFRFUl9QQ1RZUEVfTk9ORl9JUFY2X1RDUCksCiAKIAlJNDBFX0hBU0hfTUFQX1BBVFRFUk4o STQwRV9QSElOVF9JUFY2X1VEUCwKLQkJCSAgICAgIEVUSF9SU1NfTk9ORlJBR19JUFY2X1VEUCB8 CisJCQkgICAgICBSVEVfRVRIX1JTU19OT05GUkFHX0lQVjZfVURQIHwKIAkJCSAgICAgIEk0MEVf SEFTSF9JUFY2X0wyMzRfUlNTX01BU0ssCiAJCQkgICAgICBJNDBFX0ZJTFRFUl9QQ1RZUEVfTk9O Rl9JUFY2X1VEUCksCiAKIAlJNDBFX0hBU0hfTUFQX1BBVFRFUk4oSTQwRV9QSElOVF9JUFY2X1ND VFAsCi0JCQkgICAgICBFVEhfUlNTX05PTkZSQUdfSVBWNl9TQ1RQIHwKKwkJCSAgICAgIFJURV9F VEhfUlNTX05PTkZSQUdfSVBWNl9TQ1RQIHwKIAkJCSAgICAgIEk0MEVfSEFTSF9JUFY2X0wyMzRf UlNTX01BU0ssCiAJCQkgICAgICBJNDBFX0ZJTFRFUl9QQ1RZUEVfTk9ORl9JUFY2X1NDVFApLAog CiAJLyogRVNQICovCiAJSTQwRV9IQVNIX01BUF9DVVNfUEFUVEVSTihJNDBFX1BISU5UX0lQVjRf RVNQLAotCQkJCSAgRVRIX1JTU19FU1AsIEk0MEVfQ1VTVE9NSVpFRF9FU1BfSVBWNCksCisJCQkJ ICBSVEVfRVRIX1JTU19FU1AsIEk0MEVfQ1VTVE9NSVpFRF9FU1BfSVBWNCksCiAJSTQwRV9IQVNI X01BUF9DVVNfUEFUVEVSTihJNDBFX1BISU5UX0lQVjZfRVNQLAotCQkJCSAgRVRIX1JTU19FU1As IEk0MEVfQ1VTVE9NSVpFRF9FU1BfSVBWNiksCisJCQkJICBSVEVfRVRIX1JTU19FU1AsIEk0MEVf Q1VTVE9NSVpFRF9FU1BfSVBWNiksCiAJSTQwRV9IQVNIX01BUF9DVVNfUEFUVEVSTihJNDBFX1BI SU5UX0lQVjRfVURQX0VTUCwKLQkJCQkgIEVUSF9SU1NfRVNQLCBJNDBFX0NVU1RPTUlaRURfRVNQ X0lQVjRfVURQKSwKKwkJCQkgIFJURV9FVEhfUlNTX0VTUCwgSTQwRV9DVVNUT01JWkVEX0VTUF9J UFY0X1VEUCksCiAJSTQwRV9IQVNIX01BUF9DVVNfUEFUVEVSTihJNDBFX1BISU5UX0lQVjZfVURQ X0VTUCwKLQkJCQkgIEVUSF9SU1NfRVNQLCBJNDBFX0NVU1RPTUlaRURfRVNQX0lQVjZfVURQKSwK KwkJCQkgIFJURV9FVEhfUlNTX0VTUCwgSTQwRV9DVVNUT01JWkVEX0VTUF9JUFY2X1VEUCksCiAK IAkvKiBHVFBDICovCiAJSTQwRV9IQVNIX01BUF9DVVNfUEFUVEVSTihJNDBFX1BISU5UX0lQVjRf R1RQQywKZGlmZiBhL2RyaXZlcnMvbmV0L2lhdmYvaWF2Zl9ldGhkZXYuYyBiL2RyaXZlcnMvbmV0 L2lhdmYvaWF2Zl9ldGhkZXYuYwkocmVqZWN0ZWQgaHVua3MpCkBAIC05NjEsMzQgKzk2MSwzNCBA QCBpYXZmX2Rldl9pbmZvX2dldChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgc3RydWN0IHJ0ZV9l dGhfZGV2X2luZm8gKmRldl9pbmZvKQogCWRldl9pbmZvLT5mbG93X3R5cGVfcnNzX29mZmxvYWRz ID0gSUFWRl9SU1NfT0ZGTE9BRF9BTEw7CiAJZGV2X2luZm8tPm1heF9tYWNfYWRkcnMgPSBJQVZG X05VTV9NQUNBRERSX01BWDsKIAlkZXZfaW5mby0+cnhfb2ZmbG9hZF9jYXBhID0KLQkJREVWX1JY X09GRkxPQURfVkxBTl9TVFJJUCB8Ci0JCURFVl9SWF9PRkZMT0FEX1FJTlFfU1RSSVAgfAotCQlE RVZfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwKLQkJREVWX1JYX09GRkxPQURfVURQX0NLU1VNIHwK LQkJREVWX1JYX09GRkxPQURfVENQX0NLU1VNIHwKLQkJREVWX1JYX09GRkxPQURfT1VURVJfSVBW NF9DS1NVTSB8Ci0JCURFVl9SWF9PRkZMT0FEX1NDQVRURVIgfAotCQlERVZfUlhfT0ZGTE9BRF9W TEFOX0ZJTFRFUiB8Ci0JCURFVl9SWF9PRkZMT0FEX1JTU19IQVNIOworCQlSVEVfRVRIX1JYX09G RkxPQURfVkxBTl9TVFJJUCB8CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9RSU5RX1NUUklQIHwKKwkJ UlRFX0VUSF9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAorCQlSVEVfRVRIX1JYX09GRkxPQURfVURQ X0NLU1VNIHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX1RDUF9DS1NVTSB8CisJCVJURV9FVEhfUlhf T0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNIHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX1NDQVRURVIg fAorCQlSVEVfRVRIX1JYX09GRkxPQURfVkxBTl9GSUxURVIgfAorCQlSVEVfRVRIX1JYX09GRkxP QURfUlNTX0hBU0g7CiAKIAlkZXZfaW5mby0+dHhfb2ZmbG9hZF9jYXBhID0KLQkJREVWX1RYX09G RkxPQURfVkxBTl9JTlNFUlQgfAotCQlERVZfVFhfT0ZGTE9BRF9RSU5RX0lOU0VSVCB8Ci0JCURF Vl9UWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAotCQlERVZfVFhfT0ZGTE9BRF9VRFBfQ0tTVU0gfAot CQlERVZfVFhfT0ZGTE9BRF9UQ1BfQ0tTVU0gfAotCQlERVZfVFhfT0ZGTE9BRF9TQ1RQX0NLU1VN IHwKLQkJREVWX1RYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTSB8Ci0JCURFVl9UWF9PRkZMT0FE X1RDUF9UU08gfAotCQlERVZfVFhfT0ZGTE9BRF9WWExBTl9UTkxfVFNPIHwKLQkJREVWX1RYX09G RkxPQURfR1JFX1ROTF9UU08gfAotCQlERVZfVFhfT0ZGTE9BRF9JUElQX1ROTF9UU08gfAotCQlE RVZfVFhfT0ZGTE9BRF9HRU5FVkVfVE5MX1RTTyB8Ci0JCURFVl9UWF9PRkZMT0FEX01VTFRJX1NF R1MgfAotCQlERVZfVFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJFRTsKKwkJUlRFX0VUSF9UWF9PRkZM T0FEX1ZMQU5fSU5TRVJUIHwKKwkJUlRFX0VUSF9UWF9PRkZMT0FEX1FJTlFfSU5TRVJUIHwKKwkJ UlRFX0VUSF9UWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAorCQlSVEVfRVRIX1RYX09GRkxPQURfVURQ X0NLU1VNIHwKKwkJUlRFX0VUSF9UWF9PRkZMT0FEX1RDUF9DS1NVTSB8CisJCVJURV9FVEhfVFhf T0ZGTE9BRF9TQ1RQX0NLU1VNIHwKKwkJUlRFX0VUSF9UWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tT VU0gfAorCQlSVEVfRVRIX1RYX09GRkxPQURfVENQX1RTTyB8CisJCVJURV9FVEhfVFhfT0ZGTE9B RF9WWExBTl9UTkxfVFNPIHwKKwkJUlRFX0VUSF9UWF9PRkZMT0FEX0dSRV9UTkxfVFNPIHwKKwkJ UlRFX0VUSF9UWF9PRkZMT0FEX0lQSVBfVE5MX1RTTyB8CisJCVJURV9FVEhfVFhfT0ZGTE9BRF9H RU5FVkVfVE5MX1RTTyB8CisJCVJURV9FVEhfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTIHwKKwkJUlRF X0VUSF9UWF9PRkZMT0FEX01CVUZfRkFTVF9GUkVFOwogCiAJaWYgKHZmLT52Zl9yZXMtPnZmX2Nh cF9mbGFncyAmIFZJUlRDSE5MX1ZGX09GRkxPQURfQ1JDKQotCQlkZXZfaW5mby0+cnhfb2ZmbG9h ZF9jYXBhIHw9IERFVl9SWF9PRkZMT0FEX0tFRVBfQ1JDOworCQlkZXZfaW5mby0+cnhfb2ZmbG9h ZF9jYXBhIHw9IFJURV9FVEhfUlhfT0ZGTE9BRF9LRUVQX0NSQzsKIAogCWRldl9pbmZvLT5kZWZh dWx0X3J4Y29uZiA9IChzdHJ1Y3QgcnRlX2V0aF9yeGNvbmYpIHsKIAkJLnJ4X2ZyZWVfdGhyZXNo ID0gSUFWRl9ERUZBVUxUX1JYX0ZSRUVfVEhSRVNILApkaWZmIGEvZHJpdmVycy9uZXQvaWF2Zi9p YXZmX3J4dHhfdmVjX2F2eDIuYyBiL2RyaXZlcnMvbmV0L2lhdmYvaWF2Zl9yeHR4X3ZlY19hdngy LmMJKHJlamVjdGVkIGh1bmtzKQpAQCAtOTA2LDcgKzkwNiw3IEBAIF9pYXZmX3JlY3ZfcmF3X3Br dHNfdmVjX2F2eDJfZmxleF9yeGQoc3RydWN0IGlhdmZfcnhfcXVldWUgKnJ4cSwKIAkJICogbmVl ZHMgdG8gbG9hZCAybmQgMTZCIG9mIGVhY2ggZGVzYyBmb3IgUlNTIGhhc2ggcGFyc2luZywKIAkJ ICogd2lsbCBjYXVzZSBwZXJmb3JtYW5jZSBkcm9wIHRvIGdldCBpbnRvIHRoaXMgY29udGV4dC4K IAkJICovCi0JCWlmIChvZmZsb2FkcyAmIERFVl9SWF9PRkZMT0FEX1JTU19IQVNIIHx8CisJCWlm IChvZmZsb2FkcyAmIFJURV9FVEhfUlhfT0ZGTE9BRF9SU1NfSEFTSCB8fAogCQkgICAgcnhxLT5y eF9mbGFncyAmIElBVkZfUlhfRkxBR1NfVkxBTl9UQUdfTE9DX0wyVEFHMl8yKSB7CiAJCQkvKiBs b2FkIGJvdHRvbSBoYWxmIG9mIGV2ZXJ5IDMyQiBkZXNjICovCiAJCQljb25zdCBfX20xMjhpIHJh d19kZXNjX2JoNyA9CkBAIC05NTgsNyArOTU4LDcgQEAgX2lhdmZfcmVjdl9yYXdfcGt0c192ZWNf YXZ4Ml9mbGV4X3J4ZChzdHJ1Y3QgaWF2Zl9yeF9xdWV1ZSAqcnhxLAogCQkJCQkoX21tMjU2X2Nh c3RzaTEyOF9zaTI1NihyYXdfZGVzY19iaDApLAogCQkJCQlyYXdfZGVzY19iaDEsIDEpOwogCi0J CQlpZiAob2ZmbG9hZHMgJiBERVZfUlhfT0ZGTE9BRF9SU1NfSEFTSCkgeworCQkJaWYgKG9mZmxv YWRzICYgUlRFX0VUSF9SWF9PRkZMT0FEX1JTU19IQVNIKSB7CiAJCQkJLyoqCiAJCQkJICogdG8g c2hpZnQgdGhlIDMyYiBSU1MgaGFzaCB2YWx1ZSB0byB0aGUKIAkJCQkgKiBoaWdoZXN0IDMyYiBv ZiBlYWNoIDEyOGIgYmVmb3JlIG1hc2sKZGlmZiBhL2RyaXZlcnMvbmV0L2lhdmYvaWF2Zl9yeHR4 X3ZlY19hdng1MTIuYyBiL2RyaXZlcnMvbmV0L2lhdmYvaWF2Zl9yeHR4X3ZlY19hdng1MTIuYwko cmVqZWN0ZWQgaHVua3MpCkBAIC0xMTQxLDcgKzExNDEsNyBAQCBfaWF2Zl9yZWN2X3Jhd19wa3Rz X3ZlY19hdng1MTJfZmxleF9yeGQoc3RydWN0IGlhdmZfcnhfcXVldWUgKnJ4cSwKIAkJCSAqIG5l ZWRzIHRvIGxvYWQgMm5kIDE2QiBvZiBlYWNoIGRlc2MgZm9yIFJTUyBoYXNoIHBhcnNpbmcsCiAJ CQkgKiB3aWxsIGNhdXNlIHBlcmZvcm1hbmNlIGRyb3AgdG8gZ2V0IGludG8gdGhpcyBjb250ZXh0 LgogCQkJICovCi0JCQlpZiAob2ZmbG9hZHMgJiBERVZfUlhfT0ZGTE9BRF9SU1NfSEFTSCB8fAor CQkJaWYgKG9mZmxvYWRzICYgUlRFX0VUSF9SWF9PRkZMT0FEX1JTU19IQVNIIHx8CiAJCQkgICAg cnhxLT5yeF9mbGFncyAmIElBVkZfUlhfRkxBR1NfVkxBTl9UQUdfTE9DX0wyVEFHMl8yKSB7CiAJ CQkJLyogbG9hZCBib3R0b20gaGFsZiBvZiBldmVyeSAzMkIgZGVzYyAqLwogCQkJCWNvbnN0IF9f bTEyOGkgcmF3X2Rlc2NfYmg3ID0KQEAgLTExOTMsNyArMTE5Myw3IEBAIF9pYXZmX3JlY3ZfcmF3 X3BrdHNfdmVjX2F2eDUxMl9mbGV4X3J4ZChzdHJ1Y3QgaWF2Zl9yeF9xdWV1ZSAqcnhxLAogCQkJ CQkJKF9tbTI1Nl9jYXN0c2kxMjhfc2kyNTYocmF3X2Rlc2NfYmgwKSwKIAkJCQkJCSByYXdfZGVz Y19iaDEsIDEpOwogCi0JCQkJaWYgKG9mZmxvYWRzICYgREVWX1JYX09GRkxPQURfUlNTX0hBU0gp IHsKKwkJCQlpZiAob2ZmbG9hZHMgJiBSVEVfRVRIX1JYX09GRkxPQURfUlNTX0hBU0gpIHsKIAkJ CQkJLyoqCiAJCQkJCSAqIHRvIHNoaWZ0IHRoZSAzMmIgUlNTIGhhc2ggdmFsdWUgdG8gdGhlCiAJ CQkJCSAqIGhpZ2hlc3QgMzJiIG9mIGVhY2ggMTI4YiBiZWZvcmUgbWFzawpkaWZmIGEvZHJpdmVy cy9uZXQvaWF2Zi9pYXZmX3J4dHhfdmVjX3NzZS5jIGIvZHJpdmVycy9uZXQvaWF2Zi9pYXZmX3J4 dHhfdmVjX3NzZS5jCShyZWplY3RlZCBodW5rcykKQEAgLTgxOSw3ICs4MTksNyBAQCBfcmVjdl9y YXdfcGt0c192ZWNfZmxleF9yeGQoc3RydWN0IGlhdmZfcnhfcXVldWUgKnJ4cSwKIAkJICogbmVl ZHMgdG8gbG9hZCAybmQgMTZCIG9mIGVhY2ggZGVzYyBmb3IgUlNTIGhhc2ggcGFyc2luZywKIAkJ ICogd2lsbCBjYXVzZSBwZXJmb3JtYW5jZSBkcm9wIHRvIGdldCBpbnRvIHRoaXMgY29udGV4dC4K IAkJICovCi0JCWlmIChvZmZsb2FkcyAmIERFVl9SWF9PRkZMT0FEX1JTU19IQVNIKSB7CisJCWlm IChvZmZsb2FkcyAmIFJURV9FVEhfUlhfT0ZGTE9BRF9SU1NfSEFTSCkgewogCQkJLyogbG9hZCBi b3R0b20gaGFsZiBvZiBldmVyeSAzMkIgZGVzYyAqLwogCQkJY29uc3QgX19tMTI4aSByYXdfZGVz Y19iaDMgPQogCQkJCV9tbV9sb2FkX3NpMTI4CmRpZmYgYS9kcml2ZXJzL25ldC9pY2UvaWNlX2Rj Zl9ldGhkZXYuYyBiL2RyaXZlcnMvbmV0L2ljZS9pY2VfZGNmX2V0aGRldi5jCShyZWplY3RlZCBo dW5rcykKQEAgLTY0NCw3ICs2NDQsNyBAQCBpY2VfZGNmX2Rldl9zdG9wKHN0cnVjdCBydGVfZXRo X2RldiAqZGV2KQogCX0KIAogCWljZV9kY2ZfYWRkX2RlbF9hbGxfbWFjX2FkZHIoJmRjZl9hZC0+ cmVhbF9odywgZmFsc2UpOwotCWRldi0+ZGF0YS0+ZGV2X2xpbmsubGlua19zdGF0dXMgPSBFVEhf TElOS19ET1dOOworCWRldi0+ZGF0YS0+ZGV2X2xpbmsubGlua19zdGF0dXMgPSBSVEVfRVRIX0xJ TktfRE9XTjsKIAlhZC0+cGYuYWRhcHRlcl9zdG9wcGVkID0gMTsKIAlody0+dG1fY29uZi5jb21t aXR0ZWQgPSBmYWxzZTsKIApAQCAtNjgzLDI3ICs2ODMsMjcgQEAgaWNlX2RjZl9kZXZfaW5mb19n ZXQoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsCiAJZGV2X2luZm8tPmZsb3dfdHlwZV9yc3Nfb2Zm bG9hZHMgPSBJQ0VfUlNTX09GRkxPQURfQUxMOwogCiAJZGV2X2luZm8tPnJ4X29mZmxvYWRfY2Fw YSA9Ci0JCURFVl9SWF9PRkZMT0FEX1ZMQU5fU1RSSVAgfAotCQlERVZfUlhfT0ZGTE9BRF9JUFY0 X0NLU1VNIHwKLQkJREVWX1JYX09GRkxPQURfVURQX0NLU1VNIHwKLQkJREVWX1JYX09GRkxPQURf VENQX0NLU1VNIHwKLQkJREVWX1JYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTSB8Ci0JCURFVl9S WF9PRkZMT0FEX1NDQVRURVIgfAotCQlERVZfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUiB8Ci0JCURF Vl9SWF9PRkZMT0FEX1JTU19IQVNIOworCQlSVEVfRVRIX1JYX09GRkxPQURfVkxBTl9TVFJJUCB8 CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FE X1VEUF9DS1NVTSB8CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0gfAorCQlSVEVfRVRI X1JYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTSB8CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9TQ0FU VEVSIHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX1ZMQU5fRklMVEVSIHwKKwkJUlRFX0VUSF9SWF9P RkZMT0FEX1JTU19IQVNIOwogCWRldl9pbmZvLT50eF9vZmZsb2FkX2NhcGEgPQotCQlERVZfVFhf T0ZGTE9BRF9WTEFOX0lOU0VSVCB8Ci0JCURFVl9UWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAotCQlE RVZfVFhfT0ZGTE9BRF9VRFBfQ0tTVU0gfAotCQlERVZfVFhfT0ZGTE9BRF9UQ1BfQ0tTVU0gfAot CQlERVZfVFhfT0ZGTE9BRF9TQ1RQX0NLU1VNIHwKLQkJREVWX1RYX09GRkxPQURfT1VURVJfSVBW NF9DS1NVTSB8Ci0JCURFVl9UWF9PRkZMT0FEX1RDUF9UU08gfAotCQlERVZfVFhfT0ZGTE9BRF9W WExBTl9UTkxfVFNPIHwKLQkJREVWX1RYX09GRkxPQURfR1JFX1ROTF9UU08gfAotCQlERVZfVFhf T0ZGTE9BRF9JUElQX1ROTF9UU08gfAotCQlERVZfVFhfT0ZGTE9BRF9HRU5FVkVfVE5MX1RTTyB8 Ci0JCURFVl9UWF9PRkZMT0FEX01VTFRJX1NFR1M7CisJCVJURV9FVEhfVFhfT0ZGTE9BRF9WTEFO X0lOU0VSVCB8CisJCVJURV9FVEhfVFhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwKKwkJUlRFX0VUSF9U WF9PRkZMT0FEX1VEUF9DS1NVTSB8CisJCVJURV9FVEhfVFhfT0ZGTE9BRF9UQ1BfQ0tTVU0gfAor CQlSVEVfRVRIX1RYX09GRkxPQURfU0NUUF9DS1NVTSB8CisJCVJURV9FVEhfVFhfT0ZGTE9BRF9P VVRFUl9JUFY0X0NLU1VNIHwKKwkJUlRFX0VUSF9UWF9PRkZMT0FEX1RDUF9UU08gfAorCQlSVEVf RVRIX1RYX09GRkxPQURfVlhMQU5fVE5MX1RTTyB8CisJCVJURV9FVEhfVFhfT0ZGTE9BRF9HUkVf VE5MX1RTTyB8CisJCVJURV9FVEhfVFhfT0ZGTE9BRF9JUElQX1ROTF9UU08gfAorCQlSVEVfRVRI X1RYX09GRkxPQURfR0VORVZFX1ROTF9UU08gfAorCQlSVEVfRVRIX1RYX09GRkxPQURfTVVMVElf U0VHUzsKIAogCWRldl9pbmZvLT5kZWZhdWx0X3J4Y29uZiA9IChzdHJ1Y3QgcnRlX2V0aF9yeGNv bmYpIHsKIAkJLnJ4X3RocmVzaCA9IHsKZGlmZiBhL2RyaXZlcnMvbmV0L2ljZS9pY2VfZGNmX3Zm X3JlcHJlc2VudG9yLmMgYi9kcml2ZXJzL25ldC9pY2UvaWNlX2RjZl92Zl9yZXByZXNlbnRvci5j CShyZWplY3RlZCBodW5rcykKQEAgLTE0MywyOCArMTQzLDI4IEBAIGljZV9kY2ZfdmZfcmVwcl9k ZXZfaW5mb19nZXQoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsCiAJZGV2X2luZm8tPmZsb3dfdHlw ZV9yc3Nfb2ZmbG9hZHMgPSBJQ0VfUlNTX09GRkxPQURfQUxMOwogCiAJZGV2X2luZm8tPnJ4X29m ZmxvYWRfY2FwYSA9Ci0JCURFVl9SWF9PRkZMT0FEX1ZMQU5fU1RSSVAgfAotCQlERVZfUlhfT0ZG TE9BRF9JUFY0X0NLU1VNIHwKLQkJREVWX1JYX09GRkxPQURfVURQX0NLU1VNIHwKLQkJREVWX1JY X09GRkxPQURfVENQX0NLU1VNIHwKLQkJREVWX1JYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTSB8 Ci0JCURFVl9SWF9PRkZMT0FEX1NDQVRURVIgfAotCQlERVZfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRF UiB8Ci0JCURFVl9SWF9PRkZMT0FEX1ZMQU5fRVhURU5EIHwKLQkJREVWX1JYX09GRkxPQURfUlNT X0hBU0g7CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9WTEFOX1NUUklQIHwKKwkJUlRFX0VUSF9SWF9P RkZMT0FEX0lQVjRfQ0tTVU0gfAorCQlSVEVfRVRIX1JYX09GRkxPQURfVURQX0NLU1VNIHwKKwkJ UlRFX0VUSF9SWF9PRkZMT0FEX1RDUF9DS1NVTSB8CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9PVVRF Ul9JUFY0X0NLU1VNIHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX1NDQVRURVIgfAorCQlSVEVfRVRI X1JYX09GRkxPQURfVkxBTl9GSUxURVIgfAorCQlSVEVfRVRIX1JYX09GRkxPQURfVkxBTl9FWFRF TkQgfAorCQlSVEVfRVRIX1JYX09GRkxPQURfUlNTX0hBU0g7CiAJZGV2X2luZm8tPnR4X29mZmxv YWRfY2FwYSA9Ci0JCURFVl9UWF9PRkZMT0FEX1ZMQU5fSU5TRVJUIHwKLQkJREVWX1RYX09GRkxP QURfSVBWNF9DS1NVTSB8Ci0JCURFVl9UWF9PRkZMT0FEX1VEUF9DS1NVTSB8Ci0JCURFVl9UWF9P RkZMT0FEX1RDUF9DS1NVTSB8Ci0JCURFVl9UWF9PRkZMT0FEX1NDVFBfQ0tTVU0gfAotCQlERVZf VFhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNIHwKLQkJREVWX1RYX09GRkxPQURfVENQX1RTTyB8 Ci0JCURFVl9UWF9PRkZMT0FEX1ZYTEFOX1ROTF9UU08gfAotCQlERVZfVFhfT0ZGTE9BRF9HUkVf VE5MX1RTTyB8Ci0JCURFVl9UWF9PRkZMT0FEX0lQSVBfVE5MX1RTTyB8Ci0JCURFVl9UWF9PRkZM T0FEX0dFTkVWRV9UTkxfVFNPIHwKLQkJREVWX1RYX09GRkxPQURfTVVMVElfU0VHUzsKKwkJUlRF X0VUSF9UWF9PRkZMT0FEX1ZMQU5fSU5TRVJUIHwKKwkJUlRFX0VUSF9UWF9PRkZMT0FEX0lQVjRf Q0tTVU0gfAorCQlSVEVfRVRIX1RYX09GRkxPQURfVURQX0NLU1VNIHwKKwkJUlRFX0VUSF9UWF9P RkZMT0FEX1RDUF9DS1NVTSB8CisJCVJURV9FVEhfVFhfT0ZGTE9BRF9TQ1RQX0NLU1VNIHwKKwkJ UlRFX0VUSF9UWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gfAorCQlSVEVfRVRIX1RYX09GRkxP QURfVENQX1RTTyB8CisJCVJURV9FVEhfVFhfT0ZGTE9BRF9WWExBTl9UTkxfVFNPIHwKKwkJUlRF X0VUSF9UWF9PRkZMT0FEX0dSRV9UTkxfVFNPIHwKKwkJUlRFX0VUSF9UWF9PRkZMT0FEX0lQSVBf VE5MX1RTTyB8CisJCVJURV9FVEhfVFhfT0ZGTE9BRF9HRU5FVkVfVE5MX1RTTyB8CisJCVJURV9F VEhfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTOwogCiAJZGV2X2luZm8tPmRlZmF1bHRfcnhjb25mID0g KHN0cnVjdCBydGVfZXRoX3J4Y29uZikgewogCQkucnhfdGhyZXNoID0gewpkaWZmIGEvZHJpdmVy cy9uZXQvaWNlL2ljZV9ldGhkZXYuYyBiL2RyaXZlcnMvbmV0L2ljZS9pY2VfZXRoZGV2LmMJKHJl amVjdGVkIGh1bmtzKQpAQCAtMzY4Miw0MCArMzY4Miw0MCBAQCBpY2VfZGV2X2luZm9fZ2V0KHN0 cnVjdCBydGVfZXRoX2RldiAqZGV2LCBzdHJ1Y3QgcnRlX2V0aF9kZXZfaW5mbyAqZGV2X2luZm8p CiAJZGV2X2luZm8tPm1pbl9tdHUgPSBSVEVfRVRIRVJfTUlOX01UVTsKIAogCWRldl9pbmZvLT5y eF9vZmZsb2FkX2NhcGEgPQotCQlERVZfUlhfT0ZGTE9BRF9WTEFOX1NUUklQIHwKLQkJREVWX1JY X09GRkxPQURfS0VFUF9DUkMgfAotCQlERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSIHwKLQkJREVWX1JY X09GRkxPQURfVkxBTl9GSUxURVI7CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9WTEFOX1NUUklQIHwK KwkJUlRFX0VUSF9SWF9PRkZMT0FEX0tFRVBfQ1JDIHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX1ND QVRURVIgfAorCQlSVEVfRVRIX1JYX09GRkxPQURfVkxBTl9GSUxURVI7CiAJZGV2X2luZm8tPnR4 X29mZmxvYWRfY2FwYSA9Ci0JCURFVl9UWF9PRkZMT0FEX1ZMQU5fSU5TRVJUIHwKLQkJREVWX1RY X09GRkxPQURfVENQX1RTTyB8Ci0JCURFVl9UWF9PRkZMT0FEX01VTFRJX1NFR1MgfAotCQlERVZf VFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJFRTsKKwkJUlRFX0VUSF9UWF9PRkZMT0FEX1ZMQU5fSU5T RVJUIHwKKwkJUlRFX0VUSF9UWF9PRkZMT0FEX1RDUF9UU08gfAorCQlSVEVfRVRIX1RYX09GRkxP QURfTVVMVElfU0VHUyB8CisJCVJURV9FVEhfVFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJFRTsKIAlk ZXZfaW5mby0+Zmxvd190eXBlX3Jzc19vZmZsb2FkcyA9IDA7CiAKIAlpZiAoIWlzX3NhZmVfbW9k ZSkgewogCQlkZXZfaW5mby0+cnhfb2ZmbG9hZF9jYXBhIHw9Ci0JCQlERVZfUlhfT0ZGTE9BRF9J UFY0X0NLU1VNIHwKLQkJCURFVl9SWF9PRkZMT0FEX1VEUF9DS1NVTSB8Ci0JCQlERVZfUlhfT0ZG TE9BRF9UQ1BfQ0tTVU0gfAotCQkJREVWX1JYX09GRkxPQURfUUlOUV9TVFJJUCB8Ci0JCQlERVZf UlhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNIHwKLQkJCURFVl9SWF9PRkZMT0FEX1ZMQU5fRVhU RU5EIHwKLQkJCURFVl9SWF9PRkZMT0FEX1JTU19IQVNIIHwKLQkJCURFVl9SWF9PRkZMT0FEX1RJ TUVTVEFNUDsKKwkJCVJURV9FVEhfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwKKwkJCVJURV9FVEhf UlhfT0ZGTE9BRF9VRFBfQ0tTVU0gfAorCQkJUlRFX0VUSF9SWF9PRkZMT0FEX1RDUF9DS1NVTSB8 CisJCQlSVEVfRVRIX1JYX09GRkxPQURfUUlOUV9TVFJJUCB8CisJCQlSVEVfRVRIX1JYX09GRkxP QURfT1VURVJfSVBWNF9DS1NVTSB8CisJCQlSVEVfRVRIX1JYX09GRkxPQURfVkxBTl9FWFRFTkQg fAorCQkJUlRFX0VUSF9SWF9PRkZMT0FEX1JTU19IQVNIIHwKKwkJCVJURV9FVEhfUlhfT0ZGTE9B RF9USU1FU1RBTVA7CiAJCWRldl9pbmZvLT50eF9vZmZsb2FkX2NhcGEgfD0KLQkJCURFVl9UWF9P RkZMT0FEX1FJTlFfSU5TRVJUIHwKLQkJCURFVl9UWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAotCQkJ REVWX1RYX09GRkxPQURfVURQX0NLU1VNIHwKLQkJCURFVl9UWF9PRkZMT0FEX1RDUF9DS1NVTSB8 Ci0JCQlERVZfVFhfT0ZGTE9BRF9TQ1RQX0NLU1VNIHwKLQkJCURFVl9UWF9PRkZMT0FEX09VVEVS X0lQVjRfQ0tTVU0gfAotCQkJREVWX1RYX09GRkxPQURfT1VURVJfVURQX0NLU1VNOworCQkJUlRF X0VUSF9UWF9PRkZMT0FEX1FJTlFfSU5TRVJUIHwKKwkJCVJURV9FVEhfVFhfT0ZGTE9BRF9JUFY0 X0NLU1VNIHwKKwkJCVJURV9FVEhfVFhfT0ZGTE9BRF9VRFBfQ0tTVU0gfAorCQkJUlRFX0VUSF9U WF9PRkZMT0FEX1RDUF9DS1NVTSB8CisJCQlSVEVfRVRIX1RYX09GRkxPQURfU0NUUF9DS1NVTSB8 CisJCQlSVEVfRVRIX1RYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTSB8CisJCQlSVEVfRVRIX1RY X09GRkxPQURfT1VURVJfVURQX0NLU1VNOwogCQlkZXZfaW5mby0+Zmxvd190eXBlX3Jzc19vZmZs b2FkcyB8PSBJQ0VfUlNTX09GRkxPQURfQUxMOwogCX0KIAogCWRldl9pbmZvLT5yeF9xdWV1ZV9v ZmZsb2FkX2NhcGEgPSAwOwotCWRldl9pbmZvLT50eF9xdWV1ZV9vZmZsb2FkX2NhcGEgPSBERVZf VFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJFRTsKKwlkZXZfaW5mby0+dHhfcXVldWVfb2ZmbG9hZF9j YXBhID0gUlRFX0VUSF9UWF9PRkZMT0FEX01CVUZfRkFTVF9GUkVFOwogCiAJZGV2X2luZm8tPnJl dGFfc2l6ZSA9IHBmLT5oYXNoX2x1dF9zaXplOwogCWRldl9pbmZvLT5oYXNoX2tleV9zaXplID0g KFZTSVFGX0hLRVlfTUFYX0lOREVYICsgMSkgKiBzaXplb2YodWludDMyX3QpOwpkaWZmIGEvZHJp dmVycy9uZXQvaWNlL2ljZV9yeHR4LmMgYi9kcml2ZXJzL25ldC9pY2UvaWNlX3J4dHguYwkocmVq ZWN0ZWQgaHVua3MpCkBAIC0xNjI0LDcgKzE2MjQsNyBAQCBpY2Vfcnhfc2Nhbl9od19yaW5nKHN0 cnVjdCBpY2VfcnhfcXVldWUgKnJ4cSkKIAkJCWljZV9yeGRfdG9fdmxhbl90Y2kobWIsICZyeGRw W2pdKTsKIAkJCXJ4cS0+cnhkX3RvX3BrdF9maWVsZHMocnhxLCBtYiwgJnJ4ZHBbal0pOwogI2lm bmRlZiBSVEVfTElCUlRFX0lDRV8xNkJZVEVfUlhfREVTQwotCQkJaWYgKHJ4cS0+b2ZmbG9hZHMg JiBERVZfUlhfT0ZGTE9BRF9USU1FU1RBTVApIHsKKwkJCWlmIChyeHEtPm9mZmxvYWRzICYgUlRF X0VUSF9SWF9PRkZMT0FEX1RJTUVTVEFNUCkgewogCQkJCXRzX25zID0gaWNlX3RzdGFtcF9jb252 ZXJ0XzMyYl82NGIoaHcsCiAJCQkJCXJ0ZV9sZV90b19jcHVfMzIocnhkcFtqXS53Yi5mbGV4X3Rz LnRzX2hpZ2gpKTsKIAkJCQlpZiAoaWNlX3RpbWVzdGFtcF9keW5mbGFnID4gMCkgewpAQCAtMTk0 Miw3ICsxOTQyLDcgQEAgaWNlX3JlY3Zfc2NhdHRlcmVkX3BrdHModm9pZCAqcnhfcXVldWUsCiAJ CXJ4cS0+cnhkX3RvX3BrdF9maWVsZHMocnhxLCBmaXJzdF9zZWcsICZyeGQpOwogCQlwa3RfZmxh Z3MgPSBpY2VfcnhkX2Vycm9yX3RvX3BrdF9mbGFncyhyeF9zdGF0X2VycjApOwogI2lmbmRlZiBS VEVfTElCUlRFX0lDRV8xNkJZVEVfUlhfREVTQwotCQlpZiAocnhxLT5vZmZsb2FkcyAmIERFVl9S WF9PRkZMT0FEX1RJTUVTVEFNUCkgeworCQlpZiAocnhxLT5vZmZsb2FkcyAmIFJURV9FVEhfUlhf T0ZGTE9BRF9USU1FU1RBTVApIHsKIAkJCXRzX25zID0gaWNlX3RzdGFtcF9jb252ZXJ0XzMyYl82 NGIoaHcsCiAJCQkJcnRlX2xlX3RvX2NwdV8zMihyeGQud2IuZmxleF90cy50c19oaWdoKSk7CiAJ CQlpZiAoaWNlX3RpbWVzdGFtcF9keW5mbGFnID4gMCkgewpAQCAtMjM3Myw3ICsyMzczLDcgQEAg aWNlX3JlY3ZfcGt0cyh2b2lkICpyeF9xdWV1ZSwKIAkJcnhxLT5yeGRfdG9fcGt0X2ZpZWxkcyhy eHEsIHJ4bSwgJnJ4ZCk7CiAJCXBrdF9mbGFncyA9IGljZV9yeGRfZXJyb3JfdG9fcGt0X2ZsYWdz KHJ4X3N0YXRfZXJyMCk7CiAjaWZuZGVmIFJURV9MSUJSVEVfSUNFXzE2QllURV9SWF9ERVNDCi0J CWlmIChyeHEtPm9mZmxvYWRzICYgREVWX1JYX09GRkxPQURfVElNRVNUQU1QKSB7CisJCWlmIChy eHEtPm9mZmxvYWRzICYgUlRFX0VUSF9SWF9PRkZMT0FEX1RJTUVTVEFNUCkgewogCQkJdHNfbnMg PSBpY2VfdHN0YW1wX2NvbnZlcnRfMzJiXzY0YihodywKIAkJCQlydGVfbGVfdG9fY3B1XzMyKHJ4 ZC53Yi5mbGV4X3RzLnRzX2hpZ2gpKTsKIAkJCWlmIChpY2VfdGltZXN0YW1wX2R5bmZsYWcgPiAw KSB7CmRpZmYgYS9kcml2ZXJzL25ldC9pZ2MvaWdjX2V0aGRldi5oIGIvZHJpdmVycy9uZXQvaWdj L2lnY19ldGhkZXYuaAkocmVqZWN0ZWQgaHVua3MpCkBAIC02NiwzNyArNjYsMzcgQEAgZXh0ZXJu ICJDIiB7CiAjZGVmaW5lIElHQ19UWF9NQVhfTVRVX1NFRwlVSU5UOF9NQVgKIAogI2RlZmluZSBJ R0NfUlhfT0ZGTE9BRF9BTEwJKCAgICBcCi0JREVWX1JYX09GRkxPQURfVkxBTl9TVFJJUCAgfCBc Ci0JREVWX1JYX09GRkxPQURfVkxBTl9GSUxURVIgfCBcCi0JREVWX1JYX09GRkxPQURfVkxBTl9F WFRFTkQgfCBcCi0JREVWX1JYX09GRkxPQURfSVBWNF9DS1NVTSAgfCBcCi0JREVWX1JYX09GRkxP QURfVURQX0NLU1VNICAgfCBcCi0JREVWX1JYX09GRkxPQURfVENQX0NLU1VNICAgfCBcCi0JREVW X1JYX09GRkxPQURfU0NUUF9DS1NVTSAgfCBcCi0JREVWX1JYX09GRkxPQURfS0VFUF9DUkMgICAg fCBcCi0JREVWX1JYX09GRkxPQURfU0NBVFRFUiAgICAgfCBcCi0JREVWX1JYX09GRkxPQURfUlNT X0hBU0gpCisJUlRFX0VUSF9SWF9PRkZMT0FEX1ZMQU5fU1RSSVAgIHwgXAorCVJURV9FVEhfUlhf T0ZGTE9BRF9WTEFOX0ZJTFRFUiB8IFwKKwlSVEVfRVRIX1JYX09GRkxPQURfVkxBTl9FWFRFTkQg fCBcCisJUlRFX0VUSF9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0gIHwgXAorCVJURV9FVEhfUlhfT0ZG TE9BRF9VRFBfQ0tTVU0gICB8IFwKKwlSVEVfRVRIX1JYX09GRkxPQURfVENQX0NLU1VNICAgfCBc CisJUlRFX0VUSF9SWF9PRkZMT0FEX1NDVFBfQ0tTVU0gIHwgXAorCVJURV9FVEhfUlhfT0ZGTE9B RF9LRUVQX0NSQyAgICB8IFwKKwlSVEVfRVRIX1JYX09GRkxPQURfU0NBVFRFUiAgICAgfCBcCisJ UlRFX0VUSF9SWF9PRkZMT0FEX1JTU19IQVNIKQogCiAjZGVmaW5lIElHQ19UWF9PRkZMT0FEX0FM TAkoICAgIFwKLQlERVZfVFhfT0ZGTE9BRF9WTEFOX0lOU0VSVCB8IFwKLQlERVZfVFhfT0ZGTE9B RF9JUFY0X0NLU1VNICB8IFwKLQlERVZfVFhfT0ZGTE9BRF9VRFBfQ0tTVU0gICB8IFwKLQlERVZf VFhfT0ZGTE9BRF9UQ1BfQ0tTVU0gICB8IFwKLQlERVZfVFhfT0ZGTE9BRF9TQ1RQX0NLU1VNICB8 IFwKLQlERVZfVFhfT0ZGTE9BRF9UQ1BfVFNPICAgICB8IFwKLQlERVZfVFhfT0ZGTE9BRF9VRFBf VFNPCSAgIHwgXAotCURFVl9UWF9PRkZMT0FEX01VTFRJX1NFR1MpCisJUlRFX0VUSF9UWF9PRkZM T0FEX1ZMQU5fSU5TRVJUIHwgXAorCVJURV9FVEhfVFhfT0ZGTE9BRF9JUFY0X0NLU1VNICB8IFwK KwlSVEVfRVRIX1RYX09GRkxPQURfVURQX0NLU1VNICAgfCBcCisJUlRFX0VUSF9UWF9PRkZMT0FE X1RDUF9DS1NVTSAgIHwgXAorCVJURV9FVEhfVFhfT0ZGTE9BRF9TQ1RQX0NLU1VNICB8IFwKKwlS VEVfRVRIX1RYX09GRkxPQURfVENQX1RTTyAgICAgfCBcCisJUlRFX0VUSF9UWF9PRkZMT0FEX1VE UF9UU08JICAgfCBcCisJUlRFX0VUSF9UWF9PRkZMT0FEX01VTFRJX1NFR1MpCiAKICNkZWZpbmUg SUdDX1JTU19PRkZMT0FEX0FMTAkoICAgIFwKLQlFVEhfUlNTX0lQVjQgICAgICAgICAgICAgICB8 IFwKLQlFVEhfUlNTX05PTkZSQUdfSVBWNF9UQ1AgICB8IFwKLQlFVEhfUlNTX05PTkZSQUdfSVBW NF9VRFAgICB8IFwKLQlFVEhfUlNTX0lQVjYgICAgICAgICAgICAgICB8IFwKLQlFVEhfUlNTX05P TkZSQUdfSVBWNl9UQ1AgICB8IFwKLQlFVEhfUlNTX05PTkZSQUdfSVBWNl9VRFAgICB8IFwKLQlF VEhfUlNTX0lQVjZfRVggICAgICAgICAgICB8IFwKLQlFVEhfUlNTX0lQVjZfVENQX0VYICAgICAg ICB8IFwKLQlFVEhfUlNTX0lQVjZfVURQX0VYKQorCVJURV9FVEhfUlNTX0lQVjQgICAgICAgICAg ICAgICB8IFwKKwlSVEVfRVRIX1JTU19OT05GUkFHX0lQVjRfVENQICAgfCBcCisJUlRFX0VUSF9S U1NfTk9ORlJBR19JUFY0X1VEUCAgIHwgXAorCVJURV9FVEhfUlNTX0lQVjYgICAgICAgICAgICAg ICB8IFwKKwlSVEVfRVRIX1JTU19OT05GUkFHX0lQVjZfVENQICAgfCBcCisJUlRFX0VUSF9SU1Nf Tk9ORlJBR19JUFY2X1VEUCAgIHwgXAorCVJURV9FVEhfUlNTX0lQVjZfRVggICAgICAgICAgICB8 IFwKKwlSVEVfRVRIX1JTU19JUFY2X1RDUF9FWCAgICAgICAgfCBcCisJUlRFX0VUSF9SU1NfSVBW Nl9VRFBfRVgpCiAKICNkZWZpbmUgSUdDX01BWF9FVFFGX0ZJTFRFUlMJCTMJLyogZXRxZigzKSBp cyB1c2VkIGZvciAxNTg4ICovCiAjZGVmaW5lIElHQ19FVFFGX0ZJTFRFUl8xNTg4CQkzCmRpZmYg YS9kcml2ZXJzL25ldC9pb25pYy9pb25pY19ldGhkZXYuYyBiL2RyaXZlcnMvbmV0L2lvbmljL2lv bmljX2V0aGRldi5jCShyZWplY3RlZCBodW5rcykKQEAgLTQxMSwyNCArNDExLDI0IEBAIGlvbmlj X2Rldl9pbmZvX2dldChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmV0aF9kZXYsCiAJICovCiAKIAlkZXZf aW5mby0+cnhfb2ZmbG9hZF9jYXBhID0gZGV2X2luZm8tPnJ4X3F1ZXVlX29mZmxvYWRfY2FwYSB8 Ci0JCURFVl9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAotCQlERVZfUlhfT0ZGTE9BRF9VRFBfQ0tT VU0gfAotCQlERVZfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0gfAotCQlERVZfUlhfT0ZGTE9BRF9WTEFO X0ZJTFRFUiB8Ci0JCURFVl9SWF9PRkZMT0FEX1ZMQU5fU1RSSVAgfAotCQlERVZfUlhfT0ZGTE9B RF9TQ0FUVEVSIHwKLQkJREVWX1JYX09GRkxPQURfUlNTX0hBU0ggfAorCQlSVEVfRVRIX1JYX09G RkxPQURfSVBWNF9DS1NVTSB8CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9VRFBfQ0tTVU0gfAorCQlS VEVfRVRIX1JYX09GRkxPQURfVENQX0NLU1VNIHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX1ZMQU5f RklMVEVSIHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX1ZMQU5fU1RSSVAgfAorCQlSVEVfRVRIX1JY X09GRkxPQURfU0NBVFRFUiB8CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9SU1NfSEFTSCB8CiAJCTA7 CiAKIAlkZXZfaW5mby0+dHhfb2ZmbG9hZF9jYXBhID0gZGV2X2luZm8tPnR4X3F1ZXVlX29mZmxv YWRfY2FwYSB8Ci0JCURFVl9UWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAotCQlERVZfVFhfT0ZGTE9B RF9VRFBfQ0tTVU0gfAotCQlERVZfVFhfT0ZGTE9BRF9UQ1BfQ0tTVU0gfAotCQlERVZfVFhfT0ZG TE9BRF9PVVRFUl9JUFY0X0NLU1VNIHwKLQkJREVWX1RYX09GRkxPQURfT1VURVJfVURQX0NLU1VN IHwKLQkJREVWX1RYX09GRkxPQURfTVVMVElfU0VHUyB8Ci0JCURFVl9UWF9PRkZMT0FEX1RDUF9U U08gfAotCQlERVZfVFhfT0ZGTE9BRF9WTEFOX0lOU0VSVCB8CisJCVJURV9FVEhfVFhfT0ZGTE9B RF9JUFY0X0NLU1VNIHwKKwkJUlRFX0VUSF9UWF9PRkZMT0FEX1VEUF9DS1NVTSB8CisJCVJURV9F VEhfVFhfT0ZGTE9BRF9UQ1BfQ0tTVU0gfAorCQlSVEVfRVRIX1RYX09GRkxPQURfT1VURVJfSVBW NF9DS1NVTSB8CisJCVJURV9FVEhfVFhfT0ZGTE9BRF9PVVRFUl9VRFBfQ0tTVU0gfAorCQlSVEVf RVRIX1RYX09GRkxPQURfTVVMVElfU0VHUyB8CisJCVJURV9FVEhfVFhfT0ZGTE9BRF9UQ1BfVFNP IHwKKwkJUlRFX0VUSF9UWF9PRkZMT0FEX1ZMQU5fSU5TRVJUIHwKIAkJMDsKIAogCWRldl9pbmZv LT5yeF9kZXNjX2xpbSA9IHJ4X2Rlc2NfbGltOwpkaWZmIGEvZHJpdmVycy9uZXQvaXBuM2tlL2lw bjNrZV9yZXByZXNlbnRvci5jIGIvZHJpdmVycy9uZXQvaXBuM2tlL2lwbjNrZV9yZXByZXNlbnRv ci5jCShyZWplY3RlZCBodW5rcykKQEAgLTY3LDMwICs2NywzMCBAQCBpcG4za2VfcnBzdF9kZXZf aW5mb3NfZ2V0KHN0cnVjdCBydGVfZXRoX2RldiAqZXRoZGV2LAogCX07CiAJZGV2X2luZm8tPnJ4 X3F1ZXVlX29mZmxvYWRfY2FwYSA9IDA7CiAJZGV2X2luZm8tPnJ4X29mZmxvYWRfY2FwYSA9Ci0J CURFVl9SWF9PRkZMT0FEX1ZMQU5fU1RSSVAgfAotCQlERVZfUlhfT0ZGTE9BRF9RSU5RX1NUUklQ IHwKLQkJREVWX1JYX09GRkxPQURfSVBWNF9DS1NVTSB8Ci0JCURFVl9SWF9PRkZMT0FEX1VEUF9D S1NVTSB8Ci0JCURFVl9SWF9PRkZMT0FEX1RDUF9DS1NVTSB8Ci0JCURFVl9SWF9PRkZMT0FEX09V VEVSX0lQVjRfQ0tTVU0gfAotCQlERVZfUlhfT0ZGTE9BRF9WTEFOX0VYVEVORCB8Ci0JCURFVl9S WF9PRkZMT0FEX1ZMQU5fRklMVEVSOwotCi0JZGV2X2luZm8tPnR4X3F1ZXVlX29mZmxvYWRfY2Fw YSA9IERFVl9UWF9PRkZMT0FEX01CVUZfRkFTVF9GUkVFOworCQlSVEVfRVRIX1JYX09GRkxPQURf VkxBTl9TVFJJUCB8CisJCVJURV9FVEhfUlhfT0ZGTE9BRF9RSU5RX1NUUklQIHwKKwkJUlRFX0VU SF9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAorCQlSVEVfRVRIX1JYX09GRkxPQURfVURQX0NLU1VN IHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX1RDUF9DS1NVTSB8CisJCVJURV9FVEhfUlhfT0ZGTE9B RF9PVVRFUl9JUFY0X0NLU1VNIHwKKwkJUlRFX0VUSF9SWF9PRkZMT0FEX1ZMQU5fRVhURU5EIHwK KwkJUlRFX0VUSF9SWF9PRkZMT0FEX1ZMQU5fRklMVEVSOworCisJZGV2X2luZm8tPnR4X3F1ZXVl X29mZmxvYWRfY2FwYSA9IFJURV9FVEhfVFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJFRTsKIAlkZXZf aW5mby0+dHhfb2ZmbG9hZF9jYXBhID0KLQkJREVWX1RYX09GRkxPQURfVkxBTl9JTlNFUlQgfAot CQlERVZfVFhfT0ZGTE9BRF9RSU5RX0lOU0VSVCB8Ci0JCURFVl9UWF9PRkZMT0FEX0lQVjRfQ0tT VU0gfAotCQlERVZfVFhfT0ZGTE9BRF9VRFBfQ0tTVU0gfAotCQlERVZfVFhfT0ZGTE9BRF9UQ1Bf Q0tTVU0gfAotCQlERVZfVFhfT0ZGTE9BRF9TQ1RQX0NLU1VNIHwKLQkJREVWX1RYX09GRkxPQURf T1VURVJfSVBWNF9DS1NVTSB8Ci0JCURFVl9UWF9PRkZMT0FEX1RDUF9UU08gfAotCQlERVZfVFhf T0ZGTE9BRF9WWExBTl9UTkxfVFNPIHwKLQkJREVWX1RYX09GRkxPQURfR1JFX1ROTF9UU08gfAot CQlERVZfVFhfT0ZGTE9BRF9JUElQX1ROTF9UU08gfAotCQlERVZfVFhfT0ZGTE9BRF9HRU5FVkVf VE5MX1RTTyB8Ci0JCURFVl9UWF9PRkZMT0FEX01VTFRJX1NFR1MgfAorCQlSVEVfRVRIX1RYX09G RkxPQURfVkxBTl9JTlNFUlQgfAorCQlSVEVfRVRIX1RYX09GRkxPQURfUUlOUV9JTlNFUlQgfAor CQlSVEVfRVRIX1RYX09GRkxPQURfSVBWNF9DS1NVTSB8CisJCVJURV9FVEhfVFhfT0ZGTE9BRF9V RFBfQ0tTVU0gfAorCQlSVEVfRVRIX1RYX09GRkxPQURfVENQX0NLU1VNIHwKKwkJUlRFX0VUSF9U WF9PRkZMT0FEX1NDVFBfQ0tTVU0gfAorCQlSVEVfRVRIX1RYX09GRkxPQURfT1VURVJfSVBWNF9D S1NVTSB8CisJCVJURV9FVEhfVFhfT0ZGTE9BRF9UQ1BfVFNPIHwKKwkJUlRFX0VUSF9UWF9PRkZM T0FEX1ZYTEFOX1ROTF9UU08gfAorCQlSVEVfRVRIX1RYX09GRkxPQURfR1JFX1ROTF9UU08gfAor CQlSVEVfRVRIX1RYX09GRkxPQURfSVBJUF9UTkxfVFNPIHwKKwkJUlRFX0VUSF9UWF9PRkZMT0FE X0dFTkVWRV9UTkxfVFNPIHwKKwkJUlRFX0VUSF9UWF9PRkZMT0FEX01VTFRJX1NFR1MgfAogCQlk ZXZfaW5mby0+dHhfcXVldWVfb2ZmbG9hZF9jYXBhOwogCiAJZGV2X2luZm8tPmRldl9jYXBhID0K ZGlmZiBhL2RyaXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX3J4dHguYyBiL2RyaXZlcnMvbmV0L2l4Z2Jl L2l4Z2JlX3J4dHguYwkocmVqZWN0ZWQgaHVua3MpCkBAIC0zMDMyLDE5ICszMDMyLDE5IEBAIGl4 Z2JlX2dldF9yeF9wb3J0X29mZmxvYWRzKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2KQogCXVpbnQ2 NF90IG9mZmxvYWRzOwogCXN0cnVjdCBpeGdiZV9odyAqaHcgPSBJWEdCRV9ERVZfUFJJVkFURV9U T19IVyhkZXYtPmRhdGEtPmRldl9wcml2YXRlKTsKIAotCW9mZmxvYWRzID0gREVWX1JYX09GRkxP QURfSVBWNF9DS1NVTSAgfAotCQkgICBERVZfUlhfT0ZGTE9BRF9VRFBfQ0tTVU0gICB8Ci0JCSAg IERFVl9SWF9PRkZMT0FEX1RDUF9DS1NVTSAgIHwKLQkJICAgREVWX1JYX09GRkxPQURfS0VFUF9D UkMgICAgfAotCQkgICBERVZfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUiB8Ci0JCSAgIERFVl9SWF9P RkZMT0FEX1NDQVRURVIgfAotCQkgICBERVZfUlhfT0ZGTE9BRF9SU1NfSEFTSDsKKwlvZmZsb2Fk cyA9IFJURV9FVEhfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNICB8CisJCSAgIFJURV9FVEhfUlhfT0ZG TE9BRF9VRFBfQ0tTVU0gICB8CisJCSAgIFJURV9FVEhfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0gICB8 CisJCSAgIFJURV9FVEhfUlhfT0ZGTE9BRF9LRUVQX0NSQyAgICB8CisJCSAgIFJURV9FVEhfUlhf T0ZGTE9BRF9WTEFOX0ZJTFRFUiB8CisJCSAgIFJURV9FVEhfUlhfT0ZGTE9BRF9TQ0FUVEVSIHwK KwkJICAgUlRFX0VUSF9SWF9PRkZMT0FEX1JTU19IQVNIOwogCiAJaWYgKGh3LT5tYWMudHlwZSA9 PSBpeGdiZV9tYWNfODI1OThFQikKLQkJb2ZmbG9hZHMgfD0gREVWX1JYX09GRkxPQURfVkxBTl9T VFJJUDsKKwkJb2ZmbG9hZHMgfD0gUlRFX0VUSF9SWF9PRkZMT0FEX1ZMQU5fU1RSSVA7CiAKIAlp ZiAoaXhnYmVfaXNfdmYoZGV2KSA9PSAwKQotCQlvZmZsb2FkcyB8PSBERVZfUlhfT0ZGTE9BRF9W TEFOX0VYVEVORDsKKwkJb2ZmbG9hZHMgfD0gUlRFX0VUSF9SWF9PRkZMT0FEX1ZMQU5fRVhURU5E OwogCiAJLyoKIAkgKiBSU0MgaXMgb25seSBzdXBwb3J0ZWQgYnkgODI1OTkgYW5kIHg1NDAgUEYg ZGV2aWNlcyBpbiBhIG5vbi1TUi1JT1YKQEAgLTUxNTgsMTEgKzUxNTcsMTEgQEAgaXhnYmVfZGV2 X3J4X2luaXQoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYpCiAJCS8qIEl0IGFkZHMgZHVhbCBWTEFO IGxlbmd0aCBmb3Igc3VwcG9ydGluZyBkdWFsIFZMQU4gKi8KIAkJaWYgKGZyYW1lX3NpemUgKyAy ICogSVhHQkVfVkxBTl9UQUdfU0laRSA+IGJ1Zl9zaXplKQogCQkJZGV2LT5kYXRhLT5zY2F0dGVy ZWRfcnggPSAxOwotCQlpZiAocnhxLT5vZmZsb2FkcyAmIERFVl9SWF9PRkZMT0FEX1ZMQU5fU1RS SVApCi0JCQlyeF9jb25mLT5vZmZsb2FkcyB8PSBERVZfUlhfT0ZGTE9BRF9WTEFOX1NUUklQOwor CQlpZiAocnhxLT5vZmZsb2FkcyAmIFJURV9FVEhfUlhfT0ZGTE9BRF9WTEFOX1NUUklQKQorCQkJ cnhfY29uZi0+b2ZmbG9hZHMgfD0gUlRFX0VUSF9SWF9PRkZMT0FEX1ZMQU5fU1RSSVA7CiAJfQog Ci0JaWYgKHJ4X2NvbmYtPm9mZmxvYWRzICYgREVWX1JYX09GRkxPQURfU0NBVFRFUikKKwlpZiAo cnhfY29uZi0+b2ZmbG9hZHMgJiBSVEVfRVRIX1JYX09GRkxPQURfU0NBVFRFUikKIAkJZGV2LT5k YXRhLT5zY2F0dGVyZWRfcnggPSAxOwogCiAJLyoKQEAgLTU3MzAsNyArNTcyOSw3IEBAIGl4Z2Jl dmZfZGV2X3J4X2luaXQoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYpCiAJCWJ1Zl9zaXplID0gKHVp bnQxNl90KSAoKHNycmN0bCAmIElYR0JFX1NSUkNUTF9CU0laRVBLVF9NQVNLKSA8PAogCQkJCSAg ICAgICBJWEdCRV9TUlJDVExfQlNJWkVQS1RfU0hJRlQpOwogCi0JCWlmIChyeG1vZGUtPm9mZmxv YWRzICYgREVWX1JYX09GRkxPQURfU0NBVFRFUiB8fAorCQlpZiAocnhtb2RlLT5vZmZsb2FkcyAm IFJURV9FVEhfUlhfT0ZGTE9BRF9TQ0FUVEVSIHx8CiAJCSAgICAvKiBJdCBhZGRzIGR1YWwgVkxB TiBsZW5ndGggZm9yIHN1cHBvcnRpbmcgZHVhbCBWTEFOICovCiAJCSAgICAoZnJhbWVfc2l6ZSAr IDIgKiBJWEdCRV9WTEFOX1RBR19TSVpFKSA+IGJ1Zl9zaXplKSB7CiAJCQlpZiAoIWRldi0+ZGF0 YS0+c2NhdHRlcmVkX3J4KQpkaWZmIGEvZHJpdmVycy9uZXQvbWx4NC9tbHg0X3J4cS5jIGIvZHJp dmVycy9uZXQvbWx4NC9tbHg0X3J4cS5jCShyZWplY3RlZCBodW5rcykKQEAgLTY4MiwxMiArNjgy LDEyIEBAIG1seDRfcnhxX2RldGFjaChzdHJ1Y3QgcnhxICpyeHEpCiB1aW50NjRfdAogbWx4NF9n ZXRfcnhfcXVldWVfb2ZmbG9hZHMoc3RydWN0IG1seDRfcHJpdiAqcHJpdikKIHsKLQl1aW50NjRf dCBvZmZsb2FkcyA9IERFVl9SWF9PRkZMT0FEX1NDQVRURVIgfAotCQkJICAgIERFVl9SWF9PRkZM T0FEX0tFRVBfQ1JDIHwKLQkJCSAgICBERVZfUlhfT0ZGTE9BRF9SU1NfSEFTSDsKKwl1aW50NjRf dCBvZmZsb2FkcyA9IFJURV9FVEhfUlhfT0ZGTE9BRF9TQ0FUVEVSIHwKKwkJCSAgICBSVEVfRVRI X1JYX09GRkxPQURfS0VFUF9DUkMgfAorCQkJICAgIFJURV9FVEhfUlhfT0ZGTE9BRF9SU1NfSEFT SDsKIAogCWlmIChwcml2LT5od19jc3VtKQotCQlvZmZsb2FkcyB8PSBERVZfUlhfT0ZGTE9BRF9D SEVDS1NVTTsKKwkJb2ZmbG9hZHMgfD0gUlRFX0VUSF9SWF9PRkZMT0FEX0NIRUNLU1VNOwogCXJl dHVybiBvZmZsb2FkczsKIH0KIApAQCAtODMyLDcgKzgzMiw3IEBAIG1seDRfcnhfcXVldWVfc2V0 dXAoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIHVpbnQxNl90IGlkeCwgdWludDE2X3QgZGVzYywK IAltYXhfcnhfcGt0bGVuID0gZGV2LT5kYXRhLT5tdHUgKyBSVEVfRVRIRVJfSERSX0xFTiArIFJU RV9FVEhFUl9DUkNfTEVOOwogCWlmIChtYXhfcnhfcGt0bGVuIDw9IChtYl9sZW4gLSBSVEVfUEtU TUJVRl9IRUFEUk9PTSkpIHsKIAkJOwotCX0gZWxzZSBpZiAob2ZmbG9hZHMgJiBERVZfUlhfT0ZG TE9BRF9TQ0FUVEVSKSB7CisJfSBlbHNlIGlmIChvZmZsb2FkcyAmIFJURV9FVEhfUlhfT0ZGTE9B RF9TQ0FUVEVSKSB7CiAJCXVpbnQzMl90IHNpemUgPSBSVEVfUEtUTUJVRl9IRUFEUk9PTSArIG1h eF9yeF9wa3RsZW47CiAJCXVpbnQzMl90IHNnZXNfbjsKIApkaWZmIGEvZHJpdmVycy9uZXQvbWx4 NS9tbHg1X3J4cS5jIGIvZHJpdmVycy9uZXQvbWx4NS9tbHg1X3J4cS5jCShyZWplY3RlZCBodW5r cykKQEAgLTMzMywyMiArMzMzLDIyIEBAIG1seDVfZ2V0X3J4X3F1ZXVlX29mZmxvYWRzKHN0cnVj dCBydGVfZXRoX2RldiAqZGV2KQogewogCXN0cnVjdCBtbHg1X3ByaXYgKnByaXYgPSBkZXYtPmRh dGEtPmRldl9wcml2YXRlOwogCXN0cnVjdCBtbHg1X2Rldl9jb25maWcgKmNvbmZpZyA9ICZwcml2 LT5jb25maWc7Ci0JdWludDY0X3Qgb2ZmbG9hZHMgPSAoREVWX1JYX09GRkxPQURfU0NBVFRFUiB8 Ci0JCQkgICAgIERFVl9SWF9PRkZMT0FEX1RJTUVTVEFNUCB8Ci0JCQkgICAgIERFVl9SWF9PRkZM T0FEX1JTU19IQVNIKTsKKwl1aW50NjRfdCBvZmZsb2FkcyA9IChSVEVfRVRIX1JYX09GRkxPQURf U0NBVFRFUiB8CisJCQkgICAgIFJURV9FVEhfUlhfT0ZGTE9BRF9USU1FU1RBTVAgfAorCQkJICAg ICBSVEVfRVRIX1JYX09GRkxPQURfUlNTX0hBU0gpOwogCiAJaWYgKCFjb25maWctPm1wcnEuZW5h YmxlZCkKIAkJb2ZmbG9hZHMgfD0gUlRFX0VUSF9SWF9PRkZMT0FEX0JVRkZFUl9TUExJVDsKIAlp ZiAoY29uZmlnLT5od19mY3Nfc3RyaXApCi0JCW9mZmxvYWRzIHw9IERFVl9SWF9PRkZMT0FEX0tF RVBfQ1JDOworCQlvZmZsb2FkcyB8PSBSVEVfRVRIX1JYX09GRkxPQURfS0VFUF9DUkM7CiAJaWYg KGNvbmZpZy0+aHdfY3N1bSkKLQkJb2ZmbG9hZHMgfD0gKERFVl9SWF9PRkZMT0FEX0lQVjRfQ0tT VU0gfAotCQkJICAgICBERVZfUlhfT0ZGTE9BRF9VRFBfQ0tTVU0gfAotCQkJICAgICBERVZfUlhf T0ZGTE9BRF9UQ1BfQ0tTVU0pOworCQlvZmZsb2FkcyB8PSAoUlRFX0VUSF9SWF9PRkZMT0FEX0lQ VjRfQ0tTVU0gfAorCQkJICAgICBSVEVfRVRIX1JYX09GRkxPQURfVURQX0NLU1VNIHwKKwkJCSAg ICAgUlRFX0VUSF9SWF9PRkZMT0FEX1RDUF9DS1NVTSk7CiAJaWYgKGNvbmZpZy0+aHdfdmxhbl9z dHJpcCkKLQkJb2ZmbG9hZHMgfD0gREVWX1JYX09GRkxPQURfVkxBTl9TVFJJUDsKKwkJb2ZmbG9h ZHMgfD0gUlRFX0VUSF9SWF9PRkZMT0FEX1ZMQU5fU1RSSVA7CiAJaWYgKE1MWDVfTFJPX1NVUFBP UlRFRChkZXYpKQotCQlvZmZsb2FkcyB8PSBERVZfUlhfT0ZGTE9BRF9UQ1BfTFJPOworCQlvZmZs b2FkcyB8PSBSVEVfRVRIX1JYX09GRkxPQURfVENQX0xSTzsKIAlyZXR1cm4gb2ZmbG9hZHM7CiB9 CiAKQEAgLTEzMzYsNyArMTMzNiw3IEBAIG1seDVfcnhxX25ldyhzdHJ1Y3QgcnRlX2V0aF9kZXYg KmRldiwgdWludDE2X3QgaWR4LCB1aW50MTZfdCBkZXNjLAogCXN0cnVjdCBtbHg1X2Rldl9jb25m aWcgKmNvbmZpZyA9ICZwcml2LT5jb25maWc7CiAJdWludDY0X3Qgb2ZmbG9hZHMgPSBjb25mLT5v ZmZsb2FkcyB8CiAJCQkgICBkZXYtPmRhdGEtPmRldl9jb25mLnJ4bW9kZS5vZmZsb2FkczsKLQl1 bnNpZ25lZCBpbnQgbHJvX29uX3F1ZXVlID0gISEob2ZmbG9hZHMgJiBERVZfUlhfT0ZGTE9BRF9U Q1BfTFJPKTsKKwl1bnNpZ25lZCBpbnQgbHJvX29uX3F1ZXVlID0gISEob2ZmbG9hZHMgJiBSVEVf RVRIX1JYX09GRkxPQURfVENQX0xSTyk7CiAJdW5zaWduZWQgaW50IG1heF9yeF9wa3RsZW4gPSBs cm9fb25fcXVldWUgPwogCQkJZGV2LT5kYXRhLT5kZXZfY29uZi5yeG1vZGUubWF4X2xyb19wa3Rf c2l6ZSA6CiAJCQlkZXYtPmRhdGEtPm10dSArICh1bnNpZ25lZCBpbnQpUlRFX0VUSEVSX0hEUl9M RU4gKwpAQCAtMTQ4NSw3ICsxNDg1LDcgQEAgbWx4NV9yeHFfbmV3KHN0cnVjdCBydGVfZXRoX2Rl diAqZGV2LCB1aW50MTZfdCBpZHgsIHVpbnQxNl90IGRlc2MsCiAJCQljb25maWctPm1wcnEuc3Ry aWRlX3NpemVfbiA6IG1wcnFfc3RyaWRlX3NpemU7CiAJCXRtcGwtPnJ4cS5zdHJkX3NoaWZ0X2Vu ID0gTUxYNV9NUFJRX1RXT19CWVRFX1NISUZUOwogCQl0bXBsLT5yeHEuc3RyZF9zY2F0dGVyX2Vu ID0KLQkJCQkhIShvZmZsb2FkcyAmIERFVl9SWF9PRkZMT0FEX1NDQVRURVIpOworCQkJCSEhKG9m ZmxvYWRzICYgUlRFX0VUSF9SWF9PRkZMT0FEX1NDQVRURVIpOwogCQl0bXBsLT5yeHEubXBycV9t YXhfbWVtY3B5X2xlbiA9IFJURV9NSU4oZmlyc3RfbWJfZnJlZV9zaXplLAogCQkJCWNvbmZpZy0+ bXBycS5tYXhfbWVtY3B5X2xlbik7CiAJCW1heF9scm9fc2l6ZSA9IFJURV9NSU4obWF4X3J4X3Br dGxlbiwKQEAgLTE1MDAsNyArMTUwMCw3IEBAIG1seDVfcnhxX25ldyhzdHJ1Y3QgcnRlX2V0aF9k ZXYgKmRldiwgdWludDE2X3QgaWR4LCB1aW50MTZfdCBkZXNjLAogCQlNTFg1X0FTU0VSVChtYXhf cnhfcGt0bGVuIDw9IGZpcnN0X21iX2ZyZWVfc2l6ZSk7CiAJCXRtcGwtPnJ4cS5zZ2VzX24gPSAw OwogCQltYXhfbHJvX3NpemUgPSBtYXhfcnhfcGt0bGVuOwotCX0gZWxzZSBpZiAob2ZmbG9hZHMg JiBERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSKSB7CisJfSBlbHNlIGlmIChvZmZsb2FkcyAmIFJURV9F VEhfUlhfT0ZGTE9BRF9TQ0FUVEVSKSB7CiAJCXVuc2lnbmVkIGludCBzZ2VzX247CiAKIAkJaWYg KGxyb19vbl9xdWV1ZSAmJiBmaXJzdF9tYl9mcmVlX3NpemUgPApkaWZmIGEvZHJpdmVycy9uZXQv bWx4NS9tbHg1X3R4cS5jIGIvZHJpdmVycy9uZXQvbWx4NS9tbHg1X3R4cS5jCShyZWplY3RlZCBo dW5rcykKQEAgLTk4LDQyICs5OCw0MiBAQCB1aW50NjRfdAogbWx4NV9nZXRfdHhfcG9ydF9vZmZs b2FkcyhzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldikKIHsKIAlzdHJ1Y3QgbWx4NV9wcml2ICpwcml2 ID0gZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZTsKLQl1aW50NjRfdCBvZmZsb2FkcyA9IChERVZfVFhf T0ZGTE9BRF9NVUxUSV9TRUdTIHwKLQkJCSAgICAgREVWX1RYX09GRkxPQURfVkxBTl9JTlNFUlQp OworCXVpbnQ2NF90IG9mZmxvYWRzID0gKFJURV9FVEhfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTIHwK KwkJCSAgICAgUlRFX0VUSF9UWF9PRkZMT0FEX1ZMQU5fSU5TRVJUKTsKIAlzdHJ1Y3QgbWx4NV9k ZXZfY29uZmlnICpjb25maWcgPSAmcHJpdi0+Y29uZmlnOwogCiAJaWYgKGNvbmZpZy0+aHdfY3N1 bSkKLQkJb2ZmbG9hZHMgfD0gKERFVl9UWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAotCQkJICAgICBE RVZfVFhfT0ZGTE9BRF9VRFBfQ0tTVU0gfAotCQkJICAgICBERVZfVFhfT0ZGTE9BRF9UQ1BfQ0tT VU0pOworCQlvZmZsb2FkcyB8PSAoUlRFX0VUSF9UWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfAorCQkJ ICAgICBSVEVfRVRIX1RYX09GRkxPQURfVURQX0NLU1VNIHwKKwkJCSAgICAgUlRFX0VUSF9UWF9P RkZMT0FEX1RDUF9DS1NVTSk7CiAJaWYgKGNvbmZpZy0+dHNvKQotCQlvZmZsb2FkcyB8PSBERVZf VFhfT0ZGTE9BRF9UQ1BfVFNPOworCQlvZmZsb2FkcyB8PSBSVEVfRVRIX1RYX09GRkxPQURfVENQ X1RTTzsKIAlpZiAoY29uZmlnLT50eF9wcCkKLQkJb2ZmbG9hZHMgfD0gREVWX1RYX09GRkxPQURf U0VORF9PTl9USU1FU1RBTVA7CisJCW9mZmxvYWRzIHw9IFJURV9FVEhfVFhfT0ZGTE9BRF9TRU5E X09OX1RJTUVTVEFNUDsKIAlpZiAoY29uZmlnLT5zd3ApIHsKIAkJaWYgKGNvbmZpZy0+c3dwICYg TUxYNV9TV19QQVJTSU5HX0NTVU1fQ0FQKQotCQkJb2ZmbG9hZHMgfD0gREVWX1RYX09GRkxPQURf T1VURVJfSVBWNF9DS1NVTTsKKwkJCW9mZmxvYWRzIHw9IFJURV9FVEhfVFhfT0ZGTE9BRF9PVVRF Ul9JUFY0X0NLU1VNOwogCQlpZiAoY29uZmlnLT5zd3AgJiBNTFg1X1NXX1BBUlNJTkdfVFNPX0NB UCkKLQkJCW9mZmxvYWRzIHw9IChERVZfVFhfT0ZGTE9BRF9JUF9UTkxfVFNPIHwKLQkJCQkgICAg IERFVl9UWF9PRkZMT0FEX1VEUF9UTkxfVFNPKTsKKwkJCW9mZmxvYWRzIHw9IChSVEVfRVRIX1RY X09GRkxPQURfSVBfVE5MX1RTTyB8CisJCQkJICAgICBSVEVfRVRIX1RYX09GRkxPQURfVURQX1RO TF9UU08pOwogCX0KIAlpZiAoY29uZmlnLT50dW5uZWxfZW4pIHsKIAkJaWYgKGNvbmZpZy0+aHdf Y3N1bSkKLQkJCW9mZmxvYWRzIHw9IERFVl9UWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU07CisJ CQlvZmZsb2FkcyB8PSBSVEVfRVRIX1RYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTTsKIAkJaWYg KGNvbmZpZy0+dHNvKSB7CiAJCQlpZiAoY29uZmlnLT50dW5uZWxfZW4gJgogCQkJCU1MWDVfVFVO TkVMRURfT0ZGTE9BRFNfVlhMQU5fQ0FQKQotCQkJCW9mZmxvYWRzIHw9IERFVl9UWF9PRkZMT0FE X1ZYTEFOX1ROTF9UU087CisJCQkJb2ZmbG9hZHMgfD0gUlRFX0VUSF9UWF9PRkZMT0FEX1ZYTEFO X1ROTF9UU087CiAJCQlpZiAoY29uZmlnLT50dW5uZWxfZW4gJgogCQkJCU1MWDVfVFVOTkVMRURf T0ZGTE9BRFNfR1JFX0NBUCkKLQkJCQlvZmZsb2FkcyB8PSBERVZfVFhfT0ZGTE9BRF9HUkVfVE5M X1RTTzsKKwkJCQlvZmZsb2FkcyB8PSBSVEVfRVRIX1RYX09GRkxPQURfR1JFX1ROTF9UU087CiAJ CQlpZiAoY29uZmlnLT50dW5uZWxfZW4gJgogCQkJCU1MWDVfVFVOTkVMRURfT0ZGTE9BRFNfR0VO RVZFX0NBUCkKLQkJCQlvZmZsb2FkcyB8PSBERVZfVFhfT0ZGTE9BRF9HRU5FVkVfVE5MX1RTTzsK KwkJCQlvZmZsb2FkcyB8PSBSVEVfRVRIX1RYX09GRkxPQURfR0VORVZFX1ROTF9UU087CiAJCX0K IAl9CiAJaWYgKCFjb25maWctPm1wcnEuZW5hYmxlZCkKLQkJb2ZmbG9hZHMgfD0gREVWX1RYX09G RkxPQURfTUJVRl9GQVNUX0ZSRUU7CisJCW9mZmxvYWRzIHw9IFJURV9FVEhfVFhfT0ZGTE9BRF9N QlVGX0ZBU1RfRlJFRTsKIAlyZXR1cm4gb2ZmbG9hZHM7CiB9CiAKQEAgLTk3OCwxOSArOTc4LDE5 IEBAIHR4cV9zZXRfcGFyYW1zKHN0cnVjdCBtbHg1X3R4cV9jdHJsICp0eHFfY3RybCkKIAkJCQkJ CSAgICBNTFg1X01BWF9UU09fSEVBREVSKTsKIAkJdHhxX2N0cmwtPnR4cS50c29fZW4gPSAxOwog CX0KLQlpZiAoKChERVZfVFhfT0ZGTE9BRF9WWExBTl9UTkxfVFNPICYgdHhxX2N0cmwtPnR4cS5v ZmZsb2FkcykgJiYKKwlpZiAoKChSVEVfRVRIX1RYX09GRkxPQURfVlhMQU5fVE5MX1RTTyAmIHR4 cV9jdHJsLT50eHEub2ZmbG9hZHMpICYmCiAJICAgIChjb25maWctPnR1bm5lbF9lbiAmIE1MWDVf VFVOTkVMRURfT0ZGTE9BRFNfVlhMQU5fQ0FQKSkgfAotCSAgICgoREVWX1RYX09GRkxPQURfR1JF X1ROTF9UU08gJiB0eHFfY3RybC0+dHhxLm9mZmxvYWRzKSAmJgorCSAgICgoUlRFX0VUSF9UWF9P RkZMT0FEX0dSRV9UTkxfVFNPICYgdHhxX2N0cmwtPnR4cS5vZmZsb2FkcykgJiYKIAkgICAgKGNv bmZpZy0+dHVubmVsX2VuICYgTUxYNV9UVU5ORUxFRF9PRkZMT0FEU19HUkVfQ0FQKSkgfAotCSAg ICgoREVWX1RYX09GRkxPQURfR0VORVZFX1ROTF9UU08gJiB0eHFfY3RybC0+dHhxLm9mZmxvYWRz KSAmJgorCSAgICgoUlRFX0VUSF9UWF9PRkZMT0FEX0dFTkVWRV9UTkxfVFNPICYgdHhxX2N0cmwt PnR4cS5vZmZsb2FkcykgJiYKIAkgICAgKGNvbmZpZy0+dHVubmVsX2VuICYgTUxYNV9UVU5ORUxF RF9PRkZMT0FEU19HRU5FVkVfQ0FQKSkgfAogCSAgIChjb25maWctPnN3cCAgJiBNTFg1X1NXX1BB UlNJTkdfVFNPX0NBUCkpCiAJCXR4cV9jdHJsLT50eHEudHVubmVsX2VuID0gMTsKLQl0eHFfY3Ry bC0+dHhxLnN3cF9lbiA9ICgoKERFVl9UWF9PRkZMT0FEX0lQX1ROTF9UU08gfAotCQkJCSAgREVW X1RYX09GRkxPQURfVURQX1ROTF9UU08pICYKKwl0eHFfY3RybC0+dHhxLnN3cF9lbiA9ICgoKFJU RV9FVEhfVFhfT0ZGTE9BRF9JUF9UTkxfVFNPIHwKKwkJCQkgIFJURV9FVEhfVFhfT0ZGTE9BRF9V RFBfVE5MX1RTTykgJgogCQkJCSAgdHhxX2N0cmwtPnR4cS5vZmZsb2FkcykgJiYgKGNvbmZpZy0+ c3dwICYKIAkJCQkgIE1MWDVfU1dfUEFSU0lOR19UU09fQ0FQKSkgfAotCQkJCSgoREVWX1RYX09G RkxPQURfT1VURVJfSVBWNF9DS1NVTSAmCisJCQkJKChSVEVfRVRIX1RYX09GRkxPQURfT1VURVJf SVBWNF9DS1NVTSAmCiAJCQkJIHR4cV9jdHJsLT50eHEub2ZmbG9hZHMpICYmIChjb25maWctPnN3 cCAmCiAJCQkJIE1MWDVfU1dfUEFSU0lOR19DU1VNX0NBUCkpOwogfQpkaWZmIGEvZHJpdmVycy9u ZXQvbWx4NS93aW5kb3dzL21seDVfb3MuYyBiL2RyaXZlcnMvbmV0L21seDUvd2luZG93cy9tbHg1 X29zLmMJKHJlamVjdGVkIGh1bmtzKQpAQCAtNDg1LDggKzQ4NSw4IEBAIG1seDVfZGV2X3NwYXdu KHN0cnVjdCBydGVfZGV2aWNlICpkcGRrX2RldiwKIAkgKiBSZW1vdmUgdGhpcyBjaGVjayBvbmNl IERQREsgc3VwcG9ydHMgbGFyZ2VyL3ZhcmlhYmxlCiAJICogaW5kaXJlY3Rpb24gdGFibGVzLgog CSAqLwotCWlmIChjb25maWctPmluZF90YWJsZV9tYXhfc2l6ZSA+ICh1bnNpZ25lZCBpbnQpRVRI X1JTU19SRVRBX1NJWkVfNTEyKQotCQljb25maWctPmluZF90YWJsZV9tYXhfc2l6ZSA9IEVUSF9S U1NfUkVUQV9TSVpFXzUxMjsKKwlpZiAoY29uZmlnLT5pbmRfdGFibGVfbWF4X3NpemUgPiAodW5z aWduZWQgaW50KVJURV9FVEhfUlNTX1JFVEFfU0laRV81MTIpCisJCWNvbmZpZy0+aW5kX3RhYmxl X21heF9zaXplID0gUlRFX0VUSF9SU1NfUkVUQV9TSVpFXzUxMjsKIAlEUlZfTE9HKERFQlVHLCAi bWF4aW11bSBSeCBpbmRpcmVjdGlvbiB0YWJsZSBzaXplIGlzICV1IiwKIAkJY29uZmlnLT5pbmRf dGFibGVfbWF4X3NpemUpOwogCWlmIChjb25maWctPmh3X3BhZGRpbmcpIHsKZGlmZiBhL2RyaXZl cnMvbmV0L212bmV0YS9tdm5ldGFfZXRoZGV2LmMgYi9kcml2ZXJzL25ldC9tdm5ldGEvbXZuZXRh X2V0aGRldi5jCShyZWplY3RlZCBodW5rcykKQEAgLTEyNiw3ICsxMjYsNyBAQCBtdm5ldGFfZGV2 X2NvbmZpZ3VyZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldikKIAkJcmV0dXJuIC1FSU5WQUw7CiAJ fQogCi0JaWYgKGRldi0+ZGF0YS0+ZGV2X2NvbmYudHhtb2RlLm9mZmxvYWRzICYgREVWX1RYX09G RkxPQURfTVVMVElfU0VHUykKKwlpZiAoZGV2LT5kYXRhLT5kZXZfY29uZi50eG1vZGUub2ZmbG9h ZHMgJiBSVEVfRVRIX1RYX09GRkxPQURfTVVMVElfU0VHUykKIAkJcHJpdi0+bXVsdGlzZWcgPSAx OwogCiAJcHBpb19wYXJhbXMgPSAmcHJpdi0+cHBpb19wYXJhbXM7CmRpZmYgYS9kcml2ZXJzL25l dC9tdm5ldGEvbXZuZXRhX2V0aGRldi5oIGIvZHJpdmVycy9uZXQvbXZuZXRhL212bmV0YV9ldGhk ZXYuaAkocmVqZWN0ZWQgaHVua3MpCkBAIC01NCwxNCArNTQsMTQgQEAKICNkZWZpbmUgTVJWTF9O RVRBX01SVV9UT19NVFUobXJ1KQkoKG1ydSkgLSBNUlZMX05FVEFfSERSU19MRU4pCiAKIC8qKiBS eCBvZmZsb2FkcyBjYXBhYmlsaXRpZXMgKi8KLSNkZWZpbmUgTVZORVRBX1JYX09GRkxPQURTIChE RVZfUlhfT0ZGTE9BRF9DSEVDS1NVTSkKKyNkZWZpbmUgTVZORVRBX1JYX09GRkxPQURTIChSVEVf RVRIX1JYX09GRkxPQURfQ0hFQ0tTVU0pCiAKIC8qKiBUeCBvZmZsb2FkcyBjYXBhYmlsaXRpZXMg Ki8KLSNkZWZpbmUgTVZORVRBX1RYX09GRkxPQURfQ0hFQ0tTVU0gKERFVl9UWF9PRkZMT0FEX0lQ VjRfQ0tTVU0gfCBcCi0JCQkJICAgIERFVl9UWF9PRkZMT0FEX1VEUF9DS1NVTSAgfCBcCi0JCQkJ ICAgIERFVl9UWF9PRkZMT0FEX1RDUF9DS1NVTSkKKyNkZWZpbmUgTVZORVRBX1RYX09GRkxPQURf Q0hFQ0tTVU0gKFJURV9FVEhfVFhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwgXAorCQkJCSAgICBSVEVf RVRIX1RYX09GRkxPQURfVURQX0NLU1VNICB8IFwKKwkJCQkgICAgUlRFX0VUSF9UWF9PRkZMT0FE X1RDUF9DS1NVTSkKICNkZWZpbmUgTVZORVRBX1RYX09GRkxPQURTIChNVk5FVEFfVFhfT0ZGTE9B RF9DSEVDS1NVTSB8IFwKLQkJCSAgICBERVZfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTKQorCQkJICAg IFJURV9FVEhfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTKQogCiAjZGVmaW5lIE1WTkVUQV9UWF9QS1Rf T0ZGTE9BRFMgKFBLVF9UWF9JUF9DS1NVTSB8IFwKIAkJCQlQS1RfVFhfVENQX0NLU1VNIHwgXApk aWZmIGEvZHJpdmVycy9uZXQvbXZwcDIvbXJ2bF9ldGhkZXYuYyBiL2RyaXZlcnMvbmV0L212cHAy L21ydmxfZXRoZGV2LmMJKHJlamVjdGVkIGh1bmtzKQpAQCAtNTgsMTUgKzU4LDE1IEBACiAjZGVm aW5lIE1SVkxfQ09PS0lFX0hJR0hfQUREUl9NQVNLIDB4ZmZmZmZmMDAwMDAwMDAwMAogCiAvKiog UG9ydCBSeCBvZmZsb2FkIGNhcGFiaWxpdGllcyAqLwotI2RlZmluZSBNUlZMX1JYX09GRkxPQURT IChERVZfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUiB8IFwKLQkJCSAgREVWX1JYX09GRkxPQURfQ0hF Q0tTVU0pCisjZGVmaW5lIE1SVkxfUlhfT0ZGTE9BRFMgKFJURV9FVEhfUlhfT0ZGTE9BRF9WTEFO X0ZJTFRFUiB8IFwKKwkJCSAgUlRFX0VUSF9SWF9PRkZMT0FEX0NIRUNLU1VNKQogCiAvKiogUG9y dCBUeCBvZmZsb2FkcyBjYXBhYmlsaXRpZXMgKi8KLSNkZWZpbmUgTVJWTF9UWF9PRkZMT0FEX0NI RUNLU1VNIChERVZfVFhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwgXAotCQkJCSAgREVWX1RYX09GRkxP QURfVURQX0NLU1VNICB8IFwKLQkJCQkgIERFVl9UWF9PRkZMT0FEX1RDUF9DS1NVTSkKKyNkZWZp bmUgTVJWTF9UWF9PRkZMT0FEX0NIRUNLU1VNIChSVEVfRVRIX1RYX09GRkxPQURfSVBWNF9DS1NV TSB8IFwKKwkJCQkgIFJURV9FVEhfVFhfT0ZGTE9BRF9VRFBfQ0tTVU0gIHwgXAorCQkJCSAgUlRF X0VUSF9UWF9PRkZMT0FEX1RDUF9DS1NVTSkKICNkZWZpbmUgTVJWTF9UWF9PRkZMT0FEUyAoTVJW TF9UWF9PRkZMT0FEX0NIRUNLU1VNIHwgXAotCQkJICBERVZfVFhfT0ZGTE9BRF9NVUxUSV9TRUdT KQorCQkJICBSVEVfRVRIX1RYX09GRkxPQURfTVVMVElfU0VHUykKIAogI2RlZmluZSBNUlZMX1RY X1BLVF9PRkZMT0FEUyAoUEtUX1RYX0lQX0NLU1VNIHwgXAogCQkJICAgICAgUEtUX1RYX1RDUF9D S1NVTSB8IFwKQEAgLTUwMiw3ICs1MDIsNyBAQCBtcnZsX2Rldl9jb25maWd1cmUoc3RydWN0IHJ0 ZV9ldGhfZGV2ICpkZXYpCiAJCXJldHVybiAtRUlOVkFMOwogCX0KIAotCWlmIChkZXYtPmRhdGEt PmRldl9jb25mLnR4bW9kZS5vZmZsb2FkcyAmIERFVl9UWF9PRkZMT0FEX01VTFRJX1NFR1MpCisJ aWYgKGRldi0+ZGF0YS0+ZGV2X2NvbmYudHhtb2RlLm9mZmxvYWRzICYgUlRFX0VUSF9UWF9PRkZM T0FEX01VTFRJX1NFR1MpCiAJCXByaXYtPm11bHRpc2VnID0gMTsKIAogCXJldCA9IG1ydmxfY29u ZmlndXJlX3J4cXMocHJpdiwgZGV2LT5kYXRhLT5wb3J0X2lkLApkaWZmIGEvZHJpdmVycy9uZXQv bmZwL25mcF9jb21tb24uYyBiL2RyaXZlcnMvbmV0L25mcC9uZnBfY29tbW9uLmMJKHJlamVjdGVk IGh1bmtzKQpAQCAtMzU5LDE5ICszNTksMTkgQEAgbmZwX2NoZWNrX29mZmxvYWRzKHN0cnVjdCBy dGVfZXRoX2RldiAqZGV2KQogCXJ4bW9kZSA9ICZkZXZfY29uZi0+cnhtb2RlOwogCXR4bW9kZSA9 ICZkZXZfY29uZi0+dHhtb2RlOwogCi0JaWYgKHJ4bW9kZS0+b2ZmbG9hZHMgJiBERVZfUlhfT0ZG TE9BRF9JUFY0X0NLU1VNKSB7CisJaWYgKHJ4bW9kZS0+b2ZmbG9hZHMgJiBSVEVfRVRIX1JYX09G RkxPQURfSVBWNF9DS1NVTSkgewogCQlpZiAoaHctPmNhcCAmIE5GUF9ORVRfQ0ZHX0NUUkxfUlhD U1VNKQogCQkJY3RybCB8PSBORlBfTkVUX0NGR19DVFJMX1JYQ1NVTTsKIAl9CiAKLQlpZiAocnht b2RlLT5vZmZsb2FkcyAmIERFVl9SWF9PRkZMT0FEX1ZMQU5fU1RSSVApIHsKKwlpZiAocnhtb2Rl LT5vZmZsb2FkcyAmIFJURV9FVEhfUlhfT0ZGTE9BRF9WTEFOX1NUUklQKSB7CiAJCWlmIChody0+ Y2FwICYgTkZQX05FVF9DRkdfQ1RSTF9SWFZMQU4pCiAJCQljdHJsIHw9IE5GUF9ORVRfQ0ZHX0NU UkxfUlhWTEFOOwogCX0KIAogCWh3LT5tdHUgPSBkZXYtPmRhdGEtPm10dTsKIAotCWlmICh0eG1v ZGUtPm9mZmxvYWRzICYgREVWX1RYX09GRkxPQURfVkxBTl9JTlNFUlQpCisJaWYgKHR4bW9kZS0+ b2ZmbG9hZHMgJiBSVEVfRVRIX1RYX09GRkxPQURfVkxBTl9JTlNFUlQpCiAJCWN0cmwgfD0gTkZQ X05FVF9DRkdfQ1RSTF9UWFZMQU47CiAKIAkvKiBMMiBicm9hZGNhc3QgKi8KQEAgLTc1NywyMiAr NzU3LDIyIEBAIG5mcF9uZXRfaW5mb3NfZ2V0KHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCBzdHJ1 Y3QgcnRlX2V0aF9kZXZfaW5mbyAqZGV2X2luZm8pCiAJfTsKIAogCWlmIChody0+Y2FwICYgTkZQ X05FVF9DRkdfQ1RSTF9SU1MpIHsKLQkJZGV2X2luZm8tPnJ4X29mZmxvYWRfY2FwYSB8PSBERVZf UlhfT0ZGTE9BRF9SU1NfSEFTSDsKKwkJZGV2X2luZm8tPnJ4X29mZmxvYWRfY2FwYSB8PSBSVEVf RVRIX1JYX09GRkxPQURfUlNTX0hBU0g7CiAKLQkJZGV2X2luZm8tPmZsb3dfdHlwZV9yc3Nfb2Zm bG9hZHMgPSBFVEhfUlNTX0lQVjQgfAotCQkJCQkJICAgRVRIX1JTU19OT05GUkFHX0lQVjRfVENQ IHwKLQkJCQkJCSAgIEVUSF9SU1NfTk9ORlJBR19JUFY0X1VEUCB8Ci0JCQkJCQkgICBFVEhfUlNT X0lQVjYgfAotCQkJCQkJICAgRVRIX1JTU19OT05GUkFHX0lQVjZfVENQIHwKLQkJCQkJCSAgIEVU SF9SU1NfTk9ORlJBR19JUFY2X1VEUDsKKwkJZGV2X2luZm8tPmZsb3dfdHlwZV9yc3Nfb2ZmbG9h ZHMgPSBSVEVfRVRIX1JTU19JUFY0IHwKKwkJCQkJCSAgIFJURV9FVEhfUlNTX05PTkZSQUdfSVBW NF9UQ1AgfAorCQkJCQkJICAgUlRFX0VUSF9SU1NfTk9ORlJBR19JUFY0X1VEUCB8CisJCQkJCQkg ICBSVEVfRVRIX1JTU19JUFY2IHwKKwkJCQkJCSAgIFJURV9FVEhfUlNTX05PTkZSQUdfSVBWNl9U Q1AgfAorCQkJCQkJICAgUlRFX0VUSF9SU1NfTk9ORlJBR19JUFY2X1VEUDsKIAogCQlkZXZfaW5m by0+cmV0YV9zaXplID0gTkZQX05FVF9DRkdfUlNTX0lUQkxfU1o7CiAJCWRldl9pbmZvLT5oYXNo X2tleV9zaXplID0gTkZQX05FVF9DRkdfUlNTX0tFWV9TWjsKIAl9CiAKLQlkZXZfaW5mby0+c3Bl ZWRfY2FwYSA9IEVUSF9MSU5LX1NQRUVEXzFHIHwgRVRIX0xJTktfU1BFRURfMTBHIHwKLQkJCSAg ICAgICBFVEhfTElOS19TUEVFRF8yNUcgfCBFVEhfTElOS19TUEVFRF80MEcgfAotCQkJICAgICAg IEVUSF9MSU5LX1NQRUVEXzUwRyB8IEVUSF9MSU5LX1NQRUVEXzEwMEc7CisJZGV2X2luZm8tPnNw ZWVkX2NhcGEgPSBSVEVfRVRIX0xJTktfU1BFRURfMUcgfCBSVEVfRVRIX0xJTktfU1BFRURfMTBH IHwKKwkJCSAgICAgICBSVEVfRVRIX0xJTktfU1BFRURfMjVHIHwgUlRFX0VUSF9MSU5LX1NQRUVE XzQwRyB8CisJCQkgICAgICAgUlRFX0VUSF9MSU5LX1NQRUVEXzUwRyB8IFJURV9FVEhfTElOS19T UEVFRF8xMDBHOwogCiAJcmV0dXJuIDA7CiB9CmRpZmYgYS9kcml2ZXJzL25ldC9vY3Rlb250eC9v Y3Rlb250eF9ldGhkZXYuYyBiL2RyaXZlcnMvbmV0L29jdGVvbnR4L29jdGVvbnR4X2V0aGRldi5j CShyZWplY3RlZCBodW5rcykKQEAgLTU3MSw3ICs1NzEsNyBAQCBvY3Rlb250eF9yZWNoZWNrX3J4 X29mZmxvYWRzKHN0cnVjdCBvY3Rlb250eF9yeHEgKnJ4cSkKIAogCS8qIFNldHVwIHNjYXR0ZXIg bW9kZSBpZiBuZWVkZWQgYnkganVtYm8gKi8KIAlpZiAoZGF0YS0+bXR1ID4gYnVmZnN6KSB7Ci0J CW5pYy0+cnhfb2ZmbG9hZHMgfD0gREVWX1JYX09GRkxPQURfU0NBVFRFUjsKKwkJbmljLT5yeF9v ZmZsb2FkcyB8PSBSVEVfRVRIX1JYX09GRkxPQURfU0NBVFRFUjsKIAkJbmljLT5yeF9vZmZsb2Fk X2ZsYWdzIHw9IG9jdGVvbnR4X3J4X29mZmxvYWRfZmxhZ3MoZXRoX2Rldik7CiAJCW5pYy0+dHhf b2ZmbG9hZF9mbGFncyB8PSBvY3Rlb250eF90eF9vZmZsb2FkX2ZsYWdzKGV0aF9kZXYpOwogCX0K ZGlmZiBhL2RyaXZlcnMvbmV0L29jdGVvbnR4L29jdGVvbnR4X2V0aGRldi5oIGIvZHJpdmVycy9u ZXQvb2N0ZW9udHgvb2N0ZW9udHhfZXRoZGV2LmgJKHJlamVjdGVkIGh1bmtzKQpAQCAtNTUsMjMg KzU1LDIzIEBACiAjZGVmaW5lIE9DQ1RYX01BWF9NVFUJCShPQ0NUWF9NQVhfRlJTIC0gT0NDVFhf TDJfT1ZFUkhFQUQpCiAKICNkZWZpbmUgT0NURU9OVFhfUlhfT0ZGTE9BRFMJCSgJCQkJICAgXAot CQkJCQkgREVWX1JYX09GRkxPQURfQ0hFQ0tTVU0JIHwgXAotCQkJCQkgREVWX1JYX09GRkxPQURf U0NUUF9DS1NVTSAgICAgICB8IFwKLQkJCQkJIERFVl9SWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tT VU0gfCBcCi0JCQkJCSBERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSCSAgICAgICAgIHwgXAotCQkJCQkg REVWX1JYX09GRkxPQURfU0NBVFRFUgkJIHwgXAotCQkJCQkgREVWX1JYX09GRkxPQURfVkxBTl9G SUxURVIpCisJCQkJCSBSVEVfRVRIX1JYX09GRkxPQURfQ0hFQ0tTVU0JIHwgXAorCQkJCQkgUlRF X0VUSF9SWF9PRkZMT0FEX1NDVFBfQ0tTVU0gICAgICAgfCBcCisJCQkJCSBSVEVfRVRIX1JYX09G RkxPQURfT1VURVJfSVBWNF9DS1NVTSB8IFwKKwkJCQkJIFJURV9FVEhfUlhfT0ZGTE9BRF9TQ0FU VEVSCSAgICAgICAgIHwgXAorCQkJCQkgUlRFX0VUSF9SWF9PRkZMT0FEX1NDQVRURVIJCSB8IFwK KwkJCQkJIFJURV9FVEhfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUikKIAogI2RlZmluZSBPQ1RFT05U WF9UWF9PRkZMT0FEUwkJKAkJCQkgICBcCi0JCQkJCSBERVZfVFhfT0ZGTE9BRF9NQlVGX0ZBU1Rf RlJFRQkgfCBcCi0JCQkJCSBERVZfVFhfT0ZGTE9BRF9NVF9MT0NLRlJFRQkgfCBcCi0JCQkJCSBE RVZfVFhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNIHwgXAotCQkJCQkgREVWX1RYX09GRkxPQURf T1VURVJfVURQX0NLU1VNCSB8IFwKLQkJCQkJIERFVl9UWF9PRkZMT0FEX0lQVjRfQ0tTVU0JIHwg XAotCQkJCQkgREVWX1RYX09GRkxPQURfVENQX0NLU1VNCSB8IFwKLQkJCQkJIERFVl9UWF9PRkZM T0FEX1VEUF9DS1NVTQkgfCBcCi0JCQkJCSBERVZfVFhfT0ZGTE9BRF9TQ1RQX0NLU1VNCSB8IFwK LQkJCQkJIERFVl9UWF9PRkZMT0FEX01VTFRJX1NFR1MpCisJCQkJCSBSVEVfRVRIX1RYX09GRkxP QURfTUJVRl9GQVNUX0ZSRUUJIHwgXAorCQkJCQkgUlRFX0VUSF9UWF9PRkZMT0FEX01UX0xPQ0tG UkVFCSB8IFwKKwkJCQkJIFJURV9FVEhfVFhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNIHwgXAor CQkJCQkgUlRFX0VUSF9UWF9PRkZMT0FEX09VVEVSX1VEUF9DS1NVTQkgfCBcCisJCQkJCSBSVEVf RVRIX1RYX09GRkxPQURfSVBWNF9DS1NVTQkgfCBcCisJCQkJCSBSVEVfRVRIX1RYX09GRkxPQURf VENQX0NLU1VNCSB8IFwKKwkJCQkJIFJURV9FVEhfVFhfT0ZGTE9BRF9VRFBfQ0tTVU0JIHwgXAor CQkJCQkgUlRFX0VUSF9UWF9PRkZMT0FEX1NDVFBfQ0tTVU0JIHwgXAorCQkJCQkgUlRFX0VUSF9U WF9PRkZMT0FEX01VTFRJX1NFR1MpCiAKIHN0YXRpYyBpbmxpbmUgc3RydWN0IG9jdGVvbnR4X25p YyAqCiBvY3Rlb250eF9wbWRfcHJpdihzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldikKZGlmZiBhL2Ry aXZlcnMvbmV0L29jdGVvbnR4Mi9vdHgyX2V0aGRldi5jIGIvZHJpdmVycy9uZXQvb2N0ZW9udHgy L290eDJfZXRoZGV2LmMJKHJlamVjdGVkIGh1bmtzKQpAQCAtOTE0LDggKzkxNCw4IEBAIG90eDJf bml4X2VuYWJsZV9tc2VnX29uX2p1bWJvKHN0cnVjdCBvdHgyX2V0aF9yeHEgKnJ4cSkKIAlidWZm c3ogPSBtYnBfcHJpdi0+bWJ1Zl9kYXRhX3Jvb21fc2l6ZSAtIFJURV9QS1RNQlVGX0hFQURST09N OwogCiAJaWYgKGV0aF9kZXYtPmRhdGEtPm10dSArICh1aW50MzJfdClOSVhfTDJfT1ZFUkhFQUQg PiBidWZmc3opIHsKLQkJZGV2LT5yeF9vZmZsb2FkcyB8PSBERVZfUlhfT0ZGTE9BRF9TQ0FUVEVS OwotCQlkZXYtPnR4X29mZmxvYWRzIHw9IERFVl9UWF9PRkZMT0FEX01VTFRJX1NFR1M7CisJCWRl di0+cnhfb2ZmbG9hZHMgfD0gUlRFX0VUSF9SWF9PRkZMT0FEX1NDQVRURVI7CisJCWRldi0+dHhf b2ZmbG9hZHMgfD0gUlRFX0VUSF9UWF9PRkZMT0FEX01VTFRJX1NFR1M7CiAKIAkJLyogU2V0dGlu ZyB1cCB0aGUgcnhbdHhdX29mZmxvYWRfZmxhZ3MgZHVlIHRvIGNoYW5nZQogCQkgKiBpbiByeFt0 eF1fb2ZmbG9hZHMuCmRpZmYgYS9kcml2ZXJzL25ldC9vY3Rlb250eDIvb3R4Ml9ldGhkZXYuaCBi L2RyaXZlcnMvbmV0L29jdGVvbnR4Mi9vdHgyX2V0aGRldi5oCShyZWplY3RlZCBodW5rcykKQEAg LTExNyw0MyArMTE3LDQzIEBACiAjZGVmaW5lIENRX1RJTUVSX1RIUkVTSF9ERUZBVUxUCTB4QVVM TCAvKiB+MXVzZWMgaS5lICgweEEgKiAxMDBuc2VjKSAqLwogI2RlZmluZSBDUV9USU1FUl9USFJF U0hfTUFYICAgICAyNTUKIAotI2RlZmluZSBOSVhfUlNTX0wzX0w0X1NSQ19EU1QgIChFVEhfUlNT X0wzX1NSQ19PTkxZIHwgRVRIX1JTU19MM19EU1RfT05MWSBcCi0JCQkJfCBFVEhfUlNTX0w0X1NS Q19PTkxZIHwgRVRIX1JTU19MNF9EU1RfT05MWSkKKyNkZWZpbmUgTklYX1JTU19MM19MNF9TUkNf RFNUICAoUlRFX0VUSF9SU1NfTDNfU1JDX09OTFkgfCBSVEVfRVRIX1JTU19MM19EU1RfT05MWSBc CisJCQkJfCBSVEVfRVRIX1JTU19MNF9TUkNfT05MWSB8IFJURV9FVEhfUlNTX0w0X0RTVF9PTkxZ KQogCi0jZGVmaW5lIE5JWF9SU1NfT0ZGTE9BRAkJKEVUSF9SU1NfUE9SVCB8IEVUSF9SU1NfSVAg fCBFVEhfUlNTX1VEUCB8XAotCQkJCSBFVEhfUlNTX1RDUCB8IEVUSF9SU1NfU0NUUCB8IFwKLQkJ CQkgRVRIX1JTU19UVU5ORUwgfCBFVEhfUlNTX0wyX1BBWUxPQUQgfCBcCi0JCQkJIE5JWF9SU1Nf TDNfTDRfU1JDX0RTVCB8IEVUSF9SU1NfTEVWRUxfTUFTSyB8IFwKLQkJCQkgRVRIX1JTU19DX1ZM QU4pCisjZGVmaW5lIE5JWF9SU1NfT0ZGTE9BRAkJKFJURV9FVEhfUlNTX1BPUlQgfCBSVEVfRVRI X1JTU19JUCB8IFJURV9FVEhfUlNTX1VEUCB8XAorCQkJCSBSVEVfRVRIX1JTU19UQ1AgfCBSVEVf RVRIX1JTU19TQ1RQIHwgXAorCQkJCSBSVEVfRVRIX1JTU19UVU5ORUwgfCBSVEVfRVRIX1JTU19M Ml9QQVlMT0FEIHwgXAorCQkJCSBOSVhfUlNTX0wzX0w0X1NSQ19EU1QgfCBSVEVfRVRIX1JTU19M RVZFTF9NQVNLIHwgXAorCQkJCSBSVEVfRVRIX1JTU19DX1ZMQU4pCiAKICNkZWZpbmUgTklYX1RY X09GRkxPQURfQ0FQQSAoIFwKLQlERVZfVFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJFRQl8IFwKLQlE RVZfVFhfT0ZGTE9BRF9NVF9MT0NLRlJFRQl8IFwKLQlERVZfVFhfT0ZGTE9BRF9WTEFOX0lOU0VS VAl8IFwKLQlERVZfVFhfT0ZGTE9BRF9RSU5RX0lOU0VSVAl8IFwKLQlERVZfVFhfT0ZGTE9BRF9P VVRFUl9JUFY0X0NLU1VNCXwgXAotCURFVl9UWF9PRkZMT0FEX09VVEVSX1VEUF9DS1NVTQl8IFwK LQlERVZfVFhfT0ZGTE9BRF9UQ1BfQ0tTVU0JfCBcCi0JREVWX1RYX09GRkxPQURfVURQX0NLU1VN CXwgXAotCURFVl9UWF9PRkZMT0FEX1NDVFBfQ0tTVU0JfCBcCi0JREVWX1RYX09GRkxPQURfVENQ X1RTTwkJfCBcCi0JREVWX1RYX09GRkxPQURfVlhMQU5fVE5MX1RTTyAgICB8IFwKLQlERVZfVFhf T0ZGTE9BRF9HRU5FVkVfVE5MX1RTTyAgIHwgXAotCURFVl9UWF9PRkZMT0FEX0dSRV9UTkxfVFNP CXwgXAotCURFVl9UWF9PRkZMT0FEX01VTFRJX1NFR1MJfCBcCi0JREVWX1RYX09GRkxPQURfSVBW NF9DS1NVTSkKKwlSVEVfRVRIX1RYX09GRkxPQURfTUJVRl9GQVNUX0ZSRUUJfCBcCisJUlRFX0VU SF9UWF9PRkZMT0FEX01UX0xPQ0tGUkVFCXwgXAorCVJURV9FVEhfVFhfT0ZGTE9BRF9WTEFOX0lO U0VSVAl8IFwKKwlSVEVfRVRIX1RYX09GRkxPQURfUUlOUV9JTlNFUlQJfCBcCisJUlRFX0VUSF9U WF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0JfCBcCisJUlRFX0VUSF9UWF9PRkZMT0FEX09VVEVS X1VEUF9DS1NVTQl8IFwKKwlSVEVfRVRIX1RYX09GRkxPQURfVENQX0NLU1VNCXwgXAorCVJURV9F VEhfVFhfT0ZGTE9BRF9VRFBfQ0tTVU0JfCBcCisJUlRFX0VUSF9UWF9PRkZMT0FEX1NDVFBfQ0tT VU0JfCBcCisJUlRFX0VUSF9UWF9PRkZMT0FEX1RDUF9UU08JCXwgXAorCVJURV9FVEhfVFhfT0ZG TE9BRF9WWExBTl9UTkxfVFNPICAgIHwgXAorCVJURV9FVEhfVFhfT0ZGTE9BRF9HRU5FVkVfVE5M X1RTTyAgIHwgXAorCVJURV9FVEhfVFhfT0ZGTE9BRF9HUkVfVE5MX1RTTwl8IFwKKwlSVEVfRVRI X1RYX09GRkxPQURfTVVMVElfU0VHUwl8IFwKKwlSVEVfRVRIX1RYX09GRkxPQURfSVBWNF9DS1NV TSkKIAogI2RlZmluZSBOSVhfUlhfT0ZGTE9BRF9DQVBBICggXAotCURFVl9SWF9PRkZMT0FEX0NI RUNLU1VNCQl8IFwKLQlERVZfUlhfT0ZGTE9BRF9TQ1RQX0NLU1VNCXwgXAotCURFVl9SWF9PRkZM T0FEX09VVEVSX0lQVjRfQ0tTVU0gfCBcCi0JREVWX1JYX09GRkxPQURfU0NBVFRFUgkJfCBcCi0J REVWX1JYX09GRkxPQURfT1VURVJfVURQX0NLU1VNCXwgXAotCURFVl9SWF9PRkZMT0FEX1ZMQU5f U1RSSVAJfCBcCi0JREVWX1JYX09GRkxPQURfVkxBTl9GSUxURVIJfCBcCi0JREVWX1JYX09GRkxP QURfUUlOUV9TVFJJUAl8IFwKLQlERVZfUlhfT0ZGTE9BRF9USU1FU1RBTVAJfCBcCi0JREVWX1JY X09GRkxPQURfUlNTX0hBU0gpCisJUlRFX0VUSF9SWF9PRkZMT0FEX0NIRUNLU1VNCQl8IFwKKwlS VEVfRVRIX1JYX09GRkxPQURfU0NUUF9DS1NVTQl8IFwKKwlSVEVfRVRIX1JYX09GRkxPQURfT1VU RVJfSVBWNF9DS1NVTSB8IFwKKwlSVEVfRVRIX1JYX09GRkxPQURfU0NBVFRFUgkJfCBcCisJUlRF X0VUSF9SWF9PRkZMT0FEX09VVEVSX1VEUF9DS1NVTQl8IFwKKwlSVEVfRVRIX1JYX09GRkxPQURf VkxBTl9TVFJJUAl8IFwKKwlSVEVfRVRIX1JYX09GRkxPQURfVkxBTl9GSUxURVIJfCBcCisJUlRF X0VUSF9SWF9PRkZMT0FEX1FJTlFfU1RSSVAJfCBcCisJUlRFX0VUSF9SWF9PRkZMT0FEX1RJTUVT VEFNUAl8IFwKKwlSVEVfRVRIX1JYX09GRkxPQURfUlNTX0hBU0gpCiAKICNkZWZpbmUgTklYX0RF RkFVTFRfUlNTX0NUWF9HUk9VUCAgMAogI2RlZmluZSBOSVhfREVGQVVMVF9SU1NfTUNBTV9JRFgg IC0xCmRpZmYgYS9kcml2ZXJzL25ldC9vY3Rlb250eF9lcC9vdHhfZXBfZXRoZGV2LmMgYi9kcml2 ZXJzL25ldC9vY3Rlb250eF9lcC9vdHhfZXBfZXRoZGV2LmMJKHJlamVjdGVkIGh1bmtzKQpAQCAt MzMsMTQgKzMzLDE0IEBAIG90eF9lcF9kZXZfaW5mb19nZXQoc3RydWN0IHJ0ZV9ldGhfZGV2ICpl dGhfZGV2LAogCiAJb3R4X2VwdmYgPSBPVFhfRVBfREVWKGV0aF9kZXYpOwogCi0JZGV2aW5mby0+ c3BlZWRfY2FwYSA9IEVUSF9MSU5LX1NQRUVEXzEwRzsKKwlkZXZpbmZvLT5zcGVlZF9jYXBhID0g UlRFX0VUSF9MSU5LX1NQRUVEXzEwRzsKIAlkZXZpbmZvLT5tYXhfcnhfcXVldWVzID0gb3R4X2Vw dmYtPm1heF9yeF9xdWV1ZXM7CiAJZGV2aW5mby0+bWF4X3R4X3F1ZXVlcyA9IG90eF9lcHZmLT5t YXhfdHhfcXVldWVzOwogCiAJZGV2aW5mby0+bWluX3J4X2J1ZnNpemUgPSBPVFhfRVBfTUlOX1JY X0JVRl9TSVpFOwogCWRldmluZm8tPm1heF9yeF9wa3RsZW4gPSBPVFhfRVBfTUFYX1BLVF9TWjsK LQlkZXZpbmZvLT5yeF9vZmZsb2FkX2NhcGEgPSBERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSOwotCWRl dmluZm8tPnR4X29mZmxvYWRfY2FwYSA9IERFVl9UWF9PRkZMT0FEX01VTFRJX1NFR1M7CisJZGV2 aW5mby0+cnhfb2ZmbG9hZF9jYXBhID0gUlRFX0VUSF9SWF9PRkZMT0FEX1NDQVRURVI7CisJZGV2 aW5mby0+dHhfb2ZmbG9hZF9jYXBhID0gUlRFX0VUSF9UWF9PRkZMT0FEX01VTFRJX1NFR1M7CiAK IAlkZXZpbmZvLT5tYXhfbWFjX2FkZHJzID0gT1RYX0VQX01BWF9NQUNfQUREUlM7CiAKZGlmZiBh L2RyaXZlcnMvbmV0L29jdGVvbnR4X2VwL290eF9lcF9yeHR4LmMgYi9kcml2ZXJzL25ldC9vY3Rl b250eF9lcC9vdHhfZXBfcnh0eC5jCShyZWplY3RlZCBodW5rcykKQEAgLTk1NCw3ICs5NTQsNyBA QCBvdHhfZXBfZHJvcV9yZWFkX3BhY2tldChzdHJ1Y3Qgb3R4X2VwX2RldmljZSAqb3R4X2VwLAog CWRyb3FfcGt0LT5sNF9sZW4gPSBoZHJfbGVucy5sNF9sZW47CiAKIAlpZiAoZHJvcV9wa3QtPm5i X3NlZ3MgPiAxICYmCi0JICAgICEob3R4X2VwLT5yeF9vZmZsb2FkcyAmIERFVl9SWF9PRkZMT0FE X1NDQVRURVIpKSB7CisJICAgICEob3R4X2VwLT5yeF9vZmZsb2FkcyAmIFJURV9FVEhfUlhfT0ZG TE9BRF9TQ0FUVEVSKSkgewogCQlydGVfcGt0bWJ1Zl9mcmVlKGRyb3FfcGt0KTsKIAkJZ290byBv cV9yZWFkX2ZhaWw7CiAJfQpkaWZmIGEvZHJpdmVycy9uZXQvcWVkZS9xZWRlX2V0aGRldi5jIGIv ZHJpdmVycy9uZXQvcWVkZS9xZWRlX2V0aGRldi5jCShyZWplY3RlZCBodW5rcykKQEAgLTEzMTIs NyArMTMxMiw3IEBAIHN0YXRpYyBpbnQgcWVkZV9kZXZfY29uZmlndXJlKHN0cnVjdCBydGVfZXRo X2RldiAqZXRoX2RldikKIAkJCXJldHVybiAtRU5PTUVNOwogCX0KIAotCWlmIChyeG1vZGUtPm9m ZmxvYWRzICYgREVWX1JYX09GRkxPQURfU0NBVFRFUikKKwlpZiAocnhtb2RlLT5vZmZsb2FkcyAm IFJURV9FVEhfUlhfT0ZGTE9BRF9TQ0FUVEVSKQogCQlldGhfZGV2LT5kYXRhLT5zY2F0dGVyZWRf cnggPSAxOwogCiAJaWYgKHFlZGVfc3RhcnRfdnBvcnQocWRldiwgZXRoX2Rldi0+ZGF0YS0+bXR1 KSkKQEAgLTEzODUsMzQgKzEzODUsMzQgQEAgcWVkZV9kZXZfaW5mb19nZXQoc3RydWN0IHJ0ZV9l dGhfZGV2ICpldGhfZGV2LAogCWRldl9pbmZvLT5yZXRhX3NpemUgPSBFQ09SRV9SU1NfSU5EX1RB QkxFX1NJWkU7CiAJZGV2X2luZm8tPmhhc2hfa2V5X3NpemUgPSBFQ09SRV9SU1NfS0VZX1NJWkUg KiBzaXplb2YodWludDMyX3QpOwogCWRldl9pbmZvLT5mbG93X3R5cGVfcnNzX29mZmxvYWRzID0g KHVpbnQ2NF90KVFFREVfUlNTX09GRkxPQURfQUxMOwotCWRldl9pbmZvLT5yeF9vZmZsb2FkX2Nh cGEgPSAoREVWX1JYX09GRkxPQURfSVBWNF9DS1NVTQl8Ci0JCQkJICAgICBERVZfUlhfT0ZGTE9B RF9VRFBfQ0tTVU0JfAotCQkJCSAgICAgREVWX1JYX09GRkxPQURfVENQX0NLU1VNCXwKLQkJCQkg ICAgIERFVl9SWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gfAotCQkJCSAgICAgREVWX1JYX09G RkxPQURfVENQX0xSTwl8Ci0JCQkJICAgICBERVZfUlhfT0ZGTE9BRF9LRUVQX0NSQyAgICB8Ci0J CQkJICAgICBERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSCXwKLQkJCQkgICAgIERFVl9SWF9PRkZMT0FE X1ZMQU5fRklMVEVSIHwKLQkJCQkgICAgIERFVl9SWF9PRkZMT0FEX1ZMQU5fU1RSSVAgIHwKLQkJ CQkgICAgIERFVl9SWF9PRkZMT0FEX1JTU19IQVNIKTsKKwlkZXZfaW5mby0+cnhfb2ZmbG9hZF9j YXBhID0gKFJURV9FVEhfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNCXwKKwkJCQkgICAgIFJURV9FVEhf UlhfT0ZGTE9BRF9VRFBfQ0tTVU0JfAorCQkJCSAgICAgUlRFX0VUSF9SWF9PRkZMT0FEX1RDUF9D S1NVTQl8CisJCQkJICAgICBSVEVfRVRIX1JYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTSB8CisJ CQkJICAgICBSVEVfRVRIX1JYX09GRkxPQURfVENQX0xSTwl8CisJCQkJICAgICBSVEVfRVRIX1JY X09GRkxPQURfS0VFUF9DUkMgICAgfAorCQkJCSAgICAgUlRFX0VUSF9SWF9PRkZMT0FEX1NDQVRU RVIJfAorCQkJCSAgICAgUlRFX0VUSF9SWF9PRkZMT0FEX1ZMQU5fRklMVEVSIHwKKwkJCQkgICAg IFJURV9FVEhfUlhfT0ZGTE9BRF9WTEFOX1NUUklQICB8CisJCQkJICAgICBSVEVfRVRIX1JYX09G RkxPQURfUlNTX0hBU0gpOwogCWRldl9pbmZvLT5yeF9xdWV1ZV9vZmZsb2FkX2NhcGEgPSAwOwog CiAJLyogVFggb2ZmbG9hZHMgYXJlIG9uIGEgcGVyLXBhY2tldCBiYXNpcywgc28gaXQgaXMgYXBw bGljYWJsZQogCSAqIHRvIGJvdGggYXQgcG9ydCBhbmQgcXVldWUgbGV2ZWxzLgogCSAqLwotCWRl dl9pbmZvLT50eF9vZmZsb2FkX2NhcGEgPSAoREVWX1RYX09GRkxPQURfVkxBTl9JTlNFUlQJfAot CQkJCSAgICAgREVWX1RYX09GRkxPQURfSVBWNF9DS1NVTQl8Ci0JCQkJICAgICBERVZfVFhfT0ZG TE9BRF9VRFBfQ0tTVU0JfAotCQkJCSAgICAgREVWX1RYX09GRkxPQURfVENQX0NLU1VNCXwKLQkJ CQkgICAgIERFVl9UWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gfAotCQkJCSAgICAgREVWX1RY X09GRkxPQURfTVVMVElfU0VHUyAgfAotCQkJCSAgICAgREVWX1RYX09GRkxPQURfVENQX1RTTwl8 Ci0JCQkJICAgICBERVZfVFhfT0ZGTE9BRF9WWExBTl9UTkxfVFNPIHwKLQkJCQkgICAgIERFVl9U WF9PRkZMT0FEX0dFTkVWRV9UTkxfVFNPKTsKKwlkZXZfaW5mby0+dHhfb2ZmbG9hZF9jYXBhID0g KFJURV9FVEhfVFhfT0ZGTE9BRF9WTEFOX0lOU0VSVAl8CisJCQkJICAgICBSVEVfRVRIX1RYX09G RkxPQURfSVBWNF9DS1NVTQl8CisJCQkJICAgICBSVEVfRVRIX1RYX09GRkxPQURfVURQX0NLU1VN CXwKKwkJCQkgICAgIFJURV9FVEhfVFhfT0ZGTE9BRF9UQ1BfQ0tTVU0JfAorCQkJCSAgICAgUlRF X0VUSF9UWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gfAorCQkJCSAgICAgUlRFX0VUSF9UWF9P RkZMT0FEX01VTFRJX1NFR1MgIHwKKwkJCQkgICAgIFJURV9FVEhfVFhfT0ZGTE9BRF9UQ1BfVFNP CXwKKwkJCQkgICAgIFJURV9FVEhfVFhfT0ZGTE9BRF9WWExBTl9UTkxfVFNPIHwKKwkJCQkgICAg IFJURV9FVEhfVFhfT0ZGTE9BRF9HRU5FVkVfVE5MX1RTTyk7CiAJZGV2X2luZm8tPnR4X3F1ZXVl X29mZmxvYWRfY2FwYSA9IGRldl9pbmZvLT50eF9vZmZsb2FkX2NhcGE7CiAKIAlkZXZfaW5mby0+ ZGVmYXVsdF90eGNvbmYgPSAoc3RydWN0IHJ0ZV9ldGhfdHhjb25mKSB7Ci0JCS5vZmZsb2FkcyA9 IERFVl9UWF9PRkZMT0FEX01VTFRJX1NFR1MsCisJCS5vZmZsb2FkcyA9IFJURV9FVEhfVFhfT0ZG TE9BRF9NVUxUSV9TRUdTLAogCX07CiAKIAlkZXZfaW5mby0+ZGVmYXVsdF9yeGNvbmYgPSAoc3Ry dWN0IHJ0ZV9ldGhfcnhjb25mKSB7CmRpZmYgYS9kcml2ZXJzL25ldC9xZWRlL3FlZGVfcnh0eC5j IGIvZHJpdmVycy9uZXQvcWVkZS9xZWRlX3J4dHguYwkocmVqZWN0ZWQgaHVua3MpCkBAIC0yNDks NyArMjQ5LDcgQEAgcWVkZV9yeF9xdWV1ZV9zZXR1cChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwg dWludDE2X3QgcWlkLAogCWJ1ZnN6ID0gKHVpbnQxNl90KXJ0ZV9wa3RtYnVmX2RhdGFfcm9vbV9z aXplKG1wKSAtIFJURV9QS1RNQlVGX0hFQURST09NOwogCS8qIGNhY2hlIGFsaWduIHRoZSBtYnVm IHNpemUgdG8gc2ltcGxmeSByeF9idWZfc2l6ZSBjYWxjdWxhdGlvbiAqLwogCWJ1ZnN6ID0gUUVE RV9GTE9PUl9UT19DQUNIRV9MSU5FX1NJWkUoYnVmc3opOwotCWlmICgocnhtb2RlLT5vZmZsb2Fk cyAmIERFVl9SWF9PRkZMT0FEX1NDQVRURVIpCXx8CisJaWYgKChyeG1vZGUtPm9mZmxvYWRzICYg UlRFX0VUSF9SWF9PRkZMT0FEX1NDQVRURVIpCXx8CiAJICAgIChtYXhfcnhfcGt0bGVuICsgUUVE RV9FVEhfT1ZFUkhFQUQpID4gYnVmc3opIHsKIAkJaWYgKCFkZXYtPmRhdGEtPnNjYXR0ZXJlZF9y eCkgewogCQkJRFBfSU5GTyhlZGV2LCAiRm9yY2luZyBzY2F0dGVyLWdhdGhlciBtb2RlXG4iKTsK ZGlmZiBhL2RyaXZlcnMvbmV0L3NmYy9zZmNfZWYxMDBfcnguYyBiL2RyaXZlcnMvbmV0L3NmYy9z ZmNfZWYxMDBfcnguYwkocmVqZWN0ZWQgaHVua3MpCkBAIC05NzksMTEgKzk3OSwxMSBAQCBzdHJ1 Y3Qgc2ZjX2RwX3J4IHNmY19lZjEwMF9yeCA9IHsKIAkJCQkgIFNGQ19EUF9SWF9GRUFUX0lOVFIg fAogCQkJCSAgU0ZDX0RQX1JYX0ZFQVRfU1RBVFMsCiAJLmRldl9vZmZsb2FkX2NhcGEJPSAwLAot CS5xdWV1ZV9vZmZsb2FkX2NhcGEJPSBERVZfUlhfT0ZGTE9BRF9DSEVDS1NVTSB8Ci0JCQkJICBE RVZfUlhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNIHwKLQkJCQkgIERFVl9SWF9PRkZMT0FEX09V VEVSX1VEUF9DS1NVTSB8Ci0JCQkJICBERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSIHwKLQkJCQkgIERF Vl9SWF9PRkZMT0FEX1JTU19IQVNILAorCS5xdWV1ZV9vZmZsb2FkX2NhcGEJPSBSVEVfRVRIX1JY X09GRkxPQURfQ0hFQ0tTVU0gfAorCQkJCSAgUlRFX0VUSF9SWF9PRkZMT0FEX09VVEVSX0lQVjRf Q0tTVU0gfAorCQkJCSAgUlRFX0VUSF9SWF9PRkZMT0FEX09VVEVSX1VEUF9DS1NVTSB8CisJCQkJ ICBSVEVfRVRIX1JYX09GRkxPQURfU0NBVFRFUiB8CisJCQkJICBSVEVfRVRIX1JYX09GRkxPQURf UlNTX0hBU0gsCiAJLmdldF9kZXZfaW5mbwkJPSBzZmNfZWYxMDBfcnhfZ2V0X2Rldl9pbmZvLAog CS5xc2l6ZV91cF9yaW5ncwkJPSBzZmNfZWYxMDBfcnhfcXNpemVfdXBfcmluZ3MsCiAJLnFjcmVh dGUJCT0gc2ZjX2VmMTAwX3J4X3FjcmVhdGUsCmRpZmYgYS9kcml2ZXJzL25ldC9zZmMvc2ZjX2Vm MTAwX3R4LmMgYi9kcml2ZXJzL25ldC9zZmMvc2ZjX2VmMTAwX3R4LmMJKHJlamVjdGVkIGh1bmtz KQpAQCAtOTcxLDE2ICs5NzEsMTYgQEAgc3RydWN0IHNmY19kcF90eCBzZmNfZWYxMDBfdHggPSB7 CiAJLmZlYXR1cmVzCQk9IFNGQ19EUF9UWF9GRUFUX01VTFRJX1BST0NFU1MgfAogCQkJCSAgU0ZD X0RQX1RYX0ZFQVRfU1RBVFMsCiAJLmRldl9vZmZsb2FkX2NhcGEJPSAwLAotCS5xdWV1ZV9vZmZs b2FkX2NhcGEJPSBERVZfVFhfT0ZGTE9BRF9WTEFOX0lOU0VSVCB8Ci0JCQkJICBERVZfVFhfT0ZG TE9BRF9JUFY0X0NLU1VNIHwKLQkJCQkgIERFVl9UWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0g fAotCQkJCSAgREVWX1RYX09GRkxPQURfT1VURVJfVURQX0NLU1VNIHwKLQkJCQkgIERFVl9UWF9P RkZMT0FEX1VEUF9DS1NVTSB8Ci0JCQkJICBERVZfVFhfT0ZGTE9BRF9UQ1BfQ0tTVU0gfAotCQkJ CSAgREVWX1RYX09GRkxPQURfTVVMVElfU0VHUyB8Ci0JCQkJICBERVZfVFhfT0ZGTE9BRF9UQ1Bf VFNPIHwKLQkJCQkgIERFVl9UWF9PRkZMT0FEX1ZYTEFOX1ROTF9UU08gfAotCQkJCSAgREVWX1RY X09GRkxPQURfR0VORVZFX1ROTF9UU08sCisJLnF1ZXVlX29mZmxvYWRfY2FwYQk9IFJURV9FVEhf VFhfT0ZGTE9BRF9WTEFOX0lOU0VSVCB8CisJCQkJICBSVEVfRVRIX1RYX09GRkxPQURfSVBWNF9D S1NVTSB8CisJCQkJICBSVEVfRVRIX1RYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTSB8CisJCQkJ ICBSVEVfRVRIX1RYX09GRkxPQURfT1VURVJfVURQX0NLU1VNIHwKKwkJCQkgIFJURV9FVEhfVFhf T0ZGTE9BRF9VRFBfQ0tTVU0gfAorCQkJCSAgUlRFX0VUSF9UWF9PRkZMT0FEX1RDUF9DS1NVTSB8 CisJCQkJICBSVEVfRVRIX1RYX09GRkxPQURfTVVMVElfU0VHUyB8CisJCQkJICBSVEVfRVRIX1RY X09GRkxPQURfVENQX1RTTyB8CisJCQkJICBSVEVfRVRIX1RYX09GRkxPQURfVlhMQU5fVE5MX1RT TyB8CisJCQkJICBSVEVfRVRIX1RYX09GRkxPQURfR0VORVZFX1ROTF9UU08sCiAJLmdldF9kZXZf aW5mbwkJPSBzZmNfZWYxMDBfZ2V0X2Rldl9pbmZvLAogCS5xc2l6ZV91cF9yaW5ncwkJPSBzZmNf ZWYxMDBfdHhfcXNpemVfdXBfcmluZ3MsCiAJLnFjcmVhdGUJCT0gc2ZjX2VmMTAwX3R4X3FjcmVh dGUsCmRpZmYgYS9kcml2ZXJzL25ldC9zZmMvc2ZjX3J4LmMgYi9kcml2ZXJzL25ldC9zZmMvc2Zj X3J4LmMJKHJlamVjdGVkIGh1bmtzKQpAQCAtMTE2NiwxNSArMTE2NiwxNSBAQCBzZmNfcnhfcWlu aXQoc3RydWN0IHNmY19hZGFwdGVyICpzYSwgc2ZjX3N3X2luZGV4X3Qgc3dfaW5kZXgsCiAJCXJ4 cV9pbmZvLT50eXBlID0gRUZYX1JYUV9UWVBFX0RFRkFVTFQ7CiAKIAlyeHFfaW5mby0+dHlwZV9m bGFncyB8PQotCQkob2ZmbG9hZHMgJiBERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSKSA/CisJCShvZmZs b2FkcyAmIFJURV9FVEhfUlhfT0ZGTE9BRF9TQ0FUVEVSKSA/CiAJCUVGWF9SWFFfRkxBR19TQ0FU VEVSIDogRUZYX1JYUV9GTEFHX05PTkU7CiAKIAlpZiAoKGVuY3AtPmVuY190dW5uZWxfZW5jYXBz dWxhdGlvbnNfc3VwcG9ydGVkICE9IDApICYmCiAJICAgIChzZmNfZHBfcnhfb2ZmbG9hZF9jYXBh KHNhLT5wcml2LmRwX3J4KSAmCi0JICAgICBERVZfUlhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VN KSAhPSAwKQorCSAgICAgUlRFX0VUSF9SWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0pICE9IDAp CiAJCXJ4cV9pbmZvLT50eXBlX2ZsYWdzIHw9IEVGWF9SWFFfRkxBR19JTk5FUl9DTEFTU0VTOwog Ci0JaWYgKG9mZmxvYWRzICYgREVWX1JYX09GRkxPQURfUlNTX0hBU0gpCisJaWYgKG9mZmxvYWRz ICYgUlRFX0VUSF9SWF9PRkZMT0FEX1JTU19IQVNIKQogCQlyeHFfaW5mby0+dHlwZV9mbGFncyB8 PSBFRlhfUlhRX0ZMQUdfUlNTX0hBU0g7CiAKIAlpZiAoKHNhLT5uZWdvdGlhdGVkX3J4X21ldGFk YXRhICYgUlRFX0VUSF9SWF9NRVRBREFUQV9VU0VSX0ZMQUcpICE9IDApCmRpZmYgYS9kcml2ZXJz L25ldC90aHVuZGVyeC9uaWN2Zl9ldGhkZXYuYyBiL2RyaXZlcnMvbmV0L3RodW5kZXJ4L25pY3Zm X2V0aGRldi5jCShyZWplY3RlZCBodW5rcykKQEAgLTE3MTEsNyArMTcxMSw3IEBAIG5pY3ZmX2Rl dl9zdGFydChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldikKIAkvKiBTZXR1cCBzY2F0dGVyIG1vZGUg aWYgbmVlZGVkIGJ5IGp1bWJvICovCiAJaWYgKGRldi0+ZGF0YS0+bXR1ICsgKHVpbnQzMl90KU5J Q19IV19MMl9PVkVSSEVBRCArIDIgKiBWTEFOX1RBR19TSVpFID4gYnVmZnN6KQogCQlkZXYtPmRh dGEtPnNjYXR0ZXJlZF9yeCA9IDE7Ci0JaWYgKChyeF9jb25mLT5vZmZsb2FkcyAmIERFVl9SWF9P RkZMT0FEX1NDQVRURVIpICE9IDApCisJaWYgKChyeF9jb25mLT5vZmZsb2FkcyAmIFJURV9FVEhf UlhfT0ZGTE9BRF9TQ0FUVEVSKSAhPSAwKQogCQlkZXYtPmRhdGEtPnNjYXR0ZXJlZF9yeCA9IDE7 CiAKIAkvKiBTZXR1cCBNVFUgKi8KZGlmZiBhL2RyaXZlcnMvbmV0L3RodW5kZXJ4L25pY3ZmX2V0 aGRldi5oIGIvZHJpdmVycy9uZXQvdGh1bmRlcngvbmljdmZfZXRoZGV2LmgJKHJlamVjdGVkIGh1 bmtzKQpAQCAtMTYsMzIgKzE2LDMyIEBACiAjZGVmaW5lIE5JQ1ZGX1VOS05PV05fRFVQTEVYCQkw eGZmCiAKICNkZWZpbmUgTklDVkZfUlNTX09GRkxPQURfUEFTUzEgKCBcCi0JRVRIX1JTU19QT1JU IHwgXAotCUVUSF9SU1NfSVBWNCB8IFwKLQlFVEhfUlNTX05PTkZSQUdfSVBWNF9UQ1AgfCBcCi0J RVRIX1JTU19OT05GUkFHX0lQVjRfVURQIHwgXAotCUVUSF9SU1NfSVBWNiB8IFwKLQlFVEhfUlNT X05PTkZSQUdfSVBWNl9UQ1AgfCBcCi0JRVRIX1JTU19OT05GUkFHX0lQVjZfVURQKQorCVJURV9F VEhfUlNTX1BPUlQgfCBcCisJUlRFX0VUSF9SU1NfSVBWNCB8IFwKKwlSVEVfRVRIX1JTU19OT05G UkFHX0lQVjRfVENQIHwgXAorCVJURV9FVEhfUlNTX05PTkZSQUdfSVBWNF9VRFAgfCBcCisJUlRF X0VUSF9SU1NfSVBWNiB8IFwKKwlSVEVfRVRIX1JTU19OT05GUkFHX0lQVjZfVENQIHwgXAorCVJU RV9FVEhfUlNTX05PTkZSQUdfSVBWNl9VRFApCiAKICNkZWZpbmUgTklDVkZfUlNTX09GRkxPQURf VFVOTkVMICggXAotCUVUSF9SU1NfVlhMQU4gfCBcCi0JRVRIX1JTU19HRU5FVkUgfCBcCi0JRVRI X1JTU19OVkdSRSkKKwlSVEVfRVRIX1JTU19WWExBTiB8IFwKKwlSVEVfRVRIX1JTU19HRU5FVkUg fCBcCisJUlRFX0VUSF9SU1NfTlZHUkUpCiAKICNkZWZpbmUgTklDVkZfVFhfT0ZGTE9BRF9DQVBB ICggXAotCURFVl9UWF9PRkZMT0FEX0lQVjRfQ0tTVU0gICAgICAgfCBcCi0JREVWX1RYX09GRkxP QURfVURQX0NLU1VNICAgICAgICB8IFwKLQlERVZfVFhfT0ZGTE9BRF9UQ1BfQ0tTVU0gICAgICAg IHwgXAotCURFVl9UWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gfCBcCi0JREVWX1RYX09GRkxP QURfTUJVRl9GQVNUX0ZSRUUgICB8IFwKLQlERVZfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTKQorCVJU RV9FVEhfVFhfT0ZGTE9BRF9JUFY0X0NLU1VNICAgICAgIHwgXAorCVJURV9FVEhfVFhfT0ZGTE9B RF9VRFBfQ0tTVU0gICAgICAgIHwgXAorCVJURV9FVEhfVFhfT0ZGTE9BRF9UQ1BfQ0tTVU0gICAg ICAgIHwgXAorCVJURV9FVEhfVFhfT0ZGTE9BRF9PVVRFUl9JUFY0X0NLU1VNIHwgXAorCVJURV9F VEhfVFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJFRSAgIHwgXAorCVJURV9FVEhfVFhfT0ZGTE9BRF9N VUxUSV9TRUdTKQogCiAjZGVmaW5lIE5JQ1ZGX1JYX09GRkxPQURfQ0FQQSAoIFwKLQlERVZfUlhf T0ZGTE9BRF9DSEVDS1NVTSAgICB8IFwKLQlERVZfUlhfT0ZGTE9BRF9WTEFOX1NUUklQICB8IFwK LQlERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSICAgICB8IFwKLQlERVZfUlhfT0ZGTE9BRF9SU1NfSEFT SCkKKwlSVEVfRVRIX1JYX09GRkxPQURfQ0hFQ0tTVU0gICAgfCBcCisJUlRFX0VUSF9SWF9PRkZM T0FEX1ZMQU5fU1RSSVAgIHwgXAorCVJURV9FVEhfUlhfT0ZGTE9BRF9TQ0FUVEVSICAgICB8IFwK KwlSVEVfRVRIX1JYX09GRkxPQURfUlNTX0hBU0gpCiAKICNkZWZpbmUgTklDVkZfREVGQVVMVF9S WF9GUkVFX1RIUkVTSCAgICAyMjQKICNkZWZpbmUgTklDVkZfREVGQVVMVF9UWF9GUkVFX1RIUkVT SCAgICAyMjQKZGlmZiBhL2RyaXZlcnMvbmV0L3R4Z2JlL3R4Z2JlX2V0aGRldi5jIGIvZHJpdmVy cy9uZXQvdHhnYmUvdHhnYmVfZXRoZGV2LmMJKHJlamVjdGVkIGh1bmtzKQpAQCAtMTc2Myw4ICsx NzYzLDggQEAgdHhnYmVfZGV2X3N0YXJ0KHN0cnVjdCBydGVfZXRoX2RldiAqZGV2KQogCWlmIChl cnIpCiAJCWdvdG8gZXJyb3I7CiAKLQlhbGxvd2VkX3NwZWVkcyA9IEVUSF9MSU5LX1NQRUVEXzEw ME0gfCBFVEhfTElOS19TUEVFRF8xRyB8Ci0JCQlFVEhfTElOS19TUEVFRF8xMEc7CisJYWxsb3dl ZF9zcGVlZHMgPSBSVEVfRVRIX0xJTktfU1BFRURfMTAwTSB8IFJURV9FVEhfTElOS19TUEVFRF8x RyB8CisJCQlSVEVfRVRIX0xJTktfU1BFRURfMTBHOwogCiAJbGlua19zcGVlZHMgPSAmZGV2LT5k YXRhLT5kZXZfY29uZi5saW5rX3NwZWVkczsKIAlpZiAoKCgqbGlua19zcGVlZHMpID4+IDEpICYg fihhbGxvd2VkX3NwZWVkcyA+PiAxKSkgewpAQCAtMjY5NSwxMSArMjY5NSwxMSBAQCB0eGdiZV9k ZXZfbGlua191cGRhdGVfc2hhcmUoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsCiAJaW50IHdhaXQg PSAxOwogCiAJbWVtc2V0KCZsaW5rLCAwLCBzaXplb2YobGluaykpOwotCWxpbmsubGlua19zdGF0 dXMgPSBFVEhfTElOS19ET1dOOwotCWxpbmsubGlua19zcGVlZCA9IEVUSF9TUEVFRF9OVU1fTk9O RTsKLQlsaW5rLmxpbmtfZHVwbGV4ID0gRVRIX0xJTktfSEFMRl9EVVBMRVg7CisJbGluay5saW5r X3N0YXR1cyA9IFJURV9FVEhfTElOS19ET1dOOworCWxpbmsubGlua19zcGVlZCA9IFJURV9FVEhf U1BFRURfTlVNX05PTkU7CisJbGluay5saW5rX2R1cGxleCA9IFJURV9FVEhfTElOS19IQUxGX0RV UExFWDsKIAlsaW5rLmxpbmtfYXV0b25lZyA9ICEoZGV2LT5kYXRhLT5kZXZfY29uZi5saW5rX3Nw ZWVkcyAmCi0JCQlFVEhfTElOS19TUEVFRF9GSVhFRCk7CisJCQlSVEVfRVRIX0xJTktfQVVUT05F Ryk7CiAKIAlody0+bWFjLmdldF9saW5rX3N0YXR1cyA9IHRydWU7CiAKZGlmZiBhL2RyaXZlcnMv bmV0L3R4Z2JlL3R4Z2JlX2V0aGRldi5oIGIvZHJpdmVycy9uZXQvdHhnYmUvdHhnYmVfZXRoZGV2 LmgJKHJlamVjdGVkIGh1bmtzKQpAQCAtNjAsMTUgKzYwLDE1IEBACiAjZGVmaW5lIFRYR0JFX0VU SF9PVkVSSEVBRCAoUlRFX0VUSEVSX0hEUl9MRU4gKyBSVEVfRVRIRVJfQ1JDX0xFTikKIAogI2Rl ZmluZSBUWEdCRV9SU1NfT0ZGTE9BRF9BTEwgKCBcCi0JRVRIX1JTU19JUFY0IHwgXAotCUVUSF9S U1NfTk9ORlJBR19JUFY0X1RDUCB8IFwKLQlFVEhfUlNTX05PTkZSQUdfSVBWNF9VRFAgfCBcCi0J RVRIX1JTU19JUFY2IHwgXAotCUVUSF9SU1NfTk9ORlJBR19JUFY2X1RDUCB8IFwKLQlFVEhfUlNT X05PTkZSQUdfSVBWNl9VRFAgfCBcCi0JRVRIX1JTU19JUFY2X0VYIHwgXAotCUVUSF9SU1NfSVBW Nl9UQ1BfRVggfCBcCi0JRVRIX1JTU19JUFY2X1VEUF9FWCkKKwlSVEVfRVRIX1JTU19JUFY0IHwg XAorCVJURV9FVEhfUlNTX05PTkZSQUdfSVBWNF9UQ1AgfCBcCisJUlRFX0VUSF9SU1NfTk9ORlJB R19JUFY0X1VEUCB8IFwKKwlSVEVfRVRIX1JTU19JUFY2IHwgXAorCVJURV9FVEhfUlNTX05PTkZS QUdfSVBWNl9UQ1AgfCBcCisJUlRFX0VUSF9SU1NfTk9ORlJBR19JUFY2X1VEUCB8IFwKKwlSVEVf RVRIX1JTU19JUFY2X0VYIHwgXAorCVJURV9FVEhfUlNTX0lQVjZfVENQX0VYIHwgXAorCVJURV9F VEhfUlNTX0lQVjZfVURQX0VYKQogCiAjZGVmaW5lIFRYR0JFX01JU0NfVkVDX0lEICAgICAgICAg ICAgICAgUlRFX0lOVFJfVkVDX1pFUk9fT0ZGU0VUCiAjZGVmaW5lIFRYR0JFX1JYX1ZFQ19TVEFS VCAgICAgICAgICAgICAgUlRFX0lOVFJfVkVDX1JYVFhfT0ZGU0VUCmRpZmYgYS9kcml2ZXJzL25l dC90eGdiZS90eGdiZV9yeHR4LmMgYi9kcml2ZXJzL25ldC90eGdiZS90eGdiZV9yeHR4LmMJKHJl amVjdGVkIGh1bmtzKQpAQCAtMTk3MCwzNCArMTk3MCwzNCBAQCB0eGdiZV9nZXRfcnhfcG9ydF9v ZmZsb2FkcyhzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldikKIAlzdHJ1Y3QgdHhnYmVfaHcgKmh3ID0g VFhHQkVfREVWX0hXKGRldik7CiAJc3RydWN0IHJ0ZV9ldGhfZGV2X3NyaW92ICpzcmlvdiA9ICZS VEVfRVRIX0RFVl9TUklPVihkZXYpOwogCi0Jb2ZmbG9hZHMgPSBERVZfUlhfT0ZGTE9BRF9JUFY0 X0NLU1VNICB8Ci0JCSAgIERFVl9SWF9PRkZMT0FEX1VEUF9DS1NVTSAgIHwKLQkJICAgREVWX1JY X09GRkxPQURfVENQX0NLU1VNICAgfAotCQkgICBERVZfUlhfT0ZGTE9BRF9LRUVQX0NSQyAgICB8 Ci0JCSAgIERFVl9SWF9PRkZMT0FEX1ZMQU5fRklMVEVSIHwKLQkJICAgREVWX1JYX09GRkxPQURf UlNTX0hBU0ggfAotCQkgICBERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSOworCW9mZmxvYWRzID0gUlRF X0VUSF9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0gIHwKKwkJICAgUlRFX0VUSF9SWF9PRkZMT0FEX1VE UF9DS1NVTSAgIHwKKwkJICAgUlRFX0VUSF9SWF9PRkZMT0FEX1RDUF9DS1NVTSAgIHwKKwkJICAg UlRFX0VUSF9SWF9PRkZMT0FEX0tFRVBfQ1JDICAgIHwKKwkJICAgUlRFX0VUSF9SWF9PRkZMT0FE X1ZMQU5fRklMVEVSIHwKKwkJICAgUlRFX0VUSF9SWF9PRkZMT0FEX1JTU19IQVNIIHwKKwkJICAg UlRFX0VUSF9SWF9PRkZMT0FEX1NDQVRURVI7CiAKIAlpZiAoIXR4Z2JlX2lzX3ZmKGRldikpCi0J CW9mZmxvYWRzIHw9IChERVZfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUiB8Ci0JCQkgICAgIERFVl9S WF9PRkZMT0FEX1FJTlFfU1RSSVAgfAotCQkJICAgICBERVZfUlhfT0ZGTE9BRF9WTEFOX0VYVEVO RCk7CisJCW9mZmxvYWRzIHw9IChSVEVfRVRIX1JYX09GRkxPQURfVkxBTl9GSUxURVIgfAorCQkJ ICAgICBSVEVfRVRIX1JYX09GRkxPQURfUUlOUV9TVFJJUCB8CisJCQkgICAgIFJURV9FVEhfUlhf T0ZGTE9BRF9WTEFOX0VYVEVORCk7CiAKIAkvKgogCSAqIFJTQyBpcyBvbmx5IHN1cHBvcnRlZCBi eSBQRiBkZXZpY2VzIGluIGEgbm9uLVNSLUlPVgogCSAqIG1vZGUuCiAJICovCiAJaWYgKGh3LT5t YWMudHlwZSA9PSB0eGdiZV9tYWNfcmFwdG9yICYmICFzcmlvdi0+YWN0aXZlKQotCQlvZmZsb2Fk cyB8PSBERVZfUlhfT0ZGTE9BRF9UQ1BfTFJPOworCQlvZmZsb2FkcyB8PSBSVEVfRVRIX1JYX09G RkxPQURfVENQX0xSTzsKIAogCWlmIChody0+bWFjLnR5cGUgPT0gdHhnYmVfbWFjX3JhcHRvcikK LQkJb2ZmbG9hZHMgfD0gREVWX1JYX09GRkxPQURfTUFDU0VDX1NUUklQOworCQlvZmZsb2FkcyB8 PSBSVEVfRVRIX1JYX09GRkxPQURfTUFDU0VDX1NUUklQOwogCi0Jb2ZmbG9hZHMgfD0gREVWX1JY X09GRkxPQURfT1VURVJfSVBWNF9DS1NVTTsKKwlvZmZsb2FkcyB8PSBSVEVfRVRIX1JYX09GRkxP QURfT1VURVJfSVBWNF9DS1NVTTsKIAogI2lmZGVmIFJURV9MSUJfU0VDVVJJVFkKIAlpZiAoZGV2 LT5zZWN1cml0eV9jdHgpCi0JCW9mZmxvYWRzIHw9IERFVl9SWF9PRkZMT0FEX1NFQ1VSSVRZOwor CQlvZmZsb2FkcyB8PSBSVEVfRVRIX1JYX09GRkxPQURfU0VDVVJJVFk7CiAjZW5kaWYKIAogCXJl dHVybiBvZmZsb2FkczsKQEAgLTM5MzEsMTUgKzM5MzEsMTUgQEAgdHhnYmVfY29uZmlnX3ZmX2Rl ZmF1bHQoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYpCiAJbXJxYyA9IHJkMzIoaHcsIFRYR0JFX1BP UlRDVEwpOwogCW1ycWMgJj0gfihUWEdCRV9QT1JUQ1RMX05VTVRDX01BU0sgfCBUWEdCRV9QT1JU Q1RMX05VTVZUX01BU0spOwogCXN3aXRjaCAoUlRFX0VUSF9ERVZfU1JJT1YoZGV2KS5hY3RpdmUp IHsKLQljYXNlIEVUSF82NF9QT09MUzoKKwljYXNlIFJURV9FVEhfNjRfUE9PTFM6CiAJCW1ycWMg fD0gVFhHQkVfUE9SVENUTF9OVU1WVF82NDsKIAkJYnJlYWs7CiAKLQljYXNlIEVUSF8zMl9QT09M UzoKKwljYXNlIFJURV9FVEhfMzJfUE9PTFM6CiAJCW1ycWMgfD0gVFhHQkVfUE9SVENUTF9OVU1W VF8zMjsKIAkJYnJlYWs7CiAKLQljYXNlIEVUSF8xNl9QT09MUzoKKwljYXNlIFJURV9FVEhfMTZf UE9PTFM6CiAJCW1ycWMgfD0gVFhHQkVfUE9SVENUTF9OVU1WVF8xNjsKIAkJYnJlYWs7CiAJZGVm YXVsdDoKQEAgLTQzOTEsMTEgKzQzOTEsMTEgQEAgdHhnYmVfZGV2X3J4X2luaXQoc3RydWN0IHJ0 ZV9ldGhfZGV2ICpkZXYpCiAJCWlmIChkZXYtPmRhdGEtPm10dSArIFRYR0JFX0VUSF9PVkVSSEVB RCArCiAJCQkJMiAqIFRYR0JFX1ZMQU5fVEFHX1NJWkUgPiBidWZfc2l6ZSkKIAkJCWRldi0+ZGF0 YS0+c2NhdHRlcmVkX3J4ID0gMTsKLQkJaWYgKHJ4cS0+b2ZmbG9hZHMgJiBERVZfUlhfT0ZGTE9B RF9WTEFOX1NUUklQKQotCQkJcnhfY29uZi0+b2ZmbG9hZHMgfD0gREVWX1JYX09GRkxPQURfVkxB Tl9TVFJJUDsKKwkJaWYgKHJ4cS0+b2ZmbG9hZHMgJiBSVEVfRVRIX1JYX09GRkxPQURfVkxBTl9T VFJJUCkKKwkJCXJ4X2NvbmYtPm9mZmxvYWRzIHw9IFJURV9FVEhfUlhfT0ZGTE9BRF9WTEFOX1NU UklQOwogCX0KIAotCWlmIChyeF9jb25mLT5vZmZsb2FkcyAmIERFVl9SWF9PRkZMT0FEX1NDQVRU RVIpCisJaWYgKHJ4X2NvbmYtPm9mZmxvYWRzICYgUlRFX0VUSF9SWF9PRkZMT0FEX1NDQVRURVIp CiAJCWRldi0+ZGF0YS0+c2NhdHRlcmVkX3J4ID0gMTsKIAogCS8qCkBAIC00OTAzLDcgKzQ5MDMs NyBAQCB0eGdiZXZmX2Rldl9yeF9pbml0KHN0cnVjdCBydGVfZXRoX2RldiAqZGV2KQogCQkgKi8K IAkJd3IzMihodywgVFhHQkVfUlhDRkcoaSksIHNycmN0bCk7CiAKLQkJaWYgKHJ4bW9kZS0+b2Zm bG9hZHMgJiBERVZfUlhfT0ZGTE9BRF9TQ0FUVEVSIHx8CisJCWlmIChyeG1vZGUtPm9mZmxvYWRz ICYgUlRFX0VUSF9SWF9PRkZMT0FEX1NDQVRURVIgfHwKIAkJICAgIC8qIEl0IGFkZHMgZHVhbCBW TEFOIGxlbmd0aCBmb3Igc3VwcG9ydGluZyBkdWFsIFZMQU4gKi8KIAkJICAgIChkZXYtPmRhdGEt Pm10dSArIFRYR0JFX0VUSF9PVkVSSEVBRCArCiAJCQkJMiAqIFRYR0JFX1ZMQU5fVEFHX1NJWkUp ID4gYnVmX3NpemUpIHsKZGlmZiBhL2RyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fZXRoZGV2LmMg Yi9kcml2ZXJzL25ldC92aXJ0aW8vdmlydGlvX2V0aGRldi5jCShyZWplY3RlZCBodW5rcykKQEAg LTIxMTQsMjAgKzIxMTQsMjAgQEAgdmlydGlvX2Rldl9jb25maWd1cmUoc3RydWN0IHJ0ZV9ldGhf ZGV2ICpkZXYpCiAKIAlody0+bWF4X3J4X3BrdF9sZW4gPSBldGhlcl9oZHJfbGVuICsgcnhtb2Rl LT5tdHU7CiAKLQlpZiAocnhfb2ZmbG9hZHMgJiAoREVWX1JYX09GRkxPQURfVURQX0NLU1VNIHwK LQkJCSAgIERFVl9SWF9PRkZMT0FEX1RDUF9DS1NVTSkpCisJaWYgKHJ4X29mZmxvYWRzICYgKFJU RV9FVEhfUlhfT0ZGTE9BRF9VRFBfQ0tTVU0gfAorCQkJICAgUlRFX0VUSF9SWF9PRkZMT0FEX1RD UF9DS1NVTSkpCiAJCXJlcV9mZWF0dXJlcyB8PSAoMVVMTCA8PCBWSVJUSU9fTkVUX0ZfR1VFU1Rf Q1NVTSk7CiAKLQlpZiAocnhfb2ZmbG9hZHMgJiBERVZfUlhfT0ZGTE9BRF9UQ1BfTFJPKQorCWlm IChyeF9vZmZsb2FkcyAmIFJURV9FVEhfUlhfT0ZGTE9BRF9UQ1BfTFJPKQogCQlyZXFfZmVhdHVy ZXMgfD0KIAkJCSgxVUxMIDw8IFZJUlRJT19ORVRfRl9HVUVTVF9UU080KSB8CiAJCQkoMVVMTCA8 PCBWSVJUSU9fTkVUX0ZfR1VFU1RfVFNPNik7CiAKLQlpZiAodHhfb2ZmbG9hZHMgJiAoREVWX1RY X09GRkxPQURfVURQX0NLU1VNIHwKLQkJCSAgIERFVl9UWF9PRkZMT0FEX1RDUF9DS1NVTSkpCisJ aWYgKHR4X29mZmxvYWRzICYgKFJURV9FVEhfVFhfT0ZGTE9BRF9VRFBfQ0tTVU0gfAorCQkJICAg UlRFX0VUSF9UWF9PRkZMT0FEX1RDUF9DS1NVTSkpCiAJCXJlcV9mZWF0dXJlcyB8PSAoMVVMTCA8 PCBWSVJUSU9fTkVUX0ZfQ1NVTSk7CiAKLQlpZiAodHhfb2ZmbG9hZHMgJiBERVZfVFhfT0ZGTE9B RF9UQ1BfVFNPKQorCWlmICh0eF9vZmZsb2FkcyAmIFJURV9FVEhfVFhfT0ZGTE9BRF9UQ1BfVFNP KQogCQlyZXFfZmVhdHVyZXMgfD0KIAkJCSgxVUxMIDw8IFZJUlRJT19ORVRfRl9IT1NUX1RTTzQp IHwKIAkJCSgxVUxMIDw8IFZJUlRJT19ORVRfRl9IT1NUX1RTTzYpOwpAQCAtMjU0OSwzMiArMjU0 OSwzMiBAQCB2aXJ0aW9fZGV2X2luZm9fZ2V0KHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCBzdHJ1 Y3QgcnRlX2V0aF9kZXZfaW5mbyAqZGV2X2luZm8pCiAJZGV2X2luZm8tPm1heF9tdHUgPSBody0+ bWF4X210dTsKIAogCWhvc3RfZmVhdHVyZXMgPSBWSVJUSU9fT1BTKGh3KS0+Z2V0X2ZlYXR1cmVz KGh3KTsKLQlkZXZfaW5mby0+cnhfb2ZmbG9hZF9jYXBhID0gREVWX1JYX09GRkxPQURfVkxBTl9T VFJJUDsKKwlkZXZfaW5mby0+cnhfb2ZmbG9hZF9jYXBhID0gUlRFX0VUSF9SWF9PRkZMT0FEX1ZM QU5fU1RSSVA7CiAJaWYgKGhvc3RfZmVhdHVyZXMgJiAoMVVMTCA8PCBWSVJUSU9fTkVUX0ZfTVJH X1JYQlVGKSkKLQkJZGV2X2luZm8tPnJ4X29mZmxvYWRfY2FwYSB8PSBERVZfUlhfT0ZGTE9BRF9T Q0FUVEVSOworCQlkZXZfaW5mby0+cnhfb2ZmbG9hZF9jYXBhIHw9IFJURV9FVEhfUlhfT0ZGTE9B RF9TQ0FUVEVSOwogCWlmIChob3N0X2ZlYXR1cmVzICYgKDFVTEwgPDwgVklSVElPX05FVF9GX0dV RVNUX0NTVU0pKSB7CiAJCWRldl9pbmZvLT5yeF9vZmZsb2FkX2NhcGEgfD0KLQkJCURFVl9SWF9P RkZMT0FEX1RDUF9DS1NVTSB8Ci0JCQlERVZfUlhfT0ZGTE9BRF9VRFBfQ0tTVU07CisJCQlSVEVf RVRIX1JYX09GRkxPQURfVENQX0NLU1VNIHwKKwkJCVJURV9FVEhfUlhfT0ZGTE9BRF9VRFBfQ0tT VU07CiAJfQogCWlmIChob3N0X2ZlYXR1cmVzICYgKDFVTEwgPDwgVklSVElPX05FVF9GX0NUUkxf VkxBTikpCi0JCWRldl9pbmZvLT5yeF9vZmZsb2FkX2NhcGEgfD0gREVWX1JYX09GRkxPQURfVkxB Tl9GSUxURVI7CisJCWRldl9pbmZvLT5yeF9vZmZsb2FkX2NhcGEgfD0gUlRFX0VUSF9SWF9PRkZM T0FEX1ZMQU5fRklMVEVSOwogCXRzb19tYXNrID0gKDFVTEwgPDwgVklSVElPX05FVF9GX0dVRVNU X1RTTzQpIHwKIAkJKDFVTEwgPDwgVklSVElPX05FVF9GX0dVRVNUX1RTTzYpOwogCWlmICgoaG9z dF9mZWF0dXJlcyAmIHRzb19tYXNrKSA9PSB0c29fbWFzaykKLQkJZGV2X2luZm8tPnJ4X29mZmxv YWRfY2FwYSB8PSBERVZfUlhfT0ZGTE9BRF9UQ1BfTFJPOworCQlkZXZfaW5mby0+cnhfb2ZmbG9h ZF9jYXBhIHw9IFJURV9FVEhfUlhfT0ZGTE9BRF9UQ1BfTFJPOwogCi0JZGV2X2luZm8tPnR4X29m ZmxvYWRfY2FwYSA9IERFVl9UWF9PRkZMT0FEX01VTFRJX1NFR1MgfAotCQkJCSAgICBERVZfVFhf T0ZGTE9BRF9WTEFOX0lOU0VSVDsKKwlkZXZfaW5mby0+dHhfb2ZmbG9hZF9jYXBhID0gUlRFX0VU SF9UWF9PRkZMT0FEX01VTFRJX1NFR1MgfAorCQkJCSAgICBSVEVfRVRIX1RYX09GRkxPQURfVkxB Tl9JTlNFUlQ7CiAJaWYgKGhvc3RfZmVhdHVyZXMgJiAoMVVMTCA8PCBWSVJUSU9fTkVUX0ZfQ1NV TSkpIHsKIAkJZGV2X2luZm8tPnR4X29mZmxvYWRfY2FwYSB8PQotCQkJREVWX1RYX09GRkxPQURf VURQX0NLU1VNIHwKLQkJCURFVl9UWF9PRkZMT0FEX1RDUF9DS1NVTTsKKwkJCVJURV9FVEhfVFhf T0ZGTE9BRF9VRFBfQ0tTVU0gfAorCQkJUlRFX0VUSF9UWF9PRkZMT0FEX1RDUF9DS1NVTTsKIAl9 CiAJdHNvX21hc2sgPSAoMVVMTCA8PCBWSVJUSU9fTkVUX0ZfSE9TVF9UU080KSB8CiAJCSgxVUxM IDw8IFZJUlRJT19ORVRfRl9IT1NUX1RTTzYpOwogCWlmICgoaG9zdF9mZWF0dXJlcyAmIHRzb19t YXNrKSA9PSB0c29fbWFzaykKLQkJZGV2X2luZm8tPnR4X29mZmxvYWRfY2FwYSB8PSBERVZfVFhf T0ZGTE9BRF9UQ1BfVFNPOworCQlkZXZfaW5mby0+dHhfb2ZmbG9hZF9jYXBhIHw9IFJURV9FVEhf VFhfT0ZGTE9BRF9UQ1BfVFNPOwogCiAJaWYgKGhvc3RfZmVhdHVyZXMgJiAoMVVMTCA8PCBWSVJU SU9fRl9SSU5HX1BBQ0tFRCkpIHsKIAkJLyoKZGlmZiBhL2RyaXZlcnMvbmV0L3ZteG5ldDMvdm14 bmV0M19ldGhkZXYuYyBiL2RyaXZlcnMvbmV0L3ZteG5ldDMvdm14bmV0M19ldGhkZXYuYwkocmVq ZWN0ZWQgaHVua3MpCkBAIC00MSwyMCArNDEsMjAgQEAKICNkZWZpbmUJVk1YTkVUM19UWF9NQVhf U0VHCVVJTlQ4X01BWAogCiAjZGVmaW5lIFZNWE5FVDNfVFhfT0ZGTE9BRF9DQVAJCVwKLQkoREVW X1RYX09GRkxPQURfVkxBTl9JTlNFUlQgfAlcCi0JIERFVl9UWF9PRkZMT0FEX1RDUF9DS1NVTSB8 CVwKLQkgREVWX1RYX09GRkxPQURfVURQX0NLU1VNIHwJXAotCSBERVZfVFhfT0ZGTE9BRF9UQ1Bf VFNPIHwJXAotCSBERVZfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTKQorCShSVEVfRVRIX1RYX09GRkxP QURfVkxBTl9JTlNFUlQgfAlcCisJIFJURV9FVEhfVFhfT0ZGTE9BRF9UQ1BfQ0tTVU0gfAlcCisJ IFJURV9FVEhfVFhfT0ZGTE9BRF9VRFBfQ0tTVU0gfAlcCisJIFJURV9FVEhfVFhfT0ZGTE9BRF9U Q1BfVFNPIHwJXAorCSBSVEVfRVRIX1RYX09GRkxPQURfTVVMVElfU0VHUykKIAogI2RlZmluZSBW TVhORVQzX1JYX09GRkxPQURfQ0FQCQlcCi0JKERFVl9SWF9PRkZMT0FEX1ZMQU5fU1RSSVAgfAlc Ci0JIERFVl9SWF9PRkZMT0FEX1ZMQU5fRklMVEVSIHwgICBcCi0JIERFVl9SWF9PRkZMT0FEX1ND QVRURVIgfAlcCi0JIERFVl9SWF9PRkZMT0FEX1VEUF9DS1NVTSB8CVwKLQkgREVWX1JYX09GRkxP QURfVENQX0NLU1VNIHwJXAotCSBERVZfUlhfT0ZGTE9BRF9UQ1BfTFJPIHwJXAotCSBERVZfUlhf T0ZGTE9BRF9SU1NfSEFTSCkKKwkoUlRFX0VUSF9SWF9PRkZMT0FEX1ZMQU5fU1RSSVAgfAlcCisJ IFJURV9FVEhfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUiB8ICAgXAorCSBSVEVfRVRIX1JYX09GRkxP QURfU0NBVFRFUiB8CVwKKwkgUlRFX0VUSF9SWF9PRkZMT0FEX1VEUF9DS1NVTSB8CVwKKwkgUlRF X0VUSF9SWF9PRkZMT0FEX1RDUF9DS1NVTSB8CVwKKwkgUlRFX0VUSF9SWF9PRkZMT0FEX1RDUF9M Uk8gfAlcCisJIFJURV9FVEhfUlhfT0ZGTE9BRF9SU1NfSEFTSCkKIAogaW50IHZteG5ldDNfc2Vn c19keW5maWVsZF9vZmZzZXQgPSAtMTsKIApkaWZmIGEvZXhhbXBsZXMvYmJkZXZfYXBwL21haW4u YyBiL2V4YW1wbGVzL2JiZGV2X2FwcC9tYWluLmMJKHJlamVjdGVkIGh1bmtzKQpAQCAtNzAsMTEg KzcwLDExIEBAIG1idWZfaW5wdXQoc3RydWN0IHJ0ZV9tYnVmICptYnVmKQogCiBzdGF0aWMgY29u c3Qgc3RydWN0IHJ0ZV9ldGhfY29uZiBwb3J0X2NvbmYgPSB7CiAJLnJ4bW9kZSA9IHsKLQkJLm1x X21vZGUgPSBFVEhfTVFfUlhfTk9ORSwKKwkJLm1xX21vZGUgPSBSVEVfRVRIX01RX1JYX05PTkUs CiAJCS5zcGxpdF9oZHJfc2l6ZSA9IDAsCiAJfSwKIAkudHhtb2RlID0gewotCQkubXFfbW9kZSA9 IEVUSF9NUV9UWF9OT05FLAorCQkubXFfbW9kZSA9IFJURV9FVEhfTVFfVFhfTk9ORSwKIAl9LAog fTsKIApkaWZmIGEvZXhhbXBsZXMvYm9uZC9tYWluLmMgYi9leGFtcGxlcy9ib25kL21haW4uYwko cmVqZWN0ZWQgaHVua3MpCkBAIC0xMTQsMTcgKzExNCwxNyBAQCBzdGF0aWMgc3RydWN0IHJ0ZV9t ZW1wb29sICptYnVmX3Bvb2w7CiAKIHN0YXRpYyBzdHJ1Y3QgcnRlX2V0aF9jb25mIHBvcnRfY29u ZiA9IHsKIAkucnhtb2RlID0gewotCQkubXFfbW9kZSA9IEVUSF9NUV9SWF9OT05FLAorCQkubXFf bW9kZSA9IFJURV9FVEhfTVFfUlhfTk9ORSwKIAkJLnNwbGl0X2hkcl9zaXplID0gMCwKIAl9LAog CS5yeF9hZHZfY29uZiA9IHsKIAkJLnJzc19jb25mID0gewogCQkJLnJzc19rZXkgPSBOVUxMLAot CQkJLnJzc19oZiA9IEVUSF9SU1NfSVAsCisJCQkucnNzX2hmID0gUlRFX0VUSF9SU1NfSVAsCiAJ CX0sCiAJfSwKIAkudHhtb2RlID0gewotCQkubXFfbW9kZSA9IEVUSF9NUV9UWF9OT05FLAorCQku bXFfbW9kZSA9IFJURV9FVEhfTVFfVFhfTk9ORSwKIAl9LAogfTsKIApkaWZmIGEvZXhhbXBsZXMv ZGlzdHJpYnV0b3IvbWFpbi5jIGIvZXhhbXBsZXMvZGlzdHJpYnV0b3IvbWFpbi5jCShyZWplY3Rl ZCBodW5rcykKQEAgLTgwLDE1ICs4MCwxNSBAQCBzdHJ1Y3QgYXBwX3N0YXRzIHByZXZfYXBwX3N0 YXRzOwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IHJ0ZV9ldGhfY29uZiBwb3J0X2NvbmZfZGVmYXVs dCA9IHsKIAkucnhtb2RlID0gewotCQkubXFfbW9kZSA9IEVUSF9NUV9SWF9SU1MsCisJCS5tcV9t b2RlID0gUlRFX0VUSF9NUV9SWF9SU1MsCiAJfSwKIAkudHhtb2RlID0gewotCQkubXFfbW9kZSA9 IEVUSF9NUV9UWF9OT05FLAorCQkubXFfbW9kZSA9IFJURV9FVEhfTVFfVFhfTk9ORSwKIAl9LAog CS5yeF9hZHZfY29uZiA9IHsKIAkJLnJzc19jb25mID0gewotCQkJLnJzc19oZiA9IEVUSF9SU1Nf SVAgfCBFVEhfUlNTX1VEUCB8Ci0JCQkJRVRIX1JTU19UQ1AgfCBFVEhfUlNTX1NDVFAsCisJCQku cnNzX2hmID0gUlRFX0VUSF9SU1NfSVAgfCBSVEVfRVRIX1JTU19VRFAgfAorCQkJCVJURV9FVEhf UlNTX1RDUCB8IFJURV9FVEhfUlNTX1NDVFAsCiAJCX0KIAl9LAogfTsKZGlmZiBhL2V4YW1wbGVz L2V2ZW50ZGV2X3BpcGVsaW5lL3BpcGVsaW5lX3dvcmtlcl9nZW5lcmljLmMgYi9leGFtcGxlcy9l dmVudGRldl9waXBlbGluZS9waXBlbGluZV93b3JrZXJfZ2VuZXJpYy5jCShyZWplY3RlZCBodW5r cykKQEAgLTI4MywxMyArMjgzLDEzIEBAIHBvcnRfaW5pdCh1aW50OF90IHBvcnQsIHN0cnVjdCBy dGVfbWVtcG9vbCAqbWJ1Zl9wb29sKQogCXN0cnVjdCBydGVfZXRoX3J4Y29uZiByeF9jb25mOwog CXN0YXRpYyBjb25zdCBzdHJ1Y3QgcnRlX2V0aF9jb25mIHBvcnRfY29uZl9kZWZhdWx0ID0gewog CQkucnhtb2RlID0gewotCQkJLm1xX21vZGUgPSBFVEhfTVFfUlhfUlNTLAorCQkJLm1xX21vZGUg PSBSVEVfRVRIX01RX1JYX1JTUywKIAkJfSwKIAkJLnJ4X2Fkdl9jb25mID0gewogCQkJLnJzc19j b25mID0gewotCQkJCS5yc3NfaGYgPSBFVEhfUlNTX0lQIHwKLQkJCQkJICBFVEhfUlNTX1RDUCB8 Ci0JCQkJCSAgRVRIX1JTU19VRFAsCisJCQkJLnJzc19oZiA9IFJURV9FVEhfUlNTX0lQIHwKKwkJ CQkJICBSVEVfRVRIX1JTU19UQ1AgfAorCQkJCQkgIFJURV9FVEhfUlNTX1VEUCwKIAkJCX0KIAkJ fQogCX07CmRpZmYgYS9leGFtcGxlcy9ldmVudGRldl9waXBlbGluZS9waXBlbGluZV93b3JrZXJf dHguYyBiL2V4YW1wbGVzL2V2ZW50ZGV2X3BpcGVsaW5lL3BpcGVsaW5lX3dvcmtlcl90eC5jCShy ZWplY3RlZCBodW5rcykKQEAgLTYxNCwxMyArNjE0LDEzIEBAIHBvcnRfaW5pdCh1aW50OF90IHBv cnQsIHN0cnVjdCBydGVfbWVtcG9vbCAqbWJ1Zl9wb29sKQogCXN0cnVjdCBydGVfZXRoX3J4Y29u ZiByeF9jb25mOwogCXN0YXRpYyBjb25zdCBzdHJ1Y3QgcnRlX2V0aF9jb25mIHBvcnRfY29uZl9k ZWZhdWx0ID0gewogCQkucnhtb2RlID0gewotCQkJLm1xX21vZGUgPSBFVEhfTVFfUlhfUlNTLAor CQkJLm1xX21vZGUgPSBSVEVfRVRIX01RX1JYX1JTUywKIAkJfSwKIAkJLnJ4X2Fkdl9jb25mID0g ewogCQkJLnJzc19jb25mID0gewotCQkJCS5yc3NfaGYgPSBFVEhfUlNTX0lQIHwKLQkJCQkJICBF VEhfUlNTX1RDUCB8Ci0JCQkJCSAgRVRIX1JTU19VRFAsCisJCQkJLnJzc19oZiA9IFJURV9FVEhf UlNTX0lQIHwKKwkJCQkJICBSVEVfRVRIX1JTU19UQ1AgfAorCQkJCQkgIFJURV9FVEhfUlNTX1VE UCwKIAkJCX0KIAkJfQogCX07CmRpZmYgYS9leGFtcGxlcy9pb2F0L2lvYXRmd2QuYyBiL2V4YW1w bGVzL2lvYXQvaW9hdGZ3ZC5jCShyZWplY3RlZCBodW5rcykKQEAgLTgxOSwxMiArODE5LDEyIEBA IHBvcnRfaW5pdCh1aW50MTZfdCBwb3J0aWQsIHN0cnVjdCBydGVfbWVtcG9vbCAqbWJ1Zl9wb29s LCB1aW50MTZfdCBuYl9xdWV1ZXMpCiAJLyogQ29uZmlndXJpbmcgcG9ydCB0byB1c2UgUlNTIGZv ciBtdWx0aXBsZSBSWCBxdWV1ZXMuIDg8ICovCiAJc3RhdGljIGNvbnN0IHN0cnVjdCBydGVfZXRo X2NvbmYgcG9ydF9jb25mID0gewogCQkucnhtb2RlID0gewotCQkJLm1xX21vZGUgPSBFVEhfTVFf UlhfUlNTLAorCQkJLm1xX21vZGUgPSBSVEVfRVRIX01RX1JYX1JTUywKIAkJfSwKIAkJLnJ4X2Fk dl9jb25mID0gewogCQkJLnJzc19jb25mID0gewogCQkJCS5yc3Nfa2V5ID0gTlVMTCwKLQkJCQku cnNzX2hmID0gRVRIX1JTU19QUk9UT19NQVNLLAorCQkJCS5yc3NfaGYgPSBSVEVfRVRIX1JTU19Q Uk9UT19NQVNLLAogCQkJfQogCQl9CiAJfTsKZGlmZiBhL2V4YW1wbGVzL2lwX2ZyYWdtZW50YXRp b24vbWFpbi5jIGIvZXhhbXBsZXMvaXBfZnJhZ21lbnRhdGlvbi9tYWluLmMJKHJlamVjdGVkIGh1 bmtzKQpAQCAtMTQ4LDEzICsxNDgsMTMgQEAgc3RhdGljIHN0cnVjdCBydGVfZXRoX2NvbmYgcG9y dF9jb25mID0gewogCQkubXR1ID0gSlVNQk9fRlJBTUVfTUFYX1NJWkUgLSBSVEVfRVRIRVJfSERS X0xFTiAtCiAJCQlSVEVfRVRIRVJfQ1JDX0xFTiwKIAkJLnNwbGl0X2hkcl9zaXplID0gMCwKLQkJ Lm9mZmxvYWRzID0gKERFVl9SWF9PRkZMT0FEX0NIRUNLU1VNIHwKLQkJCSAgICAgREVWX1JYX09G RkxPQURfU0NBVFRFUiksCisJCS5vZmZsb2FkcyA9IChSVEVfRVRIX1JYX09GRkxPQURfQ0hFQ0tT VU0gfAorCQkJICAgICBSVEVfRVRIX1JYX09GRkxPQURfU0NBVFRFUiksCiAJfSwKIAkudHhtb2Rl ID0gewotCQkubXFfbW9kZSA9IEVUSF9NUV9UWF9OT05FLAotCQkub2ZmbG9hZHMgPSAoREVWX1RY X09GRkxPQURfSVBWNF9DS1NVTSB8Ci0JCQkgICAgIERFVl9UWF9PRkZMT0FEX01VTFRJX1NFR1Mp LAorCQkubXFfbW9kZSA9IFJURV9FVEhfTVFfVFhfTk9ORSwKKwkJLm9mZmxvYWRzID0gKFJURV9F VEhfVFhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwKKwkJCSAgICAgUlRFX0VUSF9UWF9PRkZMT0FEX01V TFRJX1NFR1MpLAogCX0sCiB9OwogCmRpZmYgYS9leGFtcGxlcy9pcF9waXBlbGluZS9saW5rLmMg Yi9leGFtcGxlcy9pcF9waXBlbGluZS9saW5rLmMJKHJlamVjdGVkIGh1bmtzKQpAQCAtNDUsNyAr NDUsNyBAQCBsaW5rX25leHQoc3RydWN0IGxpbmsgKmxpbmspCiBzdGF0aWMgc3RydWN0IHJ0ZV9l dGhfY29uZiBwb3J0X2NvbmZfZGVmYXVsdCA9IHsKIAkubGlua19zcGVlZHMgPSAwLAogCS5yeG1v ZGUgPSB7Ci0JCS5tcV9tb2RlID0gRVRIX01RX1JYX05PTkUsCisJCS5tcV9tb2RlID0gUlRFX0VU SF9NUV9SWF9OT05FLAogCQkubXR1ID0gOTAwMCAtIChSVEVfRVRIRVJfSERSX0xFTiArIFJURV9F VEhFUl9DUkNfTEVOKSwgLyogSnVtYm8gZnJhbWUgTVRVICovCiAJCS5zcGxpdF9oZHJfc2l6ZSA9 IDAsIC8qIEhlYWRlciBzcGxpdCBidWZmZXIgc2l6ZSAqLwogCX0sCmRpZmYgYS9leGFtcGxlcy9p cF9yZWFzc2VtYmx5L21haW4uYyBiL2V4YW1wbGVzL2lwX3JlYXNzZW1ibHkvbWFpbi5jCShyZWpl Y3RlZCBodW5rcykKQEAgLTE2MCwyMiArMTYwLDIyIEBAIHN0YXRpYyBzdHJ1Y3QgbGNvcmVfcXVl dWVfY29uZiBsY29yZV9xdWV1ZV9jb25mW1JURV9NQVhfTENPUkVdOwogCiBzdGF0aWMgc3RydWN0 IHJ0ZV9ldGhfY29uZiBwb3J0X2NvbmYgPSB7CiAJLnJ4bW9kZSA9IHsKLQkJLm1xX21vZGUgICAg ICAgID0gRVRIX01RX1JYX1JTUywKKwkJLm1xX21vZGUgICAgICAgID0gUlRFX0VUSF9NUV9SWF9S U1MsCiAJCS5tdHUgPSBKVU1CT19GUkFNRV9NQVhfU0laRSAtIFJURV9FVEhFUl9IRFJfTEVOIC0K IAkJCVJURV9FVEhFUl9DUkNfTEVOLAogCQkuc3BsaXRfaGRyX3NpemUgPSAwLAotCQkub2ZmbG9h ZHMgPSBERVZfUlhfT0ZGTE9BRF9DSEVDS1NVTSwKKwkJLm9mZmxvYWRzID0gUlRFX0VUSF9SWF9P RkZMT0FEX0NIRUNLU1VNLAogCX0sCiAJLnJ4X2Fkdl9jb25mID0gewogCQkJLnJzc19jb25mID0g ewogCQkJCS5yc3Nfa2V5ID0gTlVMTCwKLQkJCQkucnNzX2hmID0gRVRIX1JTU19JUCwKKwkJCQku cnNzX2hmID0gUlRFX0VUSF9SU1NfSVAsCiAJCX0sCiAJfSwKIAkudHhtb2RlID0gewotCQkubXFf bW9kZSA9IEVUSF9NUV9UWF9OT05FLAotCQkub2ZmbG9hZHMgPSAoREVWX1RYX09GRkxPQURfSVBW NF9DS1NVTSB8Ci0JCQkgICAgIERFVl9UWF9PRkZMT0FEX01VTFRJX1NFR1MpLAorCQkubXFfbW9k ZSA9IFJURV9FVEhfTVFfVFhfTk9ORSwKKwkJLm9mZmxvYWRzID0gKFJURV9FVEhfVFhfT0ZGTE9B RF9JUFY0X0NLU1VNIHwKKwkJCSAgICAgUlRFX0VUSF9UWF9PRkZMT0FEX01VTFRJX1NFR1MpLAog CX0sCiB9OwogCmRpZmYgYS9leGFtcGxlcy9pcHNlYy1zZWNndy9pcHNlYy1zZWNndy5jIGIvZXhh bXBsZXMvaXBzZWMtc2VjZ3cvaXBzZWMtc2VjZ3cuYwkocmVqZWN0ZWQgaHVua3MpCkBAIC0yMzMs MTkgKzIzMywxOSBAQCBzdGF0aWMgc3RydWN0IGxjb3JlX2NvbmYgbGNvcmVfY29uZltSVEVfTUFY X0xDT1JFXTsKIAogc3RhdGljIHN0cnVjdCBydGVfZXRoX2NvbmYgcG9ydF9jb25mID0gewogCS5y eG1vZGUgPSB7Ci0JCS5tcV9tb2RlCT0gRVRIX01RX1JYX1JTUywKKwkJLm1xX21vZGUJPSBSVEVf RVRIX01RX1JYX1JTUywKIAkJLnNwbGl0X2hkcl9zaXplID0gMCwKLQkJLm9mZmxvYWRzID0gREVW X1JYX09GRkxPQURfQ0hFQ0tTVU0sCisJCS5vZmZsb2FkcyA9IFJURV9FVEhfUlhfT0ZGTE9BRF9D SEVDS1NVTSwKIAl9LAogCS5yeF9hZHZfY29uZiA9IHsKIAkJLnJzc19jb25mID0gewogCQkJLnJz c19rZXkgPSBOVUxMLAotCQkJLnJzc19oZiA9IEVUSF9SU1NfSVAgfCBFVEhfUlNTX1VEUCB8Ci0J CQkJRVRIX1JTU19UQ1AgfCBFVEhfUlNTX1NDVFAsCisJCQkucnNzX2hmID0gUlRFX0VUSF9SU1Nf SVAgfCBSVEVfRVRIX1JTU19VRFAgfAorCQkJCVJURV9FVEhfUlNTX1RDUCB8IFJURV9FVEhfUlNT X1NDVFAsCiAJCX0sCiAJfSwKIAkudHhtb2RlID0gewotCQkubXFfbW9kZSA9IEVUSF9NUV9UWF9O T05FLAorCQkubXFfbW9kZSA9IFJURV9FVEhfTVFfVFhfTk9ORSwKIAl9LAogfTsKIApAQCAtMjIw MSw4ICsyMjAxLDggQEAgcG9ydF9pbml0KHVpbnQxNl90IHBvcnRpZCwgdWludDY0X3QgcmVxX3J4 X29mZmxvYWRzLCB1aW50NjRfdCByZXFfdHhfb2ZmbG9hZHMpCiAJbG9jYWxfcG9ydF9jb25mLnJ4 bW9kZS5tdHUgPSBtdHVfc2l6ZTsKIAogCWlmIChtdWx0aV9zZWdfcmVxdWlyZWQoKSkgewotCQls b2NhbF9wb3J0X2NvbmYucnhtb2RlLm9mZmxvYWRzIHw9IERFVl9SWF9PRkZMT0FEX1NDQVRURVI7 Ci0JCWxvY2FsX3BvcnRfY29uZi50eG1vZGUub2ZmbG9hZHMgfD0gREVWX1RYX09GRkxPQURfTVVM VElfU0VHUzsKKwkJbG9jYWxfcG9ydF9jb25mLnJ4bW9kZS5vZmZsb2FkcyB8PSBSVEVfRVRIX1JY X09GRkxPQURfU0NBVFRFUjsKKwkJbG9jYWxfcG9ydF9jb25mLnR4bW9kZS5vZmZsb2FkcyB8PSBS VEVfRVRIX1RYX09GRkxPQURfTVVMVElfU0VHUzsKIAl9CiAKIAlsb2NhbF9wb3J0X2NvbmYucnht b2RlLm9mZmxvYWRzIHw9IHJlcV9yeF9vZmZsb2FkczsKZGlmZiBhL2V4YW1wbGVzL2lwdjRfbXVs dGljYXN0L21haW4uYyBiL2V4YW1wbGVzL2lwdjRfbXVsdGljYXN0L21haW4uYwkocmVqZWN0ZWQg aHVua3MpCkBAIC0xMTQsOCArMTE0LDggQEAgc3RhdGljIHN0cnVjdCBydGVfZXRoX2NvbmYgcG9y dF9jb25mID0gewogCQkuc3BsaXRfaGRyX3NpemUgPSAwLAogCX0sCiAJLnR4bW9kZSA9IHsKLQkJ Lm1xX21vZGUgPSBFVEhfTVFfVFhfTk9ORSwKLQkJLm9mZmxvYWRzID0gREVWX1RYX09GRkxPQURf TVVMVElfU0VHUywKKwkJLm1xX21vZGUgPSBSVEVfRVRIX01RX1RYX05PTkUsCisJCS5vZmZsb2Fk cyA9IFJURV9FVEhfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTLAogCX0sCiB9OwogCmRpZmYgYS9leGFt cGxlcy9sMmZ3ZC1jcnlwdG8vbWFpbi5jIGIvZXhhbXBsZXMvbDJmd2QtY3J5cHRvL21haW4uYwko cmVqZWN0ZWQgaHVua3MpCkBAIC0yMTUsMTEgKzIxNSwxMSBAQCBzdHJ1Y3QgbGNvcmVfcXVldWVf Y29uZiBsY29yZV9xdWV1ZV9jb25mW1JURV9NQVhfTENPUkVdOwogCiBzdGF0aWMgc3RydWN0IHJ0 ZV9ldGhfY29uZiBwb3J0X2NvbmYgPSB7CiAJLnJ4bW9kZSA9IHsKLQkJLm1xX21vZGUgPSBFVEhf TVFfUlhfTk9ORSwKKwkJLm1xX21vZGUgPSBSVEVfRVRIX01RX1JYX05PTkUsCiAJCS5zcGxpdF9o ZHJfc2l6ZSA9IDAsCiAJfSwKIAkudHhtb2RlID0gewotCQkubXFfbW9kZSA9IEVUSF9NUV9UWF9O T05FLAorCQkubXFfbW9kZSA9IFJURV9FVEhfTVFfVFhfTk9ORSwKIAl9LAogfTsKIApkaWZmIGEv ZXhhbXBsZXMvbDNmd2QtYWNsL21haW4uYyBiL2V4YW1wbGVzL2wzZndkLWFjbC9tYWluLmMJKHJl amVjdGVkIGh1bmtzKQpAQCAtMTIzLDE5ICsxMjMsMTkgQEAgc3RhdGljIHVpbnQxNl90IG5iX2xj b3JlX3BhcmFtcyA9IHNpemVvZihsY29yZV9wYXJhbXNfYXJyYXlfZGVmYXVsdCkgLwogCiBzdGF0 aWMgc3RydWN0IHJ0ZV9ldGhfY29uZiBwb3J0X2NvbmYgPSB7CiAJLnJ4bW9kZSA9IHsKLQkJLm1x X21vZGUJPSBFVEhfTVFfUlhfUlNTLAorCQkubXFfbW9kZQk9IFJURV9FVEhfTVFfUlhfUlNTLAog CQkuc3BsaXRfaGRyX3NpemUgPSAwLAotCQkub2ZmbG9hZHMgPSBERVZfUlhfT0ZGTE9BRF9DSEVD S1NVTSwKKwkJLm9mZmxvYWRzID0gUlRFX0VUSF9SWF9PRkZMT0FEX0NIRUNLU1VNLAogCX0sCiAJ LnJ4X2Fkdl9jb25mID0gewogCQkucnNzX2NvbmYgPSB7CiAJCQkucnNzX2tleSA9IE5VTEwsCi0J CQkucnNzX2hmID0gRVRIX1JTU19JUCB8IEVUSF9SU1NfVURQIHwKLQkJCQlFVEhfUlNTX1RDUCB8 IEVUSF9SU1NfU0NUUCwKKwkJCS5yc3NfaGYgPSBSVEVfRVRIX1JTU19JUCB8IFJURV9FVEhfUlNT X1VEUCB8CisJCQkJUlRFX0VUSF9SU1NfVENQIHwgUlRFX0VUSF9SU1NfU0NUUCwKIAkJfSwKIAl9 LAogCS50eG1vZGUgPSB7Ci0JCS5tcV9tb2RlID0gRVRIX01RX1RYX05PTkUsCisJCS5tcV9tb2Rl ID0gUlRFX0VUSF9NUV9UWF9OT05FLAogCX0sCiB9OwogCkBAIC0yMDAzLDcgKzIwMDMsNyBAQCBj b25maWdfcG9ydF9tYXhfcGt0X2xlbihzdHJ1Y3QgcnRlX2V0aF9jb25mICpjb25mLAogCWNvbmYt PnJ4bW9kZS5tdHUgPSBtYXhfcGt0X2xlbiAtIG92ZXJoZWFkX2xlbjsKIAogCWlmIChjb25mLT5y eG1vZGUubXR1ID4gUlRFX0VUSEVSX01UVSkKLQkJY29uZi0+dHhtb2RlLm9mZmxvYWRzIHw9IERF Vl9UWF9PRkZMT0FEX01VTFRJX1NFR1M7CisJCWNvbmYtPnR4bW9kZS5vZmZsb2FkcyB8PSBSVEVf RVRIX1RYX09GRkxPQURfTVVMVElfU0VHUzsKIAogCXJldHVybiAwOwogfQpAQCAtMjA4Nyw5ICsy MDg3LDkgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJCQkJIkludmFsaWQgbWF4IHBh Y2tldCBsZW5ndGg6ICV1IChwb3J0ICV1KVxuIiwKIAkJCQltYXhfcGt0X2xlbiwgcG9ydGlkKTsK IAotCQlpZiAoZGV2X2luZm8udHhfb2ZmbG9hZF9jYXBhICYgREVWX1RYX09GRkxPQURfTUJVRl9G QVNUX0ZSRUUpCisJCWlmIChkZXZfaW5mby50eF9vZmZsb2FkX2NhcGEgJiBSVEVfRVRIX1RYX09G RkxPQURfTUJVRl9GQVNUX0ZSRUUpCiAJCQlsb2NhbF9wb3J0X2NvbmYudHhtb2RlLm9mZmxvYWRz IHw9Ci0JCQkJREVWX1RYX09GRkxPQURfTUJVRl9GQVNUX0ZSRUU7CisJCQkJUlRFX0VUSF9UWF9P RkZMT0FEX01CVUZfRkFTVF9GUkVFOwogCiAJCWxvY2FsX3BvcnRfY29uZi5yeF9hZHZfY29uZi5y c3NfY29uZi5yc3NfaGYgJj0KIAkJCWRldl9pbmZvLmZsb3dfdHlwZV9yc3Nfb2ZmbG9hZHM7CmRp ZmYgYS9leGFtcGxlcy9sM2Z3ZC1ncmFwaC9tYWluLmMgYi9leGFtcGxlcy9sM2Z3ZC1ncmFwaC9t YWluLmMJKHJlamVjdGVkIGh1bmtzKQpAQCAtMTExLDE3ICsxMTEsMTcgQEAgc3RhdGljIHVpbnQx Nl90IG5iX2xjb3JlX3BhcmFtcyA9IFJURV9ESU0obGNvcmVfcGFyYW1zX2FycmF5X2RlZmF1bHQp OwogCiBzdGF0aWMgc3RydWN0IHJ0ZV9ldGhfY29uZiBwb3J0X2NvbmYgPSB7CiAJLnJ4bW9kZSA9 IHsKLQkJLm1xX21vZGUgPSBFVEhfTVFfUlhfUlNTLAorCQkubXFfbW9kZSA9IFJURV9FVEhfTVFf UlhfUlNTLAogCQkuc3BsaXRfaGRyX3NpemUgPSAwLAogCX0sCiAJLnJ4X2Fkdl9jb25mID0gewog CQkucnNzX2NvbmYgPSB7CiAJCQkJLnJzc19rZXkgPSBOVUxMLAotCQkJCS5yc3NfaGYgPSBFVEhf UlNTX0lQLAorCQkJCS5yc3NfaGYgPSBSVEVfRVRIX1JTU19JUCwKIAkJfSwKIAl9LAogCS50eG1v ZGUgPSB7Ci0JCS5tcV9tb2RlID0gRVRIX01RX1RYX05PTkUsCisJCS5tcV9tb2RlID0gUlRFX0VU SF9NUV9UWF9OT05FLAogCX0sCiB9OwogCkBAIC03MzEsNyArNzMxLDcgQEAgY29uZmlnX3BvcnRf bWF4X3BrdF9sZW4oc3RydWN0IHJ0ZV9ldGhfY29uZiAqY29uZiwKIAljb25mLT5yeG1vZGUubXR1 ID0gbWF4X3BrdF9sZW4gLSBvdmVyaGVhZF9sZW47CiAKIAlpZiAoY29uZi0+cnhtb2RlLm10dSA+ IFJURV9FVEhFUl9NVFUpCi0JCWNvbmYtPnR4bW9kZS5vZmZsb2FkcyB8PSBERVZfVFhfT0ZGTE9B RF9NVUxUSV9TRUdTOworCQljb25mLT50eG1vZGUub2ZmbG9hZHMgfD0gUlRFX0VUSF9UWF9PRkZM T0FEX01VTFRJX1NFR1M7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTgyOCw5ICs4MjgsOSBAQCBtYWlu KGludCBhcmdjLCBjaGFyICoqYXJndikKIAkJCQkiSW52YWxpZCBtYXggcGFja2V0IGxlbmd0aDog JXUgKHBvcnQgJXUpXG4iLAogCQkJCW1heF9wa3RfbGVuLCBwb3J0aWQpOwogCi0JCWlmIChkZXZf aW5mby50eF9vZmZsb2FkX2NhcGEgJiBERVZfVFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJFRSkKKwkJ aWYgKGRldl9pbmZvLnR4X29mZmxvYWRfY2FwYSAmIFJURV9FVEhfVFhfT0ZGTE9BRF9NQlVGX0ZB U1RfRlJFRSkKIAkJCWxvY2FsX3BvcnRfY29uZi50eG1vZGUub2ZmbG9hZHMgfD0KLQkJCQlERVZf VFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJFRTsKKwkJCQlSVEVfRVRIX1RYX09GRkxPQURfTUJVRl9G QVNUX0ZSRUU7CiAKIAkJbG9jYWxfcG9ydF9jb25mLnJ4X2Fkdl9jb25mLnJzc19jb25mLnJzc19o ZiAmPQogCQkJZGV2X2luZm8uZmxvd190eXBlX3Jzc19vZmZsb2FkczsKZGlmZiBhL2V4YW1wbGVz L2wzZndkLXBvd2VyL21haW4uYyBiL2V4YW1wbGVzL2wzZndkLXBvd2VyL21haW4uYwkocmVqZWN0 ZWQgaHVua3MpCkBAIC0yNDksMTggKzI0OSwxOCBAQCB1aW50MTZfdCBuYl9sY29yZV9wYXJhbXMg PSBSVEVfRElNKGxjb3JlX3BhcmFtc19hcnJheV9kZWZhdWx0KTsKIAogc3RhdGljIHN0cnVjdCBy dGVfZXRoX2NvbmYgcG9ydF9jb25mID0gewogCS5yeG1vZGUgPSB7Ci0JCS5tcV9tb2RlICAgICAg ICA9IEVUSF9NUV9SWF9SU1MsCisJCS5tcV9tb2RlICAgICAgICA9IFJURV9FVEhfTVFfUlhfUlNT LAogCQkuc3BsaXRfaGRyX3NpemUgPSAwLAotCQkub2ZmbG9hZHMgPSBERVZfUlhfT0ZGTE9BRF9D SEVDS1NVTSwKKwkJLm9mZmxvYWRzID0gUlRFX0VUSF9SWF9PRkZMT0FEX0NIRUNLU1VNLAogCX0s CiAJLnJ4X2Fkdl9jb25mID0gewogCQkucnNzX2NvbmYgPSB7CiAJCQkucnNzX2tleSA9IE5VTEws Ci0JCQkucnNzX2hmID0gRVRIX1JTU19VRFAsCisJCQkucnNzX2hmID0gUlRFX0VUSF9SU1NfVURQ LAogCQl9LAogCX0sCiAJLnR4bW9kZSA9IHsKLQkJLm1xX21vZGUgPSBFVEhfTVFfVFhfTk9ORSwK KwkJLm1xX21vZGUgPSBSVEVfRVRIX01RX1RYX05PTkUsCiAJfQogfTsKIApAQCAtMjUwOSw3ICsy NTA5LDcgQEAgY29uZmlnX3BvcnRfbWF4X3BrdF9sZW4oc3RydWN0IHJ0ZV9ldGhfY29uZiAqY29u ZiwKIAljb25mLT5yeG1vZGUubXR1ID0gbWF4X3BrdF9sZW4gLSBvdmVyaGVhZF9sZW47CiAKIAlp ZiAoY29uZi0+cnhtb2RlLm10dSA+IFJURV9FVEhFUl9NVFUpCi0JCWNvbmYtPnR4bW9kZS5vZmZs b2FkcyB8PSBERVZfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTOworCQljb25mLT50eG1vZGUub2ZmbG9h ZHMgfD0gUlRFX0VUSF9UWF9PRkZMT0FEX01VTFRJX1NFR1M7CiAKIAlyZXR1cm4gMDsKIH0KQEAg LTI2MzcsOSArMjYzNyw5IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCQkJCSJJbnZh bGlkIG1heCBwYWNrZXQgbGVuZ3RoOiAldSAocG9ydCAldSlcbiIsCiAJCQkJbWF4X3BrdF9sZW4s IHBvcnRpZCk7CiAKLQkJaWYgKGRldl9pbmZvLnR4X29mZmxvYWRfY2FwYSAmIERFVl9UWF9PRkZM T0FEX01CVUZfRkFTVF9GUkVFKQorCQlpZiAoZGV2X2luZm8udHhfb2ZmbG9hZF9jYXBhICYgUlRF X0VUSF9UWF9PRkZMT0FEX01CVUZfRkFTVF9GUkVFKQogCQkJbG9jYWxfcG9ydF9jb25mLnR4bW9k ZS5vZmZsb2FkcyB8PQotCQkJCURFVl9UWF9PRkZMT0FEX01CVUZfRkFTVF9GUkVFOworCQkJCVJU RV9FVEhfVFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJFRTsKIAogCQlsb2NhbF9wb3J0X2NvbmYucnhf YWR2X2NvbmYucnNzX2NvbmYucnNzX2hmICY9CiAJCQlkZXZfaW5mby5mbG93X3R5cGVfcnNzX29m ZmxvYWRzOwpkaWZmIGEvZXhhbXBsZXMvbDNmd2QvbWFpbi5jIGIvZXhhbXBsZXMvbDNmd2QvbWFp bi5jCShyZWplY3RlZCBodW5rcykKQEAgLTExOSwxOCArMTE5LDE4IEBAIHN0YXRpYyB1aW50MTZf dCBuYl9sY29yZV9wYXJhbXMgPSBzaXplb2YobGNvcmVfcGFyYW1zX2FycmF5X2RlZmF1bHQpIC8K IAogc3RhdGljIHN0cnVjdCBydGVfZXRoX2NvbmYgcG9ydF9jb25mID0gewogCS5yeG1vZGUgPSB7 Ci0JCS5tcV9tb2RlID0gRVRIX01RX1JYX1JTUywKKwkJLm1xX21vZGUgPSBSVEVfRVRIX01RX1JY X1JTUywKIAkJLnNwbGl0X2hkcl9zaXplID0gMCwKLQkJLm9mZmxvYWRzID0gREVWX1JYX09GRkxP QURfQ0hFQ0tTVU0sCisJCS5vZmZsb2FkcyA9IFJURV9FVEhfUlhfT0ZGTE9BRF9DSEVDS1NVTSwK IAl9LAogCS5yeF9hZHZfY29uZiA9IHsKIAkJLnJzc19jb25mID0gewogCQkJLnJzc19rZXkgPSBO VUxMLAotCQkJLnJzc19oZiA9IEVUSF9SU1NfSVAsCisJCQkucnNzX2hmID0gUlRFX0VUSF9SU1Nf SVAsCiAJCX0sCiAJfSwKIAkudHhtb2RlID0gewotCQkubXFfbW9kZSA9IEVUSF9NUV9UWF9OT05F LAorCQkubXFfbW9kZSA9IFJURV9FVEhfTVFfVFhfTk9ORSwKIAl9LAogfTsKIApAQCAtOTg3LDcg Kzk4Nyw3IEBAIGNvbmZpZ19wb3J0X21heF9wa3RfbGVuKHN0cnVjdCBydGVfZXRoX2NvbmYgKmNv bmYsCiAJY29uZi0+cnhtb2RlLm10dSA9IG1heF9wa3RfbGVuIC0gb3ZlcmhlYWRfbGVuOwogCiAJ aWYgKGNvbmYtPnJ4bW9kZS5tdHUgPiBSVEVfRVRIRVJfTVRVKQotCQljb25mLT50eG1vZGUub2Zm bG9hZHMgfD0gREVWX1RYX09GRkxPQURfTVVMVElfU0VHUzsKKwkJY29uZi0+dHhtb2RlLm9mZmxv YWRzIHw9IFJURV9FVEhfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTOwogCiAJcmV0dXJuIDA7CiB9CkBA IC0xMDUyLDE1ICsxMDUyLDE1IEBAIGwzZndkX3BvbGxfcmVzb3VyY2Vfc2V0dXAodm9pZCkKIAkJ CQkiSW52YWxpZCBtYXggcGFja2V0IGxlbmd0aDogJXUgKHBvcnQgJXUpXG4iLAogCQkJCW1heF9w a3RfbGVuLCBwb3J0aWQpOwogCi0JCWlmIChkZXZfaW5mby50eF9vZmZsb2FkX2NhcGEgJiBERVZf VFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJFRSkKKwkJaWYgKGRldl9pbmZvLnR4X29mZmxvYWRfY2Fw YSAmIFJURV9FVEhfVFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJFRSkKIAkJCWxvY2FsX3BvcnRfY29u Zi50eG1vZGUub2ZmbG9hZHMgfD0KLQkJCQlERVZfVFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJFRTsK KwkJCQlSVEVfRVRIX1RYX09GRkxPQURfTUJVRl9GQVNUX0ZSRUU7CiAKIAkJbG9jYWxfcG9ydF9j b25mLnJ4X2Fkdl9jb25mLnJzc19jb25mLnJzc19oZiAmPQogCQkJZGV2X2luZm8uZmxvd190eXBl X3Jzc19vZmZsb2FkczsKIAogCQlpZiAoZGV2X2luZm8ubWF4X3J4X3F1ZXVlcyA9PSAxKQotCQkJ bG9jYWxfcG9ydF9jb25mLnJ4bW9kZS5tcV9tb2RlID0gRVRIX01RX1JYX05PTkU7CisJCQlsb2Nh bF9wb3J0X2NvbmYucnhtb2RlLm1xX21vZGUgPSBSVEVfRVRIX01RX1JYX05PTkU7CiAKIAkJaWYg KGxvY2FsX3BvcnRfY29uZi5yeF9hZHZfY29uZi5yc3NfY29uZi5yc3NfaGYgIT0KIAkJCQlwb3J0 X2NvbmYucnhfYWR2X2NvbmYucnNzX2NvbmYucnNzX2hmKSB7CmRpZmYgYS9leGFtcGxlcy9wZXJm b3JtYW5jZS10aHJlYWQvbDNmd2QtdGhyZWFkL21haW4uYyBiL2V4YW1wbGVzL3BlcmZvcm1hbmNl LXRocmVhZC9sM2Z3ZC10aHJlYWQvbWFpbi5jCShyZWplY3RlZCBodW5rcykKQEAgLTMwNiwxOCAr MzA2LDE4IEBAIHN0YXRpYyB1aW50MTZfdCBuYl90eF90aHJlYWRfcGFyYW1zID0gUlRFX0RJTSh0 eF90aHJlYWRfcGFyYW1zX2FycmF5X2RlZmF1bHQpOwogCiBzdGF0aWMgc3RydWN0IHJ0ZV9ldGhf Y29uZiBwb3J0X2NvbmYgPSB7CiAJLnJ4bW9kZSA9IHsKLQkJLm1xX21vZGUgPSBFVEhfTVFfUlhf UlNTLAorCQkubXFfbW9kZSA9IFJURV9FVEhfTVFfUlhfUlNTLAogCQkuc3BsaXRfaGRyX3NpemUg PSAwLAotCQkub2ZmbG9hZHMgPSBERVZfUlhfT0ZGTE9BRF9DSEVDS1NVTSwKKwkJLm9mZmxvYWRz ID0gUlRFX0VUSF9SWF9PRkZMT0FEX0NIRUNLU1VNLAogCX0sCiAJLnJ4X2Fkdl9jb25mID0gewog CQkucnNzX2NvbmYgPSB7CiAJCQkucnNzX2tleSA9IE5VTEwsCi0JCQkucnNzX2hmID0gRVRIX1JT U19UQ1AsCisJCQkucnNzX2hmID0gUlRFX0VUSF9SU1NfVENQLAogCQl9LAogCX0sCiAJLnR4bW9k ZSA9IHsKLQkJLm1xX21vZGUgPSBFVEhfTVFfVFhfTk9ORSwKKwkJLm1xX21vZGUgPSBSVEVfRVRI X01RX1RYX05PTkUsCiAJfSwKIH07CiAKQEAgLTM0OTAsNyArMzQ5MCw3IEBAIGNvbmZpZ19wb3J0 X21heF9wa3RfbGVuKHN0cnVjdCBydGVfZXRoX2NvbmYgKmNvbmYsCiAJY29uZi0+cnhtb2RlLm10 dSA9IG1heF9wa3RfbGVuIC0gb3ZlcmhlYWRfbGVuOwogCiAJaWYgKGNvbmYtPnJ4bW9kZS5tdHUg PiBSVEVfRVRIRVJfTVRVKQotCQljb25mLT50eG1vZGUub2ZmbG9hZHMgfD0gREVWX1RYX09GRkxP QURfTVVMVElfU0VHUzsKKwkJY29uZi0+dHhtb2RlLm9mZmxvYWRzIHw9IFJURV9FVEhfVFhfT0ZG TE9BRF9NVUxUSV9TRUdTOwogCiAJcmV0dXJuIDA7CiB9CkBAIC0zNTg5LDkgKzM1ODksOSBAQCBt YWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAkJCQkiSW52YWxpZCBtYXggcGFja2V0IGxlbmd0 aDogJXUgKHBvcnQgJXUpXG4iLAogCQkJCW1heF9wa3RfbGVuLCBwb3J0aWQpOwogCi0JCWlmIChk ZXZfaW5mby50eF9vZmZsb2FkX2NhcGEgJiBERVZfVFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJFRSkK KwkJaWYgKGRldl9pbmZvLnR4X29mZmxvYWRfY2FwYSAmIFJURV9FVEhfVFhfT0ZGTE9BRF9NQlVG X0ZBU1RfRlJFRSkKIAkJCWxvY2FsX3BvcnRfY29uZi50eG1vZGUub2ZmbG9hZHMgfD0KLQkJCQlE RVZfVFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJFRTsKKwkJCQlSVEVfRVRIX1RYX09GRkxPQURfTUJV Rl9GQVNUX0ZSRUU7CiAKIAkJbG9jYWxfcG9ydF9jb25mLnJ4X2Fkdl9jb25mLnJzc19jb25mLnJz c19oZiAmPQogCQkJZGV2X2luZm8uZmxvd190eXBlX3Jzc19vZmZsb2FkczsKZGlmZiBhL2V4YW1w bGVzL3BpcGVsaW5lL29iai5jIGIvZXhhbXBsZXMvcGlwZWxpbmUvb2JqLmMJKHJlamVjdGVkIGh1 bmtzKQpAQCAtMTMzLDcgKzEzMyw3IEBAIG1lbXBvb2xfZmluZChzdHJ1Y3Qgb2JqICpvYmosIGNv bnN0IGNoYXIgKm5hbWUpCiBzdGF0aWMgc3RydWN0IHJ0ZV9ldGhfY29uZiBwb3J0X2NvbmZfZGVm YXVsdCA9IHsKIAkubGlua19zcGVlZHMgPSAwLAogCS5yeG1vZGUgPSB7Ci0JCS5tcV9tb2RlID0g RVRIX01RX1JYX05PTkUsCisJCS5tcV9tb2RlID0gUlRFX0VUSF9NUV9SWF9OT05FLAogCQkubXR1 ID0gOTAwMCAtIChSVEVfRVRIRVJfSERSX0xFTiArIFJURV9FVEhFUl9DUkNfTEVOKSwgLyogSnVt Ym8gZnJhbWUgTVRVICovCiAJCS5zcGxpdF9oZHJfc2l6ZSA9IDAsIC8qIEhlYWRlciBzcGxpdCBi dWZmZXIgc2l6ZSAqLwogCX0sCmRpZmYgYS9leGFtcGxlcy9xb3NfbWV0ZXIvbWFpbi5jIGIvZXhh bXBsZXMvcW9zX21ldGVyL21haW4uYwkocmVqZWN0ZWQgaHVua3MpCkBAIC01MSwxOCArNTEsMTgg QEAgc3RhdGljIHN0cnVjdCBydGVfbWVtcG9vbCAqcG9vbCA9IE5VTEw7CiAgKioqLwogc3RhdGlj IHN0cnVjdCBydGVfZXRoX2NvbmYgcG9ydF9jb25mID0gewogCS5yeG1vZGUgPSB7Ci0JCS5tcV9t b2RlCT0gRVRIX01RX1JYX1JTUywKKwkJLm1xX21vZGUJPSBSVEVfRVRIX01RX1JYX1JTUywKIAkJ LnNwbGl0X2hkcl9zaXplID0gMCwKLQkJLm9mZmxvYWRzID0gREVWX1JYX09GRkxPQURfQ0hFQ0tT VU0sCisJCS5vZmZsb2FkcyA9IFJURV9FVEhfUlhfT0ZGTE9BRF9DSEVDS1NVTSwKIAl9LAogCS5y eF9hZHZfY29uZiA9IHsKIAkJLnJzc19jb25mID0gewogCQkJLnJzc19rZXkgPSBOVUxMLAotCQkJ LnJzc19oZiA9IEVUSF9SU1NfSVAsCisJCQkucnNzX2hmID0gUlRFX0VUSF9SU1NfSVAsCiAJCX0s CiAJfSwKIAkudHhtb2RlID0gewotCQkubXFfbW9kZSA9IEVUSF9EQ0JfTk9ORSwKKwkJLm1xX21v ZGUgPSBSVEVfRVRIX01RX1RYX05PTkUsCiAJfSwKIH07CiAKZGlmZiBhL2xpYi9ldGhkZXYvZXRo ZGV2X2RyaXZlci5oIGIvbGliL2V0aGRldi9ldGhkZXZfZHJpdmVyLmgJKHJlamVjdGVkIGh1bmtz KQpAQCAtMTE0LDcgKzExNCw3IEBAIHN0cnVjdCBydGVfZXRoX2Rldl9kYXRhIHsKIAkvKiogRGV2 aWNlIEV0aGVybmV0IGxpbmsgYWRkcmVzcy4gQHNlZSBydGVfZXRoX2Rldl9yZWxlYXNlX3BvcnQo KSAqLwogCXN0cnVjdCBydGVfZXRoZXJfYWRkciAqbWFjX2FkZHJzOwogCS8qKiBCaXRtYXAgYXNz b2NpYXRpbmcgTUFDIGFkZHJlc3NlcyB0byBwb29scyAqLwotCXVpbnQ2NF90IG1hY19wb29sX3Nl bFtFVEhfTlVNX1JFQ0VJVkVfTUFDX0FERFJdOworCXVpbnQ2NF90IG1hY19wb29sX3NlbFtSVEVf RVRIX05VTV9SRUNFSVZFX01BQ19BRERSXTsKIAkvKioKIAkgKiBEZXZpY2UgRXRoZXJuZXQgTUFD IGFkZHJlc3NlcyBvZiBoYXNoIGZpbHRlcmluZy4KIAkgKiBAc2VlIHJ0ZV9ldGhfZGV2X3JlbGVh c2VfcG9ydCgpCmRpZmYgYS9saWIvZXRoZGV2L3J0ZV9ldGhkZXYuYyBiL2xpYi9ldGhkZXYvcnRl X2V0aGRldi5jCShyZWplY3RlZCBodW5rcykKQEAgLTE1MjgsNyArMTUyNSw3IEBAIHJ0ZV9ldGhf ZGV2X2NvbmZpZ3VyZSh1aW50MTZfdCBwb3J0X2lkLCB1aW50MTZfdCBuYl9yeF9xLCB1aW50MTZf dCBuYl90eF9xLAogCSAqIElmIExSTyBpcyBlbmFibGVkLCBjaGVjayB0aGF0IHRoZSBtYXhpbXVt IGFnZ3JlZ2F0ZWQgcGFja2V0CiAJICogc2l6ZSBpcyBzdXBwb3J0ZWQgYnkgdGhlIGNvbmZpZ3Vy ZWQgZGV2aWNlLgogCSAqLwotCWlmIChkZXZfY29uZi0+cnhtb2RlLm9mZmxvYWRzICYgREVWX1JY X09GRkxPQURfVENQX0xSTykgeworCWlmIChkZXZfY29uZi0+cnhtb2RlLm9mZmxvYWRzICYgUlRF X0VUSF9SWF9PRkZMT0FEX1RDUF9MUk8pIHsKIAkJdWludDMyX3QgbWF4X3J4X3BrdGxlbjsKIAkJ dWludDMyX3Qgb3ZlcmhlYWRfbGVuOwogCkBAIC0yMjEzLDcgKzIyMTAsNyBAQCBydGVfZXRoX3J4 X3F1ZXVlX3NldHVwKHVpbnQxNl90IHBvcnRfaWQsIHVpbnQxNl90IHJ4X3F1ZXVlX2lkLAogCSAq IHNpemUgaXMgc3VwcG9ydGVkIGJ5IHRoZSBjb25maWd1cmVkIGRldmljZS4KIAkgKi8KIAkvKiBH ZXQgdGhlIHJlYWwgRXRoZXJuZXQgb3ZlcmhlYWQgbGVuZ3RoICovCi0JaWYgKGxvY2FsX2NvbmYu b2ZmbG9hZHMgJiBERVZfUlhfT0ZGTE9BRF9UQ1BfTFJPKSB7CisJaWYgKGxvY2FsX2NvbmYub2Zm bG9hZHMgJiBSVEVfRVRIX1JYX09GRkxPQURfVENQX0xSTykgewogCQl1aW50MzJfdCBvdmVyaGVh ZF9sZW47CiAJCXVpbnQzMl90IG1heF9yeF9wa3RsZW47CiAJCWludCByZXQ7CkBAIC0zNzQ1LDcg KzM3NDIsNyBAQCBydGVfZXRoX2Rldl92bGFuX2ZpbHRlcih1aW50MTZfdCBwb3J0X2lkLCB1aW50 MTZfdCB2bGFuX2lkLCBpbnQgb24pCiAJZGV2ID0gJnJ0ZV9ldGhfZGV2aWNlc1twb3J0X2lkXTsK IAogCWlmICghKGRldi0+ZGF0YS0+ZGV2X2NvbmYucnhtb2RlLm9mZmxvYWRzICYKLQkgICAgICBE RVZfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUikpIHsKKwkgICAgICBSVEVfRVRIX1JYX09GRkxPQURf VkxBTl9GSUxURVIpKSB7CiAJCVJURV9FVEhERVZfTE9HKEVSUiwgIlBvcnQgJXU6IFZMQU4tZmls dGVyaW5nIGRpc2FibGVkXG4iLAogCQkJcG9ydF9pZCk7CiAJCXJldHVybiAtRU5PU1lTOwpAQCAt NDA0MSw4ICs0MDM4LDggQEAgZXRoX2NoZWNrX3JldGFfZW50cnkoc3RydWN0IHJ0ZV9ldGhfcnNz X3JldGFfZW50cnk2NCAqcmV0YV9jb25mLAogCX0KIAogCWZvciAoaSA9IDA7IGkgPCByZXRhX3Np emU7IGkrKykgewotCQlpZHggPSBpIC8gUlRFX1JFVEFfR1JPVVBfU0laRTsKLQkJc2hpZnQgPSBp ICUgUlRFX1JFVEFfR1JPVVBfU0laRTsKKwkJaWR4ID0gaSAvIFJURV9FVEhfUkVUQV9HUk9VUF9T SVpFOworCQlzaGlmdCA9IGkgJSBSVEVfRVRIX1JFVEFfR1JPVVBfU0laRTsKIAkJaWYgKChyZXRh X2NvbmZbaWR4XS5tYXNrICYgUlRFX0JJVDY0KHNoaWZ0KSkgJiYKIAkJCShyZXRhX2NvbmZbaWR4 XS5yZXRhW3NoaWZ0XSA+PSBtYXhfcnhxKSkgewogCQkJUlRFX0VUSERFVl9MT0coRVJSLApAQCAt NDM2NSw4ICs0MzYyLDggQEAgcnRlX2V0aF9kZXZfbWFjX2FkZHJfYWRkKHVpbnQxNl90IHBvcnRf aWQsIHN0cnVjdCBydGVfZXRoZXJfYWRkciAqYWRkciwKIAkJCXBvcnRfaWQpOwogCQlyZXR1cm4g LUVJTlZBTDsKIAl9Ci0JaWYgKHBvb2wgPj0gRVRIXzY0X1BPT0xTKSB7Ci0JCVJURV9FVEhERVZf TE9HKEVSUiwgIlBvb2wgSUQgbXVzdCBiZSAwLSVkXG4iLCBFVEhfNjRfUE9PTFMgLSAxKTsKKwlp ZiAocG9vbCA+PSBSVEVfRVRIXzY0X1BPT0xTKSB7CisJCVJURV9FVEhERVZfTE9HKEVSUiwgIlBv b2wgSUQgbXVzdCBiZSAwLSVkXG4iLCBSVEVfRVRIXzY0X1BPT0xTIC0gMSk7CiAJCXJldHVybiAt RUlOVkFMOwogCX0KIApkaWZmIGEvbGliL2V0aGRldi9ydGVfZXRoZGV2LmggYi9saWIvZXRoZGV2 L3J0ZV9ldGhkZXYuaAkocmVqZWN0ZWQgaHVua3MpCkBAIC0yODEsNDMgKzI4MSw3NSBAQCBzdHJ1 Y3QgcnRlX2V0aF9zdGF0cyB7CiAvKipAe0BuYW1lIExpbmsgc3BlZWQgY2FwYWJpbGl0aWVzCiAg KiBEZXZpY2Ugc3VwcG9ydGVkIHNwZWVkcyBiaXRtYXAgZmxhZ3MKICAqLwotI2RlZmluZSBFVEhf TElOS19TUEVFRF9BVVRPTkVHIDAgICAgICAgICAgICAgLyoqPCBBdXRvbmVnb3RpYXRlIChhbGwg c3BlZWRzKSAqLwotI2RlZmluZSBFVEhfTElOS19TUEVFRF9GSVhFRCAgIFJURV9CSVQzMigwKSAg LyoqPCBEaXNhYmxlIGF1dG9uZWcgKGZpeGVkIHNwZWVkKSAqLwotI2RlZmluZSBFVEhfTElOS19T UEVFRF8xME1fSEQgIFJURV9CSVQzMigxKSAgLyoqPCAgMTAgTWJwcyBoYWxmLWR1cGxleCAqLwot I2RlZmluZSBFVEhfTElOS19TUEVFRF8xME0gICAgIFJURV9CSVQzMigyKSAgLyoqPCAgMTAgTWJw cyBmdWxsLWR1cGxleCAqLwotI2RlZmluZSBFVEhfTElOS19TUEVFRF8xMDBNX0hEIFJURV9CSVQz MigzKSAgLyoqPCAxMDAgTWJwcyBoYWxmLWR1cGxleCAqLwotI2RlZmluZSBFVEhfTElOS19TUEVF RF8xMDBNICAgIFJURV9CSVQzMig0KSAgLyoqPCAxMDAgTWJwcyBmdWxsLWR1cGxleCAqLwotI2Rl ZmluZSBFVEhfTElOS19TUEVFRF8xRyAgICAgIFJURV9CSVQzMig1KSAgLyoqPCAgIDEgR2JwcyAq LwotI2RlZmluZSBFVEhfTElOS19TUEVFRF8yXzVHICAgIFJURV9CSVQzMig2KSAgLyoqPCAyLjUg R2JwcyAqLwotI2RlZmluZSBFVEhfTElOS19TUEVFRF81RyAgICAgIFJURV9CSVQzMig3KSAgLyoq PCAgIDUgR2JwcyAqLwotI2RlZmluZSBFVEhfTElOS19TUEVFRF8xMEcgICAgIFJURV9CSVQzMig4 KSAgLyoqPCAgMTAgR2JwcyAqLwotI2RlZmluZSBFVEhfTElOS19TUEVFRF8yMEcgICAgIFJURV9C SVQzMig5KSAgLyoqPCAgMjAgR2JwcyAqLwotI2RlZmluZSBFVEhfTElOS19TUEVFRF8yNUcgICAg IFJURV9CSVQzMigxMCkgLyoqPCAgMjUgR2JwcyAqLwotI2RlZmluZSBFVEhfTElOS19TUEVFRF80 MEcgICAgIFJURV9CSVQzMigxMSkgLyoqPCAgNDAgR2JwcyAqLwotI2RlZmluZSBFVEhfTElOS19T UEVFRF81MEcgICAgIFJURV9CSVQzMigxMikgLyoqPCAgNTAgR2JwcyAqLwotI2RlZmluZSBFVEhf TElOS19TUEVFRF81NkcgICAgIFJURV9CSVQzMigxMykgLyoqPCAgNTYgR2JwcyAqLwotI2RlZmlu ZSBFVEhfTElOS19TUEVFRF8xMDBHICAgIFJURV9CSVQzMigxNCkgLyoqPCAxMDAgR2JwcyAqLwot I2RlZmluZSBFVEhfTElOS19TUEVFRF8yMDBHICAgIFJURV9CSVQzMigxNSkgLyoqPCAyMDAgR2Jw cyAqLworI2RlZmluZSBSVEVfRVRIX0xJTktfU1BFRURfQVVUT05FRyAwICAgICAgICAgICAgIC8q KjwgQXV0b25lZ290aWF0ZSAoYWxsIHNwZWVkcykgKi8KKyNkZWZpbmUgRVRIX0xJTktfU1BFRURf QVVUT05FRyAgICAgUlRFX0VUSF9MSU5LX1NQRUVEX0FVVE9ORUcKKyNkZWZpbmUgUlRFX0VUSF9M SU5LX1NQRUVEX0ZJWEVEICAgUlRFX0JJVDMyKDApICAvKio8IERpc2FibGUgYXV0b25lZyAoZml4 ZWQgc3BlZWQpICovCisjZGVmaW5lIEVUSF9MSU5LX1NQRUVEX0ZJWEVEICAgICAgIFJURV9FVEhf TElOS19TUEVFRF9GSVhFRAorI2RlZmluZSBSVEVfRVRIX0xJTktfU1BFRURfMTBNX0hEICBSVEVf QklUMzIoMSkgIC8qKjwgIDEwIE1icHMgaGFsZi1kdXBsZXggKi8KKyNkZWZpbmUgRVRIX0xJTktf U1BFRURfMTBNX0hEICAgICAgUlRFX0VUSF9MSU5LX1NQRUVEXzEwTV9IRAorI2RlZmluZSBSVEVf RVRIX0xJTktfU1BFRURfMTBNICAgICBSVEVfQklUMzIoMikgIC8qKjwgIDEwIE1icHMgZnVsbC1k dXBsZXggKi8KKyNkZWZpbmUgRVRIX0xJTktfU1BFRURfMTBNICAgICAgICAgUlRFX0VUSF9MSU5L X1NQRUVEXzEwTQorI2RlZmluZSBSVEVfRVRIX0xJTktfU1BFRURfMTAwTV9IRCBSVEVfQklUMzIo MykgIC8qKjwgMTAwIE1icHMgaGFsZi1kdXBsZXggKi8KKyNkZWZpbmUgRVRIX0xJTktfU1BFRURf MTAwTV9IRCAgICAgUlRFX0VUSF9MSU5LX1NQRUVEXzEwME1fSEQKKyNkZWZpbmUgUlRFX0VUSF9M SU5LX1NQRUVEXzEwME0gICAgUlRFX0JJVDMyKDQpICAvKio8IDEwMCBNYnBzIGZ1bGwtZHVwbGV4 ICovCisjZGVmaW5lIEVUSF9MSU5LX1NQRUVEXzEwME0gICAgICAgIFJURV9FVEhfTElOS19TUEVF RF8xMDBNCisjZGVmaW5lIFJURV9FVEhfTElOS19TUEVFRF8xRyAgICAgIFJURV9CSVQzMig1KSAg LyoqPCAgIDEgR2JwcyAqLworI2RlZmluZSBFVEhfTElOS19TUEVFRF8xRyAgICAgICAgICBSVEVf RVRIX0xJTktfU1BFRURfMUcKKyNkZWZpbmUgUlRFX0VUSF9MSU5LX1NQRUVEXzJfNUcgICAgUlRF X0JJVDMyKDYpICAvKio8IDIuNSBHYnBzICovCisjZGVmaW5lIEVUSF9MSU5LX1NQRUVEXzJfNUcg ICAgICAgIFJURV9FVEhfTElOS19TUEVFRF8yXzVHCisjZGVmaW5lIFJURV9FVEhfTElOS19TUEVF RF81RyAgICAgIFJURV9CSVQzMig3KSAgLyoqPCAgIDUgR2JwcyAqLworI2RlZmluZSBFVEhfTElO S19TUEVFRF81RyAgICAgICAgICBSVEVfRVRIX0xJTktfU1BFRURfNUcKKyNkZWZpbmUgUlRFX0VU SF9MSU5LX1NQRUVEXzEwRyAgICAgUlRFX0JJVDMyKDgpICAvKio8ICAxMCBHYnBzICovCisjZGVm aW5lIEVUSF9MSU5LX1NQRUVEXzEwRyAgICAgICAgIFJURV9FVEhfTElOS19TUEVFRF8xMEcKKyNk ZWZpbmUgUlRFX0VUSF9MSU5LX1NQRUVEXzIwRyAgICAgUlRFX0JJVDMyKDkpICAvKio8ICAyMCBH YnBzICovCisjZGVmaW5lIEVUSF9MSU5LX1NQRUVEXzIwRyAgICAgICAgIFJURV9FVEhfTElOS19T UEVFRF8yMEcKKyNkZWZpbmUgUlRFX0VUSF9MSU5LX1NQRUVEXzI1RyAgICAgUlRFX0JJVDMyKDEw KSAvKio8ICAyNSBHYnBzICovCisjZGVmaW5lIEVUSF9MSU5LX1NQRUVEXzI1RyAgICAgICAgIFJU RV9FVEhfTElOS19TUEVFRF8yNUcKKyNkZWZpbmUgUlRFX0VUSF9MSU5LX1NQRUVEXzQwRyAgICAg UlRFX0JJVDMyKDExKSAvKio8ICA0MCBHYnBzICovCisjZGVmaW5lIEVUSF9MSU5LX1NQRUVEXzQw RyAgICAgICAgIFJURV9FVEhfTElOS19TUEVFRF80MEcKKyNkZWZpbmUgUlRFX0VUSF9MSU5LX1NQ RUVEXzUwRyAgICAgUlRFX0JJVDMyKDEyKSAvKio8ICA1MCBHYnBzICovCisjZGVmaW5lIEVUSF9M SU5LX1NQRUVEXzUwRyAgICAgICAgIFJURV9FVEhfTElOS19TUEVFRF81MEcKKyNkZWZpbmUgUlRF X0VUSF9MSU5LX1NQRUVEXzU2RyAgICAgUlRFX0JJVDMyKDEzKSAvKio8ICA1NiBHYnBzICovCisj ZGVmaW5lIEVUSF9MSU5LX1NQRUVEXzU2RyAgICAgICAgIFJURV9FVEhfTElOS19TUEVFRF81NkcK KyNkZWZpbmUgUlRFX0VUSF9MSU5LX1NQRUVEXzEwMEcgICAgUlRFX0JJVDMyKDE0KSAvKio8IDEw MCBHYnBzICovCisjZGVmaW5lIEVUSF9MSU5LX1NQRUVEXzEwMEcgICAgICAgIFJURV9FVEhfTElO S19TUEVFRF8xMDBHCisjZGVmaW5lIFJURV9FVEhfTElOS19TUEVFRF8yMDBHICAgIFJURV9CSVQz MigxNSkgLyoqPCAyMDAgR2JwcyAqLworI2RlZmluZSBFVEhfTElOS19TUEVFRF8yMDBHICAgICAg ICBSVEVfRVRIX0xJTktfU1BFRURfMjAwRwogLyoqQH0qLwogCiAvKipAe0BuYW1lIExpbmsgc3Bl ZWQKICAqIEV0aGVybmV0IG51bWVyaWMgbGluayBzcGVlZHMgaW4gTWJwcwogICovCi0jZGVmaW5l IEVUSF9TUEVFRF9OVU1fTk9ORSAgICAgICAgIDAgLyoqPCBOb3QgZGVmaW5lZCAqLwotI2RlZmlu ZSBFVEhfU1BFRURfTlVNXzEwTSAgICAgICAgIDEwIC8qKjwgIDEwIE1icHMgKi8KLSNkZWZpbmUg RVRIX1NQRUVEX05VTV8xMDBNICAgICAgIDEwMCAvKio8IDEwMCBNYnBzICovCi0jZGVmaW5lIEVU SF9TUEVFRF9OVU1fMUcgICAgICAgIDEwMDAgLyoqPCAgIDEgR2JwcyAqLwotI2RlZmluZSBFVEhf U1BFRURfTlVNXzJfNUcgICAgICAyNTAwIC8qKjwgMi41IEdicHMgKi8KLSNkZWZpbmUgRVRIX1NQ RUVEX05VTV81RyAgICAgICAgNTAwMCAvKio8ICAgNSBHYnBzICovCi0jZGVmaW5lIEVUSF9TUEVF RF9OVU1fMTBHICAgICAgMTAwMDAgLyoqPCAgMTAgR2JwcyAqLwotI2RlZmluZSBFVEhfU1BFRURf TlVNXzIwRyAgICAgIDIwMDAwIC8qKjwgIDIwIEdicHMgKi8KLSNkZWZpbmUgRVRIX1NQRUVEX05V TV8yNUcgICAgICAyNTAwMCAvKio8ICAyNSBHYnBzICovCi0jZGVmaW5lIEVUSF9TUEVFRF9OVU1f NDBHICAgICAgNDAwMDAgLyoqPCAgNDAgR2JwcyAqLwotI2RlZmluZSBFVEhfU1BFRURfTlVNXzUw RyAgICAgIDUwMDAwIC8qKjwgIDUwIEdicHMgKi8KLSNkZWZpbmUgRVRIX1NQRUVEX05VTV81Nkcg ICAgICA1NjAwMCAvKio8ICA1NiBHYnBzICovCi0jZGVmaW5lIEVUSF9TUEVFRF9OVU1fMTAwRyAg ICAxMDAwMDAgLyoqPCAxMDAgR2JwcyAqLwotI2RlZmluZSBFVEhfU1BFRURfTlVNXzIwMEcgICAg MjAwMDAwIC8qKjwgMjAwIEdicHMgKi8KLSNkZWZpbmUgRVRIX1NQRUVEX05VTV9VTktOT1dOIFVJ TlQzMl9NQVggLyoqPCBVbmtub3duICovCisjZGVmaW5lIFJURV9FVEhfU1BFRURfTlVNX05PTkUg ICAgICAgICAwIC8qKjwgTm90IGRlZmluZWQgKi8KKyNkZWZpbmUgRVRIX1NQRUVEX05VTV9OT05F ICAgICAgICBSVEVfRVRIX1NQRUVEX05VTV9OT05FCisjZGVmaW5lIFJURV9FVEhfU1BFRURfTlVN XzEwTSAgICAgICAgIDEwIC8qKjwgIDEwIE1icHMgKi8KKyNkZWZpbmUgRVRIX1NQRUVEX05VTV8x ME0gICAgICAgICBSVEVfRVRIX1NQRUVEX05VTV8xME0KKyNkZWZpbmUgUlRFX0VUSF9TUEVFRF9O VU1fMTAwTSAgICAgICAxMDAgLyoqPCAxMDAgTWJwcyAqLworI2RlZmluZSBFVEhfU1BFRURfTlVN XzEwME0gICAgICAgIFJURV9FVEhfU1BFRURfTlVNXzEwME0KKyNkZWZpbmUgUlRFX0VUSF9TUEVF RF9OVU1fMUcgICAgICAgIDEwMDAgLyoqPCAgIDEgR2JwcyAqLworI2RlZmluZSBFVEhfU1BFRURf TlVNXzFHICAgICAgICAgIFJURV9FVEhfU1BFRURfTlVNXzFHCisjZGVmaW5lIFJURV9FVEhfU1BF RURfTlVNXzJfNUcgICAgICAyNTAwIC8qKjwgMi41IEdicHMgKi8KKyNkZWZpbmUgRVRIX1NQRUVE X05VTV8yXzVHICAgICAgICBSVEVfRVRIX1NQRUVEX05VTV8yXzVHCisjZGVmaW5lIFJURV9FVEhf U1BFRURfTlVNXzVHICAgICAgICA1MDAwIC8qKjwgICA1IEdicHMgKi8KKyNkZWZpbmUgRVRIX1NQ RUVEX05VTV81RyAgICAgICAgICBSVEVfRVRIX1NQRUVEX05VTV81RworI2RlZmluZSBSVEVfRVRI X1NQRUVEX05VTV8xMEcgICAgICAxMDAwMCAvKio8ICAxMCBHYnBzICovCisjZGVmaW5lIEVUSF9T UEVFRF9OVU1fMTBHICAgICAgICAgUlRFX0VUSF9TUEVFRF9OVU1fMTBHCisjZGVmaW5lIFJURV9F VEhfU1BFRURfTlVNXzIwRyAgICAgIDIwMDAwIC8qKjwgIDIwIEdicHMgKi8KKyNkZWZpbmUgRVRI X1NQRUVEX05VTV8yMEcgICAgICAgICBSVEVfRVRIX1NQRUVEX05VTV8yMEcKKyNkZWZpbmUgUlRF X0VUSF9TUEVFRF9OVU1fMjVHICAgICAgMjUwMDAgLyoqPCAgMjUgR2JwcyAqLworI2RlZmluZSBF VEhfU1BFRURfTlVNXzI1RyAgICAgICAgIFJURV9FVEhfU1BFRURfTlVNXzI1RworI2RlZmluZSBS VEVfRVRIX1NQRUVEX05VTV80MEcgICAgICA0MDAwMCAvKio8ICA0MCBHYnBzICovCisjZGVmaW5l IEVUSF9TUEVFRF9OVU1fNDBHICAgICAgICAgUlRFX0VUSF9TUEVFRF9OVU1fNDBHCisjZGVmaW5l IFJURV9FVEhfU1BFRURfTlVNXzUwRyAgICAgIDUwMDAwIC8qKjwgIDUwIEdicHMgKi8KKyNkZWZp bmUgRVRIX1NQRUVEX05VTV81MEcgICAgICAgICBSVEVfRVRIX1NQRUVEX05VTV81MEcKKyNkZWZp bmUgUlRFX0VUSF9TUEVFRF9OVU1fNTZHICAgICAgNTYwMDAgLyoqPCAgNTYgR2JwcyAqLworI2Rl ZmluZSBFVEhfU1BFRURfTlVNXzU2RyAgICAgICAgIFJURV9FVEhfU1BFRURfTlVNXzU2RworI2Rl ZmluZSBSVEVfRVRIX1NQRUVEX05VTV8xMDBHICAgIDEwMDAwMCAvKio8IDEwMCBHYnBzICovCisj ZGVmaW5lIEVUSF9TUEVFRF9OVU1fMTAwRyAgICAgICAgUlRFX0VUSF9TUEVFRF9OVU1fMTAwRwor I2RlZmluZSBSVEVfRVRIX1NQRUVEX05VTV8yMDBHICAgIDIwMDAwMCAvKio8IDIwMCBHYnBzICov CisjZGVmaW5lIEVUSF9TUEVFRF9OVU1fMjAwRyAgICAgICAgUlRFX0VUSF9TUEVFRF9OVU1fMjAw RworI2RlZmluZSBSVEVfRVRIX1NQRUVEX05VTV9VTktOT1dOIFVJTlQzMl9NQVggLyoqPCBVbmtu b3duICovCisjZGVmaW5lIEVUSF9TUEVFRF9OVU1fVU5LTk9XTiAgICAgUlRFX0VUSF9TUEVFRF9O VU1fVU5LTk9XTgogLyoqQH0qLwogCiAvKioKQEAgLTM2Nyw1MCArNDA4LDQ5IEBAIHN0cnVjdCBy dGVfZXRoX3RocmVzaCB7CiAgKi8KIGVudW0gcnRlX2V0aF9yeF9tcV9tb2RlIHsKIAkvKiogTm9u ZSBvZiBEQ0IsIFJTUyBvciBWTURxIG1vZGUgKi8KLQlFVEhfTVFfUlhfTk9ORSA9IDAsCisJUlRF X0VUSF9NUV9SWF9OT05FID0gMCwKIAogCS8qKiBGb3IgUnggc2lkZSwgb25seSBSU1MgaXMgb24g Ki8KLQlFVEhfTVFfUlhfUlNTID0gRVRIX01RX1JYX1JTU19GTEFHLAorCVJURV9FVEhfTVFfUlhf UlNTID0gUlRFX0VUSF9NUV9SWF9SU1NfRkxBRywKIAkvKiogRm9yIFJ4IHNpZGUsb25seSBEQ0Ig aXMgb24uICovCi0JRVRIX01RX1JYX0RDQiA9IEVUSF9NUV9SWF9EQ0JfRkxBRywKKwlSVEVfRVRI X01RX1JYX0RDQiA9IFJURV9FVEhfTVFfUlhfRENCX0ZMQUcsCiAJLyoqIEJvdGggRENCIGFuZCBS U1MgZW5hYmxlICovCi0JRVRIX01RX1JYX0RDQl9SU1MgPSBFVEhfTVFfUlhfUlNTX0ZMQUcgfCBF VEhfTVFfUlhfRENCX0ZMQUcsCisJUlRFX0VUSF9NUV9SWF9EQ0JfUlNTID0gUlRFX0VUSF9NUV9S WF9SU1NfRkxBRyB8IFJURV9FVEhfTVFfUlhfRENCX0ZMQUcsCiAKIAkvKiogT25seSBWTURxLCBu byBSU1Mgbm9yIERDQiAqLwotCUVUSF9NUV9SWF9WTURRX09OTFkgPSBFVEhfTVFfUlhfVk1EUV9G TEFHLAorCVJURV9FVEhfTVFfUlhfVk1EUV9PTkxZID0gUlRFX0VUSF9NUV9SWF9WTURRX0ZMQUcs CiAJLyoqIFJTUyBtb2RlIHdpdGggVk1EcSAqLwotCUVUSF9NUV9SWF9WTURRX1JTUyA9IEVUSF9N UV9SWF9SU1NfRkxBRyB8IEVUSF9NUV9SWF9WTURRX0ZMQUcsCisJUlRFX0VUSF9NUV9SWF9WTURR X1JTUyA9IFJURV9FVEhfTVFfUlhfUlNTX0ZMQUcgfCBSVEVfRVRIX01RX1JYX1ZNRFFfRkxBRywK IAkvKiogVXNlIFZNRHErRENCIHRvIHJvdXRlIHRyYWZmaWMgdG8gcXVldWVzICovCi0JRVRIX01R X1JYX1ZNRFFfRENCID0gRVRIX01RX1JYX1ZNRFFfRkxBRyB8IEVUSF9NUV9SWF9EQ0JfRkxBRywK KwlSVEVfRVRIX01RX1JYX1ZNRFFfRENCID0gUlRFX0VUSF9NUV9SWF9WTURRX0ZMQUcgfCBSVEVf RVRIX01RX1JYX0RDQl9GTEFHLAogCS8qKiBFbmFibGUgYm90aCBWTURxIGFuZCBEQ0IgaW4gVk1E cSAqLwotCUVUSF9NUV9SWF9WTURRX0RDQl9SU1MgPSBFVEhfTVFfUlhfUlNTX0ZMQUcgfCBFVEhf TVFfUlhfRENCX0ZMQUcgfAotCQkJCSBFVEhfTVFfUlhfVk1EUV9GTEFHLAorCVJURV9FVEhfTVFf UlhfVk1EUV9EQ0JfUlNTID0gUlRFX0VUSF9NUV9SWF9SU1NfRkxBRyB8IFJURV9FVEhfTVFfUlhf RENCX0ZMQUcgfAorCQkJCSBSVEVfRVRIX01RX1JYX1ZNRFFfRkxBRywKIH07CiAKLS8qKgotICog Zm9yIFJ4IG1xIG1vZGUgYmFja3dhcmQgY29tcGF0aWJsZQotICovCi0jZGVmaW5lIEVUSF9SU1Mg ICAgICAgICAgICAgICAgICAgICAgIEVUSF9NUV9SWF9SU1MKLSNkZWZpbmUgVk1EUV9EQ0IgICAg ICAgICAgICAgICAgICAgICAgRVRIX01RX1JYX1ZNRFFfRENCCi0jZGVmaW5lIEVUSF9EQ0JfUlgg ICAgICAgICAgICAgICAgICAgIEVUSF9NUV9SWF9EQ0IKKyNkZWZpbmUgRVRIX01RX1JYX05PTkUJ CVJURV9FVEhfTVFfUlhfTk9ORQorI2RlZmluZSBFVEhfTVFfUlhfUlNTCQlSVEVfRVRIX01RX1JY X1JTUworI2RlZmluZSBFVEhfTVFfUlhfRENCCQlSVEVfRVRIX01RX1JYX0RDQgorI2RlZmluZSBF VEhfTVFfUlhfRENCX1JTUwlSVEVfRVRIX01RX1JYX0RDQl9SU1MKKyNkZWZpbmUgRVRIX01RX1JY X1ZNRFFfT05MWQlSVEVfRVRIX01RX1JYX1ZNRFFfT05MWQorI2RlZmluZSBFVEhfTVFfUlhfVk1E UV9SU1MJUlRFX0VUSF9NUV9SWF9WTURRX1JTUworI2RlZmluZSBFVEhfTVFfUlhfVk1EUV9EQ0IJ UlRFX0VUSF9NUV9SWF9WTURRX0RDQgorI2RlZmluZSBFVEhfTVFfUlhfVk1EUV9EQ0JfUlNTCVJU RV9FVEhfTVFfUlhfVk1EUV9EQ0JfUlNTCiAKIC8qKgogICogQSBzZXQgb2YgdmFsdWVzIHRvIGlk ZW50aWZ5IHdoYXQgbWV0aG9kIGlzIHRvIGJlIHVzZWQgdG8gdHJhbnNtaXQKICAqIHBhY2tldHMg dXNpbmcgbXVsdGktVENzLgogICovCiBlbnVtIHJ0ZV9ldGhfdHhfbXFfbW9kZSB7Ci0JRVRIX01R X1RYX05PTkUgICAgPSAwLCAgLyoqPCBJdCBpcyBpbiBuZWl0aGVyIERDQiBub3IgVlQgbW9kZS4g Ki8KLQlFVEhfTVFfVFhfRENCLCAgICAgICAgICAvKio8IEZvciBUeCBzaWRlLG9ubHkgRENCIGlz IG9uLiAqLwotCUVUSF9NUV9UWF9WTURRX0RDQiwJLyoqPCBGb3IgVHggc2lkZSxib3RoIERDQiBh bmQgVlQgaXMgb24uICovCi0JRVRIX01RX1RYX1ZNRFFfT05MWSwgICAgLyoqPCBPbmx5IFZUIG9u LCBubyBEQ0IgKi8KKwlSVEVfRVRIX01RX1RYX05PTkUgICAgPSAwLCAgLyoqPCBJdCBpcyBpbiBu ZWl0aGVyIERDQiBub3IgVlQgbW9kZS4gKi8KKwlSVEVfRVRIX01RX1RYX0RDQiwgICAgICAgICAg LyoqPCBGb3IgVHggc2lkZSxvbmx5IERDQiBpcyBvbi4gKi8KKwlSVEVfRVRIX01RX1RYX1ZNRFFf RENCLCAgICAgLyoqPCBGb3IgVHggc2lkZSxib3RoIERDQiBhbmQgVlQgaXMgb24uICovCisJUlRF X0VUSF9NUV9UWF9WTURRX09OTFksICAgIC8qKjwgT25seSBWVCBvbiwgbm8gRENCICovCiB9Owot Ci0vKioKLSAqIGZvciBUeCBtcSBtb2RlIGJhY2t3YXJkIGNvbXBhdGlibGUKLSAqLwotI2RlZmlu ZSBFVEhfRENCX05PTkUgICAgICAgICAgICAgICAgRVRIX01RX1RYX05PTkUKLSNkZWZpbmUgRVRI X1ZNRFFfRENCX1RYICAgICAgICAgICAgIEVUSF9NUV9UWF9WTURRX0RDQgotI2RlZmluZSBFVEhf RENCX1RYICAgICAgICAgICAgICAgICAgRVRIX01RX1RYX0RDQgorI2RlZmluZSBFVEhfTVFfVFhf Tk9ORQkJUlRFX0VUSF9NUV9UWF9OT05FCisjZGVmaW5lIEVUSF9NUV9UWF9EQ0IJCVJURV9FVEhf TVFfVFhfRENCCisjZGVmaW5lIEVUSF9NUV9UWF9WTURRX0RDQglSVEVfRVRIX01RX1RYX1ZNRFFf RENCCisjZGVmaW5lIEVUSF9NUV9UWF9WTURRX09OTFkJUlRFX0VUSF9NUV9UWF9WTURRX09OTFkK IAogLyoqCiAgKiBBIHN0cnVjdHVyZSB1c2VkIHRvIGNvbmZpZ3VyZSB0aGUgUnggZmVhdHVyZXMg b2YgYW4gRXRoZXJuZXQgcG9ydC4KQEAgLTQzOCwxMiArNDc4LDE3IEBAIHN0cnVjdCBydGVfZXRo X3J4bW9kZSB7CiAgKiBOb3RlIHRoYXQgc2luZ2xlIFZMQU4gaXMgdHJlYXRlZCB0aGUgc2FtZSBh cyBpbm5lciBWTEFOLgogICovCiBlbnVtIHJ0ZV92bGFuX3R5cGUgewotCUVUSF9WTEFOX1RZUEVf VU5LTk9XTiA9IDAsCi0JRVRIX1ZMQU5fVFlQRV9JTk5FUiwgLyoqPCBJbm5lciBWTEFOLiAqLwot CUVUSF9WTEFOX1RZUEVfT1VURVIsIC8qKjwgU2luZ2xlIFZMQU4sIG9yIG91dGVyIFZMQU4uICov Ci0JRVRIX1ZMQU5fVFlQRV9NQVgsCisJUlRFX0VUSF9WTEFOX1RZUEVfVU5LTk9XTiA9IDAsCisJ UlRFX0VUSF9WTEFOX1RZUEVfSU5ORVIsIC8qKjwgSW5uZXIgVkxBTi4gKi8KKwlSVEVfRVRIX1ZM QU5fVFlQRV9PVVRFUiwgLyoqPCBTaW5nbGUgVkxBTiwgb3Igb3V0ZXIgVkxBTi4gKi8KKwlSVEVf RVRIX1ZMQU5fVFlQRV9NQVgsCiB9OwogCisjZGVmaW5lIEVUSF9WTEFOX1RZUEVfVU5LTk9XTglS VEVfRVRIX1ZMQU5fVFlQRV9VTktOT1dOCisjZGVmaW5lIEVUSF9WTEFOX1RZUEVfSU5ORVIJUlRF X0VUSF9WTEFOX1RZUEVfSU5ORVIKKyNkZWZpbmUgRVRIX1ZMQU5fVFlQRV9PVVRFUglSVEVfRVRI X1ZMQU5fVFlQRV9PVVRFUgorI2RlZmluZSBFVEhfVkxBTl9UWVBFX01BWAlSVEVfRVRIX1ZMQU5f VFlQRV9NQVgKKwogLyoqCiAgKiBBIHN0cnVjdHVyZSB1c2VkIHRvIGRlc2NyaWJlIGEgVkxBTiBm aWx0ZXIuCiAgKiBJZiB0aGUgYml0IGNvcnJlc3BvbmRpbmcgdG8gYSBWSUQgaXMgc2V0LCBzdWNo IFZJRCBpcyBvbi4KQEAgLTUxNCwzOCArNTU5LDcwIEBAIHN0cnVjdCBydGVfZXRoX3Jzc19jb25m IHsKICAqIEJlbG93IG1hY3JvcyBhcmUgZGVmaW5lZCBmb3IgUlNTIG9mZmxvYWQgdHlwZXMsIHRo ZXkgY2FuIGJlIHVzZWQgdG8KICAqIGZpbGwgcnRlX2V0aF9yc3NfY29uZi5yc3NfaGYgb3IgcnRl X2Zsb3dfYWN0aW9uX3Jzcy50eXBlcy4KICAqLwotI2RlZmluZSBFVEhfUlNTX0lQVjQgICAgICAg ICAgICAgICBSVEVfQklUNjQoMikKLSNkZWZpbmUgRVRIX1JTU19GUkFHX0lQVjQgICAgICAgICAg UlRFX0JJVDY0KDMpCi0jZGVmaW5lIEVUSF9SU1NfTk9ORlJBR19JUFY0X1RDUCAgIFJURV9CSVQ2 NCg0KQotI2RlZmluZSBFVEhfUlNTX05PTkZSQUdfSVBWNF9VRFAgICBSVEVfQklUNjQoNSkKLSNk ZWZpbmUgRVRIX1JTU19OT05GUkFHX0lQVjRfU0NUUCAgUlRFX0JJVDY0KDYpCi0jZGVmaW5lIEVU SF9SU1NfTk9ORlJBR19JUFY0X09USEVSIFJURV9CSVQ2NCg3KQotI2RlZmluZSBFVEhfUlNTX0lQ VjYgICAgICAgICAgICAgICBSVEVfQklUNjQoOCkKLSNkZWZpbmUgRVRIX1JTU19GUkFHX0lQVjYg ICAgICAgICAgUlRFX0JJVDY0KDkpCi0jZGVmaW5lIEVUSF9SU1NfTk9ORlJBR19JUFY2X1RDUCAg IFJURV9CSVQ2NCgxMCkKLSNkZWZpbmUgRVRIX1JTU19OT05GUkFHX0lQVjZfVURQICAgUlRFX0JJ VDY0KDExKQotI2RlZmluZSBFVEhfUlNTX05PTkZSQUdfSVBWNl9TQ1RQICBSVEVfQklUNjQoMTIp Ci0jZGVmaW5lIEVUSF9SU1NfTk9ORlJBR19JUFY2X09USEVSIFJURV9CSVQ2NCgxMykKLSNkZWZp bmUgRVRIX1JTU19MMl9QQVlMT0FEICAgICAgICAgUlRFX0JJVDY0KDE0KQotI2RlZmluZSBFVEhf UlNTX0lQVjZfRVggICAgICAgICAgICBSVEVfQklUNjQoMTUpCi0jZGVmaW5lIEVUSF9SU1NfSVBW Nl9UQ1BfRVggICAgICAgIFJURV9CSVQ2NCgxNikKLSNkZWZpbmUgRVRIX1JTU19JUFY2X1VEUF9F WCAgICAgICAgUlRFX0JJVDY0KDE3KQotI2RlZmluZSBFVEhfUlNTX1BPUlQgICAgICAgICAgICAg ICBSVEVfQklUNjQoMTgpCi0jZGVmaW5lIEVUSF9SU1NfVlhMQU4gICAgICAgICAgICAgIFJURV9C SVQ2NCgxOSkKLSNkZWZpbmUgRVRIX1JTU19HRU5FVkUgICAgICAgICAgICAgUlRFX0JJVDY0KDIw KQotI2RlZmluZSBFVEhfUlNTX05WR1JFICAgICAgICAgICAgICBSVEVfQklUNjQoMjEpCi0jZGVm aW5lIEVUSF9SU1NfR1RQVSAgICAgICAgICAgICAgIFJURV9CSVQ2NCgyMykKLSNkZWZpbmUgRVRI X1JTU19FVEggICAgICAgICAgICAgICAgUlRFX0JJVDY0KDI0KQotI2RlZmluZSBFVEhfUlNTX1Nf VkxBTiAgICAgICAgICAgICBSVEVfQklUNjQoMjUpCi0jZGVmaW5lIEVUSF9SU1NfQ19WTEFOICAg ICAgICAgICAgIFJURV9CSVQ2NCgyNikKLSNkZWZpbmUgRVRIX1JTU19FU1AgICAgICAgICAgICAg ICAgUlRFX0JJVDY0KDI3KQotI2RlZmluZSBFVEhfUlNTX0FIICAgICAgICAgICAgICAgICBSVEVf QklUNjQoMjgpCi0jZGVmaW5lIEVUSF9SU1NfTDJUUFYzICAgICAgICAgICAgIFJURV9CSVQ2NCgy OSkKLSNkZWZpbmUgRVRIX1JTU19QRkNQICAgICAgICAgICAgICAgUlRFX0JJVDY0KDMwKQotI2Rl ZmluZSBFVEhfUlNTX1BQUE9FICAgICAgICAgICAgICBSVEVfQklUNjQoMzEpCi0jZGVmaW5lIEVU SF9SU1NfRUNQUkkgICAgICAgICAgICAgIFJURV9CSVQ2NCgzMikKLSNkZWZpbmUgRVRIX1JTU19N UExTICAgICAgICAgICAgICAgUlRFX0JJVDY0KDMzKQotI2RlZmluZSBFVEhfUlNTX0lQVjRfQ0hL U1VNICAgICAgICBSVEVfQklUNjQoMzQpCisjZGVmaW5lIFJURV9FVEhfUlNTX0lQVjQgICAgICAg ICAgICAgICBSVEVfQklUNjQoMikKKyNkZWZpbmUgRVRIX1JTU19JUFY0ICAgICAgICAgICAgICAg ICAgIFJURV9FVEhfUlNTX0lQVjQKKyNkZWZpbmUgUlRFX0VUSF9SU1NfRlJBR19JUFY0ICAgICAg ICAgIFJURV9CSVQ2NCgzKQorI2RlZmluZSBFVEhfUlNTX0ZSQUdfSVBWNCAgICAgICAgICAgICAg UlRFX0VUSF9SU1NfRlJBR19JUFY0CisjZGVmaW5lIFJURV9FVEhfUlNTX05PTkZSQUdfSVBWNF9U Q1AgICBSVEVfQklUNjQoNCkKKyNkZWZpbmUgRVRIX1JTU19OT05GUkFHX0lQVjRfVENQICAgICAg IFJURV9FVEhfUlNTX05PTkZSQUdfSVBWNF9UQ1AKKyNkZWZpbmUgUlRFX0VUSF9SU1NfTk9ORlJB R19JUFY0X1VEUCAgIFJURV9CSVQ2NCg1KQorI2RlZmluZSBFVEhfUlNTX05PTkZSQUdfSVBWNF9V RFAgICAgICAgUlRFX0VUSF9SU1NfTk9ORlJBR19JUFY0X1VEUAorI2RlZmluZSBSVEVfRVRIX1JT U19OT05GUkFHX0lQVjRfU0NUUCAgUlRFX0JJVDY0KDYpCisjZGVmaW5lIEVUSF9SU1NfTk9ORlJB R19JUFY0X1NDVFAgICAgICBSVEVfRVRIX1JTU19OT05GUkFHX0lQVjRfU0NUUAorI2RlZmluZSBS VEVfRVRIX1JTU19OT05GUkFHX0lQVjRfT1RIRVIgUlRFX0JJVDY0KDcpCisjZGVmaW5lIEVUSF9S U1NfTk9ORlJBR19JUFY0X09USEVSICAgICBSVEVfRVRIX1JTU19OT05GUkFHX0lQVjRfT1RIRVIK KyNkZWZpbmUgUlRFX0VUSF9SU1NfSVBWNiAgICAgICAgICAgICAgIFJURV9CSVQ2NCg4KQorI2Rl ZmluZSBFVEhfUlNTX0lQVjYgICAgICAgICAgICAgICAgICAgUlRFX0VUSF9SU1NfSVBWNgorI2Rl ZmluZSBSVEVfRVRIX1JTU19GUkFHX0lQVjYgICAgICAgICAgUlRFX0JJVDY0KDkpCisjZGVmaW5l IEVUSF9SU1NfRlJBR19JUFY2ICAgICAgICAgICAgICBSVEVfRVRIX1JTU19GUkFHX0lQVjYKKyNk ZWZpbmUgUlRFX0VUSF9SU1NfTk9ORlJBR19JUFY2X1RDUCAgIFJURV9CSVQ2NCgxMCkKKyNkZWZp bmUgRVRIX1JTU19OT05GUkFHX0lQVjZfVENQICAgICAgIFJURV9FVEhfUlNTX05PTkZSQUdfSVBW Nl9UQ1AKKyNkZWZpbmUgUlRFX0VUSF9SU1NfTk9ORlJBR19JUFY2X1VEUCAgIFJURV9CSVQ2NCgx MSkKKyNkZWZpbmUgRVRIX1JTU19OT05GUkFHX0lQVjZfVURQICAgICAgIFJURV9FVEhfUlNTX05P TkZSQUdfSVBWNl9VRFAKKyNkZWZpbmUgUlRFX0VUSF9SU1NfTk9ORlJBR19JUFY2X1NDVFAgIFJU RV9CSVQ2NCgxMikKKyNkZWZpbmUgRVRIX1JTU19OT05GUkFHX0lQVjZfU0NUUCAgICAgIFJURV9F VEhfUlNTX05PTkZSQUdfSVBWNl9TQ1RQCisjZGVmaW5lIFJURV9FVEhfUlNTX05PTkZSQUdfSVBW Nl9PVEhFUiBSVEVfQklUNjQoMTMpCisjZGVmaW5lIEVUSF9SU1NfTk9ORlJBR19JUFY2X09USEVS ICAgICBSVEVfRVRIX1JTU19OT05GUkFHX0lQVjZfT1RIRVIKKyNkZWZpbmUgUlRFX0VUSF9SU1Nf TDJfUEFZTE9BRCAgICAgICAgIFJURV9CSVQ2NCgxNCkKKyNkZWZpbmUgRVRIX1JTU19MMl9QQVlM T0FEICAgICAgICAgICAgIFJURV9FVEhfUlNTX0wyX1BBWUxPQUQKKyNkZWZpbmUgUlRFX0VUSF9S U1NfSVBWNl9FWCAgICAgICAgICAgIFJURV9CSVQ2NCgxNSkKKyNkZWZpbmUgRVRIX1JTU19JUFY2 X0VYICAgICAgICAgICAgICAgIFJURV9FVEhfUlNTX0lQVjZfRVgKKyNkZWZpbmUgUlRFX0VUSF9S U1NfSVBWNl9UQ1BfRVggICAgICAgIFJURV9CSVQ2NCgxNikKKyNkZWZpbmUgRVRIX1JTU19JUFY2 X1RDUF9FWCAgICAgICAgICAgIFJURV9FVEhfUlNTX0lQVjZfVENQX0VYCisjZGVmaW5lIFJURV9F VEhfUlNTX0lQVjZfVURQX0VYICAgICAgICBSVEVfQklUNjQoMTcpCisjZGVmaW5lIEVUSF9SU1Nf SVBWNl9VRFBfRVggICAgICAgICAgICBSVEVfRVRIX1JTU19JUFY2X1VEUF9FWAorI2RlZmluZSBS VEVfRVRIX1JTU19QT1JUICAgICAgICAgICAgICAgUlRFX0JJVDY0KDE4KQorI2RlZmluZSBFVEhf UlNTX1BPUlQgICAgICAgICAgICAgICAgICAgUlRFX0VUSF9SU1NfUE9SVAorI2RlZmluZSBSVEVf RVRIX1JTU19WWExBTiAgICAgICAgICAgICAgUlRFX0JJVDY0KDE5KQorI2RlZmluZSBFVEhfUlNT X1ZYTEFOICAgICAgICAgICAgICAgICAgUlRFX0VUSF9SU1NfVlhMQU4KKyNkZWZpbmUgUlRFX0VU SF9SU1NfR0VORVZFICAgICAgICAgICAgIFJURV9CSVQ2NCgyMCkKKyNkZWZpbmUgRVRIX1JTU19H RU5FVkUgICAgICAgICAgICAgICAgIFJURV9FVEhfUlNTX0dFTkVWRQorI2RlZmluZSBSVEVfRVRI X1JTU19OVkdSRSAgICAgICAgICAgICAgUlRFX0JJVDY0KDIxKQorI2RlZmluZSBFVEhfUlNTX05W R1JFICAgICAgICAgICAgICAgICAgUlRFX0VUSF9SU1NfTlZHUkUKKyNkZWZpbmUgUlRFX0VUSF9S U1NfR1RQVSAgICAgICAgICAgICAgIFJURV9CSVQ2NCgyMykKKyNkZWZpbmUgRVRIX1JTU19HVFBV ICAgICAgICAgICAgICAgICAgIFJURV9FVEhfUlNTX0dUUFUKKyNkZWZpbmUgUlRFX0VUSF9SU1Nf RVRIICAgICAgICAgICAgICAgIFJURV9CSVQ2NCgyNCkKKyNkZWZpbmUgRVRIX1JTU19FVEggICAg ICAgICAgICAgICAgICAgIFJURV9FVEhfUlNTX0VUSAorI2RlZmluZSBSVEVfRVRIX1JTU19TX1ZM QU4gICAgICAgICAgICAgUlRFX0JJVDY0KDI1KQorI2RlZmluZSBFVEhfUlNTX1NfVkxBTiAgICAg ICAgICAgICAgICAgUlRFX0VUSF9SU1NfU19WTEFOCisjZGVmaW5lIFJURV9FVEhfUlNTX0NfVkxB TiAgICAgICAgICAgICBSVEVfQklUNjQoMjYpCisjZGVmaW5lIEVUSF9SU1NfQ19WTEFOICAgICAg ICAgICAgICAgICBSVEVfRVRIX1JTU19DX1ZMQU4KKyNkZWZpbmUgUlRFX0VUSF9SU1NfRVNQICAg ICAgICAgICAgICAgIFJURV9CSVQ2NCgyNykKKyNkZWZpbmUgRVRIX1JTU19FU1AgICAgICAgICAg ICAgICAgICAgIFJURV9FVEhfUlNTX0VTUAorI2RlZmluZSBSVEVfRVRIX1JTU19BSCAgICAgICAg ICAgICAgICAgUlRFX0JJVDY0KDI4KQorI2RlZmluZSBFVEhfUlNTX0FIICAgICAgICAgICAgICAg ICAgICAgUlRFX0VUSF9SU1NfQUgKKyNkZWZpbmUgUlRFX0VUSF9SU1NfTDJUUFYzICAgICAgICAg ICAgIFJURV9CSVQ2NCgyOSkKKyNkZWZpbmUgRVRIX1JTU19MMlRQVjMgICAgICAgICAgICAgICAg IFJURV9FVEhfUlNTX0wyVFBWMworI2RlZmluZSBSVEVfRVRIX1JTU19QRkNQICAgICAgICAgICAg ICAgUlRFX0JJVDY0KDMwKQorI2RlZmluZSBFVEhfUlNTX1BGQ1AgICAgICAgICAgICAgICAgICAg UlRFX0VUSF9SU1NfUEZDUAorI2RlZmluZSBSVEVfRVRIX1JTU19QUFBPRSAgICAgICAgICAgICAg UlRFX0JJVDY0KDMxKQorI2RlZmluZSBFVEhfUlNTX1BQUE9FICAgICAgICAgICAgICAgICAgUlRF X0VUSF9SU1NfUFBQT0UKKyNkZWZpbmUgUlRFX0VUSF9SU1NfRUNQUkkgICAgICAgICAgICAgIFJU RV9CSVQ2NCgzMikKKyNkZWZpbmUgRVRIX1JTU19FQ1BSSSAgICAgICAgICAgICAgICAgIFJURV9F VEhfUlNTX0VDUFJJCisjZGVmaW5lIFJURV9FVEhfUlNTX01QTFMgICAgICAgICAgICAgICBSVEVf QklUNjQoMzMpCisjZGVmaW5lIEVUSF9SU1NfTVBMUyAgICAgICAgICAgICAgICAgICBSVEVfRVRI X1JTU19NUExTCisjZGVmaW5lIFJURV9FVEhfUlNTX0lQVjRfQ0hLU1VNICAgICAgICBSVEVfQklU NjQoMzQpCisjZGVmaW5lIEVUSF9SU1NfSVBWNF9DSEtTVU0gICAgICAgICAgICBSVEVfRVRIX1JT U19JUFY0X0NIS1NVTQogCiAvKioKICAqIFRoZSBFVEhfUlNTX0w0X0NIS1NVTSB3b3JrcyBvbiBj aGVja3N1bSBmaWVsZCBvZiBhbnkgTDQgaGVhZGVyLgpAQCAtNTU0LDQxICs2MzEsNDggQEAgc3Ry dWN0IHJ0ZV9ldGhfcnNzX2NvbmYgewogICogY2hlY2tzdW0gdHlwZSBmb3IgY29uc3RydWN0aW5n IHRoZSB1c2Ugb2YgUlNTIG9mZmxvYWQgYml0cy4KICAqCiAgKiBEdWUgdG8gYWJvdmUgcmVhc29u LCBzb21lIG9sZCBBUElzIChhbmQgY29uZmlndXJhdGlvbikgZG9uJ3Qgc3VwcG9ydAotICogRVRI X1JTU19MNF9DSEtTVU0uIFRoZSBydGVfZmxvdyBSU1MgQVBJIHN1cHBvcnRzIGl0LgorICogUlRF X0VUSF9SU1NfTDRfQ0hLU1VNLiBUaGUgcnRlX2Zsb3cgUlNTIEFQSSBzdXBwb3J0cyBpdC4KICAq CiAgKiBGb3IgdGhlIGNhc2UgdGhhdCBjaGVja3N1bSBpcyBub3QgdXNlZCBpbiBhbiBVRFAgaGVh ZGVyLAogICogaXQgdGFrZXMgdGhlIHJlc2VydmVkIHZhbHVlIDAgYXMgaW5wdXQgZm9yIHRoZSBo YXNoIGZ1bmN0aW9uLgogICovCi0jZGVmaW5lIEVUSF9SU1NfTDRfQ0hLU1VNICAgICAgICAgIFJU RV9CSVQ2NCgzNSkKKyNkZWZpbmUgUlRFX0VUSF9SU1NfTDRfQ0hLU1VNICAgICAgICAgIFJURV9C SVQ2NCgzNSkKKyNkZWZpbmUgRVRIX1JTU19MNF9DSEtTVU0gICAgICAgICAgICAgIFJURV9FVEhf UlNTX0w0X0NIS1NVTQogCiAvKgotICogV2UgdXNlIHRoZSBmb2xsb3dpbmcgbWFjcm9zIHRvIGNv bWJpbmUgd2l0aCBhYm92ZSBFVEhfUlNTXyogZm9yCisgKiBXZSB1c2UgdGhlIGZvbGxvd2luZyBt YWNyb3MgdG8gY29tYmluZSB3aXRoIGFib3ZlIFJURV9FVEhfUlNTXyogZm9yCiAgKiBtb3JlIHNw ZWNpZmljIGlucHV0IHNldCBzZWxlY3Rpb24uIFRoZXNlIGJpdHMgYXJlIGRlZmluZWQgc3RhcnRp bmcKICAqIGZyb20gdGhlIGhpZ2ggZW5kIG9mIHRoZSA2NCBiaXRzLgotICogTm90ZTogSWYgd2Ug dXNlIGFib3ZlIEVUSF9SU1NfKiB3aXRob3V0IFNSQy9EU1RfT05MWSwgaXQgcmVwcmVzZW50cwor ICogTm90ZTogSWYgd2UgdXNlIGFib3ZlIFJURV9FVEhfUlNTXyogd2l0aG91dCBTUkMvRFNUX09O TFksIGl0IHJlcHJlc2VudHMKICAqIGJvdGggU1JDIGFuZCBEU1QgYXJlIHRha2VuIGludG8gYWNj b3VudC4gSWYgU1JDX09OTFkgYW5kIERTVF9PTkxZIG9mCiAgKiB0aGUgc2FtZSBsZXZlbCBhcmUg dXNlZCBzaW11bHRhbmVvdXNseSwgaXQgaXMgdGhlIHNhbWUgY2FzZSBhcyBub25lIG9mCiAgKiB0 aGVtIGFyZSBhZGRlZC4KICAqLwotI2RlZmluZSBFVEhfUlNTX0wzX1NSQ19PTkxZICAgICAgICBS VEVfQklUNjQoNjMpCi0jZGVmaW5lIEVUSF9SU1NfTDNfRFNUX09OTFkgICAgICAgIFJURV9CSVQ2 NCg2MikKLSNkZWZpbmUgRVRIX1JTU19MNF9TUkNfT05MWSAgICAgICAgUlRFX0JJVDY0KDYxKQot I2RlZmluZSBFVEhfUlNTX0w0X0RTVF9PTkxZICAgICAgICBSVEVfQklUNjQoNjApCi0jZGVmaW5l IEVUSF9SU1NfTDJfU1JDX09OTFkgICAgICAgIFJURV9CSVQ2NCg1OSkKLSNkZWZpbmUgRVRIX1JT U19MMl9EU1RfT05MWSAgICAgICAgUlRFX0JJVDY0KDU4KQorI2RlZmluZSBSVEVfRVRIX1JTU19M M19TUkNfT05MWSAgICAgICAgUlRFX0JJVDY0KDYzKQorI2RlZmluZSBFVEhfUlNTX0wzX1NSQ19P TkxZICAgICAgICAgICAgUlRFX0VUSF9SU1NfTDNfU1JDX09OTFkKKyNkZWZpbmUgUlRFX0VUSF9S U1NfTDNfRFNUX09OTFkgICAgICAgIFJURV9CSVQ2NCg2MikKKyNkZWZpbmUgRVRIX1JTU19MM19E U1RfT05MWSAgICAgICAgICAgIFJURV9FVEhfUlNTX0wzX0RTVF9PTkxZCisjZGVmaW5lIFJURV9F VEhfUlNTX0w0X1NSQ19PTkxZICAgICAgICBSVEVfQklUNjQoNjEpCisjZGVmaW5lIEVUSF9SU1Nf TDRfU1JDX09OTFkgICAgICAgICAgICBSVEVfRVRIX1JTU19MNF9TUkNfT05MWQorI2RlZmluZSBS VEVfRVRIX1JTU19MNF9EU1RfT05MWSAgICAgICAgUlRFX0JJVDY0KDYwKQorI2RlZmluZSBFVEhf UlNTX0w0X0RTVF9PTkxZICAgICAgICAgICAgUlRFX0VUSF9SU1NfTDRfRFNUX09OTFkKKyNkZWZp bmUgUlRFX0VUSF9SU1NfTDJfU1JDX09OTFkgICAgICAgIFJURV9CSVQ2NCg1OSkKKyNkZWZpbmUg RVRIX1JTU19MMl9TUkNfT05MWSAgICAgICAgICAgIFJURV9FVEhfUlNTX0wyX1NSQ19PTkxZCisj ZGVmaW5lIFJURV9FVEhfUlNTX0wyX0RTVF9PTkxZICAgICAgICBSVEVfQklUNjQoNTgpCisjZGVm aW5lIEVUSF9SU1NfTDJfRFNUX09OTFkgICAgICAgICAgICBSVEVfRVRIX1JTU19MMl9EU1RfT05M WQogCiAvKgogICogT25seSBzZWxlY3QgSVBWNiBhZGRyZXNzIHByZWZpeCBhcyBSU1MgaW5wdXQg c2V0IGFjY29yZGluZyB0bwotICogaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzYwNTIK LSAqIE11c3QgYmUgY29tYmluZWQgd2l0aCBFVEhfUlNTX0lQVjYsIEVUSF9SU1NfTk9ORlJBR19J UFY2X1VEUCwKLSAqIEVUSF9SU1NfTk9ORlJBR19JUFY2X1RDUCwgRVRIX1JTU19OT05GUkFHX0lQ VjZfU0NUUC4KKyAqIGh0dHBzOnRvb2xzLmlldGYub3JnL2h0bWwvcmZjNjA1MgorICogTXVzdCBi ZSBjb21iaW5lZCB3aXRoIFJURV9FVEhfUlNTX0lQVjYsIFJURV9FVEhfUlNTX05PTkZSQUdfSVBW Nl9VRFAsCisgKiBSVEVfRVRIX1JTU19OT05GUkFHX0lQVjZfVENQLCBSVEVfRVRIX1JTU19OT05G UkFHX0lQVjZfU0NUUC4KICAqLwotI2RlZmluZSBSVEVfRVRIX1JTU19MM19QUkUzMgkgICBSVEVf QklUNjQoNTcpCi0jZGVmaW5lIFJURV9FVEhfUlNTX0wzX1BSRTQwCSAgIFJURV9CSVQ2NCg1NikK LSNkZWZpbmUgUlRFX0VUSF9SU1NfTDNfUFJFNDgJICAgUlRFX0JJVDY0KDU1KQotI2RlZmluZSBS VEVfRVRIX1JTU19MM19QUkU1NgkgICBSVEVfQklUNjQoNTQpCi0jZGVmaW5lIFJURV9FVEhfUlNT X0wzX1BSRTY0CSAgIFJURV9CSVQ2NCg1MykKLSNkZWZpbmUgUlRFX0VUSF9SU1NfTDNfUFJFOTYJ ICAgUlRFX0JJVDY0KDUyKQorI2RlZmluZSBSVEVfRVRIX1JTU19MM19QUkUzMiAgICAgICAgICAg UlRFX0JJVDY0KDU3KQorI2RlZmluZSBSVEVfRVRIX1JTU19MM19QUkU0MCAgICAgICAgICAgUlRF X0JJVDY0KDU2KQorI2RlZmluZSBSVEVfRVRIX1JTU19MM19QUkU0OCAgICAgICAgICAgUlRFX0JJ VDY0KDU1KQorI2RlZmluZSBSVEVfRVRIX1JTU19MM19QUkU1NiAgICAgICAgICAgUlRFX0JJVDY0 KDU0KQorI2RlZmluZSBSVEVfRVRIX1JTU19MM19QUkU2NCAgICAgICAgICAgUlRFX0JJVDY0KDUz KQorI2RlZmluZSBSVEVfRVRIX1JTU19MM19QUkU5NiAgICAgICAgICAgUlRFX0JJVDY0KDUyKQog CiAvKgogICogVXNlIHRoZSBmb2xsb3dpbmcgbWFjcm9zIHRvIGNvbWJpbmUgd2l0aCB0aGUgYWJv dmUgbGF5ZXJzCkBAIC02MzMsMjE5ICs3MjIsMzEyIEBAIHN0cnVjdCBydGVfZXRoX3Jzc19jb25m IHsKIHN0YXRpYyBpbmxpbmUgdWludDY0X3QKIHJ0ZV9ldGhfcnNzX2hmX3JlZmluZSh1aW50NjRf dCByc3NfaGYpCiB7Ci0JaWYgKChyc3NfaGYgJiBFVEhfUlNTX0wzX1NSQ19PTkxZKSAmJiAocnNz X2hmICYgRVRIX1JTU19MM19EU1RfT05MWSkpCi0JCXJzc19oZiAmPSB+KEVUSF9SU1NfTDNfU1JD X09OTFkgfCBFVEhfUlNTX0wzX0RTVF9PTkxZKTsKKwlpZiAoKHJzc19oZiAmIFJURV9FVEhfUlNT X0wzX1NSQ19PTkxZKSAmJiAocnNzX2hmICYgUlRFX0VUSF9SU1NfTDNfRFNUX09OTFkpKQorCQly c3NfaGYgJj0gfihSVEVfRVRIX1JTU19MM19TUkNfT05MWSB8IFJURV9FVEhfUlNTX0wzX0RTVF9P TkxZKTsKIAotCWlmICgocnNzX2hmICYgRVRIX1JTU19MNF9TUkNfT05MWSkgJiYgKHJzc19oZiAm IEVUSF9SU1NfTDRfRFNUX09OTFkpKQotCQlyc3NfaGYgJj0gfihFVEhfUlNTX0w0X1NSQ19PTkxZ IHwgRVRIX1JTU19MNF9EU1RfT05MWSk7CisJaWYgKChyc3NfaGYgJiBSVEVfRVRIX1JTU19MNF9T UkNfT05MWSkgJiYgKHJzc19oZiAmIFJURV9FVEhfUlNTX0w0X0RTVF9PTkxZKSkKKwkJcnNzX2hm ICY9IH4oUlRFX0VUSF9SU1NfTDRfU1JDX09OTFkgfCBSVEVfRVRIX1JTU19MNF9EU1RfT05MWSk7 CiAKIAlyZXR1cm4gcnNzX2hmOwogfQogCi0jZGVmaW5lIEVUSF9SU1NfSVBWNl9QUkUzMiAoIFwK LQkJRVRIX1JTU19JUFY2IHwgXAorI2RlZmluZSBSVEVfRVRIX1JTU19JUFY2X1BSRTMyICggXAor CQlSVEVfRVRIX1JTU19JUFY2IHwgXAogCQlSVEVfRVRIX1JTU19MM19QUkUzMikKKyNkZWZpbmUg RVRIX1JTU19JUFY2X1BSRTMyCVJURV9FVEhfUlNTX0lQVjZfUFJFMzIKIAotI2RlZmluZSBFVEhf UlNTX0lQVjZfUFJFNDAgKCBcCi0JCUVUSF9SU1NfSVBWNiB8IFwKKyNkZWZpbmUgUlRFX0VUSF9S U1NfSVBWNl9QUkU0MCAoIFwKKwkJUlRFX0VUSF9SU1NfSVBWNiB8IFwKIAkJUlRFX0VUSF9SU1Nf TDNfUFJFNDApCisjZGVmaW5lIEVUSF9SU1NfSVBWNl9QUkU0MAlSVEVfRVRIX1JTU19JUFY2X1BS RTQwCiAKLSNkZWZpbmUgRVRIX1JTU19JUFY2X1BSRTQ4ICggXAotCQlFVEhfUlNTX0lQVjYgfCBc CisjZGVmaW5lIFJURV9FVEhfUlNTX0lQVjZfUFJFNDggKCBcCisJCVJURV9FVEhfUlNTX0lQVjYg fCBcCiAJCVJURV9FVEhfUlNTX0wzX1BSRTQ4KQorI2RlZmluZSBFVEhfUlNTX0lQVjZfUFJFNDgJ UlRFX0VUSF9SU1NfSVBWNl9QUkU0OAogCi0jZGVmaW5lIEVUSF9SU1NfSVBWNl9QUkU1NiAoIFwK LQkJRVRIX1JTU19JUFY2IHwgXAorI2RlZmluZSBSVEVfRVRIX1JTU19JUFY2X1BSRTU2ICggXAor CQlSVEVfRVRIX1JTU19JUFY2IHwgXAogCQlSVEVfRVRIX1JTU19MM19QUkU1NikKKyNkZWZpbmUg RVRIX1JTU19JUFY2X1BSRTU2CVJURV9FVEhfUlNTX0lQVjZfUFJFNTYKIAotI2RlZmluZSBFVEhf UlNTX0lQVjZfUFJFNjQgKCBcCi0JCUVUSF9SU1NfSVBWNiB8IFwKKyNkZWZpbmUgUlRFX0VUSF9S U1NfSVBWNl9QUkU2NCAoIFwKKwkJUlRFX0VUSF9SU1NfSVBWNiB8IFwKIAkJUlRFX0VUSF9SU1Nf TDNfUFJFNjQpCisjZGVmaW5lIEVUSF9SU1NfSVBWNl9QUkU2NAlSVEVfRVRIX1JTU19JUFY2X1BS RTY0CiAKLSNkZWZpbmUgRVRIX1JTU19JUFY2X1BSRTk2ICggXAotCQlFVEhfUlNTX0lQVjYgfCBc CisjZGVmaW5lIFJURV9FVEhfUlNTX0lQVjZfUFJFOTYgKCBcCisJCVJURV9FVEhfUlNTX0lQVjYg fCBcCiAJCVJURV9FVEhfUlNTX0wzX1BSRTk2KQorI2RlZmluZSBFVEhfUlNTX0lQVjZfUFJFOTYJ UlRFX0VUSF9SU1NfSVBWNl9QUkU5NgogCi0jZGVmaW5lIEVUSF9SU1NfSVBWNl9QUkUzMl9VRFAg KCBcCi0JCUVUSF9SU1NfTk9ORlJBR19JUFY2X1VEUCB8IFwKKyNkZWZpbmUgUlRFX0VUSF9SU1Nf SVBWNl9QUkUzMl9VRFAgKCBcCisJCVJURV9FVEhfUlNTX05PTkZSQUdfSVBWNl9VRFAgfCBcCiAJ CVJURV9FVEhfUlNTX0wzX1BSRTMyKQorI2RlZmluZSBFVEhfUlNTX0lQVjZfUFJFMzJfVURQCVJU RV9FVEhfUlNTX0lQVjZfUFJFMzJfVURQCiAKLSNkZWZpbmUgRVRIX1JTU19JUFY2X1BSRTQwX1VE UCAoIFwKLQkJRVRIX1JTU19OT05GUkFHX0lQVjZfVURQIHwgXAorI2RlZmluZSBSVEVfRVRIX1JT U19JUFY2X1BSRTQwX1VEUCAoIFwKKwkJUlRFX0VUSF9SU1NfTk9ORlJBR19JUFY2X1VEUCB8IFwK IAkJUlRFX0VUSF9SU1NfTDNfUFJFNDApCisjZGVmaW5lIEVUSF9SU1NfSVBWNl9QUkU0MF9VRFAJ UlRFX0VUSF9SU1NfSVBWNl9QUkU0MF9VRFAKIAotI2RlZmluZSBFVEhfUlNTX0lQVjZfUFJFNDhf VURQICggXAotCQlFVEhfUlNTX05PTkZSQUdfSVBWNl9VRFAgfCBcCisjZGVmaW5lIFJURV9FVEhf UlNTX0lQVjZfUFJFNDhfVURQICggXAorCQlSVEVfRVRIX1JTU19OT05GUkFHX0lQVjZfVURQIHwg XAogCQlSVEVfRVRIX1JTU19MM19QUkU0OCkKKyNkZWZpbmUgRVRIX1JTU19JUFY2X1BSRTQ4X1VE UAlSVEVfRVRIX1JTU19JUFY2X1BSRTQ4X1VEUAogCi0jZGVmaW5lIEVUSF9SU1NfSVBWNl9QUkU1 Nl9VRFAgKCBcCi0JCUVUSF9SU1NfTk9ORlJBR19JUFY2X1VEUCB8IFwKKyNkZWZpbmUgUlRFX0VU SF9SU1NfSVBWNl9QUkU1Nl9VRFAgKCBcCisJCVJURV9FVEhfUlNTX05PTkZSQUdfSVBWNl9VRFAg fCBcCiAJCVJURV9FVEhfUlNTX0wzX1BSRTU2KQorI2RlZmluZSBFVEhfUlNTX0lQVjZfUFJFNTZf VURQCVJURV9FVEhfUlNTX0lQVjZfUFJFNTZfVURQCiAKLSNkZWZpbmUgRVRIX1JTU19JUFY2X1BS RTY0X1VEUCAoIFwKLQkJRVRIX1JTU19OT05GUkFHX0lQVjZfVURQIHwgXAorI2RlZmluZSBSVEVf RVRIX1JTU19JUFY2X1BSRTY0X1VEUCAoIFwKKwkJUlRFX0VUSF9SU1NfTk9ORlJBR19JUFY2X1VE UCB8IFwKIAkJUlRFX0VUSF9SU1NfTDNfUFJFNjQpCisjZGVmaW5lIEVUSF9SU1NfSVBWNl9QUkU2 NF9VRFAJUlRFX0VUSF9SU1NfSVBWNl9QUkU2NF9VRFAKIAotI2RlZmluZSBFVEhfUlNTX0lQVjZf UFJFOTZfVURQICggXAotCQlFVEhfUlNTX05PTkZSQUdfSVBWNl9VRFAgfCBcCisjZGVmaW5lIFJU RV9FVEhfUlNTX0lQVjZfUFJFOTZfVURQICggXAorCQlSVEVfRVRIX1JTU19OT05GUkFHX0lQVjZf VURQIHwgXAogCQlSVEVfRVRIX1JTU19MM19QUkU5NikKKyNkZWZpbmUgRVRIX1JTU19JUFY2X1BS RTk2X1VEUAlSVEVfRVRIX1JTU19JUFY2X1BSRTk2X1VEUAogCi0jZGVmaW5lIEVUSF9SU1NfSVBW Nl9QUkUzMl9UQ1AgKCBcCi0JCUVUSF9SU1NfTk9ORlJBR19JUFY2X1RDUCB8IFwKKyNkZWZpbmUg UlRFX0VUSF9SU1NfSVBWNl9QUkUzMl9UQ1AgKCBcCisJCVJURV9FVEhfUlNTX05PTkZSQUdfSVBW Nl9UQ1AgfCBcCiAJCVJURV9FVEhfUlNTX0wzX1BSRTMyKQorI2RlZmluZSBFVEhfUlNTX0lQVjZf UFJFMzJfVENQCVJURV9FVEhfUlNTX0lQVjZfUFJFMzJfVENQCiAKLSNkZWZpbmUgRVRIX1JTU19J UFY2X1BSRTQwX1RDUCAoIFwKLQkJRVRIX1JTU19OT05GUkFHX0lQVjZfVENQIHwgXAorI2RlZmlu ZSBSVEVfRVRIX1JTU19JUFY2X1BSRTQwX1RDUCAoIFwKKwkJUlRFX0VUSF9SU1NfTk9ORlJBR19J UFY2X1RDUCB8IFwKIAkJUlRFX0VUSF9SU1NfTDNfUFJFNDApCisjZGVmaW5lIEVUSF9SU1NfSVBW Nl9QUkU0MF9UQ1AJUlRFX0VUSF9SU1NfSVBWNl9QUkU0MF9UQ1AKIAotI2RlZmluZSBFVEhfUlNT X0lQVjZfUFJFNDhfVENQICggXAotCQlFVEhfUlNTX05PTkZSQUdfSVBWNl9UQ1AgfCBcCisjZGVm aW5lIFJURV9FVEhfUlNTX0lQVjZfUFJFNDhfVENQICggXAorCQlSVEVfRVRIX1JTU19OT05GUkFH X0lQVjZfVENQIHwgXAogCQlSVEVfRVRIX1JTU19MM19QUkU0OCkKKyNkZWZpbmUgRVRIX1JTU19J UFY2X1BSRTQ4X1RDUAlSVEVfRVRIX1JTU19JUFY2X1BSRTQ4X1RDUAogCi0jZGVmaW5lIEVUSF9S U1NfSVBWNl9QUkU1Nl9UQ1AgKCBcCi0JCUVUSF9SU1NfTk9ORlJBR19JUFY2X1RDUCB8IFwKKyNk ZWZpbmUgUlRFX0VUSF9SU1NfSVBWNl9QUkU1Nl9UQ1AgKCBcCisJCVJURV9FVEhfUlNTX05PTkZS QUdfSVBWNl9UQ1AgfCBcCiAJCVJURV9FVEhfUlNTX0wzX1BSRTU2KQorI2RlZmluZSBFVEhfUlNT X0lQVjZfUFJFNTZfVENQCVJURV9FVEhfUlNTX0lQVjZfUFJFNTZfVENQCiAKLSNkZWZpbmUgRVRI X1JTU19JUFY2X1BSRTY0X1RDUCAoIFwKLQkJRVRIX1JTU19OT05GUkFHX0lQVjZfVENQIHwgXAor I2RlZmluZSBSVEVfRVRIX1JTU19JUFY2X1BSRTY0X1RDUCAoIFwKKwkJUlRFX0VUSF9SU1NfTk9O RlJBR19JUFY2X1RDUCB8IFwKIAkJUlRFX0VUSF9SU1NfTDNfUFJFNjQpCisjZGVmaW5lIEVUSF9S U1NfSVBWNl9QUkU2NF9UQ1AJUlRFX0VUSF9SU1NfSVBWNl9QUkU2NF9UQ1AKIAotI2RlZmluZSBF VEhfUlNTX0lQVjZfUFJFOTZfVENQICggXAotCQlFVEhfUlNTX05PTkZSQUdfSVBWNl9UQ1AgfCBc CisjZGVmaW5lIFJURV9FVEhfUlNTX0lQVjZfUFJFOTZfVENQICggXAorCQlSVEVfRVRIX1JTU19O T05GUkFHX0lQVjZfVENQIHwgXAogCQlSVEVfRVRIX1JTU19MM19QUkU5NikKKyNkZWZpbmUgRVRI X1JTU19JUFY2X1BSRTk2X1RDUAlSVEVfRVRIX1JTU19JUFY2X1BSRTk2X1RDUAogCi0jZGVmaW5l IEVUSF9SU1NfSVBWNl9QUkUzMl9TQ1RQICggXAotCQlFVEhfUlNTX05PTkZSQUdfSVBWNl9TQ1RQ IHwgXAorI2RlZmluZSBSVEVfRVRIX1JTU19JUFY2X1BSRTMyX1NDVFAgKCBcCisJCVJURV9FVEhf UlNTX05PTkZSQUdfSVBWNl9TQ1RQIHwgXAogCQlSVEVfRVRIX1JTU19MM19QUkUzMikKKyNkZWZp bmUgRVRIX1JTU19JUFY2X1BSRTMyX1NDVFAJUlRFX0VUSF9SU1NfSVBWNl9QUkUzMl9TQ1RQCiAK LSNkZWZpbmUgRVRIX1JTU19JUFY2X1BSRTQwX1NDVFAgKCBcCi0JCUVUSF9SU1NfTk9ORlJBR19J UFY2X1NDVFAgfCBcCisjZGVmaW5lIFJURV9FVEhfUlNTX0lQVjZfUFJFNDBfU0NUUCAoIFwKKwkJ UlRFX0VUSF9SU1NfTk9ORlJBR19JUFY2X1NDVFAgfCBcCiAJCVJURV9FVEhfUlNTX0wzX1BSRTQw KQorI2RlZmluZSBFVEhfUlNTX0lQVjZfUFJFNDBfU0NUUAlSVEVfRVRIX1JTU19JUFY2X1BSRTQw X1NDVFAKIAotI2RlZmluZSBFVEhfUlNTX0lQVjZfUFJFNDhfU0NUUCAoIFwKLQkJRVRIX1JTU19O T05GUkFHX0lQVjZfU0NUUCB8IFwKKyNkZWZpbmUgUlRFX0VUSF9SU1NfSVBWNl9QUkU0OF9TQ1RQ ICggXAorCQlSVEVfRVRIX1JTU19OT05GUkFHX0lQVjZfU0NUUCB8IFwKIAkJUlRFX0VUSF9SU1Nf TDNfUFJFNDgpCisjZGVmaW5lIEVUSF9SU1NfSVBWNl9QUkU0OF9TQ1RQCVJURV9FVEhfUlNTX0lQ VjZfUFJFNDhfU0NUUAogCi0jZGVmaW5lIEVUSF9SU1NfSVBWNl9QUkU1Nl9TQ1RQICggXAotCQlF VEhfUlNTX05PTkZSQUdfSVBWNl9TQ1RQIHwgXAorI2RlZmluZSBSVEVfRVRIX1JTU19JUFY2X1BS RTU2X1NDVFAgKCBcCisJCVJURV9FVEhfUlNTX05PTkZSQUdfSVBWNl9TQ1RQIHwgXAogCQlSVEVf RVRIX1JTU19MM19QUkU1NikKKyNkZWZpbmUgRVRIX1JTU19JUFY2X1BSRTU2X1NDVFAJUlRFX0VU SF9SU1NfSVBWNl9QUkU1Nl9TQ1RQCiAKLSNkZWZpbmUgRVRIX1JTU19JUFY2X1BSRTY0X1NDVFAg KCBcCi0JCUVUSF9SU1NfTk9ORlJBR19JUFY2X1NDVFAgfCBcCisjZGVmaW5lIFJURV9FVEhfUlNT X0lQVjZfUFJFNjRfU0NUUCAoIFwKKwkJUlRFX0VUSF9SU1NfTk9ORlJBR19JUFY2X1NDVFAgfCBc CiAJCVJURV9FVEhfUlNTX0wzX1BSRTY0KQorI2RlZmluZSBFVEhfUlNTX0lQVjZfUFJFNjRfU0NU UAlSVEVfRVRIX1JTU19JUFY2X1BSRTY0X1NDVFAKIAotI2RlZmluZSBFVEhfUlNTX0lQVjZfUFJF OTZfU0NUUCAoIFwKLQkJRVRIX1JTU19OT05GUkFHX0lQVjZfU0NUUCB8IFwKKyNkZWZpbmUgUlRF X0VUSF9SU1NfSVBWNl9QUkU5Nl9TQ1RQICggXAorCQlSVEVfRVRIX1JTU19OT05GUkFHX0lQVjZf U0NUUCB8IFwKIAkJUlRFX0VUSF9SU1NfTDNfUFJFOTYpCi0KLSNkZWZpbmUgRVRIX1JTU19JUCAo IFwKLQlFVEhfUlNTX0lQVjQgfCBcCi0JRVRIX1JTU19GUkFHX0lQVjQgfCBcCi0JRVRIX1JTU19O T05GUkFHX0lQVjRfT1RIRVIgfCBcCi0JRVRIX1JTU19JUFY2IHwgXAotCUVUSF9SU1NfRlJBR19J UFY2IHwgXAotCUVUSF9SU1NfTk9ORlJBR19JUFY2X09USEVSIHwgXAotCUVUSF9SU1NfSVBWNl9F WCkKLQotI2RlZmluZSBFVEhfUlNTX1VEUCAoIFwKLQlFVEhfUlNTX05PTkZSQUdfSVBWNF9VRFAg fCBcCi0JRVRIX1JTU19OT05GUkFHX0lQVjZfVURQIHwgXAotCUVUSF9SU1NfSVBWNl9VRFBfRVgp Ci0KLSNkZWZpbmUgRVRIX1JTU19UQ1AgKCBcCi0JRVRIX1JTU19OT05GUkFHX0lQVjRfVENQIHwg XAotCUVUSF9SU1NfTk9ORlJBR19JUFY2X1RDUCB8IFwKLQlFVEhfUlNTX0lQVjZfVENQX0VYKQot Ci0jZGVmaW5lIEVUSF9SU1NfU0NUUCAoIFwKLQlFVEhfUlNTX05PTkZSQUdfSVBWNF9TQ1RQIHwg XAotCUVUSF9SU1NfTk9ORlJBR19JUFY2X1NDVFApCi0KLSNkZWZpbmUgRVRIX1JTU19UVU5ORUwg KCBcCi0JRVRIX1JTU19WWExBTiAgfCBcCi0JRVRIX1JTU19HRU5FVkUgfCBcCi0JRVRIX1JTU19O VkdSRSkKLQotI2RlZmluZSBFVEhfUlNTX1ZMQU4gKCBcCi0JRVRIX1JTU19TX1ZMQU4gIHwgXAot CUVUSF9SU1NfQ19WTEFOKQorI2RlZmluZSBFVEhfUlNTX0lQVjZfUFJFOTZfU0NUUAlSVEVfRVRI X1JTU19JUFY2X1BSRTk2X1NDVFAKKworI2RlZmluZSBSVEVfRVRIX1JTU19JUCAoIFwKKwlSVEVf RVRIX1JTU19JUFY0IHwgXAorCVJURV9FVEhfUlNTX0ZSQUdfSVBWNCB8IFwKKwlSVEVfRVRIX1JT U19OT05GUkFHX0lQVjRfT1RIRVIgfCBcCisJUlRFX0VUSF9SU1NfSVBWNiB8IFwKKwlSVEVfRVRI X1JTU19GUkFHX0lQVjYgfCBcCisJUlRFX0VUSF9SU1NfTk9ORlJBR19JUFY2X09USEVSIHwgXAor CVJURV9FVEhfUlNTX0lQVjZfRVgpCisjZGVmaW5lIEVUSF9SU1NfSVAJUlRFX0VUSF9SU1NfSVAK KworI2RlZmluZSBSVEVfRVRIX1JTU19VRFAgKCBcCisJUlRFX0VUSF9SU1NfTk9ORlJBR19JUFY0 X1VEUCB8IFwKKwlSVEVfRVRIX1JTU19OT05GUkFHX0lQVjZfVURQIHwgXAorCVJURV9FVEhfUlNT X0lQVjZfVURQX0VYKQorI2RlZmluZSBFVEhfUlNTX1VEUAlSVEVfRVRIX1JTU19VRFAKKworI2Rl ZmluZSBSVEVfRVRIX1JTU19UQ1AgKCBcCisJUlRFX0VUSF9SU1NfTk9ORlJBR19JUFY0X1RDUCB8 IFwKKwlSVEVfRVRIX1JTU19OT05GUkFHX0lQVjZfVENQIHwgXAorCVJURV9FVEhfUlNTX0lQVjZf VENQX0VYKQorI2RlZmluZSBFVEhfUlNTX1RDUAlSVEVfRVRIX1JTU19UQ1AKKworI2RlZmluZSBS VEVfRVRIX1JTU19TQ1RQICggXAorCVJURV9FVEhfUlNTX05PTkZSQUdfSVBWNF9TQ1RQIHwgXAor CVJURV9FVEhfUlNTX05PTkZSQUdfSVBWNl9TQ1RQKQorI2RlZmluZSBFVEhfUlNTX1NDVFAJUlRF X0VUSF9SU1NfU0NUUAorCisjZGVmaW5lIFJURV9FVEhfUlNTX1RVTk5FTCAoIFwKKwlSVEVfRVRI X1JTU19WWExBTiAgfCBcCisJUlRFX0VUSF9SU1NfR0VORVZFIHwgXAorCVJURV9FVEhfUlNTX05W R1JFKQorI2RlZmluZSBFVEhfUlNTX1RVTk5FTAlSVEVfRVRIX1JTU19UVU5ORUwKKworI2RlZmlu ZSBSVEVfRVRIX1JTU19WTEFOICggXAorCVJURV9FVEhfUlNTX1NfVkxBTiAgfCBcCisJUlRFX0VU SF9SU1NfQ19WTEFOKQorI2RlZmluZSBFVEhfUlNTX1ZMQU4JUlRFX0VUSF9SU1NfVkxBTgogCiAv KiogTWFzayBvZiB2YWxpZCBSU1MgaGFzaCBwcm90b2NvbHMgKi8KLSNkZWZpbmUgRVRIX1JTU19Q Uk9UT19NQVNLICggXAotCUVUSF9SU1NfSVBWNCB8IFwKLQlFVEhfUlNTX0ZSQUdfSVBWNCB8IFwK LQlFVEhfUlNTX05PTkZSQUdfSVBWNF9UQ1AgfCBcCi0JRVRIX1JTU19OT05GUkFHX0lQVjRfVURQ IHwgXAotCUVUSF9SU1NfTk9ORlJBR19JUFY0X1NDVFAgfCBcCi0JRVRIX1JTU19OT05GUkFHX0lQ VjRfT1RIRVIgfCBcCi0JRVRIX1JTU19JUFY2IHwgXAotCUVUSF9SU1NfRlJBR19JUFY2IHwgXAot CUVUSF9SU1NfTk9ORlJBR19JUFY2X1RDUCB8IFwKLQlFVEhfUlNTX05PTkZSQUdfSVBWNl9VRFAg fCBcCi0JRVRIX1JTU19OT05GUkFHX0lQVjZfU0NUUCB8IFwKLQlFVEhfUlNTX05PTkZSQUdfSVBW Nl9PVEhFUiB8IFwKLQlFVEhfUlNTX0wyX1BBWUxPQUQgfCBcCi0JRVRIX1JTU19JUFY2X0VYIHwg XAotCUVUSF9SU1NfSVBWNl9UQ1BfRVggfCBcCi0JRVRIX1JTU19JUFY2X1VEUF9FWCB8IFwKLQlF VEhfUlNTX1BPUlQgIHwgXAotCUVUSF9SU1NfVlhMQU4gfCBcCi0JRVRIX1JTU19HRU5FVkUgfCBc Ci0JRVRIX1JTU19OVkdSRSB8IFwKLQlFVEhfUlNTX01QTFMpCisjZGVmaW5lIFJURV9FVEhfUlNT X1BST1RPX01BU0sgKCBcCisJUlRFX0VUSF9SU1NfSVBWNCB8IFwKKwlSVEVfRVRIX1JTU19GUkFH X0lQVjQgfCBcCisJUlRFX0VUSF9SU1NfTk9ORlJBR19JUFY0X1RDUCB8IFwKKwlSVEVfRVRIX1JT U19OT05GUkFHX0lQVjRfVURQIHwgXAorCVJURV9FVEhfUlNTX05PTkZSQUdfSVBWNF9TQ1RQIHwg XAorCVJURV9FVEhfUlNTX05PTkZSQUdfSVBWNF9PVEhFUiB8IFwKKwlSVEVfRVRIX1JTU19JUFY2 IHwgXAorCVJURV9FVEhfUlNTX0ZSQUdfSVBWNiB8IFwKKwlSVEVfRVRIX1JTU19OT05GUkFHX0lQ VjZfVENQIHwgXAorCVJURV9FVEhfUlNTX05PTkZSQUdfSVBWNl9VRFAgfCBcCisJUlRFX0VUSF9S U1NfTk9ORlJBR19JUFY2X1NDVFAgfCBcCisJUlRFX0VUSF9SU1NfTk9ORlJBR19JUFY2X09USEVS IHwgXAorCVJURV9FVEhfUlNTX0wyX1BBWUxPQUQgfCBcCisJUlRFX0VUSF9SU1NfSVBWNl9FWCB8 IFwKKwlSVEVfRVRIX1JTU19JUFY2X1RDUF9FWCB8IFwKKwlSVEVfRVRIX1JTU19JUFY2X1VEUF9F WCB8IFwKKwlSVEVfRVRIX1JTU19QT1JUICB8IFwKKwlSVEVfRVRIX1JTU19WWExBTiB8IFwKKwlS VEVfRVRIX1JTU19HRU5FVkUgfCBcCisJUlRFX0VUSF9SU1NfTlZHUkUgfCBcCisJUlRFX0VUSF9S U1NfTVBMUykKKyNkZWZpbmUgRVRIX1JTU19QUk9UT19NQVNLCVJURV9FVEhfUlNTX1BST1RPX01B U0sKIAogLyoKICAqIERlZmluaXRpb25zIHVzZWQgZm9yIHJlZGlyZWN0aW9uIHRhYmxlIGVudHJ5 IHNpemUuCiAgKiBTb21lIFJTUyBSRVRBIHNpemVzIG1heSBub3QgYmUgc3VwcG9ydGVkIGJ5IHNv bWUgZHJpdmVycywgY2hlY2sgdGhlCiAgKiBkb2N1bWVudGF0aW9uIG9yIHRoZSBkZXNjcmlwdGlv biBvZiByZWxldmFudCBmdW5jdGlvbnMgZm9yIG1vcmUgZGV0YWlscy4KICAqLwotI2RlZmluZSBF VEhfUlNTX1JFVEFfU0laRV82NCAgNjQKLSNkZWZpbmUgRVRIX1JTU19SRVRBX1NJWkVfMTI4IDEy OAotI2RlZmluZSBFVEhfUlNTX1JFVEFfU0laRV8yNTYgMjU2Ci0jZGVmaW5lIEVUSF9SU1NfUkVU QV9TSVpFXzUxMiA1MTIKLSNkZWZpbmUgUlRFX1JFVEFfR1JPVVBfU0laRSAgIDY0CisjZGVmaW5l IFJURV9FVEhfUlNTX1JFVEFfU0laRV82NCAgNjQKKyNkZWZpbmUgRVRIX1JTU19SRVRBX1NJWkVf NjQgICAgICBSVEVfRVRIX1JTU19SRVRBX1NJWkVfNjQKKyNkZWZpbmUgUlRFX0VUSF9SU1NfUkVU QV9TSVpFXzEyOCAxMjgKKyNkZWZpbmUgRVRIX1JTU19SRVRBX1NJWkVfMTI4ICAgICBSVEVfRVRI X1JTU19SRVRBX1NJWkVfMTI4CisjZGVmaW5lIFJURV9FVEhfUlNTX1JFVEFfU0laRV8yNTYgMjU2 CisjZGVmaW5lIEVUSF9SU1NfUkVUQV9TSVpFXzI1NiAgICAgUlRFX0VUSF9SU1NfUkVUQV9TSVpF XzI1NgorI2RlZmluZSBSVEVfRVRIX1JTU19SRVRBX1NJWkVfNTEyIDUxMgorI2RlZmluZSBFVEhf UlNTX1JFVEFfU0laRV81MTIgICAgIFJURV9FVEhfUlNTX1JFVEFfU0laRV81MTIKKyNkZWZpbmUg UlRFX0VUSF9SRVRBX0dST1VQX1NJWkUgICA2NAorI2RlZmluZSBSVEVfUkVUQV9HUk9VUF9TSVpF ICAgICAgIFJURV9FVEhfUkVUQV9HUk9VUF9TSVpFCiAKIC8qKkB7QG5hbWUgVk1EcSBhbmQgRENC IG1heGltdW1zICovCi0jZGVmaW5lIEVUSF9WTURRX01BWF9WTEFOX0ZJTFRFUlMgICA2NCAvKio8 IE1heGltdW0gbmIuIG9mIFZNRHEgVkxBTiBmaWx0ZXJzLiAqLwotI2RlZmluZSBFVEhfRENCX05V TV9VU0VSX1BSSU9SSVRJRVMgOCAgLyoqPCBNYXhpbXVtIG5iLiBvZiBEQ0IgcHJpb3JpdGllcy4g Ki8KLSNkZWZpbmUgRVRIX1ZNRFFfRENCX05VTV9RVUVVRVMgICAgIDEyOCAvKio8IE1heGltdW0g bmIuIG9mIFZNRHEgRENCIHF1ZXVlcy4gKi8KLSNkZWZpbmUgRVRIX0RDQl9OVU1fUVVFVUVTICAg ICAgICAgIDEyOCAvKio8IE1heGltdW0gbmIuIG9mIERDQiBxdWV1ZXMuICovCisjZGVmaW5lIFJU RV9FVEhfVk1EUV9NQVhfVkxBTl9GSUxURVJTICAgNjQgLyoqPCBNYXhpbXVtIG5iLiBvZiBWTURx IFZMQU4gZmlsdGVycy4gKi8KKyNkZWZpbmUgRVRIX1ZNRFFfTUFYX1ZMQU5fRklMVEVSUyAgICAg ICBSVEVfRVRIX1ZNRFFfTUFYX1ZMQU5fRklMVEVSUworI2RlZmluZSBSVEVfRVRIX0RDQl9OVU1f VVNFUl9QUklPUklUSUVTIDggIC8qKjwgTWF4aW11bSBuYi4gb2YgRENCIHByaW9yaXRpZXMuICov CisjZGVmaW5lIEVUSF9EQ0JfTlVNX1VTRVJfUFJJT1JJVElFUyAgICAgUlRFX0VUSF9EQ0JfTlVN X1VTRVJfUFJJT1JJVElFUworI2RlZmluZSBSVEVfRVRIX1ZNRFFfRENCX05VTV9RVUVVRVMgICAg IDEyOCAvKio8IE1heGltdW0gbmIuIG9mIFZNRHEgRENCIHF1ZXVlcy4gKi8KKyNkZWZpbmUgRVRI X1ZNRFFfRENCX05VTV9RVUVVRVMgICAgICAgICBSVEVfRVRIX1ZNRFFfRENCX05VTV9RVUVVRVMK KyNkZWZpbmUgUlRFX0VUSF9EQ0JfTlVNX1FVRVVFUyAgICAgICAgICAxMjggLyoqPCBNYXhpbXVt IG5iLiBvZiBEQ0IgcXVldWVzLiAqLworI2RlZmluZSBFVEhfRENCX05VTV9RVUVVRVMgICAgICAg ICAgICAgIFJURV9FVEhfRENCX05VTV9RVUVVRVMKIC8qKkB9Ki8KIAogLyoqQHtAbmFtZSBEQ0Ig Y2FwYWJpbGl0aWVzICovCi0jZGVmaW5lIEVUSF9EQ0JfUEdfU1VQUE9SVCAgICAgIDB4MDAwMDAw MDEgLyoqPCBQcmlvcml0eSBHcm91cChFVFMpIHN1cHBvcnQuICovCi0jZGVmaW5lIEVUSF9EQ0Jf UEZDX1NVUFBPUlQgICAgIDB4MDAwMDAwMDIgLyoqPCBQcmlvcml0eSBGbG93IENvbnRyb2wgc3Vw cG9ydC4gKi8KKyNkZWZpbmUgUlRFX0VUSF9EQ0JfUEdfU1VQUE9SVCAgICAgIDB4MDAwMDAwMDEg LyoqPCBQcmlvcml0eSBHcm91cChFVFMpIHN1cHBvcnQuICovCisjZGVmaW5lIEVUSF9EQ0JfUEdf U1VQUE9SVCAgICAgICAgICBSVEVfRVRIX0RDQl9QR19TVVBQT1JUCisjZGVmaW5lIFJURV9FVEhf RENCX1BGQ19TVVBQT1JUICAgICAweDAwMDAwMDAyIC8qKjwgUHJpb3JpdHkgRmxvdyBDb250cm9s IHN1cHBvcnQuICovCisjZGVmaW5lIEVUSF9EQ0JfUEZDX1NVUFBPUlQgICAgICAgICBSVEVfRVRI X0RDQl9QRkNfU1VQUE9SVAogLyoqQH0qLwogCiAvKipAe0BuYW1lIFZMQU4gb2ZmbG9hZCBiaXRz ICovCi0jZGVmaW5lIEVUSF9WTEFOX1NUUklQX09GRkxPQUQgICAweDAwMDEgLyoqPCBWTEFOIFN0 cmlwICBPbi9PZmYgKi8KLSNkZWZpbmUgRVRIX1ZMQU5fRklMVEVSX09GRkxPQUQgIDB4MDAwMiAv Kio8IFZMQU4gRmlsdGVyIE9uL09mZiAqLwotI2RlZmluZSBFVEhfVkxBTl9FWFRFTkRfT0ZGTE9B RCAgMHgwMDA0IC8qKjwgVkxBTiBFeHRlbmQgT24vT2ZmICovCi0jZGVmaW5lIEVUSF9RSU5RX1NU UklQX09GRkxPQUQgICAweDAwMDggLyoqPCBRSU5RIFN0cmlwIE9uL09mZiAqLwotCi0jZGVmaW5l IEVUSF9WTEFOX1NUUklQX01BU0sgICAweDAwMDEgLyoqPCBWTEFOIFN0cmlwICBzZXR0aW5nIG1h c2sgKi8KLSNkZWZpbmUgRVRIX1ZMQU5fRklMVEVSX01BU0sgIDB4MDAwMiAvKio8IFZMQU4gRmls dGVyICBzZXR0aW5nIG1hc2sqLwotI2RlZmluZSBFVEhfVkxBTl9FWFRFTkRfTUFTSyAgMHgwMDA0 IC8qKjwgVkxBTiBFeHRlbmQgIHNldHRpbmcgbWFzayovCi0jZGVmaW5lIEVUSF9RSU5RX1NUUklQ X01BU0sgICAweDAwMDggLyoqPCBRSU5RIFN0cmlwICBzZXR0aW5nIG1hc2sgKi8KLSNkZWZpbmUg RVRIX1ZMQU5fSURfTUFYICAgICAgIDB4MEZGRiAvKio8IFZMQU4gSUQgaXMgaW4gbG93ZXIgMTIg Yml0cyovCisjZGVmaW5lIFJURV9FVEhfVkxBTl9TVFJJUF9PRkZMT0FEICAgMHgwMDAxIC8qKjwg VkxBTiBTdHJpcCAgT24vT2ZmICovCisjZGVmaW5lIEVUSF9WTEFOX1NUUklQX09GRkxPQUQgICAg ICAgUlRFX0VUSF9WTEFOX1NUUklQX09GRkxPQUQKKyNkZWZpbmUgUlRFX0VUSF9WTEFOX0ZJTFRF Ul9PRkZMT0FEICAweDAwMDIgLyoqPCBWTEFOIEZpbHRlciBPbi9PZmYgKi8KKyNkZWZpbmUgRVRI X1ZMQU5fRklMVEVSX09GRkxPQUQgICAgICBSVEVfRVRIX1ZMQU5fRklMVEVSX09GRkxPQUQKKyNk ZWZpbmUgUlRFX0VUSF9WTEFOX0VYVEVORF9PRkZMT0FEICAweDAwMDQgLyoqPCBWTEFOIEV4dGVu ZCBPbi9PZmYgKi8KKyNkZWZpbmUgRVRIX1ZMQU5fRVhURU5EX09GRkxPQUQgICAgICBSVEVfRVRI X1ZMQU5fRVhURU5EX09GRkxPQUQKKyNkZWZpbmUgUlRFX0VUSF9RSU5RX1NUUklQX09GRkxPQUQg ICAweDAwMDggLyoqPCBRSU5RIFN0cmlwIE9uL09mZiAqLworI2RlZmluZSBFVEhfUUlOUV9TVFJJ UF9PRkZMT0FEICAgICAgIFJURV9FVEhfUUlOUV9TVFJJUF9PRkZMT0FECisKKyNkZWZpbmUgUlRF X0VUSF9WTEFOX1NUUklQX01BU0sgICAgICAweDAwMDEgLyoqPCBWTEFOIFN0cmlwICBzZXR0aW5n IG1hc2sgKi8KKyNkZWZpbmUgRVRIX1ZMQU5fU1RSSVBfTUFTSyAgICAgICAgICBSVEVfRVRIX1ZM QU5fU1RSSVBfTUFTSworI2RlZmluZSBSVEVfRVRIX1ZMQU5fRklMVEVSX01BU0sgICAgIDB4MDAw MiAvKio8IFZMQU4gRmlsdGVyICBzZXR0aW5nIG1hc2sqLworI2RlZmluZSBFVEhfVkxBTl9GSUxU RVJfTUFTSyAgICAgICAgIFJURV9FVEhfVkxBTl9GSUxURVJfTUFTSworI2RlZmluZSBSVEVfRVRI X1ZMQU5fRVhURU5EX01BU0sgICAgIDB4MDAwNCAvKio8IFZMQU4gRXh0ZW5kICBzZXR0aW5nIG1h c2sqLworI2RlZmluZSBFVEhfVkxBTl9FWFRFTkRfTUFTSyAgICAgICAgIFJURV9FVEhfVkxBTl9F WFRFTkRfTUFTSworI2RlZmluZSBSVEVfRVRIX1FJTlFfU1RSSVBfTUFTSyAgICAgIDB4MDAwOCAv Kio8IFFJTlEgU3RyaXAgIHNldHRpbmcgbWFzayAqLworI2RlZmluZSBFVEhfUUlOUV9TVFJJUF9N QVNLICAgICAgICAgIFJURV9FVEhfUUlOUV9TVFJJUF9NQVNLCisjZGVmaW5lIFJURV9FVEhfVkxB Tl9JRF9NQVggICAgICAgICAgMHgwRkZGIC8qKjwgVkxBTiBJRCBpcyBpbiBsb3dlciAxMiBiaXRz Ki8KKyNkZWZpbmUgRVRIX1ZMQU5fSURfTUFYICAgICAgICAgICAgICBSVEVfRVRIX1ZMQU5fSURf TUFYCiAvKipAfSovCiAKIC8qIERlZmluaXRpb25zIHVzZWQgZm9yIHJlY2VpdmUgTUFDIGFkZHJl c3MgICAqLwotI2RlZmluZSBFVEhfTlVNX1JFQ0VJVkVfTUFDX0FERFIgIDEyOCAvKio8IE1heGlt dW0gbmIuIG9mIHJlY2VpdmUgbWFjIGFkZHIuICovCisjZGVmaW5lIFJURV9FVEhfTlVNX1JFQ0VJ VkVfTUFDX0FERFIgICAxMjggLyoqPCBNYXhpbXVtIG5iLiBvZiByZWNlaXZlIG1hYyBhZGRyLiAq LworI2RlZmluZSBFVEhfTlVNX1JFQ0VJVkVfTUFDX0FERFIgICAgICAgUlRFX0VUSF9OVU1fUkVD RUlWRV9NQUNfQUREUgogCiAvKiBEZWZpbml0aW9ucyB1c2VkIGZvciB1bmljYXN0IGhhc2ggICov Ci0jZGVmaW5lIEVUSF9WTURRX05VTV9VQ19IQVNIX0FSUkFZICAxMjggLyoqPCBNYXhpbXVtIG5i LiBvZiBVQyBoYXNoIGFycmF5LiAqLworI2RlZmluZSBSVEVfRVRIX1ZNRFFfTlVNX1VDX0hBU0hf QVJSQVkgMTI4IC8qKjwgTWF4aW11bSBuYi4gb2YgVUMgaGFzaCBhcnJheS4gKi8KKyNkZWZpbmUg RVRIX1ZNRFFfTlVNX1VDX0hBU0hfQVJSQVkgICAgIFJURV9FVEhfVk1EUV9OVU1fVUNfSEFTSF9B UlJBWQogCiAvKipAe0BuYW1lIFZNRHEgUnggbW9kZQogICogQHNlZSBydGVfZXRoX3ZtZHFfcnhf Y29uZi5yeF9tb2RlCiAgKi8KLSNkZWZpbmUgRVRIX1ZNRFFfQUNDRVBUX1VOVEFHICAgMHgwMDAx IC8qKjwgYWNjZXB0IHVudGFnZ2VkIHBhY2tldHMuICovCi0jZGVmaW5lIEVUSF9WTURRX0FDQ0VQ VF9IQVNIX01DIDB4MDAwMiAvKio8IGFjY2VwdCBwYWNrZXRzIGluIG11bHRpY2FzdCB0YWJsZSAu ICovCi0jZGVmaW5lIEVUSF9WTURRX0FDQ0VQVF9IQVNIX1VDIDB4MDAwNCAvKio8IGFjY2VwdCBw YWNrZXRzIGluIHVuaWNhc3QgdGFibGUuICovCi0jZGVmaW5lIEVUSF9WTURRX0FDQ0VQVF9CUk9B RENBU1QgICAweDAwMDggLyoqPCBhY2NlcHQgYnJvYWRjYXN0IHBhY2tldHMuICovCi0jZGVmaW5l IEVUSF9WTURRX0FDQ0VQVF9NVUxUSUNBU1QgICAweDAwMTAgLyoqPCBtdWx0aWNhc3QgcHJvbWlz Y3VvdXMuICovCisjZGVmaW5lIFJURV9FVEhfVk1EUV9BQ0NFUFRfVU5UQUcgICAgICAweDAwMDEg LyoqPCBhY2NlcHQgdW50YWdnZWQgcGFja2V0cy4gKi8KKyNkZWZpbmUgRVRIX1ZNRFFfQUNDRVBU X1VOVEFHICAgICAgICAgIFJURV9FVEhfVk1EUV9BQ0NFUFRfVU5UQUcKKyNkZWZpbmUgUlRFX0VU SF9WTURRX0FDQ0VQVF9IQVNIX01DICAgIDB4MDAwMiAvKio8IGFjY2VwdCBwYWNrZXRzIGluIG11 bHRpY2FzdCB0YWJsZSAuICovCisjZGVmaW5lIEVUSF9WTURRX0FDQ0VQVF9IQVNIX01DICAgICAg ICBSVEVfRVRIX1ZNRFFfQUNDRVBUX0hBU0hfTUMKKyNkZWZpbmUgUlRFX0VUSF9WTURRX0FDQ0VQ VF9IQVNIX1VDICAgIDB4MDAwNCAvKio8IGFjY2VwdCBwYWNrZXRzIGluIHVuaWNhc3QgdGFibGUu ICovCisjZGVmaW5lIEVUSF9WTURRX0FDQ0VQVF9IQVNIX1VDICAgICAgICBSVEVfRVRIX1ZNRFFf QUNDRVBUX0hBU0hfVUMKKyNkZWZpbmUgUlRFX0VUSF9WTURRX0FDQ0VQVF9CUk9BRENBU1QgIDB4 MDAwOCAvKio8IGFjY2VwdCBicm9hZGNhc3QgcGFja2V0cy4gKi8KKyNkZWZpbmUgRVRIX1ZNRFFf QUNDRVBUX0JST0FEQ0FTVCAgICAgIFJURV9FVEhfVk1EUV9BQ0NFUFRfQlJPQURDQVNUCisjZGVm aW5lIFJURV9FVEhfVk1EUV9BQ0NFUFRfTVVMVElDQVNUICAweDAwMTAgLyoqPCBtdWx0aWNhc3Qg cHJvbWlzY3VvdXMuICovCisjZGVmaW5lIEVUSF9WTURRX0FDQ0VQVF9NVUxUSUNBU1QgICAgICBS VEVfRVRIX1ZNRFFfQUNDRVBUX01VTFRJQ0FTVAogLyoqQH0qLwogCisvKiogTWF4aW11bSBuYi4g b2YgdmxhbiBwZXIgbWlycm9yIHJ1bGUgKi8KKyNkZWZpbmUgUlRFX0VUSF9NSVJST1JfTUFYX1ZM QU5TICAgICAgIDY0CisjZGVmaW5lIEVUSF9NSVJST1JfTUFYX1ZMQU5TICAgICAgICAgICBSVEVf RVRIX01JUlJPUl9NQVhfVkxBTlMKKworI2RlZmluZSBSVEVfRVRIX01JUlJPUl9WSVJUVUFMX1BP T0xfVVAgICAgMHgwMSAgLyoqPCBWaXJ0dWFsIFBvb2wgdXBsaW5rIE1pcnJvcmluZy4gKi8KKyNk ZWZpbmUgRVRIX01JUlJPUl9WSVJUVUFMX1BPT0xfVVAgICAgICAgIFJURV9FVEhfTUlSUk9SX1ZJ UlRVQUxfUE9PTF9VUAorI2RlZmluZSBSVEVfRVRIX01JUlJPUl9VUExJTktfUE9SVCAgICAgICAg MHgwMiAgLyoqPCBVcGxpbmsgUG9ydCBNaXJyb3JpbmcuICovCisjZGVmaW5lIEVUSF9NSVJST1Jf VVBMSU5LX1BPUlQgICAgICAgICAgICBSVEVfRVRIX01JUlJPUl9VUExJTktfUE9SVAorI2RlZmlu ZSBSVEVfRVRIX01JUlJPUl9ET1dOTElOS19QT1JUICAgICAgMHgwNCAgLyoqPCBEb3dubGluayBQ b3J0IE1pcnJvcmluZy4gKi8KKyNkZWZpbmUgRVRIX01JUlJPUl9ET1dOTElOS19QT1JUICAgICAg ICAgIFJURV9FVEhfTUlSUk9SX0RPV05MSU5LX1BPUlQKKyNkZWZpbmUgUlRFX0VUSF9NSVJST1Jf VkxBTiAgICAgICAgICAgICAgIDB4MDggIC8qKjwgVkxBTiBNaXJyb3JpbmcuICovCisjZGVmaW5l IEVUSF9NSVJST1JfVkxBTiAgICAgICAgICAgICAgICAgICBSVEVfRVRIX01JUlJPUl9WTEFOCisj ZGVmaW5lIFJURV9FVEhfTUlSUk9SX1ZJUlRVQUxfUE9PTF9ET1dOICAweDEwICAvKio8IFZpcnR1 YWwgUG9vbCBkb3dubGluayBNaXJyb3JpbmcuICovCisjZGVmaW5lIEVUSF9NSVJST1JfVklSVFVB TF9QT09MX0RPV04gICAgICBSVEVfRVRIX01JUlJPUl9WSVJUVUFMX1BPT0xfRE9XTgorCisvKioK KyAqIEEgc3RydWN0dXJlIHVzZWQgdG8gY29uZmlndXJlIFZMQU4gdHJhZmZpYyBtaXJyb3Igb2Yg YW4gRXRoZXJuZXQgcG9ydC4KKyAqLworc3RydWN0IHJ0ZV9ldGhfdmxhbl9taXJyb3IgeworCXVp bnQ2NF90IHZsYW5fbWFzazsgLyoqPCBtYXNrIGZvciB2YWxpZCBWTEFOIElELiAqLworCS8qKiBW TEFOIElEIGxpc3QgZm9yIHZsYW4gbWlycm9yaW5nLiAqLworCXVpbnQxNl90IHZsYW5faWRbUlRF X0VUSF9NSVJST1JfTUFYX1ZMQU5TXTsKK307CisKKy8qKgorICogQSBzdHJ1Y3R1cmUgdXNlZCB0 byBjb25maWd1cmUgdHJhZmZpYyBtaXJyb3Igb2YgYW4gRXRoZXJuZXQgcG9ydC4KKyAqLworc3Ry dWN0IHJ0ZV9ldGhfbWlycm9yX2NvbmYgeworCXVpbnQ4X3QgcnVsZV90eXBlOyAgLyoqPCBNaXJy b3JpbmcgcnVsZSB0eXBlICovCisJdWludDhfdCBkc3RfcG9vbDsgICAvKio8IERlc3RpbmF0aW9u IHBvb2wgZm9yIHRoaXMgbWlycm9yIHJ1bGUuICovCisJdWludDY0X3QgcG9vbF9tYXNrOyAvKio8 IEJpdG1hcCBvZiBwb29sIGZvciBwb29sIG1pcnJvcmluZyAqLworCS8qKiBWTEFOIElEIHNldHRp bmcgZm9yIFZMQU4gbWlycm9yaW5nLiAqLworCXN0cnVjdCBydGVfZXRoX3ZsYW5fbWlycm9yIHZs YW47Cit9OworCiAvKioKICAqIEEgc3RydWN0dXJlIHVzZWQgdG8gY29uZmlndXJlIDY0IGVudHJp ZXMgb2YgUmVkaXJlY3Rpb24gVGFibGUgb2YgdGhlCiAgKiBSZWNlaXZlIFNpZGUgU2NhbGluZyAo UlNTKSBmZWF0dXJlIG9mIGFuIEV0aGVybmV0IHBvcnQuIFRvIGNvbmZpZ3VyZQpAQCAtODU2LDcg KzEwMzgsNyBAQCBzdHJ1Y3QgcnRlX2V0aF9yc3NfcmV0YV9lbnRyeTY0IHsKIAkvKiogTWFzayBi aXRzIGluZGljYXRlIHdoaWNoIGVudHJpZXMgbmVlZCB0byBiZSB1cGRhdGVkL3F1ZXJpZWQuICov CiAJdWludDY0X3QgbWFzazsKIAkvKiogR3JvdXAgb2YgNjQgcmVkaXJlY3Rpb24gdGFibGUgZW50 cmllcy4gKi8KLQl1aW50MTZfdCByZXRhW1JURV9SRVRBX0dST1VQX1NJWkVdOworCXVpbnQxNl90 IHJldGFbUlRFX0VUSF9SRVRBX0dST1VQX1NJWkVdOwogfTsKIAogLyoqCkBAIC04NjQsMzggKzEw NDYsNDQgQEAgc3RydWN0IHJ0ZV9ldGhfcnNzX3JldGFfZW50cnk2NCB7CiAgKiBpbiBEQ0IgY29u ZmlndXJhdGlvbnMKICAqLwogZW51bSBydGVfZXRoX25iX3RjcyB7Ci0JRVRIXzRfVENTID0gNCwg LyoqPCA0IFRDcyB3aXRoIERDQi4gKi8KLQlFVEhfOF9UQ1MgPSA4ICAvKio8IDggVENzIHdpdGgg RENCLiAqLworCVJURV9FVEhfNF9UQ1MgPSA0LCAvKio8IDQgVENzIHdpdGggRENCLiAqLworCVJU RV9FVEhfOF9UQ1MgPSA4ICAvKio8IDggVENzIHdpdGggRENCLiAqLwogfTsKKyNkZWZpbmUgRVRI XzRfVENTIFJURV9FVEhfNF9UQ1MKKyNkZWZpbmUgRVRIXzhfVENTIFJURV9FVEhfOF9UQ1MKIAog LyoqCiAgKiBUaGlzIGVudW0gaW5kaWNhdGVzIHRoZSBwb3NzaWJsZSBudW1iZXIgb2YgcXVldWUg cG9vbHMKICAqIGluIFZNRHEgY29uZmlndXJhdGlvbnMuCiAgKi8KIGVudW0gcnRlX2V0aF9uYl9w b29scyB7Ci0JRVRIXzhfUE9PTFMgPSA4LCAgICAvKio8IDggVk1EcSBwb29scy4gKi8KLQlFVEhf MTZfUE9PTFMgPSAxNiwgIC8qKjwgMTYgVk1EcSBwb29scy4gKi8KLQlFVEhfMzJfUE9PTFMgPSAz MiwgIC8qKjwgMzIgVk1EcSBwb29scy4gKi8KLQlFVEhfNjRfUE9PTFMgPSA2NCAgIC8qKjwgNjQg Vk1EcSBwb29scy4gKi8KKwlSVEVfRVRIXzhfUE9PTFMgPSA4LCAgICAvKio8IDggVk1EcSBwb29s cy4gKi8KKwlSVEVfRVRIXzE2X1BPT0xTID0gMTYsICAvKio8IDE2IFZNRHEgcG9vbHMuICovCisJ UlRFX0VUSF8zMl9QT09MUyA9IDMyLCAgLyoqPCAzMiBWTURxIHBvb2xzLiAqLworCVJURV9FVEhf NjRfUE9PTFMgPSA2NCAgIC8qKjwgNjQgVk1EcSBwb29scy4gKi8KIH07CisjZGVmaW5lIEVUSF84 X1BPT0xTCVJURV9FVEhfOF9QT09MUworI2RlZmluZSBFVEhfMTZfUE9PTFMJUlRFX0VUSF8xNl9Q T09MUworI2RlZmluZSBFVEhfMzJfUE9PTFMJUlRFX0VUSF8zMl9QT09MUworI2RlZmluZSBFVEhf NjRfUE9PTFMJUlRFX0VUSF82NF9QT09MUwogCiAvKiBUaGlzIHN0cnVjdHVyZSBtYXkgYmUgZXh0 ZW5kZWQgaW4gZnV0dXJlLiAqLwogc3RydWN0IHJ0ZV9ldGhfZGNiX3J4X2NvbmYgewogCWVudW0g cnRlX2V0aF9uYl90Y3MgbmJfdGNzOyAvKio8IFBvc3NpYmxlIERDQiBUQ3MsIDQgb3IgOCBUQ3Mg Ki8KIAkvKiogVHJhZmZpYyBjbGFzcyBlYWNoIFVQIG1hcHBlZCB0by4gKi8KLQl1aW50OF90IGRj Yl90Y1tFVEhfRENCX05VTV9VU0VSX1BSSU9SSVRJRVNdOworCXVpbnQ4X3QgZGNiX3RjW1JURV9F VEhfRENCX05VTV9VU0VSX1BSSU9SSVRJRVNdOwogfTsKIAogc3RydWN0IHJ0ZV9ldGhfdm1kcV9k Y2JfdHhfY29uZiB7CiAJZW51bSBydGVfZXRoX25iX3Bvb2xzIG5iX3F1ZXVlX3Bvb2xzOyAvKio8 IFdpdGggRENCLCAxNiBvciAzMiBwb29scy4gKi8KIAkvKiogVHJhZmZpYyBjbGFzcyBlYWNoIFVQ IG1hcHBlZCB0by4gKi8KLQl1aW50OF90IGRjYl90Y1tFVEhfRENCX05VTV9VU0VSX1BSSU9SSVRJ RVNdOworCXVpbnQ4X3QgZGNiX3RjW1JURV9FVEhfRENCX05VTV9VU0VSX1BSSU9SSVRJRVNdOwog fTsKIAogc3RydWN0IHJ0ZV9ldGhfZGNiX3R4X2NvbmYgewogCWVudW0gcnRlX2V0aF9uYl90Y3Mg bmJfdGNzOyAvKio8IFBvc3NpYmxlIERDQiBUQ3MsIDQgb3IgOCBUQ3MuICovCiAJLyoqIFRyYWZm aWMgY2xhc3MgZWFjaCBVUCBtYXBwZWQgdG8uICovCi0JdWludDhfdCBkY2JfdGNbRVRIX0RDQl9O VU1fVVNFUl9QUklPUklUSUVTXTsKKwl1aW50OF90IGRjYl90Y1tSVEVfRVRIX0RDQl9OVU1fVVNF Ul9QUklPUklUSUVTXTsKIH07CiAKIHN0cnVjdCBydGVfZXRoX3ZtZHFfdHhfY29uZiB7CkBAIC05 MjEsOSArMTEwOSw5IEBAIHN0cnVjdCBydGVfZXRoX3ZtZHFfZGNiX2NvbmYgewogCXN0cnVjdCB7 CiAJCXVpbnQxNl90IHZsYW5faWQ7IC8qKjwgVGhlIFZMQU4gSUQgb2YgdGhlIHJlY2VpdmVkIGZy YW1lICovCiAJCXVpbnQ2NF90IHBvb2xzOyAgIC8qKjwgQml0bWFzayBvZiBwb29scyBmb3IgcGFj a2V0IFJ4ICovCi0JfSBwb29sX21hcFtFVEhfVk1EUV9NQVhfVkxBTl9GSUxURVJTXTsgLyoqPCBW TURxIFZMQU4gcG9vbCBtYXBzLiAqLworCX0gcG9vbF9tYXBbUlRFX0VUSF9WTURRX01BWF9WTEFO X0ZJTFRFUlNdOyAvKio8IFZNRHEgVkxBTiBwb29sIG1hcHMuICovCiAJLyoqIFNlbGVjdHMgYSBx dWV1ZSBpbiBhIHBvb2wgKi8KLQl1aW50OF90IGRjYl90Y1tFVEhfRENCX05VTV9VU0VSX1BSSU9S SVRJRVNdOworCXVpbnQ4X3QgZGNiX3RjW1JURV9FVEhfRENCX05VTV9VU0VSX1BSSU9SSVRJRVNd OwogfTsKIAogLyoqCkBAIC05MzMsNyArMTEyMSw3IEBAIHN0cnVjdCBydGVfZXRoX3ZtZHFfZGNi X2NvbmYgewogICogVXNpbmcgdGhpcyBmZWF0dXJlLCBwYWNrZXRzIGFyZSByb3V0ZWQgdG8gYSBw b29sIG9mIHF1ZXVlcy4gQnkgZGVmYXVsdCwKICAqIHRoZSBwb29sIHNlbGVjdGlvbiBpcyBiYXNl ZCBvbiB0aGUgTUFDIGFkZHJlc3MsIHRoZSBWTEFOIElEIGluIHRoZQogICogVkxBTiB0YWcgYXMg c3BlY2lmaWVkIGluIHRoZSBwb29sX21hcCBhcnJheS4KLSAqIFBhc3NpbmcgdGhlIEVUSF9WTURR X0FDQ0VQVF9VTlRBRyBpbiB0aGUgcnhfbW9kZSBmaWVsZCBhbGxvd3MgcG9vbAorICogUGFzc2lu ZyB0aGUgUlRFX0VUSF9WTURRX0FDQ0VQVF9VTlRBRyBpbiB0aGUgcnhfbW9kZSBmaWVsZCBhbGxv d3MgcG9vbAogICogc2VsZWN0aW9uIHVzaW5nIG9ubHkgdGhlIE1BQyBhZGRyZXNzLiBNQUMgYWRk cmVzcyB0byBwb29sIG1hcHBpbmcgaXMgZG9uZQogICogdXNpbmcgdGhlIHJ0ZV9ldGhfZGV2X21h Y19hZGRyX2FkZCBmdW5jdGlvbiwgd2l0aCB0aGUgcG9vbCBwYXJhbWV0ZXIKICAqIGNvcnJlc3Bv bmRpbmcgdG8gdGhlIHBvb2wgSUQuCkBAIC05NTQsNyArMTE0Miw3IEBAIHN0cnVjdCBydGVfZXRo X3ZtZHFfcnhfY29uZiB7CiAJc3RydWN0IHsKIAkJdWludDE2X3Qgdmxhbl9pZDsgLyoqPCBUaGUg VkxBTiBJRCBvZiB0aGUgcmVjZWl2ZWQgZnJhbWUgKi8KIAkJdWludDY0X3QgcG9vbHM7ICAgLyoq PCBCaXRtYXNrIG9mIHBvb2xzIGZvciBwYWNrZXQgUnggKi8KLQl9IHBvb2xfbWFwW0VUSF9WTURR X01BWF9WTEFOX0ZJTFRFUlNdOyAvKio8IFZNRHEgVkxBTiBwb29sIG1hcHMuICovCisJfSBwb29s X21hcFtSVEVfRVRIX1ZNRFFfTUFYX1ZMQU5fRklMVEVSU107IC8qKjwgVk1EcSBWTEFOIHBvb2wg bWFwcy4gKi8KIH07CiAKIC8qKgpAQCAtOTYzLDcgKzExNTEsNyBAQCBzdHJ1Y3QgcnRlX2V0aF92 bWRxX3J4X2NvbmYgewogc3RydWN0IHJ0ZV9ldGhfdHhtb2RlIHsKIAllbnVtIHJ0ZV9ldGhfdHhf bXFfbW9kZSBtcV9tb2RlOyAvKio8IFR4IG11bHRpLXF1ZXVlcyBtb2RlLiAqLwogCS8qKgotCSAq IFBlci1wb3J0IFR4IG9mZmxvYWRzIHRvIGJlIHNldCB1c2luZyBERVZfVFhfT0ZGTE9BRF8qIGZs YWdzLgorCSAqIFBlci1wb3J0IFR4IG9mZmxvYWRzIHRvIGJlIHNldCB1c2luZyBSVEVfRVRIX1RY X09GRkxPQURfKiBmbGFncy4KIAkgKiBPbmx5IG9mZmxvYWRzIHNldCBvbiB0eF9vZmZsb2FkX2Nh cGEgZmllbGQgb24gcnRlX2V0aF9kZXZfaW5mbwogCSAqIHN0cnVjdHVyZSBhcmUgYWxsb3dlZCB0 byBiZSBzZXQuCiAJICovCkBAIC0xMDU1LDcgKzEyNDMsNyBAQCBzdHJ1Y3QgcnRlX2V0aF9yeGNv bmYgewogCXVpbnQxNl90IHNoYXJlX2dyb3VwOwogCXVpbnQxNl90IHNoYXJlX3FpZDsgLyoqPCBT aGFyZWQgUnggcXVldWUgSUQgaW4gZ3JvdXAgKi8KIAkvKioKLQkgKiBQZXItcXVldWUgUnggb2Zm bG9hZHMgdG8gYmUgc2V0IHVzaW5nIERFVl9SWF9PRkZMT0FEXyogZmxhZ3MuCisJICogUGVyLXF1 ZXVlIFJ4IG9mZmxvYWRzIHRvIGJlIHNldCB1c2luZyBSVEVfRVRIX1JYX09GRkxPQURfKiBmbGFn cy4KIAkgKiBPbmx5IG9mZmxvYWRzIHNldCBvbiByeF9xdWV1ZV9vZmZsb2FkX2NhcGEgb3Igcnhf b2ZmbG9hZF9jYXBhCiAJICogZmllbGRzIG9uIHJ0ZV9ldGhfZGV2X2luZm8gc3RydWN0dXJlIGFy ZSBhbGxvd2VkIHRvIGJlIHNldC4KIAkgKi8KQEAgLTExOTUsMTIgKzEzODMsMTcgQEAgc3RydWN0 IHJ0ZV9ldGhfZGVzY19saW0gewogICogVGhpcyBlbnVtIGluZGljYXRlcyB0aGUgZmxvdyBjb250 cm9sIG1vZGUKICAqLwogZW51bSBydGVfZXRoX2ZjX21vZGUgewotCVJURV9GQ19OT05FID0gMCwg LyoqPCBEaXNhYmxlIGZsb3cgY29udHJvbC4gKi8KLQlSVEVfRkNfUlhfUEFVU0UsIC8qKjwgUngg cGF1c2UgZnJhbWUsIGVuYWJsZSBmbG93Y3RybCBvbiBUeCBzaWRlLiAqLwotCVJURV9GQ19UWF9Q QVVTRSwgLyoqPCBUeCBwYXVzZSBmcmFtZSwgZW5hYmxlIGZsb3djdHJsIG9uIFJ4IHNpZGUuICov Ci0JUlRFX0ZDX0ZVTEwgICAgICAvKio8IEVuYWJsZSBmbG93IGNvbnRyb2wgb24gYm90aCBzaWRl LiAqLworCVJURV9FVEhfRkNfTk9ORSA9IDAsIC8qKjwgRGlzYWJsZSBmbG93IGNvbnRyb2wuICov CisJUlRFX0VUSF9GQ19SWF9QQVVTRSwgLyoqPCBSeCBwYXVzZSBmcmFtZSwgZW5hYmxlIGZsb3dj dHJsIG9uIFR4IHNpZGUuICovCisJUlRFX0VUSF9GQ19UWF9QQVVTRSwgLyoqPCBUeCBwYXVzZSBm cmFtZSwgZW5hYmxlIGZsb3djdHJsIG9uIFJ4IHNpZGUuICovCisJUlRFX0VUSF9GQ19GVUxMICAg ICAgLyoqPCBFbmFibGUgZmxvdyBjb250cm9sIG9uIGJvdGggc2lkZS4gKi8KIH07CiAKKyNkZWZp bmUgUlRFX0ZDX05PTkUJUlRFX0VUSF9GQ19OT05FCisjZGVmaW5lIFJURV9GQ19SWF9QQVVTRQlS VEVfRVRIX0ZDX1JYX1BBVVNFCisjZGVmaW5lIFJURV9GQ19UWF9QQVVTRQlSVEVfRVRIX0ZDX1RY X1BBVVNFCisjZGVmaW5lIFJURV9GQ19GVUxMCVJURV9FVEhfRkNfRlVMTAorCiAvKioKICAqIEEg c3RydWN0dXJlIHVzZWQgdG8gY29uZmlndXJlIEV0aGVybmV0IGZsb3cgY29udHJvbCBwYXJhbWV0 ZXIuCiAgKiBUaGVzZSBwYXJhbWV0ZXJzIHdpbGwgYmUgY29uZmlndXJlZCBpbnRvIHRoZSByZWdp c3RlciBvZiB0aGUgTklDLgpAQCAtMTI1MCwxMSArMTQ1NCwxNiBAQCBlbnVtIHJ0ZV9ldGhfdHVu bmVsX3R5cGUgewogICogIE1lbW9yeSBzcGFjZSB0aGF0IGNhbiBiZSBjb25maWd1cmVkIHRvIHN0 b3JlIEZsb3cgRGlyZWN0b3IgZmlsdGVycwogICogIGluIHRoZSBib2FyZCBtZW1vcnkuCiAgKi8K LWVudW0gcnRlX2ZkaXJfcGJhbGxvY190eXBlIHsKLQlSVEVfRkRJUl9QQkFMTE9DXzY0SyA9IDAs ICAvKio8IDY0ay4gKi8KLQlSVEVfRkRJUl9QQkFMTE9DXzEyOEssICAgICAvKio8IDEyOGsuICov Ci0JUlRFX0ZESVJfUEJBTExPQ18yNTZLLCAgICAgLyoqPCAyNTZrLiAqLworZW51bSBydGVfZXRo X2ZkaXJfcGJhbGxvY190eXBlIHsKKwlSVEVfRVRIX0ZESVJfUEJBTExPQ182NEsgPSAwLCAgLyoq PCA2NGsuICovCisJUlRFX0VUSF9GRElSX1BCQUxMT0NfMTI4SywgICAgIC8qKjwgMTI4ay4gKi8K KwlSVEVfRVRIX0ZESVJfUEJBTExPQ18yNTZLLCAgICAgLyoqPCAyNTZrLiAqLwogfTsKKyNkZWZp bmUgcnRlX2ZkaXJfcGJhbGxvY190eXBlCXJ0ZV9ldGhfZmRpcl9wYmFsbG9jX3R5cGUKKworI2Rl ZmluZSBSVEVfRkRJUl9QQkFMTE9DXzY0SwlSVEVfRVRIX0ZESVJfUEJBTExPQ182NEsKKyNkZWZp bmUgUlRFX0ZESVJfUEJBTExPQ18xMjhLCVJURV9FVEhfRkRJUl9QQkFMTE9DXzEyOEsKKyNkZWZp bmUgUlRFX0ZESVJfUEJBTExPQ18yNTZLCVJURV9FVEhfRkRJUl9QQkFMTE9DXzI1NksKIAogLyoq CiAgKiAgU2VsZWN0IHJlcG9ydCBtb2RlIG9mIEZESVIgaGFzaCBpbmZvcm1hdGlvbiBpbiBSeCBk ZXNjcmlwdG9ycy4KQEAgLTEyNzEsOSArMTQ4MCw5IEBAIGVudW0gcnRlX2ZkaXJfc3RhdHVzX21v ZGUgewogICoKICAqIElmIG1vZGUgaXMgUlRFX0ZESVJfTU9ERV9OT05FLCB0aGUgcGJhbGxvYyB2 YWx1ZSBpcyBpZ25vcmVkLgogICovCi1zdHJ1Y3QgcnRlX2ZkaXJfY29uZiB7CitzdHJ1Y3QgcnRl X2V0aF9mZGlyX2NvbmYgewogCWVudW0gcnRlX2ZkaXJfbW9kZSBtb2RlOyAvKio8IEZsb3cgRGly ZWN0b3IgbW9kZS4gKi8KLQllbnVtIHJ0ZV9mZGlyX3BiYWxsb2NfdHlwZSBwYmFsbG9jOyAvKio8 IFNwYWNlIGZvciBGRElSIGZpbHRlcnMuICovCisJZW51bSBydGVfZXRoX2ZkaXJfcGJhbGxvY190 eXBlIHBiYWxsb2M7IC8qKjwgU3BhY2UgZm9yIEZESVIgZmlsdGVycy4gKi8KIAllbnVtIHJ0ZV9m ZGlyX3N0YXR1c19tb2RlIHN0YXR1czsgIC8qKjwgSG93IHRvIHJlcG9ydCBGRElSIGhhc2guICov CiAJLyoqIFJ4IHF1ZXVlIG9mIHBhY2tldHMgbWF0Y2hpbmcgYSAiZHJvcCIgZmlsdGVyIGluIHBl cmZlY3QgbW9kZS4gKi8KIAl1aW50OF90IGRyb3BfcXVldWU7CkBAIC0xMjgyLDYgKzE0OTEsOCBA QCBzdHJ1Y3QgcnRlX2ZkaXJfY29uZiB7CiAJc3RydWN0IHJ0ZV9ldGhfZmRpcl9mbGV4X2NvbmYg ZmxleF9jb25mOwogfTsKIAorI2RlZmluZSBydGVfZmRpcl9jb25mIHJ0ZV9ldGhfZmRpcl9jb25m CisKIC8qKgogICogVURQIHR1bm5lbGluZyBjb25maWd1cmF0aW9uLgogICoKQEAgLTEzMDgsMTgg KzE1MTksMjAgQEAgc3RydWN0IHJ0ZV9pbnRyX2NvbmYgewogCXVpbnQzMl90IHJtdjoxOwogfTsK IAorI2RlZmluZSBydGVfaW50cl9jb25mIHJ0ZV9ldGhfaW50cl9jb25mCisKIC8qKgogICogQSBz dHJ1Y3R1cmUgdXNlZCB0byBjb25maWd1cmUgYW4gRXRoZXJuZXQgcG9ydC4KICAqIERlcGVuZGlu ZyB1cG9uIHRoZSBSeCBtdWx0aS1xdWV1ZSBtb2RlLCBleHRyYSBhZHZhbmNlZAogICogY29uZmln dXJhdGlvbiBzZXR0aW5ncyBtYXkgYmUgbmVlZGVkLgogICovCiBzdHJ1Y3QgcnRlX2V0aF9jb25m IHsKLQl1aW50MzJfdCBsaW5rX3NwZWVkczsgLyoqPCBiaXRtYXAgb2YgRVRIX0xJTktfU1BFRURf WFhYIG9mIHNwZWVkcyB0byBiZQotCQkJCXVzZWQuIEVUSF9MSU5LX1NQRUVEX0ZJWEVEIGRpc2Fi bGVzIGxpbmsKKwl1aW50MzJfdCBsaW5rX3NwZWVkczsgLyoqPCBiaXRtYXAgb2YgUlRFX0VUSF9M SU5LX1NQRUVEX1hYWCBvZiBzcGVlZHMgdG8gYmUKKwkJCQl1c2VkLiBSVEVfRVRIX0xJTktfU1BF RURfRklYRUQgZGlzYWJsZXMgbGluawogCQkJCWF1dG9uZWdvdGlhdGlvbiwgYW5kIGEgdW5pcXVl IHNwZWVkIHNoYWxsIGJlCiAJCQkJc2V0LiBPdGhlcndpc2UsIHRoZSBiaXRtYXAgZGVmaW5lcyB0 aGUgc2V0IG9mCiAJCQkJc3BlZWRzIHRvIGJlIGFkdmVydGlzZWQuIElmIHRoZSBzcGVjaWFsIHZh bHVlCi0JCQkJRVRIX0xJTktfU1BFRURfQVVUT05FRyAoMCkgaXMgdXNlZCwgYWxsIHNwZWVkcwor CQkJCVJURV9FVEhfTElOS19TUEVFRF9BVVRPTkVHICgwKSBpcyB1c2VkLCBhbGwgc3BlZWRzCiAJ CQkJc3VwcG9ydGVkIGFyZSBhZHZlcnRpc2VkLiAqLwogCXN0cnVjdCBydGVfZXRoX3J4bW9kZSBy eG1vZGU7IC8qKjwgUG9ydCBSeCBjb25maWd1cmF0aW9uLiAqLwogCXN0cnVjdCBydGVfZXRoX3R4 bW9kZSB0eG1vZGU7IC8qKjwgUG9ydCBUeCBjb25maWd1cmF0aW9uLiAqLwpAQCAtMTM0Niw0NyAr MTU1OSw2NyBAQCBzdHJ1Y3QgcnRlX2V0aF9jb25mIHsKIAkJc3RydWN0IHJ0ZV9ldGhfdm1kcV90 eF9jb25mIHZtZHFfdHhfY29uZjsKIAl9IHR4X2Fkdl9jb25mOyAvKio8IFBvcnQgVHggRENCIGNv bmZpZ3VyYXRpb24gKHVuaW9uKS4gKi8KIAkvKiogQ3VycmVudGx5LFByaW9yaXR5IEZsb3cgQ29u dHJvbChQRkMpIGFyZSBzdXBwb3J0ZWQsaWYgRENCIHdpdGggUEZDCi0JICAgIGlzIG5lZWRlZCxh bmQgdGhlIHZhcmlhYmxlIG11c3QgYmUgc2V0IEVUSF9EQ0JfUEZDX1NVUFBPUlQuICovCisJICAg IGlzIG5lZWRlZCxhbmQgdGhlIHZhcmlhYmxlIG11c3QgYmUgc2V0IFJURV9FVEhfRENCX1BGQ19T VVBQT1JULiAqLwogCXVpbnQzMl90IGRjYl9jYXBhYmlsaXR5X2VuOwotCXN0cnVjdCBydGVfZmRp cl9jb25mIGZkaXJfY29uZjsgLyoqPCBGRElSIGNvbmZpZ3VyYXRpb24uIERFUFJFQ0FURUQgKi8K LQlzdHJ1Y3QgcnRlX2ludHJfY29uZiBpbnRyX2NvbmY7IC8qKjwgSW50ZXJydXB0IG1vZGUgY29u ZmlndXJhdGlvbi4gKi8KKwlzdHJ1Y3QgcnRlX2V0aF9mZGlyX2NvbmYgZmRpcl9jb25mOyAvKio8 IEZESVIgY29uZmlndXJhdGlvbi4gREVQUkVDQVRFRCAqLworCXN0cnVjdCBydGVfZXRoX2ludHJf Y29uZiBpbnRyX2NvbmY7IC8qKjwgSW50ZXJydXB0IG1vZGUgY29uZmlndXJhdGlvbi4gKi8KIH07 CiAKIC8qKgogICogUnggb2ZmbG9hZCBjYXBhYmlsaXRpZXMgb2YgYSBkZXZpY2UuCiAgKi8KLSNk ZWZpbmUgREVWX1JYX09GRkxPQURfVkxBTl9TVFJJUCAgMHgwMDAwMDAwMQotI2RlZmluZSBERVZf UlhfT0ZGTE9BRF9JUFY0X0NLU1VNICAweDAwMDAwMDAyCi0jZGVmaW5lIERFVl9SWF9PRkZMT0FE X1VEUF9DS1NVTSAgIDB4MDAwMDAwMDQKLSNkZWZpbmUgREVWX1JYX09GRkxPQURfVENQX0NLU1VN ICAgMHgwMDAwMDAwOAotI2RlZmluZSBERVZfUlhfT0ZGTE9BRF9UQ1BfTFJPICAgICAweDAwMDAw MDEwCi0jZGVmaW5lIERFVl9SWF9PRkZMT0FEX1FJTlFfU1RSSVAgIDB4MDAwMDAwMjAKLSNkZWZp bmUgREVWX1JYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTSAweDAwMDAwMDQwCi0jZGVmaW5lIERF Vl9SWF9PRkZMT0FEX01BQ1NFQ19TVFJJUCAgICAgMHgwMDAwMDA4MAotI2RlZmluZSBERVZfUlhf T0ZGTE9BRF9IRUFERVJfU1BMSVQJMHgwMDAwMDEwMAotI2RlZmluZSBERVZfUlhfT0ZGTE9BRF9W TEFOX0ZJTFRFUgkweDAwMDAwMjAwCi0jZGVmaW5lIERFVl9SWF9PRkZMT0FEX1ZMQU5fRVhURU5E CTB4MDAwMDA0MDAKLSNkZWZpbmUgREVWX1JYX09GRkxPQURfU0NBVFRFUgkJMHgwMDAwMjAwMAor I2RlZmluZSBSVEVfRVRIX1JYX09GRkxPQURfVkxBTl9TVFJJUCAgICAgICAweDAwMDAwMDAxCisj ZGVmaW5lIERFVl9SWF9PRkZMT0FEX1ZMQU5fU1RSSVAgICAgICAgICAgIFJURV9FVEhfUlhfT0ZG TE9BRF9WTEFOX1NUUklQCisjZGVmaW5lIFJURV9FVEhfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNICAg ICAgIDB4MDAwMDAwMDIKKyNkZWZpbmUgREVWX1JYX09GRkxPQURfSVBWNF9DS1NVTSAgICAgICAg ICAgUlRFX0VUSF9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0KKyNkZWZpbmUgUlRFX0VUSF9SWF9PRkZM T0FEX1VEUF9DS1NVTSAgICAgICAgMHgwMDAwMDAwNAorI2RlZmluZSBERVZfUlhfT0ZGTE9BRF9V RFBfQ0tTVU0gICAgICAgICAgICBSVEVfRVRIX1JYX09GRkxPQURfVURQX0NLU1VNCisjZGVmaW5l IFJURV9FVEhfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0gICAgICAgIDB4MDAwMDAwMDgKKyNkZWZpbmUg REVWX1JYX09GRkxPQURfVENQX0NLU1VNICAgICAgICAgICAgUlRFX0VUSF9SWF9PRkZMT0FEX1RD UF9DS1NVTQorI2RlZmluZSBSVEVfRVRIX1JYX09GRkxPQURfVENQX0xSTyAgICAgICAgICAweDAw MDAwMDEwCisjZGVmaW5lIERFVl9SWF9PRkZMT0FEX1RDUF9MUk8gICAgICAgICAgICAgIFJURV9F VEhfUlhfT0ZGTE9BRF9UQ1BfTFJPCisjZGVmaW5lIFJURV9FVEhfUlhfT0ZGTE9BRF9RSU5RX1NU UklQICAgICAgIDB4MDAwMDAwMjAKKyNkZWZpbmUgREVWX1JYX09GRkxPQURfUUlOUV9TVFJJUCAg ICAgICAgICAgUlRFX0VUSF9SWF9PRkZMT0FEX1FJTlFfU1RSSVAKKyNkZWZpbmUgUlRFX0VUSF9S WF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0gMHgwMDAwMDA0MAorI2RlZmluZSBERVZfUlhfT0ZG TE9BRF9PVVRFUl9JUFY0X0NLU1VNICAgICBSVEVfRVRIX1JYX09GRkxPQURfT1VURVJfSVBWNF9D S1NVTQorI2RlZmluZSBSVEVfRVRIX1JYX09GRkxPQURfTUFDU0VDX1NUUklQICAgICAweDAwMDAw MDgwCisjZGVmaW5lIERFVl9SWF9PRkZMT0FEX01BQ1NFQ19TVFJJUCAgICAgICAgIFJURV9FVEhf UlhfT0ZGTE9BRF9NQUNTRUNfU1RSSVAKKyNkZWZpbmUgUlRFX0VUSF9SWF9PRkZMT0FEX0hFQURF Ul9TUExJVCAgICAgMHgwMDAwMDEwMAorI2RlZmluZSBERVZfUlhfT0ZGTE9BRF9IRUFERVJfU1BM SVQgICAgICAgICBSVEVfRVRIX1JYX09GRkxPQURfSEVBREVSX1NQTElUCisjZGVmaW5lIFJURV9F VEhfUlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUiAgICAgIDB4MDAwMDAyMDAKKyNkZWZpbmUgREVWX1JY X09GRkxPQURfVkxBTl9GSUxURVIgICAgICAgICAgUlRFX0VUSF9SWF9PRkZMT0FEX1ZMQU5fRklM VEVSCisjZGVmaW5lIFJURV9FVEhfUlhfT0ZGTE9BRF9WTEFOX0VYVEVORCAgICAgIDB4MDAwMDA0 MDAKKyNkZWZpbmUgREVWX1JYX09GRkxPQURfVkxBTl9FWFRFTkQgICAgICAgICAgUlRFX0VUSF9S WF9PRkZMT0FEX1ZMQU5fRVhURU5ECisjZGVmaW5lIFJURV9FVEhfUlhfT0ZGTE9BRF9TQ0FUVEVS ICAgICAgICAgIDB4MDAwMDIwMDAKKyNkZWZpbmUgREVWX1JYX09GRkxPQURfU0NBVFRFUiAgICAg ICAgICAgICAgUlRFX0VUSF9SWF9PRkZMT0FEX1NDQVRURVIKIC8qKgogICogVGltZXN0YW1wIGlz IHNldCBieSB0aGUgZHJpdmVyIGluIFJURV9NQlVGX0RZTkZJRUxEX1RJTUVTVEFNUF9OQU1FCiAg KiBhbmQgUlRFX01CVUZfRFlORkxBR19SWF9USU1FU1RBTVBfTkFNRSBpcyBzZXQgaW4gb2xfZmxh Z3MuCiAgKiBUaGUgbWJ1ZiBmaWVsZCBhbmQgZmxhZyBhcmUgcmVnaXN0ZXJlZCB3aGVuIHRoZSBv ZmZsb2FkIGlzIGNvbmZpZ3VyZWQuCiAgKi8KLSNkZWZpbmUgREVWX1JYX09GRkxPQURfVElNRVNU QU1QCTB4MDAwMDQwMDAKLSNkZWZpbmUgREVWX1JYX09GRkxPQURfU0VDVVJJVFkgICAgICAgICAw eDAwMDA4MDAwCi0jZGVmaW5lIERFVl9SWF9PRkZMT0FEX0tFRVBfQ1JDCQkweDAwMDEwMDAwCi0j ZGVmaW5lIERFVl9SWF9PRkZMT0FEX1NDVFBfQ0tTVU0JMHgwMDAyMDAwMAotI2RlZmluZSBERVZf UlhfT0ZGTE9BRF9PVVRFUl9VRFBfQ0tTVU0gIDB4MDAwNDAwMDAKLSNkZWZpbmUgREVWX1JYX09G RkxPQURfUlNTX0hBU0gJCTB4MDAwODAwMDAKLSNkZWZpbmUgUlRFX0VUSF9SWF9PRkZMT0FEX0JV RkZFUl9TUExJVCAweDAwMTAwMDAwCi0KLSNkZWZpbmUgREVWX1JYX09GRkxPQURfQ0hFQ0tTVU0g KERFVl9SWF9PRkZMT0FEX0lQVjRfQ0tTVU0gfCBcCi0JCQkJIERFVl9SWF9PRkZMT0FEX1VEUF9D S1NVTSB8IFwKLQkJCQkgREVWX1JYX09GRkxPQURfVENQX0NLU1VNKQotI2RlZmluZSBERVZfUlhf T0ZGTE9BRF9WTEFOIChERVZfUlhfT0ZGTE9BRF9WTEFOX1NUUklQIHwgXAotCQkJICAgICBERVZf UlhfT0ZGTE9BRF9WTEFOX0ZJTFRFUiB8IFwKLQkJCSAgICAgREVWX1JYX09GRkxPQURfVkxBTl9F WFRFTkQgfCBcCi0JCQkgICAgIERFVl9SWF9PRkZMT0FEX1FJTlFfU1RSSVApCisjZGVmaW5lIFJU RV9FVEhfUlhfT0ZGTE9BRF9USU1FU1RBTVAgICAgICAgIDB4MDAwMDQwMDAKKyNkZWZpbmUgREVW X1JYX09GRkxPQURfVElNRVNUQU1QICAgICAgICAgICAgUlRFX0VUSF9SWF9PRkZMT0FEX1RJTUVT VEFNUAorI2RlZmluZSBSVEVfRVRIX1JYX09GRkxPQURfU0VDVVJJVFkgICAgICAgICAweDAwMDA4 MDAwCisjZGVmaW5lIERFVl9SWF9PRkZMT0FEX1NFQ1VSSVRZICAgICAgICAgICAgIFJURV9FVEhf UlhfT0ZGTE9BRF9TRUNVUklUWQorI2RlZmluZSBSVEVfRVRIX1JYX09GRkxPQURfS0VFUF9DUkMg ICAgICAgICAweDAwMDEwMDAwCisjZGVmaW5lIERFVl9SWF9PRkZMT0FEX0tFRVBfQ1JDICAgICAg ICAgICAgIFJURV9FVEhfUlhfT0ZGTE9BRF9LRUVQX0NSQworI2RlZmluZSBSVEVfRVRIX1JYX09G RkxPQURfU0NUUF9DS1NVTSAgICAgICAweDAwMDIwMDAwCisjZGVmaW5lIERFVl9SWF9PRkZMT0FE X1NDVFBfQ0tTVU0gICAgICAgICAgIFJURV9FVEhfUlhfT0ZGTE9BRF9TQ1RQX0NLU1VNCisjZGVm aW5lIFJURV9FVEhfUlhfT0ZGTE9BRF9PVVRFUl9VRFBfQ0tTVU0gIDB4MDAwNDAwMDAKKyNkZWZp bmUgREVWX1JYX09GRkxPQURfT1VURVJfVURQX0NLU1VNICAgICAgUlRFX0VUSF9SWF9PRkZMT0FE X09VVEVSX1VEUF9DS1NVTQorI2RlZmluZSBSVEVfRVRIX1JYX09GRkxPQURfUlNTX0hBU0ggICAg ICAgICAweDAwMDgwMDAwCisjZGVmaW5lIERFVl9SWF9PRkZMT0FEX1JTU19IQVNIICAgICAgICAg ICAgIFJURV9FVEhfUlhfT0ZGTE9BRF9SU1NfSEFTSAorI2RlZmluZSBSVEVfRVRIX1JYX09GRkxP QURfQlVGRkVSX1NQTElUICAgICAweDAwMTAwMDAwCisKKyNkZWZpbmUgUlRFX0VUSF9SWF9PRkZM T0FEX0NIRUNLU1VNIChSVEVfRVRIX1JYX09GRkxPQURfSVBWNF9DS1NVTSB8IFwKKwkJCQkgUlRF X0VUSF9SWF9PRkZMT0FEX1VEUF9DS1NVTSB8IFwKKwkJCQkgUlRFX0VUSF9SWF9PRkZMT0FEX1RD UF9DS1NVTSkKKyNkZWZpbmUgREVWX1JYX09GRkxPQURfQ0hFQ0tTVU0JUlRFX0VUSF9SWF9PRkZM T0FEX0NIRUNLU1VNCisjZGVmaW5lIFJURV9FVEhfUlhfT0ZGTE9BRF9WTEFOIChSVEVfRVRIX1JY X09GRkxPQURfVkxBTl9TVFJJUCB8IFwKKwkJCSAgICAgUlRFX0VUSF9SWF9PRkZMT0FEX1ZMQU5f RklMVEVSIHwgXAorCQkJICAgICBSVEVfRVRIX1JYX09GRkxPQURfVkxBTl9FWFRFTkQgfCBcCisJ CQkgICAgIFJURV9FVEhfUlhfT0ZGTE9BRF9RSU5RX1NUUklQKQorI2RlZmluZSBERVZfUlhfT0ZG TE9BRF9WTEFOCVJURV9FVEhfUlhfT0ZGTE9BRF9WTEFOCiAKIC8qCiAgKiBJZiBuZXcgUnggb2Zm bG9hZCBjYXBhYmlsaXRpZXMgYXJlIGRlZmluZWQsIHRoZXkgYWxzbyBtdXN0IGJlCkBAIC0xMzk2 LDU0ICsxNjI5LDc2IEBAIHN0cnVjdCBydGVfZXRoX2NvbmYgewogLyoqCiAgKiBUeCBvZmZsb2Fk IGNhcGFiaWxpdGllcyBvZiBhIGRldmljZS4KICAqLwotI2RlZmluZSBERVZfVFhfT0ZGTE9BRF9W TEFOX0lOU0VSVCAweDAwMDAwMDAxCi0jZGVmaW5lIERFVl9UWF9PRkZMT0FEX0lQVjRfQ0tTVU0g IDB4MDAwMDAwMDIKLSNkZWZpbmUgREVWX1RYX09GRkxPQURfVURQX0NLU1VNICAgMHgwMDAwMDAw NAotI2RlZmluZSBERVZfVFhfT0ZGTE9BRF9UQ1BfQ0tTVU0gICAweDAwMDAwMDA4Ci0jZGVmaW5l IERFVl9UWF9PRkZMT0FEX1NDVFBfQ0tTVU0gIDB4MDAwMDAwMTAKLSNkZWZpbmUgREVWX1RYX09G RkxPQURfVENQX1RTTyAgICAgMHgwMDAwMDAyMAotI2RlZmluZSBERVZfVFhfT0ZGTE9BRF9VRFBf VFNPICAgICAweDAwMDAwMDQwCi0jZGVmaW5lIERFVl9UWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tT VU0gMHgwMDAwMDA4MCAvKio8IFVzZWQgZm9yIHR1bm5lbGluZyBwYWNrZXQuICovCi0jZGVmaW5l IERFVl9UWF9PRkZMT0FEX1FJTlFfSU5TRVJUIDB4MDAwMDAxMDAKLSNkZWZpbmUgREVWX1RYX09G RkxPQURfVlhMQU5fVE5MX1RTTyAgICAweDAwMDAwMjAwICAgIC8qKjwgVXNlZCBmb3IgdHVubmVs aW5nIHBhY2tldC4gKi8KLSNkZWZpbmUgREVWX1RYX09GRkxPQURfR1JFX1ROTF9UU08gICAgICAw eDAwMDAwNDAwICAgIC8qKjwgVXNlZCBmb3IgdHVubmVsaW5nIHBhY2tldC4gKi8KLSNkZWZpbmUg REVWX1RYX09GRkxPQURfSVBJUF9UTkxfVFNPICAgICAweDAwMDAwODAwICAgIC8qKjwgVXNlZCBm b3IgdHVubmVsaW5nIHBhY2tldC4gKi8KLSNkZWZpbmUgREVWX1RYX09GRkxPQURfR0VORVZFX1RO TF9UU08gICAweDAwMDAxMDAwICAgIC8qKjwgVXNlZCBmb3IgdHVubmVsaW5nIHBhY2tldC4gKi8K LSNkZWZpbmUgREVWX1RYX09GRkxPQURfTUFDU0VDX0lOU0VSVCAgICAweDAwMDAyMDAwCisjZGVm aW5lIFJURV9FVEhfVFhfT0ZGTE9BRF9WTEFOX0lOU0VSVCAgICAgIDB4MDAwMDAwMDEKKyNkZWZp bmUgREVWX1RYX09GRkxPQURfVkxBTl9JTlNFUlQgICAgICAgICAgUlRFX0VUSF9UWF9PRkZMT0FE X1ZMQU5fSU5TRVJUCisjZGVmaW5lIFJURV9FVEhfVFhfT0ZGTE9BRF9JUFY0X0NLU1VNICAgICAg IDB4MDAwMDAwMDIKKyNkZWZpbmUgREVWX1RYX09GRkxPQURfSVBWNF9DS1NVTSAgICAgICAgICAg UlRFX0VUSF9UWF9PRkZMT0FEX0lQVjRfQ0tTVU0KKyNkZWZpbmUgUlRFX0VUSF9UWF9PRkZMT0FE X1VEUF9DS1NVTSAgICAgICAgMHgwMDAwMDAwNAorI2RlZmluZSBERVZfVFhfT0ZGTE9BRF9VRFBf Q0tTVU0gICAgICAgICAgICBSVEVfRVRIX1RYX09GRkxPQURfVURQX0NLU1VNCisjZGVmaW5lIFJU RV9FVEhfVFhfT0ZGTE9BRF9UQ1BfQ0tTVU0gICAgICAgIDB4MDAwMDAwMDgKKyNkZWZpbmUgREVW X1RYX09GRkxPQURfVENQX0NLU1VNICAgICAgICAgICAgUlRFX0VUSF9UWF9PRkZMT0FEX1RDUF9D S1NVTQorI2RlZmluZSBSVEVfRVRIX1RYX09GRkxPQURfU0NUUF9DS1NVTSAgICAgICAweDAwMDAw MDEwCisjZGVmaW5lIERFVl9UWF9PRkZMT0FEX1NDVFBfQ0tTVU0gICAgICAgICAgIFJURV9FVEhf VFhfT0ZGTE9BRF9TQ1RQX0NLU1VNCisjZGVmaW5lIFJURV9FVEhfVFhfT0ZGTE9BRF9UQ1BfVFNP ICAgICAgICAgIDB4MDAwMDAwMjAKKyNkZWZpbmUgREVWX1RYX09GRkxPQURfVENQX1RTTyAgICAg ICAgICAgICAgUlRFX0VUSF9UWF9PRkZMT0FEX1RDUF9UU08KKyNkZWZpbmUgUlRFX0VUSF9UWF9P RkZMT0FEX1VEUF9UU08gICAgICAgICAgMHgwMDAwMDA0MAorI2RlZmluZSBERVZfVFhfT0ZGTE9B RF9VRFBfVFNPICAgICAgICAgICAgICBSVEVfRVRIX1RYX09GRkxPQURfVURQX1RTTworI2RlZmlu ZSBSVEVfRVRIX1RYX09GRkxPQURfT1VURVJfSVBWNF9DS1NVTSAweDAwMDAwMDgwIC8qKjwgVXNl ZCBmb3IgdHVubmVsaW5nIHBhY2tldC4gKi8KKyNkZWZpbmUgREVWX1RYX09GRkxPQURfT1VURVJf SVBWNF9DS1NVTSAgICAgUlRFX0VUSF9UWF9PRkZMT0FEX09VVEVSX0lQVjRfQ0tTVU0KKyNkZWZp bmUgUlRFX0VUSF9UWF9PRkZMT0FEX1FJTlFfSU5TRVJUICAgICAgMHgwMDAwMDEwMAorI2RlZmlu ZSBERVZfVFhfT0ZGTE9BRF9RSU5RX0lOU0VSVCAgICAgICAgICBSVEVfRVRIX1RYX09GRkxPQURf UUlOUV9JTlNFUlQKKyNkZWZpbmUgUlRFX0VUSF9UWF9PRkZMT0FEX1ZYTEFOX1ROTF9UU08gICAg MHgwMDAwMDIwMCAgICAvKio8IFVzZWQgZm9yIHR1bm5lbGluZyBwYWNrZXQuICovCisjZGVmaW5l IERFVl9UWF9PRkZMT0FEX1ZYTEFOX1ROTF9UU08gICAgICAgIFJURV9FVEhfVFhfT0ZGTE9BRF9W WExBTl9UTkxfVFNPCisjZGVmaW5lIFJURV9FVEhfVFhfT0ZGTE9BRF9HUkVfVE5MX1RTTyAgICAg IDB4MDAwMDA0MDAgICAgLyoqPCBVc2VkIGZvciB0dW5uZWxpbmcgcGFja2V0LiAqLworI2RlZmlu ZSBERVZfVFhfT0ZGTE9BRF9HUkVfVE5MX1RTTyAgICAgICAgICBSVEVfRVRIX1RYX09GRkxPQURf R1JFX1ROTF9UU08KKyNkZWZpbmUgUlRFX0VUSF9UWF9PRkZMT0FEX0lQSVBfVE5MX1RTTyAgICAg MHgwMDAwMDgwMCAgICAvKio8IFVzZWQgZm9yIHR1bm5lbGluZyBwYWNrZXQuICovCisjZGVmaW5l IERFVl9UWF9PRkZMT0FEX0lQSVBfVE5MX1RTTyAgICAgICAgIFJURV9FVEhfVFhfT0ZGTE9BRF9J UElQX1ROTF9UU08KKyNkZWZpbmUgUlRFX0VUSF9UWF9PRkZMT0FEX0dFTkVWRV9UTkxfVFNPICAg MHgwMDAwMTAwMCAgICAvKio8IFVzZWQgZm9yIHR1bm5lbGluZyBwYWNrZXQuICovCisjZGVmaW5l IERFVl9UWF9PRkZMT0FEX0dFTkVWRV9UTkxfVFNPICAgICAgIFJURV9FVEhfVFhfT0ZGTE9BRF9H RU5FVkVfVE5MX1RTTworI2RlZmluZSBSVEVfRVRIX1RYX09GRkxPQURfTUFDU0VDX0lOU0VSVCAg ICAweDAwMDAyMDAwCisjZGVmaW5lIERFVl9UWF9PRkZMT0FEX01BQ1NFQ19JTlNFUlQgICAgICAg IFJURV9FVEhfVFhfT0ZGTE9BRF9NQUNTRUNfSU5TRVJUCiAvKioKICAqIE11bHRpcGxlIHRocmVh ZHMgY2FuIGludm9rZSBydGVfZXRoX3R4X2J1cnN0KCkgY29uY3VycmVudGx5IG9uIHRoZSBzYW1l CiAgKiBUeCBxdWV1ZSB3aXRob3V0IFNXIGxvY2suCiAgKi8KLSNkZWZpbmUgREVWX1RYX09GRkxP QURfTVRfTE9DS0ZSRUUgICAgICAweDAwMDA0MDAwCisjZGVmaW5lIFJURV9FVEhfVFhfT0ZGTE9B RF9NVF9MT0NLRlJFRSAgICAgIDB4MDAwMDQwMDAKKyNkZWZpbmUgREVWX1RYX09GRkxPQURfTVRf TE9DS0ZSRUUgICAgICAgICAgUlRFX0VUSF9UWF9PRkZMT0FEX01UX0xPQ0tGUkVFCiAvKiogRGV2 aWNlIHN1cHBvcnRzIG11bHRpIHNlZ21lbnQgc2VuZC4gKi8KLSNkZWZpbmUgREVWX1RYX09GRkxP QURfTVVMVElfU0VHUwkweDAwMDA4MDAwCisjZGVmaW5lIFJURV9FVEhfVFhfT0ZGTE9BRF9NVUxU SV9TRUdTICAgICAgIDB4MDAwMDgwMDAKKyNkZWZpbmUgREVWX1RYX09GRkxPQURfTVVMVElfU0VH UyAgICAgICAgICAgUlRFX0VUSF9UWF9PRkZMT0FEX01VTFRJX1NFR1MKIC8qKgogICogRGV2aWNl IHN1cHBvcnRzIG9wdGltaXphdGlvbiBmb3IgZmFzdCByZWxlYXNlIG9mIG1idWZzLgogICogV2hl biBzZXQgYXBwbGljYXRpb24gbXVzdCBndWFyYW50ZWUgdGhhdCBwZXItcXVldWUgYWxsIG1idWZz IGNvbWVzIGZyb20KICAqIHRoZSBzYW1lIG1lbXBvb2wgYW5kIGhhcyByZWZjbnQgPSAxLgogICov Ci0jZGVmaW5lIERFVl9UWF9PRkZMT0FEX01CVUZfRkFTVF9GUkVFCTB4MDAwMTAwMDAKLSNkZWZp bmUgREVWX1RYX09GRkxPQURfU0VDVVJJVFkgICAgICAgICAweDAwMDIwMDAwCisjZGVmaW5lIFJU RV9FVEhfVFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJFRSAgIDB4MDAwMTAwMDAKKyNkZWZpbmUgREVW X1RYX09GRkxPQURfTUJVRl9GQVNUX0ZSRUUgICAgICAgUlRFX0VUSF9UWF9PRkZMT0FEX01CVUZf RkFTVF9GUkVFCisjZGVmaW5lIFJURV9FVEhfVFhfT0ZGTE9BRF9TRUNVUklUWSAgICAgICAgIDB4 MDAwMjAwMDAKKyNkZWZpbmUgREVWX1RYX09GRkxPQURfU0VDVVJJVFkgICAgICAgICAgICAgUlRF X0VUSF9UWF9PRkZMT0FEX1NFQ1VSSVRZCiAvKioKICAqIERldmljZSBzdXBwb3J0cyBnZW5lcmlj IFVEUCB0dW5uZWxlZCBwYWNrZXQgVFNPLgogICogQXBwbGljYXRpb24gbXVzdCBzZXQgUEtUX1RY X1RVTk5FTF9VRFAgYW5kIG90aGVyIG1idWYgZmllbGRzIHJlcXVpcmVkCiAgKiBmb3IgdHVubmVs IFRTTy4KICAqLwotI2RlZmluZSBERVZfVFhfT0ZGTE9BRF9VRFBfVE5MX1RTTyAgICAgIDB4MDAw NDAwMDAKKyNkZWZpbmUgUlRFX0VUSF9UWF9PRkZMT0FEX1VEUF9UTkxfVFNPICAgICAgMHgwMDA0 MDAwMAorI2RlZmluZSBERVZfVFhfT0ZGTE9BRF9VRFBfVE5MX1RTTyAgICAgICAgICBSVEVfRVRI X1RYX09GRkxPQURfVURQX1ROTF9UU08KIC8qKgogICogRGV2aWNlIHN1cHBvcnRzIGdlbmVyaWMg SVAgdHVubmVsZWQgcGFja2V0IFRTTy4KICAqIEFwcGxpY2F0aW9uIG11c3Qgc2V0IFBLVF9UWF9U VU5ORUxfSVAgYW5kIG90aGVyIG1idWYgZmllbGRzIHJlcXVpcmVkCiAgKiBmb3IgdHVubmVsIFRT Ty4KICAqLwotI2RlZmluZSBERVZfVFhfT0ZGTE9BRF9JUF9UTkxfVFNPICAgICAgIDB4MDAwODAw MDAKKyNkZWZpbmUgUlRFX0VUSF9UWF9PRkZMT0FEX0lQX1ROTF9UU08gICAgICAgMHgwMDA4MDAw MAorI2RlZmluZSBERVZfVFhfT0ZGTE9BRF9JUF9UTkxfVFNPICAgICAgICAgICBSVEVfRVRIX1RY X09GRkxPQURfSVBfVE5MX1RTTwogLyoqIERldmljZSBzdXBwb3J0cyBvdXRlciBVRFAgY2hlY2tz dW0gKi8KLSNkZWZpbmUgREVWX1RYX09GRkxPQURfT1VURVJfVURQX0NLU1VNICAweDAwMTAwMDAw CisjZGVmaW5lIFJURV9FVEhfVFhfT0ZGTE9BRF9PVVRFUl9VRFBfQ0tTVU0gIDB4MDAxMDAwMDAK KyNkZWZpbmUgREVWX1RYX09GRkxPQURfT1VURVJfVURQX0NLU1VNICAgICAgUlRFX0VUSF9UWF9P RkZMT0FEX09VVEVSX1VEUF9DS1NVTQogLyoqCiAgKiBEZXZpY2Ugc2VuZHMgb24gdGltZSByZWFk IGZyb20gUlRFX01CVUZfRFlORklFTERfVElNRVNUQU1QX05BTUUKICAqIGlmIFJURV9NQlVGX0RZ TkZMQUdfVFhfVElNRVNUQU1QX05BTUUgaXMgc2V0IGluIG9sX2ZsYWdzLgogICogVGhlIG1idWYg ZmllbGQgYW5kIGZsYWcgYXJlIHJlZ2lzdGVyZWQgd2hlbiB0aGUgb2ZmbG9hZCBpcyBjb25maWd1 cmVkLgogICovCi0jZGVmaW5lIERFVl9UWF9PRkZMT0FEX1NFTkRfT05fVElNRVNUQU1QIDB4MDAy MDAwMDAKKyNkZWZpbmUgUlRFX0VUSF9UWF9PRkZMT0FEX1NFTkRfT05fVElNRVNUQU1QIDB4MDAy MDAwMDAKKyNkZWZpbmUgREVWX1RYX09GRkxPQURfU0VORF9PTl9USU1FU1RBTVAgICAgIFJURV9F VEhfVFhfT0ZGTE9BRF9TRU5EX09OX1RJTUVTVEFNUAogLyoKICAqIElmIG5ldyBUeCBvZmZsb2Fk IGNhcGFiaWxpdGllcyBhcmUgZGVmaW5lZCwgdGhleSBhbHNvIG11c3QgYmUKICAqIG1lbnRpb25l ZCBpbiBydGVfdHhfb2ZmbG9hZF9uYW1lcyBpbiBydGVfZXRoZGV2LmMgZmlsZS4KQEAgLTE0OTMs NyArMTc0OCw3IEBAIHN0cnVjdCBydGVfZXRoX2Rldl9wb3J0Y29uZiB7CiAgKiBEZWZhdWx0IHZh bHVlcyBmb3Igc3dpdGNoIGRvbWFpbiBJRCB3aGVuIGV0aGRldiBkb2VzIG5vdCBzdXBwb3J0IHN3 aXRjaAogICogZG9tYWluIGRlZmluaXRpb25zLgogICovCi0jZGVmaW5lIFJURV9FVEhfREVWX1NX SVRDSF9ET01BSU5fSURfSU5WQUxJRAkoVUlOVDE2X01BWCkKKyNkZWZpbmUgUlRFX0VUSF9ERVZf U1dJVENIX0RPTUFJTl9JRF9JTlZBTElEICAgKFVJTlQxNl9NQVgpCiAKIC8qKgogICogRXRoZXJu ZXQgZGV2aWNlIGFzc29jaWF0ZWQgc3dpdGNoIGluZm9ybWF0aW9uCkBAIC0xNTkxLDcgKzE4NDYs NyBAQCBzdHJ1Y3QgcnRlX2V0aF9kZXZfaW5mbyB7CiAJdWludDE2X3Qgdm1kcV9wb29sX2Jhc2U7 ICAvKio8IEZpcnN0IElEIG9mIFZNRHEgcG9vbHMuICovCiAJc3RydWN0IHJ0ZV9ldGhfZGVzY19s aW0gcnhfZGVzY19saW07ICAvKio8IFJ4IGRlc2NyaXB0b3JzIGxpbWl0cyAqLwogCXN0cnVjdCBy dGVfZXRoX2Rlc2NfbGltIHR4X2Rlc2NfbGltOyAgLyoqPCBUeCBkZXNjcmlwdG9ycyBsaW1pdHMg Ki8KLQl1aW50MzJfdCBzcGVlZF9jYXBhOyAgLyoqPCBTdXBwb3J0ZWQgc3BlZWRzIGJpdG1hcCAo RVRIX0xJTktfU1BFRURfKS4gKi8KKwl1aW50MzJfdCBzcGVlZF9jYXBhOyAgLyoqPCBTdXBwb3J0 ZWQgc3BlZWRzIGJpdG1hcCAoUlRFX0VUSF9MSU5LX1NQRUVEXykuICovCiAJLyoqIENvbmZpZ3Vy ZWQgbnVtYmVyIG9mIFJ4L1R4IHF1ZXVlcyAqLwogCXVpbnQxNl90IG5iX3J4X3F1ZXVlczsgLyoq PCBOdW1iZXIgb2YgUnggcXVldWVzLiAqLwogCXVpbnQxNl90IG5iX3R4X3F1ZXVlczsgLyoqPCBO dW1iZXIgb2YgVHggcXVldWVzLiAqLwpAQCAtMTcwNywxMiArMTk2NCwxMiBAQCBzdHJ1Y3QgcnRl X2V0aF9kY2JfdGNfcXVldWVfbWFwcGluZyB7CiAJc3RydWN0IHsKIAkJdWludDE2X3QgYmFzZTsK IAkJdWludDE2X3QgbmJfcXVldWU7Ci0JfSB0Y19yeHFbRVRIX01BWF9WTURRX1BPT0xdW0VUSF9E Q0JfTlVNX1RDU107CisJfSB0Y19yeHFbUlRFX0VUSF9NQVhfVk1EUV9QT09MXVtSVEVfRVRIX0RD Ql9OVU1fVENTXTsKIAkvKiogUnggcXVldWVzIGFzc2lnbmVkIHRvIHRjIHBlciBQb29sICovCiAJ c3RydWN0IHsKIAkJdWludDE2X3QgYmFzZTsKIAkJdWludDE2X3QgbmJfcXVldWU7Ci0JfSB0Y190 eHFbRVRIX01BWF9WTURRX1BPT0xdW0VUSF9EQ0JfTlVNX1RDU107CisJfSB0Y190eHFbUlRFX0VU SF9NQVhfVk1EUV9QT09MXVtSVEVfRVRIX0RDQl9OVU1fVENTXTsKIH07CiAKIC8qKgpAQCAtMTcy MSw4ICsxOTc4LDggQEAgc3RydWN0IHJ0ZV9ldGhfZGNiX3RjX3F1ZXVlX21hcHBpbmcgewogICov CiBzdHJ1Y3QgcnRlX2V0aF9kY2JfaW5mbyB7CiAJdWludDhfdCBuYl90Y3M7ICAgICAgICAvKio8 IG51bWJlciBvZiBUQ3MgKi8KLQl1aW50OF90IHByaW9fdGNbRVRIX0RDQl9OVU1fVVNFUl9QUklP UklUSUVTXTsgLyoqPCBQcmlvcml0eSB0byB0YyAqLwotCXVpbnQ4X3QgdGNfYndzW0VUSF9EQ0Jf TlVNX1RDU107IC8qKjwgVHggQlcgcGVyY2VudGFnZSBmb3IgZWFjaCBUQyAqLworCXVpbnQ4X3Qg cHJpb190Y1tSVEVfRVRIX0RDQl9OVU1fVVNFUl9QUklPUklUSUVTXTsgLyoqPCBQcmlvcml0eSB0 byB0YyAqLworCXVpbnQ4X3QgdGNfYndzW1JURV9FVEhfRENCX05VTV9UQ1NdOyAvKio8IFR4IEJX IHBlcmNlbnRhZ2UgZm9yIGVhY2ggVEMgKi8KIAkvKiogUnggcXVldWVzIGFzc2lnbmVkIHRvIHRj ICovCiAJc3RydWN0IHJ0ZV9ldGhfZGNiX3RjX3F1ZXVlX21hcHBpbmcgdGNfcXVldWU7CiB9OwpA QCAtMTc2OSwxMyArMjAyNiwxNyBAQCBzdHJ1Y3QgcnRlX2V0aF9mZWNfY2FwYSB7CiAKIC8qKkB7 QG5hbWUgTDIgdHVubmVsIGNvbmZpZ3VyYXRpb24gKi8KIC8qKiBMMiB0dW5uZWwgZW5hYmxlIG1h c2sgKi8KLSNkZWZpbmUgRVRIX0wyX1RVTk5FTF9FTkFCTEVfTUFTSyAgICAgICAweDAwMDAwMDAx CisjZGVmaW5lIFJURV9FVEhfTDJfVFVOTkVMX0VOQUJMRV9NQVNLICAgICAgIDB4MDAwMDAwMDEK KyNkZWZpbmUgRVRIX0wyX1RVTk5FTF9FTkFCTEVfTUFTSyAgICAgICAgICAgUlRFX0VUSF9MMl9U VU5ORUxfRU5BQkxFX01BU0sKIC8qKiBMMiB0dW5uZWwgaW5zZXJ0aW9uIG1hc2sgKi8KLSNkZWZp bmUgRVRIX0wyX1RVTk5FTF9JTlNFUlRJT05fTUFTSyAgICAweDAwMDAwMDAyCisjZGVmaW5lIFJU RV9FVEhfTDJfVFVOTkVMX0lOU0VSVElPTl9NQVNLICAgIDB4MDAwMDAwMDIKKyNkZWZpbmUgRVRI X0wyX1RVTk5FTF9JTlNFUlRJT05fTUFTSyAgICAgICAgUlRFX0VUSF9MMl9UVU5ORUxfSU5TRVJU SU9OX01BU0sKIC8qKiBMMiB0dW5uZWwgc3RyaXBwaW5nIG1hc2sgKi8KLSNkZWZpbmUgRVRIX0wy X1RVTk5FTF9TVFJJUFBJTkdfTUFTSyAgICAweDAwMDAwMDA0CisjZGVmaW5lIFJURV9FVEhfTDJf VFVOTkVMX1NUUklQUElOR19NQVNLICAgIDB4MDAwMDAwMDQKKyNkZWZpbmUgRVRIX0wyX1RVTk5F TF9TVFJJUFBJTkdfTUFTSyAgICAgICAgUlRFX0VUSF9MMl9UVU5ORUxfU1RSSVBQSU5HX01BU0sK IC8qKiBMMiB0dW5uZWwgZm9yd2FyZGluZyBtYXNrICovCi0jZGVmaW5lIEVUSF9MMl9UVU5ORUxf Rk9SV0FSRElOR19NQVNLICAgMHgwMDAwMDAwOAorI2RlZmluZSBSVEVfRVRIX0wyX1RVTk5FTF9G T1JXQVJESU5HX01BU0sgICAweDAwMDAwMDA4CisjZGVmaW5lIEVUSF9MMl9UVU5ORUxfRk9SV0FS RElOR19NQVNLICAgICAgIFJURV9FVEhfTDJfVFVOTkVMX0ZPUldBUkRJTkdfTUFTSwogLyoqQH0q LwogCiAvKioKQEAgLTUzODIsNyArNTY0Myw3IEBAIHVpbnQxNl90IHJ0ZV9ldGhfY2FsbF90eF9j YWxsYmFja3ModWludDE2X3QgcG9ydF9pZCwgdWludDE2X3QgcXVldWVfaWQsCiAgKiBydGVfZXRo X3R4X2J1cnN0KCkgZnVuY3Rpb24gbXVzdCBbYXR0ZW1wdCB0b10gZnJlZSB0aGUgKnJ0ZV9tYnVm KiAgYnVmZmVycwogICogb2YgdGhvc2UgcGFja2V0cyB3aG9zZSB0cmFuc21pc3Npb24gd2FzIGVm ZmVjdGl2ZWx5IGNvbXBsZXRlZC4KICAqCi0gKiBJZiB0aGUgUE1EIGlzIERFVl9UWF9PRkZMT0FE X01UX0xPQ0tGUkVFIGNhcGFibGUsIG11bHRpcGxlIHRocmVhZHMgY2FuCisgKiBJZiB0aGUgUE1E IGlzIFJURV9FVEhfVFhfT0ZGTE9BRF9NVF9MT0NLRlJFRSBjYXBhYmxlLCBtdWx0aXBsZSB0aHJl YWRzIGNhbgogICogaW52b2tlIHRoaXMgZnVuY3Rpb24gY29uY3VycmVudGx5IG9uIHRoZSBzYW1l IFR4IHF1ZXVlIHdpdGhvdXQgU1cgbG9jay4KICAqIEBzZWUgcnRlX2V0aF9kZXZfaW5mb19nZXQs IHN0cnVjdCBydGVfZXRoX3R4Y29uZjo6b2ZmbG9hZHMKICAqCgpodHRwczovL2xhYi5kcGRrLm9y Zy9yZXN1bHRzL2Rhc2hib2FyZC9wYXRjaHNldHMvMTk2MzIvCgpVTkgtSU9MIERQREsgQ29tbXVu aXR5IExhYgo= --===============0923624009156625691==--