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 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 06C4ED49C66 for ; Fri, 30 Jan 2026 07:21:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:From:References:To:Subject: MIME-Version:Date:Message-ID:Reply-To:Cc:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=u4+JcDA0gAVv/wlEfK80PJCRlnih8rnEengIBXFABWk=; b=L5W+Ny0mBMGOcf rzOQdmh7TVJfjGQ0A9ErnpKRjOr65oQvF3NtI3jfuHHt+rwT0/WaZ3eYyfDWv0GiTl77hO/w49eLO 7kWCTzOESL7snDRfkb3IHfsvwc/oaR5bzIxFUhhqk1mWu9RzjVt3ONAuqizmu/maIL3zuuH5Db+a0 BCWUF5SwiPtJaucx/wygXAMtkYz/loZ7oyuQH/B4CmyIYV860kMOxnMas7wtHrU9UJL0a5NrcZQf0 vTTc8Ijw/NegP4bjSobV+qFJoTuXRAzDGG5xryPZWwBAVSEKu8c/4KenTaq1maxxd582FZjcmg1GX DSIUL+rJllwT/jc35XCQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1vlioh-000000018kZ-1dnp; Fri, 30 Jan 2026 07:21:19 +0000 Received: from mgamail.intel.com ([198.175.65.20]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1vliod-000000018jT-1mOv; Fri, 30 Jan 2026 07:21:17 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1769757675; x=1801293675; h=message-id:date:mime-version:subject:to:references:from: in-reply-to:content-transfer-encoding; bh=yx3pbmntd/vEbgwiSKR8BK3VNDwoWAHoZ5DhpyuxSqI=; b=PNpvEQR3bbX9REw2pGW9KQFsWa/oEWlSS3j+y03iGkH/fHsf7LlNZI+h 5TTCxNcfq1syDhrdnt1OjfJ4pmi8eu7mY1AJV3t3Rpy+XWos33ezkiktz 0iTWKqL82U9FrBrLNF4jY7VlfAdje7wFupP23JPwfLBS2TI81TF5U8Euk wMNdqd668eQd/UfZpJsZInNE/BYaAUzGIwKW92wusyW9b0H9oD7MI5JDA uL77eWD+LWa8Z1uShmnj4dKu9PJW/tG96dXSkMegcS5+gLim9xVsk7Mmc Gdl4kMwrsz3q9x6c6X8Q0zx8tcop9I3Rw9traif/t46EqHzqB6NcZF9Q8 w==; X-CSE-ConnectionGUID: rBawhX7TSi2wdrhErh8P8g== X-CSE-MsgGUID: k2b65oDfSY62PxKVuQ/oWw== X-IronPort-AV: E=McAfee;i="6800,10657,11686"; a="70724602" X-IronPort-AV: E=Sophos;i="6.21,262,1763452800"; d="scan'208";a="70724602" Received: from orviesa001.jf.intel.com ([10.64.159.141]) by orvoesa112.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Jan 2026 23:21:13 -0800 X-CSE-ConnectionGUID: rlbJ9RDmTvCHGlrlazpKlw== X-CSE-MsgGUID: d0dg3FxiRg+VzA3ayK0oPw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.21,262,1763452800"; d="scan'208";a="246406937" Received: from dapengmi-mobl1.ccr.corp.intel.com (HELO [10.124.240.14]) ([10.124.240.14]) by smtpauth.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Jan 2026 23:21:05 -0800 Message-ID: Date: Fri, 30 Jan 2026 15:21:02 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2] perf regs: Refactor use of arch__sample_reg_masks to perf_reg_name To: Ian Rogers , Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Jiri Olsa , Adrian Hunter , James Clark , John Garry , Will Deacon , Leo Yan , Guo Ren , Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti , Shimin Guo , Athira Rajeev , Stephen Brennan , Howard Chu , Thomas Falcon , Andi Kleen , "Dr. David Alan Gilbert" , Dmitry Vyukov , =?UTF-8?Q?Krzysztof_=C5=81opatowski?= , Chun-Tse Shao , Aditya Bodkhe , Haibo Xu , Sergei Trofimovich , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-csky@vger.kernel.org, linux-riscv@lists.infradead.org References: <20260121021735.3625244-1-irogers@google.com> Content-Language: en-US From: "Mi, Dapeng" In-Reply-To: <20260121021735.3625244-1-irogers@google.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260129_232115_564686_A2FB413B X-CRM114-Status: GOOD ( 22.12 ) X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org Ck9uIDEvMjEvMjAyNiAxMDoxNyBBTSwgSWFuIFJvZ2VycyB3cm90ZToKPiBhcmNoX19zYW1wbGVf cmVnX21hc2tzIGlzbid0IHN1cHBvcnRlZCBvbiBBUk0oMzIpLCBjc2t5LCBsb29uZ2FyY2gsCj4g TUlQUywgUklTQy1WIGFuZCBzMzkwLiBUaGUgdGFibGUgcmV0dXJuZWQgYnkgdGhlIGZ1bmN0aW9u IGp1c3QgaGFzIHRoZQo+IG5hbWUgb2YgYSByZWdpc3RlciBwYWlyZWQgd2l0aCB0aGUgY29ycmVz cG9uZGluZyBzYW1wbGVfcmVnc191c2VyIG1hc2sKPiB2YWx1ZS4gRm9yIGEgZ2l2ZW4gcGVyZiBy ZWdpc3RlciB3ZSBjYW4gY29tcHV0ZSB0aGUgbmFtZSB3aXRoCj4gcGVyZl9yZWdfbmFtZSBhbmQg dGhlIG1hc2sgaXMganVzdCAxIGxlZnQtc2hpZnRlZCBieSB0aGUgcGVyZiByZWdpc3Rlcgo+IG51 bWJlci4gQ2hhbmdlIF9fcGFyc2VfcmVncyB0byB1c2UgdGhpcyBtZXRob2QgZm9yIGZpbmRpbmcg cmVnaXN0ZXJzCj4gcmF0aGVyIHRoYW4gYXJjaF9fc2FtcGxlX3JlZ19tYXNrcywgdGhlcmVieSBh ZGRpbmcgX19wYXJzZV9yZWdzCj4gc3VwcG9ydCBmb3IgQVJNKDMyKSwgY3NreSwgbG9vbmdhcmNo LCBNSVBTLCBSSVNDLVYgYW5kIHMzOTAuIEFzCj4gYXJjaF9fc2FtcGxlX3JlZ19tYXNrcyBpcyB0 aGVuIHVudXNlZCwgcmVtb3ZlIHRoZSBub3cgdW5uZWVkZWQKPiBkZWNsYXJhdGlvbnMuCj4KPiBT aWduZWQtb2ZmLWJ5OiBJYW4gUm9nZXJzIDxpcm9nZXJzQGdvb2dsZS5jb20+Cj4gLS0tCj4gdjI6 IENvcnJlY3QgdGhlIHNldHRpbmcgb2YgcmVnIG1hc2sgZm9yIHJlZ2lzdGVycyB0aGF0IG5lZWQg PjEgYml0IHNldAo+ICAgICBsaWtlIFhNTXMuCj4KPiBUaGUgaWRlYSBmb3IgdGhpcyBwYXRjaCBj YW1lIHVwIGluIGNvbnZlcnNhdGlvbiB3aXRoIERhcGVuZyBNaSB0bwo+IGF2b2lkIGFkZGl0aW9u YWwgZnVuY3Rpb25zIGFuZCB0YWJsZXMgZm9yIHg4NiBBUFggc3VwcG9ydDoKPiBodHRwczovL2xv cmUua2VybmVsLm9yZy9sa21sL0NBUC01PWZXT3N2QVh1dThxeDB0azlxOGo4Qm9YUE1KQjNHeHRv K2l1NndmMDZpNGNWQUBtYWlsLmdtYWlsLmNvbS8KPgo+IFRoZSBwYXRjaCBpcyBvbiB0b3Agb2Yg dGhlIGR3ZmwgY2xlYW4gdXAgcGF0Y2hlcyB0aGF0IHN3aXRjaCBwZXJmCj4gcmVnaXN0ZXIgZnVu Y3Rpb25zIHRvIHVzaW5nIGVfbWFjaGluZSBhcyBhbiBhcmd1bWVudCByYXRoZXIgdGhhbiB0aGUK PiBhcmNoIHN0cmluZywgdGhpcyBtZWFucyB0aGF0IEVNX0hPU1QgY2FuIGJlIHVzZWQgd2l0aCBw ZXJmX3JlZ19uYW1lOgo+IGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL2xrbWwvMjAyNjAxMTcwNTI4 NDkuMjIwNTU0NS0xLWlyb2dlcnNAZ29vZ2xlLmNvbS8KPiAtLS0KPiAgdG9vbHMvcGVyZi9hcmNo L2FybS91dGlsL3BlcmZfcmVncy5jICAgICAgICAgIHwgICA5IC0tCj4gIHRvb2xzL3BlcmYvYXJj aC9hcm02NC91dGlsL21hY2hpbmUuYyAgICAgICAgICB8ICAxNCArLS0KPiAgdG9vbHMvcGVyZi9h cmNoL2FybTY0L3V0aWwvcGVyZl9yZWdzLmMgICAgICAgIHwgIDQ1ICstLS0tLS0KPiAgdG9vbHMv cGVyZi9hcmNoL2Nza3kvdXRpbC9wZXJmX3JlZ3MuYyAgICAgICAgIHwgICA5IC0tCj4gIHRvb2xz L3BlcmYvYXJjaC9sb29uZ2FyY2gvdXRpbC9wZXJmX3JlZ3MuYyAgICB8ICAgOSAtLQo+ICB0b29s cy9wZXJmL2FyY2gvbWlwcy91dGlsL3BlcmZfcmVncy5jICAgICAgICAgfCAgIDkgLS0KPiAgdG9v bHMvcGVyZi9hcmNoL3Bvd2VycGMvdXRpbC9wZXJmX3JlZ3MuYyAgICAgIHwgIDY4IC0tLS0tLS0t LS0KPiAgdG9vbHMvcGVyZi9hcmNoL3Jpc2N2L3V0aWwvcGVyZl9yZWdzLmMgICAgICAgIHwgICA5 IC0tCj4gIHRvb2xzL3BlcmYvYXJjaC9zMzkwL3V0aWwvcGVyZl9yZWdzLmMgICAgICAgICB8ICAg OSAtLQo+ICB0b29scy9wZXJmL2FyY2gveDg2L3V0aWwvcGVyZl9yZWdzLmMgICAgICAgICAgfCAg NDcgLS0tLS0tLQo+ICAuLi4vdXRpbC9hcm02NC1mcmFtZS1wb2ludGVyLXVud2luZC1zdXBwb3J0 LmMgfCAgIDMgKy0KPiAgdG9vbHMvcGVyZi91dGlsL3BhcnNlLXJlZ3Mtb3B0aW9ucy5jICAgICAg ICAgIHwgMTE2ICsrKysrKysrKysrLS0tLS0tLQo+ICB0b29scy9wZXJmL3V0aWwvcGVyZl9yZWdz LmMgICAgICAgICAgICAgICAgICAgfCAgIDkgLS0KPiAgdG9vbHMvcGVyZi91dGlsL3BlcmZfcmVn cy5oICAgICAgICAgICAgICAgICAgIHwgIDEyIC0tCj4gIDE0IGZpbGVzIGNoYW5nZWQsIDgxIGlu c2VydGlvbnMoKyksIDI4NyBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS90b29scy9wZXJm L2FyY2gvYXJtL3V0aWwvcGVyZl9yZWdzLmMgYi90b29scy9wZXJmL2FyY2gvYXJtL3V0aWwvcGVy Zl9yZWdzLmMKPiBpbmRleCBmOTRhMDIxMGM3YjcuLjAzYTViYzBjZjY0YyAxMDA2NDQKPiAtLS0g YS90b29scy9wZXJmL2FyY2gvYXJtL3V0aWwvcGVyZl9yZWdzLmMKPiArKysgYi90b29scy9wZXJm L2FyY2gvYXJtL3V0aWwvcGVyZl9yZWdzLmMKPiBAQCAtMiwxMCArMiw2IEBACj4gICNpbmNsdWRl ICJwZXJmX3JlZ3MuaCIKPiAgI2luY2x1ZGUgIi4uLy4uLy4uL3V0aWwvcGVyZl9yZWdzLmgiCj4g IAo+IC1zdGF0aWMgY29uc3Qgc3RydWN0IHNhbXBsZV9yZWcgc2FtcGxlX3JlZ19tYXNrc1tdID0g ewo+IC0JU01QTF9SRUdfRU5ECj4gLX07Cj4gLQo+ICB1aW50NjRfdCBhcmNoX19pbnRyX3JlZ19t YXNrKHZvaWQpCj4gIHsKPiAgCXJldHVybiBQRVJGX1JFR1NfTUFTSzsKPiBAQCAtMTUsOCArMTEs MyBAQCB1aW50NjRfdCBhcmNoX191c2VyX3JlZ19tYXNrKHZvaWQpCj4gIHsKPiAgCXJldHVybiBQ RVJGX1JFR1NfTUFTSzsKPiAgfQo+IC0KPiAtY29uc3Qgc3RydWN0IHNhbXBsZV9yZWcgKmFyY2hf X3NhbXBsZV9yZWdfbWFza3Modm9pZCkKPiAtewo+IC0JcmV0dXJuIHNhbXBsZV9yZWdfbWFza3M7 Cj4gLX0KPiBkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi9hcmNoL2FybTY0L3V0aWwvbWFjaGluZS5j IGIvdG9vbHMvcGVyZi9hcmNoL2FybTY0L3V0aWwvbWFjaGluZS5jCj4gaW5kZXggYWFiMWNjMmJj MjgzLi44MGZiMTNjOTU4ZDkgMTAwNjQ0Cj4gLS0tIGEvdG9vbHMvcGVyZi9hcmNoL2FybTY0L3V0 aWwvbWFjaGluZS5jCj4gKysrIGIvdG9vbHMvcGVyZi9hcmNoL2FybTY0L3V0aWwvbWFjaGluZS5j Cj4gQEAgLTEsMTggKzEsMTIgQEAKPiAgLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0y LjAKPiAgCj4gLSNpbmNsdWRlIDxpbnR0eXBlcy5oPgo+IC0jaW5jbHVkZSA8c3RkaW8uaD4KPiAt I2luY2x1ZGUgPHN0cmluZy5oPgo+IC0jaW5jbHVkZSAiZGVidWcuaCIKPiAtI2luY2x1ZGUgInN5 bWJvbC5oIgo+IC0jaW5jbHVkZSAiY2FsbGNoYWluLmgiCj4gKyNpbmNsdWRlICJjYWxsY2hhaW4u aCIgLy8gcHJvdG90eXBlIG9mIGFyY2hfX2FkZF9sZWFmX2ZyYW1lX3JlY29yZF9vcHRzCj4gICNp bmNsdWRlICJwZXJmX3JlZ3MuaCIKPiAgI2luY2x1ZGUgInJlY29yZC5oIgo+IC0jaW5jbHVkZSAi dXRpbC9wZXJmX3JlZ3MuaCIKPiArCj4gKyNkZWZpbmUgU01QTF9SRUdfTUFTSyhiKSAoMVVMTCA8 PCAoYikpCj4gIAo+ICB2b2lkIGFyY2hfX2FkZF9sZWFmX2ZyYW1lX3JlY29yZF9vcHRzKHN0cnVj dCByZWNvcmRfb3B0cyAqb3B0cykKPiAgewo+IC0JY29uc3Qgc3RydWN0IHNhbXBsZV9yZWcgKnNh bXBsZV9yZWdfbWFza3MgPSBhcmNoX19zYW1wbGVfcmVnX21hc2tzKCk7Cj4gLQo+IC0Jb3B0cy0+ c2FtcGxlX3VzZXJfcmVncyB8PSBzYW1wbGVfcmVnX21hc2tzW1BFUkZfUkVHX0FSTTY0X0xSXS5t YXNrOwo+ICsJb3B0cy0+c2FtcGxlX3VzZXJfcmVncyB8PSBTTVBMX1JFR19NQVNLKFBFUkZfUkVH X0FSTTY0X0xSKTsKPiAgfQo+IGRpZmYgLS1naXQgYS90b29scy9wZXJmL2FyY2gvYXJtNjQvdXRp bC9wZXJmX3JlZ3MuYyBiL3Rvb2xzL3BlcmYvYXJjaC9hcm02NC91dGlsL3BlcmZfcmVncy5jCj4g aW5kZXggMDkzMDg2NjVlMjhhLi45YmI3NjhlMWJlYTEgMTAwNjQ0Cj4gLS0tIGEvdG9vbHMvcGVy Zi9hcmNoL2FybTY0L3V0aWwvcGVyZl9yZWdzLmMKPiArKysgYi90b29scy9wZXJmL2FyY2gvYXJt NjQvdXRpbC9wZXJmX3JlZ3MuYwo+IEBAIC0xMiw0OCArMTIsMTIgQEAKPiAgI2luY2x1ZGUgIi4u Ly4uLy4uL3V0aWwvZXZlbnQuaCIKPiAgI2luY2x1ZGUgIi4uLy4uLy4uL3V0aWwvcGVyZl9yZWdz LmgiCj4gIAo+ICsjZGVmaW5lIFNNUExfUkVHX01BU0soYikgKDFVTEwgPDwgKGIpKQo+ICsKPiAg I2lmbmRlZiBIV0NBUF9TVkUKPiAgI2RlZmluZSBIV0NBUF9TVkUJKDEgPDwgMjIpCj4gICNlbmRp Zgo+ICAKPiAtc3RhdGljIGNvbnN0IHN0cnVjdCBzYW1wbGVfcmVnIHNhbXBsZV9yZWdfbWFza3Nb XSA9IHsKPiAtCVNNUExfUkVHKHgwLCBQRVJGX1JFR19BUk02NF9YMCksCj4gLQlTTVBMX1JFRyh4 MSwgUEVSRl9SRUdfQVJNNjRfWDEpLAo+IC0JU01QTF9SRUcoeDIsIFBFUkZfUkVHX0FSTTY0X1gy KSwKPiAtCVNNUExfUkVHKHgzLCBQRVJGX1JFR19BUk02NF9YMyksCj4gLQlTTVBMX1JFRyh4NCwg UEVSRl9SRUdfQVJNNjRfWDQpLAo+IC0JU01QTF9SRUcoeDUsIFBFUkZfUkVHX0FSTTY0X1g1KSwK PiAtCVNNUExfUkVHKHg2LCBQRVJGX1JFR19BUk02NF9YNiksCj4gLQlTTVBMX1JFRyh4NywgUEVS Rl9SRUdfQVJNNjRfWDcpLAo+IC0JU01QTF9SRUcoeDgsIFBFUkZfUkVHX0FSTTY0X1g4KSwKPiAt CVNNUExfUkVHKHg5LCBQRVJGX1JFR19BUk02NF9YOSksCj4gLQlTTVBMX1JFRyh4MTAsIFBFUkZf UkVHX0FSTTY0X1gxMCksCj4gLQlTTVBMX1JFRyh4MTEsIFBFUkZfUkVHX0FSTTY0X1gxMSksCj4g LQlTTVBMX1JFRyh4MTIsIFBFUkZfUkVHX0FSTTY0X1gxMiksCj4gLQlTTVBMX1JFRyh4MTMsIFBF UkZfUkVHX0FSTTY0X1gxMyksCj4gLQlTTVBMX1JFRyh4MTQsIFBFUkZfUkVHX0FSTTY0X1gxNCks Cj4gLQlTTVBMX1JFRyh4MTUsIFBFUkZfUkVHX0FSTTY0X1gxNSksCj4gLQlTTVBMX1JFRyh4MTYs IFBFUkZfUkVHX0FSTTY0X1gxNiksCj4gLQlTTVBMX1JFRyh4MTcsIFBFUkZfUkVHX0FSTTY0X1gx NyksCj4gLQlTTVBMX1JFRyh4MTgsIFBFUkZfUkVHX0FSTTY0X1gxOCksCj4gLQlTTVBMX1JFRyh4 MTksIFBFUkZfUkVHX0FSTTY0X1gxOSksCj4gLQlTTVBMX1JFRyh4MjAsIFBFUkZfUkVHX0FSTTY0 X1gyMCksCj4gLQlTTVBMX1JFRyh4MjEsIFBFUkZfUkVHX0FSTTY0X1gyMSksCj4gLQlTTVBMX1JF Ryh4MjIsIFBFUkZfUkVHX0FSTTY0X1gyMiksCj4gLQlTTVBMX1JFRyh4MjMsIFBFUkZfUkVHX0FS TTY0X1gyMyksCj4gLQlTTVBMX1JFRyh4MjQsIFBFUkZfUkVHX0FSTTY0X1gyNCksCj4gLQlTTVBM X1JFRyh4MjUsIFBFUkZfUkVHX0FSTTY0X1gyNSksCj4gLQlTTVBMX1JFRyh4MjYsIFBFUkZfUkVH X0FSTTY0X1gyNiksCj4gLQlTTVBMX1JFRyh4MjcsIFBFUkZfUkVHX0FSTTY0X1gyNyksCj4gLQlT TVBMX1JFRyh4MjgsIFBFUkZfUkVHX0FSTTY0X1gyOCksCj4gLQlTTVBMX1JFRyh4MjksIFBFUkZf UkVHX0FSTTY0X1gyOSksCj4gLQlTTVBMX1JFRyhsciwgUEVSRl9SRUdfQVJNNjRfTFIpLAo+IC0J U01QTF9SRUcoc3AsIFBFUkZfUkVHX0FSTTY0X1NQKSwKPiAtCVNNUExfUkVHKHBjLCBQRVJGX1JF R19BUk02NF9QQyksCj4gLQlTTVBMX1JFRyh2ZywgUEVSRl9SRUdfQVJNNjRfVkcpLAo+IC0JU01Q TF9SRUdfRU5ECj4gLX07Cj4gLQo+ICAvKiAleE5VTSAqLwo+ICAjZGVmaW5lIFNEVF9PUF9SRUdF WDEgICJeKHhbMS0yXT9bMC05XXwzWzAtMV0pJCIKPiAgCj4gQEAgLTE3NSw4ICsxMzksMyBAQCB1 aW50NjRfdCBhcmNoX191c2VyX3JlZ19tYXNrKHZvaWQpCj4gIAl9Cj4gIAlyZXR1cm4gUEVSRl9S RUdTX01BU0s7Cj4gIH0KPiAtCj4gLWNvbnN0IHN0cnVjdCBzYW1wbGVfcmVnICphcmNoX19zYW1w bGVfcmVnX21hc2tzKHZvaWQpCj4gLXsKPiAtCXJldHVybiBzYW1wbGVfcmVnX21hc2tzOwo+IC19 Cj4gZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvYXJjaC9jc2t5L3V0aWwvcGVyZl9yZWdzLmMgYi90 b29scy9wZXJmL2FyY2gvY3NreS91dGlsL3BlcmZfcmVncy5jCj4gaW5kZXggNmIxNjY1ZjQxMTgw Li4yY2Y3YTU0MTA2ZTAgMTAwNjQ0Cj4gLS0tIGEvdG9vbHMvcGVyZi9hcmNoL2Nza3kvdXRpbC9w ZXJmX3JlZ3MuYwo+ICsrKyBiL3Rvb2xzL3BlcmYvYXJjaC9jc2t5L3V0aWwvcGVyZl9yZWdzLmMK PiBAQCAtMiwxMCArMiw2IEBACj4gICNpbmNsdWRlICJwZXJmX3JlZ3MuaCIKPiAgI2luY2x1ZGUg Ii4uLy4uL3V0aWwvcGVyZl9yZWdzLmgiCj4gIAo+IC1zdGF0aWMgY29uc3Qgc3RydWN0IHNhbXBs ZV9yZWcgc2FtcGxlX3JlZ19tYXNrc1tdID0gewo+IC0JU01QTF9SRUdfRU5ECj4gLX07Cj4gLQo+ ICB1aW50NjRfdCBhcmNoX19pbnRyX3JlZ19tYXNrKHZvaWQpCj4gIHsKPiAgCXJldHVybiBQRVJG X1JFR1NfTUFTSzsKPiBAQCAtMTUsOCArMTEsMyBAQCB1aW50NjRfdCBhcmNoX191c2VyX3JlZ19t YXNrKHZvaWQpCj4gIHsKPiAgCXJldHVybiBQRVJGX1JFR1NfTUFTSzsKPiAgfQo+IC0KPiAtY29u c3Qgc3RydWN0IHNhbXBsZV9yZWcgKmFyY2hfX3NhbXBsZV9yZWdfbWFza3Modm9pZCkKPiAtewo+ IC0JcmV0dXJuIHNhbXBsZV9yZWdfbWFza3M7Cj4gLX0KPiBkaWZmIC0tZ2l0IGEvdG9vbHMvcGVy Zi9hcmNoL2xvb25nYXJjaC91dGlsL3BlcmZfcmVncy5jIGIvdG9vbHMvcGVyZi9hcmNoL2xvb25n YXJjaC91dGlsL3BlcmZfcmVncy5jCj4gaW5kZXggZjk0YTAyMTBjN2I3Li4wM2E1YmMwY2Y2NGMg MTAwNjQ0Cj4gLS0tIGEvdG9vbHMvcGVyZi9hcmNoL2xvb25nYXJjaC91dGlsL3BlcmZfcmVncy5j Cj4gKysrIGIvdG9vbHMvcGVyZi9hcmNoL2xvb25nYXJjaC91dGlsL3BlcmZfcmVncy5jCj4gQEAg LTIsMTAgKzIsNiBAQAo+ICAjaW5jbHVkZSAicGVyZl9yZWdzLmgiCj4gICNpbmNsdWRlICIuLi8u Li8uLi91dGlsL3BlcmZfcmVncy5oIgo+ICAKPiAtc3RhdGljIGNvbnN0IHN0cnVjdCBzYW1wbGVf cmVnIHNhbXBsZV9yZWdfbWFza3NbXSA9IHsKPiAtCVNNUExfUkVHX0VORAo+IC19Owo+IC0KPiAg dWludDY0X3QgYXJjaF9faW50cl9yZWdfbWFzayh2b2lkKQo+ICB7Cj4gIAlyZXR1cm4gUEVSRl9S RUdTX01BU0s7Cj4gQEAgLTE1LDggKzExLDMgQEAgdWludDY0X3QgYXJjaF9fdXNlcl9yZWdfbWFz ayh2b2lkKQo+ICB7Cj4gIAlyZXR1cm4gUEVSRl9SRUdTX01BU0s7Cj4gIH0KPiAtCj4gLWNvbnN0 IHN0cnVjdCBzYW1wbGVfcmVnICphcmNoX19zYW1wbGVfcmVnX21hc2tzKHZvaWQpCj4gLXsKPiAt CXJldHVybiBzYW1wbGVfcmVnX21hc2tzOwo+IC19Cj4gZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYv YXJjaC9taXBzL3V0aWwvcGVyZl9yZWdzLmMgYi90b29scy9wZXJmL2FyY2gvbWlwcy91dGlsL3Bl cmZfcmVncy5jCj4gaW5kZXggNmIxNjY1ZjQxMTgwLi4yY2Y3YTU0MTA2ZTAgMTAwNjQ0Cj4gLS0t IGEvdG9vbHMvcGVyZi9hcmNoL21pcHMvdXRpbC9wZXJmX3JlZ3MuYwo+ICsrKyBiL3Rvb2xzL3Bl cmYvYXJjaC9taXBzL3V0aWwvcGVyZl9yZWdzLmMKPiBAQCAtMiwxMCArMiw2IEBACj4gICNpbmNs dWRlICJwZXJmX3JlZ3MuaCIKPiAgI2luY2x1ZGUgIi4uLy4uL3V0aWwvcGVyZl9yZWdzLmgiCj4g IAo+IC1zdGF0aWMgY29uc3Qgc3RydWN0IHNhbXBsZV9yZWcgc2FtcGxlX3JlZ19tYXNrc1tdID0g ewo+IC0JU01QTF9SRUdfRU5ECj4gLX07Cj4gLQo+ICB1aW50NjRfdCBhcmNoX19pbnRyX3JlZ19t YXNrKHZvaWQpCj4gIHsKPiAgCXJldHVybiBQRVJGX1JFR1NfTUFTSzsKPiBAQCAtMTUsOCArMTEs MyBAQCB1aW50NjRfdCBhcmNoX191c2VyX3JlZ19tYXNrKHZvaWQpCj4gIHsKPiAgCXJldHVybiBQ RVJGX1JFR1NfTUFTSzsKPiAgfQo+IC0KPiAtY29uc3Qgc3RydWN0IHNhbXBsZV9yZWcgKmFyY2hf X3NhbXBsZV9yZWdfbWFza3Modm9pZCkKPiAtewo+IC0JcmV0dXJuIHNhbXBsZV9yZWdfbWFza3M7 Cj4gLX0KPiBkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi9hcmNoL3Bvd2VycGMvdXRpbC9wZXJmX3Jl Z3MuYyBiL3Rvb2xzL3BlcmYvYXJjaC9wb3dlcnBjL3V0aWwvcGVyZl9yZWdzLmMKPiBpbmRleCBi ZDM2Y2ZkNDIwYTIuLjc3OTA3M2Y3ZTk5MiAxMDA2NDQKPiAtLS0gYS90b29scy9wZXJmL2FyY2gv cG93ZXJwYy91dGlsL3BlcmZfcmVncy5jCj4gKysrIGIvdG9vbHMvcGVyZi9hcmNoL3Bvd2VycGMv dXRpbC9wZXJmX3JlZ3MuYwo+IEBAIC0xOCw2OSArMTgsNiBAQAo+ICAjZGVmaW5lIFBWUl9QT1dF UjEwCQkweDAwODAKPiAgI2RlZmluZSBQVlJfUE9XRVIxMQkJMHgwMDgyCj4gIAo+IC1zdGF0aWMg Y29uc3Qgc3RydWN0IHNhbXBsZV9yZWcgc2FtcGxlX3JlZ19tYXNrc1tdID0gewo+IC0JU01QTF9S RUcocjAsIFBFUkZfUkVHX1BPV0VSUENfUjApLAo+IC0JU01QTF9SRUcocjEsIFBFUkZfUkVHX1BP V0VSUENfUjEpLAo+IC0JU01QTF9SRUcocjIsIFBFUkZfUkVHX1BPV0VSUENfUjIpLAo+IC0JU01Q TF9SRUcocjMsIFBFUkZfUkVHX1BPV0VSUENfUjMpLAo+IC0JU01QTF9SRUcocjQsIFBFUkZfUkVH X1BPV0VSUENfUjQpLAo+IC0JU01QTF9SRUcocjUsIFBFUkZfUkVHX1BPV0VSUENfUjUpLAo+IC0J U01QTF9SRUcocjYsIFBFUkZfUkVHX1BPV0VSUENfUjYpLAo+IC0JU01QTF9SRUcocjcsIFBFUkZf UkVHX1BPV0VSUENfUjcpLAo+IC0JU01QTF9SRUcocjgsIFBFUkZfUkVHX1BPV0VSUENfUjgpLAo+ IC0JU01QTF9SRUcocjksIFBFUkZfUkVHX1BPV0VSUENfUjkpLAo+IC0JU01QTF9SRUcocjEwLCBQ RVJGX1JFR19QT1dFUlBDX1IxMCksCj4gLQlTTVBMX1JFRyhyMTEsIFBFUkZfUkVHX1BPV0VSUENf UjExKSwKPiAtCVNNUExfUkVHKHIxMiwgUEVSRl9SRUdfUE9XRVJQQ19SMTIpLAo+IC0JU01QTF9S RUcocjEzLCBQRVJGX1JFR19QT1dFUlBDX1IxMyksCj4gLQlTTVBMX1JFRyhyMTQsIFBFUkZfUkVH X1BPV0VSUENfUjE0KSwKPiAtCVNNUExfUkVHKHIxNSwgUEVSRl9SRUdfUE9XRVJQQ19SMTUpLAo+ IC0JU01QTF9SRUcocjE2LCBQRVJGX1JFR19QT1dFUlBDX1IxNiksCj4gLQlTTVBMX1JFRyhyMTcs IFBFUkZfUkVHX1BPV0VSUENfUjE3KSwKPiAtCVNNUExfUkVHKHIxOCwgUEVSRl9SRUdfUE9XRVJQ Q19SMTgpLAo+IC0JU01QTF9SRUcocjE5LCBQRVJGX1JFR19QT1dFUlBDX1IxOSksCj4gLQlTTVBM X1JFRyhyMjAsIFBFUkZfUkVHX1BPV0VSUENfUjIwKSwKPiAtCVNNUExfUkVHKHIyMSwgUEVSRl9S RUdfUE9XRVJQQ19SMjEpLAo+IC0JU01QTF9SRUcocjIyLCBQRVJGX1JFR19QT1dFUlBDX1IyMiks Cj4gLQlTTVBMX1JFRyhyMjMsIFBFUkZfUkVHX1BPV0VSUENfUjIzKSwKPiAtCVNNUExfUkVHKHIy NCwgUEVSRl9SRUdfUE9XRVJQQ19SMjQpLAo+IC0JU01QTF9SRUcocjI1LCBQRVJGX1JFR19QT1dF UlBDX1IyNSksCj4gLQlTTVBMX1JFRyhyMjYsIFBFUkZfUkVHX1BPV0VSUENfUjI2KSwKPiAtCVNN UExfUkVHKHIyNywgUEVSRl9SRUdfUE9XRVJQQ19SMjcpLAo+IC0JU01QTF9SRUcocjI4LCBQRVJG X1JFR19QT1dFUlBDX1IyOCksCj4gLQlTTVBMX1JFRyhyMjksIFBFUkZfUkVHX1BPV0VSUENfUjI5 KSwKPiAtCVNNUExfUkVHKHIzMCwgUEVSRl9SRUdfUE9XRVJQQ19SMzApLAo+IC0JU01QTF9SRUco cjMxLCBQRVJGX1JFR19QT1dFUlBDX1IzMSksCj4gLQlTTVBMX1JFRyhuaXAsIFBFUkZfUkVHX1BP V0VSUENfTklQKSwKPiAtCVNNUExfUkVHKG1zciwgUEVSRl9SRUdfUE9XRVJQQ19NU1IpLAo+IC0J U01QTF9SRUcob3JpZ19yMywgUEVSRl9SRUdfUE9XRVJQQ19PUklHX1IzKSwKPiAtCVNNUExfUkVH KGN0ciwgUEVSRl9SRUdfUE9XRVJQQ19DVFIpLAo+IC0JU01QTF9SRUcobGluaywgUEVSRl9SRUdf UE9XRVJQQ19MSU5LKSwKPiAtCVNNUExfUkVHKHhlciwgUEVSRl9SRUdfUE9XRVJQQ19YRVIpLAo+ IC0JU01QTF9SRUcoY2NyLCBQRVJGX1JFR19QT1dFUlBDX0NDUiksCj4gLQlTTVBMX1JFRyhzb2Z0 ZSwgUEVSRl9SRUdfUE9XRVJQQ19TT0ZURSksCj4gLQlTTVBMX1JFRyh0cmFwLCBQRVJGX1JFR19Q T1dFUlBDX1RSQVApLAo+IC0JU01QTF9SRUcoZGFyLCBQRVJGX1JFR19QT1dFUlBDX0RBUiksCj4g LQlTTVBMX1JFRyhkc2lzciwgUEVSRl9SRUdfUE9XRVJQQ19EU0lTUiksCj4gLQlTTVBMX1JFRyhz aWVyLCBQRVJGX1JFR19QT1dFUlBDX1NJRVIpLAo+IC0JU01QTF9SRUcobW1jcmEsIFBFUkZfUkVH X1BPV0VSUENfTU1DUkEpLAo+IC0JU01QTF9SRUcobW1jcjAsIFBFUkZfUkVHX1BPV0VSUENfTU1D UjApLAo+IC0JU01QTF9SRUcobW1jcjEsIFBFUkZfUkVHX1BPV0VSUENfTU1DUjEpLAo+IC0JU01Q TF9SRUcobW1jcjIsIFBFUkZfUkVHX1BPV0VSUENfTU1DUjIpLAo+IC0JU01QTF9SRUcobW1jcjMs IFBFUkZfUkVHX1BPV0VSUENfTU1DUjMpLAo+IC0JU01QTF9SRUcoc2llcjIsIFBFUkZfUkVHX1BP V0VSUENfU0lFUjIpLAo+IC0JU01QTF9SRUcoc2llcjMsIFBFUkZfUkVHX1BPV0VSUENfU0lFUjMp LAo+IC0JU01QTF9SRUcocG1jMSwgUEVSRl9SRUdfUE9XRVJQQ19QTUMxKSwKPiAtCVNNUExfUkVH KHBtYzIsIFBFUkZfUkVHX1BPV0VSUENfUE1DMiksCj4gLQlTTVBMX1JFRyhwbWMzLCBQRVJGX1JF R19QT1dFUlBDX1BNQzMpLAo+IC0JU01QTF9SRUcocG1jNCwgUEVSRl9SRUdfUE9XRVJQQ19QTUM0 KSwKPiAtCVNNUExfUkVHKHBtYzUsIFBFUkZfUkVHX1BPV0VSUENfUE1DNSksCj4gLQlTTVBMX1JF RyhwbWM2LCBQRVJGX1JFR19QT1dFUlBDX1BNQzYpLAo+IC0JU01QTF9SRUcoc2RhciwgUEVSRl9S RUdfUE9XRVJQQ19TREFSKSwKPiAtCVNNUExfUkVHKHNpYXIsIFBFUkZfUkVHX1BPV0VSUENfU0lB UiksCj4gLQlTTVBMX1JFR19FTkQKPiAtfTsKPiAtCj4gIC8qIFJFRyBvciAlclJFRyAqLwo+ICAj ZGVmaW5lIFNEVF9PUF9SRUdFWDEgICJeKCVyKT8oWzEtMl0/WzAtOV18M1swLTFdKSQiCj4gIAo+ IEBAIC0yMzMsOCArMTcwLDMgQEAgdWludDY0X3QgYXJjaF9fdXNlcl9yZWdfbWFzayh2b2lkKQo+ ICB7Cj4gIAlyZXR1cm4gUEVSRl9SRUdTX01BU0s7Cj4gIH0KPiAtCj4gLWNvbnN0IHN0cnVjdCBz YW1wbGVfcmVnICphcmNoX19zYW1wbGVfcmVnX21hc2tzKHZvaWQpCj4gLXsKPiAtCXJldHVybiBz YW1wbGVfcmVnX21hc2tzOwo+IC19Cj4gZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvYXJjaC9yaXNj di91dGlsL3BlcmZfcmVncy5jIGIvdG9vbHMvcGVyZi9hcmNoL3Jpc2N2L3V0aWwvcGVyZl9yZWdz LmMKPiBpbmRleCA2YjE2NjVmNDExODAuLjJjZjdhNTQxMDZlMCAxMDA2NDQKPiAtLS0gYS90b29s cy9wZXJmL2FyY2gvcmlzY3YvdXRpbC9wZXJmX3JlZ3MuYwo+ICsrKyBiL3Rvb2xzL3BlcmYvYXJj aC9yaXNjdi91dGlsL3BlcmZfcmVncy5jCj4gQEAgLTIsMTAgKzIsNiBAQAo+ICAjaW5jbHVkZSAi cGVyZl9yZWdzLmgiCj4gICNpbmNsdWRlICIuLi8uLi91dGlsL3BlcmZfcmVncy5oIgo+ICAKPiAt c3RhdGljIGNvbnN0IHN0cnVjdCBzYW1wbGVfcmVnIHNhbXBsZV9yZWdfbWFza3NbXSA9IHsKPiAt CVNNUExfUkVHX0VORAo+IC19Owo+IC0KPiAgdWludDY0X3QgYXJjaF9faW50cl9yZWdfbWFzayh2 b2lkKQo+ICB7Cj4gIAlyZXR1cm4gUEVSRl9SRUdTX01BU0s7Cj4gQEAgLTE1LDggKzExLDMgQEAg dWludDY0X3QgYXJjaF9fdXNlcl9yZWdfbWFzayh2b2lkKQo+ICB7Cj4gIAlyZXR1cm4gUEVSRl9S RUdTX01BU0s7Cj4gIH0KPiAtCj4gLWNvbnN0IHN0cnVjdCBzYW1wbGVfcmVnICphcmNoX19zYW1w bGVfcmVnX21hc2tzKHZvaWQpCj4gLXsKPiAtCXJldHVybiBzYW1wbGVfcmVnX21hc2tzOwo+IC19 Cj4gZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvYXJjaC9zMzkwL3V0aWwvcGVyZl9yZWdzLmMgYi90 b29scy9wZXJmL2FyY2gvczM5MC91dGlsL3BlcmZfcmVncy5jCj4gaW5kZXggNmIxNjY1ZjQxMTgw Li4yY2Y3YTU0MTA2ZTAgMTAwNjQ0Cj4gLS0tIGEvdG9vbHMvcGVyZi9hcmNoL3MzOTAvdXRpbC9w ZXJmX3JlZ3MuYwo+ICsrKyBiL3Rvb2xzL3BlcmYvYXJjaC9zMzkwL3V0aWwvcGVyZl9yZWdzLmMK PiBAQCAtMiwxMCArMiw2IEBACj4gICNpbmNsdWRlICJwZXJmX3JlZ3MuaCIKPiAgI2luY2x1ZGUg Ii4uLy4uL3V0aWwvcGVyZl9yZWdzLmgiCj4gIAo+IC1zdGF0aWMgY29uc3Qgc3RydWN0IHNhbXBs ZV9yZWcgc2FtcGxlX3JlZ19tYXNrc1tdID0gewo+IC0JU01QTF9SRUdfRU5ECj4gLX07Cj4gLQo+ ICB1aW50NjRfdCBhcmNoX19pbnRyX3JlZ19tYXNrKHZvaWQpCj4gIHsKPiAgCXJldHVybiBQRVJG X1JFR1NfTUFTSzsKPiBAQCAtMTUsOCArMTEsMyBAQCB1aW50NjRfdCBhcmNoX191c2VyX3JlZ19t YXNrKHZvaWQpCj4gIHsKPiAgCXJldHVybiBQRVJGX1JFR1NfTUFTSzsKPiAgfQo+IC0KPiAtY29u c3Qgc3RydWN0IHNhbXBsZV9yZWcgKmFyY2hfX3NhbXBsZV9yZWdfbWFza3Modm9pZCkKPiAtewo+ IC0JcmV0dXJuIHNhbXBsZV9yZWdfbWFza3M7Cj4gLX0KPiBkaWZmIC0tZ2l0IGEvdG9vbHMvcGVy Zi9hcmNoL3g4Ni91dGlsL3BlcmZfcmVncy5jIGIvdG9vbHMvcGVyZi9hcmNoL3g4Ni91dGlsL3Bl cmZfcmVncy5jCj4gaW5kZXggMTJmZDkzZjA0ODAyLi5hN2NhNDE1NGZkZjkgMTAwNjQ0Cj4gLS0t IGEvdG9vbHMvcGVyZi9hcmNoL3g4Ni91dGlsL3BlcmZfcmVncy5jCj4gKysrIGIvdG9vbHMvcGVy Zi9hcmNoL3g4Ni91dGlsL3BlcmZfcmVncy5jCj4gQEAgLTEzLDQ4ICsxMyw2IEBACj4gICNpbmNs dWRlICIuLi8uLi8uLi91dGlsL3BtdS5oIgo+ICAjaW5jbHVkZSAiLi4vLi4vLi4vdXRpbC9wbXVz LmgiCj4gIAo+IC1zdGF0aWMgY29uc3Qgc3RydWN0IHNhbXBsZV9yZWcgc2FtcGxlX3JlZ19tYXNr c1tdID0gewo+IC0JU01QTF9SRUcoQVgsIFBFUkZfUkVHX1g4Nl9BWCksCj4gLQlTTVBMX1JFRyhC WCwgUEVSRl9SRUdfWDg2X0JYKSwKPiAtCVNNUExfUkVHKENYLCBQRVJGX1JFR19YODZfQ1gpLAo+ IC0JU01QTF9SRUcoRFgsIFBFUkZfUkVHX1g4Nl9EWCksCj4gLQlTTVBMX1JFRyhTSSwgUEVSRl9S RUdfWDg2X1NJKSwKPiAtCVNNUExfUkVHKERJLCBQRVJGX1JFR19YODZfREkpLAo+IC0JU01QTF9S RUcoQlAsIFBFUkZfUkVHX1g4Nl9CUCksCj4gLQlTTVBMX1JFRyhTUCwgUEVSRl9SRUdfWDg2X1NQ KSwKPiAtCVNNUExfUkVHKElQLCBQRVJGX1JFR19YODZfSVApLAo+IC0JU01QTF9SRUcoRkxBR1Ms IFBFUkZfUkVHX1g4Nl9GTEFHUyksCj4gLQlTTVBMX1JFRyhDUywgUEVSRl9SRUdfWDg2X0NTKSwK PiAtCVNNUExfUkVHKFNTLCBQRVJGX1JFR19YODZfU1MpLAo+IC0jaWZkZWYgSEFWRV9BUkNIX1g4 Nl82NF9TVVBQT1JUCj4gLQlTTVBMX1JFRyhSOCwgUEVSRl9SRUdfWDg2X1I4KSwKPiAtCVNNUExf UkVHKFI5LCBQRVJGX1JFR19YODZfUjkpLAo+IC0JU01QTF9SRUcoUjEwLCBQRVJGX1JFR19YODZf UjEwKSwKPiAtCVNNUExfUkVHKFIxMSwgUEVSRl9SRUdfWDg2X1IxMSksCj4gLQlTTVBMX1JFRyhS MTIsIFBFUkZfUkVHX1g4Nl9SMTIpLAo+IC0JU01QTF9SRUcoUjEzLCBQRVJGX1JFR19YODZfUjEz KSwKPiAtCVNNUExfUkVHKFIxNCwgUEVSRl9SRUdfWDg2X1IxNCksCj4gLQlTTVBMX1JFRyhSMTUs IFBFUkZfUkVHX1g4Nl9SMTUpLAo+IC0jZW5kaWYKPiAtCVNNUExfUkVHMihYTU0wLCBQRVJGX1JF R19YODZfWE1NMCksCj4gLQlTTVBMX1JFRzIoWE1NMSwgUEVSRl9SRUdfWDg2X1hNTTEpLAo+IC0J U01QTF9SRUcyKFhNTTIsIFBFUkZfUkVHX1g4Nl9YTU0yKSwKPiAtCVNNUExfUkVHMihYTU0zLCBQ RVJGX1JFR19YODZfWE1NMyksCj4gLQlTTVBMX1JFRzIoWE1NNCwgUEVSRl9SRUdfWDg2X1hNTTQp LAo+IC0JU01QTF9SRUcyKFhNTTUsIFBFUkZfUkVHX1g4Nl9YTU01KSwKPiAtCVNNUExfUkVHMihY TU02LCBQRVJGX1JFR19YODZfWE1NNiksCj4gLQlTTVBMX1JFRzIoWE1NNywgUEVSRl9SRUdfWDg2 X1hNTTcpLAo+IC0JU01QTF9SRUcyKFhNTTgsIFBFUkZfUkVHX1g4Nl9YTU04KSwKPiAtCVNNUExf UkVHMihYTU05LCBQRVJGX1JFR19YODZfWE1NOSksCj4gLQlTTVBMX1JFRzIoWE1NMTAsIFBFUkZf UkVHX1g4Nl9YTU0xMCksCj4gLQlTTVBMX1JFRzIoWE1NMTEsIFBFUkZfUkVHX1g4Nl9YTU0xMSks Cj4gLQlTTVBMX1JFRzIoWE1NMTIsIFBFUkZfUkVHX1g4Nl9YTU0xMiksCj4gLQlTTVBMX1JFRzIo WE1NMTMsIFBFUkZfUkVHX1g4Nl9YTU0xMyksCj4gLQlTTVBMX1JFRzIoWE1NMTQsIFBFUkZfUkVH X1g4Nl9YTU0xNCksCj4gLQlTTVBMX1JFRzIoWE1NMTUsIFBFUkZfUkVHX1g4Nl9YTU0xNSksCj4g LQlTTVBMX1JFR19FTkQKPiAtfTsKPiAtCj4gIHN0cnVjdCBzZHRfbmFtZV9yZWcgewo+ICAJY29u c3QgY2hhciAqc2R0X25hbWU7Cj4gIAljb25zdCBjaGFyICp1cHJvYmVfbmFtZTsKPiBAQCAtMjc2 LDExICsyMzQsNiBAQCBpbnQgYXJjaF9zZHRfYXJnX3BhcnNlX29wKGNoYXIgKm9sZF9vcCwgY2hh ciAqKm5ld19vcCkKPiAgCXJldHVybiBTRFRfQVJHX1ZBTElEOwo+ICB9Cj4gIAo+IC1jb25zdCBz dHJ1Y3Qgc2FtcGxlX3JlZyAqYXJjaF9fc2FtcGxlX3JlZ19tYXNrcyh2b2lkKQo+IC17Cj4gLQly ZXR1cm4gc2FtcGxlX3JlZ19tYXNrczsKPiAtfQo+IC0KPiAgdWludDY0X3QgYXJjaF9faW50cl9y ZWdfbWFzayh2b2lkKQo+ICB7Cj4gIAlzdHJ1Y3QgcGVyZl9ldmVudF9hdHRyIGF0dHIgPSB7Cj4g ZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvdXRpbC9hcm02NC1mcmFtZS1wb2ludGVyLXVud2luZC1z dXBwb3J0LmMgYi90b29scy9wZXJmL3V0aWwvYXJtNjQtZnJhbWUtcG9pbnRlci11bndpbmQtc3Vw cG9ydC5jCj4gaW5kZXggOTU4YWZlOGI4MjFlLi44NThjZTJiMDE4MTIgMTAwNjQ0Cj4gLS0tIGEv dG9vbHMvcGVyZi91dGlsL2FybTY0LWZyYW1lLXBvaW50ZXItdW53aW5kLXN1cHBvcnQuYwo+ICsr KyBiL3Rvb2xzL3BlcmYvdXRpbC9hcm02NC1mcmFtZS1wb2ludGVyLXVud2luZC1zdXBwb3J0LmMK PiBAQCAtMiw3ICsyLDYgQEAKPiAgI2luY2x1ZGUgImFybTY0LWZyYW1lLXBvaW50ZXItdW53aW5k LXN1cHBvcnQuaCIKPiAgI2luY2x1ZGUgImNhbGxjaGFpbi5oIgo+ICAjaW5jbHVkZSAiZXZlbnQu aCIKPiAtI2luY2x1ZGUgInBlcmZfcmVncy5oIiAvLyBTTVBMX1JFR19NQVNLCj4gICNpbmNsdWRl ICJ1bndpbmQuaCIKPiAgI2luY2x1ZGUgPHN0cmluZy5oPgo+ICAKPiBAQCAtMTUsNiArMTQsOCBA QCBzdHJ1Y3QgZW50cmllcyB7Cj4gIAlzaXplX3QgbGVuZ3RoOwo+ICB9Owo+ICAKPiArI2RlZmlu ZSBTTVBMX1JFR19NQVNLKGIpICgxVUxMIDw8IChiKSkKPiArCj4gIHN0YXRpYyBib29sIGdldF9s ZWFmX2ZyYW1lX2NhbGxlcl9lbmFibGVkKHN0cnVjdCBwZXJmX3NhbXBsZSAqc2FtcGxlKQo+ICB7 Cj4gIAlzdHJ1Y3QgcmVnc19kdW1wICpyZWdzOwo+IGRpZmYgLS1naXQgYS90b29scy9wZXJmL3V0 aWwvcGFyc2UtcmVncy1vcHRpb25zLmMgYi90b29scy9wZXJmL3V0aWwvcGFyc2UtcmVncy1vcHRp b25zLmMKPiBpbmRleCBjZGExYzYyMDk2OGUuLmMwZDBlZjlmZDQ5NSAxMDA2NDQKPiAtLS0gYS90 b29scy9wZXJmL3V0aWwvcGFyc2UtcmVncy1vcHRpb25zLmMKPiArKysgYi90b29scy9wZXJmL3V0 aWwvcGFyc2UtcmVncy1vcHRpb25zLmMKPiBAQCAtNSwxNSArNSw1NCBAQAo+ICAjaW5jbHVkZSA8 c3RyaW5nLmg+Cj4gICNpbmNsdWRlIDxzdGRpby5oPgo+ICAjaW5jbHVkZSAidXRpbC9kZWJ1Zy5o Igo+ICsjaW5jbHVkZSA8ZHdhcmYtcmVncy5oPgo+ICAjaW5jbHVkZSA8c3ViY21kL3BhcnNlLW9w dGlvbnMuaD4KPiAgI2luY2x1ZGUgInV0aWwvcGVyZl9yZWdzLmgiCj4gICNpbmNsdWRlICJ1dGls L3BhcnNlLXJlZ3Mtb3B0aW9ucy5oIgo+ICAKPiArc3RhdGljIHZvaWQgbGlzdF9wZXJmX3JlZ3Mo RklMRSAqZnAsIHVpbnQ2NF90IG1hc2spCj4gK3sKPiArCWNvbnN0IGNoYXIgKmxhc3RfbmFtZSA9 IE5VTEw7Cj4gKwo+ICsJZnByaW50ZihmcCwgImF2YWlsYWJsZSByZWdpc3RlcnM6ICIpOwo+ICsJ Zm9yIChpbnQgcmVnID0gMDsgcmVnIDwgNjQ7IHJlZysrKSB7Cj4gKwkJY29uc3QgY2hhciAqbmFt ZTsKPiArCj4gKwkJaWYgKCgoMVVMTCA8PCByZWcpICYgbWFzaykgPT0gMCkKPiArCQkJY29udGlu dWU7Cj4gKwo+ICsJCW5hbWUgPSBwZXJmX3JlZ19uYW1lKHJlZywgRU1fSE9TVCk7Cj4gKwkJaWYg KG5hbWUgJiYgKCFsYXN0X25hbWUgfHwgc3RyY21wKGxhc3RfbmFtZSwgbmFtZSkpKQo+ICsJCQlm cHJpbnRmKGZwLCAiJXMlcyIsIHJlZyA+IDAgPyAiICIgOiAiIiwgbmFtZSk7Cj4gKwkJbGFzdF9u YW1lID0gbmFtZTsKPiArCX0KPiArCWZwdXRjKCdcbicsIGZwKTsKPiArfQo+ICsKPiArc3RhdGlj IHVpbnQ2NF90IG5hbWVfdG9fcGVyZl9yZWdfbWFzayhjb25zdCBjaGFyICp0b19tYXRjaCwgdWlu dDY0X3QgbWFzaykKPiArewo+ICsJdWludDY0X3QgcmVnX21hc2sgPSAwOwo+ICsKPiArCWZvciAo aW50IHJlZyA9IDA7IHJlZyA8IDY0OyByZWcrKykgewo+ICsJCWNvbnN0IGNoYXIgKm5hbWU7Cj4g Kwo+ICsJCWlmICgoKDFVTEwgPDwgcmVnKSAmIG1hc2spID09IDApCj4gKwkJCWNvbnRpbnVlOwo+ ICsKPiArCQluYW1lID0gcGVyZl9yZWdfbmFtZShyZWcsIEVNX0hPU1QpOwo+ICsJCWlmICghbmFt ZSkKPiArCQkJY29udGludWU7Cj4gKwo+ICsJCWlmICghc3RyY2FzZWNtcCh0b19tYXRjaCwgbmFt ZSkpCj4gKwkJCXJlZ19tYXNrIHw9IDFVTEwgPDwgcmVnOwo+ICsJfQo+ICsJcmV0dXJuIHJlZ19t YXNrOwo+ICt9Cj4gKwo+ICBzdGF0aWMgaW50Cj4gIF9fcGFyc2VfcmVncyhjb25zdCBzdHJ1Y3Qg b3B0aW9uICpvcHQsIGNvbnN0IGNoYXIgKnN0ciwgaW50IHVuc2V0LCBib29sIGludHIpCj4gIHsK PiAgCXVpbnQ2NF90ICptb2RlID0gKHVpbnQ2NF90ICopb3B0LT52YWx1ZTsKPiAtCWNvbnN0IHN0 cnVjdCBzYW1wbGVfcmVnICpyID0gTlVMTDsKPiAgCWNoYXIgKnMsICpvcyA9IE5VTEwsICpwOwo+ ICAJaW50IHJldCA9IC0xOwo+ICAJdWludDY0X3QgbWFzazsKPiBAQCAtMjcsNTAgKzY2LDQxIEBA IF9fcGFyc2VfcmVncyhjb25zdCBzdHJ1Y3Qgb3B0aW9uICpvcHQsIGNvbnN0IGNoYXIgKnN0ciwg aW50IHVuc2V0LCBib29sIGludHIpCj4gIAlpZiAoKm1vZGUpCj4gIAkJcmV0dXJuIC0xOwo+ICAK PiAtCWlmIChpbnRyKQo+IC0JCW1hc2sgPSBhcmNoX19pbnRyX3JlZ19tYXNrKCk7Cj4gLQllbHNl Cj4gLQkJbWFzayA9IGFyY2hfX3VzZXJfcmVnX21hc2soKTsKPiAtCj4gIAkvKiBzdHIgbWF5IGJl IE5VTEwgaW4gY2FzZSBubyBhcmcgaXMgcGFzc2VkIHRvIC1JICovCj4gLQlpZiAoc3RyKSB7Cj4g LQkJLyogYmVjYXVzZSBzdHIgaXMgcmVhZC1vbmx5ICovCj4gLQkJcyA9IG9zID0gc3RyZHVwKHN0 cik7Cj4gLQkJaWYgKCFzKQo+IC0JCQlyZXR1cm4gLTE7Cj4gLQo+IC0JCWZvciAoOzspIHsKPiAt CQkJcCA9IHN0cmNocihzLCAnLCcpOwo+IC0JCQlpZiAocCkKPiAtCQkJCSpwID0gJ1wwJzsKPiAt Cj4gLQkJCWlmICghc3RyY21wKHMsICI/IikpIHsKPiAtCQkJCWZwcmludGYoc3RkZXJyLCAiYXZh aWxhYmxlIHJlZ2lzdGVyczogIik7Cj4gLQkJCQlmb3IgKHIgPSBhcmNoX19zYW1wbGVfcmVnX21h c2tzKCk7IHItPm5hbWU7IHIrKykgewo+IC0JCQkJCWlmIChyLT5tYXNrICYgbWFzaykKPiAtCQkJ CQkJZnByaW50ZihzdGRlcnIsICIlcyAiLCByLT5uYW1lKTsKPiAtCQkJCX0KPiAtCQkJCWZwdXRj KCdcbicsIHN0ZGVycik7Cj4gLQkJCQkvKiBqdXN0IHByaW50aW5nIGF2YWlsYWJsZSByZWdzICov Cj4gLQkJCQlnb3RvIGVycm9yOwo+IC0JCQl9Cj4gLQkJCWZvciAociA9IGFyY2hfX3NhbXBsZV9y ZWdfbWFza3MoKTsgci0+bmFtZTsgcisrKSB7Cj4gLQkJCQlpZiAoKHItPm1hc2sgJiBtYXNrKSAm JiAhc3RyY2FzZWNtcChzLCByLT5uYW1lKSkKPiAtCQkJCQlicmVhazsKPiAtCQkJfQo+IC0JCQlp ZiAoIXIgfHwgIXItPm5hbWUpIHsKPiAtCQkJCXVpX193YXJuaW5nKCJVbmtub3duIHJlZ2lzdGVy IFwiJXNcIiwgY2hlY2sgbWFuIHBhZ2Ugb3IgcnVuIFwicGVyZiByZWNvcmQgJXM/XCJcbiIsCj4g LQkJCQkJICAgIHMsIGludHIgPyAiLUkiIDogIi0tdXNlci1yZWdzPSIpOwo+IC0JCQkJZ290byBl cnJvcjsKPiAtCQkJfQo+IC0KPiAtCQkJKm1vZGUgfD0gci0+bWFzazsKPiAtCj4gLQkJCWlmICgh cCkKPiAtCQkJCWJyZWFrOwo+IC0KPiAtCQkJcyA9IHAgKyAxOwo+ICsJaWYgKCFzdHIpCj4gKwkJ cmV0dXJuIC0xOwoKSnVzdCBmb3VuZCB0aGUgYWJvdmUgY2hhbmdlIHdvdWxkIGJyZWFrIHRoZSBv cHRpb24gIi1JIiBvciAiLS11c2VyLXJlZ3MiCndoaWNoIGludGVuZHMgdG8gc2FtcGxlIGFsbCBz dXBwb3J0ZWQgZ2VuZXJhbCBwdXJwb3NlIHJlZ2lzdGVycywgZS5nLiwKCiQgc3VkbyAuL3BlcmYg cmVjb3JkIC1lIGN5Y2xlczpwIC1JIC0tIHRydWUKCsKgVXNhZ2U6IHBlcmYgcmVjb3JkIFs8b3B0 aW9ucz5dIFs8Y29tbWFuZD5dCsKgIMKgIG9yOiBwZXJmIHJlY29yZCBbPG9wdGlvbnM+XSAtLSA8 Y29tbWFuZD4gWzxvcHRpb25zPl0KCsKgIMKgIC1JLCAtLWludHItcmVnc1s9PGFueSByZWdpc3Rl cj5dCsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHNhbXBsZSBzZWxlY3Rl ZCBtYWNoaW5lIHJlZ2lzdGVycyBvbiBpbnRlcnJ1cHQsCnVzZSAnLUk/JyB0byBsaXN0IHJlZ2lz dGVyIG5hbWVzCgpXZSBtYXkgbmVlZCB0aGUgYmVsb3cgY2hhbmdlcyB0byBmaXggdGhpcyBpc3N1 ZS4KCmBgYAoKZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvdXRpbC9wYXJzZS1yZWdzLW9wdGlvbnMu YwpiL3Rvb2xzL3BlcmYvdXRpbC9wYXJzZS1yZWdzLW9wdGlvbnMuYwppbmRleCBjMGQwZWY5ZmQ0 OTUuLjM3OTMyZmNkOGMwNCAxMDA2NDQKLS0tIGEvdG9vbHMvcGVyZi91dGlsL3BhcnNlLXJlZ3Mt b3B0aW9ucy5jCisrKyBiL3Rvb2xzL3BlcmYvdXRpbC9wYXJzZS1yZWdzLW9wdGlvbnMuYwpAQCAt NjYsMTIgKzY2LDE0IEBAIF9fcGFyc2VfcmVncyhjb25zdCBzdHJ1Y3Qgb3B0aW9uICpvcHQsIGNv bnN0IGNoYXIgKnN0ciwKaW50IHVuc2V0LCBib29sIGludHIpCsKgIMKgIMKgIMKgIGlmICgqbW9k ZSkKwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgcmV0dXJuIC0xOwoKLcKgIMKgIMKgIMKgLyogc3Ry IG1heSBiZSBOVUxMIGluIGNhc2Ugbm8gYXJnIGlzIHBhc3NlZCB0byAtSSAqLwotwqAgwqAgwqAg wqBpZiAoIXN0cikKLcKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgcmV0dXJuIC0xOwotCsKgIMKgIMKg IMKgIG1hc2sgPSBpbnRyID8gYXJjaF9faW50cl9yZWdfbWFzaygpIDogYXJjaF9fdXNlcl9yZWdf bWFzaygpOwoKK8KgIMKgIMKgIMKgLyogc3RyIG1heSBiZSBOVUxMIGluIGNhc2Ugbm8gYXJnIGlz IHBhc3NlZCB0byAtSSAqLworwqAgwqAgwqAgwqBpZiAoIXN0cikgeworwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAqbW9kZSA9IG1hc2s7CivCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoHJldHVybiAwOwor wqAgwqAgwqAgwqB9CisKwqAgwqAgwqAgwqAgLyogYmVjYXVzZSBzdHIgaXMgcmVhZC1vbmx5ICov CsKgIMKgIMKgIMKgIHMgPSBvcyA9IHN0cmR1cChzdHIpOwrCoCDCoCDCoCDCoCBpZiAoIXMpCkBA IC0xMDQsOSArMTA2LDYgQEAgX19wYXJzZV9yZWdzKGNvbnN0IHN0cnVjdCBvcHRpb24gKm9wdCwg Y29uc3QgY2hhciAqc3RyLAppbnQgdW5zZXQsIGJvb2wgaW50cikKwqAgwqAgwqAgwqAgfQrCoCDC oCDCoCDCoCByZXQgPSAwOwoKLcKgIMKgIMKgIMKgLyogZGVmYXVsdCB0byBhbGwgcG9zc2libGUg cmVncyAqLwotwqAgwqAgwqAgwqBpZiAoKm1vZGUgPT0gMCkKLcKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgKm1vZGUgPSBtYXNrOwrCoGVycm9yOgrCoCDCoCDCoCDCoCBmcmVlKG9zKTsKwqAgwqAgwqAg wqAgcmV0dXJuIHJldDsKCmBgYAoKV2l0aCBhYm92ZSBjaGFuZ2UsIHRoZSAiLUkiIG9wdGlvbiBj YW4gYmUgc2FtcGxlZCBhcyBleHBlY3QuCgokIHN1ZG8gLi9wZXJmIHJlY29yZCAtZSBjeWNsZXM6 cCAtSSAtLSB0cnVlClsgcGVyZiByZWNvcmQ6IFdva2VuIHVwIDEgdGltZXMgdG8gd3JpdGUgZGF0 YSBdClsgcGVyZiByZWNvcmQ6IENhcHR1cmVkIGFuZCB3cm90ZSAwLjAyOSBNQiBwZXJmLmRhdGEg KDQgc2FtcGxlcykgXQoKCj4gKwo+ICsJbWFzayA9IGludHIgPyBhcmNoX19pbnRyX3JlZ19tYXNr KCkgOiBhcmNoX191c2VyX3JlZ19tYXNrKCk7Cj4gKwo+ICsJLyogYmVjYXVzZSBzdHIgaXMgcmVh ZC1vbmx5ICovCj4gKwlzID0gb3MgPSBzdHJkdXAoc3RyKTsKPiArCWlmICghcykKPiArCQlyZXR1 cm4gLTE7Cj4gKwo+ICsJZm9yICg7Oykgewo+ICsJCXVpbnQ2NF90IHJlZ19tYXNrOwo+ICsKPiAr CQlwID0gc3RyY2hyKHMsICcsJyk7Cj4gKwkJaWYgKHApCj4gKwkJCSpwID0gJ1wwJzsKPiArCj4g KwkJaWYgKCFzdHJjbXAocywgIj8iKSkgewo+ICsJCQlsaXN0X3BlcmZfcmVncyhzdGRlcnIsIG1h c2spOwo+ICsJCQlnb3RvIGVycm9yOwo+ICsJCX0KPiArCj4gKwkJcmVnX21hc2sgPSBuYW1lX3Rv X3BlcmZfcmVnX21hc2socywgbWFzayk7Cj4gKwkJaWYgKHJlZ19tYXNrID09IDApIHsKPiArCQkJ dWlfX3dhcm5pbmcoIlVua25vd24gcmVnaXN0ZXIgXCIlc1wiLCBjaGVjayBtYW4gcGFnZSBvciBy dW4gXCJwZXJmIHJlY29yZCAlcz9cIlxuIiwKPiArCQkJCXMsIGludHIgPyAiLUkiIDogIi0tdXNl ci1yZWdzPSIpOwo+ICsJCQlnb3RvIGVycm9yOwo+ICAJCX0KPiArCQkqbW9kZSB8PSByZWdfbWFz azsKPiArCj4gKwkJaWYgKCFwKQo+ICsJCQlicmVhazsKPiArCj4gKwkJcyA9IHAgKyAxOwo+ICAJ fQo+ICAJcmV0ID0gMDsKPiAgCj4gZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvdXRpbC9wZXJmX3Jl Z3MuYyBiL3Rvb2xzL3BlcmYvdXRpbC9wZXJmX3JlZ3MuYwo+IGluZGV4IGI1OGQ1OWI4NGZiMS4u ZWM2MDJkYTFhZWI2IDEwMDY0NAo+IC0tLSBhL3Rvb2xzL3BlcmYvdXRpbC9wZXJmX3JlZ3MuYwo+ ICsrKyBiL3Rvb2xzL3BlcmYvdXRpbC9wZXJmX3JlZ3MuYwo+IEBAIC0yMiwxNSArMjIsNiBAQCB1 aW50NjRfdCBfX3dlYWsgYXJjaF9fdXNlcl9yZWdfbWFzayh2b2lkKQo+ICAJcmV0dXJuIDA7Cj4g IH0KPiAgCj4gLXN0YXRpYyBjb25zdCBzdHJ1Y3Qgc2FtcGxlX3JlZyBzYW1wbGVfcmVnX21hc2tz W10gPSB7Cj4gLQlTTVBMX1JFR19FTkQKPiAtfTsKPiAtCj4gLWNvbnN0IHN0cnVjdCBzYW1wbGVf cmVnICogX193ZWFrIGFyY2hfX3NhbXBsZV9yZWdfbWFza3Modm9pZCkKPiAtewo+IC0JcmV0dXJu IHNhbXBsZV9yZWdfbWFza3M7Cj4gLX0KPiAtCj4gIGNvbnN0IGNoYXIgKnBlcmZfcmVnX25hbWUo aW50IGlkLCB1aW50MTZfdCBlX21hY2hpbmUpCj4gIHsKPiAgCWNvbnN0IGNoYXIgKnJlZ19uYW1l ID0gTlVMTDsKPiBkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi91dGlsL3BlcmZfcmVncy5oIGIvdG9v bHMvcGVyZi91dGlsL3BlcmZfcmVncy5oCj4gaW5kZXggN2JmYzZhMzRjMDJiLi4yYzJhOGRlNjkx MmQgMTAwNjQ0Cj4gLS0tIGEvdG9vbHMvcGVyZi91dGlsL3BlcmZfcmVncy5oCj4gKysrIGIvdG9v bHMvcGVyZi91dGlsL3BlcmZfcmVncy5oCj4gQEAgLTcsMTcgKzcsNiBAQAo+ICAKPiAgc3RydWN0 IHJlZ3NfZHVtcDsKPiAgCj4gLXN0cnVjdCBzYW1wbGVfcmVnIHsKPiAtCWNvbnN0IGNoYXIgKm5h bWU7Cj4gLQl1aW50NjRfdCBtYXNrOwo+IC19Owo+IC0KPiAtI2RlZmluZSBTTVBMX1JFR19NQVNL KGIpICgxVUxMIDw8IChiKSkKPiAtI2RlZmluZSBTTVBMX1JFRyhuLCBiKSB7IC5uYW1lID0gI24s IC5tYXNrID0gU01QTF9SRUdfTUFTSyhiKSB9Cj4gLSNkZWZpbmUgU01QTF9SRUcyX01BU0soYikg KDNVTEwgPDwgKGIpKQo+IC0jZGVmaW5lIFNNUExfUkVHMihuLCBiKSB7IC5uYW1lID0gI24sIC5t YXNrID0gU01QTF9SRUcyX01BU0soYikgfQo+IC0jZGVmaW5lIFNNUExfUkVHX0VORCB7IC5uYW1l ID0gTlVMTCB9Cj4gLQo+ICBlbnVtIHsKPiAgCVNEVF9BUkdfVkFMSUQgPSAwLAo+ICAJU0RUX0FS R19TS0lQLAo+IEBAIC0yNiw3ICsxNSw2IEBAIGVudW0gewo+ICBpbnQgYXJjaF9zZHRfYXJnX3Bh cnNlX29wKGNoYXIgKm9sZF9vcCwgY2hhciAqKm5ld19vcCk7Cj4gIHVpbnQ2NF90IGFyY2hfX2lu dHJfcmVnX21hc2sodm9pZCk7Cj4gIHVpbnQ2NF90IGFyY2hfX3VzZXJfcmVnX21hc2sodm9pZCk7 Cj4gLWNvbnN0IHN0cnVjdCBzYW1wbGVfcmVnICphcmNoX19zYW1wbGVfcmVnX21hc2tzKHZvaWQp Owo+ICAKPiAgY29uc3QgY2hhciAqcGVyZl9yZWdfbmFtZShpbnQgaWQsIHVpbnQxNl90IGVfbWFj aGluZSk7Cj4gIGludCBwZXJmX3JlZ192YWx1ZSh1NjQgKnZhbHAsIHN0cnVjdCByZWdzX2R1bXAg KnJlZ3MsIGludCBpZCk7CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpsaW51eC1yaXNjdiBtYWlsaW5nIGxpc3QKbGludXgtcmlzY3ZAbGlzdHMuaW5mcmFk ZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4 LXJpc2N2Cg==