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 A8C6E3E51EF for ; Tue, 14 Jul 2026 19:49:12 +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=1784058553; cv=none; b=CLPxBCdqnDCFu+AH7W7RnGntrJVZhyZ8SBuqiOQCWIYXx3k+3Fvi9mjY862yoZs5qE4CzCBYVAQsEctU7kXKg9YAPH3UFwDbLXl8lmLgdFh3vx7pnXroHokiruFFhpkeCf0ncPXceeAKusp0Z7x3v4R+OQsMQDk8os73yzh3M/M= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784058553; c=relaxed/simple; bh=DlosG/yGAi3Qsr++l20kT9WjRGZmVMronMYzSCtweJs=; h=From:Subject:To:Cc:In-Reply-To:References:Content-Type:Date: Message-Id; b=vFX0r8StK9DMcmyRpZQ3gU9nLGvdivezkUeH+vG7EQJKrghq2ZM+HqqKWKeOdPqxUl/DN3RNuGQJ8Zf6ccJdA0PaC98hysnXZT2UE/hcgvJw+TUedDJ4Hukr1slHIJqCYw8B4GuOkAbBxccmdv9/Im4LJgYT6t4LaZhdbqEF+g0= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=dd2jOJME; 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="dd2jOJME" Received: by smtp.kernel.org (Postfix) with ESMTPSA id E6E391F00A3A; Tue, 14 Jul 2026 19:49:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1784058552; bh=gpmN7x6mHbDfc5aSZg5UyFbzOaVVRm2tcc+RLzcQ77U=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=dd2jOJMEj6gZ8LIfmMZdeH8Nfpu8dC/ZItw2srE6h73rtd4CIc9XaP4vLijdV752q EtPvGRTX3+iH0xW4OTNjd8KT12Y3i6snbOUIYW8bZ7NEJT4vsmx8l8a5sIWGbD2OyJ vwEDcJ/YuvXi6X8X+eUHa6wEQ13P+H3aeVCgWYCfv049ekh8m5YCv+kJC3uQs4IOP1 5aBDPMgBrOavgzeXgJEQ0zTXY48gQsgMd/0cgIRtXV7tdMmis37OfoOMlliJOy3mjK gJJvNVtbI1GJbTKLssVNjZyeVTrqOwnTxa6P242ifWcT/OfiFwqdAhIARZQz0MT+jI bKLAOkaDfZ+oQ== From: sashiko-bot@kernel.org Subject: Re: [PATCH v13 10/35] phy: rockchip: usbdp: Add missing mode_change update Reply-To: sashiko-reviews@lists.linux.dev To: "Sebastian Reichel" Cc: robh@kernel.org, olteanv@gmail.com, vkoul@kernel.org, conor+dt@kernel.org, devicetree@vger.kernel.org, linux-phy@lists.infradead.org, neil.armstrong@linaro.org In-Reply-To: <20260714-rockchip-usbdp-cleanup-v13-10-6cb3e769d4c5@collabora.com> References: <20260714-rockchip-usbdp-cleanup-v13-0-6cb3e769d4c5@collabora.com> <20260714-rockchip-usbdp-cleanup-v13-10-6cb3e769d4c5@collabora.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Date: Tue, 14 Jul 2026 19:49:10 +0000 Message-Id: <20260714194911.E6E391F00A3A@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: New issues: - [High] Incomplete bug fix: rk_udphy_mode_set early return prevents PHY re= -initialization on cable flip. Pre-existing issues: - [High] Exiting DisplayPort Alt Mode bypasses mode update, permanently bre= aking USB 3.0. -- --- Patch [10]: [PATCH v13 10/35] phy: rockchip: usbdp: Add missing mode_ch= ange update --- commit 2fda37a8a08c68a5b07d269f553cf22878463e2b Author: Sebastian Reichel phy: rockchip: usbdp: Add missing mode_change update This patch introduces a helper to update available modes and set the mode_change flag for the Rockchip USBD PHY. This resolves missing re-initialization of the PHY to ensure DisplayPort functions correctly. > diff --git a/drivers/phy/rockchip/phy-rockchip-usbdp.c b/drivers/phy/rock= chip/phy-rockchip-usbdp.c > index 982315535caf7..7540c897dde13 100644 > --- a/drivers/phy/rockchip/phy-rockchip-usbdp.c > +++ b/drivers/phy/rockchip/phy-rockchip-usbdp.c > @@ -617,6 +617,15 @@ static void rk_udphy_dp_hpd_event_trigger(struct rk_= udphy *udphy, bool hpd) > rk_udphy_grfreg_write(udphy->vogrf, &cfg->vogrfcfg[udphy->id].hpd_trigg= er, hpd); > } > =20 > +static void rk_udphy_mode_set(struct rk_udphy *udphy, u8 mode) > +{ > + if (udphy->mode =3D=3D mode) > + return; [Severity: High] Does this early return prevent PHY re-initialization when the cable is flipped? If the user flips a Type-C cable while the USB controller keeps the PHY powered on, rk_udphy_set_typec_default_mapping() is called and it updates the software lane assignments. It then calls rk_udphy_mode_set(udphy, UDPHY_MODE_DP_USB). If the mode is already UDPHY_MODE_DP_USB, this helper returns early, leaving mode_change set to false. Subsequent calls might then skip initializing the PHY, causing the hardware lane routing to miss the new orientation. > + > + udphy->mode_change =3D true; > + udphy->mode =3D mode; > +} > + > static void rk_udphy_set_typec_default_mapping(struct rk_udphy *udphy) > { > if (udphy->flip) { [ ... ] > @@ -1361,10 +1370,7 @@ static int rk_udphy_typec_mux_set(struct typec_mux= _dev *mux, > usleep_range(750, 800); > rk_udphy_dp_hpd_event_trigger(udphy, true); > } else if (data->status & DP_STATUS_HPD_STATE) { > - if (udphy->mode !=3D mode) { > - udphy->mode =3D mode; > - udphy->mode_change =3D true; > - } > + rk_udphy_mode_set(udphy, mode); [Severity: High] This is a pre-existing issue, but does exiting DisplayPort Alt Mode permanently break USB 3.0? When the Type-C port exits Alt Mode (for example, the monitor goes to sleep or is disconnected logically), the framework calls typec_mux_set with state->mode =3D TYPEC_STATE_USB and state->alt =3D NULL. This function calculates the mode correctly, but the update itself is inside an if block: drivers/phy/rockchip/phy-rockchip-usbdp.c:rk_udphy_typec_mux_set() { ... if (state->alt && state->alt->svid =3D=3D USB_TYPEC_DP_SID) { ... } else if (data->status & DP_STATUS_HPD_STATE) { rk_udphy_mode_set(udphy, mode); rk_udphy_dp_hpd_event_trigger(udphy, true); ... } ... } Because state->alt is NULL, the update is skipped and udphy->mode remains stuck in UDPHY_MODE_DP. Later, when the USB controller tries to initialize, it checks !(udphy->mode & UDPHY_MODE_USB) and aborts, leaving USB broken until the device is replugged. > rk_udphy_dp_hpd_event_trigger(udphy, true); > } else { > rk_udphy_dp_hpd_event_trigger(udphy, false); --=20 Sashiko AI review =C2=B7 https://sashiko.dev/#/patchset/20260714-rockchip-u= sbdp-cleanup-v13-0-6cb3e769d4c5@collabora.com?part=3D10 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 5565AC4450A for ; Tue, 14 Jul 2026 19:49:14 +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=DBdtgedhzUZpVX1MEBwYZYvsJkKTIGtN276gdoSg9Pk=; b=xxvZrvS87MsWTZ +qtC7xAvGQN/1YfeFFWwgPbuyXGuy6sLEPLWETPgZ1eOAsF/EeGEXmKFDur3ybJSD4sIdf5WptwtG FVJ15n6cn14OdL2lmc2X9V/w+c3ph4yjjhEYKcJIn7apb94D7nsMIk7BPRjpR4GdlAIMuv3AqQjXg AqTBNY8ASQm1CiwEqzPS0CFPbGcoRoTx0j9o7z4wV1NEDDzdodXZyHQ3IqItgYscWHE15SRKRwl+2 qU1+y+ptRM9FzuTmiJ7flS+VpmZopulc8UuLYul9FOlf10Mm+/LSHpWwvu3I6pFr4uFMg7KeZN6kn igynI4wuHqxE3yc9lrOQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wjj7y-0000000DA7i-04F5; Tue, 14 Jul 2026 19:49:14 +0000 Received: from sea.source.kernel.org ([172.234.252.31]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wjj7w-0000000DA7B-30Gp for linux-phy@lists.infradead.org; Tue, 14 Jul 2026 19:49:12 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by sea.source.kernel.org (Postfix) with ESMTP id 7773A403CF; Tue, 14 Jul 2026 19:49:12 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id E6E391F00A3A; Tue, 14 Jul 2026 19:49:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1784058552; bh=gpmN7x6mHbDfc5aSZg5UyFbzOaVVRm2tcc+RLzcQ77U=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=dd2jOJMEj6gZ8LIfmMZdeH8Nfpu8dC/ZItw2srE6h73rtd4CIc9XaP4vLijdV752q EtPvGRTX3+iH0xW4OTNjd8KT12Y3i6snbOUIYW8bZ7NEJT4vsmx8l8a5sIWGbD2OyJ vwEDcJ/YuvXi6X8X+eUHa6wEQ13P+H3aeVCgWYCfv049ekh8m5YCv+kJC3uQs4IOP1 5aBDPMgBrOavgzeXgJEQ0zTXY48gQsgMd/0cgIRtXV7tdMmis37OfoOMlliJOy3mjK gJJvNVtbI1GJbTKLssVNjZyeVTrqOwnTxa6P242ifWcT/OfiFwqdAhIARZQz0MT+jI bKLAOkaDfZ+oQ== From: sashiko-bot@kernel.org Subject: Re: [PATCH v13 10/35] phy: rockchip: usbdp: Add missing mode_change update To: "Sebastian Reichel" Cc: robh@kernel.org, olteanv@gmail.com, vkoul@kernel.org, conor+dt@kernel.org, devicetree@vger.kernel.org, linux-phy@lists.infradead.org, neil.armstrong@linaro.org In-Reply-To: <20260714-rockchip-usbdp-cleanup-v13-10-6cb3e769d4c5@collabora.com> References: <20260714-rockchip-usbdp-cleanup-v13-0-6cb3e769d4c5@collabora.com> <20260714-rockchip-usbdp-cleanup-v13-10-6cb3e769d4c5@collabora.com> Date: Tue, 14 Jul 2026 19:49:10 +0000 Message-Id: <20260714194911.E6E391F00A3A@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 MiBwb3RlbnRpYWwgaXNzdWUocykgdG8gY29uc2lkZXI6CgpOZXcgaXNzdWVzOgotIFtIaWdoXSBJ bmNvbXBsZXRlIGJ1ZyBmaXg6IHJrX3VkcGh5X21vZGVfc2V0IGVhcmx5IHJldHVybiBwcmV2ZW50 cyBQSFkgcmUtaW5pdGlhbGl6YXRpb24gb24gY2FibGUgZmxpcC4KClByZS1leGlzdGluZyBpc3N1 ZXM6Ci0gW0hpZ2hdIEV4aXRpbmcgRGlzcGxheVBvcnQgQWx0IE1vZGUgYnlwYXNzZXMgbW9kZSB1 cGRhdGUsIHBlcm1hbmVudGx5IGJyZWFraW5nIFVTQiAzLjAuCi0tCgotLS0gUGF0Y2ggWzEwXTog W1BBVENIIHYxMyAxMC8zNV0gcGh5OiByb2NrY2hpcDogdXNiZHA6IEFkZCBtaXNzaW5nIG1vZGVf Y2hhbmdlIHVwZGF0ZSAtLS0KY29tbWl0IDJmZGEzN2E4YTA4YzY4YTViMDdkMjY5ZjU1M2NmMjI4 Nzg0NjNlMmIKQXV0aG9yOiBTZWJhc3RpYW4gUmVpY2hlbCA8c2ViYXN0aWFuLnJlaWNoZWxAY29s bGFib3JhLmNvbT4KCnBoeTogcm9ja2NoaXA6IHVzYmRwOiBBZGQgbWlzc2luZyBtb2RlX2NoYW5n ZSB1cGRhdGUKClRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhIGhlbHBlciB0byB1cGRhdGUgYXZhaWxh YmxlIG1vZGVzIGFuZCBzZXQgdGhlCm1vZGVfY2hhbmdlIGZsYWcgZm9yIHRoZSBSb2NrY2hpcCBV U0JEIFBIWS4gVGhpcyByZXNvbHZlcyBtaXNzaW5nCnJlLWluaXRpYWxpemF0aW9uIG9mIHRoZSBQ SFkgdG8gZW5zdXJlIERpc3BsYXlQb3J0IGZ1bmN0aW9ucyBjb3JyZWN0bHkuCgo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL3BoeS9yb2NrY2hpcC9waHktcm9ja2NoaXAtdXNiZHAuYyBiL2RyaXZlcnMv cGh5L3JvY2tjaGlwL3BoeS1yb2NrY2hpcC11c2JkcC5jCj4gaW5kZXggOTgyMzE1NTM1Y2FmNy4u NzU0MGM4OTdkZGUxMyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL3BoeS9yb2NrY2hpcC9waHktcm9j a2NoaXAtdXNiZHAuYwo+ICsrKyBiL2RyaXZlcnMvcGh5L3JvY2tjaGlwL3BoeS1yb2NrY2hpcC11 c2JkcC5jCj4gQEAgLTYxNyw2ICs2MTcsMTUgQEAgc3RhdGljIHZvaWQgcmtfdWRwaHlfZHBfaHBk X2V2ZW50X3RyaWdnZXIoc3RydWN0IHJrX3VkcGh5ICp1ZHBoeSwgYm9vbCBocGQpCj4gIAlya191 ZHBoeV9ncmZyZWdfd3JpdGUodWRwaHktPnZvZ3JmLCAmY2ZnLT52b2dyZmNmZ1t1ZHBoeS0+aWRd LmhwZF90cmlnZ2VyLCBocGQpOwo+ICB9Cj4gIAo+ICtzdGF0aWMgdm9pZCBya191ZHBoeV9tb2Rl X3NldChzdHJ1Y3QgcmtfdWRwaHkgKnVkcGh5LCB1OCBtb2RlKQo+ICt7Cj4gKwlpZiAodWRwaHkt Pm1vZGUgPT0gbW9kZSkKPiArCQlyZXR1cm47CgpbU2V2ZXJpdHk6IEhpZ2hdCkRvZXMgdGhpcyBl YXJseSByZXR1cm4gcHJldmVudCBQSFkgcmUtaW5pdGlhbGl6YXRpb24gd2hlbiB0aGUgY2FibGUg aXMKZmxpcHBlZD8KCklmIHRoZSB1c2VyIGZsaXBzIGEgVHlwZS1DIGNhYmxlIHdoaWxlIHRoZSBV U0IgY29udHJvbGxlciBrZWVwcyB0aGUgUEhZCnBvd2VyZWQgb24sIHJrX3VkcGh5X3NldF90eXBl Y19kZWZhdWx0X21hcHBpbmcoKSBpcyBjYWxsZWQgYW5kIGl0IHVwZGF0ZXMKdGhlIHNvZnR3YXJl IGxhbmUgYXNzaWdubWVudHMuIEl0IHRoZW4gY2FsbHMKcmtfdWRwaHlfbW9kZV9zZXQodWRwaHks IFVEUEhZX01PREVfRFBfVVNCKS4KCklmIHRoZSBtb2RlIGlzIGFscmVhZHkgVURQSFlfTU9ERV9E UF9VU0IsIHRoaXMgaGVscGVyIHJldHVybnMgZWFybHksIGxlYXZpbmcKbW9kZV9jaGFuZ2Ugc2V0 IHRvIGZhbHNlLiBTdWJzZXF1ZW50IGNhbGxzIG1pZ2h0IHRoZW4gc2tpcCBpbml0aWFsaXppbmcg dGhlClBIWSwgY2F1c2luZyB0aGUgaGFyZHdhcmUgbGFuZSByb3V0aW5nIHRvIG1pc3MgdGhlIG5l dyBvcmllbnRhdGlvbi4KCj4gKwo+ICsJdWRwaHktPm1vZGVfY2hhbmdlID0gdHJ1ZTsKPiArCXVk cGh5LT5tb2RlID0gbW9kZTsKPiArfQo+ICsKPiAgc3RhdGljIHZvaWQgcmtfdWRwaHlfc2V0X3R5 cGVjX2RlZmF1bHRfbWFwcGluZyhzdHJ1Y3QgcmtfdWRwaHkgKnVkcGh5KQo+ICB7Cj4gIAlpZiAo dWRwaHktPmZsaXApIHsKWyAuLi4gXQo+IEBAIC0xMzYxLDEwICsxMzcwLDcgQEAgc3RhdGljIGlu dCBya191ZHBoeV90eXBlY19tdXhfc2V0KHN0cnVjdCB0eXBlY19tdXhfZGV2ICptdXgsCj4gIAkJ CXVzbGVlcF9yYW5nZSg3NTAsIDgwMCk7Cj4gIAkJCXJrX3VkcGh5X2RwX2hwZF9ldmVudF90cmln Z2VyKHVkcGh5LCB0cnVlKTsKPiAgCQl9IGVsc2UgaWYgKGRhdGEtPnN0YXR1cyAmIERQX1NUQVRV U19IUERfU1RBVEUpIHsKPiAtCQkJaWYgKHVkcGh5LT5tb2RlICE9IG1vZGUpIHsKPiAtCQkJCXVk cGh5LT5tb2RlID0gbW9kZTsKPiAtCQkJCXVkcGh5LT5tb2RlX2NoYW5nZSA9IHRydWU7Cj4gLQkJ CX0KPiArCQkJcmtfdWRwaHlfbW9kZV9zZXQodWRwaHksIG1vZGUpOwoKW1NldmVyaXR5OiBIaWdo XQpUaGlzIGlzIGEgcHJlLWV4aXN0aW5nIGlzc3VlLCBidXQgZG9lcyBleGl0aW5nIERpc3BsYXlQ b3J0IEFsdCBNb2RlCnBlcm1hbmVudGx5IGJyZWFrIFVTQiAzLjA/CgpXaGVuIHRoZSBUeXBlLUMg cG9ydCBleGl0cyBBbHQgTW9kZSAoZm9yIGV4YW1wbGUsIHRoZSBtb25pdG9yIGdvZXMgdG8gc2xl ZXAKb3IgaXMgZGlzY29ubmVjdGVkIGxvZ2ljYWxseSksIHRoZSBmcmFtZXdvcmsgY2FsbHMgdHlw ZWNfbXV4X3NldCB3aXRoCnN0YXRlLT5tb2RlID0gVFlQRUNfU1RBVEVfVVNCIGFuZCBzdGF0ZS0+ YWx0ID0gTlVMTC4KClRoaXMgZnVuY3Rpb24gY2FsY3VsYXRlcyB0aGUgbW9kZSBjb3JyZWN0bHks IGJ1dCB0aGUgdXBkYXRlIGl0c2VsZiBpcyBpbnNpZGUKYW4gaWYgYmxvY2s6Cgpkcml2ZXJzL3Bo eS9yb2NrY2hpcC9waHktcm9ja2NoaXAtdXNiZHAuYzpya191ZHBoeV90eXBlY19tdXhfc2V0KCkg ewogICAgLi4uCiAgICBpZiAoc3RhdGUtPmFsdCAmJiBzdGF0ZS0+YWx0LT5zdmlkID09IFVTQl9U WVBFQ19EUF9TSUQpIHsKICAgICAgICAuLi4KICAgICAgICB9IGVsc2UgaWYgKGRhdGEtPnN0YXR1 cyAmIERQX1NUQVRVU19IUERfU1RBVEUpIHsKICAgICAgICAgICAgcmtfdWRwaHlfbW9kZV9zZXQo dWRwaHksIG1vZGUpOwogICAgICAgICAgICBya191ZHBoeV9kcF9ocGRfZXZlbnRfdHJpZ2dlcih1 ZHBoeSwgdHJ1ZSk7CiAgICAgICAgLi4uCiAgICB9CiAgICAuLi4KfQoKQmVjYXVzZSBzdGF0ZS0+ YWx0IGlzIE5VTEwsIHRoZSB1cGRhdGUgaXMgc2tpcHBlZCBhbmQgdWRwaHktPm1vZGUgcmVtYWlu cwpzdHVjayBpbiBVRFBIWV9NT0RFX0RQLiBMYXRlciwgd2hlbiB0aGUgVVNCIGNvbnRyb2xsZXIg dHJpZXMgdG8gaW5pdGlhbGl6ZSwKaXQgY2hlY2tzICEodWRwaHktPm1vZGUgJiBVRFBIWV9NT0RF X1VTQikgYW5kIGFib3J0cywgbGVhdmluZyBVU0IgYnJva2VuCnVudGlsIHRoZSBkZXZpY2UgaXMg cmVwbHVnZ2VkLgoKPiAgCQkJcmtfdWRwaHlfZHBfaHBkX2V2ZW50X3RyaWdnZXIodWRwaHksIHRy dWUpOwo+ICAJCX0gZWxzZSB7Cj4gIAkJCXJrX3VkcGh5X2RwX2hwZF9ldmVudF90cmlnZ2VyKHVk cGh5LCBmYWxzZSk7CgotLSAKU2FzaGlrbyBBSSByZXZpZXcgwrcgaHR0cHM6Ly9zYXNoaWtvLmRl di8jL3BhdGNoc2V0LzIwMjYwNzE0LXJvY2tjaGlwLXVzYmRwLWNsZWFudXAtdjEzLTAtNmNiM2U3 NjlkNGM1QGNvbGxhYm9yYS5jb20/cGFydD0xMAoKLS0gCmxpbnV4LXBoeSBtYWlsaW5nIGxpc3QK bGludXgtcGh5QGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cHM6Ly9saXN0cy5pbmZyYWRlYWQub3Jn L21haWxtYW4vbGlzdGluZm8vbGludXgtcGh5Cg==