From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from relay7-d.mail.gandi.net (relay7-d.mail.gandi.net [217.70.183.200]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DFDC91802AB; Tue, 30 Apr 2024 16:33:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=217.70.183.200 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714494790; cv=none; b=rpZMVVRcKQLLphqrjmAaJt3aV5qQNOkrjjjYOHSYmu2KuGJ5QAxa2scHOIKCBPvhmY60FJRy9z7k7UL8o9gc62dSs1ewHACl98pieWqvA09jHcTUIF1LZ3BizsHZRBUEnd/d048dk3HWBXiEvnWN//freFXgi3VYUHiJUv5Uu5c= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714494790; c=relaxed/simple; bh=2l9At3Rp5SxGzMz7kyLqL/eq/W5Zy3EozaXiK/uejhE=; h=Date:From:To:Cc:Subject:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=chCak1bls3CfrqUHB7KwkhRwX5EHrvVCqccYwknHBul+trhKGqDXf5pJjupc+aBE0F8r3syUbIFSQKom5H1g9aVX60z0f6UQ5oQCNxmeWqmq7La+upcdp3liTBqgPqjFt6z9gLVBcQB6KP7uhCVdl07lDuiJfJQwjYfvoZmOtAg= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com; spf=pass smtp.mailfrom=bootlin.com; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b=pD4vRHaL; arc=none smtp.client-ip=217.70.183.200 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bootlin.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b="pD4vRHaL" Received: by mail.gandi.net (Postfix) with ESMTPSA id BFC8020002; Tue, 30 Apr 2024 16:33:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1714494786; 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=6dwRYW34S8P17vH5XtXPm9HMUxIxV6qRAOkld5Rx8tE=; b=pD4vRHaLymllfg0enq0ckdTh0OfXfYFtd4pVL1kWnOQRKiaqG9KikcdmJGbFdNAdJ4y+Uk HSiK6RSIWe7M6dI0nB4ZrLMD4+bDxl4uYNZw04CEXdgHv87LKw04ySU1W+CQjsuY4Efeq2 MmO4ywAzfKPoJwqkSaGHEaC1AK8izw7s/QswydY7bBAhbUT1ttklmJ5GK8bu3FrYFfrbdf 5rxUN+9oP5MvAEVAMkaFFnq5viDSN35lc6J0LRhNyPnF7x33rcxA5eGmaPOFpAeg08U5Z9 VPV3FiXS0h/7kJVwWV/kJSxcW5RarNmQ3TG9DZFR5ualYpbrXM3SkeLOHNwpZQ== Date: Tue, 30 Apr 2024 18:33:01 +0200 From: Herve Codina To: Andrew Lunn Cc: Thomas Gleixner , Rob Herring , Krzysztof Kozlowski , Conor Dooley , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Lee Jones , Arnd Bergmann , Horatiu Vultur , UNGLinuxDriver@microchip.com, Heiner Kallweit , Russell King , Saravana Kannan , Bjorn Helgaas , Philipp Zabel , Lars Povlsen , Steen Hegelund , Daniel Machon , Alexandre Belloni , linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, netdev@vger.kernel.org, linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Allan Nielsen , Luca Ceresoli , Thomas Petazzoni Subject: Re: [PATCH 00/17] Add support for the LAN966x PCI device using a DT overlay Message-ID: <20240430183301.46568e35@bootlin.com> In-Reply-To: <4571846d-2001-4bbf-b311-d0b42844143d@lunn.ch> References: <20240430083730.134918-1-herve.codina@bootlin.com> <4571846d-2001-4bbf-b311-d0b42844143d@lunn.ch> Organization: Bootlin X-Mailer: Claws Mail 4.2.0 (GTK 3.24.41; x86_64-redhat-linux-gnu) Precedence: bulk X-Mailing-List: linux-pci@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-GND-Sasl: herve.codina@bootlin.com Hi Andrew, On Tue, 30 Apr 2024 15:40:16 +0200 Andrew Lunn wrote: > On Tue, Apr 30, 2024 at 10:37:09AM +0200, Herve Codina wrote: > > Hi, > > > > This series adds support for the LAN966x chip when used as a PCI > > device. > > > This patch series for now adds a Device Tree overlay that describes an > > initial subset of the devices available over PCI in the LAN996x, and > > follow-up patch series will add support for more once this initial > > support has landed. > > What host systems have you tested with? Are they all native DT, or > have you tested on an ACPI system? I'm just wondering how well DT > overlay works if i were to plug a LAN966x device into something like > an x86 ComExpress board? I tested on a native DT system (marvell board). Also I tested on a x86 system (basically a simple PC). Not all components are available upstream to have it working on a x86 (ACPI) system. The missing component is not related to the LAN966x PCI driver itself but in the way DT node are created up to the PCI device. A DT node at PCI device is needed to have a DT node parent (target) for the overlay. The DT node chain is also important because BARs address translations are done using the 'ranges' property available in each node in the chain. On a full DT system, the DT looks like (simplified in naming and without the node properties): / soc { ... pci_root_bridge { <-- Present in base dts pci_to_pci_bridge { <-- Created at runtime based on PCI enumeration pci_device { <-- Created at runtime based on PCI enumeration } } pci_device { <-- Created at runtime based on PCI enumeration }; }; }; On x86: - A DT root empty node is created. This is already upstream from a first proposal [1] and then second one [2]. - PCI-to-PCI bridge and device DT nodes are created at runtime. This is the same on DT base systems and this feature is available upstream too (last proposal at [3]). The DT node missing in the chain is the node for the PCI root bridge. On ACPI, no "base" dts describes this node. The PCI root bridge is described by ACPI. I have some draft code that create this DT node when a PCI host bridge is register if a DT node is not already present and so fill the hole in the DT node chain. With that the DT in an ACPI system looks like this: / pci_root_bridge { <-- Created at runtime when a PCI host bridge is registered pci_to_pci_bridge { <-- Created at runtime based on PCI enumeration pci_device { <-- Created at runtime based on PCI enumeration } } pci_device { <-- Created at runtime based on PCI enumeration }; }; With this node added, the driver works the same way in both DT and ACPI systems without any modification. I plan to send the code creating the PCI host bridge node when this current series is landed in order to add support for DT overlay over PCI on x86 systems. Also an other series (under review [4]) is needed to avoid struct device duplication related to the DT nodes creation. [1] https://lore.kernel.org/lkml/20230317053415.2254616-1-frowand.list@gmail.com/#r [2] https://lore.kernel.org/lkml/20240217010557.2381548-1-sboyd@kernel.org/ [3] https://lore.kernel.org/lkml/1692120000-46900-1-git-send-email-lizhi.hou@amd.com/ [4] https://lore.kernel.org/lkml/20240423145703.604489-1-herve.codina@bootlin.com/ Best regards, Hervé 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 D8BE7C4345F for ; Tue, 30 Apr 2024 16:33:27 +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=a3zzVhO/CmFPN63fMlbakbhMT1BbUfaFb5H0ROcwxa0=; b=TtwUcDLC1nZVLT TnSDf32FxG3CWI/cImL4mYSlMzKf1TxsWEz1KVw/tNKxweI9L2RNh86KhZmpjDr8kqor5ehtVbjSd bTnemF5WJGYKHuwoSZOJwM6a+zwgdUkWdrsTQe2HCB6p5iHC1i/nhJRRbe/bA7TwLGsLF1qDKceQI 4v9ZDjtCVIsN6Y23q/8ggkkrfxD/BSE2HRBQWurVPcJfCANXsTsN3odPw+O0XIuasEHSL1tukD/Dl lkABOZsRe+0FQAAeiVR8HkMLwmh/QjvQuWoBnDHkl+/hf9k/1QuwkLdHNlFya5Ou4YzoUcGUxAZ7O eZ+vMJ/+yrxgdlWxR4uA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1s1qPq-00000007Erz-0F8U; Tue, 30 Apr 2024 16:33:14 +0000 Received: from relay7-d.mail.gandi.net ([217.70.183.200]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1s1qPm-00000007Epr-2TXE for linux-arm-kernel@lists.infradead.org; Tue, 30 Apr 2024 16:33:12 +0000 Received: by mail.gandi.net (Postfix) with ESMTPSA id BFC8020002; Tue, 30 Apr 2024 16:33:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1714494786; 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=6dwRYW34S8P17vH5XtXPm9HMUxIxV6qRAOkld5Rx8tE=; b=pD4vRHaLymllfg0enq0ckdTh0OfXfYFtd4pVL1kWnOQRKiaqG9KikcdmJGbFdNAdJ4y+Uk HSiK6RSIWe7M6dI0nB4ZrLMD4+bDxl4uYNZw04CEXdgHv87LKw04ySU1W+CQjsuY4Efeq2 MmO4ywAzfKPoJwqkSaGHEaC1AK8izw7s/QswydY7bBAhbUT1ttklmJ5GK8bu3FrYFfrbdf 5rxUN+9oP5MvAEVAMkaFFnq5viDSN35lc6J0LRhNyPnF7x33rcxA5eGmaPOFpAeg08U5Z9 VPV3FiXS0h/7kJVwWV/kJSxcW5RarNmQ3TG9DZFR5ualYpbrXM3SkeLOHNwpZQ== Date: Tue, 30 Apr 2024 18:33:01 +0200 From: Herve Codina To: Andrew Lunn Cc: Thomas Gleixner , Rob Herring , Krzysztof Kozlowski , Conor Dooley , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Lee Jones , Arnd Bergmann , Horatiu Vultur , UNGLinuxDriver@microchip.com, Heiner Kallweit , Russell King , Saravana Kannan , Bjorn Helgaas , Philipp Zabel , Lars Povlsen , Steen Hegelund , Daniel Machon , Alexandre Belloni , linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, netdev@vger.kernel.org, linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Allan Nielsen , Luca Ceresoli , Thomas Petazzoni Subject: Re: [PATCH 00/17] Add support for the LAN966x PCI device using a DT overlay Message-ID: <20240430183301.46568e35@bootlin.com> In-Reply-To: <4571846d-2001-4bbf-b311-d0b42844143d@lunn.ch> References: <20240430083730.134918-1-herve.codina@bootlin.com> <4571846d-2001-4bbf-b311-d0b42844143d@lunn.ch> Organization: Bootlin X-Mailer: Claws Mail 4.2.0 (GTK 3.24.41; x86_64-redhat-linux-gnu) MIME-Version: 1.0 X-GND-Sasl: herve.codina@bootlin.com X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240430_093311_160694_8DC2A09B X-CRM114-Status: GOOD ( 28.36 ) 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 SGkgQW5kcmV3LAoKT24gVHVlLCAzMCBBcHIgMjAyNCAxNTo0MDoxNiArMDIwMApBbmRyZXcgTHVu biA8YW5kcmV3QGx1bm4uY2g+IHdyb3RlOgoKPiBPbiBUdWUsIEFwciAzMCwgMjAyNCBhdCAxMDoz NzowOUFNICswMjAwLCBIZXJ2ZSBDb2RpbmEgd3JvdGU6Cj4gPiBIaSwKPiA+IAo+ID4gVGhpcyBz ZXJpZXMgYWRkcyBzdXBwb3J0IGZvciB0aGUgTEFOOTY2eCBjaGlwIHdoZW4gdXNlZCBhcyBhIFBD SQo+ID4gZGV2aWNlLiAgCj4gCj4gPiBUaGlzIHBhdGNoIHNlcmllcyBmb3Igbm93IGFkZHMgYSBE ZXZpY2UgVHJlZSBvdmVybGF5IHRoYXQgZGVzY3JpYmVzIGFuCj4gPiBpbml0aWFsIHN1YnNldCBv ZiB0aGUgZGV2aWNlcyBhdmFpbGFibGUgb3ZlciBQQ0kgaW4gdGhlIExBTjk5NngsIGFuZAo+ID4g Zm9sbG93LXVwIHBhdGNoIHNlcmllcyB3aWxsIGFkZCBzdXBwb3J0IGZvciBtb3JlIG9uY2UgdGhp cyBpbml0aWFsCj4gPiBzdXBwb3J0IGhhcyBsYW5kZWQuICAKPiAKPiBXaGF0IGhvc3Qgc3lzdGVt cyBoYXZlIHlvdSB0ZXN0ZWQgd2l0aD8gQXJlIHRoZXkgYWxsIG5hdGl2ZSBEVCwgb3IKPiBoYXZl IHlvdSB0ZXN0ZWQgb24gYW4gQUNQSSBzeXN0ZW0/IEknbSBqdXN0IHdvbmRlcmluZyBob3cgd2Vs bCBEVAo+IG92ZXJsYXkgd29ya3MgaWYgaSB3ZXJlIHRvIHBsdWcgYSBMQU45NjZ4IGRldmljZSBp bnRvIHNvbWV0aGluZyBsaWtlCj4gYW4geDg2IENvbUV4cHJlc3MgYm9hcmQ/CgpJIHRlc3RlZCBv biBhIG5hdGl2ZSBEVCBzeXN0ZW0gKG1hcnZlbGwgYm9hcmQpLgoKQWxzbyBJIHRlc3RlZCBvbiBh IHg4NiBzeXN0ZW0gKGJhc2ljYWxseSBhIHNpbXBsZSBQQykuCk5vdCBhbGwgY29tcG9uZW50cyBh cmUgYXZhaWxhYmxlIHVwc3RyZWFtIHRvIGhhdmUgaXQgd29ya2luZyBvbiBhIHg4NiAoQUNQSSkK c3lzdGVtLiBUaGUgbWlzc2luZyBjb21wb25lbnQgaXMgbm90IHJlbGF0ZWQgdG8gdGhlIExBTjk2 NnggUENJIGRyaXZlciBpdHNlbGYKYnV0IGluIHRoZSB3YXkgRFQgbm9kZSBhcmUgY3JlYXRlZCB1 cCB0byB0aGUgUENJIGRldmljZS4KQSBEVCBub2RlIGF0IFBDSSBkZXZpY2UgaXMgbmVlZGVkIHRv IGhhdmUgYSBEVCBub2RlIHBhcmVudCAodGFyZ2V0KSBmb3IgdGhlCm92ZXJsYXkuClRoZSBEVCBu b2RlIGNoYWluIGlzIGFsc28gaW1wb3J0YW50IGJlY2F1c2UgQkFScyBhZGRyZXNzIHRyYW5zbGF0 aW9ucyBhcmUKZG9uZSB1c2luZyB0aGUgJ3JhbmdlcycgcHJvcGVydHkgYXZhaWxhYmxlIGluIGVh Y2ggbm9kZSBpbiB0aGUgY2hhaW4uCgpPbiBhIGZ1bGwgRFQgc3lzdGVtLCB0aGUgRFQgbG9va3Mg bGlrZSAoc2ltcGxpZmllZCBpbiBuYW1pbmcgYW5kIHdpdGhvdXQgdGhlCm5vZGUgcHJvcGVydGll cyk6Ci8KICBzb2MgewogICAgLi4uCiAgICBwY2lfcm9vdF9icmlkZ2UgeyAgPC0tIFByZXNlbnQg aW4gYmFzZSBkdHMKICAgICAgIHBjaV90b19wY2lfYnJpZGdlIHsgIDwtLSBDcmVhdGVkIGF0IHJ1 bnRpbWUgYmFzZWQgb24gUENJIGVudW1lcmF0aW9uCiAgICAgICAgICAgIHBjaV9kZXZpY2UgeyAg PC0tIENyZWF0ZWQgYXQgcnVudGltZSBiYXNlZCBvbiBQQ0kgZW51bWVyYXRpb24KICAgICAgICAg ICAgfQogICAgICAgfQogICAgICAgcGNpX2RldmljZSB7IDwtLSBDcmVhdGVkIGF0IHJ1bnRpbWUg YmFzZWQgb24gUENJIGVudW1lcmF0aW9uCiAgICAgICB9OwogICAgfTsKICB9OwoKT24geDg2Ogot IEEgRFQgcm9vdCBlbXB0eSBub2RlIGlzIGNyZWF0ZWQuCiAgVGhpcyBpcyBhbHJlYWR5IHVwc3Ry ZWFtIGZyb20gYSBmaXJzdCBwcm9wb3NhbCBbMV0gYW5kIHRoZW4gc2Vjb25kIG9uZSBbMl0uCi0g UENJLXRvLVBDSSBicmlkZ2UgYW5kIGRldmljZSBEVCBub2RlcyBhcmUgY3JlYXRlZCBhdCBydW50 aW1lLgogIFRoaXMgaXMgdGhlIHNhbWUgb24gRFQgYmFzZSBzeXN0ZW1zIGFuZCB0aGlzIGZlYXR1 cmUgaXMgYXZhaWxhYmxlIHVwc3RyZWFtCiAgdG9vIChsYXN0IHByb3Bvc2FsIGF0IFszXSkuCgpU aGUgRFQgbm9kZSBtaXNzaW5nIGluIHRoZSBjaGFpbiBpcyB0aGUgbm9kZSBmb3IgdGhlIFBDSSBy b290IGJyaWRnZS4KT24gQUNQSSwgbm8gImJhc2UiIGR0cyBkZXNjcmliZXMgdGhpcyBub2RlLiBU aGUgUENJIHJvb3QgYnJpZGdlIGlzIGRlc2NyaWJlZApieSBBQ1BJLgoKSSBoYXZlIHNvbWUgZHJh ZnQgY29kZSB0aGF0IGNyZWF0ZSB0aGlzIERUIG5vZGUgd2hlbiBhIFBDSSBob3N0IGJyaWRnZSBp cwpyZWdpc3RlciBpZiBhIERUIG5vZGUgaXMgbm90IGFscmVhZHkgcHJlc2VudCBhbmQgc28gZmls bCB0aGUgaG9sZSBpbiB0aGUgRFQKbm9kZSBjaGFpbi4KV2l0aCB0aGF0IHRoZSBEVCBpbiBhbiBB Q1BJIHN5c3RlbSBsb29rcyBsaWtlIHRoaXM6Ci8KICBwY2lfcm9vdF9icmlkZ2UgeyAgPC0tIENy ZWF0ZWQgYXQgcnVudGltZSB3aGVuIGEgUENJIGhvc3QgYnJpZGdlIGlzIHJlZ2lzdGVyZWQKICAg ICBwY2lfdG9fcGNpX2JyaWRnZSB7ICA8LS0gQ3JlYXRlZCBhdCBydW50aW1lIGJhc2VkIG9uIFBD SSBlbnVtZXJhdGlvbgogICAgICAgICAgcGNpX2RldmljZSB7ICA8LS0gQ3JlYXRlZCBhdCBydW50 aW1lIGJhc2VkIG9uIFBDSSBlbnVtZXJhdGlvbgogICAgICAgICAgfQogICAgIH0KICAgICBwY2lf ZGV2aWNlIHsgPC0tIENyZWF0ZWQgYXQgcnVudGltZSBiYXNlZCBvbiBQQ0kgZW51bWVyYXRpb24K ICAgICB9OwogIH07CgpXaXRoIHRoaXMgbm9kZSBhZGRlZCwgdGhlIGRyaXZlciB3b3JrcyB0aGUg c2FtZSB3YXkgaW4gYm90aCBEVCBhbmQgQUNQSQpzeXN0ZW1zIHdpdGhvdXQgYW55IG1vZGlmaWNh dGlvbi4KCkkgcGxhbiB0byBzZW5kIHRoZSBjb2RlIGNyZWF0aW5nIHRoZSBQQ0kgaG9zdCBicmlk Z2Ugbm9kZSB3aGVuIHRoaXMgY3VycmVudApzZXJpZXMgaXMgbGFuZGVkIGluIG9yZGVyIHRvIGFk ZCBzdXBwb3J0IGZvciBEVCBvdmVybGF5IG92ZXIgUENJIG9uIHg4NgpzeXN0ZW1zLgoKQWxzbyBh biBvdGhlciBzZXJpZXMgKHVuZGVyIHJldmlldyBbNF0pIGlzIG5lZWRlZCB0byBhdm9pZCBzdHJ1 Y3QgZGV2aWNlCmR1cGxpY2F0aW9uIHJlbGF0ZWQgdG8gdGhlIERUIG5vZGVzIGNyZWF0aW9uLgoK WzFdIGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL2xrbWwvMjAyMzAzMTcwNTM0MTUuMjI1NDYxNi0x LWZyb3dhbmQubGlzdEBnbWFpbC5jb20vI3IKWzJdIGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL2xr bWwvMjAyNDAyMTcwMTA1NTcuMjM4MTU0OC0xLXNib3lkQGtlcm5lbC5vcmcvClszXSBodHRwczov L2xvcmUua2VybmVsLm9yZy9sa21sLzE2OTIxMjAwMDAtNDY5MDAtMS1naXQtc2VuZC1lbWFpbC1s aXpoaS5ob3VAYW1kLmNvbS8KWzRdIGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL2xrbWwvMjAyNDA0 MjMxNDU3MDMuNjA0NDg5LTEtaGVydmUuY29kaW5hQGJvb3RsaW4uY29tLwoKQmVzdCByZWdhcmRz LApIZXJ2w6kKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5m cmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xp bnV4LWFybS1rZXJuZWwK