From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (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 2572C331ECD for ; Fri, 14 Aug 2026 04:23:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786681433; cv=none; b=bvxlcfCD39ubvVEbim+rCoYpXhWs2uT0E71mbn/FZvny8GYe5QjRDxjkbB46OvqBFJ1VJoiA7pmSLjH6OJjqvtGSty+vP+sqDCsKqxibW5WOU2bMLkOculpmm08tD8cYXUdZgZZG9+8hZ/nrJrbVl0ORf41KqaRXvJVeP9OTuyY= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786681433; c=relaxed/simple; bh=AQEMWmZH6R5rGxyRN9kcMKaLGhEFfvt473+zMyIXpSQ=; h=From:Subject:To:Cc:In-Reply-To:References:Content-Type:Date: Message-Id; b=t+bok2coT/eoTmSBNoXp3+DDXfA4PbTxbes1A/n9dn/tny30tl5RF0kf2NAW2hqOI9HKWpUtLwpDeRMHNNDOae11zzFJ2lj6Wv2NKEpWMmuKisgxH/ViexOfPSKF9+ub5xVl8JbjNFDmJZZkwmsbNZqOq4GKVCeztLDdqG7chsE= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=kiB19n7x; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="kiB19n7x" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3B3C81F000E9; Fri, 14 Aug 2026 04:23:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1786681431; bh=7ecA2dpQ2ZAcKTr79TObxc90Kw0z+3n04P0JTcZdRc8=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=kiB19n7xusSxWAbxPLYZCDHL4Caasv4yumRR7FdXrhk4eSDgo3uqlsukXAcRExr3M t8Q3jJLWS1MYhSOZmHmGgZzayU8gQbUJZhP6KWPtpWfTClnH4WXaMUBnoaeDjky8+W uYuiv1tzU9s7drgJpHQTjGcf1cLNoPmlGQxZV7ggYb/PgCCHlSO4fqBX1z18PnjQUa /SEeytMb5bQRqFwi6nGd3EaztmWjWCBbhfYByetdudBwksmttoyXhoIiOyJpE+IItL fZPgHKoih1XR8JW6D7+IfGhrf7TMmsXLvYuPhmJlS07oI38XihCnZs7f+lEC4fAv3/ FSgdUPMLAMDfw== From: sashiko-bot@kernel.org Subject: Re: [PATCH v14 21/38] phy: rockchip: usbdp: Properly handle TYPEC_STATE_SAFE and TYPEC_STATE_USB Reply-To: sashiko-reviews@lists.linux.dev To: "Sebastian Reichel" Cc: neil.armstrong@linaro.org, olteanv@gmail.com, robh@kernel.org, vkoul@kernel.org, linux-phy@lists.infradead.org, conor+dt@kernel.org, devicetree@vger.kernel.org In-Reply-To: <20260813-rockchip-usbdp-cleanup-v14-21-b5ad9c68fa11@collabora.com> References: <20260813-rockchip-usbdp-cleanup-v14-0-b5ad9c68fa11@collabora.com> <20260813-rockchip-usbdp-cleanup-v14-21-b5ad9c68fa11@collabora.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Date: Fri, 14 Aug 2026 04:23:45 +0000 Message-Id: <20260814042351.3B3C81F000E9@smtp.kernel.org> Precedence: bulk X-Mailing-List: devicetree@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Thank you for your contribution! Sashiko AI review found 2 potential issue(= s) to consider: Pre-existing issues: - [High] Missing PHY hardware re-initialization on DP AltMode exit leaves U= SB 3.0 broken. - [High] Failure to re-enable U3 port (USB3) when transitioning from DP-onl= y mode back to DP+USB mode in rk_udphy_power_on. -- --- Patch [21]: [PATCH v14 21/38] phy: rockchip: usbdp: Properly handle TYP= EC_STATE_SAFE and TYPEC_STATE_USB --- commit bc1b433620764837d185aacbce6b35af43522e3a Author: Sebastian Reichel phy: rockchip: usbdp: Properly handle TYPEC_STATE_SAFE and TYPEC_STATE_USB This patch updates the Type-C mux set callback to handle safe state and USB state events. It ensures the software state is updated when exiting DP AltMode. Reported-by: Sashiko Closes: https://sashiko.dev/#/message/20260619155020.CC7361F000E9%40smtp.ke= rnel.org Tested-by: Igor Paunovic # Orange Pi 5 Plus Signed-off-by: Sebastian Reichel > diff --git a/drivers/phy/rockchip/phy-rockchip-usbdp.c b/drivers/phy/rock= chip/phy-rockchip-usbdp.c > index 4e54020d17551..0399cbf96e195 100644 > --- a/drivers/phy/rockchip/phy-rockchip-usbdp.c > +++ b/drivers/phy/rockchip/phy-rockchip-usbdp.c [ ... ] > @@ -1305,11 +1314,10 @@ static int rk_udphy_typec_mux_set(struct typec_mu= x_dev *mux, > struct rk_udphy *udphy =3D typec_mux_get_drvdata(mux); > =20 > - /* > - * Ignore mux events not involving DP AltMode, because > - * the mode field is being reused, e.g. state->mode =3D=3D 4 > - * could be either TYPEC_MODE_USB4 or TYPEC_DP_STATE_C. > - */ > - if (!state->alt || state->alt->svid !=3D USB_TYPEC_DP_SID) > + /* Ignore mux events not involving USB or DP */ > + if (!rk_udphy_is_supported_mode(state)) > return 0; > =20 > mutex_lock(&udphy->mutex); [Severity: High] This isn't a bug introduced by this patch, but does this logic leave USB 3.0 broken when exiting DP AltMode? When the Type-C mux transitions to TYPEC_STATE_SAFE or TYPEC_STATE_USB, rk_udphy_set_typec_state() updates the software state and sets phy_needs_reinit =3D true. Since the USB subsystem is already powered on, it will not call phy_power_on() again. The DP subsystem calls phy_power_off(), but rk_udphy_power_off() only clears the UDPHY_MODE_DP flag from the status without reinitializing the hardware. Can the PHY hardware remain stuck in 4-lane DP mode because the required re-initialization is never executed? There is another pre-existing issue in the re-initialization path that might prevent recovery. drivers/phy/rockchip/phy-rockchip-usbdp.c:rk_udphy_power_on() { [ ... ] } else if (udphy->phy_needs_reinit) { if (udphy->mode =3D=3D UDPHY_MODE_DP) rk_udphy_u3_port_disable(udphy, true); ret =3D rk_udphy_init(udphy); [ ... ] } [Severity: High] This is a pre-existing issue, but does the code fail to re-enable the U3 port when transitioning from DP-only mode back to DP+USB mode? When transitioning into UDPHY_MODE_DP, rk_udphy_power_on() disables the U3 port. However, when transitioning back to a mode supporting USB and hitting the udphy->phy_needs_reinit path, it merely calls rk_udphy_init() without calling rk_udphy_u3_port_disable(udphy, false) first. Would this omission cause a permanent regression for USB 3.0 functionality even if the PHY hardware was successfully re-initialized? --=20 Sashiko AI review =C2=B7 https://sashiko.dev/#/patchset/20260813-rockchip-u= sbdp-cleanup-v14-0-b5ad9c68fa11@collabora.com?part=3D21 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 98138C5CFCF for ; Fri, 14 Aug 2026 05:14:51 +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:MIME-Version:Reply-To:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:Message-Id:Date: References:In-Reply-To:Cc:To:Subject:From:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=8mmFvg2hanuXGD3nYj4hcGpWNobyGRVxC5xWVO5h2B8=; b=lJ0nwUIgDRkY6S ovd3j+Sz19wXv75WUmikAeyowyNxzgTd2Ygs7Q94E4vC8TfYN7i5z9FPxTydBdugKiuUnuAFhFZNF AOlBnldF+AKjbLHLzu5ctM8AGUmUTOiVp7aBATKKkaMRS17QpTuKwaXFTgZhcaYLiwWRqUxCJQrPN PAxm0fNrvDlL1eY05Ajk815yAF8rhL7TaQc30h05BOCoSh2dRpd+xXVQjmdAEG5ICtdx9adhxsYGX 1EnP3W9iZ/T5ycAoTs07onFSbur9QnJVdVTm4fmvPubuGy1oXbtdK8qilc+XCrhJroDCwMXFAoyw3 UEO0aKMhMwlpUnkNsjiw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wujST-00000001vrc-2sKX; Fri, 14 Aug 2026 04:23:53 +0000 Received: from tor.source.kernel.org ([2600:3c04:e001:324:0:1991:8:25]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wujSS-00000001vrW-41wp for linux-phy@lists.infradead.org; Fri, 14 Aug 2026 04:23:53 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by tor.source.kernel.org (Postfix) with ESMTP id 12135600AD; Fri, 14 Aug 2026 04:23:52 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3B3C81F000E9; Fri, 14 Aug 2026 04:23:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1786681431; bh=7ecA2dpQ2ZAcKTr79TObxc90Kw0z+3n04P0JTcZdRc8=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=kiB19n7xusSxWAbxPLYZCDHL4Caasv4yumRR7FdXrhk4eSDgo3uqlsukXAcRExr3M t8Q3jJLWS1MYhSOZmHmGgZzayU8gQbUJZhP6KWPtpWfTClnH4WXaMUBnoaeDjky8+W uYuiv1tzU9s7drgJpHQTjGcf1cLNoPmlGQxZV7ggYb/PgCCHlSO4fqBX1z18PnjQUa /SEeytMb5bQRqFwi6nGd3EaztmWjWCBbhfYByetdudBwksmttoyXhoIiOyJpE+IItL fZPgHKoih1XR8JW6D7+IfGhrf7TMmsXLvYuPhmJlS07oI38XihCnZs7f+lEC4fAv3/ FSgdUPMLAMDfw== From: sashiko-bot@kernel.org Subject: Re: [PATCH v14 21/38] phy: rockchip: usbdp: Properly handle TYPEC_STATE_SAFE and TYPEC_STATE_USB To: "Sebastian Reichel" Cc: neil.armstrong@linaro.org, olteanv@gmail.com, robh@kernel.org, vkoul@kernel.org, linux-phy@lists.infradead.org, conor+dt@kernel.org, devicetree@vger.kernel.org In-Reply-To: <20260813-rockchip-usbdp-cleanup-v14-21-b5ad9c68fa11@collabora.com> References: <20260813-rockchip-usbdp-cleanup-v14-0-b5ad9c68fa11@collabora.com> <20260813-rockchip-usbdp-cleanup-v14-21-b5ad9c68fa11@collabora.com> Date: Fri, 14 Aug 2026 04:23:45 +0000 Message-Id: <20260814042351.3B3C81F000E9@smtp.kernel.org> X-BeenThere: linux-phy@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux Phy Mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: sashiko-reviews@lists.linux.dev MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-phy" Errors-To: linux-phy-bounces+linux-phy=archiver.kernel.org@lists.infradead.org VGhhbmsgeW91IGZvciB5b3VyIGNvbnRyaWJ1dGlvbiEgU2FzaGlrbyBBSSByZXZpZXcgZm91bmQg MiBwb3RlbnRpYWwgaXNzdWUocykgdG8gY29uc2lkZXI6CgpQcmUtZXhpc3RpbmcgaXNzdWVzOgot IFtIaWdoXSBNaXNzaW5nIFBIWSBoYXJkd2FyZSByZS1pbml0aWFsaXphdGlvbiBvbiBEUCBBbHRN b2RlIGV4aXQgbGVhdmVzIFVTQiAzLjAgYnJva2VuLgotIFtIaWdoXSBGYWlsdXJlIHRvIHJlLWVu YWJsZSBVMyBwb3J0IChVU0IzKSB3aGVuIHRyYW5zaXRpb25pbmcgZnJvbSBEUC1vbmx5IG1vZGUg YmFjayB0byBEUCtVU0IgbW9kZSBpbiBya191ZHBoeV9wb3dlcl9vbi4KLS0KCi0tLSBQYXRjaCBb MjFdOiBbUEFUQ0ggdjE0IDIxLzM4XSBwaHk6IHJvY2tjaGlwOiB1c2JkcDogUHJvcGVybHkgaGFu ZGxlIFRZUEVDX1NUQVRFX1NBRkUgYW5kIFRZUEVDX1NUQVRFX1VTQiAtLS0KY29tbWl0IGJjMWI0 MzM2MjA3NjQ4MzdkMTg1YWFjYmNlNmIzNWFmNDM1MjJlM2EKQXV0aG9yOiBTZWJhc3RpYW4gUmVp Y2hlbCA8c2ViYXN0aWFuLnJlaWNoZWxAY29sbGFib3JhLmNvbT4KCnBoeTogcm9ja2NoaXA6IHVz YmRwOiBQcm9wZXJseSBoYW5kbGUgVFlQRUNfU1RBVEVfU0FGRSBhbmQgVFlQRUNfU1RBVEVfVVNC CgpUaGlzIHBhdGNoIHVwZGF0ZXMgdGhlIFR5cGUtQyBtdXggc2V0IGNhbGxiYWNrIHRvIGhhbmRs ZSBzYWZlIHN0YXRlIGFuZCBVU0IKc3RhdGUgZXZlbnRzLiBJdCBlbnN1cmVzIHRoZSBzb2Z0d2Fy ZSBzdGF0ZSBpcyB1cGRhdGVkIHdoZW4gZXhpdGluZyBEUApBbHRNb2RlLgoKUmVwb3J0ZWQtYnk6 IFNhc2hpa28gPHNhc2hpa28tYm90QGtlcm5lbC5vcmc+CkNsb3NlczogaHR0cHM6Ly9zYXNoaWtv LmRldi8jL21lc3NhZ2UvMjAyNjA2MTkxNTUwMjAuQ0M3MzYxRjAwMEU5JTQwc210cC5rZXJuZWwu b3JnClRlc3RlZC1ieTogSWdvciBQYXVub3ZpYyA8cm95YWxuZXQwMjZAZ21haWwuY29tPiAjIE9y YW5nZSBQaSA1IFBsdXMKU2lnbmVkLW9mZi1ieTogU2ViYXN0aWFuIFJlaWNoZWwgPHNlYmFzdGlh bi5yZWljaGVsQGNvbGxhYm9yYS5jb20+Cgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3BoeS9yb2Nr Y2hpcC9waHktcm9ja2NoaXAtdXNiZHAuYyBiL2RyaXZlcnMvcGh5L3JvY2tjaGlwL3BoeS1yb2Nr Y2hpcC11c2JkcC5jCj4gaW5kZXggNGU1NDAyMGQxNzU1MS4uMDM5OWNiZjk2ZTE5NSAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL3BoeS9yb2NrY2hpcC9waHktcm9ja2NoaXAtdXNiZHAuYwo+ICsrKyBi L2RyaXZlcnMvcGh5L3JvY2tjaGlwL3BoeS1yb2NrY2hpcC11c2JkcC5jClsgLi4uIF0KPiBAQCAt MTMwNSwxMSArMTMxNCwxMCBAQCBzdGF0aWMgaW50IHJrX3VkcGh5X3R5cGVjX211eF9zZXQoc3Ry dWN0IHR5cGVjX211eF9kZXYgKm11eCwKPiAgCXN0cnVjdCBya191ZHBoeSAqdWRwaHkgPSB0eXBl Y19tdXhfZ2V0X2RydmRhdGEobXV4KTsKPiAgCj4gLQkvKgo+IC0JICogSWdub3JlIG11eCBldmVu dHMgbm90IGludm9sdmluZyBEUCBBbHRNb2RlLCBiZWNhdXNlCj4gLQkgKiB0aGUgbW9kZSBmaWVs ZCBpcyBiZWluZyByZXVzZWQsIGUuZy4gc3RhdGUtPm1vZGUgPT0gNAo+IC0JICogY291bGQgYmUg ZWl0aGVyIFRZUEVDX01PREVfVVNCNCBvciBUWVBFQ19EUF9TVEFURV9DLgo+IC0JICovCj4gLQlp ZiAoIXN0YXRlLT5hbHQgfHwgc3RhdGUtPmFsdC0+c3ZpZCAhPSBVU0JfVFlQRUNfRFBfU0lEKQo+ ICsJLyogSWdub3JlIG11eCBldmVudHMgbm90IGludm9sdmluZyBVU0Igb3IgRFAgKi8KPiArCWlm ICghcmtfdWRwaHlfaXNfc3VwcG9ydGVkX21vZGUoc3RhdGUpKQo+ICAJCXJldHVybiAwOwo+ICAK PiAgCW11dGV4X2xvY2soJnVkcGh5LT5tdXRleCk7CgpbU2V2ZXJpdHk6IEhpZ2hdClRoaXMgaXNu J3QgYSBidWcgaW50cm9kdWNlZCBieSB0aGlzIHBhdGNoLCBidXQgZG9lcyB0aGlzIGxvZ2ljIGxl YXZlIFVTQiAzLjAKYnJva2VuIHdoZW4gZXhpdGluZyBEUCBBbHRNb2RlPwoKV2hlbiB0aGUgVHlw ZS1DIG11eCB0cmFuc2l0aW9ucyB0byBUWVBFQ19TVEFURV9TQUZFIG9yIFRZUEVDX1NUQVRFX1VT QiwKcmtfdWRwaHlfc2V0X3R5cGVjX3N0YXRlKCkgdXBkYXRlcyB0aGUgc29mdHdhcmUgc3RhdGUg YW5kIHNldHMKcGh5X25lZWRzX3JlaW5pdCA9IHRydWUuCgpTaW5jZSB0aGUgVVNCIHN1YnN5c3Rl bSBpcyBhbHJlYWR5IHBvd2VyZWQgb24sIGl0IHdpbGwgbm90IGNhbGwKcGh5X3Bvd2VyX29uKCkg YWdhaW4uIFRoZSBEUCBzdWJzeXN0ZW0gY2FsbHMgcGh5X3Bvd2VyX29mZigpLCBidXQKcmtfdWRw aHlfcG93ZXJfb2ZmKCkgb25seSBjbGVhcnMgdGhlIFVEUEhZX01PREVfRFAgZmxhZyBmcm9tIHRo ZSBzdGF0dXMKd2l0aG91dCByZWluaXRpYWxpemluZyB0aGUgaGFyZHdhcmUuCgpDYW4gdGhlIFBI WSBoYXJkd2FyZSByZW1haW4gc3R1Y2sgaW4gNC1sYW5lIERQIG1vZGUgYmVjYXVzZSB0aGUgcmVx dWlyZWQKcmUtaW5pdGlhbGl6YXRpb24gaXMgbmV2ZXIgZXhlY3V0ZWQ/CgpUaGVyZSBpcyBhbm90 aGVyIHByZS1leGlzdGluZyBpc3N1ZSBpbiB0aGUgcmUtaW5pdGlhbGl6YXRpb24gcGF0aCB0aGF0 IG1pZ2h0CnByZXZlbnQgcmVjb3ZlcnkuCgpkcml2ZXJzL3BoeS9yb2NrY2hpcC9waHktcm9ja2No aXAtdXNiZHAuYzpya191ZHBoeV9wb3dlcl9vbigpIHsKWyAuLi4gXQogICAgICAgIH0gZWxzZSBp ZiAodWRwaHktPnBoeV9uZWVkc19yZWluaXQpIHsKICAgICAgICAgICAgICAgIGlmICh1ZHBoeS0+ bW9kZSA9PSBVRFBIWV9NT0RFX0RQKQogICAgICAgICAgICAgICAgICAgICAgICBya191ZHBoeV91 M19wb3J0X2Rpc2FibGUodWRwaHksIHRydWUpOwoKICAgICAgICAgICAgICAgIHJldCA9IHJrX3Vk cGh5X2luaXQodWRwaHkpOwpbIC4uLiBdCn0KCltTZXZlcml0eTogSGlnaF0KVGhpcyBpcyBhIHBy ZS1leGlzdGluZyBpc3N1ZSwgYnV0IGRvZXMgdGhlIGNvZGUgZmFpbCB0byByZS1lbmFibGUgdGhl IFUzCnBvcnQgd2hlbiB0cmFuc2l0aW9uaW5nIGZyb20gRFAtb25seSBtb2RlIGJhY2sgdG8gRFAr VVNCIG1vZGU/CgpXaGVuIHRyYW5zaXRpb25pbmcgaW50byBVRFBIWV9NT0RFX0RQLCBya191ZHBo eV9wb3dlcl9vbigpIGRpc2FibGVzIHRoZQpVMyBwb3J0LiBIb3dldmVyLCB3aGVuIHRyYW5zaXRp b25pbmcgYmFjayB0byBhIG1vZGUgc3VwcG9ydGluZyBVU0IgYW5kCmhpdHRpbmcgdGhlIHVkcGh5 LT5waHlfbmVlZHNfcmVpbml0IHBhdGgsIGl0IG1lcmVseSBjYWxscyBya191ZHBoeV9pbml0KCkK d2l0aG91dCBjYWxsaW5nIHJrX3VkcGh5X3UzX3BvcnRfZGlzYWJsZSh1ZHBoeSwgZmFsc2UpIGZp cnN0LgoKV291bGQgdGhpcyBvbWlzc2lvbiBjYXVzZSBhIHBlcm1hbmVudCByZWdyZXNzaW9uIGZv ciBVU0IgMy4wIGZ1bmN0aW9uYWxpdHkKZXZlbiBpZiB0aGUgUEhZIGhhcmR3YXJlIHdhcyBzdWNj ZXNzZnVsbHkgcmUtaW5pdGlhbGl6ZWQ/CgotLSAKU2FzaGlrbyBBSSByZXZpZXcgwrcgaHR0cHM6 Ly9zYXNoaWtvLmRldi8jL3BhdGNoc2V0LzIwMjYwODEzLXJvY2tjaGlwLXVzYmRwLWNsZWFudXAt djE0LTAtYjVhZDljNjhmYTExQGNvbGxhYm9yYS5jb20/cGFydD0yMQoKLS0gCmxpbnV4LXBoeSBt YWlsaW5nIGxpc3QKbGludXgtcGh5QGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cHM6Ly9saXN0cy5p bmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtcGh5Cg==