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 9DCF7C47DDF for ; Tue, 30 Jan 2024 11:02:24 +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=6pQDAeYPUTx1uxhTd0guPJm4SHBT8jmaX1hIr8iHyHQ=; b=eZToHeQMbqDioi G1I6G23AyobrnhZ1Flp4lUuSiUfOdph+voexhi8JvJ9y02Z8CX9Q/pBsK86+Swek3+99Qt6BTZAo/ UZ/QlDZfBDUUzte4v74Z+Uvr8HMsCM3Qg3BzzGNL4uymH5YGz8MxKrgUKUbpadsJL1KTsxZk1fJuC BMgUCduX6Hh4gY2HWwsg3wM+iHa4lOpO4IhFTSz9kVNOc9OJio6/OSydBBR9TCu+MG8lAY+Pk4wOo xZd6Z56JG3qA/brmGUckpnUMS0H/L3/ah36TOqnSSPJzOS76zEGJ8mXokzENDYL9etonMQOHCA+P1 Dld7v2u9/kFWl0AqJsug==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rUlsU-0000000GJcW-2pF5; Tue, 30 Jan 2024 11:02:06 +0000 Received: from relay3-d.mail.gandi.net ([217.70.183.195]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1rUlsS-0000000GJYy-1SaO; Tue, 30 Jan 2024 11:02:05 +0000 Received: by mail.gandi.net (Postfix) with ESMTPSA id 4360560008; Tue, 30 Jan 2024 11:01:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1706612518; 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=U9iIqWPJOvOxFNmco/tQN2cBcwAteDC+6FjG3AbiQ0w=; b=SCuEmcvTO4sAv3vjTrjHFNeiJd6+2mLOResDSiDhowBL/TjggEhVsOqBneym/CLb/FsFNs Mkgqr1ONhI5tAIHBjfR2Hi2vErxfoWY1ckd3ipWhlTuFb8tzUSLzbm+13VSQqk/S1LD7Vj iOrMuD+Hl5tPXxmI5K3wfc3D8vwUNRTF9lJMJezIFyx953CAakvTCnrOOzYUAlFGxu5dVH KnLmvmOTWrKulYJraILGznAGCH6SAjvHND2JPUhOCvfjH56UYG/yxzHVMClvdyzK6maFP3 FyhRXH79eO2J/X0ckc3u+FqTGC8Z7qZvtmZkrp8N4lNYS0SgxW/rBT4a3Fbg+w== Date: Tue, 30 Jan 2024 12:01:55 +0100 From: Miquel Raynal To: William Zhang Cc: David Regan , dregan@mail.com, Richard Weinberger , Vignesh Raghavendra , robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org, computersforpeace@gmail.com, kdasu.kdev@gmail.com, linux-mtd@lists.infradead.org, devicetree@vger.kernel.org, Linux Kernel Mailing List , Joel Peshkin , Tomer Yacoby , Dan Beygelman , Anand Gore , Kursad Oney , Florian Fainelli , rafal@milecki.pl, bcm-kernel-feedback-list@broadcom.com, andre.przywara@arm.com, baruch@tkos.co.il, linux-arm-kernel@lists.infradead.org, Dan Carpenter Subject: Re: [PATCH v3 10/10] mtd: rawnand: brcmnand: allow for on-die ecc Message-ID: <20240130120155.3cb6feed@xps-13> In-Reply-To: <2a3edcf5-7afc-410c-a402-3d8cd3feb1da@broadcom.com> References: <20240124030458.98408-1-dregan@broadcom.com> <20240124030458.98408-11-dregan@broadcom.com> <20240124184027.712b1e47@xps-13> <20240126071913.699c3795@xps-13> <20240129115228.06dc2292@xps-13> <2a3edcf5-7afc-410c-a402-3d8cd3feb1da@broadcom.com> Organization: Bootlin X-Mailer: Claws Mail 4.0.0 (GTK+ 3.24.33; x86_64-pc-linux-gnu) MIME-Version: 1.0 X-GND-Sasl: miquel.raynal@bootlin.com X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240130_030204_834225_B6900052 X-CRM114-Status: GOOD ( 45.60 ) 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: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org SGkgV2lsbGlhbSwKCndpbGxpYW0uemhhbmdAYnJvYWRjb20uY29tIHdyb3RlIG9uIFR1ZSwgMzAg SmFuIDIwMjQgMDA6MTE6MzIgLTA4MDA6Cgo+IEhpIE1pcXVlbCwKPiAKPiBPbiAxLzI5LzI0IDAy OjUyLCBNaXF1ZWwgUmF5bmFsIHdyb3RlOgo+ID4gSGkgRGF2aWQsCj4gPiAKPiA+IGRyZWdhbkBi cm9hZGNvbS5jb20gd3JvdGUgb24gRnJpLCAyNiBKYW4gMjAyNCAxMTo1NzozOSAtMDgwMDoKPiA+ ICAgCj4gPj4gSGkgTWlxdcOobCwKPiA+Pgo+ID4+IE9uIFRodSwgSmFuIDI1LCAyMDI0IGF0IDEw OjE54oCvUE0gTWlxdWVsIFJheW5hbAo+ID4+IDxtaXF1ZWwucmF5bmFsQGJvb3RsaW4uY29tPiB3 cm90ZTogIAo+ID4+Pgo+ID4+PiBIaSBEYXZpZCwKPiA+Pj4KPiA+Pj4gZHJlZ2FuQGJyb2FkY29t LmNvbSB3cm90ZSBvbiBUaHUsIDI1IEphbiAyMDI0IDExOjQ3OjQ2IC0wODAwOiAgCj4gPj4+ICAg Pj4+PiBIaSBNaXF1w6hsLCAgCj4gPj4+Pgo+ID4+Pj4gT24gV2VkLCBKYW4gMjQsIDIwMjQgYXQg OTo0MOKAr0FNIE1pcXVlbCBSYXluYWwgPG1pcXVlbC5yYXluYWxAYm9vdGxpbi5jb20+IHdyb3Rl OiAgCj4gPj4+Pj4KPiA+Pj4+PiBIaSBEYXZpZCwKPiA+Pj4+Pgo+ID4+Pj4+IGRyZWdhbkBicm9h ZGNvbS5jb20gd3JvdGUgb24gVHVlLCAyMyBKYW4gMjAyNCAxOTowNDo1OCAtMDgwMDogIAo+ID4+ Pj4+ICAgPj4+Pj4+IEFsbG93IHNldHRpbmdzIGZvciBvbi1kaWUgZWNjIHN1Y2ggdGhhdCBpZiBv bi1kaWUgRUNDIGlzIHNlbGVjdGVkICAKPiA+Pj4+Pj4gZG9uJ3QgZXJyb3Igb3V0IGJ1dCByZXF1 aXJlIEVDQyBzdHJhcCBzZXR0aW5nIG9mIHplcm8KPiA+Pj4+Pj4KPiA+Pj4+Pj4gU2lnbmVkLW9m Zi1ieTogRGF2aWQgUmVnYW4gPGRyZWdhbkBicm9hZGNvbS5jb20+Cj4gPj4+Pj4+IFJldmlld2Vk LWJ5OiBXaWxsaWFtIFpoYW5nIDx3aWxsaWFtLnpoYW5nQGJyb2FkY29tLmNvbT4KPiA+Pj4+Pj4g LS0tCj4gPj4+Pj4+IENoYW5nZXMgaW4gdjM6IE5vbmUKPiA+Pj4+Pj4gLS0tCj4gPj4+Pj4+IENo YW5nZXMgaW4gdjI6Cj4gPj4+Pj4+IC0gQWRkZWQgdG8gcGF0Y2ggc2VyaWVzCj4gPj4+Pj4+IC0t LQo+ID4+Pj4+PiAgIGRyaXZlcnMvbXRkL25hbmQvcmF3L2JyY21uYW5kL2JyY21uYW5kLmMgfCAx NCArKysrKysrKysrLS0tLQo+ID4+Pj4+PiAgIDEgZmlsZSBjaGFuZ2VkLCAxMCBpbnNlcnRpb25z KCspLCA0IGRlbGV0aW9ucygtKQo+ID4+Pj4+Pgo+ID4+Pj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9tdGQvbmFuZC9yYXcvYnJjbW5hbmQvYnJjbW5hbmQuYyBiL2RyaXZlcnMvbXRkL25hbmQvcmF3 L2JyY21uYW5kL2JyY21uYW5kLmMKPiA+Pj4+Pj4gaW5kZXggYTRlMzExYjY3OThjLi40MjUyNmYz MjUwYzkgMTAwNjQ0Cj4gPj4+Pj4+IC0tLSBhL2RyaXZlcnMvbXRkL25hbmQvcmF3L2JyY21uYW5k L2JyY21uYW5kLmMKPiA+Pj4+Pj4gKysrIGIvZHJpdmVycy9tdGQvbmFuZC9yYXcvYnJjbW5hbmQv YnJjbW5hbmQuYwo+ID4+Pj4+PiBAQCAtMjcyNyw5ICsyNzI3LDExIEBAIHN0YXRpYyBpbnQgYnJj bW5hbmRfc2V0dXBfZGV2KHN0cnVjdCBicmNtbmFuZF9ob3N0ICpob3N0KQo+ID4+Pj4+PiAgICAg ICAgY2ZnLT5ibGtfYWRyX2J5dGVzID0gZ2V0X2Jsa19hZHJfYnl0ZXMobXRkLT5zaXplLCBtdGQt PndyaXRlc2l6ZSk7Cj4gPj4+Pj4+Cj4gPj4+Pj4+ICAgICAgICBpZiAoY2hpcC0+ZWNjLmVuZ2lu ZV90eXBlICE9IE5BTkRfRUNDX0VOR0lORV9UWVBFX09OX0hPU1QpIHsKPiA+Pj4+Pj4gLSAgICAg ICAgICAgICBkZXZfZXJyKGN0cmwtPmRldiwgIm9ubHkgSFcgRUNDIHN1cHBvcnRlZDsgc2VsZWN0 ZWQ6ICVkXG4iLAo+ID4+Pj4+PiAtICAgICAgICAgICAgICAgICAgICAgY2hpcC0+ZWNjLmVuZ2lu ZV90eXBlKTsKPiA+Pj4+Pj4gLSAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKPiA+Pj4+Pj4g KyAgICAgICAgICAgICBpZiAoY2hpcC0+ZWNjLnN0cmVuZ3RoKSB7Cj4gPj4+Pj4+ICsgICAgICAg ICAgICAgICAgICAgICBkZXZfZXJyKGN0cmwtPmRldiwgIkVSUk9SISEhIEhXIEVDQyBtdXN0IGJl IHNldCB0byB6ZXJvIGZvciBub24taGFyZHdhcmUgRUNDOyBzZWxlY3RlZDogJWRcbiIsCj4gPj4+ Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaXAtPmVjYy5zdHJlbmd0aCk7ICAK PiA+Pj4+Pgo+ID4+Pj4+IENhbiB5b3UgdXNlIGEgbW9yZSBmb3JtYWwgc3RyaW5nPyBBbHNvIGNs YXJpZnkgaXQgYmVjYXVzZSBJIGRvbid0Cj4gPj4+Pj4gcmVhbGx5IHVuZGVyc3RhbmQgd2hhdCBp dCBsZWFkcyB0by4gIAo+ID4+Pj4KPiA+Pj4+IEhvdyBhYm91dDoKPiA+Pj4+Cj4gPj4+PiBkZXZf ZXJyKGN0cmwtPmRldiwgIkhXIEVDQyBzZXQgdG8gJWQsIG11c3QgYmUgemVybyBmb3Igb24tZGll IEVDQ1xuIiwgIAo+ID4+Pgo+ID4+PiBBY3R1YWxseSBJIGFtIHdvbmRlcmluZyBob3cgbGVnaXRp bWF0ZSB0aGlzIGlzLiBKdXN0IGRvbid0IGVuYWJsZSB0aGUKPiA+Pj4gb24gaG9zdCBFQ0MgZW5n aW5lIGlmIGl0J3Mgbm90IGluIHVzZS4gTm8gbmVlZCB0byBjaGVjayB0aGUgY29yZSdzCj4gPj4+ IGNob2ljZS4gIAo+ID4+Cj4gPj4gT3VyIGNoaXAgRUNDIGVuZ2luZSB3aWxsIGVpdGhlciBiZSBv biBpZiBpdCdzIG5lZWRlZCBvciBvZmYgaWYgaXQncyBub3QuCj4gPj4gRWl0aGVyIEkgY2FuIGRv IHRoYXQgaW4gb25lIHBsYWNlIG9yIHB1dCBjaGVja3MgaW4gYmVmb3JlIGVhY2gKPiA+PiByZWFk L3dyaXRlIHRvIHR1cm4gb24vb2ZmIHRoZSBFQ0MgZW5naW5lLCB3aGljaCBzZWVtcyBhIGxvdCBt b3JlCj4gPj4gd29yayBhbmQgY2hhbmdlcyBhbmQgcG9zc2libGUgaXNzdWVzL3Byb2JsZW1zLgo+ ID4+IFR1cm5pbmcgaXQgb24vb2ZmIGFzIG5lZWRlZCBoYXMgbm90IGJlZW4gZXhwbGljaXRseSB0 ZXN0ZWQgYW5kCj4gPj4gY291bGQgY2F1c2UgdW5mb3Jlc2VlbiBjb25zZXF1ZW5jZXMuIFRoaXMK PiA+PiBpcyBhIG1pbmltYWwgY2hhbmdlIHdoaWNoIHNob3VsZCBoYXZlIG1pbmltYWwgaW1wYWN0 Lgo+ID4+ICAKPiA+Pj4gICA+Pj4+ICAgPj4+Pj4gICA+Pj4+Pj4gKyAgICAgICAgICAgICAgICAg ICAgIHJldHVybiAtRUlOVkFMOyAgCj4gPj4+Pj4+ICsgICAgICAgICAgICAgfQo+ID4+Pj4+PiAg ICAgICAgfQo+ID4+Pj4+Pgo+ID4+Pj4+PiAgICAgICAgaWYgKGNoaXAtPmVjYy5hbGdvID09IE5B TkRfRUNDX0FMR09fVU5LTk9XTikgewo+ID4+Pj4+PiBAQCAtMjc5Nyw3ICsyNzk5LDExIEBAIHN0 YXRpYyBpbnQgYnJjbW5hbmRfc2V0dXBfZGV2KHN0cnVjdCBicmNtbmFuZF9ob3N0ICpob3N0KQo+ ID4+Pj4+PiAgICAgICAgaWYgKHJldCkKPiA+Pj4+Pj4gICAgICAgICAgICAgICAgcmV0dXJuIHJl dDsKPiA+Pj4+Pj4KPiA+Pj4+Pj4gLSAgICAgYnJjbW5hbmRfc2V0X2VjY19lbmFibGVkKGhvc3Qs IDEpOwo+ID4+Pj4+PiArICAgICBpZiAoY2hpcC0+ZWNjLmVuZ2luZV90eXBlID09IE5BTkRfRUND X0VOR0lORV9UWVBFX09OX0RJRSkgewo+ID4+Pj4+PiArICAgICAgICAgICAgIGRldl9kYmcoY3Ry bC0+ZGV2LCAiRGlzYWJsZSBIVyBFQ0MgZm9yIG9uLWRpZSBFQ0NcbiIpOyAgCj4gPj4+Pj4KPiA+ Pj4+PiBOb3QgbmVlZGVkLiAgCj4gPj4+Pgo+ID4+Pj4gV2lsbCByZW1vdmUuICAKPiA+Pj4+ICAg Pj4+Pj4gICA+Pj4+Pj4gKyAgICAgICAgICAgICBicmNtbmFuZF9zZXRfZWNjX2VuYWJsZWQoaG9z dCwgMCk7ICAKPiA+Pj4+Pj4gKyAgICAgfSBlbHNlCj4gPj4+Pj4+ICsgICAgICAgICAgICAgYnJj bW5hbmRfc2V0X2VjY19lbmFibGVkKGhvc3QsIDEpOyAgCj4gPj4+Pj4KPiA+Pj4+PiBTdHlsZSBp cyB3cm9uZywgYnV0IG90aGVyd2lzZSBJIHRoaW5rIEVDQyBzaG91bGQgYmUga2VwdCBkaXNhYmxl ZCB3aGlsZQo+ID4+Pj4+IG5vdCBpbiBhY3RpdmUgdXNlLCBzbyBJIGFtIGEgYml0IHN1cnByaXNl ZCBieSB0aGlzIGxpbmUuICAKPiA+Pj4+Cj4gPj4+PiBUaGlzIGlzIGEgZG91YmxlIGNoZWNrIHRv IHR1cm4gb24vb2ZmIG91ciBoYXJkd2FyZSBFQ0MuICAKPiA+Pj4KPiA+Pj4gSSBleHBlY3QgdGhl IGVuZ2luZSB0byBiZSBhbHdheXMgZGlzYWJsZWQuIEVuYWJsZSBpdCBvbmx5IHdoZW4geW91Cj4g Pj4+IG5lZWQgKG1heSByZXF1aXJlIGFuIGFkZGl0aW9uYWwgcGF0Y2ggYmVmb3JlIHRoaXMgb25l KS4gIAo+ID4+Cj4gPj4gV2UgYXJlIGFscmVhZHkgdHVybmluZyBvbiB0aGUgRUNDIGVuYWJsZSBh dCB0aGlzIHBvaW50LAo+ID4+IHRoaXMgaXMganVzdCBhZGRpbmcgdGhlIG9wdGlvbiB0byB0dXJu IGl0IG9mZiBpZiB0aGUgTkFORCBjaGlwCj4gPj4gaXRzZWxmIHdpbGwgYmUgZG9pbmcgdGhlIEVD QyBpbnN0ZWFkIG9mIG91ciBjb250cm9sbGVyLiAgCj4gPiAKPiA+IFNvcnJ5IGlmIEkgaGF2ZSBu b3QgYmVlbiBjbGVhci4KPiA+IAo+ID4gVGhpcyBzZXF1ZW5jZToKPiA+IC0gaW5pdAo+ID4gLSBl bmFibGUgaHcgRUNDIGVuZ2luZQo+ID4gSXMgYnJva2VuLgo+ID4gICAKPiBFQ0MgZW5naW5lIGlz IG5vdCBlbmFibGVkIGZvciBhbGwgdGhlIGNhc2VzLiBIZXJlIHdlIG9ubHkgaW50ZW5kZWQgdG8g ZW5hYmxlIGl0IGZvciB0aGUgbmFuZCBjaGlwIHRoYXQgaXMgc2V0IHRvIHVzZSBOQU5EX0VDQ19F TkdJTkVfVFlQRV9PTl9IT1NULiBUaGUgbG9naWMgaGVyZSBzaG91bGQgYmV0dGVyIGNoYW5nZSB0 bzoKPiBpZiAoY2hpcC0+ZWNjLmVuZ2luZV90eXBlID09IE5BTkRfRUNDX0VOR0lORV9UWVBFX09O X0hPU1QpCj4gICAgICBicmNtbmFuZF9zZXRfZWNjX2VuYWJsZWQoaG9zdCwgMSk7Cj4gZWxzZQo+ ICAgICAgYnJjbW5hbmRfc2V0X2VjY19lbmFibGVkKGhvc3QsIDApOwo+IAo+ID4gSXQgKmNhbm5v dCogd29yayBhcyBhbnkgb3BlcmF0aW9uIGdvaW5nIHRocm91Z2ggZXhlY19vcCBub3cgbWF5Cj4g PiBwZXJmb3JtIHBhZ2UgcmVhZHMgd2hpY2ggc2hvdWxkIGJlIHVubW9kaWZpZWQgYnkgdGhlIEVD QyBlbmdpbmUuIFlvdSA+IGRyaXZlciAqbXVzdCogZm9sbG93IHRoZSBmb2xsb3dpbmcgc2VxdWVu Y2U6Cj4gPiAtIGluaXQgYW5kIGRpc2FibGUgKG9yIGtlZXAgZGlzYWJsZWQpIHRoZSBodyBFQ0Mg ZW5naW5lCj4gPiAtIHdoZW4geW91IHBlcmZvcm0gYSBwYWdlIG9wZXJhdGlvbiB3aXRoIGNvcnJl Y3Rpb24geW91IG5lZWQgdG8KPiA+IAktIGVuYWJsZSB0aGUgZW5naW5lCj4gPiAJLSBwZXJmb3Jt IHRoZSBvcGVyYXRpb24KPiA+IAktIGRpc2FibGUgdGhlIGVuZ2luZQo+ID4gTWF5YmUgSSBhbSBt aXNzaW5nIHNvbWV0aGluZyBoZXJlIGJ1dCBhcmUgeW91IHNheWluZyB0aGUgZXhlY19vcCBjYW4g aGF2ZSBkaWZmZXJlbnQgZWNjIHR5cGUgZm9yIHBhZ2UgcmVhZC93cml0ZSBhdCBydW4gdGltZSBv biB0aGUgc2FtZSBuYW5kIGNoaXA/IEkgZG9uJ3Qgc2VlIHRoZSBvcCBpbnN0ciBzdHJ1Y3R1cmUg aGFzIHRoZSBlY2MgdHlwZSBmaWVsZCBhbmQgdGhvdWdodCBpdCBpcyBvbmx5IGJpbmQgdG8gdGhl IG5hbmQgY2hpcCBhbmQgd29uJ3QgY2hhbmdlIGF0IHJ1biB0aW1lLiBTbyBsb29rcyB0byBtZSB0 aGUgaW5pdCB0aW1lIHNldHRpbmcgdG8gdGhlIGVuZ2luZSBiYXNlZCBvbiBlY2MuZW5naW5lX3R5 cGUgc2hvdWxkIGJlIHN1ZmZpY2llbnQuICAKPiAKPiBXaGF0IHlvdSBkZXNjcmliZWQgaGVyZSBj YW4gd29yayBmb3IgdGhlIGh3LmVjYyByZWFkIHBhdGggKGVjYy5yZWFkX3BhZ2UgPSBicmNtbmFu ZF9yZWFkX3BhZ2UpIHdoaWNoIGFsd2F5cyBhc3N1bWVzIGVjYyBpcyBlbmFibGVkLiBBbHRob3Vn aCBpdCBpcyBwcm9iYWJseSBub3QgdG9vIGJhZCB3aXRoIHRoZXNlIHR3byBleHRyYSBvcGVyYXRp b24sIGl0IHdvdWxkIGJlIGJldHRlciBpZiB3ZSBkb24ndCBoYXZlIHRvIGFkZCBhbnl0aGluZyBh cyBvdXIgY3VycmVudCBjb2RlIGRvZXMuIEZvciB0aGUgYnJjbW5hbmRfcmVhZF9wYWdlX3Jhdywg IHdlIGN1cnJlbnRseSBkaXNhYmxlIHRoZSBlbmdpbmUgYW5kIHRoZW4gcmUtZW5hYmxlIGl0KGJ1 dCB3ZSBuZWVkIHRvIGZpeCBpdCB0byBvbmx5IGVuYWJsZSBpdCB3aXRoIGh3IGVjYyBlbmdpbmUg dHlwZSkuICBTbyBpdCBpcyBqdXN0IG9wcG9zaXRlIG9mIHlvdSBsb2dpYyBidXQgd29ya3MgdGhl IHNhbWUgd2l0aCBubyBpbXBhY3Qgb24gdGhlIG1vc3QgcGVyZm9ybWFuY2UgY3JpdGljYWwgcGF0 aC4KClRoaXMgaXMgbm90ICJteSIgbG9naWMsIHRoaXMgaXMgdGhlICJjb3JlJ3MiIGxvZ2ljLiBJ IGFtIHNheWluZzogeW91cgphcHByb2FjaCBpcyBicm9rZW4gYmVjYXVzZSB0aGF0IGlzIG5vdCBo b3cgdGhlIEFQSSBpcyBzdXBwb3NlZCB0byB3b3JrLApidXQgaXQgbW9zdGx5IHdvcmtzIGluIHRo ZSBzdGFuZGFyZCBjYXNlLgoKVGhhbmtzLApNaXF1w6hsCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdAps aW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVh ZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==