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 EC560E71064 for ; Thu, 21 Sep 2023 12:47:05 +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-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:From:References:Cc:To:Subject: MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=Ot854EAtN0ZMKM6R+GpmnhysU/Hz9TH19drNleY7ees=; b=NJejZb2Q4+SNtH uIx5y5A1/sKtCUzCY2J2APEiOddoyw7ud4cWvVgZGwnTeNzEeOBxhceEFBM/BY1TCriT3yQjeYp+w 9zCnkyYbKpwqFiLLec7IT+nxO4AP0Q8bfZys5LoGK7GrnBLRy6ANTkb3YLYfv7MRFmzg2LHEKIULA SvlDcglrv+d5Mfyg4lM+qm7q4raiGuRStZciBkhTQ99zdtrbkbsE1E5qlNTBHvmB5spQspmvAD3gT ytne3FNsxXAypRAavYDLUHyFZcwN2MFNVpwsCMmJzP7sP/UoGFWgV9h/sO95CayTtpQh2CF3oDsG2 xZ0celK2QSofUmhAutYg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qjJ51-0063Io-19; Thu, 21 Sep 2023 12:46:51 +0000 Received: from madras.collabora.co.uk ([2a00:1098:0:82:1000:25:2eeb:e5ab]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qjJ4w-0063HZ-2K; Thu, 21 Sep 2023 12:46:48 +0000 Received: from [IPV6:2a01:e0a:120:3210:9fdf:789a:7434:5a59] (unknown [IPv6:2a01:e0a:120:3210:9fdf:789a:7434:5a59]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: benjamin.gaignard) by madras.collabora.co.uk (Postfix) with ESMTPSA id 33A2566072EA; Thu, 21 Sep 2023 13:46:43 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1695300403; bh=LVEZ1RsG9zACgcHPee3WTOL671cvZoROVfJ92IP6s4Y=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=Z7acJaSzlHDcCiwLMiECWrrw5UijdlQ+DYiCsWekWoNpZ3tWGx6RqitZQ5cmt7bpf r8MU3UuFwvDJzNYe1xL5Y/b3xLsQy0Phe/0FacTfJDAd76T/xFvJsFSKXzdi7cqygT nnR/uVG3c5M9+pdpeUljAGo+Ro7bh3NzUCc7J3/ZVMKPQmZV5Ar34/V7nSYyhf7xVi RjGOqVm5mGQxUBr22OlVpTmp3jupc+1vblk/eBLz/A9XDq3XaZ2d0hvxOepERS1ZdT 9mjN13gH3bQTbVtxurYBzMHh5jfHpAcMC56+t7Ip6d0FjST8TjTAN+DXWqnN9PFxMc NU4rD8cbt2+6g== Message-ID: Date: Thu, 21 Sep 2023 14:46:40 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.15.1 Subject: Re: [PATCH v7 45/49] media: core: Add bitmap manage bufs array entries Content-Language: en-US To: Hans Verkuil , mchehab@kernel.org, tfiga@chromium.org, m.szyprowski@samsung.com, ming.qian@nxp.com, ezequiel@vanguardiasur.com.ar, p.zabel@pengutronix.de, gregkh@linuxfoundation.org, nicolas.dufresne@collabora.com Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-staging@lists.linux.dev, kernel@collabora.com References: <20230914133323.198857-1-benjamin.gaignard@collabora.com> <20230914133323.198857-46-benjamin.gaignard@collabora.com> <1142bbb4-b8f1-44ec-962e-9347a231782f@xs4all.nl> <20b6b93e-eef8-3d7b-a3c2-795f220059d4@collabora.com> <470682b4-c14b-4237-bc46-fddfdd085026@xs4all.nl> <31f298ec-6280-d21b-3d8a-c7bf1c9c0c30@collabora.com> From: Benjamin Gaignard In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230921_054647_080427_31E7C9E8 X-CRM114-Status: GOOD ( 18.39 ) X-BeenThere: linux-rockchip@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Upstream kernel work for Rockchip platforms List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "Linux-rockchip" Errors-To: linux-rockchip-bounces+linux-rockchip=archiver.kernel.org@lists.infradead.org CkxlIDIxLzA5LzIwMjMgw6AgMTQ6MTMsIEhhbnMgVmVya3VpbCBhIMOpY3JpdMKgOgo+IE9uIDIx LzA5LzIwMjMgMTQ6MDUsIEJlbmphbWluIEdhaWduYXJkIHdyb3RlOgo+PiBMZSAyMS8wOS8yMDIz IMOgIDEyOjI0LCBIYW5zIFZlcmt1aWwgYSDDqWNyaXTCoDoKPj4+IE9uIDIxLzA5LzIwMjMgMTE6 MjgsIEJlbmphbWluIEdhaWduYXJkIHdyb3RlOgo+Pj4+IExlIDIwLzA5LzIwMjMgw6AgMTY6NTYs IEhhbnMgVmVya3VpbCBhIMOpY3JpdMKgOgo+Pj4+PiBPbiAyMC8wOS8yMDIzIDE2OjMwLCBCZW5q YW1pbiBHYWlnbmFyZCB3cm90ZToKPj4+Pj4gPHNuaXA+Cj4+Pj4+Cj4+Pj4+Pj4+ICDCoMKgwqDC oMKgwqDCoCBudW1fYnVmZmVycyA9IG1pbl90KHVuc2lnbmVkIGludCwgbnVtX2J1ZmZlcnMsCj4+ Pj4+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBxLT5tYXhfYWxs b3dlZF9idWZmZXJzIC0gdmIyX2dldF9udW1fYnVmZmVycyhxKSk7Cj4+Pj4+Pj4+ICDCoMKgwqAg LcKgwqDCoCBmaXJzdF9pbmRleCA9IHZiMl9nZXRfbnVtX2J1ZmZlcnMocSk7Cj4+Pj4+Pj4+ICvC oMKgwqAgZmlyc3RfaW5kZXggPSBiaXRtYXBfZmluZF9uZXh0X3plcm9fYXJlYShxLT5idWZzX21h cCwgcS0+bWF4X2FsbG93ZWRfYnVmZmVycywKPj4+Pj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAwLCBudW1fYnVmZmVycywgMCk7Cj4+Pj4+Pj4+ ICDCoMKgwqAgwqDCoMKgwqDCoCBpZiAoZmlyc3RfaW5kZXggPj0gcS0+bWF4X2FsbG93ZWRfYnVm ZmVycykKPj4+Pj4+Pj4gIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIDA7Cj4+Pj4+Pj4+ IEBAIC02NzUsNyArNjc4LDEzIEBAIHN0YXRpYyB2b2lkIF9fdmIyX3F1ZXVlX2ZyZWUoc3RydWN0 IHZiMl9xdWV1ZSAqcSwgdW5zaWduZWQgaW50IGJ1ZmZlcnMpCj4+Pj4+Pj4+ICDCoMKgwqAgwqAg c3RydWN0IHZiMl9idWZmZXIgKnZiMl9nZXRfYnVmZmVyKHN0cnVjdCB2YjJfcXVldWUgKnEsIHVu c2lnbmVkIGludCBpbmRleCkKPj4+Pj4+Pj4gIMKgwqDCoCB7Cj4+Pj4+Pj4+IC3CoMKgwqAgaWYg KGluZGV4IDwgcS0+bnVtX2J1ZmZlcnMpCj4+Pj4+Pj4+ICvCoMKgwqAgaWYgKCFxLT5idWZzX21h cCB8fCAhcS0+YnVmcykKPj4+Pj4+Pj4gK8KgwqDCoMKgwqDCoMKgIHJldHVybiBOVUxMOwo+Pj4+ Pj4+IEkgZG9uJ3QgdGhpbmsgdGhpcyBjYW4gZXZlciBoYXBwZW4uCj4+Pj4+PiBJIGdvdCBrZXJu ZWwgY3Jhc2ggd2l0aG91dCB0aGVtLgo+Pj4+Pj4gSSB3aWxsIGtlZXAgdGhlbS4KPj4+Pj4gV2hh dCBpcyB0aGUgYmFja3RyYWNlPyBIb3cgY2FuIHRoaXMgaGFwcGVuPyBJdCBmZWVscyB3cm9uZyB0 aGF0IHRoaXMgY2FuIGJlCj4+Pj4+IGNhbGxlZCB3aXRoIGEgdmIyX3F1ZXVlIHRoYXQgYXBwYXJl bnRseSBpcyBub3QgcHJvcGVybHkgaW5pdGlhbGl6ZWQuCj4+Pj4gSSBoYXZlIHRoaXMgbG9nIHdo ZW4gYWRkaW5nIGR1bXBfc3RhY2soKSBpbiB2YjJfZ2V0X2J1ZmZlcigpIGlmICFxLT5idWZzX2Jp dG1hcDoKPj4+Pgo+Pj4+IFvCoMKgIDE4LjkyNDYyN10gQ2FsbCB0cmFjZToKPj4+PiBbwqDCoCAx OC45MjcwOTBdwqAgZHVtcF9iYWNrdHJhY2UrMHg5NC8weGVjCj4+Pj4gW8KgwqAgMTguOTMwNzg3 XcKgIHNob3dfc3RhY2srMHgxOC8weDI0Cj4+Pj4gW8KgwqAgMTguOTM0MTM3XcKgIGR1bXBfc3Rh Y2tfbHZsKzB4NDgvMHg2MAo+Pj4+IFvCoMKgIDE4LjkzNzgzM13CoCBkdW1wX3N0YWNrKzB4MTgv MHgyNAo+Pj4+IFvCoMKgIDE4Ljk0MTE2Nl3CoCBfX3ZiMl9xdWV1ZV9jYW5jZWwrMHgyM2MvMHgy ZjAKPj4+PiBbwqDCoCAxOC45NDUzNjVdwqAgdmIyX2NvcmVfcXVldWVfcmVsZWFzZSsweDI0LzB4 NmMKPj4+PiBbwqDCoCAxOC45NDk3NDBdwqAgdmIyX3F1ZXVlX3JlbGVhc2UrMHgxMC8weDFjCj4+ Pj4gW8KgwqAgMTguOTUzNjc3XcKgIHY0bDJfbTJtX2N0eF9yZWxlYXNlKzB4MjAvMHg0MAo+Pj4+ IFvCoMKgIDE4Ljk1Nzg5Ml3CoCBoYW50cm9fcmVsZWFzZSsweDIwLzB4NTQKPj4+PiBbwqDCoCAx OC45NjE1ODRdwqAgdjRsMl9yZWxlYXNlKzB4NzQvMHhlYwo+Pj4+IFvCoMKgIDE4Ljk2NTExMF3C oCBfX2ZwdXQrMHhiNC8weDI3NAo+Pj4+IFvCoMKgIDE4Ljk2ODIwNV3CoCBfX2ZwdXRfc3luYysw eDUwLzB4NWMKPj4+PiBbwqDCoCAxOC45NzE2MjZdwqAgX19hcm02NF9zeXNfY2xvc2UrMHgzOC8w eDdjCj4+Pj4gW8KgwqAgMTguOTc1NTYyXcKgIGludm9rZV9zeXNjYWxsKzB4NDgvMHgxMTQKPj4+ PiBbwqDCoCAxOC45NzkzMjldwqAgZWwwX3N2Y19jb21tb24uY29uc3Rwcm9wLjArMHhjMC8weGUw Cj4+Pj4gW8KgwqAgMTguOTg0MDY4XcKgIGRvX2VsMF9zdmMrMHgxYy8weDI4Cj4+Pj4gW8KgwqAg MTguOTg3NDAyXcKgIGVsMF9zdmMrMHg0MC8weGU4Cj4+Pj4gW8KgwqAgMTguOTkwNDcwXcKgIGVs MHRfNjRfc3luY19oYW5kbGVyKzB4MTAwLzB4MTJjCj4+Pj4gW8KgwqAgMTguOTk0ODQyXcKgIGVs MHRfNjRfc3luYysweDE5MC8weDE5NAo+Pj4+Cj4+Pj4gVGhpcyBoYXBwZW4gYXQgYm9vdCB0aW1l IHdoZW4gaGFudHJvIGRyaXZlciBpcyBvcGVuIGFuZCBjbG9zZSB3aXRob3V0IG90aGVyIGFjdGlv bnMuCj4+PiBBaCwgbm93IEkgc2VlIHRoZSBwcm9ibGVtLiBxLT5idWZzIGFuZCBxLT5idWZzX21h cCBhcmUgYWxsb2NhdGVkIGluCj4+PiB2YjJfY29yZV9jcmVhdGVfYnVmcyBhbmQgdmIyX2NvcmVf cmVxYnVmcywgYnV0IHRoZXkgc2hvdWxkIGJlIGFsbG9jYXRlZAo+Pj4gaW4gdmIyX3F1ZXVlX2lu aXQ6IHRoYXQncyB0aGUgY291bnRlcnBhcnQgb2YgdmIyX2NvcmVfcXVldWVfcmVsZWFzZS4KPj4+ Cj4+PiBXaXRoIHRoYXQgY2hhbmdlIHlvdSBzaG91bGRuJ3QgaGF2ZSB0byBjaGVjayBmb3IgcS0+ YnVmcy9idWZzX21hcCBhbnltb3JlLgo+PiBJdCBpcyBhIGJldHRlciBzb2x1dGlvbiBidXQgZXZl biBsaWtlIHRoaXMgdmIyX2NvcmVfcXVldWVfcmVsZWFzZSgpIGlzIGNhbGxlZAo+PiBhdCBsZWFz dCAyIHRpbWVzIG9uIHRoZSBzYW1lIHZpdmlkIHF1ZXVlIGFuZCB3aXRob3V0IHRlc3RpbmcgcS0+ YnVmc19iaXRtYXAKPj4gbWFrZXMga2VybmVsIGNyYXNoLgo+IERvIHlvdSBoYXZlIGEgc3RhY2t0 cmFjZSBmb3IgdGhhdD8gUGVyaGFwcyB2YjJfY29yZV9xdWV1ZV9yZWxlYXNlIHNob3VsZCBjaGVj awo+IGZvciBxLT5idWZzL3EtPmJ1ZnNfbWFwIGFuZCByZXR1cm4gaWYgdGhvc2UgYXJlIE5VTEwu IEJ1dCBpdCBjb3VsZCBhbHNvIGJlIGEKPiBidWcgdGhhdCBpdCBpcyBjYWxsZWQgdHdpY2UsIGl0 IGp1c3Qgd2FzIG5ldmVyIG5vdGljZWQgYmVjYXVzZSBpdCB3YXMgaGFybWxlc3MKPiBiZWZvcmUu CgpJIGhhdmUgYWRkZWQgc29tZSBwcmludGsgdG8gbG9nIHRoYXQgd2hlbiBydW5uaW5nIHRlc3Qt bWVkaWEgb24gdml2aWQ6CgpbICAxMzAuNDk3NDI2XSB2YjJfY29yZV9xdWV1ZV9pbml0IHF1ZXVl IGNhcC0wMDAwMDAwMDUwZDE5NWFiIGFsbG9jYXRlIHEtPmJ1ZnMgMDAwMDAwMDBkYzJjMTVlZCBh bmQgcS0+YnVmc19iaXRtYXAgMDAwMDAwMDA4MTczZmM1YQouLi4KWyAgMTMwLjczMzk2N10gdmIy X2NvcmVfcXVldWVfcmVsZWFzZSBxdWV1ZSBjYXAtMDAwMDAwMDA1MGQxOTVhYiByZWxlYXNlIHEt PmJ1ZnMgYW5kIHEtPmJ1ZnNfYml0bWFwClsgIDEzMy44NjYzNDVdIHZiMl9nZXRfYnVmZmVyIHF1 ZXVlIGNhcC0wMDAwMDAwMDUwZDE5NWFiIHEtPmJ1ZnNfYml0bWFwIGlzIE5VTEwKWyAgMTMzLjg3 MzQ1NF0gQ1BVOiAxIFBJRDogMzIxIENvbW06IHY0bDItY3RsIE5vdCB0YWludGVkIDYuNi4wLXJj MSsgIzU0MgpbICAxMzMuODc5OTk3XSBIYXJkd2FyZSBuYW1lOiBOWFAgaS5NWDhNUSBFVksgKERU KQpbICAxMzMuODg0NTM2XSBDYWxsIHRyYWNlOgpbICAxMzMuODg2OTg4XSAgZHVtcF9iYWNrdHJh Y2UrMHg5NC8weGVjClsgIDEzMy44OTA2NzNdICBzaG93X3N0YWNrKzB4MTgvMHgyNApbICAxMzMu ODk0MDAyXSAgZHVtcF9zdGFja19sdmwrMHg0OC8weDYwClsgIDEzMy44OTc2ODFdICBkdW1wX3N0 YWNrKzB4MTgvMHgyNApbICAxMzMuOTAxMDA5XSAgX192YjJfcXVldWVfY2FuY2VsKzB4MjUwLzB4 MzFjClsgIDEzMy45MDUyMDldICB2YjJfY29yZV9xdWV1ZV9yZWxlYXNlKzB4MjQvMHg4OApbICAx MzMuOTA5NTgwXSAgX3ZiMl9mb3BfcmVsZWFzZSsweGIwLzB4YmMKWyAgMTMzLjkxMzQyOF0gIHZi Ml9mb3BfcmVsZWFzZSsweDJjLzB4NTgKWyAgMTMzLjkxNzE4N10gIHZpdmlkX2ZvcF9yZWxlYXNl KzB4ODAvMHgzODggW3ZpdmlkXQpbICAxMzMuOTIxOTQ4XSAgdjRsMl9yZWxlYXNlKzB4NzQvMHhl YwpbICAxMzMuOTI1NDUyXSAgX19mcHV0KzB4YjQvMHgyNzQKWyAgMTMzLjkyODUyMF0gIF9fZnB1 dF9zeW5jKzB4NTAvMHg1YwpbICAxMzMuOTMxOTM0XSAgX19hcm02NF9zeXNfY2xvc2UrMHgzOC8w eDdjClsgIDEzMy45MzU4NjhdICBpbnZva2Vfc3lzY2FsbCsweDQ4LzB4MTE0ClsgIDEzMy45Mzk2 MzBdICBlbDBfc3ZjX2NvbW1vbi5jb25zdHByb3AuMCsweDQwLzB4ZTAKWyAgMTMzLjk0NDM0OV0g IGRvX2VsMF9zdmMrMHgxYy8weDI4ClsgIDEzMy45NDc2NzddICBlbDBfc3ZjKzB4NDAvMHhlOApb ICAxMzMuOTUwNzQxXSAgZWwwdF82NF9zeW5jX2hhbmRsZXIrMHgxMDAvMHgxMmMKWyAgMTMzLjk1 NTEwOV0gIGVsMHRfNjRfc3luYysweDE5MC8weDE5NAoKYW5kIGxhdGVyIEkgaGF2ZSBhIGNhbGwg dG8gcmVxYnVmcyBvbiB0aGUgc2FtZSBxdWV1ZSB3aXRob3V0IGNhbGwgdG8gdmIyX2NvcmVfcXVl dWVfaW5pdCBiZWZvcmUKClsgICA1OC42OTY4MTJdIF9fdmIyX3F1ZXVlX2FsbG9jIHF1ZXVlIGNh cC0gMDAwMDAwMDA1MGQxOTVhYnEtPmJ1ZnNfYml0bWFwIGlzIE5VTEwKWyAgIDU4LjcwNDE0OF0g Q1BVOiAxIFBJRDogMzE5IENvbW06IHY0bDItY29tcGxpYW5jZSBOb3QgdGFpbnRlZCA2LjYuMC1y YzErICM1NDQKWyAgIDU4LjcxMTI5MV0gSGFyZHdhcmUgbmFtZTogTlhQIGkuTVg4TVEgRVZLIChE VCkKWyAgIDU4LjcxNTgyNl0gQ2FsbCB0cmFjZToKWyAgIDU4LjcxODI3NF0gIGR1bXBfYmFja3Ry YWNlKzB4OTQvMHhlYwpbICAgNTguNzIxOTUxXSAgc2hvd19zdGFjaysweDE4LzB4MjQKWyAgIDU4 LjcyNTI3NF0gIGR1bXBfc3RhY2tfbHZsKzB4NDgvMHg2MApbICAgNTguNzI4OTQ2XSAgZHVtcF9z dGFjaysweDE4LzB4MjQKWyAgIDU4LjczMjI2OF0gIF9fdmIyX3F1ZXVlX2FsbG9jKzB4NGE4LzB4 NTBjClsgICA1OC43MzYzNzRdICB2YjJfY29yZV9yZXFidWZzKzB4Mjc0LzB4NDZjClsgICA1OC43 NDAzOTFdICB2YjJfaW9jdGxfcmVxYnVmcysweGIwLzB4ZTgKWyAgIDU4Ljc0NDMyMF0gIHZpZGlv Y19yZXFidWZzKzB4NTAvMHg2NCBbdml2aWRdClsgICA1OC43NDg3MTddICB2NGxfcmVxYnVmcysw eDUwLzB4NjQKWyAgIDU4Ljc1MjEyNV0gIF9fdmlkZW9fZG9faW9jdGwrMHgxNjQvMHgzYzgKWyAg IDU4Ljc1NjE0MF0gIHZpZGVvX3VzZXJjb3B5KzB4MjAwLzB4NjY4ClsgICA1OC43NTk5ODJdICB2 aWRlb19pb2N0bDIrMHgxOC8weDI4ClsgICA1OC43NjM0NzVdICB2NGwyX2lvY3RsKzB4NDAvMHg2 MApbICAgNTguNzY2Nzk4XSAgX19hcm02NF9zeXNfaW9jdGwrMHhhYy8weGYwClsgICA1OC43NzA3 MzBdICBpbnZva2Vfc3lzY2FsbCsweDQ4LzB4MTE0ClsgICA1OC43NzQ0ODddICBlbDBfc3ZjX2Nv bW1vbi5jb25zdHByb3AuMCsweDQwLzB4ZTAKWyAgIDU4Ljc3OTE5OV0gIGRvX2VsMF9zdmMrMHgx Yy8weDI4ClsgICA1OC43ODI1MjBdICBlbDBfc3ZjKzB4NDAvMHhlOApbICAgNTguNzg1NTgwXSAg ZWwwdF82NF9zeW5jX2hhbmRsZXIrMHgxMDAvMHgxMmMKWyAgIDU4Ljc4OTk0Ml0gIGVsMHRfNjRf c3luYysweDE5MC8weDE5NAoKPgo+IFJlZ2FyZHMsCj4KPiAJSGFucwo+Cj4+PiBSZWdhcmRzLAo+ Pj4KPj4+ICDCoMKgwqDCoEhhbnMKPj4+Cj4+Pj4gICAgIAo+Pj4+Pj4+PiArCj4+Pj4+Pj4+ICvC oMKgwqAgcmV0dXJuIChiaXRtYXBfd2VpZ2h0KHEtPmJ1ZnNfbWFwLCBxLT5tYXhfYWxsb3dlZF9i dWZmZXJzKSA+IDApOwo+Pj4+Pj4+IEhvdyBhYm91dDoKPj4+Pj4+Pgo+Pj4+Pj4+ICDCoMKgwqDC oMKgwqByZXR1cm4gdmIyX2dldF9udW1fYnVmZmVycyhxKSA+IDA7Cj4+Pj4+PiB2YjJfZ2V0X251 bV9idWZmZXJzIGlzIGRlZmluZWQgaW4gdmlkZW9idWYyLWNvcmUuYywgSSdtIG5vdCBzdXJlIHRo YXQKPj4+Pj4+IGFuIGlubGluZSBmdW5jdGlvbiBjb3VsZCBkZXBlbmQgb2YgYSBtb2R1bGUgZnVu Y3Rpb24uCj4+Pj4+IE5vdCBhIHByb2JsZW0uIEUuZy4gdjRsMi1jdHJscy5oIGlzIGZ1bGwgb2Yg c3VjaCBzdGF0aWMgaW5saW5lcy4KPj4+Pj4KPj4+Pj4gUmVnYXJkcywKPj4+Pj4KPj4+Pj4gIMKg wqDCoMKgwqBIYW5zCj4+Pj4+Cj4KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCkxpbnV4LXJvY2tjaGlwIG1haWxpbmcgbGlzdApMaW51eC1yb2NrY2hpcEBs aXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlz dGluZm8vbGludXgtcm9ja2NoaXAK