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 32B88C77B61 for ; Thu, 13 Apr 2023 10:29:38 +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=cYx8xqDIYhGj8ZJOd2a49kJL9suZ4IqP1uPoA1Dcm4o=; b=Kfywwn+5L5zVq4 p2FHzUvBejEt10rTbDZUUtLJbKAZ0p6Nh7/fpMbDzVT0wBnQiJ17iDzk505tvAP2rrRtP00Jh7wvv 7zJIqmbyEhNmPJEAGK4LoFGj9br0nQw/kM8s3k5lBWhkN7977jYyWAYXyrEOqZ/abYWedkQZsVUt2 ZoZs43j9kbFSsi9E38NFttzhL5CBtFA/mAxNQpdR+hXP7w3pebf/inlttb9MiEHUsWR5sh0/iUvVK iyoGl0+mcbw9iOKj0Y1GQH8nnCKkqbMwxdP+F3sORd81Zv1AipzZ3DRai+GOEDC+ifFqaqkzYHjXn SrkH3b/bZyiPtAtvqgGw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1pmuCm-005mIj-1h; Thu, 13 Apr 2023 10:29:28 +0000 Received: from relay7-d.mail.gandi.net ([2001:4b98:dc4:8::227]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1pmuCh-005mHX-0u; Thu, 13 Apr 2023 10:29:25 +0000 Received: (Authenticated sender: miquel.raynal@bootlin.com) by mail.gandi.net (Postfix) with ESMTPSA id 3E34F20002; Thu, 13 Apr 2023 10:29:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1681381759; 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=roaHWfd5xHsGPVWX8nxwTerxHDq6SfUOsNslVYye3ts=; b=bAr6Mi1DFaNLucZzmn1MGSduiKK7BQvzEARHrZK125+PLeTrhMYZN40rD8R9YPGevgl08+ kN/AxTfnRulPkGg6kj4WUqkCeVz6YCYdwSkK9Fs1v3JjH72Svr7RlaqBr7eWtLdwGrhQ0B vB6qTqoaneydFC8JwWxtwSSm2KQzdnjzUPKs/Z6U8mk9Mq3sLwV9LryWvsqt3oih098Iza AjRzGs82g8qu2B2mM2ciYkJ1zXlBfaWx6aAy1sI61Ets46u2AHoEeQ4nqLkbntcz/h/3gY 5M5SEgSseneO8XOGAoQ0W5Gt7ZM3a43EADeKvXGCKRRc6nNIQT+BbIt807iogQ== Date: Thu, 13 Apr 2023 12:29:16 +0200 From: Miquel Raynal To: Dmitry Rokosov Cc: Liang Yang , Arseniy Krasnov , Richard Weinberger , Vignesh Raghavendra , Neil Armstrong , Kevin Hilman , Jerome Brunet , Martin Blumenstingl , Jianxin Pan , Yixun Lan , , , , , , Subject: Re: [PATCH v1 4/5] mtd: rawnand: meson: clear OOB buffer before read Message-ID: <20230413122916.365269f0@xps-13> In-Reply-To: <20230413092706.mzopdszyirnwnjnl@CAB-WSD-L081021> References: <20230412094400.3c82f631@xps-13> <20230412113654.183350d0@xps-13> <4eace0a0-f6af-7d99-a52f-7913a2139330@sberdevices.ru> <20230412141824.755b2bca@xps-13> <20230412145715.58c2be4a@xps-13> <7c996832-258f-001c-56bd-87bbdf23eeaa@amlogic.com> <20230412191548.ov5fufxkwqvdgrz2@CAB-WSD-L081021> <20230412225603.5fba1a9e@xps-13> <20230413092706.mzopdszyirnwnjnl@CAB-WSD-L081021> Organization: Bootlin X-Mailer: Claws Mail 4.0.0 (GTK+ 3.24.33; 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-20230413_032923_650158_1BDC879C X-CRM114-Status: GOOD ( 55.01 ) 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 SGkgRG1pdHJ5LAoKZGRyb2tvc292QHNiZXJkZXZpY2VzLnJ1IHdyb3RlIG9uIFRodSwgMTMgQXBy IDIwMjMgMTI6Mjc6MDYgKzAzMDA6Cgo+IE9uIFdlZCwgQXByIDEyLCAyMDIzIGF0IDEwOjU2OjAz UE0gKzAyMDAsIE1pcXVlbCBSYXluYWwgd3JvdGU6Cj4gPiBIaSBEbWl0cnksCj4gPiAKPiA+IGRk cm9rb3NvdkBzYmVyZGV2aWNlcy5ydSB3cm90ZSBvbiBXZWQsIDEyIEFwciAyMDIzIDIyOjE1OjQ4 ICswMzAwOgo+ID4gICAKPiA+ID4gT24gV2VkLCBBcHIgMTIsIDIwMjMgYXQgMTA6MDQ6MjhQTSAr MDgwMCwgTGlhbmcgWWFuZyB3cm90ZTogIAo+ID4gPiA+IEhpIE1pcXVlbCBhbmQgQXJzZW5peSwK PiA+ID4gPiAKPiA+ID4gPiBPbiAyMDIzLzQvMTIgMjA6NTcsIE1pcXVlbCBSYXluYWwgd3JvdGU6 ICAgIAo+ID4gPiA+ID4gWyBFWFRFUk5BTCBFTUFJTCBdCj4gPiA+ID4gPiAKPiA+ID4gPiA+IEhp IEFyc2VuaXksCj4gPiA+ID4gPiAKPiA+ID4gPiA+IGF2a3Jhc25vdkBzYmVyZGV2aWNlcy5ydSB3 cm90ZSBvbiBXZWQsIDEyIEFwciAyMDIzIDE1OjIyOjI2ICswMzAwOgo+ID4gPiA+ID4gICAgIAo+ ID4gPiA+ID4gPiBPbiAxMi4wNC4yMDIzIDE1OjE4LCBNaXF1ZWwgUmF5bmFsIHdyb3RlOiAgICAK PiA+ID4gPiA+ID4gPiBIaSBBcnNlbml5LAo+ID4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiA+IGF2 a3Jhc25vdkBzYmVyZGV2aWNlcy5ydSB3cm90ZSBvbiBXZWQsIDEyIEFwciAyMDIzIDEzOjE0OjUy ICswMzAwOiAgICAKPiA+ID4gPiA+ID4gPiA+IE9uIDEyLjA0LjIwMjMgMTI6MzYsIE1pcXVlbCBS YXluYWwgd3JvdGU6ICAgIAo+ID4gPiA+ID4gPiA+ID4gPiBIaSBBcnNlbml5LAo+ID4gPiA+ID4g PiA+ID4gPiAKPiA+ID4gPiA+ID4gPiA+ID4gYXZrcmFzbm92QHNiZXJkZXZpY2VzLnJ1IHdyb3Rl IG9uIFdlZCwgMTIgQXByIDIwMjMgMTI6MjA6NTUgKzAzMDA6ICAgIAo+ID4gPiA+ID4gPiA+ID4g PiA+IE9uIDEyLjA0LjIwMjMgMTA6NDQsIE1pcXVlbCBSYXluYWwgd3JvdGU6ICAgIAo+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gSGkgQXJzZW5peSwKPiA+ID4gPiA+ID4gPiA+ID4gPiA+IAo+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gQVZLcmFzbm92QHNiZXJkZXZpY2VzLnJ1IHdyb3RlIG9uIFdlZCwgMTIg QXByIDIwMjMgMDk6MTY6NTggKzAzMDA6ICAgIAo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBUaGlz IE5BTkQgcmVhZHMgb25seSBmZXcgdXNlcidzIGJ5dGVzIGluIEVDQyBtb2RlIChub3QgZnVsbCBP T0IpLCBzbyAgICAKPiA+ID4gPiA+ID4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiA+ID4gPiA+ID4g IlRoaXMgTkFORCByZWFkcyIgZG9lcyBub3QgbG9vayByaWdodCwgZG8geW91IG1lYW4gIlN1YnBh Z2UgcmVhZHMgZG8KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IG5vdCByZXRyaWV2ZSBhbGwgdGhlIE9P QiBieXRlcywiPyAgICAKPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gZmlsbCBPT0IgYnVmZmVyIHdp dGggemVyb2VzIHRvIG5vdCByZXR1cm4gZ2FyYmFnZSBmcm9tIHByZXZpb3VzIHJlYWRzCj4gPiA+ ID4gPiA+ID4gPiA+ID4gPiA+IHRvIHVzZXIuCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IE90aGVy d2lzZSAnbmFuZGR1bXAnIHV0aWxpdHkgcHJpbnRzIHNvbWV0aGluZyBsaWtlIHRoaXMgZm9yIGp1 c3QgZXJhc2VkCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHBhZ2U6Cj4gPiA+ID4gPiA+ID4gPiA+ ID4gPiA+IAo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiAuLi4KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gMHgwMDAwMDdmMDogZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYg ZmYgZmYKPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gICAgT09CIERhdGE6IGZmIGZmIGZmIGZmIDAw IDAwIGZmIGZmIDgwIGNmIDIyIDk5IGNiIGFkIGQzIGJlCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ ICAgIE9PQiBEYXRhOiA2MyAyNyBhZSAwNiAxNiAwYSAyZiBlYiBiYiBkZCA0NiA3NCA0MSA4ZSA4 OCA2ZQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiAgICBPT0IgRGF0YTogMzggYTEgMmQgZTYgNzcg ZDQgMDUgMDYgZjIgYTUgN2UgMjUgZWIgMzQgN2MgZmYKPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4g ICAgT09CIERhdGE6IDM4IGVhIGRlIDE0IDEwIGRlIDliIDQwIDMzIDE2IDZhIGNjIDlkIGFhIDJm IDVlCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBTaWdu ZWQtb2ZmLWJ5OiBBcnNlbml5IEtyYXNub3YgPEFWS3Jhc25vdkBzYmVyZGV2aWNlcy5ydT4KPiA+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gLS0tCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICAgZHJpdmVy cy9tdGQvbmFuZC9yYXcvbWVzb25fbmFuZC5jIHwgNSArKysrKwo+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gPiAgIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKykKPiA+ID4gPiA+ID4gPiA+ID4g PiA+ID4gCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL210ZC9u YW5kL3Jhdy9tZXNvbl9uYW5kLmMgYi9kcml2ZXJzL210ZC9uYW5kL3Jhdy9tZXNvbl9uYW5kLmMK PiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gaW5kZXggZjg0YTEwMjM4ZTRkLi5mMmYyNDcyY2I1MTEg MTAwNjQ0Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IC0tLSBhL2RyaXZlcnMvbXRkL25hbmQvcmF3 L21lc29uX25hbmQuYwo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiArKysgYi9kcml2ZXJzL210ZC9u YW5kL3Jhdy9tZXNvbl9uYW5kLmMKPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gQEAgLTg1OCw5ICs4 NTgsMTIgQEAgc3RhdGljIGludCBtZXNvbl9uZmNfcmVhZF9wYWdlX3N1YihzdHJ1Y3QgbmFuZF9j aGlwICpuYW5kLAo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiAgIHN0YXRpYyBpbnQgbWVzb25fbmZj X3JlYWRfcGFnZV9yYXcoc3RydWN0IG5hbmRfY2hpcCAqbmFuZCwgdTggKmJ1ZiwKPiA+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gICAJCQkJICAgaW50IG9vYl9yZXF1aXJlZCwgaW50IHBhZ2UpCj4gPiA+ ID4gPiA+ID4gPiA+ID4gPiA+ICAgewo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiArCXN0cnVjdCBt dGRfaW5mbyAqbXRkID0gbmFuZF90b19tdGQobmFuZCk7Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ ICAgCXU4ICpvb2JfYnVmID0gbmFuZC0+b29iX3BvaTsKPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4g ICAJaW50IHJldDsKPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gKwltZW1zZXQob29iX2J1ZiwgMCwg bXRkLT5vb2JzaXplKTsgICAgCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gPiA+ ID4gPiA+IEknbSBzdXJwcmlzZWQgcmF3IHJlYWRzIGRvIG5vdCByZWFkIHRoZSBlbnRpcmUgT09C PyAgICAKPiA+ID4gPiA+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gPiA+ID4gPiBZZXMhIFNlZW1z IGluIGNhc2Ugb2YgcmF3IGFjY2VzcyAod2hhdCBpIHNlZSBpbiB0aGlzIGRyaXZlcikgbnVtYmVy IG9mIE9PQiBieXRlcyByZWFkCj4gPiA+ID4gPiA+ID4gPiA+ID4gc3RpbGwgZGVwZW5kcyBvbiBF Q0MgcGFyYW1ldGVyczogZm9yIGVhY2ggcG9ydGlvbiBvZiBkYXRhIGNvdmVyZWQgd2l0aCBFQ0Mg Y29kZSB3ZSBjYW4KPiA+ID4gPiA+ID4gPiA+ID4gPiByZWFkIGl0J3MgRUNDIGNvZGUgYW5kICJ1 c2VyIGJ5dGVzIiBmcm9tIE9PQiAtIGl0IGlzIHdoYXQgaSBzZWUgYnkgZHVtcGluZyBETUEgYnVm ZmVyIGJ5Cj4gPiA+ID4gPiA+ID4gPiA+ID4gcHJpbnRrKCkuIEZvciBleGFtcGxlIEknbSB3b3Jr aW5nIHdpdGggMksgTkFORCBwYWdlcywgZWFjaCBwYWdlIGhhcyAyIHggMUsgRUNDIGJsb2Nrcy4K PiA+ID4gPiA+ID4gPiA+ID4gPiBGb3IgZWFjaCBFQ0MgYmxvY2sgSSBoYXZlIDE2IE9PQiBieXRl cyB3aGljaCBJIGNhbiBhY2Nlc3MgYnkgcmVhZC93cml0ZS4gRWFjaCAxNiBieXRlcwo+ID4gPiA+ ID4gPiA+ID4gPiA+IGNvbnRhaW5zIDIgYnl0ZXMgb2YgdXNlcidzIGRhdGEgYW5kIDE0IGJ5dGVz IEVDQyBjb2Rlcy4gU28gd2hlbiBJIHJlYWQgcGFnZSBpbiByYXcgbW9kZQo+ID4gPiA+ID4gPiA+ ID4gPiA+IGNvbnRyb2xsZXIgcmV0dXJucyAzMiBieXRlcyAoMiB4ICgyICsgMTQpKSBvZiBPT0Iu IFdoaWxlIE9PQiBpcyByZXBvcnRlZCBhcyA2NCBieXRlcy4gICAgCj4gPiA+ID4gPiA+ID4gPiA+ IAo+ID4gPiA+ID4gPiA+ID4gPiBJbiBhbGwgbW9kZXMsIHdoZW4geW91IHJlYWQgT09CLCB5b3Ug c2hvdWxkIGdldCB0aGUgZnVsbCBPT0IuIFRoZSBmYWN0Cj4gPiA+ID4gPiA+ID4gPiA+IHRoYXQg RUNDIGNvcnJlY3Rpb24gaXMgZW5hYmxlZCBvciBkaXNhYmxlZCBkb2VzIG5vdCBtYXR0ZXIuIElm IHRoZSBOQU5ECj4gPiA+ID4gPiA+ID4gPiA+IGZlYXR1cmVzIE9PQiBzZWN0aW9ucyBvZiA2NCBi eXRlcywgeW91IHNob3VsZCBnZXQgdGhlIDY0IGJ5dGVzLgo+ID4gPiA+ID4gPiA+ID4gPiAKPiA+ ID4gPiA+ID4gPiA+ID4gV2hhdCBoYXBwZW5zIHNvbWV0aW1lcywgaXMgdGhhdCBzb21lIG9mIHRo ZSBieXRlcyBhcmUgbm90IHByb3RlY3RlZAo+ID4gPiA+ID4gPiA+ID4gPiBhZ2FpbnN0IGJpdGZs aXBzLCBidXQgdGhlIHBvbGljeSBpcyB0byByZXR1cm4gdGhlIGZ1bGwgYnVmZmVyLiAgICAKPiA+ ID4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiA+ID4gT2ssIHNvIHRvIGNsYXJpZnkgY2FzZSBmb3Ig dGhpcyBOQU5EIGNvbnRyb2xsZXI6Cj4gPiA+ID4gPiA+ID4gPiAxKSBJbiBib3RoIEVDQyBhbmQg cmF3IG1vZGVzIGkgbmVlZCB0byByZXR1cm4gdGhlIHNhbWUgcmF3IE9PQiBkYXRhIChlLmcuIHVz ZXIgYnl0ZXMKPiA+ID4gPiA+ID4gPiA+ICAgICArIEVDQyBjb2Rlcyk/ICAgIAo+ID4gPiA+ID4g PiA+IAo+ID4gPiA+ID4gPiA+IFdlbGwsIHlvdSBuZWVkIHRvIGNvdmVyIHRoZSBzYW1lIGFtb3Vu dCBvZiBkYXRhLCB5ZXMuIEJ1dCBpbiB0aGUgRUNDCj4gPiA+ID4gPiA+ID4gY2FzZSB0aGUgZGF0 YSB3b24ndCBiZSByYXcgKGF0IGxlYXN0IG5vdCBhbGwgb2YgaXQpLiAgICAKPiA+ID4gPiA+ID4g Cj4gPiA+ID4gPiA+IFNvICJzYW1lIGFtb3VudCBvZiBkYXRhIiwgaW4gRUNDIG1vZGUgY3VycmVu dCBpbXBsZW1lbnRhdGlvbiByZXR1cm5zIG9ubHkgdXNlciBPT0IgYnl0ZXMgKGUuZy4KPiA+ID4g PiA+ID4gT09CIGRhdGEgZXhjbHVkaW5nIEVDQyBjb2RlcyksIGluIHJhdyBpdCByZXR1cm5zIHVz ZXIgYnl0ZXMgKyBFQ0MgY29kZXMuIElJVUMgY29ycmVjdAo+ID4gPiA+ID4gPiBiZWhhdmlvdXIg aXMgdG8gYWx3YXlzIHJldHVybiB1c2VyIGJ5dGVzICsgRUNDIGNvZGVzIGFzIE9PQiBkYXRhIGV2 ZW4gaW4gRUNDIG1vZGUgPyAgICAKPiA+ID4gPiA+IAo+ID4gPiA+ID4gSWYgdGhlIHBhZ2UgYXJl IDJrKzY0QiB5b3Ugc2hvdWxkIHJlYWQgMmsrNjRCIHdoZW4gT09CIGFyZSByZXF1ZXN0ZWQuCj4g PiA+ID4gPiAKPiA+ID4gPiA+IElmIHRoZSBjb250cm9sbGVyIG9ubHkgcmV0dXJucyAyayszMkIs IHRoZW4gcGVyZm9ybSBhIHJhbmRvbSByZWFkIHRvCj4gPiA+ID4gPiBqdXN0IG1vdmUgdGhlIHJl YWQgcG9pbnRlciB0byBtdGQtPnNpemUgKyBtdGQtPm9vYnNpemUgLSAzMiBhbmQKPiA+ID4gPiA+ IHJldHJpZXZlIHRoZSBtaXNzaW5nIDMyIGJ5dGVzPyAgICAKPiA+ID4gPiAKPiA+ID4gPiAxKSBy YXcgcmVhZCBjYW4gcmVhZCBvdXQgdGhlIHdob2xlIHBhZ2UgZGF0YSAyays2NEIsIGRlY2lkZWQg YnkgdGhlIGxlbiBpbgo+ID4gPiA+IHRoZSBjb250cm9sbGVyIHJhdyByZWFkIGNvbW1hbmQ6Cj4g PiA+ID4gCWNtZCA9IChsZW4gJiBHRU5NQVNLKDUsIDApKSB8IHNjcmFtYmxlciB8IERNQV9ESVIo ZGlyKTsKPiA+ID4gPiBhZnRlciB0aGF0LCB0aGUgbWlzc2luZyBvb2IgYnl0ZXMobm90IHVzZWQp IGNhbiBiZSBjb3BpZWQgZnJvbQo+ID4gPiA+IG1lc29uX2NoaXAtPmRhdGFfYnVmLiBzbyB0aGUg aW1wbGVtZW50YXRpb24gb2YgbWVzb25fbmZjX3JlYWRfcGFnZV9yYXcoKSBpcwo+ID4gPiA+IGxp a2UgdGhpcyBpZiBuZWVkLgo+ID4gPiA+IAl7Cj4gPiA+ID4gCQkuLi4uLi4KPiA+ID4gPiAJCW1l c29uX25mY19yZWFkX3BhZ2Vfc3ViKG5hbmQsIHBhZ2UsIDEpOwo+ID4gPiA+IAkJbWVzb25fbmZj X2dldF9kYXRhX29vYihuYW5kLCBidWYsIG9vYl9idWYpOwo+ID4gPiA+IAkJb29iX2xlbiA9IChu YW5kLT5lY2MuYnl0ZXMgKyAyKSAqIG5hbmQtPmVjYy5zdGVwczsKPiA+ID4gPiAJCW1lbWNweShv b2JfYnVmICsgb29iX2xlbiwgbWVzb25fY2hpcC0+ZGF0YV9idWYgKyBvb2JfbGVuLCBtdGQtPm9v YnNpemUgLQo+ID4gPiA+IG9vYl9sZW4pOwo+ID4gPiA+IAo+ID4gPiA+IAl9Cj4gPiA+ID4gMikg SW4gRUNDIG1vZGUsIHRoZSBjb250cm9sbGVyIGNhbid0IGJyaW5nIGJhY2sgdGhlIG1pc3Npbmcg T09CIGJ5dGVzLiBpdAo+ID4gPiA+IGNhbiByZWFkIG91dCB0aGUgdXNlciBieXRlcyBhbmQgZWNj IGJ5dGVzIHBlciBtZXNvbl9vb2JsYXlvdXRfb3BzIGRlZmluZS4KPiA+ID4gPiAgICAgCj4gPiA+ IAo+ID4gPiBIb3cgZG9lcyB0aGUgTWVzb24gY29udHJvbGxlciBrbm93IHRoZSBhY3R1YWwgTkFO RCBmbGFzaCBsYXlvdXQgd2hlbiB0aGUKPiA+ID4gT09CIGlzIHNwbGl0IGludG8gcHJvdGVjdGVk IGFuZCB1bnByb3RlY3RlZCBhcmVhcywgc3VjaCBhcyBGcmVlIGFuZCBFQ0MKPiA+ID4gYXJlYXM/ IElmIHRoZSBjb250cm9sbGVyIGhhcyBhIHN0YXRpYyBPT0IgbGF5b3V0LCB3aGVyZSBpcyB0aGUg bWFwcGluZwo+ID4gPiBsb2NhdGVkPyAgCj4gPiAKPiA+IEl0J3MgdXN1YWxseSBhIHNldCBvZiB2 YWx1ZXMgaGFyZGNvZGVkIGluIHRoZSBkcml2ZXIuIEl0J3MgYSBwZXIKPiA+IGdlb21ldHJ5IHNl dC4KPiA+ICAgCj4gCj4gU29ycnksIEknbSBzdGlsbCBjb25mdXNlZC4gQmVmb3JlIEkgZGV2ZWxv cGVkIHNwaW5hbmQgZHJpdmVycywgdGhlIE9PQiBsYXlvdXQKPiB3YXMgbG9jYXRlZCBvbiB0aGUg Zmxhc2ggZHJpdmVyIHNpZGUuCgpUaGUgc3BpbmFuZCBzdWJzeXN0ZW0gaXMgZGlmZmVyZW50LCBt b3N0IG9mIHRoZSBjaGlwcyBoYXZlIG9uLWRpZSBFQ0MsCndoaWNoIG1lYW5zIHRoZSBFQ0MgbGF5 b3V0IGlzIG1vc3Qgb2YgdGhlIHRpbWUgcGVyLWNoaXAuCgpJbiB0aGUgcmF3IE5BTkQgbGF5ZXIs IG1vc3Qgb2YgdGhlIHRpbWUgdGhlIEVDQyBlbmdpbmUgaXMgbWVyZ2VkIHdpdGgKdGhlIE5BTkQg Y29udHJvbGxlciBhbmQgdGh1cyB0aGUgbGlzdCBvZiBhdmFpbGFibGUgbGF5b3V0cyBkZXBlbmQg b24KdGhlIGNvbnRyb2xsZXIuIEJ1dCB0aGVzZSBsYXlvdXRzIG9mdGVuIGFkYXB0IHRvIHRoZSBO QU5EIGNoaXAKZ2VvbWV0cnksIHNvIHlvdSBjYW4gb25seSBub3cgd2hpY2ggbGF5b3V0IHRvIHVz ZSBhZnRlciBpZGVudGlmeWluZyB0aGUKY2hpcCAodGhlcmUgaXMgYW4gLT5hdHRhY2hfY2hpcCgp IGhvb2sgdG8gaGFuZGxlIHRoaW5ncyByZWxhdGVkIHRvCmdlb21ldHJ5IGFmdGVyIGNvbnRyb2xs ZXIgYmFzZSBpbml0aWFsaXphdGlvbi4KCj4gRG8geW91IG1lYW4gaWYgdGhlIE9PQiBnZW9tZXRy eSBpbiB0aGUgcmF3bmFuZCBzdWJzeXN0ZW0gaXMgdW5kZXIgdGhlCj4gcmVzcG9uc2liaWxpdHkg b2YgdGhlIGNvbnRyb2xsZXIgZHJpdmVyPwoKVGhlIGdlb21ldHJ5IGlzIE5BTkQgY2hpcCBzcGVj aWZpYy4KVGhlIE9PQiBsYXlvdXQgZGVwZW5kcyBvbiB0aGUgY2hpcCBnZW9tZXRyeSwgdGhlIEVD QyBlbmdpbmUKY2FwYWJpbGl0aWVzIGFuZCBjb25maWd1cmF0aW9uIChsaWtlIHRoZSBzdHJlbmd0 aCkuClRoZSBkaXNjb3Zlcnkgb2YgdGhlIGdlb21ldHJ5IGlzIHBlcmZvcm1lZCBieSB0aGUgY29y ZSAodXNpbmcgcmF3IE5BTkQKY29udHJvbGxlciBkcml2ZXIgY2FsbGJhY2tzIG9mIGNvdXJzZSku CklmIG9uLWhvc3QgRUNDIGVuZ2luZSBpcyBwaWNrZWQgKHRoZSBkZWZhdWx0IGluIHRoZSByYXcg TkFORApzdWJzeXN0ZW0pLCB0aGVuIHRoZSBjb250cm9sbGVyIGRyaXZlciBwaWNrcyB0aGUgY29y cmVjdCBPT0IgbGF5b3V0IGFuZApyZWZ1c2VzIHRvIHByb2JlIG90aGVyd2lzZS4KCkhvcGUgaXRz IGNsZWFyZXIgbm93IDopCgpUaGFua3MsCk1pcXXDqGwKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpMaW51eCBNVEQgZGlzY3Vzc2lvbiBtYWls aW5nIGxpc3QKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51 eC1tdGQvCg==