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 4F2B9C87FD1 for ; Tue, 5 Aug 2025 16:30:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Transfer-Encoding: Content-Type:MIME-Version:Message-ID:Date:References:In-Reply-To:Subject:Cc: To:From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=+bR0VckSoN9YaJX4wlOvB009sshe3mAwoA7HDDGUCpI=; b=Tt95obFeAJXnotWK91UunngLD8 p713MfWZNLtumQ/FSCmkwOSsum9GjnadeXjGikDyvHWh9kAQLvGXGOMFv2KbMTQcdTM/tJFOBCdbQ K4aAICH3TWHi7DV0Y++xBPb4E8IcWxG6IHG8ag5SiD8PISPRytdtlWpJFVyLjZ/HlEnO850Q0rvWe KTCowIVpP0tul5zIO8x0lGHg61HrPXDZ9MiFZ6lWE0zD5hKW3A+BFn13OR2TWA0V2Ky1U0X9PnWGr uJGCyfTmhkVz9RRPs4nkiz70f33gq/PRKdXiwlYqoYz5d4pH4emFUalt4Mp3i2vk6iNA/RKAL1l/B 9TAYqG7A==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1ujKYL-0000000DIkr-1z6t; Tue, 05 Aug 2025 16:30:18 +0000 Received: from relay2-d.mail.gandi.net ([217.70.183.194]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1ujJX8-0000000D8Rc-02Va; Tue, 05 Aug 2025 15:24:59 +0000 Received: by mail.gandi.net (Postfix) with ESMTPSA id 0C703438DF; Tue, 5 Aug 2025 15:24:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1754407495; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=+bR0VckSoN9YaJX4wlOvB009sshe3mAwoA7HDDGUCpI=; b=Ci72ZknI4OXBeJS8vhqNr/IUn2BHA2NeY694ItlWgUdkWtdHx0y4S+KYkdzppkzW0cVwpK kBWY9e4b29rek3ZdCzZtlIDgwHk2MrV68RC64LfmiSIGG4/gUaU9VxnMia3Eex+wdt6Ajv 7C/i0N3DLleoUJldMMTEZo2//+zf0J3VSHMdvICfy3CDa/kx4h04G8zaSwi0CFbqMOTcXe xRTIuc98AQ/k1S4UiVqS+29CX/A37APSl6fsKJPEE7IoIgDgpp6hFu3qmGCM0633s2TWU/ bd2sGoZvfT09zx0Bl0XsrBSsKBQs783ttrhMwkeZDgxWkV4h0TrSJrs+GRR/zw== From: Miquel Raynal To: Mikhail Kshevetskiy Cc: Richard Weinberger , Vignesh Raghavendra , Lorenzo Bianconi , Ray Liu , Mark Brown , Tudor Ambarus , Martin Kurbanov , Takahiro Kuwano , Cheng Ming Lin , linux-mtd@lists.infradead.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-spi@vger.kernel.org Subject: Re: [PATCH 1/4] drivers: mtd: spi-nand: fix direct mapping creation sizes. In-Reply-To: <20250804192132.1406387-2-mikhail.kshevetskiy@iopsys.eu> (Mikhail Kshevetskiy's message of "Mon, 4 Aug 2025 22:21:29 +0300") References: <20250804192132.1406387-1-mikhail.kshevetskiy@iopsys.eu> <20250804192132.1406387-2-mikhail.kshevetskiy@iopsys.eu> User-Agent: mu4e 1.12.7; emacs 30.1 Date: Tue, 05 Aug 2025 17:24:50 +0200 Message-ID: <87sei5hjul.fsf@bootlin.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-GND-State: clean X-GND-Score: -100 X-GND-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdefgdduudehhedvucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuifetpfffkfdpucggtfgfnhhsuhgsshgtrhhisggvnecuuegrihhlohhuthemuceftddunecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjughrpefhvfevufgjfhgffffkgggtgfesthhqredttderjeenucfhrhhomhepofhiqhhuvghlucftrgihnhgrlhcuoehmihhquhgvlhdrrhgrhihnrghlsegsohhothhlihhnrdgtohhmqeenucggtffrrghtthgvrhhnpedugfeuiefghffhiedvveejuefgueffvedugeevjeejgeetgfefgeffveetgefgleenucffohhmrghinhepohhppghtmhhplhdruggrthgrnecukfhppeeltddrkeelrdduieefrdduvdejnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehinhgvthepledtrdekledrudeifedruddvjedphhgvlhhopehlohgtrghlhhhoshhtpdhmrghilhhfrhhomhepmhhiqhhuvghlrdhrrgihnhgrlhessghoohhtlhhinhdrtghomhdpnhgspghrtghpthhtohepudegpdhrtghpthhtohepmhhikhhhrghilhdrkhhshhgvvhgvthhskhhihiesihhophhshihsrdgvuhdprhgtphhtthhopehrihgthhgrrhgusehnohgurdgrthdprhgtphhtthhopehvihhgnhgvshhhrhesthhirdgtohhmpdhrtghpthhtoheplhhorhgvnhiioheskhgvrhhnvghlrdhorhhgpdhrtghpthhtoheprhgrhidrlhhiuhesrghirhhoh hgrrdgtohhmpdhrtghpthhtohepsghrohhonhhivgeskhgvrhhnvghlrdhorhhgpdhrtghpthhtohepthhuughorhdrrghmsggrrhhusheslhhinhgrrhhordhorhhgpdhrtghpthhtohepmhhmkhhurhgsrghnohhvsehsrghluhhtvgguvghvihgtvghsrdgtohhm X-GND-Sasl: miquel.raynal@bootlin.com X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250805_082458_693211_9556374B X-CRM114-Status: GOOD ( 17.13 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Hello Mikhail, Thanks a lot for this series! On 04/08/2025 at 22:21:29 +03, Mikhail Kshevetskiy wrote: > Continuous mode is only supported for non-raw data reads, thus raw I/O > or non-raw writing requires only single flash page mapping. > > Signed-off-by: Mikhail Kshevetskiy > --- > drivers/mtd/nand/spi/core.c | 8 +++++--- > 1 file changed, 5 insertions(+), 3 deletions(-) > > diff --git a/drivers/mtd/nand/spi/core.c b/drivers/mtd/nand/spi/core.c > index b0898990b2a5..b42c42ec58a4 100644 > --- a/drivers/mtd/nand/spi/core.c > +++ b/drivers/mtd/nand/spi/core.c > @@ -1103,9 +1103,6 @@ static int spinand_create_dirmap(struct spinand_dev= ice *spinand, > }; > struct spi_mem_dirmap_desc *desc; >=20=20 > - if (spinand->cont_read_possible) > - info.length =3D nanddev_eraseblock_size(nand); > - > /* The plane number is passed in MSB just above the column address */ > info.offset =3D plane << fls(nand->memorg.pagesize); >=20=20 > @@ -1117,6 +1114,8 @@ static int spinand_create_dirmap(struct spinand_dev= ice *spinand, >=20=20 > spinand->dirmaps[plane].wdesc =3D desc; >=20=20 > + if (spinand->cont_read_possible) > + info.length =3D nanddev_eraseblock_size(nand); > info.op_tmpl =3D *spinand->op_templates.read_cache; > desc =3D devm_spi_mem_dirmap_create(&spinand->spimem->spi->dev, > spinand->spimem, &info); > @@ -1132,6 +1131,9 @@ static int spinand_create_dirmap(struct spinand_dev= ice *spinand, > return 0; > } >=20=20 > + // ECC reading/writing always happen in non-continuous mode This comment does not sound helpful, at least I do not understand it? (and the comment style should be /* */) > + info.length =3D nanddev_page_size(nand) + nanddev_per_page_oobsize(nand= ); > + > info.op_tmpl =3D *spinand->op_templates.update_cache; > info.op_tmpl.data.ecc =3D true; > desc =3D devm_spi_mem_dirmap_create(&spinand->spimem->spi->dev, May I suggest to use two different dirmap infos? One with a large size (for reads) and a page-sized one for other cases (including the fallback you're introducing in PATCH 2). Thanks, Miqu=C3=A8l 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 E8D00C87FCB for ; Tue, 5 Aug 2025 16:30:25 +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:Date:References :In-Reply-To:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=OtRb/+Enk2atc3KSlaUgczkdZb2awYOJAs3yrCCxs6s=; b=DFffz6e486iufd DHtW5MuBzZK1RE8jbyobSWMqV7tDq8dmoh4PWYpJVU3jjyjnVGxDMPdPqc29r98JqFZSgExEZ79k0 Zn+PzbRXjbtjIMM0PWkF6R6k0XkAVUMuoiRMGk2EtCkYcc9n3Zv66Wov1sVy/prhGBOli06PQQGEj bhI45p0xh9iO2r7vTFsUoxg0OQZwMybXwRGILrhc58TRIpNEephH+GpYMRloOBNI8InuMKHf7/ZsX Y9yURv9mc5jrg++0q0akB0/Bx6r0MSBIx9jpSadrjWIQQhP1KVlc7KldeMFjPQRSaiIh1BcG3RdTg JOaTiKFSpHwNf1+66jnQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1ujKYN-0000000DIl4-0wB2; Tue, 05 Aug 2025 16:30:19 +0000 Received: from relay2-d.mail.gandi.net ([217.70.183.194]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1ujJX8-0000000D8Rc-02Va; Tue, 05 Aug 2025 15:24:59 +0000 Received: by mail.gandi.net (Postfix) with ESMTPSA id 0C703438DF; Tue, 5 Aug 2025 15:24:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1754407495; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=+bR0VckSoN9YaJX4wlOvB009sshe3mAwoA7HDDGUCpI=; b=Ci72ZknI4OXBeJS8vhqNr/IUn2BHA2NeY694ItlWgUdkWtdHx0y4S+KYkdzppkzW0cVwpK kBWY9e4b29rek3ZdCzZtlIDgwHk2MrV68RC64LfmiSIGG4/gUaU9VxnMia3Eex+wdt6Ajv 7C/i0N3DLleoUJldMMTEZo2//+zf0J3VSHMdvICfy3CDa/kx4h04G8zaSwi0CFbqMOTcXe xRTIuc98AQ/k1S4UiVqS+29CX/A37APSl6fsKJPEE7IoIgDgpp6hFu3qmGCM0633s2TWU/ bd2sGoZvfT09zx0Bl0XsrBSsKBQs783ttrhMwkeZDgxWkV4h0TrSJrs+GRR/zw== From: Miquel Raynal To: Mikhail Kshevetskiy Cc: Richard Weinberger , Vignesh Raghavendra , Lorenzo Bianconi , Ray Liu , Mark Brown , Tudor Ambarus , Martin Kurbanov , Takahiro Kuwano , Cheng Ming Lin , linux-mtd@lists.infradead.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-spi@vger.kernel.org Subject: Re: [PATCH 1/4] drivers: mtd: spi-nand: fix direct mapping creation sizes. In-Reply-To: <20250804192132.1406387-2-mikhail.kshevetskiy@iopsys.eu> (Mikhail Kshevetskiy's message of "Mon, 4 Aug 2025 22:21:29 +0300") References: <20250804192132.1406387-1-mikhail.kshevetskiy@iopsys.eu> <20250804192132.1406387-2-mikhail.kshevetskiy@iopsys.eu> User-Agent: mu4e 1.12.7; emacs 30.1 Date: Tue, 05 Aug 2025 17:24:50 +0200 Message-ID: <87sei5hjul.fsf@bootlin.com> MIME-Version: 1.0 X-GND-State: clean X-GND-Score: -100 X-GND-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdefgdduudehhedvucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuifetpfffkfdpucggtfgfnhhsuhgsshgtrhhisggvnecuuegrihhlohhuthemuceftddunecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjughrpefhvfevufgjfhgffffkgggtgfesthhqredttderjeenucfhrhhomhepofhiqhhuvghlucftrgihnhgrlhcuoehmihhquhgvlhdrrhgrhihnrghlsegsohhothhlihhnrdgtohhmqeenucggtffrrghtthgvrhhnpedugfeuiefghffhiedvveejuefgueffvedugeevjeejgeetgfefgeffveetgefgleenucffohhmrghinhepohhppghtmhhplhdruggrthgrnecukfhppeeltddrkeelrdduieefrdduvdejnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehinhgvthepledtrdekledrudeifedruddvjedphhgvlhhopehlohgtrghlhhhoshhtpdhmrghilhhfrhhomhepmhhiqhhuvghlrdhrrgihnhgrlhessghoohhtlhhinhdrtghomhdpnhgspghrtghpthhtohepudegpdhrtghpthhtohepmhhikhhhrghilhdrkhhshhgvvhgvthhskhhihiesihhophhshihsrdgvuhdprhgtphhtthhopehrihgthhgrrhgusehnohgurdgrthdprhgtphhtthhopehvihhgnhgvshhhrhesthhirdgtohhmpdhrtghpthhtoheplhhorhgvnhiioheskhgvrhhnvghlrdhorhhgpdhrtghpthhtoheprhgrhidrlhhiuhesrghirhhoh hgrrdgtohhmpdhrtghpthhtohepsghrohhonhhivgeskhgvrhhnvghlrdhorhhgpdhrtghpthhtohepthhuughorhdrrghmsggrrhhusheslhhinhgrrhhordhorhhgpdhrtghpthhtohepmhhmkhhurhgsrghnohhvsehsrghluhhtvgguvghvihgtvghsrdgtohhm X-GND-Sasl: miquel.raynal@bootlin.com X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250805_082458_693211_9556374B X-CRM114-Status: GOOD ( 17.13 ) X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-mtd" Errors-To: linux-mtd-bounces+linux-mtd=archiver.kernel.org@lists.infradead.org SGVsbG8gTWlraGFpbCwKClRoYW5rcyBhIGxvdCBmb3IgdGhpcyBzZXJpZXMhCgpPbiAwNC8wOC8y MDI1IGF0IDIyOjIxOjI5ICswMywgTWlraGFpbCBLc2hldmV0c2tpeSA8bWlraGFpbC5rc2hldmV0 c2tpeUBpb3BzeXMuZXU+IHdyb3RlOgoKPiBDb250aW51b3VzIG1vZGUgaXMgb25seSBzdXBwb3J0 ZWQgZm9yIG5vbi1yYXcgZGF0YSByZWFkcywgdGh1cyByYXcgSS9PCj4gb3Igbm9uLXJhdyB3cml0 aW5nIHJlcXVpcmVzIG9ubHkgc2luZ2xlIGZsYXNoIHBhZ2UgbWFwcGluZy4KPgo+IFNpZ25lZC1v ZmYtYnk6IE1pa2hhaWwgS3NoZXZldHNraXkgPG1pa2hhaWwua3NoZXZldHNraXlAaW9wc3lzLmV1 Pgo+IC0tLQo+ICBkcml2ZXJzL210ZC9uYW5kL3NwaS9jb3JlLmMgfCA4ICsrKysrLS0tCj4gIDEg ZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9tdGQvbmFuZC9zcGkvY29yZS5jIGIvZHJpdmVycy9tdGQvbmFuZC9zcGkv Y29yZS5jCj4gaW5kZXggYjA4OTg5OTBiMmE1Li5iNDJjNDJlYzU4YTQgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9tdGQvbmFuZC9zcGkvY29yZS5jCj4gKysrIGIvZHJpdmVycy9tdGQvbmFuZC9zcGkv Y29yZS5jCj4gQEAgLTExMDMsOSArMTEwMyw2IEBAIHN0YXRpYyBpbnQgc3BpbmFuZF9jcmVhdGVf ZGlybWFwKHN0cnVjdCBzcGluYW5kX2RldmljZSAqc3BpbmFuZCwKPiAgCX07Cj4gIAlzdHJ1Y3Qg c3BpX21lbV9kaXJtYXBfZGVzYyAqZGVzYzsKPiAgCj4gLQlpZiAoc3BpbmFuZC0+Y29udF9yZWFk X3Bvc3NpYmxlKQo+IC0JCWluZm8ubGVuZ3RoID0gbmFuZGRldl9lcmFzZWJsb2NrX3NpemUobmFu ZCk7Cj4gLQo+ICAJLyogVGhlIHBsYW5lIG51bWJlciBpcyBwYXNzZWQgaW4gTVNCIGp1c3QgYWJv dmUgdGhlIGNvbHVtbiBhZGRyZXNzICovCj4gIAlpbmZvLm9mZnNldCA9IHBsYW5lIDw8IGZscyhu YW5kLT5tZW1vcmcucGFnZXNpemUpOwo+ICAKPiBAQCAtMTExNyw2ICsxMTE0LDggQEAgc3RhdGlj IGludCBzcGluYW5kX2NyZWF0ZV9kaXJtYXAoc3RydWN0IHNwaW5hbmRfZGV2aWNlICpzcGluYW5k LAo+ICAKPiAgCXNwaW5hbmQtPmRpcm1hcHNbcGxhbmVdLndkZXNjID0gZGVzYzsKPiAgCj4gKwlp ZiAoc3BpbmFuZC0+Y29udF9yZWFkX3Bvc3NpYmxlKQo+ICsJCWluZm8ubGVuZ3RoID0gbmFuZGRl dl9lcmFzZWJsb2NrX3NpemUobmFuZCk7Cj4gIAlpbmZvLm9wX3RtcGwgPSAqc3BpbmFuZC0+b3Bf dGVtcGxhdGVzLnJlYWRfY2FjaGU7Cj4gIAlkZXNjID0gZGV2bV9zcGlfbWVtX2Rpcm1hcF9jcmVh dGUoJnNwaW5hbmQtPnNwaW1lbS0+c3BpLT5kZXYsCj4gIAkJCQkJICBzcGluYW5kLT5zcGltZW0s ICZpbmZvKTsKPiBAQCAtMTEzMiw2ICsxMTMxLDkgQEAgc3RhdGljIGludCBzcGluYW5kX2NyZWF0 ZV9kaXJtYXAoc3RydWN0IHNwaW5hbmRfZGV2aWNlICpzcGluYW5kLAo+ICAJCXJldHVybiAwOwo+ ICAJfQo+ICAKPiArCS8vIEVDQyByZWFkaW5nL3dyaXRpbmcgYWx3YXlzIGhhcHBlbiBpbiBub24t Y29udGludW91cyBtb2RlCgpUaGlzIGNvbW1lbnQgZG9lcyBub3Qgc291bmQgaGVscGZ1bCwgYXQg bGVhc3QgSSBkbyBub3QgdW5kZXJzdGFuZCBpdD8KKGFuZCB0aGUgY29tbWVudCBzdHlsZSBzaG91 bGQgYmUgLyogKi8pCgo+ICsJaW5mby5sZW5ndGggPSBuYW5kZGV2X3BhZ2Vfc2l6ZShuYW5kKSAr IG5hbmRkZXZfcGVyX3BhZ2Vfb29ic2l6ZShuYW5kKTsKPiArCj4gIAlpbmZvLm9wX3RtcGwgPSAq c3BpbmFuZC0+b3BfdGVtcGxhdGVzLnVwZGF0ZV9jYWNoZTsKPiAgCWluZm8ub3BfdG1wbC5kYXRh LmVjYyA9IHRydWU7Cj4gIAlkZXNjID0gZGV2bV9zcGlfbWVtX2Rpcm1hcF9jcmVhdGUoJnNwaW5h bmQtPnNwaW1lbS0+c3BpLT5kZXYsCgpNYXkgSSBzdWdnZXN0IHRvIHVzZSB0d28gZGlmZmVyZW50 IGRpcm1hcCBpbmZvcz8gT25lIHdpdGggYSBsYXJnZSBzaXplCihmb3IgcmVhZHMpIGFuZCBhIHBh Z2Utc2l6ZWQgb25lIGZvciBvdGhlciBjYXNlcyAoaW5jbHVkaW5nIHRoZSBmYWxsYmFjawp5b3Un cmUgaW50cm9kdWNpbmcgaW4gUEFUQ0ggMikuCgpUaGFua3MsCk1pcXXDqGwKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpMaW51eCBNVEQgZGlz Y3Vzc2lvbiBtYWlsaW5nIGxpc3QKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9s aXN0aW5mby9saW51eC1tdGQvCg==