From mboxrd@z Thu Jan 1 00:00:00 1970 From: Emil Velikov Subject: Re: [PATCH v2 0/5] 180 degrees rotation support for NVIDIA Tegra DRM Date: Mon, 15 Jun 2020 23:26:29 +0100 Message-ID: References: <20200614200121.14147-1-digetx@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Return-path: In-Reply-To: <20200614200121.14147-1-digetx-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> Sender: linux-tegra-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org To: Dmitry Osipenko Cc: Thierry Reding , Thomas Zimmermann , Derek Basehore , Sam Ravnborg , Laurent Pinchart , Sean Paul , linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, "Linux-Kernel@Vger. Kernel. Org" , ML dri-devel List-Id: linux-tegra@vger.kernel.org Hi Dmitry, On Mon, 15 Jun 2020 at 08:28, Dmitry Osipenko wrote: > > Hello! > > This series adds 180=C2=B0 display plane rotation support to the NVIDIA T= egra > DRM driver which is needed for devices that have display panel physically > mounted upside-down, like Nexus 7 tablet device for example [1]. Since > DRM panel rotation is a new thing for a userspace, currently only > Opentegra Xorg driver handles the rotated display panel [2], but this > is good enough for the start. > > Note that later on it should be possible to implement a transparent 180= =C2=B0 > display rotation for Tegra DRM driver which will remove the need to have > a bleeding edge userspace that knows how to rotate display planes and I'm > slowly working on it. For the starter we can go with the minimal rotation > support, so it's not a blocker. > > This series is based on the work that was made by Derek Basehore for the > Mediatek driver [3], his patch is included into this patchset. I added > my tested-by tag to the Derek's patch. > > Please review and apply, thanks in advance! > > [1] https://patchwork.ozlabs.org/project/linux-tegra/patch/20200607154327= .18589-3-digetx-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org/ > [2] https://github.com/grate-driver/xf86-video-opentegra/commit/28eb20a39= 59bbe5bc3a3b67e55977093fd5114ca > [3] https://lkml.org/lkml/2020/3/5/1119 > > Changelog: > > v2: - Dropped "drm/panel: Set display info in panel attach" patch, which > turned out to be obsolete now. > > - Renamed the cover-latter, hopefully this will fix the bouncing emai= ls. > > Derek Basehore (1): > drm/panel: Add helper for reading DT rotation > > Dmitry Osipenko (4): > drm/panel: lvds: Set up panel orientation IMHO it's perfectly reasonable to report the panel orientation to userspace, which can apply plane rotation as needed. Although I see that this series, alike Derek's, has a couple of issues: - only a single panel driver is updated - rotation is _not_ listed as supported property, in said panel driver device-tree bindings My personal inclination is that we should aim for a comprehensive solution: - wire all panel drivers, as currently documented (quick grep list below) - document and wire-up the lvds and boe panels - as proposed by you and Derek respectively HTH Emil Documentation/devicetree/bindings/display/himax,hx8357d.txt:2 Documentation/devicetree/bindings/display/ilitek,ili9225.txt:2 Documentation/devicetree/bindings/display/ilitek,ili9341.txt:2 Documentation/devicetree/bindings/display/ilitek,ili9486.yaml:2 Documentation/devicetree/bindings/display/multi-inno,mi0283qt.txt:2 Documentation/devicetree/bindings/display/panel/panel-common.yaml:2 Documentation/devicetree/bindings/display/sitronix,st7586.txt:1 Documentation/devicetree/bindings/display/sitronix,st7735r.yaml:2 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 X-Spam-Level: X-Spam-Status: No, score=-5.6 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E69FAC433DF for ; Mon, 15 Jun 2020 22:30:15 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id C6B392074D for ; Mon, 15 Jun 2020 22:30:15 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="EZrWU9av" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726473AbgFOWaM (ORCPT ); Mon, 15 Jun 2020 18:30:12 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55970 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725960AbgFOWaL (ORCPT ); Mon, 15 Jun 2020 18:30:11 -0400 Received: from mail-vk1-xa43.google.com (mail-vk1-xa43.google.com [IPv6:2607:f8b0:4864:20::a43]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CCA37C061A0E; Mon, 15 Jun 2020 15:30:10 -0700 (PDT) Received: by mail-vk1-xa43.google.com with SMTP id q10so4345731vka.4; Mon, 15 Jun 2020 15:30:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=rpEvl9+AZzZHXUNhYOtOBN1Cia0euR/+OQQwMFjqbXo=; b=EZrWU9avSmTrOwBXllhDDMODBVzH65l8k5aNUhbaqaWoKi47mpiTGyycaJKbRHhiMk JjyGTxJ9j1gybEjiOi5FMcA67moDtX5wzTchiQcT4QMnOz2NRLTS2qNpdj1NyX0YFu2a c7421yxvBXpnB/5b4C9dcUMLia0gSZINQtSz9wvYFXMnhQy3+a/WT/HDbF6G0Dqnsbpd r8+/i1JEnSUpQjP/Mx7scH0soh3FYqcJ01A1gV+t799kpHAP62FsK3zMhXF4GIAVW7Rv uO1hfODdOQ8/lnT/wIWEa/P/OFjQItWwx0BKWAbSnTXZtRFUi1fhmZMr2ATB7cLDi4fO iMJw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=rpEvl9+AZzZHXUNhYOtOBN1Cia0euR/+OQQwMFjqbXo=; b=X/dvTpKo37cpiHYVzW+sgg7WfIv7ryjmnF4KP/29Q+SOi+tE9py/gFZIGONV0DYEtJ z3Me1wge6gW1rxJlxaZLm5YHo7fOS/wc3eO9mm1ghy0mvj5VFoRW77krloITJrws6bSr 1dG5n5yb7njkE7ex1w9Awp20o5OqS3zjgyPkDZd9bOhZi1REgUQ3qO1NFGgb/h15jOK4 ANCTzD3EqRqcRJHxqT98KIeIK+EMaKRV9kmn/wOLGa1Y4K1cVVSbaKSpygySPRWI2xrS Kwkgl8IW23uewb278KjXGv7e0/CaGCvsdsBYR8BbCzopl37mgUaD7ZbDQDSUba03dxEe GlcQ== X-Gm-Message-State: AOAM5300QwqOAJ844a8PfwTj29rYxU/rzuHBxPUYaJLu/zN+TJnlsHOt l3z3Y1i/eBvpA3DBq/8R48rXLkAUV9Wz6gUV3wbf/w== X-Google-Smtp-Source: ABdhPJwlZ736CSyVAz5cSN0v84AJqRxTSjDwcbeB0kNdNx5+26a5GPHmih8UIPJ4PlSyNQ7QirNClwKcrpKoDwxYJGo= X-Received: by 2002:a1f:9445:: with SMTP id w66mr11075500vkd.22.1592260209977; Mon, 15 Jun 2020 15:30:09 -0700 (PDT) MIME-Version: 1.0 References: <20200614200121.14147-1-digetx@gmail.com> In-Reply-To: <20200614200121.14147-1-digetx@gmail.com> From: Emil Velikov Date: Mon, 15 Jun 2020 23:26:29 +0100 Message-ID: Subject: Re: [PATCH v2 0/5] 180 degrees rotation support for NVIDIA Tegra DRM To: Dmitry Osipenko Cc: Thierry Reding , Thomas Zimmermann , Derek Basehore , Sam Ravnborg , Laurent Pinchart , Sean Paul , linux-tegra@vger.kernel.org, "Linux-Kernel@Vger. Kernel. Org" , ML dri-devel Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Dmitry, On Mon, 15 Jun 2020 at 08:28, Dmitry Osipenko wrote: > > Hello! > > This series adds 180=C2=B0 display plane rotation support to the NVIDIA T= egra > DRM driver which is needed for devices that have display panel physically > mounted upside-down, like Nexus 7 tablet device for example [1]. Since > DRM panel rotation is a new thing for a userspace, currently only > Opentegra Xorg driver handles the rotated display panel [2], but this > is good enough for the start. > > Note that later on it should be possible to implement a transparent 180= =C2=B0 > display rotation for Tegra DRM driver which will remove the need to have > a bleeding edge userspace that knows how to rotate display planes and I'm > slowly working on it. For the starter we can go with the minimal rotation > support, so it's not a blocker. > > This series is based on the work that was made by Derek Basehore for the > Mediatek driver [3], his patch is included into this patchset. I added > my tested-by tag to the Derek's patch. > > Please review and apply, thanks in advance! > > [1] https://patchwork.ozlabs.org/project/linux-tegra/patch/20200607154327= .18589-3-digetx@gmail.com/ > [2] https://github.com/grate-driver/xf86-video-opentegra/commit/28eb20a39= 59bbe5bc3a3b67e55977093fd5114ca > [3] https://lkml.org/lkml/2020/3/5/1119 > > Changelog: > > v2: - Dropped "drm/panel: Set display info in panel attach" patch, which > turned out to be obsolete now. > > - Renamed the cover-latter, hopefully this will fix the bouncing emai= ls. > > Derek Basehore (1): > drm/panel: Add helper for reading DT rotation > > Dmitry Osipenko (4): > drm/panel: lvds: Set up panel orientation IMHO it's perfectly reasonable to report the panel orientation to userspace, which can apply plane rotation as needed. Although I see that this series, alike Derek's, has a couple of issues: - only a single panel driver is updated - rotation is _not_ listed as supported property, in said panel driver device-tree bindings My personal inclination is that we should aim for a comprehensive solution: - wire all panel drivers, as currently documented (quick grep list below) - document and wire-up the lvds and boe panels - as proposed by you and Derek respectively HTH Emil Documentation/devicetree/bindings/display/himax,hx8357d.txt:2 Documentation/devicetree/bindings/display/ilitek,ili9225.txt:2 Documentation/devicetree/bindings/display/ilitek,ili9341.txt:2 Documentation/devicetree/bindings/display/ilitek,ili9486.yaml:2 Documentation/devicetree/bindings/display/multi-inno,mi0283qt.txt:2 Documentation/devicetree/bindings/display/panel/panel-common.yaml:2 Documentation/devicetree/bindings/display/sitronix,st7586.txt:1 Documentation/devicetree/bindings/display/sitronix,st7735r.yaml:2 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 X-Spam-Level: X-Spam-Status: No, score=-5.3 required=3.0 tests=DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id A6735C433DF for ; Mon, 15 Jun 2020 22:30:13 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 771D82078E for ; Mon, 15 Jun 2020 22:30:13 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="EZrWU9av" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 771D82078E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id BE1076E52E; Mon, 15 Jun 2020 22:30:12 +0000 (UTC) Received: from mail-vk1-xa41.google.com (mail-vk1-xa41.google.com [IPv6:2607:f8b0:4864:20::a41]) by gabe.freedesktop.org (Postfix) with ESMTPS id E3F966E52E for ; Mon, 15 Jun 2020 22:30:10 +0000 (UTC) Received: by mail-vk1-xa41.google.com with SMTP id u15so4331614vkk.6 for ; Mon, 15 Jun 2020 15:30:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=rpEvl9+AZzZHXUNhYOtOBN1Cia0euR/+OQQwMFjqbXo=; b=EZrWU9avSmTrOwBXllhDDMODBVzH65l8k5aNUhbaqaWoKi47mpiTGyycaJKbRHhiMk JjyGTxJ9j1gybEjiOi5FMcA67moDtX5wzTchiQcT4QMnOz2NRLTS2qNpdj1NyX0YFu2a c7421yxvBXpnB/5b4C9dcUMLia0gSZINQtSz9wvYFXMnhQy3+a/WT/HDbF6G0Dqnsbpd r8+/i1JEnSUpQjP/Mx7scH0soh3FYqcJ01A1gV+t799kpHAP62FsK3zMhXF4GIAVW7Rv uO1hfODdOQ8/lnT/wIWEa/P/OFjQItWwx0BKWAbSnTXZtRFUi1fhmZMr2ATB7cLDi4fO iMJw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=rpEvl9+AZzZHXUNhYOtOBN1Cia0euR/+OQQwMFjqbXo=; b=d5wOd5dMqkNpUJTdROPmPQcol+IhBSlf7D+JbL/SQxsjR7QPKqd1/720yLNMTBhaVV 9R3ETXgHXGm5IHky1r5KRU3xcY/jay2F/ZGvx5mUtjMhysC4VNB9qraqUt8dVr7n7lcE NedyXxwD1N2ZPIu8tG1jvc+d/zDpOL/PEmHMZtHRoUMo3+m0I7nnPtF5nQcgZLBJriAo 6liJ3jy+zZ40WzFoDWtyvk+w8xggQNBrT94gptEvc70wkMOfLeDPfGbz8TV84ArFwNAX wMFW7zBkqbl+9jxWtcNFrYeQ7XO53fOFS9qNtOF5K6+Sxzqqe5WSyZBmCz78F7d9uAOQ 1T4Q== X-Gm-Message-State: AOAM531G+gEh3c7xd9edvEpcEHWS9+UyW49xVw1C/BRFVaRRjnduUEJQ Hy6zSO8Bsf2hXpHJWACv3XOwW0rMvg/iziwJs8A= X-Google-Smtp-Source: ABdhPJwlZ736CSyVAz5cSN0v84AJqRxTSjDwcbeB0kNdNx5+26a5GPHmih8UIPJ4PlSyNQ7QirNClwKcrpKoDwxYJGo= X-Received: by 2002:a1f:9445:: with SMTP id w66mr11075500vkd.22.1592260209977; Mon, 15 Jun 2020 15:30:09 -0700 (PDT) MIME-Version: 1.0 References: <20200614200121.14147-1-digetx@gmail.com> In-Reply-To: <20200614200121.14147-1-digetx@gmail.com> From: Emil Velikov Date: Mon, 15 Jun 2020 23:26:29 +0100 Message-ID: Subject: Re: [PATCH v2 0/5] 180 degrees rotation support for NVIDIA Tegra DRM To: Dmitry Osipenko X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Sam Ravnborg , Derek Basehore , "Linux-Kernel@Vger. Kernel. Org" , ML dri-devel , Thierry Reding , Laurent Pinchart , Thomas Zimmermann , linux-tegra@vger.kernel.org, Sean Paul Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" SGkgRG1pdHJ5LAoKT24gTW9uLCAxNSBKdW4gMjAyMCBhdCAwODoyOCwgRG1pdHJ5IE9zaXBlbmtv IDxkaWdldHhAZ21haWwuY29tPiB3cm90ZToKPgo+IEhlbGxvIQo+Cj4gVGhpcyBzZXJpZXMgYWRk cyAxODDCsCBkaXNwbGF5IHBsYW5lIHJvdGF0aW9uIHN1cHBvcnQgdG8gdGhlIE5WSURJQSBUZWdy YQo+IERSTSBkcml2ZXIgd2hpY2ggaXMgbmVlZGVkIGZvciBkZXZpY2VzIHRoYXQgaGF2ZSBkaXNw bGF5IHBhbmVsIHBoeXNpY2FsbHkKPiBtb3VudGVkIHVwc2lkZS1kb3duLCBsaWtlIE5leHVzIDcg dGFibGV0IGRldmljZSBmb3IgZXhhbXBsZSBbMV0uIFNpbmNlCj4gRFJNIHBhbmVsIHJvdGF0aW9u IGlzIGEgbmV3IHRoaW5nIGZvciBhIHVzZXJzcGFjZSwgY3VycmVudGx5IG9ubHkKPiBPcGVudGVn cmEgWG9yZyBkcml2ZXIgaGFuZGxlcyB0aGUgcm90YXRlZCBkaXNwbGF5IHBhbmVsIFsyXSwgYnV0 IHRoaXMKPiBpcyBnb29kIGVub3VnaCBmb3IgdGhlIHN0YXJ0Lgo+Cj4gTm90ZSB0aGF0IGxhdGVy IG9uIGl0IHNob3VsZCBiZSBwb3NzaWJsZSB0byBpbXBsZW1lbnQgYSB0cmFuc3BhcmVudCAxODDC sAo+IGRpc3BsYXkgcm90YXRpb24gZm9yIFRlZ3JhIERSTSBkcml2ZXIgd2hpY2ggd2lsbCByZW1v dmUgdGhlIG5lZWQgdG8gaGF2ZQo+IGEgYmxlZWRpbmcgZWRnZSB1c2Vyc3BhY2UgdGhhdCBrbm93 cyBob3cgdG8gcm90YXRlIGRpc3BsYXkgcGxhbmVzIGFuZCBJJ20KPiBzbG93bHkgd29ya2luZyBv biBpdC4gRm9yIHRoZSBzdGFydGVyIHdlIGNhbiBnbyB3aXRoIHRoZSBtaW5pbWFsIHJvdGF0aW9u Cj4gc3VwcG9ydCwgc28gaXQncyBub3QgYSBibG9ja2VyLgo+Cj4gVGhpcyBzZXJpZXMgaXMgYmFz ZWQgb24gdGhlIHdvcmsgdGhhdCB3YXMgbWFkZSBieSBEZXJlayBCYXNlaG9yZSBmb3IgdGhlCj4g TWVkaWF0ZWsgZHJpdmVyIFszXSwgaGlzIHBhdGNoIGlzIGluY2x1ZGVkIGludG8gdGhpcyBwYXRj aHNldC4gSSBhZGRlZAo+IG15IHRlc3RlZC1ieSB0YWcgdG8gdGhlIERlcmVrJ3MgcGF0Y2guCj4K PiBQbGVhc2UgcmV2aWV3IGFuZCBhcHBseSwgdGhhbmtzIGluIGFkdmFuY2UhCj4KPiBbMV0gaHR0 cHM6Ly9wYXRjaHdvcmsub3psYWJzLm9yZy9wcm9qZWN0L2xpbnV4LXRlZ3JhL3BhdGNoLzIwMjAw NjA3MTU0MzI3LjE4NTg5LTMtZGlnZXR4QGdtYWlsLmNvbS8KPiBbMl0gaHR0cHM6Ly9naXRodWIu Y29tL2dyYXRlLWRyaXZlci94Zjg2LXZpZGVvLW9wZW50ZWdyYS9jb21taXQvMjhlYjIwYTM5NTli YmU1YmMzYTNiNjdlNTU5NzcwOTNmZDUxMTRjYQo+IFszXSBodHRwczovL2xrbWwub3JnL2xrbWwv MjAyMC8zLzUvMTExOQo+Cj4gQ2hhbmdlbG9nOgo+Cj4gdjI6IC0gRHJvcHBlZCAiZHJtL3BhbmVs OiBTZXQgZGlzcGxheSBpbmZvIGluIHBhbmVsIGF0dGFjaCIgcGF0Y2gsIHdoaWNoCj4gICAgICAg dHVybmVkIG91dCB0byBiZSBvYnNvbGV0ZSBub3cuCj4KPiAgICAgLSBSZW5hbWVkIHRoZSBjb3Zl ci1sYXR0ZXIsIGhvcGVmdWxseSB0aGlzIHdpbGwgZml4IHRoZSBib3VuY2luZyBlbWFpbHMuCj4K PiBEZXJlayBCYXNlaG9yZSAoMSk6Cj4gICBkcm0vcGFuZWw6IEFkZCBoZWxwZXIgZm9yIHJlYWRp bmcgRFQgcm90YXRpb24KPgo+IERtaXRyeSBPc2lwZW5rbyAoNCk6Cj4gICBkcm0vcGFuZWw6IGx2 ZHM6IFNldCB1cCBwYW5lbCBvcmllbnRhdGlvbgoKSU1ITyBpdCdzIHBlcmZlY3RseSByZWFzb25h YmxlIHRvIHJlcG9ydCB0aGUgcGFuZWwgb3JpZW50YXRpb24gdG8KdXNlcnNwYWNlLCB3aGljaCBj YW4gYXBwbHkgcGxhbmUgcm90YXRpb24gYXMgbmVlZGVkLgoKQWx0aG91Z2ggSSBzZWUgdGhhdCB0 aGlzIHNlcmllcywgYWxpa2UgRGVyZWsncywgaGFzIGEgY291cGxlIG9mIGlzc3VlczoKIC0gb25s eSBhIHNpbmdsZSBwYW5lbCBkcml2ZXIgaXMgdXBkYXRlZAogLSByb3RhdGlvbiBpcyBfbm90XyBs aXN0ZWQgYXMgc3VwcG9ydGVkIHByb3BlcnR5LCBpbiBzYWlkIHBhbmVsCmRyaXZlciBkZXZpY2Ut dHJlZSBiaW5kaW5ncwoKTXkgcGVyc29uYWwgaW5jbGluYXRpb24gaXMgdGhhdCB3ZSBzaG91bGQg YWltIGZvciBhIGNvbXByZWhlbnNpdmUgc29sdXRpb246CiAtIHdpcmUgYWxsIHBhbmVsIGRyaXZl cnMsIGFzIGN1cnJlbnRseSBkb2N1bWVudGVkIChxdWljayBncmVwIGxpc3QgYmVsb3cpCiAtIGRv Y3VtZW50IGFuZCB3aXJlLXVwIHRoZSBsdmRzIGFuZCBib2UgcGFuZWxzIC0gYXMgcHJvcG9zZWQg YnkgeW91CmFuZCBEZXJlayByZXNwZWN0aXZlbHkKCkhUSApFbWlsCgpEb2N1bWVudGF0aW9uL2Rl dmljZXRyZWUvYmluZGluZ3MvZGlzcGxheS9oaW1heCxoeDgzNTdkLnR4dDoyCkRvY3VtZW50YXRp b24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L2lsaXRlayxpbGk5MjI1LnR4dDoyCkRvY3Vt ZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L2lsaXRlayxpbGk5MzQxLnR4dDoy CkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L2lsaXRlayxpbGk5NDg2 LnlhbWw6MgpEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlzcGxheS9tdWx0aS1p bm5vLG1pMDI4M3F0LnR4dDoyCkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNw bGF5L3BhbmVsL3BhbmVsLWNvbW1vbi55YW1sOjIKRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2Jp bmRpbmdzL2Rpc3BsYXkvc2l0cm9uaXgsc3Q3NTg2LnR4dDoxCkRvY3VtZW50YXRpb24vZGV2aWNl dHJlZS9iaW5kaW5ncy9kaXNwbGF5L3NpdHJvbml4LHN0NzczNXIueWFtbDoyCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxp c3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=