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 lists.sourceforge.net (lists.sourceforge.net [216.105.38.7]) (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 68D32C61DBD for ; Thu, 27 Aug 2026 02:22:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.sourceforge.net; s=beta; h=Content-Transfer-Encoding:Content-Type:Cc: Reply-To:From:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:Subject:In-Reply-To:References:To:MIME-Version:Date: Message-ID:Sender:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=dehXMIhroHWUv7PGZWlFZVyHhL7Uj3O+d4YwiBN3Mco=; b=gXbEMJxoOkA9x6jMF3FB+oqV2p 7zWRMAQMlOKE6hRQXMOQgtrPNh8MUiVVCiFlrqLp0YujtY2mWQDRQsqxyq/nXaaSH6ZJealFIRb6P wSYLjaMDT5Xoeh0Z51WZ/M6cHbTBla1OLPzezOBZnL+HIFzYLLCSxEfL2iVECwgzMeIc=; Received: from [127.0.0.1] (helo=sfs-ml-3.v29.lw.sourceforge.com) by sfs-ml-3.v29.lw.sourceforge.com with esmtp (Exim 4.95) (envelope-from ) id 1wzPlS-0008PJ-K4; Thu, 27 Aug 2026 02:22:51 +0000 Received: from [172.30.29.66] (helo=mx.sourceforge.net) by sfs-ml-3.v29.lw.sourceforge.com with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.95) (envelope-from ) id 1wzPlR-0008PC-QX for linux-f2fs-devel@lists.sourceforge.net; Thu, 27 Aug 2026 02:22:50 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sourceforge.net; s=x; h=Content-Transfer-Encoding:Content-Type:In-Reply-To: From:References:To:Subject:Cc:MIME-Version:Date:Message-ID:Sender:Reply-To: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=8CHEJu/ZTBGQAb/fShJcboLth9AOe/0yeUdeSixgz0g=; b=C4Uqq4uEisopBVQPrBp3hmMsfP v27rY0whe+6RsAl3F1fWHnegl5lFK9fQ6n2W3ljmg5tgCKVsTCkttSoF/G4S+2mc26EbP2i3WliEW q88xiQ1gpb882B+jGDEQ2Px0saYtydPaoNtS6I4syWfQnvRSZ47Jeb/SykJDJr5AcElo=; DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sf.net; s=x ; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:References:To: Subject:Cc:MIME-Version:Date:Message-ID:Sender:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=8CHEJu/ZTBGQAb/fShJcboLth9AOe/0yeUdeSixgz0g=; b=iOVtW31rYuUpaRCl5Fu2RcEdii haRoL+RgsX5+lR1xlZoxJ3heDp0b8aD4OgwQ4HSxHzkjnjFuz9r6Wx88tRYVXaCnsmR1Jyyw86X+j Cb67EMUL+c5rFZf49pxc8TP1MY7k1KRW2W+dXWjMtV8NAzPEFuPiuh4KWLs6BdprpnYg=; Received: from sea.source.kernel.org ([172.234.252.31]) by sfi-mx-1.v28.lw.sourceforge.com with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.95) id 1wzPlR-0003W2-4f for linux-f2fs-devel@lists.sourceforge.net; Thu, 27 Aug 2026 02:22:50 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by sea.source.kernel.org (Postfix) with ESMTP id C101F43BE5; Thu, 27 Aug 2026 02:22:43 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id BF2B71F000E9; Thu, 27 Aug 2026 02:22:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1787797363; bh=8CHEJu/ZTBGQAb/fShJcboLth9AOe/0yeUdeSixgz0g=; h=Date:Cc:Subject:To:References:From:In-Reply-To; b=XY6wV0/fnYmtCmNMYiz758V+jKUl91RZw4kExVDPxP8hUZV79rm6mOJGqJ7MbWSl5 VRLfJ4HX2lv2kAQzME+pyXZk3VLoXPxKn2CoMT6VPFltbi4fs7EA7X8g9NN6yErDiT HjjYu6KRvFsRzF+gNY13d4H2BGJULkgnRYidk85+HBdv3/IrazdFI4Zq54AYN7kLUt zF9C0E1iSHvPK2zTG1U+/4DtQxCSqE63vKkTTfG2yVtd7g8FplxQbAf0uESN183xQ1 0vlrM9n5Jkcow/g8gmclrxYCaboLaxlNPHGfzXujdo+QSIUcCtq6QeN8smNgxp0ZR5 NcvoOuhUO5xcA== Message-ID: <2109b8de-bd1c-447a-b78d-cd0cd9f2e451@kernel.org> Date: Thu, 27 Aug 2026 10:22:41 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird To: Daeho Jeong References: <20260825130126.2078627-1-chao@kernel.org> <20260825130126.2078627-10-chao@kernel.org> Content-Language: en-US In-Reply-To: X-Headers-End: 1wzPlR-0003W2-4f Subject: Re: [f2fs-dev] [PATCH v3 09/12] f2fs: cache: use compress cache X-BeenThere: linux-f2fs-devel@lists.sourceforge.net X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Chao Yu via Linux-f2fs-devel Reply-To: Chao Yu Cc: jaegeuk@kernel.org, linux-kernel@vger.kernel.org, linux-f2fs-devel@lists.sourceforge.net Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: linux-f2fs-devel-bounces@lists.sourceforge.net T24gOC8yNy8yNiAwNDowNCwgRGFlaG8gSmVvbmcgd3JvdGU6Cj4gT24gVHVlLCBBdWcgMjUsIDIw MjYgYXQgNjowM+KAr0FNIENoYW8gWXUgdmlhIExpbnV4LWYyZnMtZGV2ZWwKPiA8bGludXgtZjJm cy1kZXZlbEBsaXN0cy5zb3VyY2Vmb3JnZS5uZXQ+IHdyb3RlOgo+Pgo+PiBUaGlzIHBhdGNoIG1p Z3JhdGVzIGNvbXByZXNzZWQgY2x1c3RlciBjYWNoaW5nIGZyb20gdGhlIGZha2UgVkZTIGlub2Rl Cj4+IHBhZ2UgY2FjaGUgKHNiaS0+Y29tcHJlc3NfaW5vZGUpIHRvIGNvbXByZXNzIGNhY2hlIChz YmktPmNvbXByZXNzX2Jsb2NrcykuCj4+Cj4+IEl0IGNvbnZlcnRzIGNvbXByZXNzaW9uIGNhY2hp bmcgYW5kIGRlY29tcHJlc3Npb24gcGF0aHMgdG8gdXNlCj4+IGNvbXByZXNzIGNhY2hlIEFQSXMs IHVzZXMgZW50cnktPmlubyBmb3IgcGVyLWlub2RlIGludmFsaWRhdGlvbiwgYW5kCj4+IHJlbW92 ZXMgc2JpLT5jb21wcmVzc19pbm9kZS4KPj4KPj4gU2lnbmVkLW9mZi1ieTogQ2hhbyBZdSA8Y2hh b0BrZXJuZWwub3JnPgo+PiAtLS0KPj4gIGZzL2YyZnMvY2FjaGUuYyAgICAgICAgIHwgIDE0ICsr LS0KPj4gIGZzL2YyZnMvY2FjaGUuaCAgICAgICAgIHwgICAxICsKPj4gIGZzL2YyZnMvY29tcHJl c3MuYyAgICAgIHwgMTU4ICsrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K Pj4gIGZzL2YyZnMvZGVidWcuYyAgICAgICAgIHwgICA5ICsrLQo+PiAgZnMvZjJmcy9mMmZzLmgg ICAgICAgICAgfCAgIDggKy0KPj4gIGZzL2YyZnMvaW5vZGUuYyAgICAgICAgIHwgIDQ5ICstLS0t LS0tLS0tLS0KPj4gIGZzL2YyZnMvbm9kZS5jICAgICAgICAgIHwgICAyICstCj4+ICBmcy9mMmZz L3Nocmlua2VyLmMgICAgICB8ICAgMyArLQo+PiAgZnMvZjJmcy9zdXBlci5jICAgICAgICAgfCAg MTUgKystLQo+PiAgaW5jbHVkZS9saW51eC9mMmZzX2ZzLmggfCAgIDEgLQo+PiAgMTAgZmlsZXMg Y2hhbmdlZCwgOTggaW5zZXJ0aW9ucygrKSwgMTYyIGRlbGV0aW9ucygtKQo+Pgo+PiBkaWZmIC0t Z2l0IGEvZnMvZjJmcy9jYWNoZS5jIGIvZnMvZjJmcy9jYWNoZS5jCj4+IGluZGV4IDg0MzExODBi YjFmOC4uNWI5MDU1YWQ0OWI5IDEwMDY0NAo+PiAtLS0gYS9mcy9mMmZzL2NhY2hlLmMKPj4gKysr IGIvZnMvZjJmcy9jYWNoZS5jCj4+IEBAIC00MTcsMTMgKzQxNywxMiBAQCBzdGF0aWMgdm9pZCBm MmZzX2RvX3RydW5jYXRlX2NhY2hlKHN0cnVjdCBmMmZzX2NhY2hlZF9ibG9jayAqZW50cnksCj4+ ICAgICAgICAgc3Bpbl91bmxvY2soJmNhY2hlLT5saXN0X2xvY2spOwo+PiAgfQo+Pgo+PiAtc3Rh dGljIHZvaWQgZjJmc190cnVuY2F0ZV9jYWNoZShzdHJ1Y3QgZjJmc19jYWNoZWRfYmxvY2sgKmVu dHJ5LAo+PiArdm9pZCBmMmZzX3RydW5jYXRlX2NhY2hlKHN0cnVjdCBmMmZzX2NhY2hlZF9ibG9j ayAqZW50cnksCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29s IGRyb3BfZGlydHkpCj4gCj4gLT4gX19mMmZzX3RydW5jYXRlX2NhY2hlKCkgd2l0aG91dCBsb2Nr aW5nPwoKQWN0dWFsbHksIEkndiByZWxvY2F0ZWQgdGhlIGxvY2sgaW50byBjYWxsZXJzIG9mIGYy ZnNfdHJ1bmNhdGVfY2FjaGUoKSwKaW4gb3JkZXIgdG8gc3VwcG9ydCBjaGVjayBlbnRyeS0+aW5v LCBlbnRyeS0+Y2FjaGUgdy8gdGhlIGxvY2sgaW4KZjJmc19pbnZhbGlkYXRlX2NvbXByZXNzX3Bh Z2VzKCksIHBsZWFzZSB0YWtlIGEgbG9vay4KCj4gCj4+ICB7Cj4+IC0gICAgICAgZjJmc19sb2Nr X2NhY2hlKGVudHJ5KTsKPj4gLSAgICAgICBpZiAoZW50cnktPmNhY2hlKQo+PiAtICAgICAgICAg ICAgICAgZjJmc19kb190cnVuY2F0ZV9jYWNoZShlbnRyeSwgZHJvcF9kaXJ0eSk7Cj4+IC0gICAg ICAgZjJmc191bmxvY2tfY2FjaGUoZW50cnkpOwo+PiArICAgICAgIGlmICghZW50cnktPmNhY2hl KQo+PiArICAgICAgICAgICAgICAgcmV0dXJuOwo+PiArICAgICAgIGYyZnNfZG9fdHJ1bmNhdGVf Y2FjaGUoZW50cnksIGRyb3BfZGlydHkpOwo+PiAgfQo+Pgo+PiAgc3RhdGljIHZvaWQgZjJmc19k cm9wX2NhY2hlKHN0cnVjdCBmMmZzX2NhY2hlZF9ibG9ja19saXN0ICpjYWNoZSwKPj4gQEAgLTQz NSw4ICs0MzQsOSBAQCBzdGF0aWMgdm9pZCBmMmZzX2Ryb3BfY2FjaGUoc3RydWN0IGYyZnNfY2Fj aGVkX2Jsb2NrX2xpc3QgKmNhY2hlLAo+PiAgICAgICAgIGlmIChJU19FUlIoZW50cnkpKQo+PiAg ICAgICAgICAgICAgICAgcmV0dXJuOwo+Pgo+PiArICAgICAgIGYyZnNfbG9ja19jYWNoZShlbnRy eSk7Cj4+ICAgICAgICAgZjJmc190cnVuY2F0ZV9jYWNoZShlbnRyeSwgZHJvcF9kaXJ0eSk7Cj4+ IC0gICAgICAgZjJmc19wdXRfY2FjaGUoZW50cnksIGZhbHNlKTsKPj4gKyAgICAgICBmMmZzX3B1 dF9jYWNoZShlbnRyeSwgdHJ1ZSk7Cj4+ICB9Cj4+Cj4+ICB2b2lkIGYyZnNfZHJvcF9jYWNoZV9y YW5nZShzdHJ1Y3QgZjJmc19jYWNoZWRfYmxvY2tfbGlzdCAqY2FjaGUsCj4+IEBAIC00NzgsNyAr NDc4LDkgQEAgdm9pZCBmMmZzX2Ryb3BfY2FjaGVfcmFuZ2Uoc3RydWN0IGYyZnNfY2FjaGVkX2Js b2NrX2xpc3QgKmNhY2hlLAo+Pgo+PiAgICAgICAgICAgICAgICAgaW5kZXggPSBlbnRyeS0+aW5k ZXggKyAxOwo+Pgo+PiArICAgICAgICAgICAgICAgZjJmc19sb2NrX2NhY2hlKGVudHJ5KTsKPj4g ICAgICAgICAgICAgICAgIGYyZnNfdHJ1bmNhdGVfY2FjaGUoZW50cnksIGRyb3BfZGlydHkpOwo+ PiArICAgICAgICAgICAgICAgZjJmc191bmxvY2tfY2FjaGUoZW50cnkpOwo+PiAgICAgICAgIH0K Pj4gICAgICAgICBmMmZzX2NhY2hlX2dhbmdfcmVsZWFzZShlbnRyaWVzLCBucik7Cj4+Cj4+IGRp ZmYgLS1naXQgYS9mcy9mMmZzL2NhY2hlLmggYi9mcy9mMmZzL2NhY2hlLmgKPj4gaW5kZXggYjg3 ZmViM2ViODk2Li5iNjZkYmFlZmVlMmYgMTAwNjQ0Cj4+IC0tLSBhL2ZzL2YyZnMvY2FjaGUuaAo+ PiArKysgYi9mcy9mMmZzL2NhY2hlLmgKPj4gQEAgLTE2OCw2ICsxNjgsNyBAQCB1bnNpZ25lZCBp bnQgZjJmc19jYWNoZV9nYW5nX2xvb2t1cF90YWcoc3RydWN0IGYyZnNfY2FjaGVkX2Jsb2NrX2xp c3QgKmNhY2hlLAo+PiAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IG1heF9pdGVtcywgaW50 IHRhZyk7Cj4+ICB2b2lkIGYyZnNfY2FjaGVfZ2FuZ19yZWxlYXNlKHN0cnVjdCBmMmZzX2NhY2hl ZF9ibG9jayAqKmVudHJpZXMsCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5z aWduZWQgaW50IG5yX2VudHJpZXMpOwo+PiArdm9pZCBmMmZzX3RydW5jYXRlX2NhY2hlKHN0cnVj dCBmMmZzX2NhY2hlZF9ibG9jayAqZW50cnksIGJvb2wgZHJvcF9kaXJ0eSk7Cj4+ICBpbnQgZjJm c193cml0ZWJhY2tfY2FjaGUoc3RydWN0IGYyZnNfY2FjaGVkX2Jsb2NrX2xpc3QgKmNhY2hlLCBi b29sIHN5bmMpOwo+PiAgdm9pZCBmMmZzX2NhY2hlX3dhaXRfb25fYWxsX3dyaXRlYmFjayhzdHJ1 Y3QgZjJmc19jYWNoZWRfYmxvY2tfbGlzdCAqY2FjaGUpOwo+PiAgdm9pZCBmMmZzX2NhY2hlX3dh aXRfd3JpdGViYWNrX2NvbmQoc3RydWN0IGYyZnNfY2FjaGVkX2Jsb2NrICplbnRyeSwKPj4gZGlm ZiAtLWdpdCBhL2ZzL2YyZnMvY29tcHJlc3MuYyBiL2ZzL2YyZnMvY29tcHJlc3MuYwo+PiBpbmRl eCA2NzZhNTU1OTM1N2YuLjE1NWJlM2EzZDIwMyAxMDA2NDQKPj4gLS0tIGEvZnMvZjJmcy9jb21w cmVzcy5jCj4+ICsrKyBiL2ZzL2YyZnMvY29tcHJlc3MuYwo+PiBAQCAtMTkxOCwzMCArMTkxOCwx OSBAQCB1bnNpZ25lZCBpbnQgZjJmc19jbHVzdGVyX2Jsb2Nrc19hcmVfY29udGlndW91cyhzdHJ1 Y3QgZG5vZGVfb2ZfZGF0YSAqZG4sCj4+ICAgICAgICAgcmV0dXJuIGNvbXByZXNzZWQgPyBpIC0g MSA6IGk7Cj4+ICB9Cj4+Cj4+IC1jb25zdCBzdHJ1Y3QgYWRkcmVzc19zcGFjZV9vcGVyYXRpb25z IGYyZnNfY29tcHJlc3NfYW9wcyA9IHsKPj4gLSAgICAgICAucmVsZWFzZV9mb2xpbyA9IGYyZnNf cmVsZWFzZV9mb2xpbywKPj4gLSAgICAgICAuaW52YWxpZGF0ZV9mb2xpbyA9IGYyZnNfaW52YWxp ZGF0ZV9mb2xpbywKPj4gLSAgICAgICAubWlncmF0ZV9mb2xpbyAgPSBmaWxlbWFwX21pZ3JhdGVf Zm9saW8sCj4+IC19Owo+PiAtCj4+IC1zdHJ1Y3QgYWRkcmVzc19zcGFjZSAqQ09NUFJFU1NfTUFQ UElORyhzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmkpCj4+IC17Cj4+IC0gICAgICAgcmV0dXJuIHNi aS0+Y29tcHJlc3NfaW5vZGUtPmlfbWFwcGluZzsKPj4gLX0KPj4gLQo+PiAgdm9pZCBmMmZzX2lu dmFsaWRhdGVfY29tcHJlc3NfcGFnZXNfcmFuZ2Uoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLAo+ PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrX3QgYmxrYWRkciwgdW5zaWdu ZWQgaW50IGxlbikKPj4gIHsKPj4gLSAgICAgICBpZiAoIXNiaS0+Y29tcHJlc3NfaW5vZGUpCj4+ ICsgICAgICAgaWYgKCF0ZXN0X29wdChzYmksIENPTVBSRVNTX0NBQ0hFKSkKPj4gICAgICAgICAg ICAgICAgIHJldHVybjsKPj4gLSAgICAgICBpbnZhbGlkYXRlX21hcHBpbmdfcGFnZXMoQ09NUFJF U1NfTUFQUElORyhzYmkpLCBibGthZGRyLCBibGthZGRyICsgbGVuIC0gMSk7Cj4+ICsKPj4gKyAg ICAgICBmMmZzX2Ryb3BfY2FjaGVfcmFuZ2UoQ09NUFJFU1NfQ0FDSEUoc2JpKSwgYmxrYWRkciwg bGVuLCBmYWxzZSk7Cj4+ICB9Cj4+Cj4+ICBzdGF0aWMgdm9pZCBmMmZzX2NhY2hlX2NvbXByZXNz ZWRfcGFnZShzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmksCj4+ICAgICAgICAgICAgICAgICBzdHJ1 Y3QgZm9saW8gKmZvbGlvLCBuaWRfdCBpbm8sIGJsb2NrX3QgYmxrYWRkcikKPj4gIHsKPj4gLSAg ICAgICBzdHJ1Y3QgZm9saW8gKmNmb2xpbzsKPj4gLSAgICAgICBpbnQgcmV0Owo+PiArICAgICAg IHN0cnVjdCBmMmZzX2NhY2hlZF9ibG9jayAqZW50cnk7Cj4+Cj4+ICAgICAgICAgaWYgKCF0ZXN0 X29wdChzYmksIENPTVBSRVNTX0NBQ0hFKSkKPj4gICAgICAgICAgICAgICAgIHJldHVybjsKPj4g QEAgLTE5NTIsNDkgKzE5NDEsNDMgQEAgc3RhdGljIHZvaWQgZjJmc19jYWNoZV9jb21wcmVzc2Vk X3BhZ2Uoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLAo+PiAgICAgICAgIGlmICghZjJmc19hdmFp bGFibGVfZnJlZV9tZW1vcnkoc2JpLCBDT01QUkVTU19QQUdFKSkKPj4gICAgICAgICAgICAgICAg IHJldHVybjsKPj4KPj4gLSAgICAgICBjZm9saW8gPSBmaWxlbWFwX2dldF9mb2xpbyhDT01QUkVT U19NQVBQSU5HKHNiaSksIGJsa2FkZHIpOwo+PiAtICAgICAgIGlmICghSVNfRVJSKGNmb2xpbykp IHsKPj4gLSAgICAgICAgICAgICAgIGYyZnNfZm9saW9fcHV0KGNmb2xpbywgZmFsc2UpOwo+PiAr ICAgICAgIGVudHJ5ID0gZjJmc19maW5kX2NhY2hlKENPTVBSRVNTX0NBQ0hFKHNiaSksIGJsa2Fk ZHIpOwo+PiArICAgICAgIGlmICghSVNfRVJSKGVudHJ5KSkgewo+PiArICAgICAgICAgICAgICAg ZjJmc19wdXRfY2FjaGUoZW50cnksIGZhbHNlKTsKPj4gICAgICAgICAgICAgICAgIHJldHVybjsK Pj4gICAgICAgICB9Cj4+Cj4+IC0gICAgICAgY2ZvbGlvID0gZmlsZW1hcF9hbGxvY19mb2xpbyhf X0dGUF9OT1dBUk4gfCBfX0dGUF9JTywgMCwgTlVMTCk7Cj4+IC0gICAgICAgaWYgKCFjZm9saW8p Cj4+IC0gICAgICAgICAgICAgICByZXR1cm47Cj4+IC0KPj4gLSAgICAgICByZXQgPSBmaWxlbWFw X2FkZF9mb2xpbyhDT01QUkVTU19NQVBQSU5HKHNiaSksIGNmb2xpbywKPj4gLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmxrYWRkciwgR0ZQX05PRlMpOwo+ PiAtICAgICAgIGlmIChyZXQpIHsKPj4gLSAgICAgICAgICAgICAgIGYyZnNfZm9saW9fcHV0KGNm b2xpbywgZmFsc2UpOwo+PiArICAgICAgIGVudHJ5ID0gZjJmc19ncmFiX2NhY2hlKENPTVBSRVNT X0NBQ0hFKHNiaSksIGJsa2FkZHIsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBGMkZTX0NBQ0hFX0xPQ0tfQ1JFQVRFKTsKPj4gKyAgICAgICBpZiAoSVNfRVJSKGVu dHJ5KSkKPj4gICAgICAgICAgICAgICAgIHJldHVybjsKPj4gLSAgICAgICB9Cj4+Cj4+IC0gICAg ICAgZm9saW9fc2V0X2YyZnNfZGF0YShjZm9saW8sIGlubyk7Cj4+IC0KPj4gLSAgICAgICBtZW1j cHkoZm9saW9fYWRkcmVzcyhjZm9saW8pLCBmb2xpb19hZGRyZXNzKGZvbGlvKSwgUEFHRV9TSVpF KTsKPj4gLSAgICAgICBmb2xpb19tYXJrX3VwdG9kYXRlKGNmb2xpbyk7Cj4+IC0gICAgICAgZjJm c19mb2xpb19wdXQoY2ZvbGlvLCB0cnVlKTsKPj4gKyAgICAgICBlbnRyeS0+aW5vID0gaW5vOwo+ PiArICAgICAgIG1lbWNweShjYWNoZV9hZGRyZXNzKGVudHJ5KSwgZm9saW9fYWRkcmVzcyhmb2xp byksIFBBR0VfU0laRSk7Cj4+ICsgICAgICAgZjJmc19jYWNoZV9zZXRfdXB0b2RhdGUoZW50cnkp Owo+PiArICAgICAgIGYyZnNfcHV0X2NhY2hlKGVudHJ5LCB0cnVlKTsKPj4gIH0KPj4KPj4gIGJv b2wgZjJmc19sb2FkX2NvbXByZXNzZWRfZm9saW8oc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLCBz dHJ1Y3QgZm9saW8gKmZvbGlvLAo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2tfdCBibGthZGRyKQo+PiAgewo+PiAt ICAgICAgIHN0cnVjdCBmb2xpbyAqY2ZvbGlvOwo+PiArICAgICAgIHN0cnVjdCBmMmZzX2NhY2hl ZF9ibG9jayAqZW50cnk7Cj4+ICAgICAgICAgYm9vbCBoaXR0ZWQgPSBmYWxzZTsKPj4KPj4gICAg ICAgICBpZiAoIXRlc3Rfb3B0KHNiaSwgQ09NUFJFU1NfQ0FDSEUpKQo+PiAgICAgICAgICAgICAg ICAgcmV0dXJuIGZhbHNlOwo+Pgo+PiAtICAgICAgIGNmb2xpbyA9IGYyZnNfZmlsZW1hcF9nZXRf Zm9saW8oQ09NUFJFU1NfTUFQUElORyhzYmkpLAo+PiAtICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGJsa2FkZHIsIEZHUF9MT0NLIHwgRkdQX05PV0FJVCwgR0ZQX05PRlMpOwo+PiAtICAg ICAgIGlmICghSVNfRVJSKGNmb2xpbykpIHsKPj4gLSAgICAgICAgICAgICAgIGlmIChmb2xpb190 ZXN0X3VwdG9kYXRlKGNmb2xpbykpIHsKPj4gKyAgICAgICBlbnRyeSA9IGYyZnNfZmluZF9jYWNo ZShDT01QUkVTU19DQUNIRShzYmkpLCBibGthZGRyKTsKPj4gKyAgICAgICBpZiAoIUlTX0VSUihl bnRyeSkpIHsKPj4gKyAgICAgICAgICAgICAgIGYyZnNfbG9ja19jYWNoZShlbnRyeSk7Cj4+ICsg ICAgICAgICAgICAgICBpZiAoZjJmc19pc19jb21wcmVzc19jYWNoZShlbnRyeSkgJiYKPj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmMmZzX2NhY2hlX3Rlc3RfdXB0b2RhdGUoZW50 cnkpKSB7Cj4+ICAgICAgICAgICAgICAgICAgICAgICAgIGF0b21pY19pbmMoJnNiaS0+Y29tcHJl c3NfcGFnZV9oaXQpOwo+PiAgICAgICAgICAgICAgICAgICAgICAgICBtZW1jcHkoZm9saW9fYWRk cmVzcyhmb2xpbyksCj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9saW9fYWRk cmVzcyhjZm9saW8pLCBmb2xpb19zaXplKGZvbGlvKSk7Cj4+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY2FjaGVfYWRkcmVzcyhlbnRyeSksIGZvbGlvX3NpemUoZm9saW8pKTsKPj4g ICAgICAgICAgICAgICAgICAgICAgICAgaGl0dGVkID0gdHJ1ZTsKPj4gICAgICAgICAgICAgICAg IH0KPj4gLSAgICAgICAgICAgICAgIGYyZnNfZm9saW9fcHV0KGNmb2xpbywgdHJ1ZSk7Cj4+ICsg ICAgICAgICAgICAgICBmMmZzX3B1dF9jYWNoZShlbnRyeSwgdHJ1ZSk7Cj4+ICAgICAgICAgfQo+ Pgo+PiAgICAgICAgIHJldHVybiBoaXR0ZWQ7Cj4+IEBAIC0yMDAyLDcxICsxOTg1LDcwIEBAIGJv b2wgZjJmc19sb2FkX2NvbXByZXNzZWRfZm9saW8oc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLCBz dHJ1Y3QgZm9saW8gKmZvbGlvLAo+Pgo+PiAgdm9pZCBmMmZzX2ludmFsaWRhdGVfY29tcHJlc3Nf cGFnZXMoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLCBuaWRfdCBpbm8pCj4gCj4gVGhpcyBpcyBP KE4pIEZ1bGwtdHJlZSBzY2FuIG9uIGlub2RlIGV2aWN0aW9uLgo+IAo+IFdEWVQgdG8gaW1wcm92 ZSBpdD8KPiAgLSBQZXItaW5vZGUgdHJhY2tpbmcKPiAgLSBSZS1ldmFsdWF0ZSBldmljdGlvbiBw b2xpY3k6IFNpbmNlIGNvbXByZXNzIGNhY2hlIGJsb2NrcyBhcmUKPiBpbmRleGVkIGJ5IHBoeXNp Y2FsIGJsb2NrIGFkZHJlc3MgKGJsa2FkZHIpIGFuZCBob2xkIGltbXV0YWJsZSBkaXNrCj4gZGF0 YSwgdGhlIGNhY2hlZCBibG9ja3MgcmVtYWluIHZhbGlkIGV2ZW4gYWZ0ZXIgdGhlIGlub2RlIGlz Cj4gY2xvc2VkL2V2aWN0ZWQuCgpTbyB5b3UgbWVhbiBsaWtlIGV4dGVudCBjYWNoZSBwb2xpY3ks IHJpZ2h0PyBjYWNoZSBzdGlsbCBrZWVwIHZhbGlkIGJlZm9yZQp1bmxpbmsvdW1vdW50LgoKPiAg ICBXZSBzaG91bGQgZXZhbHVhdGUgd2hldGhlciB3ZSBhY3R1YWxseSBuZWVkIHRvIHN5bmNocm9u b3VzbHkgcHVyZ2UKPiBjbGVhbiBjb21wcmVzcyBjYWNoZSBlbnRyaWVzIHVwb24gaW5vZGUgZXZp Y3Rpb24sIG9yIGlmIHdlIGNhbiBzaW1wbHkKPiBsZXQgdGhlIG1lbW9yeSBzaHJpbmtlciByZWNs YWltIHRoZW0gdmlhIExSVSB1bmRlciBtZW1vcnkgcHJlc3N1cmUuCgpJIHRoaW5rIHlvdXIgaWRl YSBpcyBnb29kLCBhbHNvIEknbSBnb29kIHRvIGltcHJvdmUgY29tcHJlc3MgY2FjaGUsIGFjdHVh bGx5LAppbiB0aGlzIHBhdGNoIEkganVzdCB3YW50IHRvIGRvIG1pbmltdW0gcmVwbGFjZW1lbnQg aW4gYmV0d2VlbiBmb2xpbyBhbmQgaW50ZXJuYWwKY2FjaGUsIHdoYXQgZG8geW91IHRoaW5rIG9m IGltcHJvdmluZyBpdCB3LyBhIHNlcGFyYXRlZCBwYXRjaCBhIGJpdCBsYXRlcj8KCj4gCj4+ICB7 Cj4+IC0gICAgICAgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcgPSBDT01QUkVTU19NQVBQ SU5HKHNiaSk7Cj4+IC0gICAgICAgc3RydWN0IGZvbGlvX2JhdGNoIGZiYXRjaDsKPj4gLSAgICAg ICBwZ29mZl90IGluZGV4ID0gMDsKPj4gLSAgICAgICBwZ29mZl90IGVuZCA9IE1BWF9CTEtBRERS KHNiaSk7Cj4+ICsgICAgICAgc3RydWN0IGYyZnNfY2FjaGVkX2Jsb2NrX2xpc3QgKmNhY2hlID0g Q09NUFJFU1NfQ0FDSEUoc2JpKTsKPj4gKyAgICAgICBzdHJ1Y3QgZjJmc19jYWNoZWRfYmxvY2sg KmVudHJpZXNbRjJGU19PTlNUQUNLX0NBQ0hFU107Cj4+ICsgICAgICAgdW5zaWduZWQgbG9uZyBm bGFnczsKPj4gKyAgICAgICBwZ29mZl90IGluZGV4ID0gMCwgZW5kID0gVUxPTkdfTUFYOwo+PiAr ICAgICAgIGludCBucjsKPj4gKyAgICAgICBpbnQgaTsKPj4KPj4gLSAgICAgICBpZiAoIW1hcHBp bmctPm5ycGFnZXMpCj4gCj4gV2h5IGRpZCB5b3UgcmVtb3ZlIHRoaXMgbGluZT8KCkJlY2F1c2Ug Y29tcHJlc3NfaW5vZGUncyBtYXBwaW5nIGlzIG5vdCBleGlzdGluZz8KCj4gCj4+ICsgICAgICAg aWYgKCF0ZXN0X29wdChzYmksIENPTVBSRVNTX0NBQ0hFKSkKPj4gICAgICAgICAgICAgICAgIHJl dHVybjsKPj4gLQo+PiAtICAgICAgIGZvbGlvX2JhdGNoX2luaXQoJmZiYXRjaCk7Cj4+IC0KPj4g LSAgICAgICBkbyB7Cj4+IC0gICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgbnIsIGk7Cj4+IC0K Pj4gLSAgICAgICAgICAgICAgIG5yID0gZmlsZW1hcF9nZXRfZm9saW9zKG1hcHBpbmcsICZpbmRl eCwgZW5kIC0gMSwgJmZiYXRjaCk7Cj4+IC0gICAgICAgICAgICAgICBpZiAoIW5yKQo+PiArbmV4 dDoKPj4gKyAgICAgICBzcGluX2xvY2tfaXJxc2F2ZSgmY2FjaGUtPnRyZWVfbG9jaywgZmxhZ3Mp Owo+PiArICAgICAgIG5yID0gcmFkaXhfdHJlZV9nYW5nX2xvb2t1cCgmY2FjaGUtPnJvb3QsICh2 b2lkICoqKWVudHJpZXMsIGluZGV4LAo+PiArICAgICAgICAgICAgICAgbWluKCh1bnNpZ25lZCBs b25nKUYyRlNfT05TVEFDS19DQUNIRVMsIGVuZCAtIGluZGV4KSk7Cj4+ICsgICAgICAgaWYgKCFu cikKPj4gKyAgICAgICAgICAgICAgIGdvdG8gb3V0X3VubG9jazsKPj4gKwo+PiArICAgICAgIGZv ciAoaSA9IDA7IGkgPCBucjsgaSsrKSB7Cj4+ICsgICAgICAgICAgICAgICBzdHJ1Y3QgZjJmc19j YWNoZWRfYmxvY2sgKmVudHJ5ID0gZW50cmllc1tpXTsKPj4gKwo+PiArICAgICAgICAgICAgICAg aWYgKGVudHJ5LT5pbmRleCA+PSBlbmQpIHsKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgbnIg PSBpOwo+PiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKPj4gKyAgICAgICAgICAgICAg IH0KPj4gKyAgICAgICAgICAgICAgIGYyZnNfY2FjaGVfZ2V0KGVudHJ5KTsKPj4gKyAgICAgICB9 Cj4+ICtvdXRfdW5sb2NrOgo+PiArICAgICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmNhY2hl LT50cmVlX2xvY2ssIGZsYWdzKTsKPj4gKyAgICAgICBpZiAoIW5yKQo+PiArICAgICAgICAgICAg ICAgcmV0dXJuOwo+PiArICAgICAgIGZvciAoaSA9IDA7IGkgPCBucjsgaSsrKSB7Cj4+ICsgICAg ICAgICAgICAgICBzdHJ1Y3QgZjJmc19jYWNoZWRfYmxvY2sgKmVudHJ5ID0gZW50cmllc1tpXTsK Pj4KPj4gLSAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBucjsgaSsrKSB7Cj4+IC0gICAg ICAgICAgICAgICAgICAgICAgIHN0cnVjdCBmb2xpbyAqZm9saW8gPSBmYmF0Y2guZm9saW9zW2ld Owo+PiArICAgICAgICAgICAgICAgaW5kZXggPSBlbnRyeS0+aW5kZXggKyAxOwo+Pgo+PiAtICAg ICAgICAgICAgICAgICAgICAgICBmb2xpb19sb2NrKGZvbGlvKTsKPj4gLSAgICAgICAgICAgICAg ICAgICAgICAgaWYgKGZvbGlvLT5tYXBwaW5nICE9IG1hcHBpbmcpIHsKPj4gLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBmb2xpb191bmxvY2soZm9saW8pOwo+PiAtICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwo+PiAtICAgICAgICAgICAgICAgICAgICAgICB9 Cj4+ICsgICAgICAgICAgICAgICBmMmZzX2xvY2tfY2FjaGUoZW50cnkpOwo+Pgo+PiAtICAgICAg ICAgICAgICAgICAgICAgICBpZiAoaW5vICE9IGZvbGlvX2dldF9mMmZzX2RhdGEoZm9saW8pKSB7 Cj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9saW9fdW5sb2NrKGZvbGlvKTsK Pj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKPj4gLSAgICAgICAg ICAgICAgICAgICAgICAgfQo+PiAtCj4+IC0gICAgICAgICAgICAgICAgICAgICAgIGdlbmVyaWNf ZXJyb3JfcmVtb3ZlX2ZvbGlvKG1hcHBpbmcsIGZvbGlvKTsKPj4gLSAgICAgICAgICAgICAgICAg ICAgICAgZm9saW9fdW5sb2NrKGZvbGlvKTsKPj4gKyAgICAgICAgICAgICAgIGlmICghZjJmc19p c19jb21wcmVzc19jYWNoZShlbnRyeSkpIHsKPiAKPiBIb3cgaXMgdGhpcyBwb3NzaWJsZT8KPiBv ciBpZiAoIWVudHJ5LT5jYWNoZSk/CgpMb29rcyBsaWtlIGEgaW1wb3NzaWJsZSBjYXNlLCBsZXQg bWUgY2hhbmVnIGl0IHRvIGEgZjJmc19idWdfb24oKS4KClRoYW5rcywKCj4gCj4gVGhhbmtzLAo+ IAo+PiArICAgICAgICAgICAgICAgICAgICAgICBmMmZzX3VubG9ja19jYWNoZShlbnRyeSk7Cj4+ ICsgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwo+PiAgICAgICAgICAgICAgICAgfQo+ PiAtICAgICAgICAgICAgICAgZm9saW9fYmF0Y2hfcmVsZWFzZSgmZmJhdGNoKTsKPj4gKyAgICAg ICAgICAgICAgIGlmIChlbnRyeS0+aW5vICE9IGlubykgewo+PiArICAgICAgICAgICAgICAgICAg ICAgICBmMmZzX3VubG9ja19jYWNoZShlbnRyeSk7Cj4+ICsgICAgICAgICAgICAgICAgICAgICAg IGNvbnRpbnVlOwo+PiArICAgICAgICAgICAgICAgfQo+PiArCj4+ICsgICAgICAgICAgICAgICBm MmZzX3RydW5jYXRlX2NhY2hlKGVudHJ5LCBmYWxzZSk7Cj4+ICsgICAgICAgICAgICAgICBmMmZz X3VubG9ja19jYWNoZShlbnRyeSk7Cj4+ICsgICAgICAgfQo+PiArICAgICAgIGYyZnNfY2FjaGVf Z2FuZ19yZWxlYXNlKGVudHJpZXMsIG5yKTsKPj4gKwo+PiArICAgICAgIGlmIChpbmRleCA8IGVu ZCkgewo+PiAgICAgICAgICAgICAgICAgY29uZF9yZXNjaGVkKCk7Cj4+IC0gICAgICAgfSB3aGls ZSAoaW5kZXggPCBlbmQpOwo+PiArICAgICAgICAgICAgICAgZ290byBuZXh0Owo+PiArICAgICAg IH0KPj4gIH0KPj4KPj4gLWludCBmMmZzX2luaXRfY29tcHJlc3NfaW5vZGUoc3RydWN0IGYyZnNf c2JfaW5mbyAqc2JpKQo+PiArdm9pZCBmMmZzX2luaXRfY29tcHJlc3NfY2FjaGVfY29udGV4dChz dHJ1Y3QgZjJmc19zYl9pbmZvICpzYmkpCj4+ICB7Cj4+IC0gICAgICAgc3RydWN0IGlub2RlICpp bm9kZTsKPj4gLQo+PiAgICAgICAgIGlmICghdGVzdF9vcHQoc2JpLCBDT01QUkVTU19DQUNIRSkp Cj4+IC0gICAgICAgICAgICAgICByZXR1cm4gMDsKPj4gLQo+PiAtICAgICAgIGlub2RlID0gZjJm c19pZ2V0KHNiaS0+c2IsIEYyRlNfQ09NUFJFU1NfSU5PKHNiaSkpOwo+PiAtICAgICAgIGlmIChJ U19FUlIoaW5vZGUpKQo+PiAtICAgICAgICAgICAgICAgcmV0dXJuIFBUUl9FUlIoaW5vZGUpOwo+ PiAtICAgICAgIHNiaS0+Y29tcHJlc3NfaW5vZGUgPSBpbm9kZTsKPj4gKyAgICAgICAgICAgICAg IHJldHVybjsKPj4KPj4gICAgICAgICBzYmktPmNvbXByZXNzX3BlcmNlbnQgPSBDT01QUkVTU19Q RVJDRU5UOwo+PiAgICAgICAgIHNiaS0+Y29tcHJlc3Nfd2F0ZXJtYXJrID0gQ09NUFJFU1NfV0FU RVJNQVJLOwo+PiAtCj4+ICAgICAgICAgYXRvbWljX3NldCgmc2JpLT5jb21wcmVzc19wYWdlX2hp dCwgMCk7Cj4+IC0KPj4gLSAgICAgICByZXR1cm4gMDsKPj4gLX0KPj4gLQo+PiAtdm9pZCBmMmZz X2Rlc3Ryb3lfY29tcHJlc3NfaW5vZGUoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpKQo+PiAtewo+ PiAtICAgICAgIGlmICghc2JpLT5jb21wcmVzc19pbm9kZSkKPj4gLSAgICAgICAgICAgICAgIHJl dHVybjsKPj4gLSAgICAgICBpcHV0KHNiaS0+Y29tcHJlc3NfaW5vZGUpOwo+PiAtICAgICAgIHNi aS0+Y29tcHJlc3NfaW5vZGUgPSBOVUxMOwo+PiAgfQo+Pgo+PiAgaW50IGYyZnNfaW5pdF9wYWdl X2FycmF5X2NhY2hlKHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSkKPj4gZGlmZiAtLWdpdCBhL2Zz L2YyZnMvZGVidWcuYyBiL2ZzL2YyZnMvZGVidWcuYwo+PiBpbmRleCBiZWRhYWRlOTI2NzcuLjhj ZDA2ZjdiYTllNyAxMDA2NDQKPj4gLS0tIGEvZnMvZjJmcy9kZWJ1Zy5jCj4+ICsrKyBiL2ZzL2Yy ZnMvZGVidWcuYwo+PiBAQCAtMjI1LDggKzIyNSw4IEBAIHN0YXRpYyB2b2lkIHVwZGF0ZV9nZW5l cmFsX3N0YXR1cyhzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmkpCj4+ICAgICAgICAgc2ktPm5vZGVf Y2FjaGVzID0gTk9ERV9DQUNIRShzYmkpLT5udW1fZW50cmllczsKPj4gICAgICAgICBzaS0+bWV0 YV9jYWNoZXMgPSBNRVRBX0NBQ0hFKHNiaSktPm51bV9lbnRyaWVzOwo+PiAgI2lmZGVmIENPTkZJ R19GMkZTX0ZTX0NPTVBSRVNTSU9OCj4+IC0gICAgICAgaWYgKHNiaS0+Y29tcHJlc3NfaW5vZGUp IHsKPj4gLSAgICAgICAgICAgICAgIHNpLT5jb21wcmVzc19wYWdlcyA9IENPTVBSRVNTX01BUFBJ Tkcoc2JpKS0+bnJwYWdlczsKPj4gKyAgICAgICBpZiAodGVzdF9vcHQoc2JpLCBDT01QUkVTU19D QUNIRSkpIHsKPj4gKyAgICAgICAgICAgICAgIHNpLT5jb21wcmVzc19wYWdlcyA9IENPTVBSRVNT X0NBQ0hFKHNiaSktPm51bV9lbnRyaWVzOwo+PiAgICAgICAgICAgICAgICAgc2ktPmNvbXByZXNz X3BhZ2VfaGl0ID0gYXRvbWljX3JlYWQoJnNiaS0+Y29tcHJlc3NfcGFnZV9oaXQpOwo+PiAgICAg ICAgIH0KPj4gICNlbmRpZgo+PiBAQCAtMzg2LDEwICszODYsMTEgQEAgc3RhdGljIHZvaWQgdXBk YXRlX21lbV9pbmZvKHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSkKPj4gICAgICAgICBzaS0+cGFn ZV9tZW0gKz0gKHVuc2lnbmVkIGxvbmcgbG9uZylOT0RFX0NBQ0hFKHNiaSktPm51bV9lbnRyaWVz IDw8IFBBR0VfU0hJRlQ7Cj4+ICAgICAgICAgc2ktPmNhY2hlX21lbSArPSBOT0RFX0NBQ0hFKHNi aSktPm51bV9lbnRyaWVzICogc2l6ZW9mKHN0cnVjdCBmMmZzX2NhY2hlZF9ibG9jayk7Cj4+ICAj aWZkZWYgQ09ORklHX0YyRlNfRlNfQ09NUFJFU1NJT04KPj4gLSAgICAgICBpZiAoc2JpLT5jb21w cmVzc19pbm9kZSkgewo+PiAtICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBucGFnZXMgPSBD T01QUkVTU19NQVBQSU5HKHNiaSktPm5ycGFnZXM7Cj4+ICsgICAgICAgaWYgKHRlc3Rfb3B0KHNi aSwgQ09NUFJFU1NfQ0FDSEUpKSB7Cj4+ICsgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIG5w YWdlcyA9IENPTVBSRVNTX0NBQ0hFKHNiaSktPm51bV9lbnRyaWVzOwo+Pgo+PiAgICAgICAgICAg ICAgICAgc2ktPnBhZ2VfbWVtICs9ICh1bnNpZ25lZCBsb25nIGxvbmcpbnBhZ2VzIDw8IFBBR0Vf U0hJRlQ7Cj4+ICsgICAgICAgICAgICAgICBzaS0+Y2FjaGVfbWVtICs9IG5wYWdlcyAqIHNpemVv ZihzdHJ1Y3QgZjJmc19jYWNoZWRfYmxvY2spOwo+PiAgICAgICAgIH0KPj4gICNlbmRpZgo+PiAg fQo+PiBkaWZmIC0tZ2l0IGEvZnMvZjJmcy9mMmZzLmggYi9mcy9mMmZzL2YyZnMuaAo+PiBpbmRl eCA1YjFiMzEwNGVjMjAuLmQ1NTc0OWIwM2VkMiAxMDA2NDQKPj4gLS0tIGEvZnMvZjJmcy9mMmZz LmgKPj4gKysrIGIvZnMvZjJmcy9mMmZzLmgKPj4gQEAgLTIwNzgsNyArMjA3OCw2IEBAIHN0cnVj dCBmMmZzX3NiX2luZm8gewo+PiAgICAgICAgIHUzMiBjb21wcl9uZXdfaW5vZGU7Cj4+Cj4+ICAg ICAgICAgLyogRm9yIGNvbXByZXNzZWQgYmxvY2sgY2FjaGUgKi8KPj4gLSAgICAgICBzdHJ1Y3Qg aW5vZGUgKmNvbXByZXNzX2lub2RlOyAgICAgICAgICAgLyogY2FjaGUgY29tcHJlc3NlZCBibG9j a3MgKi8KPj4gICAgICAgICB1bnNpZ25lZCBpbnQgY29tcHJlc3NfcGVyY2VudDsgICAgICAgICAg LyogY2FjaGUgcGFnZSBwZXJjZW50YWdlICovCj4+ICAgICAgICAgdW5zaWduZWQgaW50IGNvbXBy ZXNzX3dhdGVybWFyazsgICAgICAgIC8qIGNhY2hlIHBhZ2Ugd2F0ZXJtYXJrICovCj4+ICAgICAg ICAgYXRvbWljX3QgY29tcHJlc3NfcGFnZV9oaXQ7ICAgICAgICAgICAgIC8qIGNhY2hlIGhpdCBj b3VudCAqLwo+PiBAQCAtNDgyMSwxMyArNDgyMCwxMSBAQCB1bnNpZ25lZCBpbnQgZjJmc19jbHVz dGVyX2Jsb2Nrc19hcmVfY29udGlndW91cyhzdHJ1Y3QgZG5vZGVfb2ZfZGF0YSAqZG4sCj4+ICBp bnQgZjJmc19pbml0X2NvbXByZXNzX2N0eChzdHJ1Y3QgY29tcHJlc3NfY3R4ICpjYyk7Cj4+ICB2 b2lkIGYyZnNfZGVzdHJveV9jb21wcmVzc19jdHgoc3RydWN0IGNvbXByZXNzX2N0eCAqY2MsIGJv b2wgcmV1c2UpOwo+PiAgdm9pZCBmMmZzX2luaXRfY29tcHJlc3NfaW5mbyhzdHJ1Y3QgZjJmc19z Yl9pbmZvICpzYmkpOwo+PiAtaW50IGYyZnNfaW5pdF9jb21wcmVzc19pbm9kZShzdHJ1Y3QgZjJm c19zYl9pbmZvICpzYmkpOwo+PiAtdm9pZCBmMmZzX2Rlc3Ryb3lfY29tcHJlc3NfaW5vZGUoc3Ry dWN0IGYyZnNfc2JfaW5mbyAqc2JpKTsKPj4gK3ZvaWQgZjJmc19pbml0X2NvbXByZXNzX2NhY2hl X2NvbnRleHQoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpKTsKPj4gIGludCBmMmZzX2luaXRfcGFn ZV9hcnJheV9jYWNoZShzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmkpOwo+PiAgdm9pZCBmMmZzX2Rl c3Ryb3lfcGFnZV9hcnJheV9jYWNoZShzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmkpOwo+PiAgaW50 IF9faW5pdCBmMmZzX2luaXRfY29tcHJlc3NfY2FjaGUodm9pZCk7Cj4+ICB2b2lkIGYyZnNfZGVz dHJveV9jb21wcmVzc19jYWNoZSh2b2lkKTsKPj4gLXN0cnVjdCBhZGRyZXNzX3NwYWNlICpDT01Q UkVTU19NQVBQSU5HKHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSk7Cj4+ICB2b2lkIGYyZnNfaW52 YWxpZGF0ZV9jb21wcmVzc19wYWdlc19yYW5nZShzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmksCj4+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBibG9ja190IGJsa2FkZHIs IHVuc2lnbmVkIGludCBsZW4pOwo+PiAgYm9vbCBmMmZzX2xvYWRfY29tcHJlc3NlZF9mb2xpbyhz dHJ1Y3QgZjJmc19zYl9pbmZvICpzYmksIHN0cnVjdCBmb2xpbyAqZm9saW8sCj4+IEBAIC00ODc2 LDggKzQ4NzMsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZjJmc19wdXRfZm9saW9fZGljKHN0cnVj dCBmb2xpbyAqZm9saW8sIGJvb2wgaW5fdGFzaykKPj4gIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQg aW50IGYyZnNfY2x1c3Rlcl9ibG9ja3NfYXJlX2NvbnRpZ3VvdXMoCj4+ICAgICAgICAgICAgICAg ICAgICAgICAgIHN0cnVjdCBkbm9kZV9vZl9kYXRhICpkbiwgdW5zaWduZWQgaW50IG9mc19pbl9u b2RlKSB7IHJldHVybiAwOyB9Cj4+ICBzdGF0aWMgaW5saW5lIGJvb2wgZjJmc19zYW5pdHlfY2hl Y2tfY2x1c3RlcihzdHJ1Y3QgZG5vZGVfb2ZfZGF0YSAqZG4pIHsgcmV0dXJuIGZhbHNlOyB9Cj4+ IC1zdGF0aWMgaW5saW5lIGludCBmMmZzX2luaXRfY29tcHJlc3NfaW5vZGUoc3RydWN0IGYyZnNf c2JfaW5mbyAqc2JpKSB7IHJldHVybiAwOyB9Cj4+IC1zdGF0aWMgaW5saW5lIHZvaWQgZjJmc19k ZXN0cm95X2NvbXByZXNzX2lub2RlKHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSkgeyB9Cj4+ICtz dGF0aWMgaW5saW5lIHZvaWQgZjJmc19pbml0X2NvbXByZXNzX2NhY2hlX2NvbnRleHQoc3RydWN0 IGYyZnNfc2JfaW5mbyAqc2JpKSB7IH0KPj4gIHN0YXRpYyBpbmxpbmUgaW50IGYyZnNfaW5pdF9w YWdlX2FycmF5X2NhY2hlKHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSkgeyByZXR1cm4gMDsgfQo+ PiAgc3RhdGljIGlubGluZSB2b2lkIGYyZnNfZGVzdHJveV9wYWdlX2FycmF5X2NhY2hlKHN0cnVj dCBmMmZzX3NiX2luZm8gKnNiaSkgeyB9Cj4+ICBzdGF0aWMgaW5saW5lIGludCBfX2luaXQgZjJm c19pbml0X2NvbXByZXNzX2NhY2hlKHZvaWQpIHsgcmV0dXJuIDA7IH0KPj4gZGlmZiAtLWdpdCBh L2ZzL2YyZnMvaW5vZGUuYyBiL2ZzL2YyZnMvaW5vZGUuYwo+PiBpbmRleCBhYTZmNGQ0YTU1YTcu LjE2ODhkOWNiYWZlMSAxMDA2NDQKPj4gLS0tIGEvZnMvZjJmcy9pbm9kZS5jCj4+ICsrKyBiL2Zz L2YyZnMvaW5vZGUuYwo+PiBAQCAtNTczLDE1ICs1NzMsNiBAQCBzdGF0aWMgaW50IGRvX3JlYWRf aW5vZGUoc3RydWN0IGlub2RlICppbm9kZSkKPj4gICAgICAgICByZXR1cm4gMDsKPj4gIH0KPj4K Pj4gLXN0YXRpYyBib29sIGlzX21ldGFfaW5vKHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSwgdW5z aWduZWQgaW50IGlubykKPj4gLXsKPj4gLSNpZmRlZiBDT05GSUdfRjJGU19GU19DT01QUkVTU0lP Tgo+PiAtICAgICAgIGlmICh0ZXN0X29wdChzYmksIENPTVBSRVNTX0NBQ0hFKSAmJiBpbm8gPT0g RjJGU19DT01QUkVTU19JTk8oc2JpKSkKPj4gLSAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwo+ PiAtI2VuZGlmCj4+IC0gICAgICAgcmV0dXJuIGZhbHNlOwo+PiAtfQo+PiAtCj4+ICBzdHJ1Y3Qg aW5vZGUgKmYyZnNfaWdldChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCB1bnNpZ25lZCBsb25nIGlu bykKPj4gIHsKPj4gICAgICAgICBzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmkgPSBGMkZTX1NCKHNi KTsKPj4gQEAgLTU5Myw0MiArNTg0LDE3IEBAIHN0cnVjdCBpbm9kZSAqZjJmc19pZ2V0KHN0cnVj dCBzdXBlcl9ibG9jayAqc2IsIHVuc2lnbmVkIGxvbmcgaW5vKQo+PiAgICAgICAgICAgICAgICAg cmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7Cj4+Cj4+ICAgICAgICAgaWYgKCEoaW5vZGVfc3RhdGVf cmVhZF9vbmNlKGlub2RlKSAmIElfTkVXKSkgewo+PiAtICAgICAgICAgICAgICAgaWYgKGlzX21l dGFfaW5vKHNiaSwgaW5vKSkgewo+PiAtICAgICAgICAgICAgICAgICAgICAgICBmMmZzX2Vycihz YmksICJpbmFjY2Vzc2libGUgaW5vZGU6ICVsdSwgcnVuIGZzY2sgdG8gcmVwYWlyIiwgaW5vKTsK Pj4gLSAgICAgICAgICAgICAgICAgICAgICAgc2V0X3NiaV9mbGFnKHNiaSwgU0JJX05FRURfRlND Syk7Cj4+IC0gICAgICAgICAgICAgICAgICAgICAgIHJldCA9IC1FRlNDT1JSVVBURUQ7Cj4+IC0g ICAgICAgICAgICAgICAgICAgICAgIHRyYWNlX2YyZnNfaWdldF9leGl0KGlub2RlLCByZXQpOwo+ PiAtICAgICAgICAgICAgICAgICAgICAgICBpcHV0KGlub2RlKTsKPj4gLSAgICAgICAgICAgICAg ICAgICAgICAgZjJmc19oYW5kbGVfZXJyb3Ioc2JpLCBFUlJPUl9DT1JSVVBURURfSU5PREUpOwo+ PiAtICAgICAgICAgICAgICAgICAgICAgICBmc2Vycm9yX3JlcG9ydF9maWxlX21ldGFkYXRhKGlu b2RlLCByZXQsIEdGUF9OT0ZTKTsKPj4gLSAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVS Ul9QVFIocmV0KTsKPj4gLSAgICAgICAgICAgICAgIH0KPj4gLQo+PiAgICAgICAgICAgICAgICAg dHJhY2VfZjJmc19pZ2V0KGlub2RlKTsKPj4gICAgICAgICAgICAgICAgIHJldHVybiBpbm9kZTsK Pj4gICAgICAgICB9Cj4+Cj4+IC0gICAgICAgaWYgKGlzX21ldGFfaW5vKHNiaSwgaW5vKSkKPj4g LSAgICAgICAgICAgICAgIGdvdG8gbWFrZV9ub3c7Cj4+IC0KPj4gICAgICAgICByZXQgPSBkb19y ZWFkX2lub2RlKGlub2RlKTsKPj4gICAgICAgICBpZiAocmV0KQo+PiAgICAgICAgICAgICAgICAg Z290byBiYWRfaW5vZGU7Cj4+IC1tYWtlX25vdzoKPj4gKwo+PiAgICAgICAgIGYyZnNfc2V0X2lu b2RlX2ZsYWdzKGlub2RlKTsKPj4KPj4gLSAgICAgICBpZiAoaW5vID09IEYyRlNfQ09NUFJFU1Nf SU5PKHNiaSkpIHsKPj4gLSNpZmRlZiBDT05GSUdfRjJGU19GU19DT01QUkVTU0lPTgo+PiAtICAg ICAgICAgICAgICAgaW5vZGUtPmlfbWFwcGluZy0+YV9vcHMgPSAmZjJmc19jb21wcmVzc19hb3Bz Owo+PiAtICAgICAgICAgICAgICAgLyoKPj4gLSAgICAgICAgICAgICAgICAqIGdlbmVyaWNfZXJy b3JfcmVtb3ZlX2ZvbGlvIG9ubHkgdHJ1bmNhdGVzIHBhZ2VzIG9mIHJlZ3VsYXIKPj4gLSAgICAg ICAgICAgICAgICAqIGlub2RlCj4+IC0gICAgICAgICAgICAgICAgKi8KPj4gLSAgICAgICAgICAg ICAgIGlub2RlLT5pX21vZGUgfD0gU19JRlJFRzsKPj4gLSNlbmRpZgo+PiAtICAgICAgICAgICAg ICAgbWFwcGluZ19zZXRfZ2ZwX21hc2soaW5vZGUtPmlfbWFwcGluZywKPj4gLSAgICAgICAgICAg ICAgICAgICAgICAgR0ZQX05PRlMgfCBfX0dGUF9ISUdITUVNIHwgX19HRlBfTU9WQUJMRSk7Cj4+ IC0gICAgICAgfSBlbHNlIGlmIChTX0lTUkVHKGlub2RlLT5pX21vZGUpKSB7Cj4+ICsgICAgICAg aWYgKFNfSVNSRUcoaW5vZGUtPmlfbW9kZSkpIHsKPj4gICAgICAgICAgICAgICAgIGlub2RlLT5p X29wID0gJmYyZnNfZmlsZV9pbm9kZV9vcGVyYXRpb25zOwo+PiAgICAgICAgICAgICAgICAgaW5v ZGUtPmlfZm9wID0gJmYyZnNfZmlsZV9vcGVyYXRpb25zOwo+PiAgICAgICAgICAgICAgICAgaW5v ZGUtPmlfbWFwcGluZy0+YV9vcHMgPSAmZjJmc19kYmxvY2tfYW9wczsKPj4gQEAgLTg3OSw3ICs4 NDUsNyBAQCBzdGF0aWMgdm9pZCBmMmZzX2V2aWN0X2lub2RlX3dvcmsoc3RydWN0IHdvcmtfc3Ry dWN0ICp3b3JrKQo+PiAgLyoKPj4gICAqIFJldHVybiB0cnVlLCBpZiB3ZSBzaG91bGRuJ3QgZ28g dGhyb3VnaCBwb3N0X2V2aWN0X2lub2RlLgo+PiAgICovCj4+IC1zdGF0aWMgYm9vbCBmMmZzX3By ZV9ldmljdF9pbm9kZShzdHJ1Y3QgaW5vZGUgKmlub2RlKQo+PiArc3RhdGljIHZvaWQgZjJmc19w cmVfZXZpY3RfaW5vZGUoc3RydWN0IGlub2RlICppbm9kZSkKPj4gIHsKPj4gICAgICAgICBzdHJ1 Y3QgZjJmc19zYl9pbmZvICpzYmkgPSBGMkZTX0lfU0IoaW5vZGUpOwo+PiAgICAgICAgIHN0cnVj dCBmMmZzX2lub2RlX2luZm8gKmZpID0gRjJGU19JKGlub2RlKTsKPj4gQEAgLTkwNSwxNyArODcx LDEyIEBAIHN0YXRpYyBib29sIGYyZnNfcHJlX2V2aWN0X2lub2RlKHN0cnVjdCBpbm9kZSAqaW5v ZGUpCj4+ICAgICAgICAgICAgIHRlc3Rfb3B0KHNiaSwgQ09NUFJFU1NfQ0FDSEUpICYmIGYyZnNf Y29tcHJlc3NlZF9maWxlKGlub2RlKSkKPj4gICAgICAgICAgICAgICAgIGYyZnNfaW52YWxpZGF0 ZV9jb21wcmVzc19wYWdlcyhzYmksIGlub2RlLT5pX2lubyk7Cj4+Cj4+IC0gICAgICAgaWYgKGlu b2RlLT5pX2lubyA9PSBGMkZTX0NPTVBSRVNTX0lOTyhzYmkpKQo+PiAtICAgICAgICAgICAgICAg cmV0dXJuIHRydWU7Cj4+IC0KPj4gICAgICAgICBmMmZzX2J1Z19vbihzYmksIGdldF9kaXJ0eV9w YWdlcyhpbm9kZSkpOwo+PiAgICAgICAgIGYyZnNfcmVtb3ZlX2RpcnR5X2lub2RlKGlub2RlKTsK Pj4gICAgICAgICBmMmZzX3JlbW92ZV9kb25hdGVfaW5vZGUoaW5vZGUpOwo+Pgo+PiAgICAgICAg IGlmICghSVNfREVWSUNFX0FMSUFTSU5HKGlub2RlKSkKPj4gICAgICAgICAgICAgICAgIGYyZnNf ZGVzdHJveV9leHRlbnRfdHJlZShpbm9kZSk7Cj4+IC0KPj4gLSAgICAgICByZXR1cm4gZmFsc2U7 Cj4+ICB9Cj4+Cj4+ICBzdGF0aWMgdm9pZCBmMmZzX2RlbGV0ZV9pbm9kZShzdHJ1Y3QgaW5vZGUg Kmlub2RlKQo+PiBAQCAtMTA3NywxNSArMTAzOCwxMyBAQCBzdGF0aWMgdm9pZCBmMmZzX3Bvc3Rf ZXZpY3RfaW5vZGUoc3RydWN0IGlub2RlICppbm9kZSkKPj4gICAqLwo+PiAgdm9pZCBmMmZzX2V2 aWN0X2lub2RlKHN0cnVjdCBpbm9kZSAqaW5vZGUpCj4+ICB7Cj4+IC0gICAgICAgaWYgKGYyZnNf cHJlX2V2aWN0X2lub2RlKGlub2RlKSkKPj4gLSAgICAgICAgICAgICAgIGdvdG8gY2xlYXJfb3V0 Owo+PiArICAgICAgIGYyZnNfcHJlX2V2aWN0X2lub2RlKGlub2RlKTsKPj4KPj4gICAgICAgICBp ZiAoIWlub2RlLT5pX25saW5rICYmICFpc19iYWRfaW5vZGUoaW5vZGUpKQo+PiAgICAgICAgICAg ICAgICAgZjJmc19kZWxldGVfaW5vZGUoaW5vZGUpOwo+Pgo+PiAgICAgICAgIGYyZnNfcG9zdF9l dmljdF9pbm9kZShpbm9kZSk7Cj4+Cj4+IC1jbGVhcl9vdXQ6Cj4+ICAgICAgICAgZnNjcnlwdF9w dXRfZW5jcnlwdGlvbl9pbmZvKGlub2RlKTsKPj4gICAgICAgICBjbGVhcl9pbm9kZShpbm9kZSk7 Cj4+ICB9Cj4+IGRpZmYgLS1naXQgYS9mcy9mMmZzL25vZGUuYyBiL2ZzL2YyZnMvbm9kZS5jCj4+ IGluZGV4IDA3YzIzYjM1ZTdmNy4uY2YwNTIwMDhhYTY0IDEwMDY0NAo+PiAtLS0gYS9mcy9mMmZz L25vZGUuYwo+PiArKysgYi9mcy9mMmZzL25vZGUuYwo+PiBAQCAtMTE5LDcgKzExOSw3IEBAIGJv b2wgZjJmc19hdmFpbGFibGVfZnJlZV9tZW1vcnkoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLCBp bnQgdHlwZSkKPj4gICAgICAgICAgICAgICAgICAqIGV4Y2VlZCB0aHJlc2hvbGQsIGRlbnkgY2Fj aGluZyBjb21wcmVzcyBwYWdlLgo+PiAgICAgICAgICAgICAgICAgICovCj4+ICAgICAgICAgICAg ICAgICByZXMgPSAoZnJlZV9yYW0gPiBhdmFpbF9yYW0gKiBzYmktPmNvbXByZXNzX3dhdGVybWFy ayAvIDEwMCkgJiYKPj4gLSAgICAgICAgICAgICAgICAgICAgICAgKENPTVBSRVNTX01BUFBJTkco c2JpKS0+bnJwYWdlcyA8Cj4+ICsgICAgICAgICAgICAgICAgICAgICAgIChDT01QUkVTU19DQUNI RShzYmkpLT5udW1fZW50cmllcyA8Cj4+ICAgICAgICAgICAgICAgICAgICAgICAgICBmcmVlX3Jh bSAqIHNiaS0+Y29tcHJlc3NfcGVyY2VudCAvIDEwMCk7Cj4+ICAjZWxzZQo+PiAgICAgICAgICAg ICAgICAgcmVzID0gZmFsc2U7Cj4+IGRpZmYgLS1naXQgYS9mcy9mMmZzL3Nocmlua2VyLmMgYi9m cy9mMmZzL3Nocmlua2VyLmMKPj4gaW5kZXggMjBiM2ZlMWY4YzA3Li5lN2QyODMwZTZhMjMgMTAw NjQ0Cj4+IC0tLSBhL2ZzL2YyZnMvc2hyaW5rZXIuYwo+PiArKysgYi9mcy9mMmZzL3Nocmlua2Vy LmMKPj4gQEAgLTQwLDcgKzQwLDggQEAgc3RhdGljIHVuc2lnbmVkIGxvbmcgX19jb3VudF9leHRl bnRfY2FjaGUoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLAo+PiAgc3RhdGljIHVuc2lnbmVkIGxv bmcgX19jb3VudF9jYWNoZShzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmkpCj4+ICB7Cj4+ICAgICAg ICAgcmV0dXJuIHNiaS0+bWV0YV9ibG9ja3MubnVtX2VudHJpZXMgKwo+PiAtICAgICAgICAgICAg ICAgc2JpLT5ub2RlX2Jsb2Nrcy5udW1fZW50cmllczsKPj4gKyAgICAgICAgICAgICAgIHNiaS0+ bm9kZV9ibG9ja3MubnVtX2VudHJpZXMgKwo+PiArICAgICAgICAgICAgICAgc2JpLT5jb21wcmVz c19ibG9ja3MubnVtX2VudHJpZXM7Cj4+ICB9Cj4+Cj4+ICB1bnNpZ25lZCBsb25nIGYyZnNfc2hy aW5rX2NvdW50KHN0cnVjdCBzaHJpbmtlciAqc2hyaW5rLAo+PiBkaWZmIC0tZ2l0IGEvZnMvZjJm cy9zdXBlci5jIGIvZnMvZjJmcy9zdXBlci5jCj4+IGluZGV4IDZiNDJiNzM2YTY2Mi4uNTc4N2Nm Yjc2YzZlIDEwMDY0NAo+PiAtLS0gYS9mcy9mMmZzL3N1cGVyLmMKPj4gKysrIGIvZnMvZjJmcy9z dXBlci5jCj4+IEBAIC0yMDUwLDggKzIwNTAsNiBAQCBzdGF0aWMgdm9pZCBmMmZzX3B1dF9zdXBl cihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQo+Pgo+PiAgICAgICAgIGYyZnNfYnVnX29uKHNiaSwg c2JpLT5mc3luY19ub2RlX251bSk7Cj4+Cj4+IC0gICAgICAgZjJmc19kZXN0cm95X2NvbXByZXNz X2lub2RlKHNiaSk7Cj4+IC0KPj4gICAgICAgICBmMmZzX2Rlc3Ryb3lfY2FjaGUoQ09NUFJFU1Nf Q0FDSEUoc2JpKSk7Cj4+ICAgICAgICAgZjJmc19kZXN0cm95X2NhY2hlKE5PREVfQ0FDSEUoc2Jp KSk7Cj4+ICAgICAgICAgZjJmc19kZXN0cm95X2NhY2hlKE1FVEFfQ0FDSEUoc2JpKSk7Cj4+IEBA IC01Mjg1LDYgKzUyODMsOCBAQCBzdGF0aWMgaW50IGYyZnNfZmlsbF9zdXBlcihzdHJ1Y3Qgc3Vw ZXJfYmxvY2sgKnNiLCBzdHJ1Y3QgZnNfY29udGV4dCAqZmMpCj4+Cj4+ICAgICAgICAgZjJmc19p bml0X2ZzeW5jX25vZGVfaW5mbyhzYmkpOwo+Pgo+PiArICAgICAgIGYyZnNfaW5pdF9jb21wcmVz c19jYWNoZV9jb250ZXh0KHNiaSk7Cj4+ICsKPj4gICAgICAgICAvKiBzZXR1cCBjaGVja3BvaW50 IHJlcXVlc3QgY29udHJvbCBhbmQgc3RhcnQgY2hlY2twb2ludCBpc3N1ZSB0aHJlYWQgKi8KPj4g ICAgICAgICBmMmZzX2luaXRfY2twdF9yZXFfY29udHJvbChzYmkpOwo+PiAgICAgICAgIGlmICgh ZjJmc19yZWFkb25seShzYikgJiYgIXRlc3Rfb3B0KHNiaSwgRElTQUJMRV9DSEVDS1BPSU5UKSAm Jgo+PiBAQCAtNTM2MywxMyArNTM2Myw5IEBAIHN0YXRpYyBpbnQgZjJmc19maWxsX3N1cGVyKHN0 cnVjdCBzdXBlcl9ibG9jayAqc2IsIHN0cnVjdCBmc19jb250ZXh0ICpmYykKPj4gICAgICAgICAg ICAgICAgIGdvdG8gZnJlZV9pbm9fZW50cnk7Cj4+ICAgICAgICAgfQo+Pgo+PiAtICAgICAgIGVy ciA9IGYyZnNfaW5pdF9jb21wcmVzc19pbm9kZShzYmkpOwo+PiAtICAgICAgIGlmIChlcnIpCj4+ IC0gICAgICAgICAgICAgICBnb3RvIGZyZWVfcm9vdF9pbm9kZTsKPj4gLQo+PiAgICAgICAgIGVy ciA9IGYyZnNfcmVnaXN0ZXJfc3lzZnMoc2JpKTsKPj4gICAgICAgICBpZiAoZXJyKQo+PiAtICAg ICAgICAgICAgICAgZ290byBmcmVlX2NvbXByZXNzX2lub2RlOwo+PiArICAgICAgICAgICAgICAg Z290byBmcmVlX3Jvb3RfaW5vZGU7Cj4+Cj4+ICAgICAgICAgc2JpLT51bW91bnRfbG9ja19ob2xk ZXIgPSBjdXJyZW50Owo+PiAgI2lmZGVmIENPTkZJR19RVU9UQQo+PiBAQCAtNTUzNyw4ICs1NTMz LDYgQEAgc3RhdGljIGludCBmMmZzX2ZpbGxfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwg c3RydWN0IGZzX2NvbnRleHQgKmZjKQo+PiAgICAgICAgIC8qIGV2aWN0IHNvbWUgaW5vZGVzIGJl aW5nIGNhY2hlZCBieSBHQyAqLwo+PiAgICAgICAgIGV2aWN0X2lub2RlcyhzYik7Cj4+ICAgICAg ICAgZjJmc191bnJlZ2lzdGVyX3N5c2ZzKHNiaSk7Cj4+IC1mcmVlX2NvbXByZXNzX2lub2RlOgo+ PiAtICAgICAgIGYyZnNfZGVzdHJveV9jb21wcmVzc19pbm9kZShzYmkpOwo+PiAgZnJlZV9yb290 X2lub2RlOgo+PiAgICAgICAgIGRwdXQoc2ItPnNfcm9vdCk7Cj4+ICAgICAgICAgc2ItPnNfcm9v dCA9IE5VTEw7Cj4+IEBAIC01NjU1LDcgKzU2NDksOCBAQCBzdGF0aWMgdm9pZCBraWxsX2YyZnNf c3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYikKPj4gICAgICAgICAgICAgICAgICAqIGNvbXBy ZXNzIGlub2RlIGNhY2hlLgo+PiAgICAgICAgICAgICAgICAgICovCj4+ICAgICAgICAgICAgICAg ICBpZiAodGVzdF9vcHQoc2JpLCBDT01QUkVTU19DQUNIRSkpCj4+IC0gICAgICAgICAgICAgICAg ICAgICAgIHRydW5jYXRlX2lub2RlX3BhZ2VzX2ZpbmFsKENPTVBSRVNTX01BUFBJTkcoc2JpKSk7 Cj4+ICsgICAgICAgICAgICAgICAgICAgICAgIGYyZnNfaW52YWxpZGF0ZV9jb21wcmVzc19wYWdl c19yYW5nZShzYmksCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAw LCBVSU5UX01BWCk7Cj4+ICAjZW5kaWYKPj4KPj4gICAgICAgICAgICAgICAgIGlmIChpc19zYmlf ZmxhZ19zZXQoc2JpLCBTQklfSVNfRElSVFkpIHx8Cj4+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2xp bnV4L2YyZnNfZnMuaCBiL2luY2x1ZGUvbGludXgvZjJmc19mcy5oCj4+IGluZGV4IDEwNWNmZWVk ZWE3NC4uNTMzNDRlMWYyYjQ0IDEwMDY0NAo+PiAtLS0gYS9pbmNsdWRlL2xpbnV4L2YyZnNfZnMu aAo+PiArKysgYi9pbmNsdWRlL2xpbnV4L2YyZnNfZnMuaAo+PiBAQCAtMzQsNyArMzQsNiBAQAo+ PiAgI2RlZmluZSBGMkZTX1JFU0VSVkVEX05PREVfTlVNICAgICAgICAgMwo+Pgo+PiAgI2RlZmlu ZSBGMkZTX1JPT1RfSU5PKHNiaSkgICAgICgoc2JpKS0+cm9vdF9pbm9fbnVtKQo+PiAtI2RlZmlu ZSBGMkZTX0NPTVBSRVNTX0lOTyhzYmkpIChOTV9JKHNiaSktPm1heF9uaWQpCj4+Cj4+ICAjZGVm aW5lIEYyRlNfTUFYX1FVT1RBUyAgICAgICAgICAgICAgICAzCj4+Cj4+IC0tCj4+IDIuNDkuMAo+ Pgo+Pgo+Pgo+PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Xwo+PiBMaW51eC1mMmZzLWRldmVsIG1haWxpbmcgbGlzdAo+PiBMaW51eC1mMmZzLWRldmVsQGxp c3RzLnNvdXJjZWZvcmdlLm5ldAo+PiBodHRwczovL2xpc3RzLnNvdXJjZWZvcmdlLm5ldC9saXN0 cy9saXN0aW5mby9saW51eC1mMmZzLWRldmVsCgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCkxpbnV4LWYyZnMtZGV2ZWwgbWFpbGluZyBsaXN0CkxpbnV4 LWYyZnMtZGV2ZWxAbGlzdHMuc291cmNlZm9yZ2UubmV0Cmh0dHBzOi8vbGlzdHMuc291cmNlZm9y Z2UubmV0L2xpc3RzL2xpc3RpbmZvL2xpbnV4LWYyZnMtZGV2ZWwK