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 2638CE8FDDB for ; Wed, 4 Oct 2023 08:35:52 +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:To:Subject:Message-ID:Date:From: In-Reply-To:References:MIME-Version:Reply-To:Cc:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Owner; bh=xXylnLw97R/akvPFh3sxOWHBctZZrqNkudnUKjnhXAs=; b=hmHrMCvzFI1k6fGiym8mrWizcR b6xVewWfmbOze6clPrk/Y72yVcCFOblTg7z5d0VSCsJojUeguoEFWXN/nnVRj+KKJQUrIeSYXk9vo v05RUHADTt/sWj/dReG67y9zRlmoCS+Qn0CUu7+gYoi1fBIg5R2aX3L60TyxCURArn5QavFwWRG9A Tp7T5F4fUSOne/fMRU0PSySxsBxj6vohfakqh96coxCfpIuk+Eke0lcJ7AMSqJ2hH72APGFip1Uzq u/0aAWm1OZOnhHyAcOigyBL9s32F337paTGkkRawe3omKCfetdUiroiT5qK6Sf0zjVeu05Osryta1 TKHMoevw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qnxLn-00GrLN-1w; Wed, 04 Oct 2023 08:35:23 +0000 Received: from mail-yw1-x1136.google.com ([2607:f8b0:4864:20::1136]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qnxLj-00GrJ8-13 for linux-arm-kernel@lists.infradead.org; Wed, 04 Oct 2023 08:35:22 +0000 Received: by mail-yw1-x1136.google.com with SMTP id 00721157ae682-5a2478862dbso22660827b3.2 for ; Wed, 04 Oct 2023 01:35:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1696408517; x=1697013317; darn=lists.infradead.org; h=content-transfer-encoding:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=V9Pvz5wjW4nQEQ8U042AuTMhwGm2vJJWl+JdrrFRANE=; b=iQ7+k2O8qnKIdtaqnVwIIYZauFHeO7x7SH2ilFQjrbkSqtcsdsfLaoSkTlxdfC24aI Y+gt0IWNHsguKRL9QDjX4Z3Kqaure8OURuaaLl9HtnBmKWb6ipWXRe8THhEWIZGPdwHP oplCfZ3t2zpHUb6gZkWBAtQG4b+p4lTrxiJCnxDKre/1omAa+mO2K77gDZON34I+U7cp z5wl04f/MFi1F6ZUl63tve8h+FLfgwVN5ua2W8rzgC7Unmfx5oLenBN44iZOtlb5rRSh 1epR0F9qjQOGa6kP5pepCgYShIN1aPnnEK8FJBpDZIfycW4swByhRdz5UqCvRSwmWe3X LbYg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696408517; x=1697013317; h=content-transfer-encoding:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=V9Pvz5wjW4nQEQ8U042AuTMhwGm2vJJWl+JdrrFRANE=; b=UgtVtoDQy3Ndd8ZU9yGpjhQBONu7EGbK9ymWE9FZEBtuKO3YkPsL14k9IWjgmW0C2n LlX/ZQ45MC+AHYZ/kFAnoFVJSlkrksr85SNsNnZddi/+VrhuqezHpQO+PgqTSBQNKNDy HBvMdAl6r19AL414B6YmmTp4UgRzbMphLMoFOBXzyvbfuqaopNFfuG9IWv3jknR2tHfD 0q9fSQG6jU6Uurjjwm6tPwXepW8jdp60MgCe/7kPl/hfD0Dg1vLcSZLwkZ8NmIZMbVuU 9T7frlr/ks4y6l3N/tzpbQqat2ayW9+Q2LLgIECH4TK9Gxw8DuCkzSG6Iotzhu3Kr0ED UjwQ== X-Gm-Message-State: AOJu0YwZCn0ydGOLyuJkh2fUuM1GPGhGTLm20PIir8hNzf1EecZGlfuX f1ruzzyPm8DN31q0MhdQAHNIi6qi4UKX7bhQMnt56A== X-Google-Smtp-Source: AGHT+IH5ngf97qNt6bu22r6TovmZpeCObZ1P4vs+ZHMOMTu1yaL2qGufLWfX5gIBKVU2oIFa2UbP+oCYEwSXWYxeI0o= X-Received: by 2002:a0d:d203:0:b0:58d:7ec3:16c4 with SMTP id u3-20020a0dd203000000b0058d7ec316c4mr1815920ywd.34.1696408517703; Wed, 04 Oct 2023 01:35:17 -0700 (PDT) MIME-Version: 1.0 References: <20231002021602.260100-1-takahiro.akashi@linaro.org> <20231002021602.260100-4-takahiro.akashi@linaro.org> In-Reply-To: From: Linus Walleij Date: Wed, 4 Oct 2023 10:35:05 +0200 Message-ID: Subject: Re: [RFC 3/4] gpio: scmi: add SCMI pinctrl based gpio driver To: AKASHI Takahiro , Linus Walleij , sudeep.holla@arm.com, cristian.marussi@arm.com, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org, Oleksii_Moisieiev@epam.com, linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231004_013519_375230_D399B537 X-CRM114-Status: GOOD ( 45.54 ) 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 SGkgVGFrYWhpcm8sCgpJIHNlZSB5b3UgYXJlIG9uIHRyYWNrIHdpdGggdGhpcyEKClNvbWUgY2xh cmlmaWNhdGlvbnM6CgpPbiBXZWQsIE9jdCA0LCAyMDIzIGF0IDg6NTPigK9BTSBBS0FTSEkgVGFr YWhpcm8KPHRha2FoaXJvLmFrYXNoaUBsaW5hcm8ub3JnPiB3cm90ZToKCj4gSSdtIHN0aWxsIG5v dCBzdXJlIHdoZXRoZXIgbXkgYXBwcm9hY2ggY2FuIGJlIGFwcGxpZWQgdG8gYW55IG90aGVyCj4g cGluY3RybC1iYXNlZCBncGlvIGRyaXZlcnMsIGluIHdoaWNoIGV4dHJhIChkcml2ZXItc3BlY2lm aWMpIG9wZXJhdGlvbnMKPiBtaWdodCBiZSBuZWVkZWQgYXJvdW5kIHRoZSBnZW5lcmljIHBpbmN0 cmxfZ3BpbyBoZWxwZXJzIChpLmUuIGdwaW9saWIuYykuCj4gRm9yIGluc3RhbmNlLCBsb29rIGF0 IGdwaW8tdGVncmEuYzoKClllYWgsIGl0IGtpbmQgb2YgcmVxdWlyZXMgYSAicHVyZSIgcGluIGNv bnRyb2xsZXIgdW5kZXJuZWF0aCB0aGF0IGRvbid0CndhbnQgdG8gZG8gYW55dGhpbmcgZWxzZSBv biBhbnkgb3BlcmF0aW9ucywgb3RoZXJ3aXNlIHdlIGFyZSBiYWNrCnRvIGEgcGVyLXNvYyBwaW4g Y29udHJvbCBkcml2ZXIuCgpCdXQgSSB0aGluayBpdCBpcyBhcHByb3ByaWF0ZSBmb3IgYWJzdHJh Y3Rpb25zIHRoYXQgc3RyaXZlIHRvIHByb3ZpZGUKInRvdGFsIGFic3RyYWN0aW9uIGJlaGluZCBh IGZpcm13YXJlIiwgc28gc3VjaCBhcyBTQ01JIG9yIEFDUEkgKGhlaCkuCgo+ID4gU2tpcCB0aGlz LCBsZXQncyB1c2UgZGV2aWNlIHByb3BlcnRpZXMgaW5zdGVhZC4gVGhleSB3aWxsIGFueXdheXMg anVzdCB0cmFuc2xhdGUKPiA+IHRvIE9GIHByb3BlcnRpZXMgaW4gdGhlIE9GIGNhc2UuCj4KPiBP a2F5LCBJIGRvbid0IGtub3cgaG93IGRldmljZSBwcm9wZXJ0aWVzIHdvcmssIHRob3VnaC4KClRo ZXkgYXJlIHByZXR0eSBtdWNoIDEtdG8tMSBzbG90LWlucyBmb3IgdGhlIGNvcnJlc3BvbmRpbmcg b2ZfKgpmdW5jdGlvbnMsIHBhc3Npbmcgc3RydWN0IGRldmljZSAqIGluc3RlYWQgb2Ygc3RydWN0 IGRldmljZV9ub2RlICosCmlmIHlvdSBsb29rIGluIGluY2x1ZGUvbGludXgvcHJvcGVydHkuaCB5 b3Ugd2lsbCBmZWVsIGF0IGhvbWUgdmVyeQpxdWlja2x5LgoKPiA+ID4gK3N0YXRpYyBpbnQgc2Nt aV9ncGlvX2dldF9kaXJlY3Rpb24oc3RydWN0IGdwaW9fY2hpcCAqY2hpcCwgdW5zaWduZWQgaW50 IG9mZnNldCkKPiA+Cj4gPiBSZW5hbWUgYWxsIGZ1bmN0aW9ucyBwaW5jdHJsX2dwaW9fKgo+Cj4g V2VsbCwgdGhpcyBjaGFuZ2Ugd2lsbCByZXN1bHQgaW4gbmFtZSBjb25mbGljdHMgYWdhaW5zdCBl eGlzdGluZwo+IHBpbmN0cmxfZ3Bpb19kaXJlY3Rpb25fW2lufG91dF1vdXQoKS4gU28gdXNlICJw aW5fY29udHJvbF9ncGlvXyIgcHJlZml4LgoKWWVhaCB0aGF0IHdvcmtzLCBvciBwaW5jb250cm9f YnlfZ3Bpb18gb3Igc3VjaC4KCj4gTm90IHN1cmUgaG93IHRoZSBsYXN0IGNhc2UgKGluX2VuICYm IG91dF9lbiAmJiBEUklWRV9PUEVOX0RSQUlOKSB3b3Jrcy4KCkkgd3JvdGUgc29tZSBkb2N1bWVu dGF0aW9uISBCdXQgaXQgaXMgaGlkZGVuIGRlZXAgaW4gdGhlIGRvY3M6Cmh0dHBzOi8vZG9jcy5r ZXJuZWwub3JnL2RyaXZlci1hcGkvZ3Bpby9kcml2ZXIuaHRtbCNncGlvLWxpbmVzLXdpdGgtb3Bl bi1kcmFpbi1zb3VyY2Utc3VwcG9ydAoKPiBJbiBvcmRlciB0byBiZSBhYmxlIHRvIHJlYWQgYSB2 YWx1ZSBhcyBhbiBpbnB1dCBwaW4sIEkgdGhpbmssIHdlIG5lZWQKPiB0byBzZXQgdGhlIG91dHB1 dCBzdGF0dXMgdG8gSGktWi4gVGhlbiB3ZSBzaG91bGQgcmVjb2duaXplIGl0IGFzICJJTlBVVCI/ Cj4gSW4gdGhpcyBjYXNlLCBob3dldmVyLCB3ZSBjYW5ub3QgZGlzdGluZ3Vpc2ggdGhlIG90aGVy IGNhc2Ugd2hlcmUgd2Ugd2FudAo+IHRvIHVzZSB0aGUgcGluIGFzIE9VVFBVVCBhbmQgZHJpdmUg aXQgdG8gKGFjdGl2ZSkgaGlnaC4KCldpdGggb3BlbiBkcmFpbiwgb24gR1BJTyBjb250cm9sbGVy cyB0aGF0IGRvIG5vdCBzdXBwb3J0IGEgbmF0aXZlCm9wZW4gZHJhaW4gbW9kZSwgd2UgZW11bGF0 ZSBvcGVuIGRyYWluIG91dHB1dCBoaWdoIGJ5IHN3aXRjaGluZwp0aGUgbGluZSBpbnRvIGlucHV0 IG1vZGUuIFRoZSBsaW5lIGluIHRoaXMgY2FzZSBoYXMgYSBwdWxsLXVwIHJlc2lzdG9yCihpbnRl cm5hbCBvciBleHRlcm5hbCkgYW5kIGFzIGlucHV0IG1vZGUgaXMgaGlnaC1aIHRoZSBwdWxsIHVw IHJlc2lzdG9yCndpbGwgcHVsbCB0aGUgc2lnbmFsIGhpZ2gsIHRvIGFueSBsZXZlbCAtIGNvdWxk IGJlIGUuZyA0OFYgd2hpY2ggaXMKaGVscGZ1bCBmb3Igc29tZSBzZXJpYWwgbGlua3MuCgpCdXQg dGhpcyBjYXNlIGlzIHJlYWxseSB0cmlja3kgc28gaXQgY2FuIGJlIGhhcmQgdG8gZ2V0IHRoaW5n cyByaWdodCwKSSBnZXQgYSBiaXQgY29uZnVzZWQgYW5kIHNvIHdlIG5lZWQgdG8gdGhpbmsgYWJv dXQgaXQgYSBmZXcgdGltZXMuCgo+ID4gPiArc3RhdGljIHZvaWQgc2NtaV9ncGlvX3NldChzdHJ1 Y3QgZ3Bpb19jaGlwICpjaGlwLCB1bnNpZ25lZCBpbnQgb2Zmc2V0LCBpbnQgdmFsKQo+ID4KPiA+ IHN0YXRpYyBpbnQ/Cj4KPiBVbmZvcnR1bmF0ZWx5LCB0aGUgZnVuY3Rpb24gcHJvdG90eXBlIG9m ICJzZXQiIGluIHN0cnVjdCBncGlvX2RldmljZSBpcwo+ICAgICAgICAgdm9pZCAoKnNldCkoc3Ry dWN0IGdwaW9fY2hpcCAqZ2MsIHVuc2lnbmVkIGludCBvZmZzZXQsIGludCB2YWx1ZSk7Cj4KPiBT byB3ZSBjYW5ub3QgcHJvcGFnYXRlIGFuIGVycm9yIHRvIHRoZSBjYWxsZXIuCgpHcnJyIHRoYXQg bXVzdCBiZSBteSBmYXVsdC4gU29ycnkgYWJvdXQgbm90IGZpeGluZyB0aGlzIDooCgo+ID4gTm8g bmVlZCB0byBhZGQgJiAweDAxLCB0aGUgZ3Bpb2xpYiBjb3JlIGFscmVhZHkgZG9lcyB0aGlzLgo+ Cj4gV2hpY2ggcGFydCBvZiBncGlvbGliIGNvcmU/CgpjaGlwLT5zZXQgPSBzY21pX2dwaW9fc2V0 OyBnZXRzIGNhbGxlZCBsaWtlIHRoaXMgaW4gZ3Bpb2xpYjoKCiBncGlvZF9kaXJlY3Rpb25fb3V0 cHV0X3Jhd19jb21taXQoLi4uLCBpbnQgdmFsdWUpCnsKICAgIGludCB2YWwgPSAhIXZhbHVlOwoo Li4uKQogICAgZ2MtPnNldChnYywgZ3Bpb19jaGlwX2h3Z3BpbyhkZXNjKSwgdmFsKTsKCk5vdGlj ZSBjbGFtcGluZyBpbnQgdmFsID0gISF2YWx1ZTsgd2lsbCBtYWtlIHRoZSBwYXNzZWQgdmFsIDAg b3IgMS4KCj4gPiA+ICtzdGF0aWMgdTE2IHN1bV91cF9uZ3Bpb3Moc3RydWN0IGdwaW9fY2hpcCAq Y2hpcCkKPiA+ID4gK3sKPiA+ID4gKyAgICAgICBzdHJ1Y3QgZ3Bpb19waW5fcmFuZ2UgKnJhbmdl Owo+ID4gPiArICAgICAgIHN0cnVjdCBncGlvX2RldmljZSAqZ2RldiA9IGNoaXAtPmdwaW9kZXY7 Cj4gPiA+ICsgICAgICAgdTE2IG5ncGlvcyA9IDA7Cj4gPiA+ICsKPiA+ID4gKyAgICAgICBsaXN0 X2Zvcl9lYWNoX2VudHJ5KHJhbmdlLCAmZ2Rldi0+cGluX3Jhbmdlcywgbm9kZSkgewo+ID4gPiAr ICAgICAgICAgICAgICAgbmdwaW9zICs9IHJhbmdlLT5yYW5nZS5ucGluczsKPiA+ID4gKyAgICAg ICB9Cj4gPgo+ID4gVGhpcyB3b3JrcyBidXQgaXNuJ3QgcmVhbGx5IHRoZSBpbnRlbmRlZCB1c2Ug Y2FzZSBvZiB0aGUgcmFuZ2VzLgo+ID4gRmVlbCBhIGJpdCB1bmNlcnRhaW4gYWJvdXQgaXQsIGJ1 dCBJIGNhbid0IHRoaW5rIG9mIGFueXRoaW5nIGJldHRlci4KPiA+IEFuZCBJIGd1ZXNzIHRoZXNl IGNvbWUgZGlyZWN0bHkgb3V0IG9mIFNDTUkgc28gaXQncyBmaXJzdCBoYW5kCj4gPiBpbmZvcm1h dGlvbiBhYm91dCBhbGwgR1BJT3MuCj4KPiBJIGRvbid0IGdldCB5b3VyIHBvaW50Lgo+IEhvd2V2 ZXIgbWFueSBwaW5zIFNDTUkgZmlybXdhcmUgKG9yIG90aGVyIG5vcm1hbCBwaW4gY29udHJvbGxl cnMpIG1pZ2h0Cj4gZXhwb3NlLCB0aGUgdG90YWwgbnVtYmVyIG9mIHBpbnMgYXZhaWxhYmxlIGJ5 IHRoaXMgZHJpdmVyIGlzIGxpbWl0ZWQgYnkKPiAiZ3Bpby1yYW5nZXMiIHByb3BlcnR5Lgo+IFNv IHRoZSBzdW0gYXMgIm5ncGlvcyIgc2hvdWxkIG1ha2Ugc2Vuc2UgdW5sZXNzIGEgdXNlciBhY2Np ZGVudGFsbHkKPiBzcGVjaWZpZXMgYSB3cm9uZyByYW5nZSBvZiBwaW5zLgoKWWVzLgoKQW5kIGl0 IGlzIHRoaXMgZmFjdCB0aGF0IHRoZSBzYW1lIG51bWJlciBuZWVkIHRvIGFwcGVhciBpbiB0d28g cGxhY2VzCmFuZCBkb3VibGUtc3BlY2lmaWNhdGlvbiB3aWxsIHNvb25lciBvciBsYXRlciBicmlu ZyB1cyB0byB0aGUgc2l0dWF0aW9uCndoZXJlIHRoZSB0d28gZG8gbm90IGFncmVlLCBhbmQgd2hh dCBkbyB3ZSBkbyB0aGVuPwoKSWYgdGhlIHJhbmdlcyBjb21lIGZyb20gZmlybXdhcmUsIHdoaWNo IGlzIHN1YmplY3QgdG8gY2hhbmdlIHN1Y2gKYXMgIm9vcHMgd2UgZm9yZ290IHRoaXMgcGluIiwg dGhlIEdQSU8gbnVtYmVyIHdpbGwganVzdCBpbnNlcnQgaXRzZWxmCmFtb25nIHRoZSBhbHJlYWR5 IGV4aXN0aW5nIG9uZXM6IHNheSB3ZSBoYXZlIHR3byByYW5nZXM6CgoxOiAwLi41CjI6IDYuLjkK Ck9vb3BzIGZvcmdvdCBhIEdQSU8gaW4gdGhlIGZpcnN0IHJhbmdlLCBpdCBoYXMgdG8gYmUgYnVt cGVkIHRvCjAuLjYuCgpCdXQgc29tZXdoZXJlIGluIHRoZSBkZXZpY2UgdHJlZSB0aGVyZSBpczoK CmZvby1ncGlvcyA9IDwmc2NtaV9ncGlvIDcgR1BJT19PVVRfTE9XPjsKClNvIG5vdyB0aGlzIGlz IHdyb25nIChuZWVkIHRvIGJlIGNoYW5nZWQgdG8gOCkgYW5kIHdlIGhhdmUgemVybyB0b29saW5n CnRvIGRldGVjdCB0aGlzLCB0aGUgYXV0aG9yIGp1c3QgaGFzIHRvIGJlIHZlcnkgY2FyZWZ1bCBh bGwgdGhlIHRpbWUuCgpCdXQgSSBob25lc3RseSBkbyBub3Qga25vdyBhbnkgYmV0dGVyIHdheS4K Cj4gPiB3aGljaCBpbiB0dXJuIGJlY29tZXMganVzdCBwaW5jdHJsX2dwaW9fc2V0X2NvbmZpZygp LCB3aGljaAo+ID4gaXMgd2hhdCB3ZSB3YW50Lgo+ID4KPiA+IFRoZSBzZWNvbmQgY2VsbCBpbiB0 d28tY2VsbCBHUElPcyBhbHJlYWR5IHN1cHBvcnRzIHBhc3NpbmcKPiA+IEdQSU9fUFVTSF9QVUxM LCBHUElPX09QRU5fRFJBSU4sIEdQSU9fT1BFTl9TT1VSQ0UsCj4gPiBHUElPX1BVTExfVVAsIEdQ SU9fUFVMTF9ET1dOLCBHUElPX1BVTExfRElTQUJMRSwKPiA+IHdoaWNoIHlvdSBjYW4gdGhpcyB3 YXkgdHJpdmlhbGx5IHBhc3MgZG93biB0byB0aGUgcGluIGNvbnRyb2wgZHJpdmVyLgo+ID4KPiA+ IE5COiBtYWtlIHN1cmUgdGhlIHNjbWkgcGluIGNvbnRyb2wgZHJpdmVyIHJldHVybnMgZXJyb3Ig Zm9yCj4gPiB1bmtub3duIGNvbmZpZ3MuCj4KPiBXZWxsLCB0aGUgZXJyb3Igd2lsbCBiZSBkZXRl cm1pbmVkIGJ5IFNDTUkgZmlybXdhcmUoc2VydmVyKQo+IG5vdCB0aGUgZHJpdmVyIGl0c2VsZiA6 KQoKSGVoZSwgSSB0aGluayBpdCBpcyBnb29kIHRoYXQgdGhlIFNDTUkgZmlybXdhcmUgZ2V0cyBz b21lIGV4ZXJjaXNlCmZyb20gZGF5IDEhCgpZb3VycywKTGludXMgV2FsbGVpagoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBt YWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9s aXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=