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 X-Spam-Level: X-Spam-Status: No, score=-0.8 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FROM_EXCESS_BASE64,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 40E03C3A5A2 for ; Thu, 22 Aug 2019 19:50:41 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 16D23233FD for ; Thu, 22 Aug 2019 19:50:41 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=vdorst.com header.i=@vdorst.com header.b="sGYPkcV9" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731253AbfHVTuk (ORCPT ); Thu, 22 Aug 2019 15:50:40 -0400 Received: from mx.0dd.nl ([5.2.79.48]:58488 "EHLO mx.0dd.nl" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726206AbfHVTuj (ORCPT ); Thu, 22 Aug 2019 15:50:39 -0400 Received: from mail.vdorst.com (mail.vdorst.com [IPv6:fd01::250]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx.0dd.nl (Postfix) with ESMTPS id 6B52F5FC44; Thu, 22 Aug 2019 21:50:33 +0200 (CEST) Authentication-Results: mx.0dd.nl; dkim=pass (2048-bit key; secure) header.d=vdorst.com header.i=@vdorst.com header.b="sGYPkcV9"; dkim-atps=neutral Received: from www (www.vdorst.com [192.168.2.222]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.vdorst.com (Postfix) with ESMTPSA id 0DD7B1D86FCC; Thu, 22 Aug 2019 21:50:33 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 mail.vdorst.com 0DD7B1D86FCC DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vdorst.com; s=default; t=1566503433; bh=LjRruTF0hUMFvK2uGE5RnytC6AgYmuenDz6R68xhRik=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=sGYPkcV9fmCnpgvWArSMG24obibm7EhdIhj6zFao2ORYC5m1Qys4QivQC7HEMIzJt W1W+jUlFZCSgYclOf9Ocf1Fx8NFe1qM3oF6Z1Hs/y26TeE3/Xcv/BOBPGDiB6xBGNQ T1Snx58ome1+G0ukthjyNzuGjrwQjpXVu6TDMOlBmMuJon0ChZPvRMDGcQT0tQcN2g xRw1nwwBQkMH6fL/DcKZG6zVz3I8UwHaeYihVuCfO+/MurddtloHhqsOl3Fwszcz7g 3h+bWKRP8qkG0EiOrDOoH7lPBzxHKL/3iwhhMFkjXbRYKdYHpxuQsrnu+Luz8XzTvy re6kVoPAuf+LA== Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by www.vdorst.com (Horde Framework) with HTTPS; Thu, 22 Aug 2019 19:50:33 +0000 Date: Thu, 22 Aug 2019 19:50:33 +0000 Message-ID: <20190822195033.Horde.hEW8FBGNfFrugQOCv0gaDfx@www.vdorst.com> From: =?utf-8?b?UmVuw6k=?= van Dorst To: Russell King - ARM Linux admin Cc: John Crispin , Sean Wang , Nelson Chang , "David S . Miller" , Matthias Brugger , Frank Wunderlich , netdev@vger.kernel.org, linux-mips@vger.kernel.org, linux-mediatek@lists.infradead.org, Stefan Roese , linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH net-next v2 2/3] net: ethernet: mediatek: Re-add support SGMII References: <20190821144336.9259-1-opensource@vdorst.com> <20190821144336.9259-3-opensource@vdorst.com> <20190822144433.GT13294@shell.armlinux.org.uk> In-Reply-To: <20190822144433.GT13294@shell.armlinux.org.uk> User-Agent: Horde Application Framework 5 Content-Type: text/plain; charset=utf-8; format=flowed; DelSp=Yes MIME-Version: 1.0 Content-Disposition: inline Content-Transfer-Encoding: 8bit Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Hi Russell, Quoting Russell King - ARM Linux admin : > On Wed, Aug 21, 2019 at 04:43:35PM +0200, René van Dorst wrote: >> + if (MTK_HAS_CAPS(mac->hw->soc->caps, MTK_SGMII)) { >> + if (state->interface != PHY_INTERFACE_MODE_2500BASEX) { >> phylink_set(mask, 1000baseT_Full); >> phylink_set(mask, 1000baseX_Full); >> + } else { >> + phylink_set(mask, 2500baseT_Full); >> + phylink_set(mask, 2500baseX_Full); >> + } > > If you can dynamically switch between 1000BASE-X and 2500BASE-X, then > you need to have both set. See mvneta.c: > > if (pp->comphy || state->interface != PHY_INTERFACE_MODE_2500BASEX) { > phylink_set(mask, 1000baseT_Full); > phylink_set(mask, 1000baseX_Full); > } > if (pp->comphy || state->interface == PHY_INTERFACE_MODE_2500BASEX) { > phylink_set(mask, 2500baseT_Full); > phylink_set(mask, 2500baseX_Full); > } > > What this is saying is, if we have a comphy (which is the serdes lane > facing component, where the data rate is setup) then we can support > both speeds (and so mask ends up with all four bits set.) Otherwise, > we only support a single-speed (1000Gbps for non-2500BASE-X etc.) > >> + } else { >> + if (state->interface == PHY_INTERFACE_MODE_TRGMII) { >> + phylink_set(mask, 1000baseT_Full); >> + } else { >> + phylink_set(mask, 10baseT_Half); >> + phylink_set(mask, 10baseT_Full); >> + phylink_set(mask, 100baseT_Half); >> + phylink_set(mask, 100baseT_Full); >> + >> + if (state->interface != PHY_INTERFACE_MODE_MII) { >> + phylink_set(mask, 1000baseT_Half); >> + phylink_set(mask, 1000baseT_Full); >> + phylink_set(mask, 1000baseX_Full); >> + } > > I'm also wondering about the "MTK_HAS_CAPS(mac->hw->soc->caps, > MTK_SGMII)" above. This totally wrong. MTK_HAS_CAPS(mac->hw->soc->caps, MTK_SGMII) tells me that the SOC has SGMII lane(s). Having a SGMII block doesn't mean that other functions aren't supported. I have to redo this! > (Here comes a reason why using SGMII to cover all single-lane serdes > modes causes confusion - unfortunately, some folk use SGMII to describe > all these modes. So, I'm going to use the terminology "Cisco SGMII" > to mean exactly the SGMII format published by Cisco, "802.3 1000BASE-X" > to mean the original IEEE 802.3 format running at 1.25Gbps, and > "up-clocked 2500BASE-X" to mean the 3.125Gbps version of the 802.3 > 1000BASE-X protocol.) Thanks for the explanation. In your previous review v1 you also explained it. I did change the forced modes for x-BaseX modes and auto negotiation for Cisco SGMII. But I seems to miss the link that I also have to improve this validation part. > > Isn't this set for Cisco SGMII as well as for 802.3 1000BASE-X and > the up-clocked 2500BASE-X modes? > > If so, is there a reason why 10Mbps and 100Mbps speeds aren't > supported on Cisco SGMII links? I can only tell a bit about the mt7622 SOC, datasheet tells me that: The SGMII is the interface between 10/100/1000/2500 Mbps PHY and Ethernet MAC, the spec is raised by Cisco in 1999, which is aims for pin reduction compare with the GMII. It uses 2 differential data pair for TX and RX with clock embedded bit stream to convey frame data and port ability information. The core leverages the 1000Base-X PCS and Auto-Negotiation from IEEE 802.3 specification (clause 36/37). This IP can support up to 3.125G baud for 2.5Gbps (proprietary 2500Base-X) data rate of MAC by overclocking. Also features tells me: Support 10/100/1000/2500 Mbps in full duplex mode and 10/100 Mbps in half duplex mode. I going make a new version. Greats, René > -- > RMK's Patch system: https://www.armlinux.org.uk/developer/patches/ > FTTC broadband for 0.8mile line in suburbia: sync at 12.1Mbps down 622kbps up > According to speedtest.net: 11.9Mbps down 500kbps up 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 X-Spam-Level: X-Spam-Status: No, score=-0.8 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,FROM_EXCESS_BASE64,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id F1B22C3A5A1 for ; Thu, 22 Aug 2019 19:50:39 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id 86DEA233FD for ; Thu, 22 Aug 2019 19:50:39 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="aEArhwSN"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=vdorst.com header.i=@vdorst.com header.b="sGYPkcV9" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 86DEA233FD Authentication-Results: mail.kernel.org; dmarc=fail (p=reject dis=none) header.from=vdorst.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender:Content-Type: Content-Transfer-Encoding:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:In-Reply-To:References:Subject:To:From: Message-ID:Date:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=Z5jzWXm/yEoJIjfuQkOO1Wbq9pEvdycZtmq7N9SLMME=; b=aEArhwSNDXaRZZSU7yUeBaytV SJ8iNP+mCkkrQaeZAlh982Lmcg2+qZ00HCYPZotB1v2BHDJn/QcOKkqw4BXfxS/OKVV21oRoq5iGN 3Z68/JcHznZ/SbYpZCt0gJ4k0PQ6pRMqY4tY/38OA9l5ys8vmyfW/GfTyXOLfgWS0uZN9lo5e3a2N /Fwk6MsPZD8KNJbW+k1U50x21ZgP86Lk6wzqnXGcRDuv7tGIFzUjSIAFtEk7Z1QQIO9mLfrm+LjjZ NhdNI/xehexmwsuSwQmeMQtxanr81JXaplt2TCDbx38pYU/atkL832YrO2E1mxRnq/zjG+isXp8T2 ERDVqy3tA==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92 #3 (Red Hat Linux)) id 1i0t6V-0002yx-4G; Thu, 22 Aug 2019 19:50:39 +0000 Received: from mx.0dd.nl ([2a04:52c0:101:921::25]) by bombadil.infradead.org with esmtp (Exim 4.92 #3 (Red Hat Linux)) id 1i0t6R-0002yU-0V; Thu, 22 Aug 2019 19:50:37 +0000 Received: from mail.vdorst.com (mail.vdorst.com [IPv6:fd01::250]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx.0dd.nl (Postfix) with ESMTPS id 6B52F5FC44; Thu, 22 Aug 2019 21:50:33 +0200 (CEST) Authentication-Results: mx.0dd.nl; dkim=pass (2048-bit key; secure) header.d=vdorst.com header.i=@vdorst.com header.b="sGYPkcV9"; dkim-atps=neutral Received: from www (www.vdorst.com [192.168.2.222]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.vdorst.com (Postfix) with ESMTPSA id 0DD7B1D86FCC; Thu, 22 Aug 2019 21:50:33 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 mail.vdorst.com 0DD7B1D86FCC DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vdorst.com; s=default; t=1566503433; bh=LjRruTF0hUMFvK2uGE5RnytC6AgYmuenDz6R68xhRik=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=sGYPkcV9fmCnpgvWArSMG24obibm7EhdIhj6zFao2ORYC5m1Qys4QivQC7HEMIzJt W1W+jUlFZCSgYclOf9Ocf1Fx8NFe1qM3oF6Z1Hs/y26TeE3/Xcv/BOBPGDiB6xBGNQ T1Snx58ome1+G0ukthjyNzuGjrwQjpXVu6TDMOlBmMuJon0ChZPvRMDGcQT0tQcN2g xRw1nwwBQkMH6fL/DcKZG6zVz3I8UwHaeYihVuCfO+/MurddtloHhqsOl3Fwszcz7g 3h+bWKRP8qkG0EiOrDOoH7lPBzxHKL/3iwhhMFkjXbRYKdYHpxuQsrnu+Luz8XzTvy re6kVoPAuf+LA== Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by www.vdorst.com (Horde Framework) with HTTPS; Thu, 22 Aug 2019 19:50:33 +0000 Date: Thu, 22 Aug 2019 19:50:33 +0000 Message-ID: <20190822195033.Horde.hEW8FBGNfFrugQOCv0gaDfx@www.vdorst.com> From: =?utf-8?b?UmVuw6k=?= van Dorst To: Russell King - ARM Linux admin Subject: Re: [PATCH net-next v2 2/3] net: ethernet: mediatek: Re-add support SGMII References: <20190821144336.9259-1-opensource@vdorst.com> <20190821144336.9259-3-opensource@vdorst.com> <20190822144433.GT13294@shell.armlinux.org.uk> In-Reply-To: <20190822144433.GT13294@shell.armlinux.org.uk> User-Agent: Horde Application Framework 5 MIME-Version: 1.0 Content-Disposition: inline X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190822_125035_472726_46275858 X-CRM114-Status: GOOD ( 20.42 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Nelson Chang , Frank Wunderlich , netdev@vger.kernel.org, Sean Wang , linux-mips@vger.kernel.org, linux-mediatek@lists.infradead.org, John Crispin , Matthias Brugger , Stefan Roese , "David S . Miller" , linux-arm-kernel@lists.infradead.org Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed"; DelSp="Yes" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org SGkgUnVzc2VsbCwKClF1b3RpbmcgUnVzc2VsbCBLaW5nIC0gQVJNIExpbnV4IGFkbWluIDxsaW51 eEBhcm1saW51eC5vcmcudWs+OgoKPiBPbiBXZWQsIEF1ZyAyMSwgMjAxOSBhdCAwNDo0MzozNVBN ICswMjAwLCBSZW7DqSB2YW4gRG9yc3Qgd3JvdGU6Cj4+ICsJaWYgKE1US19IQVNfQ0FQUyhtYWMt Pmh3LT5zb2MtPmNhcHMsIE1US19TR01JSSkpIHsKPj4gKwkJaWYgKHN0YXRlLT5pbnRlcmZhY2Ug IT0gUEhZX0lOVEVSRkFDRV9NT0RFXzI1MDBCQVNFWCkgewo+PiAgCQkJcGh5bGlua19zZXQobWFz aywgMTAwMGJhc2VUX0Z1bGwpOwo+PiAgCQkJcGh5bGlua19zZXQobWFzaywgMTAwMGJhc2VYX0Z1 bGwpOwo+PiArCQl9IGVsc2Ugewo+PiArCQkJcGh5bGlua19zZXQobWFzaywgMjUwMGJhc2VUX0Z1 bGwpOwo+PiArCQkJcGh5bGlua19zZXQobWFzaywgMjUwMGJhc2VYX0Z1bGwpOwo+PiArCQl9Cj4K PiBJZiB5b3UgY2FuIGR5bmFtaWNhbGx5IHN3aXRjaCBiZXR3ZWVuIDEwMDBCQVNFLVggYW5kIDI1 MDBCQVNFLVgsIHRoZW4KPiB5b3UgbmVlZCB0byBoYXZlIGJvdGggc2V0LiAgU2VlIG12bmV0YS5j Ogo+Cj4gICAgICAgICBpZiAocHAtPmNvbXBoeSB8fCBzdGF0ZS0+aW50ZXJmYWNlICE9IFBIWV9J TlRFUkZBQ0VfTU9ERV8yNTAwQkFTRVgpIHsKPiAgICAgICAgICAgICAgICAgcGh5bGlua19zZXQo bWFzaywgMTAwMGJhc2VUX0Z1bGwpOwo+ICAgICAgICAgICAgICAgICBwaHlsaW5rX3NldChtYXNr LCAxMDAwYmFzZVhfRnVsbCk7Cj4gICAgICAgICB9Cj4gICAgICAgICBpZiAocHAtPmNvbXBoeSB8 fCBzdGF0ZS0+aW50ZXJmYWNlID09IFBIWV9JTlRFUkZBQ0VfTU9ERV8yNTAwQkFTRVgpIHsKPiAg ICAgICAgICAgICAgICAgcGh5bGlua19zZXQobWFzaywgMjUwMGJhc2VUX0Z1bGwpOwo+ICAgICAg ICAgICAgICAgICBwaHlsaW5rX3NldChtYXNrLCAyNTAwYmFzZVhfRnVsbCk7Cj4gICAgICAgICB9 Cj4KPiBXaGF0IHRoaXMgaXMgc2F5aW5nIGlzLCBpZiB3ZSBoYXZlIGEgY29tcGh5ICh3aGljaCBp cyB0aGUgc2VyZGVzIGxhbmUKPiBmYWNpbmcgY29tcG9uZW50LCB3aGVyZSB0aGUgZGF0YSByYXRl IGlzIHNldHVwKSB0aGVuIHdlIGNhbiBzdXBwb3J0Cj4gYm90aCBzcGVlZHMgKGFuZCBzbyBtYXNr IGVuZHMgdXAgd2l0aCBhbGwgZm91ciBiaXRzIHNldC4pICBPdGhlcndpc2UsCj4gd2Ugb25seSBz dXBwb3J0IGEgc2luZ2xlLXNwZWVkICgxMDAwR2JwcyBmb3Igbm9uLTI1MDBCQVNFLVggZXRjLikK Pgo+PiArCX0gZWxzZSB7Cj4+ICsJCWlmIChzdGF0ZS0+aW50ZXJmYWNlID09IFBIWV9JTlRFUkZB Q0VfTU9ERV9UUkdNSUkpIHsKPj4gKwkJCXBoeWxpbmtfc2V0KG1hc2ssIDEwMDBiYXNlVF9GdWxs KTsKPj4gKwkJfSBlbHNlIHsKPj4gKwkJCXBoeWxpbmtfc2V0KG1hc2ssIDEwYmFzZVRfSGFsZik7 Cj4+ICsJCQlwaHlsaW5rX3NldChtYXNrLCAxMGJhc2VUX0Z1bGwpOwo+PiArCQkJcGh5bGlua19z ZXQobWFzaywgMTAwYmFzZVRfSGFsZik7Cj4+ICsJCQlwaHlsaW5rX3NldChtYXNrLCAxMDBiYXNl VF9GdWxsKTsKPj4gKwo+PiArCQkJaWYgKHN0YXRlLT5pbnRlcmZhY2UgIT0gUEhZX0lOVEVSRkFD RV9NT0RFX01JSSkgewo+PiArCQkJCXBoeWxpbmtfc2V0KG1hc2ssIDEwMDBiYXNlVF9IYWxmKTsK Pj4gKwkJCQlwaHlsaW5rX3NldChtYXNrLCAxMDAwYmFzZVRfRnVsbCk7Cj4+ICsJCQkJcGh5bGlu a19zZXQobWFzaywgMTAwMGJhc2VYX0Z1bGwpOwo+PiArCQkJfQo+Cj4gSSdtIGFsc28gd29uZGVy aW5nIGFib3V0IHRoZSAiTVRLX0hBU19DQVBTKG1hYy0+aHctPnNvYy0+Y2FwcywKPiBNVEtfU0dN SUkpIiBhYm92ZS4KClRoaXMgdG90YWxseSB3cm9uZy4KTVRLX0hBU19DQVBTKG1hYy0+aHctPnNv Yy0+Y2FwcywgTVRLX1NHTUlJKSB0ZWxscyBtZSB0aGF0IHRoZSBTT0MgaGFzIFNHTUlJCmxhbmUo cykuIEhhdmluZyBhIFNHTUlJIGJsb2NrIGRvZXNuJ3QgbWVhbiB0aGF0IG90aGVyIGZ1bmN0aW9u cyBhcmVuJ3QKc3VwcG9ydGVkLiBJIGhhdmUgdG8gcmVkbyB0aGlzIQoKPiAoSGVyZSBjb21lcyBh IHJlYXNvbiB3aHkgdXNpbmcgU0dNSUkgdG8gY292ZXIgYWxsIHNpbmdsZS1sYW5lIHNlcmRlcwo+ IG1vZGVzIGNhdXNlcyBjb25mdXNpb24gLSB1bmZvcnR1bmF0ZWx5LCBzb21lIGZvbGsgdXNlIFNH TUlJIHRvIGRlc2NyaWJlCj4gYWxsIHRoZXNlIG1vZGVzLiAgU28sIEknbSBnb2luZyB0byB1c2Ug dGhlIHRlcm1pbm9sb2d5ICJDaXNjbyBTR01JSSIKPiB0byBtZWFuIGV4YWN0bHkgdGhlIFNHTUlJ IGZvcm1hdCBwdWJsaXNoZWQgYnkgQ2lzY28sICI4MDIuMyAxMDAwQkFTRS1YIgo+IHRvIG1lYW4g dGhlIG9yaWdpbmFsIElFRUUgODAyLjMgZm9ybWF0IHJ1bm5pbmcgYXQgMS4yNUdicHMsIGFuZAo+ ICJ1cC1jbG9ja2VkIDI1MDBCQVNFLVgiIHRvIG1lYW4gdGhlIDMuMTI1R2JwcyB2ZXJzaW9uIG9m IHRoZSA4MDIuMwo+IDEwMDBCQVNFLVggcHJvdG9jb2wuKQoKVGhhbmtzIGZvciB0aGUgZXhwbGFu YXRpb24uIEluIHlvdXIgcHJldmlvdXMgcmV2aWV3IHYxIHlvdSBhbHNvIGV4cGxhaW5lZCBpdC4K SSBkaWQgY2hhbmdlIHRoZSBmb3JjZWQgbW9kZXMgZm9yIHgtQmFzZVggbW9kZXMgYW5kIGF1dG8g bmVnb3RpYXRpb24gZm9yIENpc2NvClNHTUlJLiBCdXQgSSBzZWVtcyB0byBtaXNzIHRoZSBsaW5r IHRoYXQgSSBhbHNvIGhhdmUgdG8gaW1wcm92ZSB0aGlzICAKdmFsaWRhdGlvbgpwYXJ0LgoKPgo+ IElzbid0IHRoaXMgc2V0IGZvciBDaXNjbyBTR01JSSBhcyB3ZWxsIGFzIGZvciA4MDIuMyAxMDAw QkFTRS1YIGFuZAo+IHRoZSB1cC1jbG9ja2VkIDI1MDBCQVNFLVggbW9kZXM/Cj4KPiBJZiBzbywg aXMgdGhlcmUgYSByZWFzb24gd2h5IDEwTWJwcyBhbmQgMTAwTWJwcyBzcGVlZHMgYXJlbid0Cj4g c3VwcG9ydGVkIG9uIENpc2NvIFNHTUlJIGxpbmtzPwoKSSBjYW4gb25seSB0ZWxsIGEgYml0IGFi b3V0IHRoZSBtdDc2MjIgU09DLCBkYXRhc2hlZXQgdGVsbHMgbWUgdGhhdDoKClRoZSBTR01JSSBp cyB0aGUgaW50ZXJmYWNlIGJldHdlZW4gMTAvMTAwLzEwMDAvMjUwMCBNYnBzIFBIWSBhbmQgRXRo ZXJuZXQgTUFDLAp0aGUgc3BlYyBpcyByYWlzZWQgYnkgQ2lzY28gaW4gMTk5OSwgd2hpY2ggaXMg YWltcyBmb3IgcGluIHJlZHVjdGlvbiBjb21wYXJlCndpdGggdGhlIEdNSUkuIEl0IHVzZXMgMiBk aWZmZXJlbnRpYWwgZGF0YSBwYWlyIGZvciBUWCBhbmQgUlggd2l0aCBjbG9jawplbWJlZGRlZCBi aXQgc3RyZWFtIHRvIGNvbnZleSBmcmFtZSBkYXRhIGFuZCBwb3J0IGFiaWxpdHkgaW5mb3JtYXRp b24uClRoZSBjb3JlIGxldmVyYWdlcyB0aGUgMTAwMEJhc2UtWCBQQ1MgYW5kIEF1dG8tTmVnb3Rp YXRpb24gZnJvbSBJRUVFIDgwMi4zCnNwZWNpZmljYXRpb24gKGNsYXVzZSAzNi8zNykuIFRoaXMg SVAgY2FuIHN1cHBvcnQgdXAgdG8gMy4xMjVHIGJhdWQgIApmb3IgMi41R2JwcwoocHJvcHJpZXRh cnkgMjUwMEJhc2UtWCkgZGF0YSByYXRlIG9mIE1BQyBieSBvdmVyY2xvY2tpbmcuCgpBbHNvIGZl YXR1cmVzIHRlbGxzIG1lOiBTdXBwb3J0IDEwLzEwMC8xMDAwLzI1MDAgTWJwcyBpbiBmdWxsIGR1 cGxleCBtb2RlIGFuZAoxMC8xMDAgTWJwcyBpbiBoYWxmIGR1cGxleCBtb2RlLgoKSSBnb2luZyBt YWtlIGEgbmV3IHZlcnNpb24uCgpHcmVhdHMsCgpSZW7DqQoKPiAtLQo+IFJNSydzIFBhdGNoIHN5 c3RlbTogaHR0cHM6Ly93d3cuYXJtbGludXgub3JnLnVrL2RldmVsb3Blci9wYXRjaGVzLwo+IEZU VEMgYnJvYWRiYW5kIGZvciAwLjhtaWxlIGxpbmUgaW4gc3VidXJiaWE6IHN5bmMgYXQgMTIuMU1i cHMgZG93biA2MjJrYnBzIHVwCj4gQWNjb3JkaW5nIHRvIHNwZWVkdGVzdC5uZXQ6IDExLjlNYnBz IGRvd24gNTAwa2JwcyB1cAoKCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5l bEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4v bGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=