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 E4170C77B73 for ; Tue, 2 May 2023 10:16:29 +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: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=Kx8lUvN5dLxK1D7PHuBJcgX7kCDEBMShxrKHI9Owtoo=; b=bdxGuALnpY+7kX abMXPmPLGUKnvYQXdjz+3tXDkBdB5bGJ+sJ1O7nVcPfJxpgwbkiTpSkYMryZq6C7SXWnnuxZhtL+/ s+3N29XLTFAYZi4YARxCri6regFcUu4AM/i2a7WfsKJ2VZkhy6b/SScB8eHJHX0VoLFRrbwvzGnsY jlRcveXfwM4IMP7DyKbjXvmc0nrUnXRWlKUn2CPH7Za/HKN5cPxrQGqI/gvlEACcD/d9FCGz95Ir9 EN17225uz3l/6OwVPNS03DHAGjyMsrgTEZ9/nDnOma3GJL8vjKpSUjz+LPJsRGrWRxvUPnhKIaoGo 64mieZBCdYZLterPkDFQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1ptn3W-000tn9-0E; Tue, 02 May 2023 10:16:22 +0000 Received: from mx.sberdevices.ru ([45.89.227.171]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1ptn3Q-000tla-0c; Tue, 02 May 2023 10:16:19 +0000 Received: from s-lin-edge02.sberdevices.ru (localhost [127.0.0.1]) by mx.sberdevices.ru (Postfix) with ESMTP id 902C65FD34; Tue, 2 May 2023 13:16:09 +0300 (MSK) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sberdevices.ru; s=mail; t=1683022569; bh=RLEW8dURxvEN0w9v4e+Ek29tOGYPbsnSqqb5IdGH/Wg=; h=Message-ID:Date:MIME-Version:Subject:To:From:Content-Type; b=egQ9p3Rd17EkAxbMk/mKT5ITbOyzisk/ECgiszvnDA/RF6Heoe3iQC/heFJOmaMZZ HVgWsRW6YDPz+PxtMmX3dHZ2kW1cs3h7p+LfS5RU9FlH+OI/ueAFxVuwHclBSFhTOE 9E1o4O4q0RXCUk+bR3HOmascmzpuJWxNpDu76GC6ChU7I3ZSGszqhAvHE6394Bhtkw TmhusbHSWhiH+Y/0HitTBuOGul/KpWhDday1BAlxl9/s0cwMO4Qw67OcDAhJ8VpeiM sKnBYh+n5joU+GpT/ZRUXxHWViv1C9R+XcISCuKVAWZ0KOgki2lm7S//psm21uqINt 4bGT5zPADIZ8w== Received: from S-MS-EXCH01.sberdevices.ru (S-MS-EXCH01.sberdevices.ru [172.16.1.4]) by mx.sberdevices.ru (Postfix) with ESMTP; Tue, 2 May 2023 13:16:07 +0300 (MSK) Message-ID: <2274b432-d1a9-b3cf-4f7b-08c4a4c580b5@sberdevices.ru> Date: Tue, 2 May 2023 13:11:38 +0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.7.1 Subject: Re: [PATCH v1 4/5] mtd: rawnand: meson: clear OOB buffer before read Content-Language: en-US To: Miquel Raynal CC: Liang Yang , Richard Weinberger , Vignesh Raghavendra , Neil Armstrong , Kevin Hilman , Jerome Brunet , Martin Blumenstingl , Jianxin Pan , Yixun Lan , , , , , , , yonghui.yu References: <20230412061700.1492474-1-AVKrasnov@sberdevices.ru> <20230412163214.0c764bb3@xps-13> <0c61eaae-053e-5768-a533-70b2ff0cc95d@amlogic.com> <7520e512-8a19-ff04-364c-b5be0a579ef0@sberdevices.ru> <20230413102200.309fbe9c@xps-13> <20230413122252.0a8efcd8@xps-13> <569a948e-654a-b21f-8a4f-55dc4b295387@sberdevices.ru> <60fa656e-bda1-1de6-a79e-3e3041cd69a8@sberdevices.ru> <780c0cae-18b6-2652-1c2c-6d398ea60451@amlogic.com> <20230418152505.72fc16da@xps-13> <15a6e415-1489-a81f-fc8f-2372678ad2cb@sberdevices.ru> <5e4b395e-bf9d-0123-a0f2-2b378d950b29@sberdevices.ru> <20230502115913.78012d98@xps-13> From: Arseniy Krasnov In-Reply-To: <20230502115913.78012d98@xps-13> X-Originating-IP: [172.16.1.6] X-ClientProxiedBy: S-MS-EXCH02.sberdevices.ru (172.16.1.5) To S-MS-EXCH01.sberdevices.ru (172.16.1.4) X-KSMG-Rule-ID: 4 X-KSMG-Message-Action: clean X-KSMG-AntiSpam-Status: not scanned, disabled by settings X-KSMG-AntiSpam-Interceptor-Info: not scanned X-KSMG-AntiPhishing: not scanned, disabled by settings X-KSMG-AntiVirus: Kaspersky Secure Mail Gateway, version 1.1.2.30, bases: 2023/05/02 09:07:00 #21205017 X-KSMG-AntiVirus-Status: Clean, skipped X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230502_031616_939987_31C110B5 X-CRM114-Status: GOOD ( 34.22 ) 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 CgpPbiAwMi4wNS4yMDIzIDEyOjU5LCBNaXF1ZWwgUmF5bmFsIHdyb3RlOgo+IEhpIEFyc2VuaXks Cj4gCj4gYXZrcmFzbm92QHNiZXJkZXZpY2VzLnJ1IHdyb3RlIG9uIFdlZCwgMjYgQXByIDIwMjMg MTc6NDY6MTkgKzAzMDA6Cj4gCj4+IE9uIDI2LjA0LjIwMjMgMTY6NTEsIExpYW5nIFlhbmcgd3Jv dGU6Cj4+PiBIaSBBcnNlbml5LAo+Pj4KPj4+IE9uIDIwMjMvNC8yMCAxNzozNywgQXJzZW5peSBL cmFzbm92IHdyb3RlOiAgCj4+Pj4gWyBFWFRFUk5BTCBFTUFJTCBdCj4+Pj4KPj4+PiBPbiAxOS4w NC4yMDIzIDA5OjQxLCBBcnNlbml5IEtyYXNub3Ygd3JvdGU6ICAKPj4+Pj4KPj4+Pj4KPj4+Pj4g T24gMTkuMDQuMjAyMyAwNjowNSwgTGlhbmcgWWFuZyB3cm90ZTogIAo+Pj4+Pj4gSGkgQXJzZW5p eSwKPj4+Pj4+Cj4+Pj4+PiBPbiAyMDIzLzQvMTggMjI6NTcsIEFyc2VuaXkgS3Jhc25vdiB3cm90 ZTogIAo+Pj4+Pj4+IFsgRVhURVJOQUwgRU1BSUwgXQo+Pj4+Pj4+Cj4+Pj4+Pj4KPj4+Pj4+Pgo+ Pj4+Pj4+IE9uIDE4LjA0LjIwMjMgMTY6MjUsIE1pcXVlbCBSYXluYWwgd3JvdGU6ICAKPj4+Pj4+ Pj4gSGkgQXJzZW5peSwKPj4+Pj4+Pj4gIAo+Pj4+Pj4+Pj4+PiBIZWxsbyBhZ2FpbiBATGlhbmcg QE1pcXVlbCEKPj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4gT25lIG1vcmUgcXVlc3Rpb24gYWJvdXQg T09CIGFjY2VzcywgYXMgSSBjYW4gc2VlIGN1cnJlbnQgZHJpdmVyIHVzZXMgdGhlIGZvbGxvd2lu Zwo+Pj4+Pj4+Pj4+PiBjYWxsYmFja3M6Cj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+IMKgwqDCoMKg wqAgbmFuZC0+ZWNjLndyaXRlX29vYl9yYXcgPSBuYW5kX3dyaXRlX29vYl9zdGQ7Cj4+Pj4+Pj4+ Pj4+IMKgwqDCoMKgwqAgbmFuZC0+ZWNjLndyaXRlX29vYiA9IG5hbmRfd3JpdGVfb29iX3N0ZDsK Pj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4gRnVuY3Rpb24gJ25hbmRfd3JpdGVf b29iX3N0ZCgpJyB3cml0ZXMgZGF0YSB0byB0aGUgZW5kIG9mIHRoZSBwYWdlLiBCdXQgYXMgSQo+ Pj4+Pj4+Pj4+PiBjYW4gc2VlIGJ5IGR1bXBpbmcgJ2RhdGFfYnVmJyBkdXJpbmcgcmVhZCwgcGh5 c2ljYWwgbGF5b3V0IG9mIGVhY2ggcGFnZSBpcyB0aGUKPj4+Pj4+Pj4+Pj4gZm9sbG93aW5nICgx S0IgRUNDKToKPj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4gMHgwMDA6IFvCoMKgwqDCoMKgwqDCoMKg IDEgS0Igb2YgZGF0YcKgwqDCoMKgwqDCoMKgIF0KPj4+Pj4+Pj4+Pj4gMHg0MDA6IFsgMkIgdXNl ciBkYXRhXSBbIDE0QiBFQ0MgY29kZV0KPj4+Pj4+Pj4+Pj4gMHg0MTA6IFvCoMKgwqDCoMKgwqDC oMKgIDEgS0Igb2YgZGF0YcKgwqDCoMKgwqDCoMKgIF3CoMKgwqAgKEEpCj4+Pj4+Pj4+Pj4+IDB4 ODEwOiBbIDJCIHVzZXIgZGF0YV0gWyAxNEIgRUNDIGNvZGVdCj4+Pj4+Pj4+Pj4+IDB4ODIwOiBb wqDCoMKgwqDCoMKgwqAgMzJCIHVudXNlZMKgwqDCoMKgwqDCoMKgwqDCoMKgIF0KPj4+Pj4+Pj4+ Pj4KPj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4gU28sIGFmdGVyICduYW5kX3dy aXRlX29vYl9zdGQoKScgKGxldCBkYXRhIGJlIHNlcXVlbmNlIGZyb20gWzB4MCAuLi4gMHgzZl0p LAo+Pj4+Pj4+Pj4+PiBwYWdlIHdpbGwgbG9vayBsaWtlIHRoaXM6Cj4+Pj4+Pj4+Pj4+Cj4+Pj4+ Pj4+Pj4+IDB4MDAwOiBbwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDB4RkbCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIF0KPj4+Pj4+Pj4+Pj4gMHg0MDA6IFvCoMKgwqDCoMKgwqDCoMKgwqDCoCAuLi4u Li4uLsKgwqDCoMKgwqDCoMKgwqDCoCBdCj4+Pj4+Pj4+Pj4+IDB4N2YwOiBbwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIDB4RkbCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIF0KPj4+Pj4+Pj4+Pj4gMHg4 MDA6IFsgMDAgLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi7CoCBdCj4+Pj4+Pj4+Pj4+IDB4ODMwOiBb IC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLiAzZiBdCj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+IEhl cmUgd2UgaGF2ZSB0d28gcHJvYmxlbXM6Cj4+Pj4+Pj4+Pj4+IDEpIEF0dGVtcHQgdG8gZGlzcGxh eSByYXcgZGF0YSBieSAnbmFuZGR1bXAnIHV0aWxpdHkgcHJvZHVjZXMgYSBsaXR0bGUgYml0Cj4+ Pj4+Pj4+Pj4+IMKgwqDCoMKgwqAgaW52YWxpZCBvdXRwdXQsIGFzIGRyaXZlciByZWxpZXMgb24g bGF5b3V0IChBKSBmcm9tIGFib3ZlLiBFLmcuIE9PQiBkYXRhCj4+Pj4+Pj4+Pj4+IMKgwqDCoMKg wqAgaXMgYXQgMHg0MDAgYW5kIDB4ODEwLiBIZXJlIGlzIGFuIGV4YW1wbGUgKGF0dGVtcHQgdG8g d3JpdGUgMHgxMSAweDIyIDB4MzMgMHg0NCk6Cj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+IDB4MDAw MDA3ZjA6IDExIDIyIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmwqAg fC4iLi4uLi4uLi4uLi4uLi58Cj4+Pj4+Pj4+Pj4+IMKgwqDCoMKgIE9PQiBEYXRhOiBmZiBmZiBm ZiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZsKgIHwuLi4uLi4uLi4uLi4u Li4ufAo+Pj4+Pj4+Pj4+PiDCoMKgwqDCoCBPT0IgRGF0YTogMzMgNDQgZmYgZmYgZmYgZmYgZmYg ZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmbCoCB8M0QuLi4uLi4uLi4uLi4uLnwKPj4+Pj4+Pj4+ Pj4gwqDCoMKgwqAgT09CIERhdGE6IGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZm IGZmIGZmIGZmIGZmwqAgfC4uLi4uLi4uLi4uLi4uLi58Cj4+Pj4+Pj4+Pj4+IMKgwqDCoMKgIE9P QiBEYXRhOiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZsKg IHwuLi4uLi4uLi4uLi4uLi4ufAo+Pj4+Pj4+Pj4+PiAgCj4+Pj4+Pj4+Pj4gSGkgQXJzZW5peSwK Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+IEkgcmVhbGl6ZWQgdGhlIHdyaXRlX29vYl9yYXcoKSBhbmQg d3JpdGVfb29iKCkgYXJlIHdyb25nIGluIG1lc29uX25hbmQuYy4gSSBzdWdnZXN0IGJvdGggb2Yg dGhlbSBzaG91bGQgYmUgcmV3b3JrZWQgYW5kIGZvbGxvdyB0aGUgZm9ybWF0IG9mIG1lc29uIG5h bmQgY29udHJvbGxlci4gaS5lLiBmaXJzdGx5IGZvcm1hdCB0aGUgZGF0YSBpbiBMYXlvdXQgKEEp IGFuZCB0aGVuIHdyaXRlLiByZWFkaW5nIGlzIGZpcnN0bHkgcmVhZGluZyB0aGUgZGF0YSBvZiBs YXlvdXQgKEEpIGFuZCB0aGVuIGNvbXBvc3QgdGhlIGxheW91dCAoQikuICAKPj4+Pj4+Pj4+Cj4+ Pj4+Pj4+PiBJSVVDIGFmdGVyIHN1Y2ggd3JpdGluZyBvbmx5IE9PQiAoZS5nLiB1c2VyIGJ5dGVz KSBhY2NvcmRpbmcgbGF5b3V0IChBKSwgaHcgd2lsbCBhbHNvIHdyaXRlIEVDQyBjb2Rlcywgc28K Pj4+Pj4+Pj4+IGl0IHdpbGwgYmUgaW1wb3NzaWJsZSB0byB3cml0ZSBkYXRhIHRvIHRoaXMgcGFn ZSBsYXRlciwgYmVjYXVzZSB3ZSBjYW5ub3QgdXBkYXRlIEVDQyBjb2RlcyBwcm9wZXJseSBmb3Ig dGhlIG5ld2x5Cj4+Pj4+Pj4+PiB3cml0dGVuIGRhdGEgKHdlIGNhbid0IHVwZGF0ZSBiaXRzIGZy b20gMCB0byAxKS4KPj4+Pj4+Pj4+ICAKPj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+ICAKPj4+Pj4+Pj4+ Pj4KPj4+Pj4+Pj4+Pj4gMikgQXR0ZW1wdCB0byByZWFkIGRhdGEgaW4gRUNDIG1vZGUgd2lsbCBm YWlsLCBiZWNhdXNlIElJVUMgcGFnZSBpcyBpbiBkaXJ0eQo+Pj4+Pj4+Pj4+PiDCoMKgwqDCoMKg IHN0YXRlIChJIG1lYW4gd2FzIHdyaXR0ZW4gYXQgbGVhc3Qgb25jZSkgYW5kIE5BTkQgY29udHJv bGxlciB0cmllcyB0byB1c2UKPj4+Pj4+Pj4+Pj4gwqDCoMKgwqDCoCBFQ0MgY29kZXMgYXQgMHg0 MDAgYW5kIDB4ODEwLCB3aGljaCBhcmUgb2J2aW91c2x5IGJyb2tlbiBpbiB0aGlzIGNhc2UuIFRo dXMgIAo+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4gQXMgaSBzYWlkIGFib3ZlLCB3cml0ZV9vb2JfcmF3 KCkgYW5kIHdyaXRlX29vYigpIHNob3VsZCBiZSByZXdvcmtlZC4KPj4+Pj4+Pj4+PiBpIGRvbid0 IGtub3cgd2hhdCBkbyB5b3UgbWVhbiBwYWdlIHdhcyB3cml0dGVuIGF0IGxlYXN0IG9uY2UuIGFu eXdheSB0aGUgcGFnZSBzaG91bGQgYmUgd3JpdHRlbiBvbmNlLCBldmVuIGp1c3Qgd3JpdGVfb29i X3JhdygpLiAgCj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gU29ycnksIFlvdSBtZWFuIHRoYXQgYWZ0ZXIg T09CIHdyaXRlLCB3ZSBjYW5ub3Qgd3JpdGUgdG8gdGhlIGRhdGEgYXJlYSAoZS5nLiAweDAgLi4g MHg4MTApIHVudGlsIHBhZ2Ugd2lsbCBiZSBlcmFzZWQ/IEZvciBleGFtcGxlCj4+Pj4+Pj4+PiBK RkZTMiB3cml0ZXMgdG8gT09CIG93biBtYXJrZXJzLCB0aGVuIGl0IHRyaWVzIHRvIHdyaXRlIHRv IHRoZSBkYXRhIGFyZWEgb2Ygc3VjaCBwYWdlLiAgCj4+Pj4+Pj4KPj4+Pj4+PiBATGlhbmcsIEkn bGwgZGVzY3JpYmUgY3VycmVudCB0ZXN0IGNhc2UgaW4gZGV0YWlsczoKPj4+Pj4+PiAxKSBJIGhh dmUgZXJhc2VkIHBhZ2UsIEkgY2FuIHJlYWQgaXQgaW7CoCBib3RoIHJhdyBhbmQgZWNjIG1vZGVz IC0gbm8gcHJvYmxlbSAoaXQgaXMgZnVsbCBvZiAweEZGKS4KPj4+Pj4+PiAyKSBJIChKRkZTMiBm b3IgZXhhbXBsZSkgd2FudCB0byB3cml0ZSBvbmx5IE9PQiAtIGxldCBpdCBiZSBjbGVhbiBtYXJr ZXJzLgo+Pj4+Pj4+IDMpIEkgdXNlIHJhdyB3cml0ZSB0byB0aGUgbmVlZGVkIHBhZ2UgKHBsZWFz ZSBjb3JyZWN0IG1lIGlmIGknbSB3cm9uZykuIEZvdXIgYnl0ZXMKPj4+Pj4+PiDCoMKgwqDCoCBh dCAweDQwMCBhbmQgMHg4MTAgYXJlIHVwZGF0ZWQuIEFsbCBvdGhlciBieXRlcyBzdGlsbCAweGZm Lgo+Pj4+Pj4+IDQpIE5vdywgd2hlbiBpJ20gdHJ5aW5nIHRvIHJlYWQgdGhpcyBwYWdlIGluIEVD QyBtb2RlLCBJIGdldCBFQ0MgZXJyb3JzOiBJSVVDIHRoaXMKPj4+Pj4+PiDCoMKgwqDCoCBoYXBw ZW5zIGJlY2F1c2UgZnJvbSBjb250cm9sbGVyIHBvaW50IG9mIHZpZXcgRUNDIGNvZGVzIGFyZSBp bnZhbGlkIGZvciBjdXJyZW50Cj4+Pj4+Pj4gwqDCoMKgwqAgZGF0YSAoYWxsIEVDQ3MgYXJlIDB4 ZmYpLiBJcyB0aGlzIGJlaGF2aW91ciBpcyBvaz8gIAo+Pj4+Pj4KPj4+Pj4+IFllcywgaXQgaXMg ZXhhY3RseSByZXBvcnRlZCBFQ0MgZXJyb3JzLiAgCj4+Pj4+Cj4+Pj4+IEkgc2VlLCBzbyBpZiB3 ZSB3cml0ZSBPT0IgKGUuZy4gdXNpbmcgcmF3IG1vZGUpLCB0aGVyZSBpcyBubyB3YXkgdG8gcmVh ZCB0aGlzIHBhZ2UgaW4gRUNDIG1vZGUgbGF0ZXI/IEFuZCB0aGUgIAo+Pj4KPj4+IE9mIGNvdXJz ZSwgdGhlcmUgaXMgbm8gRUNDIHBhcml0eSBieXRlcyBpbiBpdDsgb3IgcmF3IHdyaXRlIHRoZSBk YXRhIHdpdGggdGhlIEVDQyBwYXJpdHkgYnl0ZXMgcGVyIHRoZSBsYXlvdXQgKEEpIHlvdSBkZXNj cmliZSBhYm92ZS4KPj4+ICAgCj4+Cj4+IEJ1dCBkb24ndCBpdCBsb29rcyBsaWtlIHN0cmFuZ2U/ IEp1c3Qgd3JpdGluZyBPT0IgbWFrZXMgcGFnZSB1bnJlYWRhYmxlPyBNYXkgYmUgaXQgaXMgYmV0 dGVyIHRvIG1vdmUgT09CIGRhdGEKPj4gb3V0IG9mIEVDQyBhcmVhIGFzIEkgc3VnZ2VzdGVkIGlu IHYyPwo+Pgo+Pj4+PiBvbmx5IHdheSB0byBtYWtlIGl0IHJlYWRhYmxlIGlzIHRvIHdyaXRlIGl0 IGluIEVDQyBtb2RlLCBidXQgYmVmb3JlIHRoaXMgd3JpdGUsIHdlIG5lZWQgdG8gcmVhZCBpdCdz Cj4+Pj4+IHVzZXIncyBieXRlIChmcm9tIHByZXZpb3VzIE9PQiB3cml0ZSkgaW4gcmF3IG1vZGUs IHB1dCBpdCB0byBpbmZvIGJ1ZiAoYXMgdXNlcidzIGJ5dGVzKSBhbmQgd3JpdGUgdGhpcyBwYWdl LiBJbiB0aGlzCj4+Pj4+IGNhc2UgTkFORCBjb250cm9sbGVyIHdpbGwgZ2VuZXJhdGUgRUNDIGNv ZGVzIGluY2x1ZGluZyB1c2VyJ3MgYnl0ZSBhbmQgcGFnZSBiZWNvbWUgcmVhZGFibGUgaW4gRUND IG1vZGUKPj4+Pj4gYWdhaW4uICAKPj4+Cj4+PiB5ZXMsIHlvdSBhcmUgcmlnaHQuCj4+PiAgIAo+ Pj4+PiAgCj4+Pj4+PiAgCj4+Pj4+Pj4gNSkgT2ssIGRvbid0IGNhcmUgb24gdGhlc2UgRUNDIGVy cm9ycywgbGV0J3MgZ28gZnVydGhlci4KPj4+Pj4+PiA2KSBJJ20gZ29pbmcgdG8gd3JpdGUgc2Ft ZSBwYWdlIGluIEVDQyBtb2RlIC0gaG93IHRvIGRvIGl0IGNvcnJlY3RseT8gVGhlcmUgaXMgYWxy ZWFkeQo+Pj4+Pj4+IMKgwqDCoMKgIDQgT09CIGJ5dGVzLCBjb25zaWRlcmVkIHRvIGJlIGNvdmVy ZWQgYnkgRUNDIChidXQgaW4gZmFjdCBub3cgLSBFQ0MgYXJlYSBpcyBGRmVkKS4gIAo+Pj4+Pj4K Pj4+Pj4+IElmIHN0ZXAgNCBoYXMgZXhjdXRlZCAicHJvZ3JhbSIgY29tbWFuZCBhdCB0aGUgcGFn ZSAobmFuZF93cml0ZV9vb2Jfc3RkKCkgZG9lcyksIGl0IGNhbid0IGJlIHdyaXR0ZW4gYWdhaW4g YmVmb3JlIGVyYXNpbmcgdGhlIHBhZ2UoYmxvY2spLiBzbyB3ZSBoYXZlIHRvIHJlYWQgdGhlIHdo b2xlIHBhZ2UgaW4gdGhlIGRkciBhbmQgY2hhbmdlIHRoZSBjb250ZW50LCBlcmFzZSBibG9jaywg d3JpdGUgaXQgYWdhaW4uCj4+Pj4+Pgo+Pj4+Pj4gSSBkb24ndCB0aGluayBKZmZzMiBoYXMgdGhl IHNhbWUgc3RlcHMgKDEtNikgYXMgeW91IHNhaWQgYWJvdmUuIGFyZSB5b3Ugc3VyZSB0aGF0IGhh cHBlcyBvbiBKZmZzMiBvciBqdXN0IGFuIGV4YW1wbGU/ICAKPj4+Pgo+Pj4+ICAKPj4+Pj4KPj4+ Pj4gSSBqdXN0IGNoZWNrZWQgSkZGUzIgbW91bnQvdW1vdW50IGFnYWluLCBoZXJlIGlzIHdoYXQg aSBzZWU6Cj4+Pj4+IDApIEZpcnN0IGF0dGVtcHQgdG8gbW91bnQgSkZGUzIuCj4+Pj4+IDEpIEl0 IHdyaXRlcyBPT0IgdG8gcGFnZSBOIChpJ20gdXNpbmcgcmF3IHdyaXRlKS4gSXQgaXMgY2xlYW5t YXJrZXIgdmFsdWUgMHg4NSAweDE5IDB4MDMgMHgyMC4gTW91bnQgaXMgZG9uZS4KPj4+Pj4gMikg VW1vdW50IEpGRlMyLiBEb25lLgo+Pj4+PiAzKSBTZWNvbmQgYXR0ZW1wdCB0byBtb3VudCBKRkZT Mi4KPj4+Pj4gNCkgSXQgcmVhZHMgT09CIGZyb20gcGFnZSBOIChpJ20gdXNpbmcgcmF3IHJlYWQp LiBWYWx1ZSBpcyAweDg1IDB4MTkgMHgwMyAweDIwLiBEb25lLgo+Pj4+PiA1KSBJdCByZWFkcyBw YWdlIE4gaW4gRUNDIG1vZGUsIGFuZCBpIGdldDoKPj4+Pj4gwqDCoMKgwqAgamZmczI6IG10ZC0+ cmVhZCgweDEwMCBieXRlcyBmcm9tIE4pIHJldHVybmVkIEVDQyBlcnJvcgo+Pj4+PiA2KSBNb3Vu dCBmYWlsZWQuCj4+Pj4+Cj4+Pj4+IFdlIGFscmVhZHkgaGFkIHByb2JsZW0gd2hpY2ggbG9va3Mg bGlrZSB0aGlzIG9uIGFub3RoZXIgZGV2aWNlLiBTb2x1dGlvbiB3YXMgdG8gdXNlIE9PQiBhcmVh IHdoaWNoIGlzCj4+Pj4+IG5vdCBjb3ZlcmVkIGJ5IEVDQyBmb3IgSkZGUzIgY2xlYW5tYXJrZXJz LiAgCj4+Pgo+Pj4gb2ssIHNvIHRoZXJlIGlzIG5vdCBFQ0MgcGFyaXR5IGJ5dGVzIGFuZCBtdGQt PnJlYWQoKSByZXR1cm5zIEVDQyBlcnJvci4KPj4+IGRvZXMgaXQgaGF2ZSB0byB1c2UgcmF3IHdy aXRlL3JlYWQgb24gc3RlcCAxKSBhbmQgNCk/Cj4+PiAgIAo+Pgo+PiBJZiBpJ20gdXNpbmcgbm9u IHJhdyBhY2Nlc3MgdG8gT09CLCBmb3IgZXhhbXBsZSB3cml0ZSBPT0IgKHVzZXIgYnl0ZXMpIGlu IEVDQyBtb2RlLCB0aGVuCj4+IHN0ZXBzIDEpIGFuZCA0KSBhbmQgNSkgcGFzc2VzIG9rLCBidXQg d3JpdGUgdG8gdGhpcyBwYWdlIHdpbGwgYmUgaW1wb3NzaWJsZSAoZm9yIGV4YW1wbGUgSkZGUzIK Pj4gd3JpdGVzIHRvIHN1Y2ggcGFnZXMgbGF0ZXIpIC0gd2UgY2FuJ3QgdXBkYXRlIEVDQyBjb2Rl cyBwcm9wZXJseSB3aXRob3V0IGVyYXNpbmcgd2hvbGUgcGFnZS4KPj4gV3JpdGUgb3BlcmF0aW9u IHdpbGwgYmUgZG9uZSB3aXRob3V0IHByb2JsZW0sIGJ1dCByZWFkIHdpbGwgdHJpZ2dlciBFQ0Mg ZXJyb3JzIGR1ZSB0byBicm9rZW4KPj4gRUNDIGNvZGVzLgo+Pgo+PiBJbiBnZW5lcmFsIHByb2Js ZW0gdGhhdCB3ZSBkaXNjdXNzIGlzIHRoYXQgaW4gY3VycmVudCBpbXBsZW1lbnRhdGlvbiBkYXRh IGFuZCBPT0IgY29uZmxpY3RzCj4+IHdpdGggZWFjaCBvdGhlciBieSBzaGFyaW5nIHNhbWUgRUND IGNvZGVzLCB0aGVzZSBFQ0MgY29kZXMgY291bGQgYmUgd3JpdHRlbiBvbmx5IG9uY2UgKHdpdGhv dXQKPj4gZXJhc2luZyksIHdoaWxlIGRhdGEgYW5kIE9PQiBoYXMgZGlmZmVyZW50IGNhbGxiYWNr cyB0byBhY2Nlc3MgYW5kIHRodXMgc3VwcG9zZWQgdG8gd29yawo+PiBzZXBhcmF0ZWx5Lgo+IAo+ IFRoZSBmYWN0IHRoYXQgdGhlcmUgbWlnaHQgYmUgaGVscGVycyBqdXN0IGZvciB3cml0aW5nIE9P QiBhcmVhcyBvciBqdXN0Cj4gaW4tYmFuZCBhcmVhcyBhcmUgb3B0aW1pemF0aW9ucy4gTkFORCBw YWdlcyBhcmUgbWVhbnQgdG8gYmUgd3JpdHRlbiBhCj4gc2luZ2xlIHRpbWUsIG5vIG1hdHRlciB3 aGF0IHBvcnRpb24geW91IHdyaXRlLiBJbiBzb21lIGNhc2VzLCBpdCBpcwo+IHBvc3NpYmxlIHRv IHBlcmZvcm0gc3VicGFnZSB3cml0ZXMgaWYgdGhlIGNoaXAgc3VwcG9ydHMgaXQuIFBhZ2VzIG1h eQo+IGJlIHNwbGl0IGludG8gc2V2ZXJhbCBhcmVhcyB3aGljaCBjb3ZlciBhIHBhcnRpYWwgaW4t YmFuZCBhcmVhICphbmQqIGEKPiBwYXJ0aWFsIE9PQiBhcmVhLiBJZiB5b3Ugd3JpdGUgaW50byB0 aGUgaW4tYmFuZCAqb3IqIG91dC1vZi1iYW5kIGFyZWFzCj4gb2YgYSBnaXZlbiBzdWJwYWdlLCB5 b3UgKmNhbm5vdCogd3JpdGUgdGhlIG90aGVyIHBhcnQgbGF0ZXIgd2l0aG91dAoKVGhhbmtzIGZv ciBkZXRhaWxzISBTbyBpbiBjYXNlIG9mIEpGRlMyIGl0IGxvb2tzIGxpa2Ugc3RyYW5nZSwgdGhh dCBpdCB0cmllcwp0byB3cml0ZSBwYWdlIGFmdGVyIHdyaXRpbmcgY2xlYW4gbWFya2VycyB0byBp dCBiZWZvcmU/IEluIHRoZSBvbGQgdmVuZG9yJ3MKZHJpdmVyIE9PQiB3cml0ZSBjYWxsYmFjayBp cyBzdXBwcmVzc2VkIGJ5IHJldHVybiAwIGFsd2F5cyBhbmQgSkZGUzIgd29ya3MKY29ycmVjdGx5 LgoKVGhhbmtzLCBBcnNlbml5Cgo+IGVyYXNpbmcuCj4gCj4gVGhhbmtzLAo+IE1pcXXDqGwKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpMaW51 eCBNVEQgZGlzY3Vzc2lvbiBtYWlsaW5nIGxpc3QKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcv bWFpbG1hbi9saXN0aW5mby9saW51eC1tdGQvCg==