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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4EFF6C433EF for ; Thu, 20 Jan 2022 11:23:04 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231234AbiATLXD convert rfc822-to-8bit (ORCPT ); Thu, 20 Jan 2022 06:23:03 -0500 Received: from relay12.mail.gandi.net ([217.70.178.232]:56815 "EHLO relay12.mail.gandi.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231252AbiATLW5 (ORCPT ); Thu, 20 Jan 2022 06:22:57 -0500 Received: (Authenticated sender: miquel.raynal@bootlin.com) by relay12.mail.gandi.net (Postfix) with ESMTPSA id 317FC200009; Thu, 20 Jan 2022 11:22:54 +0000 (UTC) Date: Thu, 20 Jan 2022 12:22:53 +0100 From: Miquel Raynal To: Ezequiel Garcia Cc: Trevor Woerner , linux-mtd , Linux Kernel Mailing List , Richard Weinberger , Vignesh Raghavendra Subject: Re: [PATCH 0/3] mtdblock: Advertise about UBI and UBI block Message-ID: <20220120122253.31594cc4@xps13> In-Reply-To: References: <20210801234509.18774-1-ezequiel@collabora.com> <20211026150350.GA5136@localhost> <20220120103946.3a18aee7@xps13> Organization: Bootlin X-Mailer: Claws Mail 3.17.7 (GTK+ 2.24.32; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8BIT Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Ezequiel, ezequiel@vanguardiasur.com.ar wrote on Thu, 20 Jan 2022 07:26:09 -0300: > On Thu, 20 Jan 2022 at 06:39, Miquel Raynal wrote: > > > > Hi Ezequiel, > > > > ezequiel@vanguardiasur.com.ar wrote on Fri, 12 Nov 2021 10:54:36 -0300: > > > > > Hi Trevor, > > > > > > I am not reachable at ezequiel at collabora.com, so I missed this > > > thread. Sorry about the delay, replying. > > > > > > On Tue, 26 Oct 2021 at 12:05, Trevor Woerner wrote: > > > > > > > > On Sun 2021-08-01 @ 08:45:02 PM, Ezequiel Garcia wrote: > > > > > Hi Richard, and everyone else: > > > > > > > > > > Browsing the internet for "JFFS2 mtd" results in tutorials, articles > > > > > and github.gists0 that point to mtdblock. > > > > > > > > > > In fact, even the MTD wiki mentions that JFFS2 > > > > > needs mtdblock to mount a rootfs: > > > > > > > > > > http://www.linux-mtd.infradead.org/faq/jffs2.html > > > > > > > > > > Moreover, I suspect there may be lots of users > > > > > that still believe mtdblock is somehow needed to > > > > > mount SquashFS. > > > > > > > > > > I've taken a verbose route and added a pr_warn > > > > > warning if the devices are NAND. I don't think using > > > > > NAND without UBI is too wise, and given the amount > > > > > of outdated tutorials I believe some advertising > > > > > will help. > > > > > > > > Not all NAND partitions on a device will contain linux root filesystems. For a > > > > linux root filesystem perhaps using UBI/UBIFS is preferred, yet these messages > > > > print out for each and every NAND partition: > > > > > > > > [ 0.900827] Creating 8 MTD partitions on "nxp_lpc3220_slc": > > > > [ 0.906431] 0x000000000000-0x000000020000 : "bootrom" > > > > [ 0.913523] mtdblock: MTD device 'bootrom' is NAND, please consider using UBI block devices instead. > > > > [ 0.933334] 0x000000020000-0x000000080000 : "uboot" > > > > [ 0.940439] mtdblock: MTD device 'uboot' is NAND, please consider using UBI block devices instead. > > > > [ 0.963322] 0x000000080000-0x000000440000 : "fbkernel" > > > > [ 0.970655] mtdblock: MTD device 'fbkernel' is NAND, please consider using UBI block devices instead. > > > > [ 0.993361] 0x000000440000-0x000000920000 : "fbrootfs" > > > > [ 1.000725] mtdblock: MTD device 'fbrootfs' is NAND, please consider using UBI block devices instead. > > > > [ 1.023315] 0x000000920000-0x000000ce0000 : "c_kernel" > > > > [ 1.030722] mtdblock: MTD device 'c_kernel' is NAND, please consider using UBI block devices instead. > > > > [ 1.053444] 0x000000ce0000-0x000000d00000 : "c__atags" > > > > [ 1.060742] mtdblock: MTD device 'c__atags' is NAND, please consider using UBI block devices instead. > > > > [ 1.083349] 0x000000d00000-0x000001000000 : "c_rootfs" > > > > [ 1.090702] mtdblock: MTD device 'c_rootfs' is NAND, please consider using UBI block devices instead. > > > > [ 1.113335] 0x000001000000-0x000020000000 : "mender" > > > > [ 1.131627] mtdblock: MTD device 'mender' is NAND, please consider using UBI block devices instead. > > > > > > > > NAND tends to be something found on older devices, the firmware/bootloaders > > > > of older devices couldn't possibly understand UBI/UBIFS so many of these > > > > partitions need be "raw" partitions, or use something that predates UBI. > > > > > > > > Ironically my "mender" partition contains a UBI (with multiple UBIFSes inside) > > > > yet I got the same "please use UBI" message as all the others (lol) > > > > > > > > I'm specifying my partitions in DT with: > > > > > > > > partitions { > > > > compatible = "fixed-partitions"; > > > > #address-cells = <1>; > > > > #size-cells = <1>; > > > > > > > > mtd0@0 { label = "bootrom"; reg = <0x00000000 0x00020000>; }; > > > > mtd1@20000 { label = "uboot"; reg = <0x00020000 0x00060000>; }; > > > > mtd2@80000 { label = "fbkernel"; reg = <0x00080000 0x003c0000>; }; > > > > mtd3@440000 { label = "fbrootfs"; reg = <0x00440000 0x004e0000>; }; > > > > mtd4@920000 { label = "c_kernel"; reg = <0x00920000 0x003c0000>; }; > > > > mtd5@ce0000 { label = "c__atags"; reg = <0x00ce0000 0x00020000>; }; > > > > mtd6@d00000 { label = "c_rootfs"; reg = <0x00d00000 0x00300000>; }; > > > > mtd7@1000000 { label = "mender"; reg = <0x01000000 0x1f000000>; }; > > > > }; > > > > > > > > which is why, I assume, I'm getting these messages. Is there a UBI-friendly > > > > way to define them to avoid these messages? > > > > > > > > > > I feel the messages are actually helping you. You should not have mtdblock > > > on any of these MTD devices, if I understood correctly, since you are not > > > mounting a filesystem on any of them. > > > > > > Just disable MTDBLOCK on your build and you will be good to go. > > > > > > I am inclined to just leave the warnings, although they look spammy, > > > precisely to help catch this mis-setups. > > > > I keep getting complaints about these messages because they are > > spawned several times in a boot (each device or partition, I don't > > recall) while mtdblock is not even used. I understand it would be best > > to have it disabled in this case but could we find a way to be less > > invasive? > > > > If we still want to keep the warning, I suppose that moving these warnings > to blktrans_open should help ... unless the block device open ends > up being called anyway, and still gets spammy. This solution is my favorite, unless as you say it's opened anyway. > The alternative is removing them, perhaps adding a message to config MTD_BLOCK > about UBI blocks? That's a fallback solution indeed. Thanks, Miquèl 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 369EEC433F5 for ; Thu, 20 Jan 2022 11:23:41 +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:References:In-Reply-To: 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=wRHZPDgWx2nrSStC/WqUDJQ2ip56hMlTfFX5Q+RFKaA=; b=nwUI7Y7sM8ET3+ ZndzJrRcGV7Qri1dQs0MuBlhrnuV2SYeZFkNX0rwwsP5jBQXY36BkycLCdwvGb+sFFXS/FEhmnR6S QabPo5qLrBv2A7DSmKOZlcupuxpx56qazpRANOEQMJaiEe9sUgZd9gaSR7Xw7DoeHDD/yuXZO0XV9 a7tLxH78ffQeew3FtRykWTv3KZHr1ag+UClDiVRxnQ2hdD5Y5TdmaH/lCE9o5/03Q42dHgBairmTl 1J0TX2EtZDUlSTxMMqVXAzM734Rw6BtKQWze9kdwOk63UqpWaze2MbgUKYg42J+az2jp+mCXL+5Tq yyJucfjPa5yQed6isJEQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nAVWx-00B3Y0-1A; Thu, 20 Jan 2022 11:23:03 +0000 Received: from relay12.mail.gandi.net ([2001:4b98:dc4:8::232]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nAVWt-00B3X9-PB for linux-mtd@lists.infradead.org; Thu, 20 Jan 2022 11:23:01 +0000 Received: (Authenticated sender: miquel.raynal@bootlin.com) by relay12.mail.gandi.net (Postfix) with ESMTPSA id 317FC200009; Thu, 20 Jan 2022 11:22:54 +0000 (UTC) Date: Thu, 20 Jan 2022 12:22:53 +0100 From: Miquel Raynal To: Ezequiel Garcia Cc: Trevor Woerner , linux-mtd , Linux Kernel Mailing List , Richard Weinberger , Vignesh Raghavendra Subject: Re: [PATCH 0/3] mtdblock: Advertise about UBI and UBI block Message-ID: <20220120122253.31594cc4@xps13> In-Reply-To: References: <20210801234509.18774-1-ezequiel@collabora.com> <20211026150350.GA5136@localhost> <20220120103946.3a18aee7@xps13> Organization: Bootlin X-Mailer: Claws Mail 3.17.7 (GTK+ 2.24.32; x86_64-pc-linux-gnu) MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220120_032300_146887_85A08E1E X-CRM114-Status: GOOD ( 38.10 ) 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 SGkgRXplcXVpZWwsCgplemVxdWllbEB2YW5ndWFyZGlhc3VyLmNvbS5hciB3cm90ZSBvbiBUaHUs IDIwIEphbiAyMDIyIDA3OjI2OjA5IC0wMzAwOgoKPiBPbiBUaHUsIDIwIEphbiAyMDIyIGF0IDA2 OjM5LCBNaXF1ZWwgUmF5bmFsIDxtaXF1ZWwucmF5bmFsQGJvb3RsaW4uY29tPiB3cm90ZToKPiA+ Cj4gPiBIaSBFemVxdWllbCwKPiA+Cj4gPiBlemVxdWllbEB2YW5ndWFyZGlhc3VyLmNvbS5hciB3 cm90ZSBvbiBGcmksIDEyIE5vdiAyMDIxIDEwOjU0OjM2IC0wMzAwOgo+ID4gIAo+ID4gPiBIaSBU cmV2b3IsCj4gPiA+Cj4gPiA+IEkgYW0gbm90IHJlYWNoYWJsZSBhdCBlemVxdWllbCBhdCBjb2xs YWJvcmEuY29tLCBzbyBJIG1pc3NlZCB0aGlzCj4gPiA+IHRocmVhZC4gU29ycnkgYWJvdXQgdGhl IGRlbGF5LCByZXBseWluZy4KPiA+ID4KPiA+ID4gT24gVHVlLCAyNiBPY3QgMjAyMSBhdCAxMjow NSwgVHJldm9yIFdvZXJuZXIgPHR3b2VybmVyQGdtYWlsLmNvbT4gd3JvdGU6ICAKPiA+ID4gPgo+ ID4gPiA+IE9uIFN1biAyMDIxLTA4LTAxIEAgMDg6NDU6MDIgUE0sIEV6ZXF1aWVsIEdhcmNpYSB3 cm90ZTogIAo+ID4gPiA+ID4gSGkgUmljaGFyZCwgYW5kIGV2ZXJ5b25lIGVsc2U6Cj4gPiA+ID4g Pgo+ID4gPiA+ID4gQnJvd3NpbmcgdGhlIGludGVybmV0IGZvciAiSkZGUzIgbXRkIiByZXN1bHRz IGluIHR1dG9yaWFscywgYXJ0aWNsZXMKPiA+ID4gPiA+IGFuZCBnaXRodWIuZ2lzdHMwIHRoYXQg cG9pbnQgdG8gbXRkYmxvY2suCj4gPiA+ID4gPgo+ID4gPiA+ID4gSW4gZmFjdCwgZXZlbiB0aGUg TVREIHdpa2kgbWVudGlvbnMgdGhhdCBKRkZTMgo+ID4gPiA+ID4gbmVlZHMgbXRkYmxvY2sgdG8g bW91bnQgYSByb290ZnM6Cj4gPiA+ID4gPgo+ID4gPiA+ID4gICBodHRwOi8vd3d3LmxpbnV4LW10 ZC5pbmZyYWRlYWQub3JnL2ZhcS9qZmZzMi5odG1sCj4gPiA+ID4gPgo+ID4gPiA+ID4gTW9yZW92 ZXIsIEkgc3VzcGVjdCB0aGVyZSBtYXkgYmUgbG90cyBvZiB1c2Vycwo+ID4gPiA+ID4gdGhhdCBz dGlsbCBiZWxpZXZlIG10ZGJsb2NrIGlzIHNvbWVob3cgbmVlZGVkIHRvCj4gPiA+ID4gPiBtb3Vu dCBTcXVhc2hGUy4KPiA+ID4gPiA+Cj4gPiA+ID4gPiBJJ3ZlIHRha2VuIGEgdmVyYm9zZSByb3V0 ZSBhbmQgYWRkZWQgYSBwcl93YXJuCj4gPiA+ID4gPiB3YXJuaW5nIGlmIHRoZSBkZXZpY2VzIGFy ZSBOQU5ELiBJIGRvbid0IHRoaW5rIHVzaW5nCj4gPiA+ID4gPiBOQU5EIHdpdGhvdXQgVUJJIGlz IHRvbyB3aXNlLCBhbmQgZ2l2ZW4gdGhlIGFtb3VudAo+ID4gPiA+ID4gb2Ygb3V0ZGF0ZWQgdHV0 b3JpYWxzIEkgYmVsaWV2ZSBzb21lIGFkdmVydGlzaW5nCj4gPiA+ID4gPiB3aWxsIGhlbHAuICAK PiA+ID4gPgo+ID4gPiA+IE5vdCBhbGwgTkFORCBwYXJ0aXRpb25zIG9uIGEgZGV2aWNlIHdpbGwg Y29udGFpbiBsaW51eCByb290IGZpbGVzeXN0ZW1zLiBGb3IgYQo+ID4gPiA+IGxpbnV4IHJvb3Qg ZmlsZXN5c3RlbSBwZXJoYXBzIHVzaW5nIFVCSS9VQklGUyBpcyBwcmVmZXJyZWQsIHlldCB0aGVz ZSBtZXNzYWdlcwo+ID4gPiA+IHByaW50IG91dCBmb3IgZWFjaCBhbmQgZXZlcnkgTkFORCBwYXJ0 aXRpb246Cj4gPiA+ID4KPiA+ID4gPiAgICAgICAgIFsgICAgMC45MDA4MjddIENyZWF0aW5nIDgg TVREIHBhcnRpdGlvbnMgb24gIm54cF9scGMzMjIwX3NsYyI6Cj4gPiA+ID4gICAgICAgICBbICAg IDAuOTA2NDMxXSAweDAwMDAwMDAwMDAwMC0weDAwMDAwMDAyMDAwMCA6ICJib290cm9tIgo+ID4g PiA+ICAgICAgICAgWyAgICAwLjkxMzUyM10gbXRkYmxvY2s6IE1URCBkZXZpY2UgJ2Jvb3Ryb20n IGlzIE5BTkQsIHBsZWFzZSBjb25zaWRlciB1c2luZyBVQkkgYmxvY2sgZGV2aWNlcyBpbnN0ZWFk Lgo+ID4gPiA+ICAgICAgICAgWyAgICAwLjkzMzMzNF0gMHgwMDAwMDAwMjAwMDAtMHgwMDAwMDAw ODAwMDAgOiAidWJvb3QiCj4gPiA+ID4gICAgICAgICBbICAgIDAuOTQwNDM5XSBtdGRibG9jazog TVREIGRldmljZSAndWJvb3QnIGlzIE5BTkQsIHBsZWFzZSBjb25zaWRlciB1c2luZyBVQkkgYmxv Y2sgZGV2aWNlcyBpbnN0ZWFkLgo+ID4gPiA+ICAgICAgICAgWyAgICAwLjk2MzMyMl0gMHgwMDAw MDAwODAwMDAtMHgwMDAwMDA0NDAwMDAgOiAiZmJrZXJuZWwiCj4gPiA+ID4gICAgICAgICBbICAg IDAuOTcwNjU1XSBtdGRibG9jazogTVREIGRldmljZSAnZmJrZXJuZWwnIGlzIE5BTkQsIHBsZWFz ZSBjb25zaWRlciB1c2luZyBVQkkgYmxvY2sgZGV2aWNlcyBpbnN0ZWFkLgo+ID4gPiA+ICAgICAg ICAgWyAgICAwLjk5MzM2MV0gMHgwMDAwMDA0NDAwMDAtMHgwMDAwMDA5MjAwMDAgOiAiZmJyb290 ZnMiCj4gPiA+ID4gICAgICAgICBbICAgIDEuMDAwNzI1XSBtdGRibG9jazogTVREIGRldmljZSAn ZmJyb290ZnMnIGlzIE5BTkQsIHBsZWFzZSBjb25zaWRlciB1c2luZyBVQkkgYmxvY2sgZGV2aWNl cyBpbnN0ZWFkLgo+ID4gPiA+ICAgICAgICAgWyAgICAxLjAyMzMxNV0gMHgwMDAwMDA5MjAwMDAt MHgwMDAwMDBjZTAwMDAgOiAiY19rZXJuZWwiCj4gPiA+ID4gICAgICAgICBbICAgIDEuMDMwNzIy XSBtdGRibG9jazogTVREIGRldmljZSAnY19rZXJuZWwnIGlzIE5BTkQsIHBsZWFzZSBjb25zaWRl ciB1c2luZyBVQkkgYmxvY2sgZGV2aWNlcyBpbnN0ZWFkLgo+ID4gPiA+ICAgICAgICAgWyAgICAx LjA1MzQ0NF0gMHgwMDAwMDBjZTAwMDAtMHgwMDAwMDBkMDAwMDAgOiAiY19fYXRhZ3MiCj4gPiA+ ID4gICAgICAgICBbICAgIDEuMDYwNzQyXSBtdGRibG9jazogTVREIGRldmljZSAnY19fYXRhZ3Mn IGlzIE5BTkQsIHBsZWFzZSBjb25zaWRlciB1c2luZyBVQkkgYmxvY2sgZGV2aWNlcyBpbnN0ZWFk Lgo+ID4gPiA+ICAgICAgICAgWyAgICAxLjA4MzM0OV0gMHgwMDAwMDBkMDAwMDAtMHgwMDAwMDEw MDAwMDAgOiAiY19yb290ZnMiCj4gPiA+ID4gICAgICAgICBbICAgIDEuMDkwNzAyXSBtdGRibG9j azogTVREIGRldmljZSAnY19yb290ZnMnIGlzIE5BTkQsIHBsZWFzZSBjb25zaWRlciB1c2luZyBV QkkgYmxvY2sgZGV2aWNlcyBpbnN0ZWFkLgo+ID4gPiA+ICAgICAgICAgWyAgICAxLjExMzMzNV0g MHgwMDAwMDEwMDAwMDAtMHgwMDAwMjAwMDAwMDAgOiAibWVuZGVyIgo+ID4gPiA+ICAgICAgICAg WyAgICAxLjEzMTYyN10gbXRkYmxvY2s6IE1URCBkZXZpY2UgJ21lbmRlcicgaXMgTkFORCwgcGxl YXNlIGNvbnNpZGVyIHVzaW5nIFVCSSBibG9jayBkZXZpY2VzIGluc3RlYWQuCj4gPiA+ID4KPiA+ ID4gPiBOQU5EIHRlbmRzIHRvIGJlIHNvbWV0aGluZyBmb3VuZCBvbiBvbGRlciBkZXZpY2VzLCB0 aGUgZmlybXdhcmUvYm9vdGxvYWRlcnMKPiA+ID4gPiBvZiBvbGRlciBkZXZpY2VzIGNvdWxkbid0 IHBvc3NpYmx5IHVuZGVyc3RhbmQgVUJJL1VCSUZTIHNvIG1hbnkgb2YgdGhlc2UKPiA+ID4gPiBw YXJ0aXRpb25zIG5lZWQgYmUgInJhdyIgcGFydGl0aW9ucywgb3IgdXNlIHNvbWV0aGluZyB0aGF0 IHByZWRhdGVzIFVCSS4KPiA+ID4gPgo+ID4gPiA+IElyb25pY2FsbHkgbXkgIm1lbmRlciIgcGFy dGl0aW9uIGNvbnRhaW5zIGEgVUJJICh3aXRoIG11bHRpcGxlIFVCSUZTZXMgaW5zaWRlKQo+ID4g PiA+IHlldCBJIGdvdCB0aGUgc2FtZSAicGxlYXNlIHVzZSBVQkkiIG1lc3NhZ2UgYXMgYWxsIHRo ZSBvdGhlcnMgKGxvbCkKPiA+ID4gPgo+ID4gPiA+IEknbSBzcGVjaWZ5aW5nIG15IHBhcnRpdGlv bnMgaW4gRFQgd2l0aDoKPiA+ID4gPgo+ID4gPiA+IHBhcnRpdGlvbnMgewo+ID4gPiA+ICAgICAg ICAgY29tcGF0aWJsZSA9ICJmaXhlZC1wYXJ0aXRpb25zIjsKPiA+ID4gPiAgICAgICAgICNhZGRy ZXNzLWNlbGxzID0gPDE+Owo+ID4gPiA+ICAgICAgICAgI3NpemUtY2VsbHMgPSA8MT47Cj4gPiA+ ID4KPiA+ID4gPiAgICAgICAgIG10ZDBAMCAgICAgICB7IGxhYmVsID0gImJvb3Ryb20iOyAgIHJl ZyA9IDwweDAwMDAwMDAwIDB4MDAwMjAwMDA+OyB9Owo+ID4gPiA+ICAgICAgICAgbXRkMUAyMDAw MCAgIHsgbGFiZWwgPSAidWJvb3QiOyAgICAgcmVnID0gPDB4MDAwMjAwMDAgMHgwMDA2MDAwMD47 IH07Cj4gPiA+ID4gICAgICAgICBtdGQyQDgwMDAwICAgeyBsYWJlbCA9ICJmYmtlcm5lbCI7ICBy ZWcgPSA8MHgwMDA4MDAwMCAweDAwM2MwMDAwPjsgfTsKPiA+ID4gPiAgICAgICAgIG10ZDNANDQw MDAwICB7IGxhYmVsID0gImZicm9vdGZzIjsgIHJlZyA9IDwweDAwNDQwMDAwIDB4MDA0ZTAwMDA+ OyB9Owo+ID4gPiA+ICAgICAgICAgbXRkNEA5MjAwMDAgIHsgbGFiZWwgPSAiY19rZXJuZWwiOyAg cmVnID0gPDB4MDA5MjAwMDAgMHgwMDNjMDAwMD47IH07Cj4gPiA+ID4gICAgICAgICBtdGQ1QGNl MDAwMCAgeyBsYWJlbCA9ICJjX19hdGFncyI7ICByZWcgPSA8MHgwMGNlMDAwMCAweDAwMDIwMDAw PjsgfTsKPiA+ID4gPiAgICAgICAgIG10ZDZAZDAwMDAwICB7IGxhYmVsID0gImNfcm9vdGZzIjsg IHJlZyA9IDwweDAwZDAwMDAwIDB4MDAzMDAwMDA+OyB9Owo+ID4gPiA+ICAgICAgICAgbXRkN0Ax MDAwMDAwIHsgbGFiZWwgPSAibWVuZGVyIjsgICAgcmVnID0gPDB4MDEwMDAwMDAgMHgxZjAwMDAw MD47IH07Cj4gPiA+ID4gfTsKPiA+ID4gPgo+ID4gPiA+IHdoaWNoIGlzIHdoeSwgSSBhc3N1bWUs IEknbSBnZXR0aW5nIHRoZXNlIG1lc3NhZ2VzLiBJcyB0aGVyZSBhIFVCSS1mcmllbmRseQo+ID4g PiA+IHdheSB0byBkZWZpbmUgdGhlbSB0byBhdm9pZCB0aGVzZSBtZXNzYWdlcz8KPiA+ID4gPiAg Cj4gPiA+Cj4gPiA+IEkgZmVlbCB0aGUgbWVzc2FnZXMgYXJlIGFjdHVhbGx5IGhlbHBpbmcgeW91 LiBZb3Ugc2hvdWxkIG5vdCBoYXZlIG10ZGJsb2NrCj4gPiA+IG9uIGFueSBvZiB0aGVzZSBNVEQg ZGV2aWNlcywgaWYgSSB1bmRlcnN0b29kIGNvcnJlY3RseSwgc2luY2UgeW91IGFyZSBub3QKPiA+ ID4gbW91bnRpbmcgYSBmaWxlc3lzdGVtIG9uIGFueSBvZiB0aGVtLgo+ID4gPgo+ID4gPiBKdXN0 IGRpc2FibGUgTVREQkxPQ0sgb24geW91ciBidWlsZCBhbmQgeW91IHdpbGwgYmUgZ29vZCB0byBn by4KPiA+ID4KPiA+ID4gSSBhbSBpbmNsaW5lZCB0byBqdXN0IGxlYXZlIHRoZSB3YXJuaW5ncywg YWx0aG91Z2ggdGhleSBsb29rIHNwYW1teSwKPiA+ID4gcHJlY2lzZWx5IHRvIGhlbHAgY2F0Y2gg dGhpcyBtaXMtc2V0dXBzLiAgCj4gPgo+ID4gSSBrZWVwIGdldHRpbmcgY29tcGxhaW50cyBhYm91 dCB0aGVzZSBtZXNzYWdlcyBiZWNhdXNlIHRoZXkgYXJlCj4gPiBzcGF3bmVkIHNldmVyYWwgdGlt ZXMgaW4gYSBib290IChlYWNoIGRldmljZSBvciBwYXJ0aXRpb24sIEkgZG9uJ3QKPiA+IHJlY2Fs bCkgd2hpbGUgbXRkYmxvY2sgaXMgbm90IGV2ZW4gdXNlZC4gSSB1bmRlcnN0YW5kIGl0IHdvdWxk IGJlIGJlc3QKPiA+IHRvIGhhdmUgaXQgZGlzYWJsZWQgaW4gdGhpcyBjYXNlIGJ1dCBjb3VsZCB3 ZSBmaW5kIGEgd2F5IHRvIGJlIGxlc3MKPiA+IGludmFzaXZlPwo+ID4gIAo+IAo+IElmIHdlIHN0 aWxsIHdhbnQgdG8ga2VlcCB0aGUgd2FybmluZywgSSBzdXBwb3NlIHRoYXQgbW92aW5nIHRoZXNl IHdhcm5pbmdzCj4gdG8gYmxrdHJhbnNfb3BlbiBzaG91bGQgaGVscCAuLi4gdW5sZXNzIHRoZSBi bG9jayBkZXZpY2Ugb3BlbiBlbmRzCj4gdXAgYmVpbmcgY2FsbGVkIGFueXdheSwgYW5kIHN0aWxs IGdldHMgc3BhbW15LgoKVGhpcyBzb2x1dGlvbiBpcyBteSBmYXZvcml0ZSwgdW5sZXNzIGFzIHlv dSBzYXkgaXQncyBvcGVuZWQgYW55d2F5LiAKCj4gVGhlIGFsdGVybmF0aXZlIGlzIHJlbW92aW5n IHRoZW0sIHBlcmhhcHMgYWRkaW5nIGEgbWVzc2FnZSB0byBjb25maWcgTVREX0JMT0NLCj4gYWJv dXQgVUJJIGJsb2Nrcz8KClRoYXQncyBhIGZhbGxiYWNrIHNvbHV0aW9uIGluZGVlZC4KClRoYW5r cywKTWlxdcOobAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCkxpbnV4IE1URCBkaXNjdXNzaW9uIG1haWxpbmcgbGlzdApodHRwOi8vbGlzdHMu aW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LW10ZC8K