From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtpbgjp3.qq.com (smtpbgjp3.qq.com [54.92.39.34]) (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 327743D813F for ; Thu, 2 Apr 2026 11:21:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=54.92.39.34 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775128924; cv=none; b=Zh3bTkO8C5piuqrdL28XffjUn7Zyh76tY9fC6ydlraGKAXWeYi9jCtlbnErYmPGYRwxe5H0G8vRSgHCknD4qjo1WH63LAUkEAT4YMEJpb/aaxdehJsMr3hWBOUu+QEv2yBsVZWSTL+bVL81akn5nOQt2ZCw9URDrgAG1HKR79ag= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775128924; c=relaxed/simple; bh=RcX9LDtuyetHVfHjlsGuK7xjHia6Sb6Hr4bV/1hbpVg=; h=Mime-Version:Content-Type:Date:Message-Id:Cc:Subject:From:To: References:In-Reply-To; b=UPVnrrlrPbIIns5in60gtuZoeIhf1dbaW3PSZWe8YxYFIAooLXmidEdb0c/JvpJhagfSGCWdgGr428wN6tYrCVebgbirOsl4bbvUlwIHs/U8ZvY6XsePWVSAXuAsXXX1E0GUSdIfTRQF42iZ5VcZehPeaMthmz0xRiqlVcIp2mw= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.dev; spf=none smtp.mailfrom=linux.spacemit.com; arc=none smtp.client-ip=54.92.39.34 Authentication-Results: smtp.subspace.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.dev Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=linux.spacemit.com X-QQ-mid: esmtpgz11t1775128897tbf21170d X-QQ-Originating-IP: kxlUxpWpaYTKTqzcSIXGMtW5WoW7m1TS67JGq45OFYc= Received: from = ( [120.237.158.181]) by bizesmtp.qq.com (ESMTP) with id ; Thu, 02 Apr 2026 19:21:35 +0800 (CST) X-QQ-SSF: 0000000000000000000000000000000 X-QQ-GoodBg: 0 X-BIZMAIL-ID: 4623887784994959119 X-QQ-CSender: troy.mitchell@linux.spacemit.com Sender: troy.mitchell@linux.spacemit.com Precedence: bulk X-Mailing-List: devicetree@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=UTF-8 Date: Thu, 02 Apr 2026 19:21:34 +0800 Message-Id: Cc: "Ulf Hansson" , "Rob Herring" , "Krzysztof Kozlowski" , "Conor Dooley" , "Adrian Hunter" , "Paul Walmsley" , "Palmer Dabbelt" , "Albert Ou" , "Alexandre Ghiti" , "Yixun Lan" , "Michael Opdenacker" , "Javier Martinez Canillas" , , , , , , "Anand Moon" , "Trevor Gamblin" Subject: Re: [PATCH v5 5/9] riscv: dts: spacemit: k1: add SD card controller and pinctrl support From: "Troy Mitchell" To: "Iker Pedrosa" , "Troy Mitchell" X-Mailer: aerc 0.21.0-0-g5549850facc2 References: <20260330-orangepi-sd-card-uhs-v5-0-bd853604322d@gmail.com> <20260330-orangepi-sd-card-uhs-v5-5-bd853604322d@gmail.com> In-Reply-To: X-QQ-SENDSIZE: 520 Feedback-ID: esmtpgz:linux.spacemit.com:qybglogicsvrgz:qybglogicsvrgz3a-0 X-QQ-XMAILINFO: NjnaxRGIoVtrU0Po5BGq0P/WeCd94Kdq2ifnaNbGEqNI8S7p4EfTnp7G BJyFaB7tbr07t1KMRuTx1oXt5uBkgjYIfg0GY4Uw1S/Y3gSCOx7Bf1ZfdwLh6C3E11Y/eRH CDOC+QqWm1NreH3232MCUCtLGjqMKi2f3ViHsdi4UA7ooBgsj7fokOJRbjBcusX56alUVIo +sMRj7X694oypP+s6Q3PUQ+/WEydDm62f8X1NmthhnIW9hzL2Xowqzr6w2eTF57KVv0klP8 ZVRQj9f2Ijgrjn5PQZdOZtSxleArKt+mueZQakzfu6DFuUGPUCCwMKF3KQahTgkBTOAXJyc qJgtvZIxllBfgwzUtDCXpXtgtvwjKQfcIiNByJTA/Vm2krX8gkSRMalEIY/Zw2wbYc9k/2Q 2W5MPjuqncIk/pAn5BLfaGSxj+AOvQysfQOGDTsL2bqeEAFGaRVka8HmFAizgGGPOUQOtJW 8MC+dd2kQ4HEDGMAc7qxucf30cHpUfVpMMzQopxI4roKWxnvOZC8df0f3XV0MZr/LViDrgD 3h6QK+PY+SHp7GuT5lmhgV+nYBHPETUeMy2YOXyN7IAfSlUi1NHTd0EXV75Y/6l2rY7eVdX UbXH0Vi2uETythQ3ueph5qxEt/7K2ageKQTVmXiDqQaPd8klmxwBZrUJEUuX0IuOt9zalzW S4G1gMcownBHGXBD6PMOE3VuJ2Pij/ht+mT1Hz1TrCYP7ujPr7HCOzfSfoW+MZ5htm9m6Wf 81miDn8h0KbHfXkSs9bWUKaYyrN7l9SqElhqbjI+/iuGHR/CzYK0fBTIdCUL2ogT0aHzcj1 9QL13NxBCotNXM65HIIi84a9vy29K0PO5ig8BPjunGMV4xg/FNwNdzCJEK1ii6MV2f05Di8 uY8zHGYC2wLFa73asDTN//ndr2nq5P3sFWtKAoLkeHVDJeaIVk3tSmYP1PAhCvU3GBMXbIk lMghr3fCVDRP3hTNHGmVIP0sBWy7VqpP9E7UY+IexqkjGUi4/AWh6WgP+AUNczNRmJL0h8k NqjoYNW6AioF9rAcm+uXItX2tE4pzF9N9SvVmKar66u6BkzTdfMd3jLoePja0= X-QQ-XMRINFO: NyFYKkN4Ny6FuXrnB5Ye7Aabb3ujjtK+gg== X-QQ-RECHKSPAM: 0 On Wed Apr 1, 2026 at 4:53 PM CST, Iker Pedrosa wrote: > El lun, 30 mar 2026 a las 11:08, Troy Mitchell > () escribi=C3=B3: >> >> On Mon, Mar 30, 2026 at 16:38:06 CST, Iker Pedrosa wrote: >> > Add SD card controller infrastructure for SpacemiT K1 SoC with complet= e >> > pinctrl support for both standard and UHS modes. >> > >> > - Add sdhci0 controller definition with clocks, resets and interrupts >> > - Add mmc1_cfg pinctrl for 3.3V standard SD operation >> > - Add mmc1_uhs_cfg pinctrl for 1.8V UHS high-speed operation >> > - Configure appropriate drive strength and power-source properties >> > >> > This provides complete SD card infrastructure that K1-based boards can >> > enable. >> > >> > Tested-by: Anand Moon >> > Tested-by: Trevor Gamblin >> > Signed-off-by: Iker Pedrosa >> > --- >> > arch/riscv/boot/dts/spacemit/k1-pinctrl.dtsi | 40 +++++++++++++++++++= +++++++++ >> > arch/riscv/boot/dts/spacemit/k1.dtsi | 13 +++++++++ >> > 2 files changed, 53 insertions(+) >> > >> > diff --git a/arch/riscv/boot/dts/spacemit/k1-pinctrl.dtsi b/arch/riscv= /boot/dts/spacemit/k1-pinctrl.dtsi >> > index b13dcb10f4d66022d27307de73a6ea3287e97441..8d82011f1af666fb78c282= a2abcc0cb88f962053 100644 >> > --- a/arch/riscv/boot/dts/spacemit/k1-pinctrl.dtsi >> > +++ b/arch/riscv/boot/dts/spacemit/k1-pinctrl.dtsi >> > @@ -570,4 +570,44 @@ pwm14-1-pins { >> > drive-strength =3D <32>; >> > }; >> > }; >> > + >> > + mmc1_cfg: mmc1-cfg { >> > + mmc1-data-cmd-pins { >> > + pinmux =3D , /* mmc1_d3 */ >> > + , /* mmc1_d2 */ >> > + , /* mmc1_d1 */ >> > + , /* mmc1_d0 */ >> > + ; /* mmc1_cmd */ >> > + bias-pull-up =3D <1>; >> > + drive-strength =3D <7>; >> I'm a bit concerned about this value. Looking at the downstream 6.6 code= , 3.3V uses DS4, >> which equals 13mA. Since 7mA maps to DS0, what's the reasoning for using= it here? ^^^^ wrong current >> Do we have any documentation or measurement to back this up? > > Thank you for catching this! You're absolutely right to question these > drive strength values. > > Looking back at my development process, I remember hitting signal > integrity issues in the early stages of this driver development. As a > quick solution, I lowered the drive strength values, which seemed to > resolve the immediate problems, and I moved on without revisiting the > electrical characteristics. > > After your feedback, I investigated this properly by comparing with > the vendor kernel. It uses: > - 3.3V mode: PAD_3V_DS4 (19mA) > - 1.8V UHS mode: PAD_1V8_DS3 (42mA) > > My original values were indeed backwards from both electrical theory > and proven vendor implementation. Testing with the corrected values > (19mA/42mA) confirms SD card is working. > > I'll send v6 with the corrected drive strength values: drive-strength > =3D <19> for 3.3V and drive-strength =3D <42> for 1.8V UHS modes. Yes, 19mA for 3.3V and 42mA for 1.8V are correct. I realized I cited an incorrect value in my previous message (the 13mA). Please CC me when you send v6. - Troy 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 52580D39410 for ; Thu, 2 Apr 2026 11:22:56 +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:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:References:To:From:Subject: Cc:Message-Id:Date:Mime-Version:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=+olXFpTxqDygnAlVK1lfJmopu4AYYAiXhrKFatMXiOc=; b=pNiqz2bhKKR+D8 Q22faxO30BpLutFBK3zR4Td2cuMC8xzZFb0QfmrYPdZIGPmChUqBOqT3hpXFqDJniZtcp2QonNza8 5Zx8ANzAj3eeXgzWdxES4LGqhk4jPaQ3USRcIkm5L75a7b6b36rREpUiXKGUHRtHe/yi//89N4S8q 0Ldp20LFKJmCs0CIOq3F5bgCX9wMrwCJdJEsriyGA/Wwj6L4FnPH2/cbo07eP87QAOOE0IyUMTWJV I2mwcn0fyPwJioD9hZAk3/aWKNuTcaRMc564povdZAP/jMtnUO5CgHG+t6nL2/qbz0l2BIXzZE/fL zor6Iju2QMZhA7RUq2Yw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1w8G8O-0000000HV7m-25kT; Thu, 02 Apr 2026 11:22:48 +0000 Received: from smtpbgsg2.qq.com ([54.254.200.128]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1w8G8L-0000000HV5p-1yYY for linux-riscv@lists.infradead.org; Thu, 02 Apr 2026 11:22:47 +0000 X-QQ-mid: esmtpgz11t1775128897tbf21170d X-QQ-Originating-IP: kxlUxpWpaYTKTqzcSIXGMtW5WoW7m1TS67JGq45OFYc= Received: from = ( [120.237.158.181]) by bizesmtp.qq.com (ESMTP) with id ; Thu, 02 Apr 2026 19:21:35 +0800 (CST) X-QQ-SSF: 0000000000000000000000000000000 X-QQ-GoodBg: 0 X-BIZMAIL-ID: 4623887784994959119 X-QQ-CSender: troy.mitchell@linux.spacemit.com Mime-Version: 1.0 Date: Thu, 02 Apr 2026 19:21:34 +0800 Message-Id: Cc: "Ulf Hansson" , "Rob Herring" , "Krzysztof Kozlowski" , "Conor Dooley" , "Adrian Hunter" , "Paul Walmsley" , "Palmer Dabbelt" , "Albert Ou" , "Alexandre Ghiti" , "Yixun Lan" , "Michael Opdenacker" , "Javier Martinez Canillas" , , , , , , "Anand Moon" , "Trevor Gamblin" Subject: Re: [PATCH v5 5/9] riscv: dts: spacemit: k1: add SD card controller and pinctrl support From: "Troy Mitchell" To: "Iker Pedrosa" , "Troy Mitchell" X-Mailer: aerc 0.21.0-0-g5549850facc2 References: <20260330-orangepi-sd-card-uhs-v5-0-bd853604322d@gmail.com> <20260330-orangepi-sd-card-uhs-v5-5-bd853604322d@gmail.com> In-Reply-To: X-QQ-SENDSIZE: 520 Feedback-ID: esmtpgz:linux.spacemit.com:qybglogicsvrgz:qybglogicsvrgz3a-0 X-QQ-XMAILINFO: M+A7tMXGEwPSuXkIce/o+QKPNansc3JhWXzsUMoIhDgXQl3SK17gCqau pnpSt9lg4jJlQtkKtjVehs1IgjWZymBdu9gc5iaAe4b0D6XEEHV/01Wv8Ihje955Co/Dtxu UQu1QLsmCP7cdkg/Gu/z/xroTk2ZKKbKA+LZmbgtjcSYM5uNEtqwHhoNsjZr/43EjcbJqQV JMAB6A8/4CxHGKtekR2o68AGRBuIF8F6VP8Qd89v4pgrBVLh5Xi/4PJ68N/eoPoMtiXbVKH 0NM5mu3R8Plcdl3FeEahz0LzYXRdt9RhbVWTlK1TTlVDfnBtYB2KyXgmUl+kmyijh+Fqri0 gCKonIcu/TXS3HFmuohxXSsphcg0NP+/vtcp93fVfrI0rOJ7/0lgxdK854TdY4DdTyuvEQB 8noyApRZfeaUZ6PXh20JFaeyn3O8PVKFvjjFd4EI6XBsxCfWN5mcaLIEsUCfk9cL8KTJFu7 wAn72VX7uQkL3wMHFO468KeddkFRToLgAlNkiFw5/uSaO0P6GSAF7J+QjJjwtTnPa/JHFtT HDW9uKTk4XqWcfowQKelvLTrMA7bHoaWB3+doHRWT7BljxyCpSqsGoGg/cnNi2ejnmrsUMN DgC3/DUttJGpwgaEDuBJqK9rc30jZ0TzKnPwLFgmU2N4uEJERoyy/jHCEKRjzNG0+9iErnL KpvQTa0xxvnSszqDzm8dSnSKY9FPHaDDSOR5AEn7SOz7No9J7+XXA54zXMCfzGrypIfrPIv huIn4vr8wp77/IJJH8sGuEjsiXN/JOIuTJezIXVEzucnvYupfEcm3m30PhHja+/bFxwx9NR PaNggiK+0CURcPn4ulQWzKOWwxv4gdI3xMen5SxlE8D2o46IpNw9KKdB7lD1PQQqb9141LU VG/XlDOtrhh+ioPXPDPLjY1GkQIT4tD7wdDqT7bCNvSgnB+cRpuweJqdDhrLASLV1TsFPzl NayLtqDbv8I0vPIZOhPIW+3hAPfL2Y2tLXgFvd6xFn+oRRunTZ4pzQV0DHSgPfAz6/3tgPH vdvzJJDm9saTqoNfPEhKPr+CsK1DRajGjsojcfpGmbla5K/HDSKf8BlocsAEw= X-QQ-XMRINFO: MSVp+SPm3vtSI1QTLgDHQqIV1w2oNKDqfg== X-QQ-RECHKSPAM: 0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260402_042245_886832_47A2FC9F X-CRM114-Status: GOOD ( 19.54 ) X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org T24gV2VkIEFwciAxLCAyMDI2IGF0IDQ6NTMgUE0gQ1NULCBJa2VyIFBlZHJvc2Egd3JvdGU6Cj4g RWwgbHVuLCAzMCBtYXIgMjAyNiBhIGxhcyAxMTowOCwgVHJveSBNaXRjaGVsbAo+ICg8dHJveS5t aXRjaGVsbEBsaW51eC5kZXY+KSBlc2NyaWJpw7M6Cj4+Cj4+IE9uIE1vbiwgTWFyIDMwLCAyMDI2 IGF0IDE2OjM4OjA2IENTVCwgSWtlciBQZWRyb3NhIHdyb3RlOgo+PiA+IEFkZCBTRCBjYXJkIGNv bnRyb2xsZXIgaW5mcmFzdHJ1Y3R1cmUgZm9yIFNwYWNlbWlUIEsxIFNvQyB3aXRoIGNvbXBsZXRl Cj4+ID4gcGluY3RybCBzdXBwb3J0IGZvciBib3RoIHN0YW5kYXJkIGFuZCBVSFMgbW9kZXMuCj4+ ID4KPj4gPiAtIEFkZCBzZGhjaTAgY29udHJvbGxlciBkZWZpbml0aW9uIHdpdGggY2xvY2tzLCBy ZXNldHMgYW5kIGludGVycnVwdHMKPj4gPiAtIEFkZCBtbWMxX2NmZyBwaW5jdHJsIGZvciAzLjNW IHN0YW5kYXJkIFNEIG9wZXJhdGlvbgo+PiA+IC0gQWRkIG1tYzFfdWhzX2NmZyBwaW5jdHJsIGZv ciAxLjhWIFVIUyBoaWdoLXNwZWVkIG9wZXJhdGlvbgo+PiA+IC0gQ29uZmlndXJlIGFwcHJvcHJp YXRlIGRyaXZlIHN0cmVuZ3RoIGFuZCBwb3dlci1zb3VyY2UgcHJvcGVydGllcwo+PiA+Cj4+ID4g VGhpcyBwcm92aWRlcyBjb21wbGV0ZSBTRCBjYXJkIGluZnJhc3RydWN0dXJlIHRoYXQgSzEtYmFz ZWQgYm9hcmRzIGNhbgo+PiA+IGVuYWJsZS4KPj4gPgo+PiA+IFRlc3RlZC1ieTogQW5hbmQgTW9v biA8bGludXguYW1vb25AZ21haWwuY29tPgo+PiA+IFRlc3RlZC1ieTogVHJldm9yIEdhbWJsaW4g PHRnYW1ibGluQGJheWxpYnJlLmNvbT4KPj4gPiBTaWduZWQtb2ZmLWJ5OiBJa2VyIFBlZHJvc2Eg PGlrZXJwZWRyb3NhbUBnbWFpbC5jb20+Cj4+ID4gLS0tCj4+ID4gIGFyY2gvcmlzY3YvYm9vdC9k dHMvc3BhY2VtaXQvazEtcGluY3RybC5kdHNpIHwgNDAgKysrKysrKysrKysrKysrKysrKysrKysr KysrKwo+PiA+ICBhcmNoL3Jpc2N2L2Jvb3QvZHRzL3NwYWNlbWl0L2sxLmR0c2kgICAgICAgICB8 IDEzICsrKysrKysrKwo+PiA+ICAyIGZpbGVzIGNoYW5nZWQsIDUzIGluc2VydGlvbnMoKykKPj4g Pgo+PiA+IGRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2Jvb3QvZHRzL3NwYWNlbWl0L2sxLXBpbmN0 cmwuZHRzaSBiL2FyY2gvcmlzY3YvYm9vdC9kdHMvc3BhY2VtaXQvazEtcGluY3RybC5kdHNpCj4+ ID4gaW5kZXggYjEzZGNiMTBmNGQ2NjAyMmQyNzMwN2RlNzNhNmVhMzI4N2U5NzQ0MS4uOGQ4MjAx MWYxYWY2NjZmYjc4YzI4MmEyYWJjYzBjYjg4Zjk2MjA1MyAxMDA2NDQKPj4gPiAtLS0gYS9hcmNo L3Jpc2N2L2Jvb3QvZHRzL3NwYWNlbWl0L2sxLXBpbmN0cmwuZHRzaQo+PiA+ICsrKyBiL2FyY2gv cmlzY3YvYm9vdC9kdHMvc3BhY2VtaXQvazEtcGluY3RybC5kdHNpCj4+ID4gQEAgLTU3MCw0ICs1 NzAsNDQgQEAgcHdtMTQtMS1waW5zIHsKPj4gPiAgICAgICAgICAgICAgICAgICAgICAgZHJpdmUt c3RyZW5ndGggPSA8MzI+Owo+PiA+ICAgICAgICAgICAgICAgfTsKPj4gPiAgICAgICB9Owo+PiA+ ICsKPj4gPiArICAgICBtbWMxX2NmZzogbW1jMS1jZmcgewo+PiA+ICsgICAgICAgICAgICAgbW1j MS1kYXRhLWNtZC1waW5zIHsKPj4gPiArICAgICAgICAgICAgICAgICAgICAgcGlubXV4ID0gPEsx X1BBRENPTkYoMTA0LCAwKT4sICAgLyogbW1jMV9kMyAqLwo+PiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICA8SzFfUEFEQ09ORigxMDUsIDApPiwgICAvKiBtbWMxX2QyICovCj4+ID4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxLMV9QQURDT05GKDEwNiwgMCk+LCAgIC8q IG1tYzFfZDEgKi8KPj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEsxX1BBRENP TkYoMTA3LCAwKT4sICAgLyogbW1jMV9kMCAqLwo+PiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICA8SzFfUEFEQ09ORigxMDgsIDApPjsgICAvKiBtbWMxX2NtZCAqLwo+PiA+ICsgICAg ICAgICAgICAgICAgICAgICBiaWFzLXB1bGwtdXAgPSA8MT47Cj4+ID4gKyAgICAgICAgICAgICAg ICAgICAgIGRyaXZlLXN0cmVuZ3RoID0gPDc+Owo+PiBJJ20gYSBiaXQgY29uY2VybmVkIGFib3V0 IHRoaXMgdmFsdWUuIExvb2tpbmcgYXQgdGhlIGRvd25zdHJlYW0gNi42IGNvZGUsIDMuM1YgdXNl cyBEUzQsCj4+IHdoaWNoIGVxdWFscyAxM21BLiBTaW5jZSA3bUEgbWFwcyB0byBEUzAsIHdoYXQn cyB0aGUgcmVhc29uaW5nIGZvciB1c2luZyBpdCBoZXJlPwogICAgICAgICAgICAgICAgXl5eXiB3 cm9uZyBjdXJyZW50Cj4+IERvIHdlIGhhdmUgYW55IGRvY3VtZW50YXRpb24gb3IgbWVhc3VyZW1l bnQgdG8gYmFjayB0aGlzIHVwPwo+Cj4gVGhhbmsgeW91IGZvciBjYXRjaGluZyB0aGlzISBZb3Un cmUgYWJzb2x1dGVseSByaWdodCB0byBxdWVzdGlvbiB0aGVzZQo+IGRyaXZlIHN0cmVuZ3RoIHZh bHVlcy4KPgo+IExvb2tpbmcgYmFjayBhdCBteSBkZXZlbG9wbWVudCBwcm9jZXNzLCBJIHJlbWVt YmVyIGhpdHRpbmcgc2lnbmFsCj4gaW50ZWdyaXR5IGlzc3VlcyBpbiB0aGUgZWFybHkgc3RhZ2Vz IG9mIHRoaXMgZHJpdmVyIGRldmVsb3BtZW50LiBBcyBhCj4gcXVpY2sgc29sdXRpb24sIEkgbG93 ZXJlZCB0aGUgZHJpdmUgc3RyZW5ndGggdmFsdWVzLCB3aGljaCBzZWVtZWQgdG8KPiByZXNvbHZl IHRoZSBpbW1lZGlhdGUgcHJvYmxlbXMsIGFuZCBJIG1vdmVkIG9uIHdpdGhvdXQgcmV2aXNpdGlu ZyB0aGUKPiBlbGVjdHJpY2FsIGNoYXJhY3RlcmlzdGljcy4KPgo+IEFmdGVyIHlvdXIgZmVlZGJh Y2ssIEkgaW52ZXN0aWdhdGVkIHRoaXMgcHJvcGVybHkgYnkgY29tcGFyaW5nIHdpdGgKPiB0aGUg dmVuZG9yIGtlcm5lbC4gSXQgdXNlczoKPiAtIDMuM1YgbW9kZTogUEFEXzNWX0RTNCAoMTltQSkK PiAtIDEuOFYgVUhTIG1vZGU6IFBBRF8xVjhfRFMzICg0Mm1BKQo+Cj4gTXkgb3JpZ2luYWwgdmFs dWVzIHdlcmUgaW5kZWVkIGJhY2t3YXJkcyBmcm9tIGJvdGggZWxlY3RyaWNhbCB0aGVvcnkKPiBh bmQgcHJvdmVuIHZlbmRvciBpbXBsZW1lbnRhdGlvbi4gVGVzdGluZyB3aXRoIHRoZSBjb3JyZWN0 ZWQgdmFsdWVzCj4gKDE5bUEvNDJtQSkgY29uZmlybXMgU0QgY2FyZCBpcyB3b3JraW5nLgo+Cj4g SSdsbCBzZW5kIHY2IHdpdGggdGhlIGNvcnJlY3RlZCBkcml2ZSBzdHJlbmd0aCB2YWx1ZXM6IGRy aXZlLXN0cmVuZ3RoCj4gPSA8MTk+IGZvciAzLjNWIGFuZCBkcml2ZS1zdHJlbmd0aCA9IDw0Mj4g Zm9yIDEuOFYgVUhTIG1vZGVzLgpZZXMsIDE5bUEgZm9yIDMuM1YgYW5kIDQybUEgZm9yIDEuOFYg YXJlIGNvcnJlY3QuCkkgcmVhbGl6ZWQgSSBjaXRlZCBhbiBpbmNvcnJlY3QgdmFsdWUgaW4gbXkg cHJldmlvdXMgbWVzc2FnZSAodGhlIDEzbUEpLgpQbGVhc2UgQ0MgbWUgd2hlbiB5b3Ugc2VuZCB2 Ni4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gVHJveQoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtcmlzY3YgbWFpbGlu ZyBsaXN0CmxpbnV4LXJpc2N2QGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJh ZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1yaXNjdgo=