From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id CF600C43387 for ; Fri, 4 Jan 2019 18:17:28 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 522E8218CD for ; Fri, 4 Jan 2019 18:17:28 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727306AbfADSR1 (ORCPT ); Fri, 4 Jan 2019 13:17:27 -0500 Received: from shards.monkeyblade.net ([23.128.96.9]:46386 "EHLO shards.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725958AbfADSR1 (ORCPT ); Fri, 4 Jan 2019 13:17:27 -0500 Received: from localhost (unknown [IPv6:2601:601:9f80:35cd::cf9]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) (Authenticated sender: davem-davemloft) by shards.monkeyblade.net (Postfix) with ESMTPSA id BD18214C158E6 for ; Fri, 4 Jan 2019 10:17:22 -0800 (PST) Date: Fri, 04 Jan 2019 10:17:20 -0800 (PST) Message-Id: <20190104.101720.930743973691101961.davem@davemloft.net> To: stable@vger.kernel.org Subject: [PATCHES] Networking From: David Miller X-Mailer: Mew version 6.8 on Emacs 26.1 Mime-Version: 1.0 Content-Type: Multipart/Mixed; boundary="--Next_Part(Fri_Jan__4_10_17_20_2019_871)--" Content-Transfer-Encoding: 7bit X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.5.12 (shards.monkeyblade.net [149.20.54.216]); Fri, 04 Jan 2019 10:17:24 -0800 (PST) Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org ----Next_Part(Fri_Jan__4_10_17_20_2019_871)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Please queue up the following networking bug fixes for v4.19 and v4.20 -stable, respectively. Thanks! ----Next_Part(Fri_Jan__4_10_17_20_2019_871)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_419.mbox" RnJvbSBlNjcwMDhlODBkODkzOGMzZDFkOGNkODg5YjFiNGZjNjA1ZmU4MDhkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBDb25nIFdhbmcgPHhpeW91Lndhbmdjb25nQGdtYWlsLmNvbT4K RGF0ZTogU2F0LCAyOSBEZWMgMjAxOCAxMzo1NjozNiAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMDEv NThdIGF4MjU6IGZpeCBhIHVzZS1hZnRlci1mcmVlIGluIGF4MjVfZmlsbGluX2NiKCkKClsgVXBz dHJlYW0gY29tbWl0IGM0MzM1NzA0NThlNDliY2NlYTVjNTUxZGY2MjhkMDU4YjM1MjYyODkgXQoK VGhlcmUgYXJlIG11bHRpcGxlIGlzc3VlcyBoZXJlOgoKMS4gQWZ0ZXIgZnJlZWluZyBkZXYtPmF4 MjVfcHRyLCB3ZSBuZWVkIHRvIHNldCBpdCB0byBOVUxMIG90aGVyd2lzZQogICB3ZSBtYXkgdXNl IGEgZGFuZ2xpbmcgcG9pbnRlci4KCjIuIFRoZXJlIGlzIGEgcmFjZSBiZXR3ZWVuIGF4MjVfc2V0 c29ja29wdCgpIGFuZCBkZXZpY2Ugbm90aWZpZXIgYXMKICAgcmVwb3J0ZWQgYnkgc3l6Ym90LiBD bG9zZSBpdCBieSBob2xkaW5nIFJUTkwgbG9jay4KCjMuIFdlIG5lZWQgdG8gdGVzdCBpZiBkZXYt PmF4MjVfcHRyIGlzIE5VTEwgYmVmb3JlIHVzaW5nIGl0LgoKUmVwb3J0ZWQtYW5kLXRlc3RlZC1i eTogc3l6Ym90K2FlNmJiODY5Y2JlZDI5YjI5MDQwQHN5emthbGxlci5hcHBzcG90bWFpbC5jb20K U2lnbmVkLW9mZi1ieTogQ29uZyBXYW5nIDx4aXlvdS53YW5nY29uZ0BnbWFpbC5jb20+ClNpZ25l ZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQv YXgyNS9hZl9heDI1LmMgIHwgMTEgKysrKysrKysrLS0KIG5ldC9heDI1L2F4MjVfZGV2LmMgfCAg MiArKwogMiBmaWxlcyBjaGFuZ2VkLCAxMSBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL25ldC9heDI1L2FmX2F4MjUuYyBiL25ldC9heDI1L2FmX2F4MjUuYwppbmRl eCBjNjAzZDMzZDU0MTAuLjVkMDFlZGY4ZDgxOSAxMDA2NDQKLS0tIGEvbmV0L2F4MjUvYWZfYXgy NS5jCisrKyBiL25ldC9heDI1L2FmX2F4MjUuYwpAQCAtNjUzLDE1ICs2NTMsMjIgQEAgc3RhdGlj IGludCBheDI1X3NldHNvY2tvcHQoc3RydWN0IHNvY2tldCAqc29jaywgaW50IGxldmVsLCBpbnQg b3B0bmFtZSwKIAkJCWJyZWFrOwogCQl9CiAKLQkJZGV2ID0gZGV2X2dldF9ieV9uYW1lKCZpbml0 X25ldCwgZGV2bmFtZSk7CisJCXJ0bmxfbG9jaygpOworCQlkZXYgPSBfX2Rldl9nZXRfYnlfbmFt ZSgmaW5pdF9uZXQsIGRldm5hbWUpOwogCQlpZiAoIWRldikgeworCQkJcnRubF91bmxvY2soKTsK IAkJCXJlcyA9IC1FTk9ERVY7CiAJCQlicmVhazsKIAkJfQogCiAJCWF4MjUtPmF4MjVfZGV2ID0g YXgyNV9kZXZfYXgyNWRldihkZXYpOworCQlpZiAoIWF4MjUtPmF4MjVfZGV2KSB7CisJCQlydG5s X3VubG9jaygpOworCQkJcmVzID0gLUVOT0RFVjsKKwkJCWJyZWFrOworCQl9CiAJCWF4MjVfZmls bGluX2NiKGF4MjUsIGF4MjUtPmF4MjVfZGV2KTsKLQkJZGV2X3B1dChkZXYpOworCQlydG5sX3Vu bG9jaygpOwogCQlicmVhazsKIAogCWRlZmF1bHQ6CmRpZmYgLS1naXQgYS9uZXQvYXgyNS9heDI1 X2Rldi5jIGIvbmV0L2F4MjUvYXgyNV9kZXYuYwppbmRleCA5YTNhMzAxZTFlMmYuLmQ5MjE5NWNk NzgzNCAxMDA2NDQKLS0tIGEvbmV0L2F4MjUvYXgyNV9kZXYuYworKysgYi9uZXQvYXgyNS9heDI1 X2Rldi5jCkBAIC0xMTYsNiArMTE2LDcgQEAgdm9pZCBheDI1X2Rldl9kZXZpY2VfZG93bihzdHJ1 Y3QgbmV0X2RldmljZSAqZGV2KQogCWlmICgocyA9IGF4MjVfZGV2X2xpc3QpID09IGF4MjVfZGV2 KSB7CiAJCWF4MjVfZGV2X2xpc3QgPSBzLT5uZXh0OwogCQlzcGluX3VubG9ja19iaCgmYXgyNV9k ZXZfbG9jayk7CisJCWRldi0+YXgyNV9wdHIgPSBOVUxMOwogCQlkZXZfcHV0KGRldik7CiAJCWtm cmVlKGF4MjVfZGV2KTsKIAkJcmV0dXJuOwpAQCAtMTI1LDYgKzEyNiw3IEBAIHZvaWQgYXgyNV9k ZXZfZGV2aWNlX2Rvd24oc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIAkJaWYgKHMtPm5leHQgPT0g YXgyNV9kZXYpIHsKIAkJCXMtPm5leHQgPSBheDI1X2Rldi0+bmV4dDsKIAkJCXNwaW5fdW5sb2Nr X2JoKCZheDI1X2Rldl9sb2NrKTsKKwkJCWRldi0+YXgyNV9wdHIgPSBOVUxMOwogCQkJZGV2X3B1 dChkZXYpOwogCQkJa2ZyZWUoYXgyNV9kZXYpOwogCQkJcmV0dXJuOwotLSAKMi4yMC4xCgoKRnJv bSBiYzIyZjI3ZWU3OTcwOGRiNGFjOGM3NjNkZmI1NjViYWVjODUyNjViIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBMb3JlbnpvIEJpYW5jb25pIDxsb3JlbnpvLmJpYW5jb25pQHJlZGhh dC5jb20+CkRhdGU6IFdlZCwgMTkgRGVjIDIwMTggMjM6MjM6MDAgKzAxMDAKU3ViamVjdDogW1BB VENIIDAyLzU4XSBncm9fY2VsbDogYWRkIG5hcGlfZGlzYWJsZSBpbiBncm9fY2VsbHNfZGVzdHJv eQoKWyBVcHN0cmVhbSBjb21taXQgOGUxZGE3M2FjZGVkNDc1MWE5M2Q0MTY2NDU4YTdlNjQwZjM3 ZDI2YyBdCgpBZGQgbmFwaV9kaXNhYmxlIHJvdXRpbmUgaW4gZ3JvX2NlbGxzX2Rlc3Ryb3kgc2lu Y2Ugc3RhcnRpbmcgZnJvbQpjb21taXQgYzQyODU4ZWFmNDkyICgiZ3JvX2NlbGxzOiByZW1vdmUg c3BpbmxvY2sgcHJvdGVjdGluZyByZWNlaXZlCnF1ZXVlcyIpIGdyb19jZWxsX3BvbGwgYW5kIGdy b19jZWxsc19kZXN0cm95IGNhbiBydW4gY29uY3VycmVudGx5IG9uCm5hcGlfc2ticyBsaXN0IHBy b2R1Y2luZyBhIGtlcm5lbCBPb3BzIGlmIHRoZSB0dW5uZWwgaW50ZXJmYWNlIGlzCnJlbW92ZWQg d2hpbGUgZ3JvX2NlbGxfcG9sbCBpcyBydW5uaW5nLiBUaGUgZm9sbG93aW5nIE9vcHMgaGFzIGJl ZW4KdHJpZ2dlcmVkIHJlbW92aW5nIGEgdnhsYW4gZGV2aWNlIHdoaWxlIHRoZSBpbnRlcmZhY2Ug aXMgcmVjZWl2aW5nCnRyYWZmaWMKClsgNTYyOC45NDg4NTNdIEJVRzogdW5hYmxlIHRvIGhhbmRs ZSBrZXJuZWwgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlIGF0IDAwMDAwMDAwMDAwMDAwMDgKWyA1 NjI4Ljk0OTk4MV0gUEdEIDAgUDREIDAKWyA1NjI4Ljk1MDMwOF0gT29wczogMDAwMiBbIzFdIFNN UCBQVEkKWyA1NjI4Ljk1MDc0OF0gQ1BVOiAwIFBJRDogOSBDb21tOiBrc29mdGlycWQvMCBOb3Qg dGFpbnRlZCA0LjIwLjAtcmM2KyAjNDEKWyA1NjI4Ljk1Mjk0MF0gUklQOiAwMDEwOmdyb19jZWxs X3BvbGwrMHg0OS8weDgwClsgNTYyOC45NTU2MTVdIFJTUDogMDAxODpmZmZmYzkwMDAwMDRmZGQ4 IEVGTEFHUzogMDAwMTAyMDIKWyA1NjI4Ljk1NjI1MF0gUkFYOiAwMDAwMDAwMDAwMDAwMDAwIFJC WDogZmZmZmU4ZmZmZmMwODE1MCBSQ1g6IDAwMDAwMDAwMDAwMDAwMDAKWyA1NjI4Ljk1NzEwMl0g UkRYOiAwMDAwMDAwMDAwMDAwMDAwIFJTSTogZmZmZjg4ODAyMzU2YmYwMCBSREk6IGZmZmZlOGZm ZmZjMDgxNTAKWyA1NjI4Ljk1Nzk0MF0gUkJQOiAwMDAwMDAwMDAwMDAwMDI2IFIwODogMDAwMDAw MDAwMDAwMDAwMCBSMDk6IDAwMDAwMDAwMDAwMDAwMDAKWyA1NjI4Ljk1ODgwM10gUjEwOiAwMDAw MDAwMDAwMDAwMDAxIFIxMTogMDAwMDAwMDAwMDAwMDAwMCBSMTI6IDAwMDAwMDAwMDAwMDAwNDAK WyA1NjI4Ljk1OTY2MV0gUjEzOiBmZmZmZThmZmZmYzA4MTAwIFIxNDogMDAwMDAwMDAwMDAwMDAw MCBSMTU6IDAwMDAwMDAwMDAwMDAwNDAKWyA1NjI4Ljk2MDY4Ml0gRlM6ICAwMDAwMDAwMDAwMDAw MDAwKDAwMDApIEdTOmZmZmY4ODgwM2VhMDAwMDAoMDAwMCkga25sR1M6MDAwMDAwMDAwMDAwMDAw MApbIDU2MjguOTYxNjE2XSBDUzogIDAwMTAgRFM6IDAwMDAgRVM6IDAwMDAgQ1IwOiAwMDAwMDAw MDgwMDUwMDMzClsgNTYyOC45NjIzNTldIENSMjogMDAwMDAwMDAwMDAwMDAwOCBDUjM6IDAwMDAw MDAwMDIyMWMwMDAgQ1I0OiAwMDAwMDAwMDAwMDAwNmIwClsgNTYyOC45NjMxODhdIERSMDogMDAw MDAwMDAwMDAwMDAwMCBEUjE6IDAwMDAwMDAwMDAwMDAwMDAgRFIyOiAwMDAwMDAwMDAwMDAwMDAw ClsgNTYyOC45NjQwMzRdIERSMzogMDAwMDAwMDAwMDAwMDAwMCBEUjY6IDAwMDAwMDAwZmZmZTBm ZjAgRFI3OiAwMDAwMDAwMDAwMDAwNDAwClsgNTYyOC45NjQ4NzFdIENhbGwgVHJhY2U6ClsgNTYy OC45NjUxNzldICBuZXRfcnhfYWN0aW9uKzB4ZjAvMHgzODAKWyA1NjI4Ljk2NTYzN10gIF9fZG9f c29mdGlycSsweGM3LzB4NDMxClsgNTYyOC45NjY1MTBdICBydW5fa3NvZnRpcnFkKzB4MjQvMHgz MApbIDU2MjguOTY2OTU3XSAgc21wYm9vdF90aHJlYWRfZm4rMHhjNS8weDE2MApbIDU2MjguOTY3 NDM2XSAga3RocmVhZCsweDExMy8weDEzMApbIDU2MjguOTY4MjgzXSAgcmV0X2Zyb21fZm9yaysw eDNhLzB4NTAKWyA1NjI4Ljk2ODcyMV0gTW9kdWxlcyBsaW5rZWQgaW46ClsgNTYyOC45NjkwOTld IENSMjogMDAwMDAwMDAwMDAwMDAwOApbIDU2MjguOTY5NTEwXSAtLS1bIGVuZCB0cmFjZSA5ZDlk ZWRjNzE4MTY2MWZlIF0tLS0KWyA1NjI4Ljk3MDA3M10gUklQOiAwMDEwOmdyb19jZWxsX3BvbGwr MHg0OS8weDgwClsgNTYyOC45NzI5NjVdIFJTUDogMDAxODpmZmZmYzkwMDAwMDRmZGQ4IEVGTEFH UzogMDAwMTAyMDIKWyA1NjI4Ljk3MzYxMV0gUkFYOiAwMDAwMDAwMDAwMDAwMDAwIFJCWDogZmZm ZmU4ZmZmZmMwODE1MCBSQ1g6IDAwMDAwMDAwMDAwMDAwMDAKWyA1NjI4Ljk3NDUwNF0gUkRYOiAw MDAwMDAwMDAwMDAwMDAwIFJTSTogZmZmZjg4ODAyMzU2YmYwMCBSREk6IGZmZmZlOGZmZmZjMDgx NTAKWyA1NjI4Ljk3NTQ2Ml0gUkJQOiAwMDAwMDAwMDAwMDAwMDI2IFIwODogMDAwMDAwMDAwMDAw MDAwMCBSMDk6IDAwMDAwMDAwMDAwMDAwMDAKWyA1NjI4Ljk3NjQxM10gUjEwOiAwMDAwMDAwMDAw MDAwMDAxIFIxMTogMDAwMDAwMDAwMDAwMDAwMCBSMTI6IDAwMDAwMDAwMDAwMDAwNDAKWyA1NjI4 Ljk3NzM3NV0gUjEzOiBmZmZmZThmZmZmYzA4MTAwIFIxNDogMDAwMDAwMDAwMDAwMDAwMCBSMTU6 IDAwMDAwMDAwMDAwMDAwNDAKWyA1NjI4Ljk3ODI5Nl0gRlM6ICAwMDAwMDAwMDAwMDAwMDAwKDAw MDApIEdTOmZmZmY4ODgwM2VhMDAwMDAoMDAwMCkga25sR1M6MDAwMDAwMDAwMDAwMDAwMApbIDU2 MjguOTc5MzI3XSBDUzogIDAwMTAgRFM6IDAwMDAgRVM6IDAwMDAgQ1IwOiAwMDAwMDAwMDgwMDUw MDMzClsgNTYyOC45ODAwNDRdIENSMjogMDAwMDAwMDAwMDAwMDAwOCBDUjM6IDAwMDAwMDAwMDIy MWMwMDAgQ1I0OiAwMDAwMDAwMDAwMDAwNmIwClsgNTYyOC45ODA5MjldIERSMDogMDAwMDAwMDAw MDAwMDAwMCBEUjE6IDAwMDAwMDAwMDAwMDAwMDAgRFIyOiAwMDAwMDAwMDAwMDAwMDAwClsgNTYy OC45ODE3MzZdIERSMzogMDAwMDAwMDAwMDAwMDAwMCBEUjY6IDAwMDAwMDAwZmZmZTBmZjAgRFI3 OiAwMDAwMDAwMDAwMDAwNDAwClsgNTYyOC45ODI0MDldIEtlcm5lbCBwYW5pYyAtIG5vdCBzeW5j aW5nOiBGYXRhbCBleGNlcHRpb24gaW4gaW50ZXJydXB0ClsgNTYyOC45ODMzMDddIEtlcm5lbCBP ZmZzZXQ6IGRpc2FibGVkCgpGaXhlczogYzQyODU4ZWFmNDkyICgiZ3JvX2NlbGxzOiByZW1vdmUg c3BpbmxvY2sgcHJvdGVjdGluZyByZWNlaXZlIHF1ZXVlcyIpClNpZ25lZC1vZmYtYnk6IExvcmVu em8gQmlhbmNvbmkgPGxvcmVuem8uYmlhbmNvbmlAcmVkaGF0LmNvbT4KQWNrZWQtYnk6IEVyaWMg RHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWls bGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9jb3JlL2dyb19jZWxscy5jIHwgMSAr CiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykKCmRpZmYgLS1naXQgYS9uZXQvY29yZS9n cm9fY2VsbHMuYyBiL25ldC9jb3JlL2dyb19jZWxscy5jCmluZGV4IDRiNTRlNWYxMDdjNi4uYWNm NDVkZGJlOTI0IDEwMDY0NAotLS0gYS9uZXQvY29yZS9ncm9fY2VsbHMuYworKysgYi9uZXQvY29y ZS9ncm9fY2VsbHMuYwpAQCAtODQsNiArODQsNyBAQCB2b2lkIGdyb19jZWxsc19kZXN0cm95KHN0 cnVjdCBncm9fY2VsbHMgKmdjZWxscykKIAlmb3JfZWFjaF9wb3NzaWJsZV9jcHUoaSkgewogCQlz dHJ1Y3QgZ3JvX2NlbGwgKmNlbGwgPSBwZXJfY3B1X3B0cihnY2VsbHMtPmNlbGxzLCBpKTsKIAor CQluYXBpX2Rpc2FibGUoJmNlbGwtPm5hcGkpOwogCQluZXRpZl9uYXBpX2RlbCgmY2VsbC0+bmFw aSk7CiAJCV9fc2tiX3F1ZXVlX3B1cmdlKCZjZWxsLT5uYXBpX3NrYnMpOwogCX0KLS0gCjIuMjAu MQoKCkZyb20gYzZkY2FlMTlmZjBkNWU3NDQ3YTEzNmI0ZGQ2OTgzYzFlNWFlYmNlMiBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogVHlyZWwgRGF0d3lsZXIgPHR5cmVsZEBsaW51eC52bmV0 LmlibS5jb20+CkRhdGU6IE1vbiwgMzEgRGVjIDIwMTggMTU6NDM6MDEgLTA2MDAKU3ViamVjdDog W1BBVENIIDAzLzU4XSBpYm12ZXRoOiBmaXggRE1BIHVubWFwIGVycm9yIGluIGlibXZldGhfeG1p dF9zdGFydAogZXJyb3IgcGF0aAoKWyBVcHN0cmVhbSBjb21taXQgNzU2YWY5YzY0MjMyOWQ1NGYw NDhiYWMyYTYyZjgyOWIzOTFmNjk0NCBdCgpDb21taXQgMzNhNDhhYjEwNWE3ICgiaWJtdmV0aDog Rml4IERNQSB1bm1hcCBlcnJvciIpIGZpeGVkIGFuIGlzc3VlIGluIHRoZQpub3JtYWwgY29kZSBw YXRoIG9mIGlibXZldGhfeG1pdF9zdGFydCgpIHRoYXQgd2FzIG9yaWdpbmFsbHkgaW50cm9kdWNl ZCBieQpDb21taXQgNmU4YWIzMGVjNjc3ICgiaWJtdmV0aDogQWRkIHNjYXR0ZXItZ2F0aGVyIHN1 cHBvcnQiKS4gVGhpcyBvcmlnaW5hbApmaXggbWlzc2VkIHRoZSBlcnJvciBwYXRoIHdoZXJlIGRt YV91bm1hcF9wYWdlIGlzIHdyb25nbHkgY2FsbGVkIG9uIHRoZQpoZWFkZXIgcG9ydGlvbiBpbiBk ZXNjc1swXSB3aGljaCB3YXMgbWFwcGVkIHdpdGggZG1hX21hcF9zaW5nbGUuIEFzIGEKcmVzdWx0 IGEgZmFpbHVyZSB0byBETUEgbWFwIGFueSBvZiB0aGUgZnJhZ3MgcmVzdWx0cyBpbiBhIGRtZXNn IHdhcm5pbmcKd2hlbiBDT05GSUdfRE1BX0FQSV9ERUJVRyBpcyBlbmFibGVkLgoKLS0tLS0tLS0t LS0tWyBjdXQgaGVyZSBdLS0tLS0tLS0tLS0tCkRNQS1BUEk6IGlibXZldGggMzAwMDAwMDI6IGRl dmljZSBkcml2ZXIgZnJlZXMgRE1BIG1lbW9yeSB3aXRoIHdyb25nIGZ1bmN0aW9uCiAgW2Rldmlj ZSBhZGRyZXNzPTB4MDAwMDAwMDAwYTQzMDAwMF0gW3NpemU9MTcyIGJ5dGVzXSBbbWFwcGVkIGFz IHBhZ2VdIFt1bm1hcHBlZCBhcyBzaW5nbGVdCldBUk5JTkc6IENQVTogMSBQSUQ6IDg0MjYgYXQg a2VybmVsL2RtYS9kZWJ1Zy5jOjEwODUgY2hlY2tfdW5tYXArMHg0ZmMvMHhlMTAKLi4uCjxzbmlw PgouLi4KRE1BLUFQSTogTWFwcGVkIGF0OgppYm12ZXRoX3N0YXJ0X3htaXQrMHgzMGMvMHhiNjAK ZGV2X2hhcmRfc3RhcnRfeG1pdCsweDEwMC8weDQ1MApzY2hfZGlyZWN0X3htaXQrMHgyMjQvMHg0 OTAKX19xZGlzY19ydW4rMHgyMGMvMHg5ODAKX19kZXZfcXVldWVfeG1pdCsweDFiYy8weGYyMAoK VGhpcyBmaXhlcyB0aGUgQVBJIG1pc3VzZSBieSB1bmFtcHBpbmcgZGVzY3NbMF0gd2l0aCBkbWFf dW5tYXBfc2luZ2xlLgoKRml4ZXM6IDZlOGFiMzBlYzY3NyAoImlibXZldGg6IEFkZCBzY2F0dGVy LWdhdGhlciBzdXBwb3J0IikKU2lnbmVkLW9mZi1ieTogVHlyZWwgRGF0d3lsZXIgPHR5cmVsZEBs aW51eC52bmV0LmlibS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1A ZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9pYm0vaWJtdmV0aC5jIHwg NiArKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkK CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9pYm0vaWJtdmV0aC5jIGIvZHJpdmVy cy9uZXQvZXRoZXJuZXQvaWJtL2libXZldGguYwppbmRleCA1MjVkOGI4OTE4N2IuLjkxZjQ4YzA3 ODA3MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaWJtL2libXZldGguYworKysg Yi9kcml2ZXJzL25ldC9ldGhlcm5ldC9pYm0vaWJtdmV0aC5jCkBAIC0xMTcyLDExICsxMTcyLDE1 IEBAIHN0YXRpYyBuZXRkZXZfdHhfdCBpYm12ZXRoX3N0YXJ0X3htaXQoc3RydWN0IHNrX2J1ZmYg KnNrYiwKIAogbWFwX2ZhaWxlZF9mcmFnczoKIAlsYXN0ID0gaSsxOwotCWZvciAoaSA9IDA7IGkg PCBsYXN0OyBpKyspCisJZm9yIChpID0gMTsgaSA8IGxhc3Q7IGkrKykKIAkJZG1hX3VubWFwX3Bh Z2UoJmFkYXB0ZXItPnZkZXYtPmRldiwgZGVzY3NbaV0uZmllbGRzLmFkZHJlc3MsCiAJCQkgICAg ICAgZGVzY3NbaV0uZmllbGRzLmZsYWdzX2xlbiAmIElCTVZFVEhfQlVGX0xFTl9NQVNLLAogCQkJ ICAgICAgIERNQV9UT19ERVZJQ0UpOwogCisJZG1hX3VubWFwX3NpbmdsZSgmYWRhcHRlci0+dmRl di0+ZGV2LAorCQkJIGRlc2NzWzBdLmZpZWxkcy5hZGRyZXNzLAorCQkJIGRlc2NzWzBdLmZpZWxk cy5mbGFnc19sZW4gJiBJQk1WRVRIX0JVRl9MRU5fTUFTSywKKwkJCSBETUFfVE9fREVWSUNFKTsK IG1hcF9mYWlsZWQ6CiAJaWYgKCFmaXJtd2FyZV9oYXNfZmVhdHVyZShGV19GRUFUVVJFX0NNTykp CiAJCW5ldGRldl9lcnIobmV0ZGV2LCAidHg6IHVuYWJsZSB0byBtYXAgeG1pdCBidWZmZXJcbiIp OwotLSAKMi4yMC4xCgoKRnJvbSA2NDc0OGIxMTM1YjUzODU3NDkyZDE3NjBkNTRmM2RlNWE1ZDM4 YmQ4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBXaWxsZW0gZGUgQnJ1aWpuIDx3aWxs ZW1iQGdvb2dsZS5jb20+CkRhdGU6IFN1biwgMjMgRGVjIDIwMTggMTI6NTI6MTggLTA1MDAKU3Vi amVjdDogW1BBVENIIDA0LzU4XSBpZWVlODAyMTU0OiBsb3dwYW5faGVhZGVyX2NyZWF0ZSBjaGVj ayBtdXN0IGNoZWNrIGRhZGRyCgpbIFVwc3RyZWFtIGNvbW1pdCA0MGMzZmY2ZDVlMDgwOTUwNWEw NjdkZDQyM2MxMTBjNTY1OGM0NzhjIF0KClBhY2tldCBzb2NrZXRzIG1heSBjYWxsIGRldl9oZWFk ZXJfcGFyc2Ugd2l0aCBOVUxMIGRhZGRyLiBNYWtlCmxvd3Bhbl9oZWFkZXJfb3BzLmNyZWF0ZSBm YWlsLgoKRml4ZXM6IDg3YTkzZTRlY2ViNCAoImllZWU4MDIxNTQ6IGNoYW5nZSBuZWVkZWQgaGVh ZHJvb20vdGFpbHJvb20iKQpTaWduZWQtb2ZmLWJ5OiBXaWxsZW0gZGUgQnJ1aWpuIDx3aWxsZW1i QGdvb2dsZS5jb20+CkFja2VkLWJ5OiBBbGV4YW5kZXIgQXJpbmcgPGFyaW5nQG1vamF0YXR1LmNv bT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0Pgot LS0KIG5ldC9pZWVlODAyMTU0LzZsb3dwYW4vdHguYyB8IDMgKysrCiAxIGZpbGUgY2hhbmdlZCwg MyBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbmV0L2llZWU4MDIxNTQvNmxvd3Bhbi90eC5j IGIvbmV0L2llZWU4MDIxNTQvNmxvd3Bhbi90eC5jCmluZGV4IGNhNTNlZmExN2JlMS4uOGJlYzgy NzA4MWNkIDEwMDY0NAotLS0gYS9uZXQvaWVlZTgwMjE1NC82bG93cGFuL3R4LmMKKysrIGIvbmV0 L2llZWU4MDIxNTQvNmxvd3Bhbi90eC5jCkBAIC00OCw2ICs0OCw5IEBAIGludCBsb3dwYW5faGVh ZGVyX2NyZWF0ZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqbGRldiwK IAljb25zdCBzdHJ1Y3QgaXB2NmhkciAqaGRyID0gaXB2Nl9oZHIoc2tiKTsKIAlzdHJ1Y3QgbmVp Z2hib3VyICpuOwogCisJaWYgKCFkYWRkcikKKwkJcmV0dXJuIC1FSU5WQUw7CisKIAkvKiBUT0RP OgogCSAqIGlmIHRoaXMgcGFja2FnZSBpc24ndCBpcHY2IG9uZSwgd2hlcmUgc2hvdWxkIGl0IGJl IHJvdXRlZD8KIAkgKi8KLS0gCjIuMjAuMQoKCkZyb20gYWVkZTJmZjk0MTE3MmJlYTE3NmNkZTZi Njk5OTQ0ODI4MjQxYzM3NSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogIkd1c3Rhdm8g QS4gUi4gU2lsdmEiIDxndXN0YXZvQGVtYmVkZGVkb3IuY29tPgpEYXRlOiBUdWUsIDExIERlYyAy MDE4IDE0OjEwOjA4IC0wNjAwClN1YmplY3Q6IFtQQVRDSCAwNS81OF0gaXA2bXI6IEZpeCBwb3Rl bnRpYWwgU3BlY3RyZSB2MSB2dWxuZXJhYmlsaXR5CgpbIFVwc3RyZWFtIGNvbW1pdCA2OWQyYzg2 NzY2ZGEyZGVkMmI3MDI4MWYxYmYyNDJjYjBkNThhNzc4IF0KCnZyLm1pZmkgaXMgaW5kaXJlY3Rs eSBjb250cm9sbGVkIGJ5IHVzZXItc3BhY2UsIGhlbmNlIGxlYWRpbmcgdG8KYSBwb3RlbnRpYWwg ZXhwbG9pdGF0aW9uIG9mIHRoZSBTcGVjdHJlIHZhcmlhbnQgMSB2dWxuZXJhYmlsaXR5LgoKVGhp cyBpc3N1ZSB3YXMgZGV0ZWN0ZWQgd2l0aCB0aGUgaGVscCBvZiBTbWF0Y2g6CgpuZXQvaXB2Ni9p cDZtci5jOjE4NDUgaXA2bXJfaW9jdGwoKSB3YXJuOiBwb3RlbnRpYWwgc3BlY3RyZSBpc3N1ZSAn bXJ0LT52aWZfdGFibGUnIFtyXSAobG9jYWwgY2FwKQpuZXQvaXB2Ni9pcDZtci5jOjE5MTkgaXA2 bXJfY29tcGF0X2lvY3RsKCkgd2FybjogcG90ZW50aWFsIHNwZWN0cmUgaXNzdWUgJ21ydC0+dmlm X3RhYmxlJyBbcl0gKGxvY2FsIGNhcCkKCkZpeCB0aGlzIGJ5IHNhbml0aXppbmcgdnIubWlmaSBi ZWZvcmUgdXNpbmcgaXQgdG8gaW5kZXggbXJ0LT52aWZfdGFibGUnCgpOb3RpY2UgdGhhdCBnaXZl biB0aGF0IHNwZWN1bGF0aW9uIHdpbmRvd3MgYXJlIGxhcmdlLCB0aGUgcG9saWN5IGlzCnRvIGtp bGwgdGhlIHNwZWN1bGF0aW9uIG9uIHRoZSBmaXJzdCBsb2FkIGFuZCBub3Qgd29ycnkgaWYgaXQg Y2FuIGJlCmNvbXBsZXRlZCB3aXRoIGEgZGVwZW5kZW50IGxvYWQvc3RvcmUgWzFdLgoKWzFdIGh0 dHBzOi8vbWFyYy5pbmZvLz9sPWxpbnV4LWtlcm5lbCZtPTE1MjQ0OTEzMTExNDc3OCZ3PTIKClNp Z25lZC1vZmYtYnk6IEd1c3Rhdm8gQS4gUi4gU2lsdmEgPGd1c3Rhdm9AZW1iZWRkZWRvci5jb20+ ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0t CiBuZXQvaXB2Ni9pcDZtci5jIHwgNCArKysrCiAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25z KCspCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvaXA2bXIuYyBiL25ldC9pcHY2L2lwNm1yLmMKaW5k ZXggZDBiN2UwMjQ5YzEzLi5mYjcwYmJkOWU2ZDEgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L2lwNm1y LmMKKysrIGIvbmV0L2lwdjYvaXA2bXIuYwpAQCAtNTIsNiArNTIsOCBAQAogI2luY2x1ZGUgPG5l dC9pcDZfY2hlY2tzdW0uaD4KICNpbmNsdWRlIDxsaW51eC9uZXRjb25mLmg+CiAKKyNpbmNsdWRl IDxsaW51eC9ub3NwZWMuaD4KKwogc3RydWN0IGlwNm1yX3J1bGUgewogCXN0cnVjdCBmaWJfcnVs ZQkJY29tbW9uOwogfTsKQEAgLTE4MzEsNiArMTgzMyw3IEBAIGludCBpcDZtcl9pb2N0bChzdHJ1 Y3Qgc29jayAqc2ssIGludCBjbWQsIHZvaWQgX191c2VyICphcmcpCiAJCQlyZXR1cm4gLUVGQVVM VDsKIAkJaWYgKHZyLm1pZmkgPj0gbXJ0LT5tYXh2aWYpCiAJCQlyZXR1cm4gLUVJTlZBTDsKKwkJ dnIubWlmaSA9IGFycmF5X2luZGV4X25vc3BlYyh2ci5taWZpLCBtcnQtPm1heHZpZik7CiAJCXJl YWRfbG9jaygmbXJ0X2xvY2spOwogCQl2aWYgPSAmbXJ0LT52aWZfdGFibGVbdnIubWlmaV07CiAJ CWlmIChWSUZfRVhJU1RTKG1ydCwgdnIubWlmaSkpIHsKQEAgLTE5MDUsNiArMTkwOCw3IEBAIGlu dCBpcDZtcl9jb21wYXRfaW9jdGwoc3RydWN0IHNvY2sgKnNrLCB1bnNpZ25lZCBpbnQgY21kLCB2 b2lkIF9fdXNlciAqYXJnKQogCQkJcmV0dXJuIC1FRkFVTFQ7CiAJCWlmICh2ci5taWZpID49IG1y dC0+bWF4dmlmKQogCQkJcmV0dXJuIC1FSU5WQUw7CisJCXZyLm1pZmkgPSBhcnJheV9pbmRleF9u b3NwZWModnIubWlmaSwgbXJ0LT5tYXh2aWYpOwogCQlyZWFkX2xvY2soJm1ydF9sb2NrKTsKIAkJ dmlmID0gJm1ydC0+dmlmX3RhYmxlW3ZyLm1pZmldOwogCQlpZiAoVklGX0VYSVNUUyhtcnQsIHZy Lm1pZmkpKSB7Ci0tIAoyLjIwLjEKCgpGcm9tIDk0ZTJkMDFkNjhjMzI2YmUyYjE0MjgwMThjMmFm NjFkOWY3NTZiZDEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ICJHdXN0YXZvIEEuIFIu IFNpbHZhIiA8Z3VzdGF2b0BlbWJlZGRlZG9yLmNvbT4KRGF0ZTogTW9uLCAxMCBEZWMgMjAxOCAx Mjo0MToyNCAtMDYwMApTdWJqZWN0OiBbUEFUQ0ggMDYvNThdIGlwdjQ6IEZpeCBwb3RlbnRpYWwg U3BlY3RyZSB2MSB2dWxuZXJhYmlsaXR5CgpbIFVwc3RyZWFtIGNvbW1pdCA1NjQ4NDUxZTMwYTBk MTNkMTE3OTY1NzQ5MTlhMzU5MDI1ZDUyY2NlIF0KCnZyLnZpZmkgaXMgaW5kaXJlY3RseSBjb250 cm9sbGVkIGJ5IHVzZXItc3BhY2UsIGhlbmNlIGxlYWRpbmcgdG8KYSBwb3RlbnRpYWwgZXhwbG9p dGF0aW9uIG9mIHRoZSBTcGVjdHJlIHZhcmlhbnQgMSB2dWxuZXJhYmlsaXR5LgoKVGhpcyBpc3N1 ZSB3YXMgZGV0ZWN0ZWQgd2l0aCB0aGUgaGVscCBvZiBTbWF0Y2g6CgpuZXQvaXB2NC9pcG1yLmM6 MTYxNiBpcG1yX2lvY3RsKCkgd2FybjogcG90ZW50aWFsIHNwZWN0cmUgaXNzdWUgJ21ydC0+dmlm X3RhYmxlJyBbcl0gKGxvY2FsIGNhcCkKbmV0L2lwdjQvaXBtci5jOjE2OTAgaXBtcl9jb21wYXRf aW9jdGwoKSB3YXJuOiBwb3RlbnRpYWwgc3BlY3RyZSBpc3N1ZSAnbXJ0LT52aWZfdGFibGUnIFty XSAobG9jYWwgY2FwKQoKRml4IHRoaXMgYnkgc2FuaXRpemluZyB2ci52aWZpIGJlZm9yZSB1c2lu ZyBpdCB0byBpbmRleCBtcnQtPnZpZl90YWJsZScKCk5vdGljZSB0aGF0IGdpdmVuIHRoYXQgc3Bl Y3VsYXRpb24gd2luZG93cyBhcmUgbGFyZ2UsIHRoZSBwb2xpY3kgaXMKdG8ga2lsbCB0aGUgc3Bl Y3VsYXRpb24gb24gdGhlIGZpcnN0IGxvYWQgYW5kIG5vdCB3b3JyeSBpZiBpdCBjYW4gYmUKY29t cGxldGVkIHdpdGggYSBkZXBlbmRlbnQgbG9hZC9zdG9yZSBbMV0uCgpbMV0gaHR0cHM6Ly9tYXJj LmluZm8vP2w9bGludXgta2VybmVsJm09MTUyNDQ5MTMxMTE0Nzc4Jnc9MgoKU2lnbmVkLW9mZi1i eTogR3VzdGF2byBBLiBSLiBTaWx2YSA8Z3VzdGF2b0BlbWJlZGRlZG9yLmNvbT4KU2lnbmVkLW9m Zi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY0 L2lwbXIuYyB8IDQgKysrKwogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKQoKZGlmZiAt LWdpdCBhL25ldC9pcHY0L2lwbXIuYyBiL25ldC9pcHY0L2lwbXIuYwppbmRleCA1NjYwYWRjZjdh MDQuLmY2Mjc1YWExOWI2YSAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvaXBtci5jCisrKyBiL25ldC9p cHY0L2lwbXIuYwpAQCAtNjksNiArNjksOCBAQAogI2luY2x1ZGUgPG5ldC9uZXh0aG9wLmg+CiAj aW5jbHVkZSA8bmV0L3N3aXRjaGRldi5oPgogCisjaW5jbHVkZSA8bGludXgvbm9zcGVjLmg+CisK IHN0cnVjdCBpcG1yX3J1bGUgewogCXN0cnVjdCBmaWJfcnVsZQkJY29tbW9uOwogfTsKQEAgLTE2 MTIsNiArMTYxNCw3IEBAIGludCBpcG1yX2lvY3RsKHN0cnVjdCBzb2NrICpzaywgaW50IGNtZCwg dm9pZCBfX3VzZXIgKmFyZykKIAkJCXJldHVybiAtRUZBVUxUOwogCQlpZiAodnIudmlmaSA+PSBt cnQtPm1heHZpZikKIAkJCXJldHVybiAtRUlOVkFMOworCQl2ci52aWZpID0gYXJyYXlfaW5kZXhf bm9zcGVjKHZyLnZpZmksIG1ydC0+bWF4dmlmKTsKIAkJcmVhZF9sb2NrKCZtcnRfbG9jayk7CiAJ CXZpZiA9ICZtcnQtPnZpZl90YWJsZVt2ci52aWZpXTsKIAkJaWYgKFZJRl9FWElTVFMobXJ0LCB2 ci52aWZpKSkgewpAQCAtMTY4Niw2ICsxNjg5LDcgQEAgaW50IGlwbXJfY29tcGF0X2lvY3RsKHN0 cnVjdCBzb2NrICpzaywgdW5zaWduZWQgaW50IGNtZCwgdm9pZCBfX3VzZXIgKmFyZykKIAkJCXJl dHVybiAtRUZBVUxUOwogCQlpZiAodnIudmlmaSA+PSBtcnQtPm1heHZpZikKIAkJCXJldHVybiAt RUlOVkFMOworCQl2ci52aWZpID0gYXJyYXlfaW5kZXhfbm9zcGVjKHZyLnZpZmksIG1ydC0+bWF4 dmlmKTsKIAkJcmVhZF9sb2NrKCZtcnRfbG9jayk7CiAJCXZpZiA9ICZtcnQtPnZpZl90YWJsZVt2 ci52aWZpXTsKIAkJaWYgKFZJRl9FWElTVFMobXJ0LCB2ci52aWZpKSkgewotLSAKMi4yMC4xCgoK RnJvbSBhN2NlOGE4NDJhODdiOTU1ODM1NjI4NDJmZWEzNTEyMDE5N2MxMTNmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBDb25nIFdhbmcgPHhpeW91Lndhbmdjb25nQGdtYWlsLmNvbT4K RGF0ZTogVHVlLCAxOCBEZWMgMjAxOCAyMToxNzo0NCAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMDcv NThdIGlwdjY6IGV4cGxpY2l0bHkgaW5pdGlhbGl6ZSB1ZHA2X2FkZHIgaW4KIHVkcF9zb2NrX2Ny ZWF0ZTYoKQoKWyBVcHN0cmVhbSBjb21taXQgZmIyNDI3NDU0NjMxMDg3MmVlZWFmM2QxZDUzNzk5 ZDg0MTRhYTBmMiBdCgpzeXpib3QgcmVwb3J0ZWQgdGhlIHVzZSBvZiB1bmluaXRpYWxpemVkIHVk cDZfYWRkcjo6c2luNl9zY29wZV9pZC4KV2UgY2FuIGp1c3Qgc2V0IDo6c2luNl9zY29wZV9pZCB0 byB6ZXJvLCBhcyB0dW5uZWxzIGFyZSB1bmxpa2VseQp0byB1c2UgYW4gSVB2NiBhZGRyZXNzIHRo YXQgbmVlZHMgYSBzY29wZSBpZCBhbmQgdGhlcmUgaXMgbm8KaW50ZXJmYWNlIHRvIGJpbmQgaW4g dGhpcyBjb250ZXh0LgoKRm9yIG5ldC1uZXh0LCBpdCBsb29rcyBkaWZmZXJlbnQgYXMgd2UgaGF2 ZSBjZmctPmJpbmRfaWZpbmRleCB0aGVyZQpzbyB3ZSBjYW4gcHJvYmFibHkgY2FsbCBpcHY2X2lm YWNlX3Njb3BlX2lkKCkuCgpTYW1lIGZvciA6OnNpbjZfZmxvd2luZm8sIHR1bm5lbHMgZG9uJ3Qg dXNlIGl0LgoKRml4ZXM6IDgwMjRlMDI4NzlkZCAoInVkcDogQWRkIHVkcF9zb2NrX2NyZWF0ZSBm b3IgVURQIHR1bm5lbHMgdG8gb3BlbiBsaXN0ZW5lciBzb2NrZXQiKQpSZXBvcnRlZC1ieTogc3l6 Ym90K2M1NjQ0OWVkMzY1MmU2NzIwZjMwQHN5emthbGxlci5hcHBzcG90bWFpbC5jb20KQ2M6IEpv biBNYWxveSA8am9uLm1hbG95QGVyaWNzc29uLmNvbT4KU2lnbmVkLW9mZi1ieTogQ29uZyBXYW5n IDx4aXlvdS53YW5nY29uZ0BnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxl ciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2Ni9pcDZfdWRwX3R1bm5lbC5jIHwg MyArKy0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRp ZmYgLS1naXQgYS9uZXQvaXB2Ni9pcDZfdWRwX3R1bm5lbC5jIGIvbmV0L2lwdjYvaXA2X3VkcF90 dW5uZWwuYwppbmRleCBiMjgzZjI5M2VlNGEuLmNhYWQ0MGQ2ZTc0ZCAxMDA2NDQKLS0tIGEvbmV0 L2lwdjYvaXA2X3VkcF90dW5uZWwuYworKysgYi9uZXQvaXB2Ni9pcDZfdWRwX3R1bm5lbC5jCkBA IC0xNSw3ICsxNSw3IEBACiBpbnQgdWRwX3NvY2tfY3JlYXRlNihzdHJ1Y3QgbmV0ICpuZXQsIHN0 cnVjdCB1ZHBfcG9ydF9jZmcgKmNmZywKIAkJICAgICBzdHJ1Y3Qgc29ja2V0ICoqc29ja3ApCiB7 Ci0Jc3RydWN0IHNvY2thZGRyX2luNiB1ZHA2X2FkZHI7CisJc3RydWN0IHNvY2thZGRyX2luNiB1 ZHA2X2FkZHIgPSB7fTsKIAlpbnQgZXJyOwogCXN0cnVjdCBzb2NrZXQgKnNvY2sgPSBOVUxMOwog CkBAIC00Miw2ICs0Miw3IEBAIGludCB1ZHBfc29ja19jcmVhdGU2KHN0cnVjdCBuZXQgKm5ldCwg c3RydWN0IHVkcF9wb3J0X2NmZyAqY2ZnLAogCQlnb3RvIGVycm9yOwogCiAJaWYgKGNmZy0+cGVl cl91ZHBfcG9ydCkgeworCQltZW1zZXQoJnVkcDZfYWRkciwgMCwgc2l6ZW9mKHVkcDZfYWRkcikp OwogCQl1ZHA2X2FkZHIuc2luNl9mYW1pbHkgPSBBRl9JTkVUNjsKIAkJbWVtY3B5KCZ1ZHA2X2Fk ZHIuc2luNl9hZGRyLCAmY2ZnLT5wZWVyX2lwNiwKIAkJICAgICAgIHNpemVvZih1ZHA2X2FkZHIu c2luNl9hZGRyKSk7Ci0tIAoyLjIwLjEKCgpGcm9tIGQwZjUyMTQ2N2ZhOTNmODRiMDBjZjQyNzNm MzgzOTQzNDg5MzdjMTcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVyaWMgRHVtYXpl dCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0ZTogRnJpLCAyMSBEZWMgMjAxOCAwNzo0Nzo1MSAt MDgwMApTdWJqZWN0OiBbUEFUQ0ggMDgvNThdIGlwdjY6IHR1bm5lbHM6IGZpeCB0d28gdXNlLWFm dGVyLWZyZWUKClsgVXBzdHJlYW0gY29tbWl0IGNiYjQ5Njk3ZDU1MTJjZTllNjFiNDVjZTc1ZDNl ZTQzZDdlYTU1MjQgXQoKeGZybTZfcG9saWN5X2NoZWNrKCkgbWlnaHQgaGF2ZSByZS1hbGxvY2F0 ZWQgc2tiLT5oZWFkLCB3ZSBuZWVkCnRvIHJlbG9hZCBpcHY2IGhlYWRlciBwb2ludGVyLgoKc3lz Ym90IHJlcG9ydGVkIDoKCkJVRzogS0FTQU46IHVzZS1hZnRlci1mcmVlIGluIF9faXB2Nl9hZGRy X3R5cGUrMHgzMDIvMHgzMmYgbmV0L2lwdjYvYWRkcmNvbmZfY29yZS5jOjQwClJlYWQgb2Ygc2l6 ZSA0IGF0IGFkZHIgZmZmZjg4ODE5MWI4Y2I3MCBieSB0YXNrIHN5ei1leGVjdXRvcjIvMTMwNAoK Q1BVOiAwIFBJRDogMTMwNCBDb21tOiBzeXotZXhlY3V0b3IyIE5vdCB0YWludGVkIDQuMjAuMC1y YzcrICMzNTYKSGFyZHdhcmUgbmFtZTogR29vZ2xlIEdvb2dsZSBDb21wdXRlIEVuZ2luZS9Hb29n bGUgQ29tcHV0ZSBFbmdpbmUsIEJJT1MgR29vZ2xlIDAxLzAxLzIwMTEKQ2FsbCBUcmFjZToKIDxJ UlE+CiBfX2R1bXBfc3RhY2sgbGliL2R1bXBfc3RhY2suYzo3NyBbaW5saW5lXQogZHVtcF9zdGFj aysweDI0NC8weDM5ZCBsaWIvZHVtcF9zdGFjay5jOjExMwogcHJpbnRfYWRkcmVzc19kZXNjcmlw dGlvbi5jb2xkLjcrMHg5LzB4MWZmIG1tL2thc2FuL3JlcG9ydC5jOjI1Ngoga2FzYW5fcmVwb3J0 X2Vycm9yIG1tL2thc2FuL3JlcG9ydC5jOjM1NCBbaW5saW5lXQoga2FzYW5fcmVwb3J0LmNvbGQu OCsweDI0Mi8weDMwOSBtbS9rYXNhbi9yZXBvcnQuYzo0MTIKIF9fYXNhbl9yZXBvcnRfbG9hZDRf bm9hYm9ydCsweDE0LzB4MjAgbW0va2FzYW4vcmVwb3J0LmM6NDMyCiBfX2lwdjZfYWRkcl90eXBl KzB4MzAyLzB4MzJmIG5ldC9pcHY2L2FkZHJjb25mX2NvcmUuYzo0MAogaXB2Nl9hZGRyX3R5cGUg aW5jbHVkZS9uZXQvaXB2Ni5oOjQwMyBbaW5saW5lXQogaXA2X3RubF9nZXRfY2FwKzB4MjcvMHgx OTAgbmV0L2lwdjYvaXA2X3R1bm5lbC5jOjcyNwogaXA2X3RubF9yY3ZfY3RsKzB4ZGIvMHgyYTAg bmV0L2lwdjYvaXA2X3R1bm5lbC5jOjc1NwogdnRpNl9yY3YrMHgzMzYvMHg4ZjMgbmV0L2lwdjYv aXA2X3Z0aS5jOjMyMQogeGZybTZfaXBjb21wX3JjdisweDFhNS8weDNhMCBuZXQvaXB2Ni94ZnJt Nl9wcm90b2NvbC5jOjEzMgogaXA2X3Byb3RvY29sX2RlbGl2ZXJfcmN1KzB4MzcyLzB4MTk0MCBu ZXQvaXB2Ni9pcDZfaW5wdXQuYzozOTQKIGlwNl9pbnB1dF9maW5pc2grMHg4NC8weDE3MCBuZXQv aXB2Ni9pcDZfaW5wdXQuYzo0MzQKIE5GX0hPT0sgaW5jbHVkZS9saW51eC9uZXRmaWx0ZXIuaDoy ODkgW2lubGluZV0KIGlwNl9pbnB1dCsweGU5LzB4NjAwIG5ldC9pcHY2L2lwNl9pbnB1dC5jOjQ0 MwpJUFZTOiBmdHA6IGxvYWRlZCBzdXBwb3J0IG9uIHBvcnRbMF0gPSAyMQogaXA2X21jX2lucHV0 KzB4NTE0LzB4MTFjMCBuZXQvaXB2Ni9pcDZfaW5wdXQuYzo1MzcKIGRzdF9pbnB1dCBpbmNsdWRl L25ldC9kc3QuaDo0NTAgW2lubGluZV0KIGlwNl9yY3ZfZmluaXNoKzB4MTdhLzB4MzMwIG5ldC9p cHY2L2lwNl9pbnB1dC5jOjc2CiBORl9IT09LIGluY2x1ZGUvbGludXgvbmV0ZmlsdGVyLmg6Mjg5 IFtpbmxpbmVdCiBpcHY2X3JjdisweDExNS8weDY0MCBuZXQvaXB2Ni9pcDZfaW5wdXQuYzoyNzIK IF9fbmV0aWZfcmVjZWl2ZV9za2Jfb25lX2NvcmUrMHgxNGQvMHgyMDAgbmV0L2NvcmUvZGV2LmM6 NDk3MwogX19uZXRpZl9yZWNlaXZlX3NrYisweDJjLzB4MWUwIG5ldC9jb3JlL2Rldi5jOjUwODMK IHByb2Nlc3NfYmFja2xvZysweDI0ZS8weDdhMCBuZXQvY29yZS9kZXYuYzo1OTIzCiBuYXBpX3Bv bGwgbmV0L2NvcmUvZGV2LmM6NjM0NiBbaW5saW5lXQogbmV0X3J4X2FjdGlvbisweDdmYS8weDE5 YjAgbmV0L2NvcmUvZGV2LmM6NjQxMgogX19kb19zb2Z0aXJxKzB4MzA4LzB4YjdlIGtlcm5lbC9z b2Z0aXJxLmM6MjkyCiBkb19zb2Z0aXJxX293bl9zdGFjaysweDJhLzB4NDAgYXJjaC94ODYvZW50 cnkvZW50cnlfNjQuUzoxMDI3CiA8L0lSUT4KIGRvX3NvZnRpcnEucGFydC4xNCsweDEyNi8weDE2 MCBrZXJuZWwvc29mdGlycS5jOjMzNwogZG9fc29mdGlycSsweDE5LzB4MjAga2VybmVsL3NvZnRp cnEuYzozNDAKIG5ldGlmX3J4X25pKzB4NTIxLzB4ODYwIG5ldC9jb3JlL2Rldi5jOjQ1NjkKIGRl dl9sb29wYmFja194bWl0KzB4Mjg3LzB4OGMwIG5ldC9jb3JlL2Rldi5jOjM1NzYKIE5GX0hPT0sg aW5jbHVkZS9saW51eC9uZXRmaWx0ZXIuaDoyODkgW2lubGluZV0KIGlwNl9maW5pc2hfb3V0cHV0 MisweDE5M2EvMHgyOTMwIG5ldC9pcHY2L2lwNl9vdXRwdXQuYzo4NAogaXA2X2ZyYWdtZW50KzB4 MmIwNi8weDM4NTAgbmV0L2lwdjYvaXA2X291dHB1dC5jOjcyNwogaXA2X2ZpbmlzaF9vdXRwdXQr MHg2YjcvMHhjNTAgbmV0L2lwdjYvaXA2X291dHB1dC5jOjE1MgogTkZfSE9PS19DT05EIGluY2x1 ZGUvbGludXgvbmV0ZmlsdGVyLmg6Mjc4IFtpbmxpbmVdCiBpcDZfb3V0cHV0KzB4MjMyLzB4OWQw IG5ldC9pcHY2L2lwNl9vdXRwdXQuYzoxNzEKIGRzdF9vdXRwdXQgaW5jbHVkZS9uZXQvZHN0Lmg6 NDQ0IFtpbmxpbmVdCiBpcDZfbG9jYWxfb3V0KzB4YzUvMHgxYjAgbmV0L2lwdjYvb3V0cHV0X2Nv cmUuYzoxNzYKIGlwNl9zZW5kX3NrYisweGJjLzB4MzQwIG5ldC9pcHY2L2lwNl9vdXRwdXQuYzox NzI3CiBpcDZfcHVzaF9wZW5kaW5nX2ZyYW1lcysweGM1LzB4ZjAgbmV0L2lwdjYvaXA2X291dHB1 dC5jOjE3NDcKIHJhd3Y2X3B1c2hfcGVuZGluZ19mcmFtZXMgbmV0L2lwdjYvcmF3LmM6NjE1IFtp bmxpbmVdCiByYXd2Nl9zZW5kbXNnKzB4M2EzZS8weDRiNDAgbmV0L2lwdjYvcmF3LmM6OTQ1Cmtv YmplY3Q6ICdxdWV1ZXMnICgwMDAwMDAwMDg5ZTZlZWEyKToga29iamVjdF9hZGRfaW50ZXJuYWw6 IHBhcmVudDogJ3R1bmwwJywgc2V0OiAnPE5VTEw+Jwprb2JqZWN0OiAncXVldWVzJyAoMDAwMDAw MDA4OWU2ZWVhMik6IGtvYmplY3RfdWV2ZW50X2VudgogaW5ldF9zZW5kbXNnKzB4MWExLzB4Njkw IG5ldC9pcHY0L2FmX2luZXQuYzo3OTgKa29iamVjdDogJ3F1ZXVlcycgKDAwMDAwMDAwODllNmVl YTIpOiBrb2JqZWN0X3VldmVudF9lbnY6IGZpbHRlciBmdW5jdGlvbiBjYXVzZWQgdGhlIGV2ZW50 IHRvIGRyb3AhCiBzb2NrX3NlbmRtc2dfbm9zZWMgbmV0L3NvY2tldC5jOjYyMSBbaW5saW5lXQog c29ja19zZW5kbXNnKzB4ZDUvMHgxMjAgbmV0L3NvY2tldC5jOjYzMQogc29ja193cml0ZV9pdGVy KzB4MzVlLzB4NWMwIG5ldC9zb2NrZXQuYzo5MDAKIGNhbGxfd3JpdGVfaXRlciBpbmNsdWRlL2xp bnV4L2ZzLmg6MTg1NyBbaW5saW5lXQogbmV3X3N5bmNfd3JpdGUgZnMvcmVhZF93cml0ZS5jOjQ3 NCBbaW5saW5lXQogX192ZnNfd3JpdGUrMHg2YjgvMHg5ZjAgZnMvcmVhZF93cml0ZS5jOjQ4Nwpr b2JqZWN0OiAncngtMCcgKDAwMDAwMDAwZTJkOTAyZDkpOiBrb2JqZWN0X2FkZF9pbnRlcm5hbDog cGFyZW50OiAncXVldWVzJywgc2V0OiAncXVldWVzJwprb2JqZWN0OiAncngtMCcgKDAwMDAwMDAw ZTJkOTAyZDkpOiBrb2JqZWN0X3VldmVudF9lbnYKIHZmc193cml0ZSsweDFmYy8weDU2MCBmcy9y ZWFkX3dyaXRlLmM6NTQ5CiBrc3lzX3dyaXRlKzB4MTAxLzB4MjYwIGZzL3JlYWRfd3JpdGUuYzo1 OTgKa29iamVjdDogJ3J4LTAnICgwMDAwMDAwMGUyZDkwMmQ5KTogZmlsbF9rb2JqX3BhdGg6IHBh dGggPSAnL2RldmljZXMvdmlydHVhbC9uZXQvdHVubDAvcXVldWVzL3J4LTAnCiBfX2RvX3N5c193 cml0ZSBmcy9yZWFkX3dyaXRlLmM6NjEwIFtpbmxpbmVdCiBfX3NlX3N5c193cml0ZSBmcy9yZWFk X3dyaXRlLmM6NjA3IFtpbmxpbmVdCiBfX3g2NF9zeXNfd3JpdGUrMHg3My8weGIwIGZzL3JlYWRf d3JpdGUuYzo2MDcKIGRvX3N5c2NhbGxfNjQrMHgxYjkvMHg4MjAgYXJjaC94ODYvZW50cnkvY29t bW9uLmM6MjkwCmtvYmplY3Q6ICd0eC0wJyAoMDAwMDAwMDA0NDNiNzBhYyk6IGtvYmplY3RfYWRk X2ludGVybmFsOiBwYXJlbnQ6ICdxdWV1ZXMnLCBzZXQ6ICdxdWV1ZXMnCiBlbnRyeV9TWVNDQUxM XzY0X2FmdGVyX2h3ZnJhbWUrMHg0OS8weGJlClJJUDogMDAzMzoweDQ1NzY2OQpDb2RlOiBmZCBi MyBmYiBmZiBjMyA2NiAyZSAwZiAxZiA4NCAwMCAwMCAwMCAwMCAwMCA2NiA5MCA0OCA4OSBmOCA0 OCA4OSBmNyA0OCA4OSBkNiA0OCA4OSBjYSA0ZCA4OSBjMiA0ZCA4OSBjOCA0YyA4YiA0YyAyNCAw OCAwZiAwNSA8NDg+IDNkIDAxIGYwIGZmIGZmIDBmIDgzIGNiIGIzIGZiIGZmIGMzIDY2IDJlIDBm IDFmIDg0IDAwIDAwIDAwIDAwClJTUDogMDAyYjowMDAwN2Y5YmQyMDBiYzc4IEVGTEFHUzogMDAw MDAyNDYgT1JJR19SQVg6IDAwMDAwMDAwMDAwMDAwMDEKUkFYOiBmZmZmZmZmZmZmZmZmZmRhIFJC WDogMDAwMDAwMDAwMDAwMDAwMyBSQ1g6IDAwMDAwMDAwMDA0NTc2NjkKUkRYOiAwMDAwMDAwMDAw MDAwNThmIFJTSTogMDAwMDAwMDAyMDAwMzNjMCBSREk6IDAwMDAwMDAwMDAwMDAwMDMKa29iamVj dDogJ3R4LTAnICgwMDAwMDAwMDQ0M2I3MGFjKToga29iamVjdF91ZXZlbnRfZW52ClJCUDogMDAw MDAwMDAwMDcyYmYwMCBSMDg6IDAwMDAwMDAwMDAwMDAwMDAgUjA5OiAwMDAwMDAwMDAwMDAwMDAw ClIxMDogMDAwMDAwMDAwMDAwMDAwMCBSMTE6IDAwMDAwMDAwMDAwMDAyNDYgUjEyOiAwMDAwN2Y5 YmQyMDBjNmQ0ClIxMzogMDAwMDAwMDAwMDRjMmRjYyBSMTQ6IDAwMDAwMDAwMDA0ZGEzOTggUjE1 OiAwMDAwMDAwMGZmZmZmZmZmCgpBbGxvY2F0ZWQgYnkgdGFzayAxMzA0Ogogc2F2ZV9zdGFjaysw eDQzLzB4ZDAgbW0va2FzYW4va2FzYW4uYzo0NDgKIHNldF90cmFjayBtbS9rYXNhbi9rYXNhbi5j OjQ2MCBbaW5saW5lXQoga2FzYW5fa21hbGxvYysweGM3LzB4ZTAgbW0va2FzYW4va2FzYW4uYzo1 NTMKIF9fZG9fa21hbGxvY19ub2RlIG1tL3NsYWIuYzozNjg0IFtpbmxpbmVdCiBfX2ttYWxsb2Nf bm9kZV90cmFja19jYWxsZXIrMHg1MC8weDcwIG1tL3NsYWIuYzozNjk4CiBfX2ttYWxsb2NfcmVz ZXJ2ZS5pc3JhLjQxKzB4NDEvMHhlMCBuZXQvY29yZS9za2J1ZmYuYzoxNDAKIF9fYWxsb2Nfc2ti KzB4MTU1LzB4NzYwIG5ldC9jb3JlL3NrYnVmZi5jOjIwOAprb2JqZWN0OiAndHgtMCcgKDAwMDAw MDAwNDQzYjcwYWMpOiBmaWxsX2tvYmpfcGF0aDogcGF0aCA9ICcvZGV2aWNlcy92aXJ0dWFsL25l dC90dW5sMC9xdWV1ZXMvdHgtMCcKIGFsbG9jX3NrYiBpbmNsdWRlL2xpbnV4L3NrYnVmZi5oOjEw MTEgW2lubGluZV0KIF9faXA2X2FwcGVuZF9kYXRhLmlzcmEuNDkrMHgyZjFhLzB4M2Y1MCBuZXQv aXB2Ni9pcDZfb3V0cHV0LmM6MTQ1MAogaXA2X2FwcGVuZF9kYXRhKzB4MWJjLzB4MmQwIG5ldC9p cHY2L2lwNl9vdXRwdXQuYzoxNjE5CiByYXd2Nl9zZW5kbXNnKzB4MTVhYi8weDRiNDAgbmV0L2lw djYvcmF3LmM6OTM4CiBpbmV0X3NlbmRtc2crMHgxYTEvMHg2OTAgbmV0L2lwdjQvYWZfaW5ldC5j Ojc5OAogc29ja19zZW5kbXNnX25vc2VjIG5ldC9zb2NrZXQuYzo2MjEgW2lubGluZV0KIHNvY2tf c2VuZG1zZysweGQ1LzB4MTIwIG5ldC9zb2NrZXQuYzo2MzEKIF9fX3N5c19zZW5kbXNnKzB4N2Zk LzB4OTMwIG5ldC9zb2NrZXQuYzoyMTE2CiBfX3N5c19zZW5kbXNnKzB4MTFkLzB4MjgwIG5ldC9z b2NrZXQuYzoyMTU0CiBfX2RvX3N5c19zZW5kbXNnIG5ldC9zb2NrZXQuYzoyMTYzIFtpbmxpbmVd CiBfX3NlX3N5c19zZW5kbXNnIG5ldC9zb2NrZXQuYzoyMTYxIFtpbmxpbmVdCiBfX3g2NF9zeXNf c2VuZG1zZysweDc4LzB4YjAgbmV0L3NvY2tldC5jOjIxNjEKIGRvX3N5c2NhbGxfNjQrMHgxYjkv MHg4MjAgYXJjaC94ODYvZW50cnkvY29tbW9uLmM6MjkwCiBlbnRyeV9TWVNDQUxMXzY0X2FmdGVy X2h3ZnJhbWUrMHg0OS8weGJlCmtvYmplY3Q6ICdncmUwJyAoMDAwMDAwMDBjYjFiMmQ3Yik6IGtv YmplY3RfYWRkX2ludGVybmFsOiBwYXJlbnQ6ICduZXQnLCBzZXQ6ICdkZXZpY2VzJwoKRnJlZWQg YnkgdGFzayAxMzA0Ogogc2F2ZV9zdGFjaysweDQzLzB4ZDAgbW0va2FzYW4va2FzYW4uYzo0NDgK IHNldF90cmFjayBtbS9rYXNhbi9rYXNhbi5jOjQ2MCBbaW5saW5lXQogX19rYXNhbl9zbGFiX2Zy ZWUrMHgxMDIvMHgxNTAgbW0va2FzYW4va2FzYW4uYzo1MjEKIGthc2FuX3NsYWJfZnJlZSsweGUv MHgxMCBtbS9rYXNhbi9rYXNhbi5jOjUyOAogX19jYWNoZV9mcmVlIG1tL3NsYWIuYzozNDk4IFtp bmxpbmVdCiBrZnJlZSsweGNmLzB4MjMwIG1tL3NsYWIuYzozODE3CiBza2JfZnJlZV9oZWFkKzB4 OTMvMHhiMCBuZXQvY29yZS9za2J1ZmYuYzo1NTMKIHBza2JfZXhwYW5kX2hlYWQrMHgzYjIvMHgx MGQwIG5ldC9jb3JlL3NrYnVmZi5jOjE0OTgKIF9fcHNrYl9wdWxsX3RhaWwrMHgxNTYvMHgxOGEw IG5ldC9jb3JlL3NrYnVmZi5jOjE4OTYKIHBza2JfbWF5X3B1bGwgaW5jbHVkZS9saW51eC9za2J1 ZmYuaDoyMTg4IFtpbmxpbmVdCiBfZGVjb2RlX3Nlc3Npb242KzB4ZDExLzB4MTRkMCBuZXQvaXB2 Ni94ZnJtNl9wb2xpY3kuYzoxNTAKIF9feGZybV9kZWNvZGVfc2Vzc2lvbisweDcxLzB4MTQwIG5l dC94ZnJtL3hmcm1fcG9saWN5LmM6MzI3Mgprb2JqZWN0OiAnZ3JlMCcgKDAwMDAwMDAwY2IxYjJk N2IpOiBrb2JqZWN0X3VldmVudF9lbnYKIF9feGZybV9wb2xpY3lfY2hlY2srMHgzODAvMHgyYzQw IG5ldC94ZnJtL3hmcm1fcG9saWN5LmM6MzMyMgogX194ZnJtX3BvbGljeV9jaGVjazIgaW5jbHVk ZS9uZXQveGZybS5oOjExNzAgW2lubGluZV0KIHhmcm1fcG9saWN5X2NoZWNrIGluY2x1ZGUvbmV0 L3hmcm0uaDoxMTc1IFtpbmxpbmVdCiB4ZnJtNl9wb2xpY3lfY2hlY2sgaW5jbHVkZS9uZXQveGZy bS5oOjExODUgW2lubGluZV0KIHZ0aTZfcmN2KzB4NGJkLzB4OGYzIG5ldC9pcHY2L2lwNl92dGku YzozMTYKIHhmcm02X2lwY29tcF9yY3YrMHgxYTUvMHgzYTAgbmV0L2lwdjYveGZybTZfcHJvdG9j b2wuYzoxMzIKIGlwNl9wcm90b2NvbF9kZWxpdmVyX3JjdSsweDM3Mi8weDE5NDAgbmV0L2lwdjYv aXA2X2lucHV0LmM6Mzk0CiBpcDZfaW5wdXRfZmluaXNoKzB4ODQvMHgxNzAgbmV0L2lwdjYvaXA2 X2lucHV0LmM6NDM0CiBORl9IT09LIGluY2x1ZGUvbGludXgvbmV0ZmlsdGVyLmg6Mjg5IFtpbmxp bmVdCiBpcDZfaW5wdXQrMHhlOS8weDYwMCBuZXQvaXB2Ni9pcDZfaW5wdXQuYzo0NDMKIGlwNl9t Y19pbnB1dCsweDUxNC8weDExYzAgbmV0L2lwdjYvaXA2X2lucHV0LmM6NTM3CiBkc3RfaW5wdXQg aW5jbHVkZS9uZXQvZHN0Lmg6NDUwIFtpbmxpbmVdCiBpcDZfcmN2X2ZpbmlzaCsweDE3YS8weDMz MCBuZXQvaXB2Ni9pcDZfaW5wdXQuYzo3NgogTkZfSE9PSyBpbmNsdWRlL2xpbnV4L25ldGZpbHRl ci5oOjI4OSBbaW5saW5lXQogaXB2Nl9yY3YrMHgxMTUvMHg2NDAgbmV0L2lwdjYvaXA2X2lucHV0 LmM6MjcyCiBfX25ldGlmX3JlY2VpdmVfc2tiX29uZV9jb3JlKzB4MTRkLzB4MjAwIG5ldC9jb3Jl L2Rldi5jOjQ5NzMKIF9fbmV0aWZfcmVjZWl2ZV9za2IrMHgyYy8weDFlMCBuZXQvY29yZS9kZXYu Yzo1MDgzCiBwcm9jZXNzX2JhY2tsb2crMHgyNGUvMHg3YTAgbmV0L2NvcmUvZGV2LmM6NTkyMwpr b2JqZWN0OiAnZ3JlMCcgKDAwMDAwMDAwY2IxYjJkN2IpOiBmaWxsX2tvYmpfcGF0aDogcGF0aCA9 ICcvZGV2aWNlcy92aXJ0dWFsL25ldC9ncmUwJwogbmFwaV9wb2xsIG5ldC9jb3JlL2Rldi5jOjYz NDYgW2lubGluZV0KIG5ldF9yeF9hY3Rpb24rMHg3ZmEvMHgxOWIwIG5ldC9jb3JlL2Rldi5jOjY0 MTIKIF9fZG9fc29mdGlycSsweDMwOC8weGI3ZSBrZXJuZWwvc29mdGlycS5jOjI5MgoKVGhlIGJ1 Z2d5IGFkZHJlc3MgYmVsb25ncyB0byB0aGUgb2JqZWN0IGF0IGZmZmY4ODgxOTFiOGNhYzAKIHdo aWNoIGJlbG9uZ3MgdG8gdGhlIGNhY2hlIGttYWxsb2MtNTEyIG9mIHNpemUgNTEyClRoZSBidWdn eSBhZGRyZXNzIGlzIGxvY2F0ZWQgMTc2IGJ5dGVzIGluc2lkZSBvZgogNTEyLWJ5dGUgcmVnaW9u IFtmZmZmODg4MTkxYjhjYWMwLCBmZmZmODg4MTkxYjhjY2MwKQpUaGUgYnVnZ3kgYWRkcmVzcyBi ZWxvbmdzIHRvIHRoZSBwYWdlOgpwYWdlOmZmZmZlYTAwMDY0NmUzMDAgY291bnQ6MSBtYXBjb3Vu dDowIG1hcHBpbmc6ZmZmZjg4ODFkYTgwMDk0MCBpbmRleDoweDAKZmxhZ3M6IDB4MmZmZmMwMDAw MDAwMjAwKHNsYWIpCnJhdzogMDJmZmZjMDAwMDAwMDIwMCBmZmZmZWEwMDA2ZWFhYTQ4IGZmZmZl YTAwMDY1MzU2YzggZmZmZjg4ODFkYTgwMDk0MApyYXc6IDAwMDAwMDAwMDAwMDAwMDAgZmZmZjg4 ODE5MWI4YzBjMCAwMDAwMDAwMTAwMDAwMDA2IDAwMDAwMDAwMDAwMDAwMDAKcGFnZSBkdW1wZWQg YmVjYXVzZToga2FzYW46IGJhZCBhY2Nlc3MgZGV0ZWN0ZWQKa29iamVjdDogJ3F1ZXVlcycgKDAw MDAwMDAwNWZkNjIyNmUpOiBrb2JqZWN0X2FkZF9pbnRlcm5hbDogcGFyZW50OiAnZ3JlMCcsIHNl dDogJzxOVUxMPicKCk1lbW9yeSBzdGF0ZSBhcm91bmQgdGhlIGJ1Z2d5IGFkZHJlc3M6CiBmZmZm ODg4MTkxYjhjYTAwOiBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYyBm YyBmYwogZmZmZjg4ODE5MWI4Y2E4MDogZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmIgZmIgZmIg ZmIgZmIgZmIgZmIgZmIKPmZmZmY4ODgxOTFiOGNiMDA6IGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZi IGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiBmZmZmODg4MTkxYjhjYjgwOiBmYiBmYiBm YiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYgogZmZmZjg4ODE5MWI4Y2Mw MDogZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIKCkZpeGVz OiAwZDNjNzAzYTlkMTcgKCJpcHY2OiBDbGVhbnVwIElQdjYgdHVubmVsIHJlY2VpdmUgcGF0aCIp CkZpeGVzOiBlZDFlZmIyYWVmYmIgKCJpcHY2OiBBZGQgc3VwcG9ydCBmb3IgSVBzZWMgdmlydHVh bCB0dW5uZWwgaW50ZXJmYWNlcyIpClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6 ZXRAZ29vZ2xlLmNvbT4KQ2M6IFN0ZWZmZW4gS2xhc3NlcnQgPHN0ZWZmZW4ua2xhc3NlcnRAc2Vj dW5ldC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0 Lm5ldD4KLS0tCiBuZXQvaXB2Ni9pcDZfdHVubmVsLmMgfCAxICsKIG5ldC9pcHY2L2lwNl92dGku YyAgICB8IDEgKwogMiBmaWxlcyBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQg YS9uZXQvaXB2Ni9pcDZfdHVubmVsLmMgYi9uZXQvaXB2Ni9pcDZfdHVubmVsLmMKaW5kZXggYTlk MDZkNGRkMDU3Li45OTE3OWI5YzgzODQgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L2lwNl90dW5uZWwu YworKysgYi9uZXQvaXB2Ni9pcDZfdHVubmVsLmMKQEAgLTkwMSw2ICs5MDEsNyBAQCBzdGF0aWMg aW50IGlweGlwNl9yY3Yoc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTggaXBwcm90bywKIAkJCWdvdG8g ZHJvcDsKIAkJaWYgKCF4ZnJtNl9wb2xpY3lfY2hlY2soTlVMTCwgWEZSTV9QT0xJQ1lfSU4sIHNr YikpCiAJCQlnb3RvIGRyb3A7CisJCWlwdjZoID0gaXB2Nl9oZHIoc2tiKTsKIAkJaWYgKCFpcDZf dG5sX3Jjdl9jdGwodCwgJmlwdjZoLT5kYWRkciwgJmlwdjZoLT5zYWRkcikpCiAJCQlnb3RvIGRy b3A7CiAJCWlmIChpcHR1bm5lbF9wdWxsX2hlYWRlcihza2IsIDAsIHRwaS0+cHJvdG8sIGZhbHNl KSkKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2lwNl92dGkuYyBiL25ldC9pcHY2L2lwNl92dGkuYwpp bmRleCBlZWFmNzQ1NWQ1MWUuLjcwNmZlNDJlNDkyOCAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvaXA2 X3Z0aS5jCisrKyBiL25ldC9pcHY2L2lwNl92dGkuYwpAQCAtMzE4LDYgKzMxOCw3IEBAIHN0YXRp YyBpbnQgdnRpNl9yY3Yoc3RydWN0IHNrX2J1ZmYgKnNrYikKIAkJCXJldHVybiAwOwogCQl9CiAK KwkJaXB2NmggPSBpcHY2X2hkcihza2IpOwogCQlpZiAoIWlwNl90bmxfcmN2X2N0bCh0LCAmaXB2 NmgtPmRhZGRyLCAmaXB2NmgtPnNhZGRyKSkgewogCQkJdC0+ZGV2LT5zdGF0cy5yeF9kcm9wcGVk Kys7CiAJCQlyY3VfcmVhZF91bmxvY2soKTsKLS0gCjIuMjAuMQoKCkZyb20gYzhiOWE1ZGRiZjQx NzhjYWFlNjgwYTE5OWY0M2ZiNTBmNzE0MWQ5OSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogV2lsbGVtIGRlIEJydWlqbiA8d2lsbGVtYkBnb29nbGUuY29tPgpEYXRlOiBTdW4sIDMwIERl YyAyMDE4IDE3OjI0OjM2IC0wNTAwClN1YmplY3Q6IFtQQVRDSCAwOS81OF0gaXA6IHZhbGlkYXRl IGhlYWRlciBsZW5ndGggb24gdmlydHVhbCBkZXZpY2UgeG1pdAoKWyBVcHN0cmVhbSBjb21taXQg Y2I5ZjFiNzgzODUwYjE0Y2JkN2Y4N2QwNjFkNzg0YTY2NmRmYmExZiBdCgpLTVNBTiBkZXRlY3Rl ZCByZWFkIGJleW9uZCBlbmQgb2YgYnVmZmVyIGluIHZ0aSBhbmQgc2l0IGRldmljZXMgd2hlbgpw YXNzaW5nIHRydW5jYXRlZCBwYWNrZXRzIHdpdGggUEZfUEFDS0VULiBUaGUgaXNzdWUgYWZmZWN0 cyBhZGRpdGlvbmFsCmlwIHR1bm5lbCBkZXZpY2VzLgoKRXh0ZW5kIGNvbW1pdCA3NmMwZGRkOGMz YTYgKCJpcDZfdHVubmVsOiBiZSBjYXJlZnVsIHdoZW4gYWNjZXNzaW5nIHRoZQppbm5lciBoZWFk ZXIiKSBhbmQgY29tbWl0IGNjZmVjOWU1Y2IyZCAoImlwX3R1bm5lbDogYmUgY2FyZWZ1bCB3aGVu CmFjY2Vzc2luZyB0aGUgaW5uZXIgaGVhZGVyIikuCgpNb3ZlIHRoZSBjaGVjayB0byBhIHNlcGFy YXRlIGhlbHBlciBhbmQgY2FsbCBhdCB0aGUgc3RhcnQgb2YgZWFjaApuZG9fc3RhcnRfeG1pdCBm dW5jdGlvbiBpbiBuZXQvaXB2NCBhbmQgbmV0L2lwdjYuCgpNaW5vciBjaGFuZ2VzOgotIGNvbnZl cnQgZGV2X2tmcmVlX3NrYiB0byBrZnJlZV9za2Igb24gZXJyb3IgcGF0aCwKICBhcyBkZXZfa2Zy ZWVfc2tiIGNhbGxzIGNvbnN1bWVfc2tiIHdoaWNoIGlzIG5vdCBmb3IgZXJyb3IgcGF0aHMuCi0g dXNlIHBza2JfbmV0d29ya19tYXlfcHVsbCBldmVuIHRob3VnaCB0aGF0IGlzIHBlZGFudGljIGhl cmUsCiAgYXMgdGhlIHNhbWUgYXMgcHNrYl9tYXlfcHVsbCBmb3IgZGV2aWNlcyB3aXRob3V0IGxs aGVhZGVycy4KLSBkbyBub3QgY2FjaGUgaXB2NiBoZHJzIGlmIHVzZWQgb25seSBvbmNlCiAgKHVu c2FmZSBhY3Jvc3MgcHNrYl9tYXlfcHVsbCwgd2FzIG1vcmUgcmVsZXZhbnQgdG8gZWFybGllciBw YXRjaCkKClJlcG9ydGVkLWJ5OiBzeXpib3QgPHN5emthbGxlckBnb29nbGVncm91cHMuY29tPgpT aWduZWQtb2ZmLWJ5OiBXaWxsZW0gZGUgQnJ1aWpuIDx3aWxsZW1iQGdvb2dsZS5jb20+ClNpZ25l ZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNs dWRlL25ldC9pcF90dW5uZWxzLmggfCAyMCArKysrKysrKysrKysrKysrKysrKwogbmV0L2lwdjQv aXBfZ3JlLmMgICAgICAgIHwgIDkgKysrKysrKysrCiBuZXQvaXB2NC9pcF90dW5uZWwuYyAgICAg fCAgOSAtLS0tLS0tLS0KIG5ldC9pcHY0L2lwX3Z0aS5jICAgICAgICB8IDEyICsrKysrKysrKy0t LQogbmV0L2lwdjYvaXA2X2dyZS5jICAgICAgIHwgMTAgKysrKysrKy0tLQogbmV0L2lwdjYvaXA2 X3R1bm5lbC5jICAgIHwgMTAgKysrLS0tLS0tLQogbmV0L2lwdjYvaXA2X3Z0aS5jICAgICAgIHwg IDggKysrKy0tLS0KIG5ldC9pcHY2L2lwNm1yLmMgICAgICAgICB8IDE3ICsrKysrKysrKysrLS0t LS0tCiBuZXQvaXB2Ni9zaXQuYyAgICAgICAgICAgfCAgMyArKysKIDkgZmlsZXMgY2hhbmdlZCwg NjYgaW5zZXJ0aW9ucygrKSwgMzIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9u ZXQvaXBfdHVubmVscy5oIGIvaW5jbHVkZS9uZXQvaXBfdHVubmVscy5oCmluZGV4IGIwZDAyMmZm NmVhMS4uZTExNDIzNTMwZDY0IDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC9pcF90dW5uZWxzLmgK KysrIGIvaW5jbHVkZS9uZXQvaXBfdHVubmVscy5oCkBAIC0zMjYsNiArMzI2LDI2IEBAIGludCBp cF90dW5uZWxfZW5jYXBfZGVsX29wcyhjb25zdCBzdHJ1Y3QgaXBfdHVubmVsX2VuY2FwX29wcyAq b3AsCiBpbnQgaXBfdHVubmVsX2VuY2FwX3NldHVwKHN0cnVjdCBpcF90dW5uZWwgKnQsCiAJCQkg IHN0cnVjdCBpcF90dW5uZWxfZW5jYXAgKmlwZW5jYXApOwogCitzdGF0aWMgaW5saW5lIGJvb2wg cHNrYl9pbmV0X21heV9wdWxsKHN0cnVjdCBza19idWZmICpza2IpCit7CisJaW50IG5obGVuOwor CisJc3dpdGNoIChza2ItPnByb3RvY29sKSB7CisjaWYgSVNfRU5BQkxFRChDT05GSUdfSVBWNikK KwljYXNlIGh0b25zKEVUSF9QX0lQVjYpOgorCQluaGxlbiA9IHNpemVvZihzdHJ1Y3QgaXB2Nmhk cik7CisJCWJyZWFrOworI2VuZGlmCisJY2FzZSBodG9ucyhFVEhfUF9JUCk6CisJCW5obGVuID0g c2l6ZW9mKHN0cnVjdCBpcGhkcik7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCW5obGVuID0gMDsK Kwl9CisKKwlyZXR1cm4gcHNrYl9uZXR3b3JrX21heV9wdWxsKHNrYiwgbmhsZW4pOworfQorCiBz dGF0aWMgaW5saW5lIGludCBpcF9lbmNhcF9obGVuKHN0cnVjdCBpcF90dW5uZWxfZW5jYXAgKmUp CiB7CiAJY29uc3Qgc3RydWN0IGlwX3R1bm5lbF9lbmNhcF9vcHMgKm9wczsKZGlmZiAtLWdpdCBh L25ldC9pcHY0L2lwX2dyZS5jIGIvbmV0L2lwdjQvaXBfZ3JlLmMKaW5kZXggOGNjZTBlOWVhMDhj Li41ZWY1ZGYzYTA2ZjEgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L2lwX2dyZS5jCisrKyBiL25ldC9p cHY0L2lwX2dyZS5jCkBAIC02NzcsNiArNjc3LDkgQEAgc3RhdGljIG5ldGRldl90eF90IGlwZ3Jl X3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAlzdHJ1Y3QgaXBfdHVubmVsICp0dW5uZWwgPSBu ZXRkZXZfcHJpdihkZXYpOwogCWNvbnN0IHN0cnVjdCBpcGhkciAqdG5sX3BhcmFtczsKIAorCWlm ICghcHNrYl9pbmV0X21heV9wdWxsKHNrYikpCisJCWdvdG8gZnJlZV9za2I7CisKIAlpZiAodHVu bmVsLT5jb2xsZWN0X21kKSB7CiAJCWdyZV9mYl94bWl0KHNrYiwgZGV2LCBza2ItPnByb3RvY29s KTsKIAkJcmV0dXJuIE5FVERFVl9UWF9PSzsKQEAgLTcyMCw2ICs3MjMsOSBAQCBzdGF0aWMgbmV0 ZGV2X3R4X3QgZXJzcGFuX3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAlzdHJ1Y3QgaXBfdHVu bmVsICp0dW5uZWwgPSBuZXRkZXZfcHJpdihkZXYpOwogCWJvb2wgdHJ1bmNhdGUgPSBmYWxzZTsK IAorCWlmICghcHNrYl9pbmV0X21heV9wdWxsKHNrYikpCisJCWdvdG8gZnJlZV9za2I7CisKIAlp ZiAodHVubmVsLT5jb2xsZWN0X21kKSB7CiAJCWVyc3Bhbl9mYl94bWl0KHNrYiwgZGV2LCBza2It PnByb3RvY29sKTsKIAkJcmV0dXJuIE5FVERFVl9UWF9PSzsKQEAgLTc2Myw2ICs3NjksOSBAQCBz dGF0aWMgbmV0ZGV2X3R4X3QgZ3JlX3RhcF94bWl0KHN0cnVjdCBza19idWZmICpza2IsCiB7CiAJ c3RydWN0IGlwX3R1bm5lbCAqdHVubmVsID0gbmV0ZGV2X3ByaXYoZGV2KTsKIAorCWlmICghcHNr Yl9pbmV0X21heV9wdWxsKHNrYikpCisJCWdvdG8gZnJlZV9za2I7CisKIAlpZiAodHVubmVsLT5j b2xsZWN0X21kKSB7CiAJCWdyZV9mYl94bWl0KHNrYiwgZGV2LCBodG9ucyhFVEhfUF9URUIpKTsK IAkJcmV0dXJuIE5FVERFVl9UWF9PSzsKZGlmZiAtLWdpdCBhL25ldC9pcHY0L2lwX3R1bm5lbC5j IGIvbmV0L2lwdjQvaXBfdHVubmVsLmMKaW5kZXggMjg0YTIyMTU0YjRlLi5jNGY1NjAyMzA4ZWQg MTAwNjQ0Ci0tLSBhL25ldC9pcHY0L2lwX3R1bm5lbC5jCisrKyBiL25ldC9pcHY0L2lwX3R1bm5l bC5jCkBAIC02MjcsNyArNjI3LDYgQEAgdm9pZCBpcF90dW5uZWxfeG1pdChzdHJ1Y3Qgc2tfYnVm ZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAogCQkgICAgY29uc3Qgc3RydWN0IGlwaGRy ICp0bmxfcGFyYW1zLCB1OCBwcm90b2NvbCkKIHsKIAlzdHJ1Y3QgaXBfdHVubmVsICp0dW5uZWwg PSBuZXRkZXZfcHJpdihkZXYpOwotCXVuc2lnbmVkIGludCBpbm5lcl9uaGRyX2xlbiA9IDA7CiAJ Y29uc3Qgc3RydWN0IGlwaGRyICppbm5lcl9pcGg7CiAJc3RydWN0IGZsb3dpNCBmbDQ7CiAJdTgg ICAgIHRvcywgdHRsOwpAQCAtNjM3LDE0ICs2MzYsNiBAQCB2b2lkIGlwX3R1bm5lbF94bWl0KHN0 cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAJX19iZTMyIGRzdDsK IAlib29sIGNvbm5lY3RlZDsKIAotCS8qIGVuc3VyZSB3ZSBjYW4gYWNjZXNzIHRoZSBpbm5lciBu ZXQgaGVhZGVyLCBmb3Igc2V2ZXJhbCB1c2VycyBiZWxvdyAqLwotCWlmIChza2ItPnByb3RvY29s ID09IGh0b25zKEVUSF9QX0lQKSkKLQkJaW5uZXJfbmhkcl9sZW4gPSBzaXplb2Yoc3RydWN0IGlw aGRyKTsKLQllbHNlIGlmIChza2ItPnByb3RvY29sID09IGh0b25zKEVUSF9QX0lQVjYpKQotCQlp bm5lcl9uaGRyX2xlbiA9IHNpemVvZihzdHJ1Y3QgaXB2Nmhkcik7Ci0JaWYgKHVubGlrZWx5KCFw c2tiX21heV9wdWxsKHNrYiwgaW5uZXJfbmhkcl9sZW4pKSkKLQkJZ290byB0eF9lcnJvcjsKLQog CWlubmVyX2lwaCA9IChjb25zdCBzdHJ1Y3QgaXBoZHIgKilza2JfaW5uZXJfbmV0d29ya19oZWFk ZXIoc2tiKTsKIAljb25uZWN0ZWQgPSAodHVubmVsLT5wYXJtcy5pcGguZGFkZHIgIT0gMCk7CiAK ZGlmZiAtLWdpdCBhL25ldC9pcHY0L2lwX3Z0aS5jIGIvbmV0L2lwdjQvaXBfdnRpLmMKaW5kZXgg ZjM4Y2IyMWQ3NzNkLi43ZjU2OTQ0YjAyMGYgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L2lwX3Z0aS5j CisrKyBiL25ldC9pcHY0L2lwX3Z0aS5jCkBAIC0yNDEsNiArMjQxLDkgQEAgc3RhdGljIG5ldGRl dl90eF90IHZ0aV90dW5uZWxfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2Rl dmljZSAqZGV2KQogCXN0cnVjdCBpcF90dW5uZWwgKnR1bm5lbCA9IG5ldGRldl9wcml2KGRldik7 CiAJc3RydWN0IGZsb3dpIGZsOwogCisJaWYgKCFwc2tiX2luZXRfbWF5X3B1bGwoc2tiKSkKKwkJ Z290byB0eF9lcnI7CisKIAltZW1zZXQoJmZsLCAwLCBzaXplb2YoZmwpKTsKIAogCXN3aXRjaCAo c2tiLT5wcm90b2NvbCkgewpAQCAtMjUzLDE1ICsyNTYsMTggQEAgc3RhdGljIG5ldGRldl90eF90 IHZ0aV90dW5uZWxfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAq ZGV2KQogCQltZW1zZXQoSVA2Q0Ioc2tiKSwgMCwgc2l6ZW9mKCpJUDZDQihza2IpKSk7CiAJCWJy ZWFrOwogCWRlZmF1bHQ6Ci0JCWRldi0+c3RhdHMudHhfZXJyb3JzKys7Ci0JCWRldl9rZnJlZV9z a2Ioc2tiKTsKLQkJcmV0dXJuIE5FVERFVl9UWF9PSzsKKwkJZ290byB0eF9lcnI7CiAJfQogCiAJ Lyogb3ZlcnJpZGUgbWFyayB3aXRoIHR1bm5lbCBvdXRwdXQga2V5ICovCiAJZmwuZmxvd2lfbWFy ayA9IGJlMzJfdG9fY3B1KHR1bm5lbC0+cGFybXMub19rZXkpOwogCiAJcmV0dXJuIHZ0aV94bWl0 KHNrYiwgZGV2LCAmZmwpOworCit0eF9lcnI6CisJZGV2LT5zdGF0cy50eF9lcnJvcnMrKzsKKwlr ZnJlZV9za2Ioc2tiKTsKKwlyZXR1cm4gTkVUREVWX1RYX09LOwogfQogCiBzdGF0aWMgaW50IHZ0 aTRfZXJyKHN0cnVjdCBza19idWZmICpza2IsIHUzMiBpbmZvKQpkaWZmIC0tZ2l0IGEvbmV0L2lw djYvaXA2X2dyZS5jIGIvbmV0L2lwdjYvaXA2X2dyZS5jCmluZGV4IGU0OTNiMDQxZDRhYy4uYzI3 MDcyNmIwMWIwIDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9pcDZfZ3JlLmMKKysrIGIvbmV0L2lwdjYv aXA2X2dyZS5jCkBAIC04OTcsNiArODk3LDkgQEAgc3RhdGljIG5ldGRldl90eF90IGlwNmdyZV90 dW5uZWxfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCXN0cnVjdCBuZXRfZGV2aWNlX3N0YXRz ICpzdGF0cyA9ICZ0LT5kZXYtPnN0YXRzOwogCWludCByZXQ7CiAKKwlpZiAoIXBza2JfaW5ldF9t YXlfcHVsbChza2IpKQorCQlnb3RvIHR4X2VycjsKKwogCWlmICghaXA2X3RubF94bWl0X2N0bCh0 LCAmdC0+cGFybXMubGFkZHIsICZ0LT5wYXJtcy5yYWRkcikpCiAJCWdvdG8gdHhfZXJyOwogCkBA IC05MzksNiArOTQyLDkgQEAgc3RhdGljIG5ldGRldl90eF90IGlwNmVyc3Bhbl90dW5uZWxfeG1p dChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCWludCBuaG9mZjsKIAlpbnQgdGhvZmY7CiAKKwlpZiAo IXBza2JfaW5ldF9tYXlfcHVsbChza2IpKQorCQlnb3RvIHR4X2VycjsKKwogCWlmICghaXA2X3Ru bF94bWl0X2N0bCh0LCAmdC0+cGFybXMubGFkZHIsICZ0LT5wYXJtcy5yYWRkcikpCiAJCWdvdG8g dHhfZXJyOwogCkBAIC0xMDExLDggKzEwMTcsNiBAQCBzdGF0aWMgbmV0ZGV2X3R4X3QgaXA2ZXJz cGFuX3R1bm5lbF94bWl0KHN0cnVjdCBza19idWZmICpza2IsCiAJCQlnb3RvIHR4X2VycjsKIAkJ fQogCX0gZWxzZSB7Ci0JCXN0cnVjdCBpcHY2aGRyICppcHY2aCA9IGlwdjZfaGRyKHNrYik7Ci0K IAkJc3dpdGNoIChza2ItPnByb3RvY29sKSB7CiAJCWNhc2UgaHRvbnMoRVRIX1BfSVApOgogCQkJ bWVtc2V0KCYoSVBDQihza2IpLT5vcHQpLCAwLCBzaXplb2YoSVBDQihza2IpLT5vcHQpKTsKQEAg LTEwMjAsNyArMTAyNCw3IEBAIHN0YXRpYyBuZXRkZXZfdHhfdCBpcDZlcnNwYW5fdHVubmVsX3ht aXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJCQkJCSAmZHNmaWVsZCwgJmVuY2FwX2xpbWl0KTsK IAkJCWJyZWFrOwogCQljYXNlIGh0b25zKEVUSF9QX0lQVjYpOgotCQkJaWYgKGlwdjZfYWRkcl9l cXVhbCgmdC0+cGFybXMucmFkZHIsICZpcHY2aC0+c2FkZHIpKQorCQkJaWYgKGlwdjZfYWRkcl9l cXVhbCgmdC0+cGFybXMucmFkZHIsICZpcHY2X2hkcihza2IpLT5zYWRkcikpCiAJCQkJZ290byB0 eF9lcnI7CiAJCQlpZiAocHJlcGFyZV9pcDZncmVfeG1pdF9pcHY2KHNrYiwgZGV2LCAmZmw2LAog CQkJCQkJICAgICAmZHNmaWVsZCwgJmVuY2FwX2xpbWl0KSkKZGlmZiAtLWdpdCBhL25ldC9pcHY2 L2lwNl90dW5uZWwuYyBiL25ldC9pcHY2L2lwNl90dW5uZWwuYwppbmRleCA5OTE3OWI5YzgzODQu LjBjNjQwM2NmOGI1MiAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvaXA2X3R1bm5lbC5jCisrKyBiL25l dC9pcHY2L2lwNl90dW5uZWwuYwpAQCAtMTI0MywxMCArMTI0Myw2IEBAIGlwNGlwNl90bmxfeG1p dChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogCXU4IHRwcm90 bzsKIAlpbnQgZXJyOwogCi0JLyogZW5zdXJlIHdlIGNhbiBhY2Nlc3MgdGhlIGZ1bGwgaW5uZXIg aXAgaGVhZGVyICovCi0JaWYgKCFwc2tiX21heV9wdWxsKHNrYiwgc2l6ZW9mKHN0cnVjdCBpcGhk cikpKQotCQlyZXR1cm4gLTE7Ci0KIAlpcGggPSBpcF9oZHIoc2tiKTsKIAltZW1zZXQoJihJUENC KHNrYiktPm9wdCksIDAsIHNpemVvZihJUENCKHNrYiktPm9wdCkpOwogCkBAIC0xMzIxLDkgKzEz MTcsNiBAQCBpcDZpcDZfdG5sX3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9k ZXZpY2UgKmRldikKIAl1OCB0cHJvdG87CiAJaW50IGVycjsKIAotCWlmICh1bmxpa2VseSghcHNr Yl9tYXlfcHVsbChza2IsIHNpemVvZigqaXB2NmgpKSkpCi0JCXJldHVybiAtMTsKLQogCWlwdjZo ID0gaXB2Nl9oZHIoc2tiKTsKIAl0cHJvdG8gPSBSRUFEX09OQ0UodC0+cGFybXMucHJvdG8pOwog CWlmICgodHByb3RvICE9IElQUFJPVE9fSVBWNiAmJiB0cHJvdG8gIT0gMCkgfHwKQEAgLTE0MDUs NiArMTM5OCw5IEBAIGlwNl90bmxfc3RhcnRfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1 Y3QgbmV0X2RldmljZSAqZGV2KQogCXN0cnVjdCBuZXRfZGV2aWNlX3N0YXRzICpzdGF0cyA9ICZ0 LT5kZXYtPnN0YXRzOwogCWludCByZXQ7CiAKKwlpZiAoIXBza2JfaW5ldF9tYXlfcHVsbChza2Ip KQorCQlnb3RvIHR4X2VycjsKKwogCXN3aXRjaCAoc2tiLT5wcm90b2NvbCkgewogCWNhc2UgaHRv bnMoRVRIX1BfSVApOgogCQlyZXQgPSBpcDRpcDZfdG5sX3htaXQoc2tiLCBkZXYpOwpkaWZmIC0t Z2l0IGEvbmV0L2lwdjYvaXA2X3Z0aS5jIGIvbmV0L2lwdjYvaXA2X3Z0aS5jCmluZGV4IDcwNmZl NDJlNDkyOC4uOGI2ZWVmZmYyZjdlIDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9pcDZfdnRpLmMKKysr IGIvbmV0L2lwdjYvaXA2X3Z0aS5jCkBAIC01MjIsMTggKzUyMiwxOCBAQCB2dGk2X3RubF94bWl0 KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiB7CiAJc3RydWN0 IGlwNl90bmwgKnQgPSBuZXRkZXZfcHJpdihkZXYpOwogCXN0cnVjdCBuZXRfZGV2aWNlX3N0YXRz ICpzdGF0cyA9ICZ0LT5kZXYtPnN0YXRzOwotCXN0cnVjdCBpcHY2aGRyICppcHY2aDsKIAlzdHJ1 Y3QgZmxvd2kgZmw7CiAJaW50IHJldDsKIAorCWlmICghcHNrYl9pbmV0X21heV9wdWxsKHNrYikp CisJCWdvdG8gdHhfZXJyOworCiAJbWVtc2V0KCZmbCwgMCwgc2l6ZW9mKGZsKSk7CiAKIAlzd2l0 Y2ggKHNrYi0+cHJvdG9jb2wpIHsKIAljYXNlIGh0b25zKEVUSF9QX0lQVjYpOgotCQlpcHY2aCA9 IGlwdjZfaGRyKHNrYik7Ci0KIAkJaWYgKCh0LT5wYXJtcy5wcm90byAhPSBJUFBST1RPX0lQVjYg JiYgdC0+cGFybXMucHJvdG8gIT0gMCkgfHwKLQkJICAgIHZ0aTZfYWRkcl9jb25mbGljdCh0LCBp cHY2aCkpCisJCSAgICB2dGk2X2FkZHJfY29uZmxpY3QodCwgaXB2Nl9oZHIoc2tiKSkpCiAJCQln b3RvIHR4X2VycjsKIAogCQl4ZnJtX2RlY29kZV9zZXNzaW9uKHNrYiwgJmZsLCBBRl9JTkVUNik7 CmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9pcDZtci5jIGIvbmV0L2lwdjYvaXA2bXIuYwppbmRleCBm YjcwYmJkOWU2ZDEuLjMzMWU2YjZkZDI1MiAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvaXA2bXIuYwor KysgYi9uZXQvaXB2Ni9pcDZtci5jCkBAIC01MSw2ICs1MSw3IEBACiAjaW5jbHVkZSA8bGludXgv ZXhwb3J0Lmg+CiAjaW5jbHVkZSA8bmV0L2lwNl9jaGVja3N1bS5oPgogI2luY2x1ZGUgPGxpbnV4 L25ldGNvbmYuaD4KKyNpbmNsdWRlIDxuZXQvaXBfdHVubmVscy5oPgogCiAjaW5jbHVkZSA8bGlu dXgvbm9zcGVjLmg+CiAKQEAgLTU5MywxMyArNTk0LDEyIEBAIHN0YXRpYyBuZXRkZXZfdHhfdCBy ZWdfdmlmX3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJLmZsb3dpNl9paWYJPSBza2ItPnNr Yl9paWYgPyA6IExPT1BCQUNLX0lGSU5ERVgsCiAJCS5mbG93aTZfbWFyawk9IHNrYi0+bWFyaywK IAl9OwotCWludCBlcnI7CiAKLQllcnIgPSBpcDZtcl9maWJfbG9va3VwKG5ldCwgJmZsNiwgJm1y dCk7Ci0JaWYgKGVyciA8IDApIHsKLQkJa2ZyZWVfc2tiKHNrYik7Ci0JCXJldHVybiBlcnI7Ci0J fQorCWlmICghcHNrYl9pbmV0X21heV9wdWxsKHNrYikpCisJCWdvdG8gdHhfZXJyOworCisJaWYg KGlwNm1yX2ZpYl9sb29rdXAobmV0LCAmZmw2LCAmbXJ0KSA8IDApCisJCWdvdG8gdHhfZXJyOwog CiAJcmVhZF9sb2NrKCZtcnRfbG9jayk7CiAJZGV2LT5zdGF0cy50eF9ieXRlcyArPSBza2ItPmxl bjsKQEAgLTYwOCw2ICs2MDgsMTEgQEAgc3RhdGljIG5ldGRldl90eF90IHJlZ192aWZfeG1pdChz dHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCXJlYWRfdW5sb2NrKCZtcnRfbG9jayk7CiAJa2ZyZWVfc2ti KHNrYik7CiAJcmV0dXJuIE5FVERFVl9UWF9PSzsKKwordHhfZXJyOgorCWRldi0+c3RhdHMudHhf ZXJyb3JzKys7CisJa2ZyZWVfc2tiKHNrYik7CisJcmV0dXJuIE5FVERFVl9UWF9PSzsKIH0KIAog c3RhdGljIGludCByZWdfdmlmX2dldF9pZmxpbmsoY29uc3Qgc3RydWN0IG5ldF9kZXZpY2UgKmRl dikKZGlmZiAtLWdpdCBhL25ldC9pcHY2L3NpdC5jIGIvbmV0L2lwdjYvc2l0LmMKaW5kZXggZTk0 MDBmZmE3ODc1Li5lYjE2MmJkMGUwNDEgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L3NpdC5jCisrKyBi L25ldC9pcHY2L3NpdC5jCkBAIC0xMDIxLDYgKzEwMjEsOSBAQCBzdGF0aWMgbmV0ZGV2X3R4X3Qg c2l0X3R1bm5lbF94bWl0X18oc3RydWN0IHNrX2J1ZmYgKnNrYiwKIHN0YXRpYyBuZXRkZXZfdHhf dCBzaXRfdHVubmVsX3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJCQkgICBzdHJ1Y3QgbmV0 X2RldmljZSAqZGV2KQogeworCWlmICghcHNrYl9pbmV0X21heV9wdWxsKHNrYikpCisJCWdvdG8g dHhfZXJyOworCiAJc3dpdGNoIChza2ItPnByb3RvY29sKSB7CiAJY2FzZSBodG9ucyhFVEhfUF9J UCk6CiAJCXNpdF90dW5uZWxfeG1pdF9fKHNrYiwgZGV2LCBJUFBST1RPX0lQSVApOwotLSAKMi4y MC4xCgoKRnJvbSBlMTZjMDIwNjgzNWRmOGY4YTRiMjAyMTdiZGFlNGU0MTEwYWU3N2Q3IE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5j b20+CkRhdGU6IFdlZCwgMiBKYW4gMjAxOSAwOToyMDoyNyAtMDgwMApTdWJqZWN0OiBbUEFUQ0gg MTAvNThdIGlzZG46IGZpeCBrZXJuZWwtaW5mb2xlYWsgaW4gY2FwaV91bmxvY2tlZF9pb2N0bAoK WyBVcHN0cmVhbSBjb21taXQgZDYzOTY3ZTQ3NWFlMTBmMjg2ZGJkMzVlMTg5Y2IyNDFlMGIxZjI4 NCBdCgpTaW5jZSBjYXBpX2lvY3RsKCkgY29waWVzIDY0IGJ5dGVzIGFmdGVyIGNhbGxpbmcKY2Fw aTIwX2dldF9tYW51ZmFjdHVyZXIoKSB3ZSBuZWVkIHRvIGVuc3VyZSB0byBub3QgbGVhawppbmZv cm1hdGlvbiB0byB1c2VyLgoKQlVHOiBLTVNBTjoga2VybmVsLWluZm9sZWFrIGluIF9jb3B5X3Rv X3VzZXIrMHgxNmIvMHgxZjAgbGliL3VzZXJjb3B5LmM6MzIKQ1BVOiAwIFBJRDogMTEyNDUgQ29t bTogc3l6LWV4ZWN1dG9yNjMzIE5vdCB0YWludGVkIDQuMjAuMC1yYzcrICMyCkhhcmR3YXJlIG5h bWU6IEdvb2dsZSBHb29nbGUgQ29tcHV0ZSBFbmdpbmUvR29vZ2xlIENvbXB1dGUgRW5naW5lLCBC SU9TIEdvb2dsZSAwMS8wMS8yMDExCkNhbGwgVHJhY2U6CiBfX2R1bXBfc3RhY2sgbGliL2R1bXBf c3RhY2suYzo3NyBbaW5saW5lXQogZHVtcF9zdGFjaysweDE3My8weDFkMCBsaWIvZHVtcF9zdGFj ay5jOjExMwoga21zYW5fcmVwb3J0KzB4MTJlLzB4MmEwIG1tL2ttc2FuL2ttc2FuLmM6NjEzCiBr bXNhbl9pbnRlcm5hbF9jaGVja19tZW1vcnkrMHg5ZDQvMHhiMDAgbW0va21zYW4va21zYW4uYzo3 MDQKIGttc2FuX2NvcHlfdG9fdXNlcisweGFiLzB4YzAgbW0va21zYW4va21zYW5faG9va3MuYzo2 MDEKIF9jb3B5X3RvX3VzZXIrMHgxNmIvMHgxZjAgbGliL3VzZXJjb3B5LmM6MzIKIGNhcGlfaW9j dGwgaW5jbHVkZS9saW51eC91YWNjZXNzLmg6MTc3IFtpbmxpbmVdCiBjYXBpX3VubG9ja2VkX2lv Y3RsKzB4MWEwYi8weDFiZjAgZHJpdmVycy9pc2RuL2NhcGkvY2FwaS5jOjkzOQogZG9fdmZzX2lv Y3RsKzB4ZWJkLzB4MmJmMCBmcy9pb2N0bC5jOjQ2CiBrc3lzX2lvY3RsIGZzL2lvY3RsLmM6NzEz IFtpbmxpbmVdCiBfX2RvX3N5c19pb2N0bCBmcy9pb2N0bC5jOjcyMCBbaW5saW5lXQogX19zZV9z eXNfaW9jdGwrMHgxZGEvMHgyNzAgZnMvaW9jdGwuYzo3MTgKIF9feDY0X3N5c19pb2N0bCsweDRh LzB4NzAgZnMvaW9jdGwuYzo3MTgKIGRvX3N5c2NhbGxfNjQrMHhiYy8weGYwIGFyY2gveDg2L2Vu dHJ5L2NvbW1vbi5jOjI5MQogZW50cnlfU1lTQ0FMTF82NF9hZnRlcl9od2ZyYW1lKzB4NjMvMHhl NwpSSVA6IDAwMzM6MHg0NDAwMTkKQ29kZTogMTggODkgZDAgYzMgNjYgMmUgMGYgMWYgODQgMDAg MDAgMDAgMDAgMDAgMGYgMWYgMDAgNDggODkgZjggNDggODkgZjcgNDggODkgZDYgNDggODkgY2Eg NGQgODkgYzIgNGQgODkgYzggNGMgOGIgNGMgMjQgMDggMGYgMDUgPDQ4PiAzZCAwMSBmMCBmZiBm ZiAwZiA4MyBmYiAxMyBmYyBmZiBjMyA2NiAyZSAwZiAxZiA4NCAwMCAwMCAwMCAwMApSU1A6IDAw MmI6MDAwMDdmZmRkNDY1OWZiOCBFRkxBR1M6IDAwMDAwMjEzIE9SSUdfUkFYOiAwMDAwMDAwMDAw MDAwMDEwClJBWDogZmZmZmZmZmZmZmZmZmZkYSBSQlg6IDAwMDAwMDAwMDA0MDAyYzggUkNYOiAw MDAwMDAwMDAwNDQwMDE5ClJEWDogMDAwMDAwMDAyMDAwMDA4MCBSU0k6IDAwMDAwMDAwYzAwNDQz MDYgUkRJOiAwMDAwMDAwMDAwMDAwMDAzClJCUDogMDAwMDAwMDAwMDZjYTAxOCBSMDg6IDAwMDAw MDAwMDAwMDAwMDAgUjA5OiAwMDAwMDAwMDAwNDAwMmM4ClIxMDogMDAwMDAwMDAwMDAwMDAwMCBS MTE6IDAwMDAwMDAwMDAwMDAyMTMgUjEyOiAwMDAwMDAwMDAwNDAxOGEwClIxMzogMDAwMDAwMDAw MDQwMTkzMCBSMTQ6IDAwMDAwMDAwMDAwMDAwMDAgUjE1OiAwMDAwMDAwMDAwMDAwMDAwCgpMb2Nh bCB2YXJpYWJsZSBkZXNjcmlwdGlvbjogLS0tLWRhdGEuaUBjYXBpX3VubG9ja2VkX2lvY3RsClZh cmlhYmxlIHdhcyBjcmVhdGVkIGF0OgogY2FwaV9pb2N0bCBkcml2ZXJzL2lzZG4vY2FwaS9jYXBp LmM6NzQ3IFtpbmxpbmVdCiBjYXBpX3VubG9ja2VkX2lvY3RsKzB4ODIvMHgxYmYwIGRyaXZlcnMv aXNkbi9jYXBpL2NhcGkuYzo5MzkKIGRvX3Zmc19pb2N0bCsweGViZC8weDJiZjAgZnMvaW9jdGwu Yzo0NgoKQnl0ZXMgMTItNjMgb2YgNjQgYXJlIHVuaW5pdGlhbGl6ZWQKTWVtb3J5IGFjY2VzcyBv ZiBzaXplIDY0IHN0YXJ0cyBhdCBmZmZmODg4MDdhYzVmY2U4CkRhdGEgY29waWVkIHRvIHVzZXIg YWRkcmVzcyAwMDAwMDAwMDIwMDAwMDgwCgpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVk dW1hemV0QGdvb2dsZS5jb20+ClJlcG9ydGVkLWJ5OiBzeXpib3QgPHN5emthbGxlckBnb29nbGVn cm91cHMuY29tPgpDYzogS2Fyc3RlbiBLZWlsIDxpc2RuQGxpbnV4LXBpbmdpLmRlPgpTaWduZWQt b2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVy cy9pc2RuL2NhcGkva2NhcGkuYyB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9u cygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2lzZG4vY2FwaS9rY2Fw aS5jIGIvZHJpdmVycy9pc2RuL2NhcGkva2NhcGkuYwppbmRleCAwZmY1MTdkM2M5OGYuLmE0Y2Vi NjFjNWI2MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9pc2RuL2NhcGkva2NhcGkuYworKysgYi9kcml2 ZXJzL2lzZG4vY2FwaS9rY2FwaS5jCkBAIC04NTIsNyArODUyLDcgQEAgdTE2IGNhcGkyMF9nZXRf bWFudWZhY3R1cmVyKHUzMiBjb250ciwgdTggKmJ1ZikKIAl1MTYgcmV0OwogCiAJaWYgKGNvbnRy ID09IDApIHsKLQkJc3RybGNweShidWYsIGNhcGlfbWFudWZha3R1cmVyLCBDQVBJX01BTlVGQUNU VVJFUl9MRU4pOworCQlzdHJuY3B5KGJ1ZiwgY2FwaV9tYW51ZmFrdHVyZXIsIENBUElfTUFOVUZB Q1RVUkVSX0xFTik7CiAJCXJldHVybiBDQVBJX05PRVJST1I7CiAJfQogCkBAIC04NjAsNyArODYw LDcgQEAgdTE2IGNhcGkyMF9nZXRfbWFudWZhY3R1cmVyKHUzMiBjb250ciwgdTggKmJ1ZikKIAog CWN0ciA9IGdldF9jYXBpX2N0cl9ieV9ucihjb250cik7CiAJaWYgKGN0ciAmJiBjdHItPnN0YXRl ID09IENBUElfQ1RSX1JVTk5JTkcpIHsKLQkJc3RybGNweShidWYsIGN0ci0+bWFudSwgQ0FQSV9N QU5VRkFDVFVSRVJfTEVOKTsKKwkJc3RybmNweShidWYsIGN0ci0+bWFudSwgQ0FQSV9NQU5VRkFD VFVSRVJfTEVOKTsKIAkJcmV0ID0gQ0FQSV9OT0VSUk9SOwogCX0gZWxzZQogCQlyZXQgPSBDQVBJ X1JFR05PVElOU1RBTExFRDsKLS0gCjIuMjAuMQoKCkZyb20gYTYwMDRlYTcyNTI4YmNmODNkNWE3 M2U5YTBmZTNmMjY2YWQxMjY1NyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJpYyBE dW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpEYXRlOiBGcmksIDE0IERlYyAyMDE4IDA2OjQ2 OjQ5IC0wODAwClN1YmplY3Q6IFtQQVRDSCAxMS81OF0gbmV0OiBjbGVhciBza2ItPnRzdGFtcCBp biBmb3J3YXJkaW5nIHBhdGhzCgpbIFVwc3RyZWFtIGNvbW1pdCA4MjAzZTJkODQ0ZDM0YWYyNDdh MTUxZDhlYmQ2ODU1M2E2ZTkxNzg1IF0KClNlcmdleSByZXBvcnRlZCB0aGF0IGZvcndhcmRpbmcg d2FzIG5vIGxvbmdlciB3b3JraW5nCmlmIGZxIHBhY2tldCBzY2hlZHVsZXIgd2FzIHVzZWQuCgpU aGlzIGlzIGNhdXNlZCBieSB0aGUgcmVjZW50IHN3aXRjaCB0byBFRFQgbW9kZWwsIHNpbmNlIGlu Y29taW5nCnBhY2tldHMgbWlnaHQgaGF2ZSBiZWVuIHRpbWVzdGFtcGVkIGJ5IF9fbmV0X3RpbWVz dGFtcCgpCgpfX25ldF90aW1lc3RhbXAoKSB1c2VzIGt0aW1lX2dldF9yZWFsKCksIHdoaWxlIGZx IGV4cGVjdHMgcGFja2V0cwp1c2luZyBDTE9DS19NT05PVE9OSUMgYmFzZS4KClRoZSBmaXggaXMg dG8gY2xlYXIgc2tiLT50c3RhbXAgaW4gZm9yd2FyZGluZyBwYXRocy4KCkZpeGVzOiA4MGIxNGRl ZTJiZWEgKCJuZXQ6IEFkZCBhIG5ldyBzb2NrZXQgb3B0aW9uIGZvciBhIGZ1dHVyZSB0cmFuc21p dCB0aW1lLiIpCkZpeGVzOiBmYjQyMGQ1ZDkxYzEgKCJ0Y3AvZnE6IG1vdmUgYmFjayB0byBDTE9D S19NT05PVE9OSUMiKQpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2ds ZS5jb20+ClJlcG9ydGVkLWJ5OiBTZXJnZXkgTWF0eXVrZXZpY2ggPGdlb21hdHNpQGdtYWlsLmNv bT4KVGVzdGVkLWJ5OiBTZXJnZXkgTWF0eXVrZXZpY2ggPGdlb21hdHNpQGdtYWlsLmNvbT4KU2ln bmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5l dC9pcHY0L2lwX2ZvcndhcmQuYyB8IDEgKwogbmV0L2lwdjYvaXA2X291dHB1dC5jIHwgMSArCiAy IGZpbGVzIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY0L2lw X2ZvcndhcmQuYyBiL25ldC9pcHY0L2lwX2ZvcndhcmQuYwppbmRleCAzMjY2MmU5ZTVkMjEuLmQ1 OTg0ZDMxYWI5MyAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvaXBfZm9yd2FyZC5jCisrKyBiL25ldC9p cHY0L2lwX2ZvcndhcmQuYwpAQCAtNzIsNiArNzIsNyBAQCBzdGF0aWMgaW50IGlwX2ZvcndhcmRf ZmluaXNoKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAq cwogCWlmICh1bmxpa2VseShvcHQtPm9wdGxlbikpCiAJCWlwX2ZvcndhcmRfb3B0aW9ucyhza2Ip OwogCisJc2tiLT50c3RhbXAgPSAwOwogCXJldHVybiBkc3Rfb3V0cHV0KG5ldCwgc2ssIHNrYik7 CiB9CiAKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2lwNl9vdXRwdXQuYyBiL25ldC9pcHY2L2lwNl9v dXRwdXQuYwppbmRleCAyNjk0ZGVmMWU3MmMuLjBiYjg3ZjNhMTBjNyAxMDA2NDQKLS0tIGEvbmV0 L2lwdjYvaXA2X291dHB1dC5jCisrKyBiL25ldC9pcHY2L2lwNl9vdXRwdXQuYwpAQCAtMzc4LDYg KzM3OCw3IEBAIHN0YXRpYyBpbmxpbmUgaW50IGlwNl9mb3J3YXJkX2ZpbmlzaChzdHJ1Y3QgbmV0 ICpuZXQsIHN0cnVjdCBzb2NrICpzaywKIAlfX0lQNl9JTkNfU1RBVFMobmV0LCBpcDZfZHN0X2lk ZXYoZHN0KSwgSVBTVEFUU19NSUJfT1VURk9SV0RBVEFHUkFNUyk7CiAJX19JUDZfQUREX1NUQVRT KG5ldCwgaXA2X2RzdF9pZGV2KGRzdCksIElQU1RBVFNfTUlCX09VVE9DVEVUUywgc2tiLT5sZW4p OwogCisJc2tiLT50c3RhbXAgPSAwOwogCXJldHVybiBkc3Rfb3V0cHV0KG5ldCwgc2ssIHNrYik7 CiB9CiAKLS0gCjIuMjAuMQoKCkZyb20gYzM3MGVkOGVjMzU2NzE4ODM2YmFmZmIzNGUxYmI0YTFk NzZmNTFmOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogIkd1c3Rhdm8gQS4gUi4gU2ls dmEiIDxndXN0YXZvQGVtYmVkZGVkb3IuY29tPgpEYXRlOiBGcmksIDIxIERlYyAyMDE4IDE0OjQ5 OjAxIC0wNjAwClN1YmplY3Q6IFtQQVRDSCAxMi81OF0gbmV0OiBjb3JlOiBGaXggU3BlY3RyZSB2 MSB2dWxuZXJhYmlsaXR5CgpbIFVwc3RyZWFtIGNvbW1pdCA1MGQ1MjU4NjM0YWVlMmU2MjgzMmFh MDg2ZDJmYjBkZTAwZTcyYjkxIF0KCmZsZW4gaXMgaW5kaXJlY3RseSBjb250cm9sbGVkIGJ5IHVz ZXItc3BhY2UsIGhlbmNlIGxlYWRpbmcgdG8KYSBwb3RlbnRpYWwgZXhwbG9pdGF0aW9uIG9mIHRo ZSBTcGVjdHJlIHZhcmlhbnQgMSB2dWxuZXJhYmlsaXR5LgoKVGhpcyBpc3N1ZSB3YXMgZGV0ZWN0 ZWQgd2l0aCB0aGUgaGVscCBvZiBTbWF0Y2g6CgpuZXQvY29yZS9maWx0ZXIuYzoxMTAxIGJwZl9j aGVja19jbGFzc2ljKCkgd2FybjogcG90ZW50aWFsIHNwZWN0cmUgaXNzdWUgJ2ZpbHRlcicgW3dd CgpGaXggdGhpcyBieSBzYW5pdGl6aW5nIGZsZW4gYmVmb3JlIHVzaW5nIGl0IHRvIGluZGV4IGZp bHRlciBhdCBsaW5lIDExMDE6CgoJc3dpdGNoIChmaWx0ZXJbZmxlbiAtIDFdLmNvZGUpIHsKCmFu ZCB0aHJvdWdoIHBjIGF0IGxpbmUgMTA0MDoKCgljb25zdCBzdHJ1Y3Qgc29ja19maWx0ZXIgKmZ0 ZXN0ID0gJmZpbHRlcltwY107CgpOb3RpY2UgdGhhdCBnaXZlbiB0aGF0IHNwZWN1bGF0aW9uIHdp bmRvd3MgYXJlIGxhcmdlLCB0aGUgcG9saWN5IGlzCnRvIGtpbGwgdGhlIHNwZWN1bGF0aW9uIG9u IHRoZSBmaXJzdCBsb2FkIGFuZCBub3Qgd29ycnkgaWYgaXQgY2FuIGJlCmNvbXBsZXRlZCB3aXRo IGEgZGVwZW5kZW50IGxvYWQvc3RvcmUgWzFdLgoKWzFdIGh0dHBzOi8vbWFyYy5pbmZvLz9sPWxp bnV4LWtlcm5lbCZtPTE1MjQ0OTEzMTExNDc3OCZ3PTIKClNpZ25lZC1vZmYtYnk6IEd1c3Rhdm8g QS4gUi4gU2lsdmEgPGd1c3Rhdm9AZW1iZWRkZWRvci5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvY29yZS9maWx0ZXIuYyB8 IDIgKysKIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9uZXQv Y29yZS9maWx0ZXIuYyBiL25ldC9jb3JlL2ZpbHRlci5jCmluZGV4IDVlMDBmMmI4NWE1Ni4uY2Rl OWZhMTFjNWRkIDEwMDY0NAotLS0gYS9uZXQvY29yZS9maWx0ZXIuYworKysgYi9uZXQvY29yZS9m aWx0ZXIuYwpAQCAtNjgsNiArNjgsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3NlZzZfbG9jYWwuaD4K ICNpbmNsdWRlIDxuZXQvc2VnNi5oPgogI2luY2x1ZGUgPG5ldC9zZWc2X2xvY2FsLmg+CisjaW5j bHVkZSA8bGludXgvbm9zcGVjLmg+CiAKIC8qKgogICoJc2tfZmlsdGVyX3RyaW1fY2FwIC0gcnVu IGEgcGFja2V0IHRocm91Z2ggYSBzb2NrZXQgZmlsdGVyCkBAIC0xMDMzLDYgKzEwMzQsNyBAQCBz dGF0aWMgaW50IGJwZl9jaGVja19jbGFzc2ljKGNvbnN0IHN0cnVjdCBzb2NrX2ZpbHRlciAqZmls dGVyLAogCWJvb2wgYW5jX2ZvdW5kOwogCWludCBwYzsKIAorCWZsZW4gPSBhcnJheV9pbmRleF9u b3NwZWMoZmxlbiwgQlBGX01BWElOU05TICsgMSk7CiAJLyogQ2hlY2sgdGhlIGZpbHRlciBjb2Rl IG5vdyAqLwogCWZvciAocGMgPSAwOyBwYyA8IGZsZW47IHBjKyspIHsKIAkJY29uc3Qgc3RydWN0 IHNvY2tfZmlsdGVyICpmdGVzdCA9ICZmaWx0ZXJbcGNdOwotLSAKMi4yMC4xCgoKRnJvbSBmMjlm ZGE5YTdhYWZhYzA1MjRjOTJkODVhYzc0NzFmODQyNjRkZjY1IE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkRhdGU6IFdlZCwg MiBKYW4gMjAxOSAwNDoyNDoyMCAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMTMvNThdIG5ldC9oYW1y YWRpby82cGFjazogdXNlIG1vZF90aW1lcigpIHRvIHJlYXJtIHRpbWVycwoKWyBVcHN0cmVhbSBj b21taXQgMjAyNzAwZTMwNzQwYzY1NjhiNWE2OTQzNjYyZjM4Mjk1NjZkZDUzMyBdCgpVc2luZyBk ZWxfdGltZXIoKSArIGFkZF90aW1lcigpIGlzIGdlbmVyYWxseSB1bnNhZmUgb24gU01QLAphcyBu b3RpY2VkIGJ5IHN5emJvdC4gVXNlIG1vZF90aW1lcigpIGluc3RlYWQuCgprZXJuZWwgQlVHIGF0 IGtlcm5lbC90aW1lL3RpbWVyLmM6MTEzNiEKaW52YWxpZCBvcGNvZGU6IDAwMDAgWyMxXSBQUkVF TVBUIFNNUCBLQVNBTgpDUFU6IDEgUElEOiAxMDI2IENvbW06IGt3b3JrZXIvdTQ6NCBOb3QgdGFp bnRlZCA0LjIwLjArICMyCkhhcmR3YXJlIG5hbWU6IEdvb2dsZSBHb29nbGUgQ29tcHV0ZSBFbmdp bmUvR29vZ2xlIENvbXB1dGUgRW5naW5lLCBCSU9TIEdvb2dsZSAwMS8wMS8yMDExCldvcmtxdWV1 ZTogZXZlbnRzX3VuYm91bmQgZmx1c2hfdG9fbGRpc2MKUklQOiAwMDEwOmFkZF90aW1lciBrZXJu ZWwvdGltZS90aW1lci5jOjExMzYgW2lubGluZV0KUklQOiAwMDEwOmFkZF90aW1lcisweGE4MS8w eDE0NzAga2VybmVsL3RpbWUvdGltZXIuYzoxMTM0CkNvZGU6IDRkIDg5IDdkIDQwIDQ4IGM3IDg1 IDcwIGZlIGZmIGZmIDAwIDAwIDAwIDAwIGM3IDg1IDdjIGZlIGZmIGZmIGZmIGZmIGZmIGZmIDQ4 IDg5IDg1IDkwIGZlIGZmIGZmIGU5IGU2IGY3IGZmIGZmIGU4IGNmIDQyIDEyIDAwIDwwZj4gMGIg ZTggYzggNDIgMTIgMDAgMGYgMGIgZTggYzEgNDIgMTIgMDAgNGMgODkgYmQgNjAgZmUgZmYgZmYg ZTkKUlNQOiAwMDE4OmZmZmY4ODgwYTdmZGY1YTggRUZMQUdTOiAwMDAxMDI5MwpSQVg6IGZmZmY4 ODgwYTc4NDYzNDAgUkJYOiBkZmZmZmMwMDAwMDAwMDAwIFJDWDogMDAwMDAwMDAwMDAwMDAwMApS RFg6IDAwMDAwMDAwMDAwMDAwMDAgUlNJOiBmZmZmZmZmZjgxNmYzZWUxIFJESTogZmZmZjg4ODA4 YTUxNGZmOApSQlA6IGZmZmY4ODgwYTdmZGY3NjAgUjA4OiAwMDAwMDAwMDAwMDAwMDA3IFIwOTog ZmZmZjg4ODBhNzg0NmM1OApSMTA6IGZmZmY4ODgwYTc4NDYzNDAgUjExOiAwMDAwMDAwMDAwMDAw MDAwIFIxMjogZmZmZjg4ODA4YTUxNGZmOApSMTM6IGZmZmY4ODgwOGE1MTRmZjggUjE0OiBmZmZm ODg4MDhhNTE0ZGMwIFIxNTogMDAwMDAwMDAwMDAwMDAzMApGUzogIDAwMDAwMDAwMDAwMDAwMDAo MDAwMCkgR1M6ZmZmZjg4ODBhZTcwMDAwMCgwMDAwKSBrbmxHUzowMDAwMDAwMDAwMDAwMDAwCkNT OiAgMDAxMCBEUzogMDAwMCBFUzogMDAwMCBDUjA6IDAwMDAwMDAwODAwNTAwMzMKQ1IyOiAwMDAw MDAwMDAwNjFjNTAwIENSMzogMDAwMDAwMDA5OTRkOTAwMCBDUjQ6IDAwMDAwMDAwMDAxNDA2ZTAK RFIwOiAwMDAwMDAwMDAwMDAwMDAwIERSMTogMDAwMDAwMDAwMDAwMDAwMCBEUjI6IDAwMDAwMDAw MDAwMDAwMDAKRFIzOiAwMDAwMDAwMDAwMDAwMDAwIERSNjogMDAwMDAwMDBmZmZlMGZmMCBEUjc6 IDAwMDAwMDAwMDAwMDA0MDAKQ2FsbCBUcmFjZToKIGRlY29kZV9wcmlvX2NvbW1hbmQgZHJpdmVy cy9uZXQvaGFtcmFkaW8vNnBhY2suYzo5MDMgW2lubGluZV0KIHNpeHBhY2tfZGVjb2RlIGRyaXZl cnMvbmV0L2hhbXJhZGlvLzZwYWNrLmM6OTcxIFtpbmxpbmVdCiBzaXhwYWNrX3JlY2VpdmVfYnVm IGRyaXZlcnMvbmV0L2hhbXJhZGlvLzZwYWNrLmM6NDU3IFtpbmxpbmVdCiBzaXhwYWNrX3JlY2Vp dmVfYnVmKzB4ZjljLzB4MTQ3MCBkcml2ZXJzL25ldC9oYW1yYWRpby82cGFjay5jOjQzNAogdHR5 X2xkaXNjX3JlY2VpdmVfYnVmKzB4MTY0LzB4MWMwIGRyaXZlcnMvdHR5L3R0eV9idWZmZXIuYzo0 NjUKIHR0eV9wb3J0X2RlZmF1bHRfcmVjZWl2ZV9idWYrMHgxMTQvMHgxOTAgZHJpdmVycy90dHkv dHR5X3BvcnQuYzozOAogcmVjZWl2ZV9idWYgZHJpdmVycy90dHkvdHR5X2J1ZmZlci5jOjQ4MSBb aW5saW5lXQogZmx1c2hfdG9fbGRpc2MrMHgzYjIvMHg1OTAgZHJpdmVycy90dHkvdHR5X2J1ZmZl ci5jOjUzMwogcHJvY2Vzc19vbmVfd29yaysweGQwYy8weDFjZTAga2VybmVsL3dvcmtxdWV1ZS5j OjIxNTMKIHdvcmtlcl90aHJlYWQrMHgxNDMvMHgxNGEwIGtlcm5lbC93b3JrcXVldWUuYzoyMjk2 CiBrdGhyZWFkKzB4MzU3LzB4NDMwIGtlcm5lbC9rdGhyZWFkLmM6MjQ2CiByZXRfZnJvbV9mb3Jr KzB4M2EvMHg1MCBhcmNoL3g4Ni9lbnRyeS9lbnRyeV82NC5TOjM1MgoKRml4ZXM6IDFkYTE3N2U0 YzNmNCAoIkxpbnV4LTIuNi4xMi1yYzIiKQpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVk dW1hemV0QGdvb2dsZS5jb20+ClJlcG9ydGVkLWJ5OiBzeXpib3QgPHN5emthbGxlckBnb29nbGVn cm91cHMuY29tPgpDYzogQW5kcmVhcyBLb2Vuc2dlbiA8YWprQGNvbW5ldHMudW5pLWJyZW1lbi5k ZT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0Pgot LS0KIGRyaXZlcnMvbmV0L2hhbXJhZGlvLzZwYWNrLmMgfCAxNiArKysrLS0tLS0tLS0tLS0tCiAx IGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9kcml2ZXJzL25ldC9oYW1yYWRpby82cGFjay5jIGIvZHJpdmVycy9uZXQvaGFtcmFkaW8v NnBhY2suYwppbmRleCBkNzlhNjlkZDIxNDYuLjU0ZTYzZWMwNDkwNyAxMDA2NDQKLS0tIGEvZHJp dmVycy9uZXQvaGFtcmFkaW8vNnBhY2suYworKysgYi9kcml2ZXJzL25ldC9oYW1yYWRpby82cGFj ay5jCkBAIC01MjQsMTAgKzUyNCw3IEBAIHN0YXRpYyB2b2lkIHJlc3luY190bmMoc3RydWN0IHRp bWVyX2xpc3QgKnQpCiAKIAogCS8qIFN0YXJ0IHJlc3luYyB0aW1lciBhZ2FpbiAtLSB0aGUgVE5D IG1pZ2h0IGJlIHN0aWxsIGFic2VudCAqLwotCi0JZGVsX3RpbWVyKCZzcC0+cmVzeW5jX3QpOwot CXNwLT5yZXN5bmNfdC5leHBpcmVzCT0gamlmZmllcyArIFNJWFBfUkVTWU5DX1RJTUVPVVQ7Ci0J YWRkX3RpbWVyKCZzcC0+cmVzeW5jX3QpOworCW1vZF90aW1lcigmc3AtPnJlc3luY190LCBqaWZm aWVzICsgU0lYUF9SRVNZTkNfVElNRU9VVCk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgaW50IHRuY19p bml0KHN0cnVjdCBzaXhwYWNrICpzcCkKQEAgLTUzOCw5ICs1MzUsNyBAQCBzdGF0aWMgaW5saW5l IGludCB0bmNfaW5pdChzdHJ1Y3Qgc2l4cGFjayAqc3ApCiAKIAlzcC0+dHR5LT5vcHMtPndyaXRl KHNwLT50dHksICZpbmJ5dGUsIDEpOwogCi0JZGVsX3RpbWVyKCZzcC0+cmVzeW5jX3QpOwotCXNw LT5yZXN5bmNfdC5leHBpcmVzID0gamlmZmllcyArIFNJWFBfUkVTWU5DX1RJTUVPVVQ7Ci0JYWRk X3RpbWVyKCZzcC0+cmVzeW5jX3QpOworCW1vZF90aW1lcigmc3AtPnJlc3luY190LCBqaWZmaWVz ICsgU0lYUF9SRVNZTkNfVElNRU9VVCk7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTkxOCwxMSArOTEz LDggQEAgc3RhdGljIHZvaWQgZGVjb2RlX3ByaW9fY29tbWFuZChzdHJ1Y3Qgc2l4cGFjayAqc3As IHVuc2lnbmVkIGNoYXIgY21kKQogICAgICAgICAvKiBpZiB0aGUgc3RhdGUgYnl0ZSBoYXMgYmVl biByZWNlaXZlZCwgdGhlIFROQyBpcyBwcmVzZW50LAogICAgICAgICAgICBzbyB0aGUgcmVzeW5j IHRpbWVyIGNhbiBiZSByZXNldC4gKi8KIAotCWlmIChzcC0+dG5jX3N0YXRlID09IFROQ19JTl9T WU5DKSB7Ci0JCWRlbF90aW1lcigmc3AtPnJlc3luY190KTsKLQkJc3AtPnJlc3luY190LmV4cGly ZXMJPSBqaWZmaWVzICsgU0lYUF9JTklUX1JFU1lOQ19USU1FT1VUOwotCQlhZGRfdGltZXIoJnNw LT5yZXN5bmNfdCk7Ci0JfQorCWlmIChzcC0+dG5jX3N0YXRlID09IFROQ19JTl9TWU5DKQorCQlt b2RfdGltZXIoJnNwLT5yZXN5bmNfdCwgamlmZmllcyArIFNJWFBfSU5JVF9SRVNZTkNfVElNRU9V VCk7CiAKIAlzcC0+c3RhdHVzMSA9IGNtZCAmIFNJWFBfUFJJT19EQVRBX01BU0s7CiB9Ci0tIAoy LjIwLjEKCgpGcm9tIGU0ZWEyMjQ4YmE2MDZiYWY1NDQ5OGY1Zjc3N2MzOWIyMjlmY2UwZGEgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE1pY2hhbCBLdWJlY2VrIDxta3ViZWNla0BzdXNl LmN6PgpEYXRlOiBUaHUsIDEzIERlYyAyMDE4IDE3OjIzOjMyICswMTAwClN1YmplY3Q6IFtQQVRD SCAxNC81OF0gbmV0OiBpcHY0OiBkbyBub3QgaGFuZGxlIGR1cGxpY2F0ZSBmcmFnbWVudHMgYXMK IG92ZXJsYXBwaW5nCgpbIFVwc3RyZWFtIGNvbW1pdCBhZGU0NDY0MDNiZmI3OWQzNTI4ZDU2MDcx YTg0YjE1MzUxYTEzOWFkIF0KClNpbmNlIGNvbW1pdCA3OTY5ZTVjNDBkZmQgKCJpcDogZGlzY2Fy ZCBJUHY0IGRhdGFncmFtcyB3aXRoIG92ZXJsYXBwaW5nCnNlZ21lbnRzLiIpIElQdjQgcmVhc3Nl bWJseSBjb2RlIGRyb3BzIHRoZSB3aG9sZSBxdWV1ZSB3aGVuZXZlciBhbgpvdmVybGFwcGluZyBm cmFnbWVudCBpcyByZWNlaXZlZC4gSG93ZXZlciwgdGhlIHRlc3QgaXMgd3JpdHRlbiBpbiBhIHdh eQp3aGljaCBkZXRlY3RzIGR1cGxpY2F0ZSBmcmFnbWVudHMgYXMgb3ZlcmxhcHBpbmcgc28gdGhh dCBpbiBlbnZpcm9ubWVudHMKd2l0aCBtYW55IGR1cGxpY2F0ZSBwYWNrZXRzLCBmcmFnbWVudGVk IHBhY2tldHMgbWF5IGJlIHVuZGVsaXZlcmFibGUuCgpBZGQgYW4gZXh0cmEgdGVzdCBhbmQgZm9y IChwb3RlbnRpYWxseSkgZHVwbGljYXRlIGZyYWdtZW50LCBvbmx5IGRyb3AgdGhlCm5ldyBmcmFn bWVudCByYXRoZXIgdGhhbiB0aGUgd2hvbGUgcXVldWUuIE9ubHkgc3RhcnRpbmcgb2Zmc2V0IGFu ZCBsZW5ndGgKYXJlIGNoZWNrZWQsIG5vdCB0aGUgY29udGVudHMgb2YgdGhlIGZyYWdtZW50cyBh cyB0aGF0IHdvdWxkIGJlIHRvbwpleHBlbnNpdmUuIEZvciBzaW1pbGFyIHJlYXNvbiwgbGluZWFy IGxpc3QgKCJydW4iKSBvZiBhIHJidHJlZSBub2RlIGlzIG5vdAppdGVyYXRlZCwgd2Ugb25seSBj aGVjayBpZiB0aGUgbmV3IGZyYWdtZW50IGlzIGEgc3Vic2V0IG9mIHRoZSBpbnRlcnZhbApjb3Zl cmVkIGJ5IGV4aXN0aW5nIGNvbnNlY3V0aXZlIGZyYWdtZW50cy4KCnYyOiBpbnN0ZWFkIG9mIGFu IGV4YWN0IGNoZWNrIGl0ZXJhdGluZyB0aHJvdWdoIGxpbmVhciBsaXN0IG9mIGFuIHJidHJlZQpu b2RlLCBvbmx5IGNoZWNrIGlmIHRoZSBuZXcgZnJhZ21lbnQgaXMgc3Vic2V0IG9mIHRoZSAicnVu IiAoc3VnZ2VzdGVkCmJ5IEVyaWMgRHVtYXpldCkKCkZpeGVzOiA3OTY5ZTVjNDBkZmQgKCJpcDog ZGlzY2FyZCBJUHY0IGRhdGFncmFtcyB3aXRoIG92ZXJsYXBwaW5nIHNlZ21lbnRzLiIpClNpZ25l ZC1vZmYtYnk6IE1pY2hhbCBLdWJlY2VrIDxta3ViZWNla0BzdXNlLmN6PgpTaWduZWQtb2ZmLWJ5 OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjQvaXBf ZnJhZ21lbnQuYyB8IDE4ICsrKysrKysrKysrKy0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDEyIGlu c2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvaXBfZnJh Z21lbnQuYyBiL25ldC9pcHY0L2lwX2ZyYWdtZW50LmMKaW5kZXggZjY4NmQ3NzYxYWNiLi5mOGJi ZDY5M2MxOWMgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L2lwX2ZyYWdtZW50LmMKKysrIGIvbmV0L2lw djQvaXBfZnJhZ21lbnQuYwpAQCAtMzQ3LDEwICszNDcsMTAgQEAgc3RhdGljIGludCBpcF9mcmFn X3F1ZXVlKHN0cnVjdCBpcHEgKnFwLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCXN0cnVjdCBuZXQg Km5ldCA9IGNvbnRhaW5lcl9vZihxcC0+cS5uZXQsIHN0cnVjdCBuZXQsIGlwdjQuZnJhZ3MpOwog CXN0cnVjdCByYl9ub2RlICoqcmJuLCAqcGFyZW50OwogCXN0cnVjdCBza19idWZmICpza2IxLCAq cHJldl90YWlsOworCWludCBpaGwsIGVuZCwgc2tiMV9ydW5fZW5kOwogCXN0cnVjdCBuZXRfZGV2 aWNlICpkZXY7CiAJdW5zaWduZWQgaW50IGZyYWdzaXplOwogCWludCBmbGFncywgb2Zmc2V0Owot CWludCBpaGwsIGVuZDsKIAlpbnQgZXJyID0gLUVOT0VOVDsKIAl1OCBlY247CiAKQEAgLTQyMCw3 ICs0MjAsOSBAQCBzdGF0aWMgaW50IGlwX2ZyYWdfcXVldWUoc3RydWN0IGlwcSAqcXAsIHN0cnVj dCBza19idWZmICpza2IpCiAJICogICBvdmVybGFwcGluZyBmcmFnbWVudCwgdGhlIGVudGlyZSBk YXRhZ3JhbSAoYW5kIGFueSBjb25zdGl0dWVudAogCSAqICAgZnJhZ21lbnRzKSBNVVNUIGJlIHNp bGVudGx5IGRpc2NhcmRlZC4KIAkgKgotCSAqIFdlIGRvIHRoZSBzYW1lIGhlcmUgZm9yIElQdjQg KGFuZCBpbmNyZW1lbnQgYW4gc25tcCBjb3VudGVyKS4KKwkgKiBXZSBkbyB0aGUgc2FtZSBoZXJl IGZvciBJUHY0IChhbmQgaW5jcmVtZW50IGFuIHNubXAgY291bnRlcikgYnV0CisJICogd2UgZG8g bm90IHdhbnQgdG8gZHJvcCB0aGUgd2hvbGUgcXVldWUgaW4gcmVzcG9uc2UgdG8gYSBkdXBsaWNh dGUKKwkgKiBmcmFnbWVudC4KIAkgKi8KIAogCS8qIEZpbmQgb3V0IHdoZXJlIHRvIHB1dCB0aGlz IGZyYWdtZW50LiAgKi8KQEAgLTQ0NCwxMyArNDQ2LDE3IEBAIHN0YXRpYyBpbnQgaXBfZnJhZ19x dWV1ZShzdHJ1Y3QgaXBxICpxcCwgc3RydWN0IHNrX2J1ZmYgKnNrYikKIAkJZG8gewogCQkJcGFy ZW50ID0gKnJibjsKIAkJCXNrYjEgPSByYl90b19za2IocGFyZW50KTsKKwkJCXNrYjFfcnVuX2Vu ZCA9IHNrYjEtPmlwX2RlZnJhZ19vZmZzZXQgKworCQkJCSAgICAgICBGUkFHX0NCKHNrYjEpLT5m cmFnX3J1bl9sZW47CiAJCQlpZiAoZW5kIDw9IHNrYjEtPmlwX2RlZnJhZ19vZmZzZXQpCiAJCQkJ cmJuID0gJnBhcmVudC0+cmJfbGVmdDsKLQkJCWVsc2UgaWYgKG9mZnNldCA+PSBza2IxLT5pcF9k ZWZyYWdfb2Zmc2V0ICsKLQkJCQkJCUZSQUdfQ0Ioc2tiMSktPmZyYWdfcnVuX2xlbikKKwkJCWVs c2UgaWYgKG9mZnNldCA+PSBza2IxX3J1bl9lbmQpCiAJCQkJcmJuID0gJnBhcmVudC0+cmJfcmln aHQ7Ci0JCQllbHNlIC8qIEZvdW5kIGFuIG92ZXJsYXAgd2l0aCBza2IxLiAqLwotCQkJCWdvdG8g ZGlzY2FyZF9xcDsKKwkJCWVsc2UgaWYgKG9mZnNldCA+PSBza2IxLT5pcF9kZWZyYWdfb2Zmc2V0 ICYmCisJCQkJIGVuZCA8PSBza2IxX3J1bl9lbmQpCisJCQkJZ290byBlcnI7IC8qIE5vIG5ldyBk YXRhLCBwb3RlbnRpYWwgZHVwbGljYXRlICovCisJCQllbHNlCisJCQkJZ290byBkaXNjYXJkX3Fw OyAvKiBGb3VuZCBhbiBvdmVybGFwICovCiAJCX0gd2hpbGUgKCpyYm4pOwogCQkvKiBIZXJlIHdl IGhhdmUgcGFyZW50IHByb3Blcmx5IHNldCwgYW5kIHJibiBwb2ludGluZyB0bwogCQkgKiBvbmUg b2YgaXRzIE5VTEwgbGVmdC9yaWdodCBjaGlsZHJlbi4gSW5zZXJ0IHNrYi4KLS0gCjIuMjAuMQoK CkZyb20gYTJiYmY5YTdlMDljNWNkZWQxMTc2MzVmNGM1OTE4OWIzY2RmZmY5NiBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogQ2xhdWRpdSBCZXpuZWEgPGNsYXVkaXUuYmV6bmVhQG1pY3Jv Y2hpcC5jb20+CkRhdGU6IE1vbiwgMTcgRGVjIDIwMTggMTA6MDI6NDIgKzAwMDAKU3ViamVjdDog W1BBVENIIDE1LzU4XSBuZXQ6IG1hY2I6IHJlc3RhcnQgdHggYWZ0ZXIgdHggdXNlZCBiaXQgcmVh ZAoKWyBVcHN0cmVhbSBjb21taXQgNDI5ODM4ODU3NGRhZTYxNjhmYTg5NDBiM2VkYzdiYTk2NWU4 YTdhYiBdCgpPbiBzb21lIHBsYXRmb3JtcyAoY3VycmVudGx5IGRldGVjdGVkIG9ubHkgb24gU0FN QTVENCkgVFggbWlnaHQgc3R1Y2sKZXZlbiB0aGUgcGFjaGV0cyBhcmUgc3RpbGwgcHJlc2VudCBp biBETUEgbWVtb3JpZXMgYW5kIFRYIHN0YXJ0IHdhcwppc3N1ZWQgZm9yIHRoZW0uIFRoaXMgaGFw cGVucyBkdWUgdG8gcmFjZSBjb25kaXRpb24gYmV0d2VlbiBNQUNCIGRyaXZlcgp1cGRhdGluZyBu ZXh0IFRYIGJ1ZmZlciBkZXNjcmlwdG9yIHRvIGJlIHVzZWQgYW5kIElQIHJlYWRpbmcgdGhlIHNh bWUKZGVzY3JpcHRvci4gSW4gc3VjaCBhIGNhc2UsIHRoZSAiVFggVVNFRCBCSVQgUkVBRCIgaW50 ZXJydXB0IGlzIGFzc2VydGVkLgpHRU0vTUFDQiB1c2VyIGd1aWRlIHNwZWNpZmllcyB0aGF0IGlm IGEgIlRYIFVTRUQgQklUIFJFQUQiIGludGVycnVwdAppcyBhc3NlcnRlZCBUWCBtdXN0IGJlIHJl c3RhcnRlZC4gUmVzdGFydCBUWCBpZiB1c2VkIGJpdCBpcyByZWFkIGFuZApwYWNrZXRzIGFyZSBw cmVzZW50IGluIHNvZnR3YXJlIFRYIHF1ZXVlLiBQYWNrZXRzIGFyZSByZW1vdmVkIGZyb20gc29m dHdhcmUKVFggcXVldWUgaWYgVFggd2FzIHN1Y2Nlc3NmdWwgZm9yIHRoZW0gKHNlZSBtYWNiX3R4 X2ludGVycnVwdCgpKS4KClNpZ25lZC1vZmYtYnk6IENsYXVkaXUgQmV6bmVhIDxjbGF1ZGl1LmJl em5lYUBtaWNyb2NoaXAuY29tPgpBY2tlZC1ieTogTmljb2xhcyBGZXJyZSA8bmljb2xhcy5mZXJy ZUBtaWNyb2NoaXAuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4u YyB8IDIxICsrKysrKysrKysrKysrKysrKysrLQogMSBmaWxlIGNoYW5nZWQsIDIwIGluc2VydGlv bnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9j YWRlbmNlL21hY2JfbWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21h aW4uYwppbmRleCA1OGI5NzQ0YzQwNTguLjI0MGZkMzZiNTA3NCAxMDA2NDQKLS0tIGEvZHJpdmVy cy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYworKysgYi9kcml2ZXJzL25ldC9ldGhl cm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jCkBAIC02MSw3ICs2MSw4IEBACiAjZGVmaW5lIE1BQ0Jf VFhfRVJSX0ZMQUdTCShNQUNCX0JJVChJU1JfVFVORCkJCQlcCiAJCQkJCXwgTUFDQl9CSVQoSVNS X1JMRSkJCVwKIAkJCQkJfCBNQUNCX0JJVChUWEVSUikpCi0jZGVmaW5lIE1BQ0JfVFhfSU5UX0ZM QUdTCShNQUNCX1RYX0VSUl9GTEFHUyB8IE1BQ0JfQklUKFRDT01QKSkKKyNkZWZpbmUgTUFDQl9U WF9JTlRfRkxBR1MJKE1BQ0JfVFhfRVJSX0ZMQUdTIHwgTUFDQl9CSVQoVENPTVApCVwKKwkJCQkJ fCBNQUNCX0JJVChUWFVCUikpCiAKIC8qIE1heCBsZW5ndGggb2YgdHJhbnNtaXQgZnJhbWUgbXVz dCBiZSBhIG11bHRpcGxlIG9mIDggYnl0ZXMgKi8KICNkZWZpbmUgTUFDQl9UWF9MRU5fQUxJR04J OApAQCAtMTMxMyw2ICsxMzE0LDIxIEBAIHN0YXRpYyB2b2lkIG1hY2JfaHJlc3BfZXJyb3JfdGFz ayh1bnNpZ25lZCBsb25nIGRhdGEpCiAJbmV0aWZfdHhfc3RhcnRfYWxsX3F1ZXVlcyhkZXYpOwog fQogCitzdGF0aWMgdm9pZCBtYWNiX3R4X3Jlc3RhcnQoc3RydWN0IG1hY2JfcXVldWUgKnF1ZXVl KQoreworCXVuc2lnbmVkIGludCBoZWFkID0gcXVldWUtPnR4X2hlYWQ7CisJdW5zaWduZWQgaW50 IHRhaWwgPSBxdWV1ZS0+dHhfdGFpbDsKKwlzdHJ1Y3QgbWFjYiAqYnAgPSBxdWV1ZS0+YnA7CisK KwlpZiAoYnAtPmNhcHMgJiBNQUNCX0NBUFNfSVNSX0NMRUFSX09OX1dSSVRFKQorCQlxdWV1ZV93 cml0ZWwocXVldWUsIElTUiwgTUFDQl9CSVQoVFhVQlIpKTsKKworCWlmIChoZWFkID09IHRhaWwp CisJCXJldHVybjsKKworCW1hY2Jfd3JpdGVsKGJwLCBOQ1IsIG1hY2JfcmVhZGwoYnAsIE5DUikg fCBNQUNCX0JJVChUU1RBUlQpKTsKK30KKwogc3RhdGljIGlycXJldHVybl90IG1hY2JfaW50ZXJy dXB0KGludCBpcnEsIHZvaWQgKmRldl9pZCkKIHsKIAlzdHJ1Y3QgbWFjYl9xdWV1ZSAqcXVldWUg PSBkZXZfaWQ7CkBAIC0xMzcwLDYgKzEzODYsOSBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgbWFjYl9p bnRlcnJ1cHQoaW50IGlycSwgdm9pZCAqZGV2X2lkKQogCQlpZiAoc3RhdHVzICYgTUFDQl9CSVQo VENPTVApKQogCQkJbWFjYl90eF9pbnRlcnJ1cHQocXVldWUpOwogCisJCWlmIChzdGF0dXMgJiBN QUNCX0JJVChUWFVCUikpCisJCQltYWNiX3R4X3Jlc3RhcnQocXVldWUpOworCiAJCS8qIExpbmsg Y2hhbmdlIGRldGVjdGlvbiBpc24ndCBwb3NzaWJsZSB3aXRoIFJNSUksIHNvIHdlJ2xsCiAJCSAq IGFkZCB0aGF0IGlmL3doZW4gd2UgZ2V0IG91ciBoYW5kcyBvbiBhIGZ1bGwtYmxvd24gTUlJIFBI WS4KIAkJICovCi0tIAoyLjIwLjEKCgpGcm9tIGU1NGM3ODA5NmNkZGEyNzJkNDk3OGMxMGJjNjkw YmY3NWI5YWFlYjIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFudG9pbmUgVGVuYXJ0 IDxhbnRvaW5lLnRlbmFydEBib290bGluLmNvbT4KRGF0ZTogVHVlLCAxMSBEZWMgMjAxOCAxNzoz MjoyOCArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMTYvNThdIG5ldDogbXZwcDI6IDEwRyBtb2RlcyBh cmVuJ3Qgc3VwcG9ydGVkIG9uIGFsbCBwb3J0cwoKWyBVcHN0cmVhbSBjb21taXQgMDA2NzkxNzcy MDg0MzgzZGU3NzllZjI5ZjJlMDZmM2E2ZTExMWU3ZCBdCgpUaGUgbXZwcDJfcGh5bGlua192YWxp ZGF0ZSgpIGZ1bmN0aW9uIHNldHMgYWxsIG1vZGVzIHRoYXQgYXJlCnN1cHBvcnRlZCBieSBhIGdp dmVuIFBQdjIgcG9ydC4gQSByZWNlbnQgY2hhbmdlIG1hZGUgYWxsIHBvcnRzIHRvCmFkdmVydGlz ZSB0aGV5IHN1cHBvcnQgMTBHIG1vZGVzIGluIGNlcnRhaW4gY2FzZXMuIFRoaXMgaXMgbm90IHRy dWUsCmFzIG9ubHkgdGhlIHBvcnQgIzAgY2FuIGRvIHNvLiBUaGlzIHBhdGNoIGZpeGVzIGl0LgoK Rml4ZXM6IDAxYjNmZDVhYzk3YyAoIm5ldDogbXZwcDI6IGZpeCBkZXRlY3Rpb24gb2YgMTBHIFNG UCBtb2R1bGVzIikKQ2M6IEJhcnVjaCBTaWFjaCA8YmFydWNoQHRrb3MuY28uaWw+ClNpZ25lZC1v ZmYtYnk6IEFudG9pbmUgVGVuYXJ0IDxhbnRvaW5lLnRlbmFydEBib290bGluLmNvbT4KU2lnbmVk LW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZl cnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXZwcDIvbXZwcDJfbWFpbi5jIHwgMTQgKysrKysrKyst LS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdnBwMi9tdnBwMl9tYWlu LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL212cHAyL212cHAyX21haW4uYwppbmRl eCA2MzIwZTA4MGI4MzEuLmQ1YmM5MDQ3NmI0ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRo ZXJuZXQvbWFydmVsbC9tdnBwMi9tdnBwMl9tYWluLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJu ZXQvbWFydmVsbC9tdnBwMi9tdnBwMl9tYWluLmMKQEAgLTQyOTIsMTIgKzQyOTIsMTQgQEAgc3Rh dGljIHZvaWQgbXZwcDJfcGh5bGlua192YWxpZGF0ZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAog CWNhc2UgUEhZX0lOVEVSRkFDRV9NT0RFXzEwR0tSOgogCWNhc2UgUEhZX0lOVEVSRkFDRV9NT0RF X1hBVUk6CiAJY2FzZSBQSFlfSU5URVJGQUNFX01PREVfTkE6Ci0JCXBoeWxpbmtfc2V0KG1hc2ss IDEwMDAwYmFzZUNSX0Z1bGwpOwotCQlwaHlsaW5rX3NldChtYXNrLCAxMDAwMGJhc2VTUl9GdWxs KTsKLQkJcGh5bGlua19zZXQobWFzaywgMTAwMDBiYXNlTFJfRnVsbCk7Ci0JCXBoeWxpbmtfc2V0 KG1hc2ssIDEwMDAwYmFzZUxSTV9GdWxsKTsKLQkJcGh5bGlua19zZXQobWFzaywgMTAwMDBiYXNl RVJfRnVsbCk7Ci0JCXBoeWxpbmtfc2V0KG1hc2ssIDEwMDAwYmFzZUtSX0Z1bGwpOworCQlpZiAo cG9ydC0+Z29wX2lkID09IDApIHsKKwkJCXBoeWxpbmtfc2V0KG1hc2ssIDEwMDAwYmFzZUNSX0Z1 bGwpOworCQkJcGh5bGlua19zZXQobWFzaywgMTAwMDBiYXNlU1JfRnVsbCk7CisJCQlwaHlsaW5r X3NldChtYXNrLCAxMDAwMGJhc2VMUl9GdWxsKTsKKwkJCXBoeWxpbmtfc2V0KG1hc2ssIDEwMDAw YmFzZUxSTV9GdWxsKTsKKwkJCXBoeWxpbmtfc2V0KG1hc2ssIDEwMDAwYmFzZUVSX0Z1bGwpOwor CQkJcGh5bGlua19zZXQobWFzaywgMTAwMDBiYXNlS1JfRnVsbCk7CisJCX0KIAkJLyogRmFsbC10 aHJvdWdoICovCiAJY2FzZSBQSFlfSU5URVJGQUNFX01PREVfUkdNSUk6CiAJY2FzZSBQSFlfSU5U RVJGQUNFX01PREVfUkdNSUlfSUQ6Ci0tIAoyLjIwLjEKCgpGcm9tIDk5NjNhZTU5ZjY4YjFjMmNh M2Y4Mzc2MWVhYzkyMGNhMDcxZmIyYTMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEt1 bmloaWtvIEhheWFzaGkgPGhheWFzaGkua3VuaWhpa29Ac29jaW9uZXh0LmNvbT4KRGF0ZTogVHVl LCAxOCBEZWMgMjAxOCAxNjo1NzowNCArMDkwMApTdWJqZWN0OiBbUEFUQ0ggMTcvNThdIG5ldDog cGh5OiBGaXggdGhlIGlzc3VlIHRoYXQgbmV0aWYgYWx3YXlzIGxpbmtzIHVwCiBhZnRlciByZXN1 bWluZwoKWyBVcHN0cmVhbSBjb21taXQgODc0MmJlYjUwZjJkYjkwM2QzYjZkNjlkZGQ4MWQ2N2Nl OTkxNDQ1MyBdCgpFdmVuIHRob3VnaCB0aGUgbGluayBpcyBkb3duIGJlZm9yZSBlbnRlcmluZyBo aWJlcm5hdGlvbiwKdGhlcmUgaXMgYW4gaXNzdWUgdGhhdCB0aGUgbmV0d29yayBpbnRlcmZhY2Ug YWx3YXlzIGxpbmtzIHVwIGFmdGVyIHJlc3VtaW5nCmZyb20gaGliZXJuYXRpb24uCgpJZiB0aGUg bGluayBpcyBzdGlsbCBkb3duIGJlZm9yZSBlbmFibGluZyB0aGUgbmV0d29yayBpbnRlcmZhY2Us CmFuZCBhZnRlciByZXN1bWluZyBmcm9tIGhpYmVybmF0aW9uLCB0aGUgcGh5ZGV2LT5zdGF0ZSBp cyBmb3JjaWJseSBzZXQKdG8gUEhZX1VQIGluIG1kaW9fYnVzX3BoeV9yZXN0b3JlKCksIGFuZCB0 aGUgbGluayBiZWNvbWVzIHVwLgoKSW4gc3VzcGVuZCBzZXF1ZW5jZSwgb25seSBpZiB0aGUgUEhZ IGlzIGF0dGFjaGVkLCBtZGlvX2J1c19waHlfc3VzcGVuZCgpCmNhbGxzIHBoeV9zdG9wX21hY2hp bmUoKSwgYW5kIG1kaW9fYnVzX3BoeV9yZXN1bWUoKSBjYWxscwpwaHlfc3RhcnRfbWFjaGluZSgp LgpJbiByZXN1bWUgc2VxdWVuY2UsIGl0J3MgZW5vdWdoIHRvIGRvIHRoZSBzYW1lIGFzIG1kaW9f YnVzX3BoeV9yZXN1bWUoKQpiZWNhdXNlIHRoZSBzdGF0ZSBoYXMgYmVlbiBwcmVzZXJ2ZWQuCgpU aGlzIHBhdGNoIGZpeGVzIHRoZSBpc3N1ZSBieSBjYWxsaW5nIHBoeV9zdGFydF9tYWNoaW5lKCkg aW4KbWRpb19idXNfcGh5X3Jlc3RvcmUoKSBpbiB0aGUgc2FtZSB3YXkgYXMgbWRpb19idXNfcGh5 X3Jlc3VtZSgpLgoKRml4ZXM6IGJjODc5MjJmZjU5ZCAoInBoeTogTW92ZSBQSFkgUE0gb3BlcmF0 aW9ucyBpbnRvIHBoeV9kZXZpY2UiKQpTdWdnZXN0ZWQtYnk6IEhlaW5lciBLYWxsd2VpdCA8aGth bGx3ZWl0MUBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IEt1bmloaWtvIEhheWFzaGkgPGhheWFz aGkua3VuaWhpa29Ac29jaW9uZXh0LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVy IDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L3BoeS9waHlfZGV2aWNlLmMg fCA3ICsrLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvcGh5L3BoeV9kZXZpY2UuYyBiL2RyaXZlcnMv bmV0L3BoeS9waHlfZGV2aWNlLmMKaW5kZXggMjBkMWJlMmIwNzBiLi4yYzMyYzc5NWY1ZGQgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3BoeS9waHlfZGV2aWNlLmMKKysrIGIvZHJpdmVycy9uZXQv cGh5L3BoeV9kZXZpY2UuYwpAQCAtMTY0LDExICsxNjQsOCBAQCBzdGF0aWMgaW50IG1kaW9fYnVz X3BoeV9yZXN0b3JlKHN0cnVjdCBkZXZpY2UgKmRldikKIAlpZiAocmV0IDwgMCkKIAkJcmV0dXJu IHJldDsKIAotCS8qIFRoZSBQSFkgbmVlZHMgdG8gcmVuZWdvdGlhdGUuICovCi0JcGh5ZGV2LT5s aW5rID0gMDsKLQlwaHlkZXYtPnN0YXRlID0gUEhZX1VQOwotCi0JcGh5X3N0YXJ0X21hY2hpbmUo cGh5ZGV2KTsKKwlpZiAocGh5ZGV2LT5hdHRhY2hlZF9kZXYgJiYgcGh5ZGV2LT5hZGp1c3RfbGlu aykKKwkJcGh5X3N0YXJ0X21hY2hpbmUocGh5ZGV2KTsKIAogCXJldHVybiAwOwogfQotLSAKMi4y MC4xCgoKRnJvbSAyYTVjYTVhMTU4YTRjMWQwYzcyNTNkZjY1NGE3YjJjMjllZjI3YjRlIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBDb25nIFdhbmcgPHhpeW91Lndhbmdjb25nQGdtYWls LmNvbT4KRGF0ZTogU2F0LCAyOSBEZWMgMjAxOCAxMzo1NjozOCAtMDgwMApTdWJqZWN0OiBbUEFU Q0ggMTgvNThdIG5ldHJvbTogZml4IGxvY2tpbmcgaW4gbnJfZmluZF9zb2NrZXQoKQoKWyBVcHN0 cmVhbSBjb21taXQgNzMxNGY1NDgwZjNlMzdlNTcwMTA0ZGM1ZTBmMjg4MjNlZjg0OWU3MiBdCgpu cl9maW5kX3NvY2tldCgpLCBucl9maW5kX3BlZXIoKSBhbmQgbnJfZmluZF9saXN0ZW5lcigpIGxv Y2sgdGhlCnNvY2sgYWZ0ZXIgZmluZGluZyBpdCBpbiB0aGUgZ2xvYmFsIGxpc3QuIEhvd2V2ZXIs IHRoZSBjYWxsIHBhdGgKcmVxdWlyZXMgQkggZGlzYWJsZWQgZm9yIHRoZSBzb2NrIGxvY2sgY29u c2lzdGVudGx5LgoKQWN0dWFsbHkgdGhlIGxvY2tpbmcgaXMgdW5uZWNlc3NhcnkgYXQgdGhpcyBw b2ludCwgd2UgY2FuIGp1c3QgaG9sZAp0aGUgc29jayByZWZjbnQgdG8gbWFrZSBzdXJlIGl0IGlz IG5vdCBnb25lIGFmdGVyIHdlIHVubG9jayB0aGUgZ2xvYmFsCmxpc3QsIGFuZCBsb2NrIGl0IGxh dGVyIG9ubHkgd2hlbiBuZWVkZWQuCgpSZXBvcnRlZC1hbmQtdGVzdGVkLWJ5OiBzeXpib3QrZjYy MWNkYThiN2U1OTg5MDhlZmFAc3l6a2FsbGVyLmFwcHNwb3RtYWlsLmNvbQpTaWduZWQtb2ZmLWJ5 OiBDb25nIFdhbmcgPHhpeW91Lndhbmdjb25nQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2 aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9uZXRyb20vYWZfbmV0 cm9tLmMgfCAxNSArKysrKysrKysrLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxMCBpbnNlcnRpb25z KCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9uZXRyb20vYWZfbmV0cm9tLmMg Yi9uZXQvbmV0cm9tL2FmX25ldHJvbS5jCmluZGV4IDAzZjM3YzRlNjRmZS4uMWQzMTQ0ZDE5OTAz IDEwMDY0NAotLS0gYS9uZXQvbmV0cm9tL2FmX25ldHJvbS5jCisrKyBiL25ldC9uZXRyb20vYWZf bmV0cm9tLmMKQEAgLTE1Myw3ICsxNTMsNyBAQCBzdGF0aWMgc3RydWN0IHNvY2sgKm5yX2ZpbmRf bGlzdGVuZXIoYXgyNV9hZGRyZXNzICphZGRyKQogCXNrX2Zvcl9lYWNoKHMsICZucl9saXN0KQog CQlpZiAoIWF4MjVjbXAoJm5yX3NrKHMpLT5zb3VyY2VfYWRkciwgYWRkcikgJiYKIAkJICAgIHMt PnNrX3N0YXRlID09IFRDUF9MSVNURU4pIHsKLQkJCWJoX2xvY2tfc29jayhzKTsKKwkJCXNvY2tf aG9sZChzKTsKIAkJCWdvdG8gZm91bmQ7CiAJCX0KIAlzID0gTlVMTDsKQEAgLTE3NCw3ICsxNzQs NyBAQCBzdGF0aWMgc3RydWN0IHNvY2sgKm5yX2ZpbmRfc29ja2V0KHVuc2lnbmVkIGNoYXIgaW5k ZXgsIHVuc2lnbmVkIGNoYXIgaWQpCiAJCXN0cnVjdCBucl9zb2NrICpuciA9IG5yX3NrKHMpOwog CiAJCWlmIChuci0+bXlfaW5kZXggPT0gaW5kZXggJiYgbnItPm15X2lkID09IGlkKSB7Ci0JCQli aF9sb2NrX3NvY2socyk7CisJCQlzb2NrX2hvbGQocyk7CiAJCQlnb3RvIGZvdW5kOwogCQl9CiAJ fQpAQCAtMTk4LDcgKzE5OCw3IEBAIHN0YXRpYyBzdHJ1Y3Qgc29jayAqbnJfZmluZF9wZWVyKHVu c2lnbmVkIGNoYXIgaW5kZXgsIHVuc2lnbmVkIGNoYXIgaWQsCiAKIAkJaWYgKG5yLT55b3VyX2lu ZGV4ID09IGluZGV4ICYmIG5yLT55b3VyX2lkID09IGlkICYmCiAJCSAgICAhYXgyNWNtcCgmbnIt PmRlc3RfYWRkciwgZGVzdCkpIHsKLQkJCWJoX2xvY2tfc29jayhzKTsKKwkJCXNvY2tfaG9sZChz KTsKIAkJCWdvdG8gZm91bmQ7CiAJCX0KIAl9CkBAIC0yMjQsNyArMjI0LDcgQEAgc3RhdGljIHVu c2lnbmVkIHNob3J0IG5yX2ZpbmRfbmV4dF9jaXJjdWl0KHZvaWQpCiAJCWlmIChpICE9IDAgJiYg aiAhPSAwKSB7CiAJCQlpZiAoKHNrPW5yX2ZpbmRfc29ja2V0KGksIGopKSA9PSBOVUxMKQogCQkJ CWJyZWFrOwotCQkJYmhfdW5sb2NrX3NvY2soc2spOworCQkJc29ja19wdXQoc2spOwogCQl9CiAK IAkJaWQrKzsKQEAgLTkyMCw2ICs5MjAsNyBAQCBpbnQgbnJfcnhfZnJhbWUoc3RydWN0IHNrX2J1 ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIAl9CiAKIAlpZiAoc2sgIT0gTlVMTCkg eworCQliaF9sb2NrX3NvY2soc2spOwogCQlza2JfcmVzZXRfdHJhbnNwb3J0X2hlYWRlcihza2Ip OwogCiAJCWlmIChmcmFtZXR5cGUgPT0gTlJfQ09OTkFDSyAmJiBza2ItPmxlbiA9PSAyMikKQEAg LTkyOSw2ICs5MzAsNyBAQCBpbnQgbnJfcnhfZnJhbWUoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3Ry dWN0IG5ldF9kZXZpY2UgKmRldikKIAogCQlyZXQgPSBucl9wcm9jZXNzX3J4X2ZyYW1lKHNrLCBz a2IpOwogCQliaF91bmxvY2tfc29jayhzayk7CisJCXNvY2tfcHV0KHNrKTsKIAkJcmV0dXJuIHJl dDsKIAl9CiAKQEAgLTk2MCwxMCArOTYyLDEyIEBAIGludCBucl9yeF9mcmFtZShzdHJ1Y3Qgc2tf YnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogCSAgICAobWFrZSA9IG5yX21ha2Vf bmV3KHNrKSkgPT0gTlVMTCkgewogCQlucl90cmFuc21pdF9yZWZ1c2FsKHNrYiwgMCk7CiAJCWlm IChzaykKLQkJCWJoX3VubG9ja19zb2NrKHNrKTsKKwkJCXNvY2tfcHV0KHNrKTsKIAkJcmV0dXJu IDA7CiAJfQogCisJYmhfbG9ja19zb2NrKHNrKTsKKwogCXdpbmRvdyA9IHNrYi0+ZGF0YVsyMF07 CiAKIAlza2ItPnNrICAgICAgICAgICAgID0gbWFrZTsKQEAgLTEwMTYsNiArMTAyMCw3IEBAIGlu dCBucl9yeF9mcmFtZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2 KQogCQlzay0+c2tfZGF0YV9yZWFkeShzayk7CiAKIAliaF91bmxvY2tfc29jayhzayk7CisJc29j a19wdXQoc2spOwogCiAJbnJfaW5zZXJ0X3NvY2tldChtYWtlKTsKIAotLSAKMi4yMC4xCgoKRnJv bSBkNzMzMWIwZmNhOGI3Zjg1ZGZjMzJjN2QwYzIyNjdhYzY5MWYyMzc2IE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBNeXVuZ2hvIEp1bmcgPG1oanVuZ2tAZ21haWwuY29tPgpEYXRlOiBU dWUsIDE4IERlYyAyMDE4IDA5OjAyOjI1IC0wODAwClN1YmplY3Q6IFtQQVRDSCAxOS81OF0gbmV0 L3NtYzogZml4IFRDUCBmYWxsYmFjayBzb2NrZXQgcmVsZWFzZQoKWyBVcHN0cmVhbSBjb21taXQg NzhhYmUzZDBkZmFkMTk2OTU5YjEyNDYwMDMzNjZlMjYxMDc3NWVhNiBdCgpjbGNzb2NrIGNhbiBi ZSByZWxlYXNlZCB3aGlsZSBrZXJuZWxfYWNjZXB0KCkgcmVmZXJlbmNlcyBpdCBpbiBUQ1AKbGlz dGVuIHdvcmtlci4gQWxzbywgY2xjc29jayBuZWVkcyB0byB3YWtlIHVwIGJlZm9yZSByZWxlYXNl ZCBpZiBUQ1AKZmFsbGJhY2sgaXMgdXNlZCBhbmQgdGhlIGNsY3NvY2sgaXMgYmxvY2tlZCBieSBh Y2NlcHQuIEFkZCBhIGxvY2sgdG8Kc2FmZWx5IHJlbGVhc2UgY2xjc29jayBhbmQgY2FsbCBrZXJu ZWxfc29ja19zaHV0ZG93bigpIHRvIHdha2UgdXAKY2xjc29jayBmcm9tIGFjY2VwdCBpbiBzbWNf cmVsZWFzZSgpLgoKUmVwb3J0ZWQtYnk6IHN5emJvdCswYmYyZTAxMjY5ZjEyNzRiNGIwM0BzeXpr YWxsZXIuYXBwc3BvdG1haWwuY29tClJlcG9ydGVkLWJ5OiBzeXpib3QrZTMxMzI4OTU2MzBmOTU3 MzA2YmNAc3l6a2FsbGVyLmFwcHNwb3RtYWlsLmNvbQpTaWduZWQtb2ZmLWJ5OiBNeXVuZ2hvIEp1 bmcgPG1oanVuZ2tAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRh dmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3NtYy9hZl9zbWMuYyB8IDE0ICsrKysrKysrKysr Ky0tCiBuZXQvc21jL3NtYy5oICAgIHwgIDQgKysrKwogMiBmaWxlcyBjaGFuZ2VkLCAxNiBpbnNl cnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9zbWMvYWZfc21jLmMg Yi9uZXQvc21jL2FmX3NtYy5jCmluZGV4IDgwZTIxMTlmMWM3MC4uMmI4Zjk1MjkwNjI3IDEwMDY0 NAotLS0gYS9uZXQvc21jL2FmX3NtYy5jCisrKyBiL25ldC9zbWMvYWZfc21jLmMKQEAgLTE0NSw4 ICsxNDUsMTQgQEAgc3RhdGljIGludCBzbWNfcmVsZWFzZShzdHJ1Y3Qgc29ja2V0ICpzb2NrKQog CQlzay0+c2tfc2h1dGRvd24gfD0gU0hVVERPV05fTUFTSzsKIAl9CiAJaWYgKHNtYy0+Y2xjc29j aykgeworCQlpZiAoc21jLT51c2VfZmFsbGJhY2sgJiYgc2stPnNrX3N0YXRlID09IFNNQ19MSVNU RU4pIHsKKwkJCS8qIHdha2UgdXAgY2xjc29jayBhY2NlcHQgKi8KKwkJCXJjID0ga2VybmVsX3Nv Y2tfc2h1dGRvd24oc21jLT5jbGNzb2NrLCBTSFVUX1JEV1IpOworCQl9CisJCW11dGV4X2xvY2so JnNtYy0+Y2xjc29ja19yZWxlYXNlX2xvY2spOwogCQlzb2NrX3JlbGVhc2Uoc21jLT5jbGNzb2Nr KTsKIAkJc21jLT5jbGNzb2NrID0gTlVMTDsKKwkJbXV0ZXhfdW5sb2NrKCZzbWMtPmNsY3NvY2tf cmVsZWFzZV9sb2NrKTsKIAl9CiAJaWYgKHNtYy0+dXNlX2ZhbGxiYWNrKSB7CiAJCWlmIChzay0+ c2tfc3RhdGUgIT0gU01DX0xJU1RFTiAmJiBzay0+c2tfc3RhdGUgIT0gU01DX0lOSVQpCkBAIC0y MDMsNiArMjA5LDcgQEAgc3RhdGljIHN0cnVjdCBzb2NrICpzbWNfc29ja19hbGxvYyhzdHJ1Y3Qg bmV0ICpuZXQsIHN0cnVjdCBzb2NrZXQgKnNvY2ssCiAJc3Bpbl9sb2NrX2luaXQoJnNtYy0+Y29u bi5zZW5kX2xvY2spOwogCXNrLT5za19wcm90LT5oYXNoKHNrKTsKIAlza19yZWZjbnRfZGVidWdf aW5jKHNrKTsKKwltdXRleF9pbml0KCZzbWMtPmNsY3NvY2tfcmVsZWFzZV9sb2NrKTsKIAogCXJl dHVybiBzazsKIH0KQEAgLTgxOCw3ICs4MjUsNyBAQCBzdGF0aWMgaW50IHNtY19jbGNzb2NrX2Fj Y2VwdChzdHJ1Y3Qgc21jX3NvY2sgKmxzbWMsIHN0cnVjdCBzbWNfc29jayAqKm5ld19zbWMpCiAJ c3RydWN0IHNvY2tldCAqbmV3X2NsY3NvY2sgPSBOVUxMOwogCXN0cnVjdCBzb2NrICpsc2sgPSAm bHNtYy0+c2s7CiAJc3RydWN0IHNvY2sgKm5ld19zazsKLQlpbnQgcmM7CisJaW50IHJjID0gLUVJ TlZBTDsKIAogCXJlbGVhc2Vfc29jayhsc2spOwogCW5ld19zayA9IHNtY19zb2NrX2FsbG9jKHNv Y2tfbmV0KGxzayksIE5VTEwsIGxzay0+c2tfcHJvdG9jb2wpOwpAQCAtODMxLDcgKzgzOCwxMCBA QCBzdGF0aWMgaW50IHNtY19jbGNzb2NrX2FjY2VwdChzdHJ1Y3Qgc21jX3NvY2sgKmxzbWMsIHN0 cnVjdCBzbWNfc29jayAqKm5ld19zbWMpCiAJfQogCSpuZXdfc21jID0gc21jX3NrKG5ld19zayk7 CiAKLQlyYyA9IGtlcm5lbF9hY2NlcHQobHNtYy0+Y2xjc29jaywgJm5ld19jbGNzb2NrLCAwKTsK KwltdXRleF9sb2NrKCZsc21jLT5jbGNzb2NrX3JlbGVhc2VfbG9jayk7CisJaWYgKGxzbWMtPmNs Y3NvY2spCisJCXJjID0ga2VybmVsX2FjY2VwdChsc21jLT5jbGNzb2NrLCAmbmV3X2NsY3NvY2ss IDApOworCW11dGV4X3VubG9jaygmbHNtYy0+Y2xjc29ja19yZWxlYXNlX2xvY2spOwogCWxvY2tf c29jayhsc2spOwogCWlmICAocmMgPCAwKQogCQlsc2stPnNrX2VyciA9IC1yYzsKZGlmZiAtLWdp dCBhL25ldC9zbWMvc21jLmggYi9uZXQvc21jL3NtYy5oCmluZGV4IDA4Nzg2YWNlNjAxMC4uNTcy MTQxNmQwNjA1IDEwMDY0NAotLS0gYS9uZXQvc21jL3NtYy5oCisrKyBiL25ldC9zbWMvc21jLmgK QEAgLTIxOSw2ICsyMTksMTAgQEAgc3RydWN0IHNtY19zb2NrIHsJCQkJLyogc21jIHNvY2sgY29u dGFpbmVyICovCiAJCQkJCQkgKiBzdGFydGVkLCB3YWl0aW5nIGZvciB1bnNlbnQKIAkJCQkJCSAq IGRhdGEgdG8gYmUgc2VudAogCQkJCQkJICovCisJc3RydWN0IG11dGV4ICAgICAgICAgICAgY2xj c29ja19yZWxlYXNlX2xvY2s7CisJCQkJCQkvKiBwcm90ZWN0cyBjbGNzb2NrIG9mIGEgbGlzdGVu CisJCQkJCQkgKiBzb2NrZXQKKwkJCQkJCSAqICovCiB9OwogCiBzdGF0aWMgaW5saW5lIHN0cnVj dCBzbWNfc29jayAqc21jX3NrKGNvbnN0IHN0cnVjdCBzb2NrICpzaykKLS0gCjIuMjAuMQoKCkZy b20gZjZkOWFmMGFjZTQ0YjQ4OTQ0ZjQ3M2U5ZTViYzFmNWNmZmFlYWJjNSBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogRGFuIENhcnBlbnRlciA8ZGFuLmNhcnBlbnRlckBvcmFjbGUuY29t PgpEYXRlOiBNb24sIDE3IERlYyAyMDE4IDExOjA2OjA2ICswMzAwClN1YmplY3Q6IFtQQVRDSCAy MC81OF0gbmV0OiBzdG1tYWM6IEZpeCBhbiBlcnJvciBjb2RlIGluIHByb2JlKCkKClsgVXBzdHJl YW0gY29tbWl0IGIyNjMyMmQyYWM2YzFjMTA4N2FmNzM4NTY1MzFiYjgzNmY2OTYzY2EgXQoKVGhl IGZ1bmN0aW9uIHNob3VsZCByZXR1cm4gYW4gZXJyb3IgaWYgY3JlYXRlX3NpbmdsZXRocmVhZF93 b3JrcXVldWUoKQpmYWlscy4KCkZpeGVzOiAzNDg3N2ExNWY3ODcgKCJuZXQ6IHN0bW1hYzogUmV3 b3JrIGFuZCBmaXggVFggVGltZW91dCBjb2RlIikKU2lnbmVkLW9mZi1ieTogRGFuIENhcnBlbnRl ciA8ZGFuLmNhcnBlbnRlckBvcmFjbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxs ZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNy by9zdG1tYWMvc3RtbWFjX21haW4uYyB8IDEgKwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9u KCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3Rt bWFjX21haW4uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19t YWluLmMKaW5kZXggOTllYTVjNGNlMjljLi4yMTAzYjg2NTcyNmEgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMKKysrIGIvZHJpdmVy cy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYwpAQCAtNDI0Nyw2ICs0 MjQ3LDcgQEAgaW50IHN0bW1hY19kdnJfcHJvYmUoc3RydWN0IGRldmljZSAqZGV2aWNlLAogCXBy aXYtPndxID0gY3JlYXRlX3NpbmdsZXRocmVhZF93b3JrcXVldWUoInN0bW1hY193cSIpOwogCWlm ICghcHJpdi0+d3EpIHsKIAkJZGV2X2Vycihwcml2LT5kZXZpY2UsICJmYWlsZWQgdG8gY3JlYXRl IHdvcmtxdWV1ZVxuIik7CisJCXJldCA9IC1FTk9NRU07CiAJCWdvdG8gZXJyb3Jfd3E7CiAJfQog Ci0tIAoyLjIwLjEKCgpGcm9tIDA2MmNjNmZkMjhhODJjOGRlZmEyZDJjY2Y5Y2EwZmZmNTc5ZmVi MTQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEdhbmVzaCBHb3VkYXIgPGdhbmVzaGdy QGNoZWxzaW8uY29tPgpEYXRlOiBXZWQsIDE5IERlYyAyMDE4IDE3OjE4OjIyICswNTMwClN1Ympl Y3Q6IFtQQVRDSCAyMS81OF0gbmV0L3RsczogYWxsb2NhdGUgdGxzIGNvbnRleHQgdXNpbmcgR0ZQ X0FUT01JQwoKWyBVcHN0cmVhbSBjb21taXQgYzZlYzE3OWEwMDgyZTJlNzZlM2E3MjA1MGMyYjk5 ZDNkMGYzZGEzZiBdCgpjcmVhdGVfY3R4IGNhbiBiZSBjYWxsZWQgZnJvbSBhdG9taWMgY29udGV4 dCwgaGVuY2UgdXNlCkdGUF9BVE9NSUMgaW5zdGVhZCBvZiBHRlBfS0VSTkVMLgoKWyAgMzk1Ljk2 MjU5OV0gQlVHOiBzbGVlcGluZyBmdW5jdGlvbiBjYWxsZWQgZnJvbSBpbnZhbGlkIGNvbnRleHQg YXQgbW0vc2xhYi5oOjQyMQpbICAzOTUuOTc5ODk2XSBpbl9hdG9taWMoKTogMSwgaXJxc19kaXNh YmxlZCgpOiAwLCBwaWQ6IDE2MjU0LCBuYW1lOiBvcGVuc3NsClsgIDM5NS45OTY1NjRdIDIgbG9j a3MgaGVsZCBieSBvcGVuc3NsLzE2MjU0OgpbICAzOTYuMDEwNDkyXSAgIzA6IDAwMDAwMDAwMzQ3 YWNiNTIgKHNrX2xvY2stQUZfSU5FVCl7Ky4rLn0sIGF0OiBkb190Y3Bfc2V0c29ja29wdC5pc3Jh LjQ0KzB4MTNiLzB4OWEwClsgIDM5Ni4wMjk4MzhdICAjMTogMDAwMDAwMDA2Yzk1NTJiNSAoZGV2 aWNlX3NwaW5sb2NrKXsrLi4ufSwgYXQ6IHRsc19pbml0KzB4MWQvMHgyODAKWyAgMzk2LjA0NzY3 NV0gQ1BVOiA1IFBJRDogMTYyNTQgQ29tbTogb3BlbnNzbCBUYWludGVkOiBHICAgICAgICAgICBP ICAgICAgNC4yMC4wLXJjNisgIzI1ClsgIDM5Ni4wNjYwMTldIEhhcmR3YXJlIG5hbWU6IFN1cGVy bWljcm8gWDEwU1JBLUYvWDEwU1JBLUYsIEJJT1MgMi4wYyAwOS8yNS8yMDE3ClsgIDM5Ni4wODM1 MzddIENhbGwgVHJhY2U6ClsgIDM5Ni4wOTYyNjVdICBkdW1wX3N0YWNrKzB4NWUvMHg4YgpbICAz OTYuMTA5ODc2XSAgX19fbWlnaHRfc2xlZXArMHgyMTYvMHgyNTAKWyAgMzk2LjEyMzk0MF0gIGtt ZW1fY2FjaGVfYWxsb2NfdHJhY2UrMHgxYjAvMHgyNDAKWyAgMzk2LjEzODgwMF0gIGNyZWF0ZV9j dHgrMHgxZi8weDYwClsgIDM5Ni4xNTI1MDRdICB0bHNfaW5pdCsweGJkLzB4MjgwClsgIDM5Ni4x NjYxMzVdICB0Y3Bfc2V0X3VscCsweDE5MS8weDJkMApbICAzOTYuMTgwMDM1XSAgPyB0Y3Bfc2V0 X3VscCsweDJjLzB4MmQwClsgIDM5Ni4xOTM5NjBdICBkb190Y3Bfc2V0c29ja29wdC5pc3JhLjQ0 KzB4MTQ4LzB4OWEwClsgIDM5Ni4yMDkwMTNdICBfX3N5c19zZXRzb2Nrb3B0KzB4N2MvMHhlMApb ICAzOTYuMjIzMDU0XSAgX194NjRfc3lzX3NldHNvY2tvcHQrMHgyMC8weDMwClsgIDM5Ni4yMzcz NzhdICBkb19zeXNjYWxsXzY0KzB4NGEvMHgxODAKWyAgMzk2LjI1MTIwMF0gIGVudHJ5X1NZU0NB TExfNjRfYWZ0ZXJfaHdmcmFtZSsweDQ5LzB4YmUKCkZpeGVzOiBkZjlkNGExNzgwMjIgKCJuZXQv dGxzOiBzbGVlcGluZyBmdW5jdGlvbiBmcm9tIGludmFsaWQgY29udGV4dCIpClNpZ25lZC1vZmYt Ynk6IEdhbmVzaCBHb3VkYXIgPGdhbmVzaGdyQGNoZWxzaW8uY29tPgpTaWduZWQtb2ZmLWJ5OiBE YXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3Rscy90bHNfbWFp bi5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0p CgpkaWZmIC0tZ2l0IGEvbmV0L3Rscy90bHNfbWFpbi5jIGIvbmV0L3Rscy90bHNfbWFpbi5jCmlu ZGV4IDUyMzYyMmRjNzRmOC4uN2ZhYjI4OTFjZTdmIDEwMDY0NAotLS0gYS9uZXQvdGxzL3Rsc19t YWluLmMKKysrIGIvbmV0L3Rscy90bHNfbWFpbi5jCkBAIC01NTAsNyArNTUwLDcgQEAgc3RhdGlj IHN0cnVjdCB0bHNfY29udGV4dCAqY3JlYXRlX2N0eChzdHJ1Y3Qgc29jayAqc2spCiAJc3RydWN0 IGluZXRfY29ubmVjdGlvbl9zb2NrICppY3NrID0gaW5ldF9jc2soc2spOwogCXN0cnVjdCB0bHNf Y29udGV4dCAqY3R4OwogCi0JY3R4ID0ga3phbGxvYyhzaXplb2YoKmN0eCksIEdGUF9LRVJORUwp OworCWN0eCA9IGt6YWxsb2Moc2l6ZW9mKCpjdHgpLCBHRlBfQVRPTUlDKTsKIAlpZiAoIWN0eCkK IAkJcmV0dXJuIE5VTEw7CiAKLS0gCjIuMjAuMQoKCkZyb20gMmRlMWQ4NjE0ZTFlYTIwZjAwZjYy ZjlhZTcyM2RmZGEyODgyMzEyZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQ29uZyBX YW5nIDx4aXlvdS53YW5nY29uZ0BnbWFpbC5jb20+CkRhdGU6IFNhdCwgMjkgRGVjIDIwMTggMTM6 NTY6MzcgLTA4MDAKU3ViamVjdDogW1BBVENIIDIyLzU4XSBuZXQvd2FuOiBmaXggYSBkb3VibGUg ZnJlZSBpbiB4MjVfYXN5X29wZW5fdHR5KCkKClsgVXBzdHJlYW0gY29tbWl0IGQ1YzdjNzQ1ZjI1 NGM2Y2I5OGIzYjNmMTVmZTc4OWI4YmQ3NzBjNzIgXQoKV2hlbiB4MjVfYXN5X29wZW4oKSBmYWls cywgaXQgYWxyZWFkeSBjbGVhbnMgdXAgYnkgaXRzZWxmLApzbyBpdHMgY2FsbGVyIGRvZXNuJ3Qg bmVlZCB0byBmcmVlIHRoZSBtZW1vcnkgYWdhaW4uCgpJdCBzZWVtcyB3ZSBzdGlsbCBoYXZlIHRv IGNhbGwgeDI1X2FzeV9mcmVlKCkgdG8gY2xlYXIgdGhlIFNMRl9JTlVTRQpiaXQsIHNvIGp1c3Qg c2V0IHRoZXNlIHBvaW50ZXJzIHRvIE5VTEwgYWZ0ZXIga2ZyZWUoKS4KClJlcG9ydGVkLWFuZC10 ZXN0ZWQtYnk6IHN5emJvdCs1ZTVlOTY5ZTUyNTEyOTIyOTA1MkBzeXprYWxsZXIuYXBwc3BvdG1h aWwuY29tCkZpeGVzOiAzYjc4MGJlZDMxMzggKCJ4MjVfYXN5OiBGcmVlIHgyNV9hc3kgb24geDI1 X2FzeV9vcGVuKCkgZmFpbHVyZS4iKQpTaWduZWQtb2ZmLWJ5OiBDb25nIFdhbmcgPHhpeW91Lndh bmdjb25nQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBk YXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L3dhbi94MjVfYXN5LmMgfCAyICsrCiAxIGZp bGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2Fu L3gyNV9hc3kuYyBiL2RyaXZlcnMvbmV0L3dhbi94MjVfYXN5LmMKaW5kZXggNzRjMDZhNWY1ODZm Li40ZjI1YzJkOGZmZjAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dhbi94MjVfYXN5LmMKKysr IGIvZHJpdmVycy9uZXQvd2FuL3gyNV9hc3kuYwpAQCAtNDg2LDggKzQ4NiwxMCBAQCBzdGF0aWMg aW50IHgyNV9hc3lfb3BlbihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogCiAJLyogQ2xlYW51cCAq LwogCWtmcmVlKHNsLT54YnVmZik7CisJc2wtPnhidWZmID0gTlVMTDsKIG5veGJ1ZmY6CiAJa2Zy ZWUoc2wtPnJidWZmKTsKKwlzbC0+cmJ1ZmYgPSBOVUxMOwogbm9yYnVmZjoKIAlyZXR1cm4gLUVO T01FTTsKIH0KLS0gCjIuMjAuMQoKCkZyb20gZmEzYjA0OGVlODk1NDUyODgzYjhkOWFiYzhjMDA3 ZGU3NTMzNjNlYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogV2lsbGVtIGRlIEJydWlq biA8d2lsbGVtYkBnb29nbGUuY29tPgpEYXRlOiBGcmksIDIxIERlYyAyMDE4IDEyOjA2OjU5IC0w NTAwClN1YmplY3Q6IFtQQVRDSCAyMy81OF0gcGFja2V0OiB2YWxpZGF0ZSBhZGRyZXNzIGxlbmd0 aAoKWyBVcHN0cmVhbSBjb21taXQgOTkxMzdiNzg4OGY0MDU4MDg3ODk1ZDAzNWQ4MWM2YjJkMzEw MTVjNSBdCgpQYWNrZXQgc29ja2V0cyB3aXRoIFNPQ0tfREdSQU0gbWF5IHBhc3MgYW4gYWRkcmVz cyBmb3IgdXNlIGluCmRldl9oYXJkX2hlYWRlci4gRW5zdXJlIHRoYXQgaXQgaXMgb2Ygc3VmZmlj aWVudCBsZW5ndGguCgpSZXBvcnRlZC1ieTogc3l6Ym90IDxzeXprYWxsZXJAZ29vZ2xlZ3JvdXBz LmNvbT4KU2lnbmVkLW9mZi1ieTogV2lsbGVtIGRlIEJydWlqbiA8d2lsbGVtYkBnb29nbGUuY29t PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0t LQogbmV0L3BhY2tldC9hZl9wYWNrZXQuYyB8IDQgKysrKwogMSBmaWxlIGNoYW5nZWQsIDQgaW5z ZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL25ldC9wYWNrZXQvYWZfcGFja2V0LmMgYi9uZXQvcGFj a2V0L2FmX3BhY2tldC5jCmluZGV4IDY0NzdiMTMxZTgwOS4uNDI1MTY5Y2M1YjI2IDEwMDY0NAot LS0gYS9uZXQvcGFja2V0L2FmX3BhY2tldC5jCisrKyBiL25ldC9wYWNrZXQvYWZfcGFja2V0LmMK QEAgLTI2MjcsNiArMjYyNyw4IEBAIHN0YXRpYyBpbnQgdHBhY2tldF9zbmQoc3RydWN0IHBhY2tl dF9zb2NrICpwbywgc3RydWN0IG1zZ2hkciAqbXNnKQogCQlwcm90bwk9IHNhZGRyLT5zbGxfcHJv dG9jb2w7CiAJCWFkZHIJPSBzYWRkci0+c2xsX2FkZHI7CiAJCWRldiA9IGRldl9nZXRfYnlfaW5k ZXgoc29ja19uZXQoJnBvLT5zayksIHNhZGRyLT5zbGxfaWZpbmRleCk7CisJCWlmIChhZGRyICYm IGRldiAmJiBzYWRkci0+c2xsX2hhbGVuIDwgZGV2LT5hZGRyX2xlbikKKwkJCWdvdG8gb3V0Owog CX0KIAogCWVyciA9IC1FTlhJTzsKQEAgLTI4MjUsNiArMjgyNyw4IEBAIHN0YXRpYyBpbnQgcGFj a2V0X3NuZChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3QgbXNnaGRyICptc2csIHNpemVfdCBs ZW4pCiAJCXByb3RvCT0gc2FkZHItPnNsbF9wcm90b2NvbDsKIAkJYWRkcgk9IHNhZGRyLT5zbGxf YWRkcjsKIAkJZGV2ID0gZGV2X2dldF9ieV9pbmRleChzb2NrX25ldChzayksIHNhZGRyLT5zbGxf aWZpbmRleCk7CisJCWlmIChhZGRyICYmIGRldiAmJiBzYWRkci0+c2xsX2hhbGVuIDwgZGV2LT5h ZGRyX2xlbikKKwkJCWdvdG8gb3V0OwogCX0KIAogCWVyciA9IC1FTlhJTzsKLS0gCjIuMjAuMQoK CkZyb20gYWM2ZmMzOTk1MzNkOGVmMDJkOGM4ZWY3M2FiYTFiZDlhMTdkODNkYyBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogV2lsbGVtIGRlIEJydWlqbiA8d2lsbGVtYkBnb29nbGUuY29t PgpEYXRlOiBTYXQsIDIyIERlYyAyMDE4IDE2OjUzOjQ1IC0wNTAwClN1YmplY3Q6IFtQQVRDSCAy NC81OF0gcGFja2V0OiB2YWxpZGF0ZSBhZGRyZXNzIGxlbmd0aCBpZiBub24temVybwoKWyBVcHN0 cmVhbSBjb21taXQgNmI4ZDk1ZjE3OTVjNDIxNjFkYzA5ODRiNjg2M2U5NWQ2YWNmMjRlZCBdCgpW YWxpZGF0ZSBwYWNrZXQgc29ja2V0IGFkZHJlc3MgbGVuZ3RoIGlmIGEgbGVuZ3RoIGlzIGdpdmVu LiBaZXJvCmxlbmd0aCBpcyBlcXVpdmFsZW50IHRvIG5vdCBzZXR0aW5nIGFuIGFkZHJlc3MuCgpG aXhlczogOTkxMzdiNzg4OGY0ICgicGFja2V0OiB2YWxpZGF0ZSBhZGRyZXNzIGxlbmd0aCIpClJl cG9ydGVkLWJ5OiBJZG8gU2NoaW1tZWwgPGlkb3NjaEBpZG9zY2gub3JnPgpTaWduZWQtb2ZmLWJ5 OiBXaWxsZW0gZGUgQnJ1aWpuIDx3aWxsZW1iQGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERh dmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvcGFja2V0L2FmX3Bh Y2tldC5jIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9wYWNrZXQvYWZfcGFja2V0LmMgYi9uZXQvcGFja2V0 L2FmX3BhY2tldC5jCmluZGV4IDQyNTE2OWNjNWIyNi4uMDU0MWNmYzkzNDQwIDEwMDY0NAotLS0g YS9uZXQvcGFja2V0L2FmX3BhY2tldC5jCisrKyBiL25ldC9wYWNrZXQvYWZfcGFja2V0LmMKQEAg LTI2MjUsNyArMjYyNSw3IEBAIHN0YXRpYyBpbnQgdHBhY2tldF9zbmQoc3RydWN0IHBhY2tldF9z b2NrICpwbywgc3RydWN0IG1zZ2hkciAqbXNnKQogCQkJCQkJc2xsX2FkZHIpKSkKIAkJCWdvdG8g b3V0OwogCQlwcm90bwk9IHNhZGRyLT5zbGxfcHJvdG9jb2w7Ci0JCWFkZHIJPSBzYWRkci0+c2xs X2FkZHI7CisJCWFkZHIJPSBzYWRkci0+c2xsX2hhbGVuID8gc2FkZHItPnNsbF9hZGRyIDogTlVM TDsKIAkJZGV2ID0gZGV2X2dldF9ieV9pbmRleChzb2NrX25ldCgmcG8tPnNrKSwgc2FkZHItPnNs bF9pZmluZGV4KTsKIAkJaWYgKGFkZHIgJiYgZGV2ICYmIHNhZGRyLT5zbGxfaGFsZW4gPCBkZXYt PmFkZHJfbGVuKQogCQkJZ290byBvdXQ7CkBAIC0yODI1LDcgKzI4MjUsNyBAQCBzdGF0aWMgaW50 IHBhY2tldF9zbmQoc3RydWN0IHNvY2tldCAqc29jaywgc3RydWN0IG1zZ2hkciAqbXNnLCBzaXpl X3QgbGVuKQogCQlpZiAobXNnLT5tc2dfbmFtZWxlbiA8IChzYWRkci0+c2xsX2hhbGVuICsgb2Zm c2V0b2Yoc3RydWN0IHNvY2thZGRyX2xsLCBzbGxfYWRkcikpKQogCQkJZ290byBvdXQ7CiAJCXBy b3RvCT0gc2FkZHItPnNsbF9wcm90b2NvbDsKLQkJYWRkcgk9IHNhZGRyLT5zbGxfYWRkcjsKKwkJ YWRkcgk9IHNhZGRyLT5zbGxfaGFsZW4gPyBzYWRkci0+c2xsX2FkZHIgOiBOVUxMOwogCQlkZXYg PSBkZXZfZ2V0X2J5X2luZGV4KHNvY2tfbmV0KHNrKSwgc2FkZHItPnNsbF9pZmluZGV4KTsKIAkJ aWYgKGFkZHIgJiYgZGV2ICYmIHNhZGRyLT5zbGxfaGFsZW4gPCBkZXYtPmFkZHJfbGVuKQogCQkJ Z290byBvdXQ7Ci0tIAoyLjIwLjEKCgpGcm9tIDI5NTcwYjJjMDFiMTk2YmE3ZjhhMTA3YjQ3ODI0 NzIxNGI2NmQwMzEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ICJHdXN0YXZvIEEuIFIu IFNpbHZhIiA8Z3VzdGF2b0BlbWJlZGRlZG9yLmNvbT4KRGF0ZTogRnJpLCAyMSBEZWMgMjAxOCAx NTo0MToxNyAtMDYwMApTdWJqZWN0OiBbUEFUQ0ggMjUvNThdIHBob25ldDogYWZfcGhvbmV0OiBG aXggU3BlY3RyZSB2MSB2dWxuZXJhYmlsaXR5CgpbIFVwc3RyZWFtIGNvbW1pdCBkNjg2MDI2YjFl NmVkNGVhMjdkNjMwZDhmNTRmOWE2OTRkYjA4OGIyIF0KCnByb3RvY29sIGlzIGluZGlyZWN0bHkg Y29udHJvbGxlZCBieSB1c2VyLXNwYWNlLCBoZW5jZSBsZWFkaW5nIHRvCmEgcG90ZW50aWFsIGV4 cGxvaXRhdGlvbiBvZiB0aGUgU3BlY3RyZSB2YXJpYW50IDEgdnVsbmVyYWJpbGl0eS4KClRoaXMg aXNzdWUgd2FzIGRldGVjdGVkIHdpdGggdGhlIGhlbHAgb2YgU21hdGNoOgoKbmV0L3Bob25ldC9h Zl9waG9uZXQuYzo0OCBwaG9uZXRfcHJvdG9fZ2V0KCkgd2FybjogcG90ZW50aWFsIHNwZWN0cmUg aXNzdWUgJ3Byb3RvX3RhYicgW3ddIChsb2NhbCBjYXApCgpGaXggdGhpcyBieSBzYW5pdGl6aW5n IHByb3RvY29sIGJlZm9yZSB1c2luZyBpdCB0byBpbmRleCBwcm90b190YWIuCgpOb3RpY2UgdGhh dCBnaXZlbiB0aGF0IHNwZWN1bGF0aW9uIHdpbmRvd3MgYXJlIGxhcmdlLCB0aGUgcG9saWN5IGlz CnRvIGtpbGwgdGhlIHNwZWN1bGF0aW9uIG9uIHRoZSBmaXJzdCBsb2FkIGFuZCBub3Qgd29ycnkg aWYgaXQgY2FuIGJlCmNvbXBsZXRlZCB3aXRoIGEgZGVwZW5kZW50IGxvYWQvc3RvcmUgWzFdLgoK WzFdIGh0dHBzOi8vbWFyYy5pbmZvLz9sPWxpbnV4LWtlcm5lbCZtPTE1MjQ0OTEzMTExNDc3OCZ3 PTIKClNpZ25lZC1vZmYtYnk6IEd1c3Rhdm8gQS4gUi4gU2lsdmEgPGd1c3Rhdm9AZW1iZWRkZWRv ci5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5l dD4KLS0tCiBuZXQvcGhvbmV0L2FmX3Bob25ldC5jIHwgMyArKysKIDEgZmlsZSBjaGFuZ2VkLCAz IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9uZXQvcGhvbmV0L2FmX3Bob25ldC5jIGIvbmV0 L3Bob25ldC9hZl9waG9uZXQuYwppbmRleCAzYjBlZjY5MWY1YjEuLmQ0YjJhYmQ3ODg1OCAxMDA2 NDQKLS0tIGEvbmV0L3Bob25ldC9hZl9waG9uZXQuYworKysgYi9uZXQvcGhvbmV0L2FmX3Bob25l dC5jCkBAIC0zNCw2ICszNCw4IEBACiAjaW5jbHVkZSA8bmV0L3Bob25ldC9waG9uZXQuaD4KICNp bmNsdWRlIDxuZXQvcGhvbmV0L3BuX2Rldi5oPgogCisjaW5jbHVkZSA8bGludXgvbm9zcGVjLmg+ CisKIC8qIFRyYW5zcG9ydCBwcm90b2NvbCByZWdpc3RyYXRpb24gKi8KIHN0YXRpYyBjb25zdCBz dHJ1Y3QgcGhvbmV0X3Byb3RvY29sICpwcm90b190YWJbUEhPTkVUX05QUk9UT10gX19yZWFkX21v c3RseTsKIApAQCAtNDMsNiArNDUsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHBob25ldF9wcm90 b2NvbCAqcGhvbmV0X3Byb3RvX2dldCh1bnNpZ25lZCBpbnQgcHJvdG9jb2wpCiAKIAlpZiAocHJv dG9jb2wgPj0gUEhPTkVUX05QUk9UTykKIAkJcmV0dXJuIE5VTEw7CisJcHJvdG9jb2wgPSBhcnJh eV9pbmRleF9ub3NwZWMocHJvdG9jb2wsIFBIT05FVF9OUFJPVE8pOwogCiAJcmN1X3JlYWRfbG9j aygpOwogCXBwID0gcmN1X2RlcmVmZXJlbmNlKHByb3RvX3RhYltwcm90b2NvbF0pOwotLSAKMi4y MC4xCgoKRnJvbSBiNGQxYTNiOTk0YzBlOTBlNzZmNjA4N2UzYmNiOGYxOWQ4OTNlZjgwIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBDb25nIFdhbmcgPHhpeW91Lndhbmdjb25nQGdtYWls LmNvbT4KRGF0ZTogU3VuLCAzMCBEZWMgMjAxOCAxMjo0Mzo0MiAtMDgwMApTdWJqZWN0OiBbUEFU Q0ggMjYvNThdIHB0cl9yaW5nOiB3cmFwIGJhY2sgLT5wcm9kdWNlciBpbgogX19wdHJfcmluZ19z d2FwX3F1ZXVlKCkKClsgVXBzdHJlYW0gY29tbWl0IGFmZjZkYjQ1NDU5OWQ2MjE5MWFhYmMyMDg5 MzBlODkxNzQ4ZTQzMjIgXQoKX19wdHJfcmluZ19zd2FwX3F1ZXVlKCkgdHJpZXMgdG8gbW92ZSBw b2ludGVycyBmcm9tIHRoZSBvbGQKcmluZyB0byB0aGUgbmV3IG9uZSwgYnV0IGl0IGZvcmdldHMg dG8gY2hlY2sgaWYgLT5wcm9kdWNlcgppcyBiZXlvbmQgdGhlIG5ldyBzaXplIGF0IHRoZSBlbmQg b2YgdGhlIG9wZXJhdGlvbi4gVGhpcyBsZWFkcwp0byBhbiBvdXQtb2YtYm91bmQgYWNjZXNzIGlu IF9fcHRyX3JpbmdfcHJvZHVjZSgpIGFzIHJlcG9ydGVkCmJ5IHN5emJvdC4KClJlcG9ydGVkLWJ5 OiBzeXpib3QrODk5M2MwZmE5NmQ1N2MzOTk3MzVAc3l6a2FsbGVyLmFwcHNwb3RtYWlsLmNvbQpG aXhlczogNWQ0OWRlNTMyMDAyICgicHRyX3Jpbmc6IHJlc2l6ZSBzdXBwb3J0IikKQ2M6ICJNaWNo YWVsIFMuIFRzaXJraW4iIDxtc3RAcmVkaGF0LmNvbT4KQ2M6IEpvaG4gRmFzdGFiZW5kIDxqb2hu LmZhc3RhYmVuZEBnbWFpbC5jb20+CkNjOiBKYXNvbiBXYW5nIDxqYXNvd2FuZ0ByZWRoYXQuY29t PgpTaWduZWQtb2ZmLWJ5OiBDb25nIFdhbmcgPHhpeW91Lndhbmdjb25nQGdtYWlsLmNvbT4KQWNr ZWQtYnk6IE1pY2hhZWwgUy4gVHNpcmtpbiA8bXN0QHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6 IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNsdWRlL2xpbnV4 L3B0cl9yaW5nLmggfCAyICsrCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspCgpkaWZm IC0tZ2l0IGEvaW5jbHVkZS9saW51eC9wdHJfcmluZy5oIGIvaW5jbHVkZS9saW51eC9wdHJfcmlu Zy5oCmluZGV4IDY4OTQ5NzZiNTRlMy4uMTg2Y2Q4ZTk3MGM3IDEwMDY0NAotLS0gYS9pbmNsdWRl L2xpbnV4L3B0cl9yaW5nLmgKKysrIGIvaW5jbHVkZS9saW51eC9wdHJfcmluZy5oCkBAIC01NzMs NiArNTczLDggQEAgc3RhdGljIGlubGluZSB2b2lkICoqX19wdHJfcmluZ19zd2FwX3F1ZXVlKHN0 cnVjdCBwdHJfcmluZyAqciwgdm9pZCAqKnF1ZXVlLAogCQllbHNlIGlmIChkZXN0cm95KQogCQkJ ZGVzdHJveShwdHIpOwogCisJaWYgKHByb2R1Y2VyID49IHNpemUpCisJCXByb2R1Y2VyID0gMDsK IAlfX3B0cl9yaW5nX3NldF9zaXplKHIsIHNpemUpOwogCXItPnByb2R1Y2VyID0gcHJvZHVjZXI7 CiAJci0+Y29uc3VtZXJfaGVhZCA9IDA7Ci0tIAoyLjIwLjEKCgpGcm9tIDBjNDZjMzhhMjg3MTYy ZDk5NGZiMWI2ODc2YjQ5ZWRjNmFlNmM5NjEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 ID0/VVRGLTg/cT9KPUMzPUI2cmdlbj0yMFN0b3J2aXN0Pz0gPGpvcmdlbi5zdG9ydmlzdEBnbWFp bC5jb20+CkRhdGU6IFdlZCwgMTIgRGVjIDIwMTggMjI6NDU6MzQgKzAxMDAKU3ViamVjdDogW1BB VENIIDI3LzU4XSBxbWlfd3dhbjogQWRkZWQgc3VwcG9ydCBmb3IgRmlib2NvbSBOTDY2OCBzZXJp ZXMKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVU Ri04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKClsgVXBzdHJlYW0gY29tbWl0IDEx MGExY2MyOGJjMzgzYWRiNDg4NWVmZjI3ZTE4YzYxZGRlYmZmYjQgXQoKQWRkZWQgc3VwcG9ydCBm b3IgRmlib2NvbSBOTDY2OCBzZXJpZXMgUU1JIGludGVyZmFjZS4KVXNpbmcgUU1JX1FVSVJLX1NF VF9EVFIgcmVxdWlyZWQgZm9yIFF1YWxjb21tIE1ETTl4MDcgY2hpcHNldHMuCgpTaWduZWQtb2Zm LWJ5OiBKw7ZyZ2VuIFN0b3J2aXN0IDxqb3JnZW4uc3RvcnZpc3RAZ21haWwuY29tPgpTaWduZWQt b2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVy cy9uZXQvdXNiL3FtaV93d2FuLmMgfCAxICsKIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigr KQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3VzYi9xbWlfd3dhbi5jIGIvZHJpdmVycy9uZXQv dXNiL3FtaV93d2FuLmMKaW5kZXggNzJhNTViNmI0MjExLi5kYWRhNjhmMjc5YmMgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvbmV0L3VzYi9xbWlfd3dhbi5jCisrKyBiL2RyaXZlcnMvbmV0L3VzYi9xbWlf d3dhbi5jCkBAIC0xMTE3LDYgKzExMTcsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHVzYl9kZXZp Y2VfaWQgcHJvZHVjdHNbXSA9IHsKIAl7UU1JX0ZJWEVEX0lOVEYoMHgxNDM1LCAweGQxODEsIDQp fSwJLyogV2lzdHJvbiBOZVdlYiBEMThRMSAqLwogCXtRTUlfRklYRURfSU5URigweDE0MzUsIDB4 ZDE4MSwgNSl9LAkvKiBXaXN0cm9uIE5lV2ViIEQxOFExICovCiAJe1FNSV9GSVhFRF9JTlRGKDB4 MTQzNSwgMHhkMTkxLCA0KX0sCS8qIFdpc3Ryb24gTmVXZWIgRDE5UTEgKi8KKwl7UU1JX1FVSVJL X1NFVF9EVFIoMHgxNTA4LCAweDEwMDEsIDQpfSwJLyogRmlib2NvbSBOTDY2OCBzZXJpZXMgKi8K IAl7UU1JX0ZJWEVEX0lOVEYoMHgxNmQ4LCAweDYwMDMsIDApfSwJLyogQ01PVGVjaCA2MDAzICov CiAJe1FNSV9GSVhFRF9JTlRGKDB4MTZkOCwgMHg2MDA3LCAwKX0sCS8qIENNT1RlY2ggQ0hFLTYy OFMgKi8KIAl7UU1JX0ZJWEVEX0lOVEYoMHgxNmQ4LCAweDYwMDgsIDApfSwJLyogQ01PVGVjaCBD TVUtMzAxICovCi0tIAoyLjIwLjEKCgpGcm9tIDhmNGQ4NjIzYzFiYmY3MDAyODAxMzhkZDUzOTYw MjIwYTI3Zjg0ZTkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT9KPUMz PUI2cmdlbj0yMFN0b3J2aXN0Pz0gPGpvcmdlbi5zdG9ydmlzdEBnbWFpbC5jb20+CkRhdGU6IFRo dSwgMTMgRGVjIDIwMTggMTc6MDA6MzUgKzAxMDAKU3ViamVjdDogW1BBVENIIDI4LzU4XSBxbWlf d3dhbjogQWRkZWQgc3VwcG9ydCBmb3IgVGVsaXQgTE45NDAgc2VyaWVzCk1JTUUtVmVyc2lvbjog MS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5z ZmVyLUVuY29kaW5nOiA4Yml0CgpbIFVwc3RyZWFtIGNvbW1pdCAxOTg2YWYxNmU4ZWQzNTU4MjI2 MDBjMjRiM2QyZjBiZTQ2YjU3M2RmIF0KCkFkZGVkIHN1cHBvcnQgZm9yIHRoZSBUZWxpdCBMTjk0 MCBzZXJpZXMgY2VsbHVsYXIgbW9kdWxlcyBRTUkgaW50ZXJmYWNlLgpRTUlfUVVJUktfU0VUX0RU UiBxdWlyayByZXF1aWVkIGZvciBRdWFsY29tbSBNRE05eDQwIGNoaXBzZXQuCgpTaWduZWQtb2Zm LWJ5OiBKw7ZyZ2VuIFN0b3J2aXN0IDxqb3JnZW4uc3RvcnZpc3RAZ21haWwuY29tPgpBY2tlZC1i eTogQmrDuHJuIE1vcmsgPGJqb3JuQG1vcmsubm8+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1p bGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC91c2IvcW1pX3d3YW4u YyB8IDEgKwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCgpkaWZmIC0tZ2l0IGEvZHJp dmVycy9uZXQvdXNiL3FtaV93d2FuLmMgYi9kcml2ZXJzL25ldC91c2IvcW1pX3d3YW4uYwppbmRl eCBkYWRhNjhmMjc5YmMuLmM4ODcyZGQ1ZmY1ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvdXNi L3FtaV93d2FuLmMKKysrIGIvZHJpdmVycy9uZXQvdXNiL3FtaV93d2FuLmMKQEAgLTEyMzAsNiAr MTIzMCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCBwcm9kdWN0c1tdID0g ewogCXtRTUlfRklYRURfSU5URigweDFiYzcsIDB4MTEwMSwgMyl9LAkvKiBUZWxpdCBNRTkxMCBk dWFsIG1vZGVtICovCiAJe1FNSV9GSVhFRF9JTlRGKDB4MWJjNywgMHgxMjAwLCA1KX0sCS8qIFRl bGl0IExFOTIwICovCiAJe1FNSV9RVUlSS19TRVRfRFRSKDB4MWJjNywgMHgxMjAxLCAyKX0sCS8q IFRlbGl0IExFOTIwLCBMRTkyMEE0ICovCisJe1FNSV9RVUlSS19TRVRfRFRSKDB4MWJjNywgMHgx OTAwLCAxKX0sCS8qIFRlbGl0IExOOTQwIHNlcmllcyAqLwogCXtRTUlfRklYRURfSU5URigweDFj OWUsIDB4OTgwMSwgMyl9LAkvKiBUZWxld2VsbCBUVy0zRyBIU1BBKyAqLwogCXtRTUlfRklYRURf SU5URigweDFjOWUsIDB4OTgwMywgNCl9LAkvKiBUZWxld2VsbCBUVy0zRyBIU1BBKyAqLwogCXtR TUlfRklYRURfSU5URigweDFjOWUsIDB4OWIwMSwgMyl9LAkvKiBYUyBTdGljayBXMTAwLTIgZnJv bSA0RyBTeXN0ZW1zICovCi0tIAoyLjIwLjEKCgpGcm9tIDQyMzkzNmY5M2E4Y2YyNDExOTIyMTQ5 MGY2ZDg3Mzc2NWE0YTcxNDQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/ cT9KPUMzPUI2cmdlbj0yMFN0b3J2aXN0Pz0gPGpvcmdlbi5zdG9ydmlzdEBnbWFpbC5jb20+CkRh dGU6IEZyaSwgMjEgRGVjIDIwMTggMTU6Mzg6NTIgKzAxMDAKU3ViamVjdDogW1BBVENIIDI5LzU4 XSBxbWlfd3dhbjogQWRkIHN1cHBvcnQgZm9yIEZpYm9jb20gTkw2Nzggc2VyaWVzCk1JTUUtVmVy c2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50 LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CgpbIFVwc3RyZWFtIGNvbW1pdCA3YzNkYjQxMDVjZThk NjliY2I1YzA0YmZhOWFjZDFlOTExOWFmOGQ1IF0KCkFkZGVkIHN1cHBvcnQgZm9yIEZpYm9jb20g Tkw2Nzggc2VyaWVzIGNlbGx1bGFyIG1vZHVsZSBRTUkgaW50ZXJmYWNlLgpVc2luZyBRTUlfUVVJ UktfU0VUX0RUUiByZXF1aXJlZCBmb3IgUXVhbGNvbW0gTURNOXg0MCBzZXJpZXMgY2hpcHNldHMu CgpTaWduZWQtb2ZmLWJ5OiBKw7ZyZ2VuIFN0b3J2aXN0IDxqb3JnZW4uc3RvcnZpc3RAZ21haWwu Y29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ Ci0tLQogZHJpdmVycy9uZXQvdXNiL3FtaV93d2FuLmMgfCAxICsKIDEgZmlsZSBjaGFuZ2VkLCAx IGluc2VydGlvbigrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3VzYi9xbWlfd3dhbi5jIGIv ZHJpdmVycy9uZXQvdXNiL3FtaV93d2FuLmMKaW5kZXggYzg4NzJkZDVmZjVlLi5mNWJhYzUwNzUz ODYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3VzYi9xbWlfd3dhbi5jCisrKyBiL2RyaXZlcnMv bmV0L3VzYi9xbWlfd3dhbi5jCkBAIC0xMjY1LDYgKzEyNjUsNyBAQCBzdGF0aWMgY29uc3Qgc3Ry dWN0IHVzYl9kZXZpY2VfaWQgcHJvZHVjdHNbXSA9IHsKIAl7UU1JX1FVSVJLX1NFVF9EVFIoMHgy YzdjLCAweDAxMjEsIDQpfSwJLyogUXVlY3RlbCBFQzIxIE1pbmkgUENJZSAqLwogCXtRTUlfUVVJ UktfU0VUX0RUUigweDJjN2MsIDB4MDE5MSwgNCl9LAkvKiBRdWVjdGVsIEVHOTEgKi8KIAl7UU1J X0ZJWEVEX0lOVEYoMHgyYzdjLCAweDAyOTYsIDQpfSwJLyogUXVlY3RlbCBCRzk2ICovCisJe1FN SV9RVUlSS19TRVRfRFRSKDB4MmNiNywgMHgwMTA0LCA0KX0sCS8qIEZpYm9jb20gTkw2Nzggc2Vy aWVzICovCiAKIAkvKiA0LiBHb2JpIDEwMDAgZGV2aWNlcyAqLwogCXtRTUlfR09CSTFLX0RFVklD RSgweDA1YzYsIDB4OTIxMil9LAkvKiBBY2VyIEdvYmkgTW9kZW0gRGV2aWNlICovCi0tIAoyLjIw LjEKCgpGcm9tIDRmNDQwYTc2Mjc4OWVkNDQ5NzA1ZTI5MzA3ZmQ0YTY1NTk5MWMxMWEgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IFhpbiBMb25nIDxsdWNpZW4ueGluQGdtYWlsLmNvbT4K RGF0ZTogTW9uLCAxMCBEZWMgMjAxOCAxODowMDo1MiArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMzAv NThdIHNjdHA6IGluaXRpYWxpemUgc2luNl9mbG93aW5mbyBmb3IgaXB2NiBhZGRycyBpbgogc2N0 cF9pbmV0NmFkZHJfZXZlbnQKClsgVXBzdHJlYW0gY29tbWl0IDRhMmViMGMzN2I0NzU5NDE2OTk2 ZmJiNGM0NWI5MzI1MDBjZjA2ZDMgXQoKc3l6Ym90IHJlcG9ydGVkIGEga2VybmVsLWluZm9sZWFr LCB3aGljaCBpcyBjYXVzZWQgYnkgYW4gdW5pbml0aWFsaXplZApmaWVsZChzaW42X2Zsb3dpbmZv KSBvZiBhZGRyLT5hLnY2IGluIHNjdHBfaW5ldDZhZGRyX2V2ZW50KCkuClRoZSBjYWxsIHRyYWNl IGlzIGFzIGJlbG93OgoKICBCVUc6IEtNU0FOOiBrZXJuZWwtaW5mb2xlYWsgaW4gX2NvcHlfdG9f dXNlcisweDE5YS8weDIzMCBsaWIvdXNlcmNvcHkuYzozMwogIENQVTogMSBQSUQ6IDgxNjQgQ29t bTogc3l6LWV4ZWN1dG9yMiBOb3QgdGFpbnRlZCA0LjIwLjAtcmMzKyAjOTUKICBIYXJkd2FyZSBu YW1lOiBHb29nbGUgR29vZ2xlIENvbXB1dGUgRW5naW5lL0dvb2dsZSBDb21wdXRlIEVuZ2luZSwg QklPUwogIEdvb2dsZSAwMS8wMS8yMDExCiAgQ2FsbCBUcmFjZToKICAgIF9fZHVtcF9zdGFjayBs aWIvZHVtcF9zdGFjay5jOjc3IFtpbmxpbmVdCiAgICBkdW1wX3N0YWNrKzB4MzJkLzB4NDgwIGxp Yi9kdW1wX3N0YWNrLmM6MTEzCiAgICBrbXNhbl9yZXBvcnQrMHgxMmMvMHgyOTAgbW0va21zYW4v a21zYW4uYzo2ODMKICAgIGttc2FuX2ludGVybmFsX2NoZWNrX21lbW9yeSsweDMyYS8weGE1MCBt bS9rbXNhbi9rbXNhbi5jOjc0MwogICAga21zYW5fY29weV90b191c2VyKzB4NzgvMHhkMCBtbS9r bXNhbi9rbXNhbl9ob29rcy5jOjYzNAogICAgX2NvcHlfdG9fdXNlcisweDE5YS8weDIzMCBsaWIv dXNlcmNvcHkuYzozMwogICAgY29weV90b191c2VyIGluY2x1ZGUvbGludXgvdWFjY2Vzcy5oOjE4 MyBbaW5saW5lXQogICAgc2N0cF9nZXRzb2Nrb3B0X2xvY2FsX2FkZHJzIG5ldC9zY3RwL3NvY2tl dC5jOjU5OTggW2lubGluZV0KICAgIHNjdHBfZ2V0c29ja29wdCsweDE1MjQ4LzB4MTg2ZjAgbmV0 L3NjdHAvc29ja2V0LmM6NzQ3NwogICAgc29ja19jb21tb25fZ2V0c29ja29wdCsweDEzZi8weDE4 MCBuZXQvY29yZS9zb2NrLmM6MjkzNwogICAgX19zeXNfZ2V0c29ja29wdCsweDQ4OS8weDU1MCBu ZXQvc29ja2V0LmM6MTkzOQogICAgX19kb19zeXNfZ2V0c29ja29wdCBuZXQvc29ja2V0LmM6MTk1 MCBbaW5saW5lXQogICAgX19zZV9zeXNfZ2V0c29ja29wdCsweGUxLzB4MTAwIG5ldC9zb2NrZXQu YzoxOTQ3CiAgICBfX3g2NF9zeXNfZ2V0c29ja29wdCsweDYyLzB4ODAgbmV0L3NvY2tldC5jOjE5 NDcKICAgIGRvX3N5c2NhbGxfNjQrMHhjZi8weDExMCBhcmNoL3g4Ni9lbnRyeS9jb21tb24uYzoy OTEKICAgIGVudHJ5X1NZU0NBTExfNjRfYWZ0ZXJfaHdmcmFtZSsweDYzLzB4ZTcKCnNpbjZfZmxv d2luZm8gaXMgbm90IHJlYWxseSB1c2VkIGJ5IFNDVFAsIHNvIGl0IHdpbGwgYmUgZml4ZWQgYnkg c2ltcGx5CnNldHRpbmcgaXQgdG8gMC4KClRoZSBpc3N1ZSBleGlzdHMgc2luY2UgdmVyeSBiZWdp bm5pbmcuClRoYW5rcyBBbGV4YW5kZXIgZm9yIHRoZSByZXByb2R1Y2VyIHByb3ZpZGVkLgoKUmVw b3J0ZWQtYnk6IHN5emJvdCthZDVkMzI3ZTY5MzZhMmUyODRiZUBzeXprYWxsZXIuYXBwc3BvdG1h aWwuY29tClNpZ25lZC1vZmYtYnk6IFhpbiBMb25nIDxsdWNpZW4ueGluQGdtYWlsLmNvbT4KQWNr ZWQtYnk6IE1hcmNlbG8gUmljYXJkbyBMZWl0bmVyIDxtYXJjZWxvLmxlaXRuZXJAZ21haWwuY29t PgpBY2tlZC1ieTogTmVpbCBIb3JtYW4gPG5ob3JtYW5AdHV4ZHJpdmVyLmNvbT4KU2lnbmVkLW9m Zi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9zY3Rw L2lwdjYuYyB8IDEgKwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCgpkaWZmIC0tZ2l0 IGEvbmV0L3NjdHAvaXB2Ni5jIGIvbmV0L3NjdHAvaXB2Ni5jCmluZGV4IGZjNmM1ZTRiZmZhNS4u N2YwNTM5ZGI1NjA0IDEwMDY0NAotLS0gYS9uZXQvc2N0cC9pcHY2LmMKKysrIGIvbmV0L3NjdHAv aXB2Ni5jCkBAIC0xMDEsNiArMTAxLDcgQEAgc3RhdGljIGludCBzY3RwX2luZXQ2YWRkcl9ldmVu dChzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKnRoaXMsIHVuc2lnbmVkIGxvbmcgZXYsCiAJCWlmIChh ZGRyKSB7CiAJCQlhZGRyLT5hLnY2LnNpbjZfZmFtaWx5ID0gQUZfSU5FVDY7CiAJCQlhZGRyLT5h LnY2LnNpbjZfcG9ydCA9IDA7CisJCQlhZGRyLT5hLnY2LnNpbjZfZmxvd2luZm8gPSAwOwogCQkJ YWRkci0+YS52Ni5zaW42X2FkZHIgPSBpZmEtPmFkZHI7CiAJCQlhZGRyLT5hLnY2LnNpbjZfc2Nv cGVfaWQgPSBpZmEtPmlkZXYtPmRldi0+aWZpbmRleDsKIAkJCWFkZHItPnZhbGlkID0gMTsKLS0g CjIuMjAuMQoKCkZyb20gYzEyODU5ZGQxZDdhNTQxOTAzYWU5NjA0MWY1YWRlMjgyMGZiZDQwYyBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGVlcGEgRGluYW1hbmkgPGRlZXBhLmtlcm5l bEBnbWFpbC5jb20+CkRhdGU6IFRodSwgMjcgRGVjIDIwMTggMTg6NTU6MDkgLTA4MDAKU3ViamVj dDogW1BBVENIIDMxLzU4XSBzb2NrOiBNYWtlIHNvY2stPnNrX3N0YW1wIHRocmVhZC1zYWZlCgpb IFVwc3RyZWFtIGNvbW1pdCAzYTBlZDNlOTYxOTczODA2NzIxNDg3MWU5Y2I4MjZmYTIzYjJkZGI5 IF0KCkFsIFZpcm8gbWVudGlvbmVkIChNZXNzYWdlLUlECjwyMDE3MDYyNjA0MTMzNC5HWjEwNjcy QFplbklWLmxpbnV4Lm9yZy51az4pCnRoYXQgdGhlcmUgaXMgcHJvYmFibHkgYSByYWNlIGNvbmRp dGlvbgpsdXJraW5nIGluIGFjY2Vzc2VzIG9mIHNrX3N0YW1wIG9uIDMyLWJpdCBtYWNoaW5lcy4K CnNvY2stPnNrX3N0YW1wIGlzIG9mIHR5cGUga3RpbWVfdCB3aGljaCBpcyBhbHdheXMgYW4gczY0 LgpPbiBhIDMyIGJpdCBhcmNoaXRlY3R1cmUsIHdlIG1pZ2h0IHJ1biBpbnRvIHNpdHVhdGlvbnMg b2YKdW5zYWZlIGFjY2VzcyBhcyB0aGUgYWNjZXNzIHRvIHRoZSBmaWVsZCBiZWNvbWVzIG5vbiBh dG9taWMuCgpVc2Ugc2VxbG9ja3MgZm9yIHN5bmNocm9uaXphdGlvbi4KVGhpcyBhbGxvd3MgdXMg dG8gYXZvaWQgdXNpbmcgc3BpbmxvY2tzIGZvciByZWFkZXJzIGFzCnJlYWRlcnMgZG8gbm90IG5l ZWQgbXV0dWFsIGV4Y2x1c2lvbi4KCkFub3RoZXIgYXBwcm9hY2ggdG8gc29sdmUgdGhpcyBpcyB0 byByZXF1aXJlIHNrX2xvY2sgZm9yIGFsbAptb2RpZmljYXRpb25zIG9mIHRoZSB0aW1lc3RhbXBz LiBUaGUgY3VycmVudCBhcHByb2FjaCBhbGxvd3MKZm9yIHRpbWVzdGFtcHMgdG8gaGF2ZSB0aGVp ciBvd24gbG9jazogc2tfc3RhbXBfbG9jay4KVGhpcyBhbGxvd3MgZm9yIHRoZSBwYXRjaCB0byBu b3QgY29tcGV0ZSB3aXRoIGFscmVhZHkKZXhpc3RpbmcgY3JpdGljYWwgc2VjdGlvbnMsIGFuZCBz aWRlIGVmZmVjdHMgYXJlIGxpbWl0ZWQKdG8gdGhlIHBhdGhzIGluIHRoZSBwYXRjaC4KClRoZSBh ZGRpdGlvbiBvZiB0aGUgbmV3IGZpZWxkIG1haW50YWlucyB0aGUgZGF0YSBsb2NhbGl0eQpvcHRp bWl6YXRpb25zIGZyb20KY29tbWl0IDkxMTVlOGNkMmEwYyAoIm5ldDogcmVvcmdhbml6ZSBzdHJ1 Y3Qgc29jayBmb3IgYmV0dGVyIGRhdGEKbG9jYWxpdHkiKQoKTm90ZSB0aGF0IGFsbCB0aGUgaW5z dGFuY2VzIG9mIHRoZSBza19zdGFtcCBhY2Nlc3NlcwphcmUgZWl0aGVyIHRocm91Z2ggdGhlIGlv Y3RsIG9yIHRoZSBzeXNjYWxsIHJlY3Ztc2cuCgpTaWduZWQtb2ZmLWJ5OiBEZWVwYSBEaW5hbWFu aSA8ZGVlcGEua2VybmVsQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVy IDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGluY2x1ZGUvbmV0L3NvY2suaCAgIHwgMzggKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0KIG5ldC9jb21wYXQuYyAgICAgICAg IHwgMTUgKysrKysrKysrLS0tLS0tCiBuZXQvY29yZS9zb2NrLmMgICAgICB8IDE1ICsrKysrKysr KystLS0tLQogbmV0L3N1bnJwYy9zdmNzb2NrLmMgfCAgMiArLQogNCBmaWxlcyBjaGFuZ2VkLCA1 NSBpbnNlcnRpb25zKCspLCAxNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL25l dC9zb2NrLmggYi9pbmNsdWRlL25ldC9zb2NrLmgKaW5kZXggZjE4ZGJkNmRhOTA2Li42Y2I1YTU0 NWRmN2QgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L3NvY2suaAorKysgYi9pbmNsdWRlL25ldC9z b2NrLmgKQEAgLTI5OCw2ICsyOTgsNyBAQCBzdHJ1Y3Qgc29ja19jb21tb24gewogICAqCUBza19m aWx0ZXI6IHNvY2tldCBmaWx0ZXJpbmcgaW5zdHJ1Y3Rpb25zCiAgICoJQHNrX3RpbWVyOiBzb2Nr IGNsZWFudXAgdGltZXIKICAgKglAc2tfc3RhbXA6IHRpbWUgc3RhbXAgb2YgbGFzdCBwYWNrZXQg cmVjZWl2ZWQKKyAgKglAc2tfc3RhbXBfc2VxOiBsb2NrIGZvciBhY2Nlc3Npbmcgc2tfc3RhbXAg b24gMzIgYml0IGFyY2hpdGVjdHVyZXMgb25seQogICAqCUBza190c2ZsYWdzOiBTT19USU1FU1RB TVBJTkcgc29ja2V0IG9wdGlvbnMKICAgKglAc2tfdHNrZXk6IGNvdW50ZXIgdG8gZGlzYW1iaWd1 YXRlIGNvbmN1cnJlbnQgdHN0YW1wIHJlcXVlc3RzCiAgICoJQHNrX3pja2V5OiBjb3VudGVyIHRv IG9yZGVyIE1TR19aRVJPQ09QWSBub3RpZmljYXRpb25zCkBAIC00NzQsNiArNDc1LDkgQEAgc3Ry dWN0IHNvY2sgewogCWNvbnN0IHN0cnVjdCBjcmVkCSpza19wZWVyX2NyZWQ7CiAJbG9uZwkJCXNr X3JjdnRpbWVvOwogCWt0aW1lX3QJCQlza19zdGFtcDsKKyNpZiBCSVRTX1BFUl9MT05HPT0zMgor CXNlcWxvY2tfdAkJc2tfc3RhbXBfc2VxOworI2VuZGlmCiAJdTE2CQkJc2tfdHNmbGFnczsKIAl1 OAkJCXNrX3NodXRkb3duOwogCXUzMgkJCXNrX3Rza2V5OwpAQCAtMjI5MCw2ICsyMjk0LDM0IEBA IHN0YXRpYyBpbmxpbmUgdm9pZCBza19kcm9wc19hZGQoc3RydWN0IHNvY2sgKnNrLCBjb25zdCBz dHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCWF0b21pY19hZGQoc2VncywgJnNrLT5za19kcm9wcyk7CiB9 CiAKK3N0YXRpYyBpbmxpbmUga3RpbWVfdCBzb2NrX3JlYWRfdGltZXN0YW1wKHN0cnVjdCBzb2Nr ICpzaykKK3sKKyNpZiBCSVRTX1BFUl9MT05HPT0zMgorCXVuc2lnbmVkIGludCBzZXE7CisJa3Rp bWVfdCBrdDsKKworCWRvIHsKKwkJc2VxID0gcmVhZF9zZXFiZWdpbigmc2stPnNrX3N0YW1wX3Nl cSk7CisJCWt0ID0gc2stPnNrX3N0YW1wOworCX0gd2hpbGUgKHJlYWRfc2VxcmV0cnkoJnNrLT5z a19zdGFtcF9zZXEsIHNlcSkpOworCisJcmV0dXJuIGt0OworI2Vsc2UKKwlyZXR1cm4gc2stPnNr X3N0YW1wOworI2VuZGlmCit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBzb2NrX3dyaXRlX3RpbWVz dGFtcChzdHJ1Y3Qgc29jayAqc2ssIGt0aW1lX3Qga3QpCit7CisjaWYgQklUU19QRVJfTE9ORz09 MzIKKwl3cml0ZV9zZXFsb2NrKCZzay0+c2tfc3RhbXBfc2VxKTsKKwlzay0+c2tfc3RhbXAgPSBr dDsKKwl3cml0ZV9zZXF1bmxvY2soJnNrLT5za19zdGFtcF9zZXEpOworI2Vsc2UKKwlzay0+c2tf c3RhbXAgPSBrdDsKKyNlbmRpZgorfQorCiB2b2lkIF9fc29ja19yZWN2X3RpbWVzdGFtcChzdHJ1 Y3QgbXNnaGRyICptc2csIHN0cnVjdCBzb2NrICpzaywKIAkJCSAgIHN0cnVjdCBza19idWZmICpz a2IpOwogdm9pZCBfX3NvY2tfcmVjdl93aWZpX3N0YXR1cyhzdHJ1Y3QgbXNnaGRyICptc2csIHN0 cnVjdCBzb2NrICpzaywKQEAgLTIzMTQsNyArMjM0Niw3IEBAIHNvY2tfcmVjdl90aW1lc3RhbXAo c3RydWN0IG1zZ2hkciAqbXNnLCBzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2Ip CiAJICAgICAoc2stPnNrX3RzZmxhZ3MgJiBTT0ZfVElNRVNUQU1QSU5HX1JBV19IQVJEV0FSRSkp KQogCQlfX3NvY2tfcmVjdl90aW1lc3RhbXAobXNnLCBzaywgc2tiKTsKIAllbHNlCi0JCXNrLT5z a19zdGFtcCA9IGt0OworCQlzb2NrX3dyaXRlX3RpbWVzdGFtcChzaywga3QpOwogCiAJaWYgKHNv Y2tfZmxhZyhzaywgU09DS19XSUZJX1NUQVRVUykgJiYgc2tiLT53aWZpX2Fja2VkX3ZhbGlkKQog CQlfX3NvY2tfcmVjdl93aWZpX3N0YXR1cyhtc2csIHNrLCBza2IpOwpAQCAtMjMzNSw5ICsyMzY3 LDkgQEAgc3RhdGljIGlubGluZSB2b2lkIHNvY2tfcmVjdl90c19hbmRfZHJvcHMoc3RydWN0IG1z Z2hkciAqbXNnLCBzdHJ1Y3Qgc29jayAqc2ssCiAJaWYgKHNrLT5za19mbGFncyAmIEZMQUdTX1RT X09SX0RST1BTIHx8IHNrLT5za190c2ZsYWdzICYgVFNGTEFHU19BTlkpCiAJCV9fc29ja19yZWN2 X3RzX2FuZF9kcm9wcyhtc2csIHNrLCBza2IpOwogCWVsc2UgaWYgKHVubGlrZWx5KHNvY2tfZmxh ZyhzaywgU09DS19USU1FU1RBTVApKSkKLQkJc2stPnNrX3N0YW1wID0gc2tiLT50c3RhbXA7CisJ CXNvY2tfd3JpdGVfdGltZXN0YW1wKHNrLCBza2ItPnRzdGFtcCk7CiAJZWxzZSBpZiAodW5saWtl bHkoc2stPnNrX3N0YW1wID09IFNLX0RFRkFVTFRfU1RBTVApKQotCQlzay0+c2tfc3RhbXAgPSAw OworCQlzb2NrX3dyaXRlX3RpbWVzdGFtcChzaywgMCk7CiB9CiAKIHZvaWQgX19zb2NrX3R4X3Rp bWVzdGFtcChfX3UxNiB0c2ZsYWdzLCBfX3U4ICp0eF9mbGFncyk7CmRpZmYgLS1naXQgYS9uZXQv Y29tcGF0LmMgYi9uZXQvY29tcGF0LmMKaW5kZXggM2IyMTA1ZjY1NDlkLi4zYzRiMDI4M2IyOWEg MTAwNjQ0Ci0tLSBhL25ldC9jb21wYXQuYworKysgYi9uZXQvY29tcGF0LmMKQEAgLTQ2NywxMiAr NDY3LDE0IEBAIGludCBjb21wYXRfc29ja19nZXRfdGltZXN0YW1wKHN0cnVjdCBzb2NrICpzaywg c3RydWN0IHRpbWV2YWwgX191c2VyICp1c2Vyc3RhbXApCiAJY3R2ID0gKHN0cnVjdCBjb21wYXRf dGltZXZhbCBfX3VzZXIgKikgdXNlcnN0YW1wOwogCWVyciA9IC1FTk9FTlQ7CiAJc29ja19lbmFi bGVfdGltZXN0YW1wKHNrLCBTT0NLX1RJTUVTVEFNUCk7Ci0JdHYgPSBrdGltZV90b190aW1ldmFs KHNrLT5za19zdGFtcCk7CisJdHYgPSBrdGltZV90b190aW1ldmFsKHNvY2tfcmVhZF90aW1lc3Rh bXAoc2spKTsKKwogCWlmICh0di50dl9zZWMgPT0gLTEpCiAJCXJldHVybiBlcnI7CiAJaWYgKHR2 LnR2X3NlYyA9PSAwKSB7Ci0JCXNrLT5za19zdGFtcCA9IGt0aW1lX2dldF9yZWFsKCk7Ci0JCXR2 ID0ga3RpbWVfdG9fdGltZXZhbChzay0+c2tfc3RhbXApOworCQlrdGltZV90IGt0ID0ga3RpbWVf Z2V0X3JlYWwoKTsKKwkJc29ja193cml0ZV90aW1lc3RhbXAoc2ssIGt0KTsKKwkJdHYgPSBrdGlt ZV90b190aW1ldmFsKGt0KTsKIAl9CiAJZXJyID0gMDsKIAlpZiAocHV0X3VzZXIodHYudHZfc2Vj LCAmY3R2LT50dl9zZWMpIHx8CkBAIC00OTQsMTIgKzQ5NiwxMyBAQCBpbnQgY29tcGF0X3NvY2tf Z2V0X3RpbWVzdGFtcG5zKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHRpbWVzcGVjIF9fdXNlciAq dXNlcnN0YQogCWN0diA9IChzdHJ1Y3QgY29tcGF0X3RpbWVzcGVjIF9fdXNlciAqKSB1c2Vyc3Rh bXA7CiAJZXJyID0gLUVOT0VOVDsKIAlzb2NrX2VuYWJsZV90aW1lc3RhbXAoc2ssIFNPQ0tfVElN RVNUQU1QKTsKLQl0cyA9IGt0aW1lX3RvX3RpbWVzcGVjKHNrLT5za19zdGFtcCk7CisJdHMgPSBr dGltZV90b190aW1lc3BlYyhzb2NrX3JlYWRfdGltZXN0YW1wKHNrKSk7CiAJaWYgKHRzLnR2X3Nl YyA9PSAtMSkKIAkJcmV0dXJuIGVycjsKIAlpZiAodHMudHZfc2VjID09IDApIHsKLQkJc2stPnNr X3N0YW1wID0ga3RpbWVfZ2V0X3JlYWwoKTsKLQkJdHMgPSBrdGltZV90b190aW1lc3BlYyhzay0+ c2tfc3RhbXApOworCQlrdGltZV90IGt0ID0ga3RpbWVfZ2V0X3JlYWwoKTsKKwkJc29ja193cml0 ZV90aW1lc3RhbXAoc2ssIGt0KTsKKwkJdHMgPSBrdGltZV90b190aW1lc3BlYyhrdCk7CiAJfQog CWVyciA9IDA7CiAJaWYgKHB1dF91c2VyKHRzLnR2X3NlYywgJmN0di0+dHZfc2VjKSB8fApkaWZm IC0tZ2l0IGEvbmV0L2NvcmUvc29jay5jIGIvbmV0L2NvcmUvc29jay5jCmluZGV4IDc0ODc2NWUz NTQyMy4uNWE4YTNiNzY4MzJmIDEwMDY0NAotLS0gYS9uZXQvY29yZS9zb2NrLmMKKysrIGIvbmV0 L2NvcmUvc29jay5jCkBAIC0yODAzLDYgKzI4MDMsOSBAQCB2b2lkIHNvY2tfaW5pdF9kYXRhKHN0 cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVjdCBzb2NrICpzaykKIAlzay0+c2tfc25kdGltZW8JCT0J TUFYX1NDSEVEVUxFX1RJTUVPVVQ7CiAKIAlzay0+c2tfc3RhbXAgPSBTS19ERUZBVUxUX1NUQU1Q OworI2lmIEJJVFNfUEVSX0xPTkc9PTMyCisJc2VxbG9ja19pbml0KCZzay0+c2tfc3RhbXBfc2Vx KTsKKyNlbmRpZgogCWF0b21pY19zZXQoJnNrLT5za196Y2tleSwgMCk7CiAKICNpZmRlZiBDT05G SUdfTkVUX1JYX0JVU1lfUE9MTApAQCAtMjkwMiwxMiArMjkwNSwxMyBAQCBpbnQgc29ja19nZXRf dGltZXN0YW1wKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHRpbWV2YWwgX191c2VyICp1c2Vyc3Rh bXApCiAJc3RydWN0IHRpbWV2YWwgdHY7CiAKIAlzb2NrX2VuYWJsZV90aW1lc3RhbXAoc2ssIFNP Q0tfVElNRVNUQU1QKTsKLQl0diA9IGt0aW1lX3RvX3RpbWV2YWwoc2stPnNrX3N0YW1wKTsKKwl0 diA9IGt0aW1lX3RvX3RpbWV2YWwoc29ja19yZWFkX3RpbWVzdGFtcChzaykpOwogCWlmICh0di50 dl9zZWMgPT0gLTEpCiAJCXJldHVybiAtRU5PRU5UOwogCWlmICh0di50dl9zZWMgPT0gMCkgewot CQlzay0+c2tfc3RhbXAgPSBrdGltZV9nZXRfcmVhbCgpOwotCQl0diA9IGt0aW1lX3RvX3RpbWV2 YWwoc2stPnNrX3N0YW1wKTsKKwkJa3RpbWVfdCBrdCA9IGt0aW1lX2dldF9yZWFsKCk7CisJCXNv Y2tfd3JpdGVfdGltZXN0YW1wKHNrLCBrdCk7CisJCXR2ID0ga3RpbWVfdG9fdGltZXZhbChrdCk7 CiAJfQogCXJldHVybiBjb3B5X3RvX3VzZXIodXNlcnN0YW1wLCAmdHYsIHNpemVvZih0dikpID8g LUVGQVVMVCA6IDA7CiB9CkBAIC0yOTE4LDExICsyOTIyLDEyIEBAIGludCBzb2NrX2dldF90aW1l c3RhbXBucyhzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCB0aW1lc3BlYyBfX3VzZXIgKnVzZXJzdGFt cCkKIAlzdHJ1Y3QgdGltZXNwZWMgdHM7CiAKIAlzb2NrX2VuYWJsZV90aW1lc3RhbXAoc2ssIFNP Q0tfVElNRVNUQU1QKTsKLQl0cyA9IGt0aW1lX3RvX3RpbWVzcGVjKHNrLT5za19zdGFtcCk7CisJ dHMgPSBrdGltZV90b190aW1lc3BlYyhzb2NrX3JlYWRfdGltZXN0YW1wKHNrKSk7CiAJaWYgKHRz LnR2X3NlYyA9PSAtMSkKIAkJcmV0dXJuIC1FTk9FTlQ7CiAJaWYgKHRzLnR2X3NlYyA9PSAwKSB7 Ci0JCXNrLT5za19zdGFtcCA9IGt0aW1lX2dldF9yZWFsKCk7CisJCWt0aW1lX3Qga3QgPSBrdGlt ZV9nZXRfcmVhbCgpOworCQlzb2NrX3dyaXRlX3RpbWVzdGFtcChzaywga3QpOwogCQl0cyA9IGt0 aW1lX3RvX3RpbWVzcGVjKHNrLT5za19zdGFtcCk7CiAJfQogCXJldHVybiBjb3B5X3RvX3VzZXIo dXNlcnN0YW1wLCAmdHMsIHNpemVvZih0cykpID8gLUVGQVVMVCA6IDA7CmRpZmYgLS1naXQgYS9u ZXQvc3VucnBjL3N2Y3NvY2suYyBiL25ldC9zdW5ycGMvc3Zjc29jay5jCmluZGV4IDU0NDUxNDVl NjM5Yy4uZmMxYzBkOWVmNTdkIDEwMDY0NAotLS0gYS9uZXQvc3VucnBjL3N2Y3NvY2suYworKysg Yi9uZXQvc3VucnBjL3N2Y3NvY2suYwpAQCAtNTc0LDcgKzU3NCw3IEBAIHN0YXRpYyBpbnQgc3Zj X3VkcF9yZWN2ZnJvbShzdHJ1Y3Qgc3ZjX3Jxc3QgKnJxc3RwKQogCQkvKiBEb24ndCBlbmFibGUg bmV0c3RhbXAsIHN1bnJwYyBkb2Vzbid0CiAJCSAgIG5lZWQgdGhhdCBtdWNoIGFjY3VyYWN5ICov CiAJfQotCXN2c2stPnNrX3NrLT5za19zdGFtcCA9IHNrYi0+dHN0YW1wOworCXNvY2tfd3JpdGVf dGltZXN0YW1wKHN2c2stPnNrX3NrLCBza2ItPnRzdGFtcCk7CiAJc2V0X2JpdChYUFRfREFUQSwg JnN2c2stPnNrX3hwcnQueHB0X2ZsYWdzKTsgLyogdGhlcmUgbWF5IGJlIG1vcmUgZGF0YS4uLiAq LwogCiAJbGVuICA9IHNrYi0+bGVuOwotLSAKMi4yMC4xCgoKRnJvbSA3NWJhNDYwYzE5MDYwYWEz OTE0N2I4ZTFlYWVjNjAzMzA4MzA4MTk0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBF cmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkRhdGU6IFRodSwgMjAgRGVjIDIwMTgg MTU6Mjg6NTYgLTA4MDAKU3ViamVjdDogW1BBVENIIDMyLzU4XSB0Y3A6IGZpeCBhIHJhY2UgaW4g aW5ldF9kaWFnX2R1bXBfaWNzaygpCgpbIFVwc3RyZWFtIGNvbW1pdCBmMGM5MjhkODc4ZTdkMDFi NjEzYzlhZTVjOTcxYTZiMWU0NzNhOTM4IF0KCkFsZXhlaSByZXBvcnRlZCB1c2UgYWZ0ZXIgZnJl ZXMgaW4gaW5ldF9kaWFnX2R1bXBfaWNzaygpIFsxXQoKQmVjYXVzZSB3ZSB1c2UgcmVmY291bnRf c2V0KCkgd2hlbiB2YXJpb3VzIHNvY2tldHMgYXJlIHNldHVwIGFuZAppbnNlcnRlZCBpbnRvIGVo YXNoLCB3ZSBhbHNvIG5lZWQgdG8gbWFrZSBzdXJlIGluZXRfZGlhZ19kdW1wX2ljc2soKQp3b250 IHJhY2Ugd2l0aCB0aGUgcmVmY291bnRfc2V0KCkgb3BlcmF0aW9ucy4KCkpvbmF0aGFuIExlbW9u IHNlbnQgYSBwYXRjaCBjaGFuZ2luZyBuZXRfdHdza19oYXNoZGFuY2UoKSBidXQKb3RoZXIgc3Bv dHMgd291bGQgbmVlZCByaXNreSBjaGFuZ2VzLgoKSW5zdGVhZCwgZml4IGluZXRfZGlhZ19kdW1w X2ljc2soKSBhcyB0aGlzIGJ1ZyBjYW1lIHdpdGgKbGludXgtNC4xMCBvbmx5LgoKWzFdIFF1b3Rp bmcgQWxleGVpIDoKCkZpcnN0IHNvbWV0aGluZyBpdGVyYXRpbmcgb3ZlciBzb2NrZXRzIGZpbmRz IGFscmVhZHkgZnJlZWQgdHcgc29ja2V0OgoKcmVmY291bnRfdDogaW5jcmVtZW50IG9uIDA7IHVz ZS1hZnRlci1mcmVlLgpXQVJOSU5HOiBDUFU6IDIgUElEOiAyNzM4IGF0IGxpYi9yZWZjb3VudC5j OjE1MyByZWZjb3VudF9pbmMrMHgyNi8weDMwClJJUDogMDAxMDpyZWZjb3VudF9pbmMrMHgyNi8w eDMwClJTUDogMDAxODpmZmZmYzkwMDA0YzhmYmMwIEVGTEFHUzogMDAwMTAyODIKUkFYOiAwMDAw MDAwMDAwMDAwMDJiIFJCWDogMDAwMDAwMDAwMDAwMDAwMCBSQ1g6IDAwMDAwMDAwMDAwMDAwMDAK UkRYOiBmZmZmODgwODVlZTlkNjgwIFJTSTogZmZmZjg4MDg1ZWU5NTRjOCBSREk6IGZmZmY4ODA4 NWVlOTU0YzgKUkJQOiBmZmZmODgwMTBlY2JkMmMwIFIwODogMDAwMDAwMDAwMDAwMDAwMCBSMDk6 IDAwMDAwMDAwMDAwMDE3NGMKUjEwOiBmZmZmZmZmZjgxZTdjNWEwIFIxMTogMDAwMDAwMDAwMDAw MDAwMCBSMTI6IDAwMDAwMDAwMDAwMDAwMDAKUjEzOiBmZmZmODgwNmJhOWJmMjEwIFIxNDogZmZm ZmZmZmY4MjMwNDYwMCBSMTU6IGZmZmY4ODAxMGVjYmQzMjgKRlM6ICAwMDAwN2Y4MWY1YTdkNzAw KDAwMDApIEdTOmZmZmY4ODA4NWVlODAwMDAoMDAwMCkga25sR1M6MDAwMDAwMDAwMDAwMDAwMApD UzogIDAwMTAgRFM6IDAwMDAgRVM6IDAwMDAgQ1IwOiAwMDAwMDAwMDgwMDUwMDMzCkNSMjogMDAw MDdmODFlMmE5NTAwMCBDUjM6IDAwMDAwMDA2OWIyZWIwMDYgQ1I0OiAwMDAwMDAwMDAwMzYwNmUw CkRSMDogMDAwMDAwMDAwMDAwMDAwMCBEUjE6IDAwMDAwMDAwMDAwMDAwMDAgRFIyOiAwMDAwMDAw MDAwMDAwMDAwCkRSMzogMDAwMDAwMDAwMDAwMDAwMCBEUjY6IDAwMDAwMDAwZmZmZTBmZjAgRFI3 OiAwMDAwMDAwMDAwMDAwNDAwCkNhbGwgVHJhY2U6CiBpbmV0X2RpYWdfZHVtcF9pY3NrKzB4MmIz LzB4NGUwIFtpbmV0X2RpYWddICAvLyBzb2NrX2hvbGQoc2spOyBpbiBuZXQvaXB2NC9pbmV0X2Rp YWcuYzoxMDAyCiA/IGttYWxsb2NfbGFyZ2Vfbm9kZSsweDM3LzB4NzAKID8gX19rbWFsbG9jX25v ZGVfdHJhY2tfY2FsbGVyKzB4MWNiLzB4MjYwCiA/IF9fYWxsb2Nfc2tiKzB4NzIvMHgxYjAKID8g X19rbWFsbG9jX3Jlc2VydmUuaXNyYS40MCsweDJlLzB4ODAKIF9faW5ldF9kaWFnX2R1bXArMHgz Yi8weDgwIFtpbmV0X2RpYWddCiBuZXRsaW5rX2R1bXArMHgxMTYvMHgyYTAKIG5ldGxpbmtfcmVj dm1zZysweDIwNS8weDNjMAogc29ja19yZWFkX2l0ZXIrMHg4OS8weGQwCiBfX3Zmc19yZWFkKzB4 ZjcvMHgxNDAKIHZmc19yZWFkKzB4OGEvMHgxNDAKIFN5U19yZWFkKzB4M2YvMHhhMAogZG9fc3lz Y2FsbF82NCsweDVhLzB4MTAwCgp0aGVuIGEgbWludXRlIGxhdGVyIHR3c2sgdGltZXIgZmlyZXMg YW5kIGhpdHMgdHdvIGJhZCByZWZjbnRzCmZvciB0aGlzIGZyZWVkIHNvY2tldDoKCnJlZmNvdW50 X3Q6IGRlY3JlbWVudCBoaXQgMDsgbGVha2luZyBtZW1vcnkuCldBUk5JTkc6IENQVTogMzEgUElE OiAwIGF0IGxpYi9yZWZjb3VudC5jOjIyOCByZWZjb3VudF9kZWMrMHgyZS8weDQwCk1vZHVsZXMg bGlua2VkIGluOgpSSVA6IDAwMTA6cmVmY291bnRfZGVjKzB4MmUvMHg0MApSU1A6IDAwMTg6ZmZm Zjg4MDg1ZjVjM2VhOCBFRkxBR1M6IDAwMDEwMjk2ClJBWDogMDAwMDAwMDAwMDAwMDAyYyBSQlg6 IGZmZmY4ODAxMGVjYmQyYzAgUkNYOiAwMDAwMDAwMDAwMDAwODNmClJEWDogMDAwMDAwMDAwMDAw MDAwMCBSU0k6IDAwMDAwMDAwMDAwMDAwZjYgUkRJOiAwMDAwMDAwMDAwMDAwMDNmClJCUDogZmZm ZmM5MDAwM2M3NzI4MCBSMDg6IDAwMDAwMDAwMDAwMDAwMDAgUjA5OiAwMDAwMDAwMDAwMDAxN2Qz ClIxMDogZmZmZmZmZmY4MWU3YzVhMCBSMTE6IDAwMDAwMDAwMDAwMDAwMDAgUjEyOiBmZmZmZmZm ZjgyYWQyZDgwClIxMzogZmZmZmZmZmY4MTgyZGUwMCBSMTQ6IGZmZmY4ODA4NWY1YzNlZjggUjE1 OiAwMDAwMDAwMDAwMDAwMDAwCkZTOiAgMDAwMDAwMDAwMDAwMDAwMCgwMDAwKSBHUzpmZmZmODgw ODVmNWMwMDAwKDAwMDApIGtubEdTOjAwMDAwMDAwMDAwMDAwMDAKQ1M6ICAwMDEwIERTOiAwMDAw IEVTOiAwMDAwIENSMDogMDAwMDAwMDA4MDA1MDAzMwpDUjI6IDAwMDA3ZmJlNDI2ODUyNTAgQ1Iz OiAwMDAwMDAwMDAyMjA5MDAxIENSNDogMDAwMDAwMDAwMDM2MDZlMApEUjA6IDAwMDAwMDAwMDAw MDAwMDAgRFIxOiAwMDAwMDAwMDAwMDAwMDAwIERSMjogMDAwMDAwMDAwMDAwMDAwMApEUjM6IDAw MDAwMDAwMDAwMDAwMDAgRFI2OiAwMDAwMDAwMGZmZmUwZmYwIERSNzogMDAwMDAwMDAwMDAwMDQw MApDYWxsIFRyYWNlOgogPElSUT4KIGluZXRfdHdza19raWxsKzB4OWQvMHhjMCAgLy8gaW5ldF90 d3NrX2JpbmRfdW5oYXNoKHR3LCBoYXNoaW5mbyk7CiBjYWxsX3RpbWVyX2ZuKzB4MjkvMHgxMTAK IHJ1bl90aW1lcl9zb2Z0aXJxKzB4MzZiLzB4M2EwCgpyZWZjb3VudF90OiB1bmRlcmZsb3c7IHVz ZS1hZnRlci1mcmVlLgpXQVJOSU5HOiBDUFU6IDMxIFBJRDogMCBhdCBsaWIvcmVmY291bnQuYzox ODcgcmVmY291bnRfc3ViX2FuZF90ZXN0KzB4NDYvMHg1MApSSVA6IDAwMTA6cmVmY291bnRfc3Vi X2FuZF90ZXN0KzB4NDYvMHg1MApSU1A6IDAwMTg6ZmZmZjg4MDg1ZjVjM2ViOCBFRkxBR1M6IDAw MDEwMjk2ClJBWDogMDAwMDAwMDAwMDAwMDAyNiBSQlg6IGZmZmY4ODAxMGVjYmQyYzAgUkNYOiAw MDAwMDAwMDAwMDAwODNmClJEWDogMDAwMDAwMDAwMDAwMDAwMCBSU0k6IDAwMDAwMDAwMDAwMDAw ZjYgUkRJOiAwMDAwMDAwMDAwMDAwMDNmClJCUDogZmZmZjg4MDEwZWNiZDM1OCBSMDg6IDAwMDAw MDAwMDAwMDAwMDAgUjA5OiAwMDAwMDAwMDAwMDAxODViClIxMDogZmZmZmZmZmY4MWU3YzVhMCBS MTE6IDAwMDAwMDAwMDAwMDAwMDAgUjEyOiBmZmZmODgwMTBlY2JkMzU4ClIxMzogZmZmZmZmZmY4 MTgyZGUwMCBSMTQ6IGZmZmY4ODA4NWY1YzNlZjggUjE1OiAwMDAwMDAwMDAwMDAwMDAwCkZTOiAg MDAwMDAwMDAwMDAwMDAwMCgwMDAwKSBHUzpmZmZmODgwODVmNWMwMDAwKDAwMDApIGtubEdTOjAw MDAwMDAwMDAwMDAwMDAKQ1M6ICAwMDEwIERTOiAwMDAwIEVTOiAwMDAwIENSMDogMDAwMDAwMDA4 MDA1MDAzMwpDUjI6IDAwMDA3ZmJlNDI2ODUyNTAgQ1IzOiAwMDAwMDAwMDAyMjA5MDAxIENSNDog MDAwMDAwMDAwMDM2MDZlMApEUjA6IDAwMDAwMDAwMDAwMDAwMDAgRFIxOiAwMDAwMDAwMDAwMDAw MDAwIERSMjogMDAwMDAwMDAwMDAwMDAwMApEUjM6IDAwMDAwMDAwMDAwMDAwMDAgRFI2OiAwMDAw MDAwMGZmZmUwZmYwIERSNzogMDAwMDAwMDAwMDAwMDQwMApDYWxsIFRyYWNlOgogPElSUT4KIGlu ZXRfdHdza19wdXQrMHgxMi8weDIwICAvLyBpbmV0X3R3c2tfcHV0KHR3KTsKIGNhbGxfdGltZXJf Zm4rMHgyOS8weDExMAogcnVuX3RpbWVyX3NvZnRpcnErMHgzNmIvMHgzYTAKCkZpeGVzOiA2N2Ri M2U0YmZiYzkgKCJ0Y3A6IG5vIGxvbmdlciBob2xkIGVoYXNoIGxvY2sgd2hpbGUgY2FsbGluZyB0 Y3BfZ2V0X2luZm8oKSIpClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29v Z2xlLmNvbT4KUmVwb3J0ZWQtYnk6IEFsZXhlaSBTdGFyb3ZvaXRvdiA8YXN0QGtlcm5lbC5vcmc+ CkNjOiBKb25hdGhhbiBMZW1vbiA8am9uYXRoYW4ubGVtb25AZ21haWwuY29tPgpBY2tlZC1ieTog Sm9uYXRoYW4gTGVtb24gPGpvbmF0aGFuLmxlbW9uQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTog RGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY0L2luZXRf ZGlhZy5jIHwgNCArKystCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAxIGRlbGV0 aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvaW5ldF9kaWFnLmMgYi9uZXQvaXB2NC9pbmV0 X2RpYWcuYwppbmRleCA0ZTViYzRiMmYxNGUuLjFhNGU5ZmYwMjc2MiAxMDA2NDQKLS0tIGEvbmV0 L2lwdjQvaW5ldF9kaWFnLmMKKysrIGIvbmV0L2lwdjQvaW5ldF9kaWFnLmMKQEAgLTk5OCw3ICs5 OTgsOSBAQCB2b2lkIGluZXRfZGlhZ19kdW1wX2ljc2soc3RydWN0IGluZXRfaGFzaGluZm8gKmhh c2hpbmZvLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCQkJaWYgKCFpbmV0X2RpYWdfYmNfc2soYmMs IHNrKSkKIAkJCQlnb3RvIG5leHRfbm9ybWFsOwogCi0JCQlzb2NrX2hvbGQoc2spOworCQkJaWYg KCFyZWZjb3VudF9pbmNfbm90X3plcm8oJnNrLT5za19yZWZjbnQpKQorCQkJCWdvdG8gbmV4dF9u b3JtYWw7CisKIAkJCW51bV9hcnJbYWNjdW1dID0gbnVtOwogCQkJc2tfYXJyW2FjY3VtXSA9IHNr OwogCQkJaWYgKCsrYWNjdW0gPT0gU0tBUlJfU1opCi0tIAoyLjIwLjEKCgpGcm9tIGNhZTg4M2Fm NmU1YWYwYTc0ZjQ5OGUwYjdhMzgxNzkwMzM1ZGJkZjkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IENvbmcgV2FuZyA8eGl5b3Uud2FuZ2NvbmdAZ21haWwuY29tPgpEYXRlOiBUdWUsIDEx IERlYyAyMDE4IDIxOjQzOjUxIC0wODAwClN1YmplY3Q6IFtQQVRDSCAzMy81OF0gdGlwYzogY2hl Y2sgdHNrLT5ncm91cCBpbiB0aXBjX3dhaXRfZm9yX2NvbmQoKQoKWyBVcHN0cmVhbSBjb21taXQg MTQzZWNlNjU0ZjlmNWIzN2JlZGVhMjUyYTk5MGJlMzdlNDhhZTNhNSBdCgp0aXBjX3dhaXRfZm9y X2NvbmQoKSBkcm9wcyBzb2NrZXQgbG9jayBiZWZvcmUgZ29pbmcgdG8gc2xlZXAsCmJ1dCB0c2st Pmdyb3VwIGNvdWxkIGJlIGZyZWVkIHJpZ2h0IGFmdGVyIHRoYXQgcmVsZWFzZV9zb2NrKCkuClNv IHdlIGhhdmUgdG8gcmUtY2hlY2sgYW5kIHJlbG9hZCB0c2stPmdyb3VwIGFmdGVyIGl0IHdha2Vz IHVwLgoKQWZ0ZXIgdGhpcyBwYXRjaCwgdGlwY193YWl0X2Zvcl9jb25kKCkgcmV0dXJucyAtRVJF U1RBUlRTWVMgd2hlbgp0c2stPmdyb3VwIGlzIE5VTEwsIGluc3RlYWQgb2YgY29udGludWluZyB3 aXRoIHRoZSBhc3N1bXB0aW9uIG9mCmEgbm9uLU5VTEwgdHNrLT5ncm91cC4KCihJdCBsb29rcyBs aWtlICdkc3RzJyBzaG91bGQgYmUgcmUtY2hlY2tlZCBhbmQgcmVsb2FkZWQgdG9vLCBidXQKaXQg aXMgYSBkaWZmZXJlbnQgYnVnLikKClNpbWlsYXIgZm9yIHRpcGNfc2VuZF9ncm91cF91bmljYXN0 KCkgYW5kIHRpcGNfc2VuZF9ncm91cF9hbnljYXN0KCkuCgpSZXBvcnRlZC1ieTogc3l6Ym90KzEw YTlkYjQ3YzNhMGUxM2ViMzFjQHN5emthbGxlci5hcHBzcG90bWFpbC5jb20KRml4ZXM6IGI3ZDQy NjM1NTE3ZiAoInRpcGM6IGludHJvZHVjZSBmbG93IGNvbnRyb2wgZm9yIGdyb3VwIGJyb2FkY2Fz dCBtZXNzYWdlcyIpCkZpeGVzOiBlZTEwNmQ3Zjk0MmQgKCJ0aXBjOiBpbnRyb2R1Y2UgZ3JvdXAg YW55Y2FzdCBtZXNzYWdpbmciKQpGaXhlczogMjdiZDllYzAyN2YzICgidGlwYzogaW50cm9kdWNl IGdyb3VwIHVuaWNhc3QgbWVzc2FnaW5nIikKQ2M6IFlpbmcgWHVlIDx5aW5nLnh1ZUB3aW5kcml2 ZXIuY29tPgpDYzogSm9uIE1hbG95IDxqb24ubWFsb3lAZXJpY3Nzb24uY29tPgpTaWduZWQtb2Zm LWJ5OiBDb25nIFdhbmcgPHhpeW91Lndhbmdjb25nQGdtYWlsLmNvbT4KQWNrZWQtYnk6IFlpbmcg WHVlIDx5aW5nLnh1ZUB3aW5kcml2ZXIuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxs ZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3RpcGMvc29ja2V0LmMgfCAyNSArKysr KysrKysrKysrKy0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTQgaW5zZXJ0aW9ucygrKSwg MTEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3RpcGMvc29ja2V0LmMgYi9uZXQvdGlw Yy9zb2NrZXQuYwppbmRleCAzNjZjZTBiZjI2NTguLjlmM2FjZDU3MGExMiAxMDA2NDQKLS0tIGEv bmV0L3RpcGMvc29ja2V0LmMKKysrIGIvbmV0L3RpcGMvc29ja2V0LmMKQEAgLTg3OCw3ICs4Nzgs NiBAQCBzdGF0aWMgaW50IHRpcGNfc2VuZF9ncm91cF91bmljYXN0KHN0cnVjdCBzb2NrZXQgKnNv Y2ssIHN0cnVjdCBtc2doZHIgKm0sCiAJREVDTEFSRV9TT0NLQUREUihzdHJ1Y3Qgc29ja2FkZHJf dGlwYyAqLCBkZXN0LCBtLT5tc2dfbmFtZSk7CiAJaW50IGJsa3MgPSB0c2tfYmxvY2tzKEdST1VQ X0hfU0laRSArIGRsZW4pOwogCXN0cnVjdCB0aXBjX3NvY2sgKnRzayA9IHRpcGNfc2soc2spOwot CXN0cnVjdCB0aXBjX2dyb3VwICpncnAgPSB0c2stPmdyb3VwOwogCXN0cnVjdCBuZXQgKm5ldCA9 IHNvY2tfbmV0KHNrKTsKIAlzdHJ1Y3QgdGlwY19tZW1iZXIgKm1iID0gTlVMTDsKIAl1MzIgbm9k ZSwgcG9ydDsKQEAgLTg5Miw3ICs4OTEsOSBAQCBzdGF0aWMgaW50IHRpcGNfc2VuZF9ncm91cF91 bmljYXN0KHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVjdCBtc2doZHIgKm0sCiAJLyogQmxvY2sg b3IgcmV0dXJuIGlmIGRlc3RpbmF0aW9uIGxpbmsgb3IgbWVtYmVyIGlzIGNvbmdlc3RlZCAqLwog CXJjID0gdGlwY193YWl0X2Zvcl9jb25kKHNvY2ssICZ0aW1lb3V0LAogCQkJCSF0aXBjX2Rlc3Rf ZmluZCgmdHNrLT5jb25nX2xpbmtzLCBub2RlLCAwKSAmJgotCQkJCSF0aXBjX2dyb3VwX2Nvbmco Z3JwLCBub2RlLCBwb3J0LCBibGtzLCAmbWIpKTsKKwkJCQl0c2stPmdyb3VwICYmCisJCQkJIXRp cGNfZ3JvdXBfY29uZyh0c2stPmdyb3VwLCBub2RlLCBwb3J0LCBibGtzLAorCQkJCQkJICZtYikp OwogCWlmICh1bmxpa2VseShyYykpCiAJCXJldHVybiByYzsKIApAQCAtOTIyLDcgKzkyMyw2IEBA IHN0YXRpYyBpbnQgdGlwY19zZW5kX2dyb3VwX2FueWNhc3Qoc3RydWN0IHNvY2tldCAqc29jaywg c3RydWN0IG1zZ2hkciAqbSwKIAlzdHJ1Y3QgdGlwY19zb2NrICp0c2sgPSB0aXBjX3NrKHNrKTsK IAlzdHJ1Y3QgbGlzdF9oZWFkICpjb25nX2xpbmtzID0gJnRzay0+Y29uZ19saW5rczsKIAlpbnQg YmxrcyA9IHRza19ibG9ja3MoR1JPVVBfSF9TSVpFICsgZGxlbik7Ci0Jc3RydWN0IHRpcGNfZ3Jv dXAgKmdycCA9IHRzay0+Z3JvdXA7CiAJc3RydWN0IHRpcGNfbXNnICpoZHIgPSAmdHNrLT5waGRy OwogCXN0cnVjdCB0aXBjX21lbWJlciAqZmlyc3QgPSBOVUxMOwogCXN0cnVjdCB0aXBjX21lbWJl ciAqbWJyID0gTlVMTDsKQEAgLTkzOSw5ICs5MzksMTAgQEAgc3RhdGljIGludCB0aXBjX3NlbmRf Z3JvdXBfYW55Y2FzdChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3QgbXNnaGRyICptLAogCXR5 cGUgPSBtc2dfbmFtZXR5cGUoaGRyKTsKIAlpbnN0ID0gZGVzdC0+YWRkci5uYW1lLm5hbWUuaW5z dGFuY2U7CiAJc2NvcGUgPSBtc2dfbG9va3VwX3Njb3BlKGhkcik7Ci0JZXhjbHVkZSA9IHRpcGNf Z3JvdXBfZXhjbHVkZShncnApOwogCiAJd2hpbGUgKCsrbG9va3VwcyA8IDQpIHsKKwkJZXhjbHVk ZSA9IHRpcGNfZ3JvdXBfZXhjbHVkZSh0c2stPmdyb3VwKTsKKwogCQlmaXJzdCA9IE5VTEw7CiAK IAkJLyogTG9vayBmb3IgYSBub24tY29uZ2VzdGVkIGRlc3RpbmF0aW9uIG1lbWJlciwgaWYgYW55 ICovCkBAIC05NTAsNyArOTUxLDggQEAgc3RhdGljIGludCB0aXBjX3NlbmRfZ3JvdXBfYW55Y2Fz dChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3QgbXNnaGRyICptLAogCQkJCQkJICZkc3RjbnQs IGV4Y2x1ZGUsIGZhbHNlKSkKIAkJCQlyZXR1cm4gLUVIT1NUVU5SRUFDSDsKIAkJCXRpcGNfZGVz dF9wb3AoJmRzdHMsICZub2RlLCAmcG9ydCk7Ci0JCQljb25nID0gdGlwY19ncm91cF9jb25nKGdy cCwgbm9kZSwgcG9ydCwgYmxrcywgJm1icik7CisJCQljb25nID0gdGlwY19ncm91cF9jb25nKHRz ay0+Z3JvdXAsIG5vZGUsIHBvcnQsIGJsa3MsCisJCQkJCSAgICAgICAmbWJyKTsKIAkJCWlmICgh Y29uZykKIAkJCQlicmVhazsKIAkJCWlmIChtYnIgPT0gZmlyc3QpCkBAIC05NjksNyArOTcxLDgg QEAgc3RhdGljIGludCB0aXBjX3NlbmRfZ3JvdXBfYW55Y2FzdChzdHJ1Y3Qgc29ja2V0ICpzb2Nr LCBzdHJ1Y3QgbXNnaGRyICptLAogCQkvKiBCbG9jayBvciByZXR1cm4gaWYgZGVzdGluYXRpb24g bGluayBvciBtZW1iZXIgaXMgY29uZ2VzdGVkICovCiAJCXJjID0gdGlwY193YWl0X2Zvcl9jb25k KHNvY2ssICZ0aW1lb3V0LAogCQkJCQkhdGlwY19kZXN0X2ZpbmQoY29uZ19saW5rcywgbm9kZSwg MCkgJiYKLQkJCQkJIXRpcGNfZ3JvdXBfY29uZyhncnAsIG5vZGUsIHBvcnQsCisJCQkJCXRzay0+ Z3JvdXAgJiYKKwkJCQkJIXRpcGNfZ3JvdXBfY29uZyh0c2stPmdyb3VwLCBub2RlLCBwb3J0LAog CQkJCQkJCSBibGtzLCAmbWJyKSk7CiAJCWlmICh1bmxpa2VseShyYykpCiAJCQlyZXR1cm4gcmM7 CkBAIC0xMDA0LDggKzEwMDcsNyBAQCBzdGF0aWMgaW50IHRpcGNfc2VuZF9ncm91cF9iY2FzdChz dHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3QgbXNnaGRyICptLAogCXN0cnVjdCBzb2NrICpzayA9 IHNvY2stPnNrOwogCXN0cnVjdCBuZXQgKm5ldCA9IHNvY2tfbmV0KHNrKTsKIAlzdHJ1Y3QgdGlw Y19zb2NrICp0c2sgPSB0aXBjX3NrKHNrKTsKLQlzdHJ1Y3QgdGlwY19ncm91cCAqZ3JwID0gdHNr LT5ncm91cDsKLQlzdHJ1Y3QgdGlwY19ubGlzdCAqZHN0cyA9IHRpcGNfZ3JvdXBfZGVzdHMoZ3Jw KTsKKwlzdHJ1Y3QgdGlwY19ubGlzdCAqZHN0cyA9IHRpcGNfZ3JvdXBfZGVzdHModHNrLT5ncm91 cCk7CiAJc3RydWN0IHRpcGNfbWNfbWV0aG9kICptZXRob2QgPSAmdHNrLT5tY19tZXRob2Q7CiAJ Ym9vbCBhY2sgPSBtZXRob2QtPm1hbmRhdG9yeSAmJiBtZXRob2QtPnJjYXN0OwogCWludCBibGtz ID0gdHNrX2Jsb2NrcyhNQ0FTVF9IX1NJWkUgKyBkbGVuKTsKQEAgLTEwMTgsOCArMTAyMCw5IEBA IHN0YXRpYyBpbnQgdGlwY19zZW5kX2dyb3VwX2JjYXN0KHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0 cnVjdCBtc2doZHIgKm0sCiAJCXJldHVybiAtRUhPU1RVTlJFQUNIOwogCiAJLyogQmxvY2sgb3Ig cmV0dXJuIGlmIGFueSBkZXN0aW5hdGlvbiBsaW5rIG9yIG1lbWJlciBpcyBjb25nZXN0ZWQgKi8K LQlyYyA9IHRpcGNfd2FpdF9mb3JfY29uZChzb2NrLCAmdGltZW91dCwJIXRzay0+Y29uZ19saW5r X2NudCAmJgotCQkJCSF0aXBjX2dyb3VwX2JjX2NvbmcoZ3JwLCBibGtzKSk7CisJcmMgPSB0aXBj X3dhaXRfZm9yX2NvbmQoc29jaywgJnRpbWVvdXQsCisJCQkJIXRzay0+Y29uZ19saW5rX2NudCAm JiB0c2stPmdyb3VwICYmCisJCQkJIXRpcGNfZ3JvdXBfYmNfY29uZyh0c2stPmdyb3VwLCBibGtz KSk7CiAJaWYgKHVubGlrZWx5KHJjKSkKIAkJcmV0dXJuIHJjOwogCkBAIC0xMDM0LDcgKzEwMzcs NyBAQCBzdGF0aWMgaW50IHRpcGNfc2VuZF9ncm91cF9iY2FzdChzdHJ1Y3Qgc29ja2V0ICpzb2Nr LCBzdHJ1Y3QgbXNnaGRyICptLAogCW1zZ19zZXRfaGRyX3N6KGhkciwgR1JPVVBfSF9TSVpFKTsK IAltc2dfc2V0X2Rlc3Rwb3J0KGhkciwgMCk7CiAJbXNnX3NldF9kZXN0bm9kZShoZHIsIDApOwot CW1zZ19zZXRfZ3JwX2JjX3NlcW5vKGhkciwgdGlwY19ncm91cF9iY19zbmRfbnh0KGdycCkpOwor CW1zZ19zZXRfZ3JwX2JjX3NlcW5vKGhkciwgdGlwY19ncm91cF9iY19zbmRfbnh0KHRzay0+Z3Jv dXApKTsKIAogCS8qIEF2b2lkIGdldHRpbmcgc3R1Y2sgd2l0aCByZXBlYXRlZCBmb3JjZWQgcmVw bGljYXN0cyAqLwogCW1zZ19zZXRfZ3JwX2JjX2Fja19yZXEoaGRyLCBhY2spOwotLSAKMi4yMC4x CgoKRnJvbSAzM2I5YjkxMDdlZGZkMTJmMTZlMDc2OWNhNjRmNTIwZTgwOGZmZmNlIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBDb25nIFdhbmcgPHhpeW91Lndhbmdjb25nQGdtYWlsLmNv bT4KRGF0ZTogTW9uLCAxMCBEZWMgMjAxOCAxNToyMzozMCAtMDgwMApTdWJqZWN0OiBbUEFUQ0gg MzQvNThdIHRpcGM6IGNvbXBhcmUgcmVtb3RlIGFuZCBsb2NhbCBwcm90b2NvbHMgaW4KIHRpcGNf dWRwX2VuYWJsZSgpCgpbIFVwc3RyZWFtIGNvbW1pdCBmYjgzZWQ0OTZiOWE2NTRmNjBjZDFkNThh MGUxZTc5ZWM1Njk0ODA4IF0KCldoZW4gVElQQ19OTEFfVURQX1JFTU9URSBpcyBhbiBJUHY2IG1j YXN0IGFkZHJlc3MgYnV0ClRJUENfTkxBX1VEUF9MT0NBTCBpcyBhbiBJUHY0IGFkZHJlc3MsIGEg TlVMTC1wdHIgZGVyZWYgaXMgdHJpZ2dlcmVkCmFzIHRoZSBVRFAgdHVubmVsIHNvY2sgaXMgaW5p dGlhbGl6ZWQgdG8gSVB2NCBvciBJUHY2IHNvY2sgbWVyZWx5CmJhc2VkIG9uIHRoZSBwcm90b2Nv bCBpbiBsb2NhbCBhZGRyZXNzLgoKV2Ugc2hvdWxkIGp1c3QgZXJyb3Igb3V0IHdoZW4gdGhlIHJl bW90ZSBhZGRyZXNzIGFuZCBsb2NhbCBhZGRyZXNzCmhhdmUgZGlmZmVyZW50IHByb3RvY29scy4K ClJlcG9ydGVkLWJ5OiBzeXpib3QrZWI0ZGEzYTIwZmFkMmU1MjU1NWRAc3l6a2FsbGVyLmFwcHNw b3RtYWlsLmNvbQpDYzogWWluZyBYdWUgPHlpbmcueHVlQHdpbmRyaXZlci5jb20+CkNjOiBKb24g TWFsb3kgPGpvbi5tYWxveUBlcmljc3Nvbi5jb20+ClNpZ25lZC1vZmYtYnk6IENvbmcgV2FuZyA8 eGl5b3Uud2FuZ2NvbmdAZ21haWwuY29tPgpBY2tlZC1ieTogSm9uIE1hbG95IDxqb24ubWFsb3lA ZXJpY3Nzb24uY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVt bG9mdC5uZXQ+Ci0tLQogbmV0L3RpcGMvdWRwX21lZGlhLmMgfCA1ICsrKysrCiAxIGZpbGUgY2hh bmdlZCwgNSBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbmV0L3RpcGMvdWRwX21lZGlhLmMg Yi9uZXQvdGlwYy91ZHBfbWVkaWEuYwppbmRleCA5NzgzMTAxYmM0YTkuLmU2ODVhZjRmNTQ4MyAx MDA2NDQKLS0tIGEvbmV0L3RpcGMvdWRwX21lZGlhLmMKKysrIGIvbmV0L3RpcGMvdWRwX21lZGlh LmMKQEAgLTY4MCw2ICs2ODAsMTEgQEAgc3RhdGljIGludCB0aXBjX3VkcF9lbmFibGUoc3RydWN0 IG5ldCAqbmV0LCBzdHJ1Y3QgdGlwY19iZWFyZXIgKmIsCiAJaWYgKGVycikKIAkJZ290byBlcnI7 CiAKKwlpZiAocmVtb3RlLnByb3RvICE9IGxvY2FsLnByb3RvKSB7CisJCWVyciA9IC1FSU5WQUw7 CisJCWdvdG8gZXJyOworCX0KKwogCS8qIEF1dG9jb25maWd1cmUgb3duIG5vZGUgaWRlbnRpdHkg aWYgbmVlZGVkICovCiAJaWYgKCF0aXBjX293bl9pZChuZXQpKSB7CiAJCW1lbWNweShub2RlX2lk LCBsb2NhbC5pcHY2LmluNl91LnU2X2FkZHI4LCAxNik7Ci0tIAoyLjIwLjEKCgpGcm9tIGE5MTFh NmZjNzMxMWYyYjlkOWU2MzgyN2E5OGQ1M2RhZTkxNzY4ZGMgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IENvbmcgV2FuZyA8eGl5b3Uud2FuZ2NvbmdAZ21haWwuY29tPgpEYXRlOiBTdW4s IDIzIERlYyAyMDE4IDIxOjQ1OjU2IC0wODAwClN1YmplY3Q6IFtQQVRDSCAzNS81OF0gdGlwYzog Zml4IGEgZG91YmxlIGZyZWUgaW4gdGlwY19lbmFibGVfYmVhcmVyKCkKClsgVXBzdHJlYW0gY29t bWl0IGRjNDUwMWZmMjg3NTQ3ZGVhN2NhMTBmMWM1ODBjNzQxMjkxYTg3NjAgXQoKYmVhcmVyX2Rp c2FibGUoKSBhbHJlYWR5IGNhbGxzIGtmcmVlX3JjdSgpIHRvIGZyZWUgc3RydWN0IHRpcGNfYmVh cmVyLAp3ZSBkb24ndCBuZWVkIHRvIGNhbGwga2ZyZWUoKSBhZ2Fpbi4KCkZpeGVzOiBjYjMwYTYz Mzg0YmMgKCJ0aXBjOiByZWZhY3RvciBmdW5jdGlvbiB0aXBjX2VuYWJsZV9iZWFyZXIoKSIpClJl cG9ydGVkLWJ5OiBzeXpib3QrYjk4MWFjZjFmYjI0MGMwYzEyOGJAc3l6a2FsbGVyLmFwcHNwb3Rt YWlsLmNvbQpDYzogWWluZyBYdWUgPHlpbmcueHVlQHdpbmRyaXZlci5jb20+CkNjOiBKb24gTWFs b3kgPGpvbi5tYWxveUBlcmljc3Nvbi5jb20+ClNpZ25lZC1vZmYtYnk6IENvbmcgV2FuZyA8eGl5 b3Uud2FuZ2NvbmdAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRh dmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3RpcGMvYmVhcmVyLmMgfCAxIC0KIDEgZmlsZSBj aGFuZ2VkLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3RpcGMvYmVhcmVyLmMgYi9u ZXQvdGlwYy9iZWFyZXIuYwppbmRleCA2NDVjMTYwNTIwNTIuLjI2NDlhMGEwZDQ1ZSAxMDA2NDQK LS0tIGEvbmV0L3RpcGMvYmVhcmVyLmMKKysrIGIvbmV0L3RpcGMvYmVhcmVyLmMKQEAgLTMxNyw3 ICszMTcsNiBAQCBzdGF0aWMgaW50IHRpcGNfZW5hYmxlX2JlYXJlcihzdHJ1Y3QgbmV0ICpuZXQs IGNvbnN0IGNoYXIgKm5hbWUsCiAJcmVzID0gdGlwY19kaXNjX2NyZWF0ZShuZXQsIGIsICZiLT5i Y2FzdF9hZGRyLCAmc2tiKTsKIAlpZiAocmVzKSB7CiAJCWJlYXJlcl9kaXNhYmxlKG5ldCwgYik7 Ci0JCWtmcmVlKGIpOwogCQllcnJzdHIgPSAiZmFpbGVkIHRvIGNyZWF0ZSBkaXNjb3ZlcmVyIjsK IAkJZ290byByZWplY3RlZDsKIAl9Ci0tIAoyLjIwLjEKCgpGcm9tIDIxNTZmNzYwYTEyYjRjZGFi ZmFmYzBkNmY3NmIyYzA0NWUxODk5ZmYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IENv bmcgV2FuZyA8eGl5b3Uud2FuZ2NvbmdAZ21haWwuY29tPgpEYXRlOiBNb24sIDEwIERlYyAyMDE4 IDEyOjQ1OjQ1IC0wODAwClN1YmplY3Q6IFtQQVRDSCAzNi81OF0gdGlwYzogZml4IGEgZG91Ymxl IGtmcmVlX3NrYigpCgpbIFVwc3RyZWFtIGNvbW1pdCBhY2I0YTMzZTk4NTZkNWZhMzM4NGI4N2Qz ZDgzNjkyMjliZTA2ZDMxIF0KCnRpcGNfdWRwX3htaXQoKSBkcm9wcyB0aGUgcGFja2V0IG9uIGVy cm9yLCB0aGVyZSBpcyBubwpuZWVkIHRvIGRyb3AgaXQgYWdhaW4uCgpGaXhlczogZWYyMGNkNGRk MTYzICgidGlwYzogaW50cm9kdWNlIFVEUCByZXBsaWNhc3QiKQpSZXBvcnRlZC1hbmQtdGVzdGVk LWJ5OiBzeXpib3QrZWFlNTg1YmEyY2MyNzUyZDM3MDRAc3l6a2FsbGVyLmFwcHNwb3RtYWlsLmNv bQpDYzogWWluZyBYdWUgPHlpbmcueHVlQHdpbmRyaXZlci5jb20+CkNjOiBKb24gTWFsb3kgPGpv bi5tYWxveUBlcmljc3Nvbi5jb20+ClNpZ25lZC1vZmYtYnk6IENvbmcgV2FuZyA8eGl5b3Uud2Fu Z2NvbmdAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3RpcGMvdWRwX21lZGlhLmMgfCA0ICstLS0KIDEgZmlsZSBj aGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQv dGlwYy91ZHBfbWVkaWEuYyBiL25ldC90aXBjL3VkcF9tZWRpYS5jCmluZGV4IGU2ODVhZjRmNTQ4 My4uZGEyZDMxMTQ3NmFiIDEwMDY0NAotLS0gYS9uZXQvdGlwYy91ZHBfbWVkaWEuYworKysgYi9u ZXQvdGlwYy91ZHBfbWVkaWEuYwpAQCAtMjQ1LDEwICsyNDUsOCBAQCBzdGF0aWMgaW50IHRpcGNf dWRwX3NlbmRfbXNnKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJfQog CiAJCWVyciA9IHRpcGNfdWRwX3htaXQobmV0LCBfc2tiLCB1Yiwgc3JjLCAmcmNhc3QtPmFkZHIp OwotCQlpZiAoZXJyKSB7Ci0JCQlrZnJlZV9za2IoX3NrYik7CisJCWlmIChlcnIpCiAJCQlnb3Rv IG91dDsKLQkJfQogCX0KIAllcnIgPSAwOwogb3V0OgotLSAKMi4yMC4xCgoKRnJvbSBhZjM3YzRk ZDAyYjA5ZTE5MWQ4NjcwNjhmNmVjMjlhZmQxOTRmMmI1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBDb25nIFdhbmcgPHhpeW91Lndhbmdjb25nQGdtYWlsLmNvbT4KRGF0ZTogTW9uLCAx MCBEZWMgMjAxOCAxMTo0OTo1NSAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMzcvNThdIHRpcGM6IHVz ZSBsb2NrX3NvY2soKSBpbiB0aXBjX3NrX3JlaW5pdCgpCgpbIFVwc3RyZWFtIGNvbW1pdCAxNWVm NzBlMjg2MTc2MTY1ZDI4YjBiOGE5NjliNDIyNTYxYTY4ZGZjIF0KCmxvY2tfc29jaygpIG11c3Qg YmUgdXNlZCBpbiBwcm9jZXNzIGNvbnRleHQgdG8gYmUgcmFjZS1mcmVlIHdpdGgKb3RoZXIgbG9j a19zb2NrKCkgY2FsbGVycywgZm9yIGV4YW1wbGUsIHRpcGNfcmVsZWFzZSgpLiBPdGhlcndpc2UK dXNpbmcgdGhlIHNwaW5sb2NrIGRpcmVjdGx5IGNhbid0IHNlcmlhbGl6ZSBhIHBhcmFsbGVsIHRp cGNfcmVsZWFzZSgpLgoKQXMgaXQgaXMgYmxvY2tpbmcsIHdlIGhhdmUgdG8gaG9sZCB0aGUgc29j ayByZWZjbnQgYmVmb3JlCnJoYXNodGFibGVfd2Fsa19zdG9wKCkgYW5kIHJlbGVhc2UgaXQgYWZ0 ZXIgcmhhc2h0YWJsZV93YWxrX3N0YXJ0KCkuCgpGaXhlczogMDdmNmM0YmMwNDhhICgidGlwYzog Y29udmVydCB0aXBjIHJlZmVyZW5jZSB0YWJsZSB0byB1c2UgZ2VuZXJpYyByaGFzaHRhYmxlIikK UmVwb3J0ZWQtYnk6IERtaXRyeSBWeXVrb3YgPGR2eXVrb3ZAZ29vZ2xlLmNvbT4KQ2M6IFlpbmcg WHVlIDx5aW5nLnh1ZUB3aW5kcml2ZXIuY29tPgpDYzogSm9uIE1hbG95IDxqb24ubWFsb3lAZXJp Y3Nzb24uY29tPgpTaWduZWQtb2ZmLWJ5OiBDb25nIFdhbmcgPHhpeW91Lndhbmdjb25nQGdtYWls LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0 PgotLS0KIG5ldC90aXBjL3NvY2tldC5jIHwgOCArKysrKystLQogMSBmaWxlIGNoYW5nZWQsIDYg aW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvdGlwYy9zb2Nr ZXQuYyBiL25ldC90aXBjL3NvY2tldC5jCmluZGV4IDlmM2FjZDU3MGExMi4uZWNlMDlkZmVhYzUy IDEwMDY0NAotLS0gYS9uZXQvdGlwYy9zb2NrZXQuYworKysgYi9uZXQvdGlwYy9zb2NrZXQuYwpA QCAtMjY4NiwxMSArMjY4NiwxNSBAQCB2b2lkIHRpcGNfc2tfcmVpbml0KHN0cnVjdCBuZXQgKm5l dCkKIAkJcmhhc2h0YWJsZV93YWxrX3N0YXJ0KCZpdGVyKTsKIAogCQl3aGlsZSAoKHRzayA9IHJo YXNodGFibGVfd2Fsa19uZXh0KCZpdGVyKSkgJiYgIUlTX0VSUih0c2spKSB7Ci0JCQlzcGluX2xv Y2tfYmgoJnRzay0+c2suc2tfbG9jay5zbG9jayk7CisJCQlzb2NrX2hvbGQoJnRzay0+c2spOwor CQkJcmhhc2h0YWJsZV93YWxrX3N0b3AoJml0ZXIpOworCQkJbG9ja19zb2NrKCZ0c2stPnNrKTsK IAkJCW1zZyA9ICZ0c2stPnBoZHI7CiAJCQltc2dfc2V0X3ByZXZub2RlKG1zZywgdGlwY19vd25f YWRkcihuZXQpKTsKIAkJCW1zZ19zZXRfb3JpZ25vZGUobXNnLCB0aXBjX293bl9hZGRyKG5ldCkp OwotCQkJc3Bpbl91bmxvY2tfYmgoJnRzay0+c2suc2tfbG9jay5zbG9jayk7CisJCQlyZWxlYXNl X3NvY2soJnRzay0+c2spOworCQkJcmhhc2h0YWJsZV93YWxrX3N0YXJ0KCZpdGVyKTsKKwkJCXNv Y2tfcHV0KCZ0c2stPnNrKTsKIAkJfQogCiAJCXJoYXNodGFibGVfd2Fsa19zdG9wKCZpdGVyKTsK LS0gCjIuMjAuMQoKCkZyb20gOGRkMDBmNzBhZWMwNDEzZjcwZjIyZTFhOWNkYzcxMzhjNzYzYTQ2 MSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSmFzb24gV2FuZyA8amFzb3dhbmdAcmVk aGF0LmNvbT4KRGF0ZTogVGh1LCAxMyBEZWMgMjAxOCAxMDo1MzozNyArMDgwMApTdWJqZWN0OiBb UEFUQ0ggMzgvNThdIHZob3N0OiBtYWtlIHN1cmUgdXNlZCBpZHggaXMgc2VlbiBiZWZvcmUgbG9n IGluCiB2aG9zdF9hZGRfdXNlZF9uKCkKClsgVXBzdHJlYW0gY29tbWl0IDg0MWRmOTIyNDE3ZWI4 MmM4MzVlOTNkNGI5M2ViNmE2OGM5OWQ1OTkgXQoKV2UgbWlzcyBhIHdyaXRlIGJhcnJpZXIgdGhh dCBndWFyYW50ZWVzIHVzZWQgaWR4IGlzIHVwZGF0ZWQgYW5kIHNlZW4KYmVmb3JlIGxvZy4gVGhp cyB3aWxsIGxldCB1c2Vyc3BhY2Ugc3luYyBhbmQgY29weSB1c2VkIHJpbmcgYmVmb3JlCnVzZWQg aWR4IGlzIHVwZGF0ZS4gRml4IHRoaXMgYnkgYWRkaW5nIGEgYmFycmllciBiZWZvcmUgbG9nX3dy aXRlKCkuCgpGaXhlczogOGRkMDE0YWRmZWE2ZiAoInZob3N0LW5ldDogbWVyZ2VhYmxlIGJ1ZmZl cnMgc3VwcG9ydCIpCkFja2VkLWJ5OiBNaWNoYWVsIFMuIFRzaXJraW4gPG1zdEByZWRoYXQuY29t PgpTaWduZWQtb2ZmLWJ5OiBKYXNvbiBXYW5nIDxqYXNvd2FuZ0ByZWRoYXQuY29tPgpTaWduZWQt b2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVy cy92aG9zdC92aG9zdC5jIHwgMiArKwogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKQoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmhvc3Qvdmhvc3QuYyBiL2RyaXZlcnMvdmhvc3Qvdmhvc3Qu YwppbmRleCBlYjk1ZGFhM2U1YTUuLjU1ZTVhYTY2MmFkNSAxMDA2NDQKLS0tIGEvZHJpdmVycy92 aG9zdC92aG9zdC5jCisrKyBiL2RyaXZlcnMvdmhvc3Qvdmhvc3QuYwpAQCAtMjIzMyw2ICsyMjMz LDggQEAgaW50IHZob3N0X2FkZF91c2VkX24oc3RydWN0IHZob3N0X3ZpcnRxdWV1ZSAqdnEsIHN0 cnVjdCB2cmluZ191c2VkX2VsZW0gKmhlYWRzLAogCQlyZXR1cm4gLUVGQVVMVDsKIAl9CiAJaWYg KHVubGlrZWx5KHZxLT5sb2dfdXNlZCkpIHsKKwkJLyogTWFrZSBzdXJlIHVzZWQgaWR4IGlzIHNl ZW4gYmVmb3JlIGxvZy4gKi8KKwkJc21wX3dtYigpOwogCQkvKiBMb2cgdXNlZCBpbmRleCB1cGRh dGUuICovCiAJCWxvZ193cml0ZSh2cS0+bG9nX2Jhc2UsCiAJCQkgIHZxLT5sb2dfYWRkciArIG9m ZnNldG9mKHN0cnVjdCB2cmluZ191c2VkLCBpZHgpLAotLSAKMi4yMC4xCgoKRnJvbSAxYjhiODM0 MWJjMmRhZjNmY2MzNmFkOGVhZDM3YmZiODYyNTY3MGUxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBKb3JnZW4gSGFuc2VuIDxqaGFuc2VuQHZtd2FyZS5jb20+CkRhdGU6IFR1ZSwgMTgg RGVjIDIwMTggMDA6MzQ6MDYgLTA4MDAKU3ViamVjdDogW1BBVENIIDM5LzU4XSBWU09DSzogU2Vu ZCByZXNldCBjb250cm9sIHBhY2tldCB3aGVuIHNvY2tldCBpcwogcGFydGlhbGx5IGJvdW5kCgpb IFVwc3RyZWFtIGNvbW1pdCBhOTE1Yjk4MmQ4ZjVlNDI5NWY2NGI4ZGQzN2NlNzUzODc0ODY3ZTg4 IF0KCklmIGEgc2VydmVyIHNpZGUgc29ja2V0IGlzIGJvdW5kIHRvIGFuIGFkZHJlc3MsIGJ1dCBu b3QgaW4gdGhlIGxpc3RlbmluZwpzdGF0ZSB5ZXQsIGluY29taW5nIGNvbm5lY3Rpb24gcmVxdWVz dHMgc2hvdWxkIHJlY2VpdmUgYSByZXNldCBjb250cm9sCnBhY2tldCBpbiByZXNwb25zZS4gSG93 ZXZlciwgdGhlIGZ1bmN0aW9uIHVzZWQgdG8gc2VuZCB0aGUgcmVzZXQKc2lsZW50bHkgZHJvcHMg dGhlIHJlc2V0IHBhY2tldCBpZiB0aGUgc2VuZGluZyBzb2NrZXQgaXNuJ3QgYm91bmQKdG8gYSBy ZW1vdGUgYWRkcmVzcyAoYXMgaXMgdGhlIGNhc2UgZm9yIGEgYm91bmQgc29ja2V0IG5vdCB5ZXQg aW4KdGhlIGxpc3RlbmluZyBzdGF0ZSkuIFRoaXMgY2hhbmdlIGZpeGVzIHRoaXMgYnkgdXNpbmcg dGhlIHNyYwpvZiB0aGUgaW5jb21pbmcgcGFja2V0IGFzIGRlc3RpbmF0aW9uIGZvciB0aGUgcmVz ZXQgcGFja2V0IGluCnRoaXMgY2FzZS4KCkZpeGVzOiBkMDIxYzM0NDA1MWEgKCJWU09DSzogSW50 cm9kdWNlIFZNIFNvY2tldHMiKQpSZXZpZXdlZC1ieTogQWRpdCBSYW5hZGl2ZSA8YWRpdHJAdm13 YXJlLmNvbT4KUmV2aWV3ZWQtYnk6IFZpc2hudSBEYXNhIDx2ZGFzYUB2bXdhcmUuY29tPgpTaWdu ZWQtb2ZmLWJ5OiBKb3JnZW4gSGFuc2VuIDxqaGFuc2VuQHZtd2FyZS5jb20+ClNpZ25lZC1vZmYt Ynk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvdm13X3Zz b2NrL3ZtY2lfdHJhbnNwb3J0LmMgfCA2NyArKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0t LS0tCiAxIGZpbGUgY2hhbmdlZCwgNTAgaW5zZXJ0aW9ucygrKSwgMTcgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvbmV0L3Ztd192c29jay92bWNpX3RyYW5zcG9ydC5jIGIvbmV0L3Ztd192c29j ay92bWNpX3RyYW5zcG9ydC5jCmluZGV4IGNiMzMyYWRiODRjZC4uYzM2MWNlNzgyNDEyIDEwMDY0 NAotLS0gYS9uZXQvdm13X3Zzb2NrL3ZtY2lfdHJhbnNwb3J0LmMKKysrIGIvbmV0L3Ztd192c29j ay92bWNpX3RyYW5zcG9ydC5jCkBAIC0yNjMsNiArMjYzLDMxIEBAIHZtY2lfdHJhbnNwb3J0X3Nl bmRfY29udHJvbF9wa3RfYmgoc3RydWN0IHNvY2thZGRyX3ZtICpzcmMsCiAJCQkJCQkgZmFsc2Up OwogfQogCitzdGF0aWMgaW50Cit2bWNpX3RyYW5zcG9ydF9hbGxvY19zZW5kX2NvbnRyb2xfcGt0 KHN0cnVjdCBzb2NrYWRkcl92bSAqc3JjLAorCQkJCSAgICAgIHN0cnVjdCBzb2NrYWRkcl92bSAq ZHN0LAorCQkJCSAgICAgIGVudW0gdm1jaV90cmFuc3BvcnRfcGFja2V0X3R5cGUgdHlwZSwKKwkJ CQkgICAgICB1NjQgc2l6ZSwKKwkJCQkgICAgICB1NjQgbW9kZSwKKwkJCQkgICAgICBzdHJ1Y3Qg dm1jaV90cmFuc3BvcnRfd2FpdGluZ19pbmZvICp3YWl0LAorCQkJCSAgICAgIHUxNiBwcm90bywK KwkJCQkgICAgICBzdHJ1Y3Qgdm1jaV9oYW5kbGUgaGFuZGxlKQoreworCXN0cnVjdCB2bWNpX3Ry YW5zcG9ydF9wYWNrZXQgKnBrdDsKKwlpbnQgZXJyOworCisJcGt0ID0ga21hbGxvYyhzaXplb2Yo KnBrdCksIEdGUF9LRVJORUwpOworCWlmICghcGt0KQorCQlyZXR1cm4gLUVOT01FTTsKKworCWVy ciA9IF9fdm1jaV90cmFuc3BvcnRfc2VuZF9jb250cm9sX3BrdChwa3QsIHNyYywgZHN0LCB0eXBl LCBzaXplLAorCQkJCQkJbW9kZSwgd2FpdCwgcHJvdG8sIGhhbmRsZSwKKwkJCQkJCXRydWUpOwor CWtmcmVlKHBrdCk7CisKKwlyZXR1cm4gZXJyOworfQorCiBzdGF0aWMgaW50CiB2bWNpX3RyYW5z cG9ydF9zZW5kX2NvbnRyb2xfcGt0KHN0cnVjdCBzb2NrICpzaywKIAkJCQllbnVtIHZtY2lfdHJh bnNwb3J0X3BhY2tldF90eXBlIHR5cGUsCkBAIC0yNzIsOSArMjk3LDcgQEAgdm1jaV90cmFuc3Bv cnRfc2VuZF9jb250cm9sX3BrdChzdHJ1Y3Qgc29jayAqc2ssCiAJCQkJdTE2IHByb3RvLAogCQkJ CXN0cnVjdCB2bWNpX2hhbmRsZSBoYW5kbGUpCiB7Ci0Jc3RydWN0IHZtY2lfdHJhbnNwb3J0X3Bh Y2tldCAqcGt0OwogCXN0cnVjdCB2c29ja19zb2NrICp2c2s7Ci0JaW50IGVycjsKIAogCXZzayA9 IHZzb2NrX3NrKHNrKTsKIApAQCAtMjg0LDE3ICszMDcsMTAgQEAgdm1jaV90cmFuc3BvcnRfc2Vu ZF9jb250cm9sX3BrdChzdHJ1Y3Qgc29jayAqc2ssCiAJaWYgKCF2c29ja19hZGRyX2JvdW5kKCZ2 c2stPnJlbW90ZV9hZGRyKSkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKLQlwa3QgPSBrbWFsbG9jKHNp emVvZigqcGt0KSwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFwa3QpCi0JCXJldHVybiAtRU5PTUVNOwot Ci0JZXJyID0gX192bWNpX3RyYW5zcG9ydF9zZW5kX2NvbnRyb2xfcGt0KHBrdCwgJnZzay0+bG9j YWxfYWRkciwKLQkJCQkJCSZ2c2stPnJlbW90ZV9hZGRyLCB0eXBlLCBzaXplLAotCQkJCQkJbW9k ZSwgd2FpdCwgcHJvdG8sIGhhbmRsZSwKLQkJCQkJCXRydWUpOwotCWtmcmVlKHBrdCk7Ci0KLQly ZXR1cm4gZXJyOworCXJldHVybiB2bWNpX3RyYW5zcG9ydF9hbGxvY19zZW5kX2NvbnRyb2xfcGt0 KCZ2c2stPmxvY2FsX2FkZHIsCisJCQkJCQkgICAgICZ2c2stPnJlbW90ZV9hZGRyLAorCQkJCQkJ ICAgICB0eXBlLCBzaXplLCBtb2RlLAorCQkJCQkJICAgICB3YWl0LCBwcm90bywgaGFuZGxlKTsK IH0KIAogc3RhdGljIGludCB2bWNpX3RyYW5zcG9ydF9zZW5kX3Jlc2V0X2JoKHN0cnVjdCBzb2Nr YWRkcl92bSAqZHN0LApAQCAtMzEyLDEyICszMjgsMjkgQEAgc3RhdGljIGludCB2bWNpX3RyYW5z cG9ydF9zZW5kX3Jlc2V0X2JoKHN0cnVjdCBzb2NrYWRkcl92bSAqZHN0LAogc3RhdGljIGludCB2 bWNpX3RyYW5zcG9ydF9zZW5kX3Jlc2V0KHN0cnVjdCBzb2NrICpzaywKIAkJCQkgICAgIHN0cnVj dCB2bWNpX3RyYW5zcG9ydF9wYWNrZXQgKnBrdCkKIHsKKwlzdHJ1Y3Qgc29ja2FkZHJfdm0gKmRz dF9wdHI7CisJc3RydWN0IHNvY2thZGRyX3ZtIGRzdDsKKwlzdHJ1Y3QgdnNvY2tfc29jayAqdnNr OworCiAJaWYgKHBrdC0+dHlwZSA9PSBWTUNJX1RSQU5TUE9SVF9QQUNLRVRfVFlQRV9SU1QpCiAJ CXJldHVybiAwOwotCXJldHVybiB2bWNpX3RyYW5zcG9ydF9zZW5kX2NvbnRyb2xfcGt0KHNrLAot CQkJCQlWTUNJX1RSQU5TUE9SVF9QQUNLRVRfVFlQRV9SU1QsCi0JCQkJCTAsIDAsIE5VTEwsIFZT T0NLX1BST1RPX0lOVkFMSUQsCi0JCQkJCVZNQ0lfSU5WQUxJRF9IQU5ETEUpOworCisJdnNrID0g dnNvY2tfc2soc2spOworCisJaWYgKCF2c29ja19hZGRyX2JvdW5kKCZ2c2stPmxvY2FsX2FkZHIp KQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWlmICh2c29ja19hZGRyX2JvdW5kKCZ2c2stPnJlbW90 ZV9hZGRyKSkgeworCQlkc3RfcHRyID0gJnZzay0+cmVtb3RlX2FkZHI7CisJfSBlbHNlIHsKKwkJ dnNvY2tfYWRkcl9pbml0KCZkc3QsIHBrdC0+ZGcuc3JjLmNvbnRleHQsCisJCQkJcGt0LT5zcmNf cG9ydCk7CisJCWRzdF9wdHIgPSAmZHN0OworCX0KKwlyZXR1cm4gdm1jaV90cmFuc3BvcnRfYWxs b2Nfc2VuZF9jb250cm9sX3BrdCgmdnNrLT5sb2NhbF9hZGRyLCBkc3RfcHRyLAorCQkJCQkgICAg IFZNQ0lfVFJBTlNQT1JUX1BBQ0tFVF9UWVBFX1JTVCwKKwkJCQkJICAgICAwLCAwLCBOVUxMLCBW U09DS19QUk9UT19JTlZBTElELAorCQkJCQkgICAgIFZNQ0lfSU5WQUxJRF9IQU5ETEUpOwogfQog CiBzdGF0aWMgaW50IHZtY2lfdHJhbnNwb3J0X3NlbmRfbmVnb3RpYXRlKHN0cnVjdCBzb2NrICpz aywgc2l6ZV90IHNpemUpCi0tIAoyLjIwLjEKCgpGcm9tIGNjOTgzYTFiMDBiYzE5NmJjNTcxMzUw YzAwMDA2ZTU1NWIzYzFhYmMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEp1ZXJnZW4g R3Jvc3MgPGpncm9zc0BzdXNlLmNvbT4KRGF0ZTogVHVlLCAxOCBEZWMgMjAxOCAxNjowNjoxOSAr MDEwMApTdWJqZWN0OiBbUEFUQ0ggNDAvNThdIHhlbi9uZXRmcm9udDogdG9sZXJhdGUgZnJhZ3Mg d2l0aCBubyBkYXRhCgpbIFVwc3RyZWFtIGNvbW1pdCBkODFjNTA1NGE1ZDFkNDk5OWM3Y2RlYWQ3 NjM2YjZjZDRhZjgzZDM2IF0KCkF0IGxlYXN0IG9sZCBYZW4gbmV0IGJhY2tlbmRzIHNlZW0gdG8g c2VuZCBmcmFncyB3aXRoIG5vIHJlYWwgZGF0YQpzb21ldGltZXMuIEluIGNhc2Ugc3VjaCBhIGZy YWdtZW50IGhhcHBlbnMgdG8gb2NjdXIgd2l0aCB0aGUgZnJhZyBsaW1pdAphbHJlYWR5IHJlYWNo ZWQgdGhlIGZyb250ZW5kIHdpbGwgQlVHIGN1cnJlbnRseSBldmVuIGlmIHRoaXMgc2l0dWF0aW9u CmlzIGVhc2lseSByZWNvdmVyYWJsZS4KCk1vZGlmeSB0aGUgQlVHX09OKCkgY29uZGl0aW9uIGFj Y29yZGluZ2x5LgoKVGVzdGVkLWJ5OiBEaWV0bWFyIEhhaG4gPGRpZXRtYXIuaGFobkB0cy5mdWpp dHN1LmNvbT4KU2lnbmVkLW9mZi1ieTogSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuY29tPgpT aWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQog ZHJpdmVycy9uZXQveGVuLW5ldGZyb250LmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNl cnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC94ZW4tbmV0 ZnJvbnQuYyBiL2RyaXZlcnMvbmV0L3hlbi1uZXRmcm9udC5jCmluZGV4IGYxN2Y2MDJlNjE3MS4u NWI5N2NjOTQ2ZDcwIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC94ZW4tbmV0ZnJvbnQuYworKysg Yi9kcml2ZXJzL25ldC94ZW4tbmV0ZnJvbnQuYwpAQCAtOTA1LDcgKzkwNSw3IEBAIHN0YXRpYyBS SU5HX0lEWCB4ZW5uZXRfZmlsbF9mcmFncyhzdHJ1Y3QgbmV0ZnJvbnRfcXVldWUgKnF1ZXVlLAog CQlpZiAoc2tiX3NoaW5mbyhza2IpLT5ucl9mcmFncyA9PSBNQVhfU0tCX0ZSQUdTKSB7CiAJCQl1 bnNpZ25lZCBpbnQgcHVsbF90byA9IE5FVEZST05UX1NLQl9DQihza2IpLT5wdWxsX3RvOwogCi0J CQlCVUdfT04ocHVsbF90byA8PSBza2JfaGVhZGxlbihza2IpKTsKKwkJCUJVR19PTihwdWxsX3Rv IDwgc2tiX2hlYWRsZW4oc2tiKSk7CiAJCQlfX3Bza2JfcHVsbF90YWlsKHNrYiwgcHVsbF90byAt IHNrYl9oZWFkbGVuKHNrYikpOwogCQl9CiAJCWlmICh1bmxpa2VseShza2Jfc2hpbmZvKHNrYikt Pm5yX2ZyYWdzID49IE1BWF9TS0JfRlJBR1MpKSB7Ci0tIAoyLjIwLjEKCgpGcm9tIDY2MWU1NTI2 N2RmNDRjNTUzOWNlYTM1NWM0MTQxMDc3MGY2MDczMTAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IFl1dmFsIEF2bmVyeSA8eXV2YWxhdkBtZWxsYW5veC5jb20+CkRhdGU6IFRodSwgMTMg RGVjIDIwMTggMDI6MjY6NDYgKzAyMDAKU3ViamVjdDogW1BBVENIIDQxLzU4XSBuZXQvbWx4NTog VHlwbyBmaXggaW4gZGVsX3N3X2h3X3J1bGUKClsgVXBzdHJlYW0gY29tbWl0IGYwMzM3ODg5MTQ3 Yzk1NjcyMTY5NjU1M2ZmY2M5NzIxMmIwOTQ4ZmUgXQoKRXhwcmVzc2lvbiB0ZXJtaW5hdGVkIHdp dGggIiwiIGluc3RlYWQgb2YgIjsiLCByZXN1bHRlZCBpbgpzZXRfZnRlIGdldHRpbmcgYmFkIHZh bHVlIGZvciBtb2RpZnlfZW5hYmxlX21hc2sgZmllbGQuCgpGaXhlczogYmQ1MjUxZGJmMTU2ICgi bmV0L21seDVfY29yZTogSW50cm9kdWNlIGZsb3cgc3RlZXJpbmcgZGVzdGluYXRpb24gb2YgdHlw ZSBjb3VudGVyIikKU2lnbmVkLW9mZi1ieTogWXV2YWwgQXZuZXJ5IDx5dXZhbGF2QG1lbGxhbm94 LmNvbT4KUmV2aWV3ZWQtYnk6IERhbmllbCBKdXJnZW5zIDxkYW5pZWxqQG1lbGxhbm94LmNvbT4K U2lnbmVkLW9mZi1ieTogU2FlZWQgTWFoYW1lZWQgPHNhZWVkbUBtZWxsYW5veC5jb20+Ci0tLQog ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuYyB8IDIgKy0K IDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdp dCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmMgYi9k cml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5jCmluZGV4IDM3 ZDExNGM2NjhiNy4uZDE4MTY0NWZkOTY4IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5l dC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0 L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmMKQEAgLTQzMiw3ICs0MzIsNyBAQCBzdGF0aWMg dm9pZCBkZWxfc3dfaHdfcnVsZShzdHJ1Y3QgZnNfbm9kZSAqbm9kZSkKIAogCWlmICgoZnRlLT5h Y3Rpb24uYWN0aW9uICYgTUxYNV9GTE9XX0NPTlRFWFRfQUNUSU9OX0ZXRF9ERVNUKSAmJgogCSAg ICAtLWZ0ZS0+ZGVzdHNfc2l6ZSkgewotCQltb2RpZnlfbWFzayA9IEJJVChNTFg1X1NFVF9GVEVf TU9ESUZZX0VOQUJMRV9NQVNLX0RFU1RJTkFUSU9OX0xJU1QpLAorCQltb2RpZnlfbWFzayA9IEJJ VChNTFg1X1NFVF9GVEVfTU9ESUZZX0VOQUJMRV9NQVNLX0RFU1RJTkFUSU9OX0xJU1QpOwogCQl1 cGRhdGVfZnRlID0gdHJ1ZTsKIAl9CiBvdXQ6Ci0tIAoyLjIwLjEKCgpGcm9tIDVkMWE2NDYxZTQ3 Mjc1YmI3NDA5MTE1OWRmOGEwZTExNzJmNDkyNGYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IENvbmcgV2FuZyA8eGl5b3Uud2FuZ2NvbmdAZ21haWwuY29tPgpEYXRlOiBTdW4sIDE2IERl YyAyMDE4IDIzOjI1OjEyIC0wODAwClN1YmplY3Q6IFtQQVRDSCA0Mi81OF0gdGlwYzogY2hlY2sg Z3JvdXAgZGVzdHMgYWZ0ZXIgdGlwY193YWl0X2Zvcl9jb25kKCkKClsgVXBzdHJlYW0gY29tbWl0 IDNjNjMwNmQ0NDA4MmVmMDA3YTI1OGFlMWI4NmVhNThlNjk3NGVlM2YgXQoKU2ltaWxhciB0byBj b21taXQgMTQzZWNlNjU0ZjlmICgidGlwYzogY2hlY2sgdHNrLT5ncm91cCBpbiB0aXBjX3dhaXRf Zm9yX2NvbmQoKSIpCndlIGhhdmUgdG8gcmVsb2FkIGdycC0+ZGVzdHMgdG9vIGFmdGVyIHdlIHJl LXRha2UgdGhlIHNvY2sgbG9jay4KVGhpcyBtZWFucyB3ZSBuZWVkIHRvIG1vdmUgdGhlIGRzdHMg Y2hlY2sgYWZ0ZXIgdGlwY193YWl0X2Zvcl9jb25kKCkKdG9vLgoKRml4ZXM6IDc1ZGEyMTYzZGJi NiAoInRpcGM6IGludHJvZHVjZSBjb21tdW5pY2F0aW9uIGdyb3VwcyIpClJlcG9ydGVkLWFuZC10 ZXN0ZWQtYnk6IHN5emJvdCs5OWYyMDIyMmZjNTAxOGQyYjk3YUBzeXprYWxsZXIuYXBwc3BvdG1h aWwuY29tCkNjOiBZaW5nIFh1ZSA8eWluZy54dWVAd2luZHJpdmVyLmNvbT4KQ2M6IEpvbiBNYWxv eSA8am9uLm1hbG95QGVyaWNzc29uLmNvbT4KU2lnbmVkLW9mZi1ieTogQ29uZyBXYW5nIDx4aXlv dS53YW5nY29uZ0BnbWFpbC5jb20+CkFja2VkLWJ5OiBKb24gTWFsb3kgPGpvbi5tYWxveUBlcmlj c3Nvbi5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0 Lm5ldD4KLS0tCiBuZXQvdGlwYy9zb2NrZXQuYyB8IDkgKysrKystLS0tCiAxIGZpbGUgY2hhbmdl ZCwgNSBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC90aXBj L3NvY2tldC5jIGIvbmV0L3RpcGMvc29ja2V0LmMKaW5kZXggZWNlMDlkZmVhYzUyLi5lMWJkYWYw NTZjOGYgMTAwNjQ0Ci0tLSBhL25ldC90aXBjL3NvY2tldC5jCisrKyBiL25ldC90aXBjL3NvY2tl dC5jCkBAIC0xMDA3LDcgKzEwMDcsNyBAQCBzdGF0aWMgaW50IHRpcGNfc2VuZF9ncm91cF9iY2Fz dChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3QgbXNnaGRyICptLAogCXN0cnVjdCBzb2NrICpz ayA9IHNvY2stPnNrOwogCXN0cnVjdCBuZXQgKm5ldCA9IHNvY2tfbmV0KHNrKTsKIAlzdHJ1Y3Qg dGlwY19zb2NrICp0c2sgPSB0aXBjX3NrKHNrKTsKLQlzdHJ1Y3QgdGlwY19ubGlzdCAqZHN0cyA9 IHRpcGNfZ3JvdXBfZGVzdHModHNrLT5ncm91cCk7CisJc3RydWN0IHRpcGNfbmxpc3QgKmRzdHM7 CiAJc3RydWN0IHRpcGNfbWNfbWV0aG9kICptZXRob2QgPSAmdHNrLT5tY19tZXRob2Q7CiAJYm9v bCBhY2sgPSBtZXRob2QtPm1hbmRhdG9yeSAmJiBtZXRob2QtPnJjYXN0OwogCWludCBibGtzID0g dHNrX2Jsb2NrcyhNQ0FTVF9IX1NJWkUgKyBkbGVuKTsKQEAgLTEwMTYsOSArMTAxNiw2IEBAIHN0 YXRpYyBpbnQgdGlwY19zZW5kX2dyb3VwX2JjYXN0KHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVj dCBtc2doZHIgKm0sCiAJc3RydWN0IHNrX2J1ZmZfaGVhZCBwa3RzOwogCWludCByYyA9IC1FSE9T VFVOUkVBQ0g7CiAKLQlpZiAoIWRzdHMtPmxvY2FsICYmICFkc3RzLT5yZW1vdGUpCi0JCXJldHVy biAtRUhPU1RVTlJFQUNIOwotCiAJLyogQmxvY2sgb3IgcmV0dXJuIGlmIGFueSBkZXN0aW5hdGlv biBsaW5rIG9yIG1lbWJlciBpcyBjb25nZXN0ZWQgKi8KIAlyYyA9IHRpcGNfd2FpdF9mb3JfY29u ZChzb2NrLCAmdGltZW91dCwKIAkJCQkhdHNrLT5jb25nX2xpbmtfY250ICYmIHRzay0+Z3JvdXAg JiYKQEAgLTEwMjYsNiArMTAyMywxMCBAQCBzdGF0aWMgaW50IHRpcGNfc2VuZF9ncm91cF9iY2Fz dChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3QgbXNnaGRyICptLAogCWlmICh1bmxpa2VseShy YykpCiAJCXJldHVybiByYzsKIAorCWRzdHMgPSB0aXBjX2dyb3VwX2Rlc3RzKHRzay0+Z3JvdXAp OworCWlmICghZHN0cy0+bG9jYWwgJiYgIWRzdHMtPnJlbW90ZSkKKwkJcmV0dXJuIC1FSE9TVFVO UkVBQ0g7CisKIAkvKiBDb21wbGV0ZSBtZXNzYWdlIGhlYWRlciAqLwogCWlmIChkZXN0KSB7CiAJ CW1zZ19zZXRfdHlwZShoZHIsIFRJUENfR1JQX01DQVNUX01TRyk7Ci0tIAoyLjIwLjEKCgpGcm9t IGY4YjhkZmUyNmUwZjIwYWUxNmRmYmYwNzI4OTE2ZDcxNWE5YjQzZDEgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IEFsYWEgSGxlaWhlbCA8YWxhYUBtZWxsYW5veC5jb20+CkRhdGU6IFN1 biwgMjUgTm92IDIwMTggMTE6NDY6MDkgKzAyMDAKU3ViamVjdDogW1BBVENIIDQzLzU4XSBuZXQv bWx4NWU6IFJlbW92ZSB0aGUgZmFsc2UgaW5kaWNhdGlvbiBvZiBzb2Z0d2FyZQogdGltZXN0YW1w aW5nIHN1cHBvcnQKClsgVXBzdHJlYW0gY29tbWl0IDQ3NjU0MjA0MzllNzU4YmZhNDgwODM5MmQx OGIwYTRjYjZmMDYwNjUgXQoKbWx4NSBkcml2ZXIgZmFsc2VseSBhZHZlcnRpc2VzIHN1cHBvcnQg b2Ygc29mdHdhcmUgdGltZXN0YW1waW5nLgpGaXggaXQgYnkgcmVtb3ZpbmcgdGhlIGZhbHNlIGlu ZGljYXRpb24uCgpGaXhlczogZWY5ODE0ZGVhZmQwICgibmV0L21seDVlOiBBZGQgSFcgdGltZXN0 YW1waW5nIChUUykgc3VwcG9ydCIpClNpZ25lZC1vZmYtYnk6IEFsYWEgSGxlaWhlbCA8YWxhYUBt ZWxsYW5veC5jb20+ClJldmlld2VkLWJ5OiBUYXJpcSBUb3VrYW4gPHRhcmlxdEBtZWxsYW5veC5j b20+ClNpZ25lZC1vZmYtYnk6IFNhZWVkIE1haGFtZWVkIDxzYWVlZG1AbWVsbGFub3guY29tPgot LS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9ldGh0b29sLmMg fCAxMSArKystLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgOCBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1 L2NvcmUvZW5fZXRodG9vbC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9j b3JlL2VuX2V0aHRvb2wuYwppbmRleCA5OGRkM2UwYWRhNzIuLjVlNTQyMzA3NmIwMyAxMDA2NDQK LS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2V0aHRvb2wu YworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fZXRodG9v bC5jCkBAIC0xMTAxLDExICsxMTAxLDYgQEAgaW50IG1seDVlX2V0aHRvb2xfZ2V0X3RzX2luZm8o c3RydWN0IG1seDVlX3ByaXYgKnByaXYsCiAJCQkgICAgICBzdHJ1Y3QgZXRodG9vbF90c19pbmZv ICppbmZvKQogewogCXN0cnVjdCBtbHg1X2NvcmVfZGV2ICptZGV2ID0gcHJpdi0+bWRldjsKLQlp bnQgcmV0OwotCi0JcmV0ID0gZXRodG9vbF9vcF9nZXRfdHNfaW5mbyhwcml2LT5uZXRkZXYsIGlu Zm8pOwotCWlmIChyZXQpCi0JCXJldHVybiByZXQ7CiAKIAlpbmZvLT5waGNfaW5kZXggPSBtbHg1 X2Nsb2NrX2dldF9wdHBfaW5kZXgobWRldik7CiAKQEAgLTExMTMsOSArMTEwOCw5IEBAIGludCBt bHg1ZV9ldGh0b29sX2dldF90c19pbmZvKHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2LAogCSAgICBp bmZvLT5waGNfaW5kZXggPT0gLTEpCiAJCXJldHVybiAwOwogCi0JaW5mby0+c29fdGltZXN0YW1w aW5nIHw9IFNPRl9USU1FU1RBTVBJTkdfVFhfSEFSRFdBUkUgfAotCQkJCSBTT0ZfVElNRVNUQU1Q SU5HX1JYX0hBUkRXQVJFIHwKLQkJCQkgU09GX1RJTUVTVEFNUElOR19SQVdfSEFSRFdBUkU7CisJ aW5mby0+c29fdGltZXN0YW1waW5nID0gU09GX1RJTUVTVEFNUElOR19UWF9IQVJEV0FSRSB8CisJ CQkJU09GX1RJTUVTVEFNUElOR19SWF9IQVJEV0FSRSB8CisJCQkJU09GX1RJTUVTVEFNUElOR19S QVdfSEFSRFdBUkU7CiAKIAlpbmZvLT50eF90eXBlcyA9IEJJVChIV1RTVEFNUF9UWF9PRkYpIHwK IAkJCSBCSVQoSFdUU1RBTVBfVFhfT04pOwotLSAKMi4yMC4xCgoKRnJvbSBhZTc0NzZmNzVjMDgw ZDkwMDY1MjhmYWYxZDdlYTI5MmY2ZTQ2NjFhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBIZXJiZXJ0IFh1IDxoZXJiZXJ0QGdvbmRvci5hcGFuYS5vcmcuYXU+CkRhdGU6IFRodSwgMjAg RGVjIDIwMTggMjE6MjA6MTAgKzA4MDAKU3ViamVjdDogW1BBVENIIDQ0LzU4XSBpcHY2OiBmcmFn czogRml4IGJvZ3VzIHNrYi0+c2sgaW4gcmVhc3NlbWJsZWQgcGFja2V0cwoKWyBVcHN0cmVhbSBj b21taXQgZDE1ZjVhYzhkZWVhOTM2ZDNhZGY2Mjk0MjFhNjZhODhiNDJiOGEyZiBdCgpJdCB3YXMg cmVwb3J0ZWQgdGhhdCBJUHNlYyB3b3VsZCBjcmFzaCB3aGVuIGl0IGVuY291bnRlcnMgYW4gSVB2 NgpyZWFzc2VtYmxlZCBwYWNrZXQgYmVjYXVzZSBza2ItPnNrIGlzIG5vbi16ZXJvIGFuZCBub3Qg YSB2YWxpZApwb2ludGVyLgoKVGhpcyBpcyBiZWNhdXNlIHNrYi0+c2sgaXMgbm93IGEgdW5pb24g d2l0aCBpcF9kZWZyYWdfb2Zmc2V0LgoKVGhpcyBwYXRjaCBmaXhlcyB0aGlzIGJ5IHJlc2V0dGlu ZyBza2ItPnNrIHdoZW4gZXhpdGluZyBmcm9tCnRoZSByZWFzc2VtYmx5IGNvZGUuCgpSZXBvcnRl ZC1ieTogWGl1bWVpIE11IDx4bXVAcmVkaGF0LmNvbT4KRml4ZXM6IDIxOWJhZGZhYWRlOSAoImlw djY6IGZyYWdzOiBnZXQgcmlkIG9mIGlwNmZyYWdfc2tiX2NiLy4uLiIpClNpZ25lZC1vZmYtYnk6 IEhlcmJlcnQgWHUgPGhlcmJlcnRAZ29uZG9yLmFwYW5hLm9yZy5hdT4KU2lnbmVkLW9mZi1ieTog RGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY2L3JlYXNz ZW1ibHkuYyB8IDEgKwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCgpkaWZmIC0tZ2l0 IGEvbmV0L2lwdjYvcmVhc3NlbWJseS5jIGIvbmV0L2lwdjYvcmVhc3NlbWJseS5jCmluZGV4IGQz ZmQyZDdlNWFhNC4uN2M5NDMzOTJjMTI4IDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9yZWFzc2VtYmx5 LmMKKysrIGIvbmV0L2lwdjYvcmVhc3NlbWJseS5jCkBAIC0zODQsNiArMzg0LDcgQEAgc3RhdGlj IGludCBpcDZfZnJhZ19yZWFzbShzdHJ1Y3QgZnJhZ19xdWV1ZSAqZnEsIHN0cnVjdCBza19idWZm ICpwcmV2LAogCQlpZiAoc2tiX3RyeV9jb2FsZXNjZShoZWFkLCBmcCwgJmhlYWRzdG9sZW4sICZk ZWx0YSkpIHsKIAkJCWtmcmVlX3NrYl9wYXJ0aWFsKGZwLCBoZWFkc3RvbGVuKTsKIAkJfSBlbHNl IHsKKwkJCWZwLT5zayA9IE5VTEw7CiAJCQlpZiAoIXNrYl9zaGluZm8oaGVhZCktPmZyYWdfbGlz dCkKIAkJCQlza2Jfc2hpbmZvKGhlYWQpLT5mcmFnX2xpc3QgPSBmcDsKIAkJCWhlYWQtPmRhdGFf bGVuICs9IGZwLT5sZW47Ci0tIAoyLjIwLjEKCgpGcm9tIDQyNjM0YjZiMzNkY2NkZWI4Zjg3NGQy OTRhMzBlZDdiNjg0MzM3NmIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IENocmlzdG9w aGUgSkFJTExFVCA8Y2hyaXN0b3BoZS5qYWlsbGV0QHdhbmFkb28uZnI+CkRhdGU6IEZyaSwgMjgg RGVjIDIwMTggMjM6Mjg6MjEgKzAxMDAKU3ViamVjdDogW1BBVENIIDQ1LzU4XSBuZXQvaXB2Njog Rml4IGEgdGVzdCBhZ2FpbnN0ICdpcHY2X2ZpbmRfaWRldigpJyByZXR1cm4KIHZhbHVlCgpbIFVw c3RyZWFtIGNvbW1pdCAxNzhmZTk0NDA1YmZmYmQxYWNkODNiNmZmM2I0MDIxMTE4NWFlOWM5IF0K CidpcHY2X2ZpbmRfaWRldigpJyByZXR1cm5zIE5VTEwgb24gZXJyb3IsIG5vdCBhbiBlcnJvciBw b2ludGVyLgpVcGRhdGUgdGhlIHRlc3QgYWNjb3JkaW5nbHkgYW5kIHJldHVybiAtRU5PQlVGUywg YXMgYWxyZWFkeSBkb25lIGluCidhZGRyY29uZl9hZGRfZGV2KCknLCBpZiBOVUxMIGlzIHJldHVy bmVkLgoKRml4ZXM6ICgiaXB2NjogYWxsb3cgdXNlcnNwYWNlIHRvIGFkZCBJRkFfRl9PUFRJTUlT VElDIGFkZHJlc3NlcyIpClNpZ25lZC1vZmYtYnk6IENocmlzdG9waGUgSkFJTExFVCA8Y2hyaXN0 b3BoZS5qYWlsbGV0QHdhbmFkb28uZnI+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8 ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2Ni9hZGRyY29uZi5jIHwgNCArKy0tCiAx IGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL25ldC9pcHY2L2FkZHJjb25mLmMgYi9uZXQvaXB2Ni9hZGRyY29uZi5jCmluZGV4IDRlODFm ZjJmNDU4OC4uM2RmYzUwY2Q4NmQ2IDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9hZGRyY29uZi5jCisr KyBiL25ldC9pcHY2L2FkZHJjb25mLmMKQEAgLTQ3MTEsOCArNDcxMSw4IEBAIGluZXQ2X3J0bV9u ZXdhZGRyKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBubG1zZ2hkciAqbmxoLAogCQkJIElG QV9GX01DQVVUT0pPSU4gfCBJRkFfRl9PUFRJTUlTVElDOwogCiAJaWRldiA9IGlwdjZfZmluZF9p ZGV2KGRldik7Ci0JaWYgKElTX0VSUihpZGV2KSkKLQkJcmV0dXJuIFBUUl9FUlIoaWRldik7CisJ aWYgKCFpZGV2KQorCQlyZXR1cm4gLUVOT0JVRlM7CiAKIAlpZiAoIWlwdjZfYWxsb3dfb3B0aW1p c3RpY19kYWQobmV0LCBpZGV2KSkKIAkJY2ZnLmlmYV9mbGFncyAmPSB+SUZBX0ZfT1BUSU1JU1RJ QzsKLS0gCjIuMjAuMQoKCkZyb20gMTgwODExMWM3MWJlZDU3ZGNjYTQ3Mjc3N2IwZmNiN2RhN2I0 YjllMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogUGlldGVyIEphbnNlbiB2YW4gVnV1 cmVuIDxwaWV0ZXIuamFuc2VudmFudnV1cmVuQG5ldHJvbm9tZS5jb20+CkRhdGU6IE1vbiwgMTAg RGVjIDIwMTggMTU6MDM6NDMgLTA4MDAKU3ViamVjdDogW1BBVENIIDQ2LzU4XSBuZnA6IGZsb3dl cjogZW5zdXJlIFRDUCBmbGFncyBjYW4gYmUgcGxhY2VkIGluIElQdjYKIGZyYW1lCgpbIFVwc3Ry ZWFtIGNvbW1pdCAyOTA5NzRkNDM0NzgzNjI0YzEzYTk1MzBhMjNjNDVmOWM1ZmZlMDE4IF0KClBy ZXZpb3VzbHkgd2UgZGlkIG5vdCBlbnN1cmUgdGNwIGZsYWdzIGhhdmUgYSBwbGFjZSB0byBiZSBz dG9yZWQKd2hlbiB1c2luZyBJUHY2LiBXZSBjb3JyZWN0IHRoaXMgYnkgaW5jbHVkaW5nIElQdjYg a2V5IGxheWVyIHdoZW4Kd2UgbWF0Y2ggdGNwIGZsYWdzIGFuZCB0aGUgSVB2NiBrZXkgbGF5ZXIg aGFzIG5vdCBiZWVuIGluY2x1ZGVkCmFscmVhZHkuCgpGaXhlczogMDdlMTY3MWNmY2E1ICgibmZw OiBmbG93ZXI6IHJlZmFjdG9yIHNoYXJlZCBpcCBoZWFkZXIgaW4gbWF0Y2ggb2ZmbG9hZCIpClNp Z25lZC1vZmYtYnk6IFBpZXRlciBKYW5zZW4gdmFuIFZ1dXJlbiA8cGlldGVyLmphbnNlbnZhbnZ1 dXJlbkBuZXRyb25vbWUuY29tPgpSZXZpZXdlZC1ieTogSmFrdWIgS2ljaW5za2kgPGpha3ViLmtp Y2luc2tpQG5ldHJvbm9tZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2 ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiAuLi4vZXRoZXJuZXQvbmV0cm9ub21lL25mcC9mbG93ZXIv b2ZmbG9hZC5jICAgfCAyOCArKysrKysrKysrKysrKystLS0tCiAxIGZpbGUgY2hhbmdlZCwgMjIg aW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9l dGhlcm5ldC9uZXRyb25vbWUvbmZwL2Zsb3dlci9vZmZsb2FkLmMgYi9kcml2ZXJzL25ldC9ldGhl cm5ldC9uZXRyb25vbWUvbmZwL2Zsb3dlci9vZmZsb2FkLmMKaW5kZXggYmQxOTYyNGYxMGNmLi45 MDE0OGRiYjI2MWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L25ldHJvbm9tZS9u ZnAvZmxvd2VyL29mZmxvYWQuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9uZXRyb25vbWUv bmZwL2Zsb3dlci9vZmZsb2FkLmMKQEAgLTM3NSwxMyArMzc1LDI5IEBAIG5mcF9mbG93ZXJfY2Fs Y3VsYXRlX2tleV9sYXllcnMoc3RydWN0IG5mcF9hcHAgKmFwcCwKIAkJICAgICEodGNwX2ZsYWdz ICYgKFRDUEhEUl9GSU4gfCBUQ1BIRFJfU1lOIHwgVENQSERSX1JTVCkpKQogCQkJcmV0dXJuIC1F T1BOT1RTVVBQOwogCi0JCS8qIFdlIG5lZWQgdG8gc3RvcmUgVENQIGZsYWdzIGluIHRoZSBJUHY0 IGtleSBzcGFjZSwgdGh1cwotCQkgKiB3ZSBuZWVkIHRvIGVuc3VyZSB3ZSBpbmNsdWRlIGEgSVB2 NCBrZXkgbGF5ZXIgaWYgd2UgaGF2ZQotCQkgKiBub3QgZG9uZSBzbyBhbHJlYWR5LgorCQkvKiBX ZSBuZWVkIHRvIHN0b3JlIFRDUCBmbGFncyBpbiB0aGUgZWl0aGVyIHRoZSBJUHY0IG9yIElQdjYg a2V5CisJCSAqIHNwYWNlLCB0aHVzIHdlIG5lZWQgdG8gZW5zdXJlIHdlIGluY2x1ZGUgYSBJUHY0 L0lQdjYga2V5CisJCSAqIGxheWVyIGlmIHdlIGhhdmUgbm90IGRvbmUgc28gYWxyZWFkeS4KIAkJ ICovCi0JCWlmICghKGtleV9sYXllciAmIE5GUF9GTE9XRVJfTEFZRVJfSVBWNCkpIHsKLQkJCWtl eV9sYXllciB8PSBORlBfRkxPV0VSX0xBWUVSX0lQVjQ7Ci0JCQlrZXlfc2l6ZSArPSBzaXplb2Yo c3RydWN0IG5mcF9mbG93ZXJfaXB2NCk7CisJCWlmICgha2V5X2Jhc2ljKQorCQkJcmV0dXJuIC1F T1BOT1RTVVBQOworCisJCWlmICghKGtleV9sYXllciAmIE5GUF9GTE9XRVJfTEFZRVJfSVBWNCkg JiYKKwkJICAgICEoa2V5X2xheWVyICYgTkZQX0ZMT1dFUl9MQVlFUl9JUFY2KSkgeworCQkJc3dp dGNoIChrZXlfYmFzaWMtPm5fcHJvdG8pIHsKKwkJCWNhc2UgY3B1X3RvX2JlMTYoRVRIX1BfSVAp OgorCQkJCWtleV9sYXllciB8PSBORlBfRkxPV0VSX0xBWUVSX0lQVjQ7CisJCQkJa2V5X3NpemUg Kz0gc2l6ZW9mKHN0cnVjdCBuZnBfZmxvd2VyX2lwdjQpOworCQkJCWJyZWFrOworCisJCQljYXNl IGNwdV90b19iZTE2KEVUSF9QX0lQVjYpOgorCQkJCWtleV9sYXllciB8PSBORlBfRkxPV0VSX0xB WUVSX0lQVjY7CisJCQkJa2V5X3NpemUgKz0gc2l6ZW9mKHN0cnVjdCBuZnBfZmxvd2VyX2lwdjYp OworCQkJCWJyZWFrOworCisJCQlkZWZhdWx0OgorCQkJCXJldHVybiAtRU9QTk9UU1VQUDsKKwkJ CX0KIAkJfQogCX0KIAotLSAKMi4yMC4xCgoKRnJvbSA5YWNjZGE4ZmYyN2VhMTAyZTlkY2Y1MDVk NmJjZTE0ZTM0NTQxZmE2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTdGVmYW5vIEJy aXZpbyA8c2JyaXZpb0ByZWRoYXQuY29tPgpEYXRlOiBXZWQsIDIgSmFuIDIwMTkgMTM6Mjk6Mjcg KzAxMDAKU3ViamVjdDogW1BBVENIIDQ3LzU4XSBpcHY2OiByb3V0ZTogRml4IHJldHVybiB2YWx1 ZSBvZiBpcDZfbmVpZ2hfbG9va3VwKCkgb24KIG5laWdoX2NyZWF0ZSgpIGVycm9yCgpbIFVwc3Ry ZWFtIGNvbW1pdCA3YWRmMzI0NjA5MmY1ZTg3ZWQwZmE2MTBlODA4OGZhZTQxNmM1ODFmIF0KCklu IGlwNl9uZWlnaF9sb29rdXAoKSwgd2UgbXVzdCBub3QgcmV0dXJuIGVycm9ycyBjb21pbmcgZnJv bQpuZWlnaF9jcmVhdGUoKTogaWYgY3JlYXRpb24gb2YgYSBuZWlnaGJvdXIgZW50cnkgZmFpbHMs IHRoZSBsb29rdXAgc2hvdWxkCnJldHVybiBOVUxMLCBpbiB0aGUgc2FtZSB3YXkgYXMgaXQncyBk b25lIGluIF9fbmVpZ2hfbG9va3VwKCkuCgpPdGhlcndpc2UsIGNhbGxlcnMgbGVnaXRpbWF0ZWx5 IGNoZWNraW5nIGZvciBhIG5vbi1OVUxMIHJldHVybiB2YWx1ZSBvZgp0aGUgbG9va3VwIGZ1bmN0 aW9uIG1pZ2h0IGRlcmVmZXJlbmNlIGFuIGludmFsaWQgcG9pbnRlci4KCkZvciBpbnN0YW5jZSwg b24gbmVpZ2hib3VyIHRhYmxlIG92ZXJmbG93LCBuZGlzY19yb3V0ZXJfZGlzY292ZXJ5KCkKY3Jh c2hlcyBuZGlzY191cGRhdGUoKSBieSBwYXNzaW5nIEVSUl9QVFIoLUVOT0JVRlMpIGFzICduZWln aCcgYXJndW1lbnQuCgpSZXBvcnRlZC1ieTogSmlhbmxpbiBTaGkgPGppc2hpQHJlZGhhdC5jb20+ CkZpeGVzOiBmOGExYjQzYjcwOWQgKCJuZXQvaXB2NjogQ3JlYXRlIGEgbmVpZ2hfbG9va3VwIGZv ciBGSUIgZW50cmllcyIpClNpZ25lZC1vZmYtYnk6IFN0ZWZhbm8gQnJpdmlvIDxzYnJpdmlvQHJl ZGhhdC5jb20+ClJldmlld2VkLWJ5OiBEYXZpZCBBaGVybiA8ZHNhaGVybkBnbWFpbC5jb20+ClNp Z25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBu ZXQvaXB2Ni9yb3V0ZS5jIHwgNCArKystCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCsp LCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvcm91dGUuYyBiL25ldC9pcHY2 L3JvdXRlLmMKaW5kZXggYTMzNjgxZGM0Nzk2Li4wOGM0NTE2YWU0YTQgMTAwNjQ0Ci0tLSBhL25l dC9pcHY2L3JvdXRlLmMKKysrIGIvbmV0L2lwdjYvcm91dGUuYwpAQCAtMjEwLDcgKzIxMCw5IEBA IHN0cnVjdCBuZWlnaGJvdXIgKmlwNl9uZWlnaF9sb29rdXAoY29uc3Qgc3RydWN0IGluNl9hZGRy ICpndywKIAluID0gX19pcHY2X25laWdoX2xvb2t1cChkZXYsIGRhZGRyKTsKIAlpZiAobikKIAkJ cmV0dXJuIG47Ci0JcmV0dXJuIG5laWdoX2NyZWF0ZSgmbmRfdGJsLCBkYWRkciwgZGV2KTsKKwor CW4gPSBuZWlnaF9jcmVhdGUoJm5kX3RibCwgZGFkZHIsIGRldik7CisJcmV0dXJuIElTX0VSUihu KSA/IE5VTEwgOiBuOwogfQogCiBzdGF0aWMgc3RydWN0IG5laWdoYm91ciAqaXA2X2RzdF9uZWln aF9sb29rdXAoY29uc3Qgc3RydWN0IGRzdF9lbnRyeSAqZHN0LAotLSAKMi4yMC4xCgoKRnJvbSA0 YWE2YTc3MmFkZDIxYzFiMjgyYmVlMWMzZTQ0NDg5NWJiYjlhMTUzIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiAiQWxsYW4gVy4gTmllbHNlbiIgPGFsbGFuLm5pZWxzZW5AbWljcm9jaGlw LmNvbT4KRGF0ZTogVGh1LCAyMCBEZWMgMjAxOCAwOTozNzoxNyArMDEwMApTdWJqZWN0OiBbUEFU Q0ggNDgvNThdIG1zY2M6IENvbmZpZ3VyZWQgTUFDIGVudHJpZXMgc2hvdWxkIGJlIGxvY2tlZC4K ClsgVXBzdHJlYW0gY29tbWl0IDhmZDFhNGFmZmJkYWZkYTU5MmY4MGNkMDFiZjdhMzgyYTVmZjJm ZTggXQoKVGhlIE1BQyB0YWJsZSBpbiBPY2Vsb3Qgc3VwcG9ydHMgYXV0byBhZ2luZyAobm9ybWFs KSBhbmQgc3RhdGljIGVudHJpZXMuCk1BQyBlbnRyaWVzIHRoYXQgaXMgbWFudWFsbHkgY29uZmln dXJlZCBzaG91bGQgYmUgc3RhdGljIGFuZCBub3Qgc3ViamVjdAp0byBhZ2luZy4KCkZpeGVzOiBh NTU2Yzc2YWRjMDUgKCJuZXQ6IG1zY2M6IEFkZCBpbml0aWFsIE9jZWxvdCBzd2l0Y2ggc3VwcG9y dCIpClNpZ25lZC1vZmYtYnk6IEFsbGFuIE5pZWxzZW4gPGFsbGFuLm5pZWxzZW5AbWljcm9jaGlw LmNvbT4KUmV2aWV3ZWQtYnk6IFN0ZWVuIEhlZ2VsdW5kIDxzdGVlbi5oZWdlbHVuZEBtaWNyb2No aXAuY29tPgpTaWduZWQtb2ZmLWJ5OiBTdGVlbiBIZWdlbHVuZCA8c3RlZW4uaGVnZWx1bmRAbWlj cm9jaGlwLmNvbT4KUmV2aWV3ZWQtYnk6IEFuZHJldyBMdW5uIDxhbmRyZXdAbHVubi5jaD4KU2ln bmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRy aXZlcnMvbmV0L2V0aGVybmV0L21zY2Mvb2NlbG90LmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwg MSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9l dGhlcm5ldC9tc2NjL29jZWxvdC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbXNjYy9vY2Vsb3Qu YwppbmRleCBlZDRlMjk4Y2Q4MjMuLjBiZGQzYzQwMGM5MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9u ZXQvZXRoZXJuZXQvbXNjYy9vY2Vsb3QuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tc2Nj L29jZWxvdC5jCkBAIC03MzMsNyArNzMzLDcgQEAgc3RhdGljIGludCBvY2Vsb3RfZmRiX2FkZChz dHJ1Y3QgbmRtc2cgKm5kbSwgc3RydWN0IG5sYXR0ciAqdGJbXSwKIAl9CiAKIAlyZXR1cm4gb2Nl bG90X21hY3RfbGVhcm4ob2NlbG90LCBwb3J0LT5jaGlwX3BvcnQsIGFkZHIsIHZpZCwKLQkJCQkg RU5UUllUWVBFX05PUk1BTCk7CisJCQkJIEVOVFJZVFlQRV9MT0NLRUQpOwogfQogCiBzdGF0aWMg aW50IG9jZWxvdF9mZGJfZGVsKHN0cnVjdCBuZG1zZyAqbmRtLCBzdHJ1Y3QgbmxhdHRyICp0Yltd LAotLSAKMi4yMC4xCgoKRnJvbSBjZTE2YmY1ZTNiNGE5ZjI3MjQ2YmRiNjk5YTU5YWQ0ZmZmZDUw NjEzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUYWwgR2lsYm9hIDx0YWxnaUBtZWxs YW5veC5jb20+CkRhdGU6IFRodSwgMjIgTm92IDIwMTggMTQ6MjA6NDUgKzAyMDAKU3ViamVjdDog W1BBVENIIDQ5LzU4XSBuZXQvbWx4NWU6IENhbmNlbCBESU0gd29yayBvbiBjbG9zZSBTUQoKWyBV cHN0cmVhbSBjb21taXQgZmEyYmY4NmJhYjRiYmM2MWU1Njc4YTQyYTE0ZTQwMDc1MDkzYTk4ZiBd CgpUWFEgU1EgY2xvc3VyZSBpcyBmb2xsb3dlZCBieSBjbG9zaW5nIHRoZSBjb3JyZXNwb25kaW5n IENRLiBBIHBlbmRpbmcKRElNIHdvcmsgd291bGQgdHJ5IHRvIG1vZGlmeSB0aGUgbm93IG5vbi1l eGlzdGluZyBDUS4KVGhpcyB3b3VsZCB0cmlnZ2VyIGFuIGVycm9yOgpbODU1MzUuODM1OTI2XSBt bHg1X2NvcmUgMDAwMDphZjowMC4wOiBtbHg1X2NtZF9jaGVjazo3Njk6KHBpZCAxMjQzOTkpOgpN T0RJRllfQ1EoMHg0MDMpIG9wX21vZCgweDApIGZhaWxlZCwgc3RhdHVzIGJhZCByZXNvdXJjZSBz dGF0ZSgweDkpLCBzeW5kcm9tZSAoMHgxZDc3NzEpCgpGaXggYnkgbWFraW5nIHN1cmUgdG8gY2Fu Y2VsIGFueSBwZW5kaW5nIERJTSB3b3JrIGJlZm9yZSBkZXN0cm95aW5nIHRoZSBTUS4KCkZpeGVz OiBjYmNlNGY0NDQ3OTggKCJuZXQvbWx4NWU6IEVuYWJsZSBhZGFwdGl2ZS1UWCBtb2RlcmF0aW9u IikKU2lnbmVkLW9mZi1ieTogVGFsIEdpbGJvYSA8dGFsZ2lAbWVsbGFub3guY29tPgpSZXZpZXdl ZC1ieTogVGFyaXEgVG91a2FuIDx0YXJpcXRAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBT YWVlZCBNYWhhbWVlZCA8c2FlZWRtQG1lbGxhbm94LmNvbT4KLS0tCiBkcml2ZXJzL25ldC9ldGhl cm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jIHwgMSArCiAxIGZpbGUgY2hhbmdlZCwg MSBpbnNlcnRpb24oKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5v eC9tbHg1L2NvcmUvZW5fbWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4 NS9jb3JlL2VuX21haW4uYwppbmRleCBmYWE4NGI0NWUyMGEuLmZkZGI2MDAxZTNhNyAxMDA2NDQK LS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYwor KysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jCkBA IC0xMzgzLDYgKzEzODMsNyBAQCBzdGF0aWMgdm9pZCBtbHg1ZV9jbG9zZV90eHFzcShzdHJ1Y3Qg bWx4NWVfdHhxc3EgKnNxKQogCXN0cnVjdCBtbHg1X2NvcmVfZGV2ICptZGV2ID0gYy0+bWRldjsK IAlzdHJ1Y3QgbWx4NV9yYXRlX2xpbWl0IHJsID0gezB9OwogCisJY2FuY2VsX3dvcmtfc3luYygm c3EtPmRpbS53b3JrKTsKIAltbHg1ZV9kZXN0cm95X3NxKG1kZXYsIHNxLT5zcW4pOwogCWlmIChz cS0+cmF0ZV9saW1pdCkgewogCQlybC5yYXRlID0gc3EtPnJhdGVfbGltaXQ7Ci0tIAoyLjIwLjEK CgpGcm9tIGUxMTUxYzBlNDYzNGFjMDY0YzAyZWVjZTkwMjlhMzczOGMxNTE3YzUgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IE1vc2hlIFNoZW1lc2ggPG1vc2hlQG1lbGxhbm94LmNvbT4K RGF0ZTogRnJpLCAyIE5vdiAyMDE4IDA2OjEwOjQ5ICswMjAwClN1YmplY3Q6IFtQQVRDSCA1MC81 OF0gbmV0L21seDVlOiBSWCwgVmVyaWZ5IE1QV1FFIHN0cmlkZSBzaXplIGlzIGluIHJhbmdlCgpb IFVwc3RyZWFtIGNvbW1pdCBlMWMxNWI2MmI3MDE1MTE5ZDNlNTkxNWNkMmFlM2I4OWQ1OWMyNTc2 IF0KCkFkZCBjaGVjayBvZiBNUFdRRSBzdHJpZGUgc2l6ZSBpcyB3aXRoaW4gcmFuZ2Ugc3VwcG9y dGVkIGJ5IEhXLiBJbiBjYXNlCmNhbGN1bGF0ZWQgTVBXUUUgc3RyaWRlIHNpemUgZXhjZWVkIHJh bmdlLCBsaW5lYXIgU0tCIGNhbid0IGJlIHVzZWQgYW5kCndlIHNob3VsZCB1c2Ugbm9uIGxpbmVh ciBNUFdRRSBpbnN0ZWFkLgoKRml4ZXM6IDYxOWE4ZjJhNDJmMSAoIm5ldC9tbHg1ZTogVXNlIGxp bmVhciBTS0IgaW4gU3RyaWRpbmcgUlEiKQpTaWduZWQtb2ZmLWJ5OiBNb3NoZSBTaGVtZXNoIDxt b3NoZUBtZWxsYW5veC5jb20+ClJldmlld2VkLWJ5OiBUYXJpcSBUb3VrYW4gPHRhcmlxdEBtZWxs YW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IFNhZWVkIE1haGFtZWVkIDxzYWVlZG1AbWVsbGFub3gu Y29tPgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWlu LmMgfCA1ICsrKysrCiAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYyBiL2Ry aXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMKaW5kZXggZmRk YjYwMDFlM2E3Li43MzY1ODk5YzNhYzkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0 L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQv bWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYwpAQCAtMTI4LDYgKzEyOCw4IEBAIHN0YXRpYyBi b29sIG1seDVlX3J4X2lzX2xpbmVhcl9za2Ioc3RydWN0IG1seDVfY29yZV9kZXYgKm1kZXYsCiAJ cmV0dXJuICFwYXJhbXMtPmxyb19lbiAmJiBmcmFnX3N6IDw9IFBBR0VfU0laRTsKIH0KIAorI2Rl ZmluZSBNTFg1X01BWF9NUFdRRV9MT0dfV1FFX1NUUklERV9TWiAoKEJJVChfX21seDVfYml0X3N6 KHdxLCBsb2dfd3FlX3N0cmlkZV9zaXplKSkgLSAxKSArIFwKKwkJCQkJICBNTFg1X01QV1FFX0xP R19TVFJJREVfU1pfQkFTRSkKIHN0YXRpYyBib29sIG1seDVlX3J4X21wd3FlX2lzX2xpbmVhcl9z a2Ioc3RydWN0IG1seDVfY29yZV9kZXYgKm1kZXYsCiAJCQkJCSBzdHJ1Y3QgbWx4NWVfcGFyYW1z ICpwYXJhbXMpCiB7CkBAIC0xMzgsNiArMTQwLDkgQEAgc3RhdGljIGJvb2wgbWx4NWVfcnhfbXB3 cWVfaXNfbGluZWFyX3NrYihzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqbWRldiwKIAlpZiAoIW1seDVl X3J4X2lzX2xpbmVhcl9za2IobWRldiwgcGFyYW1zKSkKIAkJcmV0dXJuIGZhbHNlOwogCisJaWYg KG9yZGVyX2Jhc2VfMihmcmFnX3N6KSA+IE1MWDVfTUFYX01QV1FFX0xPR19XUUVfU1RSSURFX1Na KQorCQlyZXR1cm4gZmFsc2U7CisKIAlpZiAoTUxYNV9DQVBfR0VOKG1kZXYsIGV4dF9zdHJpZGVf bnVtX3JhbmdlKSkKIAkJcmV0dXJuIHRydWU7CiAKLS0gCjIuMjAuMQoKCkZyb20gMTlkMGViMmM5 NTYxM2E4NzFlODM2NDJlZTU2NmFiZjQ3M2I2MzQxYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogQW50b2luZSBUZW5hcnQgPGFudG9pbmUudGVuYXJ0QGJvb3RsaW4uY29tPgpEYXRlOiBX ZWQsIDE5IERlYyAyMDE4IDE4OjAwOjEyICswMTAwClN1YmplY3Q6IFtQQVRDSCA1MS81OF0gbmV0 OiBtdnBwMjogZml4IHRoZSBwaHlsaW5rIG1vZGUgdmFsaWRhdGlvbgoKWyBVcHN0cmVhbSBjb21t aXQgMWI0NTFmYjIwNTFiNDY0Yjk3NThjMDlhMzQ5MjEwNDQwMzI1MmUyYiBdCgpUaGUgbXZwcDJf cGh5bGlua192YWxpZGF0ZSgpIHNldHMgYWxsIG1vZGVzIHRoYXQgYXJlIHN1cHBvcnRlZCBieSBh CmdpdmVuIFBQdjIgcG9ydC4gQW4gbWlzdGFrZSBtYWRlIHRoZSAxMDAwMGJhc2VUX0Z1bGwgbW9k ZSBiZWluZwphZHZlcnRpc2VkIGluIHNvbWUgY2FzZXMgd2hlbiBhIHBvcnQgd2Fzbid0IGNvbmZp Z3VyZWQgdG8gcGVyZm9ybSBhdAoxMEcuIFRoaXMgcGF0Y2ggZml4ZXMgdGhpcy4KCkZpeGVzOiBk OTdjOWY0YWIwMDAgKCJuZXQ6IG12cHAyOiAxMDAwYmFzZVggc3VwcG9ydCIpClJlcG9ydGVkLWJ5 OiBSdXNzZWxsIEtpbmcgPGxpbnV4QGFybWxpbnV4Lm9yZy51az4KU2lnbmVkLW9mZi1ieTogQW50 b2luZSBUZW5hcnQgPGFudG9pbmUudGVuYXJ0QGJvb3RsaW4uY29tPgpTaWduZWQtb2ZmLWJ5OiBE YXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRo ZXJuZXQvbWFydmVsbC9tdnBwMi9tdnBwMl9tYWluLmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwg MSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9l dGhlcm5ldC9tYXJ2ZWxsL212cHAyL212cHAyX21haW4uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0 L21hcnZlbGwvbXZwcDIvbXZwcDJfbWFpbi5jCmluZGV4IGQ1YmM5MDQ3NmI0Zi4uZjhlNDgwOGE4 MzE3IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL212cHAyL212cHAy X21haW4uYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL212cHAyL212cHAyX21h aW4uYwpAQCAtNDI5Myw2ICs0MjkzLDcgQEAgc3RhdGljIHZvaWQgbXZwcDJfcGh5bGlua192YWxp ZGF0ZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAogCWNhc2UgUEhZX0lOVEVSRkFDRV9NT0RFX1hB VUk6CiAJY2FzZSBQSFlfSU5URVJGQUNFX01PREVfTkE6CiAJCWlmIChwb3J0LT5nb3BfaWQgPT0g MCkgeworCQkJcGh5bGlua19zZXQobWFzaywgMTAwMDBiYXNlVF9GdWxsKTsKIAkJCXBoeWxpbmtf c2V0KG1hc2ssIDEwMDAwYmFzZUNSX0Z1bGwpOwogCQkJcGh5bGlua19zZXQobWFzaywgMTAwMDBi YXNlU1JfRnVsbCk7CiAJCQlwaHlsaW5rX3NldChtYXNrLCAxMDAwMGJhc2VMUl9GdWxsKTsKQEAg LTQzMTAsNyArNDMxMSw2IEBAIHN0YXRpYyB2b2lkIG12cHAyX3BoeWxpbmtfdmFsaWRhdGUoc3Ry dWN0IG5ldF9kZXZpY2UgKmRldiwKIAkJcGh5bGlua19zZXQobWFzaywgMTBiYXNlVF9GdWxsKTsK IAkJcGh5bGlua19zZXQobWFzaywgMTAwYmFzZVRfSGFsZik7CiAJCXBoeWxpbmtfc2V0KG1hc2ss IDEwMGJhc2VUX0Z1bGwpOwotCQlwaHlsaW5rX3NldChtYXNrLCAxMDAwMGJhc2VUX0Z1bGwpOwog CQkvKiBGYWxsLXRocm91Z2ggKi8KIAljYXNlIFBIWV9JTlRFUkZBQ0VfTU9ERV8xMDAwQkFTRVg6 CiAJY2FzZSBQSFlfSU5URVJGQUNFX01PREVfMjUwMEJBU0VYOgotLSAKMi4yMC4xCgoKRnJvbSAz ODZiYjQ0ODc3MzU1YmU3ZWYyNmY1OWU0MjFhMTRlMWUwY2UzNzU0IE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBTdWRhcnNhbmEgUmVkZHkgS2FsbHVydSA8c3VkYXJzYW5hLmthbGx1cnVA Y2F2aXVtLmNvbT4KRGF0ZTogU3VuLCA5IERlYyAyMDE4IDIzOjI3OjAxIC0wODAwClN1YmplY3Q6 IFtQQVRDSCA1Mi81OF0gcWVkOiBGaXggY29tbWFuZCBudW1iZXIgbWlzbWF0Y2ggYmV0d2VlbiBk cml2ZXIgYW5kIHRoZQogbWZ3CgpbIFVwc3RyZWFtIGNvbW1pdCBjM2RiOGQ1MzEwNDU3NzRhZWVl NmUwZjczMWFiMTViMGM0NTBkZTQ1IF0KClRoZSB2YWx1ZSBmb3IgT0VNX0NGR19VUERBVEUgY29t bWFuZCBkaWZmZXJzIGJldHdlZW4gZHJpdmVyIGFuZCB0aGUKTWFuYWdlbWVudCBmaXJtd2FyZSAo bWZ3KS4gRml4IHRoaXMgZ2FwIHdpdGggYWRkaW5nIGEgcmVzZXJ2ZWQgZmllbGQuCgpGaXhlczog Y2FjNmY2OTE1NDZiICgicWVkOiBBZGQgc3VwcG9ydCBmb3IgVW5pZmllZCBGYWJyaWMgUG9ydC4i KQpTaWduZWQtb2ZmLWJ5OiBTdWRhcnNhbmEgUmVkZHkgS2FsbHVydSA8U3VkYXJzYW5hLkthbGx1 cnVAY2F2aXVtLmNvbT4KU2lnbmVkLW9mZi1ieTogQXJpZWwgRWxpb3IgPGFyaWVsLmVsaW9yQGNh dml1bS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0 Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9xbG9naWMvcWVkL3FlZF9oc2kuaCB8IDMg KystCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvcWxvZ2ljL3FlZC9xZWRfaHNpLmggYi9kcml2 ZXJzL25ldC9ldGhlcm5ldC9xbG9naWMvcWVkL3FlZF9oc2kuaAppbmRleCBhNzEzODI2ODdlZjIu LmJlZDhmNDhlMDI5YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvcWxvZ2ljL3Fl ZC9xZWRfaHNpLmgKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvcWxvZ2ljL3FlZC9xZWRfaHNp LmgKQEAgLTEyNjY5LDggKzEyNjY5LDkgQEAgZW51bSBNRldfRFJWX01TR19UWVBFIHsKIAlNRldf RFJWX01TR19CV19VUERBVEUxMCwKIAlNRldfRFJWX01TR19UUkFOU0NFSVZFUl9TVEFURV9DSEFO R0UsCiAJTUZXX0RSVl9NU0dfQldfVVBEQVRFMTEsCi0JTUZXX0RSVl9NU0dfT0VNX0NGR19VUERB VEUsCisJTUZXX0RSVl9NU0dfUkVTRVJWRUQsCiAJTUZXX0RSVl9NU0dfR0VUX1RMVl9SRVEsCisJ TUZXX0RSVl9NU0dfT0VNX0NGR19VUERBVEUsCiAJTUZXX0RSVl9NU0dfTUFYCiB9OwogCi0tIAoy LjIwLjEKCgpGcm9tIGU0MmIyZjcyYTJhZjIyMTAxM2Q0MzdkZGRkZjJiNjNhNjU2ODFlYWMgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFNoYWxvbSBUb2xlZG8gPHNoYWxvbXRAbWVsbGFu b3guY29tPgpEYXRlOiBUdWUsIDE4IERlYyAyMDE4IDE1OjU5OjIwICswMDAwClN1YmplY3Q6IFtQ QVRDSCA1My81OF0gbWx4c3c6IGNvcmU6IEluY3JlYXNlIHRpbWVvdXQgZHVyaW5nIGZpcm13YXJl IGZsYXNoCiBwcm9jZXNzCgpbIFVwc3RyZWFtIGNvbW1pdCBjZjBiNzBlNzFiMzIxMzdjY2Y5YzFm M2RkOWZiMzBjYmY4OWI0MzIyIF0KCkR1cmluZyB0aGUgZmlybXdhcmUgZmxhc2ggcHJvY2Vzcywg c29tZSBvZiB0aGUgRU1BRHMgZ2V0IHRpbWVkIG91dCwgd2hpY2gKY2F1c2VzIHRoZSBkcml2ZXIg dG8gc2VuZCB0aGVtIGFnYWluIHdpdGggYSBsaW1pdCBvZiA1IHJldHJpZXMuIFRoZXJlIGFyZQpz b21lIHNpdHVhdGlvbnMgaW4gd2hpY2ggNSByZXRyaWVzIGlzIG5vdCBlbm91Z2ggYW5kIHRoZSBF TUFEIGFjY2VzcyBmYWlscy4KSWYgdGhlIGZhaWxlZCBFTUFEIHdhcyByZWxhdGVkIHRvIHRoZSBm bGFzaGluZyBwcm9jZXNzLCB0aGUgZHJpdmVyIGZhaWxzCnRoZSBmbGFzaGluZy4KClRoZSByZWFz b24gZm9yIHRoZXNlIHRpbWVvdXRzIGR1cmluZyBmaXJtd2FyZSBmbGFzaGluZyBpcyBjYWNoZSBt aXNzZXMgaW4KdGhlIENQVSBydW5uaW5nIHRoZSBmaXJtd2FyZS4gSW4gY2FzZSB0aGUgQ1BVIG5l ZWRzIHRvIGZldGNoIGluc3RydWN0aW9ucwpmcm9tIHRoZSBmbGFzaCB3aGVuIGEgZmlybXdhcmUg aXMgZmxhc2hlZCwgaXQgbmVlZHMgdG8gd2FpdCBmb3IgdGhlCmZsYXNoaW5nIHRvIGNvbXBsZXRl LiBTaW5jZSBmbGFzaGluZyB0YWtlcyB0aW1lLCBpdCBpcyBwb3NzaWJsZSBmb3IgcGVuZGluZwpF TUFEcyB0byB0aW1lb3V0LgoKRml4IGJ5IGluY3JlYXNpbmcgRU1BRHMnIHRpbWVvdXQgd2hpbGUg Zmxhc2hpbmcgZmlybXdhcmUuCgpGaXhlczogY2U2ZWY2OGY0MzNmICgibWx4c3c6IHNwZWN0cnVt OiBJbXBsZW1lbnQgdGhlIGV0aHRvb2wgZmxhc2hfZGV2aWNlIGNhbGxiYWNrIikKU2lnbmVkLW9m Zi1ieTogU2hhbG9tIFRvbGVkbyA8c2hhbG9tdEBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6 IElkbyBTY2hpbW1lbCA8aWRvc2NoQG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQg Uy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0 L21lbGxhbm94L21seHN3L2NvcmUuYyAgICB8IDE5ICsrKysrKysrKysrKysrKysrKy0KIGRyaXZl cnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L2NvcmUuaCAgICB8ICAzICsrKwogLi4uL25l dC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bS5jICAgIHwgIDcgKysrKysrLQogMyBm aWxlcyBjaGFuZ2VkLCAyNyBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L2NvcmUuYyBiL2RyaXZlcnMv bmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L2NvcmUuYwppbmRleCAzMGY3NTFlNjk2OTguLmY3 MTU0ZjM1OGYyNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4 c3cvY29yZS5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L2NvcmUu YwpAQCAtODEsNiArODEsNyBAQCBzdHJ1Y3QgbWx4c3dfY29yZSB7CiAJc3RydWN0IG1seHN3X2Nv cmVfcG9ydCAqcG9ydHM7CiAJdW5zaWduZWQgaW50IG1heF9wb3J0czsKIAlib29sIHJlbG9hZF9m YWlsOworCWJvb2wgZndfZmxhc2hfaW5fcHJvZ3Jlc3M7CiAJdW5zaWduZWQgbG9uZyBkcml2ZXJf cHJpdlswXTsKIAkvKiBkcml2ZXJfcHJpdiBoYXMgdG8gYmUgYWx3YXlzIHRoZSBsYXN0IGl0ZW0g Ki8KIH07CkBAIC00MjgsMTIgKzQyOSwxNiBAQCBzdHJ1Y3QgbWx4c3dfcmVnX3RyYW5zIHsKIAlz dHJ1Y3QgcmN1X2hlYWQgcmN1OwogfTsKIAotI2RlZmluZSBNTFhTV19FTUFEX1RJTUVPVVRfTVMg MjAwCisjZGVmaW5lIE1MWFNXX0VNQURfVElNRU9VVF9EVVJJTkdfRldfRkxBU0hfTVMJMzAwMAor I2RlZmluZSBNTFhTV19FTUFEX1RJTUVPVVRfTVMJCQkyMDAKIAogc3RhdGljIHZvaWQgbWx4c3df ZW1hZF90cmFuc190aW1lb3V0X3NjaGVkdWxlKHN0cnVjdCBtbHhzd19yZWdfdHJhbnMgKnRyYW5z KQogewogCXVuc2lnbmVkIGxvbmcgdGltZW91dCA9IG1zZWNzX3RvX2ppZmZpZXMoTUxYU1dfRU1B RF9USU1FT1VUX01TKTsKIAorCWlmICh0cmFucy0+Y29yZS0+ZndfZmxhc2hfaW5fcHJvZ3Jlc3Mp CisJCXRpbWVvdXQgPSBtc2Vjc190b19qaWZmaWVzKE1MWFNXX0VNQURfVElNRU9VVF9EVVJJTkdf RldfRkxBU0hfTVMpOworCiAJcXVldWVfZGVsYXllZF93b3JrKHRyYW5zLT5jb3JlLT5lbWFkX3dx LCAmdHJhbnMtPnRpbWVvdXRfZHcsIHRpbWVvdXQpOwogfQogCkBAIC0xODU0LDYgKzE4NTksMTgg QEAgaW50IG1seHN3X2NvcmVfa3ZkX3NpemVzX2dldChzdHJ1Y3QgbWx4c3dfY29yZSAqbWx4c3df Y29yZSwKIH0KIEVYUE9SVF9TWU1CT0wobWx4c3dfY29yZV9rdmRfc2l6ZXNfZ2V0KTsKIAordm9p ZCBtbHhzd19jb3JlX2Z3X2ZsYXNoX3N0YXJ0KHN0cnVjdCBtbHhzd19jb3JlICptbHhzd19jb3Jl KQoreworCW1seHN3X2NvcmUtPmZ3X2ZsYXNoX2luX3Byb2dyZXNzID0gdHJ1ZTsKK30KK0VYUE9S VF9TWU1CT0wobWx4c3dfY29yZV9md19mbGFzaF9zdGFydCk7CisKK3ZvaWQgbWx4c3dfY29yZV9m d19mbGFzaF9lbmQoc3RydWN0IG1seHN3X2NvcmUgKm1seHN3X2NvcmUpCit7CisJbWx4c3dfY29y ZS0+ZndfZmxhc2hfaW5fcHJvZ3Jlc3MgPSBmYWxzZTsKK30KK0VYUE9SVF9TWU1CT0wobWx4c3df Y29yZV9md19mbGFzaF9lbmQpOworCiBzdGF0aWMgaW50IF9faW5pdCBtbHhzd19jb3JlX21vZHVs ZV9pbml0KHZvaWQpCiB7CiAJaW50IGVycjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVy bmV0L21lbGxhbm94L21seHN3L2NvcmUuaCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94 L21seHN3L2NvcmUuaAppbmRleCBjMzViZTQ3Nzg1NmYuLmM0ZTQ5NzE3NjRlNSAxMDA2NDQKLS0t IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvY29yZS5oCisrKyBiL2RyaXZl cnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L2NvcmUuaApAQCAtMjkyLDYgKzI5Miw5IEBA IGludCBtbHhzd19jb3JlX2t2ZF9zaXplc19nZXQoc3RydWN0IG1seHN3X2NvcmUgKm1seHN3X2Nv cmUsCiAJCQkgICAgIHU2NCAqcF9zaW5nbGVfc2l6ZSwgdTY0ICpwX2RvdWJsZV9zaXplLAogCQkJ ICAgICB1NjQgKnBfbGluZWFyX3NpemUpOwogCit2b2lkIG1seHN3X2NvcmVfZndfZmxhc2hfc3Rh cnQoc3RydWN0IG1seHN3X2NvcmUgKm1seHN3X2NvcmUpOwordm9pZCBtbHhzd19jb3JlX2Z3X2Zs YXNoX2VuZChzdHJ1Y3QgbWx4c3dfY29yZSAqbWx4c3dfY29yZSk7CisKIGJvb2wgbWx4c3dfY29y ZV9yZXNfdmFsaWQoc3RydWN0IG1seHN3X2NvcmUgKm1seHN3X2NvcmUsCiAJCQkgIGVudW0gbWx4 c3dfcmVzX2lkIHJlc19pZCk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21l bGxhbm94L21seHN3L3NwZWN0cnVtLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9t bHhzdy9zcGVjdHJ1bS5jCmluZGV4IGFkYTY0NGQ5MDAyOS4uM2QxMTU5ZjhhNTNmIDEwMDY0NAot LS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bS5jCisrKyBi L2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L3NwZWN0cnVtLmMKQEAgLTMwOCw4 ICszMDgsMTMgQEAgc3RhdGljIGludCBtbHhzd19zcF9maXJtd2FyZV9mbGFzaChzdHJ1Y3QgbWx4 c3dfc3AgKm1seHN3X3NwLAogCQl9LAogCQkubWx4c3dfc3AgPSBtbHhzd19zcAogCX07CisJaW50 IGVycjsKKworCW1seHN3X2NvcmVfZndfZmxhc2hfc3RhcnQobWx4c3dfc3AtPmNvcmUpOworCWVy ciA9IG1seGZ3X2Zpcm13YXJlX2ZsYXNoKCZtbHhzd19zcF9tbHhmd19kZXYubWx4ZndfZGV2LCBm aXJtd2FyZSk7CisJbWx4c3dfY29yZV9md19mbGFzaF9lbmQobWx4c3dfc3AtPmNvcmUpOwogCi0J cmV0dXJuIG1seGZ3X2Zpcm13YXJlX2ZsYXNoKCZtbHhzd19zcF9tbHhmd19kZXYubWx4ZndfZGV2 LCBmaXJtd2FyZSk7CisJcmV0dXJuIGVycjsKIH0KIAogc3RhdGljIGludCBtbHhzd19zcF9md19y ZXZfdmFsaWRhdGUoc3RydWN0IG1seHN3X3NwICptbHhzd19zcCkKLS0gCjIuMjAuMQoKCkZyb20g ZDE1OWY4MmIzZGU1YTJhY2FiNjU1NzBmMDkwZDIzYzBkMzI3M2I0NiBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogTWlraGFlbCBHb2lraG1hbiA8bWlnb0BtZWxsYW5veC5jb20+CkRhdGU6 IE1vbiwgMTkgTm92IDIwMTggMTk6MTE6MTIgKzAyMDAKU3ViamVjdDogW1BBVENIIDU0LzU4XSBu ZXQvbWx4NWU6IFJlbW92ZSB1bnVzZWQgVURQIEdTTyByZW1haW5pbmcgY291bnRlcgoKWyBVcHN0 cmVhbSBjb21taXQgZDEzYjIyNGY0MzE1NzlmZTJkNzEyODcxZDQyNjVkN2EyMmNhNmM5YyBdCgpS ZW1vdmUgdHhfdWRwX3NlZ19yZW0gY291bnRlciBmcm9tIGV0aHRvb2wgb3V0cHV0LCBhcyBpdCBp cyBubyBsb25nZXIKYmVpbmcgdXBkYXRlZCBpbiB0aGUgZHJpdmVyJ3MgZGF0YSBmbG93LgoKRml4 ZXM6IDNmNDQ4OTllZjJjZSAoIm5ldC9tbHg1ZTogVXNlIFBBUlRJQUxfR1NPIGZvciBVRFAgc2Vn bWVudGF0aW9uIikKU2lnbmVkLW9mZi1ieTogTWlraGFlbCBHb2lraG1hbiA8bWlnb0BtZWxsYW5v eC5jb20+ClJldmlld2VkLWJ5OiBFcmFuIEJlbiBFbGlzaGEgPGVyYW5iZUBtZWxsYW5veC5jb20+ ClNpZ25lZC1vZmYtYnk6IFNhZWVkIE1haGFtZWVkIDxzYWVlZG1AbWVsbGFub3guY29tPgotLS0K IGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9zdGF0cy5jIHwgMiAt LQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3N0YXRzLmggfCAy IC0tCiAyIGZpbGVzIGNoYW5nZWQsIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3N0YXRzLmMgYi9kcml2ZXJzL25l dC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fc3RhdHMuYwppbmRleCBkNTdkNTFjNGU2 NTguLjcwNDdjYzI5MzU0NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFu b3gvbWx4NS9jb3JlL2VuX3N0YXRzLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFu b3gvbWx4NS9jb3JlL2VuX3N0YXRzLmMKQEAgLTczLDcgKzczLDYgQEAgc3RhdGljIGNvbnN0IHN0 cnVjdCBjb3VudGVyX2Rlc2Mgc3dfc3RhdHNfZGVzY1tdID0gewogCXsgTUxYNUVfREVDTEFSRV9T VEFUKHN0cnVjdCBtbHg1ZV9zd19zdGF0cywgdHhfcmVjb3ZlcikgfSwKIAl7IE1MWDVFX0RFQ0xB UkVfU1RBVChzdHJ1Y3QgbWx4NWVfc3dfc3RhdHMsIHR4X2NxZXMpIH0sCiAJeyBNTFg1RV9ERUNM QVJFX1NUQVQoc3RydWN0IG1seDVlX3N3X3N0YXRzLCB0eF9xdWV1ZV93YWtlKSB9LAotCXsgTUxY NUVfREVDTEFSRV9TVEFUKHN0cnVjdCBtbHg1ZV9zd19zdGF0cywgdHhfdWRwX3NlZ19yZW0pIH0s CiAJeyBNTFg1RV9ERUNMQVJFX1NUQVQoc3RydWN0IG1seDVlX3N3X3N0YXRzLCB0eF9jcWVfZXJy KSB9LAogCXsgTUxYNUVfREVDTEFSRV9TVEFUKHN0cnVjdCBtbHg1ZV9zd19zdGF0cywgdHhfeGRw X3htaXQpIH0sCiAJeyBNTFg1RV9ERUNMQVJFX1NUQVQoc3RydWN0IG1seDVlX3N3X3N0YXRzLCB0 eF94ZHBfZnVsbCkgfSwKQEAgLTE5NCw3ICsxOTMsNiBAQCB2b2lkIG1seDVlX2dycF9zd191cGRh dGVfc3RhdHMoc3RydWN0IG1seDVlX3ByaXYgKnByaXYpCiAJCQlzLT50eF9ub3AgICAgICAgICAg ICAgICArPSBzcV9zdGF0cy0+bm9wOwogCQkJcy0+dHhfcXVldWVfc3RvcHBlZAkrPSBzcV9zdGF0 cy0+c3RvcHBlZDsKIAkJCXMtPnR4X3F1ZXVlX3dha2UJKz0gc3Ffc3RhdHMtPndha2U7Ci0JCQlz LT50eF91ZHBfc2VnX3JlbQkrPSBzcV9zdGF0cy0+dWRwX3NlZ19yZW07CiAJCQlzLT50eF9xdWV1 ZV9kcm9wcGVkCSs9IHNxX3N0YXRzLT5kcm9wcGVkOwogCQkJcy0+dHhfY3FlX2VycgkJKz0gc3Ff c3RhdHMtPmNxZV9lcnI7CiAJCQlzLT50eF9yZWNvdmVyCQkrPSBzcV9zdGF0cy0+cmVjb3ZlcjsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9z dGF0cy5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3N0YXRz LmgKaW5kZXggYzEwNjRhZjlkNTRjLi4wYWQ3YTE2NTQ0M2EgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv bmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9zdGF0cy5oCisrKyBiL2RyaXZlcnMv bmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9zdGF0cy5oCkBAIC04Niw3ICs4Niw2 IEBAIHN0cnVjdCBtbHg1ZV9zd19zdGF0cyB7CiAJdTY0IHR4X3JlY292ZXI7CiAJdTY0IHR4X2Nx ZXM7CiAJdTY0IHR4X3F1ZXVlX3dha2U7Ci0JdTY0IHR4X3VkcF9zZWdfcmVtOwogCXU2NCB0eF9j cWVfZXJyOwogCXU2NCB0eF94ZHBfeG1pdDsKIAl1NjQgdHhfeGRwX2Z1bGw7CkBAIC0yMTcsNyAr MjE2LDYgQEAgc3RydWN0IG1seDVlX3NxX3N0YXRzIHsKIAl1NjQgY3N1bV9wYXJ0aWFsX2lubmVy OwogCXU2NCBhZGRlZF92bGFuX3BhY2tldHM7CiAJdTY0IG5vcDsKLQl1NjQgdWRwX3NlZ19yZW07 CiAjaWZkZWYgQ09ORklHX01MWDVfRU5fVExTCiAJdTY0IHRsc19vb287CiAJdTY0IHRsc19yZXN5 bmNfYnl0ZXM7Ci0tIAoyLjIwLjEKCgpGcm9tIGZiOTI5ZmYzMTc2MjZiNWEwYmM2Yjc2Y2NjMmQw ZWJlMTdiNDMyZmUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFRhcmlxIFRvdWthbiA8 dGFyaXF0QG1lbGxhbm94LmNvbT4KRGF0ZTogU3VuLCAyIERlYyAyMDE4IDE1OjQ1OjUzICswMjAw ClN1YmplY3Q6IFtQQVRDSCA1NS81OF0gbmV0L21seDVlOiBSWCwgRml4IHdyb25nIGVhcmx5IHJl dHVybiBpbiByZWNlaXZlIHF1ZXVlCiBwb2xsCgpbIFVwc3RyZWFtIGNvbW1pdCBiZmM2OTgyNTRi YTk3YjNlM2U0ZWJiZmFlMGZmYTFmN2UyZmEwNzE3IF0KCldoZW4gdGhlIGNvbXBsZXRpb24gcXVl dWUgb2YgdGhlIFJRIGlzIGVtcHR5LCBkbyBub3QgaW1tZWRpYXRlbHkgcmV0dXJuLgpJZiBsZWZ0 LW92ZXIgZGVjb21wcmVzc2VkIENRRXMgKGZyb20gdGhlIHByZXZpb3VzIGN5Y2xlKSB3ZXJlIHBy b2Nlc3NlZCwKbmVlZCB0byBnbyB0byB0aGUgZmluYWxpemF0aW9uIHBhcnQgb2YgdGhlIHBvbGwg ZnVuY3Rpb24uCgpCdWcgZXhpc3RzIG9ubHkgd2hlbiBDUUUgY29tcHJlc3Npb24gaXMgdHVybmVk IE9OLgoKVGhpcyBzb2x2ZXMgdGhlIGZvbGxvd2luZyBpc3N1ZToKbWx4NV9jb3JlIDAwMDA6ODI6 MDAuMTogbWx4NV9lcV9pbnQ6NTQ0OihwaWQgMCk6IENRIGVycm9yIG9uIENRTiAweGMwOCwgc3lu ZHJvbWUgMHgxCm1seDVfY29yZSAwMDAwOjgyOjAwLjEgcDRwMjogbWx4NWVfY3FfZXJyb3JfZXZl bnQ6IGNxbj0weDAwMGMwOCBldmVudD0weDA0CgpGaXhlczogNGI3ZGZjOTkyNTE0ICgibmV0L21s eDVlOiBFYXJseS1yZXR1cm4gb24gZW1wdHkgY29tcGxldGlvbiBxdWV1ZXMiKQpTaWduZWQtb2Zm LWJ5OiBUYXJpcSBUb3VrYW4gPHRhcmlxdEBtZWxsYW5veC5jb20+ClJldmlld2VkLWJ5OiBFcmFu IEJlbiBFbGlzaGEgPGVyYW5iZUBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IFNhZWVkIE1h aGFtZWVkIDxzYWVlZG1AbWVsbGFub3guY29tPgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21l bGxhbm94L21seDUvY29yZS9lbl9yeC5jIHwgMTAgKysrKysrLS0tLQogMSBmaWxlIGNoYW5nZWQs IDYgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25l dC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fcnguYyBiL2RyaXZlcnMvbmV0L2V0aGVy bmV0L21lbGxhbm94L21seDUvY29yZS9lbl9yeC5jCmluZGV4IGQ1NDNhNWNmZjA0OS4uODI2MmYw OTNmZWM0IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2Nv cmUvZW5fcnguYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUv ZW5fcnguYwpAQCAtMTE1MCw3ICsxMTUwLDcgQEAgdm9pZCBtbHg1ZV9oYW5kbGVfcnhfY3FlX21w d3JxKHN0cnVjdCBtbHg1ZV9ycSAqcnEsIHN0cnVjdCBtbHg1X2NxZTY0ICpjcWUpCiBpbnQgbWx4 NWVfcG9sbF9yeF9jcShzdHJ1Y3QgbWx4NWVfY3EgKmNxLCBpbnQgYnVkZ2V0KQogewogCXN0cnVj dCBtbHg1ZV9ycSAqcnEgPSBjb250YWluZXJfb2YoY3EsIHN0cnVjdCBtbHg1ZV9ycSwgY3EpOwot CXN0cnVjdCBtbHg1ZV94ZHBzcSAqeGRwc3E7CisJc3RydWN0IG1seDVlX3hkcHNxICp4ZHBzcSA9 ICZycS0+eGRwc3E7CiAJc3RydWN0IG1seDVfY3FlNjQgKmNxZTsKIAlpbnQgd29ya19kb25lID0g MDsKIApAQCAtMTE2MSwxMCArMTE2MSwxMSBAQCBpbnQgbWx4NWVfcG9sbF9yeF9jcShzdHJ1Y3Qg bWx4NWVfY3EgKmNxLCBpbnQgYnVkZ2V0KQogCQl3b3JrX2RvbmUgKz0gbWx4NWVfZGVjb21wcmVz c19jcWVzX2NvbnQocnEsIGNxLCAwLCBidWRnZXQpOwogCiAJY3FlID0gbWx4NV9jcXdxX2dldF9j cWUoJmNxLT53cSk7Ci0JaWYgKCFjcWUpCisJaWYgKCFjcWUpIHsKKwkJaWYgKHVubGlrZWx5KHdv cmtfZG9uZSkpCisJCQlnb3RvIG91dDsKIAkJcmV0dXJuIDA7Ci0KLQl4ZHBzcSA9ICZycS0+eGRw c3E7CisJfQogCiAJZG8gewogCQlpZiAobWx4NV9nZXRfY3FlX2Zvcm1hdChjcWUpID09IE1MWDVf Q09NUFJFU1NFRCkgewpAQCAtMTE3OSw2ICsxMTgwLDcgQEAgaW50IG1seDVlX3BvbGxfcnhfY3Eo c3RydWN0IG1seDVlX2NxICpjcSwgaW50IGJ1ZGdldCkKIAkJcnEtPmhhbmRsZV9yeF9jcWUocnEs IGNxZSk7CiAJfSB3aGlsZSAoKCsrd29ya19kb25lIDwgYnVkZ2V0KSAmJiAoY3FlID0gbWx4NV9j cXdxX2dldF9jcWUoJmNxLT53cSkpKTsKIAorb3V0OgogCWlmICh4ZHBzcS0+ZG9vcmJlbGwpIHsK IAkJbWx4NWVfeG1pdF94ZHBfZG9vcmJlbGwoeGRwc3EpOwogCQl4ZHBzcS0+ZG9vcmJlbGwgPSBm YWxzZTsKLS0gCjIuMjAuMQoKCkZyb20gMDBjZWU0NDkzYjRmNTg1ZjIwMzgwNmRmNzQzYWU4Mjc5 ZTBkNGU4MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTWFyY2luIFdvanRhcyA8bXdA c2VtaWhhbGYuY29tPgpEYXRlOiBUdWUsIDExIERlYyAyMDE4IDEzOjU2OjQ5ICswMTAwClN1Ympl Y3Q6IFtQQVRDSCA1Ni81OF0gbmV0OiBtdm5ldGE6IGZpeCBvcGVyYXRpb24gZm9yIDY0SyBQQUdF X1NJWkUKClsgVXBzdHJlYW0gY29tbWl0IGU3MzVmZDU1Yjk0YmI0ODM2MzczN2RiM2IxZDU3NjI3 YzFhMTZiNDcgXQoKUmVjZW50IGNoYW5nZXMgaW4gdGhlIG12bmV0YSBkcml2ZXIgcmV3b3JrZWQg YWxsb2NhdGlvbgphbmQgaGFuZGxpbmcgb2YgdGhlIGluZ3Jlc3MgYnVmZmVycyB0byB1c2UgZW50 aXJlIHBhZ2VzLgpBcGFydCBmcm9tIHRoYXQgaW4gU1cgQk0gc2NlbmFyaW8gdGhlIEhXIG11c3Qg YmUgaW5mb3JtZWQKdmlhIFBSWERRUyBhYm91dCB0aGUgYmlnZ2VzdCBwb3NzaWJsZSBpbmNvbWlu ZyBidWZmZXIKdGhhdCBjYW4gYmUgcHJvcGFnYXRlZCBieSBSWCBkZXNjcmlwdG9ycy4KClRoZSBC dWZmZXJTaXplIGZpZWxkIHdhcyBmaWxsZWQgYWNjb3JkaW5nIHRvIHRoZSBNVFUtZGVwZW5kZW50 CnBrdF9zaXplIHZhbHVlLiBMYXRlciBjaGFuZ2UgdG8gUEFHRV9TSVpFIGJyb2tlIFJYIG9wZXJh dGlvbgp3aGVuIHVzaW4gNjRLIHBhZ2VzLCBhcyB0aGUgZmllbGQgaXMgc2ltcGx5IHRvbyBzbWFs bC4KClRoaXMgcGF0Y2ggY29uZGl0aW9uYWxseSBsaW1pdHMgdGhlIHZhbHVlIHBhc3NlZCB0byB0 aGUgQnVmZmVyU2l6ZQpvZiB0aGUgUFJYRFFTIHJlZ2lzdGVyLCBkZXBlbmRpbmcgb24gdGhlIFBB R0VfU0laRSB1c2VkLgpPbiB0aGUgb2NjYXNpb24gcmVtb3ZlIG5vdyB1bnVzZWQgZnJhZ19zaXpl IGZpZWxkIG9mIHRoZSBtdm5ldGFfcG9ydApzdHJ1Y3R1cmUuCgpGaXhlczogNTYyZTJmNDY3ZTcx ICgibmV0OiBtdm5ldGE6IEltcHJvdmUgdGhlIGJ1ZmZlciBhbGxvY2F0aW9uIG1ldGhvZCBmb3Ig U1dCTSIpClNpZ25lZC1vZmYtYnk6IE1hcmNpbiBXb2p0YXMgPG13QHNlbWloYWxmLmNvbT4KU2ln bmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRy aXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXZuZXRhLmMgfCA2ICsrKy0tLQogMSBmaWxlIGNo YW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2 ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL212bmV0YS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQv bWFydmVsbC9tdm5ldGEuYwppbmRleCBiNGVkN2QzOTRkMDcuLmE3OGEzOTI0NGI3OSAxMDA2NDQK LS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdm5ldGEuYworKysgYi9kcml2ZXJz L25ldC9ldGhlcm5ldC9tYXJ2ZWxsL212bmV0YS5jCkBAIC00MDYsNyArNDA2LDYgQEAgc3RydWN0 IG12bmV0YV9wb3J0IHsKIAlzdHJ1Y3QgbXZuZXRhX3BjcHVfc3RhdHMgX19wZXJjcHUJKnN0YXRz OwogCiAJaW50IHBrdF9zaXplOwotCXVuc2lnbmVkIGludCBmcmFnX3NpemU7CiAJdm9pZCBfX2lv bWVtICpiYXNlOwogCXN0cnVjdCBtdm5ldGFfcnhfcXVldWUgKnJ4cXM7CiAJc3RydWN0IG12bmV0 YV90eF9xdWV1ZSAqdHhxczsKQEAgLTI5MDUsNyArMjkwNCw5IEBAIHN0YXRpYyB2b2lkIG12bmV0 YV9yeHFfaHdfaW5pdChzdHJ1Y3QgbXZuZXRhX3BvcnQgKnBwLAogCWlmICghcHAtPmJtX3ByaXYp IHsKIAkJLyogU2V0IE9mZnNldCAqLwogCQltdm5ldGFfcnhxX29mZnNldF9zZXQocHAsIHJ4cSwg MCk7Ci0JCW12bmV0YV9yeHFfYnVmX3NpemVfc2V0KHBwLCByeHEsIHBwLT5mcmFnX3NpemUpOwor CQltdm5ldGFfcnhxX2J1Zl9zaXplX3NldChwcCwgcnhxLCBQQUdFX1NJWkUgPCBTWl82NEsgPwor CQkJCQlQQUdFX1NJWkUgOgorCQkJCQlNVk5FVEFfUlhfQlVGX1NJWkUocHAtPnBrdF9zaXplKSk7 CiAJCW12bmV0YV9yeHFfYm1fZGlzYWJsZShwcCwgcnhxKTsKIAkJbXZuZXRhX3J4cV9maWxsKHBw LCByeHEsIHJ4cS0+c2l6ZSk7CiAJfSBlbHNlIHsKQEAgLTM3NDksNyArMzc1MCw2IEBAIHN0YXRp YyBpbnQgbXZuZXRhX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIAlpbnQgcmV0OwogCiAJ cHAtPnBrdF9zaXplID0gTVZORVRBX1JYX1BLVF9TSVpFKHBwLT5kZXYtPm10dSk7Ci0JcHAtPmZy YWdfc2l6ZSA9IFBBR0VfU0laRTsKIAogCXJldCA9IG12bmV0YV9zZXR1cF9yeHFzKHBwKTsKIAlp ZiAocmV0KQotLSAKMi4yMC4xCgoKRnJvbSAzMmFmM2Q4OGUzNTQzNmJkYjYxMWZhMDczMTk2ZTY2 MzMzOTZmNDkzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYXZpZGUgQ2FyYXR0aSA8 ZGNhcmF0dGlAcmVkaGF0LmNvbT4KRGF0ZTogTW9uLCAxNyBEZWMgMjAxOCAxMToyNjozOCArMDEw MApTdWJqZWN0OiBbUEFUQ0ggNTcvNThdIG5ldDogVXNlIF9fa2VybmVsX2Nsb2NraWRfdCBpbiB1 YXBpIG5ldF9zdGFtcC5oCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFp bjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CgpbIFVwc3Ry ZWFtIGNvbW1pdCBlMmM0Y2Y3Zjk4YTUxOWViNGQ5NTUzMmJmYTA2YmNhZjM1NjJmZWQ1IF0KCkhl cnRvbiByZXBvcnRzIHRoZSBmb2xsb3dpbmcgZXJyb3Igd2hlbiBidWlsZGluZyBhIHVzZXJzcGFj ZSBwcm9ncmFtIHRoYXQKaW5jbHVkZXMgbmV0X3N0YW1wLmg6CgogSW4gZmlsZSBpbmNsdWRlZCBm cm9tIGZvby5jOjI6CiAvdXNyL2luY2x1ZGUvbGludXgvbmV0X3RzdGFtcC5oOjE1ODoyOiBlcnJv cjogdW5rbm93biB0eXBlIG5hbWUKIOKAmGNsb2NraWRfdOKAmQogICBjbG9ja2lkX3QgY2xvY2tp ZDsgLyogcmVmZXJlbmNlIGNsb2NraWQgKi8KICAgXn5+fn5+fn5+CgpGaXggaXQgYnkgdXNpbmcg X19rZXJuZWxfY2xvY2tpZF90IGluIHBsYWNlIG9mIGNsb2NraWRfdC4KCkZpeGVzOiA4MGIxNGRl ZTJiZWEgKCJuZXQ6IEFkZCBhIG5ldyBzb2NrZXQgb3B0aW9uIGZvciBhIGZ1dHVyZSB0cmFuc21p dCB0aW1lLiIpCkNjOiBUaW1vdGh5IFJlZGFlbGxpIDx0cmVkYWVsbGlAcmVkaGF0LmNvbT4KUmVw b3J0ZWQtYnk6IEhlcnRvbiBSLiBLcnplc2luc2tpIDxoZXJ0b25AcmVkaGF0LmNvbT4KU2lnbmVk LW9mZi1ieTogRGF2aWRlIENhcmF0dGkgPGRjYXJhdHRpQHJlZGhhdC5jb20+ClRlc3RlZC1ieTog UGFvbG8gQWJlbmkgPHBhYmVuaUByZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBN aWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogaW5jbHVkZS91YXBpL2xpbnV4L25ldF90 c3RhbXAuaCB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvbGludXgvbmV0X3RzdGFtcC5oIGIv aW5jbHVkZS91YXBpL2xpbnV4L25ldF90c3RhbXAuaAppbmRleCA5N2ZmM2MxN2VjNGQuLmU1YjM5 NzIxYzZlNCAxMDA2NDQKLS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4L25ldF90c3RhbXAuaAorKysg Yi9pbmNsdWRlL3VhcGkvbGludXgvbmV0X3RzdGFtcC5oCkBAIC0xNTUsOCArMTU1LDggQEAgZW51 bSB0eHRpbWVfZmxhZ3MgewogfTsKIAogc3RydWN0IHNvY2tfdHh0aW1lIHsKLQljbG9ja2lkX3QJ Y2xvY2tpZDsJLyogcmVmZXJlbmNlIGNsb2NraWQgKi8KLQlfX3UzMgkJZmxhZ3M7CQkvKiBhcyBk ZWZpbmVkIGJ5IGVudW0gdHh0aW1lX2ZsYWdzICovCisJX19rZXJuZWxfY2xvY2tpZF90CWNsb2Nr aWQ7LyogcmVmZXJlbmNlIGNsb2NraWQgKi8KKwlfX3UzMgkJCWZsYWdzOwkvKiBhcyBkZWZpbmVk IGJ5IGVudW0gdHh0aW1lX2ZsYWdzICovCiB9OwogCiAjZW5kaWYgLyogX05FVF9USU1FU1RBTVBJ TkdfSCAqLwotLSAKMi4yMC4xCgoKRnJvbSAyMGE1NTJjYmU3ZmIwZGY5M2U4MTcwZTcxMGI4ZGU4 ZDA3ZDFkMGQzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBIZWluZXIgS2FsbHdlaXQg PGhrYWxsd2VpdDFAZ21haWwuY29tPgpEYXRlOiBTdW4sIDMwIERlYyAyMDE4IDEzOjE2OjEyICsw MTAwClN1YmplY3Q6IFtQQVRDSCA1OC81OF0gcjgxNjk6IGZpeCBXb0wgZGV2aWNlIHdha2V1cCBl bmFibGUKClsgVXBzdHJlYW0gY29tbWl0IDNiZDgyNjQ1MTEwMzVkYzk3YzkwMmYwM2ZhOWYxZDA3 Zjk1ZjhmNjIgXQoKSW4gcnRsODE2OV9ydW50aW1lX3Jlc3VtZSgpIHdlIGNvbmZpZ3VyZSBXb0wg YnV0IGRvbid0IHNldCB0aGUgZGV2aWNlCnRvIHdha2V1cC1lbmFibGVkLiBUaGlzIHByZXZlbnRz IFBNRSBnZW5lcmF0aW9uIG9uY2UgdGhlIGNhYmxlIGlzCnJlLXBsdWdnZWQuIEZpeCB0aGlzIGJ5 IG1vdmluZyB0aGUgY2FsbCB0byBkZXZpY2Vfc2V0X3dha2V1cF9lbmFibGUoKQp0byBfX3J0bDgx Njlfc2V0X3dvbCgpLgoKRml4ZXM6IDQzM2Y5ZDBkZGNjNiAoInI4MTY5OiBpbXByb3ZlIHNhdmVk X3dvbG9wdHMgaGFuZGxpbmciKQpTaWduZWQtb2ZmLWJ5OiBIZWluZXIgS2FsbHdlaXQgPGhrYWxs d2VpdDFAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvcmVhbHRlay9yODE2OS5jIHwg NCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3JlYWx0ZWsvcjgxNjkuYyBiL2RyaXZl cnMvbmV0L2V0aGVybmV0L3JlYWx0ZWsvcjgxNjkuYwppbmRleCA0OTMwZTAzNzVjMWQuLjlmYzhh MmJjMGZmMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvcmVhbHRlay9yODE2OS5j CisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3JlYWx0ZWsvcjgxNjkuYwpAQCAtMTUyOCw2ICsx NTI4LDggQEAgc3RhdGljIHZvaWQgX19ydGw4MTY5X3NldF93b2woc3RydWN0IHJ0bDgxNjlfcHJp dmF0ZSAqdHAsIHUzMiB3b2xvcHRzKQogCX0KIAogCVJUTF9XOCh0cCwgQ2ZnOTM0NiwgQ2ZnOTM0 Nl9Mb2NrKTsKKworCWRldmljZV9zZXRfd2FrZXVwX2VuYWJsZSh0cF90b19kZXYodHApLCB3b2xv cHRzKTsKIH0KIAogc3RhdGljIGludCBydGw4MTY5X3NldF93b2woc3RydWN0IG5ldF9kZXZpY2Ug KmRldiwgc3RydWN0IGV0aHRvb2xfd29saW5mbyAqd29sKQpAQCAtMTU0OSw4ICsxNTUxLDYgQEAg c3RhdGljIGludCBydGw4MTY5X3NldF93b2woc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0 IGV0aHRvb2xfd29saW5mbyAqd29sKQogCiAJcnRsX3VubG9ja193b3JrKHRwKTsKIAotCWRldmlj ZV9zZXRfd2FrZXVwX2VuYWJsZShkLCB0cC0+c2F2ZWRfd29sb3B0cyk7Ci0KIAlwbV9ydW50aW1l X3B1dF9ub2lkbGUoZCk7CiAKIAlyZXR1cm4gMDsKLS0gCjIuMjAuMQoK ----Next_Part(Fri_Jan__4_10_17_20_2019_871)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_420.mbox" RnJvbSBlYmQ0MjM1NjkzNDk3YjhlZmZkM2UxNGVlMmRhNmVjYmYxNTJkNDhkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBJdmFuIE1pcm9ub3YgPG1pcm9ub3YuaXZhbkBnbWFpbC5jb20+ CkRhdGU6IE1vbiwgMjQgRGVjIDIwMTggMjA6MTM6MDUgKzA1MDAKU3ViamVjdDogW1BBVENIIDAx LzE2XSBibngyeDogRml4IE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSBpbgogYm54MnhfZGVsX2Fs bF92bGFucygpIG9uIHNvbWUgaHcKClsgVXBzdHJlYW0gY29tbWl0IDM4MzU1YTVmOWEyMmJmYTVi ZDViMWJiNzk4MDVhY2EzOWZhNTM3MjkgXQoKVGhpcyBoYXBwZW5lZCB3aGVuIEkgdHJpZWQgdG8g Ym9vdCBub3JtYWwgRmVkb3JhIDI5IHN5c3RlbSB3aXRoIGxhdGVzdAphdmFpbGFibGUga2VybmVs IChmcm9tIGZlZG9yYSByYXdoaWRlLCBwbHVzIHNvbWUgdW5yZWxhdGVkIGN1c3RvbQpwYXRjaGVz KToKCglCVUc6IHVuYWJsZSB0byBoYW5kbGUga2VybmVsIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5j ZSBhdCAwMDAwMDAwMDAwMDAwMDAwCglQR0QgMCBQNEQgMAoJT29wczogMDAxMCBbIzFdIFNNUCBQ VEkKCUNQVTogNiBQSUQ6IDE0MjIgQ29tbTogbGlidmlydGQgVGFpbnRlZDogRyAgICAgICAgICBJ ICAgICAgIDQuMjAuMC0wLnJjNy5naXQzLmhwc2EyLjEuZmMyOS54ODZfNjQgIzEKCUhhcmR3YXJl IG5hbWU6IEhQIFByb0xpYW50IEJMNDYwYyBHNiwgQklPUyBJMjQgMDUvMjEvMjAxOAoJUklQOiAw MDEwOiAgICAgICAgICAobnVsbCkKCUNvZGU6IEJhZCBSSVAgdmFsdWUuCglSU1A6IDAwMTg6ZmZm ZmE0N2NjZGM5ZmJlMCBFRkxBR1M6IDAwMDEwMjQ2CglSQVg6IDAwMDAwMDAwMDAwMDAwMDAgUkJY OiAwMDAwMDAwMDAwMDAwM2U4IFJDWDogZmZmZmE0N2NjZGM5ZmJmOAoJUkRYOiBmZmZmYTQ3Y2Nk YzlmYzAwIFJTSTogZmZmZjk3ZDllZTdiMDFmOCBSREk6IGZmZmY5N2Q5ZjAxNTBiODAKCVJCUDog ZmZmZjk3ZDlmMDE1MGI4MCBSMDg6IDAwMDAwMDAwMDAwMDAwMDAgUjA5OiAwMDAwMDAwMDAwMDAw MDAwCglSMTA6IDAwMDAwMDAwMDAwMDAwMDAgUjExOiAwMDAwMDAwMDAwMDAwMDAwIFIxMjogMDAw MDAwMDAwMDAwMDAwMwoJUjEzOiBmZmZmOTdkOWVmMWU1M2U4IFIxNDogMDAwMDAwMDAwMDAwMDAw OSBSMTU6IGZmZmY5N2Q5ZjBhYzY3MzAKCUZTOiAgMDAwMDdmNGQyMjRlZjcwMCgwMDAwKSBHUzpm ZmZmOTdkOWZhMjAwMDAwKDAwMDApIGtubEdTOjAwMDAwMDAwMDAwMDAwMDAKCUNTOiAgMDAxMCBE UzogMDAwMCBFUzogMDAwMCBDUjA6IDAwMDAwMDAwODAwNTAwMzMKCUNSMjogZmZmZmZmZmZmZmZm ZmZkNiBDUjM6IDAwMDAwMDExZWNlNTIwMDYgQ1I0OiAwMDAwMDAwMDAwMDIwNmUwCglDYWxsIFRy YWNlOgoJID8gYm54MnhfY2hpcF9jbGVhbnVwKzB4MTk1LzB4NjEwIFtibngyeF0KCSA/IGJueDJ4 X25pY191bmxvYWQrMHgxZTIvMHg4ZjAgW2JueDJ4XQoJID8gYm54MnhfcmVsb2FkX2lmX3J1bm5p bmcrMHgyNC8weDQwIFtibngyeF0KCSA/IGJueDJ4X3NldF9mZWF0dXJlcysweDc5LzB4YTAgW2Ju eDJ4XQoJID8gX19uZXRkZXZfdXBkYXRlX2ZlYXR1cmVzKzB4MjQ0LzB4OWUwCgkgPyBuZXRsaW5r X2Jyb2FkY2FzdF9maWx0ZXJlZCsweDEzNi8weDRiMAoJID8gbmV0ZGV2X3VwZGF0ZV9mZWF0dXJl cysweDIyLzB4NjAKCSA/IGRldl9kaXNhYmxlX2xybysweDFjLzB4ZTAKCSA/IGRldmluZXRfc3lz Y3RsX2ZvcndhcmQrMHgxYzYvMHgyMTEKCSA/IHByb2Nfc3lzX2NhbGxfaGFuZGxlcisweGFiLzB4 MTAwCgkgPyBfX3Zmc193cml0ZSsweDM2LzB4MWEwCgkgPyByY3VfcmVhZF9sb2NrX3NjaGVkX2hl bGQrMHg3OS8weDgwCgkgPyByY3Vfc3luY19sb2NrZGVwX2Fzc2VydCsweDJlLzB4NjAKCSA/IF9f c2Jfc3RhcnRfd3JpdGUrMHgxNGMvMHgxYjAKCSA/IHZmc193cml0ZSsweDE1OS8weDFjMAoJID8g dmZzX3dyaXRlKzB4YmEvMHgxYzAKCSA/IGtzeXNfd3JpdGUrMHg1Mi8weGMwCgkgPyBkb19zeXNj YWxsXzY0KzB4NjAvMHgxZjAKCSA/IGVudHJ5X1NZU0NBTExfNjRfYWZ0ZXJfaHdmcmFtZSsweDQ5 LzB4YmUKCkFmdGVyIHNvbWUgaW52ZXN0aWdhdGlvbiBJIGZpZ3VyZWQgb3V0IHRoYXQgcmVjZW50 bHkgYWRkZWQgY2xlYW51cCBjb2RlCnRyaWVzIHRvIGNhbGwgVkxBTiBmaWx0ZXJpbmcgZGUtaW5p dGlhbGl6YXRpb24gZnVuY3Rpb24gd2hpY2ggZXhpc3Qgb25seQpmb3IgbmV3ZXIgaGFyZHdhcmUu IENvcnJlc3BvbmRpbmcgZnVuY3Rpb24gcG9pbnRlciBpcyBub3QKc2V0ICg9PSAwKSBmb3Igb2xk ZXIgaGFyZHdhcmUsIG5hbWVseSB0aGVzZSBjaGlwczoKCgkjZGVmaW5lIENISVBfTlVNXzU3NzEw CQkJMHgxNjRlCgkjZGVmaW5lIENISVBfTlVNXzU3NzExCQkJMHgxNjRmCgkjZGVmaW5lIENISVBf TlVNXzU3NzExRQkJCTB4MTY1MAoKQW5kIEkgaGF2ZSBvbmUgb2YgdGhvc2UgaW4gbXkgdGVzdCBz eXN0ZW06CgoJQnJvYWRjb20gSW5jLiBhbmQgc3Vic2lkaWFyaWVzIE5ldFh0cmVtZSBJSSBCQ001 NzcxMUUgMTAtR2lnYWJpdCBQQ0llIFsxNGU0OjE2NTBdCgpGdW5jdGlvbiBibngyeF9pbml0X3Zs YW5fbWFjX2ZwX29ianMoKSBmcm9tCmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueDJ4 L2JueDJ4X2Ntbi5oIGRlY2lkZXMgd2hldGhlciB0bwppbml0aWFsaXplIHJlbGV2YW50IHBvaW50 ZXJzIGluIGJueDJ4X3NwX29ianMudmxhbl9vYmogb3Igbm90LgoKVGhpcyByZWdyZXNzaW9uIHdh cyBpbnRyb2R1Y2VkIGFmdGVyIHY0LjIwLXJjNywgYW5kIHN0aWxsIGV4aXN0cyBpbiB2NC4yMApy ZWxlYXNlLgoKRml4ZXM6IDA0ZjA1MjMwYzVjMTMgKCJibngyeDogUmVtb3ZlIGNvbmZpZ3VyZWQg dmxhbnMgYXMgcGFydCBvZiB1bmxvYWQgc2VxdWVuY2UuIikKU2lnbmVkLW9mZi1ieTogSXZhbiBN aXJvbm92IDxtaXJvbm92Lml2YW5AZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBJdmFuIE1pcm9u b3YgPG1pcm9ub3YuaXZhbkBnbWFpbC5jb20+CkFja2VkLWJ5OiBTdWRhcnNhbmEgS2FsbHVydSA8 U3VkYXJzYW5hLkthbGx1cnVAY2F2aXVtLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWls bGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2Fk Y29tL2JueDJ4L2JueDJ4X21haW4uYyB8IDE0ICsrKysrKysrKystLS0tCiAxIGZpbGUgY2hhbmdl ZCwgMTAgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJz L25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibngyeC9ibngyeF9tYWluLmMgYi9kcml2ZXJzL25ldC9l dGhlcm5ldC9icm9hZGNvbS9ibngyeC9ibngyeF9tYWluLmMKaW5kZXggYjE2NGY3MDU3MDlkLi4z YjViNDdlOThjNzMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2Ju eDJ4L2JueDJ4X21haW4uYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibngy eC9ibngyeF9tYWluLmMKQEAgLTkzNjAsMTAgKzkzNjAsMTYgQEAgdm9pZCBibngyeF9jaGlwX2Ns ZWFudXAoc3RydWN0IGJueDJ4ICpicCwgaW50IHVubG9hZF9tb2RlLCBib29sIGtlZXBfbGluaykK IAkJQk5YMlhfRVJSKCJGYWlsZWQgdG8gc2NoZWR1bGUgREVMIGNvbW1hbmRzIGZvciBVQyBNQUNz IGxpc3Q6ICVkXG4iLAogCQkJICByYyk7CiAKLQkvKiBSZW1vdmUgYWxsIGN1cnJlbnRseSBjb25m aWd1cmVkIFZMQU5zICovCi0JcmMgPSBibngyeF9kZWxfYWxsX3ZsYW5zKGJwKTsKLQlpZiAocmMg PCAwKQotCQlCTlgyWF9FUlIoIkZhaWxlZCB0byBkZWxldGUgYWxsIFZMQU5zXG4iKTsKKwkvKiBU aGUgd2hvbGUgKnZsYW5fb2JqIHN0cnVjdHVyZSBtYXkgYmUgbm90IGluaXRpYWxpemVkIGlmIFZM QU4KKwkgKiBmaWx0ZXJpbmcgb2ZmbG9hZCBpcyBub3Qgc3VwcG9ydGVkIGJ5IGhhcmR3YXJlLiBD dXJyZW50bHkgdGhpcyBpcworCSAqIHRydWUgZm9yIGFsbCBoYXJkd2FyZSBjb3ZlcmVkIGJ5IENI SVBfSVNfRTF4KCkuCisJICovCisJaWYgKCFDSElQX0lTX0UxeChicCkpIHsKKwkJLyogUmVtb3Zl IGFsbCBjdXJyZW50bHkgY29uZmlndXJlZCBWTEFOcyAqLworCQlyYyA9IGJueDJ4X2RlbF9hbGxf dmxhbnMoYnApOworCQlpZiAocmMgPCAwKQorCQkJQk5YMlhfRVJSKCJGYWlsZWQgdG8gZGVsZXRl IGFsbCBWTEFOc1xuIik7CisJfQogCiAJLyogRGlzYWJsZSBMTEggKi8KIAlpZiAoIUNISVBfSVNf RTEoYnApKQotLSAKMi4yMC4xCgoKRnJvbSA0OWUwMTQ5MDFkMjU2MTBjOTVhZTJlZmY2NWE2ZjQ1 NmYxY2M5YzIwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBXaWxsZW0gZGUgQnJ1aWpu IDx3aWxsZW1iQGdvb2dsZS5jb20+CkRhdGU6IFN1biwgMzAgRGVjIDIwMTggMTc6MjE6MDUgLTA1 MDAKU3ViamVjdDogW1BBVENIIDAyLzE2XSB0YXA6IGNhbGwgc2tiX3Byb2JlX3RyYW5zcG9ydF9o ZWFkZXIgYWZ0ZXIgc2V0dGluZwogc2tiLT5kZXYKClsgVXBzdHJlYW0gY29tbWl0IDhjNzZlNzdm OTA2OWYxMDUwNWMwOGUwMjY0NmMzZWUxMWFkNzkwMzggXQoKVGhlIEJQRiBmbG93IGRpc3NlY3Rv ciBleHBlY3RzIGVpdGhlciBza2ItPnNrIG9yIHNrYi0+ZGV2IHNldCBvbgphbGwgc2ticy4gRGVs YXkgZmxvdyBkaXNzZWN0aW9uIHVudGlsIGFmdGVyIHNrYi0+ZGV2IGlzIHNldC4KClRoaXMgcmVx dWlyZXMgY2FsbGluZyBmcm9tIHdpdGhpbiBhbiByY3UgcmVhZC1zaWRlIGNyaXRpY2FsIHNlY3Rp b24uClRoYXQgaXMgZmluZSwgc2VlIGFsc28gdGhlIGNhbGwgZnJvbSB0dW5feGRwX29uZS4KCkZp eGVzOiBkMGUxM2ExNDg4YWQgKCJmbG93X2Rpc3NlY3RvcjogbG9va3VwIG5ldG5zIGJ5IHNrYi0+ c2sgaWYgc2tiLT5kZXYgaXMgTlVMTCIpClJlcG9ydGVkLWJ5OiBDaHJpc3RpYW4gQm9ybnRyYWVn ZXIgPGJvcm50cmFlZ2VyQGRlLmlibS5jb20+ClNpZ25lZC1vZmYtYnk6IFdpbGxlbSBkZSBCcnVp am4gPHdpbGxlbWJAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxk YXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L3RhcC5jIHwgMyArLS0KIDEgZmls ZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k cml2ZXJzL25ldC90YXAuYyBiL2RyaXZlcnMvbmV0L3RhcC5jCmluZGV4IGYwMzAwNGYzN2VjYS4u Mjc2ZjgwMGVkNTdmIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC90YXAuYworKysgYi9kcml2ZXJz L25ldC90YXAuYwpAQCAtMTE3Nyw4ICsxMTc3LDYgQEAgc3RhdGljIGludCB0YXBfZ2V0X3VzZXJf eGRwKHN0cnVjdCB0YXBfcXVldWUgKnEsIHN0cnVjdCB4ZHBfYnVmZiAqeGRwKQogCQkJZ290byBl cnJfa2ZyZWU7CiAJfQogCi0Jc2tiX3Byb2JlX3RyYW5zcG9ydF9oZWFkZXIoc2tiLCBFVEhfSExF Tik7Ci0KIAkvKiBNb3ZlIG5ldHdvcmsgaGVhZGVyIHRvIHRoZSByaWdodCBwb3NpdGlvbiBmb3Ig VkxBTiB0YWdnZWQgcGFja2V0cyAqLwogCWlmICgoc2tiLT5wcm90b2NvbCA9PSBodG9ucyhFVEhf UF84MDIxUSkgfHwKIAkgICAgIHNrYi0+cHJvdG9jb2wgPT0gaHRvbnMoRVRIX1BfODAyMUFEKSkg JiYKQEAgLTExODksNiArMTE4Nyw3IEBAIHN0YXRpYyBpbnQgdGFwX2dldF91c2VyX3hkcChzdHJ1 Y3QgdGFwX3F1ZXVlICpxLCBzdHJ1Y3QgeGRwX2J1ZmYgKnhkcCkKIAl0YXAgPSByY3VfZGVyZWZl cmVuY2UocS0+dGFwKTsKIAlpZiAodGFwKSB7CiAJCXNrYi0+ZGV2ID0gdGFwLT5kZXY7CisJCXNr Yl9wcm9iZV90cmFuc3BvcnRfaGVhZGVyKHNrYiwgRVRIX0hMRU4pOwogCQlkZXZfcXVldWVfeG1p dChza2IpOwogCX0gZWxzZSB7CiAJCWtmcmVlX3NrYihza2IpOwotLSAKMi4yMC4xCgoKRnJvbSBl N2Q4YjI0ZjFhYmMzNTlmOGZhM2ZkNDc5NmY1MmEyYmI4YTA4ZmFlIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBDb25nIFdhbmcgPHhpeW91Lndhbmdjb25nQGdtYWlsLmNvbT4KRGF0ZTog U2F0LCAyOSBEZWMgMjAxOCAxMzo1NjozNiAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMDMvMTZdIGF4 MjU6IGZpeCBhIHVzZS1hZnRlci1mcmVlIGluIGF4MjVfZmlsbGluX2NiKCkKClsgVXBzdHJlYW0g Y29tbWl0IGM0MzM1NzA0NThlNDliY2NlYTVjNTUxZGY2MjhkMDU4YjM1MjYyODkgXQoKVGhlcmUg YXJlIG11bHRpcGxlIGlzc3VlcyBoZXJlOgoKMS4gQWZ0ZXIgZnJlZWluZyBkZXYtPmF4MjVfcHRy LCB3ZSBuZWVkIHRvIHNldCBpdCB0byBOVUxMIG90aGVyd2lzZQogICB3ZSBtYXkgdXNlIGEgZGFu Z2xpbmcgcG9pbnRlci4KCjIuIFRoZXJlIGlzIGEgcmFjZSBiZXR3ZWVuIGF4MjVfc2V0c29ja29w dCgpIGFuZCBkZXZpY2Ugbm90aWZpZXIgYXMKICAgcmVwb3J0ZWQgYnkgc3l6Ym90LiBDbG9zZSBp dCBieSBob2xkaW5nIFJUTkwgbG9jay4KCjMuIFdlIG5lZWQgdG8gdGVzdCBpZiBkZXYtPmF4MjVf cHRyIGlzIE5VTEwgYmVmb3JlIHVzaW5nIGl0LgoKUmVwb3J0ZWQtYW5kLXRlc3RlZC1ieTogc3l6 Ym90K2FlNmJiODY5Y2JlZDI5YjI5MDQwQHN5emthbGxlci5hcHBzcG90bWFpbC5jb20KU2lnbmVk LW9mZi1ieTogQ29uZyBXYW5nIDx4aXlvdS53YW5nY29uZ0BnbWFpbC5jb20+ClNpZ25lZC1vZmYt Ynk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvYXgyNS9h Zl9heDI1LmMgIHwgMTEgKysrKysrKysrLS0KIG5ldC9heDI1L2F4MjVfZGV2LmMgfCAgMiArKwog MiBmaWxlcyBjaGFuZ2VkLCAxMSBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL25ldC9heDI1L2FmX2F4MjUuYyBiL25ldC9heDI1L2FmX2F4MjUuYwppbmRleCBjNjAz ZDMzZDU0MTAuLjVkMDFlZGY4ZDgxOSAxMDA2NDQKLS0tIGEvbmV0L2F4MjUvYWZfYXgyNS5jCisr KyBiL25ldC9heDI1L2FmX2F4MjUuYwpAQCAtNjUzLDE1ICs2NTMsMjIgQEAgc3RhdGljIGludCBh eDI1X3NldHNvY2tvcHQoc3RydWN0IHNvY2tldCAqc29jaywgaW50IGxldmVsLCBpbnQgb3B0bmFt ZSwKIAkJCWJyZWFrOwogCQl9CiAKLQkJZGV2ID0gZGV2X2dldF9ieV9uYW1lKCZpbml0X25ldCwg ZGV2bmFtZSk7CisJCXJ0bmxfbG9jaygpOworCQlkZXYgPSBfX2Rldl9nZXRfYnlfbmFtZSgmaW5p dF9uZXQsIGRldm5hbWUpOwogCQlpZiAoIWRldikgeworCQkJcnRubF91bmxvY2soKTsKIAkJCXJl cyA9IC1FTk9ERVY7CiAJCQlicmVhazsKIAkJfQogCiAJCWF4MjUtPmF4MjVfZGV2ID0gYXgyNV9k ZXZfYXgyNWRldihkZXYpOworCQlpZiAoIWF4MjUtPmF4MjVfZGV2KSB7CisJCQlydG5sX3VubG9j aygpOworCQkJcmVzID0gLUVOT0RFVjsKKwkJCWJyZWFrOworCQl9CiAJCWF4MjVfZmlsbGluX2Ni KGF4MjUsIGF4MjUtPmF4MjVfZGV2KTsKLQkJZGV2X3B1dChkZXYpOworCQlydG5sX3VubG9jaygp OwogCQlicmVhazsKIAogCWRlZmF1bHQ6CmRpZmYgLS1naXQgYS9uZXQvYXgyNS9heDI1X2Rldi5j IGIvbmV0L2F4MjUvYXgyNV9kZXYuYwppbmRleCA5YTNhMzAxZTFlMmYuLmQ5MjE5NWNkNzgzNCAx MDA2NDQKLS0tIGEvbmV0L2F4MjUvYXgyNV9kZXYuYworKysgYi9uZXQvYXgyNS9heDI1X2Rldi5j CkBAIC0xMTYsNiArMTE2LDcgQEAgdm9pZCBheDI1X2Rldl9kZXZpY2VfZG93bihzdHJ1Y3QgbmV0 X2RldmljZSAqZGV2KQogCWlmICgocyA9IGF4MjVfZGV2X2xpc3QpID09IGF4MjVfZGV2KSB7CiAJ CWF4MjVfZGV2X2xpc3QgPSBzLT5uZXh0OwogCQlzcGluX3VubG9ja19iaCgmYXgyNV9kZXZfbG9j ayk7CisJCWRldi0+YXgyNV9wdHIgPSBOVUxMOwogCQlkZXZfcHV0KGRldik7CiAJCWtmcmVlKGF4 MjVfZGV2KTsKIAkJcmV0dXJuOwpAQCAtMTI1LDYgKzEyNiw3IEBAIHZvaWQgYXgyNV9kZXZfZGV2 aWNlX2Rvd24oc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIAkJaWYgKHMtPm5leHQgPT0gYXgyNV9k ZXYpIHsKIAkJCXMtPm5leHQgPSBheDI1X2Rldi0+bmV4dDsKIAkJCXNwaW5fdW5sb2NrX2JoKCZh eDI1X2Rldl9sb2NrKTsKKwkJCWRldi0+YXgyNV9wdHIgPSBOVUxMOwogCQkJZGV2X3B1dChkZXYp OwogCQkJa2ZyZWUoYXgyNV9kZXYpOwogCQkJcmV0dXJuOwotLSAKMi4yMC4xCgoKRnJvbSBlMDFm ZWY1MjkyYWQ3OTI2OGI3NTE3ZDgzYmYwNmVjZGMwYjczNGUyIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBUeXJlbCBEYXR3eWxlciA8dHlyZWxkQGxpbnV4LnZuZXQuaWJtLmNvbT4KRGF0 ZTogTW9uLCAzMSBEZWMgMjAxOCAxNTo0MzowMSAtMDYwMApTdWJqZWN0OiBbUEFUQ0ggMDQvMTZd IGlibXZldGg6IGZpeCBETUEgdW5tYXAgZXJyb3IgaW4gaWJtdmV0aF94bWl0X3N0YXJ0CiBlcnJv ciBwYXRoCgpbIFVwc3RyZWFtIGNvbW1pdCA3NTZhZjljNjQyMzI5ZDU0ZjA0OGJhYzJhNjJmODI5 YjM5MWY2OTQ0IF0KCkNvbW1pdCAzM2E0OGFiMTA1YTcgKCJpYm12ZXRoOiBGaXggRE1BIHVubWFw IGVycm9yIikgZml4ZWQgYW4gaXNzdWUgaW4gdGhlCm5vcm1hbCBjb2RlIHBhdGggb2YgaWJtdmV0 aF94bWl0X3N0YXJ0KCkgdGhhdCB3YXMgb3JpZ2luYWxseSBpbnRyb2R1Y2VkIGJ5CkNvbW1pdCA2 ZThhYjMwZWM2NzcgKCJpYm12ZXRoOiBBZGQgc2NhdHRlci1nYXRoZXIgc3VwcG9ydCIpLiBUaGlz IG9yaWdpbmFsCmZpeCBtaXNzZWQgdGhlIGVycm9yIHBhdGggd2hlcmUgZG1hX3VubWFwX3BhZ2Ug aXMgd3JvbmdseSBjYWxsZWQgb24gdGhlCmhlYWRlciBwb3J0aW9uIGluIGRlc2NzWzBdIHdoaWNo IHdhcyBtYXBwZWQgd2l0aCBkbWFfbWFwX3NpbmdsZS4gQXMgYQpyZXN1bHQgYSBmYWlsdXJlIHRv IERNQSBtYXAgYW55IG9mIHRoZSBmcmFncyByZXN1bHRzIGluIGEgZG1lc2cgd2FybmluZwp3aGVu IENPTkZJR19ETUFfQVBJX0RFQlVHIGlzIGVuYWJsZWQuCgotLS0tLS0tLS0tLS1bIGN1dCBoZXJl IF0tLS0tLS0tLS0tLS0KRE1BLUFQSTogaWJtdmV0aCAzMDAwMDAwMjogZGV2aWNlIGRyaXZlciBm cmVlcyBETUEgbWVtb3J5IHdpdGggd3JvbmcgZnVuY3Rpb24KICBbZGV2aWNlIGFkZHJlc3M9MHgw MDAwMDAwMDBhNDMwMDAwXSBbc2l6ZT0xNzIgYnl0ZXNdIFttYXBwZWQgYXMgcGFnZV0gW3VubWFw cGVkIGFzIHNpbmdsZV0KV0FSTklORzogQ1BVOiAxIFBJRDogODQyNiBhdCBrZXJuZWwvZG1hL2Rl YnVnLmM6MTA4NSBjaGVja191bm1hcCsweDRmYy8weGUxMAouLi4KPHNuaXA+Ci4uLgpETUEtQVBJ OiBNYXBwZWQgYXQ6CmlibXZldGhfc3RhcnRfeG1pdCsweDMwYy8weGI2MApkZXZfaGFyZF9zdGFy dF94bWl0KzB4MTAwLzB4NDUwCnNjaF9kaXJlY3RfeG1pdCsweDIyNC8weDQ5MApfX3FkaXNjX3J1 bisweDIwYy8weDk4MApfX2Rldl9xdWV1ZV94bWl0KzB4MWJjLzB4ZjIwCgpUaGlzIGZpeGVzIHRo ZSBBUEkgbWlzdXNlIGJ5IHVuYW1wcGluZyBkZXNjc1swXSB3aXRoIGRtYV91bm1hcF9zaW5nbGUu CgpGaXhlczogNmU4YWIzMGVjNjc3ICgiaWJtdmV0aDogQWRkIHNjYXR0ZXItZ2F0aGVyIHN1cHBv cnQiKQpTaWduZWQtb2ZmLWJ5OiBUeXJlbCBEYXR3eWxlciA8dHlyZWxkQGxpbnV4LnZuZXQuaWJt LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0 PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L2libS9pYm12ZXRoLmMgfCA2ICsrKysrLQogMSBm aWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBh L2RyaXZlcnMvbmV0L2V0aGVybmV0L2libS9pYm12ZXRoLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5l dC9pYm0vaWJtdmV0aC5jCmluZGV4IGE0NjgxNzgwYTU1ZC4uMDk4ZDg3NjRjMGVhIDEwMDY0NAot LS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9pYm0vaWJtdmV0aC5jCisrKyBiL2RyaXZlcnMvbmV0 L2V0aGVybmV0L2libS9pYm12ZXRoLmMKQEAgLTExNzEsMTEgKzExNzEsMTUgQEAgc3RhdGljIG5l dGRldl90eF90IGlibXZldGhfc3RhcnRfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCiBtYXBf ZmFpbGVkX2ZyYWdzOgogCWxhc3QgPSBpKzE7Ci0JZm9yIChpID0gMDsgaSA8IGxhc3Q7IGkrKykK Kwlmb3IgKGkgPSAxOyBpIDwgbGFzdDsgaSsrKQogCQlkbWFfdW5tYXBfcGFnZSgmYWRhcHRlci0+ dmRldi0+ZGV2LCBkZXNjc1tpXS5maWVsZHMuYWRkcmVzcywKIAkJCSAgICAgICBkZXNjc1tpXS5m aWVsZHMuZmxhZ3NfbGVuICYgSUJNVkVUSF9CVUZfTEVOX01BU0ssCiAJCQkgICAgICAgRE1BX1RP X0RFVklDRSk7CiAKKwlkbWFfdW5tYXBfc2luZ2xlKCZhZGFwdGVyLT52ZGV2LT5kZXYsCisJCQkg ZGVzY3NbMF0uZmllbGRzLmFkZHJlc3MsCisJCQkgZGVzY3NbMF0uZmllbGRzLmZsYWdzX2xlbiAm IElCTVZFVEhfQlVGX0xFTl9NQVNLLAorCQkJIERNQV9UT19ERVZJQ0UpOwogbWFwX2ZhaWxlZDoK IAlpZiAoIWZpcm13YXJlX2hhc19mZWF0dXJlKEZXX0ZFQVRVUkVfQ01PKSkKIAkJbmV0ZGV2X2Vy cihuZXRkZXYsICJ0eDogdW5hYmxlIHRvIG1hcCB4bWl0IGJ1ZmZlclxuIik7Ci0tIAoyLjIwLjEK CgpGcm9tIGQwZTlhN2VmNGFhOWIyNDhjOTI4OTE5ZGJlYjg3ODliOTQ4YWRkYzggTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IFdpbGxlbSBkZSBCcnVpam4gPHdpbGxlbWJAZ29vZ2xlLmNv bT4KRGF0ZTogU3VuLCAyMyBEZWMgMjAxOCAxMjo1MjoxOCAtMDUwMApTdWJqZWN0OiBbUEFUQ0gg MDUvMTZdIGllZWU4MDIxNTQ6IGxvd3Bhbl9oZWFkZXJfY3JlYXRlIGNoZWNrIG11c3QgY2hlY2sg ZGFkZHIKClsgVXBzdHJlYW0gY29tbWl0IDQwYzNmZjZkNWUwODA5NTA1YTA2N2RkNDIzYzExMGM1 NjU4YzQ3OGMgXQoKUGFja2V0IHNvY2tldHMgbWF5IGNhbGwgZGV2X2hlYWRlcl9wYXJzZSB3aXRo IE5VTEwgZGFkZHIuIE1ha2UKbG93cGFuX2hlYWRlcl9vcHMuY3JlYXRlIGZhaWwuCgpGaXhlczog ODdhOTNlNGVjZWI0ICgiaWVlZTgwMjE1NDogY2hhbmdlIG5lZWRlZCBoZWFkcm9vbS90YWlscm9v bSIpClNpZ25lZC1vZmYtYnk6IFdpbGxlbSBkZSBCcnVpam4gPHdpbGxlbWJAZ29vZ2xlLmNvbT4K QWNrZWQtYnk6IEFsZXhhbmRlciBBcmluZyA8YXJpbmdAbW9qYXRhdHUuY29tPgpTaWduZWQtb2Zm LWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2llZWU4 MDIxNTQvNmxvd3Bhbi90eC5jIHwgMyArKysKIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMo KykKCmRpZmYgLS1naXQgYS9uZXQvaWVlZTgwMjE1NC82bG93cGFuL3R4LmMgYi9uZXQvaWVlZTgw MjE1NC82bG93cGFuL3R4LmMKaW5kZXggY2E1M2VmYTE3YmUxLi44YmVjODI3MDgxY2QgMTAwNjQ0 Ci0tLSBhL25ldC9pZWVlODAyMTU0LzZsb3dwYW4vdHguYworKysgYi9uZXQvaWVlZTgwMjE1NC82 bG93cGFuL3R4LmMKQEAgLTQ4LDYgKzQ4LDkgQEAgaW50IGxvd3Bhbl9oZWFkZXJfY3JlYXRlKHN0 cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpsZGV2LAogCWNvbnN0IHN0cnVj dCBpcHY2aGRyICpoZHIgPSBpcHY2X2hkcihza2IpOwogCXN0cnVjdCBuZWlnaGJvdXIgKm47CiAK KwlpZiAoIWRhZGRyKQorCQlyZXR1cm4gLUVJTlZBTDsKKwogCS8qIFRPRE86CiAJICogaWYgdGhp cyBwYWNrYWdlIGlzbid0IGlwdjYgb25lLCB3aGVyZSBzaG91bGQgaXQgYmUgcm91dGVkPwogCSAq LwotLSAKMi4yMC4xCgoKRnJvbSAwZGY4ZjZjMmQ2MDQzN2RjNzAxMjgzNjE3MjlhNmE4MGUzMzI0 YjNmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBXaWxsZW0gZGUgQnJ1aWpuIDx3aWxs ZW1iQGdvb2dsZS5jb20+CkRhdGU6IFN1biwgMzAgRGVjIDIwMTggMTc6MjQ6MzYgLTA1MDAKU3Vi amVjdDogW1BBVENIIDA2LzE2XSBpcDogdmFsaWRhdGUgaGVhZGVyIGxlbmd0aCBvbiB2aXJ0dWFs IGRldmljZSB4bWl0CgpbIFVwc3RyZWFtIGNvbW1pdCBjYjlmMWI3ODM4NTBiMTRjYmQ3Zjg3ZDA2 MWQ3ODRhNjY2ZGZiYTFmIF0KCktNU0FOIGRldGVjdGVkIHJlYWQgYmV5b25kIGVuZCBvZiBidWZm ZXIgaW4gdnRpIGFuZCBzaXQgZGV2aWNlcyB3aGVuCnBhc3NpbmcgdHJ1bmNhdGVkIHBhY2tldHMg d2l0aCBQRl9QQUNLRVQuIFRoZSBpc3N1ZSBhZmZlY3RzIGFkZGl0aW9uYWwKaXAgdHVubmVsIGRl dmljZXMuCgpFeHRlbmQgY29tbWl0IDc2YzBkZGQ4YzNhNiAoImlwNl90dW5uZWw6IGJlIGNhcmVm dWwgd2hlbiBhY2Nlc3NpbmcgdGhlCmlubmVyIGhlYWRlciIpIGFuZCBjb21taXQgY2NmZWM5ZTVj YjJkICgiaXBfdHVubmVsOiBiZSBjYXJlZnVsIHdoZW4KYWNjZXNzaW5nIHRoZSBpbm5lciBoZWFk ZXIiKS4KCk1vdmUgdGhlIGNoZWNrIHRvIGEgc2VwYXJhdGUgaGVscGVyIGFuZCBjYWxsIGF0IHRo ZSBzdGFydCBvZiBlYWNoCm5kb19zdGFydF94bWl0IGZ1bmN0aW9uIGluIG5ldC9pcHY0IGFuZCBu ZXQvaXB2Ni4KCk1pbm9yIGNoYW5nZXM6Ci0gY29udmVydCBkZXZfa2ZyZWVfc2tiIHRvIGtmcmVl X3NrYiBvbiBlcnJvciBwYXRoLAogIGFzIGRldl9rZnJlZV9za2IgY2FsbHMgY29uc3VtZV9za2Ig d2hpY2ggaXMgbm90IGZvciBlcnJvciBwYXRocy4KLSB1c2UgcHNrYl9uZXR3b3JrX21heV9wdWxs IGV2ZW4gdGhvdWdoIHRoYXQgaXMgcGVkYW50aWMgaGVyZSwKICBhcyB0aGUgc2FtZSBhcyBwc2ti X21heV9wdWxsIGZvciBkZXZpY2VzIHdpdGhvdXQgbGxoZWFkZXJzLgotIGRvIG5vdCBjYWNoZSBp cHY2IGhkcnMgaWYgdXNlZCBvbmx5IG9uY2UKICAodW5zYWZlIGFjcm9zcyBwc2tiX21heV9wdWxs LCB3YXMgbW9yZSByZWxldmFudCB0byBlYXJsaWVyIHBhdGNoKQoKUmVwb3J0ZWQtYnk6IHN5emJv dCA8c3l6a2FsbGVyQGdvb2dsZWdyb3Vwcy5jb20+ClNpZ25lZC1vZmYtYnk6IFdpbGxlbSBkZSBC cnVpam4gPHdpbGxlbWJAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVy IDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGluY2x1ZGUvbmV0L2lwX3R1bm5lbHMuaCB8IDIw ICsrKysrKysrKysrKysrKysrKysrCiBuZXQvaXB2NC9pcF9ncmUuYyAgICAgICAgfCAgOSArKysr KysrKysKIG5ldC9pcHY0L2lwX3R1bm5lbC5jICAgICB8ICA5IC0tLS0tLS0tLQogbmV0L2lwdjQv aXBfdnRpLmMgICAgICAgIHwgMTIgKysrKysrKysrLS0tCiBuZXQvaXB2Ni9pcDZfZ3JlLmMgICAg ICAgfCAxMCArKysrKysrLS0tCiBuZXQvaXB2Ni9pcDZfdHVubmVsLmMgICAgfCAxMCArKystLS0t LS0tCiBuZXQvaXB2Ni9pcDZfdnRpLmMgICAgICAgfCAgOCArKysrLS0tLQogbmV0L2lwdjYvaXA2 bXIuYyAgICAgICAgIHwgMTcgKysrKysrKysrKystLS0tLS0KIG5ldC9pcHY2L3NpdC5jICAgICAg ICAgICB8ICAzICsrKwogOSBmaWxlcyBjaGFuZ2VkLCA2NiBpbnNlcnRpb25zKCspLCAzMiBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9pcF90dW5uZWxzLmggYi9pbmNsdWRl L25ldC9pcF90dW5uZWxzLmgKaW5kZXggNWNlOTI2NzAxYmQwLi41ZjY3ZWZiYjc3ZTggMTAwNjQ0 Ci0tLSBhL2luY2x1ZGUvbmV0L2lwX3R1bm5lbHMuaAorKysgYi9pbmNsdWRlL25ldC9pcF90dW5u ZWxzLmgKQEAgLTMwNyw2ICszMDcsMjYgQEAgaW50IGlwX3R1bm5lbF9lbmNhcF9kZWxfb3BzKGNv bnN0IHN0cnVjdCBpcF90dW5uZWxfZW5jYXBfb3BzICpvcCwKIGludCBpcF90dW5uZWxfZW5jYXBf c2V0dXAoc3RydWN0IGlwX3R1bm5lbCAqdCwKIAkJCSAgc3RydWN0IGlwX3R1bm5lbF9lbmNhcCAq aXBlbmNhcCk7CiAKK3N0YXRpYyBpbmxpbmUgYm9vbCBwc2tiX2luZXRfbWF5X3B1bGwoc3RydWN0 IHNrX2J1ZmYgKnNrYikKK3sKKwlpbnQgbmhsZW47CisKKwlzd2l0Y2ggKHNrYi0+cHJvdG9jb2wp IHsKKyNpZiBJU19FTkFCTEVEKENPTkZJR19JUFY2KQorCWNhc2UgaHRvbnMoRVRIX1BfSVBWNik6 CisJCW5obGVuID0gc2l6ZW9mKHN0cnVjdCBpcHY2aGRyKTsKKwkJYnJlYWs7CisjZW5kaWYKKwlj YXNlIGh0b25zKEVUSF9QX0lQKToKKwkJbmhsZW4gPSBzaXplb2Yoc3RydWN0IGlwaGRyKTsKKwkJ YnJlYWs7CisJZGVmYXVsdDoKKwkJbmhsZW4gPSAwOworCX0KKworCXJldHVybiBwc2tiX25ldHdv cmtfbWF5X3B1bGwoc2tiLCBuaGxlbik7Cit9CisKIHN0YXRpYyBpbmxpbmUgaW50IGlwX2VuY2Fw X2hsZW4oc3RydWN0IGlwX3R1bm5lbF9lbmNhcCAqZSkKIHsKIAljb25zdCBzdHJ1Y3QgaXBfdHVu bmVsX2VuY2FwX29wcyAqb3BzOwpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvaXBfZ3JlLmMgYi9uZXQv aXB2NC9pcF9ncmUuYwppbmRleCAzOGJlZmU4MjljYWYuLjBmZTk0MTliZDEyYiAxMDA2NDQKLS0t IGEvbmV0L2lwdjQvaXBfZ3JlLmMKKysrIGIvbmV0L2lwdjQvaXBfZ3JlLmMKQEAgLTY3NCw2ICs2 NzQsOSBAQCBzdGF0aWMgbmV0ZGV2X3R4X3QgaXBncmVfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2ti LAogCXN0cnVjdCBpcF90dW5uZWwgKnR1bm5lbCA9IG5ldGRldl9wcml2KGRldik7CiAJY29uc3Qg c3RydWN0IGlwaGRyICp0bmxfcGFyYW1zOwogCisJaWYgKCFwc2tiX2luZXRfbWF5X3B1bGwoc2ti KSkKKwkJZ290byBmcmVlX3NrYjsKKwogCWlmICh0dW5uZWwtPmNvbGxlY3RfbWQpIHsKIAkJZ3Jl X2ZiX3htaXQoc2tiLCBkZXYsIHNrYi0+cHJvdG9jb2wpOwogCQlyZXR1cm4gTkVUREVWX1RYX09L OwpAQCAtNzE3LDYgKzcyMCw5IEBAIHN0YXRpYyBuZXRkZXZfdHhfdCBlcnNwYW5feG1pdChzdHJ1 Y3Qgc2tfYnVmZiAqc2tiLAogCXN0cnVjdCBpcF90dW5uZWwgKnR1bm5lbCA9IG5ldGRldl9wcml2 KGRldik7CiAJYm9vbCB0cnVuY2F0ZSA9IGZhbHNlOwogCisJaWYgKCFwc2tiX2luZXRfbWF5X3B1 bGwoc2tiKSkKKwkJZ290byBmcmVlX3NrYjsKKwogCWlmICh0dW5uZWwtPmNvbGxlY3RfbWQpIHsK IAkJZXJzcGFuX2ZiX3htaXQoc2tiLCBkZXYsIHNrYi0+cHJvdG9jb2wpOwogCQlyZXR1cm4gTkVU REVWX1RYX09LOwpAQCAtNzYwLDYgKzc2Niw5IEBAIHN0YXRpYyBuZXRkZXZfdHhfdCBncmVfdGFw X3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwKIHsKIAlzdHJ1Y3QgaXBfdHVubmVsICp0dW5uZWwg PSBuZXRkZXZfcHJpdihkZXYpOwogCisJaWYgKCFwc2tiX2luZXRfbWF5X3B1bGwoc2tiKSkKKwkJ Z290byBmcmVlX3NrYjsKKwogCWlmICh0dW5uZWwtPmNvbGxlY3RfbWQpIHsKIAkJZ3JlX2ZiX3ht aXQoc2tiLCBkZXYsIGh0b25zKEVUSF9QX1RFQikpOwogCQlyZXR1cm4gTkVUREVWX1RYX09LOwpk aWZmIC0tZ2l0IGEvbmV0L2lwdjQvaXBfdHVubmVsLmMgYi9uZXQvaXB2NC9pcF90dW5uZWwuYwpp bmRleCAyODRhMjIxNTRiNGUuLmM0ZjU2MDIzMDhlZCAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvaXBf dHVubmVsLmMKKysrIGIvbmV0L2lwdjQvaXBfdHVubmVsLmMKQEAgLTYyNyw3ICs2MjcsNiBAQCB2 b2lkIGlwX3R1bm5lbF94bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNl ICpkZXYsCiAJCSAgICBjb25zdCBzdHJ1Y3QgaXBoZHIgKnRubF9wYXJhbXMsIHU4IHByb3RvY29s KQogewogCXN0cnVjdCBpcF90dW5uZWwgKnR1bm5lbCA9IG5ldGRldl9wcml2KGRldik7Ci0JdW5z aWduZWQgaW50IGlubmVyX25oZHJfbGVuID0gMDsKIAljb25zdCBzdHJ1Y3QgaXBoZHIgKmlubmVy X2lwaDsKIAlzdHJ1Y3QgZmxvd2k0IGZsNDsKIAl1OCAgICAgdG9zLCB0dGw7CkBAIC02MzcsMTQg KzYzNiw2IEBAIHZvaWQgaXBfdHVubmVsX3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0 IG5ldF9kZXZpY2UgKmRldiwKIAlfX2JlMzIgZHN0OwogCWJvb2wgY29ubmVjdGVkOwogCi0JLyog ZW5zdXJlIHdlIGNhbiBhY2Nlc3MgdGhlIGlubmVyIG5ldCBoZWFkZXIsIGZvciBzZXZlcmFsIHVz ZXJzIGJlbG93ICovCi0JaWYgKHNrYi0+cHJvdG9jb2wgPT0gaHRvbnMoRVRIX1BfSVApKQotCQlp bm5lcl9uaGRyX2xlbiA9IHNpemVvZihzdHJ1Y3QgaXBoZHIpOwotCWVsc2UgaWYgKHNrYi0+cHJv dG9jb2wgPT0gaHRvbnMoRVRIX1BfSVBWNikpCi0JCWlubmVyX25oZHJfbGVuID0gc2l6ZW9mKHN0 cnVjdCBpcHY2aGRyKTsKLQlpZiAodW5saWtlbHkoIXBza2JfbWF5X3B1bGwoc2tiLCBpbm5lcl9u aGRyX2xlbikpKQotCQlnb3RvIHR4X2Vycm9yOwotCiAJaW5uZXJfaXBoID0gKGNvbnN0IHN0cnVj dCBpcGhkciAqKXNrYl9pbm5lcl9uZXR3b3JrX2hlYWRlcihza2IpOwogCWNvbm5lY3RlZCA9ICh0 dW5uZWwtPnBhcm1zLmlwaC5kYWRkciAhPSAwKTsKIApkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvaXBf dnRpLmMgYi9uZXQvaXB2NC9pcF92dGkuYwppbmRleCBkZTMxYjMwMmQ2OWMuLmQ3YjQzZTcwMDAy MyAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvaXBfdnRpLmMKKysrIGIvbmV0L2lwdjQvaXBfdnRpLmMK QEAgLTI0MSw2ICsyNDEsOSBAQCBzdGF0aWMgbmV0ZGV2X3R4X3QgdnRpX3R1bm5lbF94bWl0KHN0 cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiAJc3RydWN0IGlwX3R1 bm5lbCAqdHVubmVsID0gbmV0ZGV2X3ByaXYoZGV2KTsKIAlzdHJ1Y3QgZmxvd2kgZmw7CiAKKwlp ZiAoIXBza2JfaW5ldF9tYXlfcHVsbChza2IpKQorCQlnb3RvIHR4X2VycjsKKwogCW1lbXNldCgm ZmwsIDAsIHNpemVvZihmbCkpOwogCiAJc3dpdGNoIChza2ItPnByb3RvY29sKSB7CkBAIC0yNTMs MTUgKzI1NiwxOCBAQCBzdGF0aWMgbmV0ZGV2X3R4X3QgdnRpX3R1bm5lbF94bWl0KHN0cnVjdCBz a19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiAJCW1lbXNldChJUDZDQihza2Ip LCAwLCBzaXplb2YoKklQNkNCKHNrYikpKTsKIAkJYnJlYWs7CiAJZGVmYXVsdDoKLQkJZGV2LT5z dGF0cy50eF9lcnJvcnMrKzsKLQkJZGV2X2tmcmVlX3NrYihza2IpOwotCQlyZXR1cm4gTkVUREVW X1RYX09LOworCQlnb3RvIHR4X2VycjsKIAl9CiAKIAkvKiBvdmVycmlkZSBtYXJrIHdpdGggdHVu bmVsIG91dHB1dCBrZXkgKi8KIAlmbC5mbG93aV9tYXJrID0gYmUzMl90b19jcHUodHVubmVsLT5w YXJtcy5vX2tleSk7CiAKIAlyZXR1cm4gdnRpX3htaXQoc2tiLCBkZXYsICZmbCk7CisKK3R4X2Vy cjoKKwlkZXYtPnN0YXRzLnR4X2Vycm9ycysrOworCWtmcmVlX3NrYihza2IpOworCXJldHVybiBO RVRERVZfVFhfT0s7CiB9CiAKIHN0YXRpYyBpbnQgdnRpNF9lcnIoc3RydWN0IHNrX2J1ZmYgKnNr YiwgdTMyIGluZm8pCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9pcDZfZ3JlLmMgYi9uZXQvaXB2Ni9p cDZfZ3JlLmMKaW5kZXggNTE1YWRiZGJhMWQyLi4wZjdkNDM0YzFlZWQgMTAwNjQ0Ci0tLSBhL25l dC9pcHY2L2lwNl9ncmUuYworKysgYi9uZXQvaXB2Ni9pcDZfZ3JlLmMKQEAgLTg3OSw2ICs4Nzks OSBAQCBzdGF0aWMgbmV0ZGV2X3R4X3QgaXA2Z3JlX3R1bm5lbF94bWl0KHN0cnVjdCBza19idWZm ICpza2IsCiAJc3RydWN0IG5ldF9kZXZpY2Vfc3RhdHMgKnN0YXRzID0gJnQtPmRldi0+c3RhdHM7 CiAJaW50IHJldDsKIAorCWlmICghcHNrYl9pbmV0X21heV9wdWxsKHNrYikpCisJCWdvdG8gdHhf ZXJyOworCiAJaWYgKCFpcDZfdG5sX3htaXRfY3RsKHQsICZ0LT5wYXJtcy5sYWRkciwgJnQtPnBh cm1zLnJhZGRyKSkKIAkJZ290byB0eF9lcnI7CiAKQEAgLTkyMSw2ICs5MjQsOSBAQCBzdGF0aWMg bmV0ZGV2X3R4X3QgaXA2ZXJzcGFuX3R1bm5lbF94bWl0KHN0cnVjdCBza19idWZmICpza2IsCiAJ aW50IG5ob2ZmOwogCWludCB0aG9mZjsKIAorCWlmICghcHNrYl9pbmV0X21heV9wdWxsKHNrYikp CisJCWdvdG8gdHhfZXJyOworCiAJaWYgKCFpcDZfdG5sX3htaXRfY3RsKHQsICZ0LT5wYXJtcy5s YWRkciwgJnQtPnBhcm1zLnJhZGRyKSkKIAkJZ290byB0eF9lcnI7CiAKQEAgLTk5Myw4ICs5OTks NiBAQCBzdGF0aWMgbmV0ZGV2X3R4X3QgaXA2ZXJzcGFuX3R1bm5lbF94bWl0KHN0cnVjdCBza19i dWZmICpza2IsCiAJCQlnb3RvIHR4X2VycjsKIAkJfQogCX0gZWxzZSB7Ci0JCXN0cnVjdCBpcHY2 aGRyICppcHY2aCA9IGlwdjZfaGRyKHNrYik7Ci0KIAkJc3dpdGNoIChza2ItPnByb3RvY29sKSB7 CiAJCWNhc2UgaHRvbnMoRVRIX1BfSVApOgogCQkJbWVtc2V0KCYoSVBDQihza2IpLT5vcHQpLCAw LCBzaXplb2YoSVBDQihza2IpLT5vcHQpKTsKQEAgLTEwMDIsNyArMTAwNiw3IEBAIHN0YXRpYyBu ZXRkZXZfdHhfdCBpcDZlcnNwYW5fdHVubmVsX3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJ CQkJCSAmZHNmaWVsZCwgJmVuY2FwX2xpbWl0KTsKIAkJCWJyZWFrOwogCQljYXNlIGh0b25zKEVU SF9QX0lQVjYpOgotCQkJaWYgKGlwdjZfYWRkcl9lcXVhbCgmdC0+cGFybXMucmFkZHIsICZpcHY2 aC0+c2FkZHIpKQorCQkJaWYgKGlwdjZfYWRkcl9lcXVhbCgmdC0+cGFybXMucmFkZHIsICZpcHY2 X2hkcihza2IpLT5zYWRkcikpCiAJCQkJZ290byB0eF9lcnI7CiAJCQlpZiAocHJlcGFyZV9pcDZn cmVfeG1pdF9pcHY2KHNrYiwgZGV2LCAmZmw2LAogCQkJCQkJICAgICAmZHNmaWVsZCwgJmVuY2Fw X2xpbWl0KSkKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2lwNl90dW5uZWwuYyBiL25ldC9pcHY2L2lw Nl90dW5uZWwuYwppbmRleCA5OTE3OWI5YzgzODQuLjBjNjQwM2NmOGI1MiAxMDA2NDQKLS0tIGEv bmV0L2lwdjYvaXA2X3R1bm5lbC5jCisrKyBiL25ldC9pcHY2L2lwNl90dW5uZWwuYwpAQCAtMTI0 MywxMCArMTI0Myw2IEBAIGlwNGlwNl90bmxfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1 Y3QgbmV0X2RldmljZSAqZGV2KQogCXU4IHRwcm90bzsKIAlpbnQgZXJyOwogCi0JLyogZW5zdXJl IHdlIGNhbiBhY2Nlc3MgdGhlIGZ1bGwgaW5uZXIgaXAgaGVhZGVyICovCi0JaWYgKCFwc2tiX21h eV9wdWxsKHNrYiwgc2l6ZW9mKHN0cnVjdCBpcGhkcikpKQotCQlyZXR1cm4gLTE7Ci0KIAlpcGgg PSBpcF9oZHIoc2tiKTsKIAltZW1zZXQoJihJUENCKHNrYiktPm9wdCksIDAsIHNpemVvZihJUENC KHNrYiktPm9wdCkpOwogCkBAIC0xMzIxLDkgKzEzMTcsNiBAQCBpcDZpcDZfdG5sX3htaXQoc3Ry dWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIAl1OCB0cHJvdG87CiAJ aW50IGVycjsKIAotCWlmICh1bmxpa2VseSghcHNrYl9tYXlfcHVsbChza2IsIHNpemVvZigqaXB2 NmgpKSkpCi0JCXJldHVybiAtMTsKLQogCWlwdjZoID0gaXB2Nl9oZHIoc2tiKTsKIAl0cHJvdG8g PSBSRUFEX09OQ0UodC0+cGFybXMucHJvdG8pOwogCWlmICgodHByb3RvICE9IElQUFJPVE9fSVBW NiAmJiB0cHJvdG8gIT0gMCkgfHwKQEAgLTE0MDUsNiArMTM5OCw5IEBAIGlwNl90bmxfc3RhcnRf eG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogCXN0cnVj dCBuZXRfZGV2aWNlX3N0YXRzICpzdGF0cyA9ICZ0LT5kZXYtPnN0YXRzOwogCWludCByZXQ7CiAK KwlpZiAoIXBza2JfaW5ldF9tYXlfcHVsbChza2IpKQorCQlnb3RvIHR4X2VycjsKKwogCXN3aXRj aCAoc2tiLT5wcm90b2NvbCkgewogCWNhc2UgaHRvbnMoRVRIX1BfSVApOgogCQlyZXQgPSBpcDRp cDZfdG5sX3htaXQoc2tiLCBkZXYpOwpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvaXA2X3Z0aS5jIGIv bmV0L2lwdjYvaXA2X3Z0aS5jCmluZGV4IDcwNmZlNDJlNDkyOC4uOGI2ZWVmZmYyZjdlIDEwMDY0 NAotLS0gYS9uZXQvaXB2Ni9pcDZfdnRpLmMKKysrIGIvbmV0L2lwdjYvaXA2X3Z0aS5jCkBAIC01 MjIsMTggKzUyMiwxOCBAQCB2dGk2X3RubF94bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVj dCBuZXRfZGV2aWNlICpkZXYpCiB7CiAJc3RydWN0IGlwNl90bmwgKnQgPSBuZXRkZXZfcHJpdihk ZXYpOwogCXN0cnVjdCBuZXRfZGV2aWNlX3N0YXRzICpzdGF0cyA9ICZ0LT5kZXYtPnN0YXRzOwot CXN0cnVjdCBpcHY2aGRyICppcHY2aDsKIAlzdHJ1Y3QgZmxvd2kgZmw7CiAJaW50IHJldDsKIAor CWlmICghcHNrYl9pbmV0X21heV9wdWxsKHNrYikpCisJCWdvdG8gdHhfZXJyOworCiAJbWVtc2V0 KCZmbCwgMCwgc2l6ZW9mKGZsKSk7CiAKIAlzd2l0Y2ggKHNrYi0+cHJvdG9jb2wpIHsKIAljYXNl IGh0b25zKEVUSF9QX0lQVjYpOgotCQlpcHY2aCA9IGlwdjZfaGRyKHNrYik7Ci0KIAkJaWYgKCh0 LT5wYXJtcy5wcm90byAhPSBJUFBST1RPX0lQVjYgJiYgdC0+cGFybXMucHJvdG8gIT0gMCkgfHwK LQkJICAgIHZ0aTZfYWRkcl9jb25mbGljdCh0LCBpcHY2aCkpCisJCSAgICB2dGk2X2FkZHJfY29u ZmxpY3QodCwgaXB2Nl9oZHIoc2tiKSkpCiAJCQlnb3RvIHR4X2VycjsKIAogCQl4ZnJtX2RlY29k ZV9zZXNzaW9uKHNrYiwgJmZsLCBBRl9JTkVUNik7CmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9pcDZt ci5jIGIvbmV0L2lwdjYvaXA2bXIuYwppbmRleCAzNzdhMmVlNWQ5YWQuLmViMzIyMDgxMmI1NiAx MDA2NDQKLS0tIGEvbmV0L2lwdjYvaXA2bXIuYworKysgYi9uZXQvaXB2Ni9pcDZtci5jCkBAIC01 MSw2ICs1MSw3IEBACiAjaW5jbHVkZSA8bGludXgvZXhwb3J0Lmg+CiAjaW5jbHVkZSA8bmV0L2lw Nl9jaGVja3N1bS5oPgogI2luY2x1ZGUgPGxpbnV4L25ldGNvbmYuaD4KKyNpbmNsdWRlIDxuZXQv aXBfdHVubmVscy5oPgogCiAjaW5jbHVkZSA8bGludXgvbm9zcGVjLmg+CiAKQEAgLTU5OSwxMyAr NjAwLDEyIEBAIHN0YXRpYyBuZXRkZXZfdHhfdCByZWdfdmlmX3htaXQoc3RydWN0IHNrX2J1ZmYg KnNrYiwKIAkJLmZsb3dpNl9paWYJPSBza2ItPnNrYl9paWYgPyA6IExPT1BCQUNLX0lGSU5ERVgs CiAJCS5mbG93aTZfbWFyawk9IHNrYi0+bWFyaywKIAl9OwotCWludCBlcnI7CiAKLQllcnIgPSBp cDZtcl9maWJfbG9va3VwKG5ldCwgJmZsNiwgJm1ydCk7Ci0JaWYgKGVyciA8IDApIHsKLQkJa2Zy ZWVfc2tiKHNrYik7Ci0JCXJldHVybiBlcnI7Ci0JfQorCWlmICghcHNrYl9pbmV0X21heV9wdWxs KHNrYikpCisJCWdvdG8gdHhfZXJyOworCisJaWYgKGlwNm1yX2ZpYl9sb29rdXAobmV0LCAmZmw2 LCAmbXJ0KSA8IDApCisJCWdvdG8gdHhfZXJyOwogCiAJcmVhZF9sb2NrKCZtcnRfbG9jayk7CiAJ ZGV2LT5zdGF0cy50eF9ieXRlcyArPSBza2ItPmxlbjsKQEAgLTYxNCw2ICs2MTQsMTEgQEAgc3Rh dGljIG5ldGRldl90eF90IHJlZ192aWZfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCXJlYWRf dW5sb2NrKCZtcnRfbG9jayk7CiAJa2ZyZWVfc2tiKHNrYik7CiAJcmV0dXJuIE5FVERFVl9UWF9P SzsKKwordHhfZXJyOgorCWRldi0+c3RhdHMudHhfZXJyb3JzKys7CisJa2ZyZWVfc2tiKHNrYik7 CisJcmV0dXJuIE5FVERFVl9UWF9PSzsKIH0KIAogc3RhdGljIGludCByZWdfdmlmX2dldF9pZmxp bmsoY29uc3Qgc3RydWN0IG5ldF9kZXZpY2UgKmRldikKZGlmZiAtLWdpdCBhL25ldC9pcHY2L3Np dC5jIGIvbmV0L2lwdjYvc2l0LmMKaW5kZXggNTFjOWY3NWYzNGI5Li4xZTAzMzA1YzA1NDkgMTAw NjQ0Ci0tLSBhL25ldC9pcHY2L3NpdC5jCisrKyBiL25ldC9pcHY2L3NpdC5jCkBAIC0xMDIxLDYg KzEwMjEsOSBAQCBzdGF0aWMgbmV0ZGV2X3R4X3Qgc2l0X3R1bm5lbF94bWl0X18oc3RydWN0IHNr X2J1ZmYgKnNrYiwKIHN0YXRpYyBuZXRkZXZfdHhfdCBzaXRfdHVubmVsX3htaXQoc3RydWN0IHNr X2J1ZmYgKnNrYiwKIAkJCQkgICBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogeworCWlmICghcHNr Yl9pbmV0X21heV9wdWxsKHNrYikpCisJCWdvdG8gdHhfZXJyOworCiAJc3dpdGNoIChza2ItPnBy b3RvY29sKSB7CiAJY2FzZSBodG9ucyhFVEhfUF9JUCk6CiAJCXNpdF90dW5uZWxfeG1pdF9fKHNr YiwgZGV2LCBJUFBST1RPX0lQSVApOwotLSAKMi4yMC4xCgoKRnJvbSBkNGMwMDc2OTE2MTNmYTEy YWIyMDljYTFkOTI1ZjZiYzRhMGQwZjkzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAi R3VzdGF2byBBLiBSLiBTaWx2YSIgPGd1c3Rhdm9AZW1iZWRkZWRvci5jb20+CkRhdGU6IEZyaSwg MjEgRGVjIDIwMTggMTQ6NDk6MDEgLTA2MDAKU3ViamVjdDogW1BBVENIIDA3LzE2XSBuZXQ6IGNv cmU6IEZpeCBTcGVjdHJlIHYxIHZ1bG5lcmFiaWxpdHkKClsgVXBzdHJlYW0gY29tbWl0IDUwZDUy NTg2MzRhZWUyZTYyODMyYWEwODZkMmZiMGRlMDBlNzJiOTEgXQoKZmxlbiBpcyBpbmRpcmVjdGx5 IGNvbnRyb2xsZWQgYnkgdXNlci1zcGFjZSwgaGVuY2UgbGVhZGluZyB0bwphIHBvdGVudGlhbCBl eHBsb2l0YXRpb24gb2YgdGhlIFNwZWN0cmUgdmFyaWFudCAxIHZ1bG5lcmFiaWxpdHkuCgpUaGlz IGlzc3VlIHdhcyBkZXRlY3RlZCB3aXRoIHRoZSBoZWxwIG9mIFNtYXRjaDoKCm5ldC9jb3JlL2Zp bHRlci5jOjExMDEgYnBmX2NoZWNrX2NsYXNzaWMoKSB3YXJuOiBwb3RlbnRpYWwgc3BlY3RyZSBp c3N1ZSAnZmlsdGVyJyBbd10KCkZpeCB0aGlzIGJ5IHNhbml0aXppbmcgZmxlbiBiZWZvcmUgdXNp bmcgaXQgdG8gaW5kZXggZmlsdGVyIGF0IGxpbmUgMTEwMToKCglzd2l0Y2ggKGZpbHRlcltmbGVu IC0gMV0uY29kZSkgewoKYW5kIHRocm91Z2ggcGMgYXQgbGluZSAxMDQwOgoKCWNvbnN0IHN0cnVj dCBzb2NrX2ZpbHRlciAqZnRlc3QgPSAmZmlsdGVyW3BjXTsKCk5vdGljZSB0aGF0IGdpdmVuIHRo YXQgc3BlY3VsYXRpb24gd2luZG93cyBhcmUgbGFyZ2UsIHRoZSBwb2xpY3kgaXMKdG8ga2lsbCB0 aGUgc3BlY3VsYXRpb24gb24gdGhlIGZpcnN0IGxvYWQgYW5kIG5vdCB3b3JyeSBpZiBpdCBjYW4g YmUKY29tcGxldGVkIHdpdGggYSBkZXBlbmRlbnQgbG9hZC9zdG9yZSBbMV0uCgpbMV0gaHR0cHM6 Ly9tYXJjLmluZm8vP2w9bGludXgta2VybmVsJm09MTUyNDQ5MTMxMTE0Nzc4Jnc9MgoKU2lnbmVk LW9mZi1ieTogR3VzdGF2byBBLiBSLiBTaWx2YSA8Z3VzdGF2b0BlbWJlZGRlZG9yLmNvbT4KU2ln bmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5l dC9jb3JlL2ZpbHRlci5jIHwgMiArKwogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKQoK ZGlmZiAtLWdpdCBhL25ldC9jb3JlL2ZpbHRlci5jIGIvbmV0L2NvcmUvZmlsdGVyLmMKaW5kZXgg OGQyYzYyOTUwMWUyLi4wYzc0YzJmOTc3NmEgMTAwNjQ0Ci0tLSBhL25ldC9jb3JlL2ZpbHRlci5j CisrKyBiL25ldC9jb3JlL2ZpbHRlci5jCkBAIC03Myw2ICs3Myw3IEBACiAjaW5jbHVkZSA8bGlu dXgvc2VnNl9sb2NhbC5oPgogI2luY2x1ZGUgPG5ldC9zZWc2Lmg+CiAjaW5jbHVkZSA8bmV0L3Nl ZzZfbG9jYWwuaD4KKyNpbmNsdWRlIDxsaW51eC9ub3NwZWMuaD4KIAogLyoqCiAgKglza19maWx0 ZXJfdHJpbV9jYXAgLSBydW4gYSBwYWNrZXQgdGhyb3VnaCBhIHNvY2tldCBmaWx0ZXIKQEAgLTEw MzgsNiArMTAzOSw3IEBAIHN0YXRpYyBpbnQgYnBmX2NoZWNrX2NsYXNzaWMoY29uc3Qgc3RydWN0 IHNvY2tfZmlsdGVyICpmaWx0ZXIsCiAJYm9vbCBhbmNfZm91bmQ7CiAJaW50IHBjOwogCisJZmxl biA9IGFycmF5X2luZGV4X25vc3BlYyhmbGVuLCBCUEZfTUFYSU5TTlMgKyAxKTsKIAkvKiBDaGVj ayB0aGUgZmlsdGVyIGNvZGUgbm93ICovCiAJZm9yIChwYyA9IDA7IHBjIDwgZmxlbjsgcGMrKykg ewogCQljb25zdCBzdHJ1Y3Qgc29ja19maWx0ZXIgKmZ0ZXN0ID0gJmZpbHRlcltwY107Ci0tIAoy LjIwLjEKCgpGcm9tIDAxYTJlNzcyYWRkOTI5ZjNlYjM0ZjhhOWYzM2MyMjEzMWE2YWZlYzYgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xl LmNvbT4KRGF0ZTogV2VkLCAyIEphbiAyMDE5IDA0OjI0OjIwIC0wODAwClN1YmplY3Q6IFtQQVRD SCAwOC8xNl0gbmV0L2hhbXJhZGlvLzZwYWNrOiB1c2UgbW9kX3RpbWVyKCkgdG8gcmVhcm0gdGlt ZXJzCgpbIFVwc3RyZWFtIGNvbW1pdCAyMDI3MDBlMzA3NDBjNjU2OGI1YTY5NDM2NjJmMzgyOTU2 NmRkNTMzIF0KClVzaW5nIGRlbF90aW1lcigpICsgYWRkX3RpbWVyKCkgaXMgZ2VuZXJhbGx5IHVu c2FmZSBvbiBTTVAsCmFzIG5vdGljZWQgYnkgc3l6Ym90LiBVc2UgbW9kX3RpbWVyKCkgaW5zdGVh ZC4KCmtlcm5lbCBCVUcgYXQga2VybmVsL3RpbWUvdGltZXIuYzoxMTM2IQppbnZhbGlkIG9wY29k ZTogMDAwMCBbIzFdIFBSRUVNUFQgU01QIEtBU0FOCkNQVTogMSBQSUQ6IDEwMjYgQ29tbToga3dv cmtlci91NDo0IE5vdCB0YWludGVkIDQuMjAuMCsgIzIKSGFyZHdhcmUgbmFtZTogR29vZ2xlIEdv b2dsZSBDb21wdXRlIEVuZ2luZS9Hb29nbGUgQ29tcHV0ZSBFbmdpbmUsIEJJT1MgR29vZ2xlIDAx LzAxLzIwMTEKV29ya3F1ZXVlOiBldmVudHNfdW5ib3VuZCBmbHVzaF90b19sZGlzYwpSSVA6IDAw MTA6YWRkX3RpbWVyIGtlcm5lbC90aW1lL3RpbWVyLmM6MTEzNiBbaW5saW5lXQpSSVA6IDAwMTA6 YWRkX3RpbWVyKzB4YTgxLzB4MTQ3MCBrZXJuZWwvdGltZS90aW1lci5jOjExMzQKQ29kZTogNGQg ODkgN2QgNDAgNDggYzcgODUgNzAgZmUgZmYgZmYgMDAgMDAgMDAgMDAgYzcgODUgN2MgZmUgZmYg ZmYgZmYgZmYgZmYgZmYgNDggODkgODUgOTAgZmUgZmYgZmYgZTkgZTYgZjcgZmYgZmYgZTggY2Yg NDIgMTIgMDAgPDBmPiAwYiBlOCBjOCA0MiAxMiAwMCAwZiAwYiBlOCBjMSA0MiAxMiAwMCA0YyA4 OSBiZCA2MCBmZSBmZiBmZiBlOQpSU1A6IDAwMTg6ZmZmZjg4ODBhN2ZkZjVhOCBFRkxBR1M6IDAw MDEwMjkzClJBWDogZmZmZjg4ODBhNzg0NjM0MCBSQlg6IGRmZmZmYzAwMDAwMDAwMDAgUkNYOiAw MDAwMDAwMDAwMDAwMDAwClJEWDogMDAwMDAwMDAwMDAwMDAwMCBSU0k6IGZmZmZmZmZmODE2ZjNl ZTEgUkRJOiBmZmZmODg4MDhhNTE0ZmY4ClJCUDogZmZmZjg4ODBhN2ZkZjc2MCBSMDg6IDAwMDAw MDAwMDAwMDAwMDcgUjA5OiBmZmZmODg4MGE3ODQ2YzU4ClIxMDogZmZmZjg4ODBhNzg0NjM0MCBS MTE6IDAwMDAwMDAwMDAwMDAwMDAgUjEyOiBmZmZmODg4MDhhNTE0ZmY4ClIxMzogZmZmZjg4ODA4 YTUxNGZmOCBSMTQ6IGZmZmY4ODgwOGE1MTRkYzAgUjE1OiAwMDAwMDAwMDAwMDAwMDMwCkZTOiAg MDAwMDAwMDAwMDAwMDAwMCgwMDAwKSBHUzpmZmZmODg4MGFlNzAwMDAwKDAwMDApIGtubEdTOjAw MDAwMDAwMDAwMDAwMDAKQ1M6ICAwMDEwIERTOiAwMDAwIEVTOiAwMDAwIENSMDogMDAwMDAwMDA4 MDA1MDAzMwpDUjI6IDAwMDAwMDAwMDA2MWM1MDAgQ1IzOiAwMDAwMDAwMDk5NGQ5MDAwIENSNDog MDAwMDAwMDAwMDE0MDZlMApEUjA6IDAwMDAwMDAwMDAwMDAwMDAgRFIxOiAwMDAwMDAwMDAwMDAw MDAwIERSMjogMDAwMDAwMDAwMDAwMDAwMApEUjM6IDAwMDAwMDAwMDAwMDAwMDAgRFI2OiAwMDAw MDAwMGZmZmUwZmYwIERSNzogMDAwMDAwMDAwMDAwMDQwMApDYWxsIFRyYWNlOgogZGVjb2RlX3By aW9fY29tbWFuZCBkcml2ZXJzL25ldC9oYW1yYWRpby82cGFjay5jOjkwMyBbaW5saW5lXQogc2l4 cGFja19kZWNvZGUgZHJpdmVycy9uZXQvaGFtcmFkaW8vNnBhY2suYzo5NzEgW2lubGluZV0KIHNp eHBhY2tfcmVjZWl2ZV9idWYgZHJpdmVycy9uZXQvaGFtcmFkaW8vNnBhY2suYzo0NTcgW2lubGlu ZV0KIHNpeHBhY2tfcmVjZWl2ZV9idWYrMHhmOWMvMHgxNDcwIGRyaXZlcnMvbmV0L2hhbXJhZGlv LzZwYWNrLmM6NDM0CiB0dHlfbGRpc2NfcmVjZWl2ZV9idWYrMHgxNjQvMHgxYzAgZHJpdmVycy90 dHkvdHR5X2J1ZmZlci5jOjQ2NQogdHR5X3BvcnRfZGVmYXVsdF9yZWNlaXZlX2J1ZisweDExNC8w eDE5MCBkcml2ZXJzL3R0eS90dHlfcG9ydC5jOjM4CiByZWNlaXZlX2J1ZiBkcml2ZXJzL3R0eS90 dHlfYnVmZmVyLmM6NDgxIFtpbmxpbmVdCiBmbHVzaF90b19sZGlzYysweDNiMi8weDU5MCBkcml2 ZXJzL3R0eS90dHlfYnVmZmVyLmM6NTMzCiBwcm9jZXNzX29uZV93b3JrKzB4ZDBjLzB4MWNlMCBr ZXJuZWwvd29ya3F1ZXVlLmM6MjE1Mwogd29ya2VyX3RocmVhZCsweDE0My8weDE0YTAga2VybmVs L3dvcmtxdWV1ZS5jOjIyOTYKIGt0aHJlYWQrMHgzNTcvMHg0MzAga2VybmVsL2t0aHJlYWQuYzoy NDYKIHJldF9mcm9tX2ZvcmsrMHgzYS8weDUwIGFyY2gveDg2L2VudHJ5L2VudHJ5XzY0LlM6MzUy CgpGaXhlczogMWRhMTc3ZTRjM2Y0ICgiTGludXgtMi42LjEyLXJjMiIpClNpZ25lZC1vZmYtYnk6 IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KUmVwb3J0ZWQtYnk6IHN5emJvdCA8 c3l6a2FsbGVyQGdvb2dsZWdyb3Vwcy5jb20+CkNjOiBBbmRyZWFzIEtvZW5zZ2VuIDxhamtAY29t bmV0cy51bmktYnJlbWVuLmRlPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVt QGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvaGFtcmFkaW8vNnBhY2suYyB8IDE2ICsr KystLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDEyIGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2hhbXJhZGlvLzZwYWNrLmMgYi9kcml2 ZXJzL25ldC9oYW1yYWRpby82cGFjay5jCmluZGV4IDE3ZTZkY2QyZWI0Mi4uYzk5ZGQzZjFlNmE4 IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9oYW1yYWRpby82cGFjay5jCisrKyBiL2RyaXZlcnMv bmV0L2hhbXJhZGlvLzZwYWNrLmMKQEAgLTUyMywxMCArNTIzLDcgQEAgc3RhdGljIHZvaWQgcmVz eW5jX3RuYyhzdHJ1Y3QgdGltZXJfbGlzdCAqdCkKIAogCiAJLyogU3RhcnQgcmVzeW5jIHRpbWVy IGFnYWluIC0tIHRoZSBUTkMgbWlnaHQgYmUgc3RpbGwgYWJzZW50ICovCi0KLQlkZWxfdGltZXIo JnNwLT5yZXN5bmNfdCk7Ci0Jc3AtPnJlc3luY190LmV4cGlyZXMJPSBqaWZmaWVzICsgU0lYUF9S RVNZTkNfVElNRU9VVDsKLQlhZGRfdGltZXIoJnNwLT5yZXN5bmNfdCk7CisJbW9kX3RpbWVyKCZz cC0+cmVzeW5jX3QsIGppZmZpZXMgKyBTSVhQX1JFU1lOQ19USU1FT1VUKTsKIH0KIAogc3RhdGlj IGlubGluZSBpbnQgdG5jX2luaXQoc3RydWN0IHNpeHBhY2sgKnNwKQpAQCAtNTM3LDkgKzUzNCw3 IEBAIHN0YXRpYyBpbmxpbmUgaW50IHRuY19pbml0KHN0cnVjdCBzaXhwYWNrICpzcCkKIAogCXNw LT50dHktPm9wcy0+d3JpdGUoc3AtPnR0eSwgJmluYnl0ZSwgMSk7CiAKLQlkZWxfdGltZXIoJnNw LT5yZXN5bmNfdCk7Ci0Jc3AtPnJlc3luY190LmV4cGlyZXMgPSBqaWZmaWVzICsgU0lYUF9SRVNZ TkNfVElNRU9VVDsKLQlhZGRfdGltZXIoJnNwLT5yZXN5bmNfdCk7CisJbW9kX3RpbWVyKCZzcC0+ cmVzeW5jX3QsIGppZmZpZXMgKyBTSVhQX1JFU1lOQ19USU1FT1VUKTsKIAogCXJldHVybiAwOwog fQpAQCAtODk3LDExICs4OTIsOCBAQCBzdGF0aWMgdm9pZCBkZWNvZGVfcHJpb19jb21tYW5kKHN0 cnVjdCBzaXhwYWNrICpzcCwgdW5zaWduZWQgY2hhciBjbWQpCiAgICAgICAgIC8qIGlmIHRoZSBz dGF0ZSBieXRlIGhhcyBiZWVuIHJlY2VpdmVkLCB0aGUgVE5DIGlzIHByZXNlbnQsCiAgICAgICAg ICAgIHNvIHRoZSByZXN5bmMgdGltZXIgY2FuIGJlIHJlc2V0LiAqLwogCi0JaWYgKHNwLT50bmNf c3RhdGUgPT0gVE5DX0lOX1NZTkMpIHsKLQkJZGVsX3RpbWVyKCZzcC0+cmVzeW5jX3QpOwotCQlz cC0+cmVzeW5jX3QuZXhwaXJlcwk9IGppZmZpZXMgKyBTSVhQX0lOSVRfUkVTWU5DX1RJTUVPVVQ7 Ci0JCWFkZF90aW1lcigmc3AtPnJlc3luY190KTsKLQl9CisJaWYgKHNwLT50bmNfc3RhdGUgPT0g VE5DX0lOX1NZTkMpCisJCW1vZF90aW1lcigmc3AtPnJlc3luY190LCBqaWZmaWVzICsgU0lYUF9J TklUX1JFU1lOQ19USU1FT1VUKTsKIAogCXNwLT5zdGF0dXMxID0gY21kICYgU0lYUF9QUklPX0RB VEFfTUFTSzsKIH0KLS0gCjIuMjAuMQoKCkZyb20gMzAyNDAzNzljZjFiOTU1NGE4MDM3ZmQ2YTRm ODhmZmE3MzVlYzhkMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJpYyBEdW1hemV0 IDxlZHVtYXpldEBnb29nbGUuY29tPgpEYXRlOiBXZWQsIDIgSmFuIDIwMTkgMDk6MjA6MjcgLTA4 MDAKU3ViamVjdDogW1BBVENIIDA5LzE2XSBpc2RuOiBmaXgga2VybmVsLWluZm9sZWFrIGluIGNh cGlfdW5sb2NrZWRfaW9jdGwKClsgVXBzdHJlYW0gY29tbWl0IGQ2Mzk2N2U0NzVhZTEwZjI4NmRi ZDM1ZTE4OWNiMjQxZTBiMWYyODQgXQoKU2luY2UgY2FwaV9pb2N0bCgpIGNvcGllcyA2NCBieXRl cyBhZnRlciBjYWxsaW5nCmNhcGkyMF9nZXRfbWFudWZhY3R1cmVyKCkgd2UgbmVlZCB0byBlbnN1 cmUgdG8gbm90IGxlYWsKaW5mb3JtYXRpb24gdG8gdXNlci4KCkJVRzogS01TQU46IGtlcm5lbC1p bmZvbGVhayBpbiBfY29weV90b191c2VyKzB4MTZiLzB4MWYwIGxpYi91c2VyY29weS5jOjMyCkNQ VTogMCBQSUQ6IDExMjQ1IENvbW06IHN5ei1leGVjdXRvcjYzMyBOb3QgdGFpbnRlZCA0LjIwLjAt cmM3KyAjMgpIYXJkd2FyZSBuYW1lOiBHb29nbGUgR29vZ2xlIENvbXB1dGUgRW5naW5lL0dvb2ds ZSBDb21wdXRlIEVuZ2luZSwgQklPUyBHb29nbGUgMDEvMDEvMjAxMQpDYWxsIFRyYWNlOgogX19k dW1wX3N0YWNrIGxpYi9kdW1wX3N0YWNrLmM6NzcgW2lubGluZV0KIGR1bXBfc3RhY2srMHgxNzMv MHgxZDAgbGliL2R1bXBfc3RhY2suYzoxMTMKIGttc2FuX3JlcG9ydCsweDEyZS8weDJhMCBtbS9r bXNhbi9rbXNhbi5jOjYxMwoga21zYW5faW50ZXJuYWxfY2hlY2tfbWVtb3J5KzB4OWQ0LzB4YjAw IG1tL2ttc2FuL2ttc2FuLmM6NzA0CiBrbXNhbl9jb3B5X3RvX3VzZXIrMHhhYi8weGMwIG1tL2tt c2FuL2ttc2FuX2hvb2tzLmM6NjAxCiBfY29weV90b191c2VyKzB4MTZiLzB4MWYwIGxpYi91c2Vy Y29weS5jOjMyCiBjYXBpX2lvY3RsIGluY2x1ZGUvbGludXgvdWFjY2Vzcy5oOjE3NyBbaW5saW5l XQogY2FwaV91bmxvY2tlZF9pb2N0bCsweDFhMGIvMHgxYmYwIGRyaXZlcnMvaXNkbi9jYXBpL2Nh cGkuYzo5MzkKIGRvX3Zmc19pb2N0bCsweGViZC8weDJiZjAgZnMvaW9jdGwuYzo0Ngoga3N5c19p b2N0bCBmcy9pb2N0bC5jOjcxMyBbaW5saW5lXQogX19kb19zeXNfaW9jdGwgZnMvaW9jdGwuYzo3 MjAgW2lubGluZV0KIF9fc2Vfc3lzX2lvY3RsKzB4MWRhLzB4MjcwIGZzL2lvY3RsLmM6NzE4CiBf X3g2NF9zeXNfaW9jdGwrMHg0YS8weDcwIGZzL2lvY3RsLmM6NzE4CiBkb19zeXNjYWxsXzY0KzB4 YmMvMHhmMCBhcmNoL3g4Ni9lbnRyeS9jb21tb24uYzoyOTEKIGVudHJ5X1NZU0NBTExfNjRfYWZ0 ZXJfaHdmcmFtZSsweDYzLzB4ZTcKUklQOiAwMDMzOjB4NDQwMDE5CkNvZGU6IDE4IDg5IGQwIGMz IDY2IDJlIDBmIDFmIDg0IDAwIDAwIDAwIDAwIDAwIDBmIDFmIDAwIDQ4IDg5IGY4IDQ4IDg5IGY3 IDQ4IDg5IGQ2IDQ4IDg5IGNhIDRkIDg5IGMyIDRkIDg5IGM4IDRjIDhiIDRjIDI0IDA4IDBmIDA1 IDw0OD4gM2QgMDEgZjAgZmYgZmYgMGYgODMgZmIgMTMgZmMgZmYgYzMgNjYgMmUgMGYgMWYgODQg MDAgMDAgMDAgMDAKUlNQOiAwMDJiOjAwMDA3ZmZkZDQ2NTlmYjggRUZMQUdTOiAwMDAwMDIxMyBP UklHX1JBWDogMDAwMDAwMDAwMDAwMDAxMApSQVg6IGZmZmZmZmZmZmZmZmZmZGEgUkJYOiAwMDAw MDAwMDAwNDAwMmM4IFJDWDogMDAwMDAwMDAwMDQ0MDAxOQpSRFg6IDAwMDAwMDAwMjAwMDAwODAg UlNJOiAwMDAwMDAwMGMwMDQ0MzA2IFJESTogMDAwMDAwMDAwMDAwMDAwMwpSQlA6IDAwMDAwMDAw MDA2Y2EwMTggUjA4OiAwMDAwMDAwMDAwMDAwMDAwIFIwOTogMDAwMDAwMDAwMDQwMDJjOApSMTA6 IDAwMDAwMDAwMDAwMDAwMDAgUjExOiAwMDAwMDAwMDAwMDAwMjEzIFIxMjogMDAwMDAwMDAwMDQw MThhMApSMTM6IDAwMDAwMDAwMDA0MDE5MzAgUjE0OiAwMDAwMDAwMDAwMDAwMDAwIFIxNTogMDAw MDAwMDAwMDAwMDAwMAoKTG9jYWwgdmFyaWFibGUgZGVzY3JpcHRpb246IC0tLS1kYXRhLmlAY2Fw aV91bmxvY2tlZF9pb2N0bApWYXJpYWJsZSB3YXMgY3JlYXRlZCBhdDoKIGNhcGlfaW9jdGwgZHJp dmVycy9pc2RuL2NhcGkvY2FwaS5jOjc0NyBbaW5saW5lXQogY2FwaV91bmxvY2tlZF9pb2N0bCsw eDgyLzB4MWJmMCBkcml2ZXJzL2lzZG4vY2FwaS9jYXBpLmM6OTM5CiBkb192ZnNfaW9jdGwrMHhl YmQvMHgyYmYwIGZzL2lvY3RsLmM6NDYKCkJ5dGVzIDEyLTYzIG9mIDY0IGFyZSB1bmluaXRpYWxp emVkCk1lbW9yeSBhY2Nlc3Mgb2Ygc2l6ZSA2NCBzdGFydHMgYXQgZmZmZjg4ODA3YWM1ZmNlOApE YXRhIGNvcGllZCB0byB1c2VyIGFkZHJlc3MgMDAwMDAwMDAyMDAwMDA4MAoKU2lnbmVkLW9mZi1i eTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpSZXBvcnRlZC1ieTogc3l6Ym90 IDxzeXprYWxsZXJAZ29vZ2xlZ3JvdXBzLmNvbT4KQ2M6IEthcnN0ZW4gS2VpbCA8aXNkbkBsaW51 eC1waW5naS5kZT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxv ZnQubmV0PgotLS0KIGRyaXZlcnMvaXNkbi9jYXBpL2tjYXBpLmMgfCA0ICsrLS0KIDEgZmlsZSBj aGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJp dmVycy9pc2RuL2NhcGkva2NhcGkuYyBiL2RyaXZlcnMvaXNkbi9jYXBpL2tjYXBpLmMKaW5kZXgg MGZmNTE3ZDNjOThmLi5hNGNlYjYxYzViNjAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaXNkbi9jYXBp L2tjYXBpLmMKKysrIGIvZHJpdmVycy9pc2RuL2NhcGkva2NhcGkuYwpAQCAtODUyLDcgKzg1Miw3 IEBAIHUxNiBjYXBpMjBfZ2V0X21hbnVmYWN0dXJlcih1MzIgY29udHIsIHU4ICpidWYpCiAJdTE2 IHJldDsKIAogCWlmIChjb250ciA9PSAwKSB7Ci0JCXN0cmxjcHkoYnVmLCBjYXBpX21hbnVmYWt0 dXJlciwgQ0FQSV9NQU5VRkFDVFVSRVJfTEVOKTsKKwkJc3RybmNweShidWYsIGNhcGlfbWFudWZh a3R1cmVyLCBDQVBJX01BTlVGQUNUVVJFUl9MRU4pOwogCQlyZXR1cm4gQ0FQSV9OT0VSUk9SOwog CX0KIApAQCAtODYwLDcgKzg2MCw3IEBAIHUxNiBjYXBpMjBfZ2V0X21hbnVmYWN0dXJlcih1MzIg Y29udHIsIHU4ICpidWYpCiAKIAljdHIgPSBnZXRfY2FwaV9jdHJfYnlfbnIoY29udHIpOwogCWlm IChjdHIgJiYgY3RyLT5zdGF0ZSA9PSBDQVBJX0NUUl9SVU5OSU5HKSB7Ci0JCXN0cmxjcHkoYnVm LCBjdHItPm1hbnUsIENBUElfTUFOVUZBQ1RVUkVSX0xFTik7CisJCXN0cm5jcHkoYnVmLCBjdHIt Pm1hbnUsIENBUElfTUFOVUZBQ1RVUkVSX0xFTik7CiAJCXJldCA9IENBUElfTk9FUlJPUjsKIAl9 IGVsc2UKIAkJcmV0ID0gQ0FQSV9SRUdOT1RJTlNUQUxMRUQ7Ci0tIAoyLjIwLjEKCgpGcm9tIDgz MDc0N2YxZDQ1ZTZiZTg3YzI0ZjBmNjM4NGQyMWVlMjk5NmIzZGMgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IENvbmcgV2FuZyA8eGl5b3Uud2FuZ2NvbmdAZ21haWwuY29tPgpEYXRlOiBT YXQsIDI5IERlYyAyMDE4IDEzOjU2OjM4IC0wODAwClN1YmplY3Q6IFtQQVRDSCAxMC8xNl0gbmV0 cm9tOiBmaXggbG9ja2luZyBpbiBucl9maW5kX3NvY2tldCgpCgpbIFVwc3RyZWFtIGNvbW1pdCA3 MzE0ZjU0ODBmM2UzN2U1NzAxMDRkYzVlMGYyODgyM2VmODQ5ZTcyIF0KCm5yX2ZpbmRfc29ja2V0 KCksIG5yX2ZpbmRfcGVlcigpIGFuZCBucl9maW5kX2xpc3RlbmVyKCkgbG9jayB0aGUKc29jayBh ZnRlciBmaW5kaW5nIGl0IGluIHRoZSBnbG9iYWwgbGlzdC4gSG93ZXZlciwgdGhlIGNhbGwgcGF0 aApyZXF1aXJlcyBCSCBkaXNhYmxlZCBmb3IgdGhlIHNvY2sgbG9jayBjb25zaXN0ZW50bHkuCgpB Y3R1YWxseSB0aGUgbG9ja2luZyBpcyB1bm5lY2Vzc2FyeSBhdCB0aGlzIHBvaW50LCB3ZSBjYW4g anVzdCBob2xkCnRoZSBzb2NrIHJlZmNudCB0byBtYWtlIHN1cmUgaXQgaXMgbm90IGdvbmUgYWZ0 ZXIgd2UgdW5sb2NrIHRoZSBnbG9iYWwKbGlzdCwgYW5kIGxvY2sgaXQgbGF0ZXIgb25seSB3aGVu IG5lZWRlZC4KClJlcG9ydGVkLWFuZC10ZXN0ZWQtYnk6IHN5emJvdCtmNjIxY2RhOGI3ZTU5ODkw OGVmYUBzeXprYWxsZXIuYXBwc3BvdG1haWwuY29tClNpZ25lZC1vZmYtYnk6IENvbmcgV2FuZyA8 eGl5b3Uud2FuZ2NvbmdAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIg PGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L25ldHJvbS9hZl9uZXRyb20uYyB8IDE1ICsr KysrKysrKystLS0tLQogMSBmaWxlIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDUgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L25ldHJvbS9hZl9uZXRyb20uYyBiL25ldC9uZXRyb20v YWZfbmV0cm9tLmMKaW5kZXggMDNmMzdjNGU2NGZlLi4xZDMxNDRkMTk5MDMgMTAwNjQ0Ci0tLSBh L25ldC9uZXRyb20vYWZfbmV0cm9tLmMKKysrIGIvbmV0L25ldHJvbS9hZl9uZXRyb20uYwpAQCAt MTUzLDcgKzE1Myw3IEBAIHN0YXRpYyBzdHJ1Y3Qgc29jayAqbnJfZmluZF9saXN0ZW5lcihheDI1 X2FkZHJlc3MgKmFkZHIpCiAJc2tfZm9yX2VhY2gocywgJm5yX2xpc3QpCiAJCWlmICghYXgyNWNt cCgmbnJfc2socyktPnNvdXJjZV9hZGRyLCBhZGRyKSAmJgogCQkgICAgcy0+c2tfc3RhdGUgPT0g VENQX0xJU1RFTikgewotCQkJYmhfbG9ja19zb2NrKHMpOworCQkJc29ja19ob2xkKHMpOwogCQkJ Z290byBmb3VuZDsKIAkJfQogCXMgPSBOVUxMOwpAQCAtMTc0LDcgKzE3NCw3IEBAIHN0YXRpYyBz dHJ1Y3Qgc29jayAqbnJfZmluZF9zb2NrZXQodW5zaWduZWQgY2hhciBpbmRleCwgdW5zaWduZWQg Y2hhciBpZCkKIAkJc3RydWN0IG5yX3NvY2sgKm5yID0gbnJfc2socyk7CiAKIAkJaWYgKG5yLT5t eV9pbmRleCA9PSBpbmRleCAmJiBuci0+bXlfaWQgPT0gaWQpIHsKLQkJCWJoX2xvY2tfc29jayhz KTsKKwkJCXNvY2tfaG9sZChzKTsKIAkJCWdvdG8gZm91bmQ7CiAJCX0KIAl9CkBAIC0xOTgsNyAr MTk4LDcgQEAgc3RhdGljIHN0cnVjdCBzb2NrICpucl9maW5kX3BlZXIodW5zaWduZWQgY2hhciBp bmRleCwgdW5zaWduZWQgY2hhciBpZCwKIAogCQlpZiAobnItPnlvdXJfaW5kZXggPT0gaW5kZXgg JiYgbnItPnlvdXJfaWQgPT0gaWQgJiYKIAkJICAgICFheDI1Y21wKCZuci0+ZGVzdF9hZGRyLCBk ZXN0KSkgewotCQkJYmhfbG9ja19zb2NrKHMpOworCQkJc29ja19ob2xkKHMpOwogCQkJZ290byBm b3VuZDsKIAkJfQogCX0KQEAgLTIyNCw3ICsyMjQsNyBAQCBzdGF0aWMgdW5zaWduZWQgc2hvcnQg bnJfZmluZF9uZXh0X2NpcmN1aXQodm9pZCkKIAkJaWYgKGkgIT0gMCAmJiBqICE9IDApIHsKIAkJ CWlmICgoc2s9bnJfZmluZF9zb2NrZXQoaSwgaikpID09IE5VTEwpCiAJCQkJYnJlYWs7Ci0JCQli aF91bmxvY2tfc29jayhzayk7CisJCQlzb2NrX3B1dChzayk7CiAJCX0KIAogCQlpZCsrOwpAQCAt OTIwLDYgKzkyMCw3IEBAIGludCBucl9yeF9mcmFtZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1 Y3QgbmV0X2RldmljZSAqZGV2KQogCX0KIAogCWlmIChzayAhPSBOVUxMKSB7CisJCWJoX2xvY2tf c29jayhzayk7CiAJCXNrYl9yZXNldF90cmFuc3BvcnRfaGVhZGVyKHNrYik7CiAKIAkJaWYgKGZy YW1ldHlwZSA9PSBOUl9DT05OQUNLICYmIHNrYi0+bGVuID09IDIyKQpAQCAtOTI5LDYgKzkzMCw3 IEBAIGludCBucl9yeF9mcmFtZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2Rldmlj ZSAqZGV2KQogCiAJCXJldCA9IG5yX3Byb2Nlc3NfcnhfZnJhbWUoc2ssIHNrYik7CiAJCWJoX3Vu bG9ja19zb2NrKHNrKTsKKwkJc29ja19wdXQoc2spOwogCQlyZXR1cm4gcmV0OwogCX0KIApAQCAt OTYwLDEwICs5NjIsMTIgQEAgaW50IG5yX3J4X2ZyYW1lKHN0cnVjdCBza19idWZmICpza2IsIHN0 cnVjdCBuZXRfZGV2aWNlICpkZXYpCiAJICAgIChtYWtlID0gbnJfbWFrZV9uZXcoc2spKSA9PSBO VUxMKSB7CiAJCW5yX3RyYW5zbWl0X3JlZnVzYWwoc2tiLCAwKTsKIAkJaWYgKHNrKQotCQkJYmhf dW5sb2NrX3NvY2soc2spOworCQkJc29ja19wdXQoc2spOwogCQlyZXR1cm4gMDsKIAl9CiAKKwli aF9sb2NrX3NvY2soc2spOworCiAJd2luZG93ID0gc2tiLT5kYXRhWzIwXTsKIAogCXNrYi0+c2sg ICAgICAgICAgICAgPSBtYWtlOwpAQCAtMTAxNiw2ICsxMDIwLDcgQEAgaW50IG5yX3J4X2ZyYW1l KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiAJCXNrLT5za19k YXRhX3JlYWR5KHNrKTsKIAogCWJoX3VubG9ja19zb2NrKHNrKTsKKwlzb2NrX3B1dChzayk7CiAK IAlucl9pbnNlcnRfc29ja2V0KG1ha2UpOwogCi0tIAoyLjIwLjEKCgpGcm9tIGJhZjdlYTI3NzQ1 NTdjYjY3OTA1YjY3ZDBlYzM2NmVkOGMxNTk3ZTggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IENvbmcgV2FuZyA8eGl5b3Uud2FuZ2NvbmdAZ21haWwuY29tPgpEYXRlOiBTYXQsIDI5IERl YyAyMDE4IDEzOjU2OjM3IC0wODAwClN1YmplY3Q6IFtQQVRDSCAxMS8xNl0gbmV0L3dhbjogZml4 IGEgZG91YmxlIGZyZWUgaW4geDI1X2FzeV9vcGVuX3R0eSgpCgpbIFVwc3RyZWFtIGNvbW1pdCBk NWM3Yzc0NWYyNTRjNmNiOThiM2IzZjE1ZmU3ODliOGJkNzcwYzcyIF0KCldoZW4geDI1X2FzeV9v cGVuKCkgZmFpbHMsIGl0IGFscmVhZHkgY2xlYW5zIHVwIGJ5IGl0c2VsZiwKc28gaXRzIGNhbGxl ciBkb2Vzbid0IG5lZWQgdG8gZnJlZSB0aGUgbWVtb3J5IGFnYWluLgoKSXQgc2VlbXMgd2Ugc3Rp bGwgaGF2ZSB0byBjYWxsIHgyNV9hc3lfZnJlZSgpIHRvIGNsZWFyIHRoZSBTTEZfSU5VU0UKYml0 LCBzbyBqdXN0IHNldCB0aGVzZSBwb2ludGVycyB0byBOVUxMIGFmdGVyIGtmcmVlKCkuCgpSZXBv cnRlZC1hbmQtdGVzdGVkLWJ5OiBzeXpib3QrNWU1ZTk2OWU1MjUxMjkyMjkwNTJAc3l6a2FsbGVy LmFwcHNwb3RtYWlsLmNvbQpGaXhlczogM2I3ODBiZWQzMTM4ICgieDI1X2FzeTogRnJlZSB4MjVf YXN5IG9uIHgyNV9hc3lfb3BlbigpIGZhaWx1cmUuIikKU2lnbmVkLW9mZi1ieTogQ29uZyBXYW5n IDx4aXlvdS53YW5nY29uZ0BnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxl ciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC93YW4veDI1X2FzeS5jIHwg MiArKwogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZl cnMvbmV0L3dhbi94MjVfYXN5LmMgYi9kcml2ZXJzL25ldC93YW4veDI1X2FzeS5jCmluZGV4IDEw OTgyNjNhYjg2Mi4uNDZjM2Q5ODNiN2I3IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93YW4veDI1 X2FzeS5jCisrKyBiL2RyaXZlcnMvbmV0L3dhbi94MjVfYXN5LmMKQEAgLTQ4NSw4ICs0ODUsMTAg QEAgc3RhdGljIGludCB4MjVfYXN5X29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIAogCS8q IENsZWFudXAgKi8KIAlrZnJlZShzbC0+eGJ1ZmYpOworCXNsLT54YnVmZiA9IE5VTEw7CiBub3hi dWZmOgogCWtmcmVlKHNsLT5yYnVmZik7CisJc2wtPnJidWZmID0gTlVMTDsKIG5vcmJ1ZmY6CiAJ cmV0dXJuIC1FTk9NRU07CiB9Ci0tIAoyLjIwLjEKCgpGcm9tIGRkZjQxNjkxMjY5MzNiMGEwZDgw ZTU1Yjg3NTE1ZTY2MTk2MmFiMDQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFdpbGxl bSBkZSBCcnVpam4gPHdpbGxlbWJAZ29vZ2xlLmNvbT4KRGF0ZTogU2F0LCAyMiBEZWMgMjAxOCAx Njo1Mzo0NSAtMDUwMApTdWJqZWN0OiBbUEFUQ0ggMTIvMTZdIHBhY2tldDogdmFsaWRhdGUgYWRk cmVzcyBsZW5ndGggaWYgbm9uLXplcm8KClsgVXBzdHJlYW0gY29tbWl0IDZiOGQ5NWYxNzk1YzQy MTYxZGMwOTg0YjY4NjNlOTVkNmFjZjI0ZWQgXQoKVmFsaWRhdGUgcGFja2V0IHNvY2tldCBhZGRy ZXNzIGxlbmd0aCBpZiBhIGxlbmd0aCBpcyBnaXZlbi4gWmVybwpsZW5ndGggaXMgZXF1aXZhbGVu dCB0byBub3Qgc2V0dGluZyBhbiBhZGRyZXNzLgoKRml4ZXM6IDk5MTM3Yjc4ODhmNCAoInBhY2tl dDogdmFsaWRhdGUgYWRkcmVzcyBsZW5ndGgiKQpSZXBvcnRlZC1ieTogSWRvIFNjaGltbWVsIDxp ZG9zY2hAaWRvc2NoLm9yZz4KU2lnbmVkLW9mZi1ieTogV2lsbGVtIGRlIEJydWlqbiA8d2lsbGVt YkBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVt bG9mdC5uZXQ+Ci0tLQogbmV0L3BhY2tldC9hZl9wYWNrZXQuYyB8IDQgKystLQogMSBmaWxlIGNo YW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQv cGFja2V0L2FmX3BhY2tldC5jIGIvbmV0L3BhY2tldC9hZl9wYWNrZXQuYwppbmRleCA1ZGRhMjYz YjRhMGEuLmVlZGFjZGViY2Q0YyAxMDA2NDQKLS0tIGEvbmV0L3BhY2tldC9hZl9wYWNrZXQuYwor KysgYi9uZXQvcGFja2V0L2FmX3BhY2tldC5jCkBAIC0yNjI1LDcgKzI2MjUsNyBAQCBzdGF0aWMg aW50IHRwYWNrZXRfc25kKHN0cnVjdCBwYWNrZXRfc29jayAqcG8sIHN0cnVjdCBtc2doZHIgKm1z ZykKIAkJCQkJCXNsbF9hZGRyKSkpCiAJCQlnb3RvIG91dDsKIAkJcHJvdG8JPSBzYWRkci0+c2xs X3Byb3RvY29sOwotCQlhZGRyCT0gc2FkZHItPnNsbF9hZGRyOworCQlhZGRyCT0gc2FkZHItPnNs bF9oYWxlbiA/IHNhZGRyLT5zbGxfYWRkciA6IE5VTEw7CiAJCWRldiA9IGRldl9nZXRfYnlfaW5k ZXgoc29ja19uZXQoJnBvLT5zayksIHNhZGRyLT5zbGxfaWZpbmRleCk7CiAJCWlmIChhZGRyICYm IGRldiAmJiBzYWRkci0+c2xsX2hhbGVuIDwgZGV2LT5hZGRyX2xlbikKIAkJCWdvdG8gb3V0OwpA QCAtMjgyNSw3ICsyODI1LDcgQEAgc3RhdGljIGludCBwYWNrZXRfc25kKHN0cnVjdCBzb2NrZXQg KnNvY2ssIHN0cnVjdCBtc2doZHIgKm1zZywgc2l6ZV90IGxlbikKIAkJaWYgKG1zZy0+bXNnX25h bWVsZW4gPCAoc2FkZHItPnNsbF9oYWxlbiArIG9mZnNldG9mKHN0cnVjdCBzb2NrYWRkcl9sbCwg c2xsX2FkZHIpKSkKIAkJCWdvdG8gb3V0OwogCQlwcm90bwk9IHNhZGRyLT5zbGxfcHJvdG9jb2w7 Ci0JCWFkZHIJPSBzYWRkci0+c2xsX2FkZHI7CisJCWFkZHIJPSBzYWRkci0+c2xsX2hhbGVuID8g c2FkZHItPnNsbF9hZGRyIDogTlVMTDsKIAkJZGV2ID0gZGV2X2dldF9ieV9pbmRleChzb2NrX25l dChzayksIHNhZGRyLT5zbGxfaWZpbmRleCk7CiAJCWlmIChhZGRyICYmIGRldiAmJiBzYWRkci0+ c2xsX2hhbGVuIDwgZGV2LT5hZGRyX2xlbikKIAkJCWdvdG8gb3V0OwotLSAKMi4yMC4xCgoKRnJv bSA2YTYxYTQwZWMzYTA5NjYzZWZlMDc1YzVjNGQ5OGNkOGRlOTIzMTVkIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiAiR3VzdGF2byBBLiBSLiBTaWx2YSIgPGd1c3Rhdm9AZW1iZWRkZWRv ci5jb20+CkRhdGU6IEZyaSwgMjEgRGVjIDIwMTggMTU6NDE6MTcgLTA2MDAKU3ViamVjdDogW1BB VENIIDEzLzE2XSBwaG9uZXQ6IGFmX3Bob25ldDogRml4IFNwZWN0cmUgdjEgdnVsbmVyYWJpbGl0 eQoKWyBVcHN0cmVhbSBjb21taXQgZDY4NjAyNmIxZTZlZDRlYTI3ZDYzMGQ4ZjU0ZjlhNjk0ZGIw ODhiMiBdCgpwcm90b2NvbCBpcyBpbmRpcmVjdGx5IGNvbnRyb2xsZWQgYnkgdXNlci1zcGFjZSwg aGVuY2UgbGVhZGluZyB0bwphIHBvdGVudGlhbCBleHBsb2l0YXRpb24gb2YgdGhlIFNwZWN0cmUg dmFyaWFudCAxIHZ1bG5lcmFiaWxpdHkuCgpUaGlzIGlzc3VlIHdhcyBkZXRlY3RlZCB3aXRoIHRo ZSBoZWxwIG9mIFNtYXRjaDoKCm5ldC9waG9uZXQvYWZfcGhvbmV0LmM6NDggcGhvbmV0X3Byb3Rv X2dldCgpIHdhcm46IHBvdGVudGlhbCBzcGVjdHJlIGlzc3VlICdwcm90b190YWInIFt3XSAobG9j YWwgY2FwKQoKRml4IHRoaXMgYnkgc2FuaXRpemluZyBwcm90b2NvbCBiZWZvcmUgdXNpbmcgaXQg dG8gaW5kZXggcHJvdG9fdGFiLgoKTm90aWNlIHRoYXQgZ2l2ZW4gdGhhdCBzcGVjdWxhdGlvbiB3 aW5kb3dzIGFyZSBsYXJnZSwgdGhlIHBvbGljeSBpcwp0byBraWxsIHRoZSBzcGVjdWxhdGlvbiBv biB0aGUgZmlyc3QgbG9hZCBhbmQgbm90IHdvcnJ5IGlmIGl0IGNhbiBiZQpjb21wbGV0ZWQgd2l0 aCBhIGRlcGVuZGVudCBsb2FkL3N0b3JlIFsxXS4KClsxXSBodHRwczovL21hcmMuaW5mby8/bD1s aW51eC1rZXJuZWwmbT0xNTI0NDkxMzExMTQ3Nzgmdz0yCgpTaWduZWQtb2ZmLWJ5OiBHdXN0YXZv IEEuIFIuIFNpbHZhIDxndXN0YXZvQGVtYmVkZGVkb3IuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZp ZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3Bob25ldC9hZl9waG9u ZXQuYyB8IDMgKysrCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0 IGEvbmV0L3Bob25ldC9hZl9waG9uZXQuYyBiL25ldC9waG9uZXQvYWZfcGhvbmV0LmMKaW5kZXgg M2IwZWY2OTFmNWIxLi5kNGIyYWJkNzg4NTggMTAwNjQ0Ci0tLSBhL25ldC9waG9uZXQvYWZfcGhv bmV0LmMKKysrIGIvbmV0L3Bob25ldC9hZl9waG9uZXQuYwpAQCAtMzQsNiArMzQsOCBAQAogI2lu Y2x1ZGUgPG5ldC9waG9uZXQvcGhvbmV0Lmg+CiAjaW5jbHVkZSA8bmV0L3Bob25ldC9wbl9kZXYu aD4KIAorI2luY2x1ZGUgPGxpbnV4L25vc3BlYy5oPgorCiAvKiBUcmFuc3BvcnQgcHJvdG9jb2wg cmVnaXN0cmF0aW9uICovCiBzdGF0aWMgY29uc3Qgc3RydWN0IHBob25ldF9wcm90b2NvbCAqcHJv dG9fdGFiW1BIT05FVF9OUFJPVE9dIF9fcmVhZF9tb3N0bHk7CiAKQEAgLTQzLDYgKzQ1LDcgQEAg c3RhdGljIGNvbnN0IHN0cnVjdCBwaG9uZXRfcHJvdG9jb2wgKnBob25ldF9wcm90b19nZXQodW5z aWduZWQgaW50IHByb3RvY29sKQogCiAJaWYgKHByb3RvY29sID49IFBIT05FVF9OUFJPVE8pCiAJ CXJldHVybiBOVUxMOworCXByb3RvY29sID0gYXJyYXlfaW5kZXhfbm9zcGVjKHByb3RvY29sLCBQ SE9ORVRfTlBST1RPKTsKIAogCXJjdV9yZWFkX2xvY2soKTsKIAlwcCA9IHJjdV9kZXJlZmVyZW5j ZShwcm90b190YWJbcHJvdG9jb2xdKTsKLS0gCjIuMjAuMQoKCkZyb20gYTI1MTA5NWE3ODllZDU3 MjA2NGMwYWY0M2Q3N2EzYTBjNWY4ODgzMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog Q29uZyBXYW5nIDx4aXlvdS53YW5nY29uZ0BnbWFpbC5jb20+CkRhdGU6IFN1biwgMzAgRGVjIDIw MTggMTI6NDM6NDIgLTA4MDAKU3ViamVjdDogW1BBVENIIDE0LzE2XSBwdHJfcmluZzogd3JhcCBi YWNrIC0+cHJvZHVjZXIgaW4KIF9fcHRyX3Jpbmdfc3dhcF9xdWV1ZSgpCgpbIFVwc3RyZWFtIGNv bW1pdCBhZmY2ZGI0NTQ1OTlkNjIxOTFhYWJjMjA4OTMwZTg5MTc0OGU0MzIyIF0KCl9fcHRyX3Jp bmdfc3dhcF9xdWV1ZSgpIHRyaWVzIHRvIG1vdmUgcG9pbnRlcnMgZnJvbSB0aGUgb2xkCnJpbmcg dG8gdGhlIG5ldyBvbmUsIGJ1dCBpdCBmb3JnZXRzIHRvIGNoZWNrIGlmIC0+cHJvZHVjZXIKaXMg YmV5b25kIHRoZSBuZXcgc2l6ZSBhdCB0aGUgZW5kIG9mIHRoZSBvcGVyYXRpb24uIFRoaXMgbGVh ZHMKdG8gYW4gb3V0LW9mLWJvdW5kIGFjY2VzcyBpbiBfX3B0cl9yaW5nX3Byb2R1Y2UoKSBhcyBy ZXBvcnRlZApieSBzeXpib3QuCgpSZXBvcnRlZC1ieTogc3l6Ym90Kzg5OTNjMGZhOTZkNTdjMzk5 NzM1QHN5emthbGxlci5hcHBzcG90bWFpbC5jb20KRml4ZXM6IDVkNDlkZTUzMjAwMiAoInB0cl9y aW5nOiByZXNpemUgc3VwcG9ydCIpCkNjOiAiTWljaGFlbCBTLiBUc2lya2luIiA8bXN0QHJlZGhh dC5jb20+CkNjOiBKb2huIEZhc3RhYmVuZCA8am9obi5mYXN0YWJlbmRAZ21haWwuY29tPgpDYzog SmFzb24gV2FuZyA8amFzb3dhbmdAcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogQ29uZyBXYW5n IDx4aXlvdS53YW5nY29uZ0BnbWFpbC5jb20+CkFja2VkLWJ5OiBNaWNoYWVsIFMuIFRzaXJraW4g PG1zdEByZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+Ci0tLQogaW5jbHVkZS9saW51eC9wdHJfcmluZy5oIHwgMiArKwogMSBmaWxl IGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvcHRy X3JpbmcuaCBiL2luY2x1ZGUvbGludXgvcHRyX3JpbmcuaAppbmRleCA2ODk0OTc2YjU0ZTMuLjE4 NmNkOGU5NzBjNyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9wdHJfcmluZy5oCisrKyBiL2lu Y2x1ZGUvbGludXgvcHRyX3JpbmcuaApAQCAtNTczLDYgKzU3Myw4IEBAIHN0YXRpYyBpbmxpbmUg dm9pZCAqKl9fcHRyX3Jpbmdfc3dhcF9xdWV1ZShzdHJ1Y3QgcHRyX3JpbmcgKnIsIHZvaWQgKipx dWV1ZSwKIAkJZWxzZSBpZiAoZGVzdHJveSkKIAkJCWRlc3Ryb3kocHRyKTsKIAorCWlmIChwcm9k dWNlciA+PSBzaXplKQorCQlwcm9kdWNlciA9IDA7CiAJX19wdHJfcmluZ19zZXRfc2l6ZShyLCBz aXplKTsKIAlyLT5wcm9kdWNlciA9IHByb2R1Y2VyOwogCXItPmNvbnN1bWVyX2hlYWQgPSAwOwot LSAKMi4yMC4xCgoKRnJvbSA5MjAxMzA2MTYzOGM5MGI3MzY1Njk0OTQ4ZTQ4YzI5NzYwOTFkMGUz IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEZWVwYSBEaW5hbWFuaSA8ZGVlcGEua2Vy bmVsQGdtYWlsLmNvbT4KRGF0ZTogVGh1LCAyNyBEZWMgMjAxOCAxODo1NTowOSAtMDgwMApTdWJq ZWN0OiBbUEFUQ0ggMTUvMTZdIHNvY2s6IE1ha2Ugc29jay0+c2tfc3RhbXAgdGhyZWFkLXNhZmUK ClsgVXBzdHJlYW0gY29tbWl0IDNhMGVkM2U5NjE5NzM4MDY3MjE0ODcxZTljYjgyNmZhMjNiMmRk YjkgXQoKQWwgVmlybyBtZW50aW9uZWQgKE1lc3NhZ2UtSUQKPDIwMTcwNjI2MDQxMzM0LkdaMTA2 NzJAWmVuSVYubGludXgub3JnLnVrPikKdGhhdCB0aGVyZSBpcyBwcm9iYWJseSBhIHJhY2UgY29u ZGl0aW9uCmx1cmtpbmcgaW4gYWNjZXNzZXMgb2Ygc2tfc3RhbXAgb24gMzItYml0IG1hY2hpbmVz LgoKc29jay0+c2tfc3RhbXAgaXMgb2YgdHlwZSBrdGltZV90IHdoaWNoIGlzIGFsd2F5cyBhbiBz NjQuCk9uIGEgMzIgYml0IGFyY2hpdGVjdHVyZSwgd2UgbWlnaHQgcnVuIGludG8gc2l0dWF0aW9u cyBvZgp1bnNhZmUgYWNjZXNzIGFzIHRoZSBhY2Nlc3MgdG8gdGhlIGZpZWxkIGJlY29tZXMgbm9u IGF0b21pYy4KClVzZSBzZXFsb2NrcyBmb3Igc3luY2hyb25pemF0aW9uLgpUaGlzIGFsbG93cyB1 cyB0byBhdm9pZCB1c2luZyBzcGlubG9ja3MgZm9yIHJlYWRlcnMgYXMKcmVhZGVycyBkbyBub3Qg bmVlZCBtdXR1YWwgZXhjbHVzaW9uLgoKQW5vdGhlciBhcHByb2FjaCB0byBzb2x2ZSB0aGlzIGlz IHRvIHJlcXVpcmUgc2tfbG9jayBmb3IgYWxsCm1vZGlmaWNhdGlvbnMgb2YgdGhlIHRpbWVzdGFt cHMuIFRoZSBjdXJyZW50IGFwcHJvYWNoIGFsbG93cwpmb3IgdGltZXN0YW1wcyB0byBoYXZlIHRo ZWlyIG93biBsb2NrOiBza19zdGFtcF9sb2NrLgpUaGlzIGFsbG93cyBmb3IgdGhlIHBhdGNoIHRv IG5vdCBjb21wZXRlIHdpdGggYWxyZWFkeQpleGlzdGluZyBjcml0aWNhbCBzZWN0aW9ucywgYW5k IHNpZGUgZWZmZWN0cyBhcmUgbGltaXRlZAp0byB0aGUgcGF0aHMgaW4gdGhlIHBhdGNoLgoKVGhl IGFkZGl0aW9uIG9mIHRoZSBuZXcgZmllbGQgbWFpbnRhaW5zIHRoZSBkYXRhIGxvY2FsaXR5Cm9w dGltaXphdGlvbnMgZnJvbQpjb21taXQgOTExNWU4Y2QyYTBjICgibmV0OiByZW9yZ2FuaXplIHN0 cnVjdCBzb2NrIGZvciBiZXR0ZXIgZGF0YQpsb2NhbGl0eSIpCgpOb3RlIHRoYXQgYWxsIHRoZSBp bnN0YW5jZXMgb2YgdGhlIHNrX3N0YW1wIGFjY2Vzc2VzCmFyZSBlaXRoZXIgdGhyb3VnaCB0aGUg aW9jdGwgb3IgdGhlIHN5c2NhbGwgcmVjdm1zZy4KClNpZ25lZC1vZmYtYnk6IERlZXBhIERpbmFt YW5pIDxkZWVwYS5rZXJuZWxAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxs ZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogaW5jbHVkZS9uZXQvc29jay5oICAgfCAzOCAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLQogbmV0L2NvbXBhdC5jICAgICAg ICAgfCAxNSArKysrKysrKystLS0tLS0KIG5ldC9jb3JlL3NvY2suYyAgICAgIHwgMTUgKysrKysr KysrKy0tLS0tCiBuZXQvc3VucnBjL3N2Y3NvY2suYyB8ICAyICstCiA0IGZpbGVzIGNoYW5nZWQs IDU1IGluc2VydGlvbnMoKyksIDE1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUv bmV0L3NvY2suaCBiL2luY2x1ZGUvbmV0L3NvY2suaAppbmRleCAwZTNhMDkzODA2NTUuLjEzZjEx ZTkwNWEwMCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvc29jay5oCisrKyBiL2luY2x1ZGUvbmV0 L3NvY2suaApAQCAtMjk4LDYgKzI5OCw3IEBAIHN0cnVjdCBzb2NrX2NvbW1vbiB7CiAgICoJQHNr X2ZpbHRlcjogc29ja2V0IGZpbHRlcmluZyBpbnN0cnVjdGlvbnMKICAgKglAc2tfdGltZXI6IHNv Y2sgY2xlYW51cCB0aW1lcgogICAqCUBza19zdGFtcDogdGltZSBzdGFtcCBvZiBsYXN0IHBhY2tl dCByZWNlaXZlZAorICAqCUBza19zdGFtcF9zZXE6IGxvY2sgZm9yIGFjY2Vzc2luZyBza19zdGFt cCBvbiAzMiBiaXQgYXJjaGl0ZWN0dXJlcyBvbmx5CiAgICoJQHNrX3RzZmxhZ3M6IFNPX1RJTUVT VEFNUElORyBzb2NrZXQgb3B0aW9ucwogICAqCUBza190c2tleTogY291bnRlciB0byBkaXNhbWJp Z3VhdGUgY29uY3VycmVudCB0c3RhbXAgcmVxdWVzdHMKICAgKglAc2tfemNrZXk6IGNvdW50ZXIg dG8gb3JkZXIgTVNHX1pFUk9DT1BZIG5vdGlmaWNhdGlvbnMKQEAgLTQ3NCw2ICs0NzUsOSBAQCBz dHJ1Y3Qgc29jayB7CiAJY29uc3Qgc3RydWN0IGNyZWQJKnNrX3BlZXJfY3JlZDsKIAlsb25nCQkJ c2tfcmN2dGltZW87CiAJa3RpbWVfdAkJCXNrX3N0YW1wOworI2lmIEJJVFNfUEVSX0xPTkc9PTMy CisJc2VxbG9ja190CQlza19zdGFtcF9zZXE7CisjZW5kaWYKIAl1MTYJCQlza190c2ZsYWdzOwog CXU4CQkJc2tfc2h1dGRvd247CiAJdTMyCQkJc2tfdHNrZXk7CkBAIC0yMjg3LDYgKzIyOTEsMzQg QEAgc3RhdGljIGlubGluZSB2b2lkIHNrX2Ryb3BzX2FkZChzdHJ1Y3Qgc29jayAqc2ssIGNvbnN0 IHN0cnVjdCBza19idWZmICpza2IpCiAJYXRvbWljX2FkZChzZWdzLCAmc2stPnNrX2Ryb3BzKTsK IH0KIAorc3RhdGljIGlubGluZSBrdGltZV90IHNvY2tfcmVhZF90aW1lc3RhbXAoc3RydWN0IHNv Y2sgKnNrKQoreworI2lmIEJJVFNfUEVSX0xPTkc9PTMyCisJdW5zaWduZWQgaW50IHNlcTsKKwlr dGltZV90IGt0OworCisJZG8geworCQlzZXEgPSByZWFkX3NlcWJlZ2luKCZzay0+c2tfc3RhbXBf c2VxKTsKKwkJa3QgPSBzay0+c2tfc3RhbXA7CisJfSB3aGlsZSAocmVhZF9zZXFyZXRyeSgmc2st PnNrX3N0YW1wX3NlcSwgc2VxKSk7CisKKwlyZXR1cm4ga3Q7CisjZWxzZQorCXJldHVybiBzay0+ c2tfc3RhbXA7CisjZW5kaWYKK30KKworc3RhdGljIGlubGluZSB2b2lkIHNvY2tfd3JpdGVfdGlt ZXN0YW1wKHN0cnVjdCBzb2NrICpzaywga3RpbWVfdCBrdCkKK3sKKyNpZiBCSVRTX1BFUl9MT05H PT0zMgorCXdyaXRlX3NlcWxvY2soJnNrLT5za19zdGFtcF9zZXEpOworCXNrLT5za19zdGFtcCA9 IGt0OworCXdyaXRlX3NlcXVubG9jaygmc2stPnNrX3N0YW1wX3NlcSk7CisjZWxzZQorCXNrLT5z a19zdGFtcCA9IGt0OworI2VuZGlmCit9CisKIHZvaWQgX19zb2NrX3JlY3ZfdGltZXN0YW1wKHN0 cnVjdCBtc2doZHIgKm1zZywgc3RydWN0IHNvY2sgKnNrLAogCQkJICAgc3RydWN0IHNrX2J1ZmYg KnNrYik7CiB2b2lkIF9fc29ja19yZWN2X3dpZmlfc3RhdHVzKHN0cnVjdCBtc2doZHIgKm1zZywg c3RydWN0IHNvY2sgKnNrLApAQCAtMjMxMSw3ICsyMzQzLDcgQEAgc29ja19yZWN2X3RpbWVzdGFt cChzdHJ1Y3QgbXNnaGRyICptc2csIHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNr YikKIAkgICAgIChzay0+c2tfdHNmbGFncyAmIFNPRl9USU1FU1RBTVBJTkdfUkFXX0hBUkRXQVJF KSkpCiAJCV9fc29ja19yZWN2X3RpbWVzdGFtcChtc2csIHNrLCBza2IpOwogCWVsc2UKLQkJc2st PnNrX3N0YW1wID0ga3Q7CisJCXNvY2tfd3JpdGVfdGltZXN0YW1wKHNrLCBrdCk7CiAKIAlpZiAo c29ja19mbGFnKHNrLCBTT0NLX1dJRklfU1RBVFVTKSAmJiBza2ItPndpZmlfYWNrZWRfdmFsaWQp CiAJCV9fc29ja19yZWN2X3dpZmlfc3RhdHVzKG1zZywgc2ssIHNrYik7CkBAIC0yMzMyLDkgKzIz NjQsOSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgc29ja19yZWN2X3RzX2FuZF9kcm9wcyhzdHJ1Y3Qg bXNnaGRyICptc2csIHN0cnVjdCBzb2NrICpzaywKIAlpZiAoc2stPnNrX2ZsYWdzICYgRkxBR1Nf VFNfT1JfRFJPUFMgfHwgc2stPnNrX3RzZmxhZ3MgJiBUU0ZMQUdTX0FOWSkKIAkJX19zb2NrX3Jl Y3ZfdHNfYW5kX2Ryb3BzKG1zZywgc2ssIHNrYik7CiAJZWxzZSBpZiAodW5saWtlbHkoc29ja19m bGFnKHNrLCBTT0NLX1RJTUVTVEFNUCkpKQotCQlzay0+c2tfc3RhbXAgPSBza2ItPnRzdGFtcDsK KwkJc29ja193cml0ZV90aW1lc3RhbXAoc2ssIHNrYi0+dHN0YW1wKTsKIAllbHNlIGlmICh1bmxp a2VseShzay0+c2tfc3RhbXAgPT0gU0tfREVGQVVMVF9TVEFNUCkpCi0JCXNrLT5za19zdGFtcCA9 IDA7CisJCXNvY2tfd3JpdGVfdGltZXN0YW1wKHNrLCAwKTsKIH0KIAogdm9pZCBfX3NvY2tfdHhf dGltZXN0YW1wKF9fdTE2IHRzZmxhZ3MsIF9fdTggKnR4X2ZsYWdzKTsKZGlmZiAtLWdpdCBhL25l dC9jb21wYXQuYyBiL25ldC9jb21wYXQuYwppbmRleCA0N2E2MTRiMzcwY2QuLmQxZjNhOGEwYjNl ZiAxMDA2NDQKLS0tIGEvbmV0L2NvbXBhdC5jCisrKyBiL25ldC9jb21wYXQuYwpAQCAtNDY3LDEy ICs0NjcsMTQgQEAgaW50IGNvbXBhdF9zb2NrX2dldF90aW1lc3RhbXAoc3RydWN0IHNvY2sgKnNr LCBzdHJ1Y3QgdGltZXZhbCBfX3VzZXIgKnVzZXJzdGFtcCkKIAljdHYgPSAoc3RydWN0IGNvbXBh dF90aW1ldmFsIF9fdXNlciAqKSB1c2Vyc3RhbXA7CiAJZXJyID0gLUVOT0VOVDsKIAlzb2NrX2Vu YWJsZV90aW1lc3RhbXAoc2ssIFNPQ0tfVElNRVNUQU1QKTsKLQl0diA9IGt0aW1lX3RvX3RpbWV2 YWwoc2stPnNrX3N0YW1wKTsKKwl0diA9IGt0aW1lX3RvX3RpbWV2YWwoc29ja19yZWFkX3RpbWVz dGFtcChzaykpOworCiAJaWYgKHR2LnR2X3NlYyA9PSAtMSkKIAkJcmV0dXJuIGVycjsKIAlpZiAo dHYudHZfc2VjID09IDApIHsKLQkJc2stPnNrX3N0YW1wID0ga3RpbWVfZ2V0X3JlYWwoKTsKLQkJ dHYgPSBrdGltZV90b190aW1ldmFsKHNrLT5za19zdGFtcCk7CisJCWt0aW1lX3Qga3QgPSBrdGlt ZV9nZXRfcmVhbCgpOworCQlzb2NrX3dyaXRlX3RpbWVzdGFtcChzaywga3QpOworCQl0diA9IGt0 aW1lX3RvX3RpbWV2YWwoa3QpOwogCX0KIAllcnIgPSAwOwogCWlmIChwdXRfdXNlcih0di50dl9z ZWMsICZjdHYtPnR2X3NlYykgfHwKQEAgLTQ5NCwxMiArNDk2LDEzIEBAIGludCBjb21wYXRfc29j a19nZXRfdGltZXN0YW1wbnMoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgdGltZXNwZWMgX191c2Vy ICp1c2Vyc3RhCiAJY3R2ID0gKHN0cnVjdCBjb21wYXRfdGltZXNwZWMgX191c2VyICopIHVzZXJz dGFtcDsKIAllcnIgPSAtRU5PRU5UOwogCXNvY2tfZW5hYmxlX3RpbWVzdGFtcChzaywgU09DS19U SU1FU1RBTVApOwotCXRzID0ga3RpbWVfdG9fdGltZXNwZWMoc2stPnNrX3N0YW1wKTsKKwl0cyA9 IGt0aW1lX3RvX3RpbWVzcGVjKHNvY2tfcmVhZF90aW1lc3RhbXAoc2spKTsKIAlpZiAodHMudHZf c2VjID09IC0xKQogCQlyZXR1cm4gZXJyOwogCWlmICh0cy50dl9zZWMgPT0gMCkgewotCQlzay0+ c2tfc3RhbXAgPSBrdGltZV9nZXRfcmVhbCgpOwotCQl0cyA9IGt0aW1lX3RvX3RpbWVzcGVjKHNr LT5za19zdGFtcCk7CisJCWt0aW1lX3Qga3QgPSBrdGltZV9nZXRfcmVhbCgpOworCQlzb2NrX3dy aXRlX3RpbWVzdGFtcChzaywga3QpOworCQl0cyA9IGt0aW1lX3RvX3RpbWVzcGVjKGt0KTsKIAl9 CiAJZXJyID0gMDsKIAlpZiAocHV0X3VzZXIodHMudHZfc2VjLCAmY3R2LT50dl9zZWMpIHx8CmRp ZmYgLS1naXQgYS9uZXQvY29yZS9zb2NrLmMgYi9uZXQvY29yZS9zb2NrLmMKaW5kZXggMDgwYTg4 MGExNzYxLi45ODY1OWZiNmU5ZmIgMTAwNjQ0Ci0tLSBhL25ldC9jb3JlL3NvY2suYworKysgYi9u ZXQvY29yZS9zb2NrLmMKQEAgLTI3NDMsNiArMjc0Myw5IEBAIHZvaWQgc29ja19pbml0X2RhdGEo c3RydWN0IHNvY2tldCAqc29jaywgc3RydWN0IHNvY2sgKnNrKQogCXNrLT5za19zbmR0aW1lbwkJ PQlNQVhfU0NIRURVTEVfVElNRU9VVDsKIAogCXNrLT5za19zdGFtcCA9IFNLX0RFRkFVTFRfU1RB TVA7CisjaWYgQklUU19QRVJfTE9ORz09MzIKKwlzZXFsb2NrX2luaXQoJnNrLT5za19zdGFtcF9z ZXEpOworI2VuZGlmCiAJYXRvbWljX3NldCgmc2stPnNrX3pja2V5LCAwKTsKIAogI2lmZGVmIENP TkZJR19ORVRfUlhfQlVTWV9QT0xMCkBAIC0yODQyLDEyICsyODQ1LDEzIEBAIGludCBzb2NrX2dl dF90aW1lc3RhbXAoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgdGltZXZhbCBfX3VzZXIgKnVzZXJz dGFtcCkKIAlzdHJ1Y3QgdGltZXZhbCB0djsKIAogCXNvY2tfZW5hYmxlX3RpbWVzdGFtcChzaywg U09DS19USU1FU1RBTVApOwotCXR2ID0ga3RpbWVfdG9fdGltZXZhbChzay0+c2tfc3RhbXApOwor CXR2ID0ga3RpbWVfdG9fdGltZXZhbChzb2NrX3JlYWRfdGltZXN0YW1wKHNrKSk7CiAJaWYgKHR2 LnR2X3NlYyA9PSAtMSkKIAkJcmV0dXJuIC1FTk9FTlQ7CiAJaWYgKHR2LnR2X3NlYyA9PSAwKSB7 Ci0JCXNrLT5za19zdGFtcCA9IGt0aW1lX2dldF9yZWFsKCk7Ci0JCXR2ID0ga3RpbWVfdG9fdGlt ZXZhbChzay0+c2tfc3RhbXApOworCQlrdGltZV90IGt0ID0ga3RpbWVfZ2V0X3JlYWwoKTsKKwkJ c29ja193cml0ZV90aW1lc3RhbXAoc2ssIGt0KTsKKwkJdHYgPSBrdGltZV90b190aW1ldmFsKGt0 KTsKIAl9CiAJcmV0dXJuIGNvcHlfdG9fdXNlcih1c2Vyc3RhbXAsICZ0diwgc2l6ZW9mKHR2KSkg PyAtRUZBVUxUIDogMDsKIH0KQEAgLTI4NTgsMTEgKzI4NjIsMTIgQEAgaW50IHNvY2tfZ2V0X3Rp bWVzdGFtcG5zKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHRpbWVzcGVjIF9fdXNlciAqdXNlcnN0 YW1wKQogCXN0cnVjdCB0aW1lc3BlYyB0czsKIAogCXNvY2tfZW5hYmxlX3RpbWVzdGFtcChzaywg U09DS19USU1FU1RBTVApOwotCXRzID0ga3RpbWVfdG9fdGltZXNwZWMoc2stPnNrX3N0YW1wKTsK Kwl0cyA9IGt0aW1lX3RvX3RpbWVzcGVjKHNvY2tfcmVhZF90aW1lc3RhbXAoc2spKTsKIAlpZiAo dHMudHZfc2VjID09IC0xKQogCQlyZXR1cm4gLUVOT0VOVDsKIAlpZiAodHMudHZfc2VjID09IDAp IHsKLQkJc2stPnNrX3N0YW1wID0ga3RpbWVfZ2V0X3JlYWwoKTsKKwkJa3RpbWVfdCBrdCA9IGt0 aW1lX2dldF9yZWFsKCk7CisJCXNvY2tfd3JpdGVfdGltZXN0YW1wKHNrLCBrdCk7CiAJCXRzID0g a3RpbWVfdG9fdGltZXNwZWMoc2stPnNrX3N0YW1wKTsKIAl9CiAJcmV0dXJuIGNvcHlfdG9fdXNl cih1c2Vyc3RhbXAsICZ0cywgc2l6ZW9mKHRzKSkgPyAtRUZBVUxUIDogMDsKZGlmZiAtLWdpdCBh L25ldC9zdW5ycGMvc3Zjc29jay5jIGIvbmV0L3N1bnJwYy9zdmNzb2NrLmMKaW5kZXggOTg2ZjNl ZDdkMWEyLi5iN2U2NzMxMGVjMzcgMTAwNjQ0Ci0tLSBhL25ldC9zdW5ycGMvc3Zjc29jay5jCisr KyBiL25ldC9zdW5ycGMvc3Zjc29jay5jCkBAIC01NDksNyArNTQ5LDcgQEAgc3RhdGljIGludCBz dmNfdWRwX3JlY3Zmcm9tKHN0cnVjdCBzdmNfcnFzdCAqcnFzdHApCiAJCS8qIERvbid0IGVuYWJs ZSBuZXRzdGFtcCwgc3VucnBjIGRvZXNuJ3QKIAkJICAgbmVlZCB0aGF0IG11Y2ggYWNjdXJhY3kg Ki8KIAl9Ci0Jc3Zzay0+c2tfc2stPnNrX3N0YW1wID0gc2tiLT50c3RhbXA7CisJc29ja193cml0 ZV90aW1lc3RhbXAoc3Zzay0+c2tfc2ssIHNrYi0+dHN0YW1wKTsKIAlzZXRfYml0KFhQVF9EQVRB LCAmc3Zzay0+c2tfeHBydC54cHRfZmxhZ3MpOyAvKiB0aGVyZSBtYXkgYmUgbW9yZSBkYXRhLi4u ICovCiAKIAlsZW4gID0gc2tiLT5sZW47Ci0tIAoyLjIwLjEKCgpGcm9tIGJhOTA1N2I0M2FkNDU5 NTYwMDcwZTMyMmFjZWVjMzcwYTE2OTI4MGEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IENvbmcgV2FuZyA8eGl5b3Uud2FuZ2NvbmdAZ21haWwuY29tPgpEYXRlOiBTdW4sIDIzIERlYyAy MDE4IDIxOjQ1OjU2IC0wODAwClN1YmplY3Q6IFtQQVRDSCAxNi8xNl0gdGlwYzogZml4IGEgZG91 YmxlIGZyZWUgaW4gdGlwY19lbmFibGVfYmVhcmVyKCkKClsgVXBzdHJlYW0gY29tbWl0IGRjNDUw MWZmMjg3NTQ3ZGVhN2NhMTBmMWM1ODBjNzQxMjkxYTg3NjAgXQoKYmVhcmVyX2Rpc2FibGUoKSBh bHJlYWR5IGNhbGxzIGtmcmVlX3JjdSgpIHRvIGZyZWUgc3RydWN0IHRpcGNfYmVhcmVyLAp3ZSBk b24ndCBuZWVkIHRvIGNhbGwga2ZyZWUoKSBhZ2Fpbi4KCkZpeGVzOiBjYjMwYTYzMzg0YmMgKCJ0 aXBjOiByZWZhY3RvciBmdW5jdGlvbiB0aXBjX2VuYWJsZV9iZWFyZXIoKSIpClJlcG9ydGVkLWJ5 OiBzeXpib3QrYjk4MWFjZjFmYjI0MGMwYzEyOGJAc3l6a2FsbGVyLmFwcHNwb3RtYWlsLmNvbQpD YzogWWluZyBYdWUgPHlpbmcueHVlQHdpbmRyaXZlci5jb20+CkNjOiBKb24gTWFsb3kgPGpvbi5t YWxveUBlcmljc3Nvbi5jb20+ClNpZ25lZC1vZmYtYnk6IENvbmcgV2FuZyA8eGl5b3Uud2FuZ2Nv bmdAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVt bG9mdC5uZXQ+Ci0tLQogbmV0L3RpcGMvYmVhcmVyLmMgfCAxIC0KIDEgZmlsZSBjaGFuZ2VkLCAx IGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3RpcGMvYmVhcmVyLmMgYi9uZXQvdGlwYy9i ZWFyZXIuYwppbmRleCBlNjVjM2E4NTUxZTQuLjA0MDE1M2ZmYzM1NyAxMDA2NDQKLS0tIGEvbmV0 L3RpcGMvYmVhcmVyLmMKKysrIGIvbmV0L3RpcGMvYmVhcmVyLmMKQEAgLTMxNyw3ICszMTcsNiBA QCBzdGF0aWMgaW50IHRpcGNfZW5hYmxlX2JlYXJlcihzdHJ1Y3QgbmV0ICpuZXQsIGNvbnN0IGNo YXIgKm5hbWUsCiAJcmVzID0gdGlwY19kaXNjX2NyZWF0ZShuZXQsIGIsICZiLT5iY2FzdF9hZGRy LCAmc2tiKTsKIAlpZiAocmVzKSB7CiAJCWJlYXJlcl9kaXNhYmxlKG5ldCwgYik7Ci0JCWtmcmVl KGIpOwogCQllcnJzdHIgPSAiZmFpbGVkIHRvIGNyZWF0ZSBkaXNjb3ZlcmVyIjsKIAkJZ290byBy ZWplY3RlZDsKIAl9Ci0tIAoyLjIwLjEKCg== ----Next_Part(Fri_Jan__4_10_17_20_2019_871)----