From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 27E12C47255 for ; Tue, 12 May 2020 00:41:41 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id CC14720757 for ; Tue, 12 May 2020 00:41:40 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1725881AbgELAlk (ORCPT ); Mon, 11 May 2020 20:41:40 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50348 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1726106AbgELAlj (ORCPT ); Mon, 11 May 2020 20:41:39 -0400 Received: from shards.monkeyblade.net (shards.monkeyblade.net [IPv6:2620:137:e000::1:9]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BCC53C061A0C for ; Mon, 11 May 2020 17:41:39 -0700 (PDT) Received: from localhost (unknown [IPv6:2601:601:9f00:477::d71]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) (Authenticated sender: davem-davemloft) by shards.monkeyblade.net (Postfix) with ESMTPSA id B93DB1210BB6C for ; Mon, 11 May 2020 17:41:36 -0700 (PDT) Date: Mon, 11 May 2020 17:41:33 -0700 (PDT) Message-Id: <20200511.174133.1445015219140385364.davem@davemloft.net> To: stable@vger.kernel.org Subject: [PATCHES] Networking From: David Miller X-Mailer: Mew version 6.8 on Emacs 26.3 Mime-Version: 1.0 Content-Type: Multipart/Mixed; boundary="--Next_Part(Mon_May_11_17_41_33_2020_555)--" 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]); Mon, 11 May 2020 17:41:38 -0700 (PDT) Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org ----Next_Part(Mon_May_11_17_41_33_2020_555)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Please queue up the following networking bug fixes for v5.4 and v5.6 -stable, respectively. Thank you. ----Next_Part(Mon_May_11_17_41_33_2020_555)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_54.mbox" RnJvbSBkNzJiNGEzNmRkNWEwNDcwMWQ4ZjVhZjUzNTQ5MjgzZmE5YzRhOTYxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKYWt1YiBLaWNpbnNraSA8a3ViYUBrZXJuZWwub3JnPgpEYXRl OiBUdWUsIDI4IEFwciAyMDIwIDE5OjAxOjU4IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAwMS8zMV0g ZGV2bGluazogZml4IHJldHVybiB2YWx1ZSBhZnRlciBoaXR0aW5nIGVuZCBpbiByZWdpb24KIHJl YWQKClsgVXBzdHJlYW0gY29tbWl0IDYxMGE5MzQ2YzEzOGI5YzJjOTNkMzhiZjVmMzcyOGU3NGFl OWNiZDUgXQoKQ29tbWl0IGQ1YjkwZTk5ZTFkNSAoImRldmxpbms6IHJlcG9ydCAwIGFmdGVyIGhp dHRpbmcgZW5kIGluIHJlZ2lvbiByZWFkIikKZml4ZWQgcmVnaW9uIGR1bXAsIGJ1dCByZWdpb24g cmVhZCBzdGlsbCByZXR1cm5zIGEgc3B1cmlvdXMgZXJyb3I6CgokIGRldmxpbmsgcmVnaW9uIHJl YWQgbmV0ZGV2c2ltL25ldGRldnNpbTEvZHVtbXkgc25hcHNob3QgMCBhZGRyIDAgbGVuIDEyOAow MDAwMDAwMDAwMDAwMDAwIGE2IGY0IGM0IDFjIDIxIDM1IDk1IGE2IDlkIDM0IGMzIDViIDg3IDVi IDM1IDc5CjAwMDAwMDAwMDAwMDAwMTAgZjMgYTAgZDcgZWUgNGYgMmYgODIgN2YgYzYgZGQgYzQg ZjYgYTUgYzMgMWIgYWUKMDAwMDAwMDAwMDAwMDAyMCBhNCBmZCBjOCA2MiAwNyA1OSA0OCAwMyA3 MCAzYiBjNyAwOSA4NiA4OCA3ZiA2OAowMDAwMDAwMDAwMDAwMDMwIDZmIDQ1IDVkIDZkIDdkIDBl IDE2IDM4IGE5IGQwIDdhIDRiIDFlIDFlIDJlIGE2CjAwMDAwMDAwMDAwMDAwNDAgZTYgMWQgYWUg MDYgZDYgMTggMDAgODUgY2EgNjIgZTggN2UgMTEgN2UgZjYgMGYKMDAwMDAwMDAwMDAwMDA1MCA3 OSA3ZSBmNyAwZiBmMyA5NCA2OCBiZCBlNiA0MCAyMiA4NSBiNiBiZSA2ZiBiMQowMDAwMDAwMDAw MDAwMDYwIGFmIGRiIGVmIDVlIDM0IGYwIDk4IDRiIDYyIDlhIGUzIDFiIDhiIDkzIGZjIDE3CmRl dmxpbmsgYW5zd2VyczogSW52YWxpZCBhcmd1bWVudAowMDAwMDAwMDAwMDAwMDcwIDYxIGU4IDEx IDExIDY2IDEwIGE1IGY3IGIxIGVhIDhkIDQwIDYwIDUzIGVkIDEyCgpUaGlzIGlzIGEgbWluaW1h bCBmaXgsIEknbGwgZm9sbG93IHVwIHdpdGggYSByZXN0cnVjdHVyaW5nCnNvIHdlIGRvbid0IGhh dmUgdHdvIGNoZWNrcyBmb3IgdGhlIHNhbWUgY29uZGl0aW9uLgoKRml4ZXM6IGZkZDQxZWMyMWUx NSAoImRldmxpbms6IFJldHVybiByaWdodCBlcnJvciBjb2RlIGluIGNhc2Ugb2YgZXJyb3JzIGZv ciByZWdpb24gcmVhZCIpClNpZ25lZC1vZmYtYnk6IEpha3ViIEtpY2luc2tpIDxrdWJhQGtlcm5l bC5vcmc+ClJldmlld2VkLWJ5OiBKYWNvYiBLZWxsZXIgPGphY29iLmUua2VsbGVyQGludGVsLmNv bT4KUmV2aWV3ZWQtYnk6IEppcmkgUGlya28gPGppcmlAbWVsbGFub3guY29tPgpTaWduZWQtb2Zm LWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2NvcmUv ZGV2bGluay5jIHwgNSArKysrKwogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKQoKZGlm ZiAtLWdpdCBhL25ldC9jb3JlL2RldmxpbmsuYyBiL25ldC9jb3JlL2RldmxpbmsuYwppbmRleCA0 YzI1ZjFhYTJkMzcuLjU2NjdjYWU1NzA3MiAxMDA2NDQKLS0tIGEvbmV0L2NvcmUvZGV2bGluay5j CisrKyBiL25ldC9jb3JlL2RldmxpbmsuYwpAQCAtMzkwNyw2ICszOTA3LDExIEBAIHN0YXRpYyBp bnQgZGV2bGlua19ubF9jbWRfcmVnaW9uX3JlYWRfZHVtcGl0KHN0cnVjdCBza19idWZmICpza2Is CiAJCWVuZF9vZmZzZXQgPSBubGFfZ2V0X3U2NChhdHRyc1tERVZMSU5LX0FUVFJfUkVHSU9OX0NI VU5LX0FERFJdKTsKIAkJZW5kX29mZnNldCArPSBubGFfZ2V0X3U2NChhdHRyc1tERVZMSU5LX0FU VFJfUkVHSU9OX0NIVU5LX0xFTl0pOwogCQlkdW1wID0gZmFsc2U7CisKKwkJaWYgKHN0YXJ0X29m ZnNldCA9PSBlbmRfb2Zmc2V0KSB7CisJCQllcnIgPSAwOworCQkJZ290byBubGFfcHV0X2ZhaWx1 cmU7CisJCX0KIAl9CiAKIAllcnIgPSBkZXZsaW5rX25sX3JlZ2lvbl9yZWFkX3NuYXBzaG90X2Zp bGwoc2tiLCBkZXZsaW5rLAotLSAKMi4yNi4yCgoKRnJvbSBmNzQzYzkxMzQ3ZWI4ZDM3NDZmOWFm OTllNDg4NGQ4MmU5Yzc2NDRkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKdWxpYSBM YXdhbGwgPEp1bGlhLkxhd2FsbEBpbnJpYS5mcj4KRGF0ZTogVGh1LCAzMCBBcHIgMjAyMCAyMTo1 MTozMiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDIvMzFdIGRwODM2NDA6IHJldmVyc2UgYXJndW1l bnRzIHRvIGxpc3RfYWRkX3RhaWwKClsgVXBzdHJlYW0gY29tbWl0IDg2NTMwODM3M2VkNDljOWZi MDU3MjBkMTRjYmYxMzE1MzQ5YjMyYTkgXQoKSW4gdGhpcyBjb2RlLCBpdCBhcHBlYXJzIHRoYXQg cGh5dGVyX2Nsb2NrcyBpcyBhIGxpc3QgaGVhZCwgYmFzZWQgb24KdGhlIHByZXZpb3VzIGxpc3Rf Zm9yX2VhY2gsIGFuZCB0aGF0IGNsb2NrLT5saXN0IGlzIGludGVuZGVkIHRvIGJlIGEKbGlzdCBl bGVtZW50LCBnaXZlbiB0aGF0IGl0IGhhcyBqdXN0IGJlZW4gaW5pdGlhbGl6ZWQgaW4KZHA4MzY0 MF9jbG9ja19pbml0LiAgQWNjb3JkaW5nbHksIHN3aXRjaCB0aGUgYXJndW1lbnRzIHRvCmxpc3Rf YWRkX3RhaWwsIHdoaWNoIHRha2VzIHRoZSBsaXN0IGhlYWQgYXMgdGhlIHNlY29uZCBhcmd1bWVu dC4KCkZpeGVzOiBjYjY0NmUyYjAyYjI3ICgicHRwOiBBZGRlZCBhIGNsb2NrIGRyaXZlciBmb3Ig dGhlIE5hdGlvbmFsIFNlbWljb25kdWN0b3IgUEhZVEVSLiIpClNpZ25lZC1vZmYtYnk6IEp1bGlh IExhd2FsbCA8SnVsaWEuTGF3YWxsQGlucmlhLmZyPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBN aWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvcGh5L2RwODM2NDAu YyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMgYi9kcml2ZXJzL25ldC9waHkv ZHA4MzY0MC5jCmluZGV4IDhmMjQxYjU3ZmNmNi4uMWM3NWIyNjI3Y2E4IDEwMDY0NAotLS0gYS9k cml2ZXJzL25ldC9waHkvZHA4MzY0MC5jCisrKyBiL2RyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMK QEAgLTExMTksNyArMTExOSw3IEBAIHN0YXRpYyBzdHJ1Y3QgZHA4MzY0MF9jbG9jayAqZHA4MzY0 MF9jbG9ja19nZXRfYnVzKHN0cnVjdCBtaWlfYnVzICpidXMpCiAJCWdvdG8gb3V0OwogCX0KIAlk cDgzNjQwX2Nsb2NrX2luaXQoY2xvY2ssIGJ1cyk7Ci0JbGlzdF9hZGRfdGFpbCgmcGh5dGVyX2Ns b2NrcywgJmNsb2NrLT5saXN0KTsKKwlsaXN0X2FkZF90YWlsKCZjbG9jay0+bGlzdCwgJnBoeXRl cl9jbG9ja3MpOwogb3V0OgogCW11dGV4X3VubG9jaygmcGh5dGVyX2Nsb2Nrc19sb2NrKTsKIAot LSAKMi4yNi4yCgoKRnJvbSAxYjIyZTNhNmVkOGNiYjEwMTQ3NmQwZWMwMzg2NWM3YmVjZTY3NmM5 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdv b2dsZS5jb20+CkRhdGU6IFNhdCwgMjUgQXByIDIwMjAgMTI6NDA6MjUgLTA3MDAKU3ViamVjdDog W1BBVENIIDAzLzMxXSBmcV9jb2RlbDogZml4IFRDQV9GUV9DT0RFTF9EUk9QX0JBVENIX1NJWkUg c2FuaXR5CiBjaGVja3MKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWlu OyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKClsgVXBzdHJl YW0gY29tbWl0IDE0Njk1MjEyZDRjZDhiMGM5OTdmNjEyMWI2ZGY4NTIwMDM4Y2UwNzYgXQoKTXkg aW50ZW50IHdhcyB0byBub3QgbGV0IHVzZXJzIHNldCBhIHplcm8gZHJvcF9iYXRjaF9zaXplLApp dCBzZWVtcyBJIG9uY2UgYWdhaW4gbWVzc2VkIHdpdGggbWluKCkvbWF4KCkuCgpGaXhlczogOWQx ODU2MmEyMjc4ICgiZnFfY29kZWw6IGFkZCBiYXRjaCBhYmlsaXR5IHRvIGZxX2NvZGVsX2Ryb3Ao KSIpClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KQWNr ZWQtYnk6IFRva2UgSMO4aWxhbmQtSsO4cmdlbnNlbiA8dG9rZUByZWRoYXQuY29tPgpTaWduZWQt b2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3Nj aGVkL3NjaF9mcV9jb2RlbC5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCsp LCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL3NjaF9mcV9jb2RlbC5jIGIv bmV0L3NjaGVkL3NjaF9mcV9jb2RlbC5jCmluZGV4IGMyNjFjMGExODg2OC4uNzZkNzJjM2Y1MmVk IDEwMDY0NAotLS0gYS9uZXQvc2NoZWQvc2NoX2ZxX2NvZGVsLmMKKysrIGIvbmV0L3NjaGVkL3Nj aF9mcV9jb2RlbC5jCkBAIC00MTcsNyArNDE3LDcgQEAgc3RhdGljIGludCBmcV9jb2RlbF9jaGFu Z2Uoc3RydWN0IFFkaXNjICpzY2gsIHN0cnVjdCBubGF0dHIgKm9wdCwKIAkJcS0+cXVhbnR1bSA9 IG1heCgyNTZVLCBubGFfZ2V0X3UzMih0YltUQ0FfRlFfQ09ERUxfUVVBTlRVTV0pKTsKIAogCWlm ICh0YltUQ0FfRlFfQ09ERUxfRFJPUF9CQVRDSF9TSVpFXSkKLQkJcS0+ZHJvcF9iYXRjaF9zaXpl ID0gbWluKDFVLCBubGFfZ2V0X3UzMih0YltUQ0FfRlFfQ09ERUxfRFJPUF9CQVRDSF9TSVpFXSkp OworCQlxLT5kcm9wX2JhdGNoX3NpemUgPSBtYXgoMVUsIG5sYV9nZXRfdTMyKHRiW1RDQV9GUV9D T0RFTF9EUk9QX0JBVENIX1NJWkVdKSk7CiAKIAlpZiAodGJbVENBX0ZRX0NPREVMX01FTU9SWV9M SU1JVF0pCiAJCXEtPm1lbW9yeV9saW1pdCA9IG1pbigxVSA8PCAzMSwgbmxhX2dldF91MzIodGJb VENBX0ZRX0NPREVMX01FTU9SWV9MSU1JVF0pKTsKLS0gCjIuMjYuMgoKCkZyb20gNDFlZmQ0OWNk OTdhYmU3ZmU3ZmZmZTk0OTc0MzlkODE0OTIxZmE1NCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogRGF2aWQgQWhlcm4gPGRzYWhlcm5Aa2VybmVsLm9yZz4KRGF0ZTogRnJpLCAxIE1heSAy MDIwIDA4OjUzOjA4IC0wNjAwClN1YmplY3Q6IFtQQVRDSCAwNC8zMV0gaXB2NjogVXNlIGdsb2Jh bCBzZXJudW0gZm9yIGRzdCB2YWxpZGF0aW9uIHdpdGggbmV4dGhvcAogb2JqZWN0cwoKWyBVcHN0 cmVhbSBjb21taXQgOGYzNGU1M2I2MGIzMzdlNTU5ZjFlYTE5ZTI3ODBmZjk1YWIyZmE2NSBdCgpO aWsgcmVwb3J0ZWQgYSBidWcgd2l0aCBwY3B1IGRzdCBjYWNoZSB3aGVuIG5leHRob3Agb2JqZWN0 cyBhcmUKdXNlZCBpbGx1c3RyYXRlZCBieSB0aGUgZm9sbG93aW5nOgogICAgJCBpcCBuZXRucyBh ZGQgZm9vCiAgICAkIGlwIC1uZXRucyBmb28gbGkgc2V0IGxvIHVwCiAgICAkIGlwIC1uZXRucyBm b28gYWRkciBhZGQgMjAwMTpkYjg6MTE6OjEvMTI4IGRldiBsbwogICAgJCBpcCBuZXRucyBleGVj IGZvbyBzeXNjdGwgbmV0LmlwdjYuY29uZi5hbGwuZm9yd2FyZGluZz0xCiAgICAkIGlwIGxpIGFk ZCB2ZXRoMSB0eXBlIHZldGggcGVlciBuYW1lIHZldGgyCiAgICAkIGlwIGxpIHNldCB2ZXRoMSB1 cAogICAgJCBpcCBhZGRyIGFkZCAyMDAxOmRiODoxMDo6MS82NCBkZXYgdmV0aDEKICAgICQgaXAg bGkgc2V0IGRldiB2ZXRoMiBuZXRucyBmb28KICAgICQgaXAgLW5ldG5zIGZvbyBsaSBzZXQgdmV0 aDIgdXAKICAgICQgaXAgLW5ldG5zIGZvbyBhZGRyIGFkZCAyMDAxOmRiODoxMDo6Mi82NCBkZXYg dmV0aDIKICAgICQgaXAgLTYgbmV4dGhvcCBhZGQgaWQgMTAwIHZpYSAyMDAxOmRiODoxMDo6MiBk ZXYgdmV0aDEKICAgICQgaXAgLTYgcm91dGUgYWRkIDIwMDE6ZGI4OjExOjoxLzEyOCBuaGlkIDEw MAoKICAgIENyZWF0ZSBhIHBjcHUgZW50cnkgb24gY3B1IDA6CiAgICAkIHRhc2tzZXQgLWEgLWMg MCBpcCAtNiByb3V0ZSBnZXQgMjAwMTpkYjg6MTE6OjEKCiAgICBSZS1hZGQgdGhlIHJvdXRlIGVu dHJ5OgogICAgJCBpcCAtNiBybyBkZWwgMjAwMTpkYjg6MTE6OjEKICAgICQgaXAgLTYgcm91dGUg YWRkIDIwMDE6ZGI4OjExOjoxLzEyOCBuaGlkIDEwMAoKICAgIFJvdXRlIGdldCBvbiBjcHUgMCBy ZXR1cm5zIHRoZSBzdGFsZSBwY3B1OgogICAgJCB0YXNrc2V0IC1hIC1jIDAgaXAgLTYgcm91dGUg Z2V0IDIwMDE6ZGI4OjExOjoxCiAgICBSVE5FVExJTksgYW5zd2VyczogTmV0d29yayBpcyB1bnJl YWNoYWJsZQoKICAgIFdoaWxlIGNwdSAxIHdvcmtzOgogICAgJCB0YXNrc2V0IC1hIC1jIDEgaXAg LTYgcm91dGUgZ2V0IDIwMDE6ZGI4OjExOjoxCiAgICAyMDAxOmRiODoxMTo6MSBmcm9tIDo6IHZp YSAyMDAxOmRiODoxMDo6MiBkZXYgdmV0aDEgc3JjIDIwMDE6ZGI4OjEwOjoxIG1ldHJpYyAxMDI0 IHByZWYgbWVkaXVtCgpDb252ZXJzaW9uIG9mIEZJQiBlbnRyaWVzIHRvIHdvcmsgd2l0aCBleHRl cm5hbCBuZXh0aG9wIG9iamVjdHMKbWlzc2VkIGFuIGltcG9ydGFudCBkaWZmZXJlbmNlIGJldHdl ZW4gSVB2NCBhbmQgSVB2NiAtIGhvdyBkc3QKZW50cmllcyBhcmUgaW52YWxpZGF0ZWQgd2hlbiB0 aGUgRklCIGNoYW5nZXMuIElQdjQgaGFzIGEgcGVyLW5ldHdvcmsKbmFtZXNwYWNlIGdlbmVyYXRp b24gaWQgKHJ0X2dlbmlkKSB0aGF0IGlzIGJ1bXBlZCBvbiBjaGFuZ2VzIHRvIHRoZSBGSUIuCkNo ZWNraW5nIGlmIGEgZHN0X2VudHJ5IGlzIHN0aWxsIHZhbGlkIG1lYW5zIGNvbXBhcmluZyBydF9n ZW5pZCBpbiB0aGUKcnRhYmxlIHRvIHRoZSBjdXJyZW50IHZhbHVlIG9mIHJ0X2dlbmlkIGZvciB0 aGUgbmFtZXNwYWNlLgoKSVB2NiBhbHNvIGhhcyBhIHBlciBuZXR3b3JrIG5hbWVzcGFjZSBjb3Vu dGVyLCBmaWI2X3Nlcm51bSwgYnV0IHRoZQpjb3VudCBpcyBzYXZlZCBwZXIgZmliNl9ub2RlLiBX aXRoIHRoZSBwZXItbm9kZSBjb3VudGVyIG9ubHkgZHN0X2VudHJpZXMKYmFzZWQgb24gZmliIGVu dHJpZXMgdW5kZXIgdGhlIG5vZGUgYXJlIGludmFsaWRhdGVkIHdoZW4gY2hhbmdlcyBhcmUKbWFk ZSB0byB0aGUgcm91dGVzIC0gbGltaXRpbmcgdGhlIHNjb3BlIG9mIGludmFsaWRhdGlvbnMuIElQ djYgdXNlcyBhCnJlZmVyZW5jZSBpbiB0aGUgcnQ2X2luZm8sICdmcm9tJywgdG8gdHJhY2sgdGhl IGNvcnJlc3BvbmRpbmcgZmliIGVudHJ5CnVzZWQgdG8gY3JlYXRlIHRoZSBkc3RfZW50cnkuIFdo ZW4gdmFsaWRhdGluZyBhIGRzdF9lbnRyeSwgdGhlICdmcm9tJwppcyB1c2VkIHRvIGJhY2t0cmFj ayB0byB0aGUgZmliNl9ub2RlIGFuZCBjaGVjayB0aGUgc2VybnVtIG9mIGl0IHRvIHRoZQpjb29r aWUgcGFzc2VkIHRvIHRoZSBkc3RfY2hlY2sgb3BlcmF0aW9uLgoKV2l0aCB0aGUgaW5saW5lIGZv cm1hdCAobmV4dGhvcCBkZWZpbml0aW9uIGlubGluZSB3aXRoIHRoZSBmaWI2X2luZm8pLApkc3Rf ZW50cmllcyBjYWNoZWQgaW4gdGhlIGZpYjZfbmggaGF2ZSBhIDE6MSBjb3JyZWxhdGlvbiBiZXR3 ZWVuIGZpYgplbnRyaWVzLCBuZXh0aG9wIGRhdGEgYW5kIGRzdF9lbnRyaWVzLiBXaXRoIGV4dGVy bmFsIG5leHRob3BzLCBJUHY2Cmxvb2tzIG1vcmUgbGlrZSBJUHY0IHdoaWNoIG1lYW5zIG11bHRp cGxlIGZpYiBlbnRyaWVzIGFjcm9zcyBkaXNwYXJhdGUKZmliNl9ub2RlcyBjYW4gYWxsIHJlZmVy ZW5jZSB0aGUgc2FtZSBmaWI2X25oLiBUaGF0IG1lYW5zIHZhbGlkYXRpb24Kb2YgZHN0X2VudHJp ZXMgYmFzZWQgb24gZXh0ZXJuYWwgbmV4dGhvcHMgbmVlZHMgdG8gdXNlIHRoZSBJUHY0IGZvcm1h dAotIHRoZSBwZXItbmV0d29yayBuYW1lc3BhY2UgY291bnRlci4KCkFkZCBzZXJudW0gdG8gcnQ2 X2luZm8gYW5kIHNldCBpdCB3aGVuIGNyZWF0aW5nIGEgcGNwdSBkc3QgZW50cnkuIFVwZGF0ZQpy dDZfZ2V0X2Nvb2tpZSB0byByZXR1cm4gc2VybnVtIGlmIGl0IGlzIHNldCBhbmQgdXBkYXRlIGRz dF9jaGVjayBmb3IKSVB2NiB0byBsb29rIGZvciBzZXJudW0gc2V0IGFuZCBiYXNlZCB0aGUgY2hl Y2sgb24gaXQgaWYgc28uIEZpbmFsbHksCnJ0Nl9nZXRfcGNwdV9yb3V0ZSBuZWVkcyB0byB2YWxp ZGF0ZSB0aGUgY2FjaGVkIGVudHJ5IGJlZm9yZSByZXR1cm5pbmcKYSBwY3B1IGVudHJ5IChzaW1p bGFyIHRvIHRoZSBydF9jYWNoZV92YWxpZCBjYWxscyBpbiBfX21rcm91dGVfaW5wdXQgYW5kCl9f bWtyb3V0ZV9vdXRwdXQgZm9yIElQdjQpLgoKVGhpcyBwcm9ibGVtIG9ubHkgYWZmZWN0cyByb3V0 ZXMgdXNpbmcgdGhlIG5ldywgZXh0ZXJuYWwgbmV4dGhvcHMuCgpUaGFua3MgdG8gdGhlIGtidWls ZCB0ZXN0IHJvYm90IGZvciBjYXRjaGluZyB0aGUgSVNfRU5BQkxFRCBuZWVkZWQKYXJvdW5kIHJ0 X2dlbmlkX2lwdjYgYmVmb3JlIEkgc2VudCB0aGlzIG91dC4KCkZpeGVzOiA1Yjk4MzI0ZWJlMjkg KCJpcHY2OiBBbGxvdyByb3V0ZXMgdG8gdXNlIG5leHRob3Agb2JqZWN0cyIpClJlcG9ydGVkLWJ5 OiBOaWtvbGF5IEFsZWtzYW5kcm92IDxuaWtvbGF5QGN1bXVsdXNuZXR3b3Jrcy5jb20+ClNpZ25l ZC1vZmYtYnk6IERhdmlkIEFoZXJuIDxkc2FoZXJuQGtlcm5lbC5vcmc+ClJldmlld2VkLWJ5OiBO aWtvbGF5IEFsZWtzYW5kcm92IDxuaWtvbGF5QGN1bXVsdXNuZXR3b3Jrcy5jb20+ClRlc3RlZC1i eTogTmlrb2xheSBBbGVrc2FuZHJvdiA8bmlrb2xheUBjdW11bHVzbmV0d29ya3MuY29tPgpTaWdu ZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogaW5j bHVkZS9uZXQvaXA2X2ZpYi5oICAgICAgIHwgIDQgKysrKwogaW5jbHVkZS9uZXQvbmV0X25hbWVz cGFjZS5oIHwgIDcgKysrKysrKwogbmV0L2lwdjYvcm91dGUuYyAgICAgICAgICAgIHwgMjUgKysr KysrKysrKysrKysrKysrKysrKysrKwogMyBmaWxlcyBjaGFuZ2VkLCAzNiBpbnNlcnRpb25zKCsp CgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvaXA2X2ZpYi5oIGIvaW5jbHVkZS9uZXQvaXA2X2Zp Yi5oCmluZGV4IDRiNTY1NmM3MWFiYy4uYmQwZjE1OTViZGM3IDEwMDY0NAotLS0gYS9pbmNsdWRl L25ldC9pcDZfZmliLmgKKysrIGIvaW5jbHVkZS9uZXQvaXA2X2ZpYi5oCkBAIC0xNzcsNiArMTc3 LDcgQEAgc3RydWN0IGZpYjZfaW5mbyB7CiBzdHJ1Y3QgcnQ2X2luZm8gewogCXN0cnVjdCBkc3Rf ZW50cnkJCWRzdDsKIAlzdHJ1Y3QgZmliNl9pbmZvIF9fcmN1CQkqZnJvbTsKKwlpbnQJCQkJc2Vy bnVtOwogCiAJc3RydWN0IHJ0NmtleQkJCXJ0NmlfZHN0OwogCXN0cnVjdCBydDZrZXkJCQlydDZp X3NyYzsKQEAgLTI2MCw2ICsyNjEsOSBAQCBzdGF0aWMgaW5saW5lIHUzMiBydDZfZ2V0X2Nvb2tp ZShjb25zdCBzdHJ1Y3QgcnQ2X2luZm8gKnJ0KQogCXN0cnVjdCBmaWI2X2luZm8gKmZyb207CiAJ dTMyIGNvb2tpZSA9IDA7CiAKKwlpZiAocnQtPnNlcm51bSkKKwkJcmV0dXJuIHJ0LT5zZXJudW07 CisKIAlyY3VfcmVhZF9sb2NrKCk7CiAKIAlmcm9tID0gcmN1X2RlcmVmZXJlbmNlKHJ0LT5mcm9t KTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L25ldF9uYW1lc3BhY2UuaCBiL2luY2x1ZGUvbmV0 L25ldF9uYW1lc3BhY2UuaAppbmRleCBjN2UxNWEyMTNlZjIuLjBmY2E5OGEzZDJkMyAxMDA2NDQK LS0tIGEvaW5jbHVkZS9uZXQvbmV0X25hbWVzcGFjZS5oCisrKyBiL2luY2x1ZGUvbmV0L25ldF9u YW1lc3BhY2UuaApAQCAtNDI4LDYgKzQyOCwxMyBAQCBzdGF0aWMgaW5saW5lIGludCBydF9nZW5p ZF9pcHY0KHN0cnVjdCBuZXQgKm5ldCkKIAlyZXR1cm4gYXRvbWljX3JlYWQoJm5ldC0+aXB2NC5y dF9nZW5pZCk7CiB9CiAKKyNpZiBJU19FTkFCTEVEKENPTkZJR19JUFY2KQorc3RhdGljIGlubGlu ZSBpbnQgcnRfZ2VuaWRfaXB2Nihjb25zdCBzdHJ1Y3QgbmV0ICpuZXQpCit7CisJcmV0dXJuIGF0 b21pY19yZWFkKCZuZXQtPmlwdjYuZmliNl9zZXJudW0pOworfQorI2VuZGlmCisKIHN0YXRpYyBp bmxpbmUgdm9pZCBydF9nZW5pZF9idW1wX2lwdjQoc3RydWN0IG5ldCAqbmV0KQogewogCWF0b21p Y19pbmMoJm5ldC0+aXB2NC5ydF9nZW5pZCk7CmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9yb3V0ZS5j IGIvbmV0L2lwdjYvcm91dGUuYwppbmRleCA4OTRjNzM3MGMxYmQuLmM4MWQ4ZTllNTE2OSAxMDA2 NDQKLS0tIGEvbmV0L2lwdjYvcm91dGUuYworKysgYi9uZXQvaXB2Ni9yb3V0ZS5jCkBAIC0xMzg4 LDkgKzEzODgsMTggQEAgc3RhdGljIHN0cnVjdCBydDZfaW5mbyAqaXA2X3J0X3BjcHVfYWxsb2Mo Y29uc3Qgc3RydWN0IGZpYjZfcmVzdWx0ICpyZXMpCiAJfQogCWlwNl9ydF9jb3B5X2luaXQocGNw dV9ydCwgcmVzKTsKIAlwY3B1X3J0LT5ydDZpX2ZsYWdzIHw9IFJURl9QQ1BVOworCisJaWYgKGY2 aS0+bmgpCisJCXBjcHVfcnQtPnNlcm51bSA9IHJ0X2dlbmlkX2lwdjYoZGV2X25ldChkZXYpKTsK KwogCXJldHVybiBwY3B1X3J0OwogfQogCitzdGF0aWMgYm9vbCBydDZfaXNfdmFsaWQoY29uc3Qg c3RydWN0IHJ0Nl9pbmZvICpydDYpCit7CisJcmV0dXJuIHJ0Ni0+c2VybnVtID09IHJ0X2dlbmlk X2lwdjYoZGV2X25ldChydDYtPmRzdC5kZXYpKTsKK30KKwogLyogSXQgc2hvdWxkIGJlIGNhbGxl ZCB3aXRoIHJjdV9yZWFkX2xvY2soKSBhY3F1aXJlZCAqLwogc3RhdGljIHN0cnVjdCBydDZfaW5m byAqcnQ2X2dldF9wY3B1X3JvdXRlKGNvbnN0IHN0cnVjdCBmaWI2X3Jlc3VsdCAqcmVzKQogewpA QCAtMTM5OCw2ICsxNDA3LDE5IEBAIHN0YXRpYyBzdHJ1Y3QgcnQ2X2luZm8gKnJ0Nl9nZXRfcGNw dV9yb3V0ZShjb25zdCBzdHJ1Y3QgZmliNl9yZXN1bHQgKnJlcykKIAogCXBjcHVfcnQgPSB0aGlz X2NwdV9yZWFkKCpyZXMtPm5oLT5ydDZpX3BjcHUpOwogCisJaWYgKHBjcHVfcnQgJiYgcGNwdV9y dC0+c2VybnVtICYmICFydDZfaXNfdmFsaWQocGNwdV9ydCkpIHsKKwkJc3RydWN0IHJ0Nl9pbmZv ICpwcmV2LCAqKnA7CisKKwkJcCA9IHRoaXNfY3B1X3B0cihyZXMtPm5oLT5ydDZpX3BjcHUpOwor CQlwcmV2ID0geGNoZyhwLCBOVUxMKTsKKwkJaWYgKHByZXYpIHsKKwkJCWRzdF9kZXZfcHV0KCZw cmV2LT5kc3QpOworCQkJZHN0X3JlbGVhc2UoJnByZXYtPmRzdCk7CisJCX0KKworCQlwY3B1X3J0 ID0gTlVMTDsKKwl9CisKIAlyZXR1cm4gcGNwdV9ydDsKIH0KIApAQCAtMjU5OSw2ICsyNjIxLDkg QEAgc3RhdGljIHN0cnVjdCBkc3RfZW50cnkgKmlwNl9kc3RfY2hlY2soc3RydWN0IGRzdF9lbnRy eSAqZHN0LCB1MzIgY29va2llKQogCiAJcnQgPSBjb250YWluZXJfb2YoZHN0LCBzdHJ1Y3QgcnQ2 X2luZm8sIGRzdCk7CiAKKwlpZiAocnQtPnNlcm51bSkKKwkJcmV0dXJuIHJ0Nl9pc192YWxpZChy dCkgPyBkc3QgOiBOVUxMOworCiAJcmN1X3JlYWRfbG9jaygpOwogCiAJLyogQWxsIElQVjYgZHN0 cyBhcmUgY3JlYXRlZCB3aXRoIC0+b2Jzb2xldGUgc2V0IHRvIHRoZSB2YWx1ZQotLSAKMi4yNi4y CgoKRnJvbSBiNjE0YmQ0ZGJhYzk2YzZjZThhZGJiNTQ0N2ZmNjUwYTRjYjVlODAyIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaXJpIFBpcmtvIDxqaXJpQG1lbGxhbm94LmNvbT4KRGF0 ZTogTW9uLCAyNyBBcHIgMjAyMCAxODowNTo0NyArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMDUvMzFd IG1seHN3OiBzcGVjdHJ1bV9hY2xfdGNhbTogUG9zaXRpb24gdmNodW5rIGluIGEgdnJlZ2lvbgog bGlzdCBwcm9wZXJseQoKWyBVcHN0cmVhbSBjb21taXQgNmVmNDg4OWZjMGIzYWE2YWI5MjhlNzU2 NTkzNWFjNmY3NjJjZWU2ZSBdCgpWcmVnaW9uIGhlbHBlcnMgdG8gZ2V0IG1pbiBhbmQgbWF4IHBy aW9yaXR5IGRlcGVuZCBvbiB0aGUgY29ycmVjdApvcmRlcmluZyBvZiB2Y2h1bmtzIGluIHRoZSB2 cmVnaW9uIGxpc3QuIEhvd2V2ZXIsIHRoZSBjdXJyZW50IGNvZGUKYWx3YXlzIGFkZHMgbmV3IGNo dW5rIHRvIHRoZSBlbmQgb2YgdGhlIGxpc3QsIG5vIG1hdHRlciB3aGF0IHRoZQpwcmlvcml0eSBp cy4gRml4IHRoaXMgYnkgZmluZGluZyB0aGUgY29ycmVjdCBwbGFjZSBpbiB0aGUgbGlzdCBhbmQg cHV0CnZjaHVuayB0aGVyZS4KCkZpeGVzOiAyMmE2Nzc2NjFmNTYgKCJtbHhzdzogc3BlY3RydW06 IEludHJvZHVjZSBBQ0wgY29yZSB3aXRoIHNpbXBsZSBUQ0FNIGltcGxlbWVudGF0aW9uIikKU2ln bmVkLW9mZi1ieTogSmlyaSBQaXJrbyA8amlyaUBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6 IElkbyBTY2hpbW1lbCA8aWRvc2NoQG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQg Uy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIC4uLi9uZXQvZXRoZXJuZXQvbWVs bGFub3gvbWx4c3cvc3BlY3RydW1fYWNsX3RjYW0uYyAgfCAxMiArKysrKysrKysrLS0KIDEgZmls ZSBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L3NwZWN0cnVtX2FjbF90Y2FtLmMg Yi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bV9hY2xfdGNhbS5j CmluZGV4IGU5OTMxNTllOGU0Yy4uMjk1YjI3MTEyZDM2IDEwMDY0NAotLS0gYS9kcml2ZXJzL25l dC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bV9hY2xfdGNhbS5jCisrKyBiL2RyaXZl cnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L3NwZWN0cnVtX2FjbF90Y2FtLmMKQEAgLTk4 Niw4ICs5ODYsOSBAQCBtbHhzd19zcF9hY2xfdGNhbV92Y2h1bmtfY3JlYXRlKHN0cnVjdCBtbHhz d19zcCAqbWx4c3dfc3AsCiAJCQkJdW5zaWduZWQgaW50IHByaW9yaXR5LAogCQkJCXN0cnVjdCBt bHhzd19hZmtfZWxlbWVudF91c2FnZSAqZWx1c2FnZSkKIHsKKwlzdHJ1Y3QgbWx4c3dfc3BfYWNs X3RjYW1fdmNodW5rICp2Y2h1bmssICp2Y2h1bmsyOwogCXN0cnVjdCBtbHhzd19zcF9hY2xfdGNh bV92cmVnaW9uICp2cmVnaW9uOwotCXN0cnVjdCBtbHhzd19zcF9hY2xfdGNhbV92Y2h1bmsgKnZj aHVuazsKKwlzdHJ1Y3QgbGlzdF9oZWFkICpwb3M7CiAJaW50IGVycjsKIAogCWlmIChwcmlvcml0 eSA9PSBNTFhTV19TUF9BQ0xfVENBTV9DQVRDSEFMTF9QUklPKQpAQCAtMTAyNSw3ICsxMDI2LDE0 IEBAIG1seHN3X3NwX2FjbF90Y2FtX3ZjaHVua19jcmVhdGUoc3RydWN0IG1seHN3X3NwICptbHhz d19zcCwKIAl9CiAKIAltbHhzd19zcF9hY2xfdGNhbV9yZWhhc2hfY3R4X3ZyZWdpb25fY2hhbmdl ZCh2cmVnaW9uKTsKLQlsaXN0X2FkZF90YWlsKCZ2Y2h1bmstPmxpc3QsICZ2cmVnaW9uLT52Y2h1 bmtfbGlzdCk7CisKKwkvKiBQb3NpdGlvbiB0aGUgdmNodW5rIGluc2lkZSB0aGUgbGlzdCBhY2Nv cmRpbmcgdG8gcHJpb3JpdHkgKi8KKwlsaXN0X2Zvcl9lYWNoKHBvcywgJnZyZWdpb24tPnZjaHVu a19saXN0KSB7CisJCXZjaHVuazIgPSBsaXN0X2VudHJ5KHBvcywgdHlwZW9mKCp2Y2h1bmsyKSwg bGlzdCk7CisJCWlmICh2Y2h1bmsyLT5wcmlvcml0eSA+IHByaW9yaXR5KQorCQkJYnJlYWs7CisJ fQorCWxpc3RfYWRkX3RhaWwoJnZjaHVuay0+bGlzdCwgcG9zKTsKIAltdXRleF91bmxvY2soJnZy ZWdpb24tPmxvY2spOwogCiAJcmV0dXJuIHZjaHVuazsKLS0gCjIuMjYuMgoKCkZyb20gOWYyMGI1 ZDYxNmRiNzdkZTBiOTc4ZTZlNWQwMWQwMWU2OGUyNzQ5MSBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogUm9tYW4gTWFzaGFrIDxtcnZAbW9qYXRhdHUuY29tPgpEYXRlOiBGcmksIDEgTWF5 IDIwMjAgMjE6MzQ6MTggLTA0MDAKU3ViamVjdDogW1BBVENIIDA2LzMxXSBuZWlnaDogc2VuZCBw cm90b2NvbCB2YWx1ZSBpbiBuZWlnaGJvciBjcmVhdGUKIG5vdGlmaWNhdGlvbgoKWyBVcHN0cmVh bSBjb21taXQgMzgyMTJiYjMxZmU5MjNkMGEyYzYyOTliZDJhZGZiYjg0Y2RkZWYyYSBdCgpXaGVu IGEgbmV3IG5laWdoYm9yIGVudHJ5IGhhcyBiZWVuIGFkZGVkLCBldmVudCBpcyBnZW5lcmF0ZWQg YnV0IGl0IGRvZXMgbm90CmluY2x1ZGUgcHJvdG9jb2wsIGJlY2F1c2UgaXRzIHZhbHVlIGlzIGFz c2lnbmVkIGFmdGVyIHRoZSBldmVudCBub3RpZmljYXRpb24Kcm91dGluZSBoYXMgcnVuLCBzbyBt b3ZlIHByb3RvY29sIGFzc2lnbm1lbnQgY29kZSBlYXJsaWVyLgoKRml4ZXM6IGRmOWIwZTMwZDQ0 YyAoIm5laWdoYm9yOiBBZGQgcHJvdG9jb2wgYXR0cmlidXRlIikKQ2M6IERhdmlkIEFoZXJuIDxk c2FoZXJuQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogUm9tYW4gTWFzaGFrIDxtcnZAbW9qYXRh dHUuY29tPgpSZXZpZXdlZC1ieTogRGF2aWQgQWhlcm4gPGRzYWhlcm5AZ21haWwuY29tPgpTaWdu ZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0 L2NvcmUvbmVpZ2hib3VyLmMgfCA2ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9u cygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvY29yZS9uZWlnaGJvdXIuYyBi L25ldC9jb3JlL25laWdoYm91ci5jCmluZGV4IDkyMDc4NGE5YjdmZi4uN2I0MGQxMmYwYzIyIDEw MDY0NAotLS0gYS9uZXQvY29yZS9uZWlnaGJvdXIuYworKysgYi9uZXQvY29yZS9uZWlnaGJvdXIu YwpAQCAtMTk1NCw2ICsxOTU0LDkgQEAgc3RhdGljIGludCBuZWlnaF9hZGQoc3RydWN0IHNrX2J1 ZmYgKnNrYiwgc3RydWN0IG5sbXNnaGRyICpubGgsCiAJCQkJICAgTkVJR0hfVVBEQVRFX0ZfT1ZF UlJJREVfSVNST1VURVIpOwogCX0KIAorCWlmIChwcm90b2NvbCkKKwkJbmVpZ2gtPnByb3RvY29s ID0gcHJvdG9jb2w7CisKIAlpZiAobmRtLT5uZG1fZmxhZ3MgJiBOVEZfRVhUX0xFQVJORUQpCiAJ CWZsYWdzIHw9IE5FSUdIX1VQREFURV9GX0VYVF9MRUFSTkVEOwogCkBAIC0xOTY3LDkgKzE5NzAs NiBAQCBzdGF0aWMgaW50IG5laWdoX2FkZChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3Qgbmxt c2doZHIgKm5saCwKIAkJZXJyID0gX19uZWlnaF91cGRhdGUobmVpZ2gsIGxsYWRkciwgbmRtLT5u ZG1fc3RhdGUsIGZsYWdzLAogCQkJCSAgICAgTkVUTElOS19DQihza2IpLnBvcnRpZCwgZXh0YWNr KTsKIAotCWlmIChwcm90b2NvbCkKLQkJbmVpZ2gtPnByb3RvY29sID0gcHJvdG9jb2w7Ci0KIAlu ZWlnaF9yZWxlYXNlKG5laWdoKTsKIAogb3V0OgotLSAKMi4yNi4yCgoKRnJvbSBjMGJhOGNiN2M0 M2ViZmZlNzQ5OGQ3OGNmNTMyNmQ2MTcwZTA5NzNlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBGbG9yaWFuIEZhaW5lbGxpIDxmLmZhaW5lbGxpQGdtYWlsLmNvbT4KRGF0ZTogTW9uLCA0 IE1heSAyMDIwIDEzOjE4OjA2IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAwNy8zMV0gbmV0OiBkc2E6 IERvIG5vdCBsZWF2ZSBEU0EgbWFzdGVyIHdpdGggTlVMTCBuZXRkZXZfb3BzCgpbIFVwc3RyZWFt IGNvbW1pdCAwNTA1NjlmYzgzODRjODA1NmJhY2VmY2MyNDZiY2IyZGZlNTc0OTM2IF0KCldoZW4g bmRvX2dldF9waHlzX3BvcnRfbmFtZSgpIGZvciB0aGUgQ1BVIHBvcnQgd2FzIGFkZGVkIHdlIGlu dHJvZHVjZWQKYW4gZWFybHkgY2hlY2sgZm9yIHdoZW4gdGhlIERTQSBtYXN0ZXIgbmV0d29yayBk ZXZpY2UgaW4KZHNhX21hc3Rlcl9uZG9fc2V0dXAoKSBhbHJlYWR5IGltcGxlbWVudHMgbmRvX2dl dF9waHlzX3BvcnRfbmFtZSgpLiBXaGVuCndlIHBlcmZvcm0gdGhlIHRlYXJkb3duIG9wZXJhdGlv biBpbiBkc2FfbWFzdGVyX25kb190ZWFyZG93bigpIHdlIHdvdWxkCm5vdCBiZSBjaGVja2luZyB0 aGF0IGNwdV9kcC0+b3JpZ19uZG9fb3BzIHdhcyBzdWNjZXNzZnVsbHkgYWxsb2NhdGVkIGFuZApu b24tTlVMTCBpbml0aWFsaXplZC4KCldpdGggbmV0d29yayBkZXZpY2UgZHJpdmVycyBzdWNoIGFz IHZpcnRpb19uZXQsIHRoaXMgbGVhZHMgdG8gYSBOUEQgYXMKc29vbiBhcyB0aGUgRFNBIHN3aXRj aCBoYW5naW5nIG9mZiBvZiBpdCBnZXRzIHRvcm4gZG93biBiZWNhdXNlIHdlIGFyZQpub3cgYXNz aWduaW5nIHRoZSB2aXJ0aW9fbmV0IGRldmljZSdzIG5ldGRldl9vcHMgYSBOVUxMIHBvaW50ZXIu CgpGaXhlczogZGE3YjllOWIwMGQ0ICgibmV0OiBkc2E6IEFkZCBuZG9fZ2V0X3BoeXNfcG9ydF9u YW1lKCkgZm9yIENQVSBwb3J0IikKUmVwb3J0ZWQtYnk6IEFsbGVuIFBhaXMgPGFsbGVuLnBhaXNA b3JhY2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRmxvcmlhbiBGYWluZWxsaSA8Zi5mYWluZWxsaUBn bWFpbC5jb20+ClRlc3RlZC1ieTogQWxsZW4gUGFpcyA8YWxsZW4ucGFpc0BvcmFjbGUuY29tPgpT aWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQog bmV0L2RzYS9tYXN0ZXIuYyB8IDMgKystCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCsp LCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2RzYS9tYXN0ZXIuYyBiL25ldC9kc2Ev bWFzdGVyLmMKaW5kZXggMzI1NWRmYzk3Zjg2Li5iZTBiNGVkM2I3ZDggMTAwNjQ0Ci0tLSBhL25l dC9kc2EvbWFzdGVyLmMKKysrIGIvbmV0L2RzYS9tYXN0ZXIuYwpAQCAtMjU5LDcgKzI1OSw4IEBA IHN0YXRpYyB2b2lkIGRzYV9tYXN0ZXJfbmRvX3RlYXJkb3duKHN0cnVjdCBuZXRfZGV2aWNlICpk ZXYpCiB7CiAJc3RydWN0IGRzYV9wb3J0ICpjcHVfZHAgPSBkZXYtPmRzYV9wdHI7CiAKLQlkZXYt Pm5ldGRldl9vcHMgPSBjcHVfZHAtPm9yaWdfbmRvX29wczsKKwlpZiAoY3B1X2RwLT5vcmlnX25k b19vcHMpCisJCWRldi0+bmV0ZGV2X29wcyA9IGNwdV9kcC0+b3JpZ19uZG9fb3BzOwogCWNwdV9k cC0+b3JpZ19uZG9fb3BzID0gTlVMTDsKIH0KIAotLSAKMi4yNi4yCgoKRnJvbSAwNTcyODU0YmNm MDJhNjU5NTFlNmZkZjAxYjRlYTVmYWY4MTIzYjMwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBEZWppbiBaaGVuZyA8emhlbmdkZWppbjVAZ21haWwuY29tPgpEYXRlOiBTdW4sIDMgTWF5 IDIwMjAgMjA6MzI6MjYgKzA4MDAKU3ViamVjdDogW1BBVENIIDA4LzMxXSBuZXQ6IG1hY2I6IGZp eCBhbiBpc3N1ZSBhYm91dCBsZWFrIHJlbGF0ZWQgc3lzdGVtCiByZXNvdXJjZXMKClsgVXBzdHJl YW0gY29tbWl0IGI5NTljNzdkYWMwOTM0ODk1NWYzNDQxMDRjNmE5MjFlYmUxMDQ3NTMgXQoKQSBj YWxsIG9mIHRoZSBmdW5jdGlvbiBtYWNiX2luaXQoKSBjYW4gZmFpbCBpbiB0aGUgZnVuY3Rpb24K ZnU1NDBfYzAwMF9pbml0LiBUaGUgcmVsYXRlZCBzeXN0ZW0gcmVzb3VyY2VzIHdlcmUgbm90IHJl bGVhc2VkCnRoZW4uIHVzZSBkZXZtX3BsYXRmb3JtX2lvcmVtYXBfcmVzb3VyY2UoKSB0byByZXBs YWNlIGlvcmVtYXAoKQp0byBmaXggaXQuCgpGaXhlczogYzIxOGFkNTU5MDIwZmY5ICgibWFjYjog QWRkIHN1cHBvcnQgZm9yIFNpRml2ZSBGVTU0MC1DMDAwIikKQ2M6IEFuZHkgU2hldmNoZW5rbyA8 YW5keS5zaGV2Y2hlbmtvQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IFlhc2ggU2hhaCA8eWFzaC5z aGFoQHNpZml2ZS5jb20+ClN1Z2dlc3RlZC1ieTogTmljb2xhcyBGZXJyZSA8bmljb2xhcy5mZXJy ZUBtaWNyb2NoaXAuY29tPgpTdWdnZXN0ZWQtYnk6IEFuZHkgU2hldmNoZW5rbyA8YW5keS5zaGV2 Y2hlbmtvQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGVqaW4gWmhlbmcgPHpoZW5nZGVqaW41 QGdtYWlsLmNvbT4KQWNrZWQtYnk6IE5pY29sYXMgRmVycmUgPG5pY29sYXMuZmVycmVAbWljcm9j aGlwLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQu bmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMgfCAxMiAr KystLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4u YyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMKaW5kZXggMjM0YzEz ZWJiYzQxLi5lYWUyMWZjNjgyNDIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Nh ZGVuY2UvbWFjYl9tYWluLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNi X21haW4uYwpAQCAtNDA0OCwxNSArNDA0OCw5IEBAIHN0YXRpYyBpbnQgZnU1NDBfYzAwMF9jbGtf aW5pdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LCBzdHJ1Y3QgY2xrICoqcGNsaywKIAog c3RhdGljIGludCBmdTU0MF9jMDAwX2luaXQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikK IHsKLQlzdHJ1Y3QgcmVzb3VyY2UgKnJlczsKLQotCXJlcyA9IHBsYXRmb3JtX2dldF9yZXNvdXJj ZShwZGV2LCBJT1JFU09VUkNFX01FTSwgMSk7Ci0JaWYgKCFyZXMpCi0JCXJldHVybiAtRU5PREVW OwotCi0JbWdtdC0+cmVnID0gaW9yZW1hcChyZXMtPnN0YXJ0LCByZXNvdXJjZV9zaXplKHJlcykp OwotCWlmICghbWdtdC0+cmVnKQotCQlyZXR1cm4gLUVOT01FTTsKKwltZ210LT5yZWcgPSBkZXZt X3BsYXRmb3JtX2lvcmVtYXBfcmVzb3VyY2UocGRldiwgMSk7CisJaWYgKElTX0VSUihtZ210LT5y ZWcpKQorCQlyZXR1cm4gUFRSX0VSUihtZ210LT5yZWcpOwogCiAJcmV0dXJuIG1hY2JfaW5pdChw ZGV2KTsKIH0KLS0gCjIuMjYuMgoKCkZyb20gOGNiODFmY2UxZGY4NmM0Zjk0N2JiN2M2YWQ5MDM5 NmMxNTI4MjJmNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogU2NvdHQgRGlhbCA8c2Nv dHRAc2NvdHRkaWFsLmNvbT4KRGF0ZTogRnJpLCAyNCBBcHIgMjAyMCAxODo1MTowOCAtMDQwMApT dWJqZWN0OiBbUEFUQ0ggMDkvMzFdIG5ldDogbWFjc2VjOiBwcmVzZXJ2ZSBpbmdyZXNzIGZyYW1l IG9yZGVyaW5nCgpbIFVwc3RyZWFtIGNvbW1pdCBhYjA0NmE1ZDRiZTRjOTBhMzk1MmEwZWFlNzU2 MTdiNDljMGNiMDFiIF0KCk1BQ3NlYyBkZWNyeXB0aW9uIGFsd2F5cyBvY2N1cnMgaW4gYSBzb2Z0 aXJxIGNvbnRleHQuIFNpbmNlCnRoZSBGUFUgbWF5IG5vdCBiZSB1c2FibGUgaW4gdGhlIHNvZnRp cnEgY29udGV4dCwgdGhlIGNhbGwgdG8KZGVjcnlwdCBtYXkgYmUgc2NoZWR1bGVkIG9uIHRoZSBj cnlwdGQgd29yayBxdWV1ZS4gVGhlIGNyeXB0ZAp3b3JrIHF1ZXVlIGRvZXMgbm90IHByb3ZpZGUg b3JkZXJpbmcgZ3VhcmFudGVlcy4gVGhlcmVmb3JlLApwcmVzZXJ2aW5nIG9yZGVyIHJlcXVpcmVz IG1hc2tpbmcgb3V0IEFTWU5DIGltcGxlbWVudGF0aW9ucwpvZiBnY20oYWVzKS4KCkZvciBpbnN0 YW5jZSwgYW4gSW50ZWwgQ1BVIHdpdGggQUVTLU5JIG1ha2VzIGF2YWlsYWJsZSB0aGUKZ2VuZXJp Yy1nY20tYWVzbmkgZHJpdmVyIGZyb20gdGhlIGFlc25pX2ludGVsIG1vZHVsZSB0bwppbXBsZW1l bnQgZ2NtKGFlcykuIEhvd2V2ZXIsIHRoaXMgaW1wbGVtZW50YXRpb24gcmVxdWlyZXMKdGhlIEZQ VSwgc28gaXQgaXMgbm90IGFsd2F5cyBhdmFpbGFibGUgdG8gdXNlIGZyb20gYSBzb2Z0aXJxCmNv bnRleHQsIGFuZCB3aWxsIGZhbGxiYWNrIHRvIHRoZSBjcnlwdGQgd29yayBxdWV1ZSwgd2hpY2gK ZG9lcyBub3QgcHJlc2VydmUgZnJhbWUgb3JkZXJpbmcuIFdpdGggdGhpcyBjaGFuZ2UsIHN1Y2gg YQpzeXN0ZW0gd291bGQgc2VsZWN0IGdjbV9iYXNlKGN0cihhZXMtYWVzbmkpLGdoYXNoLWdlbmVy aWMpLgpXaGlsZSB0aGUgYWVzLWFlc25pIGltcGxlbWVudGF0aW9uIHByZWZlcnMgdG8gdXNlIHRo ZSBGUFUsIGl0CndpbGwgZmFsbGJhY2sgdG8gdGhlIGFlcy1hc20gaW1wbGVtZW50YXRpb24gaWYg dW5hdmFpbGFibGUuCgpCeSB1c2luZyBhIHN5bmNocm9ub3VzIHZlcnNpb24gb2YgZ2NtKGFlcyks IHRoZSBkZWNyeXB0aW9uCndpbGwgY29tcGxldGUgYmVmb3JlIHJldHVybmluZyBmcm9tIGNyeXB0 b19hZWFkX2RlY3J5cHQoKS4KVGhlcmVmb3JlLCB0aGUgbWFjc2VjX2RlY3J5cHRfZG9uZSgpIGNh bGxiYWNrIHdpbGwgYmUgY2FsbGVkCmJlZm9yZSByZXR1cm5pbmcgZnJvbSBtYWNzZWNfZGVjcnlw dCgpLiBUaHVzLCB0aGUgb3JkZXIgb2YKY2FsbHMgdG8gbWFjc2VjX3Bvc3RfZGVjcnlwdCgpIGZv ciB0aGUgZnJhbWVzIGlzIHByZXNlcnZlZC4KCldoaWxlIGl0J3MgcHJlc3VtYWJsZSB0aGF0IHRo ZSBwdXJlIEFFUy1OSSB2ZXJzaW9uIG9mIGdjbShhZXMpCmlzIG1vcmUgcGVyZm9ybWFudCwgdGhl IGh5YnJpZCBzb2x1dGlvbiBpcyBjYXBhYmxlIG9mIGdpZ2FiaXQKc3BlZWRzIG9uIG1vZGVzdCBo YXJkd2FyZS4gUmVnYXJkbGVzcywgcHJlc2VydmluZyB0aGUgb3JkZXIKb2YgZnJhbWVzIGlzIHBh cmFtb3VudCBmb3IgbWFueSBuZXR3b3JrIHByb3RvY29scyAoZS5nLiwKdHJpZ2dlcmluZyBUQ1Ag cmV0cmllcykuIFdpdGhpbiB0aGUgTUFDc2VjIGRyaXZlciBpdHNlbGYsIHRoZQpyZXBsYXkgcHJv dGVjdGlvbiBpcyB0cmlwcGVkIGJ5IHRoZSBvdXQtb2Ytb3JkZXIgZnJhbWVzLCBhbmQKY2FuIGNh dXNlIGZyYW1lcyB0byBiZSBkcm9wcGVkLgoKVGhpcyBidWcgaGFzIGJlZW4gcHJlc2VudCBpbiB0 aGlzIGNvZGUgc2luY2UgaXQgd2FzIGFkZGVkIGluCnY0LjYsIGhvd2V2ZXIgaXQgbWF5IG5vdCBo YXZlIGJlZW4gbm90aWNlZCBzaW5jZSBub3QgYWxsIENQVXMKaGF2ZSBGUFUgb2ZmbG9hZCBhdmFp bGFibGUuIEFkZGl0aW9uYWxseSwgdGhlIGJ1ZyBtYW5pZmVzdHMKYXMgb2NjYXNpb25hbCBvdXQt b2Ytb3JkZXIgcGFja2V0cyB0aGF0IGFyZSBlYXNpbHkKbWlzYXR0cmlidXRlZCB0byBvdGhlciBu ZXR3b3JrIHBoZW5vbWVuYS4KCldoZW4gdGhpcyBjb2RlIHdhcyBhZGRlZCBpbiB2NC42LCB0aGUg Y3J5cHRvL2djbS5jIGNvZGUgZGlkCm5vdCByZXN0cmljdCBzZWxlY3Rpb24gb2YgdGhlIGdoYXNo IGZ1bmN0aW9uIGJhc2VkIG9uIHRoZQpBU1lOQyBmbGFnLiBGb3IgaW5zdGFuY2UsIHg4NiBDUFVz IHdpdGggUENMTVVMUURRIHdvdWxkCnNlbGVjdCB0aGUgZ2hhc2gtY2xtdWxuaSBkcml2ZXIgaW5z dGVhZCBvZiBnaGFzaC1nZW5lcmljLAp3aGljaCBzdWJtaXRzIHRvIHRoZSBjcnlwdGQgd29yayBx dWV1ZSBpZiB0aGUgRlBVIGlzIGJ1c3kuCkhvd2V2ZXIsIHRoaXMgYnVnIHdhcyB3YXMgY29ycmVj dGVkIGluIHY0LjggYnkgY29tbWl0CmIzMGJkZmE4NjQzMWFmYmFmZTE1Mjg0YTNhZDVhYzE5YjQ5 Yjg4ZTMsIGFuZCB3YXMgYmFja3BvcnRlZAphbGwgdGhlIHdheSBiYWNrIHRvIHRoZSB2My4xNCBz dGFibGUgYnJhbmNoLCBzbyB0aGlzIHBhdGNoCnNob3VsZCBiZSBhcHBsaWNhYmxlIGJhY2sgdG8g dGhlIHY0LjYgc3RhYmxlIGJyYW5jaC4KClNpZ25lZC1vZmYtYnk6IFNjb3R0IERpYWwgPHNjb3R0 QHNjb3R0ZGlhbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2 ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9tYWNzZWMuYyB8IDMgKystCiAxIGZpbGUgY2hh bmdlZCwgMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9uZXQvbWFjc2VjLmMgYi9kcml2ZXJzL25ldC9tYWNzZWMuYwppbmRleCBhMGFiYzcyOWYwY2Eu LjRjODZhNzNkYjQ3NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvbWFjc2VjLmMKKysrIGIvZHJp dmVycy9uZXQvbWFjc2VjLmMKQEAgLTEzMDksNyArMTMwOSw4IEBAIHN0YXRpYyBzdHJ1Y3QgY3J5 cHRvX2FlYWQgKm1hY3NlY19hbGxvY190Zm0oY2hhciAqa2V5LCBpbnQga2V5X2xlbiwgaW50IGlj dl9sZW4pCiAJc3RydWN0IGNyeXB0b19hZWFkICp0Zm07CiAJaW50IHJldDsKIAotCXRmbSA9IGNy eXB0b19hbGxvY19hZWFkKCJnY20oYWVzKSIsIDAsIDApOworCS8qIFBpY2sgYSBzeW5jIGdjbShh ZXMpIGNpcGhlciB0byBlbnN1cmUgb3JkZXIgaXMgcHJlc2VydmVkLiAqLworCXRmbSA9IGNyeXB0 b19hbGxvY19hZWFkKCJnY20oYWVzKSIsIDAsIENSWVBUT19BTEdfQVNZTkMpOwogCiAJaWYgKElT X0VSUih0Zm0pKQogCQlyZXR1cm4gdGZtOwotLSAKMi4yNi4yCgoKRnJvbSAyZWY5NTc0NGUzYTg3 NzJhZjdkYWFlZTQ3YTdhZjJjNTUyYWJiMGY0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBUYXJpcSBUb3VrYW4gPHRhcmlxdEBtZWxsYW5veC5jb20+CkRhdGU6IE1vbiwgNCBNYXkgMjAy MCAxMTozNjowMiArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMTAvMzFdIG5ldC9tbHg0X2NvcmU6IEZp eCB1c2Ugb2YgRU5PU1BDIGFyb3VuZAogbWx4NF9jb3VudGVyX2FsbG9jKCkKClsgVXBzdHJlYW0g Y29tbWl0IDQwZTQ3MzA3MWRiYWQwNDMxNmRkYzM2MTNjM2EzZDFjNzU0NTgyOTkgXQoKV2hlbiBF Tk9TUEMgaXMgc2V0IHRoZSBpZHggaXMgc3RpbGwgdmFsaWQgYW5kIGdldHMgc2V0IHRvIHRoZSBn bG9iYWwKTUxYNF9TSU5LX0NPVU5URVJfSU5ERVguICBIb3dldmVyIGdjYydzIHN0YXRpYyBhbmFs eXNpcyBjYW5ub3QgdGVsbCB0aGF0CkVOT1NQQyBpcyBpbXBvc3NpYmxlIGZyb20gbWx4NF9jbWRf aW1tKCkgYW5kIGdpdmVzIHRoaXMgd2FybmluZzoKCmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxh bm94L21seDQvbWFpbi5jOjI1NTI6Mjg6IHdhcm5pbmc6ICdpZHgnIG1heSBiZQp1c2VkIHVuaW5p dGlhbGl6ZWQgaW4gdGhpcyBmdW5jdGlvbiBbLVdtYXliZS11bmluaXRpYWxpemVkXQogMjU1MiB8 ICAgIHByaXYtPmRlZl9jb3VudGVyW3BvcnRdID0gaWR4OwoKQWxzbywgd2hlbiBFTk9TUEMgaXMg cmV0dXJuZWQgbWx4NF9hbGxvY2F0ZV9kZWZhdWx0X2NvdW50ZXJzIHNob3VsZCBub3QKZmFpbC4K CkZpeGVzOiA2ZGU1ZjdmNmExZmEgKCJuZXQvbWx4NF9jb3JlOiBBbGxvY2F0ZSBkZWZhdWx0IGNv dW50ZXIgcGVyIHBvcnQiKQpTaWduZWQtb2ZmLWJ5OiBKYXNvbiBHdW50aG9ycGUgPGpnZ0BtZWxs YW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IFRhcmlxIFRvdWthbiA8dGFyaXF0QG1lbGxhbm94LmNv bT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0Pgot LS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDQvbWFpbi5jIHwgNCArKystCiAx IGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9tYWluLmMgYi9kcml2ZXJzL25l dC9ldGhlcm5ldC9tZWxsYW5veC9tbHg0L21haW4uYwppbmRleCBkNDRhYzY2NmU3MzAuLjg3YzJl OGRlNjEwMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9t YWluLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9tYWluLmMKQEAg LTI1NTAsNiArMjU1MCw3IEBAIHN0YXRpYyBpbnQgbWx4NF9hbGxvY2F0ZV9kZWZhdWx0X2NvdW50 ZXJzKHN0cnVjdCBtbHg0X2RldiAqZGV2KQogCiAJCWlmICghZXJyIHx8IGVyciA9PSAtRU5PU1BD KSB7CiAJCQlwcml2LT5kZWZfY291bnRlcltwb3J0XSA9IGlkeDsKKwkJCWVyciA9IDA7CiAJCX0g ZWxzZSBpZiAoZXJyID09IC1FTk9FTlQpIHsKIAkJCWVyciA9IDA7CiAJCQljb250aW51ZTsKQEAg LTI2MDAsNyArMjYwMSw4IEBAIGludCBtbHg0X2NvdW50ZXJfYWxsb2Moc3RydWN0IG1seDRfZGV2 ICpkZXYsIHUzMiAqaWR4LCB1OCB1c2FnZSkKIAkJCQkgICBNTFg0X0NNRF9USU1FX0NMQVNTX0Es IE1MWDRfQ01EX1dSQVBQRUQpOwogCQlpZiAoIWVycikKIAkJCSppZHggPSBnZXRfcGFyYW1fbCgm b3V0X3BhcmFtKTsKLQorCQlpZiAoV0FSTl9PTihlcnIgPT0gLUVOT1NQQykpCisJCQllcnIgPSAt RUlOVkFMOwogCQlyZXR1cm4gZXJyOwogCX0KIAlyZXR1cm4gX19tbHg0X2NvdW50ZXJfYWxsb2Mo ZGV2LCBpZHgpOwotLSAKMi4yNi4yCgoKRnJvbSA1ZmI2MGRiYjQ5NmIzMWViYzEyMmI0MmZkMTI5 NGUxZWRjNTEwNTFhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQg PGVkdW1hemV0QGdvb2dsZS5jb20+CkRhdGU6IFNhdCwgMiBNYXkgMjAyMCAyMDowOToyNSAtMDcw MApTdWJqZWN0OiBbUEFUQ0ggMTEvMzFdIG5ldF9zY2hlZDogc2NoX3NrYnByaW86IGFkZCBtZXNz YWdlIHZhbGlkYXRpb24gdG8KIHNrYnByaW9fY2hhbmdlKCkKClsgVXBzdHJlYW0gY29tbWl0IDI3 NjExMjFhZjg3ZGU0NTk1MTk4OWEwYWRhZGE5MTc4MzdkOGZhODIgXQoKRG8gbm90IGFzc3VtZSB0 aGUgYXR0cmlidXRlIGhhcyB0aGUgcmlnaHQgc2l6ZS4KCkZpeGVzOiBhZWE1ZjY1NGU2YjcgKCJu ZXQvc2NoZWQ6IGFkZCBza2JwcmlvIHNjaGVkdWxlciIpClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVt YXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KUmVwb3J0ZWQtYnk6IHN5emJvdCA8c3l6a2FsbGVy QGdvb2dsZWdyb3Vwcy5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1A ZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvc2NoZWQvc2NoX3NrYnByaW8uYyB8IDMgKysrCiAxIGZp bGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL3NjaF9z a2JwcmlvLmMgYi9uZXQvc2NoZWQvc2NoX3NrYnByaW8uYwppbmRleCAwZmIxMGFiZjc1NzkuLjdh NWU0YzQ1NDcxNSAxMDA2NDQKLS0tIGEvbmV0L3NjaGVkL3NjaF9za2JwcmlvLmMKKysrIGIvbmV0 L3NjaGVkL3NjaF9za2JwcmlvLmMKQEAgLTE2OSw2ICsxNjksOSBAQCBzdGF0aWMgaW50IHNrYnBy aW9fY2hhbmdlKHN0cnVjdCBRZGlzYyAqc2NoLCBzdHJ1Y3QgbmxhdHRyICpvcHQsCiB7CiAJc3Ry dWN0IHRjX3NrYnByaW9fcW9wdCAqY3RsID0gbmxhX2RhdGEob3B0KTsKIAorCWlmIChvcHQtPm5s YV9sZW4gIT0gbmxhX2F0dHJfc2l6ZShzaXplb2YoKmN0bCkpKQorCQlyZXR1cm4gLUVJTlZBTDsK KwogCXNjaC0+bGltaXQgPSBjdGwtPmxpbWl0OwogCXJldHVybiAwOwogfQotLSAKMi4yNi4yCgoK RnJvbSA3MmI1YWE4MDFmN2M4YWM1ZDNjNWNhNTA5OWIyMTM2MzI4N2IxNTg5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBXaWxsZW0gZGUgQnJ1aWpuIDx3aWxsZW1iQGdvb2dsZS5jb20+ CkRhdGU6IE1vbiwgNCBNYXkgMjAyMCAxMjo0ODo1NCAtMDQwMApTdWJqZWN0OiBbUEFUQ0ggMTIv MzFdIG5ldDogc3RyaWN0ZXIgdmFsaWRhdGlvbiBvZiB1bnRydXN0ZWQgZ3NvIHBhY2tldHMKClsg VXBzdHJlYW0gY29tbWl0IDkyNzQxMjRmMDIzYjVjNTZkYzQzMjY2MzdkNGY3ODc5NjhiMDM2MDcg XQoKU3l6a2FsbGVyIGFnYWluIGZvdW5kIGEgcGF0aCB0byBhIGtlcm5lbCBjcmFzaCB0aHJvdWdo IGJhZCBnc28gaW5wdXQ6CmEgcGFja2V0IHdpdGggdHJhbnNwb3J0IGhlYWRlciBleHRlbmRpbmcg YmV5b25kIHNrYl9oZWFkbGVuKHNrYikuCgpUaWdodGVuIHZhbGlkYXRpb24gYXQga2VybmVsIGVu dHJ5OgoKLSBWZXJpZnkgdGhhdCB0aGUgdHJhbnNwb3J0IGhlYWRlciBsaWVzIHdpdGhpbiB0aGUg bGluZWFyIHNlY3Rpb24uCgogICAgVG8gYXZvaWQgcHVsbGluZyBsaW51eC90Y3AuaCwgdmVyaWZ5 IGp1c3Qgc2l6ZW9mIHRjcGhkci4KICAgIHRjcF9nc29fc2VnbWVudCB3aWxsIGNhbGwgcHNrYl9t YXlfcHVsbCAodGgtPmRvZmYgKiA0KSBiZWZvcmUgdXNlLgoKLSBNYXRjaCB0aGUgZ3NvX3R5cGUg YWdhaW5zdCB0aGUgaXBfcHJvdG8gZm91bmQgYnkgdGhlIGZsb3cgZGlzc2VjdG9yLgoKRml4ZXM6 IGJmZDVmNGEzZDYwNSAoInBhY2tldDogQWRkIEdTTy9jc3VtIG9mZmxvYWQgc3VwcG9ydC4iKQpS ZXBvcnRlZC1ieTogc3l6Ym90IDxzeXprYWxsZXJAZ29vZ2xlZ3JvdXBzLmNvbT4KU2lnbmVkLW9m Zi1ieTogV2lsbGVtIGRlIEJydWlqbiA8d2lsbGVtYkBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5 OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogaW5jbHVkZS9saW51 eC92aXJ0aW9fbmV0LmggfCAyNiArKysrKysrKysrKysrKysrKysrKysrKystLQogMSBmaWxlIGNo YW5nZWQsIDI0IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvaW5j bHVkZS9saW51eC92aXJ0aW9fbmV0LmggYi9pbmNsdWRlL2xpbnV4L3ZpcnRpb19uZXQuaAppbmRl eCAwZDFmZTkyOTdhYzYuLjZmNmFkZTYzYjA0YyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC92 aXJ0aW9fbmV0LmgKKysrIGIvaW5jbHVkZS9saW51eC92aXJ0aW9fbmV0LmgKQEAgLTMsNiArMyw4 IEBACiAjZGVmaW5lIF9MSU5VWF9WSVJUSU9fTkVUX0gKIAogI2luY2x1ZGUgPGxpbnV4L2lmX3Zs YW4uaD4KKyNpbmNsdWRlIDx1YXBpL2xpbnV4L3RjcC5oPgorI2luY2x1ZGUgPHVhcGkvbGludXgv dWRwLmg+CiAjaW5jbHVkZSA8dWFwaS9saW51eC92aXJ0aW9fbmV0Lmg+CiAKIHN0YXRpYyBpbmxp bmUgaW50IHZpcnRpb19uZXRfaGRyX3NldF9wcm90byhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLApAQCAt MjgsMTcgKzMwLDI1IEBAIHN0YXRpYyBpbmxpbmUgaW50IHZpcnRpb19uZXRfaGRyX3RvX3NrYihz dHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCQkJCQlib29sIGxpdHRsZV9lbmRpYW4pCiB7CiAJdW5zaWdu ZWQgaW50IGdzb190eXBlID0gMDsKKwl1bnNpZ25lZCBpbnQgdGhsZW4gPSAwOworCXVuc2lnbmVk IGludCBpcF9wcm90bzsKIAogCWlmIChoZHItPmdzb190eXBlICE9IFZJUlRJT19ORVRfSERSX0dT T19OT05FKSB7CiAJCXN3aXRjaCAoaGRyLT5nc29fdHlwZSAmIH5WSVJUSU9fTkVUX0hEUl9HU09f RUNOKSB7CiAJCWNhc2UgVklSVElPX05FVF9IRFJfR1NPX1RDUFY0OgogCQkJZ3NvX3R5cGUgPSBT S0JfR1NPX1RDUFY0OworCQkJaXBfcHJvdG8gPSBJUFBST1RPX1RDUDsKKwkJCXRobGVuID0gc2l6 ZW9mKHN0cnVjdCB0Y3BoZHIpOwogCQkJYnJlYWs7CiAJCWNhc2UgVklSVElPX05FVF9IRFJfR1NP X1RDUFY2OgogCQkJZ3NvX3R5cGUgPSBTS0JfR1NPX1RDUFY2OworCQkJaXBfcHJvdG8gPSBJUFBS T1RPX1RDUDsKKwkJCXRobGVuID0gc2l6ZW9mKHN0cnVjdCB0Y3BoZHIpOwogCQkJYnJlYWs7CiAJ CWNhc2UgVklSVElPX05FVF9IRFJfR1NPX1VEUDoKIAkJCWdzb190eXBlID0gU0tCX0dTT19VRFA7 CisJCQlpcF9wcm90byA9IElQUFJPVE9fVURQOworCQkJdGhsZW4gPSBzaXplb2Yoc3RydWN0IHVk cGhkcik7CiAJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCXJldHVybiAtRUlOVkFMOwpAQCAtNTcs MTYgKzY3LDIyIEBAIHN0YXRpYyBpbmxpbmUgaW50IHZpcnRpb19uZXRfaGRyX3RvX3NrYihzdHJ1 Y3Qgc2tfYnVmZiAqc2tiLAogCiAJCWlmICghc2tiX3BhcnRpYWxfY3N1bV9zZXQoc2tiLCBzdGFy dCwgb2ZmKSkKIAkJCXJldHVybiAtRUlOVkFMOworCisJCWlmIChza2JfdHJhbnNwb3J0X29mZnNl dChza2IpICsgdGhsZW4gPiBza2JfaGVhZGxlbihza2IpKQorCQkJcmV0dXJuIC1FSU5WQUw7CiAJ fSBlbHNlIHsKIAkJLyogZ3NvIHBhY2tldHMgd2l0aG91dCBORUVEU19DU1VNIGRvIG5vdCBzZXQg dHJhbnNwb3J0X29mZnNldC4KIAkJICogcHJvYmUgYW5kIGRyb3AgaWYgZG9lcyBub3QgbWF0Y2gg b25lIG9mIHRoZSBhYm92ZSB0eXBlcy4KIAkJICovCiAJCWlmIChnc29fdHlwZSAmJiBza2ItPm5l dHdvcmtfaGVhZGVyKSB7CisJCQlzdHJ1Y3QgZmxvd19rZXlzX2Jhc2ljIGtleXM7CisKIAkJCWlm ICghc2tiLT5wcm90b2NvbCkKIAkJCQl2aXJ0aW9fbmV0X2hkcl9zZXRfcHJvdG8oc2tiLCBoZHIp OwogcmV0cnk6Ci0JCQlza2JfcHJvYmVfdHJhbnNwb3J0X2hlYWRlcihza2IpOwotCQkJaWYgKCFz a2JfdHJhbnNwb3J0X2hlYWRlcl93YXNfc2V0KHNrYikpIHsKKwkJCWlmICghc2tiX2Zsb3dfZGlz c2VjdF9mbG93X2tleXNfYmFzaWMoTlVMTCwgc2tiLCAma2V5cywKKwkJCQkJCQkgICAgICBOVUxM LCAwLCAwLCAwLAorCQkJCQkJCSAgICAgIDApKSB7CiAJCQkJLyogVUZPIGRvZXMgbm90IHNwZWNp ZnkgaXB2NCBvciA2OiB0cnkgYm90aCAqLwogCQkJCWlmIChnc29fdHlwZSAmIFNLQl9HU09fVURQ ICYmCiAJCQkJICAgIHNrYi0+cHJvdG9jb2wgPT0gaHRvbnMoRVRIX1BfSVApKSB7CkBAIC03NSw2 ICs5MSwxMiBAQCBzdGF0aWMgaW5saW5lIGludCB2aXJ0aW9fbmV0X2hkcl90b19za2Ioc3RydWN0 IHNrX2J1ZmYgKnNrYiwKIAkJCQl9CiAJCQkJcmV0dXJuIC1FSU5WQUw7CiAJCQl9CisKKwkJCWlm IChrZXlzLmNvbnRyb2wudGhvZmYgKyB0aGxlbiA+IHNrYl9oZWFkbGVuKHNrYikgfHwKKwkJCSAg ICBrZXlzLmJhc2ljLmlwX3Byb3RvICE9IGlwX3Byb3RvKQorCQkJCXJldHVybiAtRUlOVkFMOwor CisJCQlza2Jfc2V0X3RyYW5zcG9ydF9oZWFkZXIoc2tiLCBrZXlzLmNvbnRyb2wudGhvZmYpOwog CQl9CiAJfQogCi0tIAoyLjI2LjIKCgpGcm9tIGVjNDRlNDExMGI1Y2NjODZjN2U2ZDI5YjQxODgx ZTliMTZkZGMzYjcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFudGhvbnkgRmVsaWNl IDx0b255LmZlbGljZUB0aW1lc3lzLmNvbT4KRGF0ZTogU3VuLCAyNiBBcHIgMjAyMCAyMjowMDo1 OSAtMDQwMApTdWJqZWN0OiBbUEFUQ0ggMTMvMzFdIG5ldDogdGMzNTgxNTogRml4IHBoeWRldiBz dXBwb3J0ZWQvYWR2ZXJ0aXNpbmcgbWFzawoKWyBVcHN0cmVhbSBjb21taXQgNGI1YjcxZjc3MGUy ZWRlZmJmZTc0MjAzNzc3MjY0YmZlNmE5OTI3YyBdCgpDb21taXQgM2MxYmNjODYxNGRiICgibmV0 OiBldGhlcm5ldDogQ29udmVydCBwaHlkZXYgYWR2ZXJ0aXplIGFuZApzdXBwb3J0ZWQgZnJvbSB1 MzIgdG8gbGluayBtb2RlIikgdXBkYXRlZCBldGhlcm5ldCBkcml2ZXJzIHRvIHVzZSBhCmxpbmtt b2RlIGJpdG1hcC4gSXQgbWlzdGFrZW5seSBkcm9wcGVkIGEgYml0d2lzZSBuZWdhdGlvbiBpbiB0 aGUKdGMzNTgxNSBldGhlcm5ldCBkcml2ZXIgb24gYSBiaXRtYXNrIHRvIHNldCB0aGUgc3VwcG9y dGVkL2FkdmVydGlzaW5nCmZsYWdzLgoKRm91bmQgYnkgQW50aG9ueSB2aWEgY29kZSBpbnNwZWN0 aW9uLCBub3QgdGVzdGVkIGFzIEkgZG8gbm90IGhhdmUgdGhlCnJlcXVpcmVkIGhhcmR3YXJlLgoK Rml4ZXM6IDNjMWJjYzg2MTRkYiAoIm5ldDogZXRoZXJuZXQ6IENvbnZlcnQgcGh5ZGV2IGFkdmVy dGl6ZSBhbmQgc3VwcG9ydGVkIGZyb20gdTMyIHRvIGxpbmsgbW9kZSIpClNpZ25lZC1vZmYtYnk6 IEFudGhvbnkgRmVsaWNlIDx0b255LmZlbGljZUB0aW1lc3lzLmNvbT4KUmV2aWV3ZWQtYnk6IEFr c2hheSBCaGF0IDxha3NoYXkuYmhhdEB0aW1lc3lzLmNvbT4KUmV2aWV3ZWQtYnk6IEhlaW5lciBL YWxsd2VpdCA8aGthbGx3ZWl0MUBnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBBbmRyZXcgTHVubiA8 YW5kcmV3QGx1bm4uY2g+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2 ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC90b3NoaWJhL3RjMzU4MTUuYyB8 IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3Rvc2hpYmEvdGMzNTgxNS5jIGIvZHJpdmVy cy9uZXQvZXRoZXJuZXQvdG9zaGliYS90YzM1ODE1LmMKaW5kZXggMTI0NjZhNzJjZWZjLi5hYWIw Y2Y1N2M2NTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3Rvc2hpYmEvdGMzNTgx NS5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3Rvc2hpYmEvdGMzNTgxNS5jCkBAIC02NDQs NyArNjQ0LDcgQEAgc3RhdGljIGludCB0Y19taWlfcHJvYmUoc3RydWN0IG5ldF9kZXZpY2UgKmRl dikKIAkJbGlua21vZGVfc2V0X2JpdChFVEhUT09MX0xJTktfTU9ERV8xMGJhc2VUX0hhbGZfQklU LCBtYXNrKTsKIAkJbGlua21vZGVfc2V0X2JpdChFVEhUT09MX0xJTktfTU9ERV8xMDBiYXNlVF9I YWxmX0JJVCwgbWFzayk7CiAJfQotCWxpbmttb2RlX2FuZChwaHlkZXYtPnN1cHBvcnRlZCwgcGh5 ZGV2LT5zdXBwb3J0ZWQsIG1hc2spOworCWxpbmttb2RlX2FuZG5vdChwaHlkZXYtPnN1cHBvcnRl ZCwgcGh5ZGV2LT5zdXBwb3J0ZWQsIG1hc2spOwogCWxpbmttb2RlX2NvcHkocGh5ZGV2LT5hZHZl cnRpc2luZywgcGh5ZGV2LT5zdXBwb3J0ZWQpOwogCiAJbHAtPmxpbmsgPSAwOwotLSAKMi4yNi4y CgoKRnJvbSBiNTk3MjdiN2NjMjAyNTljOTg4NTIyZDFlOGQyZDNlZjVlNzE2MGJhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBYaXl1IFlhbmcgPHhpeXV5YW5nMTlAZnVkYW4uZWR1LmNu PgpEYXRlOiBTYXQsIDI1IEFwciAyMDIwIDIwOjU0OjM3ICswODAwClN1YmplY3Q6IFtQQVRDSCAx NC8zMV0gbmV0L3RsczogRml4IHNrX3Bzb2NrIHJlZmNudCBsZWFrIGluCiBicGZfZXhlY190eF92 ZXJkaWN0KCkKClsgVXBzdHJlYW0gY29tbWl0IDA5NWY1NjE0YmZlMTZlNWIzZTE5MWIzNGVhNDFi MTBkNmZkZDRjZWQgXQoKYnBmX2V4ZWNfdHhfdmVyZGljdCgpIGludm9rZXMgc2tfcHNvY2tfZ2V0 KCksIHdoaWNoIHJldHVybnMgYSByZWZlcmVuY2UKb2YgdGhlIHNwZWNpZmllZCBza19wc29jayBv YmplY3QgdG8gInBzb2NrIiB3aXRoIGluY3JlYXNlZCByZWZjbnQuCgpXaGVuIGJwZl9leGVjX3R4 X3ZlcmRpY3QoKSByZXR1cm5zLCBsb2NhbCB2YXJpYWJsZSAicHNvY2siIGJlY29tZXMKaW52YWxp ZCwgc28gdGhlIHJlZmNvdW50IHNob3VsZCBiZSBkZWNyZWFzZWQgdG8ga2VlcCByZWZjb3VudCBi YWxhbmNlZC4KClRoZSByZWZlcmVuY2UgY291bnRpbmcgaXNzdWUgaGFwcGVucyBpbiBvbmUgZXhj ZXB0aW9uIGhhbmRsaW5nIHBhdGggb2YKYnBmX2V4ZWNfdHhfdmVyZGljdCgpLiBXaGVuICJwb2xp Y3kiIGVxdWFscyB0byBOVUxMIGJ1dCAicHNvY2siIGlzIG5vdApOVUxMLCB0aGUgZnVuY3Rpb24g Zm9yZ2V0cyB0byBkZWNyZWFzZSB0aGUgcmVmY250IGluY3JlYXNlZCBieQpza19wc29ja19nZXQo KSwgY2F1c2luZyBhIHJlZmNudCBsZWFrLgoKRml4IHRoaXMgaXNzdWUgYnkgY2FsbGluZyBza19w c29ja19wdXQoKSBvbiB0aGlzIGVycm9yIHBhdGggYmVmb3JlCmJwZl9leGVjX3R4X3ZlcmRpY3Qo KSByZXR1cm5zLgoKU2lnbmVkLW9mZi1ieTogWGl5dSBZYW5nIDx4aXl1eWFuZzE5QGZ1ZGFuLmVk dS5jbj4KU2lnbmVkLW9mZi1ieTogWGluIFRhbiA8dGFueGluLmN0ZkBnbWFpbC5jb20+ClNpZ25l ZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQv dGxzL3Rsc19zdy5jIHwgMiArKwogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKQoKZGlm ZiAtLWdpdCBhL25ldC90bHMvdGxzX3N3LmMgYi9uZXQvdGxzL3Rsc19zdy5jCmluZGV4IDQxZTlj MjkzMmIzNC4uN2U2NDZiMmYwNGFmIDEwMDY0NAotLS0gYS9uZXQvdGxzL3Rsc19zdy5jCisrKyBi L25ldC90bHMvdGxzX3N3LmMKQEAgLTc5Nyw2ICs3OTcsOCBAQCBzdGF0aWMgaW50IGJwZl9leGVj X3R4X3ZlcmRpY3Qoc3RydWN0IHNrX21zZyAqbXNnLCBzdHJ1Y3Qgc29jayAqc2ssCiAJCQkqY29w aWVkIC09IHNrX21zZ19mcmVlKHNrLCBtc2cpOwogCQkJdGxzX2ZyZWVfb3Blbl9yZWMoc2spOwog CQl9CisJCWlmIChwc29jaykKKwkJCXNrX3Bzb2NrX3B1dChzaywgcHNvY2spOwogCQlyZXR1cm4g ZXJyOwogCX0KIG1vcmVfZGF0YToKLS0gCjIuMjYuMgoKCkZyb20gYjI4ODUwYTE5ZTYxZGQwN2E3 YzM0Y2FjOTA5NDFmMjFiYzgyNzk1MiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogWGl5 dSBZYW5nIDx4aXl1eWFuZzE5QGZ1ZGFuLmVkdS5jbj4KRGF0ZTogU2F0LCAyNSBBcHIgMjAyMCAy MToxMDoyMyArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMTUvMzFdIG5ldC90bHM6IEZpeCBza19wc29j ayByZWZjbnQgbGVhayB3aGVuIGluCiB0bHNfZGF0YV9yZWFkeSgpCgpbIFVwc3RyZWFtIGNvbW1p dCA2MmI0MDExZmE3YmVmOWZhMDBhNmFlZWMyNmU2OTY4NWRjMWNjMjFlIF0KCnRsc19kYXRhX3Jl YWR5KCkgaW52b2tlcyBza19wc29ja19nZXQoKSwgd2hpY2ggcmV0dXJucyBhIHJlZmVyZW5jZSBv Zgp0aGUgc3BlY2lmaWVkIHNrX3Bzb2NrIG9iamVjdCB0byAicHNvY2siIHdpdGggaW5jcmVhc2Vk IHJlZmNudC4KCldoZW4gdGxzX2RhdGFfcmVhZHkoKSByZXR1cm5zLCBsb2NhbCB2YXJpYWJsZSAi cHNvY2siIGJlY29tZXMgaW52YWxpZCwKc28gdGhlIHJlZmNvdW50IHNob3VsZCBiZSBkZWNyZWFz ZWQgdG8ga2VlcCByZWZjb3VudCBiYWxhbmNlZC4KClRoZSByZWZlcmVuY2UgY291bnRpbmcgaXNz dWUgaGFwcGVucyBpbiBvbmUgZXhjZXB0aW9uIGhhbmRsaW5nIHBhdGggb2YKdGxzX2RhdGFfcmVh ZHkoKS4gV2hlbiAicHNvY2stPmluZ3Jlc3NfbXNnIiBpcyBlbXB0eSBidXQgInBzb2NrIiBpcyBu b3QKTlVMTCwgdGhlIGZ1bmN0aW9uIGZvcmdldHMgdG8gZGVjcmVhc2UgdGhlIHJlZmNudCBpbmNy ZWFzZWQgYnkKc2tfcHNvY2tfZ2V0KCksIGNhdXNpbmcgYSByZWZjbnQgbGVhay4KCkZpeCB0aGlz IGlzc3VlIGJ5IGNhbGxpbmcgc2tfcHNvY2tfcHV0KCkgb24gYWxsIHBhdGhzIHdoZW4gInBzb2Nr IiBpcwpub3QgTlVMTC4KClNpZ25lZC1vZmYtYnk6IFhpeXUgWWFuZyA8eGl5dXlhbmcxOUBmdWRh bi5lZHUuY24+ClNpZ25lZC1vZmYtYnk6IFhpbiBUYW4gPHRhbnhpbi5jdGZAZ21haWwuY29tPgpT aWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQog bmV0L3Rscy90bHNfc3cuYyB8IDUgKysrLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMo KyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3Rscy90bHNfc3cuYyBiL25ldC90 bHMvdGxzX3N3LmMKaW5kZXggN2U2NDZiMmYwNGFmLi41NTEzYTA4YTQzMDggMTAwNjQ0Ci0tLSBh L25ldC90bHMvdGxzX3N3LmMKKysrIGIvbmV0L3Rscy90bHNfc3cuYwpAQCAtMjA3OCw4ICsyMDc4 LDkgQEAgc3RhdGljIHZvaWQgdGxzX2RhdGFfcmVhZHkoc3RydWN0IHNvY2sgKnNrKQogCXN0cnBf ZGF0YV9yZWFkeSgmY3R4LT5zdHJwKTsKIAogCXBzb2NrID0gc2tfcHNvY2tfZ2V0KHNrKTsKLQlp ZiAocHNvY2sgJiYgIWxpc3RfZW1wdHkoJnBzb2NrLT5pbmdyZXNzX21zZykpIHsKLQkJY3R4LT5z YXZlZF9kYXRhX3JlYWR5KHNrKTsKKwlpZiAocHNvY2spIHsKKwkJaWYgKCFsaXN0X2VtcHR5KCZw c29jay0+aW5ncmVzc19tc2cpKQorCQkJY3R4LT5zYXZlZF9kYXRhX3JlYWR5KHNrKTsKIAkJc2tf cHNvY2tfcHV0KHNrLCBwc29jayk7CiAJfQogfQotLSAKMi4yNi4yCgoKRnJvbSA0ZWUwMmMxOGFh ZjJhZjIzY2UzY2JiODI1NmFhNjM1YTgwMWNkYTQ0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBNYXR0IEpvbGx5IDxLYW5naWVAZm9vdGNsYW4ubmluamE+CkRhdGU6IFN1biwgMyBNYXkg MjAyMCAwMTo1MjoyOCArMTAwMApTdWJqZWN0OiBbUEFUQ0ggMTYvMzFdIG5ldDogdXNiOiBxbWlf d3dhbjogYWRkIHN1cHBvcnQgZm9yIERXNTgxNmUKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1U eXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6 IDhiaXQKClsgVXBzdHJlYW0gY29tbWl0IDU3YzdmMmJkNzU4ZWVkODY3Mjk1YzgxZDM1MjdmZmY0 ZmFiMWVkNzQgXQoKQWRkIHN1cHBvcnQgZm9yIERlbGwgV2lyZWxlc3MgNTgxNmUgdG8gZHJpdmVy cy9uZXQvdXNiL3FtaV93d2FuLmMKClNpZ25lZC1vZmYtYnk6IE1hdHQgSm9sbHkgPEthbmdpZUBm b290Y2xhbi5uaW5qYT4KQWNrZWQtYnk6IEJqw7hybiBNb3JrIDxiam9ybkBtb3JrLm5vPgpTaWdu ZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJp dmVycy9uZXQvdXNiL3FtaV93d2FuLmMgfCAxICsKIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlv bigrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3VzYi9xbWlfd3dhbi5jIGIvZHJpdmVycy9u ZXQvdXNiL3FtaV93d2FuLmMKaW5kZXggNmM3MzhhMjcxMjU3Li40YmI4NTUyYTAwZDMgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvbmV0L3VzYi9xbWlfd3dhbi5jCisrKyBiL2RyaXZlcnMvbmV0L3VzYi9x bWlfd3dhbi5jCkBAIC0xMzU5LDYgKzEzNTksNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHVzYl9k ZXZpY2VfaWQgcHJvZHVjdHNbXSA9IHsKIAl7UU1JX0ZJWEVEX0lOVEYoMHg0MTNjLCAweDgxYjMs IDgpfSwJLyogRGVsbCBXaXJlbGVzcyA1ODA5ZSBHb2JpKFRNKSA0RyBMVEUgTW9iaWxlIEJyb2Fk YmFuZCBDYXJkIChyZXYzKSAqLwogCXtRTUlfRklYRURfSU5URigweDQxM2MsIDB4ODFiNiwgOCl9 LAkvKiBEZWxsIFdpcmVsZXNzIDU4MTFlICovCiAJe1FNSV9GSVhFRF9JTlRGKDB4NDEzYywgMHg4 MWI2LCAxMCl9LAkvKiBEZWxsIFdpcmVsZXNzIDU4MTFlICovCisJe1FNSV9GSVhFRF9JTlRGKDB4 NDEzYywgMHg4MWNjLCA4KX0sCS8qIERlbGwgV2lyZWxlc3MgNTgxNmUgKi8KIAl7UU1JX0ZJWEVE X0lOVEYoMHg0MTNjLCAweDgxZDcsIDApfSwJLyogRGVsbCBXaXJlbGVzcyA1ODIxZSAqLwogCXtR TUlfRklYRURfSU5URigweDQxM2MsIDB4ODFkNywgMSl9LAkvKiBEZWxsIFdpcmVsZXNzIDU4MjFl IHByZXByb2R1Y3Rpb24gY29uZmlnICovCiAJe1FNSV9GSVhFRF9JTlRGKDB4NDEzYywgMHg4MWUw LCAwKX0sCS8qIERlbGwgV2lyZWxlc3MgNTgyMWUgd2l0aCBlU0lNIHN1cHBvcnQqLwotLSAKMi4y Ni4yCgoKRnJvbSBkNzdjNjg1MTY0MGNjZWExMzQwZTRiZjgyZDEzMTU5MTI4YWEyMmQ4IE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBRaXVzaGkgV3UgPHd1MDAwMjczQHVtbi5lZHU+CkRh dGU6IFNhdCwgMiBNYXkgMjAyMCAxNzo0Mjo1OSAtMDUwMApTdWJqZWN0OiBbUEFUQ0ggMTcvMzFd IG5mcDogYWJtOiBmaXggYSBtZW1vcnkgbGVhayBidWcKClsgVXBzdHJlYW0gY29tbWl0IGJkNGFm NDMyY2M3MWI1ZmJmZTQ4MzM1MTAzNTlhNmFkM2FkYTI1MGQgXQoKSW4gZnVuY3Rpb24gbmZwX2Fi bV92bmljX3NldF9tYWMsIHBvaW50ZXIgbnNwIGlzIGFsbG9jYXRlZCBieSBuZnBfbnNwX29wZW4u CkJ1dCB3aGVuIG5mcF9uc3BfaGFzX2h3aW5mb19sb29rdXAgZmFpbCwgdGhlIHBvaW50ZXIgaXMg bm90IHJlbGVhc2VkLAp3aGljaCBjYW4gbGVhZCB0byBhIG1lbW9yeSBsZWFrIGJ1Zy4gRml4IHRo aXMgaXNzdWUgYnkgYWRkaW5nCm5mcF9uc3BfY2xvc2UobnNwKSBpbiB0aGUgZXJyb3IgcGF0aC4K CkZpeGVzOiBmNmU3MWVmZGY5ZmIxICgibmZwOiBhYm06IGxvb2sgdXAgTUFDIGFkZHJlc3NlcyB2 aWEgbWFuYWdlbWVudCBGVyIpClNpZ25lZC1vZmYtYnk6IFFpdXNoaSBXdSA8d3UwMDAyNzNAdW1u LmVkdT4KQWNrZWQtYnk6IEpha3ViIEtpY2luc2tpIDxrdWJhQGtlcm5lbC5vcmc+ClNpZ25lZC1v ZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJz L25ldC9ldGhlcm5ldC9uZXRyb25vbWUvbmZwL2FibS9tYWluLmMgfCAxICsKIDEgZmlsZSBjaGFu Z2VkLCAxIGluc2VydGlvbigrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L25l dHJvbm9tZS9uZnAvYWJtL21haW4uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L25ldHJvbm9tZS9u ZnAvYWJtL21haW4uYwppbmRleCA5MTgzYjNlODVkMjEuLjM1NGVmZmZhYzBmOSAxMDA2NDQKLS0t IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbmV0cm9ub21lL25mcC9hYm0vbWFpbi5jCisrKyBiL2Ry aXZlcnMvbmV0L2V0aGVybmV0L25ldHJvbm9tZS9uZnAvYWJtL21haW4uYwpAQCAtMjgzLDYgKzI4 Myw3IEBAIG5mcF9hYm1fdm5pY19zZXRfbWFjKHN0cnVjdCBuZnBfcGYgKnBmLCBzdHJ1Y3QgbmZw X2FibSAqYWJtLCBzdHJ1Y3QgbmZwX25ldCAqbm4sCiAJaWYgKCFuZnBfbnNwX2hhc19od2luZm9f bG9va3VwKG5zcCkpIHsKIAkJbmZwX3dhcm4ocGYtPmNwcCwgIk5TUCBkb2Vzbid0IHN1cHBvcnQg UEYgTUFDIGdlbmVyYXRpb25cbiIpOwogCQlldGhfaHdfYWRkcl9yYW5kb20obm4tPmRwLm5ldGRl dik7CisJCW5mcF9uc3BfY2xvc2UobnNwKTsKIAkJcmV0dXJuOwogCX0KIAotLSAKMi4yNi4yCgoK RnJvbSA5ZDVlOWMyYTI4MmIyYTIwNGI2OGJlMGQ5NzBkNTk0ODAwNzcyYTRlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkRh dGU6IFNhdCwgMjUgQXByIDIwMjAgMTU6MTk6NTEgLTA3MDAKU3ViamVjdDogW1BBVENIIDE4LzMx XSBzY2hfY2hva2U6IGF2b2lkIHBvdGVudGlhbCBwYW5pYyBpbiBjaG9rZV9yZXNldCgpCgpbIFVw c3RyZWFtIGNvbW1pdCA4NzM4Yzg1YzcyYjMxMDhjOWI5YTM2OWEzOTg2OGJhNWY4ZTEwYWUwIF0K CklmIGNob2tlX2luaXQoKSBjb3VsZCBub3QgYWxsb2NhdGUgcS0+dGFiLCB3ZSB3b3VsZCBjcmFz aCBsYXRlcgppbiBjaG9rZV9yZXNldCgpLgoKQlVHOiBLQVNBTjogbnVsbC1wdHItZGVyZWYgaW4g bWVtc2V0IGluY2x1ZGUvbGludXgvc3RyaW5nLmg6MzY2IFtpbmxpbmVdCkJVRzogS0FTQU46IG51 bGwtcHRyLWRlcmVmIGluIGNob2tlX3Jlc2V0KzB4MjA4LzB4MzQwIG5ldC9zY2hlZC9zY2hfY2hv a2UuYzozMjYKV3JpdGUgb2Ygc2l6ZSA4IGF0IGFkZHIgMDAwMDAwMDAwMDAwMDAwMCBieSB0YXNr IHN5ei1leGVjdXRvcjgyMi83MDIyCgpDUFU6IDEgUElEOiA3MDIyIENvbW06IHN5ei1leGVjdXRv cjgyMiBOb3QgdGFpbnRlZCA1LjcuMC1yYzEtc3l6a2FsbGVyICMwCkhhcmR3YXJlIG5hbWU6IEdv b2dsZSBHb29nbGUgQ29tcHV0ZSBFbmdpbmUvR29vZ2xlIENvbXB1dGUgRW5naW5lLCBCSU9TIEdv b2dsZSAwMS8wMS8yMDExCkNhbGwgVHJhY2U6CiBfX2R1bXBfc3RhY2sgbGliL2R1bXBfc3RhY2su Yzo3NyBbaW5saW5lXQogZHVtcF9zdGFjaysweDE4OC8weDIwZCBsaWIvZHVtcF9zdGFjay5jOjEx OAogX19rYXNhbl9yZXBvcnQuY29sZCsweDUvMHg0ZCBtbS9rYXNhbi9yZXBvcnQuYzo1MTUKIGth c2FuX3JlcG9ydCsweDMzLzB4NTAgbW0va2FzYW4vY29tbW9uLmM6NjI1CiBjaGVja19tZW1vcnlf cmVnaW9uX2lubGluZSBtbS9rYXNhbi9nZW5lcmljLmM6MTg3IFtpbmxpbmVdCiBjaGVja19tZW1v cnlfcmVnaW9uKzB4MTQxLzB4MTkwIG1tL2thc2FuL2dlbmVyaWMuYzoxOTMKIG1lbXNldCsweDIw LzB4NDAgbW0va2FzYW4vY29tbW9uLmM6ODUKIG1lbXNldCBpbmNsdWRlL2xpbnV4L3N0cmluZy5o OjM2NiBbaW5saW5lXQogY2hva2VfcmVzZXQrMHgyMDgvMHgzNDAgbmV0L3NjaGVkL3NjaF9jaG9r ZS5jOjMyNgogcWRpc2NfcmVzZXQrMHg2Yi8weDUyMCBuZXQvc2NoZWQvc2NoX2dlbmVyaWMuYzo5 MTAKIGRldl9kZWFjdGl2YXRlX3F1ZXVlLmNvbnN0cHJvcC4wKzB4MTNjLzB4MjQwIG5ldC9zY2hl ZC9zY2hfZ2VuZXJpYy5jOjExMzgKIG5ldGRldl9mb3JfZWFjaF90eF9xdWV1ZSBpbmNsdWRlL2xp bnV4L25ldGRldmljZS5oOjIxOTcgW2lubGluZV0KIGRldl9kZWFjdGl2YXRlX21hbnkrMHhlMi8w eGJhMCBuZXQvc2NoZWQvc2NoX2dlbmVyaWMuYzoxMTk1CiBkZXZfZGVhY3RpdmF0ZSsweGY4LzB4 MWMwIG5ldC9zY2hlZC9zY2hfZ2VuZXJpYy5jOjEyMzMKIHFkaXNjX2dyYWZ0KzB4ZDI1LzB4MTEy MCBuZXQvc2NoZWQvc2NoX2FwaS5jOjEwNTEKIHRjX21vZGlmeV9xZGlzYysweGJhYi8weDFhMDAg bmV0L3NjaGVkL3NjaF9hcGkuYzoxNjcwCiBydG5ldGxpbmtfcmN2X21zZysweDQ0ZS8weGFkMCBu ZXQvY29yZS9ydG5ldGxpbmsuYzo1NDU0CiBuZXRsaW5rX3Jjdl9za2IrMHgxNWEvMHg0MTAgbmV0 L25ldGxpbmsvYWZfbmV0bGluay5jOjI0NjkKIG5ldGxpbmtfdW5pY2FzdF9rZXJuZWwgbmV0L25l dGxpbmsvYWZfbmV0bGluay5jOjEzMDMgW2lubGluZV0KIG5ldGxpbmtfdW5pY2FzdCsweDUzNy8w eDc0MCBuZXQvbmV0bGluay9hZl9uZXRsaW5rLmM6MTMyOQogbmV0bGlua19zZW5kbXNnKzB4ODgy LzB4ZTEwIG5ldC9uZXRsaW5rL2FmX25ldGxpbmsuYzoxOTE4CiBzb2NrX3NlbmRtc2dfbm9zZWMg bmV0L3NvY2tldC5jOjY1MiBbaW5saW5lXQogc29ja19zZW5kbXNnKzB4Y2YvMHgxMjAgbmV0L3Nv Y2tldC5jOjY3MgogX19fX3N5c19zZW5kbXNnKzB4NmJmLzB4N2UwIG5ldC9zb2NrZXQuYzoyMzYy CiBfX19zeXNfc2VuZG1zZysweDEwMC8weDE3MCBuZXQvc29ja2V0LmM6MjQxNgogX19zeXNfc2Vu ZG1zZysweGVjLzB4MWIwIG5ldC9zb2NrZXQuYzoyNDQ5CiBkb19zeXNjYWxsXzY0KzB4ZjYvMHg3 ZDAgYXJjaC94ODYvZW50cnkvY29tbW9uLmM6Mjk1CgpGaXhlczogNzdlNjJkYTZlNjBjICgic2No X2Nob2tlOiBkcm9wIGFsbCBwYWNrZXRzIGluIHF1ZXVlIGR1cmluZyByZXNldCIpClNpZ25lZC1v ZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KUmVwb3J0ZWQtYnk6IHN5 emJvdCA8c3l6a2FsbGVyQGdvb2dsZWdyb3Vwcy5jb20+CkNjOiBDb25nIFdhbmcgPHhpeW91Lndh bmdjb25nQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBk YXZlbWxvZnQubmV0PgotLS0KIG5ldC9zY2hlZC9zY2hfY2hva2UuYyB8IDMgKystCiAxIGZpbGUg Y2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0 L3NjaGVkL3NjaF9jaG9rZS5jIGIvbmV0L3NjaGVkL3NjaF9jaG9rZS5jCmluZGV4IGRiYTcwMzc3 YmJkOS4uNDAyMWY3MjZiNThmIDEwMDY0NAotLS0gYS9uZXQvc2NoZWQvc2NoX2Nob2tlLmMKKysr IGIvbmV0L3NjaGVkL3NjaF9jaG9rZS5jCkBAIC0zMjMsNyArMzIzLDggQEAgc3RhdGljIHZvaWQg Y2hva2VfcmVzZXQoc3RydWN0IFFkaXNjICpzY2gpCiAKIAlzY2gtPnEucWxlbiA9IDA7CiAJc2No LT5xc3RhdHMuYmFja2xvZyA9IDA7Ci0JbWVtc2V0KHEtPnRhYiwgMCwgKHEtPnRhYl9tYXNrICsg MSkgKiBzaXplb2Yoc3RydWN0IHNrX2J1ZmYgKikpOworCWlmIChxLT50YWIpCisJCW1lbXNldChx LT50YWIsIDAsIChxLT50YWJfbWFzayArIDEpICogc2l6ZW9mKHN0cnVjdCBza19idWZmICopKTsK IAlxLT5oZWFkID0gcS0+dGFpbCA9IDA7CiAJcmVkX3Jlc3RhcnQoJnEtPnZhcnMpOwogfQotLSAK Mi4yNi4yCgoKRnJvbSBlYzNhYTcyM2Y0NmFjMWM2NGJkOTk3ZDYyMzZjMzkyYTkwMDU4NzA4IE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2ds ZS5jb20+CkRhdGU6IFN1biwgMjYgQXByIDIwMjAgMTg6MTk6MDcgLTA3MDAKU3ViamVjdDogW1BB VENIIDE5LzMxXSBzY2hfc2ZxOiB2YWxpZGF0ZSBzaWxseSBxdWFudHVtIHZhbHVlcwoKWyBVcHN0 cmVhbSBjb21taXQgZGY0OTUzZTRlOTk3ZTI3MzUwMTMzOWY2MDdiNzc5NTM3NzJlMzU1OSBdCgpz eXpib3QgbWFuYWdlZCB0byBzZXQgdXAgc2ZxIHNvIHRoYXQgcS0+c2NhbGVkX3F1YW50dW0gd2Fz IHplcm8sCnRyaWdnZXJpbmcgYW4gaW5maW5pdGUgbG9vcCBpbiBzZnFfZGVxdWV1ZSgpCgpNb3Jl IGdlbmVyYWxseSwgd2UgbXVzdCBvbmx5IGFjY2VwdCBxdWFudHVtIGJldHdlZW4gMSBhbmQgMl4x OCAtIDcsCm1lYW5pbmcgc2NhbGVkX3F1YW50dW0gbXVzdCBiZSBpbiBbMSwgMHg3RkZGXSByYW5n ZS4KCk90aGVyd2lzZSwgd2UgYWxzbyBjb3VsZCBoYXZlIGEgbG9vcCBpbiBzZnFfZGVxdWV1ZSgp CmlmIHNjYWxlZF9xdWFudHVtIGhhcHBlbnMgdG8gYmUgMHg4MDAwLCBzaW5jZSBzbG90LT5hbGxv dApjb3VsZCBpbmRlZmluaXRlbHkgc3dpdGNoIGJldHdlZW4gMCBhbmQgMHg4MDAwLgoKRml4ZXM6 IGVlYWViMDY4ZjEzOSAoInNjaF9zZnE6IGFsbG93IGJpZyBwYWNrZXRzIGFuZCBiZSBmYWlyIikK U2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpSZXBvcnRl ZC1ieTogc3l6Ym90KzAyNTFlODgzZmUzOWU3YTBjYjBhQHN5emthbGxlci5hcHBzcG90bWFpbC5j b20KQ2M6IEphc29uIEEuIERvbmVuZmVsZCA8SmFzb25AengyYzQuY29tPgpTaWduZWQtb2ZmLWJ5 OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3NjaGVkL3Nj aF9zZnEuYyB8IDkgKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspCgpk aWZmIC0tZ2l0IGEvbmV0L3NjaGVkL3NjaF9zZnEuYyBiL25ldC9zY2hlZC9zY2hfc2ZxLmMKaW5k ZXggYzc4N2Q0ZDQ2MDE3Li41YTZkZWY1ZTRlNmQgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9zY2hf c2ZxLmMKKysrIGIvbmV0L3NjaGVkL3NjaF9zZnEuYwpAQCAtNjM3LDYgKzYzNywxNSBAQCBzdGF0 aWMgaW50IHNmcV9jaGFuZ2Uoc3RydWN0IFFkaXNjICpzY2gsIHN0cnVjdCBubGF0dHIgKm9wdCkK IAlpZiAoY3RsLT5kaXZpc29yICYmCiAJICAgICghaXNfcG93ZXJfb2ZfMihjdGwtPmRpdmlzb3Ip IHx8IGN0bC0+ZGl2aXNvciA+IDY1NTM2KSkKIAkJcmV0dXJuIC1FSU5WQUw7CisKKwkvKiBzbG90 LT5hbGxvdCBpcyBhIHNob3J0LCBtYWtlIHN1cmUgcXVhbnR1bSBpcyBub3QgdG9vIGJpZy4gKi8K KwlpZiAoY3RsLT5xdWFudHVtKSB7CisJCXVuc2lnbmVkIGludCBzY2FsZWQgPSBTRlFfQUxMT1Rf U0laRShjdGwtPnF1YW50dW0pOworCisJCWlmIChzY2FsZWQgPD0gMCB8fCBzY2FsZWQgPiBTSFJU X01BWCkKKwkJCXJldHVybiAtRUlOVkFMOworCX0KKwogCWlmIChjdGxfdjEgJiYgIXJlZF9jaGVj a19wYXJhbXMoY3RsX3YxLT5xdGhfbWluLCBjdGxfdjEtPnF0aF9tYXgsCiAJCQkJCWN0bF92MS0+ V2xvZykpCiAJCXJldHVybiAtRUlOVkFMOwotLSAKMi4yNi4yCgoKRnJvbSBlMzg2MzYwMTE2Mjc1 MjE0MzEwZGE4ZTBhNGVhNTljZTYxMTZhN2Y1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBUdW9uZyBMaWVuIDx0dW9uZy50LmxpZW5AZGVrdGVjaC5jb20uYXU+CkRhdGU6IE1vbiwgNCBN YXkgMjAyMCAxMToxNTo1NCArMDcwMApTdWJqZWN0OiBbUEFUQ0ggMjAvMzFdIHRpcGM6IGZpeCBw YXJ0aWFsIHRvcG9sb2d5IGNvbm5lY3Rpb24gY2xvc3VyZQoKWyBVcHN0cmVhbSBjb21taXQgOTgw ZDY5Mjc2ZjMwNDhhZjQzYTA0NWJlMjkyNWRhY2ZiODk4YTdiZSBdCgpXaGVuIGFuIGFwcGxpY2F0 aW9uIGNvbm5lY3RzIHRvIHRoZSBUSVBDIHRvcG9sb2d5IHNlcnZlciBhbmQgc3Vic2NyaWJlcwp0 byBzb21lIHNlcnZpY2VzLCBhIG5ldyBjb25uZWN0aW9uIGlzIGNyZWF0ZWQgYWxvbmcgd2l0aCBz b21lIG9iamVjdHMgLQondGlwY19zdWJzY3JpcHRpb24nIHRvIHN0b3JlIHJlbGF0ZWQgZGF0YSBj b3JyZXNwb25kaW5nbHkuLi4KSG93ZXZlciwgdGhlcmUgaXMgb25lIG9taXNzaW9uIGluIHRoZSBj b25uZWN0aW9uIGhhbmRsaW5nIHRoYXQgd2hlbiB0aGUKY29ubmVjdGlvbiBvciBhcHBsaWNhdGlv biBpcyBvcmRlcmx5IHNodXRkb3duIChlLmcuIHZpYSBTSUdRVUlULCBldGMuKSwKdGhlIGNvbm5l Y3Rpb24gaXMgbm90IGNsb3NlZCBpbiBrZXJuZWwsIHRoZSAndGlwY19zdWJzY3JpcHRpb24nIG9i amVjdHMKYXJlIG5vdCBmcmVlZCB0b28uClRoaXMgcmVzdWx0cyBpbjoKLSBUaGUgbWF4aW11bSBu dW1iZXIgb2Ygc3Vic2NyaXB0aW9ucyAoNjU1MzUpIHdpbGwgYmUgcmVhY2hlZCBzb29uLCBuZXcK c3Vic2NyaXB0aW9ucyB3aWxsIGJlIHJlamVjdGVkOwotIFRJUEMgbW9kdWxlIGNhbm5vdCBiZSBy ZW1vdmVkICh1bmxlc3MgdGhlIG9iamVjdHMgIGFyZSBzb21laG93IGZvcmNlZAp0byByZWxlYXNl IGZpcnN0KTsKClRoZSBjb21taXQgZml4ZXMgdGhlIGlzc3VlIGJ5IGNsb3NpbmcgdGhlIGNvbm5l Y3Rpb24gaWYgdGhlICdyZWN2bXNnKCknCnJldHVybnMgJzAnIGkuZS4gd2hlbiB0aGUgcGVlciBp cyBzaHV0ZG93biBncmFjZWZ1bGx5LiBJdCBhbHNvIGluY2x1ZGVzCnRoZSBvdGhlciB1bmV4cGVj dGVkIGNhc2VzLgoKQWNrZWQtYnk6IEpvbiBNYWxveSA8am1hbG95QHJlZGhhdC5jb20+CkFja2Vk LWJ5OiBZaW5nIFh1ZSA8eWluZy54dWVAd2luZHJpdmVyLmNvbT4KU2lnbmVkLW9mZi1ieTogVHVv bmcgTGllbiA8dHVvbmcudC5saWVuQGRla3RlY2guY29tLmF1PgpTaWduZWQtb2ZmLWJ5OiBEYXZp ZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3RpcGMvdG9wc3J2LmMg fCA1ICsrKy0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL25ldC90aXBjL3RvcHNydi5jIGIvbmV0L3RpcGMvdG9wc3J2LmMKaW5k ZXggM2ExMmZjMTgyMzliLi43M2RiZWQwYzRiNmIgMTAwNjQ0Ci0tLSBhL25ldC90aXBjL3RvcHNy di5jCisrKyBiL25ldC90aXBjL3RvcHNydi5jCkBAIC00MDIsMTAgKzQwMiwxMSBAQCBzdGF0aWMg aW50IHRpcGNfY29ubl9yY3ZfZnJvbV9zb2NrKHN0cnVjdCB0aXBjX2Nvbm4gKmNvbikKIAkJcmVh ZF9sb2NrX2JoKCZzay0+c2tfY2FsbGJhY2tfbG9jayk7CiAJCXJldCA9IHRpcGNfY29ubl9yY3Zf c3ViKHNydiwgY29uLCAmcyk7CiAJCXJlYWRfdW5sb2NrX2JoKCZzay0+c2tfY2FsbGJhY2tfbG9j ayk7CisJCWlmICghcmV0KQorCQkJcmV0dXJuIDA7CiAJfQotCWlmIChyZXQgPCAwKQotCQl0aXBj X2Nvbm5fY2xvc2UoY29uKTsKIAorCXRpcGNfY29ubl9jbG9zZShjb24pOwogCXJldHVybiByZXQ7 CiB9CiAKLS0gCjIuMjYuMgoKCkZyb20gZDA3ZWRkMWI5YjAxN2JmMWFjZGM5Y2I0ZDIzZjk5NGFm YjE5OGUwOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xP1Rva2U9MjBI PUMzPUI4aWxhbmQtSj1DMz1COHJnZW5zZW4/PSA8dG9rZUByZWRoYXQuY29tPgpEYXRlOiBNb24s IDI3IEFwciAyMDIwIDE2OjExOjA1ICswMjAwClN1YmplY3Q6IFtQQVRDSCAyMS8zMV0gdHVubmVs OiBQcm9wYWdhdGUgRUNUKDEpIHdoZW4gZGVjYXBzdWxhdGluZyBhcwogcmVjb21tZW5kZWQgYnkg UkZDNjA0MApNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJz ZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAoKWyBVcHN0cmVhbSBjb21t aXQgYjcyMzc0ODc1MGVjZTdkODQ0Y2RmMmY1MmMwMWQzN2Y4MzM4NzIwOCBdCgpSRkMgNjA0MCBy ZWNvbW1lbmRzIHByb3BhZ2F0aW5nIGFuIEVDVCgxKSBtYXJrIGZyb20gYW4gb3V0ZXIgdHVubmVs IGhlYWRlcgp0byB0aGUgaW5uZXIgaGVhZGVyIGlmIHRoYXQgaW5uZXIgaGVhZGVyIGlzIGFscmVh ZHkgbWFya2VkIGFzIEVDVCgwKS4gV2hlbgpSRkMgNjA0MCBkZWNhcHN1bGF0aW9uIHdhcyBpbXBs ZW1lbnRlZCwgdGhpcyBjYXNlIG9mIHByb3BhZ2F0aW9uIHdhcyBub3QKYWRkZWQuIFRoaXMgc2lt cGx5IGFwcGVhcnMgdG8gYmUgYW4gb3ZlcnNpZ2h0LCBzbyBsZXQncyBmaXggdGhhdC4KCkZpeGVz OiBlY2NjMWJiOGQ0YjQgKCJ0dW5uZWw6IGRyb3AgcGFja2V0IGlmIEVDTiBwcmVzZW50IHdpdGgg bm90LUVDVCIpClJlcG9ydGVkLWJ5OiBCb2IgQnJpc2NvZSA8aWV0ZkBib2JicmlzY29lLm5ldD4K UmVwb3J0ZWQtYnk6IE9saXZpZXIgVGlsbWFucyA8b2xpdmllci50aWxtYW5zQG5va2lhLWJlbGwt bGFicy5jb20+CkNjOiBEYXZlIFRhaHQgPGRhdmUudGFodEBnbWFpbC5jb20+CkNjOiBTdGVwaGVu IEhlbW1pbmdlciA8c3RlcGhlbkBuZXR3b3JrcGx1bWJlci5vcmc+ClNpZ25lZC1vZmYtYnk6IFRv a2UgSMO4aWxhbmQtSsO4cmdlbnNlbiA8dG9rZUByZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBE YXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogaW5jbHVkZS9uZXQvaW5l dF9lY24uaCB8IDU3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLQog MSBmaWxlIGNoYW5nZWQsIDU1IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvaW5jbHVkZS9uZXQvaW5ldF9lY24uaCBiL2luY2x1ZGUvbmV0L2luZXRfZWNuLmgKaW5k ZXggYzhlMmJlYmQ4ZDkzLi4wZjBkMWVmZTA2ZGQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L2lu ZXRfZWNuLmgKKysrIGIvaW5jbHVkZS9uZXQvaW5ldF9lY24uaApAQCAtOTksNiArOTksMjAgQEAg c3RhdGljIGlubGluZSBpbnQgSVBfRUNOX3NldF9jZShzdHJ1Y3QgaXBoZHIgKmlwaCkKIAlyZXR1 cm4gMTsKIH0KIAorc3RhdGljIGlubGluZSBpbnQgSVBfRUNOX3NldF9lY3QxKHN0cnVjdCBpcGhk ciAqaXBoKQoreworCXUzMiBjaGVjayA9IChfX2ZvcmNlIHUzMilpcGgtPmNoZWNrOworCisJaWYg KChpcGgtPnRvcyAmIElORVRfRUNOX01BU0spICE9IElORVRfRUNOX0VDVF8wKQorCQlyZXR1cm4g MDsKKworCWNoZWNrICs9IChfX2ZvcmNlIHUxNilodG9ucygweDEwMCk7CisKKwlpcGgtPmNoZWNr ID0gKF9fZm9yY2UgX19zdW0xNikoY2hlY2sgKyAoY2hlY2s+PTB4RkZGRikpOworCWlwaC0+dG9z IF49IElORVRfRUNOX01BU0s7CisJcmV0dXJuIDE7Cit9CisKIHN0YXRpYyBpbmxpbmUgdm9pZCBJ UF9FQ05fY2xlYXIoc3RydWN0IGlwaGRyICppcGgpCiB7CiAJaXBoLT50b3MgJj0gfklORVRfRUNO X01BU0s7CkBAIC0xMzQsNiArMTQ4LDIyIEBAIHN0YXRpYyBpbmxpbmUgaW50IElQNl9FQ05fc2V0 X2NlKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBpcHY2aGRyICppcGgpCiAJcmV0dXJuIDE7 CiB9CiAKK3N0YXRpYyBpbmxpbmUgaW50IElQNl9FQ05fc2V0X2VjdDEoc3RydWN0IHNrX2J1ZmYg KnNrYiwgc3RydWN0IGlwdjZoZHIgKmlwaCkKK3sKKwlfX2JlMzIgZnJvbSwgdG87CisKKwlpZiAo KGlwdjZfZ2V0X2RzZmllbGQoaXBoKSAmIElORVRfRUNOX01BU0spICE9IElORVRfRUNOX0VDVF8w KQorCQlyZXR1cm4gMDsKKworCWZyb20gPSAqKF9fYmUzMiAqKWlwaDsKKwl0byA9IGZyb20gXiBo dG9ubChJTkVUX0VDTl9NQVNLIDw8IDIwKTsKKwkqKF9fYmUzMiAqKWlwaCA9IHRvOworCWlmIChz a2ItPmlwX3N1bW1lZCA9PSBDSEVDS1NVTV9DT01QTEVURSkKKwkJc2tiLT5jc3VtID0gY3N1bV9h ZGQoY3N1bV9zdWIoc2tiLT5jc3VtLCAoX19mb3JjZSBfX3dzdW0pZnJvbSksCisJCQkJICAgICAo X19mb3JjZSBfX3dzdW0pdG8pOworCXJldHVybiAxOworfQorCiBzdGF0aWMgaW5saW5lIHZvaWQg aXB2Nl9jb3B5X2RzY3AodW5zaWduZWQgaW50IGRzY3AsIHN0cnVjdCBpcHY2aGRyICppbm5lcikK IHsKIAlkc2NwICY9IH5JTkVUX0VDTl9NQVNLOwpAQCAtMTU5LDYgKzE4OSwyNSBAQCBzdGF0aWMg aW5saW5lIGludCBJTkVUX0VDTl9zZXRfY2Uoc3RydWN0IHNrX2J1ZmYgKnNrYikKIAlyZXR1cm4g MDsKIH0KIAorc3RhdGljIGlubGluZSBpbnQgSU5FVF9FQ05fc2V0X2VjdDEoc3RydWN0IHNrX2J1 ZmYgKnNrYikKK3sKKwlzd2l0Y2ggKHNrYi0+cHJvdG9jb2wpIHsKKwljYXNlIGNwdV90b19iZTE2 KEVUSF9QX0lQKToKKwkJaWYgKHNrYl9uZXR3b3JrX2hlYWRlcihza2IpICsgc2l6ZW9mKHN0cnVj dCBpcGhkcikgPD0KKwkJICAgIHNrYl90YWlsX3BvaW50ZXIoc2tiKSkKKwkJCXJldHVybiBJUF9F Q05fc2V0X2VjdDEoaXBfaGRyKHNrYikpOworCQlicmVhazsKKworCWNhc2UgY3B1X3RvX2JlMTYo RVRIX1BfSVBWNik6CisJCWlmIChza2JfbmV0d29ya19oZWFkZXIoc2tiKSArIHNpemVvZihzdHJ1 Y3QgaXB2NmhkcikgPD0KKwkJICAgIHNrYl90YWlsX3BvaW50ZXIoc2tiKSkKKwkJCXJldHVybiBJ UDZfRUNOX3NldF9lY3QxKHNrYiwgaXB2Nl9oZHIoc2tiKSk7CisJCWJyZWFrOworCX0KKworCXJl dHVybiAwOworfQorCiAvKgogICogUkZDIDYwNDAgNC4yCiAgKiAgVG8gZGVjYXBzdWxhdGUgdGhl IGlubmVyIGhlYWRlciBhdCB0aGUgdHVubmVsIGVncmVzcywgYSBjb21wbGlhbnQKQEAgLTIwOCw4 ICsyNTcsMTIgQEAgc3RhdGljIGlubGluZSBpbnQgSU5FVF9FQ05fZGVjYXBzdWxhdGUoc3RydWN0 IHNrX2J1ZmYgKnNrYiwKIAlpbnQgcmM7CiAKIAlyYyA9IF9fSU5FVF9FQ05fZGVjYXBzdWxhdGUo b3V0ZXIsIGlubmVyLCAmc2V0X2NlKTsKLQlpZiAoIXJjICYmIHNldF9jZSkKLQkJSU5FVF9FQ05f c2V0X2NlKHNrYik7CisJaWYgKCFyYykgeworCQlpZiAoc2V0X2NlKQorCQkJSU5FVF9FQ05fc2V0 X2NlKHNrYik7CisJCWVsc2UgaWYgKChvdXRlciAmIElORVRfRUNOX01BU0spID09IElORVRfRUNO X0VDVF8xKQorCQkJSU5FVF9FQ05fc2V0X2VjdDEoc2tiKTsKKwl9CiAKIAlyZXR1cm4gcmM7CiB9 Ci0tIAoyLjI2LjIKCgpGcm9tIDU0MTgzODQxYmZlNjY1ODI4MzEyY2U3YjI5MDAwN2FlYjFkZmQ0 NmMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE1pY2hhZWwgQ2hhbiA8bWljaGFlbC5j aGFuQGJyb2FkY29tLmNvbT4KRGF0ZTogU3VuLCAyNiBBcHIgMjAyMCAxNjoyNDozOCAtMDQwMApT dWJqZWN0OiBbUEFUQ0ggMjIvMzFdIGJueHRfZW46IEZpeCBWRiBhbnRpLXNwb29mIGZpbHRlciBz ZXR1cC4KClsgVXBzdHJlYW0gY29tbWl0IGM3MWM0ZTQ5YWZlMTczODIzYTJhODViMGNhYmM5YjNm MTE3NmZmYTIgXQoKRml4IHRoZSBsb2dpYyB0aGF0IHNldHMgdGhlIGVuYWJsZS9kaXNhYmxlIGZs YWcgZm9yIHRoZSBzb3VyY2UgTUFDCmZpbHRlciBhY2NvcmRpbmcgdG8gZmlybXdhcmUgc3BlYyAx LjcuMS4KCkluIHRoZSBvcmlnaW5hbCBmaXJtd2FyZSBzcGVjLiBiZWZvcmUgMS43LjEsIHRoZSBW RiBzcG9vZiBjaGVjayBmbGFncwp3ZXJlIG5vdCBsYXRjaGVkIGFmdGVyIG1ha2luZyB0aGUgSFdS TV9GVU5DX0NGRyBjYWxsLCBzbyB0aGVyZSB3YXMgYQpuZWVkIHRvIGtlZXAgdGhlIGZ1bmNfZmxh Z3Mgc28gdGhhdCBzdWJzZXF1ZW50IGNhbGxzIHdvdWxkIHBlcnNlcnZlCnRoZSBWRiBzcG9vZiBj aGVjayBzZXR0aW5nLiAgQSBjaGFuZ2Ugd2FzIG1hZGUgaW4gdGhlIDEuNy4xIHNwZWMKc28gdGhh dCB0aGUgZmxhZ3MgYmVjYW1lIGxhdGNoZWQuICBTbyB3ZSBub3cgc2V0IG9yIGNsZWFyIHRoZSBh bnRpLQpzcG9vZiBzZXR0aW5nIGRpcmVjdGx5IHdpdGhvdXQgcmV0cmlldmluZyB0aGUgb2xkIHNl dHRpbmdzIGluIHRoZQpzdG9yZWQgdmYtPmZ1bmNfZmxhZ3Mgd2hpY2ggYXJlIG5vIGxvbmdlciB2 YWxpZC4gIFdlIGFsc28gcmVtb3ZlIHRoZQp1bm5lZWRlZCB2Zi0+ZnVuY19mbGFncy4KCkZpeGVz OiA4ZWI5OTJlODc2YTggKCJibnh0X2VuOiBVcGRhdGUgZmlybXdhcmUgaW50ZXJmYWNlIHNwZWMg dG8gMS43LjYuMi4iKQpTaWduZWQtb2ZmLWJ5OiBNaWNoYWVsIENoYW4gPG1pY2hhZWwuY2hhbkBi cm9hZGNvbS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHQuaCAg ICAgICB8ICAxIC0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueHQvYm54dF9zcmlv di5jIHwgMTAgKystLS0tLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDkg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20v Ym54dC9ibnh0LmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHQuaApp bmRleCBjZGE3YmEzMTA5NWEuLmE2MWE1ODczYWIwYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQv ZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0LmgKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQv YnJvYWRjb20vYm54dC9ibnh0LmgKQEAgLTEwNTgsNyArMTA1OCw2IEBAIHN0cnVjdCBibnh0X3Zm X2luZm8gewogI2RlZmluZSBCTlhUX1ZGX0xJTktfRk9SQ0VECTB4NAogI2RlZmluZSBCTlhUX1ZG X0xJTktfVVAJCTB4OAogI2RlZmluZSBCTlhUX1ZGX1RSVVNUCQkweDEwCi0JdTMyCWZ1bmNfZmxh Z3M7IC8qIGZ1bmMgY2ZnIGZsYWdzICovCiAJdTMyCW1pbl90eF9yYXRlOwogCXUzMgltYXhfdHhf cmF0ZTsKIAl2b2lkCSpod3JtX2NtZF9yZXFfYWRkcjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0 L2V0aGVybmV0L2Jyb2FkY29tL2JueHQvYm54dF9zcmlvdi5jIGIvZHJpdmVycy9uZXQvZXRoZXJu ZXQvYnJvYWRjb20vYm54dC9ibnh0X3NyaW92LmMKaW5kZXggZjZmMzQ1NGQ2MDU5Li4xMDQ2YjIy MjIwYTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueHQvYm54 dF9zcmlvdi5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueHQvYm54dF9z cmlvdi5jCkBAIC04NSwxMSArODUsMTAgQEAgaW50IGJueHRfc2V0X3ZmX3Nwb29mY2hrKHN0cnVj dCBuZXRfZGV2aWNlICpkZXYsIGludCB2Zl9pZCwgYm9vbCBzZXR0aW5nKQogCWlmIChvbGRfc2V0 dGluZyA9PSBzZXR0aW5nKQogCQlyZXR1cm4gMDsKIAotCWZ1bmNfZmxhZ3MgPSB2Zi0+ZnVuY19m bGFnczsKIAlpZiAoc2V0dGluZykKLQkJZnVuY19mbGFncyB8PSBGVU5DX0NGR19SRVFfRkxBR1Nf U1JDX01BQ19BRERSX0NIRUNLX0VOQUJMRTsKKwkJZnVuY19mbGFncyA9IEZVTkNfQ0ZHX1JFUV9G TEFHU19TUkNfTUFDX0FERFJfQ0hFQ0tfRU5BQkxFOwogCWVsc2UKLQkJZnVuY19mbGFncyB8PSBG VU5DX0NGR19SRVFfRkxBR1NfU1JDX01BQ19BRERSX0NIRUNLX0RJU0FCTEU7CisJCWZ1bmNfZmxh Z3MgPSBGVU5DX0NGR19SRVFfRkxBR1NfU1JDX01BQ19BRERSX0NIRUNLX0RJU0FCTEU7CiAJLypU T0RPOiBpZiB0aGUgZHJpdmVyIHN1cHBvcnRzIFZMQU4gZmlsdGVyIG9uIGd1ZXN0IFZMQU4sCiAJ ICogdGhlIHNwb29mIGNoZWNrIHNob3VsZCBhbHNvIGluY2x1ZGUgdmxhbiBhbnRpLXNwb29maW5n CiAJICovCkBAIC05OCw3ICs5Nyw2IEBAIGludCBibnh0X3NldF92Zl9zcG9vZmNoayhzdHJ1Y3Qg bmV0X2RldmljZSAqZGV2LCBpbnQgdmZfaWQsIGJvb2wgc2V0dGluZykKIAlyZXEuZmxhZ3MgPSBj cHVfdG9fbGUzMihmdW5jX2ZsYWdzKTsKIAlyYyA9IGh3cm1fc2VuZF9tZXNzYWdlKGJwLCAmcmVx LCBzaXplb2YocmVxKSwgSFdSTV9DTURfVElNRU9VVCk7CiAJaWYgKCFyYykgewotCQl2Zi0+ZnVu Y19mbGFncyA9IGZ1bmNfZmxhZ3M7CiAJCWlmIChzZXR0aW5nKQogCQkJdmYtPmZsYWdzIHw9IEJO WFRfVkZfU1BPT0ZDSEs7CiAJCWVsc2UKQEAgLTIzMCw3ICsyMjgsNiBAQCBpbnQgYm54dF9zZXRf dmZfbWFjKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGludCB2Zl9pZCwgdTggKm1hYykKIAltZW1j cHkodmYtPm1hY19hZGRyLCBtYWMsIEVUSF9BTEVOKTsKIAlibnh0X2h3cm1fY21kX2hkcl9pbml0 KGJwLCAmcmVxLCBIV1JNX0ZVTkNfQ0ZHLCAtMSwgLTEpOwogCXJlcS5maWQgPSBjcHVfdG9fbGUx Nih2Zi0+ZndfZmlkKTsKLQlyZXEuZmxhZ3MgPSBjcHVfdG9fbGUzMih2Zi0+ZnVuY19mbGFncyk7 CiAJcmVxLmVuYWJsZXMgPSBjcHVfdG9fbGUzMihGVU5DX0NGR19SRVFfRU5BQkxFU19ERkxUX01B Q19BRERSKTsKIAltZW1jcHkocmVxLmRmbHRfbWFjX2FkZHIsIG1hYywgRVRIX0FMRU4pOwogCXJl dHVybiBod3JtX3NlbmRfbWVzc2FnZShicCwgJnJlcSwgc2l6ZW9mKHJlcSksIEhXUk1fQ01EX1RJ TUVPVVQpOwpAQCAtMjY4LDcgKzI2NSw2IEBAIGludCBibnh0X3NldF92Zl92bGFuKHN0cnVjdCBu ZXRfZGV2aWNlICpkZXYsIGludCB2Zl9pZCwgdTE2IHZsYW5faWQsIHU4IHFvcywKIAogCWJueHRf aHdybV9jbWRfaGRyX2luaXQoYnAsICZyZXEsIEhXUk1fRlVOQ19DRkcsIC0xLCAtMSk7CiAJcmVx LmZpZCA9IGNwdV90b19sZTE2KHZmLT5md19maWQpOwotCXJlcS5mbGFncyA9IGNwdV90b19sZTMy KHZmLT5mdW5jX2ZsYWdzKTsKIAlyZXEuZGZsdF92bGFuID0gY3B1X3RvX2xlMTYodmxhbl90YWcp OwogCXJlcS5lbmFibGVzID0gY3B1X3RvX2xlMzIoRlVOQ19DRkdfUkVRX0VOQUJMRVNfREZMVF9W TEFOKTsKIAlyYyA9IGh3cm1fc2VuZF9tZXNzYWdlKGJwLCAmcmVxLCBzaXplb2YocmVxKSwgSFdS TV9DTURfVElNRU9VVCk7CkBAIC0zMDcsNyArMzAzLDYgQEAgaW50IGJueHRfc2V0X3ZmX2J3KHN0 cnVjdCBuZXRfZGV2aWNlICpkZXYsIGludCB2Zl9pZCwgaW50IG1pbl90eF9yYXRlLAogCQlyZXR1 cm4gMDsKIAlibnh0X2h3cm1fY21kX2hkcl9pbml0KGJwLCAmcmVxLCBIV1JNX0ZVTkNfQ0ZHLCAt MSwgLTEpOwogCXJlcS5maWQgPSBjcHVfdG9fbGUxNih2Zi0+ZndfZmlkKTsKLQlyZXEuZmxhZ3Mg PSBjcHVfdG9fbGUzMih2Zi0+ZnVuY19mbGFncyk7CiAJcmVxLmVuYWJsZXMgPSBjcHVfdG9fbGUz MihGVU5DX0NGR19SRVFfRU5BQkxFU19NQVhfQlcpOwogCXJlcS5tYXhfYncgPSBjcHVfdG9fbGUz MihtYXhfdHhfcmF0ZSk7CiAJcmVxLmVuYWJsZXMgfD0gY3B1X3RvX2xlMzIoRlVOQ19DRkdfUkVR X0VOQUJMRVNfTUlOX0JXKTsKQEAgLTQ3OSw3ICs0NzQsNiBAQCBzdGF0aWMgdm9pZCBfX2JueHRf c2V0X3ZmX3BhcmFtcyhzdHJ1Y3QgYm54dCAqYnAsIGludCB2Zl9pZCkKIAl2ZiA9ICZicC0+cGYu dmZbdmZfaWRdOwogCWJueHRfaHdybV9jbWRfaGRyX2luaXQoYnAsICZyZXEsIEhXUk1fRlVOQ19D RkcsIC0xLCAtMSk7CiAJcmVxLmZpZCA9IGNwdV90b19sZTE2KHZmLT5md19maWQpOwotCXJlcS5m bGFncyA9IGNwdV90b19sZTMyKHZmLT5mdW5jX2ZsYWdzKTsKIAogCWlmIChpc192YWxpZF9ldGhl cl9hZGRyKHZmLT5tYWNfYWRkcikpIHsKIAkJcmVxLmVuYWJsZXMgfD0gY3B1X3RvX2xlMzIoRlVO Q19DRkdfUkVRX0VOQUJMRVNfREZMVF9NQUNfQUREUik7Ci0tIAoyLjI2LjIKCgpGcm9tIGU0NWY5 N2IwNWFmMjFkYzk0YWRmOGUwZGJjYTMzOGQzN2NkZDRjZjIgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IFZhc3VuZGhhcmEgVm9sYW0gPHZhc3VuZGhhcmEtdi52b2xhbUBicm9hZGNvbS5j b20+CkRhdGU6IFN1biwgMjYgQXByIDIwMjAgMTY6MjQ6MzkgLTA0MDAKU3ViamVjdDogW1BBVENI IDIzLzMxXSBibnh0X2VuOiBSZWR1Y2UgQk5YVF9NU0lYX1ZFQ19NQVggdmFsdWUgdG8gc3VwcG9y dGVkCiBDUXMgcGVyIFBGLgoKWyBVcHN0cmVhbSBjb21taXQgOWU2OGNiMDM1OWIyMGY5OWM3YjA3 MGYxZDMzMDVlNWUwYTlmYWU2ZCBdCgpCcm9hZGNvbSBhZGFwdGVycyBzdXBwb3J0IG9ubHkgbWF4 aW11bSBvZiA1MTIgQ1FzIHBlciBQRi4gSWYgdXNlciBzZXRzCk1TSXggdmVjdG9ycyBtb3JlIHRo YW4gc3VwcG9ydGVkIENRcywgZmlybXdhcmUgaXMgc2V0dGluZyBpbmNvcnJlY3QgdmFsdWUKZm9y IG1zaXhfdmVjX3Blcl9wZl9tYXggcGFyYW1ldGVyLiBGaXggaXQgYnkgcmVkdWNpbmcgdGhlIEJO WFRfTVNJWF9WRUNfTUFYCnZhbHVlIHRvIDUxMiwgZXZlbiB0aG91Z2ggdGhlIG1heGltdW0gIyBv ZiBNU0l4IHZlY3RvcnMgc3VwcG9ydGVkIGJ5IGFkYXB0ZXIKYXJlIDEyODAuCgpGaXhlczogZjM5 OWU4NDk3ODI2ICgiYm54dF9lbjogVXNlIG1zaXhfdmVjX3Blcl9wZl9tYXggYW5kIG1zaXhfdmVj X3Blcl9wZl9taW4gZGV2bGluayBwYXJhbXMuIikKU2lnbmVkLW9mZi1ieTogVmFzdW5kaGFyYSBW b2xhbSA8dmFzdW5kaGFyYS12LnZvbGFtQGJyb2FkY29tLmNvbT4KU2lnbmVkLW9mZi1ieTogTWlj aGFlbCBDaGFuIDxtaWNoYWVsLmNoYW5AYnJvYWRjb20uY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZp ZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJu ZXQvYnJvYWRjb20vYm54dC9ibnh0X2RldmxpbmsuaCB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAx IGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0 aGVybmV0L2Jyb2FkY29tL2JueHQvYm54dF9kZXZsaW5rLmggYi9kcml2ZXJzL25ldC9ldGhlcm5l dC9icm9hZGNvbS9ibnh0L2JueHRfZGV2bGluay5oCmluZGV4IDY4OWM0N2FiMjE1NS4uYmE5NGVk ZWM5ZmI4IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2Ju eHRfZGV2bGluay5oCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueHQvYm54 dF9kZXZsaW5rLmgKQEAgLTM5LDcgKzM5LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIGJueHRfbGlu a19icF90b19kbChzdHJ1Y3QgYm54dCAqYnAsIHN0cnVjdCBkZXZsaW5rICpkbCkKICNkZWZpbmUg TlZNX09GRl9ESVNfR1JFX1ZFUl9DSEVDSwkxNzEKICNkZWZpbmUgTlZNX09GRl9FTkFCTEVfU1JJ T1YJCTQwMQogCi0jZGVmaW5lIEJOWFRfTVNJWF9WRUNfTUFYCTEyODAKKyNkZWZpbmUgQk5YVF9N U0lYX1ZFQ19NQVgJNTEyCiAjZGVmaW5lIEJOWFRfTVNJWF9WRUNfTUlOX01BWAkxMjgKIAogZW51 bSBibnh0X252bV9kaXJfdHlwZSB7Ci0tIAoyLjI2LjIKCgpGcm9tIDY0M2JlYTA1YTQ2NmM5MTU2 YmJiYWQ5ZjM5N2E5OTRkOWZlZDA2OWUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE1p Y2hhZWwgQ2hhbiA8bWljaGFlbC5jaGFuQGJyb2FkY29tLmNvbT4KRGF0ZTogU3VuLCAyNiBBcHIg MjAyMCAxNjoyNDo0MCAtMDQwMApTdWJqZWN0OiBbUEFUQ0ggMjQvMzFdIGJueHRfZW46IEltcHJv dmUgQUVSIHNsb3QgcmVzZXQuCgpbIFVwc3RyZWFtIGNvbW1pdCBiYWUzNjFjNTRmYjZhYzZlYmEz YjQ3NjJmNDljZTE0YmViNzNlZjEzIF0KCkltcHJvdmUgdGhlIHNsb3QgcmVzZXQgc2VxdWVuY2Ug YnkgZGlzYWJsaW5nIHRoZSBkZXZpY2UgdG8gcHJldmVudCBiYWQKRE1BcyBpZiBzbG90IHJlc2V0 IGZhaWxzLiAgUmV0dXJuIHRoZSBwcm9wZXIgcmVzdWx0IGluc3RlYWQgb2YgYWx3YXlzClBDSV9F UlNfUkVTVUxUX1JFQ09WRVJFRCB0byB0aGUgY2FsbGVyLgoKRml4ZXM6IDYzMTZlYTZkYjkzZCAo ImJueHRfZW46IEVuYWJsZSBBRVIgc3VwcG9ydC4iKQpTaWduZWQtb2ZmLWJ5OiBNaWNoYWVsIENo YW4gPG1pY2hhZWwuY2hhbkBicm9hZGNvbS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1p bGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9icm9h ZGNvbS9ibnh0L2JueHQuYyB8IDkgKysrKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRp b25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0 L2Jyb2FkY29tL2JueHQvYm54dC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54 dC9ibnh0LmMKaW5kZXggNjg2MjU5NGI0OWFiLi5jYzQ5MzEyNzQ0ZWQgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueHQvYm54dC5jCisrKyBiL2RyaXZlcnMvbmV0 L2V0aGVybmV0L2Jyb2FkY29tL2JueHQvYm54dC5jCkBAIC0xMjA2NiwxMiArMTIwNjYsMTUgQEAg c3RhdGljIHBjaV9lcnNfcmVzdWx0X3QgYm54dF9pb19zbG90X3Jlc2V0KHN0cnVjdCBwY2lfZGV2 ICpwZGV2KQogCQl9CiAJfQogCi0JaWYgKHJlc3VsdCAhPSBQQ0lfRVJTX1JFU1VMVF9SRUNPVkVS RUQgJiYgbmV0aWZfcnVubmluZyhuZXRkZXYpKQotCQlkZXZfY2xvc2UobmV0ZGV2KTsKKwlpZiAo cmVzdWx0ICE9IFBDSV9FUlNfUkVTVUxUX1JFQ09WRVJFRCkgeworCQlpZiAobmV0aWZfcnVubmlu ZyhuZXRkZXYpKQorCQkJZGV2X2Nsb3NlKG5ldGRldik7CisJCXBjaV9kaXNhYmxlX2RldmljZShw ZGV2KTsKKwl9CiAKIAlydG5sX3VubG9jaygpOwogCi0JcmV0dXJuIFBDSV9FUlNfUkVTVUxUX1JF Q09WRVJFRDsKKwlyZXR1cm4gcmVzdWx0OwogfQogCiAvKioKLS0gCjIuMjYuMgoKCkZyb20gMjky YWEzYzg4ZGM1ZDBkMDg1YjBiNmNhNjNjNmUwMzY3YWY5NmVmZCBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogTWljaGFlbCBDaGFuIDxtaWNoYWVsLmNoYW5AYnJvYWRjb20uY29tPgpEYXRl OiBTdW4sIDI2IEFwciAyMDIwIDE2OjI0OjQxIC0wNDAwClN1YmplY3Q6IFtQQVRDSCAyNS8zMV0g Ym54dF9lbjogUmV0dXJuIGVycm9yIHdoZW4gYWxsb2NhdGluZyB6ZXJvIHNpemUgY29udGV4dAog bWVtb3J5LgoKWyBVcHN0cmVhbSBjb21taXQgYmJmMjExYjFlY2I4OTFjN2UwY2M3ODg4ODM0NTA0 MTgzZmM4YjUzNCBdCgpibnh0X2FsbG9jX2N0eF9wZ190YmxzKCkgc2hvdWxkIHJldHVybiBlcnJv ciB3aGVuIHRoZSBtZW1vcnkgc2l6ZSBvZiB0aGUKY29udGV4dCBtZW1vcnkgdG8gc2V0IHVwIGlz IHplcm8uICBCeSByZXR1cm5pbmcgc3VjY2VzcyAoMCksIHRoZSBjYWxsZXIKbWF5IHByb2NlZWQg bm9ybWFsbHkgYW5kIG1heSBjcmFzaCBsYXRlciB3aGVuIGl0IHRyaWVzIHRvIHNldCB1cCB0aGUK bWVtb3J5LgoKRml4ZXM6IDA4ZmU5ZDE4MTYwNiAoImJueHRfZW46IEFkZCBMZXZlbCAyIGNvbnRl eHQgbWVtb3J5IHBhZ2luZyBzdXBwb3J0LiIpClNpZ25lZC1vZmYtYnk6IE1pY2hhZWwgQ2hhbiA8 bWljaGFlbC5jaGFuQGJyb2FkY29tLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVy IDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29t L2JueHQvYm54dC5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRl bGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54 dC9ibnh0LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHQuYwppbmRl eCBjYzQ5MzEyNzQ0ZWQuLjBjODYzNzczYWU3ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRo ZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0LmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJv YWRjb20vYm54dC9ibnh0LmMKQEAgLTY2NDksNyArNjY0OSw3IEBAIHN0YXRpYyBpbnQgYm54dF9h bGxvY19jdHhfcGdfdGJscyhzdHJ1Y3QgYm54dCAqYnAsCiAJaW50IHJjOwogCiAJaWYgKCFtZW1f c2l6ZSkKLQkJcmV0dXJuIDA7CisJCXJldHVybiAtRUlOVkFMOwogCiAJY3R4X3BnLT5ucl9wYWdl cyA9IERJVl9ST1VORF9VUChtZW1fc2l6ZSwgQk5YVF9QQUdFX1NJWkUpOwogCWlmIChjdHhfcGct Pm5yX3BhZ2VzID4gTUFYX0NUWF9UT1RBTF9QQUdFUykgewotLSAKMi4yNi4yCgoKRnJvbSBlNTU4 NmM3ZWFiMmNkNmM5YWUwMzhjZDMyNTI5M2YxMGEzMjgzZjRmIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBNaWNoYWVsIENoYW4gPG1pY2hhZWwuY2hhbkBicm9hZGNvbS5jb20+CkRhdGU6 IFN1biwgMjYgQXByIDIwMjAgMTY6MjQ6NDIgLTA0MDAKU3ViamVjdDogW1BBVENIIDI2LzMxXSBi bnh0X2VuOiBGaXggVkxBTiBhY2NlbGVyYXRpb24gaGFuZGxpbmcgaW4KIGJueHRfZml4X2ZlYXR1 cmVzKCkuCgpbIFVwc3RyZWFtIGNvbW1pdCBjNzJjYjMwM2FhNmMyYWU3ZTQxODRmMDA4MWM2ZDEx YmYwM2ZiOTZiIF0KClRoZSBjdXJyZW50IGxvZ2ljIGluIGJueHRfZml4X2ZlYXR1cmVzKCkgd2ls bCBpbmFkdmVydGVudGx5IHR1cm4gb24gYm90aApDVEFHIGFuZCBTVEFHIFZMQU4gb2ZmbG9hZCBp ZiB0aGUgdXNlciB0cmllcyB0byBkaXNhYmxlIGJvdGguICBGaXggaXQKYnkgY2hlY2tpbmcgdGhh dCB0aGUgdXNlciBpcyB0cnlpbmcgdG8gZW5hYmxlIENUQUcgb3IgU1RBRyBiZWZvcmUKZW5hYmxp bmcgYm90aC4gIFRoZSBsb2dpYyBpcyBzdXBwb3NlZCB0byBlbmFibGUgb3IgZGlzYWJsZSBib3Ro IENUQUcgYW5kClNUQUcgdG9nZXRoZXIuCgpGaXhlczogNWE5ZjZiMjM4ZTU5ICgiYm54dF9lbjog RW5hYmxlIGFuZCBkaXNhYmxlIFJYIENUQUcgYW5kIFJYIFNUQUcgVkxBTiBhY2NlbGVyYXRpb24g dG9nZXRoZXIuIikKU2lnbmVkLW9mZi1ieTogTWljaGFlbCBDaGFuIDxtaWNoYWVsLmNoYW5AYnJv YWRjb20uY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9m dC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0LmMgfCA5 ICsrKysrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHQu YyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueHQvYm54dC5jCmluZGV4IDBjODYz NzczYWU3Zi4uZWRmODQ1MmEyNTc0IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9i cm9hZGNvbS9ibnh0L2JueHQuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9i bnh0L2JueHQuYwpAQCAtOTc1NSw2ICs5NzU1LDcgQEAgc3RhdGljIG5ldGRldl9mZWF0dXJlc190 IGJueHRfZml4X2ZlYXR1cmVzKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAJCQkJCSAgIG5ldGRl dl9mZWF0dXJlc190IGZlYXR1cmVzKQogewogCXN0cnVjdCBibnh0ICpicCA9IG5ldGRldl9wcml2 KGRldik7CisJbmV0ZGV2X2ZlYXR1cmVzX3Qgdmxhbl9mZWF0dXJlczsKIAogCWlmICgoZmVhdHVy ZXMgJiBORVRJRl9GX05UVVBMRSkgJiYgIWJueHRfcmZzX2NhcGFibGUoYnApKQogCQlmZWF0dXJl cyAmPSB+TkVUSUZfRl9OVFVQTEU7CkBAIC05NzcxLDEyICs5NzcyLDE0IEBAIHN0YXRpYyBuZXRk ZXZfZmVhdHVyZXNfdCBibnh0X2ZpeF9mZWF0dXJlcyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAog CS8qIEJvdGggQ1RBRyBhbmQgU1RBRyBWTEFOIGFjY2VsYXJhdGlvbiBvbiB0aGUgUlggc2lkZSBo YXZlIHRvIGJlCiAJICogdHVybmVkIG9uIG9yIG9mZiB0b2dldGhlci4KIAkgKi8KLQlpZiAoKGZl YXR1cmVzICYgKE5FVElGX0ZfSFdfVkxBTl9DVEFHX1JYIHwgTkVUSUZfRl9IV19WTEFOX1NUQUdf UlgpKSAhPQotCSAgICAoTkVUSUZfRl9IV19WTEFOX0NUQUdfUlggfCBORVRJRl9GX0hXX1ZMQU5f U1RBR19SWCkpIHsKKwl2bGFuX2ZlYXR1cmVzID0gZmVhdHVyZXMgJiAoTkVUSUZfRl9IV19WTEFO X0NUQUdfUlggfAorCQkJCSAgICBORVRJRl9GX0hXX1ZMQU5fU1RBR19SWCk7CisJaWYgKHZsYW5f ZmVhdHVyZXMgIT0gKE5FVElGX0ZfSFdfVkxBTl9DVEFHX1JYIHwKKwkJCSAgICAgIE5FVElGX0Zf SFdfVkxBTl9TVEFHX1JYKSkgewogCQlpZiAoZGV2LT5mZWF0dXJlcyAmIE5FVElGX0ZfSFdfVkxB Tl9DVEFHX1JYKQogCQkJZmVhdHVyZXMgJj0gfihORVRJRl9GX0hXX1ZMQU5fQ1RBR19SWCB8CiAJ CQkJICAgICAgTkVUSUZfRl9IV19WTEFOX1NUQUdfUlgpOwotCQllbHNlCisJCWVsc2UgaWYgKHZs YW5fZmVhdHVyZXMpCiAJCQlmZWF0dXJlcyB8PSBORVRJRl9GX0hXX1ZMQU5fQ1RBR19SWCB8CiAJ CQkJICAgIE5FVElGX0ZfSFdfVkxBTl9TVEFHX1JYOwogCX0KLS0gCjIuMjYuMgoKCkZyb20gMDdh NGExZmRjNWFmOGVmMWMyZDJhYmMwOTYzZmE0NDkyMDFmOTRhNiBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogRXJleiBTaGl0cml0IDxlcmV6c2hAbWVsbGFub3guY29tPgpEYXRlOiBXZWQs IDI1IE1hciAyMDIwIDE3OjE5OjQzICswMjAwClN1YmplY3Q6IFtQQVRDSCAyNy8zMV0gbmV0L21s eDU6IERSLCBPbiBjcmVhdGlvbiBzZXQgQ1EncyBhcm1fZGIgbWVtYmVyIHRvCiByaWdodCB2YWx1 ZQoKWyBVcHN0cmVhbSBjb21taXQgODA3NTQxMWQ5M2I2ZWZlMTQzZDlmNjA2ZjY1MzEwNzc3OTVi N2ZiZiBdCgpJbiBwb2xsaW5nIG1vZGUsIHNldCBhcm1fZGIgbWVtYmVyIHRvIGEgdmFsdWUgdGhh dCB3aWxsIGF2b2lkIENRCmV2ZW50IHJlY292ZXJ5IGJ5IHRoZSBIVy4KT3RoZXJ3aXNlIHdlIG1p Z2h0IGdldCBldmVudCB3aXRob3V0IGNvbXBsZXRpb24gZnVuY3Rpb24uCkluIGFkZGl0aW9uLGVt cHR5IGNvbXBsZXRpb24gZnVuY3Rpb24gdG8gd2FzIGFkZGVkIHRvIHByb3RlY3QgZnJvbQp1bmV4 cGVjdGVkIGV2ZW50cy4KCkZpeGVzOiAyOTdjY2NlYmRjNWEgKCJuZXQvbWx4NTogRFIsIEV4cG9z ZSBhbiBpbnRlcm5hbCBBUEkgdG8gaXNzdWUgUkRNQSBvcGVyYXRpb25zIikKU2lnbmVkLW9mZi1i eTogRXJleiBTaGl0cml0IDxlcmV6c2hAbWVsbGFub3guY29tPgpSZXZpZXdlZC1ieTogVGFyaXEg VG91a2FuIDx0YXJpcXRAbWVsbGFub3guY29tPgpSZXZpZXdlZC1ieTogQWxleCBWZXNrZXIgPHZh bGV4QG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogU2FlZWQgTWFoYW1lZWQgPHNhZWVkbUBt ZWxsYW5veC5jb20+Ci0tLQogLi4uL2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmlu Zy9kcl9zZW5kLmMgfCAxNCArKysrKysrKysrKysrLQogMSBmaWxlIGNoYW5nZWQsIDEzIGluc2Vy dGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5l dC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvZHJfc2VuZC5jIGIvZHJpdmVycy9uZXQvZXRo ZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2RyX3NlbmQuYwppbmRleCAwOTVlYzdi MTM5OWQuLjdjNzczNzhhY2NmMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVs bGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2RyX3NlbmQuYworKysgYi9kcml2ZXJzL25ldC9ldGhl cm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvZHJfc2VuZC5jCkBAIC02ODksNiArNjg5 LDEyIEBAIHN0YXRpYyB2b2lkIGRyX2NxX2V2ZW50KHN0cnVjdCBtbHg1X2NvcmVfY3EgKm1jcSwK IAlwcl9pbmZvKCJDUSBldmVudCAldSBvbiBDUSAjJXVcbiIsIGV2ZW50LCBtY3EtPmNxbik7CiB9 CiAKK3N0YXRpYyB2b2lkIGRyX2NxX2NvbXBsZXRlKHN0cnVjdCBtbHg1X2NvcmVfY3EgKm1jcSwK KwkJCSAgIHN0cnVjdCBtbHg1X2VxZSAqZXFlKQoreworCXByX2VycigiQ1EgY29tcGxldGlvbiBD UTogIyV1XG4iLCBtY3EtPmNxbik7Cit9CisKIHN0YXRpYyBzdHJ1Y3QgbWx4NWRyX2NxICpkcl9j cmVhdGVfY3Eoc3RydWN0IG1seDVfY29yZV9kZXYgKm1kZXYsCiAJCQkJICAgICAgc3RydWN0IG1s eDVfdWFyc19wYWdlICp1YXIsCiAJCQkJICAgICAgc2l6ZV90IG5jcWUpCkBAIC03NTAsNiArNzU2 LDcgQEAgc3RhdGljIHN0cnVjdCBtbHg1ZHJfY3EgKmRyX2NyZWF0ZV9jcShzdHJ1Y3QgbWx4NV9j b3JlX2RldiAqbWRldiwKIAltbHg1X2ZpbGxfcGFnZV9mcmFnX2FycmF5KCZjcS0+d3FfY3RybC5i dWYsIHBhcyk7CiAKIAljcS0+bWNxLmV2ZW50ID0gZHJfY3FfZXZlbnQ7CisJY3EtPm1jcS5jb21w ICA9IGRyX2NxX2NvbXBsZXRlOwogCiAJZXJyID0gbWx4NV9jb3JlX2NyZWF0ZV9jcShtZGV2LCAm Y3EtPm1jcSwgaW4sIGlubGVuLCBvdXQsIHNpemVvZihvdXQpKTsKIAlrdmZyZWUoaW4pOwpAQCAt NzYxLDcgKzc2OCwxMiBAQCBzdGF0aWMgc3RydWN0IG1seDVkcl9jcSAqZHJfY3JlYXRlX2NxKHN0 cnVjdCBtbHg1X2NvcmVfZGV2ICptZGV2LAogCWNxLT5tY3Euc2V0X2NpX2RiID0gY3EtPndxX2N0 cmwuZGIuZGI7CiAJY3EtPm1jcS5hcm1fZGIgPSBjcS0+d3FfY3RybC5kYi5kYiArIDE7CiAJKmNx LT5tY3Euc2V0X2NpX2RiID0gMDsKLQkqY3EtPm1jcS5hcm1fZGIgPSAwOworCisJLyogc2V0IG5v LXplcm8gdmFsdWUsIGluIG9yZGVyIHRvIGF2b2lkIHRoZSBIVyB0byBydW4gZGItcmVjb3Zlcnkg b24KKwkgKiBDUSB0aGF0IHVzZWQgaW4gcG9sbGluZyBtb2RlLgorCSAqLworCSpjcS0+bWNxLmFy bV9kYiA9IGNwdV90b19iZTMyKDIgPDwgMjgpOworCiAJY3EtPm1jcS52ZWN0b3IgPSAwOwogCWNx LT5tY3EuaXJxbiA9IGlycW47CiAJY3EtPm1jcS51YXIgPSB1YXI7Ci0tIAoyLjI2LjIKCgpGcm9t IGM2NWE1ZDI0ZjhjZDZmMDlmNTQwYmVmZjg1NzM2OTQyZWE3MGQwM2MgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IE1vc2hlIFNoZW1lc2ggPG1vc2hlQG1lbGxhbm94LmNvbT4KRGF0ZTog U3VuLCAyMSBKdWwgMjAxOSAwODo0MDoxMyArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMjgvMzFdIG5l dC9tbHg1OiBGaXggZm9yY2VkIGNvbXBsZXRpb24gYWNjZXNzIG5vbiBpbml0aWFsaXplZAogY29t bWFuZCBlbnRyeQoKWyBVcHN0cmVhbSBjb21taXQgZjNjYjNjZWJlMjZlZDRjODAzNmFkYmQ5NDQ4 YjM3MjEyOWQzYzM3MSBdCgptbHg1X2NtZF9mbHVzaCgpIHdpbGwgdHJpZ2dlciBmb3JjZWQgY29t cGxldGlvbnMgdG8gYWxsIHZhbGlkIGNvbW1hbmQKZW50cmllcy4gVHJpZ2dlcmVkIGJ5IGFuIGFz eW5jaCBldmVudCBzdWNoIGFzIGZhc3QgdGVhcmRvd24gaXQgY2FuCmhhcHBlbiBhdCBhbnkgc3Rh Z2Ugb2YgdGhlIGNvbW1hbmQsIGluY2x1ZGluZyBjb21tYW5kIGluaXRpYWxpemF0aW9uLgpJdCB3 aWxsIHRyaWdnZXIgZm9yY2VkIGNvbXBsZXRpb24gYW5kIHRoYXQgY2FuIGxlYWQgdG8gY29tcGxl dGlvbiBvbiBhbgp1bmluaXRpYWxpemVkIGNvbW1hbmQgZW50cnkuCgpTZXR0aW5nIE1MWDVfQ01E X0VOVF9TVEFURV9QRU5ESU5HX0NPTVAgb25seSBhZnRlciBjb21tYW5kIGVudHJ5IGlzCmluaXRp YWxpemVkIHdpbGwgZW5zdXJlIGZvcmNlIGNvbXBsZXRpb24gaXMgdHJlYXRlZCBvbmx5IGlmIGNv bW1hbmQKZW50cnkgaXMgaW5pdGlhbGl6ZWQuCgpGaXhlczogNzNkZDNhNDgzOWMxICgibmV0L21s eDU6IEF2b2lkIHVzaW5nIHBlbmRpbmcgY29tbWFuZCBpbnRlcmZhY2Ugc2xvdHMiKQpTaWduZWQt b2ZmLWJ5OiBNb3NoZSBTaGVtZXNoIDxtb3NoZUBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6 IEVyYW4gQmVuIEVsaXNoYSA8ZXJhbmJlQG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogU2Fl ZWQgTWFoYW1lZWQgPHNhZWVkbUBtZWxsYW5veC5jb20+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJu ZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5z ZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJu ZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFu b3gvbWx4NS9jb3JlL2NtZC5jCmluZGV4IGVhOTM0Y2QwMjQ0OC4uODhmMDRiYWJkOWFlIDEwMDY0 NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMKKysr IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jCkBAIC04ODgs NyArODg4LDYgQEAgc3RhdGljIHZvaWQgY21kX3dvcmtfaGFuZGxlcihzdHJ1Y3Qgd29ya19zdHJ1 Y3QgKndvcmspCiAJfQogCiAJY21kLT5lbnRfYXJyW2VudC0+aWR4XSA9IGVudDsKLQlzZXRfYml0 KE1MWDVfQ01EX0VOVF9TVEFURV9QRU5ESU5HX0NPTVAsICZlbnQtPnN0YXRlKTsKIAlsYXkgPSBn ZXRfaW5zdChjbWQsIGVudC0+aWR4KTsKIAllbnQtPmxheSA9IGxheTsKIAltZW1zZXQobGF5LCAw LCBzaXplb2YoKmxheSkpOwpAQCAtOTEwLDYgKzkwOSw3IEBAIHN0YXRpYyB2b2lkIGNtZF93b3Jr X2hhbmRsZXIoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCiAJaWYgKGVudC0+Y2FsbGJhY2sp CiAJCXNjaGVkdWxlX2RlbGF5ZWRfd29yaygmZW50LT5jYl90aW1lb3V0X3dvcmssIGNiX3RpbWVv dXQpOworCXNldF9iaXQoTUxYNV9DTURfRU5UX1NUQVRFX1BFTkRJTkdfQ09NUCwgJmVudC0+c3Rh dGUpOwogCiAJLyogU2tpcCBzZW5kaW5nIGNvbW1hbmQgdG8gZncgaWYgaW50ZXJuYWwgZXJyb3Ig Ki8KIAlpZiAocGNpX2NoYW5uZWxfb2ZmbGluZShkZXYtPnBkZXYpIHx8Ci0tIAoyLjI2LjIKCgpG cm9tIDc2MTZiYjM1NDBiMTc4ZTgxZTEzYmRlNmJiYjRhOTdjM2ZjYzdmOGEgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IE1vc2hlIFNoZW1lc2ggPG1vc2hlQG1lbGxhbm94LmNvbT4KRGF0 ZTogU3VuLCAyMyBGZWIgMjAyMCAwMzoyNzo0MSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMjkvMzFd IG5ldC9tbHg1OiBGaXggY29tbWFuZCBlbnRyeSBsZWFrIGluIEludGVybmFsIEVycm9yCiBTdGF0 ZQoKWyBVcHN0cmVhbSBjb21taXQgY2VjZTZmNDMyY2NhOWYxODkwMDQ2M2VkMDFiOTdhMTUyYTAz NjAwYSBdCgpQcm9jZXNzaW5nIGNvbW1hbmRzIGJ5IGNtZF93b3JrX2hhbmRsZXIoKSB3aGlsZSBh bHJlYWR5IGluIEludGVybmFsCkVycm9yIFN0YXRlIHdpbGwgcmVzdWx0IGluIGVudHJ5IGxlYWss IHNpbmNlIHRoZSBoYW5kbGVyIHByb2Nlc3MgZm9yY2UKY29tcGxldGlvbiB3aXRob3V0IGRvb3Ji ZWxsLiBGb3JjZWQgY29tcGxldGlvbiBkb2Vzbid0IHJlbGVhc2UgdGhlIGVudHJ5CmFuZCBldmVu dCBjb21wbGV0aW9uIHdpbGwgbmV2ZXIgYXJyaXZlLCBzbyBlbnRyeSBzaG91bGQgYmUgcmVsZWFz ZWQuCgpGaXhlczogNzNkZDNhNDgzOWMxICgibmV0L21seDU6IEF2b2lkIHVzaW5nIHBlbmRpbmcg Y29tbWFuZCBpbnRlcmZhY2Ugc2xvdHMiKQpTaWduZWQtb2ZmLWJ5OiBNb3NoZSBTaGVtZXNoIDxt b3NoZUBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IEVyYW4gQmVuIEVsaXNoYSA8ZXJhbmJl QG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogU2FlZWQgTWFoYW1lZWQgPHNhZWVkbUBtZWxs YW5veC5jb20+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Nt ZC5jIHwgNCArKysrCiAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jIGIvZHJpdmVy cy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jCmluZGV4IDg4ZjA0YmFiZDlh ZS4uMDgwNDhhMmQ3MjU5IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5v eC9tbHg1L2NvcmUvY21kLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4 NS9jb3JlL2NtZC5jCkBAIC05MjIsNiArOTIyLDEwIEBAIHN0YXRpYyB2b2lkIGNtZF93b3JrX2hh bmRsZXIoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCQlNTFg1X1NFVChtYm94X291dCwgZW50 LT5vdXQsIHN5bmRyb21lLCBkcnZfc3luZCk7CiAKIAkJbWx4NV9jbWRfY29tcF9oYW5kbGVyKGRl diwgMVVMIDw8IGVudC0+aWR4LCB0cnVlKTsKKwkJLyogbm8gZG9vcmJlbGwsIG5vIG5lZWQgdG8g a2VlcCB0aGUgZW50cnkgKi8KKwkJZnJlZV9lbnQoY21kLCBlbnQtPmlkeCk7CisJCWlmIChlbnQt PmNhbGxiYWNrKQorCQkJZnJlZV9jbWQoZW50KTsKIAkJcmV0dXJuOwogCX0KIAotLSAKMi4yNi4y CgoKRnJvbSAwMDdhYTFiNjBlYWFiYzVlMDRlYzlhMTk4OWRiN2Y5MjYwYTY2OTE0IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW4gQ2FycGVudGVyIDxkYW4uY2FycGVudGVyQG9yYWNs ZS5jb20+CkRhdGU6IFdlZCwgNiBNYXkgMjAyMCAxMzoxNjoyMiArMDMwMApTdWJqZWN0OiBbUEFU Q0ggMzAvMzFdIG5ldDogbXZwcDI6IHByZXZlbnQgYnVmZmVyIG92ZXJmbG93IGluIG12cHAyMl9y c3NfY3R4KCkKClsgVXBzdHJlYW0gY29tbWl0IDM5YmQxNmRmN2MzMWJiOGNmNWRmZDBjODhlNDJh YmQ1YWUxMDAyOWQgXQoKVGhlICJyc3NfY29udGV4dCIgdmFyaWFibGUgY29tZXMgZnJvbSB0aGUg dXNlciB2aWEgIGV0aHRvb2xfZ2V0X3J4ZmgoKS4KSXQgY2FuIGJlIGFueSB1MzIgdmFsdWUgZXhj ZXB0IHplcm8uICBFdmVudHVhbGx5IGl0IGdldHMgcGFzc2VkIHRvCm12cHAyMl9yc3NfY3R4KCkg YW5kIGlmIGl0IGlzIG92ZXIgTVZQUDIyX05fUlNTX1RBQkxFUyAoOCkgdGhlbiBpdApyZXN1bHRz IGluIGFuIGFycmF5IG92ZXJmbG93LgoKRml4ZXM6IDg5NTU4NmQ1ZGMzMiAoIm5ldDogbXZwcDI6 IGNsczogVXNlIFJTUyBjb250ZXh0cyB0byBoYW5kbGUgUlNTIHRhYmxlcyIpClNpZ25lZC1vZmYt Ynk6IERhbiBDYXJwZW50ZXIgPGRhbi5jYXJwZW50ZXJAb3JhY2xlLmNvbT4KU2lnbmVkLW9mZi1i eTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0 L2V0aGVybmV0L21hcnZlbGwvbXZwcDIvbXZwcDJfbWFpbi5jIHwgMiArKwogMSBmaWxlIGNoYW5n ZWQsIDIgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21h cnZlbGwvbXZwcDIvbXZwcDJfbWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9t dnBwMi9tdnBwMl9tYWluLmMKaW5kZXggZWY0NGM2OTc5YTMxLi4zNzNiOGM4MzI4NTAgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXZwcDIvbXZwcDJfbWFpbi5jCisr KyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXZwcDIvbXZwcDJfbWFpbi5jCkBAIC00 MzE5LDYgKzQzMTksOCBAQCBzdGF0aWMgaW50IG12cHAyX2V0aHRvb2xfZ2V0X3J4ZmhfY29udGV4 dChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCB1MzIgKmluZGlyLAogCiAJaWYgKCFtdnBwMjJfcnNz X2lzX3N1cHBvcnRlZCgpKQogCQlyZXR1cm4gLUVPUE5PVFNVUFA7CisJaWYgKHJzc19jb250ZXh0 ID49IE1WUFAyMl9OX1JTU19UQUJMRVMpCisJCXJldHVybiAtRUlOVkFMOwogCiAJaWYgKGhmdW5j KQogCQkqaGZ1bmMgPSBFVEhfUlNTX0hBU0hfQ1JDMzI7Ci0tIAoyLjI2LjIKCgpGcm9tIGI4MDA3 MTk5M2I0ZjIwYTg2YTBlY2U3ODM5MDc1MzI0NmYwZjhjZjIgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IERhbiBDYXJwZW50ZXIgPGRhbi5jYXJwZW50ZXJAb3JhY2xlLmNvbT4KRGF0ZTog V2VkLCA2IE1heSAyMDIwIDEzOjE2OjU2ICswMzAwClN1YmplY3Q6IFtQQVRDSCAzMS8zMV0gbmV0 OiBtdnBwMjogY2xzOiBQcmV2ZW50IGJ1ZmZlciBvdmVyZmxvdyBpbgogbXZwcDJfZXRodG9vbF9j bHNfcnVsZV9kZWwoKQoKWyBVcHN0cmVhbSBjb21taXQgNzIyYzBmMDBkNGZlZWE3NzQ3NWE1ZGM5 NDNiNTNkNjA4MjRhMWU0ZSBdCgpUaGUgImluZm8tPmZzLmxvY2F0aW9uIiBpcyBhIHUzMiB0aGF0 IGNvbWVzIGZyb20gdGhlIHVzZXIgdmlhIHRoZQpldGh0b29sX3NldF9yeG5mYygpIGZ1bmN0aW9u LiAgV2UgbmVlZCB0byBjaGVjayBmb3IgaW52YWxpZCB2YWx1ZXMgdG8KcHJldmVudCBhIGJ1ZmZl ciBvdmVyZmxvdy4KCkkgY29weSBhbmQgcGFzdGVkIHRoaXMgY2hlY2sgZnJvbSB0aGUgbXZwcDJf ZXRodG9vbF9jbHNfcnVsZV9pbnMoKQpmdW5jdGlvbi4KCkZpeGVzOiA5MGI1MDliMzlhYzkgKCJu ZXQ6IG12cHAyOiBjbHM6IEFkZCBDbGFzc2lmaWNhdGlvbiBvZmZsb2FkIHN1cHBvcnQiKQpTaWdu ZWQtb2ZmLWJ5OiBEYW4gQ2FycGVudGVyIDxkYW4uY2FycGVudGVyQG9yYWNsZS5jb20+ClNpZ25l ZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2 ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL212cHAyL212cHAyX2Nscy5jIHwgMyArKysKIDEgZmls ZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhl cm5ldC9tYXJ2ZWxsL212cHAyL212cHAyX2Nscy5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFy dmVsbC9tdnBwMi9tdnBwMl9jbHMuYwppbmRleCAzNTQ3OGNiYTJhYTUuLjQzNDRhNTljODIzZiAx MDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdnBwMi9tdnBwMl9jbHMu YworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL212cHAyL212cHAyX2Nscy5jCkBA IC0xNDIyLDYgKzE0MjIsOSBAQCBpbnQgbXZwcDJfZXRodG9vbF9jbHNfcnVsZV9kZWwoc3RydWN0 IG12cHAyX3BvcnQgKnBvcnQsCiAJc3RydWN0IG12cHAyX2V0aHRvb2xfZnMgKmVmczsKIAlpbnQg cmV0OwogCisJaWYgKGluZm8tPmZzLmxvY2F0aW9uID49IE1WUFAyX05fUkZTX0VOVFJJRVNfUEVS X0ZMT1cpCisJCXJldHVybiAtRUlOVkFMOworCiAJZWZzID0gcG9ydC0+cmZzX3J1bGVzW2luZm8t PmZzLmxvY2F0aW9uXTsKIAlpZiAoIWVmcykKIAkJcmV0dXJuIC1FSU5WQUw7Ci0tIAoyLjI2LjIK Cg== ----Next_Part(Mon_May_11_17_41_33_2020_555)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_56.mbox" RnJvbSA5NDBmMDRjNTM2NzVhYzVkMDg5ZDA4ZTlkNmRmYTc2MzE0OGViOWNlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBSYWh1bCBMYWtraXJlZGR5IDxyYWh1bC5sYWtraXJlZGR5QGNo ZWxzaW8uY29tPgpEYXRlOiBUaHUsIDMwIEFwciAyMDIwIDAwOjIyOjE5ICswNTMwClN1YmplY3Q6 IFtQQVRDSCAwMS80NF0gY3hnYjQ6IGZpeCBFT1RJRCBsZWFrIHdoZW4gZGlzYWJsaW5nIFRDLU1R UFJJTyBvZmZsb2FkCgpbIFVwc3RyZWFtIGNvbW1pdCA2OTQyMmE3ZTVkNTc4YWFiMjc3MDkxZjRl YmI3YzFiMzg3ZjNlMzU1IF0KClVuZGVyIGhlYXZ5IGxvYWQsIHRoZSBFT1RJRCB0ZXJtaW5hdGlv biBGTE9XQyByZXF1ZXN0IGZhaWxzIHRvIGdldAplbnF1ZXVlZCB0byB0aGUgZW5kIG9mIHRoZSBU eCByaW5nIGR1ZSB0byBsYWNrIG9mIGNyZWRpdHMuIFRoaXMKcmVzdWx0cyBpbiBFT1RJRCBsZWFr LgoKV2hlbiBkaXNhYmxpbmcgVEMtTVFQUklPIG9mZmxvYWQsIHRoZSBsaW5rIGlzIGFscmVhZHkg YnJvdWdodCBkb3duCnRvIGNsZWFudXAgRU9USURzLiBTbywgZmx1c2ggYW55IHBlbmRpbmcgZW5x dWV1ZWQgc2ticyB0aGF0IGNhbid0IGJlCnNlbnQgb3V0c2lkZSB0aGUgd2lyZSwgdG8gbWFrZSBy b29tIGZvciBGTE9XQyByZXF1ZXN0LiBBbHNvLCBtb3ZlIHRoZQpGTE9XQyBkZXNjcmlwdG9yIGNv bnN1bXB0aW9uIGxvZ2ljIGNsb3NlciB0byB3aGVuIHRoZSBGTE9XQyByZXF1ZXN0IGlzCmFjdHVh bGx5IHBvc3RlZCB0byBoYXJkd2FyZS4KCkZpeGVzOiAwZTM5NWIzY2IxZmIgKCJjeGdiNDogYWRk IEZMT1dDIGJhc2VkIFFvUyBvZmZsb2FkIikKU2lnbmVkLW9mZi1ieTogUmFodWwgTGFra2lyZWRk eSA8cmFodWwubGFra2lyZWRkeUBjaGVsc2lvLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4g TWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L2No ZWxzaW8vY3hnYjQvc2dlLmMgfCAzOSArKysrKysrKysrKysrKysrKysrKysrLS0KIDEgZmlsZSBj aGFuZ2VkLCAzNiBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvc2dlLmMgYi9kcml2ZXJzL25ldC9ldGhl cm5ldC9jaGVsc2lvL2N4Z2I0L3NnZS5jCmluZGV4IGNhYjNkMTdlMGUxYS4uZDZlZWJkNjQwNzUz IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L3NnZS5jCisr KyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvc2dlLmMKQEAgLTIyMDIsNiAr MjIwMiw5IEBAIHN0YXRpYyB2b2lkIGV0aG9mbGRfaGFyZF94bWl0KHN0cnVjdCBuZXRfZGV2aWNl ICpkZXYsCiAJaWYgKHVubGlrZWx5KHNraXBfZW90eF93cikpIHsKIAkJc3RhcnQgPSAodTY0ICop d3I7CiAJCWVvc3dfdHhxLT5zdGF0ZSA9IG5leHRfc3RhdGU7CisJCWVvc3dfdHhxLT5jcmVkIC09 IHdybGVuMTY7CisJCWVvc3dfdHhxLT5uY29tcGwrKzsKKwkJZW9zd190eHEtPmxhc3RfY29tcGwg PSAwOwogCQlnb3RvIHdyaXRlX3dyX2hlYWRlcnM7CiAJfQogCkBAIC0yMzYwLDYgKzIzNjMsMzQg QEAgbmV0ZGV2X3R4X3QgdDRfc3RhcnRfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3Qg bmV0X2RldmljZSAqZGV2KQogCXJldHVybiBjeGdiNF9ldGhfeG1pdChza2IsIGRldik7CiB9CiAK K3N0YXRpYyB2b2lkIGVvc3dfdHhxX2ZsdXNoX3BlbmRpbmdfc2ticyhzdHJ1Y3Qgc2dlX2Vvc3df dHhxICplb3N3X3R4cSkKK3sKKwlpbnQgcGt0Y291bnQgPSBlb3N3X3R4cS0+cGlkeCAtIGVvc3df dHhxLT5sYXN0X3BpZHg7CisJaW50IHBpZHggPSBlb3N3X3R4cS0+cGlkeDsKKwlzdHJ1Y3Qgc2tf YnVmZiAqc2tiOworCisJaWYgKCFwa3Rjb3VudCkKKwkJcmV0dXJuOworCisJaWYgKHBrdGNvdW50 IDwgMCkKKwkJcGt0Y291bnQgKz0gZW9zd190eHEtPm5kZXNjOworCisJd2hpbGUgKHBrdGNvdW50 LS0pIHsKKwkJcGlkeC0tOworCQlpZiAocGlkeCA8IDApCisJCQlwaWR4ICs9IGVvc3dfdHhxLT5u ZGVzYzsKKworCQlza2IgPSBlb3N3X3R4cS0+ZGVzY1twaWR4XS5za2I7CisJCWlmIChza2IpIHsK KwkJCWRldl9jb25zdW1lX3NrYl9hbnkoc2tiKTsKKwkJCWVvc3dfdHhxLT5kZXNjW3BpZHhdLnNr YiA9IE5VTEw7CisJCQllb3N3X3R4cS0+aW51c2UtLTsKKwkJfQorCX0KKworCWVvc3dfdHhxLT5w aWR4ID0gZW9zd190eHEtPmxhc3RfcGlkeCArIDE7Cit9CisKIC8qKgogICogY3hnYjRfZXRob2Zs ZF9zZW5kX2Zsb3djIC0gU2VuZCBFVEhPRkxEIGZsb3djIHJlcXVlc3QgdG8gYmluZCBlb3RpZCB0 byB0Yy4KICAqIEBkZXYgLSBuZXRkZXZpY2UKQEAgLTI0MzUsOSArMjQ2NiwxMSBAQCBpbnQgY3hn YjRfZXRob2ZsZF9zZW5kX2Zsb3djKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHUzMiBlb3RpZCwg dTMyIHRjKQogCQkJCQkgICAgRldfRkxPV0NfTU5FTV9FT1NUQVRFX0NMT1NJTkcgOgogCQkJCQkg ICAgRldfRkxPV0NfTU5FTV9FT1NUQVRFX0VTVEFCTElTSEVEKTsKIAotCWVvc3dfdHhxLT5jcmVk IC09IGxlbjE2OwotCWVvc3dfdHhxLT5uY29tcGwrKzsKLQllb3N3X3R4cS0+bGFzdF9jb21wbCA9 IDA7CisJLyogRnJlZSB1cCBhbnkgcGVuZGluZyBza2JzIHRvIGVuc3VyZSB0aGVyZSdzIHJvb20g Zm9yCisJICogdGVybWluYXRpb24gRkxPV0MuCisJICovCisJaWYgKHRjID09IEZXX1NDSEVEX0NM U19OT05FKQorCQllb3N3X3R4cV9mbHVzaF9wZW5kaW5nX3NrYnMoZW9zd190eHEpOwogCiAJcmV0 ID0gZW9zd190eHFfZW5xdWV1ZShlb3N3X3R4cSwgc2tiKTsKIAlpZiAocmV0KSB7Ci0tIAoyLjI2 LjIKCgpGcm9tIDU3MThkMTA3MWI3NWEwYTIwYmM3ZjMxZTMyMzI2NjdlYzc1NDVkNzcgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IEF5YSBMZXZpbiA8YXlhbEBtZWxsYW5veC5jb20+CkRh dGU6IE1vbiwgNCBNYXkgMjAyMCAxMToyNzo0NiArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMDIvNDRd IGRldmxpbms6IEZpeCByZXBvcnRlcidzIHJlY292ZXJ5IGNvbmRpdGlvbgoKWyBVcHN0cmVhbSBj b21taXQgYmVhMGM1Yzk0MmQzYjRlOWZiNmVkNDVmNmE3ZGU3NGM2YjExMjQzNyBdCgpEZXZsaW5r IGhlYWx0aCBjb3JlIGNvbmRpdGlvbnMgdGhlIHJlcG9ydGVyJ3MgcmVjb3Zlcnkgd2l0aCB0aGUK ZXhwaXJhdGlvbiBvZiB0aGUgZ3JhY2UgcGVyaW9kLiBUaGlzIGlzIG5vdCByZWxldmFudCBmb3Ig dGhlIGZpcnN0CnJlY292ZXJ5LiBFeHBsaWNpdGx5IGRlbWFuZCB0aGF0IHRoZSBncmFjZSBwZXJp b2Qgd2lsbCBvbmx5IGFwcGx5IHRvCnJlY292ZXJpZXMgb3RoZXIgdGhhbiB0aGUgZmlyc3QuCgpG aXhlczogYzhlMWRhMGJmOTIzICgiZGV2bGluazogQWRkIGhlYWx0aCByZXBvcnQgZnVuY3Rpb25h bGl0eSIpClNpZ25lZC1vZmYtYnk6IEF5YSBMZXZpbiA8YXlhbEBtZWxsYW5veC5jb20+ClJldmll d2VkLWJ5OiBNb3NoZSBTaGVtZXNoIDxtb3NoZUBtZWxsYW5veC5jb20+ClJldmlld2VkLWJ5OiBK aXJpIFBpcmtvIDxqaXJpQG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWls bGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9jb3JlL2RldmxpbmsuYyB8IDcgKysr KystLQogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9uZXQvY29yZS9kZXZsaW5rLmMgYi9uZXQvY29yZS9kZXZsaW5rLmMKaW5kZXgg YjgzMWM1NTQ1ZDZhLi5mYjBjMTdmZGY1MjUgMTAwNjQ0Ci0tLSBhL25ldC9jb3JlL2Rldmxpbmsu YworKysgYi9uZXQvY29yZS9kZXZsaW5rLmMKQEAgLTUwMjksNiArNTAyOSw3IEBAIGludCBkZXZs aW5rX2hlYWx0aF9yZXBvcnQoc3RydWN0IGRldmxpbmtfaGVhbHRoX3JlcG9ydGVyICpyZXBvcnRl ciwKIHsKIAllbnVtIGRldmxpbmtfaGVhbHRoX3JlcG9ydGVyX3N0YXRlIHByZXZfaGVhbHRoX3N0 YXRlOwogCXN0cnVjdCBkZXZsaW5rICpkZXZsaW5rID0gcmVwb3J0ZXItPmRldmxpbms7CisJdW5z aWduZWQgbG9uZyByZWNvdmVyX3RzX3RocmVzaG9sZDsKIAogCS8qIHdyaXRlIGEgbG9nIG1lc3Nh Z2Ugb2YgdGhlIGN1cnJlbnQgZXJyb3IgKi8KIAlXQVJOX09OKCFtc2cpOwpAQCAtNTAzOSwxMCAr NTA0MCwxMiBAQCBpbnQgZGV2bGlua19oZWFsdGhfcmVwb3J0KHN0cnVjdCBkZXZsaW5rX2hlYWx0 aF9yZXBvcnRlciAqcmVwb3J0ZXIsCiAJZGV2bGlua19yZWNvdmVyX25vdGlmeShyZXBvcnRlciwg REVWTElOS19DTURfSEVBTFRIX1JFUE9SVEVSX1JFQ09WRVIpOwogCiAJLyogYWJvcnQgaWYgdGhl IHByZXZpb3VzIGVycm9yIHdhc24ndCByZWNvdmVyZWQgKi8KKwlyZWNvdmVyX3RzX3RocmVzaG9s ZCA9IHJlcG9ydGVyLT5sYXN0X3JlY292ZXJ5X3RzICsKKwkJCSAgICAgICBtc2Vjc190b19qaWZm aWVzKHJlcG9ydGVyLT5ncmFjZWZ1bF9wZXJpb2QpOwogCWlmIChyZXBvcnRlci0+YXV0b19yZWNv dmVyICYmCiAJICAgIChwcmV2X2hlYWx0aF9zdGF0ZSAhPSBERVZMSU5LX0hFQUxUSF9SRVBPUlRF Ul9TVEFURV9IRUFMVEhZIHx8Ci0JICAgICBqaWZmaWVzIC0gcmVwb3J0ZXItPmxhc3RfcmVjb3Zl cnlfdHMgPAotCSAgICAgbXNlY3NfdG9famlmZmllcyhyZXBvcnRlci0+Z3JhY2VmdWxfcGVyaW9k KSkpIHsKKwkgICAgIChyZXBvcnRlci0+bGFzdF9yZWNvdmVyeV90cyAmJiByZXBvcnRlci0+cmVj b3ZlcnlfY291bnQgJiYKKwkgICAgICB0aW1lX2lzX2FmdGVyX2ppZmZpZXMocmVjb3Zlcl90c190 aHJlc2hvbGQpKSkpIHsKIAkJdHJhY2VfZGV2bGlua19oZWFsdGhfcmVjb3Zlcl9hYm9ydGVkKGRl dmxpbmssCiAJCQkJCQkgICAgIHJlcG9ydGVyLT5vcHMtPm5hbWUsCiAJCQkJCQkgICAgIHJlcG9y dGVyLT5oZWFsdGhfc3RhdGUsCi0tIAoyLjI2LjIKCgpGcm9tIDhlY2Q5NGFmNjNjMDFiOTYyNmQx OWE0NmNiMzI2M2ZkZWQzNTNjYTMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEpha3Vi IEtpY2luc2tpIDxrdWJhQGtlcm5lbC5vcmc+CkRhdGU6IFR1ZSwgMjggQXByIDIwMjAgMTk6MDE6 NTggLTA3MDAKU3ViamVjdDogW1BBVENIIDAzLzQ0XSBkZXZsaW5rOiBmaXggcmV0dXJuIHZhbHVl IGFmdGVyIGhpdHRpbmcgZW5kIGluIHJlZ2lvbgogcmVhZAoKWyBVcHN0cmVhbSBjb21taXQgNjEw YTkzNDZjMTM4YjljMmM5M2QzOGJmNWYzNzI4ZTc0YWU5Y2JkNSBdCgpDb21taXQgZDViOTBlOTll MWQ1ICgiZGV2bGluazogcmVwb3J0IDAgYWZ0ZXIgaGl0dGluZyBlbmQgaW4gcmVnaW9uIHJlYWQi KQpmaXhlZCByZWdpb24gZHVtcCwgYnV0IHJlZ2lvbiByZWFkIHN0aWxsIHJldHVybnMgYSBzcHVy aW91cyBlcnJvcjoKCiQgZGV2bGluayByZWdpb24gcmVhZCBuZXRkZXZzaW0vbmV0ZGV2c2ltMS9k dW1teSBzbmFwc2hvdCAwIGFkZHIgMCBsZW4gMTI4CjAwMDAwMDAwMDAwMDAwMDAgYTYgZjQgYzQg MWMgMjEgMzUgOTUgYTYgOWQgMzQgYzMgNWIgODcgNWIgMzUgNzkKMDAwMDAwMDAwMDAwMDAxMCBm MyBhMCBkNyBlZSA0ZiAyZiA4MiA3ZiBjNiBkZCBjNCBmNiBhNSBjMyAxYiBhZQowMDAwMDAwMDAw MDAwMDIwIGE0IGZkIGM4IDYyIDA3IDU5IDQ4IDAzIDcwIDNiIGM3IDA5IDg2IDg4IDdmIDY4CjAw MDAwMDAwMDAwMDAwMzAgNmYgNDUgNWQgNmQgN2QgMGUgMTYgMzggYTkgZDAgN2EgNGIgMWUgMWUg MmUgYTYKMDAwMDAwMDAwMDAwMDA0MCBlNiAxZCBhZSAwNiBkNiAxOCAwMCA4NSBjYSA2MiBlOCA3 ZSAxMSA3ZSBmNiAwZgowMDAwMDAwMDAwMDAwMDUwIDc5IDdlIGY3IDBmIGYzIDk0IDY4IGJkIGU2 IDQwIDIyIDg1IGI2IGJlIDZmIGIxCjAwMDAwMDAwMDAwMDAwNjAgYWYgZGIgZWYgNWUgMzQgZjAg OTggNGIgNjIgOWEgZTMgMWIgOGIgOTMgZmMgMTcKZGV2bGluayBhbnN3ZXJzOiBJbnZhbGlkIGFy Z3VtZW50CjAwMDAwMDAwMDAwMDAwNzAgNjEgZTggMTEgMTEgNjYgMTAgYTUgZjcgYjEgZWEgOGQg NDAgNjAgNTMgZWQgMTIKClRoaXMgaXMgYSBtaW5pbWFsIGZpeCwgSSdsbCBmb2xsb3cgdXAgd2l0 aCBhIHJlc3RydWN0dXJpbmcKc28gd2UgZG9uJ3QgaGF2ZSB0d28gY2hlY2tzIGZvciB0aGUgc2Ft ZSBjb25kaXRpb24uCgpGaXhlczogZmRkNDFlYzIxZTE1ICgiZGV2bGluazogUmV0dXJuIHJpZ2h0 IGVycm9yIGNvZGUgaW4gY2FzZSBvZiBlcnJvcnMgZm9yIHJlZ2lvbiByZWFkIikKU2lnbmVkLW9m Zi1ieTogSmFrdWIgS2ljaW5za2kgPGt1YmFAa2VybmVsLm9yZz4KUmV2aWV3ZWQtYnk6IEphY29i IEtlbGxlciA8amFjb2IuZS5rZWxsZXJAaW50ZWwuY29tPgpSZXZpZXdlZC1ieTogSmlyaSBQaXJr byA8amlyaUBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2 ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvY29yZS9kZXZsaW5rLmMgfCA1ICsrKysrCiAxIGZp bGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvZGV2bGlu ay5jIGIvbmV0L2NvcmUvZGV2bGluay5jCmluZGV4IGZiMGMxN2ZkZjUyNS4uYjRlMjZiNzAyMzUy IDEwMDY0NAotLS0gYS9uZXQvY29yZS9kZXZsaW5rLmMKKysrIGIvbmV0L2NvcmUvZGV2bGluay5j CkBAIC00MDMwLDYgKzQwMzAsMTEgQEAgc3RhdGljIGludCBkZXZsaW5rX25sX2NtZF9yZWdpb25f cmVhZF9kdW1waXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJZW5kX29mZnNldCA9IG5sYV9nZXRf dTY0KGF0dHJzW0RFVkxJTktfQVRUUl9SRUdJT05fQ0hVTktfQUREUl0pOwogCQllbmRfb2Zmc2V0 ICs9IG5sYV9nZXRfdTY0KGF0dHJzW0RFVkxJTktfQVRUUl9SRUdJT05fQ0hVTktfTEVOXSk7CiAJ CWR1bXAgPSBmYWxzZTsKKworCQlpZiAoc3RhcnRfb2Zmc2V0ID09IGVuZF9vZmZzZXQpIHsKKwkJ CWVyciA9IDA7CisJCQlnb3RvIG5sYV9wdXRfZmFpbHVyZTsKKwkJfQogCX0KIAogCWVyciA9IGRl dmxpbmtfbmxfcmVnaW9uX3JlYWRfc25hcHNob3RfZmlsbChza2IsIGRldmxpbmssCi0tIAoyLjI2 LjIKCgpGcm9tIDIzMTMzMmJlNzZiM2UyM2Q1NGU0NTNlNmNiYTJkYzMxYTA4YTdlNzAgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IEp1bGlhIExhd2FsbCA8SnVsaWEuTGF3YWxsQGlucmlh LmZyPgpEYXRlOiBUaHUsIDMwIEFwciAyMDIwIDIxOjUxOjMyICswMjAwClN1YmplY3Q6IFtQQVRD SCAwNC80NF0gZHA4MzY0MDogcmV2ZXJzZSBhcmd1bWVudHMgdG8gbGlzdF9hZGRfdGFpbAoKWyBV cHN0cmVhbSBjb21taXQgODY1MzA4MzczZWQ0OWM5ZmIwNTcyMGQxNGNiZjEzMTUzNDliMzJhOSBd CgpJbiB0aGlzIGNvZGUsIGl0IGFwcGVhcnMgdGhhdCBwaHl0ZXJfY2xvY2tzIGlzIGEgbGlzdCBo ZWFkLCBiYXNlZCBvbgp0aGUgcHJldmlvdXMgbGlzdF9mb3JfZWFjaCwgYW5kIHRoYXQgY2xvY2st Pmxpc3QgaXMgaW50ZW5kZWQgdG8gYmUgYQpsaXN0IGVsZW1lbnQsIGdpdmVuIHRoYXQgaXQgaGFz IGp1c3QgYmVlbiBpbml0aWFsaXplZCBpbgpkcDgzNjQwX2Nsb2NrX2luaXQuICBBY2NvcmRpbmds eSwgc3dpdGNoIHRoZSBhcmd1bWVudHMgdG8KbGlzdF9hZGRfdGFpbCwgd2hpY2ggdGFrZXMgdGhl IGxpc3QgaGVhZCBhcyB0aGUgc2Vjb25kIGFyZ3VtZW50LgoKRml4ZXM6IGNiNjQ2ZTJiMDJiMjcg KCJwdHA6IEFkZGVkIGEgY2xvY2sgZHJpdmVyIGZvciB0aGUgTmF0aW9uYWwgU2VtaWNvbmR1Y3Rv ciBQSFlURVIuIikKU2lnbmVkLW9mZi1ieTogSnVsaWEgTGF3YWxsIDxKdWxpYS5MYXdhbGxAaW5y aWEuZnI+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5l dD4KLS0tCiBkcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQs IDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQv cGh5L2RwODM2NDAuYyBiL2RyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMKaW5kZXggYWM3MmEzMjRm Y2QxLi5iMWQ3NzEzMjVjNTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMK KysrIGIvZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYwpAQCAtMTEyMCw3ICsxMTIwLDcgQEAgc3Rh dGljIHN0cnVjdCBkcDgzNjQwX2Nsb2NrICpkcDgzNjQwX2Nsb2NrX2dldF9idXMoc3RydWN0IG1p aV9idXMgKmJ1cykKIAkJZ290byBvdXQ7CiAJfQogCWRwODM2NDBfY2xvY2tfaW5pdChjbG9jaywg YnVzKTsKLQlsaXN0X2FkZF90YWlsKCZwaHl0ZXJfY2xvY2tzLCAmY2xvY2stPmxpc3QpOworCWxp c3RfYWRkX3RhaWwoJmNsb2NrLT5saXN0LCAmcGh5dGVyX2Nsb2Nrcyk7CiBvdXQ6CiAJbXV0ZXhf dW5sb2NrKCZwaHl0ZXJfY2xvY2tzX2xvY2spOwogCi0tIAoyLjI2LjIKCgpGcm9tIDVkNWU3NjQz MWJjZWYwNjhiODQ2ODBkNTAyNjJhZTJiNDNhMTc4OGMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0ZTogU2F0LCAyNSBB cHIgMjAyMCAxMjo0MDoyNSAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDUvNDRdIGZxX2NvZGVsOiBm aXggVENBX0ZRX0NPREVMX0RST1BfQkFUQ0hfU0laRSBzYW5pdHkKIGNoZWNrcwpNSU1FLVZlcnNp b246IDEuMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1U cmFuc2Zlci1FbmNvZGluZzogOGJpdAoKWyBVcHN0cmVhbSBjb21taXQgMTQ2OTUyMTJkNGNkOGIw Yzk5N2Y2MTIxYjZkZjg1MjAwMzhjZTA3NiBdCgpNeSBpbnRlbnQgd2FzIHRvIG5vdCBsZXQgdXNl cnMgc2V0IGEgemVybyBkcm9wX2JhdGNoX3NpemUsCml0IHNlZW1zIEkgb25jZSBhZ2FpbiBtZXNz ZWQgd2l0aCBtaW4oKS9tYXgoKS4KCkZpeGVzOiA5ZDE4NTYyYTIyNzggKCJmcV9jb2RlbDogYWRk IGJhdGNoIGFiaWxpdHkgdG8gZnFfY29kZWxfZHJvcCgpIikKU2lnbmVkLW9mZi1ieTogRXJpYyBE dW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpBY2tlZC1ieTogVG9rZSBIw7hpbGFuZC1Kw7hy Z2Vuc2VuIDx0b2tlQHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8 ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvc2NoZWQvc2NoX2ZxX2NvZGVsLmMgfCAyICst CiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1n aXQgYS9uZXQvc2NoZWQvc2NoX2ZxX2NvZGVsLmMgYi9uZXQvc2NoZWQvc2NoX2ZxX2NvZGVsLmMK aW5kZXggOTY4NTE5ZmYzNmU5Li40MzYxNjBiZTljMTggMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9z Y2hfZnFfY29kZWwuYworKysgYi9uZXQvc2NoZWQvc2NoX2ZxX2NvZGVsLmMKQEAgLTQxNiw3ICs0 MTYsNyBAQCBzdGF0aWMgaW50IGZxX2NvZGVsX2NoYW5nZShzdHJ1Y3QgUWRpc2MgKnNjaCwgc3Ry dWN0IG5sYXR0ciAqb3B0LAogCQlxLT5xdWFudHVtID0gbWF4KDI1NlUsIG5sYV9nZXRfdTMyKHRi W1RDQV9GUV9DT0RFTF9RVUFOVFVNXSkpOwogCiAJaWYgKHRiW1RDQV9GUV9DT0RFTF9EUk9QX0JB VENIX1NJWkVdKQotCQlxLT5kcm9wX2JhdGNoX3NpemUgPSBtaW4oMVUsIG5sYV9nZXRfdTMyKHRi W1RDQV9GUV9DT0RFTF9EUk9QX0JBVENIX1NJWkVdKSk7CisJCXEtPmRyb3BfYmF0Y2hfc2l6ZSA9 IG1heCgxVSwgbmxhX2dldF91MzIodGJbVENBX0ZRX0NPREVMX0RST1BfQkFUQ0hfU0laRV0pKTsK IAogCWlmICh0YltUQ0FfRlFfQ09ERUxfTUVNT1JZX0xJTUlUXSkKIAkJcS0+bWVtb3J5X2xpbWl0 ID0gbWluKDFVIDw8IDMxLCBubGFfZ2V0X3UzMih0YltUQ0FfRlFfQ09ERUxfTUVNT1JZX0xJTUlU XSkpOwotLSAKMi4yNi4yCgoKRnJvbSAzNWY5MThkMzA2NmJiODZkODBlYWE4ZDE3NTZkODFjMjUy NTZkYmZmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYXZpZCBBaGVybiA8ZHNhaGVy bkBrZXJuZWwub3JnPgpEYXRlOiBGcmksIDEgTWF5IDIwMjAgMDg6NTM6MDggLTA2MDAKU3ViamVj dDogW1BBVENIIDA2LzQ0XSBpcHY2OiBVc2UgZ2xvYmFsIHNlcm51bSBmb3IgZHN0IHZhbGlkYXRp b24gd2l0aCBuZXh0aG9wCiBvYmplY3RzCgpbIFVwc3RyZWFtIGNvbW1pdCA4ZjM0ZTUzYjYwYjMz N2U1NTlmMWVhMTllMjc4MGZmOTVhYjJmYTY1IF0KCk5payByZXBvcnRlZCBhIGJ1ZyB3aXRoIHBj cHUgZHN0IGNhY2hlIHdoZW4gbmV4dGhvcCBvYmplY3RzIGFyZQp1c2VkIGlsbHVzdHJhdGVkIGJ5 IHRoZSBmb2xsb3dpbmc6CiAgICAkIGlwIG5ldG5zIGFkZCBmb28KICAgICQgaXAgLW5ldG5zIGZv byBsaSBzZXQgbG8gdXAKICAgICQgaXAgLW5ldG5zIGZvbyBhZGRyIGFkZCAyMDAxOmRiODoxMTo6 MS8xMjggZGV2IGxvCiAgICAkIGlwIG5ldG5zIGV4ZWMgZm9vIHN5c2N0bCBuZXQuaXB2Ni5jb25m LmFsbC5mb3J3YXJkaW5nPTEKICAgICQgaXAgbGkgYWRkIHZldGgxIHR5cGUgdmV0aCBwZWVyIG5h bWUgdmV0aDIKICAgICQgaXAgbGkgc2V0IHZldGgxIHVwCiAgICAkIGlwIGFkZHIgYWRkIDIwMDE6 ZGI4OjEwOjoxLzY0IGRldiB2ZXRoMQogICAgJCBpcCBsaSBzZXQgZGV2IHZldGgyIG5ldG5zIGZv bwogICAgJCBpcCAtbmV0bnMgZm9vIGxpIHNldCB2ZXRoMiB1cAogICAgJCBpcCAtbmV0bnMgZm9v IGFkZHIgYWRkIDIwMDE6ZGI4OjEwOjoyLzY0IGRldiB2ZXRoMgogICAgJCBpcCAtNiBuZXh0aG9w IGFkZCBpZCAxMDAgdmlhIDIwMDE6ZGI4OjEwOjoyIGRldiB2ZXRoMQogICAgJCBpcCAtNiByb3V0 ZSBhZGQgMjAwMTpkYjg6MTE6OjEvMTI4IG5oaWQgMTAwCgogICAgQ3JlYXRlIGEgcGNwdSBlbnRy eSBvbiBjcHUgMDoKICAgICQgdGFza3NldCAtYSAtYyAwIGlwIC02IHJvdXRlIGdldCAyMDAxOmRi ODoxMTo6MQoKICAgIFJlLWFkZCB0aGUgcm91dGUgZW50cnk6CiAgICAkIGlwIC02IHJvIGRlbCAy MDAxOmRiODoxMTo6MQogICAgJCBpcCAtNiByb3V0ZSBhZGQgMjAwMTpkYjg6MTE6OjEvMTI4IG5o aWQgMTAwCgogICAgUm91dGUgZ2V0IG9uIGNwdSAwIHJldHVybnMgdGhlIHN0YWxlIHBjcHU6CiAg ICAkIHRhc2tzZXQgLWEgLWMgMCBpcCAtNiByb3V0ZSBnZXQgMjAwMTpkYjg6MTE6OjEKICAgIFJU TkVUTElOSyBhbnN3ZXJzOiBOZXR3b3JrIGlzIHVucmVhY2hhYmxlCgogICAgV2hpbGUgY3B1IDEg d29ya3M6CiAgICAkIHRhc2tzZXQgLWEgLWMgMSBpcCAtNiByb3V0ZSBnZXQgMjAwMTpkYjg6MTE6 OjEKICAgIDIwMDE6ZGI4OjExOjoxIGZyb20gOjogdmlhIDIwMDE6ZGI4OjEwOjoyIGRldiB2ZXRo MSBzcmMgMjAwMTpkYjg6MTA6OjEgbWV0cmljIDEwMjQgcHJlZiBtZWRpdW0KCkNvbnZlcnNpb24g b2YgRklCIGVudHJpZXMgdG8gd29yayB3aXRoIGV4dGVybmFsIG5leHRob3Agb2JqZWN0cwptaXNz ZWQgYW4gaW1wb3J0YW50IGRpZmZlcmVuY2UgYmV0d2VlbiBJUHY0IGFuZCBJUHY2IC0gaG93IGRz dAplbnRyaWVzIGFyZSBpbnZhbGlkYXRlZCB3aGVuIHRoZSBGSUIgY2hhbmdlcy4gSVB2NCBoYXMg YSBwZXItbmV0d29yawpuYW1lc3BhY2UgZ2VuZXJhdGlvbiBpZCAocnRfZ2VuaWQpIHRoYXQgaXMg YnVtcGVkIG9uIGNoYW5nZXMgdG8gdGhlIEZJQi4KQ2hlY2tpbmcgaWYgYSBkc3RfZW50cnkgaXMg c3RpbGwgdmFsaWQgbWVhbnMgY29tcGFyaW5nIHJ0X2dlbmlkIGluIHRoZQpydGFibGUgdG8gdGhl IGN1cnJlbnQgdmFsdWUgb2YgcnRfZ2VuaWQgZm9yIHRoZSBuYW1lc3BhY2UuCgpJUHY2IGFsc28g aGFzIGEgcGVyIG5ldHdvcmsgbmFtZXNwYWNlIGNvdW50ZXIsIGZpYjZfc2VybnVtLCBidXQgdGhl CmNvdW50IGlzIHNhdmVkIHBlciBmaWI2X25vZGUuIFdpdGggdGhlIHBlci1ub2RlIGNvdW50ZXIg b25seSBkc3RfZW50cmllcwpiYXNlZCBvbiBmaWIgZW50cmllcyB1bmRlciB0aGUgbm9kZSBhcmUg aW52YWxpZGF0ZWQgd2hlbiBjaGFuZ2VzIGFyZQptYWRlIHRvIHRoZSByb3V0ZXMgLSBsaW1pdGlu ZyB0aGUgc2NvcGUgb2YgaW52YWxpZGF0aW9ucy4gSVB2NiB1c2VzIGEKcmVmZXJlbmNlIGluIHRo ZSBydDZfaW5mbywgJ2Zyb20nLCB0byB0cmFjayB0aGUgY29ycmVzcG9uZGluZyBmaWIgZW50cnkK dXNlZCB0byBjcmVhdGUgdGhlIGRzdF9lbnRyeS4gV2hlbiB2YWxpZGF0aW5nIGEgZHN0X2VudHJ5 LCB0aGUgJ2Zyb20nCmlzIHVzZWQgdG8gYmFja3RyYWNrIHRvIHRoZSBmaWI2X25vZGUgYW5kIGNo ZWNrIHRoZSBzZXJudW0gb2YgaXQgdG8gdGhlCmNvb2tpZSBwYXNzZWQgdG8gdGhlIGRzdF9jaGVj ayBvcGVyYXRpb24uCgpXaXRoIHRoZSBpbmxpbmUgZm9ybWF0IChuZXh0aG9wIGRlZmluaXRpb24g aW5saW5lIHdpdGggdGhlIGZpYjZfaW5mbyksCmRzdF9lbnRyaWVzIGNhY2hlZCBpbiB0aGUgZmli Nl9uaCBoYXZlIGEgMToxIGNvcnJlbGF0aW9uIGJldHdlZW4gZmliCmVudHJpZXMsIG5leHRob3Ag ZGF0YSBhbmQgZHN0X2VudHJpZXMuIFdpdGggZXh0ZXJuYWwgbmV4dGhvcHMsIElQdjYKbG9va3Mg bW9yZSBsaWtlIElQdjQgd2hpY2ggbWVhbnMgbXVsdGlwbGUgZmliIGVudHJpZXMgYWNyb3NzIGRp c3BhcmF0ZQpmaWI2X25vZGVzIGNhbiBhbGwgcmVmZXJlbmNlIHRoZSBzYW1lIGZpYjZfbmguIFRo YXQgbWVhbnMgdmFsaWRhdGlvbgpvZiBkc3RfZW50cmllcyBiYXNlZCBvbiBleHRlcm5hbCBuZXh0 aG9wcyBuZWVkcyB0byB1c2UgdGhlIElQdjQgZm9ybWF0Ci0gdGhlIHBlci1uZXR3b3JrIG5hbWVz cGFjZSBjb3VudGVyLgoKQWRkIHNlcm51bSB0byBydDZfaW5mbyBhbmQgc2V0IGl0IHdoZW4gY3Jl YXRpbmcgYSBwY3B1IGRzdCBlbnRyeS4gVXBkYXRlCnJ0Nl9nZXRfY29va2llIHRvIHJldHVybiBz ZXJudW0gaWYgaXQgaXMgc2V0IGFuZCB1cGRhdGUgZHN0X2NoZWNrIGZvcgpJUHY2IHRvIGxvb2sg Zm9yIHNlcm51bSBzZXQgYW5kIGJhc2VkIHRoZSBjaGVjayBvbiBpdCBpZiBzby4gRmluYWxseSwK cnQ2X2dldF9wY3B1X3JvdXRlIG5lZWRzIHRvIHZhbGlkYXRlIHRoZSBjYWNoZWQgZW50cnkgYmVm b3JlIHJldHVybmluZwphIHBjcHUgZW50cnkgKHNpbWlsYXIgdG8gdGhlIHJ0X2NhY2hlX3ZhbGlk IGNhbGxzIGluIF9fbWtyb3V0ZV9pbnB1dCBhbmQKX19ta3JvdXRlX291dHB1dCBmb3IgSVB2NCku CgpUaGlzIHByb2JsZW0gb25seSBhZmZlY3RzIHJvdXRlcyB1c2luZyB0aGUgbmV3LCBleHRlcm5h bCBuZXh0aG9wcy4KClRoYW5rcyB0byB0aGUga2J1aWxkIHRlc3Qgcm9ib3QgZm9yIGNhdGNoaW5n IHRoZSBJU19FTkFCTEVEIG5lZWRlZAphcm91bmQgcnRfZ2VuaWRfaXB2NiBiZWZvcmUgSSBzZW50 IHRoaXMgb3V0LgoKRml4ZXM6IDViOTgzMjRlYmUyOSAoImlwdjY6IEFsbG93IHJvdXRlcyB0byB1 c2UgbmV4dGhvcCBvYmplY3RzIikKUmVwb3J0ZWQtYnk6IE5pa29sYXkgQWxla3NhbmRyb3YgPG5p a29sYXlAY3VtdWx1c25ldHdvcmtzLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgQWhlcm4gPGRz YWhlcm5Aa2VybmVsLm9yZz4KUmV2aWV3ZWQtYnk6IE5pa29sYXkgQWxla3NhbmRyb3YgPG5pa29s YXlAY3VtdWx1c25ldHdvcmtzLmNvbT4KVGVzdGVkLWJ5OiBOaWtvbGF5IEFsZWtzYW5kcm92IDxu aWtvbGF5QGN1bXVsdXNuZXR3b3Jrcy5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxl ciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNsdWRlL25ldC9pcDZfZmliLmggICAgICAg fCAgNCArKysrCiBpbmNsdWRlL25ldC9uZXRfbmFtZXNwYWNlLmggfCAgNyArKysrKysrCiBuZXQv aXB2Ni9yb3V0ZS5jICAgICAgICAgICAgfCAyNSArKysrKysrKysrKysrKysrKysrKysrKysrCiAz IGZpbGVzIGNoYW5nZWQsIDM2IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9pbmNsdWRlL25l dC9pcDZfZmliLmggYi9pbmNsdWRlL25ldC9pcDZfZmliLmgKaW5kZXggZmQ2MGE4YWMwMmVlLi45 OGVjNTZlMmZhZTIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L2lwNl9maWIuaAorKysgYi9pbmNs dWRlL25ldC9pcDZfZmliLmgKQEAgLTIwNCw2ICsyMDQsNyBAQCBzdHJ1Y3QgZmliNl9pbmZvIHsK IHN0cnVjdCBydDZfaW5mbyB7CiAJc3RydWN0IGRzdF9lbnRyeQkJZHN0OwogCXN0cnVjdCBmaWI2 X2luZm8gX19yY3UJCSpmcm9tOworCWludAkJCQlzZXJudW07CiAKIAlzdHJ1Y3QgcnQ2a2V5CQkJ cnQ2aV9kc3Q7CiAJc3RydWN0IHJ0NmtleQkJCXJ0Nmlfc3JjOwpAQCAtMjkyLDYgKzI5Myw5IEBA IHN0YXRpYyBpbmxpbmUgdTMyIHJ0Nl9nZXRfY29va2llKGNvbnN0IHN0cnVjdCBydDZfaW5mbyAq cnQpCiAJc3RydWN0IGZpYjZfaW5mbyAqZnJvbTsKIAl1MzIgY29va2llID0gMDsKIAorCWlmIChy dC0+c2VybnVtKQorCQlyZXR1cm4gcnQtPnNlcm51bTsKKwogCXJjdV9yZWFkX2xvY2soKTsKIAog CWZyb20gPSByY3VfZGVyZWZlcmVuY2UocnQtPmZyb20pOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9u ZXQvbmV0X25hbWVzcGFjZS5oIGIvaW5jbHVkZS9uZXQvbmV0X25hbWVzcGFjZS5oCmluZGV4IDg1 NGQzOWVmMWNhMy4uOWNkYjY3ZTNhNTUzIDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC9uZXRfbmFt ZXNwYWNlLmgKKysrIGIvaW5jbHVkZS9uZXQvbmV0X25hbWVzcGFjZS5oCkBAIC00MzIsNiArNDMy LDEzIEBAIHN0YXRpYyBpbmxpbmUgaW50IHJ0X2dlbmlkX2lwdjQoY29uc3Qgc3RydWN0IG5ldCAq bmV0KQogCXJldHVybiBhdG9taWNfcmVhZCgmbmV0LT5pcHY0LnJ0X2dlbmlkKTsKIH0KIAorI2lm IElTX0VOQUJMRUQoQ09ORklHX0lQVjYpCitzdGF0aWMgaW5saW5lIGludCBydF9nZW5pZF9pcHY2 KGNvbnN0IHN0cnVjdCBuZXQgKm5ldCkKK3sKKwlyZXR1cm4gYXRvbWljX3JlYWQoJm5ldC0+aXB2 Ni5maWI2X3Nlcm51bSk7Cit9CisjZW5kaWYKKwogc3RhdGljIGlubGluZSB2b2lkIHJ0X2dlbmlk X2J1bXBfaXB2NChzdHJ1Y3QgbmV0ICpuZXQpCiB7CiAJYXRvbWljX2luYygmbmV0LT5pcHY0LnJ0 X2dlbmlkKTsKZGlmZiAtLWdpdCBhL25ldC9pcHY2L3JvdXRlLmMgYi9uZXQvaXB2Ni9yb3V0ZS5j CmluZGV4IDI5MzEyMjRiNjc0ZS4uNDJkMDU5NmRkMzk4IDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9y b3V0ZS5jCisrKyBiL25ldC9pcHY2L3JvdXRlLmMKQEAgLTEzODgsOSArMTM4OCwxOCBAQCBzdGF0 aWMgc3RydWN0IHJ0Nl9pbmZvICppcDZfcnRfcGNwdV9hbGxvYyhjb25zdCBzdHJ1Y3QgZmliNl9y ZXN1bHQgKnJlcykKIAl9CiAJaXA2X3J0X2NvcHlfaW5pdChwY3B1X3J0LCByZXMpOwogCXBjcHVf cnQtPnJ0NmlfZmxhZ3MgfD0gUlRGX1BDUFU7CisKKwlpZiAoZjZpLT5uaCkKKwkJcGNwdV9ydC0+ c2VybnVtID0gcnRfZ2VuaWRfaXB2NihkZXZfbmV0KGRldikpOworCiAJcmV0dXJuIHBjcHVfcnQ7 CiB9CiAKK3N0YXRpYyBib29sIHJ0Nl9pc192YWxpZChjb25zdCBzdHJ1Y3QgcnQ2X2luZm8gKnJ0 NikKK3sKKwlyZXR1cm4gcnQ2LT5zZXJudW0gPT0gcnRfZ2VuaWRfaXB2NihkZXZfbmV0KHJ0Ni0+ ZHN0LmRldikpOworfQorCiAvKiBJdCBzaG91bGQgYmUgY2FsbGVkIHdpdGggcmN1X3JlYWRfbG9j aygpIGFjcXVpcmVkICovCiBzdGF0aWMgc3RydWN0IHJ0Nl9pbmZvICpydDZfZ2V0X3BjcHVfcm91 dGUoY29uc3Qgc3RydWN0IGZpYjZfcmVzdWx0ICpyZXMpCiB7CkBAIC0xMzk4LDYgKzE0MDcsMTkg QEAgc3RhdGljIHN0cnVjdCBydDZfaW5mbyAqcnQ2X2dldF9wY3B1X3JvdXRlKGNvbnN0IHN0cnVj dCBmaWI2X3Jlc3VsdCAqcmVzKQogCiAJcGNwdV9ydCA9IHRoaXNfY3B1X3JlYWQoKnJlcy0+bmgt PnJ0NmlfcGNwdSk7CiAKKwlpZiAocGNwdV9ydCAmJiBwY3B1X3J0LT5zZXJudW0gJiYgIXJ0Nl9p c192YWxpZChwY3B1X3J0KSkgeworCQlzdHJ1Y3QgcnQ2X2luZm8gKnByZXYsICoqcDsKKworCQlw ID0gdGhpc19jcHVfcHRyKHJlcy0+bmgtPnJ0NmlfcGNwdSk7CisJCXByZXYgPSB4Y2hnKHAsIE5V TEwpOworCQlpZiAocHJldikgeworCQkJZHN0X2Rldl9wdXQoJnByZXYtPmRzdCk7CisJCQlkc3Rf cmVsZWFzZSgmcHJldi0+ZHN0KTsKKwkJfQorCisJCXBjcHVfcnQgPSBOVUxMOworCX0KKwogCXJl dHVybiBwY3B1X3J0OwogfQogCkBAIC0yNTk2LDYgKzI2MTgsOSBAQCBzdGF0aWMgc3RydWN0IGRz dF9lbnRyeSAqaXA2X2RzdF9jaGVjayhzdHJ1Y3QgZHN0X2VudHJ5ICpkc3QsIHUzMiBjb29raWUp CiAKIAlydCA9IGNvbnRhaW5lcl9vZihkc3QsIHN0cnVjdCBydDZfaW5mbywgZHN0KTsKIAorCWlm IChydC0+c2VybnVtKQorCQlyZXR1cm4gcnQ2X2lzX3ZhbGlkKHJ0KSA/IGRzdCA6IE5VTEw7CisK IAlyY3VfcmVhZF9sb2NrKCk7CiAKIAkvKiBBbGwgSVBWNiBkc3RzIGFyZSBjcmVhdGVkIHdpdGgg LT5vYnNvbGV0ZSBzZXQgdG8gdGhlIHZhbHVlCi0tIAoyLjI2LjIKCgpGcm9tIGJmZWYwMzQyMThk ODE5MWQ5ZTFkNjMzZjNjMWNmYmRmMDI5ZTcxYWEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IEppcmkgUGlya28gPGppcmlAbWVsbGFub3guY29tPgpEYXRlOiBNb24sIDI3IEFwciAyMDIw IDE4OjA1OjQ3ICswMzAwClN1YmplY3Q6IFtQQVRDSCAwNy80NF0gbWx4c3c6IHNwZWN0cnVtX2Fj bF90Y2FtOiBQb3NpdGlvbiB2Y2h1bmsgaW4gYSB2cmVnaW9uCiBsaXN0IHByb3Blcmx5CgpbIFVw c3RyZWFtIGNvbW1pdCA2ZWY0ODg5ZmMwYjNhYTZhYjkyOGU3NTY1OTM1YWM2Zjc2MmNlZTZlIF0K ClZyZWdpb24gaGVscGVycyB0byBnZXQgbWluIGFuZCBtYXggcHJpb3JpdHkgZGVwZW5kIG9uIHRo ZSBjb3JyZWN0Cm9yZGVyaW5nIG9mIHZjaHVua3MgaW4gdGhlIHZyZWdpb24gbGlzdC4gSG93ZXZl ciwgdGhlIGN1cnJlbnQgY29kZQphbHdheXMgYWRkcyBuZXcgY2h1bmsgdG8gdGhlIGVuZCBvZiB0 aGUgbGlzdCwgbm8gbWF0dGVyIHdoYXQgdGhlCnByaW9yaXR5IGlzLiBGaXggdGhpcyBieSBmaW5k aW5nIHRoZSBjb3JyZWN0IHBsYWNlIGluIHRoZSBsaXN0IGFuZCBwdXQKdmNodW5rIHRoZXJlLgoK Rml4ZXM6IDIyYTY3NzY2MWY1NiAoIm1seHN3OiBzcGVjdHJ1bTogSW50cm9kdWNlIEFDTCBjb3Jl IHdpdGggc2ltcGxlIFRDQU0gaW1wbGVtZW50YXRpb24iKQpTaWduZWQtb2ZmLWJ5OiBKaXJpIFBp cmtvIDxqaXJpQG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogSWRvIFNjaGltbWVsIDxpZG9z Y2hAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+Ci0tLQogLi4uL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1 bV9hY2xfdGNhbS5jICB8IDEyICsrKysrKysrKystLQogMSBmaWxlIGNoYW5nZWQsIDEwIGluc2Vy dGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJu ZXQvbWVsbGFub3gvbWx4c3cvc3BlY3RydW1fYWNsX3RjYW0uYyBiL2RyaXZlcnMvbmV0L2V0aGVy bmV0L21lbGxhbm94L21seHN3L3NwZWN0cnVtX2FjbF90Y2FtLmMKaW5kZXggZTk5MzE1OWU4ZTRj Li4yOTViMjcxMTJkMzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94 L21seHN3L3NwZWN0cnVtX2FjbF90Y2FtLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVs bGFub3gvbWx4c3cvc3BlY3RydW1fYWNsX3RjYW0uYwpAQCAtOTg2LDggKzk4Niw5IEBAIG1seHN3 X3NwX2FjbF90Y2FtX3ZjaHVua19jcmVhdGUoc3RydWN0IG1seHN3X3NwICptbHhzd19zcCwKIAkJ CQl1bnNpZ25lZCBpbnQgcHJpb3JpdHksCiAJCQkJc3RydWN0IG1seHN3X2Fma19lbGVtZW50X3Vz YWdlICplbHVzYWdlKQogeworCXN0cnVjdCBtbHhzd19zcF9hY2xfdGNhbV92Y2h1bmsgKnZjaHVu aywgKnZjaHVuazI7CiAJc3RydWN0IG1seHN3X3NwX2FjbF90Y2FtX3ZyZWdpb24gKnZyZWdpb247 Ci0Jc3RydWN0IG1seHN3X3NwX2FjbF90Y2FtX3ZjaHVuayAqdmNodW5rOworCXN0cnVjdCBsaXN0 X2hlYWQgKnBvczsKIAlpbnQgZXJyOwogCiAJaWYgKHByaW9yaXR5ID09IE1MWFNXX1NQX0FDTF9U Q0FNX0NBVENIQUxMX1BSSU8pCkBAIC0xMDI1LDcgKzEwMjYsMTQgQEAgbWx4c3dfc3BfYWNsX3Rj YW1fdmNodW5rX2NyZWF0ZShzdHJ1Y3QgbWx4c3dfc3AgKm1seHN3X3NwLAogCX0KIAogCW1seHN3 X3NwX2FjbF90Y2FtX3JlaGFzaF9jdHhfdnJlZ2lvbl9jaGFuZ2VkKHZyZWdpb24pOwotCWxpc3Rf YWRkX3RhaWwoJnZjaHVuay0+bGlzdCwgJnZyZWdpb24tPnZjaHVua19saXN0KTsKKworCS8qIFBv c2l0aW9uIHRoZSB2Y2h1bmsgaW5zaWRlIHRoZSBsaXN0IGFjY29yZGluZyB0byBwcmlvcml0eSAq LworCWxpc3RfZm9yX2VhY2gocG9zLCAmdnJlZ2lvbi0+dmNodW5rX2xpc3QpIHsKKwkJdmNodW5r MiA9IGxpc3RfZW50cnkocG9zLCB0eXBlb2YoKnZjaHVuazIpLCBsaXN0KTsKKwkJaWYgKHZjaHVu azItPnByaW9yaXR5ID4gcHJpb3JpdHkpCisJCQlicmVhazsKKwl9CisJbGlzdF9hZGRfdGFpbCgm dmNodW5rLT5saXN0LCBwb3MpOwogCW11dGV4X3VubG9jaygmdnJlZ2lvbi0+bG9jayk7CiAKIAly ZXR1cm4gdmNodW5rOwotLSAKMi4yNi4yCgoKRnJvbSBjMTBhNDUxZmNkYTQxNzcyMjBlYTFmOTg5 M2RjMDRhYzE4ODc4YTg1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBSb21hbiBNYXNo YWsgPG1ydkBtb2phdGF0dS5jb20+CkRhdGU6IEZyaSwgMSBNYXkgMjAyMCAyMTozNDoxOCAtMDQw MApTdWJqZWN0OiBbUEFUQ0ggMDgvNDRdIG5laWdoOiBzZW5kIHByb3RvY29sIHZhbHVlIGluIG5l aWdoYm9yIGNyZWF0ZQogbm90aWZpY2F0aW9uCgpbIFVwc3RyZWFtIGNvbW1pdCAzODIxMmJiMzFm ZTkyM2QwYTJjNjI5OWJkMmFkZmJiODRjZGRlZjJhIF0KCldoZW4gYSBuZXcgbmVpZ2hib3IgZW50 cnkgaGFzIGJlZW4gYWRkZWQsIGV2ZW50IGlzIGdlbmVyYXRlZCBidXQgaXQgZG9lcyBub3QKaW5j bHVkZSBwcm90b2NvbCwgYmVjYXVzZSBpdHMgdmFsdWUgaXMgYXNzaWduZWQgYWZ0ZXIgdGhlIGV2 ZW50IG5vdGlmaWNhdGlvbgpyb3V0aW5lIGhhcyBydW4sIHNvIG1vdmUgcHJvdG9jb2wgYXNzaWdu bWVudCBjb2RlIGVhcmxpZXIuCgpGaXhlczogZGY5YjBlMzBkNDRjICgibmVpZ2hib3I6IEFkZCBw cm90b2NvbCBhdHRyaWJ1dGUiKQpDYzogRGF2aWQgQWhlcm4gPGRzYWhlcm5AZ21haWwuY29tPgpT aWduZWQtb2ZmLWJ5OiBSb21hbiBNYXNoYWsgPG1ydkBtb2phdGF0dS5jb20+ClJldmlld2VkLWJ5 OiBEYXZpZCBBaGVybiA8ZHNhaGVybkBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMu IE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvY29yZS9uZWlnaGJvdXIuYyB8 IDYgKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL25ldC9jb3JlL25laWdoYm91ci5jIGIvbmV0L2NvcmUvbmVpZ2hib3Vy LmMKaW5kZXggNzg5YTczYWE3YmQ4Li4wNDk1M2U1ZjI1MzAgMTAwNjQ0Ci0tLSBhL25ldC9jb3Jl L25laWdoYm91ci5jCisrKyBiL25ldC9jb3JlL25laWdoYm91ci5jCkBAIC0xOTU0LDYgKzE5NTQs OSBAQCBzdGF0aWMgaW50IG5laWdoX2FkZChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3Qgbmxt c2doZHIgKm5saCwKIAkJCQkgICBORUlHSF9VUERBVEVfRl9PVkVSUklERV9JU1JPVVRFUik7CiAJ fQogCisJaWYgKHByb3RvY29sKQorCQluZWlnaC0+cHJvdG9jb2wgPSBwcm90b2NvbDsKKwogCWlm IChuZG0tPm5kbV9mbGFncyAmIE5URl9FWFRfTEVBUk5FRCkKIAkJZmxhZ3MgfD0gTkVJR0hfVVBE QVRFX0ZfRVhUX0xFQVJORUQ7CiAKQEAgLTE5NjcsOSArMTk3MCw2IEBAIHN0YXRpYyBpbnQgbmVp Z2hfYWRkKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBubG1zZ2hkciAqbmxoLAogCQllcnIg PSBfX25laWdoX3VwZGF0ZShuZWlnaCwgbGxhZGRyLCBuZG0tPm5kbV9zdGF0ZSwgZmxhZ3MsCiAJ CQkJICAgICBORVRMSU5LX0NCKHNrYikucG9ydGlkLCBleHRhY2spOwogCi0JaWYgKHByb3RvY29s KQotCQluZWlnaC0+cHJvdG9jb2wgPSBwcm90b2NvbDsKLQogCW5laWdoX3JlbGVhc2UobmVpZ2gp OwogCiBvdXQ6Ci0tIAoyLjI2LjIKCgpGcm9tIDIzY2Q1NmNiNTg0ZTQ1YzY0MjdjM2U5ZjJmNjNk ZTJmMTUxNzdjMmQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IElkbyBTY2hpbW1lbCA8 aWRvc2NoQG1lbGxhbm94LmNvbT4KRGF0ZTogVGh1LCAzMCBBcHIgMjAyMCAyMjozODo0NSArMDMw MApTdWJqZWN0OiBbUEFUQ0ggMDkvNDRdIG5ldDogYnJpZGdlOiB2bGFuOiBBZGQgYSBzY2hlZHVs ZSBwb2ludCBkdXJpbmcgVkxBTgogcHJvY2Vzc2luZwoKWyBVcHN0cmVhbSBjb21taXQgNzk3OTQ1 N2IxZDNhMDY5Y2Q4NTdmNWJkNjllMDcwZTMwMjIzZGQwYyBdCgpVc2VyIHNwYWNlIGNhbiByZXF1 ZXN0IHRvIGRlbGV0ZSBhIHJhbmdlIG9mIFZMQU5zIGZyb20gYSBicmlkZ2Ugc2xhdmUgaW4Kb25l IG5ldGxpbmsgcmVxdWVzdC4gRm9yIGVhY2ggZGVsZXRlZCBWTEFOIHRoZSBGREIgbmVlZHMgdG8g YmUgdHJhdmVyc2VkCmluIG9yZGVyIHRvIGZsdXNoIGFsbCB0aGUgYWZmZWN0ZWQgZW50cmllcy4K CklmIGEgbGFyZ2UgcmFuZ2Ugb2YgVkxBTnMgaXMgZGVsZXRlZCBhbmQgdGhlIG51bWJlciBvZiBG REIgZW50cmllcyBpcwpsYXJnZSBvciB0aGUgRkRCIGxvY2sgaXMgY29udGVudGVkLCBpdCBpcyBw b3NzaWJsZSBmb3IgdGhlIGtlcm5lbCB0bwpsb29wIHRocm91Z2ggdGhlIGRlbGV0ZWQgVkxBTnMg Zm9yIGEgbG9uZyB0aW1lLiBJbiBjYXNlIHByZWVtcHRpb24gaXMKZGlzYWJsZWQsIHRoaXMgY2Fu IHJlc3VsdCBpbiBhIHNvZnQgbG9ja3VwLgoKRml4IHRoaXMgYnkgYWRkaW5nIGEgc2NoZWR1bGUg cG9pbnQgYWZ0ZXIgZWFjaCBWTEFOIGlzIGRlbGV0ZWQgdG8geWllbGQKdGhlIENQVSwgaWYgbmVl ZGVkLiBUaGlzIGlzIHNhZmUgYmVjYXVzZSB0aGUgVkxBTnMgYXJlIHRyYXZlcnNlZCBpbgpwcm9j ZXNzIGNvbnRleHQuCgpGaXhlczogYmRjZWQ3ZWY3ODM4ICgiYnJpZGdlOiBzdXBwb3J0IGZvciBt dWx0aXBsZSB2bGFucyBhbmQgdmxhbiByYW5nZXMgaW4gc2V0bGluayBhbmQgZGVsbGluayByZXF1 ZXN0cyIpClNpZ25lZC1vZmYtYnk6IElkbyBTY2hpbW1lbCA8aWRvc2NoQG1lbGxhbm94LmNvbT4K UmVwb3J0ZWQtYnk6IFN0ZWZhbiBQcmllYmUgLSBQcm9maWhvc3QgQUcgPHMucHJpZWJlQHByb2Zp aG9zdC5hZz4KVGVzdGVkLWJ5OiBTdGVmYW4gUHJpZWJlIC0gUHJvZmlob3N0IEFHIDxzLnByaWVi ZUBwcm9maWhvc3QuYWc+CkFja2VkLWJ5OiBOaWtvbGF5IEFsZWtzYW5kcm92IDxuaWtvbGF5QGN1 bXVsdXNuZXR3b3Jrcy5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1A ZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvYnJpZGdlL2JyX25ldGxpbmsuYyB8IDEgKwogMSBmaWxl IGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCgpkaWZmIC0tZ2l0IGEvbmV0L2JyaWRnZS9icl9uZXRs aW5rLmMgYi9uZXQvYnJpZGdlL2JyX25ldGxpbmsuYwppbmRleCA0M2RhYjQwNjZmOTEuLmEwZjVk YmVlOGY5YyAxMDA2NDQKLS0tIGEvbmV0L2JyaWRnZS9icl9uZXRsaW5rLmMKKysrIGIvbmV0L2Jy aWRnZS9icl9uZXRsaW5rLmMKQEAgLTYxMiw2ICs2MTIsNyBAQCBpbnQgYnJfcHJvY2Vzc192bGFu X2luZm8oc3RydWN0IG5ldF9icmlkZ2UgKmJyLAogCQkJCQkgICAgICAgdiAtIDEsIHJ0bV9jbWQp OwogCQkJCXZfY2hhbmdlX3N0YXJ0ID0gMDsKIAkJCX0KKwkJCWNvbmRfcmVzY2hlZCgpOwogCQl9 CiAJCS8qIHZfY2hhbmdlX3N0YXJ0IGlzIHNldCBvbmx5IGlmIHRoZSBsYXN0L3dob2xlIHJhbmdl IGNoYW5nZWQgKi8KIAkJaWYgKHZfY2hhbmdlX3N0YXJ0KQotLSAKMi4yNi4yCgoKRnJvbSA1NGY5 MThhMjRmN2E0YzI5ODAyZjlhMTQ2Mzc0NWE2ODRlZjk0NGM5IE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBGbG9yaWFuIEZhaW5lbGxpIDxmLmZhaW5lbGxpQGdtYWlsLmNvbT4KRGF0ZTog TW9uLCA0IE1heSAyMDIwIDEzOjE4OjA2IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAxMC80NF0gbmV0 OiBkc2E6IERvIG5vdCBsZWF2ZSBEU0EgbWFzdGVyIHdpdGggTlVMTCBuZXRkZXZfb3BzCgpbIFVw c3RyZWFtIGNvbW1pdCAwNTA1NjlmYzgzODRjODA1NmJhY2VmY2MyNDZiY2IyZGZlNTc0OTM2IF0K CldoZW4gbmRvX2dldF9waHlzX3BvcnRfbmFtZSgpIGZvciB0aGUgQ1BVIHBvcnQgd2FzIGFkZGVk IHdlIGludHJvZHVjZWQKYW4gZWFybHkgY2hlY2sgZm9yIHdoZW4gdGhlIERTQSBtYXN0ZXIgbmV0 d29yayBkZXZpY2UgaW4KZHNhX21hc3Rlcl9uZG9fc2V0dXAoKSBhbHJlYWR5IGltcGxlbWVudHMg bmRvX2dldF9waHlzX3BvcnRfbmFtZSgpLiBXaGVuCndlIHBlcmZvcm0gdGhlIHRlYXJkb3duIG9w ZXJhdGlvbiBpbiBkc2FfbWFzdGVyX25kb190ZWFyZG93bigpIHdlIHdvdWxkCm5vdCBiZSBjaGVj a2luZyB0aGF0IGNwdV9kcC0+b3JpZ19uZG9fb3BzIHdhcyBzdWNjZXNzZnVsbHkgYWxsb2NhdGVk IGFuZApub24tTlVMTCBpbml0aWFsaXplZC4KCldpdGggbmV0d29yayBkZXZpY2UgZHJpdmVycyBz dWNoIGFzIHZpcnRpb19uZXQsIHRoaXMgbGVhZHMgdG8gYSBOUEQgYXMKc29vbiBhcyB0aGUgRFNB IHN3aXRjaCBoYW5naW5nIG9mZiBvZiBpdCBnZXRzIHRvcm4gZG93biBiZWNhdXNlIHdlIGFyZQpu b3cgYXNzaWduaW5nIHRoZSB2aXJ0aW9fbmV0IGRldmljZSdzIG5ldGRldl9vcHMgYSBOVUxMIHBv aW50ZXIuCgpGaXhlczogZGE3YjllOWIwMGQ0ICgibmV0OiBkc2E6IEFkZCBuZG9fZ2V0X3BoeXNf cG9ydF9uYW1lKCkgZm9yIENQVSBwb3J0IikKUmVwb3J0ZWQtYnk6IEFsbGVuIFBhaXMgPGFsbGVu LnBhaXNAb3JhY2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRmxvcmlhbiBGYWluZWxsaSA8Zi5mYWlu ZWxsaUBnbWFpbC5jb20+ClRlc3RlZC1ieTogQWxsZW4gUGFpcyA8YWxsZW4ucGFpc0BvcmFjbGUu Y29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ Ci0tLQogbmV0L2RzYS9tYXN0ZXIuYyB8IDMgKystCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRp b25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2RzYS9tYXN0ZXIuYyBiL25l dC9kc2EvbWFzdGVyLmMKaW5kZXggYmQ0NGJkZTI3MmY0Li40ZjUyMTllMmU2M2MgMTAwNjQ0Ci0t LSBhL25ldC9kc2EvbWFzdGVyLmMKKysrIGIvbmV0L2RzYS9tYXN0ZXIuYwpAQCAtMjg5LDcgKzI4 OSw4IEBAIHN0YXRpYyB2b2lkIGRzYV9tYXN0ZXJfbmRvX3RlYXJkb3duKHN0cnVjdCBuZXRfZGV2 aWNlICpkZXYpCiB7CiAJc3RydWN0IGRzYV9wb3J0ICpjcHVfZHAgPSBkZXYtPmRzYV9wdHI7CiAK LQlkZXYtPm5ldGRldl9vcHMgPSBjcHVfZHAtPm9yaWdfbmRvX29wczsKKwlpZiAoY3B1X2RwLT5v cmlnX25kb19vcHMpCisJCWRldi0+bmV0ZGV2X29wcyA9IGNwdV9kcC0+b3JpZ19uZG9fb3BzOwog CWNwdV9kcC0+b3JpZ19uZG9fb3BzID0gTlVMTDsKIH0KIAotLSAKMi4yNi4yCgoKRnJvbSA4ZGUx NGFkMTkxM2YwY2E2MmIzYzg5OTBlNmMwMTdmYzVjOTRkYWM4IE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBGbG9yaWFuIEZhaW5lbGxpIDxmLmZhaW5lbGxpQGdtYWlsLmNvbT4KRGF0ZTog U3VuLCAzIE1heSAyMDIwIDIwOjUwOjU3IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAxMS80NF0gbmV0 OiBkc2E6IERvIG5vdCBtYWtlIHVzZXIgcG9ydCBlcnJvcnMgZmF0YWwKClsgVXBzdHJlYW0gY29t bWl0IDg2ZjhiMWMwMWEwYTUzN2E3M2QyOTk2NjE1MTMzYmU2M2NkZjc1ZGIgXQoKUHJpb3IgdG8g MWQyNzczMmY0MTFkICgibmV0OiBkc2E6IHNldHVwIGFuZCB0ZWFyZG93biBwb3J0cyIpLCB3ZSB3 b3VsZApub3QgdHJlYXQgZmFpbHVyZXMgdG8gc2V0LXVwIGFuIHVzZXIgcG9ydCBhcyBmYXRhbCwg YnV0IGFmdGVyIHRoaXMKY29tbWl0IHdlIHdvdWxkLCB3aGljaCBpcyBhIHJlZ3Jlc3Npb24gZm9y IHNvbWUgc3lzdGVtcyB3aGVyZSBpbnRlcmZhY2VzCm1heSBiZSBkZWNsYXJlZCBpbiB0aGUgRGV2 aWNlIFRyZWUsIGJ1dCB0aGUgdW5kZXJseWluZyBoYXJkd2FyZSBtYXkgbm90CmJlIHByZXNlbnQg KHBsdWdnYWJsZSBkYXVnaHRlciBjYXJkcyBmb3IgaW5zdGFuY2UpLgoKRml4ZXM6IDFkMjc3MzJm NDExZCAoIm5ldDogZHNhOiBzZXR1cCBhbmQgdGVhcmRvd24gcG9ydHMiKQpTaWduZWQtb2ZmLWJ5 OiBGbG9yaWFuIEZhaW5lbGxpIDxmLmZhaW5lbGxpQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEFu ZHJldyBMdW5uIDxhbmRyZXdAbHVubi5jaD4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVy IDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9kc2EvZHNhMi5jIHwgMiArLQogMSBmaWxl IGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0 L2RzYS9kc2EyLmMgYi9uZXQvZHNhL2RzYTIuYwppbmRleCBlN2MzMGI0NzIwMzQuLjE1NGI2Mzlk MjdiOCAxMDA2NDQKLS0tIGEvbmV0L2RzYS9kc2EyLmMKKysrIGIvbmV0L2RzYS9kc2EyLmMKQEAg LTQ1OSw3ICs0NTksNyBAQCBzdGF0aWMgaW50IGRzYV90cmVlX3NldHVwX3N3aXRjaGVzKHN0cnVj dCBkc2Ffc3dpdGNoX3RyZWUgKmRzdCkKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KGRwLCAmZHN0LT5w b3J0cywgbGlzdCkgewogCQllcnIgPSBkc2FfcG9ydF9zZXR1cChkcCk7CiAJCWlmIChlcnIpCi0J CQlnb3RvIHRlYXJkb3duOworCQkJY29udGludWU7CiAJfQogCiAJcmV0dXJuIDA7Ci0tIAoyLjI2 LjIKCgpGcm9tIDVmYzkzMWIxNzg5NGZlZmRkMjAzMzczZTQ2YzRkYzMyMGY3OTk5MWEgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IERlamluIFpoZW5nIDx6aGVuZ2RlamluNUBnbWFpbC5j b20+CkRhdGU6IFN1biwgMyBNYXkgMjAyMCAyMDozMjoyNiArMDgwMApTdWJqZWN0OiBbUEFUQ0gg MTIvNDRdIG5ldDogbWFjYjogZml4IGFuIGlzc3VlIGFib3V0IGxlYWsgcmVsYXRlZCBzeXN0ZW0K IHJlc291cmNlcwoKWyBVcHN0cmVhbSBjb21taXQgYjk1OWM3N2RhYzA5MzQ4OTU1ZjM0NDEwNGM2 YTkyMWViZTEwNDc1MyBdCgpBIGNhbGwgb2YgdGhlIGZ1bmN0aW9uIG1hY2JfaW5pdCgpIGNhbiBm YWlsIGluIHRoZSBmdW5jdGlvbgpmdTU0MF9jMDAwX2luaXQuIFRoZSByZWxhdGVkIHN5c3RlbSBy ZXNvdXJjZXMgd2VyZSBub3QgcmVsZWFzZWQKdGhlbi4gdXNlIGRldm1fcGxhdGZvcm1faW9yZW1h cF9yZXNvdXJjZSgpIHRvIHJlcGxhY2UgaW9yZW1hcCgpCnRvIGZpeCBpdC4KCkZpeGVzOiBjMjE4 YWQ1NTkwMjBmZjkgKCJtYWNiOiBBZGQgc3VwcG9ydCBmb3IgU2lGaXZlIEZVNTQwLUMwMDAiKQpD YzogQW5keSBTaGV2Y2hlbmtvIDxhbmR5LnNoZXZjaGVua29AZ21haWwuY29tPgpSZXZpZXdlZC1i eTogWWFzaCBTaGFoIDx5YXNoLnNoYWhAc2lmaXZlLmNvbT4KU3VnZ2VzdGVkLWJ5OiBOaWNvbGFz IEZlcnJlIDxuaWNvbGFzLmZlcnJlQG1pY3JvY2hpcC5jb20+ClN1Z2dlc3RlZC1ieTogQW5keSBT aGV2Y2hlbmtvIDxhbmR5LnNoZXZjaGVua29AZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEZWpp biBaaGVuZyA8emhlbmdkZWppbjVAZ21haWwuY29tPgpBY2tlZC1ieTogTmljb2xhcyBGZXJyZSA8 bmljb2xhcy5mZXJyZUBtaWNyb2NoaXAuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxs ZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5j ZS9tYWNiX21haW4uYyB8IDEyICsrKy0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0 aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5l dC9jYWRlbmNlL21hY2JfbWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNi X21haW4uYwppbmRleCBiM2E1MTkzNWU4ZTAuLjk2ZGZiNTFkZTgxMyAxMDA2NDQKLS0tIGEvZHJp dmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYworKysgYi9kcml2ZXJzL25ldC9l dGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jCkBAIC00MTU5LDE1ICs0MTU5LDkgQEAgc3RhdGlj IGludCBmdTU0MF9jMDAwX2Nsa19pbml0KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsIHN0 cnVjdCBjbGsgKipwY2xrLAogCiBzdGF0aWMgaW50IGZ1NTQwX2MwMDBfaW5pdChzdHJ1Y3QgcGxh dGZvcm1fZGV2aWNlICpwZGV2KQogewotCXN0cnVjdCByZXNvdXJjZSAqcmVzOwotCi0JcmVzID0g cGxhdGZvcm1fZ2V0X3Jlc291cmNlKHBkZXYsIElPUkVTT1VSQ0VfTUVNLCAxKTsKLQlpZiAoIXJl cykKLQkJcmV0dXJuIC1FTk9ERVY7Ci0KLQltZ210LT5yZWcgPSBpb3JlbWFwKHJlcy0+c3RhcnQs IHJlc291cmNlX3NpemUocmVzKSk7Ci0JaWYgKCFtZ210LT5yZWcpCi0JCXJldHVybiAtRU5PTUVN OworCW1nbXQtPnJlZyA9IGRldm1fcGxhdGZvcm1faW9yZW1hcF9yZXNvdXJjZShwZGV2LCAxKTsK KwlpZiAoSVNfRVJSKG1nbXQtPnJlZykpCisJCXJldHVybiBQVFJfRVJSKG1nbXQtPnJlZyk7CiAK IAlyZXR1cm4gbWFjYl9pbml0KHBkZXYpOwogfQotLSAKMi4yNi4yCgoKRnJvbSA0OGRhZWRkM2Rm MTNkNTg4ZGYzZjQ2YmRjMWVkZTcxYmEyYjhmYWVmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBTY290dCBEaWFsIDxzY290dEBzY290dGRpYWwuY29tPgpEYXRlOiBGcmksIDI0IEFwciAy MDIwIDE4OjUxOjA4IC0wNDAwClN1YmplY3Q6IFtQQVRDSCAxMy80NF0gbmV0OiBtYWNzZWM6IHBy ZXNlcnZlIGluZ3Jlc3MgZnJhbWUgb3JkZXJpbmcKClsgVXBzdHJlYW0gY29tbWl0IGFiMDQ2YTVk NGJlNGM5MGEzOTUyYTBlYWU3NTYxN2I0OWMwY2IwMWIgXQoKTUFDc2VjIGRlY3J5cHRpb24gYWx3 YXlzIG9jY3VycyBpbiBhIHNvZnRpcnEgY29udGV4dC4gU2luY2UKdGhlIEZQVSBtYXkgbm90IGJl IHVzYWJsZSBpbiB0aGUgc29mdGlycSBjb250ZXh0LCB0aGUgY2FsbCB0bwpkZWNyeXB0IG1heSBi ZSBzY2hlZHVsZWQgb24gdGhlIGNyeXB0ZCB3b3JrIHF1ZXVlLiBUaGUgY3J5cHRkCndvcmsgcXVl dWUgZG9lcyBub3QgcHJvdmlkZSBvcmRlcmluZyBndWFyYW50ZWVzLiBUaGVyZWZvcmUsCnByZXNl cnZpbmcgb3JkZXIgcmVxdWlyZXMgbWFza2luZyBvdXQgQVNZTkMgaW1wbGVtZW50YXRpb25zCm9m IGdjbShhZXMpLgoKRm9yIGluc3RhbmNlLCBhbiBJbnRlbCBDUFUgd2l0aCBBRVMtTkkgbWFrZXMg YXZhaWxhYmxlIHRoZQpnZW5lcmljLWdjbS1hZXNuaSBkcml2ZXIgZnJvbSB0aGUgYWVzbmlfaW50 ZWwgbW9kdWxlIHRvCmltcGxlbWVudCBnY20oYWVzKS4gSG93ZXZlciwgdGhpcyBpbXBsZW1lbnRh dGlvbiByZXF1aXJlcwp0aGUgRlBVLCBzbyBpdCBpcyBub3QgYWx3YXlzIGF2YWlsYWJsZSB0byB1 c2UgZnJvbSBhIHNvZnRpcnEKY29udGV4dCwgYW5kIHdpbGwgZmFsbGJhY2sgdG8gdGhlIGNyeXB0 ZCB3b3JrIHF1ZXVlLCB3aGljaApkb2VzIG5vdCBwcmVzZXJ2ZSBmcmFtZSBvcmRlcmluZy4gV2l0 aCB0aGlzIGNoYW5nZSwgc3VjaCBhCnN5c3RlbSB3b3VsZCBzZWxlY3QgZ2NtX2Jhc2UoY3RyKGFl cy1hZXNuaSksZ2hhc2gtZ2VuZXJpYykuCldoaWxlIHRoZSBhZXMtYWVzbmkgaW1wbGVtZW50YXRp b24gcHJlZmVycyB0byB1c2UgdGhlIEZQVSwgaXQKd2lsbCBmYWxsYmFjayB0byB0aGUgYWVzLWFz bSBpbXBsZW1lbnRhdGlvbiBpZiB1bmF2YWlsYWJsZS4KCkJ5IHVzaW5nIGEgc3luY2hyb25vdXMg dmVyc2lvbiBvZiBnY20oYWVzKSwgdGhlIGRlY3J5cHRpb24Kd2lsbCBjb21wbGV0ZSBiZWZvcmUg cmV0dXJuaW5nIGZyb20gY3J5cHRvX2FlYWRfZGVjcnlwdCgpLgpUaGVyZWZvcmUsIHRoZSBtYWNz ZWNfZGVjcnlwdF9kb25lKCkgY2FsbGJhY2sgd2lsbCBiZSBjYWxsZWQKYmVmb3JlIHJldHVybmlu ZyBmcm9tIG1hY3NlY19kZWNyeXB0KCkuIFRodXMsIHRoZSBvcmRlciBvZgpjYWxscyB0byBtYWNz ZWNfcG9zdF9kZWNyeXB0KCkgZm9yIHRoZSBmcmFtZXMgaXMgcHJlc2VydmVkLgoKV2hpbGUgaXQn cyBwcmVzdW1hYmxlIHRoYXQgdGhlIHB1cmUgQUVTLU5JIHZlcnNpb24gb2YgZ2NtKGFlcykKaXMg bW9yZSBwZXJmb3JtYW50LCB0aGUgaHlicmlkIHNvbHV0aW9uIGlzIGNhcGFibGUgb2YgZ2lnYWJp dApzcGVlZHMgb24gbW9kZXN0IGhhcmR3YXJlLiBSZWdhcmRsZXNzLCBwcmVzZXJ2aW5nIHRoZSBv cmRlcgpvZiBmcmFtZXMgaXMgcGFyYW1vdW50IGZvciBtYW55IG5ldHdvcmsgcHJvdG9jb2xzIChl LmcuLAp0cmlnZ2VyaW5nIFRDUCByZXRyaWVzKS4gV2l0aGluIHRoZSBNQUNzZWMgZHJpdmVyIGl0 c2VsZiwgdGhlCnJlcGxheSBwcm90ZWN0aW9uIGlzIHRyaXBwZWQgYnkgdGhlIG91dC1vZi1vcmRl ciBmcmFtZXMsIGFuZApjYW4gY2F1c2UgZnJhbWVzIHRvIGJlIGRyb3BwZWQuCgpUaGlzIGJ1ZyBo YXMgYmVlbiBwcmVzZW50IGluIHRoaXMgY29kZSBzaW5jZSBpdCB3YXMgYWRkZWQgaW4KdjQuNiwg aG93ZXZlciBpdCBtYXkgbm90IGhhdmUgYmVlbiBub3RpY2VkIHNpbmNlIG5vdCBhbGwgQ1BVcwpo YXZlIEZQVSBvZmZsb2FkIGF2YWlsYWJsZS4gQWRkaXRpb25hbGx5LCB0aGUgYnVnIG1hbmlmZXN0 cwphcyBvY2Nhc2lvbmFsIG91dC1vZi1vcmRlciBwYWNrZXRzIHRoYXQgYXJlIGVhc2lseQptaXNh dHRyaWJ1dGVkIHRvIG90aGVyIG5ldHdvcmsgcGhlbm9tZW5hLgoKV2hlbiB0aGlzIGNvZGUgd2Fz IGFkZGVkIGluIHY0LjYsIHRoZSBjcnlwdG8vZ2NtLmMgY29kZSBkaWQKbm90IHJlc3RyaWN0IHNl bGVjdGlvbiBvZiB0aGUgZ2hhc2ggZnVuY3Rpb24gYmFzZWQgb24gdGhlCkFTWU5DIGZsYWcuIEZv ciBpbnN0YW5jZSwgeDg2IENQVXMgd2l0aCBQQ0xNVUxRRFEgd291bGQKc2VsZWN0IHRoZSBnaGFz aC1jbG11bG5pIGRyaXZlciBpbnN0ZWFkIG9mIGdoYXNoLWdlbmVyaWMsCndoaWNoIHN1Ym1pdHMg dG8gdGhlIGNyeXB0ZCB3b3JrIHF1ZXVlIGlmIHRoZSBGUFUgaXMgYnVzeS4KSG93ZXZlciwgdGhp cyBidWcgd2FzIHdhcyBjb3JyZWN0ZWQgaW4gdjQuOCBieSBjb21taXQKYjMwYmRmYTg2NDMxYWZi YWZlMTUyODRhM2FkNWFjMTliNDliODhlMywgYW5kIHdhcyBiYWNrcG9ydGVkCmFsbCB0aGUgd2F5 IGJhY2sgdG8gdGhlIHYzLjE0IHN0YWJsZSBicmFuY2gsIHNvIHRoaXMgcGF0Y2gKc2hvdWxkIGJl IGFwcGxpY2FibGUgYmFjayB0byB0aGUgdjQuNiBzdGFibGUgYnJhbmNoLgoKU2lnbmVkLW9mZi1i eTogU2NvdHQgRGlhbCA8c2NvdHRAc2NvdHRkaWFsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQg Uy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L21hY3NlYy5j IHwgMyArKy0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkK CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9tYWNzZWMuYyBiL2RyaXZlcnMvbmV0L21hY3NlYy5j CmluZGV4IDM1YWE3YjBhMmFlYi4uMTEwMjhlZjhiZTRlIDEwMDY0NAotLS0gYS9kcml2ZXJzL25l dC9tYWNzZWMuYworKysgYi9kcml2ZXJzL25ldC9tYWNzZWMuYwpAQCAtMTIyNiw3ICsxMjI2LDgg QEAgc3RhdGljIHN0cnVjdCBjcnlwdG9fYWVhZCAqbWFjc2VjX2FsbG9jX3RmbShjaGFyICprZXks IGludCBrZXlfbGVuLCBpbnQgaWN2X2xlbikKIAlzdHJ1Y3QgY3J5cHRvX2FlYWQgKnRmbTsKIAlp bnQgcmV0OwogCi0JdGZtID0gY3J5cHRvX2FsbG9jX2FlYWQoImdjbShhZXMpIiwgMCwgMCk7CisJ LyogUGljayBhIHN5bmMgZ2NtKGFlcykgY2lwaGVyIHRvIGVuc3VyZSBvcmRlciBpcyBwcmVzZXJ2 ZWQuICovCisJdGZtID0gY3J5cHRvX2FsbG9jX2FlYWQoImdjbShhZXMpIiwgMCwgQ1JZUFRPX0FM R19BU1lOQyk7CiAKIAlpZiAoSVNfRVJSKHRmbSkpCiAJCXJldHVybiB0Zm07Ci0tIAoyLjI2LjIK CgpGcm9tIDNhOTQ2ZTcyMDhlMzQ0MjFiZTZmZDU3MmJlODNjNzM2ZmYxMzY2NmQgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IFRhcmlxIFRvdWthbiA8dGFyaXF0QG1lbGxhbm94LmNvbT4K RGF0ZTogTW9uLCA0IE1heSAyMDIwIDExOjM2OjAyICswMzAwClN1YmplY3Q6IFtQQVRDSCAxNC80 NF0gbmV0L21seDRfY29yZTogRml4IHVzZSBvZiBFTk9TUEMgYXJvdW5kCiBtbHg0X2NvdW50ZXJf YWxsb2MoKQoKWyBVcHN0cmVhbSBjb21taXQgNDBlNDczMDcxZGJhZDA0MzE2ZGRjMzYxM2MzYTNk MWM3NTQ1ODI5OSBdCgpXaGVuIEVOT1NQQyBpcyBzZXQgdGhlIGlkeCBpcyBzdGlsbCB2YWxpZCBh bmQgZ2V0cyBzZXQgdG8gdGhlIGdsb2JhbApNTFg0X1NJTktfQ09VTlRFUl9JTkRFWC4gIEhvd2V2 ZXIgZ2NjJ3Mgc3RhdGljIGFuYWx5c2lzIGNhbm5vdCB0ZWxsIHRoYXQKRU5PU1BDIGlzIGltcG9z c2libGUgZnJvbSBtbHg0X2NtZF9pbW0oKSBhbmQgZ2l2ZXMgdGhpcyB3YXJuaW5nOgoKZHJpdmVy cy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9tYWluLmM6MjU1MjoyODogd2FybmluZzogJ2lk eCcgbWF5IGJlCnVzZWQgdW5pbml0aWFsaXplZCBpbiB0aGlzIGZ1bmN0aW9uIFstV21heWJlLXVu aW5pdGlhbGl6ZWRdCiAyNTUyIHwgICAgcHJpdi0+ZGVmX2NvdW50ZXJbcG9ydF0gPSBpZHg7CgpB bHNvLCB3aGVuIEVOT1NQQyBpcyByZXR1cm5lZCBtbHg0X2FsbG9jYXRlX2RlZmF1bHRfY291bnRl cnMgc2hvdWxkIG5vdApmYWlsLgoKRml4ZXM6IDZkZTVmN2Y2YTFmYSAoIm5ldC9tbHg0X2NvcmU6 IEFsbG9jYXRlIGRlZmF1bHQgY291bnRlciBwZXIgcG9ydCIpClNpZ25lZC1vZmYtYnk6IEphc29u IEd1bnRob3JwZSA8amdnQG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogVGFyaXEgVG91a2Fu IDx0YXJpcXRAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRh dmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4 NC9tYWluLmMgfCA0ICsrKy0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDEgZGVs ZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg0 L21haW4uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDQvbWFpbi5jCmluZGV4 IDU3MTZjM2QyYmI4Ni4uYzcyYzRlMWVhMzgzIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhl cm5ldC9tZWxsYW5veC9tbHg0L21haW4uYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxs YW5veC9tbHg0L21haW4uYwpAQCAtMjU1MCw2ICsyNTUwLDcgQEAgc3RhdGljIGludCBtbHg0X2Fs bG9jYXRlX2RlZmF1bHRfY291bnRlcnMoc3RydWN0IG1seDRfZGV2ICpkZXYpCiAKIAkJaWYgKCFl cnIgfHwgZXJyID09IC1FTk9TUEMpIHsKIAkJCXByaXYtPmRlZl9jb3VudGVyW3BvcnRdID0gaWR4 OworCQkJZXJyID0gMDsKIAkJfSBlbHNlIGlmIChlcnIgPT0gLUVOT0VOVCkgewogCQkJZXJyID0g MDsKIAkJCWNvbnRpbnVlOwpAQCAtMjYwMCw3ICsyNjAxLDggQEAgaW50IG1seDRfY291bnRlcl9h bGxvYyhzdHJ1Y3QgbWx4NF9kZXYgKmRldiwgdTMyICppZHgsIHU4IHVzYWdlKQogCQkJCSAgIE1M WDRfQ01EX1RJTUVfQ0xBU1NfQSwgTUxYNF9DTURfV1JBUFBFRCk7CiAJCWlmICghZXJyKQogCQkJ KmlkeCA9IGdldF9wYXJhbV9sKCZvdXRfcGFyYW0pOwotCisJCWlmIChXQVJOX09OKGVyciA9PSAt RU5PU1BDKSkKKwkJCWVyciA9IC1FSU5WQUw7CiAJCXJldHVybiBlcnI7CiAJfQogCXJldHVybiBf X21seDRfY291bnRlcl9hbGxvYyhkZXYsIGlkeCk7Ci0tIAoyLjI2LjIKCgpGcm9tIDc1YjZlY2M0 YzA1Y2ZmOTExYzkxZDRmZDJmZWQ0ODYzMDI3NTJlNjIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IEJhcnVjaCBTaWFjaCA8YmFydWNoQHRrb3MuY28uaWw+CkRhdGU6IFN1biwgMjYgQXBy IDIwMjAgMDk6MjI6MDYgKzAzMDAKU3ViamVjdDogW1BBVENIIDE1LzQ0XSBuZXQ6IHBoeTogbWFy dmVsbDEwZzogZml4IHRlbXBlcmF0dXJlIHNlbnNvciBvbiAyMTEwCgpbIFVwc3RyZWFtIGNvbW1p dCBjM2UzMDJlZGNhMjQ1N2JiZDBjOTU4YzQ0NWE3NTM4ZmJmNmE2YWM4IF0KClJlYWQgdGhlIHRl bXBlcmF0dXJlIHNlbnNvciByZWdpc3RlciBmcm9tIHRoZSBjb3JyZWN0IGxvY2F0aW9uIGZvciB0 aGUKODhFMjExMCBQSFkuIFRoZXJlIGlzIG5vIGVuYWJsZS9kaXNhYmxlIGJpdCBvbiAyMTEwLCBz byBtYWtlCm12MzMxMF9od21vbl9jb25maWcoKSBydW4gb24gODhYMzMxMCBvbmx5LgoKRml4ZXM6 IDYyZDAxNTM1NDc0YjYxICgibmV0OiBwaHk6IG1hcnZlbGwxMGc6IGFkZCBzdXBwb3J0IGZvciB0 aGUgODh4MjExMCBQSFkiKQpDYzogTWF4aW1lIENoZXZhbGxpZXIgPG1heGltZS5jaGV2YWxsaWVy QGJvb3RsaW4uY29tPgpSZXZpZXdlZC1ieTogQW5kcmV3IEx1bm4gPGFuZHJld0BsdW5uLmNoPgpT aWduZWQtb2ZmLWJ5OiBCYXJ1Y2ggU2lhY2ggPGJhcnVjaEB0a29zLmNvLmlsPgpSZXZpZXdlZC1i eTogUnVzc2VsbCBLaW5nIDxybWsra2VybmVsQGFybWxpbnV4Lm9yZy51az4KU2lnbmVkLW9mZi1i eTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0 L3BoeS9tYXJ2ZWxsMTBnLmMgfCAyNyArKysrKysrKysrKysrKysrKysrKysrKysrKy0KIDEgZmls ZSBjaGFuZ2VkLCAyNiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9uZXQvcGh5L21hcnZlbGwxMGcuYyBiL2RyaXZlcnMvbmV0L3BoeS9tYXJ2ZWxsMTBn LmMKaW5kZXggNjRjOWYzYmJhMmNkLi5lMjY1OGRhY2UxNWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv bmV0L3BoeS9tYXJ2ZWxsMTBnLmMKKysrIGIvZHJpdmVycy9uZXQvcGh5L21hcnZlbGwxMGcuYwpA QCAtNDQsNiArNDQsOSBAQCBlbnVtIHsKIAlNVl9QQ1NfUEFJUlNXQVBfQUIJPSAweDAwMDIsCiAJ TVZfUENTX1BBSVJTV0FQX05PTkUJPSAweDAwMDMsCiAKKwkvKiBUZW1wZXJhdHVyZSByZWFkIHJl Z2lzdGVyICg4OEUyMTEwIG9ubHkpICovCisJTVZfUENTX1RFTVAJCT0gMHg4MDQyLAorCiAJLyog VGhlc2UgcmVnaXN0ZXJzIGFwcGVhciBhdCAweDgwMFggYW5kIDB4YTAwWCAtIHRoZSAweGEwMFgg Y29udHJvbAogCSAqIHJlZ2lzdGVycyBhcHBlYXIgdG8gc2V0IHRoZW1zZWx2ZXMgdG8gdGhlIDB4 ODAwWCB3aGVuIEFOIGlzCiAJICogcmVzdGFydGVkLCBidXQgc3RhdHVzIHJlZ2lzdGVycyBhcHBl YXIgcmVhZGFibGUgZnJvbSBlaXRoZXIuCkBAIC01NCw2ICs1Nyw3IEBAIGVudW0gewogCS8qIFZl bmRvcjIgTU1EIHJlZ2lzdGVycyAqLwogCU1WX1YyX1BPUlRfQ1RSTAkJPSAweGYwMDEsCiAJTVZf VjJfUE9SVF9DVFJMX1BXUkRPV04gPSAweDA4MDAsCisJLyogVGVtcGVyYXR1cmUgY29udHJvbC9y ZWFkIHJlZ2lzdGVycyAoODhYMzMxMCBvbmx5KSAqLwogCU1WX1YyX1RFTVBfQ1RSTAkJPSAweGYw OGEsCiAJTVZfVjJfVEVNUF9DVFJMX01BU0sJPSAweGMwMDAsCiAJTVZfVjJfVEVNUF9DVFJMX1NB TVBMRQk9IDB4MDAwMCwKQEAgLTc5LDYgKzgzLDI0IEBAIHN0YXRpYyB1bW9kZV90IG12MzMxMF9o d21vbl9pc192aXNpYmxlKGNvbnN0IHZvaWQgKmRhdGEsCiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRp YyBpbnQgbXYzMzEwX2h3bW9uX3JlYWRfdGVtcF9yZWcoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRl dikKK3sKKwlyZXR1cm4gcGh5X3JlYWRfbW1kKHBoeWRldiwgTURJT19NTURfVkVORDIsIE1WX1Yy X1RFTVApOworfQorCitzdGF0aWMgaW50IG12MjExMF9od21vbl9yZWFkX3RlbXBfcmVnKHN0cnVj dCBwaHlfZGV2aWNlICpwaHlkZXYpCit7CisJcmV0dXJuIHBoeV9yZWFkX21tZChwaHlkZXYsIE1E SU9fTU1EX1BDUywgTVZfUENTX1RFTVApOworfQorCitzdGF0aWMgaW50IG12MTBnX2h3bW9uX3Jl YWRfdGVtcF9yZWcoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldikKK3sKKwlpZiAocGh5ZGV2LT5k cnYtPnBoeV9pZCA9PSBNQVJWRUxMX1BIWV9JRF84OFgzMzEwKQorCQlyZXR1cm4gbXYzMzEwX2h3 bW9uX3JlYWRfdGVtcF9yZWcocGh5ZGV2KTsKKwllbHNlIC8qIE1BUlZFTExfUEhZX0lEXzg4RTIx MTAgKi8KKwkJcmV0dXJuIG12MjExMF9od21vbl9yZWFkX3RlbXBfcmVnKHBoeWRldik7Cit9CisK IHN0YXRpYyBpbnQgbXYzMzEwX2h3bW9uX3JlYWQoc3RydWN0IGRldmljZSAqZGV2LCBlbnVtIGh3 bW9uX3NlbnNvcl90eXBlcyB0eXBlLAogCQkJICAgICB1MzIgYXR0ciwgaW50IGNoYW5uZWwsIGxv bmcgKnZhbHVlKQogewpAQCAtOTEsNyArMTEzLDcgQEAgc3RhdGljIGludCBtdjMzMTBfaHdtb25f cmVhZChzdHJ1Y3QgZGV2aWNlICpkZXYsIGVudW0gaHdtb25fc2Vuc29yX3R5cGVzIHR5cGUsCiAJ fQogCiAJaWYgKHR5cGUgPT0gaHdtb25fdGVtcCAmJiBhdHRyID09IGh3bW9uX3RlbXBfaW5wdXQp IHsKLQkJdGVtcCA9IHBoeV9yZWFkX21tZChwaHlkZXYsIE1ESU9fTU1EX1ZFTkQyLCBNVl9WMl9U RU1QKTsKKwkJdGVtcCA9IG12MTBnX2h3bW9uX3JlYWRfdGVtcF9yZWcocGh5ZGV2KTsKIAkJaWYg KHRlbXAgPCAwKQogCQkJcmV0dXJuIHRlbXA7CiAKQEAgLTE0NCw2ICsxNjYsOSBAQCBzdGF0aWMg aW50IG12MzMxMF9od21vbl9jb25maWcoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldiwgYm9vbCBl bmFibGUpCiAJdTE2IHZhbDsKIAlpbnQgcmV0OwogCisJaWYgKHBoeWRldi0+ZHJ2LT5waHlfaWQg IT0gTUFSVkVMTF9QSFlfSURfODhYMzMxMCkKKwkJcmV0dXJuIDA7CisKIAlyZXQgPSBwaHlfd3Jp dGVfbW1kKHBoeWRldiwgTURJT19NTURfVkVORDIsIE1WX1YyX1RFTVAsCiAJCQkgICAgTVZfVjJf VEVNUF9VTktOT1dOKTsKIAlpZiAocmV0IDwgMCkKLS0gCjIuMjYuMgoKCkZyb20gZmEzMDc2NWY5 MTczNDEwMTczOTA0MzY1MDgzNjhiNmY0YjYwZTU0ZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpEYXRlOiBTYXQsIDIgTWF5 IDIwMjAgMjA6MDk6MjUgLTA3MDAKU3ViamVjdDogW1BBVENIIDE2LzQ0XSBuZXRfc2NoZWQ6IHNj aF9za2JwcmlvOiBhZGQgbWVzc2FnZSB2YWxpZGF0aW9uIHRvCiBza2JwcmlvX2NoYW5nZSgpCgpb IFVwc3RyZWFtIGNvbW1pdCAyNzYxMTIxYWY4N2RlNDU5NTE5ODlhMGFkYWRhOTE3ODM3ZDhmYTgy IF0KCkRvIG5vdCBhc3N1bWUgdGhlIGF0dHJpYnV0ZSBoYXMgdGhlIHJpZ2h0IHNpemUuCgpGaXhl czogYWVhNWY2NTRlNmI3ICgibmV0L3NjaGVkOiBhZGQgc2ticHJpbyBzY2hlZHVsZXIiKQpTaWdu ZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClJlcG9ydGVkLWJ5 OiBzeXpib3QgPHN5emthbGxlckBnb29nbGVncm91cHMuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZp ZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3NjaGVkL3NjaF9za2Jw cmlvLmMgfCAzICsrKwogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdp dCBhL25ldC9zY2hlZC9zY2hfc2ticHJpby5jIGIvbmV0L3NjaGVkL3NjaF9za2JwcmlvLmMKaW5k ZXggMGZiMTBhYmY3NTc5Li43YTVlNGM0NTQ3MTUgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9zY2hf c2ticHJpby5jCisrKyBiL25ldC9zY2hlZC9zY2hfc2ticHJpby5jCkBAIC0xNjksNiArMTY5LDkg QEAgc3RhdGljIGludCBza2JwcmlvX2NoYW5nZShzdHJ1Y3QgUWRpc2MgKnNjaCwgc3RydWN0IG5s YXR0ciAqb3B0LAogewogCXN0cnVjdCB0Y19za2JwcmlvX3FvcHQgKmN0bCA9IG5sYV9kYXRhKG9w dCk7CiAKKwlpZiAob3B0LT5ubGFfbGVuICE9IG5sYV9hdHRyX3NpemUoc2l6ZW9mKCpjdGwpKSkK KwkJcmV0dXJuIC1FSU5WQUw7CisKIAlzY2gtPmxpbWl0ID0gY3RsLT5saW1pdDsKIAlyZXR1cm4g MDsKIH0KLS0gCjIuMjYuMgoKCkZyb20gMDc1Y2ZkNjIxZTRlNGIyZWE5MjUwNzhhNjg3MGE1ZTVi NTUxYjU1OSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogV2lsbGVtIGRlIEJydWlqbiA8 d2lsbGVtYkBnb29nbGUuY29tPgpEYXRlOiBNb24sIDQgTWF5IDIwMjAgMTI6NDg6NTQgLTA0MDAK U3ViamVjdDogW1BBVENIIDE3LzQ0XSBuZXQ6IHN0cmljdGVyIHZhbGlkYXRpb24gb2YgdW50cnVz dGVkIGdzbyBwYWNrZXRzCgpbIFVwc3RyZWFtIGNvbW1pdCA5Mjc0MTI0ZjAyM2I1YzU2ZGM0MzI2 NjM3ZDRmNzg3OTY4YjAzNjA3IF0KClN5emthbGxlciBhZ2FpbiBmb3VuZCBhIHBhdGggdG8gYSBr ZXJuZWwgY3Jhc2ggdGhyb3VnaCBiYWQgZ3NvIGlucHV0OgphIHBhY2tldCB3aXRoIHRyYW5zcG9y dCBoZWFkZXIgZXh0ZW5kaW5nIGJleW9uZCBza2JfaGVhZGxlbihza2IpLgoKVGlnaHRlbiB2YWxp ZGF0aW9uIGF0IGtlcm5lbCBlbnRyeToKCi0gVmVyaWZ5IHRoYXQgdGhlIHRyYW5zcG9ydCBoZWFk ZXIgbGllcyB3aXRoaW4gdGhlIGxpbmVhciBzZWN0aW9uLgoKICAgIFRvIGF2b2lkIHB1bGxpbmcg bGludXgvdGNwLmgsIHZlcmlmeSBqdXN0IHNpemVvZiB0Y3BoZHIuCiAgICB0Y3BfZ3NvX3NlZ21l bnQgd2lsbCBjYWxsIHBza2JfbWF5X3B1bGwgKHRoLT5kb2ZmICogNCkgYmVmb3JlIHVzZS4KCi0g TWF0Y2ggdGhlIGdzb190eXBlIGFnYWluc3QgdGhlIGlwX3Byb3RvIGZvdW5kIGJ5IHRoZSBmbG93 IGRpc3NlY3Rvci4KCkZpeGVzOiBiZmQ1ZjRhM2Q2MDUgKCJwYWNrZXQ6IEFkZCBHU08vY3N1bSBv ZmZsb2FkIHN1cHBvcnQuIikKUmVwb3J0ZWQtYnk6IHN5emJvdCA8c3l6a2FsbGVyQGdvb2dsZWdy b3Vwcy5jb20+ClNpZ25lZC1vZmYtYnk6IFdpbGxlbSBkZSBCcnVpam4gPHdpbGxlbWJAZ29vZ2xl LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0 PgotLS0KIGluY2x1ZGUvbGludXgvdmlydGlvX25ldC5oIHwgMjYgKysrKysrKysrKysrKysrKysr KysrKysrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyNCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvdmlydGlvX25ldC5oIGIvaW5jbHVkZS9saW51 eC92aXJ0aW9fbmV0LmgKaW5kZXggMGQxZmU5Mjk3YWM2Li42ZjZhZGU2M2IwNGMgMTAwNjQ0Ci0t LSBhL2luY2x1ZGUvbGludXgvdmlydGlvX25ldC5oCisrKyBiL2luY2x1ZGUvbGludXgvdmlydGlv X25ldC5oCkBAIC0zLDYgKzMsOCBAQAogI2RlZmluZSBfTElOVVhfVklSVElPX05FVF9ICiAKICNp bmNsdWRlIDxsaW51eC9pZl92bGFuLmg+CisjaW5jbHVkZSA8dWFwaS9saW51eC90Y3AuaD4KKyNp bmNsdWRlIDx1YXBpL2xpbnV4L3VkcC5oPgogI2luY2x1ZGUgPHVhcGkvbGludXgvdmlydGlvX25l dC5oPgogCiBzdGF0aWMgaW5saW5lIGludCB2aXJ0aW9fbmV0X2hkcl9zZXRfcHJvdG8oc3RydWN0 IHNrX2J1ZmYgKnNrYiwKQEAgLTI4LDE3ICszMCwyNSBAQCBzdGF0aWMgaW5saW5lIGludCB2aXJ0 aW9fbmV0X2hkcl90b19za2Ioc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJCQkJYm9vbCBsaXR0bGVf ZW5kaWFuKQogewogCXVuc2lnbmVkIGludCBnc29fdHlwZSA9IDA7CisJdW5zaWduZWQgaW50IHRo bGVuID0gMDsKKwl1bnNpZ25lZCBpbnQgaXBfcHJvdG87CiAKIAlpZiAoaGRyLT5nc29fdHlwZSAh PSBWSVJUSU9fTkVUX0hEUl9HU09fTk9ORSkgewogCQlzd2l0Y2ggKGhkci0+Z3NvX3R5cGUgJiB+ VklSVElPX05FVF9IRFJfR1NPX0VDTikgewogCQljYXNlIFZJUlRJT19ORVRfSERSX0dTT19UQ1BW NDoKIAkJCWdzb190eXBlID0gU0tCX0dTT19UQ1BWNDsKKwkJCWlwX3Byb3RvID0gSVBQUk9UT19U Q1A7CisJCQl0aGxlbiA9IHNpemVvZihzdHJ1Y3QgdGNwaGRyKTsKIAkJCWJyZWFrOwogCQljYXNl IFZJUlRJT19ORVRfSERSX0dTT19UQ1BWNjoKIAkJCWdzb190eXBlID0gU0tCX0dTT19UQ1BWNjsK KwkJCWlwX3Byb3RvID0gSVBQUk9UT19UQ1A7CisJCQl0aGxlbiA9IHNpemVvZihzdHJ1Y3QgdGNw aGRyKTsKIAkJCWJyZWFrOwogCQljYXNlIFZJUlRJT19ORVRfSERSX0dTT19VRFA6CiAJCQlnc29f dHlwZSA9IFNLQl9HU09fVURQOworCQkJaXBfcHJvdG8gPSBJUFBST1RPX1VEUDsKKwkJCXRobGVu ID0gc2l6ZW9mKHN0cnVjdCB1ZHBoZHIpOwogCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQlyZXR1 cm4gLUVJTlZBTDsKQEAgLTU3LDE2ICs2NywyMiBAQCBzdGF0aWMgaW5saW5lIGludCB2aXJ0aW9f bmV0X2hkcl90b19za2Ioc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAogCQlpZiAoIXNrYl9wYXJ0aWFs X2NzdW1fc2V0KHNrYiwgc3RhcnQsIG9mZikpCiAJCQlyZXR1cm4gLUVJTlZBTDsKKworCQlpZiAo c2tiX3RyYW5zcG9ydF9vZmZzZXQoc2tiKSArIHRobGVuID4gc2tiX2hlYWRsZW4oc2tiKSkKKwkJ CXJldHVybiAtRUlOVkFMOwogCX0gZWxzZSB7CiAJCS8qIGdzbyBwYWNrZXRzIHdpdGhvdXQgTkVF RFNfQ1NVTSBkbyBub3Qgc2V0IHRyYW5zcG9ydF9vZmZzZXQuCiAJCSAqIHByb2JlIGFuZCBkcm9w IGlmIGRvZXMgbm90IG1hdGNoIG9uZSBvZiB0aGUgYWJvdmUgdHlwZXMuCiAJCSAqLwogCQlpZiAo Z3NvX3R5cGUgJiYgc2tiLT5uZXR3b3JrX2hlYWRlcikgeworCQkJc3RydWN0IGZsb3dfa2V5c19i YXNpYyBrZXlzOworCiAJCQlpZiAoIXNrYi0+cHJvdG9jb2wpCiAJCQkJdmlydGlvX25ldF9oZHJf c2V0X3Byb3RvKHNrYiwgaGRyKTsKIHJldHJ5OgotCQkJc2tiX3Byb2JlX3RyYW5zcG9ydF9oZWFk ZXIoc2tiKTsKLQkJCWlmICghc2tiX3RyYW5zcG9ydF9oZWFkZXJfd2FzX3NldChza2IpKSB7CisJ CQlpZiAoIXNrYl9mbG93X2Rpc3NlY3RfZmxvd19rZXlzX2Jhc2ljKE5VTEwsIHNrYiwgJmtleXMs CisJCQkJCQkJICAgICAgTlVMTCwgMCwgMCwgMCwKKwkJCQkJCQkgICAgICAwKSkgewogCQkJCS8q IFVGTyBkb2VzIG5vdCBzcGVjaWZ5IGlwdjQgb3IgNjogdHJ5IGJvdGggKi8KIAkJCQlpZiAoZ3Nv X3R5cGUgJiBTS0JfR1NPX1VEUCAmJgogCQkJCSAgICBza2ItPnByb3RvY29sID09IGh0b25zKEVU SF9QX0lQKSkgewpAQCAtNzUsNiArOTEsMTIgQEAgc3RhdGljIGlubGluZSBpbnQgdmlydGlvX25l dF9oZHJfdG9fc2tiKHN0cnVjdCBza19idWZmICpza2IsCiAJCQkJfQogCQkJCXJldHVybiAtRUlO VkFMOwogCQkJfQorCisJCQlpZiAoa2V5cy5jb250cm9sLnRob2ZmICsgdGhsZW4gPiBza2JfaGVh ZGxlbihza2IpIHx8CisJCQkgICAga2V5cy5iYXNpYy5pcF9wcm90byAhPSBpcF9wcm90bykKKwkJ CQlyZXR1cm4gLUVJTlZBTDsKKworCQkJc2tiX3NldF90cmFuc3BvcnRfaGVhZGVyKHNrYiwga2V5 cy5jb250cm9sLnRob2ZmKTsKIAkJfQogCX0KIAotLSAKMi4yNi4yCgoKRnJvbSA5NTJjYTE0YWI5 NDAyZGQ2N2M5YmIzY2FhNjgzZjlmYTBiOGUzMWNlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBBbnRob255IEZlbGljZSA8dG9ueS5mZWxpY2VAdGltZXN5cy5jb20+CkRhdGU6IFN1biwg MjYgQXByIDIwMjAgMjI6MDA6NTkgLTA0MDAKU3ViamVjdDogW1BBVENIIDE4LzQ0XSBuZXQ6IHRj MzU4MTU6IEZpeCBwaHlkZXYgc3VwcG9ydGVkL2FkdmVydGlzaW5nIG1hc2sKClsgVXBzdHJlYW0g Y29tbWl0IDRiNWI3MWY3NzBlMmVkZWZiZmU3NDIwMzc3NzI2NGJmZTZhOTkyN2MgXQoKQ29tbWl0 IDNjMWJjYzg2MTRkYiAoIm5ldDogZXRoZXJuZXQ6IENvbnZlcnQgcGh5ZGV2IGFkdmVydGl6ZSBh bmQKc3VwcG9ydGVkIGZyb20gdTMyIHRvIGxpbmsgbW9kZSIpIHVwZGF0ZWQgZXRoZXJuZXQgZHJp dmVycyB0byB1c2UgYQpsaW5rbW9kZSBiaXRtYXAuIEl0IG1pc3Rha2VubHkgZHJvcHBlZCBhIGJp dHdpc2UgbmVnYXRpb24gaW4gdGhlCnRjMzU4MTUgZXRoZXJuZXQgZHJpdmVyIG9uIGEgYml0bWFz ayB0byBzZXQgdGhlIHN1cHBvcnRlZC9hZHZlcnRpc2luZwpmbGFncy4KCkZvdW5kIGJ5IEFudGhv bnkgdmlhIGNvZGUgaW5zcGVjdGlvbiwgbm90IHRlc3RlZCBhcyBJIGRvIG5vdCBoYXZlIHRoZQpy ZXF1aXJlZCBoYXJkd2FyZS4KCkZpeGVzOiAzYzFiY2M4NjE0ZGIgKCJuZXQ6IGV0aGVybmV0OiBD b252ZXJ0IHBoeWRldiBhZHZlcnRpemUgYW5kIHN1cHBvcnRlZCBmcm9tIHUzMiB0byBsaW5rIG1v ZGUiKQpTaWduZWQtb2ZmLWJ5OiBBbnRob255IEZlbGljZSA8dG9ueS5mZWxpY2VAdGltZXN5cy5j b20+ClJldmlld2VkLWJ5OiBBa3NoYXkgQmhhdCA8YWtzaGF5LmJoYXRAdGltZXN5cy5jb20+ClJl dmlld2VkLWJ5OiBIZWluZXIgS2FsbHdlaXQgPGhrYWxsd2VpdDFAZ21haWwuY29tPgpSZXZpZXdl ZC1ieTogQW5kcmV3IEx1bm4gPGFuZHJld0BsdW5uLmNoPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBT LiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQv dG9zaGliYS90YzM1ODE1LmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyks IDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC90b3NoaWJh L3RjMzU4MTUuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3Rvc2hpYmEvdGMzNTgxNS5jCmluZGV4 IDNmZDQzZDMwYjIwZC4uYTEwNjZmYmI5M2I1IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhl cm5ldC90b3NoaWJhL3RjMzU4MTUuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC90b3NoaWJh L3RjMzU4MTUuYwpAQCAtNjQzLDcgKzY0Myw3IEBAIHN0YXRpYyBpbnQgdGNfbWlpX3Byb2JlKHN0 cnVjdCBuZXRfZGV2aWNlICpkZXYpCiAJCWxpbmttb2RlX3NldF9iaXQoRVRIVE9PTF9MSU5LX01P REVfMTBiYXNlVF9IYWxmX0JJVCwgbWFzayk7CiAJCWxpbmttb2RlX3NldF9iaXQoRVRIVE9PTF9M SU5LX01PREVfMTAwYmFzZVRfSGFsZl9CSVQsIG1hc2spOwogCX0KLQlsaW5rbW9kZV9hbmQocGh5 ZGV2LT5zdXBwb3J0ZWQsIHBoeWRldi0+c3VwcG9ydGVkLCBtYXNrKTsKKwlsaW5rbW9kZV9hbmRu b3QocGh5ZGV2LT5zdXBwb3J0ZWQsIHBoeWRldi0+c3VwcG9ydGVkLCBtYXNrKTsKIAlsaW5rbW9k ZV9jb3B5KHBoeWRldi0+YWR2ZXJ0aXNpbmcsIHBoeWRldi0+c3VwcG9ydGVkKTsKIAogCWxwLT5s aW5rID0gMDsKLS0gCjIuMjYuMgoKCkZyb20gMzFjMDc5MDVhZjUzNDNlMThmNGY2YzZjYWMwNTgy ZjIyZmVjYjQ3NyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogWGl5dSBZYW5nIDx4aXl1 eWFuZzE5QGZ1ZGFuLmVkdS5jbj4KRGF0ZTogU2F0LCAyNSBBcHIgMjAyMCAyMDo1NDozNyArMDgw MApTdWJqZWN0OiBbUEFUQ0ggMTkvNDRdIG5ldC90bHM6IEZpeCBza19wc29jayByZWZjbnQgbGVh ayBpbgogYnBmX2V4ZWNfdHhfdmVyZGljdCgpCgpbIFVwc3RyZWFtIGNvbW1pdCAwOTVmNTYxNGJm ZTE2ZTViM2UxOTFiMzRlYTQxYjEwZDZmZGQ0Y2VkIF0KCmJwZl9leGVjX3R4X3ZlcmRpY3QoKSBp bnZva2VzIHNrX3Bzb2NrX2dldCgpLCB3aGljaCByZXR1cm5zIGEgcmVmZXJlbmNlCm9mIHRoZSBz cGVjaWZpZWQgc2tfcHNvY2sgb2JqZWN0IHRvICJwc29jayIgd2l0aCBpbmNyZWFzZWQgcmVmY250 LgoKV2hlbiBicGZfZXhlY190eF92ZXJkaWN0KCkgcmV0dXJucywgbG9jYWwgdmFyaWFibGUgInBz b2NrIiBiZWNvbWVzCmludmFsaWQsIHNvIHRoZSByZWZjb3VudCBzaG91bGQgYmUgZGVjcmVhc2Vk IHRvIGtlZXAgcmVmY291bnQgYmFsYW5jZWQuCgpUaGUgcmVmZXJlbmNlIGNvdW50aW5nIGlzc3Vl IGhhcHBlbnMgaW4gb25lIGV4Y2VwdGlvbiBoYW5kbGluZyBwYXRoIG9mCmJwZl9leGVjX3R4X3Zl cmRpY3QoKS4gV2hlbiAicG9saWN5IiBlcXVhbHMgdG8gTlVMTCBidXQgInBzb2NrIiBpcyBub3QK TlVMTCwgdGhlIGZ1bmN0aW9uIGZvcmdldHMgdG8gZGVjcmVhc2UgdGhlIHJlZmNudCBpbmNyZWFz ZWQgYnkKc2tfcHNvY2tfZ2V0KCksIGNhdXNpbmcgYSByZWZjbnQgbGVhay4KCkZpeCB0aGlzIGlz c3VlIGJ5IGNhbGxpbmcgc2tfcHNvY2tfcHV0KCkgb24gdGhpcyBlcnJvciBwYXRoIGJlZm9yZQpi cGZfZXhlY190eF92ZXJkaWN0KCkgcmV0dXJucy4KClNpZ25lZC1vZmYtYnk6IFhpeXUgWWFuZyA8 eGl5dXlhbmcxOUBmdWRhbi5lZHUuY24+ClNpZ25lZC1vZmYtYnk6IFhpbiBUYW4gPHRhbnhpbi5j dGZAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVt bG9mdC5uZXQ+Ci0tLQogbmV0L3Rscy90bHNfc3cuYyB8IDIgKysKIDEgZmlsZSBjaGFuZ2VkLCAy IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9uZXQvdGxzL3Rsc19zdy5jIGIvbmV0L3Rscy90 bHNfc3cuYwppbmRleCBjOThlNjAyYTFhMmQuLjcwNDMxM2RkMDgyZiAxMDA2NDQKLS0tIGEvbmV0 L3Rscy90bHNfc3cuYworKysgYi9uZXQvdGxzL3Rsc19zdy5jCkBAIC04MDAsNiArODAwLDggQEAg c3RhdGljIGludCBicGZfZXhlY190eF92ZXJkaWN0KHN0cnVjdCBza19tc2cgKm1zZywgc3RydWN0 IHNvY2sgKnNrLAogCQkJKmNvcGllZCAtPSBza19tc2dfZnJlZShzaywgbXNnKTsKIAkJCXRsc19m cmVlX29wZW5fcmVjKHNrKTsKIAkJfQorCQlpZiAocHNvY2spCisJCQlza19wc29ja19wdXQoc2ss IHBzb2NrKTsKIAkJcmV0dXJuIGVycjsKIAl9CiBtb3JlX2RhdGE6Ci0tIAoyLjI2LjIKCgpGcm9t IGU4ZmM2ODQxODE0MGFhNmIyYzdlYWZiZGRkYjJlNDNiZGI1NjEwMzggTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IFhpeXUgWWFuZyA8eGl5dXlhbmcxOUBmdWRhbi5lZHUuY24+CkRhdGU6 IFNhdCwgMjUgQXByIDIwMjAgMjE6MTA6MjMgKzA4MDAKU3ViamVjdDogW1BBVENIIDIwLzQ0XSBu ZXQvdGxzOiBGaXggc2tfcHNvY2sgcmVmY250IGxlYWsgd2hlbiBpbgogdGxzX2RhdGFfcmVhZHko KQoKWyBVcHN0cmVhbSBjb21taXQgNjJiNDAxMWZhN2JlZjlmYTAwYTZhZWVjMjZlNjk2ODVkYzFj YzIxZSBdCgp0bHNfZGF0YV9yZWFkeSgpIGludm9rZXMgc2tfcHNvY2tfZ2V0KCksIHdoaWNoIHJl dHVybnMgYSByZWZlcmVuY2Ugb2YKdGhlIHNwZWNpZmllZCBza19wc29jayBvYmplY3QgdG8gInBz b2NrIiB3aXRoIGluY3JlYXNlZCByZWZjbnQuCgpXaGVuIHRsc19kYXRhX3JlYWR5KCkgcmV0dXJu cywgbG9jYWwgdmFyaWFibGUgInBzb2NrIiBiZWNvbWVzIGludmFsaWQsCnNvIHRoZSByZWZjb3Vu dCBzaG91bGQgYmUgZGVjcmVhc2VkIHRvIGtlZXAgcmVmY291bnQgYmFsYW5jZWQuCgpUaGUgcmVm ZXJlbmNlIGNvdW50aW5nIGlzc3VlIGhhcHBlbnMgaW4gb25lIGV4Y2VwdGlvbiBoYW5kbGluZyBw YXRoIG9mCnRsc19kYXRhX3JlYWR5KCkuIFdoZW4gInBzb2NrLT5pbmdyZXNzX21zZyIgaXMgZW1w dHkgYnV0ICJwc29jayIgaXMgbm90Ck5VTEwsIHRoZSBmdW5jdGlvbiBmb3JnZXRzIHRvIGRlY3Jl YXNlIHRoZSByZWZjbnQgaW5jcmVhc2VkIGJ5CnNrX3Bzb2NrX2dldCgpLCBjYXVzaW5nIGEgcmVm Y250IGxlYWsuCgpGaXggdGhpcyBpc3N1ZSBieSBjYWxsaW5nIHNrX3Bzb2NrX3B1dCgpIG9uIGFs bCBwYXRocyB3aGVuICJwc29jayIgaXMKbm90IE5VTEwuCgpTaWduZWQtb2ZmLWJ5OiBYaXl1IFlh bmcgPHhpeXV5YW5nMTlAZnVkYW4uZWR1LmNuPgpTaWduZWQtb2ZmLWJ5OiBYaW4gVGFuIDx0YW54 aW4uY3RmQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBk YXZlbWxvZnQubmV0PgotLS0KIG5ldC90bHMvdGxzX3N3LmMgfCA1ICsrKy0tCiAxIGZpbGUgY2hh bmdlZCwgMyBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC90 bHMvdGxzX3N3LmMgYi9uZXQvdGxzL3Rsc19zdy5jCmluZGV4IDcwNDMxM2RkMDgyZi4uZTIzZjk0 YTU1NDliIDEwMDY0NAotLS0gYS9uZXQvdGxzL3Rsc19zdy5jCisrKyBiL25ldC90bHMvdGxzX3N3 LmMKQEAgLTIwODMsOCArMjA4Myw5IEBAIHN0YXRpYyB2b2lkIHRsc19kYXRhX3JlYWR5KHN0cnVj dCBzb2NrICpzaykKIAlzdHJwX2RhdGFfcmVhZHkoJmN0eC0+c3RycCk7CiAKIAlwc29jayA9IHNr X3Bzb2NrX2dldChzayk7Ci0JaWYgKHBzb2NrICYmICFsaXN0X2VtcHR5KCZwc29jay0+aW5ncmVz c19tc2cpKSB7Ci0JCWN0eC0+c2F2ZWRfZGF0YV9yZWFkeShzayk7CisJaWYgKHBzb2NrKSB7CisJ CWlmICghbGlzdF9lbXB0eSgmcHNvY2stPmluZ3Jlc3NfbXNnKSkKKwkJCWN0eC0+c2F2ZWRfZGF0 YV9yZWFkeShzayk7CiAJCXNrX3Bzb2NrX3B1dChzaywgcHNvY2spOwogCX0KIH0KLS0gCjIuMjYu MgoKCkZyb20gNDY5ZjZhNGFiZjE4ODFjNDI0ZTRmODcwODk3ZGY1MjZhZGNiZDkwMCBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTWF0dCBKb2xseSA8S2FuZ2llQGZvb3RjbGFuLm5pbmph PgpEYXRlOiBTdW4sIDMgTWF5IDIwMjAgMDE6NTI6MjggKzEwMDAKU3ViamVjdDogW1BBVENIIDIx LzQ0XSBuZXQ6IHVzYjogcW1pX3d3YW46IGFkZCBzdXBwb3J0IGZvciBEVzU4MTZlCk1JTUUtVmVy c2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50 LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CgpbIFVwc3RyZWFtIGNvbW1pdCA1N2M3ZjJiZDc1OGVl ZDg2NzI5NWM4MWQzNTI3ZmZmNGZhYjFlZDc0IF0KCkFkZCBzdXBwb3J0IGZvciBEZWxsIFdpcmVs ZXNzIDU4MTZlIHRvIGRyaXZlcnMvbmV0L3VzYi9xbWlfd3dhbi5jCgpTaWduZWQtb2ZmLWJ5OiBN YXR0IEpvbGx5IDxLYW5naWVAZm9vdGNsYW4ubmluamE+CkFja2VkLWJ5OiBCasO4cm4gTW9yayA8 Ympvcm5AbW9yay5ubz4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZl bWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L3VzYi9xbWlfd3dhbi5jIHwgMSArCiAxIGZpbGUg Y2hhbmdlZCwgMSBpbnNlcnRpb24oKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC91c2IvcW1p X3d3YW4uYyBiL2RyaXZlcnMvbmV0L3VzYi9xbWlfd3dhbi5jCmluZGV4IDZjNzM4YTI3MTI1Ny4u NGJiODU1MmEwMGQzIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC91c2IvcW1pX3d3YW4uYworKysg Yi9kcml2ZXJzL25ldC91c2IvcW1pX3d3YW4uYwpAQCAtMTM1OSw2ICsxMzU5LDcgQEAgc3RhdGlj IGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIHByb2R1Y3RzW10gPSB7CiAJe1FNSV9GSVhFRF9J TlRGKDB4NDEzYywgMHg4MWIzLCA4KX0sCS8qIERlbGwgV2lyZWxlc3MgNTgwOWUgR29iaShUTSkg NEcgTFRFIE1vYmlsZSBCcm9hZGJhbmQgQ2FyZCAocmV2MykgKi8KIAl7UU1JX0ZJWEVEX0lOVEYo MHg0MTNjLCAweDgxYjYsIDgpfSwJLyogRGVsbCBXaXJlbGVzcyA1ODExZSAqLwogCXtRTUlfRklY RURfSU5URigweDQxM2MsIDB4ODFiNiwgMTApfSwJLyogRGVsbCBXaXJlbGVzcyA1ODExZSAqLwor CXtRTUlfRklYRURfSU5URigweDQxM2MsIDB4ODFjYywgOCl9LAkvKiBEZWxsIFdpcmVsZXNzIDU4 MTZlICovCiAJe1FNSV9GSVhFRF9JTlRGKDB4NDEzYywgMHg4MWQ3LCAwKX0sCS8qIERlbGwgV2ly ZWxlc3MgNTgyMWUgKi8KIAl7UU1JX0ZJWEVEX0lOVEYoMHg0MTNjLCAweDgxZDcsIDEpfSwJLyog RGVsbCBXaXJlbGVzcyA1ODIxZSBwcmVwcm9kdWN0aW9uIGNvbmZpZyAqLwogCXtRTUlfRklYRURf SU5URigweDQxM2MsIDB4ODFlMCwgMCl9LAkvKiBEZWxsIFdpcmVsZXNzIDU4MjFlIHdpdGggZVNJ TSBzdXBwb3J0Ki8KLS0gCjIuMjYuMgoKCkZyb20gMWNhMjE5NGYzMzRiODkzNjg0Y2E0MjZkMzcy ZjRmMzhjNzNjYTk2MSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogUWl1c2hpIFd1IDx3 dTAwMDI3M0B1bW4uZWR1PgpEYXRlOiBTYXQsIDIgTWF5IDIwMjAgMTc6NDI6NTkgLTA1MDAKU3Vi amVjdDogW1BBVENIIDIyLzQ0XSBuZnA6IGFibTogZml4IGEgbWVtb3J5IGxlYWsgYnVnCgpbIFVw c3RyZWFtIGNvbW1pdCBiZDRhZjQzMmNjNzFiNWZiZmU0ODMzNTEwMzU5YTZhZDNhZGEyNTBkIF0K CkluIGZ1bmN0aW9uIG5mcF9hYm1fdm5pY19zZXRfbWFjLCBwb2ludGVyIG5zcCBpcyBhbGxvY2F0 ZWQgYnkgbmZwX25zcF9vcGVuLgpCdXQgd2hlbiBuZnBfbnNwX2hhc19od2luZm9fbG9va3VwIGZh aWwsIHRoZSBwb2ludGVyIGlzIG5vdCByZWxlYXNlZCwKd2hpY2ggY2FuIGxlYWQgdG8gYSBtZW1v cnkgbGVhayBidWcuIEZpeCB0aGlzIGlzc3VlIGJ5IGFkZGluZwpuZnBfbnNwX2Nsb3NlKG5zcCkg aW4gdGhlIGVycm9yIHBhdGguCgpGaXhlczogZjZlNzFlZmRmOWZiMSAoIm5mcDogYWJtOiBsb29r IHVwIE1BQyBhZGRyZXNzZXMgdmlhIG1hbmFnZW1lbnQgRlciKQpTaWduZWQtb2ZmLWJ5OiBRaXVz aGkgV3UgPHd1MDAwMjczQHVtbi5lZHU+CkFja2VkLWJ5OiBKYWt1YiBLaWNpbnNraSA8a3ViYUBr ZXJuZWwub3JnPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9m dC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbmV0cm9ub21lL25mcC9hYm0vbWFpbi5j IHwgMSArCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykKCmRpZmYgLS1naXQgYS9kcml2 ZXJzL25ldC9ldGhlcm5ldC9uZXRyb25vbWUvbmZwL2FibS9tYWluLmMgYi9kcml2ZXJzL25ldC9l dGhlcm5ldC9uZXRyb25vbWUvbmZwL2FibS9tYWluLmMKaW5kZXggOTE4M2IzZTg1ZDIxLi4zNTRl ZmZmYWMwZjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L25ldHJvbm9tZS9uZnAv YWJtL21haW4uYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9uZXRyb25vbWUvbmZwL2FibS9t YWluLmMKQEAgLTI4Myw2ICsyODMsNyBAQCBuZnBfYWJtX3ZuaWNfc2V0X21hYyhzdHJ1Y3QgbmZw X3BmICpwZiwgc3RydWN0IG5mcF9hYm0gKmFibSwgc3RydWN0IG5mcF9uZXQgKm5uLAogCWlmICgh bmZwX25zcF9oYXNfaHdpbmZvX2xvb2t1cChuc3ApKSB7CiAJCW5mcF93YXJuKHBmLT5jcHAsICJO U1AgZG9lc24ndCBzdXBwb3J0IFBGIE1BQyBnZW5lcmF0aW9uXG4iKTsKIAkJZXRoX2h3X2FkZHJf cmFuZG9tKG5uLT5kcC5uZXRkZXYpOworCQluZnBfbnNwX2Nsb3NlKG5zcCk7CiAJCXJldHVybjsK IAl9CiAKLS0gCjIuMjYuMgoKCkZyb20gOTM4YzFlZGM5MDkyMmZlYTIzYTk3MDllM2UwOTQwMDIy MTlhODgxYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJpYyBEdW1hemV0IDxlZHVt YXpldEBnb29nbGUuY29tPgpEYXRlOiBTYXQsIDI1IEFwciAyMDIwIDE1OjE5OjUxIC0wNzAwClN1 YmplY3Q6IFtQQVRDSCAyMy80NF0gc2NoX2Nob2tlOiBhdm9pZCBwb3RlbnRpYWwgcGFuaWMgaW4g Y2hva2VfcmVzZXQoKQoKWyBVcHN0cmVhbSBjb21taXQgODczOGM4NWM3MmIzMTA4YzliOWEzNjlh Mzk4NjhiYTVmOGUxMGFlMCBdCgpJZiBjaG9rZV9pbml0KCkgY291bGQgbm90IGFsbG9jYXRlIHEt PnRhYiwgd2Ugd291bGQgY3Jhc2ggbGF0ZXIKaW4gY2hva2VfcmVzZXQoKS4KCkJVRzogS0FTQU46 IG51bGwtcHRyLWRlcmVmIGluIG1lbXNldCBpbmNsdWRlL2xpbnV4L3N0cmluZy5oOjM2NiBbaW5s aW5lXQpCVUc6IEtBU0FOOiBudWxsLXB0ci1kZXJlZiBpbiBjaG9rZV9yZXNldCsweDIwOC8weDM0 MCBuZXQvc2NoZWQvc2NoX2Nob2tlLmM6MzI2CldyaXRlIG9mIHNpemUgOCBhdCBhZGRyIDAwMDAw MDAwMDAwMDAwMDAgYnkgdGFzayBzeXotZXhlY3V0b3I4MjIvNzAyMgoKQ1BVOiAxIFBJRDogNzAy MiBDb21tOiBzeXotZXhlY3V0b3I4MjIgTm90IHRhaW50ZWQgNS43LjAtcmMxLXN5emthbGxlciAj MApIYXJkd2FyZSBuYW1lOiBHb29nbGUgR29vZ2xlIENvbXB1dGUgRW5naW5lL0dvb2dsZSBDb21w dXRlIEVuZ2luZSwgQklPUyBHb29nbGUgMDEvMDEvMjAxMQpDYWxsIFRyYWNlOgogX19kdW1wX3N0 YWNrIGxpYi9kdW1wX3N0YWNrLmM6NzcgW2lubGluZV0KIGR1bXBfc3RhY2srMHgxODgvMHgyMGQg bGliL2R1bXBfc3RhY2suYzoxMTgKIF9fa2FzYW5fcmVwb3J0LmNvbGQrMHg1LzB4NGQgbW0va2Fz YW4vcmVwb3J0LmM6NTE1CiBrYXNhbl9yZXBvcnQrMHgzMy8weDUwIG1tL2thc2FuL2NvbW1vbi5j OjYyNQogY2hlY2tfbWVtb3J5X3JlZ2lvbl9pbmxpbmUgbW0va2FzYW4vZ2VuZXJpYy5jOjE4NyBb aW5saW5lXQogY2hlY2tfbWVtb3J5X3JlZ2lvbisweDE0MS8weDE5MCBtbS9rYXNhbi9nZW5lcmlj LmM6MTkzCiBtZW1zZXQrMHgyMC8weDQwIG1tL2thc2FuL2NvbW1vbi5jOjg1CiBtZW1zZXQgaW5j bHVkZS9saW51eC9zdHJpbmcuaDozNjYgW2lubGluZV0KIGNob2tlX3Jlc2V0KzB4MjA4LzB4MzQw IG5ldC9zY2hlZC9zY2hfY2hva2UuYzozMjYKIHFkaXNjX3Jlc2V0KzB4NmIvMHg1MjAgbmV0L3Nj aGVkL3NjaF9nZW5lcmljLmM6OTEwCiBkZXZfZGVhY3RpdmF0ZV9xdWV1ZS5jb25zdHByb3AuMCsw eDEzYy8weDI0MCBuZXQvc2NoZWQvc2NoX2dlbmVyaWMuYzoxMTM4CiBuZXRkZXZfZm9yX2VhY2hf dHhfcXVldWUgaW5jbHVkZS9saW51eC9uZXRkZXZpY2UuaDoyMTk3IFtpbmxpbmVdCiBkZXZfZGVh Y3RpdmF0ZV9tYW55KzB4ZTIvMHhiYTAgbmV0L3NjaGVkL3NjaF9nZW5lcmljLmM6MTE5NQogZGV2 X2RlYWN0aXZhdGUrMHhmOC8weDFjMCBuZXQvc2NoZWQvc2NoX2dlbmVyaWMuYzoxMjMzCiBxZGlz Y19ncmFmdCsweGQyNS8weDExMjAgbmV0L3NjaGVkL3NjaF9hcGkuYzoxMDUxCiB0Y19tb2RpZnlf cWRpc2MrMHhiYWIvMHgxYTAwIG5ldC9zY2hlZC9zY2hfYXBpLmM6MTY3MAogcnRuZXRsaW5rX3Jj dl9tc2crMHg0NGUvMHhhZDAgbmV0L2NvcmUvcnRuZXRsaW5rLmM6NTQ1NAogbmV0bGlua19yY3Zf c2tiKzB4MTVhLzB4NDEwIG5ldC9uZXRsaW5rL2FmX25ldGxpbmsuYzoyNDY5CiBuZXRsaW5rX3Vu aWNhc3Rfa2VybmVsIG5ldC9uZXRsaW5rL2FmX25ldGxpbmsuYzoxMzAzIFtpbmxpbmVdCiBuZXRs aW5rX3VuaWNhc3QrMHg1MzcvMHg3NDAgbmV0L25ldGxpbmsvYWZfbmV0bGluay5jOjEzMjkKIG5l dGxpbmtfc2VuZG1zZysweDg4Mi8weGUxMCBuZXQvbmV0bGluay9hZl9uZXRsaW5rLmM6MTkxOAog c29ja19zZW5kbXNnX25vc2VjIG5ldC9zb2NrZXQuYzo2NTIgW2lubGluZV0KIHNvY2tfc2VuZG1z ZysweGNmLzB4MTIwIG5ldC9zb2NrZXQuYzo2NzIKIF9fX19zeXNfc2VuZG1zZysweDZiZi8weDdl MCBuZXQvc29ja2V0LmM6MjM2MgogX19fc3lzX3NlbmRtc2crMHgxMDAvMHgxNzAgbmV0L3NvY2tl dC5jOjI0MTYKIF9fc3lzX3NlbmRtc2crMHhlYy8weDFiMCBuZXQvc29ja2V0LmM6MjQ0OQogZG9f c3lzY2FsbF82NCsweGY2LzB4N2QwIGFyY2gveDg2L2VudHJ5L2NvbW1vbi5jOjI5NQoKRml4ZXM6 IDc3ZTYyZGE2ZTYwYyAoInNjaF9jaG9rZTogZHJvcCBhbGwgcGFja2V0cyBpbiBxdWV1ZSBkdXJp bmcgcmVzZXQiKQpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5j b20+ClJlcG9ydGVkLWJ5OiBzeXpib3QgPHN5emthbGxlckBnb29nbGVncm91cHMuY29tPgpDYzog Q29uZyBXYW5nIDx4aXlvdS53YW5nY29uZ0BnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvc2NoZWQvc2NoX2Nob2tl LmMgfCAzICsrLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigt KQoKZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9zY2hfY2hva2UuYyBiL25ldC9zY2hlZC9zY2hfY2hv a2UuYwppbmRleCBhMzY5NzRlOWM2MDEuLjFiY2Y4ZmJmZDQwZSAxMDA2NDQKLS0tIGEvbmV0L3Nj aGVkL3NjaF9jaG9rZS5jCisrKyBiL25ldC9zY2hlZC9zY2hfY2hva2UuYwpAQCAtMzIzLDcgKzMy Myw4IEBAIHN0YXRpYyB2b2lkIGNob2tlX3Jlc2V0KHN0cnVjdCBRZGlzYyAqc2NoKQogCiAJc2No LT5xLnFsZW4gPSAwOwogCXNjaC0+cXN0YXRzLmJhY2tsb2cgPSAwOwotCW1lbXNldChxLT50YWIs IDAsIChxLT50YWJfbWFzayArIDEpICogc2l6ZW9mKHN0cnVjdCBza19idWZmICopKTsKKwlpZiAo cS0+dGFiKQorCQltZW1zZXQocS0+dGFiLCAwLCAocS0+dGFiX21hc2sgKyAxKSAqIHNpemVvZihz dHJ1Y3Qgc2tfYnVmZiAqKSk7CiAJcS0+aGVhZCA9IHEtPnRhaWwgPSAwOwogCXJlZF9yZXN0YXJ0 KCZxLT52YXJzKTsKIH0KLS0gCjIuMjYuMgoKCkZyb20gYWRiOTkwMjVhMGExNzNiYzVhMTdlNjA1 OGExNzk4NmQyYWU4NDY1ZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJpYyBEdW1h emV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpEYXRlOiBTdW4sIDI2IEFwciAyMDIwIDE4OjE5OjA3 IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAyNC80NF0gc2NoX3NmcTogdmFsaWRhdGUgc2lsbHkgcXVh bnR1bSB2YWx1ZXMKClsgVXBzdHJlYW0gY29tbWl0IGRmNDk1M2U0ZTk5N2UyNzM1MDEzMzlmNjA3 Yjc3OTUzNzcyZTM1NTkgXQoKc3l6Ym90IG1hbmFnZWQgdG8gc2V0IHVwIHNmcSBzbyB0aGF0IHEt PnNjYWxlZF9xdWFudHVtIHdhcyB6ZXJvLAp0cmlnZ2VyaW5nIGFuIGluZmluaXRlIGxvb3AgaW4g c2ZxX2RlcXVldWUoKQoKTW9yZSBnZW5lcmFsbHksIHdlIG11c3Qgb25seSBhY2NlcHQgcXVhbnR1 bSBiZXR3ZWVuIDEgYW5kIDJeMTggLSA3LAptZWFuaW5nIHNjYWxlZF9xdWFudHVtIG11c3QgYmUg aW4gWzEsIDB4N0ZGRl0gcmFuZ2UuCgpPdGhlcndpc2UsIHdlIGFsc28gY291bGQgaGF2ZSBhIGxv b3AgaW4gc2ZxX2RlcXVldWUoKQppZiBzY2FsZWRfcXVhbnR1bSBoYXBwZW5zIHRvIGJlIDB4ODAw MCwgc2luY2Ugc2xvdC0+YWxsb3QKY291bGQgaW5kZWZpbml0ZWx5IHN3aXRjaCBiZXR3ZWVuIDAg YW5kIDB4ODAwMC4KCkZpeGVzOiBlZWFlYjA2OGYxMzkgKCJzY2hfc2ZxOiBhbGxvdyBiaWcgcGFj a2V0cyBhbmQgYmUgZmFpciIpClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRA Z29vZ2xlLmNvbT4KUmVwb3J0ZWQtYnk6IHN5emJvdCswMjUxZTg4M2ZlMzllN2EwY2IwYUBzeXpr YWxsZXIuYXBwc3BvdG1haWwuY29tCkNjOiBKYXNvbiBBLiBEb25lbmZlbGQgPEphc29uQHp4MmM0 LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0 PgotLS0KIG5ldC9zY2hlZC9zY2hfc2ZxLmMgfCA5ICsrKysrKysrKwogMSBmaWxlIGNoYW5nZWQs IDkgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9zY2hfc2ZxLmMgYi9uZXQv c2NoZWQvc2NoX3NmcS5jCmluZGV4IGM3ODdkNGQ0NjAxNy4uNWE2ZGVmNWU0ZTZkIDEwMDY0NAot LS0gYS9uZXQvc2NoZWQvc2NoX3NmcS5jCisrKyBiL25ldC9zY2hlZC9zY2hfc2ZxLmMKQEAgLTYz Nyw2ICs2MzcsMTUgQEAgc3RhdGljIGludCBzZnFfY2hhbmdlKHN0cnVjdCBRZGlzYyAqc2NoLCBz dHJ1Y3QgbmxhdHRyICpvcHQpCiAJaWYgKGN0bC0+ZGl2aXNvciAmJgogCSAgICAoIWlzX3Bvd2Vy X29mXzIoY3RsLT5kaXZpc29yKSB8fCBjdGwtPmRpdmlzb3IgPiA2NTUzNikpCiAJCXJldHVybiAt RUlOVkFMOworCisJLyogc2xvdC0+YWxsb3QgaXMgYSBzaG9ydCwgbWFrZSBzdXJlIHF1YW50dW0g aXMgbm90IHRvbyBiaWcuICovCisJaWYgKGN0bC0+cXVhbnR1bSkgeworCQl1bnNpZ25lZCBpbnQg c2NhbGVkID0gU0ZRX0FMTE9UX1NJWkUoY3RsLT5xdWFudHVtKTsKKworCQlpZiAoc2NhbGVkIDw9 IDAgfHwgc2NhbGVkID4gU0hSVF9NQVgpCisJCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKIAlpZiAo Y3RsX3YxICYmICFyZWRfY2hlY2tfcGFyYW1zKGN0bF92MS0+cXRoX21pbiwgY3RsX3YxLT5xdGhf bWF4LAogCQkJCQljdGxfdjEtPldsb2cpKQogCQlyZXR1cm4gLUVJTlZBTDsKLS0gCjIuMjYuMgoK CkZyb20gMzNlODgzODk2ZDUyNzk1N2ZiZWMxZDQxY2I1YzIxYzdiYjNlNDdiNyBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpE YXRlOiBUdWUsIDUgTWF5IDIwMjAgMjA6NTE6MDYgLTA3MDAKU3ViamVjdDogW1BBVENIIDI1LzQ0 XSBzZWxmdGVzdHM6IG5ldDogdGNwX21tYXA6IGNsZWFyIHdob2xlCiB0Y3BfemVyb2NvcHlfcmVj ZWl2ZSBzdHJ1Y3QKClsgVXBzdHJlYW0gY29tbWl0IGJmNTUyNWYzYThlMzI0OGJlNWFhNWRlZmU1 YWFhZGQ2MGUxYzFiYTEgXQoKV2UgYWRkZWQgZmllbGRzIGluIHRjcF96ZXJvY29weV9yZWNlaXZl IHN0cnVjdHVyZSwKc28gbWFrZSBzdXJlIHRvIGNsZWFyIGFsbCBmaWVsZHMgdG8gbm90IHBhc3Mg Z2FyYmFnZSB0byB0aGUga2VybmVsLgoKV2Ugd2VyZSBsdWNreSBiZWNhdXNlIHJlY2VudCBhZGRp dGlvbnMgYWRkZWQgJ291dCcgcGFyYW1ldGVycywKc3RpbGwgd2UgbmVlZCB0byBjbGVhbiBvdXIg cmVmZXJlbmNlIGltcGxlbWVudGF0aW9uLCBiZWZvcmUgZm9sa3MKY29weS9wYXN0ZSBpdC4KCkZp eGVzOiBjODg1NmMwNTE0NTQgKCJ0Y3AtemVyb2NvcHk6IFJldHVybiBpbnEgYWxvbmcgd2l0aCB0 Y3AgcmVjZWl2ZSB6ZXJvY29weS4iKQpGaXhlczogMzM5NDY1MThkNDkzICgidGNwLXplcm9jb3B5 OiBSZXR1cm4gc2tfZXJyIChpZiBzZXQpIGFsb25nIHdpdGggdGNwIHJlY2VpdmUgemVyb2NvcHku IikKU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpDYzog QXJqdW4gUm95IDxhcmp1bnJveUBnb29nbGUuY29tPgpDYzogU29oZWlsIEhhc3NhcyBZZWdhbmVo IDxzb2hlaWxAZ29vZ2xlLmNvbT4KQWNrZWQtYnk6IFNvaGVpbCBIYXNzYXMgWWVnYW5laCA8c29o ZWlsQGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2 ZW1sb2Z0Lm5ldD4KLS0tCiB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvdGNwX21tYXAuYyB8 IDMgKystCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpk aWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L3RjcF9tbWFwLmMgYi90b29s cy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvdGNwX21tYXAuYwppbmRleCAzNTUwNWIzMWU1Y2MuLjYy MTcxZmQ2MzhjOCAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L3RjcF9t bWFwLmMKKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L3RjcF9tbWFwLmMKQEAgLTE2 NSw5ICsxNjUsMTAgQEAgdm9pZCAqY2hpbGRfdGhyZWFkKHZvaWQgKmFyZykKIAkJCXNvY2tsZW5f dCB6Y19sZW4gPSBzaXplb2YoemMpOwogCQkJaW50IHJlczsKIAorCQkJbWVtc2V0KCZ6YywgMCwg c2l6ZW9mKHpjKSk7CiAJCQl6Yy5hZGRyZXNzID0gKF9fdTY0KSgodW5zaWduZWQgbG9uZylhZGRy KTsKIAkJCXpjLmxlbmd0aCA9IGNodW5rX3NpemU7Ci0JCQl6Yy5yZWN2X3NraXBfaGludCA9IDA7 CisKIAkJCXJlcyA9IGdldHNvY2tvcHQoZmQsIElQUFJPVE9fVENQLCBUQ1BfWkVST0NPUFlfUkVD RUlWRSwKIAkJCQkJICZ6YywgJnpjX2xlbik7CiAJCQlpZiAocmVzID09IC0xKQotLSAKMi4yNi4y CgoKRnJvbSA1MmQ2MTU0MmIwZDVkYWZjNmIwY2Q3MTI1NTUxZWYzOGQ5ZGQ1ZmQzIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ CkRhdGU6IFdlZCwgNiBNYXkgMjAyMCAwOToyMToxNSAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMjYv NDRdIHNlbGZ0ZXN0czogbmV0OiB0Y3BfbW1hcDogZml4IFNPX1JDVkxPV0FUIHNldHRpbmcKClsg VXBzdHJlYW0gY29tbWl0IGE4NDcyNDE3OGJkNzA4MWNmM2JkNWI1NTg2MTZkZDZhOWE0Y2E2M2Ig XQoKU2luY2UgY2h1bmtfc2l6ZSBpcyBubyBsb25nZXIgYW4gaW50ZWdlciwgd2UgY2FuIG5vdAp1 c2UgaXQgZGlyZWN0bHkgYXMgYW4gYXJndW1lbnQgb2Ygc2V0c29ja29wdCgpLgoKVGhpcyBwYXRj aCBzaG91bGQgZml4IHRjcF9tbWFwIGZvciBCaWcgRW5kaWFuIGtlcm5lbHMuCgpGaXhlczogNTk3 YjAxZWRhZmFjICgic2VsZnRlc3RzOiBuZXQ6IGF2b2lkIHB0bCBsb2NrIGNvbnRlbnRpb24gaW4g dGNwX21tYXAiKQpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5j b20+CkNjOiBTb2hlaWwgSGFzc2FzIFllZ2FuZWggPHNvaGVpbEBnb29nbGUuY29tPgpDYzogQXJq dW4gUm95IDxhcmp1bnJveUBnb29nbGUuY29tPgpBY2tlZC1ieTogU29oZWlsIEhhc3NhcyBZZWdh bmVoIDxzb2hlaWxAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxk YXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC90Y3Bf bW1hcC5jIHwgNCArKystCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAxIGRlbGV0 aW9uKC0pCgpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L3RjcF9tbWFw LmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvdGNwX21tYXAuYwppbmRleCA2MjE3MWZk NjM4YzguLjQ1NTVmODgyNTJiYSAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMv bmV0L3RjcF9tbWFwLmMKKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L3RjcF9tbWFw LmMKQEAgLTI4MiwxMiArMjgyLDE0IEBAIHN0YXRpYyB2b2lkIHNldHVwX3NvY2thZGRyKGludCBk b21haW4sIGNvbnN0IGNoYXIgKnN0cl9hZGRyLAogc3RhdGljIHZvaWQgZG9fYWNjZXB0KGludCBm ZGxpc3RlbikKIHsKIAlwdGhyZWFkX2F0dHJfdCBhdHRyOworCWludCByY3Zsb3dhdDsKIAogCXB0 aHJlYWRfYXR0cl9pbml0KCZhdHRyKTsKIAlwdGhyZWFkX2F0dHJfc2V0ZGV0YWNoc3RhdGUoJmF0 dHIsIFBUSFJFQURfQ1JFQVRFX0RFVEFDSEVEKTsKIAorCXJjdmxvd2F0ID0gY2h1bmtfc2l6ZTsK IAlpZiAoc2V0c29ja29wdChmZGxpc3RlbiwgU09MX1NPQ0tFVCwgU09fUkNWTE9XQVQsCi0JCSAg ICAgICAmY2h1bmtfc2l6ZSwgc2l6ZW9mKGNodW5rX3NpemUpKSA9PSAtMSkgeworCQkgICAgICAg JnJjdmxvd2F0LCBzaXplb2YocmN2bG93YXQpKSA9PSAtMSkgewogCQlwZXJyb3IoInNldHNvY2tv cHQgU09fUkNWTE9XQVQiKTsKIAl9CiAKLS0gCjIuMjYuMgoKCkZyb20gMmM1MDdhOTk0YTBhNzNm MDg0YzU0MDdiYTM5NTJhZjNkZjBkM2EzMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog VHVvbmcgTGllbiA8dHVvbmcudC5saWVuQGRla3RlY2guY29tLmF1PgpEYXRlOiBNb24sIDQgTWF5 IDIwMjAgMTE6MTU6NTQgKzA3MDAKU3ViamVjdDogW1BBVENIIDI3LzQ0XSB0aXBjOiBmaXggcGFy dGlhbCB0b3BvbG9neSBjb25uZWN0aW9uIGNsb3N1cmUKClsgVXBzdHJlYW0gY29tbWl0IDk4MGQ2 OTI3NmYzMDQ4YWY0M2EwNDViZTI5MjVkYWNmYjg5OGE3YmUgXQoKV2hlbiBhbiBhcHBsaWNhdGlv biBjb25uZWN0cyB0byB0aGUgVElQQyB0b3BvbG9neSBzZXJ2ZXIgYW5kIHN1YnNjcmliZXMKdG8g c29tZSBzZXJ2aWNlcywgYSBuZXcgY29ubmVjdGlvbiBpcyBjcmVhdGVkIGFsb25nIHdpdGggc29t ZSBvYmplY3RzIC0KJ3RpcGNfc3Vic2NyaXB0aW9uJyB0byBzdG9yZSByZWxhdGVkIGRhdGEgY29y cmVzcG9uZGluZ2x5Li4uCkhvd2V2ZXIsIHRoZXJlIGlzIG9uZSBvbWlzc2lvbiBpbiB0aGUgY29u bmVjdGlvbiBoYW5kbGluZyB0aGF0IHdoZW4gdGhlCmNvbm5lY3Rpb24gb3IgYXBwbGljYXRpb24g aXMgb3JkZXJseSBzaHV0ZG93biAoZS5nLiB2aWEgU0lHUVVJVCwgZXRjLiksCnRoZSBjb25uZWN0 aW9uIGlzIG5vdCBjbG9zZWQgaW4ga2VybmVsLCB0aGUgJ3RpcGNfc3Vic2NyaXB0aW9uJyBvYmpl Y3RzCmFyZSBub3QgZnJlZWQgdG9vLgpUaGlzIHJlc3VsdHMgaW46Ci0gVGhlIG1heGltdW0gbnVt YmVyIG9mIHN1YnNjcmlwdGlvbnMgKDY1NTM1KSB3aWxsIGJlIHJlYWNoZWQgc29vbiwgbmV3CnN1 YnNjcmlwdGlvbnMgd2lsbCBiZSByZWplY3RlZDsKLSBUSVBDIG1vZHVsZSBjYW5ub3QgYmUgcmVt b3ZlZCAodW5sZXNzIHRoZSBvYmplY3RzICBhcmUgc29tZWhvdyBmb3JjZWQKdG8gcmVsZWFzZSBm aXJzdCk7CgpUaGUgY29tbWl0IGZpeGVzIHRoZSBpc3N1ZSBieSBjbG9zaW5nIHRoZSBjb25uZWN0 aW9uIGlmIHRoZSAncmVjdm1zZygpJwpyZXR1cm5zICcwJyBpLmUuIHdoZW4gdGhlIHBlZXIgaXMg c2h1dGRvd24gZ3JhY2VmdWxseS4gSXQgYWxzbyBpbmNsdWRlcwp0aGUgb3RoZXIgdW5leHBlY3Rl ZCBjYXNlcy4KCkFja2VkLWJ5OiBKb24gTWFsb3kgPGptYWxveUByZWRoYXQuY29tPgpBY2tlZC1i eTogWWluZyBYdWUgPHlpbmcueHVlQHdpbmRyaXZlci5jb20+ClNpZ25lZC1vZmYtYnk6IFR1b25n IExpZW4gPHR1b25nLnQubGllbkBkZWt0ZWNoLmNvbS5hdT4KU2lnbmVkLW9mZi1ieTogRGF2aWQg Uy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC90aXBjL3RvcHNydi5jIHwg NSArKystLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9uZXQvdGlwYy90b3BzcnYuYyBiL25ldC90aXBjL3RvcHNydi5jCmluZGV4 IDNhMTJmYzE4MjM5Yi4uNzNkYmVkMGM0YjZiIDEwMDY0NAotLS0gYS9uZXQvdGlwYy90b3BzcnYu YworKysgYi9uZXQvdGlwYy90b3BzcnYuYwpAQCAtNDAyLDEwICs0MDIsMTEgQEAgc3RhdGljIGlu dCB0aXBjX2Nvbm5fcmN2X2Zyb21fc29jayhzdHJ1Y3QgdGlwY19jb25uICpjb24pCiAJCXJlYWRf bG9ja19iaCgmc2stPnNrX2NhbGxiYWNrX2xvY2spOwogCQlyZXQgPSB0aXBjX2Nvbm5fcmN2X3N1 YihzcnYsIGNvbiwgJnMpOwogCQlyZWFkX3VubG9ja19iaCgmc2stPnNrX2NhbGxiYWNrX2xvY2sp OworCQlpZiAoIXJldCkKKwkJCXJldHVybiAwOwogCX0KLQlpZiAocmV0IDwgMCkKLQkJdGlwY19j b25uX2Nsb3NlKGNvbik7CiAKKwl0aXBjX2Nvbm5fY2xvc2UoY29uKTsKIAlyZXR1cm4gcmV0Owog fQogCi0tIAoyLjI2LjIKCgpGcm9tIGZjZGY1MjI4NjgyMzEwZjlmYTk3MzdhOTFkNWQ3MTJhZTMw OWVmZmEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT9Ub2tlPTIwSD1D Mz1COGlsYW5kLUo9QzM9QjhyZ2Vuc2VuPz0gPHRva2VAcmVkaGF0LmNvbT4KRGF0ZTogTW9uLCAy NyBBcHIgMjAyMCAxNjoxMTowNSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMjgvNDRdIHR1bm5lbDog UHJvcGFnYXRlIEVDVCgxKSB3aGVuIGRlY2Fwc3VsYXRpbmcgYXMKIHJlY29tbWVuZGVkIGJ5IFJG QzYwNDAKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0 PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKClsgVXBzdHJlYW0gY29tbWl0 IGI3MjM3NDg3NTBlY2U3ZDg0NGNkZjJmNTJjMDFkMzdmODMzODcyMDggXQoKUkZDIDYwNDAgcmVj b21tZW5kcyBwcm9wYWdhdGluZyBhbiBFQ1QoMSkgbWFyayBmcm9tIGFuIG91dGVyIHR1bm5lbCBo ZWFkZXIKdG8gdGhlIGlubmVyIGhlYWRlciBpZiB0aGF0IGlubmVyIGhlYWRlciBpcyBhbHJlYWR5 IG1hcmtlZCBhcyBFQ1QoMCkuIFdoZW4KUkZDIDYwNDAgZGVjYXBzdWxhdGlvbiB3YXMgaW1wbGVt ZW50ZWQsIHRoaXMgY2FzZSBvZiBwcm9wYWdhdGlvbiB3YXMgbm90CmFkZGVkLiBUaGlzIHNpbXBs eSBhcHBlYXJzIHRvIGJlIGFuIG92ZXJzaWdodCwgc28gbGV0J3MgZml4IHRoYXQuCgpGaXhlczog ZWNjYzFiYjhkNGI0ICgidHVubmVsOiBkcm9wIHBhY2tldCBpZiBFQ04gcHJlc2VudCB3aXRoIG5v dC1FQ1QiKQpSZXBvcnRlZC1ieTogQm9iIEJyaXNjb2UgPGlldGZAYm9iYnJpc2NvZS5uZXQ+ClJl cG9ydGVkLWJ5OiBPbGl2aWVyIFRpbG1hbnMgPG9saXZpZXIudGlsbWFuc0Bub2tpYS1iZWxsLWxh YnMuY29tPgpDYzogRGF2ZSBUYWh0IDxkYXZlLnRhaHRAZ21haWwuY29tPgpDYzogU3RlcGhlbiBI ZW1taW5nZXIgPHN0ZXBoZW5AbmV0d29ya3BsdW1iZXIub3JnPgpTaWduZWQtb2ZmLWJ5OiBUb2tl IEjDuGlsYW5kLUrDuHJnZW5zZW4gPHRva2VAcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2 aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGluY2x1ZGUvbmV0L2luZXRf ZWNuLmggfCA1NyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0KIDEg ZmlsZSBjaGFuZ2VkLCA1NSBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2luY2x1ZGUvbmV0L2luZXRfZWNuLmggYi9pbmNsdWRlL25ldC9pbmV0X2Vjbi5oCmluZGV4 IGM4ZTJiZWJkOGQ5My4uMGYwZDFlZmUwNmRkIDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC9pbmV0 X2Vjbi5oCisrKyBiL2luY2x1ZGUvbmV0L2luZXRfZWNuLmgKQEAgLTk5LDYgKzk5LDIwIEBAIHN0 YXRpYyBpbmxpbmUgaW50IElQX0VDTl9zZXRfY2Uoc3RydWN0IGlwaGRyICppcGgpCiAJcmV0dXJu IDE7CiB9CiAKK3N0YXRpYyBpbmxpbmUgaW50IElQX0VDTl9zZXRfZWN0MShzdHJ1Y3QgaXBoZHIg KmlwaCkKK3sKKwl1MzIgY2hlY2sgPSAoX19mb3JjZSB1MzIpaXBoLT5jaGVjazsKKworCWlmICgo aXBoLT50b3MgJiBJTkVUX0VDTl9NQVNLKSAhPSBJTkVUX0VDTl9FQ1RfMCkKKwkJcmV0dXJuIDA7 CisKKwljaGVjayArPSAoX19mb3JjZSB1MTYpaHRvbnMoMHgxMDApOworCisJaXBoLT5jaGVjayA9 IChfX2ZvcmNlIF9fc3VtMTYpKGNoZWNrICsgKGNoZWNrPj0weEZGRkYpKTsKKwlpcGgtPnRvcyBe PSBJTkVUX0VDTl9NQVNLOworCXJldHVybiAxOworfQorCiBzdGF0aWMgaW5saW5lIHZvaWQgSVBf RUNOX2NsZWFyKHN0cnVjdCBpcGhkciAqaXBoKQogewogCWlwaC0+dG9zICY9IH5JTkVUX0VDTl9N QVNLOwpAQCAtMTM0LDYgKzE0OCwyMiBAQCBzdGF0aWMgaW5saW5lIGludCBJUDZfRUNOX3NldF9j ZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgaXB2NmhkciAqaXBoKQogCXJldHVybiAxOwog fQogCitzdGF0aWMgaW5saW5lIGludCBJUDZfRUNOX3NldF9lY3QxKHN0cnVjdCBza19idWZmICpz a2IsIHN0cnVjdCBpcHY2aGRyICppcGgpCit7CisJX19iZTMyIGZyb20sIHRvOworCisJaWYgKChp cHY2X2dldF9kc2ZpZWxkKGlwaCkgJiBJTkVUX0VDTl9NQVNLKSAhPSBJTkVUX0VDTl9FQ1RfMCkK KwkJcmV0dXJuIDA7CisKKwlmcm9tID0gKihfX2JlMzIgKilpcGg7CisJdG8gPSBmcm9tIF4gaHRv bmwoSU5FVF9FQ05fTUFTSyA8PCAyMCk7CisJKihfX2JlMzIgKilpcGggPSB0bzsKKwlpZiAoc2ti LT5pcF9zdW1tZWQgPT0gQ0hFQ0tTVU1fQ09NUExFVEUpCisJCXNrYi0+Y3N1bSA9IGNzdW1fYWRk KGNzdW1fc3ViKHNrYi0+Y3N1bSwgKF9fZm9yY2UgX193c3VtKWZyb20pLAorCQkJCSAgICAgKF9f Zm9yY2UgX193c3VtKXRvKTsKKwlyZXR1cm4gMTsKK30KKwogc3RhdGljIGlubGluZSB2b2lkIGlw djZfY29weV9kc2NwKHVuc2lnbmVkIGludCBkc2NwLCBzdHJ1Y3QgaXB2NmhkciAqaW5uZXIpCiB7 CiAJZHNjcCAmPSB+SU5FVF9FQ05fTUFTSzsKQEAgLTE1OSw2ICsxODksMjUgQEAgc3RhdGljIGlu bGluZSBpbnQgSU5FVF9FQ05fc2V0X2NlKHN0cnVjdCBza19idWZmICpza2IpCiAJcmV0dXJuIDA7 CiB9CiAKK3N0YXRpYyBpbmxpbmUgaW50IElORVRfRUNOX3NldF9lY3QxKHN0cnVjdCBza19idWZm ICpza2IpCit7CisJc3dpdGNoIChza2ItPnByb3RvY29sKSB7CisJY2FzZSBjcHVfdG9fYmUxNihF VEhfUF9JUCk6CisJCWlmIChza2JfbmV0d29ya19oZWFkZXIoc2tiKSArIHNpemVvZihzdHJ1Y3Qg aXBoZHIpIDw9CisJCSAgICBza2JfdGFpbF9wb2ludGVyKHNrYikpCisJCQlyZXR1cm4gSVBfRUNO X3NldF9lY3QxKGlwX2hkcihza2IpKTsKKwkJYnJlYWs7CisKKwljYXNlIGNwdV90b19iZTE2KEVU SF9QX0lQVjYpOgorCQlpZiAoc2tiX25ldHdvcmtfaGVhZGVyKHNrYikgKyBzaXplb2Yoc3RydWN0 IGlwdjZoZHIpIDw9CisJCSAgICBza2JfdGFpbF9wb2ludGVyKHNrYikpCisJCQlyZXR1cm4gSVA2 X0VDTl9zZXRfZWN0MShza2IsIGlwdjZfaGRyKHNrYikpOworCQlicmVhazsKKwl9CisKKwlyZXR1 cm4gMDsKK30KKwogLyoKICAqIFJGQyA2MDQwIDQuMgogICogIFRvIGRlY2Fwc3VsYXRlIHRoZSBp bm5lciBoZWFkZXIgYXQgdGhlIHR1bm5lbCBlZ3Jlc3MsIGEgY29tcGxpYW50CkBAIC0yMDgsOCAr MjU3LDEyIEBAIHN0YXRpYyBpbmxpbmUgaW50IElORVRfRUNOX2RlY2Fwc3VsYXRlKHN0cnVjdCBz a19idWZmICpza2IsCiAJaW50IHJjOwogCiAJcmMgPSBfX0lORVRfRUNOX2RlY2Fwc3VsYXRlKG91 dGVyLCBpbm5lciwgJnNldF9jZSk7Ci0JaWYgKCFyYyAmJiBzZXRfY2UpCi0JCUlORVRfRUNOX3Nl dF9jZShza2IpOworCWlmICghcmMpIHsKKwkJaWYgKHNldF9jZSkKKwkJCUlORVRfRUNOX3NldF9j ZShza2IpOworCQllbHNlIGlmICgob3V0ZXIgJiBJTkVUX0VDTl9NQVNLKSA9PSBJTkVUX0VDTl9F Q1RfMSkKKwkJCUlORVRfRUNOX3NldF9lY3QxKHNrYik7CisJfQogCiAJcmV0dXJuIHJjOwogfQot LSAKMi4yNi4yCgoKRnJvbSBjMTllOTgwZjdkYjY0OTlkYjcxMDJhODYzZTIyMjQyMzZhZjQxZGRi IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNaWNoYWVsIENoYW4gPG1pY2hhZWwuY2hh bkBicm9hZGNvbS5jb20+CkRhdGU6IFN1biwgMjYgQXByIDIwMjAgMTY6MjQ6MzggLTA0MDAKU3Vi amVjdDogW1BBVENIIDI5LzQ0XSBibnh0X2VuOiBGaXggVkYgYW50aS1zcG9vZiBmaWx0ZXIgc2V0 dXAuCgpbIFVwc3RyZWFtIGNvbW1pdCBjNzFjNGU0OWFmZTE3MzgyM2EyYTg1YjBjYWJjOWIzZjEx NzZmZmEyIF0KCkZpeCB0aGUgbG9naWMgdGhhdCBzZXRzIHRoZSBlbmFibGUvZGlzYWJsZSBmbGFn IGZvciB0aGUgc291cmNlIE1BQwpmaWx0ZXIgYWNjb3JkaW5nIHRvIGZpcm13YXJlIHNwZWMgMS43 LjEuCgpJbiB0aGUgb3JpZ2luYWwgZmlybXdhcmUgc3BlYy4gYmVmb3JlIDEuNy4xLCB0aGUgVkYg c3Bvb2YgY2hlY2sgZmxhZ3MKd2VyZSBub3QgbGF0Y2hlZCBhZnRlciBtYWtpbmcgdGhlIEhXUk1f RlVOQ19DRkcgY2FsbCwgc28gdGhlcmUgd2FzIGEKbmVlZCB0byBrZWVwIHRoZSBmdW5jX2ZsYWdz IHNvIHRoYXQgc3Vic2VxdWVudCBjYWxscyB3b3VsZCBwZXJzZXJ2ZQp0aGUgVkYgc3Bvb2YgY2hl Y2sgc2V0dGluZy4gIEEgY2hhbmdlIHdhcyBtYWRlIGluIHRoZSAxLjcuMSBzcGVjCnNvIHRoYXQg dGhlIGZsYWdzIGJlY2FtZSBsYXRjaGVkLiAgU28gd2Ugbm93IHNldCBvciBjbGVhciB0aGUgYW50 aS0Kc3Bvb2Ygc2V0dGluZyBkaXJlY3RseSB3aXRob3V0IHJldHJpZXZpbmcgdGhlIG9sZCBzZXR0 aW5ncyBpbiB0aGUKc3RvcmVkIHZmLT5mdW5jX2ZsYWdzIHdoaWNoIGFyZSBubyBsb25nZXIgdmFs aWQuICBXZSBhbHNvIHJlbW92ZSB0aGUKdW5uZWVkZWQgdmYtPmZ1bmNfZmxhZ3MuCgpGaXhlczog OGViOTkyZTg3NmE4ICgiYm54dF9lbjogVXBkYXRlIGZpcm13YXJlIGludGVyZmFjZSBzcGVjIHRv IDEuNy42LjIuIikKU2lnbmVkLW9mZi1ieTogTWljaGFlbCBDaGFuIDxtaWNoYWVsLmNoYW5AYnJv YWRjb20uY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9m dC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0LmggICAg ICAgfCAgMSAtCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHRfc3Jpb3Yu YyB8IDEwICsrLS0tLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCA5IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2Ju eHQvYm54dC5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0LmgKaW5k ZXggNjNiMTcwNjU4NTMyLi5lZjAyNjg2NDk4MjIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0 aGVybmV0L2Jyb2FkY29tL2JueHQvYm54dC5oCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jy b2FkY29tL2JueHQvYm54dC5oCkBAIC0xMDY0LDcgKzEwNjQsNiBAQCBzdHJ1Y3QgYm54dF92Zl9p bmZvIHsKICNkZWZpbmUgQk5YVF9WRl9MSU5LX0ZPUkNFRAkweDQKICNkZWZpbmUgQk5YVF9WRl9M SU5LX1VQCQkweDgKICNkZWZpbmUgQk5YVF9WRl9UUlVTVAkJMHgxMAotCXUzMglmdW5jX2ZsYWdz OyAvKiBmdW5jIGNmZyBmbGFncyAqLwogCXUzMgltaW5fdHhfcmF0ZTsKIAl1MzIJbWF4X3R4X3Jh dGU7CiAJdm9pZAkqaHdybV9jbWRfcmVxX2FkZHI7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9l dGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHRfc3Jpb3YuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0 L2Jyb2FkY29tL2JueHQvYm54dF9zcmlvdi5jCmluZGV4IDJhYmExZTAyYThmNC4uMTI1OWQxMzVj OWNjIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHRf c3Jpb3YuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHRfc3Jp b3YuYwpAQCAtODUsMTEgKzg1LDEwIEBAIGludCBibnh0X3NldF92Zl9zcG9vZmNoayhzdHJ1Y3Qg bmV0X2RldmljZSAqZGV2LCBpbnQgdmZfaWQsIGJvb2wgc2V0dGluZykKIAlpZiAob2xkX3NldHRp bmcgPT0gc2V0dGluZykKIAkJcmV0dXJuIDA7CiAKLQlmdW5jX2ZsYWdzID0gdmYtPmZ1bmNfZmxh Z3M7CiAJaWYgKHNldHRpbmcpCi0JCWZ1bmNfZmxhZ3MgfD0gRlVOQ19DRkdfUkVRX0ZMQUdTX1NS Q19NQUNfQUREUl9DSEVDS19FTkFCTEU7CisJCWZ1bmNfZmxhZ3MgPSBGVU5DX0NGR19SRVFfRkxB R1NfU1JDX01BQ19BRERSX0NIRUNLX0VOQUJMRTsKIAllbHNlCi0JCWZ1bmNfZmxhZ3MgfD0gRlVO Q19DRkdfUkVRX0ZMQUdTX1NSQ19NQUNfQUREUl9DSEVDS19ESVNBQkxFOworCQlmdW5jX2ZsYWdz ID0gRlVOQ19DRkdfUkVRX0ZMQUdTX1NSQ19NQUNfQUREUl9DSEVDS19ESVNBQkxFOwogCS8qVE9E TzogaWYgdGhlIGRyaXZlciBzdXBwb3J0cyBWTEFOIGZpbHRlciBvbiBndWVzdCBWTEFOLAogCSAq IHRoZSBzcG9vZiBjaGVjayBzaG91bGQgYWxzbyBpbmNsdWRlIHZsYW4gYW50aS1zcG9vZmluZwog CSAqLwpAQCAtOTgsNyArOTcsNiBAQCBpbnQgYm54dF9zZXRfdmZfc3Bvb2ZjaGsoc3RydWN0IG5l dF9kZXZpY2UgKmRldiwgaW50IHZmX2lkLCBib29sIHNldHRpbmcpCiAJcmVxLmZsYWdzID0gY3B1 X3RvX2xlMzIoZnVuY19mbGFncyk7CiAJcmMgPSBod3JtX3NlbmRfbWVzc2FnZShicCwgJnJlcSwg c2l6ZW9mKHJlcSksIEhXUk1fQ01EX1RJTUVPVVQpOwogCWlmICghcmMpIHsKLQkJdmYtPmZ1bmNf ZmxhZ3MgPSBmdW5jX2ZsYWdzOwogCQlpZiAoc2V0dGluZykKIAkJCXZmLT5mbGFncyB8PSBCTlhU X1ZGX1NQT09GQ0hLOwogCQllbHNlCkBAIC0yMzAsNyArMjI4LDYgQEAgaW50IGJueHRfc2V0X3Zm X21hYyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBpbnQgdmZfaWQsIHU4ICptYWMpCiAJbWVtY3B5 KHZmLT5tYWNfYWRkciwgbWFjLCBFVEhfQUxFTik7CiAJYm54dF9od3JtX2NtZF9oZHJfaW5pdChi cCwgJnJlcSwgSFdSTV9GVU5DX0NGRywgLTEsIC0xKTsKIAlyZXEuZmlkID0gY3B1X3RvX2xlMTYo dmYtPmZ3X2ZpZCk7Ci0JcmVxLmZsYWdzID0gY3B1X3RvX2xlMzIodmYtPmZ1bmNfZmxhZ3MpOwog CXJlcS5lbmFibGVzID0gY3B1X3RvX2xlMzIoRlVOQ19DRkdfUkVRX0VOQUJMRVNfREZMVF9NQUNf QUREUik7CiAJbWVtY3B5KHJlcS5kZmx0X21hY19hZGRyLCBtYWMsIEVUSF9BTEVOKTsKIAlyZXR1 cm4gaHdybV9zZW5kX21lc3NhZ2UoYnAsICZyZXEsIHNpemVvZihyZXEpLCBIV1JNX0NNRF9USU1F T1VUKTsKQEAgLTI2OCw3ICsyNjUsNiBAQCBpbnQgYm54dF9zZXRfdmZfdmxhbihzdHJ1Y3QgbmV0 X2RldmljZSAqZGV2LCBpbnQgdmZfaWQsIHUxNiB2bGFuX2lkLCB1OCBxb3MsCiAKIAlibnh0X2h3 cm1fY21kX2hkcl9pbml0KGJwLCAmcmVxLCBIV1JNX0ZVTkNfQ0ZHLCAtMSwgLTEpOwogCXJlcS5m aWQgPSBjcHVfdG9fbGUxNih2Zi0+ZndfZmlkKTsKLQlyZXEuZmxhZ3MgPSBjcHVfdG9fbGUzMih2 Zi0+ZnVuY19mbGFncyk7CiAJcmVxLmRmbHRfdmxhbiA9IGNwdV90b19sZTE2KHZsYW5fdGFnKTsK IAlyZXEuZW5hYmxlcyA9IGNwdV90b19sZTMyKEZVTkNfQ0ZHX1JFUV9FTkFCTEVTX0RGTFRfVkxB Tik7CiAJcmMgPSBod3JtX3NlbmRfbWVzc2FnZShicCwgJnJlcSwgc2l6ZW9mKHJlcSksIEhXUk1f Q01EX1RJTUVPVVQpOwpAQCAtMzA3LDcgKzMwMyw2IEBAIGludCBibnh0X3NldF92Zl9idyhzdHJ1 Y3QgbmV0X2RldmljZSAqZGV2LCBpbnQgdmZfaWQsIGludCBtaW5fdHhfcmF0ZSwKIAkJcmV0dXJu IDA7CiAJYm54dF9od3JtX2NtZF9oZHJfaW5pdChicCwgJnJlcSwgSFdSTV9GVU5DX0NGRywgLTEs IC0xKTsKIAlyZXEuZmlkID0gY3B1X3RvX2xlMTYodmYtPmZ3X2ZpZCk7Ci0JcmVxLmZsYWdzID0g Y3B1X3RvX2xlMzIodmYtPmZ1bmNfZmxhZ3MpOwogCXJlcS5lbmFibGVzID0gY3B1X3RvX2xlMzIo RlVOQ19DRkdfUkVRX0VOQUJMRVNfTUFYX0JXKTsKIAlyZXEubWF4X2J3ID0gY3B1X3RvX2xlMzIo bWF4X3R4X3JhdGUpOwogCXJlcS5lbmFibGVzIHw9IGNwdV90b19sZTMyKEZVTkNfQ0ZHX1JFUV9F TkFCTEVTX01JTl9CVyk7CkBAIC00NzksNyArNDc0LDYgQEAgc3RhdGljIHZvaWQgX19ibnh0X3Nl dF92Zl9wYXJhbXMoc3RydWN0IGJueHQgKmJwLCBpbnQgdmZfaWQpCiAJdmYgPSAmYnAtPnBmLnZm W3ZmX2lkXTsKIAlibnh0X2h3cm1fY21kX2hkcl9pbml0KGJwLCAmcmVxLCBIV1JNX0ZVTkNfQ0ZH LCAtMSwgLTEpOwogCXJlcS5maWQgPSBjcHVfdG9fbGUxNih2Zi0+ZndfZmlkKTsKLQlyZXEuZmxh Z3MgPSBjcHVfdG9fbGUzMih2Zi0+ZnVuY19mbGFncyk7CiAKIAlpZiAoaXNfdmFsaWRfZXRoZXJf YWRkcih2Zi0+bWFjX2FkZHIpKSB7CiAJCXJlcS5lbmFibGVzIHw9IGNwdV90b19sZTMyKEZVTkNf Q0ZHX1JFUV9FTkFCTEVTX0RGTFRfTUFDX0FERFIpOwotLSAKMi4yNi4yCgoKRnJvbSA5MWI4MTA5 NjdiODk4N2QxNDRkNTBhYmU1MzE0YzVlYzAwODY1NGM0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBWYXN1bmRoYXJhIFZvbGFtIDx2YXN1bmRoYXJhLXYudm9sYW1AYnJvYWRjb20uY29t PgpEYXRlOiBTdW4sIDI2IEFwciAyMDIwIDE2OjI0OjM5IC0wNDAwClN1YmplY3Q6IFtQQVRDSCAz MC80NF0gYm54dF9lbjogUmVkdWNlIEJOWFRfTVNJWF9WRUNfTUFYIHZhbHVlIHRvIHN1cHBvcnRl ZAogQ1FzIHBlciBQRi4KClsgVXBzdHJlYW0gY29tbWl0IDllNjhjYjAzNTliMjBmOTljN2IwNzBm MWQzMzA1ZTVlMGE5ZmFlNmQgXQoKQnJvYWRjb20gYWRhcHRlcnMgc3VwcG9ydCBvbmx5IG1heGlt dW0gb2YgNTEyIENRcyBwZXIgUEYuIElmIHVzZXIgc2V0cwpNU0l4IHZlY3RvcnMgbW9yZSB0aGFu IHN1cHBvcnRlZCBDUXMsIGZpcm13YXJlIGlzIHNldHRpbmcgaW5jb3JyZWN0IHZhbHVlCmZvciBt c2l4X3ZlY19wZXJfcGZfbWF4IHBhcmFtZXRlci4gRml4IGl0IGJ5IHJlZHVjaW5nIHRoZSBCTlhU X01TSVhfVkVDX01BWAp2YWx1ZSB0byA1MTIsIGV2ZW4gdGhvdWdoIHRoZSBtYXhpbXVtICMgb2Yg TVNJeCB2ZWN0b3JzIHN1cHBvcnRlZCBieSBhZGFwdGVyCmFyZSAxMjgwLgoKRml4ZXM6IGYzOTll ODQ5NzgyNiAoImJueHRfZW46IFVzZSBtc2l4X3ZlY19wZXJfcGZfbWF4IGFuZCBtc2l4X3ZlY19w ZXJfcGZfbWluIGRldmxpbmsgcGFyYW1zLiIpClNpZ25lZC1vZmYtYnk6IFZhc3VuZGhhcmEgVm9s YW0gPHZhc3VuZGhhcmEtdi52b2xhbUBicm9hZGNvbS5jb20+ClNpZ25lZC1vZmYtYnk6IE1pY2hh ZWwgQ2hhbiA8bWljaGFlbC5jaGFuQGJyb2FkY29tLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQg Uy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0 L2Jyb2FkY29tL2JueHQvYm54dF9kZXZsaW5rLmggfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBp bnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhl cm5ldC9icm9hZGNvbS9ibnh0L2JueHRfZGV2bGluay5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQv YnJvYWRjb20vYm54dC9ibnh0X2RldmxpbmsuaAppbmRleCA5NWY4OTNmMmE3NGQuLmQ1YzhiZDQ5 MzgzYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0 X2RldmxpbmsuaAorKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHRf ZGV2bGluay5oCkBAIC00Myw3ICs0Myw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBibnh0X2xpbmtf YnBfdG9fZGwoc3RydWN0IGJueHQgKmJwLCBzdHJ1Y3QgZGV2bGluayAqZGwpCiAjZGVmaW5lIEJO WFRfTlZNX0NGR19WRVJfQklUUwkJMjQKICNkZWZpbmUgQk5YVF9OVk1fQ0ZHX1ZFUl9CWVRFUwkJ NAogCi0jZGVmaW5lIEJOWFRfTVNJWF9WRUNfTUFYCTEyODAKKyNkZWZpbmUgQk5YVF9NU0lYX1ZF Q19NQVgJNTEyCiAjZGVmaW5lIEJOWFRfTVNJWF9WRUNfTUlOX01BWAkxMjgKIAogZW51bSBibnh0 X252bV9kaXJfdHlwZSB7Ci0tIAoyLjI2LjIKCgpGcm9tIGY4NTcwZGZmM2UyOTY4NmQ1YTIwNWNk YjMxNTZiNDhjYTAxNjA1OTggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE1pY2hhZWwg Q2hhbiA8bWljaGFlbC5jaGFuQGJyb2FkY29tLmNvbT4KRGF0ZTogU3VuLCAyNiBBcHIgMjAyMCAx NjoyNDo0MCAtMDQwMApTdWJqZWN0OiBbUEFUQ0ggMzEvNDRdIGJueHRfZW46IEltcHJvdmUgQUVS IHNsb3QgcmVzZXQuCgpbIFVwc3RyZWFtIGNvbW1pdCBiYWUzNjFjNTRmYjZhYzZlYmEzYjQ3NjJm NDljZTE0YmViNzNlZjEzIF0KCkltcHJvdmUgdGhlIHNsb3QgcmVzZXQgc2VxdWVuY2UgYnkgZGlz YWJsaW5nIHRoZSBkZXZpY2UgdG8gcHJldmVudCBiYWQKRE1BcyBpZiBzbG90IHJlc2V0IGZhaWxz LiAgUmV0dXJuIHRoZSBwcm9wZXIgcmVzdWx0IGluc3RlYWQgb2YgYWx3YXlzClBDSV9FUlNfUkVT VUxUX1JFQ09WRVJFRCB0byB0aGUgY2FsbGVyLgoKRml4ZXM6IDYzMTZlYTZkYjkzZCAoImJueHRf ZW46IEVuYWJsZSBBRVIgc3VwcG9ydC4iKQpTaWduZWQtb2ZmLWJ5OiBNaWNoYWVsIENoYW4gPG1p Y2hhZWwuY2hhbkBicm9hZGNvbS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8 ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9i bnh0L2JueHQuYyB8IDkgKysrKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCsp LCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2Fk Y29tL2JueHQvYm54dC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0 LmMKaW5kZXggZDI4YjQwNmEyNmIxLi5jZGU1ODZiOTZhMTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv bmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueHQvYm54dC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVy bmV0L2Jyb2FkY29tL2JueHQvYm54dC5jCkBAIC0xMjE3MywxMiArMTIxNzMsMTUgQEAgc3RhdGlj IHBjaV9lcnNfcmVzdWx0X3QgYm54dF9pb19zbG90X3Jlc2V0KHN0cnVjdCBwY2lfZGV2ICpwZGV2 KQogCQlibnh0X3VscF9zdGFydChicCwgZXJyKTsKIAl9CiAKLQlpZiAocmVzdWx0ICE9IFBDSV9F UlNfUkVTVUxUX1JFQ09WRVJFRCAmJiBuZXRpZl9ydW5uaW5nKG5ldGRldikpCi0JCWRldl9jbG9z ZShuZXRkZXYpOworCWlmIChyZXN1bHQgIT0gUENJX0VSU19SRVNVTFRfUkVDT1ZFUkVEKSB7CisJ CWlmIChuZXRpZl9ydW5uaW5nKG5ldGRldikpCisJCQlkZXZfY2xvc2UobmV0ZGV2KTsKKwkJcGNp X2Rpc2FibGVfZGV2aWNlKHBkZXYpOworCX0KIAogCXJ0bmxfdW5sb2NrKCk7CiAKLQlyZXR1cm4g UENJX0VSU19SRVNVTFRfUkVDT1ZFUkVEOworCXJldHVybiByZXN1bHQ7CiB9CiAKIC8qKgotLSAK Mi4yNi4yCgoKRnJvbSA1YmQ0ODM0MzY0NjA4NjhiMjVhYWVmYjY1ZjQzOWI1MDllMzIxZjg5IE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNaWNoYWVsIENoYW4gPG1pY2hhZWwuY2hhbkBi cm9hZGNvbS5jb20+CkRhdGU6IFN1biwgMjYgQXByIDIwMjAgMTY6MjQ6NDEgLTA0MDAKU3ViamVj dDogW1BBVENIIDMyLzQ0XSBibnh0X2VuOiBSZXR1cm4gZXJyb3Igd2hlbiBhbGxvY2F0aW5nIHpl cm8gc2l6ZSBjb250ZXh0CiBtZW1vcnkuCgpbIFVwc3RyZWFtIGNvbW1pdCBiYmYyMTFiMWVjYjg5 MWM3ZTBjYzc4ODg4MzQ1MDQxODNmYzhiNTM0IF0KCmJueHRfYWxsb2NfY3R4X3BnX3RibHMoKSBz aG91bGQgcmV0dXJuIGVycm9yIHdoZW4gdGhlIG1lbW9yeSBzaXplIG9mIHRoZQpjb250ZXh0IG1l bW9yeSB0byBzZXQgdXAgaXMgemVyby4gIEJ5IHJldHVybmluZyBzdWNjZXNzICgwKSwgdGhlIGNh bGxlcgptYXkgcHJvY2VlZCBub3JtYWxseSBhbmQgbWF5IGNyYXNoIGxhdGVyIHdoZW4gaXQgdHJp ZXMgdG8gc2V0IHVwIHRoZQptZW1vcnkuCgpGaXhlczogMDhmZTlkMTgxNjA2ICgiYm54dF9lbjog QWRkIExldmVsIDIgY29udGV4dCBtZW1vcnkgcGFnaW5nIHN1cHBvcnQuIikKU2lnbmVkLW9mZi1i eTogTWljaGFlbCBDaGFuIDxtaWNoYWVsLmNoYW5AYnJvYWRjb20uY29tPgpTaWduZWQtb2ZmLWJ5 OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQv ZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0LmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBp bnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhl cm5ldC9icm9hZGNvbS9ibnh0L2JueHQuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29t L2JueHQvYm54dC5jCmluZGV4IGNkZTU4NmI5NmExNy4uZjA2ODAxZWRlYTdkIDEwMDY0NAotLS0g YS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHQuYworKysgYi9kcml2ZXJz L25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHQuYwpAQCAtNjY2Miw3ICs2NjYyLDcgQEAg c3RhdGljIGludCBibnh0X2FsbG9jX2N0eF9wZ190YmxzKHN0cnVjdCBibnh0ICpicCwKIAlpbnQg cmM7CiAKIAlpZiAoIW1lbV9zaXplKQotCQlyZXR1cm4gMDsKKwkJcmV0dXJuIC1FSU5WQUw7CiAK IAljdHhfcGctPm5yX3BhZ2VzID0gRElWX1JPVU5EX1VQKG1lbV9zaXplLCBCTlhUX1BBR0VfU0la RSk7CiAJaWYgKGN0eF9wZy0+bnJfcGFnZXMgPiBNQVhfQ1RYX1RPVEFMX1BBR0VTKSB7Ci0tIAoy LjI2LjIKCgpGcm9tIDVjNGVkNWIxNmM0OWQwMTA4ZDdlMjEwZDIxMGJlNTYxYmJmMzYzZDQgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE1pY2hhZWwgQ2hhbiA8bWljaGFlbC5jaGFuQGJy b2FkY29tLmNvbT4KRGF0ZTogU3VuLCAyNiBBcHIgMjAyMCAxNjoyNDo0MiAtMDQwMApTdWJqZWN0 OiBbUEFUQ0ggMzMvNDRdIGJueHRfZW46IEZpeCBWTEFOIGFjY2VsZXJhdGlvbiBoYW5kbGluZyBp bgogYm54dF9maXhfZmVhdHVyZXMoKS4KClsgVXBzdHJlYW0gY29tbWl0IGM3MmNiMzAzYWE2YzJh ZTdlNDE4NGYwMDgxYzZkMTFiZjAzZmI5NmIgXQoKVGhlIGN1cnJlbnQgbG9naWMgaW4gYm54dF9m aXhfZmVhdHVyZXMoKSB3aWxsIGluYWR2ZXJ0ZW50bHkgdHVybiBvbiBib3RoCkNUQUcgYW5kIFNU QUcgVkxBTiBvZmZsb2FkIGlmIHRoZSB1c2VyIHRyaWVzIHRvIGRpc2FibGUgYm90aC4gIEZpeCBp dApieSBjaGVja2luZyB0aGF0IHRoZSB1c2VyIGlzIHRyeWluZyB0byBlbmFibGUgQ1RBRyBvciBT VEFHIGJlZm9yZQplbmFibGluZyBib3RoLiAgVGhlIGxvZ2ljIGlzIHN1cHBvc2VkIHRvIGVuYWJs ZSBvciBkaXNhYmxlIGJvdGggQ1RBRyBhbmQKU1RBRyB0b2dldGhlci4KCkZpeGVzOiA1YTlmNmIy MzhlNTkgKCJibnh0X2VuOiBFbmFibGUgYW5kIGRpc2FibGUgUlggQ1RBRyBhbmQgUlggU1RBRyBW TEFOIGFjY2VsZXJhdGlvbiB0b2dldGhlci4iKQpTaWduZWQtb2ZmLWJ5OiBNaWNoYWVsIENoYW4g PG1pY2hhZWwuY2hhbkBicm9hZGNvbS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxl ciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNv bS9ibnh0L2JueHQuYyB8IDkgKysrKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25z KCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jy b2FkY29tL2JueHQvYm54dC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9i bnh0LmMKaW5kZXggZjA2ODAxZWRlYTdkLi5kMGRkZDA4YzQxMTIgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueHQvYm54dC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0 aGVybmV0L2Jyb2FkY29tL2JueHQvYm54dC5jCkBAIC05Nzk0LDYgKzk3OTQsNyBAQCBzdGF0aWMg bmV0ZGV2X2ZlYXR1cmVzX3QgYm54dF9maXhfZmVhdHVyZXMoc3RydWN0IG5ldF9kZXZpY2UgKmRl diwKIAkJCQkJICAgbmV0ZGV2X2ZlYXR1cmVzX3QgZmVhdHVyZXMpCiB7CiAJc3RydWN0IGJueHQg KmJwID0gbmV0ZGV2X3ByaXYoZGV2KTsKKwluZXRkZXZfZmVhdHVyZXNfdCB2bGFuX2ZlYXR1cmVz OwogCiAJaWYgKChmZWF0dXJlcyAmIE5FVElGX0ZfTlRVUExFKSAmJiAhYm54dF9yZnNfY2FwYWJs ZShicCkpCiAJCWZlYXR1cmVzICY9IH5ORVRJRl9GX05UVVBMRTsKQEAgLTk4MTAsMTIgKzk4MTEs MTQgQEAgc3RhdGljIG5ldGRldl9mZWF0dXJlc190IGJueHRfZml4X2ZlYXR1cmVzKHN0cnVjdCBu ZXRfZGV2aWNlICpkZXYsCiAJLyogQm90aCBDVEFHIGFuZCBTVEFHIFZMQU4gYWNjZWxhcmF0aW9u IG9uIHRoZSBSWCBzaWRlIGhhdmUgdG8gYmUKIAkgKiB0dXJuZWQgb24gb3Igb2ZmIHRvZ2V0aGVy LgogCSAqLwotCWlmICgoZmVhdHVyZXMgJiAoTkVUSUZfRl9IV19WTEFOX0NUQUdfUlggfCBORVRJ Rl9GX0hXX1ZMQU5fU1RBR19SWCkpICE9Ci0JICAgIChORVRJRl9GX0hXX1ZMQU5fQ1RBR19SWCB8 IE5FVElGX0ZfSFdfVkxBTl9TVEFHX1JYKSkgeworCXZsYW5fZmVhdHVyZXMgPSBmZWF0dXJlcyAm IChORVRJRl9GX0hXX1ZMQU5fQ1RBR19SWCB8CisJCQkJICAgIE5FVElGX0ZfSFdfVkxBTl9TVEFH X1JYKTsKKwlpZiAodmxhbl9mZWF0dXJlcyAhPSAoTkVUSUZfRl9IV19WTEFOX0NUQUdfUlggfAor CQkJICAgICAgTkVUSUZfRl9IV19WTEFOX1NUQUdfUlgpKSB7CiAJCWlmIChkZXYtPmZlYXR1cmVz ICYgTkVUSUZfRl9IV19WTEFOX0NUQUdfUlgpCiAJCQlmZWF0dXJlcyAmPSB+KE5FVElGX0ZfSFdf VkxBTl9DVEFHX1JYIHwKIAkJCQkgICAgICBORVRJRl9GX0hXX1ZMQU5fU1RBR19SWCk7Ci0JCWVs c2UKKwkJZWxzZSBpZiAodmxhbl9mZWF0dXJlcykKIAkJCWZlYXR1cmVzIHw9IE5FVElGX0ZfSFdf VkxBTl9DVEFHX1JYIHwKIAkJCQkgICAgTkVUSUZfRl9IV19WTEFOX1NUQUdfUlg7CiAJfQotLSAK Mi4yNi4yCgoKRnJvbSBhZDU4ZWI4ZDdkYTI3MzRmODc4NmMzZDdkMjA1NDJmMDczOTdhZTM0IE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmV6IFNoaXRyaXQgPGVyZXpzaEBtZWxsYW5v eC5jb20+CkRhdGU6IFdlZCwgMjUgTWFyIDIwMjAgMTc6MTk6NDMgKzAyMDAKU3ViamVjdDogW1BB VENIIDM0LzQ0XSBuZXQvbWx4NTogRFIsIE9uIGNyZWF0aW9uIHNldCBDUSdzIGFybV9kYiBtZW1i ZXIgdG8KIHJpZ2h0IHZhbHVlCgpbIFVwc3RyZWFtIGNvbW1pdCA4MDc1NDExZDkzYjZlZmUxNDNk OWY2MDZmNjUzMTA3Nzc5NWI3ZmJmIF0KCkluIHBvbGxpbmcgbW9kZSwgc2V0IGFybV9kYiBtZW1i ZXIgdG8gYSB2YWx1ZSB0aGF0IHdpbGwgYXZvaWQgQ1EKZXZlbnQgcmVjb3ZlcnkgYnkgdGhlIEhX LgpPdGhlcndpc2Ugd2UgbWlnaHQgZ2V0IGV2ZW50IHdpdGhvdXQgY29tcGxldGlvbiBmdW5jdGlv bi4KSW4gYWRkaXRpb24sZW1wdHkgY29tcGxldGlvbiBmdW5jdGlvbiB0byB3YXMgYWRkZWQgdG8g cHJvdGVjdCBmcm9tCnVuZXhwZWN0ZWQgZXZlbnRzLgoKRml4ZXM6IDI5N2NjY2ViZGM1YSAoIm5l dC9tbHg1OiBEUiwgRXhwb3NlIGFuIGludGVybmFsIEFQSSB0byBpc3N1ZSBSRE1BIG9wZXJhdGlv bnMiKQpTaWduZWQtb2ZmLWJ5OiBFcmV6IFNoaXRyaXQgPGVyZXpzaEBtZWxsYW5veC5jb20+ClJl dmlld2VkLWJ5OiBUYXJpcSBUb3VrYW4gPHRhcmlxdEBtZWxsYW5veC5jb20+ClJldmlld2VkLWJ5 OiBBbGV4IFZlc2tlciA8dmFsZXhAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBTYWVlZCBN YWhhbWVlZCA8c2FlZWRtQG1lbGxhbm94LmNvbT4KLS0tCiAuLi4vZXRoZXJuZXQvbWVsbGFub3gv bWx4NS9jb3JlL3N0ZWVyaW5nL2RyX3NlbmQuYyB8IDE0ICsrKysrKysrKysrKystCiAxIGZpbGUg Y2hhbmdlZCwgMTMgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9kcl9zZW5kLmMg Yi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvZHJfc2Vu ZC5jCmluZGV4IDA5NWVjN2IxMzk5ZC4uN2M3NzM3OGFjY2YwIDEwMDY0NAotLS0gYS9kcml2ZXJz L25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvZHJfc2VuZC5jCisrKyBi L2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9kcl9zZW5k LmMKQEAgLTY4OSw2ICs2ODksMTIgQEAgc3RhdGljIHZvaWQgZHJfY3FfZXZlbnQoc3RydWN0IG1s eDVfY29yZV9jcSAqbWNxLAogCXByX2luZm8oIkNRIGV2ZW50ICV1IG9uIENRICMldVxuIiwgZXZl bnQsIG1jcS0+Y3FuKTsKIH0KIAorc3RhdGljIHZvaWQgZHJfY3FfY29tcGxldGUoc3RydWN0IG1s eDVfY29yZV9jcSAqbWNxLAorCQkJICAgc3RydWN0IG1seDVfZXFlICplcWUpCit7CisJcHJfZXJy KCJDUSBjb21wbGV0aW9uIENROiAjJXVcbiIsIG1jcS0+Y3FuKTsKK30KKwogc3RhdGljIHN0cnVj dCBtbHg1ZHJfY3EgKmRyX2NyZWF0ZV9jcShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqbWRldiwKIAkJ CQkgICAgICBzdHJ1Y3QgbWx4NV91YXJzX3BhZ2UgKnVhciwKIAkJCQkgICAgICBzaXplX3QgbmNx ZSkKQEAgLTc1MCw2ICs3NTYsNyBAQCBzdGF0aWMgc3RydWN0IG1seDVkcl9jcSAqZHJfY3JlYXRl X2NxKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICptZGV2LAogCW1seDVfZmlsbF9wYWdlX2ZyYWdfYXJy YXkoJmNxLT53cV9jdHJsLmJ1ZiwgcGFzKTsKIAogCWNxLT5tY3EuZXZlbnQgPSBkcl9jcV9ldmVu dDsKKwljcS0+bWNxLmNvbXAgID0gZHJfY3FfY29tcGxldGU7CiAKIAllcnIgPSBtbHg1X2NvcmVf Y3JlYXRlX2NxKG1kZXYsICZjcS0+bWNxLCBpbiwgaW5sZW4sIG91dCwgc2l6ZW9mKG91dCkpOwog CWt2ZnJlZShpbik7CkBAIC03NjEsNyArNzY4LDEyIEBAIHN0YXRpYyBzdHJ1Y3QgbWx4NWRyX2Nx ICpkcl9jcmVhdGVfY3Eoc3RydWN0IG1seDVfY29yZV9kZXYgKm1kZXYsCiAJY3EtPm1jcS5zZXRf Y2lfZGIgPSBjcS0+d3FfY3RybC5kYi5kYjsKIAljcS0+bWNxLmFybV9kYiA9IGNxLT53cV9jdHJs LmRiLmRiICsgMTsKIAkqY3EtPm1jcS5zZXRfY2lfZGIgPSAwOwotCSpjcS0+bWNxLmFybV9kYiA9 IDA7CisKKwkvKiBzZXQgbm8temVybyB2YWx1ZSwgaW4gb3JkZXIgdG8gYXZvaWQgdGhlIEhXIHRv IHJ1biBkYi1yZWNvdmVyeSBvbgorCSAqIENRIHRoYXQgdXNlZCBpbiBwb2xsaW5nIG1vZGUuCisJ ICovCisJKmNxLT5tY3EuYXJtX2RiID0gY3B1X3RvX2JlMzIoMiA8PCAyOCk7CisKIAljcS0+bWNx LnZlY3RvciA9IDA7CiAJY3EtPm1jcS5pcnFuID0gaXJxbjsKIAljcS0+bWNxLnVhciA9IHVhcjsK LS0gCjIuMjYuMgoKCkZyb20gYWE1NDFmYmU1ODY2NGI5ZmY1MzUxODYxMjg4OTFlOThhNWEzNjMz MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTW9zaGUgU2hlbWVzaCA8bW9zaGVAbWVs bGFub3guY29tPgpEYXRlOiBTdW4sIDIxIEp1bCAyMDE5IDA4OjQwOjEzICswMzAwClN1YmplY3Q6 IFtQQVRDSCAzNS80NF0gbmV0L21seDU6IEZpeCBmb3JjZWQgY29tcGxldGlvbiBhY2Nlc3Mgbm9u IGluaXRpYWxpemVkCiBjb21tYW5kIGVudHJ5CgpbIFVwc3RyZWFtIGNvbW1pdCBmM2NiM2NlYmUy NmVkNGM4MDM2YWRiZDk0NDhiMzcyMTI5ZDNjMzcxIF0KCm1seDVfY21kX2ZsdXNoKCkgd2lsbCB0 cmlnZ2VyIGZvcmNlZCBjb21wbGV0aW9ucyB0byBhbGwgdmFsaWQgY29tbWFuZAplbnRyaWVzLiBU cmlnZ2VyZWQgYnkgYW4gYXN5bmNoIGV2ZW50IHN1Y2ggYXMgZmFzdCB0ZWFyZG93biBpdCBjYW4K aGFwcGVuIGF0IGFueSBzdGFnZSBvZiB0aGUgY29tbWFuZCwgaW5jbHVkaW5nIGNvbW1hbmQgaW5p dGlhbGl6YXRpb24uCkl0IHdpbGwgdHJpZ2dlciBmb3JjZWQgY29tcGxldGlvbiBhbmQgdGhhdCBj YW4gbGVhZCB0byBjb21wbGV0aW9uIG9uIGFuCnVuaW5pdGlhbGl6ZWQgY29tbWFuZCBlbnRyeS4K ClNldHRpbmcgTUxYNV9DTURfRU5UX1NUQVRFX1BFTkRJTkdfQ09NUCBvbmx5IGFmdGVyIGNvbW1h bmQgZW50cnkgaXMKaW5pdGlhbGl6ZWQgd2lsbCBlbnN1cmUgZm9yY2UgY29tcGxldGlvbiBpcyB0 cmVhdGVkIG9ubHkgaWYgY29tbWFuZAplbnRyeSBpcyBpbml0aWFsaXplZC4KCkZpeGVzOiA3M2Rk M2E0ODM5YzEgKCJuZXQvbWx4NTogQXZvaWQgdXNpbmcgcGVuZGluZyBjb21tYW5kIGludGVyZmFj ZSBzbG90cyIpClNpZ25lZC1vZmYtYnk6IE1vc2hlIFNoZW1lc2ggPG1vc2hlQG1lbGxhbm94LmNv bT4KU2lnbmVkLW9mZi1ieTogRXJhbiBCZW4gRWxpc2hhIDxlcmFuYmVAbWVsbGFub3guY29tPgpT aWduZWQtb2ZmLWJ5OiBTYWVlZCBNYWhhbWVlZCA8c2FlZWRtQG1lbGxhbm94LmNvbT4KLS0tCiBk cml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMgfCAyICstCiAxIGZp bGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9k cml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMgYi9kcml2ZXJzL25l dC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMKaW5kZXggMzRjYmE5N2Y3YmY0Li5k NzQ3MGY4ZDM1NWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21s eDUvY29yZS9jbWQuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2Nv cmUvY21kLmMKQEAgLTg4OCw3ICs4ODgsNiBAQCBzdGF0aWMgdm9pZCBjbWRfd29ya19oYW5kbGVy KHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIAl9CiAKIAljbWQtPmVudF9hcnJbZW50LT5pZHhd ID0gZW50OwotCXNldF9iaXQoTUxYNV9DTURfRU5UX1NUQVRFX1BFTkRJTkdfQ09NUCwgJmVudC0+ c3RhdGUpOwogCWxheSA9IGdldF9pbnN0KGNtZCwgZW50LT5pZHgpOwogCWVudC0+bGF5ID0gbGF5 OwogCW1lbXNldChsYXksIDAsIHNpemVvZigqbGF5KSk7CkBAIC05MTAsNiArOTA5LDcgQEAgc3Rh dGljIHZvaWQgY21kX3dvcmtfaGFuZGxlcihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAKIAlp ZiAoZW50LT5jYWxsYmFjaykKIAkJc2NoZWR1bGVfZGVsYXllZF93b3JrKCZlbnQtPmNiX3RpbWVv dXRfd29yaywgY2JfdGltZW91dCk7CisJc2V0X2JpdChNTFg1X0NNRF9FTlRfU1RBVEVfUEVORElO R19DT01QLCAmZW50LT5zdGF0ZSk7CiAKIAkvKiBTa2lwIHNlbmRpbmcgY29tbWFuZCB0byBmdyBp ZiBpbnRlcm5hbCBlcnJvciAqLwogCWlmIChwY2lfY2hhbm5lbF9vZmZsaW5lKGRldi0+cGRldikg fHwKLS0gCjIuMjYuMgoKCkZyb20gOTUwMGEzMzE5NGNkNTc0ZDkxNzJiOTZiNDVjNDQ0MDc3Njdi NjQ3YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTW9zaGUgU2hlbWVzaCA8bW9zaGVA bWVsbGFub3guY29tPgpEYXRlOiBTdW4sIDIzIEZlYiAyMDIwIDAzOjI3OjQxICswMjAwClN1Ympl Y3Q6IFtQQVRDSCAzNi80NF0gbmV0L21seDU6IEZpeCBjb21tYW5kIGVudHJ5IGxlYWsgaW4gSW50 ZXJuYWwgRXJyb3IKIFN0YXRlCgpbIFVwc3RyZWFtIGNvbW1pdCBjZWNlNmY0MzJjY2E5ZjE4OTAw NDYzZWQwMWI5N2ExNTJhMDM2MDBhIF0KClByb2Nlc3NpbmcgY29tbWFuZHMgYnkgY21kX3dvcmtf aGFuZGxlcigpIHdoaWxlIGFscmVhZHkgaW4gSW50ZXJuYWwKRXJyb3IgU3RhdGUgd2lsbCByZXN1 bHQgaW4gZW50cnkgbGVhaywgc2luY2UgdGhlIGhhbmRsZXIgcHJvY2VzcyBmb3JjZQpjb21wbGV0 aW9uIHdpdGhvdXQgZG9vcmJlbGwuIEZvcmNlZCBjb21wbGV0aW9uIGRvZXNuJ3QgcmVsZWFzZSB0 aGUgZW50cnkKYW5kIGV2ZW50IGNvbXBsZXRpb24gd2lsbCBuZXZlciBhcnJpdmUsIHNvIGVudHJ5 IHNob3VsZCBiZSByZWxlYXNlZC4KCkZpeGVzOiA3M2RkM2E0ODM5YzEgKCJuZXQvbWx4NTogQXZv aWQgdXNpbmcgcGVuZGluZyBjb21tYW5kIGludGVyZmFjZSBzbG90cyIpClNpZ25lZC1vZmYtYnk6 IE1vc2hlIFNoZW1lc2ggPG1vc2hlQG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogRXJhbiBC ZW4gRWxpc2hhIDxlcmFuYmVAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBTYWVlZCBNYWhh bWVlZCA8c2FlZWRtQG1lbGxhbm94LmNvbT4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxs YW5veC9tbHg1L2NvcmUvY21kLmMgfCA0ICsrKysKIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlv bnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2Nv cmUvY21kLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMK aW5kZXggZDc0NzBmOGQzNTVlLi5jZWRlNWJkZmQ1OTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0 L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYworKysgYi9kcml2ZXJzL25ldC9ldGhl cm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMKQEAgLTkyMiw2ICs5MjIsMTAgQEAgc3RhdGlj IHZvaWQgY21kX3dvcmtfaGFuZGxlcihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJCU1MWDVf U0VUKG1ib3hfb3V0LCBlbnQtPm91dCwgc3luZHJvbWUsIGRydl9zeW5kKTsKIAogCQltbHg1X2Nt ZF9jb21wX2hhbmRsZXIoZGV2LCAxVUwgPDwgZW50LT5pZHgsIHRydWUpOworCQkvKiBubyBkb29y YmVsbCwgbm8gbmVlZCB0byBrZWVwIHRoZSBlbnRyeSAqLworCQlmcmVlX2VudChjbWQsIGVudC0+ aWR4KTsKKwkJaWYgKGVudC0+Y2FsbGJhY2spCisJCQlmcmVlX2NtZChlbnQpOwogCQlyZXR1cm47 CiAJfQogCi0tIAoyLjI2LjIKCgpGcm9tIDhjZDJhZDIwZjg4NDljZjdmYzlmMWI5NjBlYTAwZmY0 ZTg3Yzc5N2IgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFJvaSBEYXlhbiA8cm9pZEBt ZWxsYW5veC5jb20+CkRhdGU6IFRodSwgMjMgQXByIDIwMjAgMTI6Mzc6MjEgKzAzMDAKU3ViamVj dDogW1BBVENIIDM3LzQ0XSBuZXQvbWx4NWU6IEZpeCBxIGNvdW50ZXJzIG9uIHVwbGluayByZXBy ZXNlbnRvcnMKClsgVXBzdHJlYW0gY29tbWl0IDY3YjM4ZGU2NDY4OTRjOWE5NGZlNGQ2ZDE3NzE5 ZTcwY2M2MDI4ZWIgXQoKTmVlZCB0byBhbGxvY2F0ZSB0aGUgcSBjb3VudGVycyBiZWZvcmUgaW5p dF9yeCB3aGljaCBuZWVkcyB0aGVtCndoZW4gY3JlYXRpbmcgdGhlIHJxLgoKRml4ZXM6IDg1MjBm YTU3YTRlOSAoIm5ldC9tbHg1ZTogQ3JlYXRlIHEgY291bnRlcnMgb24gdXBsaW5rIHJlcHJlc2Vu dG9ycyIpClNpZ25lZC1vZmYtYnk6IFJvaSBEYXlhbiA8cm9pZEBtZWxsYW5veC5jb20+ClJldmll d2VkLWJ5OiBWbGFkIEJ1c2xvdiA8dmxhZGJ1QG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTog U2FlZWQgTWFoYW1lZWQgPHNhZWVkbUBtZWxsYW5veC5jb20+Ci0tLQogZHJpdmVycy9uZXQvZXRo ZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3JlcC5jIHwgOSArKy0tLS0tLS0KIDEgZmlsZSBj aGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJp dmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3JlcC5jIGIvZHJpdmVycy9u ZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3JlcC5jCmluZGV4IGZmYzE5M2M0YWQ0 My4uMmFkMGQwOWNjOWJkIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5v eC9tbHg1L2NvcmUvZW5fcmVwLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gv bWx4NS9jb3JlL2VuX3JlcC5jCkBAIC0xNjkyLDE5ICsxNjkyLDE0IEBAIHN0YXRpYyB2b2lkIG1s eDVlX2NsZWFudXBfcmVwX3J4KHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2KQogCiBzdGF0aWMgaW50 IG1seDVlX2luaXRfdWxfcmVwX3J4KHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2KQogewotCWludCBl cnIgPSBtbHg1ZV9pbml0X3JlcF9yeChwcml2KTsKLQotCWlmIChlcnIpCi0JCXJldHVybiBlcnI7 Ci0KIAltbHg1ZV9jcmVhdGVfcV9jb3VudGVycyhwcml2KTsKLQlyZXR1cm4gMDsKKwlyZXR1cm4g bWx4NWVfaW5pdF9yZXBfcngocHJpdik7CiB9CiAKIHN0YXRpYyB2b2lkIG1seDVlX2NsZWFudXBf dWxfcmVwX3J4KHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2KQogewotCW1seDVlX2Rlc3Ryb3lfcV9j b3VudGVycyhwcml2KTsKIAltbHg1ZV9jbGVhbnVwX3JlcF9yeChwcml2KTsKKwltbHg1ZV9kZXN0 cm95X3FfY291bnRlcnMocHJpdik7CiB9CiAKIHN0YXRpYyBpbnQgbWx4NWVfaW5pdF91cGxpbmtf cmVwX3R4KHN0cnVjdCBtbHg1ZV9yZXBfcHJpdiAqcnByaXYpCi0tIAoyLjI2LjIKCgpGcm9tIGFm MGY0NThhOGNmNjExYTMyMzg2OWZkZmE5YjVkNDUwOGU4ZWQyNDQgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IERhbiBDYXJwZW50ZXIgPGRhbi5jYXJwZW50ZXJAb3JhY2xlLmNvbT4KRGF0 ZTogV2VkLCA2IE1heSAyMDIwIDEzOjE2OjIyICswMzAwClN1YmplY3Q6IFtQQVRDSCAzOC80NF0g bmV0OiBtdnBwMjogcHJldmVudCBidWZmZXIgb3ZlcmZsb3cgaW4gbXZwcDIyX3Jzc19jdHgoKQoK WyBVcHN0cmVhbSBjb21taXQgMzliZDE2ZGY3YzMxYmI4Y2Y1ZGZkMGM4OGU0MmFiZDVhZTEwMDI5 ZCBdCgpUaGUgInJzc19jb250ZXh0IiB2YXJpYWJsZSBjb21lcyBmcm9tIHRoZSB1c2VyIHZpYSAg ZXRodG9vbF9nZXRfcnhmaCgpLgpJdCBjYW4gYmUgYW55IHUzMiB2YWx1ZSBleGNlcHQgemVyby4g IEV2ZW50dWFsbHkgaXQgZ2V0cyBwYXNzZWQgdG8KbXZwcDIyX3Jzc19jdHgoKSBhbmQgaWYgaXQg aXMgb3ZlciBNVlBQMjJfTl9SU1NfVEFCTEVTICg4KSB0aGVuIGl0CnJlc3VsdHMgaW4gYW4gYXJy YXkgb3ZlcmZsb3cuCgpGaXhlczogODk1NTg2ZDVkYzMyICgibmV0OiBtdnBwMjogY2xzOiBVc2Ug UlNTIGNvbnRleHRzIHRvIGhhbmRsZSBSU1MgdGFibGVzIikKU2lnbmVkLW9mZi1ieTogRGFuIENh cnBlbnRlciA8ZGFuLmNhcnBlbnRlckBvcmFjbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBT LiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQv bWFydmVsbC9tdnBwMi9tdnBwMl9tYWluLmMgfCAyICsrCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNl cnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdnBw Mi9tdnBwMl9tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL212cHAyL212cHAy X21haW4uYwppbmRleCA3MjEzM2NiZTU1ZDQuLmViNzhhOTQ4YmVlMyAxMDA2NDQKLS0tIGEvZHJp dmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdnBwMi9tdnBwMl9tYWluLmMKKysrIGIvZHJpdmVy cy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdnBwMi9tdnBwMl9tYWluLmMKQEAgLTQzMjUsNiArNDMy NSw4IEBAIHN0YXRpYyBpbnQgbXZwcDJfZXRodG9vbF9nZXRfcnhmaF9jb250ZXh0KHN0cnVjdCBu ZXRfZGV2aWNlICpkZXYsIHUzMiAqaW5kaXIsCiAKIAlpZiAoIW12cHAyMl9yc3NfaXNfc3VwcG9y dGVkKCkpCiAJCXJldHVybiAtRU9QTk9UU1VQUDsKKwlpZiAocnNzX2NvbnRleHQgPj0gTVZQUDIy X05fUlNTX1RBQkxFUykKKwkJcmV0dXJuIC1FSU5WQUw7CiAKIAlpZiAoaGZ1bmMpCiAJCSpoZnVu YyA9IEVUSF9SU1NfSEFTSF9DUkMzMjsKLS0gCjIuMjYuMgoKCkZyb20gYmU4ZjcxNDliMTczMTli YTFlZTIzNGQyNjY5YWQ5ZThmZTI4Y2U1ZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog RGFuIENhcnBlbnRlciA8ZGFuLmNhcnBlbnRlckBvcmFjbGUuY29tPgpEYXRlOiBXZWQsIDYgTWF5 IDIwMjAgMTM6MTY6NTYgKzAzMDAKU3ViamVjdDogW1BBVENIIDM5LzQ0XSBuZXQ6IG12cHAyOiBj bHM6IFByZXZlbnQgYnVmZmVyIG92ZXJmbG93IGluCiBtdnBwMl9ldGh0b29sX2Nsc19ydWxlX2Rl bCgpCgpbIFVwc3RyZWFtIGNvbW1pdCA3MjJjMGYwMGQ0ZmVlYTc3NDc1YTVkYzk0M2I1M2Q2MDgy NGExZTRlIF0KClRoZSAiaW5mby0+ZnMubG9jYXRpb24iIGlzIGEgdTMyIHRoYXQgY29tZXMgZnJv bSB0aGUgdXNlciB2aWEgdGhlCmV0aHRvb2xfc2V0X3J4bmZjKCkgZnVuY3Rpb24uICBXZSBuZWVk IHRvIGNoZWNrIGZvciBpbnZhbGlkIHZhbHVlcyB0bwpwcmV2ZW50IGEgYnVmZmVyIG92ZXJmbG93 LgoKSSBjb3B5IGFuZCBwYXN0ZWQgdGhpcyBjaGVjayBmcm9tIHRoZSBtdnBwMl9ldGh0b29sX2Ns c19ydWxlX2lucygpCmZ1bmN0aW9uLgoKRml4ZXM6IDkwYjUwOWIzOWFjOSAoIm5ldDogbXZwcDI6 IGNsczogQWRkIENsYXNzaWZpY2F0aW9uIG9mZmxvYWQgc3VwcG9ydCIpClNpZ25lZC1vZmYtYnk6 IERhbiBDYXJwZW50ZXIgPGRhbi5jYXJwZW50ZXJAb3JhY2xlLmNvbT4KU2lnbmVkLW9mZi1ieTog RGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0 aGVybmV0L21hcnZlbGwvbXZwcDIvbXZwcDJfY2xzLmMgfCAzICsrKwogMSBmaWxlIGNoYW5nZWQs IDMgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZl bGwvbXZwcDIvbXZwcDJfY2xzLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL212cHAy L212cHAyX2Nscy5jCmluZGV4IDM1NDc4Y2JhMmFhNS4uNDM0NGE1OWM4MjNmIDEwMDY0NAotLS0g YS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL212cHAyL212cHAyX2Nscy5jCisrKyBiL2Ry aXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXZwcDIvbXZwcDJfY2xzLmMKQEAgLTE0MjIsNiAr MTQyMiw5IEBAIGludCBtdnBwMl9ldGh0b29sX2Nsc19ydWxlX2RlbChzdHJ1Y3QgbXZwcDJfcG9y dCAqcG9ydCwKIAlzdHJ1Y3QgbXZwcDJfZXRodG9vbF9mcyAqZWZzOwogCWludCByZXQ7CiAKKwlp ZiAoaW5mby0+ZnMubG9jYXRpb24gPj0gTVZQUDJfTl9SRlNfRU5UUklFU19QRVJfRkxPVykKKwkJ cmV0dXJuIC1FSU5WQUw7CisKIAllZnMgPSBwb3J0LT5yZnNfcnVsZXNbaW5mby0+ZnMubG9jYXRp b25dOwogCWlmICghZWZzKQogCQlyZXR1cm4gLUVJTlZBTDsKLS0gCjIuMjYuMgoKCkZyb20gYzVh NDc2ZGQyNmZjNGJmNjUyNzQ2ODRmMTU5ODRiZmVhZjExZDQxYiBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogIkphc29uIEEuIERvbmVuZmVsZCIgPEphc29uQHp4MmM0LmNvbT4KRGF0ZTog V2VkLCAyOSBBcHIgMjAyMCAxNDo1OToyMSAtMDYwMApTdWJqZWN0OiBbUEFUQ0ggNDAvNDRdIHdp cmVndWFyZDogcXVldWVpbmc6IGNsZWFudXAgcHRyX3JpbmcgaW4gZXJyb3IgcGF0aCBvZgogcGFj a2V0X3F1ZXVlX2luaXQKClsgVXBzdHJlYW0gY29tbWl0IDEzMGM1ODYwNjE3MTMyNmM4MTg0MWE0 OWNjOTEzY2QzNTQxMTNkZDkgXQoKUHJpb3IsIGlmIHRoZSBhbGxvY19wZXJjcHUgb2YgcGFja2V0 X3BlcmNwdV9tdWx0aWNvcmVfd29ya2VyX2FsbG9jCmZhaWxlZCwgdGhlIHByZXZpb3VzbHkgYWxs b2NhdGVkIHB0cl9yaW5nIHdvdWxkbid0IGJlIGZyZWVkLiBUaGlzIGNvbW1pdAphZGRzIHRoZSBt aXNzaW5nIGNhbGwgdG8gcHRyX3JpbmdfY2xlYW51cCBpbiB0aGUgZXJyb3IgY2FzZS4KClJlcG9y dGVkLWJ5OiBTdWx0YW4gQWxzYXdhZiA8c3VsdGFuQGtlcm5lbHRvYXN0LmNvbT4KRml4ZXM6IGU3 MDk2YzEzMWU1MSAoIm5ldDogV2lyZUd1YXJkIHNlY3VyZSBuZXR3b3JrIHR1bm5lbCIpClNpZ25l ZC1vZmYtYnk6IEphc29uIEEuIERvbmVuZmVsZCA8SmFzb25AengyYzQuY29tPgpTaWduZWQtb2Zm LWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9u ZXQvd2lyZWd1YXJkL3F1ZXVlaW5nLmMgfCA0ICsrKy0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2Vy dGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlZ3Vh cmQvcXVldWVpbmcuYyBiL2RyaXZlcnMvbmV0L3dpcmVndWFyZC9xdWV1ZWluZy5jCmluZGV4IDVj OTY0ZmNiOTk0ZS4uNzFiOGU4MGI1OGUxIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlZ3Vh cmQvcXVldWVpbmcuYworKysgYi9kcml2ZXJzL25ldC93aXJlZ3VhcmQvcXVldWVpbmcuYwpAQCAt MzUsOCArMzUsMTAgQEAgaW50IHdnX3BhY2tldF9xdWV1ZV9pbml0KHN0cnVjdCBjcnlwdF9xdWV1 ZSAqcXVldWUsIHdvcmtfZnVuY190IGZ1bmN0aW9uLAogCQlpZiAobXVsdGljb3JlKSB7CiAJCQlx dWV1ZS0+d29ya2VyID0gd2dfcGFja2V0X3BlcmNwdV9tdWx0aWNvcmVfd29ya2VyX2FsbG9jKAog CQkJCWZ1bmN0aW9uLCBxdWV1ZSk7Ci0JCQlpZiAoIXF1ZXVlLT53b3JrZXIpCisJCQlpZiAoIXF1 ZXVlLT53b3JrZXIpIHsKKwkJCQlwdHJfcmluZ19jbGVhbnVwKCZxdWV1ZS0+cmluZywgTlVMTCk7 CiAJCQkJcmV0dXJuIC1FTk9NRU07CisJCQl9CiAJCX0gZWxzZSB7CiAJCQlJTklUX1dPUksoJnF1 ZXVlLT53b3JrLCBmdW5jdGlvbik7CiAJCX0KLS0gCjIuMjYuMgoKCkZyb20gMTBlNjI5YWE3NjEx YmZmMmViNjY4NWUwY2Q2NDEwOGE4ZWQyNjUzMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogPT9VVEYtOD9xP1Rva2U9MjBIPUMzPUI4aWxhbmQtSj1DMz1COHJnZW5zZW4/PSA8dG9rZUBy ZWRoYXQuY29tPgpEYXRlOiBXZWQsIDI5IEFwciAyMDIwIDE0OjU5OjIyIC0wNjAwClN1YmplY3Q6 IFtQQVRDSCA0MS80NF0gd2lyZWd1YXJkOiByZWNlaXZlOiB1c2UgdHVubmVsIGhlbHBlcnMgZm9y CiBkZWNhcHN1bGF0aW5nIEVDTiBtYXJraW5ncwpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5 cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzog OGJpdAoKWyBVcHN0cmVhbSBjb21taXQgZWViYWJjYjI2ZWExZTMyOTU3MDQ0NzdjNmNkNGU3NzJj OTZhOTU1OSBdCgpXaXJlR3VhcmQgY3VycmVudGx5IG9ubHkgcHJvcGFnYXRlcyBFQ04gbWFya2lu Z3Mgb24gdHVubmVsIGRlY2FwIGFjY29yZGluZwp0byB0aGUgb2xkIFJGQzMxNjggc3BlY2lmaWNh dGlvbi4gSG93ZXZlciwgdGhlIHNwZWMgaGFzIHNpbmNlIGJlZW4gdXBkYXRlZAppbiBSRkM2MDQw IHRvIHJlY29tbWVuZCBzbGlnaHRseSBkaWZmZXJlbnQgZGVjYXBzdWxhdGlvbiBzZW1hbnRpY3Mu IFRoaXMKd2FzIGltcGxlbWVudGVkIGluIHRoZSBrZXJuZWwgYXMgYSBzZXQgb2YgY29tbW9uIGhl bHBlcnMgZm9yIEVDTgpkZWNhcHN1bGF0aW9uLCBzbyBsZXQncyBqdXN0IHN3aXRjaCBvdmVyIFdp cmVHdWFyZCB0byB1c2luZyB0aG9zZSwgc28gaXQKY2FuIGJlbmVmaXQgZnJvbSB0aGlzIGVuaGFu Y2VtZW50IGFuZCBhbnkgZnV0dXJlIHR3ZWFrcy4gV2UgZG8gbm90IGRyb3AKcGFja2V0cyB3aXRo IGludmFsaWQgRUNOIG1hcmtpbmcgY29tYmluYXRpb25zLCBiZWNhdXNlIFdpcmVHdWFyZCBpcwpm cmVxdWVudGx5IHVzZWQgdG8gd29yayBhcm91bmQgYnJva2VuIElTUHMsIHdoaWNoIGNvdWxkIGJl IGRvaW5nIHRoYXQuCgpGaXhlczogZTcwOTZjMTMxZTUxICgibmV0OiBXaXJlR3VhcmQgc2VjdXJl IG5ldHdvcmsgdHVubmVsIikKUmVwb3J0ZWQtYnk6IE9saXZpZXIgVGlsbWFucyA8b2xpdmllci50 aWxtYW5zQG5va2lhLWJlbGwtbGFicy5jb20+CkNjOiBEYXZlIFRhaHQgPGRhdmUudGFodEBnbWFp bC5jb20+CkNjOiBSb2RuZXkgVy4gR3JpbWVzIDxpZXRmQGduZHJzaC5kbnNtZ3IubmV0PgpTaWdu ZWQtb2ZmLWJ5OiBUb2tlIEjDuGlsYW5kLUrDuHJnZW5zZW4gPHRva2VAcmVkaGF0LmNvbT4KU2ln bmVkLW9mZi1ieTogSmFzb24gQS4gRG9uZW5mZWxkIDxKYXNvbkB6eDJjNC5jb20+ClNpZ25lZC1v ZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJz L25ldC93aXJlZ3VhcmQvcmVjZWl2ZS5jIHwgNiArKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGlu c2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2ly ZWd1YXJkL3JlY2VpdmUuYyBiL2RyaXZlcnMvbmV0L3dpcmVndWFyZC9yZWNlaXZlLmMKaW5kZXgg ZGEzYjc4MmFiN2QzLi4yNjdmMjAyZjE5MzEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVn dWFyZC9yZWNlaXZlLmMKKysrIGIvZHJpdmVycy9uZXQvd2lyZWd1YXJkL3JlY2VpdmUuYwpAQCAt MzkzLDEzICszOTMsMTEgQEAgc3RhdGljIHZvaWQgd2dfcGFja2V0X2NvbnN1bWVfZGF0YV9kb25l KHN0cnVjdCB3Z19wZWVyICpwZWVyLAogCQlsZW4gPSBudG9ocyhpcF9oZHIoc2tiKS0+dG90X2xl bik7CiAJCWlmICh1bmxpa2VseShsZW4gPCBzaXplb2Yoc3RydWN0IGlwaGRyKSkpCiAJCQlnb3Rv IGRpc2hvbmVzdF9wYWNrZXRfc2l6ZTsKLQkJaWYgKElORVRfRUNOX2lzX2NlKFBBQ0tFVF9DQihz a2IpLT5kcykpCi0JCQlJUF9FQ05fc2V0X2NlKGlwX2hkcihza2IpKTsKKwkJSU5FVF9FQ05fZGVj YXBzdWxhdGUoc2tiLCBQQUNLRVRfQ0Ioc2tiKS0+ZHMsIGlwX2hkcihza2IpLT50b3MpOwogCX0g ZWxzZSBpZiAoc2tiLT5wcm90b2NvbCA9PSBodG9ucyhFVEhfUF9JUFY2KSkgewogCQlsZW4gPSBu dG9ocyhpcHY2X2hkcihza2IpLT5wYXlsb2FkX2xlbikgKwogCQkgICAgICBzaXplb2Yoc3RydWN0 IGlwdjZoZHIpOwotCQlpZiAoSU5FVF9FQ05faXNfY2UoUEFDS0VUX0NCKHNrYiktPmRzKSkKLQkJ CUlQNl9FQ05fc2V0X2NlKHNrYiwgaXB2Nl9oZHIoc2tiKSk7CisJCUlORVRfRUNOX2RlY2Fwc3Vs YXRlKHNrYiwgUEFDS0VUX0NCKHNrYiktPmRzLCBpcHY2X2dldF9kc2ZpZWxkKGlwdjZfaGRyKHNr YikpKTsKIAl9IGVsc2UgewogCQlnb3RvIGRpc2hvbmVzdF9wYWNrZXRfdHlwZTsKIAl9Ci0tIAoy LjI2LjIKCgpGcm9tIDc0NjFhYTBkMTA0M2ViOWNkMTFhZmM0MTAxMTg2MWIwMzJhMTEyNzYgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERlamluIFpoZW5nIDx6aGVuZ2RlamluNUBnbWFp bC5jb20+CkRhdGU6IE1vbiwgNCBNYXkgMjAyMCAyMDowMToyNyArMDgwMApTdWJqZWN0OiBbUEFU Q0ggNDIvNDRdIG5ldDogZW5ldGM6IGZpeCBhbiBpc3N1ZSBhYm91dCBsZWFrIHN5c3RlbSByZXNv dXJjZXMKClsgVXBzdHJlYW0gY29tbWl0IGQ5NzVjYjdlYTkxNWU2NGEzZWJjZmVmOGEzMzA1MWYz ZTZiZjIyYTggXQoKdGhlIHJlbGF0ZWQgc3lzdGVtIHJlc291cmNlcyB3ZXJlIG5vdCByZWxlYXNl ZCB3aGVuIGVuZXRjX2h3X2FsbG9jKCkKcmV0dXJuIGVycm9yIGluIHRoZSBlbmV0Y19wY2lfbWRp b19wcm9iZSgpLCBhZGQgaW91bm1hcCgpIGZvciBlcnJvcgpoYW5kbGluZyBsYWJlbCAiZXJyX2h3 X2FsbG9jIiB0byBmaXggaXQuCgpGaXhlczogNjUxNzc5OGRkMzQzMmEgKCJlbmV0YzogTWFrZSBN RElPIGFjY2Vzc29ycyBtb3JlIGdlbmVyaWMgYW5kIGV4cG9ydCB0byBpbmNsdWRlL2xpbnV4L2Zz bCIpCkNjOiBBbmR5IFNoZXZjaGVua28gPGFuZHkuc2hldmNoZW5rb0BnbWFpbC5jb20+ClNpZ25l ZC1vZmYtYnk6IERlamluIFpoZW5nIDx6aGVuZ2RlamluNUBnbWFpbC5jb20+ClJldmlld2VkLWJ5 OiBWbGFkaW1pciBPbHRlYW4gPHZsYWRpbWlyLm9sdGVhbkBueHAuY29tPgpTaWduZWQtb2ZmLWJ5 OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQv ZXRoZXJuZXQvZnJlZXNjYWxlL2VuZXRjL2VuZXRjX3BjaV9tZGlvLmMgfCAyICstCiAxIGZpbGUg Y2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2 ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZW5ldGMvZW5ldGNfcGNpX21kaW8uYyBiL2RyaXZl cnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9lbmV0Yy9lbmV0Y19wY2lfbWRpby5jCmluZGV4IGVi YzYzNWY4YTRjYy4uMTVmMzdjNWI4ZGMxIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5l dC9mcmVlc2NhbGUvZW5ldGMvZW5ldGNfcGNpX21kaW8uYworKysgYi9kcml2ZXJzL25ldC9ldGhl cm5ldC9mcmVlc2NhbGUvZW5ldGMvZW5ldGNfcGNpX21kaW8uYwpAQCAtNzQsOCArNzQsOCBAQCBz dGF0aWMgaW50IGVuZXRjX3BjaV9tZGlvX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LAogCXBj aV9kaXNhYmxlX2RldmljZShwZGV2KTsKIGVycl9wY2lfZW5hYmxlOgogZXJyX21kaW9idXNfYWxs b2M6Ci0JaW91bm1hcChwb3J0X3JlZ3MpOwogZXJyX2h3X2FsbG9jOgorCWlvdW5tYXAocG9ydF9y ZWdzKTsKIGVycl9pb3JlbWFwOgogCXJldHVybiBlcnI7CiB9Ci0tIAoyLjI2LjIKCgpGcm9tIDUx NjkzOWQyMzA2OTUzMTE5NWI5NzRlZDBhZWMwNWI4MDBmNjg0YWYgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206ICJKYXNvbiBBLiBEb25lbmZlbGQiIDxKYXNvbkB6eDJjNC5jb20+CkRhdGU6 IFdlZCwgNiBNYXkgMjAyMCAxNTozMzowMyAtMDYwMApTdWJqZWN0OiBbUEFUQ0ggNDMvNDRdIHdp cmVndWFyZDogc29ja2V0OiByZW1vdmUgZXJyYW50IHJlc3RyaWN0aW9uIG9uIGxvb3BpbmcKIHRv IHNlbGYKClsgVXBzdHJlYW0gY29tbWl0IGI2NzNlMjRhYWQzNjk4MWYzMjdhNjU3MDQxMmZmYTc3 NTRkZTg5MTEgXQoKSXQncyBhbHJlYWR5IHBvc3NpYmxlIHRvIGNyZWF0ZSB0d28gZGlmZmVyZW50 IGludGVyZmFjZXMgYW5kIGxvb3AKcGFja2V0cyBiZXR3ZWVuIHRoZW0uIFRoaXMgaGFzIGFsd2F5 cyBiZWVuIHBvc3NpYmxlIHdpdGggdHVubmVscyBpbiB0aGUKa2VybmVsLCBhbmQgaXNuJ3Qgc3Bl Y2lmaWMgdG8gd2lyZWd1YXJkLiBUaGVyZWZvcmUsIHRoZSBuZXR3b3JraW5nIHN0YWNrCmFscmVh ZHkgbmVlZHMgdG8gZGVhbCB3aXRoIHRoYXQuIEF0IHRoZSB2ZXJ5IGxlYXN0LCB0aGUgcGFja2V0 IHdpbmRzIHVwCmV4Y2VlZGluZyB0aGUgTVRVIGFuZCBpcyBkaXNjYXJkZWQgYXQgdGhhdCBwb2lu dC4gU28sIHNpbmNlIHRoaXMgaXMKYWxyZWFkeSBzb21ldGhpbmcgdGhhdCBoYXBwZW5zLCB0aGVy ZSdzIG5vIG5lZWQgdG8gZm9yYmlkIHRoZSBub3QgdmVyeQpleGNlcHRpb25hbCBjYXNlIG9mIHJv dXRpbmcgYSBwYWNrZXQgYmFjayB0byB0aGUgc2FtZSBpbnRlcmZhY2U7IHRoaXMKbG9vcCBpcyBu byBkaWZmZXJlbnQgdGhhbiBvdGhlcnMsIGFuZCB3ZSBzaG91bGRuJ3Qgc3BlY2lhbCBjYXNlIGl0 LCBidXQKcmF0aGVyIHJlbHkgb24gZ2VuZXJpYyBoYW5kbGluZyBvZiBsb29wcyBpbiBnZW5lcmFs LiBUaGlzIGFsc28gbWFrZXMgaXQKZWFzaWVyIHRvIGRvIGludGVyZXN0aW5nIHRoaW5ncyB3aXRo IHdpcmVndWFyZCBzdWNoIGFzIG9uaW9uIHJvdXRpbmcuCgpBdCB0aGUgc2FtZSB0aW1lLCB3ZSBh ZGQgYSBzZWxmdGVzdCBmb3IgdGhpcywgZW5zdXJpbmcgdGhhdCBib3RoIG9uaW9uCnJvdXRpbmcg d29ya3MgYW5kIGluZmluaXRlIHJvdXRpbmcgbG9vcHMgZG8gbm90IGNyYXNoIHRoZSBrZXJuZWwu IFdlCmFsc28gYWRkIGEgdGVzdCBjYXNlIGZvciB3aXJlZ3VhcmQgaW50ZXJmYWNlcyBuZXN0aW5n IHBhY2tldHMgYW5kCnNlbmRpbmcgdHJhZmZpYyBiZXR3ZWVuIGVhY2ggb3RoZXIsIGFzIHdlbGwg YXMgdGhlIGxvb3AgaW4gdGhpcyBjYXNlCnRvby4gV2UgbWFrZSBzdXJlIHRvIHNlbmQgc29tZSB0 aHJvdWdocHV0LWhlYXZ5IHRyYWZmaWMgZm9yIHRoaXMgdXNlCmNhc2UsIHRvIHN0cmVzcyBvdXQg YW55IHBvc3NpYmxlIHJlY3Vyc2lvbiBpc3N1ZXMgd2l0aCB0aGUgbG9ja3MgYXJvdW5kCndvcmtx dWV1ZXMuCgpGaXhlczogZTcwOTZjMTMxZTUxICgibmV0OiBXaXJlR3VhcmQgc2VjdXJlIG5ldHdv cmsgdHVubmVsIikKU2lnbmVkLW9mZi1ieTogSmFzb24gQS4gRG9uZW5mZWxkIDxKYXNvbkB6eDJj NC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5l dD4KLS0tCiBkcml2ZXJzL25ldC93aXJlZ3VhcmQvc29ja2V0LmMgICAgICAgICAgICAgfCAxMiAt LS0tLQogdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvd2lyZWd1YXJkL25ldG5zLnNoIHwgNTQgKysr KysrKysrKysrKysrKysrKystLQogMiBmaWxlcyBjaGFuZ2VkLCA1MSBpbnNlcnRpb25zKCspLCAx NSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlZ3VhcmQvc29ja2V0 LmMgYi9kcml2ZXJzL25ldC93aXJlZ3VhcmQvc29ja2V0LmMKaW5kZXggYjBkNjU0MTU4MmQzLi5m OTAxODAyN2ZjMTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVndWFyZC9zb2NrZXQuYwor KysgYi9kcml2ZXJzL25ldC93aXJlZ3VhcmQvc29ja2V0LmMKQEAgLTc2LDEyICs3Niw2IEBAIHN0 YXRpYyBpbnQgc2VuZDQoc3RydWN0IHdnX2RldmljZSAqd2csIHN0cnVjdCBza19idWZmICpza2Is CiAJCQluZXRfZGJnX3JhdGVsaW1pdGVkKCIlczogTm8gcm91dGUgdG8gJXBJU3Bmc2MsIGVycm9y ICVkXG4iLAogCQkJCQkgICAgd2ctPmRldi0+bmFtZSwgJmVuZHBvaW50LT5hZGRyLCByZXQpOwog CQkJZ290byBlcnI7Ci0JCX0gZWxzZSBpZiAodW5saWtlbHkocnQtPmRzdC5kZXYgPT0gc2tiLT5k ZXYpKSB7Ci0JCQlpcF9ydF9wdXQocnQpOwotCQkJcmV0ID0gLUVMT09QOwotCQkJbmV0X2RiZ19y YXRlbGltaXRlZCgiJXM6IEF2b2lkaW5nIHJvdXRpbmcgbG9vcCB0byAlcElTcGZzY1xuIiwKLQkJ CQkJICAgIHdnLT5kZXYtPm5hbWUsICZlbmRwb2ludC0+YWRkcik7Ci0JCQlnb3RvIGVycjsKIAkJ fQogCQlpZiAoY2FjaGUpCiAJCQlkc3RfY2FjaGVfc2V0X2lwNChjYWNoZSwgJnJ0LT5kc3QsIGZs LnNhZGRyKTsKQEAgLTE0OSwxMiArMTQzLDYgQEAgc3RhdGljIGludCBzZW5kNihzdHJ1Y3Qgd2df ZGV2aWNlICp3Zywgc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJCW5ldF9kYmdfcmF0ZWxpbWl0ZWQo IiVzOiBObyByb3V0ZSB0byAlcElTcGZzYywgZXJyb3IgJWRcbiIsCiAJCQkJCSAgICB3Zy0+ZGV2 LT5uYW1lLCAmZW5kcG9pbnQtPmFkZHIsIHJldCk7CiAJCQlnb3RvIGVycjsKLQkJfSBlbHNlIGlm ICh1bmxpa2VseShkc3QtPmRldiA9PSBza2ItPmRldikpIHsKLQkJCWRzdF9yZWxlYXNlKGRzdCk7 Ci0JCQlyZXQgPSAtRUxPT1A7Ci0JCQluZXRfZGJnX3JhdGVsaW1pdGVkKCIlczogQXZvaWRpbmcg cm91dGluZyBsb29wIHRvICVwSVNwZnNjXG4iLAotCQkJCQkgICAgd2ctPmRldi0+bmFtZSwgJmVu ZHBvaW50LT5hZGRyKTsKLQkJCWdvdG8gZXJyOwogCQl9CiAJCWlmIChjYWNoZSkKIAkJCWRzdF9j YWNoZV9zZXRfaXA2KGNhY2hlLCBkc3QsICZmbC5zYWRkcik7CmRpZmYgLS1naXQgYS90b29scy90 ZXN0aW5nL3NlbGZ0ZXN0cy93aXJlZ3VhcmQvbmV0bnMuc2ggYi90b29scy90ZXN0aW5nL3NlbGZ0 ZXN0cy93aXJlZ3VhcmQvbmV0bnMuc2gKaW5kZXggOTM2ZTFjYTk0MTBlLi4xN2ExZjUzY2ViYTAg MTAwNzU1Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3dpcmVndWFyZC9uZXRucy5zaAor KysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy93aXJlZ3VhcmQvbmV0bnMuc2gKQEAgLTQ4LDgg KzQ4LDExIEBAIGNsZWFudXAoKSB7CiAJZXhlYyAyPi9kZXYvbnVsbAogCXByaW50ZiAiJG9yaWdf bWVzc2FnZV9jb3N0IiA+IC9wcm9jL3N5cy9uZXQvY29yZS9tZXNzYWdlX2Nvc3QKIAlpcDAgbGlu ayBkZWwgZGV2IHdnMAorCWlwMCBsaW5rIGRlbCBkZXYgd2cxCiAJaXAxIGxpbmsgZGVsIGRldiB3 ZzAKKwlpcDEgbGluayBkZWwgZGV2IHdnMQogCWlwMiBsaW5rIGRlbCBkZXYgd2cwCisJaXAyIGxp bmsgZGVsIGRldiB3ZzEKIAlsb2NhbCB0b19raWxsPSIkKGlwIG5ldG5zIHBpZHMgJG5ldG5zMCkg JChpcCBuZXRucyBwaWRzICRuZXRuczEpICQoaXAgbmV0bnMgcGlkcyAkbmV0bnMyKSIKIAlbWyAt biAkdG9fa2lsbCBdXSAmJiBraWxsICR0b19raWxsCiAJcHAgaXAgbmV0bnMgZGVsICRuZXRuczEK QEAgLTc3LDE4ICs4MCwyMCBAQCBpcDAgbGluayBzZXQgd2cwIG5ldG5zICRuZXRuczIKIGtleTE9 IiQocHAgd2cgZ2Vua2V5KSIKIGtleTI9IiQocHAgd2cgZ2Vua2V5KSIKIGtleTM9IiQocHAgd2cg Z2Vua2V5KSIKK2tleTQ9IiQocHAgd2cgZ2Vua2V5KSIKIHB1YjE9IiQocHAgd2cgcHVia2V5IDw8 PCIka2V5MSIpIgogcHViMj0iJChwcCB3ZyBwdWJrZXkgPDw8IiRrZXkyIikiCiBwdWIzPSIkKHBw IHdnIHB1YmtleSA8PDwiJGtleTMiKSIKK3B1YjQ9IiQocHAgd2cgcHVia2V5IDw8PCIka2V5NCIp IgogcHNrPSIkKHBwIHdnIGdlbnBzaykiCiBbWyAtbiAka2V5MSAmJiAtbiAka2V5MiAmJiAtbiAk cHNrIF1dCiAKIGNvbmZpZ3VyZV9wZWVycygpIHsKIAlpcDEgYWRkciBhZGQgMTkyLjE2OC4yNDEu MS8yNCBkZXYgd2cwCi0JaXAxIGFkZHIgYWRkIGZkMDA6OjEvMjQgZGV2IHdnMAorCWlwMSBhZGRy IGFkZCBmZDAwOjoxLzExMiBkZXYgd2cwCiAKIAlpcDIgYWRkciBhZGQgMTkyLjE2OC4yNDEuMi8y NCBkZXYgd2cwCi0JaXAyIGFkZHIgYWRkIGZkMDA6OjIvMjQgZGV2IHdnMAorCWlwMiBhZGRyIGFk ZCBmZDAwOjoyLzExMiBkZXYgd2cwCiAKIAluMSB3ZyBzZXQgd2cwIFwKIAkJcHJpdmF0ZS1rZXkg PChlY2hvICIka2V5MSIpIFwKQEAgLTIzMCw5ICsyMzUsMzggQEAgbjEgcGluZyAtVyAxIC1jIDEg MTkyLjE2OC4yNDEuMgogbjEgd2cgc2V0IHdnMCBwcml2YXRlLWtleSA8KGVjaG8gIiRrZXkzIikK IG4yIHdnIHNldCB3ZzAgcGVlciAiJHB1YjMiIHByZXNoYXJlZC1rZXkgPChlY2hvICIkcHNrIikg YWxsb3dlZC1pcHMgMTkyLjE2OC4yNDEuMS8zMiBwZWVyICIkcHViMSIgcmVtb3ZlCiBuMSBwaW5n IC1XIDEgLWMgMSAxOTIuMTY4LjI0MS4yCituMiB3ZyBzZXQgd2cwIHBlZXIgIiRwdWIzIiByZW1v dmUKKworIyBUZXN0IHRoYXQgd2UgY2FuIHJvdXRlIHdnIHRocm91Z2ggd2cKK2lwMSBhZGRyIGZs dXNoIGRldiB3ZzAKK2lwMiBhZGRyIGZsdXNoIGRldiB3ZzAKK2lwMSBhZGRyIGFkZCBmZDAwOjo1 OjEvMTEyIGRldiB3ZzAKK2lwMiBhZGRyIGFkZCBmZDAwOjo1OjIvMTEyIGRldiB3ZzAKK24xIHdn IHNldCB3ZzAgcHJpdmF0ZS1rZXkgPChlY2hvICIka2V5MSIpIHBlZXIgIiRwdWIyIiBwcmVzaGFy ZWQta2V5IDwoZWNobyAiJHBzayIpIGFsbG93ZWQtaXBzIGZkMDA6OjU6Mi8xMjggZW5kcG9pbnQg MTI3LjAuMC4xOjIKK24yIHdnIHNldCB3ZzAgcHJpdmF0ZS1rZXkgPChlY2hvICIka2V5MiIpIGxp c3Rlbi1wb3J0IDIgcGVlciAiJHB1YjEiIHByZXNoYXJlZC1rZXkgPChlY2hvICIkcHNrIikgYWxs b3dlZC1pcHMgZmQwMDo6NToxLzEyOCBlbmRwb2ludCAxMjcuMjEyLjEyMS45OTo5OTk4CitpcDEg bGluayBhZGQgd2cxIHR5cGUgd2lyZWd1YXJkCitpcDIgbGluayBhZGQgd2cxIHR5cGUgd2lyZWd1 YXJkCitpcDEgYWRkciBhZGQgMTkyLjE2OC4yNDEuMS8yNCBkZXYgd2cxCitpcDEgYWRkciBhZGQg ZmQwMDo6MS8xMTIgZGV2IHdnMQoraXAyIGFkZHIgYWRkIDE5Mi4xNjguMjQxLjIvMjQgZGV2IHdn MQoraXAyIGFkZHIgYWRkIGZkMDA6OjIvMTEyIGRldiB3ZzEKK2lwMSBsaW5rIHNldCBtdHUgMTM0 MCB1cCBkZXYgd2cxCitpcDIgbGluayBzZXQgbXR1IDEzNDAgdXAgZGV2IHdnMQorbjEgd2cgc2V0 IHdnMSBsaXN0ZW4tcG9ydCA1IHByaXZhdGUta2V5IDwoZWNobyAiJGtleTMiKSBwZWVyICIkcHVi NCIgYWxsb3dlZC1pcHMgMTkyLjE2OC4yNDEuMi8zMixmZDAwOjoyLzEyOCBlbmRwb2ludCBbZmQw MDo6NToyXTo1CituMiB3ZyBzZXQgd2cxIGxpc3Rlbi1wb3J0IDUgcHJpdmF0ZS1rZXkgPChlY2hv ICIka2V5NCIpIHBlZXIgIiRwdWIzIiBhbGxvd2VkLWlwcyAxOTIuMTY4LjI0MS4xLzMyLGZkMDA6 OjEvMTI4IGVuZHBvaW50IFtmZDAwOjo1OjFdOjUKK3Rlc3RzCisjIFRyeSB0byBzZXQgdXAgYSBy b3V0aW5nIGxvb3AgYmV0d2VlbiB0aGUgdHdvIG5hbWVzcGFjZXMKK2lwMSBsaW5rIHNldCBuZXRu cyAkbmV0bnMwIGRldiB3ZzEKK2lwMCBhZGRyIGFkZCAxOTIuMTY4LjI0MS4xLzI0IGRldiB3ZzEK K2lwMCBsaW5rIHNldCB1cCBkZXYgd2cxCituMCBwaW5nIC1XIDEgLWMgMSAxOTIuMTY4LjI0MS4y CituMSB3ZyBzZXQgd2cwIHBlZXIgIiRwdWIyIiBlbmRwb2ludCAxOTIuMTY4LjI0MS4yOjcKK2lw MiBsaW5rIGRlbCB3ZzAKK2lwMiBsaW5rIGRlbCB3ZzEKKyEgbjAgcGluZyAtVyAxIC1jIDEwIC1m IDE5Mi4xNjguMjQxLjIgfHwgZmFsc2UgIyBTaG91bGQgbm90IGNyYXNoIGtlcm5lbAogCitpcDAg bGluayBkZWwgd2cxCiBpcDEgbGluayBkZWwgd2cwCi1pcDIgbGluayBkZWwgd2cwCiAKICMgVGVz dCB1c2luZyBOQVQuIFdlIG5vdyBjaGFuZ2UgdGhlIHRvcG9sb2d5IHRvIHRoaXM6CiAjIOKUjOKU gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUkCAgICDilIzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJAgICAgIOKUjOKU gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUkApAQCAtMjgyLDYgKzMxNiwyMCBAQCBwcCBzbGVlcCAzCiBuMiBwaW5nIC1XIDEgLWMg MSAxOTIuMTY4LjI0MS4xCiBuMSB3ZyBzZXQgd2cwIHBlZXIgIiRwdWIyIiBwZXJzaXN0ZW50LWtl ZXBhbGl2ZSAwCiAKKyMgVGVzdCB0aGF0IG9uaW9uIHJvdXRpbmcgd29ya3MsIGV2ZW4gd2hlbiBp dCBsb29wcworbjEgd2cgc2V0IHdnMCBwZWVyICIkcHViMyIgYWxsb3dlZC1pcHMgMTkyLjE2OC4y NDIuMi8zMiBlbmRwb2ludCAxOTIuMTY4LjI0MS4yOjUKK2lwMSBhZGRyIGFkZCAxOTIuMTY4LjI0 Mi4xLzI0IGRldiB3ZzAKK2lwMiBsaW5rIGFkZCB3ZzEgdHlwZSB3aXJlZ3VhcmQKK2lwMiBhZGRy IGFkZCAxOTIuMTY4LjI0Mi4yLzI0IGRldiB3ZzEKK24yIHdnIHNldCB3ZzEgcHJpdmF0ZS1rZXkg PChlY2hvICIka2V5MyIpIGxpc3Rlbi1wb3J0IDUgcGVlciAiJHB1YjEiIGFsbG93ZWQtaXBzIDE5 Mi4xNjguMjQyLjEvMzIKK2lwMiBsaW5rIHNldCB3ZzEgdXAKK24xIHBpbmcgLVcgMSAtYyAxIDE5 Mi4xNjguMjQyLjIKK2lwMiBsaW5rIGRlbCB3ZzEKK24xIHdnIHNldCB3ZzAgcGVlciAiJHB1YjMi IGVuZHBvaW50IDE5Mi4xNjguMjQyLjI6NQorISBuMSBwaW5nIC1XIDEgLWMgMSAxOTIuMTY4LjI0 Mi4yIHx8IGZhbHNlICMgU2hvdWxkIG5vdCBjcmFzaCBrZXJuZWwKK24xIHdnIHNldCB3ZzAgcGVl ciAiJHB1YjMiIHJlbW92ZQoraXAxIGFkZHIgZGVsIDE5Mi4xNjguMjQyLjEvMjQgZGV2IHdnMAor CiAjIERvIGEgd2ctcXVpY2soOCktc3R5bGUgcG9saWN5IHJvdXRpbmcgZm9yIHRoZSBkZWZhdWx0 IHJvdXRlLCBtYWtpbmcgc3VyZSB2ZXRoYyBoYXMgYSB2NiBhZGRyZXNzIHRvIHRlYXNlIG91dCBi dWdzLgogaXAxIC02IGFkZHIgYWRkIGZjMDA6OjkvOTYgZGV2IHZldGhjCiBpcDEgLTYgcm91dGUg YWRkIGRlZmF1bHQgdmlhIGZjMDA6OjEKLS0gCjIuMjYuMgoKCkZyb20gODRhMjVhYzI5ZDk2YzFl Njg5Y2NmZjM1N2ZhNWJmYWJlNTkxZmNlYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog Ikphc29uIEEuIERvbmVuZmVsZCIgPEphc29uQHp4MmM0LmNvbT4KRGF0ZTogV2VkLCA2IE1heSAy MDIwIDE1OjMzOjA0IC0wNjAwClN1YmplY3Q6IFtQQVRDSCA0NC80NF0gd2lyZWd1YXJkOiBzZW5k L3JlY2VpdmU6IGNvbmRfcmVzY2hlZCgpIHdoZW4gcHJvY2Vzc2luZwogd29ya2VyIHJpbmdidWZm ZXJzCgpbIFVwc3RyZWFtIGNvbW1pdCA0MDA1ZjVjM2M5ZDAwNjE1N2JhNzE2NTk0ZTBkNzBjODhh MjM1YzVlIF0KClVzZXJzIHdpdGggcGF0aG9sb2dpY2FsIGhhcmR3YXJlIHJlcG9ydGVkIENQVSBz dGFsbHMgb24gQ09ORklHXwpQUkVFTVBUX1ZPTFVOVEFSWT15LCBiZWNhdXNlIHRoZSByaW5nYnVm ZmVycyB3b3VsZCBzdGF5IGZ1bGwsIG1lYW5pbmcKdGhlc2Ugd29ya2VycyB3b3VsZCBuZXZlciB0 ZXJtaW5hdGUuIFRoYXQgdHVybmVkIG91dCBub3QgdG8gYmUgb2theSBvbgpzeXN0ZW1zIHdpdGhv dXQgZm9yY2VkIHByZWVtcHRpb24sIHdoaWNoIFN1bHRhbiBvYnNlcnZlZC4gVGhpcyBjb21taXQK YWRkcyBhIGNvbmRfcmVzY2hlZCgpIHRvIHRoZSBib3R0b20gb2YgZWFjaCBsb29wIGl0ZXJhdGlv biwgc28gdGhhdAp0aGVzZSB3b3JrZXJzIGRvbid0IGhvZyB0aGUgY29yZS4gTm90ZSB0aGF0IHdl IGRvbid0IG5lZWQgdGhpcyBvbiB0aGUKbmFwaSBwb2xsIHdvcmtlciwgc2luY2UgdGhhdCB0ZXJt aW5hdGVzIGFmdGVyIGl0cyBidWRnZXQgaXMgZXhwZW5kZWQuCgpTdWdnZXN0ZWQtYnk6IFN1bHRh biBBbHNhd2FmIDxzdWx0YW5Aa2VybmVsdG9hc3QuY29tPgpSZXBvcnRlZC1ieTogV2FuZyBKaWFu IDxsYXJrd2FuZ0BnbWFpbC5jb20+CkZpeGVzOiBlNzA5NmMxMzFlNTEgKCJuZXQ6IFdpcmVHdWFy ZCBzZWN1cmUgbmV0d29yayB0dW5uZWwiKQpTaWduZWQtb2ZmLWJ5OiBKYXNvbiBBLiBEb25lbmZl bGQgPEphc29uQHp4MmM0LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZl bUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L3dpcmVndWFyZC9yZWNlaXZlLmMgfCAy ICsrCiBkcml2ZXJzL25ldC93aXJlZ3VhcmQvc2VuZC5jICAgIHwgNCArKysrCiAyIGZpbGVzIGNo YW5nZWQsIDYgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVndWFy ZC9yZWNlaXZlLmMgYi9kcml2ZXJzL25ldC93aXJlZ3VhcmQvcmVjZWl2ZS5jCmluZGV4IDI2N2Yy MDJmMTkzMS4uMjU2NmUxM2EyOTJkIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlZ3VhcmQv cmVjZWl2ZS5jCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVndWFyZC9yZWNlaXZlLmMKQEAgLTUxNiw2 ICs1MTYsOCBAQCB2b2lkIHdnX3BhY2tldF9kZWNyeXB0X3dvcmtlcihzdHJ1Y3Qgd29ya19zdHJ1 Y3QgKndvcmspCiAJCQkJJlBBQ0tFVF9DQihza2IpLT5rZXlwYWlyLT5yZWNlaXZpbmcpKSA/CiAJ CQkJUEFDS0VUX1NUQVRFX0NSWVBURUQgOiBQQUNLRVRfU1RBVEVfREVBRDsKIAkJd2dfcXVldWVf ZW5xdWV1ZV9wZXJfcGVlcl9uYXBpKHNrYiwgc3RhdGUpOworCQlpZiAobmVlZF9yZXNjaGVkKCkp CisJCQljb25kX3Jlc2NoZWQoKTsKIAl9CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dp cmVndWFyZC9zZW5kLmMgYi9kcml2ZXJzL25ldC93aXJlZ3VhcmQvc2VuZC5jCmluZGV4IDczNDhj MTBjYmFlMy4uZThhN2QwYTBjYjg4IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlZ3VhcmQv c2VuZC5jCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVndWFyZC9zZW5kLmMKQEAgLTI4MSw2ICsyODEs OCBAQCB2b2lkIHdnX3BhY2tldF90eF93b3JrZXIoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQog CiAJCXdnX25vaXNlX2tleXBhaXJfcHV0KGtleXBhaXIsIGZhbHNlKTsKIAkJd2dfcGVlcl9wdXQo cGVlcik7CisJCWlmIChuZWVkX3Jlc2NoZWQoKSkKKwkJCWNvbmRfcmVzY2hlZCgpOwogCX0KIH0K IApAQCAtMzA1LDYgKzMwNyw4IEBAIHZvaWQgd2dfcGFja2V0X2VuY3J5cHRfd29ya2VyKHN0cnVj dCB3b3JrX3N0cnVjdCAqd29yaykKIAkJd2dfcXVldWVfZW5xdWV1ZV9wZXJfcGVlcigmUEFDS0VU X1BFRVIoZmlyc3QpLT50eF9xdWV1ZSwgZmlyc3QsCiAJCQkJCSAgc3RhdGUpOwogCisJCWlmIChu ZWVkX3Jlc2NoZWQoKSkKKwkJCWNvbmRfcmVzY2hlZCgpOwogCX0KIH0KIAotLSAKMi4yNi4yCgo= ----Next_Part(Mon_May_11_17_41_33_2020_555)----