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 14476C47074 for ; Sat, 6 Jan 2024 14:08:12 +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:MIME-Version:References: Message-ID: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=PgB0hR3Jp96IHQoMIIB0E00UashlZOBNNx40rDpvtL0=; b=ztTsQarUHjGPt7 hjDvd9fwjQ80Sk5NjrYRGS4yB+f4JofTFKs/Yxeq2ovKtUbGf7HiscnmG1sZb+Xw8W8TI/UTRyhqL 68UUx3aDfm0wSxHcX/LuY4ZOJK4+c3/dEhK7mFokD7WZETHnxy6B3Xd/E11mUFYaCV0/xYMMvZk3d rRaaicu5zDGu4DJ9U6uRiNCx4LTGSpdPeJ4+VaHH5qjpTu4EOsSlg+YqZ2VjZYo/nh26jW4MfC0yJ dwqCMOnd1xFYp8AmelIYRkIoueYmzk+jqyscxxcDgL4iYrDNKzqG44h2JQUEzRv52hzbySd2oS2/m IYTGsv9jEX4SLgXbhJgQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1rM7LH-001P4T-2c; Sat, 06 Jan 2024 14:08:03 +0000 Received: from sin.source.kernel.org ([2604:1380:40e1:4800::1]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1rM7LC-001P1q-0D for linux-riscv@lists.infradead.org; Sat, 06 Jan 2024 14:08:02 +0000 Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sin.source.kernel.org (Postfix) with ESMTP id 18574CE000E; Sat, 6 Jan 2024 14:07:48 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 61CF9C433C7; Sat, 6 Jan 2024 14:07:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1704550065; bh=uWV5YeCMZAAi1e5lgn/Dr7LQT6nJnDuXlfDBq2ZGA+E=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=CogpKtDU8NDJOIwPzd1+6OtaKwruNFowu909Rk6Qn9mGB/D8RMrhHQt2vCQ6pni4e rGEuqbnOT1PIolL4uwFbbfjOK7gTMU2sNXojZexayJQAZuQqHv0jRBy3qw0bNB+xOg i0M/nmGfHAD/MwwJiBm1H/XlpFZ3DSI8hBKpGMDGIj75g4t/QiYX6Y1+RnAX8kbaFc uvwwwaKdOmz/ZU5d69VQKxZqok1KSoTQk2aqNokSz7rp/a/5QOYTJrLTIGHwOdtrh3 DDqw9lt9xC0AH6Y8Wt8PNRL/9A8IbqFQveusJqRg0r3J+JHgqh0ciEEdrPEodbowAA 1o/p7couhchaQ== Date: Sat, 6 Jan 2024 21:55:01 +0800 From: Jisheng Zhang To: Alexandre Ghiti Cc: Paul Walmsley , Palmer Dabbelt , Albert Ou , linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] riscv: Add support for BATCHED_UNMAP_TLB_FLUSH Message-ID: References: <20240102141851.105144-1-alexghiti@rivosinc.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240106_060758_457211_D3B4A673 X-CRM114-Status: GOOD ( 52.00 ) 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 T24gU2F0LCBKYW4gMDYsIDIwMjQgYXQgMDk6NDc6MDRQTSArMDgwMCwgSmlzaGVuZyBaaGFuZyB3 cm90ZToKPiBPbiBGcmksIEphbiAwNSwgMjAyNCBhdCAwMjozNjo0NFBNICswMTAwLCBBbGV4YW5k cmUgR2hpdGkgd3JvdGU6Cj4gPiBPbiBUaHUsIEphbiA0LCAyMDI0IGF0IDY6NDLigK9QTSBBbGV4 YW5kcmUgR2hpdGkgPGFsZXhnaGl0aUByaXZvc2luYy5jb20+IHdyb3RlOgo+ID4gPgo+ID4gPiBI aSBKaXNoZW5nLAo+ID4gPgo+ID4gPiBPbiBXZWQsIEphbiAzLCAyMDI0IGF0IDEyOjEw4oCvUE0g SmlzaGVuZyBaaGFuZyA8anN6aGFuZ0BrZXJuZWwub3JnPiB3cm90ZToKPiA+ID4gPgo+ID4gPiA+ IE9uIFR1ZSwgSmFuIDAyLCAyMDI0IGF0IDAzOjE4OjUxUE0gKzAxMDAsIEFsZXhhbmRyZSBHaGl0 aSB3cm90ZToKPiA+ID4gPiA+IEFsbG93IHRvIGRlZmVyIHRoZSBmbHVzaGluZyBvZiB0aGUgVExC IHdoZW4gdW5tYXBwaW5nIHBnZXMsIHdoaWNoIGFsbG93cwo+ID4gPiA+ID4gdG8gcmVkdWNlIHRo ZSBudW1iZXJzIG9mIElQSSBhbmQgdGhlIG51bWJlciBvZiBzZmVuY2Uudm1hLgo+ID4gPiA+ID4K PiA+ID4gPiA+IFRoZSB1YmVuY2htYXJjaCB1c2VkIGluIGNvbW1pdCA0M2IzZGZkZDA0NTUgKCJh cm02NDogc3VwcG9ydAo+ID4gPiA+ID4gYmF0Y2hlZC9kZWZlcnJlZCB0bGIgc2hvb3Rkb3duIGR1 cmluZyBwYWdlIHJlY2xhbWF0aW9uL21pZ3JhdGlvbiIpIHNob3dzCj4gPiA+ID4gPiBnb29kIHBl cmZvcm1hbmNlIGltcHJvdmVtZW50IGFuZCBwZXJmIHJlcG9ydHMgYW4gaW1wb3J0YW50IGRlY3Jl YXNlIGluCj4gPiA+ID4gPiB0aW1lIHNwZW50IGZsdXNoaW5nIHRoZSB0bGIgKHJlc3VsdHMgY29t ZSBmcm9tIHFlbXUpOgo+ID4gPiA+Cj4gPiA+ID4gSGkgQWxleCwKPiA+ID4gPgo+ID4gPiA+IEkg dHJpZWQgdGhpcyBtaWNybyBiZW5jaG1hcmsgd2l0aCB5b3VyIHBhdGNoIG9uIFQtSEVBRCBUSDE1 MjAgcGxhdGZvcm0sIEkKPiA+ID4gPiBkaWRuJ3Qgc2VlIGFueSBwZXJmb3JtYW5jZSBpbXByb3Zl bWVudCBmb3IgdGhlIG1pY3JvIGJlbmNobWFyay4gUGVyCj4gPiA+ID4gbXl1bmRlcnN0YW5kaW5n LCB0aGUgbWljcm8gYmVuY2htYXJrIGlzIHNwZWNpYWwgY2FzZSBmb3IgYXJtNjQgYmVjYXVzZQo+ ID4gPiA+IGluIGEgbm9ybWFsIHRsYiBmbHVzaCBmbG93LCBiZWxvdyBzZXF1ZW5jZSBpcyBuZWNl c3Nhcnk6Cj4gPiA+ID4KPiA+ID4gPiB0bGJpCj4gPiA+ID4gZHNiCj4gPiA+ID4KPiA+ID4gPgo+ ID4gPiA+IHdoaWxlIHdpdGggQkFUQ0hFRF9VTk1BUF9UTEJfRkxVU0gsIHRoZSBhcm02NCBqdXN0 IGRvZXMgJ3RsYmknLCBsZWF2aW5nCj4gPiA+ID4gdGhlIGRzYiB0byB0aGUgYXJjaF90bGJiYXRj aF9mbHVzaCgpLiBTbyB0aGUgZmluYWwgcmVzdWx0IGlzCj4gPiA+ID4KPiA+ID4gPiBzZXZlcmFs ICd0bGJpICsgZHNiJyBzZXF1ZW5jZSBWUy4gc2V2ZXJhbCAndGxiaScgaW5zdHJ1Y3Rpb25zICsg b25seSBvbmUgZHNiCj4gPiA+ID4gVGhlIHBlcmZvcm1hbmNlIGltcHJvdmVtZW50IGNvbWVzIGZy b20gdGhlIHVubmVjZXNzYXJ5IGRzYiBlbGltaW5hdGlvbnMuCj4gPiA+Cj4gPiA+IFNvbWUgYmF0 Y2hpbmcgc2hvdWxkIHRha2UgcGxhY2UsIGFuZCB3aXRoIHRoaXMgcGF0Y2gsIHdlIG9ubHkgc2Vu ZCBvbmUKPiA+ID4gImZ1bGwiIHNmZW5jZS52bWEgaW5zdGVhZCBvZiBhICJsb2NhbCIgc2ZlbmNl LnZtYSBmb3IgZWFjaCBwYWdlLCBpdAo+ID4gPiBzZWVtcyB3ZWlyZCB0aGF0IHlvdSBkb24ndCBz ZWUgYW55IGltcHJvdmVtZW50LCBJIHdvdWxkIGhhdmUgdGhvdWdodAo+ID4gPiB0aGF0IG9uZSAi ZnVsbCIgc2ZlbmNlLnZtYSB3b3VsZCBiZSBiZXR0ZXIuCj4gPiA+Cj4gPiA+ID4KPiA+ID4gPiBE byB5b3UgaGF2ZSBzdWl0YWJsZSBiZW5jaG1hcmsocykgZm9yIEJBVENIRURfVU5NQVBfVExCX0ZM VVNIIG9uIHJpc2N2Pwo+ID4gPgo+ID4gPiBDYW4geW91IGdpdmUgdGhlIGZvbGxvd2luZyBiZW5j aG1hcmsgYSB0cnk/IEkgc2ltcGx5IGNyZWF0ZWQgdGhyZWFkcwo+ID4gPiBhbmQgZGlzcGF0Y2hl ZCB0aGVtIG9uIGFsbCB0aGUgY3B1cyB0byBmb3JjZSBJUEkgdXNhZ2UsIHRoYXQgc2hvdWxkIGJl Cj4gPiA+IHdheSBiZXR0ZXIgaWYgdGhlIGJhdGNoaW5nIG9mIHRoZSBmaXJzdCB1YmVuY2htYXJr IGlzIG5vdCBlbm91Z2ggdG8KPiA+ID4gZXhhY2VyYmF0ZSBwZXJmb3JtYW5jZSBpbXByb3ZlbWVu dHMsIGxldCBtZSBrbm93IGFuZCB0aGFua3MgZm9yIHlvdXIKPiA+ID4gdGVzdHMhCj4gPiA+Cj4g PiA+ICNkZWZpbmUgX0dOVV9TT1VSQ0UKPiA+ID4gI2luY2x1ZGUgPHB0aHJlYWQuaD4KPiA+ID4g I2luY2x1ZGUgPHN5cy90eXBlcy5oPgo+ID4gPiAjaW5jbHVkZSA8dW5pc3RkLmg+Cj4gPiA+ICNp bmNsdWRlIDxzeXMvbW1hbi5oPgo+ID4gPiAjaW5jbHVkZSA8c3RyaW5nLmg+Cj4gPiA+ICNpbmNs dWRlIDxlcnJuby5oPgo+ID4gPiAjaW5jbHVkZSA8c2NoZWQuaD4KPiA+ID4gI2luY2x1ZGUgPHRp bWUuaD4KPiA+ID4KPiA+ID4gaW50IHN0aWNrX3RoaXNfdGhyZWFkX3RvX2NvcmUoaW50IGNvcmVf aWQpIHsKPiA+ID4gICAgICAgICBpbnQgbnVtX2NvcmVzID0gc3lzY29uZihfU0NfTlBST0NFU1NP UlNfT05MTik7Cj4gPiA+ICAgICAgICAgaWYgKGNvcmVfaWQgPCAwIHx8IGNvcmVfaWQgPj0gbnVt X2NvcmVzKQo+ID4gPiAgICAgICAgICAgIHJldHVybiBFSU5WQUw7Cj4gPiA+Cj4gPiA+ICAgICAg ICAgY3B1X3NldF90IGNwdXNldDsKPiA+ID4gICAgICAgICBDUFVfWkVSTygmY3B1c2V0KTsKPiA+ ID4gICAgICAgICBDUFVfU0VUKGNvcmVfaWQsICZjcHVzZXQpOwo+ID4gPgo+ID4gPiAgICAgICAg IHB0aHJlYWRfdCBjdXJyZW50X3RocmVhZCA9IHB0aHJlYWRfc2VsZigpOwo+ID4gPiAgICAgICAg IHJldHVybiBwdGhyZWFkX3NldGFmZmluaXR5X25wKGN1cnJlbnRfdGhyZWFkLAo+ID4gPiBzaXpl b2YoY3B1X3NldF90KSwgJmNwdXNldCk7Cj4gPiA+IH0KPiA+ID4KPiA+ID4gc3RhdGljIHZvaWQg KmZuX3RocmVhZCAodm9pZCAqcF9kYXRhKQo+ID4gPiB7Cj4gPiA+ICAgICAgICAgaW50IHJldDsK PiA+ID4gICAgICAgICBwdGhyZWFkX3QgdGhyZWFkOwo+ID4gPgo+ID4gPiAgICAgICAgIHN0aWNr X3RoaXNfdGhyZWFkX3RvX2NvcmUoKGludClwX2RhdGEpOwo+ID4gPgo+ID4gPiAgICAgICAgIHdo aWxlICgxKSB7Cj4gPiA+ICAgICAgICAgICAgICAgICBzbGVlcCgxKTsKPiA+ID4gICAgICAgICB9 Cj4gPiA+Cj4gPiA+ICAgICAgICAgcmV0dXJuIE5VTEw7Cj4gPiA+IH0KPiA+ID4KPiA+ID4gaW50 IG1haW4oKQo+ID4gPiB7Cj4gPiA+ICNkZWZpbmUgU0laRSAoMSAqIDEwMjQgKiAxMDI0KQo+ID4g PiAgICAgICAgIHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKnAgPSBtbWFwKE5VTEwsIFNJWkUsIFBS T1RfUkVBRCB8IFBST1RfV1JJVEUsCj4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTUFQX1NIQVJFRCB8IE1BUF9BTk9OWU1PVVMsIC0xLCAwKTsKPiA+ID4gICAg ICAgICBwdGhyZWFkX3QgdGhyZWFkc1s0XTsKPiA+ID4gICAgICAgICBpbnQgcmV0Owo+ID4gPgo+ ID4gPiAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgNDsgKytpKSB7Cj4gPiA+ICAgICAgICAg ICAgICAgICByZXQgPSBwdGhyZWFkX2NyZWF0ZSgmdGhyZWFkc1tpXSwgTlVMTCwgZm5fdGhyZWFk LCAodm9pZCAqKWkpOwo+ID4gPiAgICAgICAgICAgICAgICAgaWYgKHJldCkKPiA+ID4gICAgICAg ICAgICAgICAgIHsKPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCIlcyIsIHN0 cmVycm9yIChyZXQpKTsKPiA+ID4gICAgICAgICAgICAgICAgIH0KPiA+ID4gICAgICAgICB9Cj4g PiA+Cj4gPiA+ICAgICAgICAgbWVtc2V0KHAsIDB4ODgsIFNJWkUpOwo+ID4gPgo+ID4gPiAgICAg ICAgIGZvciAoaW50IGsgPSAwOyBrIDwgNTAwIC8qIDEwMDAwICovOyBrKyspIHsKPiA+ID4gICAg ICAgICAgICAgICAgIC8qIHN3YXAgaW4gKi8KPiA+ID4gICAgICAgICAgICAgICAgIGZvciAoaW50 IGkgPSAwOyBpIDwgU0laRTsgaSArPSA0MDk2KSB7Cj4gPiA+ICAgICAgICAgICAgICAgICAgICAg ICAgICh2b2lkKXBbaV07Cj4gPiA+ICAgICAgICAgICAgICAgICB9Cj4gPiA+Cj4gPiA+ICAgICAg ICAgICAgICAgICAvKiBzd2FwIG91dCAqLwo+ID4gPiAgICAgICAgICAgICAgICAgbWFkdmlzZShw LCBTSVpFLCBNQURWX1BBR0VPVVQpOwo+ID4gPiAgICAgICAgIH0KPiA+ID4KPiA+ID4gICAgICAg ICBmb3IgKGludCBpID0gMDsgaSA8IDQ7IGkrKykKPiA+ID4gICAgICAgICB7Cj4gPiA+ICAgICAg ICAgICAgICAgICBwdGhyZWFkX2NhbmNlbCh0aHJlYWRzW2ldKTsKPiA+ID4gICAgICAgICB9Cj4g PiA+Cj4gPiA+ICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCA0OyBpKyspCj4gPiA+ICAgICAg ICAgewo+ID4gPiAgICAgICAgICAgICAgICAgcHRocmVhZF9qb2luKHRocmVhZHNbaV0sIE5VTEwp Owo+ID4gPiAgICAgICAgIH0KPiA+ID4KPiA+ID4gICAgICAgICByZXR1cm4gMDsKPiA+ID4KPiA+ ID4gfQo+ID4gPgo+ID4gCj4gPiBTbyBJIHJlbW92ZWQgdGhlIGR1c3QgZnJvbSBteSB1bm1hdGNo ZWQgYW5kIHJhbiB0aGUgYmVuY2htYXJrcyBJIHByb3Bvc2VkOgo+ID4gCj4gPiBXaXRob3V0IHRo aXMgcGF0Y2g6Cj4gPiAqIGJlbmNobWFyayBmcm9tIGNvbW1pdCA0M2IzZGZkZDA0NTUgKDQgcnVu cykgIDogfjIwLjNzCj4gPiAqIHNhbWUgYmVuY2htYXJrIHdpdGggdGhyZWFkcyAoNCBydW5zKSAg ICAgICAgICAgICAgICA6IH4yNy40cwo+ID4gCj4gPiBXaXRoIHRoaXMgcGF0Y2g6Cj4gPiAqIGJl bmNobWFyayBmcm9tIGNvbW1pdCA0M2IzZGZkZDA0NTUgKDQgcnVucykgIDogfjE3LjlzCj4gPiAq IHNhbWUgYmVuY2htYXJrIHdpdGggdGhyZWFkcyAoNCBydW5zKSAgICAgICAgICAgICAgICA6IH4x OC4xcwo+ID4gCj4gPiBTbyBhIHNtYWxsIGltcHJvdmVtZW50IGZvciB0aGUgc2luZ2xlIHRocmVh ZCBiZW5jaG1hcmssIGJ1dCBpdCBkZXBlbmRzCj4gPiBvbiB0aGUgbnVtYmVyIG9mIHBhZ2VzIHRo YXQgZ2V0IGZsdXNoZWQsIHNvIHRvIG1lIHRoYXQncyBub3QKPiA+IGFwcGxpY2FibGUgZm9yIHRo ZSBnZW5lcmFsIGNhc2UuIEZvciB0aGUgc2FtZSBiZW5jaG1hcmsgd2l0aCBtdWx0aXBsZQo+ID4g dGhyZWFkcywgdGhhdCdzIH4zNCUgaW1wcm92ZW1lbnQuIEknbGwgYWRkIHRob3NlIG51bWJlcnMg dG8gdGhlIHYyLAo+ID4gYW5kIEpJc2hlbmcgaWYgeW91IGNhbiBwcm92aWRlIHNvbWUgdG9vLCBJ J2xsIGFkZCB0aGVtIHRvbyEKPiAKPiBIaSBBbGV4LAo+IAo+IHRoZSB0aHJlYWRlZCB2ZXJzaW9u IHNob3cgfjc4JSBpbXByb3ZlbWVudCEgaW1wcmVzc2l2ZSEKClRlc3RlZCBvbiBULUhFQUQgVEgx NTIwIHBsYXRmb3JtCj4gCj4gU28gZm9yIHRoZSBwYXRjaDoKPiAKPiBSZXZpZXdlZC1ieTogSmlz aGVuZyBaaGFuZyA8anN6aGFuZ0BrZXJuZWwub3JnPgo+IFRlc3RlZC1ieTogSmlzaGVuZyBaaGFu ZyA8anN6aGFuZ0BrZXJuZWwub3JnPgo+IAo+IFRoYW5rcwo+ID4gCj4gPiBUaGFua3MsCj4gPiAK PiA+IEFsZXgKPiA+IAo+ID4gPiA+Cj4gPiA+ID4gVGhhbmtzCj4gPiA+ID4KPiA+ID4gPiA+Cj4g PiA+ID4gPiBCZWZvcmUgdGhpcyBwYXRjaDoKPiA+ID4gPiA+Cj4gPiA+ID4gPiByZWFsICAybTEu MTM1cwo+ID4gPiA+ID4gdXNlciAgMG0wLjk4MHMKPiA+ID4gPiA+IHN5cyAgIDJtMC4wOTZzCj4g PiA+ID4gPgo+ID4gPiA+ID4gNC44MyUgIGJhdGNoX3RsYiAgW2tlcm5lbC5rYWxsc3ltc10gICAg ICAgICAgICBba10gX19mbHVzaF90bGJfcmFuZ2UKPiA+ID4gPiA+Cj4gPiA+ID4gPiBBZnRlciB0 aGlzIHBhdGNoOgo+ID4gPiA+ID4KPiA+ID4gPiA+IHJlYWwgIDFtMC41NDNzCj4gPiA+ID4gPiB1 c2VyICAwbTEuMDU5cwo+ID4gPiA+ID4gc3lzICAgMG01OS40ODlzCj4gPiA+ID4gPgo+ID4gPiA+ ID4gMC4xNCUgIGJhdGNoX3RsYiAgW2tlcm5lbC5rYWxsc3ltc10gICAgICAgICAgICBba10gX19m bHVzaF90bGJfcmFuZ2UKPiA+ID4gPiA+Cj4gPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBBbGV4YW5k cmUgR2hpdGkgPGFsZXhnaGl0aUByaXZvc2luYy5jb20+Cj4gPiA+ID4gPiAtLS0KPiA+ID4gPiA+ ICBhcmNoL3Jpc2N2L0tjb25maWcgICAgICAgICAgICAgICAgfCAgMSArCj4gPiA+ID4gPiAgYXJj aC9yaXNjdi9pbmNsdWRlL2FzbS90bGJiYXRjaC5oIHwgMTUgKysrKysrKwo+ID4gPiA+ID4gIGFy Y2gvcmlzY3YvaW5jbHVkZS9hc20vdGxiZmx1c2guaCB8IDEwICsrKysrCj4gPiA+ID4gPiAgYXJj aC9yaXNjdi9tbS90bGJmbHVzaC5jICAgICAgICAgIHwgNzEgKysrKysrKysrKysrKysrKysrKysr Ky0tLS0tLS0tLQo+ID4gPiA+ID4gIDQgZmlsZXMgY2hhbmdlZCwgNzcgaW5zZXJ0aW9ucygrKSwg MjAgZGVsZXRpb25zKC0pCj4gPiA+ID4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGFyY2gvcmlzY3Yv aW5jbHVkZS9hc20vdGxiYmF0Y2guaAo+ID4gPiA+ID4KPiA+ID4gPiA+IGRpZmYgLS1naXQgYS9h cmNoL3Jpc2N2L0tjb25maWcgYi9hcmNoL3Jpc2N2L0tjb25maWcKPiA+ID4gPiA+IGluZGV4IDc2 MDNiZDhhYjMzMy4uYWEwN2JkNDNiMTM4IDEwMDY0NAo+ID4gPiA+ID4gLS0tIGEvYXJjaC9yaXNj di9LY29uZmlnCj4gPiA+ID4gPiArKysgYi9hcmNoL3Jpc2N2L0tjb25maWcKPiA+ID4gPiA+IEBA IC01Myw2ICs1Myw3IEBAIGNvbmZpZyBSSVNDVgo+ID4gPiA+ID4gICAgICAgc2VsZWN0IEFSQ0hf VVNFX01FTVRFU1QKPiA+ID4gPiA+ICAgICAgIHNlbGVjdCBBUkNIX1VTRV9RVUVVRURfUldMT0NL Uwo+ID4gPiA+ID4gICAgICAgc2VsZWN0IEFSQ0hfVVNFU19DRklfVFJBUFMgaWYgQ0ZJX0NMQU5H Cj4gPiA+ID4gPiArICAgICBzZWxlY3QgQVJDSF9XQU5UX0JBVENIRURfVU5NQVBfVExCX0ZMVVNI IGlmIFNNUCAmJiBNTVUKPiA+ID4gPiA+ICAgICAgIHNlbGVjdCBBUkNIX1dBTlRfREVGQVVMVF9U T1BET1dOX01NQVBfTEFZT1VUIGlmIE1NVQo+ID4gPiA+ID4gICAgICAgc2VsZWN0IEFSQ0hfV0FO VF9GUkFNRV9QT0lOVEVSUwo+ID4gPiA+ID4gICAgICAgc2VsZWN0IEFSQ0hfV0FOVF9HRU5FUkFM X0hVR0VUTEIgaWYgIVJJU0NWX0lTQV9TVk5BUE9UCj4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvYXJj aC9yaXNjdi9pbmNsdWRlL2FzbS90bGJiYXRjaC5oIGIvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS90 bGJiYXRjaC5oCj4gPiA+ID4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+ID4gPiA+ID4gaW5kZXgg MDAwMDAwMDAwMDAwLi40NjAxNGY3MGI5ZGEKPiA+ID4gPiA+IC0tLSAvZGV2L251bGwKPiA+ID4g PiA+ICsrKyBiL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vdGxiYmF0Y2guaAo+ID4gPiA+ID4gQEAg LTAsMCArMSwxNSBAQAo+ID4gPiA+ID4gKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwt Mi4wLW9ubHkgKi8KPiA+ID4gPiA+ICsvKgo+ID4gPiA+ID4gKyAqIENvcHlyaWdodCAoQykgMjAy MyBSaXZvcyBJbmMuCj4gPiA+ID4gPiArICovCj4gPiA+ID4gPiArCj4gPiA+ID4gPiArI2lmbmRl ZiBfQVNNX1JJU0NWX1RMQkJBVENIX0gKPiA+ID4gPiA+ICsjZGVmaW5lIF9BU01fUklTQ1ZfVExC QkFUQ0hfSAo+ID4gPiA+ID4gKwo+ID4gPiA+ID4gKyNpbmNsdWRlIDxsaW51eC9jcHVtYXNrLmg+ Cj4gPiA+ID4gPiArCj4gPiA+ID4gPiArc3RydWN0IGFyY2hfdGxiZmx1c2hfdW5tYXBfYmF0Y2gg ewo+ID4gPiA+ID4gKyAgICAgc3RydWN0IGNwdW1hc2sgY3B1bWFzazsKPiA+ID4gPiA+ICt9Owo+ ID4gPiA+ID4gKwo+ID4gPiA+ID4gKyNlbmRpZiAvKiBfQVNNX1JJU0NWX1RMQkJBVENIX0ggKi8K PiA+ID4gPiA+IGRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL3RsYmZsdXNoLmgg Yi9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL3RsYmZsdXNoLmgKPiA+ID4gPiA+IGluZGV4IDhmMzQx OGM1ZjE3Mi4uZjBiNzMxY2NjMGMyIDEwMDY0NAo+ID4gPiA+ID4gLS0tIGEvYXJjaC9yaXNjdi9p bmNsdWRlL2FzbS90bGJmbHVzaC5oCj4gPiA+ID4gPiArKysgYi9hcmNoL3Jpc2N2L2luY2x1ZGUv YXNtL3RsYmZsdXNoLmgKPiA+ID4gPiA+IEBAIC00Niw2ICs0NiwxNiBAQCB2b2lkIGZsdXNoX3Rs Yl9rZXJuZWxfcmFuZ2UodW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBlbmQpOwo+ ID4gPiA+ID4gIHZvaWQgZmx1c2hfcG1kX3RsYl9yYW5nZShzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3Qg KnZtYSwgdW5zaWduZWQgbG9uZyBzdGFydCwKPiA+ID4gPiA+ICAgICAgICAgICAgICAgICAgICAg ICB1bnNpZ25lZCBsb25nIGVuZCk7Cj4gPiA+ID4gPiAgI2VuZGlmCj4gPiA+ID4gPiArCj4gPiA+ ID4gPiArI2lmZGVmIENPTkZJR19BUkNIX1dBTlRfQkFUQ0hFRF9VTk1BUF9UTEJfRkxVU0gKPiA+ ID4gPiA+ICtib29sIGFyY2hfdGxiYmF0Y2hfc2hvdWxkX2RlZmVyKHN0cnVjdCBtbV9zdHJ1Y3Qg Km1tKTsKPiA+ID4gPiA+ICt2b2lkIGFyY2hfdGxiYmF0Y2hfYWRkX3BlbmRpbmcoc3RydWN0IGFy Y2hfdGxiZmx1c2hfdW5tYXBfYmF0Y2ggKmJhdGNoLAo+ID4gPiA+ID4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzdHJ1Y3QgbW1fc3RydWN0ICptbSwKPiA+ID4gPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyB1YWRkcik7Cj4gPiA+ID4gPiArdm9pZCBh cmNoX2ZsdXNoX3RsYl9iYXRjaGVkX3BlbmRpbmcoc3RydWN0IG1tX3N0cnVjdCAqbW0pOwo+ID4g PiA+ID4gK3ZvaWQgYXJjaF90bGJiYXRjaF9mbHVzaChzdHJ1Y3QgYXJjaF90bGJmbHVzaF91bm1h cF9iYXRjaCAqYmF0Y2gpOwo+ID4gPiA+ID4gKyNlbmRpZiAvKiBDT05GSUdfQVJDSF9XQU5UX0JB VENIRURfVU5NQVBfVExCX0ZMVVNIICovCj4gPiA+ID4gPiArCj4gPiA+ID4gPiAgI2Vsc2UgLyog Q09ORklHX1NNUCAmJiBDT05GSUdfTU1VICovCj4gPiA+ID4gPgo+ID4gPiA+ID4gICNkZWZpbmUg Zmx1c2hfdGxiX2FsbCgpIGxvY2FsX2ZsdXNoX3RsYl9hbGwoKQo+ID4gPiA+ID4gZGlmZiAtLWdp dCBhL2FyY2gvcmlzY3YvbW0vdGxiZmx1c2guYyBiL2FyY2gvcmlzY3YvbW0vdGxiZmx1c2guYwo+ ID4gPiA+ID4gaW5kZXggZTY2NTlkNzM2OGIzLi5iYjYyM2JjYTBhN2QgMTAwNjQ0Cj4gPiA+ID4g PiAtLS0gYS9hcmNoL3Jpc2N2L21tL3RsYmZsdXNoLmMKPiA+ID4gPiA+ICsrKyBiL2FyY2gvcmlz Y3YvbW0vdGxiZmx1c2guYwo+ID4gPiA+ID4gQEAgLTkzLDI5ICs5MywyMyBAQCBzdGF0aWMgdm9p ZCBfX2lwaV9mbHVzaF90bGJfcmFuZ2VfYXNpZCh2b2lkICppbmZvKQo+ID4gPiA+ID4gICAgICAg bG9jYWxfZmx1c2hfdGxiX3JhbmdlX2FzaWQoZC0+c3RhcnQsIGQtPnNpemUsIGQtPnN0cmlkZSwg ZC0+YXNpZCk7Cj4gPiA+ID4gPiAgfQo+ID4gPiA+ID4KPiA+ID4gPiA+IC1zdGF0aWMgdm9pZCBf X2ZsdXNoX3RsYl9yYW5nZShzdHJ1Y3QgbW1fc3RydWN0ICptbSwgdW5zaWduZWQgbG9uZyBzdGFy dCwKPiA+ID4gPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHNp emUsIHVuc2lnbmVkIGxvbmcgc3RyaWRlKQo+ID4gPiA+ID4gK3N0YXRpYyB2b2lkIF9fZmx1c2hf dGxiX3JhbmdlKHN0cnVjdCBjcHVtYXNrICpjbWFzaywgdW5zaWduZWQgbG9uZyBhc2lkLAo+ID4g PiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVu c2lnbmVkIGxvbmcgc2l6ZSwKPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICB1 bnNpZ25lZCBsb25nIHN0cmlkZSkKPiA+ID4gPiA+ICB7Cj4gPiA+ID4gPiAgICAgICBzdHJ1Y3Qg Zmx1c2hfdGxiX3JhbmdlX2RhdGEgZnRkOwo+ID4gPiA+ID4gLSAgICAgY29uc3Qgc3RydWN0IGNw dW1hc2sgKmNtYXNrOwo+ID4gPiA+ID4gLSAgICAgdW5zaWduZWQgbG9uZyBhc2lkID0gRkxVU0hf VExCX05PX0FTSUQ7Cj4gPiA+ID4gPiAgICAgICBib29sIGJyb2FkY2FzdDsKPiA+ID4gPiA+Cj4g PiA+ID4gPiAtICAgICBpZiAobW0pIHsKPiA+ID4gPiA+IC0gICAgICAgICAgICAgdW5zaWduZWQg aW50IGNwdWlkOwo+ID4gPiA+ID4gKyAgICAgaWYgKGNwdW1hc2tfZW1wdHkoY21hc2spKQo+ID4g PiA+ID4gKyAgICAgICAgICAgICByZXR1cm47Cj4gPiA+ID4gPgo+ID4gPiA+ID4gLSAgICAgICAg ICAgICBjbWFzayA9IG1tX2NwdW1hc2sobW0pOwo+ID4gPiA+ID4gLSAgICAgICAgICAgICBpZiAo Y3B1bWFza19lbXB0eShjbWFzaykpCj4gPiA+ID4gPiAtICAgICAgICAgICAgICAgICAgICAgcmV0 dXJuOwo+ID4gPiA+ID4gKyAgICAgaWYgKGNtYXNrICE9IGNwdV9vbmxpbmVfbWFzaykgewo+ID4g PiA+ID4gKyAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgY3B1aWQ7Cj4gPiA+ID4gPgo+ID4gPiA+ ID4gICAgICAgICAgICAgICBjcHVpZCA9IGdldF9jcHUoKTsKPiA+ID4gPiA+ICAgICAgICAgICAg ICAgLyogY2hlY2sgaWYgdGhlIHRsYmZsdXNoIG5lZWRzIHRvIGJlIHNlbnQgdG8gb3RoZXIgQ1BV cyAqLwo+ID4gPiA+ID4gICAgICAgICAgICAgICBicm9hZGNhc3QgPSBjcHVtYXNrX2FueV9idXQo Y21hc2ssIGNwdWlkKSA8IG5yX2NwdV9pZHM7Cj4gPiA+ID4gPiAtCj4gPiA+ID4gPiAtICAgICAg ICAgICAgIGlmIChzdGF0aWNfYnJhbmNoX3VubGlrZWx5KCZ1c2VfYXNpZF9hbGxvY2F0b3IpKQo+ ID4gPiA+ID4gLSAgICAgICAgICAgICAgICAgICAgIGFzaWQgPSBhdG9taWNfbG9uZ19yZWFkKCZt bS0+Y29udGV4dC5pZCkgJiBhc2lkX21hc2s7Cj4gPiA+ID4gPiAgICAgICB9IGVsc2Ugewo+ID4g PiA+ID4gLSAgICAgICAgICAgICBjbWFzayA9IGNwdV9vbmxpbmVfbWFzazsKPiA+ID4gPiA+ICAg ICAgICAgICAgICAgYnJvYWRjYXN0ID0gdHJ1ZTsKPiA+ID4gPiA+ICAgICAgIH0KPiA+ID4gPiA+ Cj4gPiA+ID4gPiBAQCAtMTM1LDI1ICsxMjksMzQgQEAgc3RhdGljIHZvaWQgX19mbHVzaF90bGJf cmFuZ2Uoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHVuc2lnbmVkIGxvbmcgc3RhcnQsCj4gPiA+ID4g PiAgICAgICAgICAgICAgIGxvY2FsX2ZsdXNoX3RsYl9yYW5nZV9hc2lkKHN0YXJ0LCBzaXplLCBz dHJpZGUsIGFzaWQpOwo+ID4gPiA+ID4gICAgICAgfQo+ID4gPiA+ID4KPiA+ID4gPiA+IC0gICAg IGlmIChtbSkKPiA+ID4gPiA+ICsgICAgIGlmIChjbWFzayAhPSBjcHVfb25saW5lX21hc2spCj4g PiA+ID4gPiAgICAgICAgICAgICAgIHB1dF9jcHUoKTsKPiA+ID4gPiA+ICB9Cj4gPiA+ID4gPgo+ ID4gPiA+ID4gK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBnZXRfbW1fYXNpZChzdHJ1Y3Qg bW1fc3RydWN0ICptbSkKPiA+ID4gPiA+ICt7Cj4gPiA+ID4gPiArICAgICByZXR1cm4gc3RhdGlj X2JyYW5jaF91bmxpa2VseSgmdXNlX2FzaWRfYWxsb2NhdG9yKSA/Cj4gPiA+ID4gPiArICAgICAg ICAgICAgICAgICAgICAgYXRvbWljX2xvbmdfcmVhZCgmbW0tPmNvbnRleHQuaWQpICYgYXNpZF9t YXNrIDogRkxVU0hfVExCX05PX0FTSUQ7Cj4gPiA+ID4gPiArfQo+ID4gPiA+ID4gKwo+ID4gPiA+ ID4gIHZvaWQgZmx1c2hfdGxiX21tKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tKQo+ID4gPiA+ID4gIHsK PiA+ID4gPiA+IC0gICAgIF9fZmx1c2hfdGxiX3JhbmdlKG1tLCAwLCBGTFVTSF9UTEJfTUFYX1NJ WkUsIFBBR0VfU0laRSk7Cj4gPiA+ID4gPiArICAgICBfX2ZsdXNoX3RsYl9yYW5nZShtbV9jcHVt YXNrKG1tKSwgZ2V0X21tX2FzaWQobW0pLAo+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAg ICAgMCwgRkxVU0hfVExCX01BWF9TSVpFLCBQQUdFX1NJWkUpOwo+ID4gPiA+ID4gIH0KPiA+ID4g PiA+Cj4gPiA+ID4gPiAgdm9pZCBmbHVzaF90bGJfbW1fcmFuZ2Uoc3RydWN0IG1tX3N0cnVjdCAq bW0sCj4gPiA+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBzdGFydCwg dW5zaWduZWQgbG9uZyBlbmQsCj4gPiA+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgdW5zaWdu ZWQgaW50IHBhZ2Vfc2l6ZSkKPiA+ID4gPiA+ICB7Cj4gPiA+ID4gPiAtICAgICBfX2ZsdXNoX3Rs Yl9yYW5nZShtbSwgc3RhcnQsIGVuZCAtIHN0YXJ0LCBwYWdlX3NpemUpOwo+ID4gPiA+ID4gKyAg ICAgX19mbHVzaF90bGJfcmFuZ2UobW1fY3B1bWFzayhtbSksIGdldF9tbV9hc2lkKG1tKSwKPiA+ ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0LCBlbmQgLSBzdGFydCwgcGFnZV9z aXplKTsKPiA+ID4gPiA+ICB9Cj4gPiA+ID4gPgo+ID4gPiA+ID4gIHZvaWQgZmx1c2hfdGxiX3Bh Z2Uoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsIHVuc2lnbmVkIGxvbmcgYWRkcikKPiA+ID4g PiA+ICB7Cj4gPiA+ID4gPiAtICAgICBfX2ZsdXNoX3RsYl9yYW5nZSh2bWEtPnZtX21tLCBhZGRy LCBQQUdFX1NJWkUsIFBBR0VfU0laRSk7Cj4gPiA+ID4gPiArICAgICBfX2ZsdXNoX3RsYl9yYW5n ZShtbV9jcHVtYXNrKHZtYS0+dm1fbW0pLCBnZXRfbW1fYXNpZCh2bWEtPnZtX21tKSwKPiA+ID4g PiA+ICsgICAgICAgICAgICAgICAgICAgICAgIGFkZHIsIFBBR0VfU0laRSwgUEFHRV9TSVpFKTsK PiA+ID4gPiA+ICB9Cj4gPiA+ID4gPgo+ID4gPiA+ID4gIHZvaWQgZmx1c2hfdGxiX3JhbmdlKHN0 cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLCB1bnNpZ25lZCBsb25nIHN0YXJ0LAo+ID4gPiA+ID4g QEAgLTE4NSwxOCArMTg4LDQ2IEBAIHZvaWQgZmx1c2hfdGxiX3JhbmdlKHN0cnVjdCB2bV9hcmVh X3N0cnVjdCAqdm1hLCB1bnNpZ25lZCBsb25nIHN0YXJ0LAo+ID4gPiA+ID4gICAgICAgICAgICAg ICB9Cj4gPiA+ID4gPiAgICAgICB9Cj4gPiA+ID4gPgo+ID4gPiA+ID4gLSAgICAgX19mbHVzaF90 bGJfcmFuZ2Uodm1hLT52bV9tbSwgc3RhcnQsIGVuZCAtIHN0YXJ0LCBzdHJpZGVfc2l6ZSk7Cj4g PiA+ID4gPiArICAgICBfX2ZsdXNoX3RsYl9yYW5nZShtbV9jcHVtYXNrKHZtYS0+dm1fbW0pLCBn ZXRfbW1fYXNpZCh2bWEtPnZtX21tKSwKPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAg IHN0YXJ0LCBlbmQgLSBzdGFydCwgc3RyaWRlX3NpemUpOwo+ID4gPiA+ID4gIH0KPiA+ID4gPiA+ Cj4gPiA+ID4gPiAgdm9pZCBmbHVzaF90bGJfa2VybmVsX3JhbmdlKHVuc2lnbmVkIGxvbmcgc3Rh cnQsIHVuc2lnbmVkIGxvbmcgZW5kKQo+ID4gPiA+ID4gIHsKPiA+ID4gPiA+IC0gICAgIF9fZmx1 c2hfdGxiX3JhbmdlKE5VTEwsIHN0YXJ0LCBlbmQgLSBzdGFydCwgUEFHRV9TSVpFKTsKPiA+ID4g PiA+ICsgICAgIF9fZmx1c2hfdGxiX3JhbmdlKChzdHJ1Y3QgY3B1bWFzayAqKWNwdV9vbmxpbmVf bWFzaywgRkxVU0hfVExCX05PX0FTSUQsCj4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAg ICBzdGFydCwgZW5kIC0gc3RhcnQsIFBBR0VfU0laRSk7Cj4gPiA+ID4gPiAgfQo+ID4gPiA+ID4K PiA+ID4gPiA+ICAjaWZkZWYgQ09ORklHX1RSQU5TUEFSRU5UX0hVR0VQQUdFCj4gPiA+ID4gPiAg dm9pZCBmbHVzaF9wbWRfdGxiX3JhbmdlKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLCB1bnNp Z25lZCBsb25nIHN0YXJ0LAo+ID4gPiA+ID4gICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk IGxvbmcgZW5kKQo+ID4gPiA+ID4gIHsKPiA+ID4gPiA+IC0gICAgIF9fZmx1c2hfdGxiX3Jhbmdl KHZtYS0+dm1fbW0sIHN0YXJ0LCBlbmQgLSBzdGFydCwgUE1EX1NJWkUpOwo+ID4gPiA+ID4gKyAg ICAgX19mbHVzaF90bGJfcmFuZ2UobW1fY3B1bWFzayh2bWEtPnZtX21tKSwgZ2V0X21tX2FzaWQo dm1hLT52bV9tbSksCj4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICBzdGFydCwgZW5k IC0gc3RhcnQsIFBNRF9TSVpFKTsKPiA+ID4gPiA+ICB9Cj4gPiA+ID4gPiAgI2VuZGlmCj4gPiA+ ID4gPiArCj4gPiA+ID4gPiArI2lmZGVmIENPTkZJR19BUkNIX1dBTlRfQkFUQ0hFRF9VTk1BUF9U TEJfRkxVU0gKPiA+ID4gPiA+ICtib29sIGFyY2hfdGxiYmF0Y2hfc2hvdWxkX2RlZmVyKHN0cnVj dCBtbV9zdHJ1Y3QgKm1tKQo+ID4gPiA+ID4gK3sKPiA+ID4gPiA+ICsgICAgIHJldHVybiB0cnVl Owo+ID4gPiA+ID4gK30KPiA+ID4gPiA+ICsKPiA+ID4gPiA+ICt2b2lkIGFyY2hfdGxiYmF0Y2hf YWRkX3BlbmRpbmcoc3RydWN0IGFyY2hfdGxiZmx1c2hfdW5tYXBfYmF0Y2ggKmJhdGNoLAo+ID4g PiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgbW1fc3RydWN0ICptbSwK PiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyB1YWRk cikKPiA+ID4gPiA+ICt7Cj4gPiA+ID4gPiArICAgICBjcHVtYXNrX29yKCZiYXRjaC0+Y3B1bWFz aywgJmJhdGNoLT5jcHVtYXNrLCBtbV9jcHVtYXNrKG1tKSk7Cj4gPiA+ID4gPiArfQo+ID4gPiA+ ID4gKwo+ID4gPiA+ID4gK3ZvaWQgYXJjaF9mbHVzaF90bGJfYmF0Y2hlZF9wZW5kaW5nKHN0cnVj dCBtbV9zdHJ1Y3QgKm1tKQo+ID4gPiA+ID4gK3sKPiA+ID4gPiA+ICsgICAgIGZsdXNoX3RsYl9t bShtbSk7Cj4gPiA+ID4gPiArfQo+ID4gPiA+ID4gKwo+ID4gPiA+ID4gK3ZvaWQgYXJjaF90bGJi YXRjaF9mbHVzaChzdHJ1Y3QgYXJjaF90bGJmbHVzaF91bm1hcF9iYXRjaCAqYmF0Y2gpCj4gPiA+ ID4gPiArewo+ID4gPiA+ID4gKyAgICAgX19mbHVzaF90bGJfcmFuZ2UoJmJhdGNoLT5jcHVtYXNr LCBGTFVTSF9UTEJfTk9fQVNJRCwgMCwKPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAg IEZMVVNIX1RMQl9NQVhfU0laRSwgUEFHRV9TSVpFKTsKPiA+ID4gPiA+ICt9Cj4gPiA+ID4gPiAr I2VuZGlmIC8qIENPTkZJR19BUkNIX1dBTlRfQkFUQ0hFRF9VTk1BUF9UTEJfRkxVU0ggKi8KPiA+ ID4gPiA+IC0tCj4gPiA+ID4gPiAyLjM5LjIKPiA+ID4gPiA+Cj4gPiA+ID4gPgo+ID4gPiA+ID4g X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiA+ID4gPiA+ IGxpbnV4LXJpc2N2IG1haWxpbmcgbGlzdAo+ID4gPiA+ID4gbGludXgtcmlzY3ZAbGlzdHMuaW5m cmFkZWFkLm9yZwo+ID4gPiA+ID4gaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9s aXN0aW5mby9saW51eC1yaXNjdgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KbGludXgtcmlzY3YgbWFpbGluZyBsaXN0CmxpbnV4LXJpc2N2QGxpc3RzLmlu ZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9s aW51eC1yaXNjdgo=