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 C3113C636CC for ; Sun, 5 Feb 2023 14:04:57 +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:MIME-Version:Message-ID:References: In-Reply-To:Subject:CC:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=cSjv5/7uVwQxW7L+vJ/zP0z8OJQQWsMeLhEVWDnZ5tg=; b=eFLityI+61P3eO GHjyFV9UzAzBC4VAREj8Aty2tKjio2pfVAnW9R6BcSHCP6pXkFbaMHe6ujKVECbD9mbybke+/JUnw sTuFIj4UiS1SoziVZUN5Iy4O/Fy8197W82GuXgtYfFXX2y6zQ+39CZ8A5wuPYLVTd+sd5DHkmEKVw M/9kmzdPgo+0rEH8aP+tiZa8srzIRKFp3NfQU+A82fC4AQQhvmrzzMEm3nPU/Q3LpqKgjOZw600UQ gBXb1c/5ti5oBlc4KzfjTDsKsKwmhRWRZV+Li4/yi1m0GBmzse8grO/wbA03qI7hUWpt77+I8OPIM R0rXtwr1HsnGXjjXof9w==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1pOfdQ-006O0t-04; Sun, 05 Feb 2023 14:04:48 +0000 Received: from dfw.source.kernel.org ([2604:1380:4641:c500::1]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1pOfdK-006O09-Vr for linux-riscv@lists.infradead.org; Sun, 05 Feb 2023 14:04:46 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 3692E60BA5; Sun, 5 Feb 2023 14:04:42 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id C0A88C433EF; Sun, 5 Feb 2023 14:04:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1675605881; bh=qeBlf/QHuK6X7DN7GHboVr8pp0QLqSPWX3mq2nAP39c=; h=Date:From:To:CC:Subject:In-Reply-To:References:From; b=dgNGVYsvpKSib2jIbsXKA/bIo58a/IVBj5rxze7wAK889lv43welK6zUFTsp092VP VZNvyth8ejZC8WtNNhXYy3c6NqPna50au0kNEfBeE6z5N1j+GrvQ9GmX4k1jg9ILrk P6GnIc80ycWqGG9X6K0qpJ18956W4CDu27Zef/S2r6JYysEdfy856wH8zQn+RtsyIN B8KaQtq0RzwwKD7AU/Y/ns5RXz8plo/OsYbE7X6r/RY0hG+NjnQLuAvSg6S6djpvUw AWccD8VdTnKWcGUVcODdXf0C3Rcj9CoCc0AJkcG8Bimksm34mtynnlfeWgcHzPgrks d0WAuLwBUuJWg== Date: Sun, 05 Feb 2023 15:04:37 +0100 From: Conor Dooley To: Guo Ren CC: arnd@arndb.de, palmer@rivosinc.com, tglx@linutronix.de, peterz@infradead.org, luto@kernel.org, conor.dooley@microchip.com, heiko@sntech.de, jszhang@kernel.org, lazyparser@gmail.com, falcon@tinylab.org, chenhuacai@kernel.org, apatel@ventanamicro.com, atishp@atishpatra.org, mark.rutland@arm.com, ben@decadent.org.uk, bjorn@kernel.org, miguel.ojeda.sandonis@gmail.com, linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org, Guo Ren , =?ISO-8859-1?Q?Bj=F6rn_T=F6pel?= , Yipeng Zou Subject: Re: [PATCH -next V16 4/7] riscv: entry: Convert to generic entry User-Agent: K-9 Mail for Android In-Reply-To: References: <20230204070213.753369-1-guoren@kernel.org> <20230204070213.753369-5-guoren@kernel.org> Message-ID: MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230205_060443_174848_044949F7 X-CRM114-Status: GOOD ( 28.37 ) 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 CgpPbiA1IEZlYnJ1YXJ5IDIwMjMgMTQ6NTY6MDEgR01UKzAxOjAwLCBHdW8gUmVuIDxndW9yZW5A a2VybmVsLm9yZz4gd3JvdGU6Cj5PbiBTdW4sIEZlYiA1LCAyMDIzIGF0IDY6NDMgUE0gQ29ub3Ig RG9vbGV5IDxjb25vckBrZXJuZWwub3JnPiB3cm90ZToKPj4KPj4gSGV5IEd1byBSZW4sCj4+Cj4+ IE9uIDQgRmVicnVhcnkgMjAyMyAwODowMjoxMCBHTVQrMDE6MDAsIGd1b3JlbkBrZXJuZWwub3Jn IHdyb3RlOgo+PiA+RnJvbTogR3VvIFJlbiA8Z3VvcmVuQGxpbnV4LmFsaWJhYmEuY29tPgo+PiA+ Cj4+ID5UaGlzIHBhdGNoIGNvbnZlcnRzIHJpc2N2IHRvIHVzZSB0aGUgZ2VuZXJpYyBlbnRyeSBp bmZyYXN0cnVjdHVyZSBmcm9tCj4+ID5rZXJuZWwvZW50cnkvKi4gVGhlIGdlbmVyaWMgZW50cnkg bWFrZXMgbWFpbnRhaW5lcnMnIHdvcmsgZWFzaWVyIGFuZAo+PiA+Y29kZXMgbW9yZSBlbGVnYW50 LiBIZXJlIGFyZSB0aGUgY2hhbmdlczoKPj4gPgo+PiA+IC0gTW9yZSBjbGVhciBlbnRyeS5TIHdp dGggaGFuZGxlX2V4Y2VwdGlvbiBhbmQgcmV0X2Zyb21fZXhjZXB0aW9uCj4+ID4gLSBHZXQgcmlk IG9mIGNvbXBsZXggY3VzdG9tIHNpZ25hbCBpbXBsZW1lbnRhdGlvbgo+PiA+IC0gTW92ZSBzeXNj YWxsIHByb2NlZHVyZSBmcm9tIGFzc2VtYmx5IHRvIEMsIHdoaWNoIGlzIG11Y2ggbW9yZQo+PiA+ ICAgcmVhZGFibGUuCj4+ID4gLSBDb25uZWN0IHJldF9mcm9tX2ZvcmsgJiByZXRfZnJvbV9rZXJu ZWxfdGhyZWFkIHRvIGdlbmVyaWMgZW50cnkuCj4+ID4gLSBXcmFwIHdpdGggaXJxZW50cnlfZW50 ZXIvZXhpdCBhbmQgc3lzY2FsbF9lbnRlci9leGl0X2Zyb21fdXNlcl9tb2RlCj4+ID4gLSBVc2Ug dGhlIHN0YW5kYXJkIHByZWVtcHRpb24gY29kZSBpbnN0ZWFkIG9mIGN1c3RvbQo+PiA+Cj4+ID5T dWdnZXN0ZWQtYnk6IEh1YWNhaSBDaGVuIDxjaGVuaHVhY2FpQGtlcm5lbC5vcmc+Cj4+ID5SZXZp ZXdlZC1ieTogQmrDtnJuIFTDtnBlbCA8Ympvcm5Acml2b3NpbmMuY29tPgo+PiA+VGVzdGVkLWJ5 OiBZaXBlbmcgWm91IDx6b3V5aXBlbmdAaHVhd2VpLmNvbT4KPj4gPlRlc3RlZC1ieTogSmlzaGVu ZyBaaGFuZyA8anN6aGFuZ0BrZXJuZWwub3JnPgo+PiA+U2lnbmVkLW9mZi1ieTogR3VvIFJlbiA8 Z3VvcmVuQGxpbnV4LmFsaWJhYmEuY29tPgo+PiA+U2lnbmVkLW9mZi1ieTogR3VvIFJlbiA8Z3Vv cmVuQGtlcm5lbC5vcmc+Cj4+ID5DYzogQmVuIEh1dGNoaW5ncyA8YmVuQGRlY2FkZW50Lm9yZy51 az4KPj4gPi0tLQo+Pgo+PiBHb3Qgc29tZSBuZXcgZXJyb3JzIGFkZGVkIGJ5IHRoaXMgcGF0Y2g6 Cj4+IGh0dHBzOi8vZ2lzdC5naXRodWIuY29tL2Nvbm9yLXB3Ym90LzNiMzAwMDUwYTdhNGExOTdi Y2E4MDk5MzU1ODRkODA5Cj4+Cj4+IFVuZm9ydHVuYXRlbHkgSSdtIGF3YXkgZnJvbSBhIGNvbXB1 dGVyIGF0IEZPU0RFTSwgc28gSSBoYXZlbid0IGRvbmUgYW55IGludmVzdGlnYXRpb24KPj4gb2Yg dGhlIHdhcm5pbmdzLgo+PiBTaG91bGQgYmUgcmVwcm9kdWNlYWJsZSB3aXRoIGdjYy0xMiBhbGxt b2Rjb25maWcuCj5UaHggZm9yIHJlcG9ydCwgYnV0Ogo+VGhlIHNwaW5fc2hhZG93X3N0YWNrIGlz IGZyb20gJzdlMTg2NDMzMmZiYyAoInJpc2N2OiBmaXggcmFjZSB3aGVuCj52bWFwIHN0YWNrIG92 ZXJmbG93IiknLiBOb3QgdGhpcyBwYXRjaC4KPgo+TmV3IGVycm9ycyBhZGRlZDoKPi0tLSAvdG1w L3RtcC5ueU14Z2M2Q0d4IDIwMjMtMDItMDUgMDU6MTI6NTkuOTQ5NTk1MTIwICswMDAwCj4rKysg L3RtcC90bXAuNXRkNWZJZGFIWCAyMDIzLTAyLTA1IDA1OjEyOjU5Ljk2MTU5NTExOSArMDAwMAo+ QEAgLTEwICsxMCBAQAo+LSAxIC4uL2FyY2gvcmlzY3Yva2VybmVsL3RyYXBzLmM6MjMxOjE1OiB3 YXJuaW5nOiBzeW1ib2wKPidzcGluX3NoYWRvd19zdGFjaycgd2FzIG5vdCBkZWNsYXJlZC4gU2hv dWxkIGl0IGJlIHN0YXRpYz8KPisgMSAuLi9hcmNoL3Jpc2N2L2tlcm5lbC90cmFwcy5jOjMzNTox NTogd2FybmluZzogc3ltYm9sCj4nc3Bpbl9zaGFkb3dfc3RhY2snIHdhcyBub3QgZGVjbGFyZWQu IFNob3VsZCBpdCBiZSBzdGF0aWM/Cj5AQCAtOTEwOSArOTEwOSBAQAo+LSAzNyAuLi9pbmNsdWRl L2xpbnV4L2ZvcnRpZnktc3RyaW5nLmg6NTIyOjI1OiB3YXJuaW5nOiBjYWxsIHRvCj4nX19yZWFk X292ZXJmbG93Ml9maWVsZCcgZGVjbGFyZWQgd2l0aCBhdHRyaWJ1dGUgd2FybmluZzogZGV0ZWN0 ZWQKPnJlYWQgYmV5b25kIHNpemUgb2YgZmllbGQgKDJuZCBwYXJhbWV0ZXIpOyBtYXliZSB1c2Ug c3RydWN0X2dyb3VwKCk/Cj5bLVdhdHRyaWJ1dGUtd2FybmluZ10KPisgMzggLi4vaW5jbHVkZS9s aW51eC9mb3J0aWZ5LXN0cmluZy5oOjUyMjoyNTogd2FybmluZzogY2FsbCB0bwo+J19fcmVhZF9v dmVyZmxvdzJfZmllbGQnIGRlY2xhcmVkIHdpdGggYXR0cmlidXRlIHdhcm5pbmc6IGRldGVjdGVk Cj5yZWFkIGJleW9uZCBzaXplIG9mIGZpZWxkICgybmQgcGFyYW1ldGVyKTsgbWF5YmUgdXNlIHN0 cnVjdF9ncm91cCgpPwo+Wy1XYXR0cmlidXRlLXdhcm5pbmddCj5QZXItZmlsZSBicmVha2Rvd24K Pi0tLSAvdG1wL3RtcC5iSGlIVVZNem1aIDIwMjMtMDItMDUgMDU6MTM6MDAuMTA5NTk1MTE3ICsw MDAwCj4rKysgL3RtcC90bXAua1VrT2Q2VHJHaiAyMDIzLTAyLTA1IDA1OjEzOjAwLjI1NzU5NTEx NCArMDAwMAo+QEAgLTExOTcgKzExOTcgQEAKPi0gNjUgLi4vaW5jbHVkZS9saW51eC9mb3J0aWZ5 LXN0cmluZy5oCj4rIDY2IC4uL2luY2x1ZGUvbGludXgvZm9ydGlmeS1zdHJpbmcuaAo+Cj5TZWVt cyB0aGUgbGluZSBudW1iZXIgY2hhbmdlIHdvdWxkIGNhdXNlIHlvdXIgc2NyaXB0IHRvIHJlcG9y dCBvbGQKPmVycm9ycyBhcyBuZXcuIFNvIGl0IHdvdWxkIGJlIGJlc3QgdG8gaW1wcm92ZSB0aGUg Y2hlY2sgc2NyaXB0LCBzdWNoCj5hcyBpZ25vcmluZyB0aGUgZmlyc3QgY29sdW1uIGxpbmUgbnVt YmVyIDopCgpJIHRob3VnaHQgaXQgYWxyZWFkeSBkaWQhCkkgbWlnaHQndmUgbWVzc2VkIHVwIGlu IGEgcmVmYWN0b3Jpbmcgb2YgdGhlIHNjcmlwdC4KSSdsbCBmaXggaXQgdXAgd2hlbiBJIGdldCBo b21lIHNvLCBzb3JyeSBmb3IgdGhlIG5vaXNlIQoKPgo+Pgo+PiBUaGFua3MsCj4+IENvbm9yLgo+ Pgo+Pgo+PiA+IGFyY2gvcmlzY3YvS2NvbmZpZyAgICAgICAgICAgICAgICAgICAgICB8ICAgMSAr Cj4+ID4gYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9hc20tcHJvdG90eXBlcy5oIHwgICAyICsKPj4g PiBhcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2Nzci5oICAgICAgICAgICAgfCAgIDEgLQo+PiA+IGFy Y2gvcmlzY3YvaW5jbHVkZS9hc20vZW50cnktY29tbW9uLmggICB8ICAxMSArKwo+PiA+IGFyY2gv cmlzY3YvaW5jbHVkZS9hc20vcHRyYWNlLmggICAgICAgICB8ICAxMCArLQo+PiA+IGFyY2gvcmlz Y3YvaW5jbHVkZS9hc20vc3RhY2t0cmFjZS5oICAgICB8ICAgNSArCj4+ID4gYXJjaC9yaXNjdi9p bmNsdWRlL2FzbS9zeXNjYWxsLmggICAgICAgIHwgIDIxICsrCj4+ID4gYXJjaC9yaXNjdi9pbmNs dWRlL2FzbS90aHJlYWRfaW5mby5oICAgIHwgIDEzICstCj4+ID4gYXJjaC9yaXNjdi9rZXJuZWwv ZW50cnkuUyAgICAgICAgICAgICAgIHwgMjQyICsrKystLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiA+ IGFyY2gvcmlzY3Yva2VybmVsL2hlYWQuaCAgICAgICAgICAgICAgICB8ICAgMSAtCj4+ID4gYXJj aC9yaXNjdi9rZXJuZWwvcHRyYWNlLmMgICAgICAgICAgICAgIHwgIDQzIC0tLS0tCj4+ID4gYXJj aC9yaXNjdi9rZXJuZWwvc2lnbmFsLmMgICAgICAgICAgICAgIHwgIDI5ICstLQo+PiA+IGFyY2gv cmlzY3Yva2VybmVsL3RyYXBzLmMgICAgICAgICAgICAgICB8IDE0MCArKysrKysrKysrKystLQo+ PiA+IGFyY2gvcmlzY3YvbW0vZmF1bHQuYyAgICAgICAgICAgICAgICAgICB8ICAgNiArLQo+PiA+ IDE0IGZpbGVzIGNoYW5nZWQsIDIxMCBpbnNlcnRpb25zKCspLCAzMTUgZGVsZXRpb25zKC0pCj4+ ID4gY3JlYXRlIG1vZGUgMTAwNjQ0IGFyY2gvcmlzY3YvaW5jbHVkZS9hc20vZW50cnktY29tbW9u LmgKPj4gPgo+PiA+ZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3YvS2NvbmZpZyBiL2FyY2gvcmlzY3Yv S2NvbmZpZwo+PiA+aW5kZXggN2M4MTRmYmY5NTI3Li5jYmFjN2I0ZTNlMDYgMTAwNjQ0Cj4+ID4t LS0gYS9hcmNoL3Jpc2N2L0tjb25maWcKPj4gPisrKyBiL2FyY2gvcmlzY3YvS2NvbmZpZwo+PiA+ QEAgLTU4LDYgKzU4LDcgQEAgY29uZmlnIFJJU0NWCj4+ID4gICAgICAgc2VsZWN0IEdFTkVSSUNf QVRPTUlDNjQgaWYgITY0QklUCj4+ID4gICAgICAgc2VsZWN0IEdFTkVSSUNfQ0xPQ0tFVkVOVFNf QlJPQURDQVNUIGlmIFNNUAo+PiA+ICAgICAgIHNlbGVjdCBHRU5FUklDX0VBUkxZX0lPUkVNQVAK Pj4gPisgICAgICBzZWxlY3QgR0VORVJJQ19FTlRSWQo+PiA+ICAgICAgIHNlbGVjdCBHRU5FUklD X0dFVFRJTUVPRkRBWSBpZiBIQVZFX0dFTkVSSUNfVkRTTwo+PiA+ICAgICAgIHNlbGVjdCBHRU5F UklDX0lETEVfUE9MTF9TRVRVUAo+PiA+ICAgICAgIHNlbGVjdCBHRU5FUklDX0lPUkVNQVAgaWYg TU1VCj4+ID5kaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9hc20tcHJvdG90eXBl cy5oIGIvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9hc20tcHJvdG90eXBlcy5oCj4+ID5pbmRleCBl ZjM4NmZjZjM5MzkuLjYxYmE4ZWQ0M2Q4ZiAxMDA2NDQKPj4gPi0tLSBhL2FyY2gvcmlzY3YvaW5j bHVkZS9hc20vYXNtLXByb3RvdHlwZXMuaAo+PiA+KysrIGIvYXJjaC9yaXNjdi9pbmNsdWRlL2Fz bS9hc20tcHJvdG90eXBlcy5oCj4+ID5AQCAtMjcsNSArMjcsNyBAQCBERUNMQVJFX0RPX0VSUk9S X0lORk8oZG9fdHJhcF9icmVhayk7Cj4+ID4KPj4gPiBhc21saW5rYWdlIHVuc2lnbmVkIGxvbmcg Z2V0X292ZXJmbG93X3N0YWNrKHZvaWQpOwo+PiA+IGFzbWxpbmthZ2Ugdm9pZCBoYW5kbGVfYmFk X3N0YWNrKHN0cnVjdCBwdF9yZWdzICpyZWdzKTsKPj4gPithc21saW5rYWdlIHZvaWQgZG9fcGFn ZV9mYXVsdChzdHJ1Y3QgcHRfcmVncyAqcmVncyk7Cj4+ID4rYXNtbGlua2FnZSB2b2lkIGRvX2ly cShzdHJ1Y3QgcHRfcmVncyAqcmVncyk7Cj4+ID4KPj4gPiAjZW5kaWYgLyogX0FTTV9SSVNDVl9Q Uk9UT1RZUEVTX0ggKi8KPj4gPmRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2Nz ci5oIGIvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9jc3IuaAo+PiA+aW5kZXggMGU1NzFmNjQ4M2Q5 Li43YzJiOGNkYjdiNzcgMTAwNjQ0Cj4+ID4tLS0gYS9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2Nz ci5oCj4+ID4rKysgYi9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2Nzci5oCj4+ID5AQCAtNDAsNyAr NDAsNiBAQAo+PiA+ICNkZWZpbmUgU1JfVVhMICAgICAgICAgICAgICAgIF9BQygweDMwMDAwMDAw MCwgVUwpIC8qIFhMRU4gbWFzayBmb3IgVS1tb2RlICovCj4+ID4gI2RlZmluZSBTUl9VWExfMzIg ICAgIF9BQygweDEwMDAwMDAwMCwgVUwpIC8qIFhMRU4gPSAzMiBmb3IgVS1tb2RlICovCj4+ID4g I2RlZmluZSBTUl9VWExfNjQgICAgIF9BQygweDIwMDAwMDAwMCwgVUwpIC8qIFhMRU4gPSA2NCBm b3IgVS1tb2RlICovCj4+ID4tI2RlZmluZSBTUl9VWExfU0hJRlQgIDMyCj4+ID4gI2VuZGlmCj4+ ID4KPj4gPiAvKiBTQVRQIGZsYWdzICovCj4+ID5kaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9pbmNs dWRlL2FzbS9lbnRyeS1jb21tb24uaCBiL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vZW50cnktY29t bW9uLmgKPj4gPm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4+ID5pbmRleCAwMDAwMDAwMDAwMDAuLjZl NGRlZTQ5ZDg0Ygo+PiA+LS0tIC9kZXYvbnVsbAo+PiA+KysrIGIvYXJjaC9yaXNjdi9pbmNsdWRl L2FzbS9lbnRyeS1jb21tb24uaAo+PiA+QEAgLTAsMCArMSwxMSBAQAo+PiA+Ky8qIFNQRFgtTGlj ZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wICovCj4+ID4rCj4+ID4rI2lmbmRlZiBfQVNNX1JJU0NW X0VOVFJZX0NPTU1PTl9ICj4+ID4rI2RlZmluZSBfQVNNX1JJU0NWX0VOVFJZX0NPTU1PTl9ICj4+ ID4rCj4+ID4rI2luY2x1ZGUgPGFzbS9zdGFja3RyYWNlLmg+Cj4+ID4rCj4+ID4rdm9pZCBoYW5k bGVfcGFnZV9mYXVsdChzdHJ1Y3QgcHRfcmVncyAqcmVncyk7Cj4+ID4rdm9pZCBoYW5kbGVfYnJl YWsoc3RydWN0IHB0X3JlZ3MgKnJlZ3MpOwo+PiA+Kwo+PiA+KyNlbmRpZiAvKiBfQVNNX1JJU0NW X0VOVFJZX0NPTU1PTl9IICovCj4+ID5kaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9pbmNsdWRlL2Fz bS9wdHJhY2UuaCBiL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vcHRyYWNlLmgKPj4gPmluZGV4IDZl Y2Q0NjExMjlkMi4uYjViMGFkY2M4NWMxIDEwMDY0NAo+PiA+LS0tIGEvYXJjaC9yaXNjdi9pbmNs dWRlL2FzbS9wdHJhY2UuaAo+PiA+KysrIGIvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9wdHJhY2Uu aAo+PiA+QEAgLTUzLDYgKzUzLDkgQEAgc3RydWN0IHB0X3JlZ3Mgewo+PiA+ICAgICAgIHVuc2ln bmVkIGxvbmcgb3JpZ19hMDsKPj4gPiB9Owo+PiA+Cj4+ID4rI2RlZmluZSBQVFJBQ0VfU1lTRU1V ICAgICAgICAgICAgICAgICAweDFmCj4+ID4rI2RlZmluZSBQVFJBQ0VfU1lTRU1VX1NJTkdMRVNU RVAgICAgICAweDIwCj4+ID4rCj4+ID4gI2lmZGVmIENPTkZJR182NEJJVAo+PiA+ICNkZWZpbmUg UkVHX0ZNVCAiJTAxNmx4Igo+PiA+ICNlbHNlCj4+ID5AQCAtMTIxLDggKzEyNCw2IEBAIGV4dGVy biB1bnNpZ25lZCBsb25nIHJlZ3NfZ2V0X2tlcm5lbF9zdGFja19udGgoc3RydWN0IHB0X3JlZ3Mg KnJlZ3MsCj4+ID4KPj4gPiB2b2lkIHByZXBhcmVfZnRyYWNlX3JldHVybih1bnNpZ25lZCBsb25n ICpwYXJlbnQsIHVuc2lnbmVkIGxvbmcgc2VsZl9hZGRyLAo+PiA+ICAgICAgICAgICAgICAgICAg ICAgICAgICB1bnNpZ25lZCBsb25nIGZyYW1lX3BvaW50ZXIpOwo+PiA+LWludCBkb19zeXNjYWxs X3RyYWNlX2VudGVyKHN0cnVjdCBwdF9yZWdzICpyZWdzKTsKPj4gPi12b2lkIGRvX3N5c2NhbGxf dHJhY2VfZXhpdChzdHJ1Y3QgcHRfcmVncyAqcmVncyk7Cj4+ID4KPj4gPiAvKioKPj4gPiAgKiBy ZWdzX2dldF9yZWdpc3RlcigpIC0gZ2V0IHJlZ2lzdGVyIHZhbHVlIGZyb20gaXRzIG9mZnNldAo+ PiA+QEAgLTE3Miw2ICsxNzMsMTEgQEAgc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIHJlZ3Nf Z2V0X2tlcm5lbF9hcmd1bWVudChzdHJ1Y3QgcHRfcmVncyAqcmVncywKPj4gPiAgICAgICByZXR1 cm4gMDsKPj4gPiB9Cj4+ID4KPj4gPitzdGF0aWMgaW5saW5lIGludCByZWdzX2lycXNfZGlzYWJs ZWQoc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCj4+ID4rewo+PiA+KyAgICAgIHJldHVybiAhKHJlZ3Mt PnN0YXR1cyAmIFNSX1BJRSk7Cj4+ID4rfQo+PiA+Kwo+PiA+ICNlbmRpZiAvKiBfX0FTU0VNQkxZ X18gKi8KPj4gPgo+PiA+ICNlbmRpZiAvKiBfQVNNX1JJU0NWX1BUUkFDRV9IICovCj4+ID5kaWZm IC0tZ2l0IGEvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9zdGFja3RyYWNlLmggYi9hcmNoL3Jpc2N2 L2luY2x1ZGUvYXNtL3N0YWNrdHJhY2UuaAo+PiA+aW5kZXggMzQ1MGMxOTEyYWZkLi5mN2U4ZWYy NDE4YjkgMTAwNjQ0Cj4+ID4tLS0gYS9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL3N0YWNrdHJhY2Uu aAo+PiA+KysrIGIvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9zdGFja3RyYWNlLmgKPj4gPkBAIC0x Niw0ICsxNiw5IEBAIGV4dGVybiB2b2lkIG5vdHJhY2Ugd2Fsa19zdGFja2ZyYW1lKHN0cnVjdCB0 YXNrX3N0cnVjdCAqdGFzaywgc3RydWN0IHB0X3JlZ3MgKnJlCj4+ID4gZXh0ZXJuIHZvaWQgZHVt cF9iYWNrdHJhY2Uoc3RydWN0IHB0X3JlZ3MgKnJlZ3MsIHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFz aywKPj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbG9nbHZsKTsKPj4g Pgo+PiA+K3N0YXRpYyBpbmxpbmUgYm9vbCBvbl90aHJlYWRfc3RhY2sodm9pZCkKPj4gPit7Cj4+ ID4rICAgICAgcmV0dXJuICEoKCh1bnNpZ25lZCBsb25nKShjdXJyZW50LT5zdGFjaykgXiBjdXJy ZW50X3N0YWNrX3BvaW50ZXIpICYgfihUSFJFQURfU0laRSAtIDEpKTsKPj4gPit9Cj4+ID4rCj4+ ID4gI2VuZGlmIC8qIF9BU01fUklTQ1ZfU1RBQ0tUUkFDRV9IICovCj4+ID5kaWZmIC0tZ2l0IGEv YXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9zeXNjYWxsLmggYi9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNt L3N5c2NhbGwuaAo+PiA+aW5kZXggMzg0YTYzYjg2NDIwLi43MzYxMTBlMWZkNzggMTAwNjQ0Cj4+ ID4tLS0gYS9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL3N5c2NhbGwuaAo+PiA+KysrIGIvYXJjaC9y aXNjdi9pbmNsdWRlL2FzbS9zeXNjYWxsLmgKPj4gPkBAIC03NCw1ICs3NCwyNiBAQCBzdGF0aWMg aW5saW5lIGludCBzeXNjYWxsX2dldF9hcmNoKHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzaykKPj4g PiAjZW5kaWYKPj4gPiB9Cj4+ID4KPj4gPit0eXBlZGVmIGxvbmcgKCpzeXNjYWxsX3QpKHVsb25n LCB1bG9uZywgdWxvbmcsIHVsb25nLCB1bG9uZywgdWxvbmcsIHVsb25nKTsKPj4gPitzdGF0aWMg aW5saW5lIHZvaWQgc3lzY2FsbF9oYW5kbGVyKHN0cnVjdCBwdF9yZWdzICpyZWdzLCB1bG9uZyBz eXNjYWxsKQo+PiA+K3sKPj4gPisgICAgICBzeXNjYWxsX3QgZm47Cj4+ID4rCj4+ID4rI2lmZGVm IENPTkZJR19DT01QQVQKPj4gPisgICAgICBpZiAoKHJlZ3MtPnN0YXR1cyAmIFNSX1VYTCkgPT0g U1JfVVhMXzMyKQo+PiA+KyAgICAgICAgICAgICAgZm4gPSBjb21wYXRfc3lzX2NhbGxfdGFibGVb c3lzY2FsbF07Cj4+ID4rICAgICAgZWxzZQo+PiA+KyNlbmRpZgo+PiA+KyAgICAgICAgICAgICAg Zm4gPSBzeXNfY2FsbF90YWJsZVtzeXNjYWxsXTsKPj4gPisKPj4gPisgICAgICByZWdzLT5hMCA9 IGZuKHJlZ3MtPm9yaWdfYTAsIHJlZ3MtPmExLCByZWdzLT5hMiwKPj4gPisgICAgICAgICAgICAg ICAgICAgIHJlZ3MtPmEzLCByZWdzLT5hNCwgcmVncy0+YTUsIHJlZ3MtPmE2KTsKPj4gPit9Cj4+ ID4rCj4+ID4rc3RhdGljIGlubGluZSBib29sIGFyY2hfc3lzY2FsbF9pc192ZHNvX3NpZ3JldHVy bihzdHJ1Y3QgcHRfcmVncyAqcmVncykKPj4gPit7Cj4+ID4rICAgICAgcmV0dXJuIGZhbHNlOwo+ PiA+K30KPj4gPisKPj4gPiBhc21saW5rYWdlIGxvbmcgc3lzX3Jpc2N2X2ZsdXNoX2ljYWNoZSh1 aW50cHRyX3QsIHVpbnRwdHJfdCwgdWludHB0cl90KTsKPj4gPiAjZW5kaWYgICAgICAgIC8qIF9B U01fUklTQ1ZfU1lTQ0FMTF9IICovCj4+ID5kaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9pbmNsdWRl L2FzbS90aHJlYWRfaW5mby5oIGIvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS90aHJlYWRfaW5mby5o Cj4+ID5pbmRleCA2NzMyMmY4NzhlMGQuLjdkZTRmYjk2ZjBiNSAxMDA2NDQKPj4gPi0tLSBhL2Fy Y2gvcmlzY3YvaW5jbHVkZS9hc20vdGhyZWFkX2luZm8uaAo+PiA+KysrIGIvYXJjaC9yaXNjdi9p bmNsdWRlL2FzbS90aHJlYWRfaW5mby5oCj4+ID5AQCAtNjYsNiArNjYsNyBAQCBzdHJ1Y3QgdGhy ZWFkX2luZm8gewo+PiA+ICAgICAgIGxvbmcgICAgICAgICAgICAgICAgICAgIGtlcm5lbF9zcDsg ICAgICAvKiBLZXJuZWwgc3RhY2sgcG9pbnRlciAqLwo+PiA+ICAgICAgIGxvbmcgICAgICAgICAg ICAgICAgICAgIHVzZXJfc3A7ICAgICAgICAvKiBVc2VyIHN0YWNrIHBvaW50ZXIgKi8KPj4gPiAg ICAgICBpbnQgICAgICAgICAgICAgICAgICAgICBjcHU7Cj4+ID4rICAgICAgdW5zaWduZWQgbG9u ZyAgICAgICAgICAgc3lzY2FsbF93b3JrOyAgIC8qIFNZU0NBTExfV09SS18gZmxhZ3MgKi8KPj4g PiB9Owo+PiA+Cj4+ID4gLyoKPj4gPkBAIC04OCwyNiArODksMTggQEAgc3RydWN0IHRocmVhZF9p bmZvIHsKPj4gPiAgKiAtIHBlbmRpbmcgd29yay10by1iZS1kb25lIGZsYWdzIGFyZSBpbiBsb3dl c3QgaGFsZi13b3JkCj4+ID4gICogLSBvdGhlciBmbGFncyBpbiB1cHBlciBoYWxmLXdvcmQocykK Pj4gPiAgKi8KPj4gPi0jZGVmaW5lIFRJRl9TWVNDQUxMX1RSQUNFICAgICAwICAgICAgIC8qIHN5 c2NhbGwgdHJhY2UgYWN0aXZlICovCj4+ID4gI2RlZmluZSBUSUZfTk9USUZZX1JFU1VNRSAgICAg MSAgICAgICAvKiBjYWxsYmFjayBiZWZvcmUgcmV0dXJuaW5nIHRvIHVzZXIgKi8KPj4gPiAjZGVm aW5lIFRJRl9TSUdQRU5ESU5HICAgICAgICAgICAgICAgIDIgICAgICAgLyogc2lnbmFsIHBlbmRp bmcgKi8KPj4gPiAjZGVmaW5lIFRJRl9ORUVEX1JFU0NIRUQgICAgICAzICAgICAgIC8qIHJlc2No ZWR1bGluZyBuZWNlc3NhcnkgKi8KPj4gPiAjZGVmaW5lIFRJRl9SRVNUT1JFX1NJR01BU0sgICA0 ICAgICAgIC8qIHJlc3RvcmUgc2lnbmFsIG1hc2sgaW4gZG9fc2lnbmFsKCkgKi8KPj4gPiAjZGVm aW5lIFRJRl9NRU1ESUUgICAgICAgICAgICA1ICAgICAgIC8qIGlzIHRlcm1pbmF0aW5nIGR1ZSB0 byBPT00ga2lsbGVyICovCj4+ID4tI2RlZmluZSBUSUZfU1lTQ0FMTF9UUkFDRVBPSU5UICA2ICAg ICAgIC8qIHN5c2NhbGwgdHJhY2Vwb2ludCBpbnN0cnVtZW50YXRpb24gKi8KPj4gPi0jZGVmaW5l IFRJRl9TWVNDQUxMX0FVRElUICAgICA3ICAgICAgIC8qIHN5c2NhbGwgYXVkaXRpbmcgKi8KPj4g Pi0jZGVmaW5lIFRJRl9TRUNDT01QICAgICAgICAgICA4ICAgICAgIC8qIHN5c2NhbGwgc2VjdXJl IGNvbXB1dGluZyAqLwo+PiA+ICNkZWZpbmUgVElGX05PVElGWV9TSUdOQUwgICAgIDkgICAgICAg Lyogc2lnbmFsIG5vdGlmaWNhdGlvbnMgZXhpc3QgKi8KPj4gPiAjZGVmaW5lIFRJRl9VUFJPQkUg ICAgICAgICAgICAxMCAgICAgIC8qIHVwcm9iZSBicmVha3BvaW50IG9yIHNpbmdsZXN0ZXAgKi8K Pj4gPiAjZGVmaW5lIFRJRl8zMkJJVCAgICAgICAgICAgICAxMSAgICAgIC8qIGNvbXBhdC1tb2Rl IDMyYml0IHByb2Nlc3MgKi8KPj4gPgo+PiA+LSNkZWZpbmUgX1RJRl9TWVNDQUxMX1RSQUNFICAg ICgxIDw8IFRJRl9TWVNDQUxMX1RSQUNFKQo+PiA+ICNkZWZpbmUgX1RJRl9OT1RJRllfUkVTVU1F ICAgICgxIDw8IFRJRl9OT1RJRllfUkVTVU1FKQo+PiA+ICNkZWZpbmUgX1RJRl9TSUdQRU5ESU5H ICAgICAgICAgICAgICAgKDEgPDwgVElGX1NJR1BFTkRJTkcpCj4+ID4gI2RlZmluZSBfVElGX05F RURfUkVTQ0hFRCAgICAgKDEgPDwgVElGX05FRURfUkVTQ0hFRCkKPj4gPi0jZGVmaW5lIF9USUZf U1lTQ0FMTF9UUkFDRVBPSU5UICAgICAgICgxIDw8IFRJRl9TWVNDQUxMX1RSQUNFUE9JTlQpCj4+ ID4tI2RlZmluZSBfVElGX1NZU0NBTExfQVVESVQgICAgKDEgPDwgVElGX1NZU0NBTExfQVVESVQp Cj4+ID4tI2RlZmluZSBfVElGX1NFQ0NPTVAgICAgICAgICAgKDEgPDwgVElGX1NFQ0NPTVApCj4+ ID4gI2RlZmluZSBfVElGX05PVElGWV9TSUdOQUwgICAgKDEgPDwgVElGX05PVElGWV9TSUdOQUwp Cj4+ID4gI2RlZmluZSBfVElGX1VQUk9CRSAgICAgICAgICAgKDEgPDwgVElGX1VQUk9CRSkKPj4g Pgo+PiA+QEAgLTExNSw4ICsxMDgsNCBAQCBzdHJ1Y3QgdGhyZWFkX2luZm8gewo+PiA+ICAgICAg IChfVElGX05PVElGWV9SRVNVTUUgfCBfVElGX1NJR1BFTkRJTkcgfCBfVElGX05FRURfUkVTQ0hF RCB8IFwKPj4gPiAgICAgICAgX1RJRl9OT1RJRllfU0lHTkFMIHwgX1RJRl9VUFJPQkUpCj4+ID4K Pj4gPi0jZGVmaW5lIF9USUZfU1lTQ0FMTF9XT1JLIFwKPj4gPi0gICAgICAoX1RJRl9TWVNDQUxM X1RSQUNFIHwgX1RJRl9TWVNDQUxMX1RSQUNFUE9JTlQgfCBfVElGX1NZU0NBTExfQVVESVQgfCBc Cj4+ID4tICAgICAgIF9USUZfU0VDQ09NUCkKPj4gPi0KPj4gPiAjZW5kaWYgLyogX0FTTV9SSVND Vl9USFJFQURfSU5GT19IICovCj4+ID5kaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9rZXJuZWwvZW50 cnkuUyBiL2FyY2gvcmlzY3Yva2VybmVsL2VudHJ5LlMKPj4gPmluZGV4IDk5ZDM4ZmRmOGIxOC4u YmMzMjJmOTJiYTM0IDEwMDY0NAo+PiA+LS0tIGEvYXJjaC9yaXNjdi9rZXJuZWwvZW50cnkuUwo+ PiA+KysrIGIvYXJjaC9yaXNjdi9rZXJuZWwvZW50cnkuUwo+PiA+QEAgLTE0LDExICsxNCw3IEBA Cj4+ID4gI2luY2x1ZGUgPGFzbS9hc20tb2Zmc2V0cy5oPgo+PiA+ICNpbmNsdWRlIDxhc20vZXJy YXRhX2xpc3QuaD4KPj4gPgo+PiA+LSNpZiAhSVNfRU5BQkxFRChDT05GSUdfUFJFRU1QVElPTikK Pj4gPi0uc2V0IHJlc3VtZV9rZXJuZWwsIHJlc3RvcmVfYWxsCj4+ID4tI2VuZGlmCj4+ID4tCj4+ ID4tRU5UUlkoaGFuZGxlX2V4Y2VwdGlvbikKPj4gPitTWU1fQ09ERV9TVEFSVChoYW5kbGVfZXhj ZXB0aW9uKQo+PiA+ICAgICAgIC8qCj4+ID4gICAgICAgICogSWYgY29taW5nIGZyb20gdXNlcnNw YWNlLCBwcmVzZXJ2ZSB0aGUgdXNlciB0aHJlYWQgcG9pbnRlciBhbmQgbG9hZAo+PiA+ICAgICAg ICAqIHRoZSBrZXJuZWwgdGhyZWFkIHBvaW50ZXIuICBJZiB3ZSBjYW1lIGZyb20gdGhlIGtlcm5l bCwgdGhlIHNjcmF0Y2gKPj4gPkBAIC0xMDYsMTkgKzEwMiw4IEBAIF9zYXZlX2NvbnRleHQ6Cj4+ ID4gLm9wdGlvbiBub3JlbGF4Cj4+ID4gICAgICAgbGEgZ3AsIF9fZ2xvYmFsX3BvaW50ZXIkCj4+ ID4gLm9wdGlvbiBwb3AKPj4gPi0KPj4gPi0jaWZkZWYgQ09ORklHX1RSQUNFX0lSUUZMQUdTCj4+ ID4tICAgICAgY2FsbCBfX3RyYWNlX2hhcmRpcnFzX29mZgo+PiA+LSNlbmRpZgo+PiA+LQo+PiA+ LSNpZmRlZiBDT05GSUdfQ09OVEVYVF9UUkFDS0lOR19VU0VSCj4+ID4tICAgICAgLyogSWYgcHJl dmlvdXMgc3RhdGUgaXMgaW4gdXNlciBtb2RlLCBjYWxsIHVzZXJfZXhpdF9jYWxsYWJsZSgpLiAq Lwo+PiA+LSAgICAgIGxpICAgYTAsIFNSX1BQCj4+ID4tICAgICAgYW5kIGEwLCBzMSwgYTAKPj4g Pi0gICAgICBibmV6IGEwLCBza2lwX2NvbnRleHRfdHJhY2tpbmcKPj4gPi0gICAgICBjYWxsIHVz ZXJfZXhpdF9jYWxsYWJsZQo+PiA+LXNraXBfY29udGV4dF90cmFja2luZzoKPj4gPi0jZW5kaWYK Pj4gPisgICAgICBtb3ZlIGEwLCBzcCAvKiBwdF9yZWdzICovCj4+ID4rICAgICAgbGEgcmEsIHJl dF9mcm9tX2V4Y2VwdGlvbgo+PiA+Cj4+ID4gICAgICAgLyoKPj4gPiAgICAgICAgKiBNU0Igb2Yg Y2F1c2UgZGlmZmVyZW50aWF0ZXMgYmV0d2Vlbgo+PiA+QEAgLTEyNiwzOCArMTExLDEzIEBAIHNr aXBfY29udGV4dF90cmFja2luZzoKPj4gPiAgICAgICAgKi8KPj4gPiAgICAgICBiZ2UgczQsIHpl cm8sIDFmCj4+ID4KPj4gPi0gICAgICBsYSByYSwgcmV0X2Zyb21fZXhjZXB0aW9uCj4+ID4tCj4+ ID4gICAgICAgLyogSGFuZGxlIGludGVycnVwdHMgKi8KPj4gPi0gICAgICBtb3ZlIGEwLCBzcCAv KiBwdF9yZWdzICovCj4+ID4tICAgICAgbGEgYTEsIGdlbmVyaWNfaGFuZGxlX2FyY2hfaXJxCj4+ ID4tICAgICAganIgYTEKPj4gPi0xOgo+PiA+LSAgICAgIC8qCj4+ID4tICAgICAgICogRXhjZXB0 aW9ucyBydW4gd2l0aCBpbnRlcnJ1cHRzIGVuYWJsZWQgb3IgZGlzYWJsZWQgZGVwZW5kaW5nIG9u IHRoZQo+PiA+LSAgICAgICAqIHN0YXRlIG9mIFNSX1BJRSBpbiBtL3NzdGF0dXMuCj4+ID4tICAg ICAgICovCj4+ID4tICAgICAgYW5kaSB0MCwgczEsIFNSX1BJRQo+PiA+LSAgICAgIGJlcXogdDAs IDFmCj4+ID4tICAgICAgLyoga3Byb2JlcywgZW50ZXJlZCB2aWEgZWJyZWFrLCBtdXN0IGhhdmUg aW50ZXJydXB0cyBkaXNhYmxlZC4gKi8KPj4gPi0gICAgICBsaSB0MCwgRVhDX0JSRUFLUE9JTlQK Pj4gPi0gICAgICBiZXEgczQsIHQwLCAxZgo+PiA+LSNpZmRlZiBDT05GSUdfVFJBQ0VfSVJRRkxB R1MKPj4gPi0gICAgICBjYWxsIF9fdHJhY2VfaGFyZGlycXNfb24KPj4gPi0jZW5kaWYKPj4gPi0g ICAgICBjc3JzIENTUl9TVEFUVVMsIFNSX0lFCj4+ID4tCj4+ID4rICAgICAgdGFpbCBkb19pcnEK Pj4gPiAxOgo+PiA+LSAgICAgIGxhIHJhLCByZXRfZnJvbV9leGNlcHRpb24KPj4gPi0gICAgICAv KiBIYW5kbGUgc3lzY2FsbHMgKi8KPj4gPi0gICAgICBsaSB0MCwgRVhDX1NZU0NBTEwKPj4gPi0g ICAgICBiZXEgczQsIHQwLCBoYW5kbGVfc3lzY2FsbAo+PiA+LQo+PiA+ICAgICAgIC8qIEhhbmRs ZSBvdGhlciBleGNlcHRpb25zICovCj4+ID4gICAgICAgc2xsaSB0MCwgczQsIFJJU0NWX0xHUFRS Cj4+ID4gICAgICAgbGEgdDEsIGV4Y3BfdmVjdF90YWJsZQo+PiA+ICAgICAgIGxhIHQyLCBleGNw X3ZlY3RfdGFibGVfZW5kCj4+ID4tICAgICAgbW92ZSBhMCwgc3AgLyogcHRfcmVncyAqLwo+PiA+ ICAgICAgIGFkZCB0MCwgdDEsIHQwCj4+ID4gICAgICAgLyogQ2hlY2sgaWYgZXhjZXB0aW9uIGNv ZGUgbGllcyB3aXRoaW4gYm91bmRzICovCj4+ID4gICAgICAgYmdldSB0MCwgdDIsIDFmCj4+ID5A QCAtMTY1LDk1ICsxMjUsMTcgQEAgc2tpcF9jb250ZXh0X3RyYWNraW5nOgo+PiA+ICAgICAgIGpy IHQwCj4+ID4gMToKPj4gPiAgICAgICB0YWlsIGRvX3RyYXBfdW5rbm93bgo+PiA+K1NZTV9DT0RF X0VORChoYW5kbGVfZXhjZXB0aW9uKQo+PiA+Cj4+ID4taGFuZGxlX3N5c2NhbGw6Cj4+ID4tI2lm ZGVmIENPTkZJR19SSVNDVl9NX01PREUKPj4gPi0gICAgICAvKgo+PiA+LSAgICAgICAqIFdoZW4g cnVubmluZyBpcyBNLU1vZGUgKG5vIE1NVSBjb25maWcpLCBNUElFIGRvZXMgbm90IGdldCBzZXQu Cj4+ID4tICAgICAgICogQXMgYSByZXN1bHQsIHdlIG5lZWQgdG8gZm9yY2UgZW5hYmxlIGludGVy cnVwdHMgaGVyZSBiZWNhdXNlCj4+ID4tICAgICAgICogaGFuZGxlX2V4Y2VwdGlvbiBkaWQgbm90 IGRvIHNldCBTUl9JRSBhcyBpdCBhbHdheXMgc2VlcyBTUl9QSUUKPj4gPi0gICAgICAgKiBiZWlu ZyBjbGVhcmVkLgo+PiA+LSAgICAgICAqLwo+PiA+LSAgICAgIGNzcnMgQ1NSX1NUQVRVUywgU1Jf SUUKPj4gPi0jZW5kaWYKPj4gPi0jaWYgZGVmaW5lZChDT05GSUdfVFJBQ0VfSVJRRkxBR1MpIHx8 IGRlZmluZWQoQ09ORklHX0NPTlRFWFRfVFJBQ0tJTkdfVVNFUikKPj4gPi0gICAgICAvKiBSZWNv dmVyIGEwIC0gYTcgZm9yIHN5c3RlbSBjYWxscyAqLwo+PiA+LSAgICAgIFJFR19MIGEwLCBQVF9B MChzcCkKPj4gPi0gICAgICBSRUdfTCBhMSwgUFRfQTEoc3ApCj4+ID4tICAgICAgUkVHX0wgYTIs IFBUX0EyKHNwKQo+PiA+LSAgICAgIFJFR19MIGEzLCBQVF9BMyhzcCkKPj4gPi0gICAgICBSRUdf TCBhNCwgUFRfQTQoc3ApCj4+ID4tICAgICAgUkVHX0wgYTUsIFBUX0E1KHNwKQo+PiA+LSAgICAg IFJFR19MIGE2LCBQVF9BNihzcCkKPj4gPi0gICAgICBSRUdfTCBhNywgUFRfQTcoc3ApCj4+ID4t I2VuZGlmCj4+ID4tICAgICAgIC8qIHNhdmUgdGhlIGluaXRpYWwgQTAgdmFsdWUgKG5lZWRlZCBp biBzaWduYWwgaGFuZGxlcnMpICovCj4+ID4tICAgICAgUkVHX1MgYTAsIFBUX09SSUdfQTAoc3Ap Cj4+ID4tICAgICAgLyoKPj4gPi0gICAgICAgKiBBZHZhbmNlIFNFUEMgdG8gYXZvaWQgZXhlY3V0 aW5nIHRoZSBvcmlnaW5hbAo+PiA+LSAgICAgICAqIHNjYWxsIGluc3RydWN0aW9uIG9uIHNyZXQK Pj4gPi0gICAgICAgKi8KPj4gPi0gICAgICBhZGRpIHMyLCBzMiwgMHg0Cj4+ID4tICAgICAgUkVH X1MgczIsIFBUX0VQQyhzcCkKPj4gPi0gICAgICAvKiBUcmFjZSBzeXNjYWxscywgYnV0IG9ubHkg aWYgcmVxdWVzdGVkIGJ5IHRoZSB1c2VyLiAqLwo+PiA+LSAgICAgIFJFR19MIHQwLCBUQVNLX1RJ X0ZMQUdTKHRwKQo+PiA+LSAgICAgIGFuZGkgdDAsIHQwLCBfVElGX1NZU0NBTExfV09SSwo+PiA+ LSAgICAgIGJuZXogdDAsIGhhbmRsZV9zeXNjYWxsX3RyYWNlX2VudGVyCj4+ID4tY2hlY2tfc3lz Y2FsbF9ucjoKPj4gPi0gICAgICAvKiBDaGVjayB0byBtYWtlIHN1cmUgd2UgZG9uJ3QganVtcCB0 byBhIGJvZ3VzIHN5c2NhbGwgbnVtYmVyLiAqLwo+PiA+LSAgICAgIGxpIHQwLCBfX05SX3N5c2Nh bGxzCj4+ID4tICAgICAgbGEgczAsIHN5c19uaV9zeXNjYWxsCj4+ID4tICAgICAgLyoKPj4gPi0g ICAgICAgKiBTeXNjYWxsIG51bWJlciBoZWxkIGluIGE3Lgo+PiA+LSAgICAgICAqIElmIHN5c2Nh bGwgbnVtYmVyIGlzIGFib3ZlIGFsbG93ZWQgdmFsdWUsIHJlZGlyZWN0IHRvIG5pX3N5c2NhbGwu Cj4+ID4tICAgICAgICovCj4+ID4tICAgICAgYmdldSBhNywgdDAsIDNmCj4+ID4tI2lmZGVmIENP TkZJR19DT01QQVQKPj4gPi0gICAgICBSRUdfTCBzMCwgUFRfU1RBVFVTKHNwKQo+PiA+LSAgICAg IHNybGkgczAsIHMwLCBTUl9VWExfU0hJRlQKPj4gPi0gICAgICBhbmRpIHMwLCBzMCwgKFNSX1VY TCA+PiBTUl9VWExfU0hJRlQpCj4+ID4tICAgICAgbGkgdDAsIChTUl9VWExfMzIgPj4gU1JfVVhM X1NISUZUKQo+PiA+LSAgICAgIHN1YiB0MCwgczAsIHQwCj4+ID4tICAgICAgYm5leiB0MCwgMWYK Pj4gPi0KPj4gPi0gICAgICAvKiBDYWxsIGNvbXBhdF9zeXNjYWxsICovCj4+ID4tICAgICAgbGEg czAsIGNvbXBhdF9zeXNfY2FsbF90YWJsZQo+PiA+LSAgICAgIGogMmYKPj4gPi0xOgo+PiA+LSNl bmRpZgo+PiA+LSAgICAgIC8qIENhbGwgc3lzY2FsbCAqLwo+PiA+LSAgICAgIGxhIHMwLCBzeXNf Y2FsbF90YWJsZQo+PiA+LTI6Cj4+ID4tICAgICAgc2xsaSB0MCwgYTcsIFJJU0NWX0xHUFRSCj4+ ID4tICAgICAgYWRkIHMwLCBzMCwgdDAKPj4gPi0gICAgICBSRUdfTCBzMCwgMChzMCkKPj4gPi0z Ogo+PiA+LSAgICAgIGphbHIgczAKPj4gPi0KPj4gPi1yZXRfZnJvbV9zeXNjYWxsOgo+PiA+LSAg ICAgIC8qIFNldCB1c2VyIGEwIHRvIGtlcm5lbCBhMCAqLwo+PiA+LSAgICAgIFJFR19TIGEwLCBQ VF9BMChzcCkKPj4gPi0gICAgICAvKgo+PiA+LSAgICAgICAqIFdlIGRpZG4ndCBleGVjdXRlIHRo ZSBhY3R1YWwgc3lzY2FsbC4KPj4gPi0gICAgICAgKiBTZWNjb21wIGFscmVhZHkgc2V0IHJldHVy biB2YWx1ZSBmb3IgdGhlIGN1cnJlbnQgdGFzayBwdF9yZWdzLgo+PiA+LSAgICAgICAqIChJZiBp dCB3YXMgY29uZmlndXJlZCB3aXRoIFNFQ0NPTVBfUkVUX0VSUk5PL1RSQUNFKQo+PiA+LSAgICAg ICAqLwo+PiA+LXJldF9mcm9tX3N5c2NhbGxfcmVqZWN0ZWQ6Cj4+ID4tI2lmZGVmIENPTkZJR19E RUJVR19SU0VRCj4+ID4tICAgICAgbW92ZSBhMCwgc3AKPj4gPi0gICAgICBjYWxsIHJzZXFfc3lz Y2FsbAo+PiA+LSNlbmRpZgo+PiA+LSAgICAgIC8qIFRyYWNlIHN5c2NhbGxzLCBidXQgb25seSBp ZiByZXF1ZXN0ZWQgYnkgdGhlIHVzZXIuICovCj4+ID4tICAgICAgUkVHX0wgdDAsIFRBU0tfVElf RkxBR1ModHApCj4+ID4tICAgICAgYW5kaSB0MCwgdDAsIF9USUZfU1lTQ0FMTF9XT1JLCj4+ID4t ICAgICAgYm5leiB0MCwgaGFuZGxlX3N5c2NhbGxfdHJhY2VfZXhpdAo+PiA+LQo+PiA+Ky8qCj4+ ID4rICogVGhlIHJldF9mcm9tX2V4Y2VwdGlvbiBtdXN0IGJlIGNhbGxlZCB3aXRoIGludGVycnVw dCBkaXNhYmxlZC4gSGVyZSBpcyB0aGUKPj4gPisgKiBjYWxsZXIgbGlzdDoKPj4gPisgKiAgLSBo YW5kbGVfZXhjZXB0aW9uCj4+ID4rICogIC0gcmV0X2Zyb21fZm9yawo+PiA+KyAqICAtIHJldF9m cm9tX2tlcm5lbF90aHJlYWQKPj4gPisgKi8KPj4gPiBTWU1fQ09ERV9TVEFSVF9OT0FMSUdOKHJl dF9mcm9tX2V4Y2VwdGlvbikKPj4gPiAgICAgICBSRUdfTCBzMCwgUFRfU1RBVFVTKHNwKQo+PiA+ LSAgICAgIGNzcmMgQ1NSX1NUQVRVUywgU1JfSUUKPj4gPi0jaWZkZWYgQ09ORklHX1RSQUNFX0lS UUZMQUdTCj4+ID4tICAgICAgY2FsbCBfX3RyYWNlX2hhcmRpcnFzX29mZgo+PiA+LSNlbmRpZgo+ PiA+ICNpZmRlZiBDT05GSUdfUklTQ1ZfTV9NT0RFCj4+ID4gICAgICAgLyogdGhlIE1QUCB2YWx1 ZSBpcyB0b28gbGFyZ2UgdG8gYmUgdXNlZCBhcyBhbiBpbW1lZGlhdGUgYXJnIGZvciBhZGRpICov Cj4+ID4gICAgICAgbGkgdDAsIFNSX01QUAo+PiA+QEAgLTI2MSwxNyArMTQzLDcgQEAgU1lNX0NP REVfU1RBUlRfTk9BTElHTihyZXRfZnJvbV9leGNlcHRpb24pCj4+ID4gI2Vsc2UKPj4gPiAgICAg ICBhbmRpIHMwLCBzMCwgU1JfU1BQCj4+ID4gI2VuZGlmCj4+ID4tICAgICAgYm5leiBzMCwgcmVz dW1lX2tlcm5lbAo+PiA+LVNZTV9DT0RFX0VORChyZXRfZnJvbV9leGNlcHRpb24pCj4+ID4tCj4+ ID4tICAgICAgLyogSW50ZXJydXB0cyBtdXN0IGJlIGRpc2FibGVkIGhlcmUgc28gZmxhZ3MgYXJl IGNoZWNrZWQgYXRvbWljYWxseSAqLwo+PiA+LSAgICAgIFJFR19MIHMwLCBUQVNLX1RJX0ZMQUdT KHRwKSAvKiBjdXJyZW50X3RocmVhZF9pbmZvLT5mbGFncyAqLwo+PiA+LSAgICAgIGFuZGkgczEs IHMwLCBfVElGX1dPUktfTUFTSwo+PiA+LSAgICAgIGJuZXogczEsIHJlc3VtZV91c2Vyc3BhY2Vf c2xvdwo+PiA+LXJlc3VtZV91c2Vyc3BhY2U6Cj4+ID4tI2lmZGVmIENPTkZJR19DT05URVhUX1RS QUNLSU5HX1VTRVIKPj4gPi0gICAgICBjYWxsIHVzZXJfZW50ZXJfY2FsbGFibGUKPj4gPi0jZW5k aWYKPj4gPisgICAgICBibmV6IHMwLCAxZgo+PiA+Cj4+ID4gICAgICAgLyogU2F2ZSB1bndvdW5k IGtlcm5lbCBzdGFjayBwb2ludGVyIGluIHRocmVhZF9pbmZvICovCj4+ID4gICAgICAgYWRkaSBz MCwgc3AsIFBUX1NJWkVfT05fU1RBQ0sKPj4gPkBAIC0yODIsMTggKzE1NCw3IEBAIHJlc3VtZV91 c2Vyc3BhY2U6Cj4+ID4gICAgICAgICogc3RydWN0dXJlcyBhZ2Fpbi4KPj4gPiAgICAgICAgKi8K Pj4gPiAgICAgICBjc3J3IENTUl9TQ1JBVENILCB0cAo+PiA+LQo+PiA+LXJlc3RvcmVfYWxsOgo+ PiA+LSNpZmRlZiBDT05GSUdfVFJBQ0VfSVJRRkxBR1MKPj4gPi0gICAgICBSRUdfTCBzMSwgUFRf U1RBVFVTKHNwKQo+PiA+LSAgICAgIGFuZGkgdDAsIHMxLCBTUl9QSUUKPj4gPi0gICAgICBiZXF6 IHQwLCAxZgo+PiA+LSAgICAgIGNhbGwgX190cmFjZV9oYXJkaXJxc19vbgo+PiA+LSAgICAgIGog MmYKPj4gPiAxOgo+PiA+LSAgICAgIGNhbGwgX190cmFjZV9oYXJkaXJxc19vZmYKPj4gPi0yOgo+ PiA+LSNlbmRpZgo+PiA+ICAgICAgIFJFR19MIGEwLCBQVF9TVEFUVVMoc3ApCj4+ID4gICAgICAg LyoKPj4gPiAgICAgICAgKiBUaGUgY3VycmVudCBsb2FkIHJlc2VydmF0aW9uIGlzIGVmZmVjdGl2 ZWx5IHBhcnQgb2YgdGhlIHByb2Nlc3NvcidzCj4+ID5AQCAtMzU2LDQ3ICsyMTcsMTAgQEAgcmVz dG9yZV9hbGw6Cj4+ID4gI2Vsc2UKPj4gPiAgICAgICBzcmV0Cj4+ID4gI2VuZGlmCj4+ID4tCj4+ ID4tI2lmIElTX0VOQUJMRUQoQ09ORklHX1BSRUVNUFRJT04pCj4+ID4tcmVzdW1lX2tlcm5lbDoK Pj4gPi0gICAgICBSRUdfTCBzMCwgVEFTS19USV9QUkVFTVBUX0NPVU5UKHRwKQo+PiA+LSAgICAg IGJuZXogczAsIHJlc3RvcmVfYWxsCj4+ID4tICAgICAgUkVHX0wgczAsIFRBU0tfVElfRkxBR1Mo dHApCj4+ID4tICAgICAgYW5kaSBzMCwgczAsIF9USUZfTkVFRF9SRVNDSEVECj4+ID4tICAgICAg YmVxeiBzMCwgcmVzdG9yZV9hbGwKPj4gPi0gICAgICBjYWxsIHByZWVtcHRfc2NoZWR1bGVfaXJx Cj4+ID4tICAgICAgaiByZXN0b3JlX2FsbAo+PiA+LSNlbmRpZgo+PiA+LQo+PiA+LXJlc3VtZV91 c2Vyc3BhY2Vfc2xvdzoKPj4gPi0gICAgICAvKiBFbnRlciBzbG93IHBhdGggZm9yIHN1cHBsZW1l bnRhcnkgcHJvY2Vzc2luZyAqLwo+PiA+LSAgICAgIG1vdmUgYTAsIHNwIC8qIHB0X3JlZ3MgKi8K Pj4gPi0gICAgICBtb3ZlIGExLCBzMCAvKiBjdXJyZW50X3RocmVhZF9pbmZvLT5mbGFncyAqLwo+ PiA+LSAgICAgIGNhbGwgZG9fd29ya19wZW5kaW5nCj4+ID4tICAgICAgaiByZXN1bWVfdXNlcnNw YWNlCj4+ID4tCj4+ID4tLyogU2xvdyBwYXRocyBmb3IgcHRyYWNlLiAqLwo+PiA+LWhhbmRsZV9z eXNjYWxsX3RyYWNlX2VudGVyOgo+PiA+LSAgICAgIG1vdmUgYTAsIHNwCj4+ID4tICAgICAgY2Fs bCBkb19zeXNjYWxsX3RyYWNlX2VudGVyCj4+ID4tICAgICAgbW92ZSB0MCwgYTAKPj4gPi0gICAg ICBSRUdfTCBhMCwgUFRfQTAoc3ApCj4+ID4tICAgICAgUkVHX0wgYTEsIFBUX0ExKHNwKQo+PiA+ LSAgICAgIFJFR19MIGEyLCBQVF9BMihzcCkKPj4gPi0gICAgICBSRUdfTCBhMywgUFRfQTMoc3Ap Cj4+ID4tICAgICAgUkVHX0wgYTQsIFBUX0E0KHNwKQo+PiA+LSAgICAgIFJFR19MIGE1LCBQVF9B NShzcCkKPj4gPi0gICAgICBSRUdfTCBhNiwgUFRfQTYoc3ApCj4+ID4tICAgICAgUkVHX0wgYTcs IFBUX0E3KHNwKQo+PiA+LSAgICAgIGJuZXogdDAsIHJldF9mcm9tX3N5c2NhbGxfcmVqZWN0ZWQK Pj4gPi0gICAgICBqIGNoZWNrX3N5c2NhbGxfbnIKPj4gPi1oYW5kbGVfc3lzY2FsbF90cmFjZV9l eGl0Ogo+PiA+LSAgICAgIG1vdmUgYTAsIHNwCj4+ID4tICAgICAgY2FsbCBkb19zeXNjYWxsX3Ry YWNlX2V4aXQKPj4gPi0gICAgICBqIHJldF9mcm9tX2V4Y2VwdGlvbgo+PiA+K1NZTV9DT0RFX0VO RChyZXRfZnJvbV9leGNlcHRpb24pCj4+ID4KPj4gPiAjaWZkZWYgQ09ORklHX1ZNQVBfU1RBQ0sK Pj4gPi1oYW5kbGVfa2VybmVsX3N0YWNrX292ZXJmbG93Ogo+PiA+K1NZTV9DT0RFX1NUQVJUX0xP Q0FMKGhhbmRsZV9rZXJuZWxfc3RhY2tfb3ZlcmZsb3cpCj4+ID4gICAgICAgLyoKPj4gPiAgICAg ICAgKiBUYWtlcyB0aGUgcHN1ZWRvLXNwaW5sb2NrIGZvciB0aGUgc2hhZG93IHN0YWNrLCBpbiBj YXNlIG11bHRpcGxlCj4+ID4gICAgICAgICogaGFydHMgYXJlIGNvbmN1cnJlbnRseSBvdmVyZmxv d2luZyB0aGVpciBrZXJuZWwgc3RhY2tzLiAgV2UgY291bGQKPj4gPkBAIC01MDUsMjMgKzMyOSwy NSBAQCByZXN0b3JlX2NhbGxlcl9yZWc6Cj4+ID4gICAgICAgUkVHX1MgczUsIFBUX1RQKHNwKQo+ PiA+ICAgICAgIG1vdmUgYTAsIHNwCj4+ID4gICAgICAgdGFpbCBoYW5kbGVfYmFkX3N0YWNrCj4+ ID4rU1lNX0NPREVfRU5EKGhhbmRsZV9rZXJuZWxfc3RhY2tfb3ZlcmZsb3cpCj4+ID4gI2VuZGlm Cj4+ID4KPj4gPi1FTkQoaGFuZGxlX2V4Y2VwdGlvbikKPj4gPi0KPj4gPi1FTlRSWShyZXRfZnJv bV9mb3JrKQo+PiA+K1NZTV9DT0RFX1NUQVJUKHJldF9mcm9tX2ZvcmspCj4+ID4rICAgICAgY2Fs bCBzY2hlZHVsZV90YWlsCj4+ID4rICAgICAgbW92ZSBhMCwgc3AgLyogcHRfcmVncyAqLwo+PiA+ ICAgICAgIGxhIHJhLCByZXRfZnJvbV9leGNlcHRpb24KPj4gPi0gICAgICB0YWlsIHNjaGVkdWxl X3RhaWwKPj4gPi1FTkRQUk9DKHJldF9mcm9tX2ZvcmspCj4+ID4rICAgICAgdGFpbCBzeXNjYWxs X2V4aXRfdG9fdXNlcl9tb2RlCj4+ID4rU1lNX0NPREVfRU5EKHJldF9mcm9tX2ZvcmspCj4+ID4K Pj4gPi1FTlRSWShyZXRfZnJvbV9rZXJuZWxfdGhyZWFkKQo+PiA+K1NZTV9DT0RFX1NUQVJUKHJl dF9mcm9tX2tlcm5lbF90aHJlYWQpCj4+ID4gICAgICAgY2FsbCBzY2hlZHVsZV90YWlsCj4+ID4g ICAgICAgLyogQ2FsbCBmbihhcmcpICovCj4+ID4tICAgICAgbGEgcmEsIHJldF9mcm9tX2V4Y2Vw dGlvbgo+PiA+ICAgICAgIG1vdmUgYTAsIHMxCj4+ID4tICAgICAganIgczAKPj4gPi1FTkRQUk9D KHJldF9mcm9tX2tlcm5lbF90aHJlYWQpCj4+ID4tCj4+ID4rICAgICAgamFsciBzMAo+PiA+KyAg ICAgIG1vdmUgYTAsIHNwIC8qIHB0X3JlZ3MgKi8KPj4gPisgICAgICBsYSByYSwgcmV0X2Zyb21f ZXhjZXB0aW9uCj4+ID4rICAgICAgdGFpbCBzeXNjYWxsX2V4aXRfdG9fdXNlcl9tb2RlCj4+ID4r U1lNX0NPREVfRU5EKHJldF9mcm9tX2tlcm5lbF90aHJlYWQpCj4+ID4KPj4gPiAvKgo+PiA+ICAq IEludGVnZXIgcmVnaXN0ZXIgY29udGV4dCBzd2l0Y2gKPj4gPkBAIC01MzMsNyArMzU5LDcgQEAg RU5EUFJPQyhyZXRfZnJvbV9rZXJuZWxfdGhyZWFkKQo+PiA+ICAqIFRoZSB2YWx1ZSBvZiBhMCBh bmQgYTEgbXVzdCBiZSBwcmVzZXJ2ZWQgYnkgdGhpcyBmdW5jdGlvbiwgYXMgdGhhdCdzIGhvdwo+ PiA+ICAqIGFyZ3VtZW50cyBhcmUgcGFzc2VkIHRvIHNjaGVkdWxlX3RhaWwuCj4+ID4gICovCj4+ ID4tRU5UUlkoX19zd2l0Y2hfdG8pCj4+ID4rU1lNX0ZVTkNfU1RBUlQoX19zd2l0Y2hfdG8pCj4+ ID4gICAgICAgLyogU2F2ZSBjb250ZXh0IGludG8gcHJldi0+dGhyZWFkICovCj4+ID4gICAgICAg bGkgICAgYTQsICBUQVNLX1RIUkVBRF9SQQo+PiA+ICAgICAgIGFkZCAgIGEzLCBhMCwgYTQKPj4g PkBAIC01NzAsNyArMzk2LDcgQEAgRU5UUlkoX19zd2l0Y2hfdG8pCj4+ID4gICAgICAgLyogVGhl IG9mZnNldCBvZiB0aHJlYWRfaW5mbyBpbiB0YXNrX3N0cnVjdCBpcyB6ZXJvLiAqLwo+PiA+ICAg ICAgIG1vdmUgdHAsIGExCj4+ID4gICAgICAgcmV0Cj4+ID4tRU5EUFJPQyhfX3N3aXRjaF90bykK Pj4gPitTWU1fRlVOQ19FTkQoX19zd2l0Y2hfdG8pCj4+ID4KPj4gPiAjaWZuZGVmIENPTkZJR19N TVUKPj4gPiAjZGVmaW5lIGRvX3BhZ2VfZmF1bHQgZG9fdHJhcF91bmtub3duCj4+ID5AQCAtNTc5 LDcgKzQwNSw3IEBAIEVORFBST0MoX19zd2l0Y2hfdG8pCj4+ID4gICAgICAgLnNlY3Rpb24gIi5y b2RhdGEiCj4+ID4gICAgICAgLmFsaWduIExHUkVHCj4+ID4gICAgICAgLyogRXhjZXB0aW9uIHZl Y3RvciB0YWJsZSAqLwo+PiA+LUVOVFJZKGV4Y3BfdmVjdF90YWJsZSkKPj4gPitTWU1fQ09ERV9T VEFSVChleGNwX3ZlY3RfdGFibGUpCj4+ID4gICAgICAgUklTQ1ZfUFRSIGRvX3RyYXBfaW5zbl9t aXNhbGlnbmVkCj4+ID4gICAgICAgQUxUX0lOU05fRkFVTFQoUklTQ1ZfUFRSIGRvX3RyYXBfaW5z bl9mYXVsdCkKPj4gPiAgICAgICBSSVNDVl9QVFIgZG9fdHJhcF9pbnNuX2lsbGVnYWwKPj4gPkBA IC01ODgsNyArNDE0LDcgQEAgRU5UUlkoZXhjcF92ZWN0X3RhYmxlKQo+PiA+ICAgICAgIFJJU0NW X1BUUiBkb190cmFwX2xvYWRfZmF1bHQKPj4gPiAgICAgICBSSVNDVl9QVFIgZG9fdHJhcF9zdG9y ZV9taXNhbGlnbmVkCj4+ID4gICAgICAgUklTQ1ZfUFRSIGRvX3RyYXBfc3RvcmVfZmF1bHQKPj4g Pi0gICAgICBSSVNDVl9QVFIgZG9fdHJhcF9lY2FsbF91IC8qIHN5c3RlbSBjYWxsLCBnZXRzIGlu dGVyY2VwdGVkICovCj4+ID4rICAgICAgUklTQ1ZfUFRSIGRvX3RyYXBfZWNhbGxfdSAvKiBzeXN0 ZW0gY2FsbCAqLwo+PiA+ICAgICAgIFJJU0NWX1BUUiBkb190cmFwX2VjYWxsX3MKPj4gPiAgICAg ICBSSVNDVl9QVFIgZG9fdHJhcF91bmtub3duCj4+ID4gICAgICAgUklTQ1ZfUFRSIGRvX3RyYXBf ZWNhbGxfbQo+PiA+QEAgLTU5OCwxMSArNDI0LDExIEBAIEVOVFJZKGV4Y3BfdmVjdF90YWJsZSkK Pj4gPiAgICAgICBSSVNDVl9QVFIgZG9fdHJhcF91bmtub3duCj4+ID4gICAgICAgUklTQ1ZfUFRS IGRvX3BhZ2VfZmF1bHQgICAvKiBzdG9yZSBwYWdlIGZhdWx0ICovCj4+ID4gZXhjcF92ZWN0X3Rh YmxlX2VuZDoKPj4gPi1FTkQoZXhjcF92ZWN0X3RhYmxlKQo+PiA+K1NZTV9DT0RFX0VORChleGNw X3ZlY3RfdGFibGUpCj4+ID4KPj4gPiAjaWZuZGVmIENPTkZJR19NTVUKPj4gPi1FTlRSWShfX3Vz ZXJfcnRfc2lncmV0dXJuKQo+PiA+K1NZTV9DT0RFX1NUQVJUKF9fdXNlcl9ydF9zaWdyZXR1cm4p Cj4+ID4gICAgICAgbGkgYTcsIF9fTlJfcnRfc2lncmV0dXJuCj4+ID4gICAgICAgc2NhbGwKPj4g Pi1FTkQoX191c2VyX3J0X3NpZ3JldHVybikKPj4gPitTWU1fQ09ERV9FTkQoX191c2VyX3J0X3Np Z3JldHVybikKPj4gPiAjZW5kaWYKPj4gPmRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2tlcm5lbC9o ZWFkLmggYi9hcmNoL3Jpc2N2L2tlcm5lbC9oZWFkLmgKPj4gPmluZGV4IDcyNjczMWFkYTUzNC4u YTU1NmZkYWFmZWQ5IDEwMDY0NAo+PiA+LS0tIGEvYXJjaC9yaXNjdi9rZXJuZWwvaGVhZC5oCj4+ ID4rKysgYi9hcmNoL3Jpc2N2L2tlcm5lbC9oZWFkLmgKPj4gPkBAIC0xMCw3ICsxMCw2IEBACj4+ ID4KPj4gPiBleHRlcm4gYXRvbWljX3QgaGFydF9sb3R0ZXJ5Owo+PiA+Cj4+ID4tYXNtbGlua2Fn ZSB2b2lkIGRvX3BhZ2VfZmF1bHQoc3RydWN0IHB0X3JlZ3MgKnJlZ3MpOwo+PiA+IGFzbWxpbmth Z2Ugdm9pZCBfX2luaXQgc2V0dXBfdm0odWludHB0cl90IGR0Yl9wYSk7Cj4+ID4gI2lmZGVmIENP TkZJR19YSVBfS0VSTkVMCj4+ID4gYXNtbGlua2FnZSB2b2lkIF9faW5pdCBfX2NvcHlfZGF0YSh2 b2lkKTsKPj4gPmRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2tlcm5lbC9wdHJhY2UuYyBiL2FyY2gv cmlzY3Yva2VybmVsL3B0cmFjZS5jCj4+ID5pbmRleCA0NGY0YjFjYTMxNWQuLjIzYzQ4YjE0YTBl NyAxMDA2NDQKPj4gPi0tLSBhL2FyY2gvcmlzY3Yva2VybmVsL3B0cmFjZS5jCj4+ID4rKysgYi9h cmNoL3Jpc2N2L2tlcm5lbC9wdHJhY2UuYwo+PiA+QEAgLTE5LDkgKzE5LDYgQEAKPj4gPiAjaW5j bHVkZSA8bGludXgvc2NoZWQuaD4KPj4gPiAjaW5jbHVkZSA8bGludXgvc2NoZWQvdGFza19zdGFj ay5oPgo+PiA+Cj4+ID4tI2RlZmluZSBDUkVBVEVfVFJBQ0VfUE9JTlRTCj4+ID4tI2luY2x1ZGUg PHRyYWNlL2V2ZW50cy9zeXNjYWxscy5oPgo+PiA+LQo+PiA+IGVudW0gcmlzY3ZfcmVnc2V0IHsK Pj4gPiAgICAgICBSRUdTRVRfWCwKPj4gPiAjaWZkZWYgQ09ORklHX0ZQVQo+PiA+QEAgLTIyOCw0 NiArMjI1LDYgQEAgbG9uZyBhcmNoX3B0cmFjZShzdHJ1Y3QgdGFza19zdHJ1Y3QgKmNoaWxkLCBs b25nIHJlcXVlc3QsCj4+ID4gICAgICAgcmV0dXJuIHJldDsKPj4gPiB9Cj4+ID4KPj4gPi0vKgo+ PiA+LSAqIEFsbG93cyBQVFJBQ0VfU1lTQ0FMTCB0byB3b3JrLiAgVGhlc2UgYXJlIGNhbGxlZCBm cm9tIGVudHJ5LlMgaW4KPj4gPi0gKiB7aGFuZGxlLHJldF9mcm9tfV9zeXNjYWxsLgo+PiA+LSAq Lwo+PiA+LV9fdmlzaWJsZSBpbnQgZG9fc3lzY2FsbF90cmFjZV9lbnRlcihzdHJ1Y3QgcHRfcmVn cyAqcmVncykKPj4gPi17Cj4+ID4tICAgICAgaWYgKHRlc3RfdGhyZWFkX2ZsYWcoVElGX1NZU0NB TExfVFJBQ0UpKQo+PiA+LSAgICAgICAgICAgICAgaWYgKHB0cmFjZV9yZXBvcnRfc3lzY2FsbF9l bnRyeShyZWdzKSkKPj4gPi0gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOwo+PiA+LQo+ PiA+LSAgICAgIC8qCj4+ID4tICAgICAgICogRG8gdGhlIHNlY3VyZSBjb21wdXRpbmcgYWZ0ZXIg cHRyYWNlOyBmYWlsdXJlcyBzaG91bGQgYmUgZmFzdC4KPj4gPi0gICAgICAgKiBJZiB0aGlzIGZh aWxzIHdlIG1pZ2h0IGhhdmUgcmV0dXJuIHZhbHVlIGluIGEwIGZyb20gc2VjY29tcAo+PiA+LSAg ICAgICAqICh2aWEgU0VDQ09NUF9SRVRfRVJSTk8vVFJBQ0UpLgo+PiA+LSAgICAgICAqLwo+PiA+ LSAgICAgIGlmIChzZWN1cmVfY29tcHV0aW5nKCkgPT0gLTEpCj4+ID4tICAgICAgICAgICAgICBy ZXR1cm4gLTE7Cj4+ID4tCj4+ID4tI2lmZGVmIENPTkZJR19IQVZFX1NZU0NBTExfVFJBQ0VQT0lO VFMKPj4gPi0gICAgICBpZiAodGVzdF90aHJlYWRfZmxhZyhUSUZfU1lTQ0FMTF9UUkFDRVBPSU5U KSkKPj4gPi0gICAgICAgICAgICAgIHRyYWNlX3N5c19lbnRlcihyZWdzLCBzeXNjYWxsX2dldF9u cihjdXJyZW50LCByZWdzKSk7Cj4+ID4tI2VuZGlmCj4+ID4tCj4+ID4tICAgICAgYXVkaXRfc3lz Y2FsbF9lbnRyeShyZWdzLT5hNywgcmVncy0+YTAsIHJlZ3MtPmExLCByZWdzLT5hMiwgcmVncy0+ YTMpOwo+PiA+LSAgICAgIHJldHVybiAwOwo+PiA+LX0KPj4gPi0KPj4gPi1fX3Zpc2libGUgdm9p ZCBkb19zeXNjYWxsX3RyYWNlX2V4aXQoc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCj4+ID4tewo+PiA+ LSAgICAgIGF1ZGl0X3N5c2NhbGxfZXhpdChyZWdzKTsKPj4gPi0KPj4gPi0gICAgICBpZiAodGVz dF90aHJlYWRfZmxhZyhUSUZfU1lTQ0FMTF9UUkFDRSkpCj4+ID4tICAgICAgICAgICAgICBwdHJh Y2VfcmVwb3J0X3N5c2NhbGxfZXhpdChyZWdzLCAwKTsKPj4gPi0KPj4gPi0jaWZkZWYgQ09ORklH X0hBVkVfU1lTQ0FMTF9UUkFDRVBPSU5UUwo+PiA+LSAgICAgIGlmICh0ZXN0X3RocmVhZF9mbGFn KFRJRl9TWVNDQUxMX1RSQUNFUE9JTlQpKQo+PiA+LSAgICAgICAgICAgICAgdHJhY2Vfc3lzX2V4 aXQocmVncywgcmVnc19yZXR1cm5fdmFsdWUocmVncykpOwo+PiA+LSNlbmRpZgo+PiA+LX0KPj4g Pi0KPj4gPiAjaWZkZWYgQ09ORklHX0NPTVBBVAo+PiA+IHN0YXRpYyBpbnQgY29tcGF0X3Jpc2N2 X2dwcl9nZXQoc3RydWN0IHRhc2tfc3RydWN0ICp0YXJnZXQsCj4+ID4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHVzZXJfcmVnc2V0ICpyZWdzZXQsCj4+ID5kaWZm IC0tZ2l0IGEvYXJjaC9yaXNjdi9rZXJuZWwvc2lnbmFsLmMgYi9hcmNoL3Jpc2N2L2tlcm5lbC9z aWduYWwuYwo+PiA+aW5kZXggYmZiMmFmYTQxMzVmLi4yZTM2NTA4NDQxN2UgMTAwNjQ0Cj4+ID4t LS0gYS9hcmNoL3Jpc2N2L2tlcm5lbC9zaWduYWwuYwo+PiA+KysrIGIvYXJjaC9yaXNjdi9rZXJu ZWwvc2lnbmFsLmMKPj4gPkBAIC0xMiw2ICsxMiw3IEBACj4+ID4gI2luY2x1ZGUgPGxpbnV4L3N5 c2NhbGxzLmg+Cj4+ID4gI2luY2x1ZGUgPGxpbnV4L3Jlc3VtZV91c2VyX21vZGUuaD4KPj4gPiAj aW5jbHVkZSA8bGludXgvbGlua2FnZS5oPgo+PiA+KyNpbmNsdWRlIDxsaW51eC9lbnRyeS1jb21t b24uaD4KPj4gPgo+PiA+ICNpbmNsdWRlIDxhc20vdWNvbnRleHQuaD4KPj4gPiAjaW5jbHVkZSA8 YXNtL3Zkc28uaD4KPj4gPkBAIC0yNzQsNyArMjc1LDcgQEAgc3RhdGljIHZvaWQgaGFuZGxlX3Np Z25hbChzdHJ1Y3Qga3NpZ25hbCAqa3NpZywgc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCj4+ID4gICAg ICAgc2lnbmFsX3NldHVwX2RvbmUocmV0LCBrc2lnLCAwKTsKPj4gPiB9Cj4+ID4KPj4gPi1zdGF0 aWMgdm9pZCBkb19zaWduYWwoc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCj4+ID4rdm9pZCBhcmNoX2Rv X3NpZ25hbF9vcl9yZXN0YXJ0KHN0cnVjdCBwdF9yZWdzICpyZWdzKQo+PiA+IHsKPj4gPiAgICAg ICBzdHJ1Y3Qga3NpZ25hbCBrc2lnOwo+PiA+Cj4+ID5AQCAtMzExLDI5ICszMTIsMyBAQCBzdGF0 aWMgdm9pZCBkb19zaWduYWwoc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCj4+ID4gICAgICAgICovCj4+ ID4gICAgICAgcmVzdG9yZV9zYXZlZF9zaWdtYXNrKCk7Cj4+ID4gfQo+PiA+LQo+PiA+LS8qCj4+ ID4tICogSGFuZGxlIGFueSBwZW5kaW5nIHdvcmsgb24gdGhlIHJlc3VtZS10by11c2Vyc3BhY2Ug cGF0aCwgYXMgaW5kaWNhdGVkIGJ5Cj4+ID4tICogX1RJRl9XT1JLX01BU0suIEVudGVyZWQgZnJv bSBhc3NlbWJseSB3aXRoIElSUXMgb2ZmLgo+PiA+LSAqLwo+PiA+LWFzbWxpbmthZ2UgX192aXNp YmxlIHZvaWQgZG9fd29ya19wZW5kaW5nKHN0cnVjdCBwdF9yZWdzICpyZWdzLAo+PiA+LSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHRocmVhZF9p bmZvX2ZsYWdzKQo+PiA+LXsKPj4gPi0gICAgICBkbyB7Cj4+ID4tICAgICAgICAgICAgICBpZiAo dGhyZWFkX2luZm9fZmxhZ3MgJiBfVElGX05FRURfUkVTQ0hFRCkgewo+PiA+LSAgICAgICAgICAg ICAgICAgICAgICBzY2hlZHVsZSgpOwo+PiA+LSAgICAgICAgICAgICAgfSBlbHNlIHsKPj4gPi0g ICAgICAgICAgICAgICAgICAgICAgbG9jYWxfaXJxX2VuYWJsZSgpOwo+PiA+LSAgICAgICAgICAg ICAgICAgICAgICBpZiAodGhyZWFkX2luZm9fZmxhZ3MgJiBfVElGX1VQUk9CRSkKPj4gPi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB1cHJvYmVfbm90aWZ5X3Jlc3VtZShyZWdzKTsKPj4g Pi0gICAgICAgICAgICAgICAgICAgICAgLyogSGFuZGxlIHBlbmRpbmcgc2lnbmFsIGRlbGl2ZXJ5 ICovCj4+ID4tICAgICAgICAgICAgICAgICAgICAgIGlmICh0aHJlYWRfaW5mb19mbGFncyAmIChf VElGX1NJR1BFTkRJTkcgfAo+PiA+LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgX1RJRl9OT1RJRllfU0lHTkFMKSkKPj4gPi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBkb19zaWduYWwocmVncyk7Cj4+ID4tICAgICAgICAgICAgICAgICAgICAgIGlm ICh0aHJlYWRfaW5mb19mbGFncyAmIF9USUZfTk9USUZZX1JFU1VNRSkKPj4gPi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICByZXN1bWVfdXNlcl9tb2RlX3dvcmsocmVncyk7Cj4+ID4tICAg ICAgICAgICAgICB9Cj4+ID4tICAgICAgICAgICAgICBsb2NhbF9pcnFfZGlzYWJsZSgpOwo+PiA+ LSAgICAgICAgICAgICAgdGhyZWFkX2luZm9fZmxhZ3MgPSByZWFkX3RocmVhZF9mbGFncygpOwo+ PiA+LSAgICAgIH0gd2hpbGUgKHRocmVhZF9pbmZvX2ZsYWdzICYgX1RJRl9XT1JLX01BU0spOwo+ PiA+LX0KPj4gPmRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2tlcm5lbC90cmFwcy5jIGIvYXJjaC9y aXNjdi9rZXJuZWwvdHJhcHMuYwo+PiA+aW5kZXggOTZlYzc2YzU0ZmYyLi42OWQ2MTlkZGJjZDUg MTAwNjQ0Cj4+ID4tLS0gYS9hcmNoL3Jpc2N2L2tlcm5lbC90cmFwcy5jCj4+ID4rKysgYi9hcmNo L3Jpc2N2L2tlcm5lbC90cmFwcy5jCj4+ID5AQCAtMTcsMTIgKzE3LDE0IEBACj4+ID4gI2luY2x1 ZGUgPGxpbnV4L21vZHVsZS5oPgo+PiA+ICNpbmNsdWRlIDxsaW51eC9pcnEuaD4KPj4gPiAjaW5j bHVkZSA8bGludXgva2V4ZWMuaD4KPj4gPisjaW5jbHVkZSA8bGludXgvZW50cnktY29tbW9uLmg+ Cj4+ID4KPj4gPiAjaW5jbHVkZSA8YXNtL2FzbS1wcm90b3R5cGVzLmg+Cj4+ID4gI2luY2x1ZGUg PGFzbS9idWcuaD4KPj4gPiAjaW5jbHVkZSA8YXNtL2Nzci5oPgo+PiA+ICNpbmNsdWRlIDxhc20v cHJvY2Vzc29yLmg+Cj4+ID4gI2luY2x1ZGUgPGFzbS9wdHJhY2UuaD4KPj4gPisjaW5jbHVkZSA8 YXNtL3N5c2NhbGwuaD4KPj4gPiAjaW5jbHVkZSA8YXNtL3RocmVhZF9pbmZvLmg+Cj4+ID4KPj4g PiBpbnQgc2hvd191bmhhbmRsZWRfc2lnbmFscyA9IDE7Cj4+ID5AQCAtOTksMTAgKzEwMSwxOCBA QCBzdGF0aWMgdm9pZCBkb190cmFwX2Vycm9yKHN0cnVjdCBwdF9yZWdzICpyZWdzLCBpbnQgc2ln bm8sIGludCBjb2RlLAo+PiA+ICNlbHNlCj4+ID4gI2RlZmluZSBfX3RyYXBfc2VjdGlvbiBub2lu c3RyCj4+ID4gI2VuZGlmCj4+ID4tI2RlZmluZSBET19FUlJPUl9JTkZPKG5hbWUsIHNpZ25vLCBj b2RlLCBzdHIpICAgICAgICAgICAgICAgICAgICAgICAgIFwKPj4gPi1hc21saW5rYWdlIF9fdmlz aWJsZSBfX3RyYXBfc2VjdGlvbiB2b2lkIG5hbWUoc3RydWN0IHB0X3JlZ3MgKnJlZ3MpICAgXAo+ PiA+LXsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcCj4+ID4tICAgICAgZG9fdHJhcF9lcnJvcihyZWdzLCBzaWdubywg Y29kZSwgcmVncy0+ZXBjLCAiT29wcyAtICIgc3RyKTsgICAgIFwKPj4gPisjZGVmaW5lIERPX0VS Uk9SX0lORk8obmFtZSwgc2lnbm8sIGNvZGUsIHN0cikgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcCj4+ID4rYXNtbGlua2FnZSBfX3Zpc2libGUgX190cmFwX3NlY3Rpb24gdm9pZCBu YW1lKHN0cnVjdCBwdF9yZWdzICpyZWdzKSAgICAgICAgICAgXAo+PiA+K3sgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwKPj4gPisgICAgICBpZiAodXNlcl9tb2RlKHJlZ3MpKSB7ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4+ID4rICAgICAgICAgICAgICBp cnFlbnRyeV9lbnRlcl9mcm9tX3VzZXJfbW9kZShyZWdzKTsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXAo+PiA+KyAgICAgICAgICAgICAgZG9fdHJhcF9lcnJvcihyZWdzLCBzaWdubywgY29k ZSwgcmVncy0+ZXBjLCAiT29wcyAtICIgc3RyKTsgICAgIFwKPj4gPisgICAgICAgICAgICAgIGly cWVudHJ5X2V4aXRfdG9fdXNlcl9tb2RlKHJlZ3MpOyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCj4+ID4rICAgICAgfSBlbHNlIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+PiA+KyAgICAgICAgICAgICAgaXJx ZW50cnlfc3RhdGVfdCBzdGF0ZSA9IGlycWVudHJ5X25taV9lbnRlcihyZWdzKTsgICAgICAgICAg ICAgIFwKPj4gPisgICAgICAgICAgICAgIGRvX3RyYXBfZXJyb3IocmVncywgc2lnbm8sIGNvZGUs IHJlZ3MtPmVwYywgIk9vcHMgLSAiIHN0cik7ICAgICBcCj4+ID4rICAgICAgICAgICAgICBpcnFl bnRyeV9ubWlfZXhpdChyZWdzLCBzdGF0ZSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXAo+PiA+KyAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPj4gPiB9Cj4+ID4KPj4gPiBET19FUlJP Ul9JTkZPKGRvX3RyYXBfdW5rbm93biwKPj4gPkBAIC0xMjQsMjYgKzEzNCw1MCBAQCBET19FUlJP Ul9JTkZPKGRvX3RyYXBfc3RvcmVfbWlzYWxpZ25lZCwKPj4gPiBpbnQgaGFuZGxlX21pc2FsaWdu ZWRfbG9hZChzdHJ1Y3QgcHRfcmVncyAqcmVncyk7Cj4+ID4gaW50IGhhbmRsZV9taXNhbGlnbmVk X3N0b3JlKHN0cnVjdCBwdF9yZWdzICpyZWdzKTsKPj4gPgo+PiA+LWFzbWxpbmthZ2Ugdm9pZCBf X3RyYXBfc2VjdGlvbiBkb190cmFwX2xvYWRfbWlzYWxpZ25lZChzdHJ1Y3QgcHRfcmVncyAqcmVn cykKPj4gPithc21saW5rYWdlIF9fdmlzaWJsZSBfX3RyYXBfc2VjdGlvbiB2b2lkIGRvX3RyYXBf bG9hZF9taXNhbGlnbmVkKHN0cnVjdCBwdF9yZWdzICpyZWdzKQo+PiA+IHsKPj4gPi0gICAgICBp ZiAoIWhhbmRsZV9taXNhbGlnbmVkX2xvYWQocmVncykpCj4+ID4tICAgICAgICAgICAgICByZXR1 cm47Cj4+ID4tICAgICAgZG9fdHJhcF9lcnJvcihyZWdzLCBTSUdCVVMsIEJVU19BRFJBTE4sIHJl Z3MtPmVwYywKPj4gPi0gICAgICAgICAgICAgICAgICAgICJPb3BzIC0gbG9hZCBhZGRyZXNzIG1p c2FsaWduZWQiKTsKPj4gPisgICAgICBpZiAodXNlcl9tb2RlKHJlZ3MpKSB7Cj4+ID4rICAgICAg ICAgICAgICBpcnFlbnRyeV9lbnRlcl9mcm9tX3VzZXJfbW9kZShyZWdzKTsKPj4gPisKPj4gPisg ICAgICAgICAgICAgIGlmIChoYW5kbGVfbWlzYWxpZ25lZF9sb2FkKHJlZ3MpKQo+PiA+KyAgICAg ICAgICAgICAgICAgICAgICBkb190cmFwX2Vycm9yKHJlZ3MsIFNJR0JVUywgQlVTX0FEUkFMTiwg cmVncy0+ZXBjLAo+PiA+KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiT29wcyAtIGxvYWQg YWRkcmVzcyBtaXNhbGlnbmVkIik7Cj4+ID4rCj4+ID4rICAgICAgICAgICAgICBpcnFlbnRyeV9l eGl0X3RvX3VzZXJfbW9kZShyZWdzKTsKPj4gPisgICAgICB9IGVsc2Ugewo+PiA+KyAgICAgICAg ICAgICAgaXJxZW50cnlfc3RhdGVfdCBzdGF0ZSA9IGlycWVudHJ5X25taV9lbnRlcihyZWdzKTsK Pj4gPisKPj4gPisgICAgICAgICAgICAgIGlmIChoYW5kbGVfbWlzYWxpZ25lZF9sb2FkKHJlZ3Mp KQo+PiA+KyAgICAgICAgICAgICAgICAgICAgICBkb190cmFwX2Vycm9yKHJlZ3MsIFNJR0JVUywg QlVTX0FEUkFMTiwgcmVncy0+ZXBjLAo+PiA+KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAi T29wcyAtIGxvYWQgYWRkcmVzcyBtaXNhbGlnbmVkIik7Cj4+ID4rCj4+ID4rICAgICAgICAgICAg ICBpcnFlbnRyeV9ubWlfZXhpdChyZWdzLCBzdGF0ZSk7Cj4+ID4rICAgICAgfQo+PiA+IH0KPj4g Pgo+PiA+LWFzbWxpbmthZ2Ugdm9pZCBfX3RyYXBfc2VjdGlvbiBkb190cmFwX3N0b3JlX21pc2Fs aWduZWQoc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCj4+ID4rYXNtbGlua2FnZSBfX3Zpc2libGUgX190 cmFwX3NlY3Rpb24gdm9pZCBkb190cmFwX3N0b3JlX21pc2FsaWduZWQoc3RydWN0IHB0X3JlZ3Mg KnJlZ3MpCj4+ID4gewo+PiA+LSAgICAgIGlmICghaGFuZGxlX21pc2FsaWduZWRfc3RvcmUocmVn cykpCj4+ID4tICAgICAgICAgICAgICByZXR1cm47Cj4+ID4tICAgICAgZG9fdHJhcF9lcnJvcihy ZWdzLCBTSUdCVVMsIEJVU19BRFJBTE4sIHJlZ3MtPmVwYywKPj4gPi0gICAgICAgICAgICAgICAg ICAgICJPb3BzIC0gc3RvcmUgKG9yIEFNTykgYWRkcmVzcyBtaXNhbGlnbmVkIik7Cj4+ID4rICAg ICAgaWYgKHVzZXJfbW9kZShyZWdzKSkgewo+PiA+KyAgICAgICAgICAgICAgaXJxZW50cnlfZW50 ZXJfZnJvbV91c2VyX21vZGUocmVncyk7Cj4+ID4rCj4+ID4rICAgICAgICAgICAgICBpZiAoaGFu ZGxlX21pc2FsaWduZWRfc3RvcmUocmVncykpCj4+ID4rCj4KPgo+CgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1yaXNjdiBtYWlsaW5nIGxpc3QK bGludXgtcmlzY3ZAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LXJpc2N2Cg==