From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.remote-ip=100.103.45.18 ARC-Seal: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; cv=none; t=1794658033; b=Znljuk65GyNJy6h+X1lI4mDasdAabE6zF2bLfG8zrAjbu7KxCXD8+AD6KFSwEaPpsYr1 alyBugGKpEk5it265ValXxq4Q2AjAPXjZDIUvgtTWiiAfROixh3vfPSONrLK3UYHYtEVo /MXYY0DjTVWxNx01plTQ7R5ZmxbHGRRgLLEXUgtSjh6VNyQlMrWoDndwUp5+NvZpyXBKn xFJwK/E6NZOXe5Z4ovLc745mIiF6RdaOXzBGoNqOyCB+9ol24vOhp+VvaqN/1qwvF2Dm5 2++QbDFDRaemea3hEHs8crFn3784Su9/C5ja0J8z6l0CVpa5cwFRUWwIVbyfoBW5ntg== ARC-Message-Signature: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; c=relaxed/relaxed; t=1794658033; h=Received:DKIM-Signature:Message-ID:From:Subject:Reply-To:To:Cc: In-Reply-To:References:Content-Type:Content-Transfer-Encoding:Date; bh=weDOTmg75K/HqTA6ws/VutEVqs5lbo7Fs+CjNB1vU4U=; b=FQJxF9p75PKc8sZWNf+BWBicB9J3swtFr+/SHVIlj0R/R0bnm/JdYktajxQmzD7GkAu5 q3XvK1C8CigxA/3Z8y3vH8ocwakXrj4Df/S5U/IGhqmKliZlz49BYRqGPH/GXat2X9gd6 ipNeHsJGi1jPw/LSlTig62Xk9IVH9cK9Kyu2twNslwgcey4aQm6dnVoKV0dgGCy2yIgFA UkY1KWXdD0L9hl15jdG9DBrDz1tI+sEKpP/8ZBsb3Vfb33oOwg3PY1KpJlwmhr/3cDa/p 0fE1at3NZIIx4WRgBxB9rWFh9Acac3DrE8Wk+iujeQpH+06+zpRjF3/74aZOQ42RZcQ== ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256 header.s=k20260515 header.b=UUQUMhpp; arc=none smtp.remote-ip=100.103.45.18 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (prime256v1)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id F0C8F606A329 for ; Sat, 14 Nov 2026 12:07:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256 header.s=k20260515 header.b=UUQUMhpp Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1A8DE1F000C4; Sat, 14 Nov 2026 12:07:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1794658032; bh=weDOTmg75K/HqTA6ws/VutEVqs5lbo7Fs+CjNB1vU4U=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=UUQUMhppD6J6XtFmGdiEx+3N9Mx9WoBWc960Jv5QNqMvxt88wyYeSCaQdH6f0eTiW aukM/aEvrny5/z/d3L/2M3NZlG57K/Se5amQhJTPWUo6IDt2BXRF62lGSvPA7uVSdh BksT+r/zMywpD2C+Q4waqfmTScB7NvMx3LLdP5VspqpI3FHy4MMsjxdi0rbXuXuGP8 da0E+aneyeDvTbcCS7++wLP2tDmt0bn6ag49hUMJ5x8rX7TQc5OVWpG+VHyN+oWsKx wzG9PU0SO1bCi9PeHtqbxpAedNzLIow2M0TDoFFWrhRhGq51qOZltLljYMyyPy4ZuW vTUluOOMe6N4A== Message-ID: From: sashiko-bot@kernel.org Subject: Re: [PATCH v7 09/23] media: qcom: camss: csid: Scale the clocks with the CSI-2 link rate Reply-To: sashiko-reviews@lists.linux.dev To: "Wenmeng Liu" Cc: linux-phy@lists.infradead.org, devicetree@vger.kernel.org, robh@kernel.org, conor+dt@kernel.org, media-ci@linuxtv.org, vkoul@kernel.org, neil.armstrong@linaro.org, olteanv@gmail.com In-Reply-To: <20261114-add-support-for-camss-on-sm8750-v7-9-8ff2a11835f6@oss.qualcomm.com> References: <20261114-add-support-for-camss-on-sm8750-v7-0-8ff2a11835f6@oss.qualcomm.com> <20261114-add-support-for-camss-on-sm8750-v7-9-8ff2a11835f6@oss.qualcomm.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Date: Sat, 14 Nov 2026 12:07:11 +0000 X-Mailing-List: devicetree@vger.kernel.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list Thank you for your contribution! Sashiko AI review found 1 potential issue to consider: - [High] media: qcom: camss: csid: sibling phy_rx branch clocks drop shared RCG rate -- commit 08b369e2e076c38176db85510f92710a98c49c6c Author: Loic Poulain media: qcom: camss: csid: Scale the clocks with the CSI-2 link rate This commit scales the CSID core and CSIPHY receive clocks across all SoC generations based on the CSI-2 link frequency and votes for minimum clock rates using clk_set_rate_range() and clk_drop_range(). > diff --git a/drivers/media/platform/qcom/camss/camss-csid.c b/drivers/med= ia/platform/qcom/camss/camss-csid.c > index 51f20907ffde6..714cea6883a78 100644 > --- a/drivers/media/platform/qcom/camss/camss-csid.c > +++ b/drivers/media/platform/qcom/camss/camss-csid.c [ ... ] > @@ -532,72 +533,197 @@ const struct csid_format_info *csid_get_fmt_entry(= const struct csid_format_info > return &formats[0]; > } > =20 [ ... ] > + /* > + * Vote for the rate as a minimum, as the clock may be shared > + * with another CSID which needs it to run faster. > + */ > + ret =3D clk_set_rate_range(clock->clk, clock->freq[j], ULONG_MAX); > + if (ret < 0) { > + dev_err(dev, "clk set rate range failed: %d\n", ret); > + return ret; > + } > } > =20 > return 0; > } > =20 > +/* > + * Drop the minimum rates the CSID votes for and take its clocks back to= their > + * lowest level, or to the lowest level the other users of a shared cloc= k need. > + */ > +static void csid_release_clock_rates(struct csid_device *csid) > +{ > + int i; > + > + for (i =3D 0; i < csid->nclocks; i++) { > + struct camss_clock *clock =3D &csid->clock[i]; > + long rate; > + > + if (!clock->nfreqs || !csid_match_scaled_clock_name(clock)) > + continue; > + > + clk_drop_range(clock->clk); > + > + /* Round first, so that the rate respects the other votes */ > + rate =3D clk_round_rate(clock->clk, clock->freq[0]); > + if (rate > 0) > + clk_set_rate(clock->clk, rate); > + } > +} [Severity: High] Can voting on clock->clk with clk_set_rate_range() fail to protect the shared receive RCG when two CSIDs use different child branch clocks? On SoCs such as SM8550, SM8750, Kaanapali, SA8775P, and SM6150, full and lite CSIDs (or individual CSID instances) acquire separate phy_rx branch clocks (for example "csiphy_rx" / cam_cc_csid_csiphy_rx_clk and "vfe_lite_cphy_rx" / cam_cc_ife_lite_cphy_rx_clk) that set CLK_SET_RATE_PARENT and share the single parent RCG cam_cc_cphy_rx_clk_src: drivers/media/platform/qcom/camss/camss.c:csid_res_8550[] =3D { ... /* CSID0 (full) */ .clock =3D { "csid", "csiphy_rx" }, .clock_rate =3D { { 400000000, 480000000 }, { 400000000, 480000000 } }, ... /* CSID_LITE0 */ .clock =3D { "vfe_lite_csid", "vfe_lite_cphy_rx" }, .clock_rate =3D { { 400000000, 480000000 }, { 400000000, 480000000 } }, ... }; Because clk_set_rate_range() records the minimum rate on the child branch clock's clk_core rather than on the shared parent RCG's clk_core, rate calculations on one branch clock only inspect the rate boundaries of that branch and its parent RCG, ignoring minimum rate votes held on sibling branch clocks. If CSID0 is streaming at 480 MHz and CSID_LITE0 either starts a slower stream or stops and runs csid_release_clock_rates() to set clock->freq[0] (400 MHz), the clock framework lowers cam_cc_cphy_rx_clk_src to 400 MHz and underclocks CSID0 mid-stream. --=20 Sashiko AI review =C2=B7 https://sashiko.dev/#/patchset/20261114-add-suppor= t-for-camss-on-sm8750-v7-0-8ff2a11835f6@oss.qualcomm.com?part=3D9 From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8AC93606A331 for ; Sat, 14 Nov 2026 12:07:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.a=rsa-sha256 header.s=bombadil.20210309 header.b=BiF3XPKI; dkim=fail reason="signature verification failed" (2048-bit key) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256 header.s=k20260515 header.b=UUQUMhpp 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:Date:References: In-Reply-To:Cc:To:Subject:From:Message-ID:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Unsubscribe-Post:List-Owner; bh=HEWVtTnRafKD8OSSvp3Ry5Kpl94yBKQyv3YM0Qcr6lg=; b=BiF3XPKIAIHz3TUMZjUJxZ76mt N2r5LKItVaNWBMH21gpxM+FORDOwZeJ0T1x6c8ZUwlsPZztBKgZHr3YFbtgxIt7Ef0JLHqO+bNsrR hu9YyUPiE92n0EyPmTFgRmPFzUKLWuntCWp69UckGiL9bBj7v63tArzxtCQOhbY0oNq+dvYhXNNl2 as81xNjvwaObwPe4q105eZAGzij5i3Zy0qw/n6GMwUvO+6xIsAyK1RPvCbLdGbUCcFN89aVZBxVJx tXFcy+q4EafxXJYw8pRVmKrfbkR7ibD9rGj9InAMZXiJQNcEsiTGJLhyTzOaPULKQqJmk6oesCqDB MJiFSyZQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.100.1 #2 (Red Hat Linux)) id 1xSCXK-0000000FzmI-0i9A; Sat, 14 Nov 2026 12:07:14 +0000 Received: from tor.source.kernel.org ([172.105.4.254]) by bombadil.infradead.org with esmtps (Exim 4.100.1 #2 (Red Hat Linux)) id 1xSCXJ-0000000FzmC-1aCQ for linux-phy@lists.infradead.org; Sat, 14 Nov 2026 12:07:13 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by tor.source.kernel.org (Postfix) with ESMTP id CBB3361E39; Sat, 14 Nov 2026 12:07:12 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1A8DE1F000C4; Sat, 14 Nov 2026 12:07:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1794658032; bh=weDOTmg75K/HqTA6ws/VutEVqs5lbo7Fs+CjNB1vU4U=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=UUQUMhppD6J6XtFmGdiEx+3N9Mx9WoBWc960Jv5QNqMvxt88wyYeSCaQdH6f0eTiW aukM/aEvrny5/z/d3L/2M3NZlG57K/Se5amQhJTPWUo6IDt2BXRF62lGSvPA7uVSdh BksT+r/zMywpD2C+Q4waqfmTScB7NvMx3LLdP5VspqpI3FHy4MMsjxdi0rbXuXuGP8 da0E+aneyeDvTbcCS7++wLP2tDmt0bn6ag49hUMJ5x8rX7TQc5OVWpG+VHyN+oWsKx wzG9PU0SO1bCi9PeHtqbxpAedNzLIow2M0TDoFFWrhRhGq51qOZltLljYMyyPy4ZuW vTUluOOMe6N4A== Message-ID: From: sashiko-bot@kernel.org Subject: Re: [PATCH v7 09/23] media: qcom: camss: csid: Scale the clocks with the CSI-2 link rate To: "Wenmeng Liu" Cc: linux-phy@lists.infradead.org, devicetree@vger.kernel.org, robh@kernel.org, conor+dt@kernel.org, media-ci@linuxtv.org, vkoul@kernel.org, neil.armstrong@linaro.org, olteanv@gmail.com In-Reply-To: <20261114-add-support-for-camss-on-sm8750-v7-9-8ff2a11835f6@oss.qualcomm.com> References: <20261114-add-support-for-camss-on-sm8750-v7-0-8ff2a11835f6@oss.qualcomm.com> <20261114-add-support-for-camss-on-sm8750-v7-9-8ff2a11835f6@oss.qualcomm.com> Date: Sat, 14 Nov 2026 12:07:11 +0000 X-BeenThere: linux-phy@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux Phy Mailing list List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: sashiko-reviews@lists.linux.dev X-Archived-By: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-phy" X-Spam-Status: No, score=-8.9 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=4.0.1 X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on aws-us-west-2-korg-listserv-alma10-1 VGhhbmsgeW91IGZvciB5b3VyIGNvbnRyaWJ1dGlvbiEgU2FzaGlrbyBBSSByZXZpZXcgZm91bmQg MSBwb3RlbnRpYWwKaXNzdWUgdG8gY29uc2lkZXI6Ci0gW0hpZ2hdIG1lZGlhOiBxY29tOiBjYW1z czogY3NpZDogc2libGluZyBwaHlfcnggYnJhbmNoIGNsb2NrcyBkcm9wCiAgc2hhcmVkIFJDRyBy YXRlCi0tCgpjb21taXQgMDhiMzY5ZTJlMDc2YzM4MTc2ZGI4NTUxMGY5MjcxMGE5OGM0OWM2YwpB dXRob3I6IExvaWMgUG91bGFpbiA8bG9pYy5wb3VsYWluQG9zcy5xdWFsY29tbS5jb20+CgptZWRp YTogcWNvbTogY2Ftc3M6IGNzaWQ6IFNjYWxlIHRoZSBjbG9ja3Mgd2l0aCB0aGUgQ1NJLTIgbGlu ayByYXRlCgpUaGlzIGNvbW1pdCBzY2FsZXMgdGhlIENTSUQgY29yZSBhbmQgQ1NJUEhZIHJlY2Vp dmUgY2xvY2tzIGFjcm9zcyBhbGwKU29DIGdlbmVyYXRpb25zIGJhc2VkIG9uIHRoZSBDU0ktMiBs aW5rIGZyZXF1ZW5jeSBhbmQgdm90ZXMgZm9yIG1pbmltdW0KY2xvY2sgcmF0ZXMgdXNpbmcgY2xr X3NldF9yYXRlX3JhbmdlKCkgYW5kIGNsa19kcm9wX3JhbmdlKCkuCgo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL21lZGlhL3BsYXRmb3JtL3Fjb20vY2Ftc3MvY2Ftc3MtY3NpZC5jIGIvZHJpdmVycy9t ZWRpYS9wbGF0Zm9ybS9xY29tL2NhbXNzL2NhbXNzLWNzaWQuYwo+IGluZGV4IDUxZjIwOTA3ZmZk ZTYuLjcxNGNlYTY4ODNhNzggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9x Y29tL2NhbXNzL2NhbXNzLWNzaWQuYwo+ICsrKyBiL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vcWNv bS9jYW1zcy9jYW1zcy1jc2lkLmMKClsgLi4uIF0KCj4gQEAgLTUzMiw3MiArNTMzLDE5NyBAQCBj b25zdCBzdHJ1Y3QgY3NpZF9mb3JtYXRfaW5mbyAqY3NpZF9nZXRfZm10X2VudHJ5KGNvbnN0IHN0 cnVjdCBjc2lkX2Zvcm1hdF9pbmZvCj4gIAlyZXR1cm4gJmZvcm1hdHNbMF07Cj4gIH0KPiAgCgpb IC4uLiBdCgo+ICsJCS8qCj4gKwkJICogVm90ZSBmb3IgdGhlIHJhdGUgYXMgYSBtaW5pbXVtLCBh cyB0aGUgY2xvY2sgbWF5IGJlIHNoYXJlZAo+ICsJCSAqIHdpdGggYW5vdGhlciBDU0lEIHdoaWNo IG5lZWRzIGl0IHRvIHJ1biBmYXN0ZXIuCj4gKwkJICovCj4gKwkJcmV0ID0gY2xrX3NldF9yYXRl X3JhbmdlKGNsb2NrLT5jbGssIGNsb2NrLT5mcmVxW2pdLCBVTE9OR19NQVgpOwo+ICsJCWlmIChy ZXQgPCAwKSB7Cj4gKwkJCWRldl9lcnIoZGV2LCAiY2xrIHNldCByYXRlIHJhbmdlIGZhaWxlZDog JWRcbiIsIHJldCk7Cj4gKwkJCXJldHVybiByZXQ7Cj4gKwkJfQo+ICAJfQo+ICAKPiAgCXJldHVy biAwOwo+ICB9Cj4gIAo+ICsvKgo+ICsgKiBEcm9wIHRoZSBtaW5pbXVtIHJhdGVzIHRoZSBDU0lE IHZvdGVzIGZvciBhbmQgdGFrZSBpdHMgY2xvY2tzIGJhY2sgdG8gdGhlaXIKPiArICogbG93ZXN0 IGxldmVsLCBvciB0byB0aGUgbG93ZXN0IGxldmVsIHRoZSBvdGhlciB1c2VycyBvZiBhIHNoYXJl ZCBjbG9jayBuZWVkLgo+ICsgKi8KPiArc3RhdGljIHZvaWQgY3NpZF9yZWxlYXNlX2Nsb2NrX3Jh dGVzKHN0cnVjdCBjc2lkX2RldmljZSAqY3NpZCkKPiArewo+ICsJaW50IGk7Cj4gKwo+ICsJZm9y IChpID0gMDsgaSA8IGNzaWQtPm5jbG9ja3M7IGkrKykgewo+ICsJCXN0cnVjdCBjYW1zc19jbG9j ayAqY2xvY2sgPSAmY3NpZC0+Y2xvY2tbaV07Cj4gKwkJbG9uZyByYXRlOwo+ICsKPiArCQlpZiAo IWNsb2NrLT5uZnJlcXMgfHwgIWNzaWRfbWF0Y2hfc2NhbGVkX2Nsb2NrX25hbWUoY2xvY2spKQo+ ICsJCQljb250aW51ZTsKPiArCj4gKwkJY2xrX2Ryb3BfcmFuZ2UoY2xvY2stPmNsayk7Cj4gKwo+ ICsJCS8qIFJvdW5kIGZpcnN0LCBzbyB0aGF0IHRoZSByYXRlIHJlc3BlY3RzIHRoZSBvdGhlciB2 b3RlcyAqLwo+ICsJCXJhdGUgPSBjbGtfcm91bmRfcmF0ZShjbG9jay0+Y2xrLCBjbG9jay0+ZnJl cVswXSk7Cj4gKwkJaWYgKHJhdGUgPiAwKQo+ICsJCQljbGtfc2V0X3JhdGUoY2xvY2stPmNsaywg cmF0ZSk7Cj4gKwl9Cj4gK30KCltTZXZlcml0eTogSGlnaF0KQ2FuIHZvdGluZyBvbiBjbG9jay0+ Y2xrIHdpdGggY2xrX3NldF9yYXRlX3JhbmdlKCkgZmFpbCB0byBwcm90ZWN0IHRoZQpzaGFyZWQg cmVjZWl2ZSBSQ0cgd2hlbiB0d28gQ1NJRHMgdXNlIGRpZmZlcmVudCBjaGlsZCBicmFuY2ggY2xv Y2tzPwoKT24gU29DcyBzdWNoIGFzIFNNODU1MCwgU004NzUwLCBLYWFuYXBhbGksIFNBODc3NVAs IGFuZCBTTTYxNTAsIGZ1bGwgYW5kCmxpdGUgQ1NJRHMgKG9yIGluZGl2aWR1YWwgQ1NJRCBpbnN0 YW5jZXMpIGFjcXVpcmUgc2VwYXJhdGUgcGh5X3J4IGJyYW5jaApjbG9ja3MgKGZvciBleGFtcGxl ICJjc2lwaHlfcngiIC8gY2FtX2NjX2NzaWRfY3NpcGh5X3J4X2NsayBhbmQKInZmZV9saXRlX2Nw aHlfcngiIC8gY2FtX2NjX2lmZV9saXRlX2NwaHlfcnhfY2xrKSB0aGF0IHNldApDTEtfU0VUX1JB VEVfUEFSRU5UIGFuZCBzaGFyZSB0aGUgc2luZ2xlIHBhcmVudCBSQ0cKY2FtX2NjX2NwaHlfcnhf Y2xrX3NyYzoKCmRyaXZlcnMvbWVkaWEvcGxhdGZvcm0vcWNvbS9jYW1zcy9jYW1zcy5jOmNzaWRf cmVzXzg1NTBbXSA9IHsKICAgIC4uLgoJLyogQ1NJRDAgKGZ1bGwpICovCgkuY2xvY2sgPSB7ICJj c2lkIiwgImNzaXBoeV9yeCIgfSwKCS5jbG9ja19yYXRlID0geyB7IDQwMDAwMDAwMCwgNDgwMDAw MDAwIH0sCgkJCXsgNDAwMDAwMDAwLCA0ODAwMDAwMDAgfSB9LAogICAgLi4uCgkvKiBDU0lEX0xJ VEUwICovCgkuY2xvY2sgPSB7ICJ2ZmVfbGl0ZV9jc2lkIiwgInZmZV9saXRlX2NwaHlfcngiIH0s CgkuY2xvY2tfcmF0ZSA9IHsgeyA0MDAwMDAwMDAsIDQ4MDAwMDAwMCB9LAoJCQl7IDQwMDAwMDAw MCwgNDgwMDAwMDAwIH0gfSwKICAgIC4uLgp9OwoKQmVjYXVzZSBjbGtfc2V0X3JhdGVfcmFuZ2Uo KSByZWNvcmRzIHRoZSBtaW5pbXVtIHJhdGUgb24gdGhlIGNoaWxkCmJyYW5jaCBjbG9jaydzIGNs a19jb3JlIHJhdGhlciB0aGFuIG9uIHRoZSBzaGFyZWQgcGFyZW50IFJDRydzIGNsa19jb3JlLApy YXRlIGNhbGN1bGF0aW9ucyBvbiBvbmUgYnJhbmNoIGNsb2NrIG9ubHkgaW5zcGVjdCB0aGUgcmF0 ZSBib3VuZGFyaWVzIG9mCnRoYXQgYnJhbmNoIGFuZCBpdHMgcGFyZW50IFJDRywgaWdub3Jpbmcg bWluaW11bSByYXRlIHZvdGVzIGhlbGQgb24Kc2libGluZyBicmFuY2ggY2xvY2tzLiAgSWYgQ1NJ RDAgaXMgc3RyZWFtaW5nIGF0IDQ4MCBNSHogYW5kIENTSURfTElURTAKZWl0aGVyIHN0YXJ0cyBh IHNsb3dlciBzdHJlYW0gb3Igc3RvcHMgYW5kIHJ1bnMKY3NpZF9yZWxlYXNlX2Nsb2NrX3JhdGVz KCkgdG8gc2V0IGNsb2NrLT5mcmVxWzBdICg0MDAgTUh6KSwgdGhlIGNsb2NrCmZyYW1ld29yayBs b3dlcnMgY2FtX2NjX2NwaHlfcnhfY2xrX3NyYyB0byA0MDAgTUh6IGFuZCB1bmRlcmNsb2NrcyBD U0lEMAptaWQtc3RyZWFtLgoKLS0gClNhc2hpa28gQUkgcmV2aWV3IMK3IGh0dHBzOi8vc2FzaGlr by5kZXYvIy9wYXRjaHNldC8yMDI2MTExNC1hZGQtc3VwcG9ydC1mb3ItY2Ftc3Mtb24tc204NzUw LXY3LTAtOGZmMmExMTgzNWY2QG9zcy5xdWFsY29tbS5jb20/cGFydD05CgotLSAKbGludXgtcGh5 IG1haWxpbmcgbGlzdApsaW51eC1waHlAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwczovL2xpc3Rz LmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1waHkK