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 18C70425CC6 for ; Tue, 7 Jul 2026 14:31:41 +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=1783434703; cv=none; b=N16KHnaM7v81aqCSFPKsjmGxEqIoz6rpOT2gEAJvO6yHDYwv9d3q09P2yOUS71ELlCMhGhV5yI9RN82s+s3B0uzQL0E50sMTmUWtGF5LMPHsWDBYhKetSVtudXNwHZ67weHZoipMsHyiryNKXNthV519Jf7yJ0Z9UabECCSGf+s= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783434703; c=relaxed/simple; bh=Y4vQaZRdXzI/UDHQiKLzKNCubRb8wrWT4BH1FFCDyD0=; h=From:Subject:To:Cc:In-Reply-To:References:Content-Type:Date: Message-Id; b=aGsTqeqqR9SJ9/FaUfKlyBTg50af6YXKqyr6B6tIMW7NYETRACfcKyQDrw5SZz6Ej1ljhyewuzyqoJM72tfOzJVscXtQAXRHK2Che8DDyvwUvSs1R5sIPoLUTwEGrllfxerfBAeQ80b9II9TUB2r3CkqaPhPSAashtxVlsbwrb0= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=DqCm9TTS; 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="DqCm9TTS" Received: by smtp.kernel.org (Postfix) with ESMTPSA id BED6D1F000E9; Tue, 7 Jul 2026 14:31:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1783434701; bh=sXLtoFh+CUx/tyfknuCX6sDSL7lW5AVQhCz46fBe5Z8=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=DqCm9TTSRnjxgTDqvZLTzlbf+jBcUzL1dbxvpHlLC55R01QgjDSm6re/6WyQYSbY8 7sPl7sjWOOCqHzNdvZJPl3QKzuwSu0G6dz4O3HFu9U4q0U8H2A8SLra8KN2ETroNVE sGKhiGuDnb9yW3K5QoDoiykk7uS2lQi5XPIMAqHzCBhPh5gHkbfZst050xznKivXIe /fOZSsJGtEmw/7AJpyESlVekLUhO2L9UeBdzHZgPY2jPUAd2HUj5DbdT+mgfw5gdlG CiICXWYkdyeW8KznU8TW4P0HI0sLp0Xh0LFrn0TwDgpKg1I1srqpOpAzRhDSMzVEZa rwC7hqPxbTMnQ== From: sashiko-bot@kernel.org Subject: Re: [PATCH v2 08/12] phy: phy-mtk-dp: Add support for digital and analog calibration Reply-To: sashiko-reviews@lists.linux.dev To: "AngeloGioacchino Del Regno" Cc: dri-devel@lists.freedesktop.org, linux-phy@lists.infradead.org, vkoul@kernel.org, robh@kernel.org, conor+dt@kernel.org, neil.armstrong@linaro.org, olteanv@gmail.com, devicetree@vger.kernel.org In-Reply-To: <20260707141931.191172-9-angelogioacchino.delregno@collabora.com> References: <20260707141931.191172-1-angelogioacchino.delregno@collabora.com> <20260707141931.191172-9-angelogioacchino.delregno@collabora.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Date: Tue, 07 Jul 2026 14:31:40 +0000 Message-Id: <20260707143140.BED6D1F000E9@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 3 potential issue(= s) to consider: New issues: - [High] The DP PHY is published and exposed to concurrent consumers before= its calibration data is initialized in the legacy probe path. - [Medium] Unconditional `dev_err` logs an error for missing optional NVMEM= cells and probe deferrals in `mtk_dp_phy_get_one_cal_para`. Pre-existing issues: - [High] Dereferencing `dev->platform_data` without checking for NULL in `m= tk_dp_phy_legacy_probe`. -- --- Patch [8]: [PATCH v2 08/12] phy: phy-mtk-dp: Add support for digital an= d analog calibration --- commit 0db0b57c522a5f7eb7d179aeee49708015901046 Author: AngeloGioacchino Del Regno phy: phy-mtk-dp: Add support for digital and analog calibration This commit adds support for reading DP PHY calibration values from eFuse via nvmem. If the values are present, they are applied; otherwise, the driver relies on default calibration data. Analog calibration writing support is also introduced. > diff --git a/drivers/phy/mediatek/phy-mtk-dp.c b/drivers/phy/mediatek/phy= -mtk-dp.c > --- a/drivers/phy/mediatek/phy-mtk-dp.c > +++ b/drivers/phy/mediatek/phy-mtk-dp.c [ ... ] > +static int mtk_dp_phy_get_one_cal_para(struct device *dev, const char *n= ame, u8 max_val) > +{ > + u8 buf_byte; > + u16 buf; > + int ret; > + > + /* > + * All of the calibrations are always max 8 bits long, but some may > + * be split between two different 8-bits cells: handle this corner > + * case by retrying reading as u16. > + */ > + ret =3D nvmem_cell_read_u8(dev, name, &buf_byte); > + if (ret) > + ret =3D nvmem_cell_read_u16(dev, name, &buf); > + else > + buf =3D buf_byte; > + > + if (ret) { > + dev_err(dev, "Cannot get calibration data for %s: %d\n", name, ret); > + return ret; > + }; [Severity: Medium] Will this unconditionally log a hard error if the NVMEM cells are absent or if the provider returns -EPROBE_DEFER? Since nvmem_cell_read_u8() returns -ENOENT when optional cells are missing in the device tree, could this cause spurious error messages in the kernel log on normal boots? It might also spam the logs during standard probe deferrals. [ ... ] > @@ -444,6 +671,8 @@ static int mtk_dp_phy_legacy_probe(struct platform_de= vice *pdev, struct mtk_dp_p > if (ret) > return ret; > =20 > + mtk_dp_phy_get_default_cal_data(dp_phy); > + > return 0; > } [Severity: High] Is it safe to publish the PHY to consumers before the calibration defaults are initialized?=20 Earlier in mtk_dp_phy_legacy_probe(), phy_create_lookup() exposes the PHY. If a consumer driver probes concurrently and acquires the PHY right after that lookup registration, could it call phy_init() while the analog parameter registers are still zero-initialized by devm_kzalloc(), rather than having these defaults? [Severity: High] This is a pre-existing issue, but can dev->platform_data be NULL earlier in mtk_dp_phy_legacy_probe()? Looking at the start of the function: dp_phy->regmap =3D *(struct regmap **)dev->platform_data; if (!dp_phy->regmap) return dev_err_probe(dev, -EINVAL, "No platform data available\n"); If the driver is bound to a device without platform data (e.g. manually via sysfs bind), it looks like dereferencing dev->platform_data to read the regmap will cause a kernel panic before it reaches the NULL check. --=20 Sashiko AI review =C2=B7 https://sashiko.dev/#/patchset/20260707141931.1911= 72-1-angelogioacchino.delregno@collabora.com?part=3D8 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 CC97BC43458 for ; Tue, 7 Jul 2026 14:31:43 +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=m0Kn1VgvFGwQacUX9pMvDbxxzOY8UJBkqeHl302VBXI=; b=TIqQD8tWpe4B1B 8ZRjmNa42fmW9IvKlkwhdfWnXrmH/MUYqSnaS8YXNTZY0xpQn5O2HawnkUIM51c4ZfSj6JMRoAFGY TCXQb4k2xxtbuX1RLxBakbv9WGX2oN8SUOSc0wV209ZYE6Z4w3CS7y+qstT0x90FlfvdXBzoIyO2j JUT2rUlwKRB10ZCnSIDC18iNgFsiQcfebic1kmntDlVQ+sHdIK60+H0xZTa08XrKRvU8HpKzHiXP8 dn0xE36c8LMzN9gkF1feMhP+BDGQqlySB6JNVaO8zQVacgiPYvCisfAnUT/M6/qAhOh/B1rVC4X0k SrE21icq8o++chkVQqSg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wh6pr-0000000FBLA-2TGt; Tue, 07 Jul 2026 14:31:43 +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 1wh6pq-0000000FBL1-2CW5 for linux-phy@lists.infradead.org; Tue, 07 Jul 2026 14:31:42 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by tor.source.kernel.org (Postfix) with ESMTP id EF74660018; Tue, 7 Jul 2026 14:31:41 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id BED6D1F000E9; Tue, 7 Jul 2026 14:31:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1783434701; bh=sXLtoFh+CUx/tyfknuCX6sDSL7lW5AVQhCz46fBe5Z8=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=DqCm9TTSRnjxgTDqvZLTzlbf+jBcUzL1dbxvpHlLC55R01QgjDSm6re/6WyQYSbY8 7sPl7sjWOOCqHzNdvZJPl3QKzuwSu0G6dz4O3HFu9U4q0U8H2A8SLra8KN2ETroNVE sGKhiGuDnb9yW3K5QoDoiykk7uS2lQi5XPIMAqHzCBhPh5gHkbfZst050xznKivXIe /fOZSsJGtEmw/7AJpyESlVekLUhO2L9UeBdzHZgPY2jPUAd2HUj5DbdT+mgfw5gdlG CiICXWYkdyeW8KznU8TW4P0HI0sLp0Xh0LFrn0TwDgpKg1I1srqpOpAzRhDSMzVEZa rwC7hqPxbTMnQ== From: sashiko-bot@kernel.org Subject: Re: [PATCH v2 08/12] phy: phy-mtk-dp: Add support for digital and analog calibration To: "AngeloGioacchino Del Regno" Cc: dri-devel@lists.freedesktop.org, linux-phy@lists.infradead.org, vkoul@kernel.org, robh@kernel.org, conor+dt@kernel.org, neil.armstrong@linaro.org, olteanv@gmail.com, devicetree@vger.kernel.org In-Reply-To: <20260707141931.191172-9-angelogioacchino.delregno@collabora.com> References: <20260707141931.191172-1-angelogioacchino.delregno@collabora.com> <20260707141931.191172-9-angelogioacchino.delregno@collabora.com> Date: Tue, 07 Jul 2026 14:31:40 +0000 Message-Id: <20260707143140.BED6D1F000E9@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 MyBwb3RlbnRpYWwgaXNzdWUocykgdG8gY29uc2lkZXI6CgpOZXcgaXNzdWVzOgotIFtIaWdoXSBU aGUgRFAgUEhZIGlzIHB1Ymxpc2hlZCBhbmQgZXhwb3NlZCB0byBjb25jdXJyZW50IGNvbnN1bWVy cyBiZWZvcmUgaXRzIGNhbGlicmF0aW9uIGRhdGEgaXMgaW5pdGlhbGl6ZWQgaW4gdGhlIGxlZ2Fj eSBwcm9iZSBwYXRoLgotIFtNZWRpdW1dIFVuY29uZGl0aW9uYWwgYGRldl9lcnJgIGxvZ3MgYW4g ZXJyb3IgZm9yIG1pc3Npbmcgb3B0aW9uYWwgTlZNRU0gY2VsbHMgYW5kIHByb2JlIGRlZmVycmFs cyBpbiBgbXRrX2RwX3BoeV9nZXRfb25lX2NhbF9wYXJhYC4KClByZS1leGlzdGluZyBpc3N1ZXM6 Ci0gW0hpZ2hdIERlcmVmZXJlbmNpbmcgYGRldi0+cGxhdGZvcm1fZGF0YWAgd2l0aG91dCBjaGVj a2luZyBmb3IgTlVMTCBpbiBgbXRrX2RwX3BoeV9sZWdhY3lfcHJvYmVgLgotLQoKLS0tIFBhdGNo IFs4XTogW1BBVENIIHYyIDA4LzEyXSBwaHk6IHBoeS1tdGstZHA6IEFkZCBzdXBwb3J0IGZvciBk aWdpdGFsIGFuZCBhbmFsb2cgY2FsaWJyYXRpb24gLS0tCmNvbW1pdCAwZGIwYjU3YzUyMmE1Zjdl YjdkMTc5YWVlZTQ5NzA4MDE1OTAxMDQ2CkF1dGhvcjogQW5nZWxvR2lvYWNjaGlubyBEZWwgUmVn bm8gPGFuZ2Vsb2dpb2FjY2hpbm8uZGVscmVnbm9AY29sbGFib3JhLmNvbT4KCnBoeTogcGh5LW10 ay1kcDogQWRkIHN1cHBvcnQgZm9yIGRpZ2l0YWwgYW5kIGFuYWxvZyBjYWxpYnJhdGlvbgoKVGhp cyBjb21taXQgYWRkcyBzdXBwb3J0IGZvciByZWFkaW5nIERQIFBIWSBjYWxpYnJhdGlvbiB2YWx1 ZXMgZnJvbSBlRnVzZQp2aWEgbnZtZW0uIElmIHRoZSB2YWx1ZXMgYXJlIHByZXNlbnQsIHRoZXkg YXJlIGFwcGxpZWQ7IG90aGVyd2lzZSwgdGhlCmRyaXZlciByZWxpZXMgb24gZGVmYXVsdCBjYWxp YnJhdGlvbiBkYXRhLiBBbmFsb2cgY2FsaWJyYXRpb24gd3JpdGluZwpzdXBwb3J0IGlzIGFsc28g aW50cm9kdWNlZC4KCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGh5L21lZGlhdGVrL3BoeS1tdGst ZHAuYyBiL2RyaXZlcnMvcGh5L21lZGlhdGVrL3BoeS1tdGstZHAuYwo+IC0tLSBhL2RyaXZlcnMv cGh5L21lZGlhdGVrL3BoeS1tdGstZHAuYwo+ICsrKyBiL2RyaXZlcnMvcGh5L21lZGlhdGVrL3Bo eS1tdGstZHAuYwoKWyAuLi4gXQoKPiArc3RhdGljIGludCBtdGtfZHBfcGh5X2dldF9vbmVfY2Fs X3BhcmEoc3RydWN0IGRldmljZSAqZGV2LCBjb25zdCBjaGFyICpuYW1lLCB1OCBtYXhfdmFsKQo+ ICt7Cj4gKwl1OCBidWZfYnl0ZTsKPiArCXUxNiBidWY7Cj4gKwlpbnQgcmV0Owo+ICsKPiArCS8q Cj4gKwkgKiBBbGwgb2YgdGhlIGNhbGlicmF0aW9ucyBhcmUgYWx3YXlzIG1heCA4IGJpdHMgbG9u ZywgYnV0IHNvbWUgbWF5Cj4gKwkgKiBiZSBzcGxpdCBiZXR3ZWVuIHR3byBkaWZmZXJlbnQgOC1i aXRzIGNlbGxzOiBoYW5kbGUgdGhpcyBjb3JuZXIKPiArCSAqIGNhc2UgYnkgcmV0cnlpbmcgcmVh ZGluZyBhcyB1MTYuCj4gKwkgKi8KPiArCXJldCA9IG52bWVtX2NlbGxfcmVhZF91OChkZXYsIG5h bWUsICZidWZfYnl0ZSk7Cj4gKwlpZiAocmV0KQo+ICsJCXJldCA9IG52bWVtX2NlbGxfcmVhZF91 MTYoZGV2LCBuYW1lLCAmYnVmKTsKPiArCWVsc2UKPiArCQlidWYgPSBidWZfYnl0ZTsKPiArCj4g KwlpZiAocmV0KSB7Cj4gKwkJZGV2X2VycihkZXYsICJDYW5ub3QgZ2V0IGNhbGlicmF0aW9uIGRh dGEgZm9yICVzOiAlZFxuIiwgbmFtZSwgcmV0KTsKPiArCQlyZXR1cm4gcmV0Owo+ICsJfTsKCltT ZXZlcml0eTogTWVkaXVtXQpXaWxsIHRoaXMgdW5jb25kaXRpb25hbGx5IGxvZyBhIGhhcmQgZXJy b3IgaWYgdGhlIE5WTUVNIGNlbGxzIGFyZSBhYnNlbnQKb3IgaWYgdGhlIHByb3ZpZGVyIHJldHVy bnMgLUVQUk9CRV9ERUZFUj8KClNpbmNlIG52bWVtX2NlbGxfcmVhZF91OCgpIHJldHVybnMgLUVO T0VOVCB3aGVuIG9wdGlvbmFsIGNlbGxzIGFyZSBtaXNzaW5nCmluIHRoZSBkZXZpY2UgdHJlZSwg Y291bGQgdGhpcyBjYXVzZSBzcHVyaW91cyBlcnJvciBtZXNzYWdlcyBpbiB0aGUga2VybmVsCmxv ZyBvbiBub3JtYWwgYm9vdHM/IEl0IG1pZ2h0IGFsc28gc3BhbSB0aGUgbG9ncyBkdXJpbmcgc3Rh bmRhcmQgcHJvYmUKZGVmZXJyYWxzLgoKWyAuLi4gXQoKPiBAQCAtNDQ0LDYgKzY3MSw4IEBAIHN0 YXRpYyBpbnQgbXRrX2RwX3BoeV9sZWdhY3lfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAq cGRldiwgc3RydWN0IG10a19kcF9wCj4gIAlpZiAocmV0KQo+ICAJCXJldHVybiByZXQ7Cj4gIAo+ ICsJbXRrX2RwX3BoeV9nZXRfZGVmYXVsdF9jYWxfZGF0YShkcF9waHkpOwo+ICsKPiAgCXJldHVy biAwOwo+ICB9CgpbU2V2ZXJpdHk6IEhpZ2hdCklzIGl0IHNhZmUgdG8gcHVibGlzaCB0aGUgUEhZ IHRvIGNvbnN1bWVycyBiZWZvcmUgdGhlIGNhbGlicmF0aW9uIGRlZmF1bHRzCmFyZSBpbml0aWFs aXplZD8gCgpFYXJsaWVyIGluIG10a19kcF9waHlfbGVnYWN5X3Byb2JlKCksIHBoeV9jcmVhdGVf bG9va3VwKCkgZXhwb3NlcyB0aGUgUEhZLgpJZiBhIGNvbnN1bWVyIGRyaXZlciBwcm9iZXMgY29u Y3VycmVudGx5IGFuZCBhY3F1aXJlcyB0aGUgUEhZIHJpZ2h0IGFmdGVyCnRoYXQgbG9va3VwIHJl Z2lzdHJhdGlvbiwgY291bGQgaXQgY2FsbCBwaHlfaW5pdCgpIHdoaWxlIHRoZSBhbmFsb2cKcGFy YW1ldGVyIHJlZ2lzdGVycyBhcmUgc3RpbGwgemVyby1pbml0aWFsaXplZCBieSBkZXZtX2t6YWxs b2MoKSwgcmF0aGVyCnRoYW4gaGF2aW5nIHRoZXNlIGRlZmF1bHRzPwoKW1NldmVyaXR5OiBIaWdo XQpUaGlzIGlzIGEgcHJlLWV4aXN0aW5nIGlzc3VlLCBidXQgY2FuIGRldi0+cGxhdGZvcm1fZGF0 YSBiZSBOVUxMIGVhcmxpZXIKaW4gbXRrX2RwX3BoeV9sZWdhY3lfcHJvYmUoKT8KCkxvb2tpbmcg YXQgdGhlIHN0YXJ0IG9mIHRoZSBmdW5jdGlvbjoKCglkcF9waHktPnJlZ21hcCA9ICooc3RydWN0 IHJlZ21hcCAqKilkZXYtPnBsYXRmb3JtX2RhdGE7CglpZiAoIWRwX3BoeS0+cmVnbWFwKQoJCXJl dHVybiBkZXZfZXJyX3Byb2JlKGRldiwgLUVJTlZBTCwgIk5vIHBsYXRmb3JtIGRhdGEgYXZhaWxh YmxlXG4iKTsKCklmIHRoZSBkcml2ZXIgaXMgYm91bmQgdG8gYSBkZXZpY2Ugd2l0aG91dCBwbGF0 Zm9ybSBkYXRhIChlLmcuIG1hbnVhbGx5CnZpYSBzeXNmcyBiaW5kKSwgaXQgbG9va3MgbGlrZSBk ZXJlZmVyZW5jaW5nIGRldi0+cGxhdGZvcm1fZGF0YSB0byByZWFkCnRoZSByZWdtYXAgd2lsbCBj YXVzZSBhIGtlcm5lbCBwYW5pYyBiZWZvcmUgaXQgcmVhY2hlcyB0aGUgTlVMTCBjaGVjay4KCi0t IApTYXNoaWtvIEFJIHJldmlldyDCtyBodHRwczovL3Nhc2hpa28uZGV2LyMvcGF0Y2hzZXQvMjAy NjA3MDcxNDE5MzEuMTkxMTcyLTEtYW5nZWxvZ2lvYWNjaGluby5kZWxyZWdub0Bjb2xsYWJvcmEu Y29tP3BhcnQ9OAoKLS0gCmxpbnV4LXBoeSBtYWlsaW5nIGxpc3QKbGludXgtcGh5QGxpc3RzLmlu ZnJhZGVhZC5vcmcKaHR0cHM6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8v bGludXgtcGh5Cg==