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 CB40FCD1288 for ; Wed, 3 Apr 2024 08:07:13 +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:MIME-Version:References: 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=Svz5EYn2usEjaUTyme9dTqYLqWRH8vX8xJyz4LPF4d8=; b=odpTcH2KdUuNXb 9O3bhp/GnBuYK6eTdN5VHjRntGviNmuzxEsoP5JmUODBockWye58Nu1y5LfgTHmpUl7TeMt/Soe6t w+2X8ajTl3tFN2dB5hWOr0FBsUatQP8AlkTxVwpWqEM4gRCunv4vz0UNlk+V9NqDoHsEJ1fDuugZ+ Ui6yUFmvh2pFaZT4rSaPZoT768g7H5tPBanYgpLKf8jcvEwVudbLQNZOJnFxuADG4w/BhCEgbDu2R Eu7yU5q6ATFGNTnWvowoOjacCsOoTMy+1Cy00/NwXr4tsXXSDvJf5XAbHtlLdkCCw9m2Z0WdSGMdg 4UgksUAzfRMsnftUplwA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rrve5-0000000Ejum-02Hx; Wed, 03 Apr 2024 08:06:57 +0000 Received: from foss.arm.com ([217.140.110.172]) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rrvdi-0000000EjZk-210p for linux-arm-kernel@lists.infradead.org; Wed, 03 Apr 2024 08:06:51 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 6AECC1007; Wed, 3 Apr 2024 01:07:02 -0700 (PDT) Received: from pluto (unknown [172.31.20.19]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 5A9B03F7B4; Wed, 3 Apr 2024 01:06:29 -0700 (PDT) Date: Wed, 3 Apr 2024 09:06:26 +0100 From: Cristian Marussi To: Andy Shevchenko Cc: Peng Fan , "Peng Fan (OSS)" , Sudeep Holla , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Linus Walleij , Dan Carpenter , "linux-arm-kernel@lists.infradead.org" , "linux-kernel@vger.kernel.org" , "devicetree@vger.kernel.org" , "linux-gpio@vger.kernel.org" , Oleksii Moisieiev Subject: Re: [PATCH v6 3/4] firmware: arm_scmi: Add SCMI v3.2 pincontrol protocol basic support Message-ID: References: <20240323-pinctrl-scmi-v6-0-a895243257c0@nxp.com> <20240323-pinctrl-scmi-v6-3-a895243257c0@nxp.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240403_010635_656184_74072A6E X-CRM114-Status: GOOD ( 50.33 ) 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 T24gVHVlLCBBcHIgMDIsIDIwMjQgYXQgMDc6Mzk6NDRQTSArMDMwMCwgQW5keSBTaGV2Y2hlbmtv IHdyb3RlOgo+IE9uIFR1ZSwgQXByIDIsIDIwMjQgYXQgNjo1OOKAr1BNIENyaXN0aWFuIE1hcnVz c2kKPiA8Y3Jpc3RpYW4ubWFydXNzaUBhcm0uY29tPiB3cm90ZToKPiA+IE9uIFR1ZSwgQXByIDAy LCAyMDI0IGF0IDA0OjA2OjA2UE0gKzAzMDAsIEFuZHkgU2hldmNoZW5rbyB3cm90ZToKPiA+ID4g T24gVHVlLCBBcHIgMiwgMjAyNCBhdCAxMDo0OOKAr0FNIENyaXN0aWFuIE1hcnVzc2kKPiA+ID4g PGNyaXN0aWFuLm1hcnVzc2lAYXJtLmNvbT4gd3JvdGU6Cj4gPiA+ID4gT24gU3VuLCBNYXIgMzEs IDIwMjQgYXQgMDE6NDQ6MjhQTSArMDAwMCwgUGVuZyBGYW4gd3JvdGU6Cj4gPiA+ID4gPiA+IFNh dCwgTWFyIDIzLCAyMDI0IGF0IDA4OjE1OjE2UE0gKzA4MDAsIFBlbmcgRmFuIChPU1MpIGtpcmpv aXR0aToKPiAKPiAuLi4KPiAKPiA+ID4gPiA+ID4gPiArI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5o Pgo+ID4gPiA+ID4gPiA+ICsjaW5jbHVkZSA8bGludXgvc2NtaV9wcm90b2NvbC5oPgo+ID4gPiA+ ID4gPiA+ICsjaW5jbHVkZSA8bGludXgvc2xhYi5oPgo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiBU aGlzIGlzIHNlbWktcmFuZG9tIGxpc3Qgb2YgaGVhZGVycy4gUGxlYXNlLCBmb2xsb3cgSVdZVSBw cmluY2lwbGUgKGluY2x1ZGUKPiA+ID4gPiA+ID4gd2hhdCB5b3UgdXNlKS4gVGhlcmUgYXJlIGEg bG90IG9mIGluY2x1c2lvbnMgSSBzZWUgbWlzc2luZyAoanVzdCBpbiB0aGUgY29udGV4dCBvZgo+ ID4gPiA+ID4gPiB0aGlzIHBhZ2UgSSBzZWUgYml0cy5oLCB0eXBlcy5oLCBhbmQgIGFzbS9ieXRl b3JkZXIuaCkuCj4gPiA+ID4gPgo+ID4gPiA+ID4gSXMgdGhlcmUgYW55IGRvY3VtZW50YXRpb24g YWJvdXQgdGhpcyByZXF1aXJlbWVudD8KPiA+ID4gPiA+IFNvbWUgaGVhZGVycyBhcmUgYWxyZWFk eSBpbmNsdWRlZCBieSBvdGhlcnMuCj4gPiA+Cj4gPiA+IFRoZSBkb2N1bWVudGF0aW9uIGhlcmUg aXMgY2FsbGVkICJhIGNvbW1vbiBzZW5zZSIuCj4gPiA+IFRoZSBDIGxhbmd1YWdlIGlzIGJ1aWx0 IGxpa2UgdGhpcyBhbmQgd2UgZXhwZWN0IHRoYXQgbm9ib2R5IHdpbGwKPiA+ID4gaW52ZXN0IGlu dG8gdGhlIGRlcGVuZGVuY3kgaGVsbCB0aGF0IHdlIGhhdmUgYWxyZWFkeSwgdGhhdCdzIHdoeSBJ V1lVCj4gPiA+IHByaW5jaXBsZSwgcGxlYXNlIGZvbGxvdyBpdC4KPiA+Cj4gPiBZZXMsIGJ1dCBn aXZlbiB0aGF0IHdlIGhhdmUgYSBncm93aW5nIG51bWJlciBvZiBTQ01JIHByb3RvY29scyB0aGVy ZSBpcyBhCj4gPiBjb21tb24gbG9jYWwgcHJvdG9jb2xzLmggaGVhZGVyIHRvIGdyb3VwIGFsbCBp bmNsdWRlcyBuZWVkZWQgYnkgYW55Cj4gPiBwcm90b2NvbHM6IHRoZSBpZGVhIGJlaGluZCB0aGlz IChhbmQgdGhlIGRldm1fIHNhZ2EgZG93biBiZWxvdykgd2FzIHRvIGVhc2UKPiA+IGRldmVsb3Bt ZW50IG9mIHByb3RvY29scywgc2luY2UgdGhlcmUgYXJlIGxvdHMgb2YgdGhlbSBhbmQgZ3Jvd2lu ZywgZ2l2ZW4KPiA+IHRoZSBTQ01JIHNwZWMgaXMgZXh0ZW5zaWJsZS4KPiAKPiBZZXMsIGFuZCB3 aGF0IHlvdSBhcmUgZWZmZWN0aXZlbHkgc3VnZ2VzdGluZyBpczogIlRlY2huaWNhbCBkZWJ0PyBP aCwKPiBmaW5lLCB3ZSBkbyBub3QgY2FyZSEiIFRoaXMgaXMgbm90IGdvb2QuIEknbSBpbiBhIGxv bmcgdGVybSBvZgo+IGNsZWFuaW5nIHVwIHRoZSBkZXBlbmRlbmN5IGhlbGwgaW4gdGhlIGtlcm5l bCAobXkgbWFpbiBmb2N1cyBpcwo+IGtlcm5lbC5oIGZvciBub3cpIGFuZCBJIGFtIHRhbGtpbmcg ZnJvbSBteSBleHBlcmllbmNlLiBJIGRvIG5vdCBsaWtlCj4gd2hhdCBwZW9wbGUgYXJlIGRvaW5n IGluIDk1JSBvZiB0aGUgY29kZSwgdGhhdCdzIHdoeSBJIHJlYWxseSB3YW50IHRvCj4gc3RvcCB0 aGUgYmFkIHByYWN0aWNlcyBhcyBzb29uIGFzIHBvc3NpYmxlLgo+IAoKTm90IGF0IGFsbCwgdGhl IGFpbSB3YXMgZXhhY3RseSB0aGUgb3Bwb3NpdGUsIGF2b2lkaW5nIHRoYXQgc29tZSBwcm90b2Nv bApjb3VsZCBoYXZlIGJlZW4gd3JpdHRlbiB3aXRob3V0IGFsbCB0aGUgbmVlZGVkIGluY2x1ZGVz OiBzaW5jZSBhIGJhc2ljIHNldApvZiBoZWFkZXJzIGlzIGRlZmluaXRlbHkgY29tbW9uIHRvIGFu eSBwcm90b2NvbCB5b3UgbWF5IHRoaW5rIHRvIHdyaXRlLApncm91cGluZyBhbGwgdGhlcmUgd2Fz IG1lYW50IHRvIGF2b2lkIHRoaXMuLi5JIHRob3VnaHQgdGhhdCBieSBtb3ZpbmcgdGhlCnByb2Js ZW0gYXdheSBpbiBvbmUgc2luZ2xlIGludGVybmFsIGNvbW1vbiBoZWFkZXIgd2FzIGVhc2llciB0 byBtb25pdG9yLgoKSSBjZXJ0YWlubHkgbWF5YmUgd3JvbmcsIGJ1dCBJIGRvbnQgc2VlIGhvdyB5 b3UgY2FuIGRlZHVjZSBJIGRvbnQgY2FyZS4uLgoKLi4uYW5kIG1heWJlLCBvbmx5IG1heWJlLCB3 aGF0IHRoYXQgOTUlIG9mIHBlb3BsZSBpcyB0cnlpbmcgdG8gZG8gaW4gdGhlaXIKaG9ycmlibGUg Y29kZSBpcyB0byBkZWxpdmVyIHRoZSBiZXN0IHJlYXNvbmFibHkgcG9zc2libGUgdGhpbmcgd2l0 aGluIHRoZWlyCnRpbWVsaW5lIHdoaWxlIHlvdSBhcmUgYmFya2luZyBhdCB0aGVtIGluIGNoYXNl IG9mIG5ldmVyIHRvIGJlIHJlbGVhc2VkIHV0dGVyCnBlcmZlY3Rpb24uCgo+IExhc3QgdG8gYWRk LCBidXQgbm90IGxlYXN0IGlzIHRoYXQgeW91ciBjb2RlIG1heSBiZSB1c2VkIGFzIGFuIGV4YW1w bGUKPiBmb3Igb3RoZXJzLCBoZW5jZSB3ZSByZWFsbHkgaGF2ZSB0byBkbyBvdXIgYmVzdCBpbiBv cmRlciB0byBhdm9pZCBiYWQKPiBkZXNpZ24sIHByYWN0aWNlcywgYW5kIGNhcmdvIGN1bHRzLiBJ ZiB0aGlzIHJlcXVpcmVzIG1vcmUgcmVmYWN0b3JpbmcKPiBvZiB0aGUgZXhpc3RpbmcgY29kZSwg dGhlbiBkbyBpdCBzb29uZXIgdGhhbiBsYXRlci4KPiAKPiAuLi4KPiAKPiA+ID4gPiBBbmR5IG1h ZGUgKG1vc3RseSkgdGhlIHNhbWUgcmVtYXJrcyBvbiB0aGlzIHNhbWUgcGF0Y2ggfjEteWVhciBh Z28gb24KPiA+ID4gPiB0aGlzIHNhbWUgcGF0Y2ggd2hpbGUgaXQgd2FzIHBvc3RlZCBieSBPbGVr c2lpLgo+ID4gPiA+Cj4gPiA+ID4gQW5kIEkgdG9sZCB0aGF0IHRpbWUgdGhhdCBtb3N0IG9mIHRo ZSByZW1hcmtzIGFyb3VuZCBkZXZtXyB1c2FnZSB3ZXJlCj4gPiA+ID4gd3JvbmcgZHVlIHRvIGhv dyB0aGUgU0NNSSBjb3JlIGhhbmRsZXMgcHJvdG9jb2wgaW5pdGlhbGl6YXRpb24gKHVzaW5nIGEK PiA+ID4gPiBkZXZyZXMgZ3JvdXAgdHJhbnNwYXJlbnRseSkuCj4gPiA+ID4KPiA+ID4gPiBUaGlz IGlzIHdoYXQgSSBhbnN3ZXJlZCB0aGF0IHRpbWUuCj4gPiA+ID4KPiA+ID4gPiBodHRwczovL2xv cmUua2VybmVsLm9yZy9saW51eC1hcm0ta2VybmVsL1pKNzhoQmNqQWhpVStaQk9AZTEyMDkzNy1s aW4vI3QKPiA+ID4gPgo+ID4gPiA+IEkgd29udCByZXBlYXQgbXlzZWxmLCBidXQsIGluIGEgbnV0 c2hlbGwgdGhlIG1lbW9yeSBhbGxvY2F0aW9uIGxpa2UgaXQKPiA+ID4gPiBpcyBub3cgaXMgZmlu ZTogYSBiaXQgaGFwcGVucyB2aWEgZGV2bV8gYXQgcHJvdG9jb2wgaW5pdGlhbGl6YXRpb24sIHRo ZQo+ID4gPiA+IG90aGVyIGlzIGRvZSB2aWEgZXhwbGljaXQga21hbGxvYyBhdCBydW50aW1lIGFu ZCBmcmVlZCB2aWEga2ZyZWUgYXQKPiA+ID4gPiByZW1vdmUgdGltZSAoaWYgbmVlZGVkLi4uaS5l LiBjaGVja2luZyB0aGUgcHJlc2VudCBmbGFnIG9mIHNvbWUgc3RydWN0cykKPiA+ID4KPiA+ID4g VGhpcyBzb3VuZHMgbGlrZSBhIG1lc3MuIGRldm1fIGlzIGV4cGVjdGVkIHRvIGJlIHVzZWQgb25s eSBmb3IgdGhlCj4gPiA+IC0+cHJvYmUoKSBzdGFnZSwgb3RoZXJ3aXNlIHlvdSBtYXkgY29uc2lk ZXIgY2xlYW51cC5oIChfX2ZyZWUoKSBtYWNybykKPiA+ID4gdG8gaGF2ZSBhdXRvbWF0aWMgZnJl ZSBhdCB0aGUgcGF0aHMgd2hlcmUgbWVtb3J5IGlzIG5vdCBuZWVkZWQuCj4gPgo+ID4gSW5kZWVk LCB0aGlzIHByb3RvY29sX2luaXQgY29kZSBpcyBjYWxsZWQgYnkgdGhlIFNDTUkgY29yZSBvbmNl IGZvciBhbGwgd2hlbgo+ID4gYW4gU0NNSSBkcml2ZXIgdHJpZXMgYXQgZmlyc3QgdG8gdXNlIHRo aXMgc3BlY2lmaWMgcHJvdG9jb2wgYnkgJ2dldHRpbmcnIGl0cwo+ID4gcHJvdG9jb2xfb3BzLCBz byBpdCBpcyBpbmRlZWQgY2FsbGVkIGluc2lkZSB0aGUgcHJvYmUgY2hhaW4gb2YgdGhlIGRyaXZl cjoKPiA+IGF0IHRoaXMgcG9pbnQgeW91ICpjYW4qIGRlY2lkZSB0byB1c2UgZGV2cmVzIHRvIGFs bG9jYXRlIG1lbW9yeSBhbmQgYmUgYXNzdXJlZAo+ID4gdGhhdCBpZiB0aGUgaW5pdCBmYWlscywg b3Igd2hlbiB0aGUgZHJpdmVyIGNlYXNlIHRvIHVzZSB0aGlzIHByb3RvY29sIChjYWxsaW5nCj4g PiBpdHMgcmVtb3ZlKCkpIGFuZCBubyBvdGhlciBkcml2ZXIgaXMgdXNpbmcgaXQsIGFsbCB0aGUg c3R1ZmYgdGhhdCBoYXZlIGJlZW4KPiA+IGFsbG9jYXRlZCByZWxhdGVkIHRvIHRoaXMgcHJvdG9j b2wgd2lsbCBiZSByZWxlYXNlZCBieSB0aGUgY29yZSBmb3IgeW91Lgo+ID4gKHVzaW5nIGFuIGlu dGVybmFsIGRldnJlcyBncm91cCkKPiA+Cj4gPiBXaXRob3V0IHRoaXMgeW91IHNob3VsZCBoYW5k bGUgbWFudWFsbHkgYWxsIHRoZSBkZWFsbG9jYXRpb24gbWFudWFsbHkgb24KPiA+IHRoZSBpbml0 IGVycm9yLXBhdGhzIEFORCBhbHNvIHByb3ZpZGUgYWxsIHRoZSBjbGVhbnVwIGV4cGxpY2l0bHkg d2hlbgo+ID4gdGhlIHByb3RvY29sIGlzIG5vIG1vcmUgdXNlZCBieSBhbnkgZHJpdmVyIChtdWx0 aXBsZSB1c2VycyBvZiB0aGUgc2FtZQo+ID4gcHJvdG9jb2wgaW5zdGFuY2UgYXJlIHBvc3NpYmxl KS4uLmZvciBhbGwgcHJvdG9jb2xzLgo+IAo+IFllcy4gSXMgaXQgYSBwcm9ibGVtPwo+IAoKV2Vs bCwgbm8sIGJ1dCBpcyBpdCBub3QgYSByZXBldGl0aXZlIGFuZCBlcnJvci1wcm9uZSBwcm9jZXNz ID8KSXMgaXQgbm90IHRoZSBleGFjdCByZWFzb24gd2h5IGRldnJlcyBtYW5hZ2VtZW50IGV4aXN0 IGluIGZpcnN0IHBsYWNlLCB0byBhdm9pZApyZXBldGl0aXZlIG1hbnVhbCBhbGxvYy9mcmVlIG9m IHJlc291cmNlcyBhbmQgcmVsYXRlZCBwaXRmYWxscyA/IChldmVuIHRob3VnaApjZXJ0YWlubHkg aXQgaXMgbm9ybWFsbHkgdXNlZCBpbiBhIG1vcmUgY29udmVudGlvbmFsIGFuZCBzdHJhaWdodGZv cndhcmQgd2F5KQoKVGhlIGlkZWEgd2FzIHRvIGdpdmUgc29tZSBzb3J0IG9mIGFpZCBpbiB0aGUg U0NNSSBzdGFjayBmb3Igd3JpdGluZyBwcm90b2NvbHMsCnNvIHJlZ2FyZGluZyBtZW1fbWdtdCwg SSBqdXN0IGJ1aWx0IG9uIHRvcCBvZiBkZXZyZXMgZmFjaWxpdGllcywgbm90IGludmVudGVkCmFu eXRoaW5nLCB0byB0cnkgdG8gYXZvaWQgcmVwZXRpdGlvbnMgYW5kIGxldCB0aGUgY29yZSBoYW5k bGUgbWVtIGFsbG9jcy9mcmVlCmR1cmluZyB0aGUgcHJvYmUgcGhhc2VzIGFzIG11Y2ggYXMgcG9z c2libGU6IGluIHBpbmN0cmwgY2FzZSB3b3VsZCBiZQpwYXJ0aWN1bGFybHkgdHJpdmlhbCB0byBp bnN0ZWFkIG1hbnVhbGx5IGFsbG9jYXRlIHN0dWZmIGF0IGluaXQgKGR1ZSB0byBtYW55Cmxhenkg ZGVsYXllZCBhbGxvY2F0aW9ucykgYnV0IG90aGVyIHByb3RvY29scyBuZWVkIGEgbG90IG1vcmUg dG8gYmUgZG9uZSBhdCBpbml0LApmcmVxdWVudGx5IGluIGEgbG9vcCB0byBhbGxvY2F0ZSBtdWx0 aXBsZSByZXNvdXJjZXMgZGVzY3JpcHRvcnMsIGFuZCBtYW51YWxseQp1bmRvaW5nIGFsbCBvZiB0 aGF0IG9uIGVhY2ggZXJyb3ItcGF0aCBhbmQgb24gY2xlYW51cCBpcyBkZWZpbml0ZWx5IGVycm9y LXByb25lCmFuZCBhIHBhaW4uCgpMYXN0IGJ1dCBub3QgbGVhc3QsIHRoaXMgd2hvbGUgdGhpbmcg d2FzIGRlc2lnbmVkIHRvIGFkZHJlc3MgdGhlIG5lZWRzIG9mIHRoZQpwcm90b2NvbHMgdGhhdCBl eGlzdGVkIGF0IHRoYXQgdGltZS4uLi5pdCBpcyBvbmx5IG5vdyB3aXRoIHBpbmN0cmwgbGF6eS1h bGxvY2F0aW9ucwphdCBydW50aW1lIHRoYXQgdGhlIHVnbHkgY29oZXhpc3RlbmNlIG9mIGRldm1f IGFuZCBub24tZGV2bSBhbGxvY2F0aW9ucyBiZWNhbWUgYQp0aGluZy4uLi5zbyBjbGVhcmx5IHRo ZSB0aGluZyBuZWVkcyB0byBiZSBpbXByb3ZlZC9yZXRoaW5rZWQuLi5ldmVuIGRyb3BwZWQgaWYg bm8KbW9yZSBmaXR0aW5nLi4uCgouLi4gb3IgYWx0ZXJuYXRpdmVseSBzaW5jZSBkZXZyZXMgYWxs b2NhdGlvbnMgYXJlIGFueXdheSBvcHRpb25hbCwgeW91IGNvdWxkIGp1c3QKdXNlIHJlZ3VsYXIg a21hbGxvYy9rZnJlZSBmb3IgdGhpcyBwcm90b2NvbCBhbmQgYXZvaWQgdGhpcyBkdWFsIGhhbmRs aW5nLi4uCgouLi50aGlzIHdhcyBqdXN0IHRvIHB1dCB0aGluZ3MgaW4gY29udGV4dC4uLmFuZCBJ J2xsIGhhcHBpbHkgbGV0IFN1ZGVlcCBkZWNpZGUKd2hhdCBoZSBwcmVmZXJzIGluIHRoZSBpbW1l ZGlhdGUgZm9yIHBpbmN0cmwgb3IgbW9yZSBpbiBnZW5lcmFsIGFib3V0IGFsbCB0aGUKc2NtaSBk ZXZyZXMsIHRoYXQgSSd2ZSBnb3QgZW5vdWdoIG9mIHRoZXNlIHBsZWFzYW50IGludGVyYWN0aW9u cyBmb3Igbm93Li4uCgpUaGFua3MsCkNyaXN0aWFuCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51 eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5v cmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==