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=-13.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=unavailable 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 EDC7AC4360C for ; Tue, 2 Mar 2021 20:31:39 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id C50A2601FA for ; Tue, 2 Mar 2021 20:31:39 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1836398AbhCBU2k (ORCPT ); Tue, 2 Mar 2021 15:28:40 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50154 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241549AbhCBRjB (ORCPT ); Tue, 2 Mar 2021 12:39:01 -0500 Received: from mail-qt1-x836.google.com (mail-qt1-x836.google.com [IPv6:2607:f8b0:4864:20::836]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DBCBCC0617A9 for ; Tue, 2 Mar 2021 09:38:39 -0800 (PST) Received: by mail-qt1-x836.google.com with SMTP id v3so15381613qtw.4 for ; Tue, 02 Mar 2021 09:38:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ndufresne-ca.20150623.gappssmtp.com; s=20150623; h=message-id:subject:from:to:cc:date:in-reply-to:references :user-agent:mime-version:content-transfer-encoding; bh=NgErhWjVYS40cse08ZsXc39yhag5uGkh43eRrKni6lg=; b=ur8sCkRb3FMUhgW+QJadn9dMy4JISPa7I7yRBZGwGimMjGgjJvScQD944W2s39N1KK 5ZwY/Uref8JP5Hz0AoZk7uJej9PkNpVO5lnBNAd1BNMQLDR3FeLf5o3O2/Nl9o52Jz6c Mkl8fwYqr2OqxRunNzd9U2N5r/AG1omvgceB2aliRb5FS4hQJJHBiTYgLL9O1hr5jyqH 0mVCAU7VU9tlR+GoEy4FhWqk4WtQr03iwT7iAhKCfE+b/QojvK4/Na3r+NROo6aI6Rqg ZcitjEHBOZg2knRRNRzkoZxcHDVvk3aPSYJBewyYgbapyQ4VkDGgyFlqgXTcEheiJK9j rlCQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:message-id:subject:from:to:cc:date:in-reply-to :references:user-agent:mime-version:content-transfer-encoding; bh=NgErhWjVYS40cse08ZsXc39yhag5uGkh43eRrKni6lg=; b=GkDLj1B5SpY3x7OXSK+/H9HUdVo/kytoLoS+PHD0Js1BW16jo5dGMlpU77ytRCZKfm PQeVZFt+4Ygv2owpN3J+keofpjN72EXVfcLagHiNJMepbTyTwvjxmVUqGSIxQdC3qE1x e/xvKdjZuU+ucUlzAxxWBqdVmwOE5oJ7d/Azp6nuAMw3xr8riBOlzSqgL+53p6YmH7QE FLKKtV7ZScA23cxueomdDKYcF60a08ySZ63IRxOpO+UeWZ22sRHWAqUV5HQfrjwd2nHa b5xia9A7LCHelN0Mkh+3yNM3uVt+OUYqgSFrJ/pH4Uw/nIZcZgXR8iEuD4EiOEKPEaOo 8GVQ== X-Gm-Message-State: AOAM5312FsnAyf4c3mGhp6jKCFoN69vQMtBCgi7JbMWgJyTMa+U7u6d2 rpH5t4vLb9PaYP5m3bwq41ibQw== X-Google-Smtp-Source: ABdhPJzEX9/PYCZJ0v5bnw+DU56A+H6y1W46NuNaqvaLGR+HDtIUxBzjsqJkyYMBHNTVe1V5W92Okg== X-Received: by 2002:ac8:4249:: with SMTP id r9mr18127959qtm.285.1614706718945; Tue, 02 Mar 2021 09:38:38 -0800 (PST) Received: from nicolas-tpx395.lan (173-246-12-168.qc.cable.ebox.net. [173.246.12.168]) by smtp.gmail.com with ESMTPSA id t6sm15339867qkd.127.2021.03.02.09.38.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 02 Mar 2021 09:38:38 -0800 (PST) Message-ID: <4cb93f828695f7f6307077da466a58ba478c9824.camel@ndufresne.ca> Subject: Re: [PATCH v2 3/8] media: add Mediatek's MM21 format From: Nicolas Dufresne To: Alexandre Courbot , Tiffany Lin , Andrew-CT Chen , Rob Herring , Yunfei Dong Cc: Mauro Carvalho Chehab , Hans Verkuil , linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mediatek@lists.infradead.org Date: Tue, 02 Mar 2021 12:38:37 -0500 In-Reply-To: <20210225101612.2832444-4-acourbot@chromium.org> References: <20210225101612.2832444-1-acourbot@chromium.org> <20210225101612.2832444-4-acourbot@chromium.org> Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.38.3 (3.38.3-1.fc33) MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Le jeudi 25 février 2021 à 19:16 +0900, Alexandre Courbot a écrit : > Add Mediatek's non-compressed 8 bit block video mode. This format is > produced by the MT8183 codec and can be converted to a non-proprietary > format by the MDP3 component. > > Signed-off-by: Alexandre Courbot > --- >  Documentation/userspace-api/media/v4l/pixfmt-reserved.rst | 7 +++++++ >  drivers/media/v4l2-core/v4l2-ioctl.c                      | 1 + >  include/uapi/linux/videodev2.h                            | 1 + >  3 files changed, 9 insertions(+) > > diff --git a/Documentation/userspace-api/media/v4l/pixfmt-reserved.rst > b/Documentation/userspace-api/media/v4l/pixfmt-reserved.rst > index c9231e18859b..187ea89f7a25 100644 > --- a/Documentation/userspace-api/media/v4l/pixfmt-reserved.rst > +++ b/Documentation/userspace-api/media/v4l/pixfmt-reserved.rst > @@ -242,6 +242,13 @@ please make a proposal on the linux-media mailing list. >         It is an opaque intermediate format and the MDP hardware must be >         used to convert ``V4L2_PIX_FMT_MT21C`` to ``V4L2_PIX_FMT_NV12M``, >         ``V4L2_PIX_FMT_YUV420M`` or ``V4L2_PIX_FMT_YVU420``. > +    * .. _V4L2-PIX-FMT-MM21: > + > +      - ``V4L2_PIX_FMT_MM21`` > +      - 'MM21' > +      - Non-compressed, tiled two-planar format used by Mediatek MT8183. > +       This is an opaque intermediate format and the MDP3 hardware can be > +       used to convert it to other formats. >      * .. _V4L2-PIX-FMT-SUNXI-TILED-NV12: The SUNXI one was a mistake, it's linear layout 32x32 tiles. The problem with calling this a vendor format, is that other vendor might be using it too. But they won't know and the format might endup duplicated, even if it's the same one. So here's my request, have you tried to understand a bit more what the tiling layout is ? Could be tiled + SAND, could use zigzag layout like Samsung do. I think if we can avoid vendor formats, we can preserve the pixel format list sanity here. Most of the HW I've encoutered was very easy to reverse, even if undocumented (except the compressed one). If not possible, I would like to suggest: V4L2_PIX_FMT_MTK_NV21 The important part is to add a clear seperation for the vendor name, it easy to recognize then. >   >        - ``V4L2_PIX_FMT_SUNXI_TILED_NV12`` > diff --git a/drivers/media/v4l2-core/v4l2-ioctl.c b/drivers/media/v4l2- > core/v4l2-ioctl.c > index 31d1342e61e8..0b85b2bbc628 100644 > --- a/drivers/media/v4l2-core/v4l2-ioctl.c > +++ b/drivers/media/v4l2-core/v4l2-ioctl.c > @@ -1384,6 +1384,7 @@ static void v4l_fill_fmtdesc(struct v4l2_fmtdesc *fmt) >         case V4L2_PIX_FMT_TM6000:       descr = "A/V + VBI Mux Packet"; break; >         case V4L2_PIX_FMT_CIT_YYVYUY:   descr = "GSPCA CIT YYVYUY"; break; >         case V4L2_PIX_FMT_KONICA420:    descr = "GSPCA KONICA420"; break; > +       case V4L2_PIX_FMT_MM21:         descr = "Mediatek 8-bit block format"; > break; >         case V4L2_PIX_FMT_HSV24:        descr = "24-bit HSV 8-8-8"; break; >         case V4L2_PIX_FMT_HSV32:        descr = "32-bit XHSV 8-8-8-8"; break; >         case V4L2_SDR_FMT_CU8:          descr = "Complex U8"; break; > diff --git a/include/uapi/linux/videodev2.h b/include/uapi/linux/videodev2.h > index 79dbde3bcf8d..e6890dae76ec 100644 > --- a/include/uapi/linux/videodev2.h > +++ b/include/uapi/linux/videodev2.h > @@ -731,6 +731,7 @@ struct v4l2_pix_format { >  #define V4L2_PIX_FMT_Y12I     v4l2_fourcc('Y', '1', '2', 'I') /* Greyscale > 12-bit L/R interleaved */ >  #define V4L2_PIX_FMT_Z16      v4l2_fourcc('Z', '1', '6', ' ') /* Depth data > 16-bit */ >  #define V4L2_PIX_FMT_MT21C    v4l2_fourcc('M', 'T', '2', '1') /* Mediatek > compressed block mode  */ > +#define V4L2_PIX_FMT_MM21     v4l2_fourcc('M', 'M', '2', '1') /* Mediatek 8- > bit block mode, two non-contiguous planes */ >  #define V4L2_PIX_FMT_INZI     v4l2_fourcc('I', 'N', 'Z', 'I') /* Intel Planar > Greyscale 10-bit and Depth 16-bit */ >  #define V4L2_PIX_FMT_SUNXI_TILED_NV12 v4l2_fourcc('S', 'T', '1', '2') /* > Sunxi Tiled NV12 Format */ >  #define V4L2_PIX_FMT_CNF4     v4l2_fourcc('C', 'N', 'F', '4') /* Intel 4-bit > packed depth confidence information */ 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=-13.8 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,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 DC600C433DB for ; Wed, 3 Mar 2021 20:49:58 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (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 7274C64EF4 for ; Wed, 3 Mar 2021 20:49:58 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 7274C64EF4 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ndufresne.ca Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=desiato.20200630; h=Sender:Content-Transfer-Encoding :Content-Type:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Date:Cc:To:From: Subject:Message-ID:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=jzbb5pPcOxeBpTUzZIj3IwbXO0JD4nEQSblH4QICW1A=; b=kHPOZpckkDB5sh2tY6644nezU hiEozVlVSQnDOaKFfYDxITK+y61DU+NVnS1/GwtQzWAXUCZh3y639oasxQ+QH01vDwx8eqqcM4ASM G4uvWCPAYK+Yngx/wtTyIszoMdxiEBlvcuAohtkI5eJNn69g+9v6HtdUdZtyEF7Adl8/2hGXjV13B zBanY2wvLPUfc6WNEchsZM3c3mJVDCz9BG0MyBc+xYCr74YAsfqBSKQwCcJ2nrqIoQ/eS6D1tia3R mP71m3mSb5E/MEObPpzvemTbX67JmUlZsvB93Xsvc/xuMKpQWehjmLzXERQkgjcmJT9JsBqGq6df0 H6wWmBwNg==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lHYRF-006Tzw-Sp; Wed, 03 Mar 2021 20:49:46 +0000 Received: from casper.infradead.org ([2001:8b0:10b:1236::1]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lHT72-005JHC-GW for linux-mediatek@desiato.infradead.org; Wed, 03 Mar 2021 15:08:32 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=Content-Transfer-Encoding:MIME-Version: Content-Type:References:In-Reply-To:Date:Cc:To:From:Subject:Message-ID:Sender :Reply-To:Content-ID:Content-Description; bh=NgErhWjVYS40cse08ZsXc39yhag5uGkh43eRrKni6lg=; b=hbw76Y9ngXuWE/qrRHwweesyk1 qdYja0OakiFRUzBX3tZJ7sPtS8REFA4V1zVbwpMtp+ATf87PrW1TdKQ77Uh29zxwy6IZqep4XG2rn kue7cvYzazTByT77yqYF/YHo8wktEeOTXxbkZuFqbxioq+FPH/0e32ekfGDHY7qzfh68qulDrYydj mfzXHAugLnPVOkwxnjzpxjNOqLAUYX2Xb5MQE/q7V5Yken6w/WlVNl/dm6PN3CWkJHol+52iYqmXO r+Gmto4kanXODxov5qmhH9cuaji3uYcVXEUvGOHx7n+NhK+qeDPOHPmxD6rpdSGf75WpxmhhGSU4c 6arg5txg==; Received: from mail-qt1-x830.google.com ([2607:f8b0:4864:20::830]) by casper.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lH8zs-00HZ70-BY for linux-mediatek@lists.infradead.org; Tue, 02 Mar 2021 17:39:51 +0000 Received: by mail-qt1-x830.google.com with SMTP id w1so15383559qto.2 for ; Tue, 02 Mar 2021 09:39:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ndufresne-ca.20150623.gappssmtp.com; s=20150623; h=message-id:subject:from:to:cc:date:in-reply-to:references :user-agent:mime-version:content-transfer-encoding; bh=NgErhWjVYS40cse08ZsXc39yhag5uGkh43eRrKni6lg=; b=ur8sCkRb3FMUhgW+QJadn9dMy4JISPa7I7yRBZGwGimMjGgjJvScQD944W2s39N1KK 5ZwY/Uref8JP5Hz0AoZk7uJej9PkNpVO5lnBNAd1BNMQLDR3FeLf5o3O2/Nl9o52Jz6c Mkl8fwYqr2OqxRunNzd9U2N5r/AG1omvgceB2aliRb5FS4hQJJHBiTYgLL9O1hr5jyqH 0mVCAU7VU9tlR+GoEy4FhWqk4WtQr03iwT7iAhKCfE+b/QojvK4/Na3r+NROo6aI6Rqg ZcitjEHBOZg2knRRNRzkoZxcHDVvk3aPSYJBewyYgbapyQ4VkDGgyFlqgXTcEheiJK9j rlCQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:message-id:subject:from:to:cc:date:in-reply-to :references:user-agent:mime-version:content-transfer-encoding; bh=NgErhWjVYS40cse08ZsXc39yhag5uGkh43eRrKni6lg=; b=bjmaRkLHOTTONlvR4DnjdgnHHRO3GfgPYAFDr5jCATKwNhz6x+dW1E0RDVFdvlS7mU rFicsCojjIr8G3S69Zes72N0pgzioaBcrwHDLeanMU0BPAa6vr41LZ3yaioCSqUkytal gHYTJmkR34YLpYBHiYX88VBvMj3wwrnmMQBUY6CQ8sqOdTCHRtls2cw553z3EyRMmZd8 3ZG6zgnk4gryCVe+pkLK+uGSvTm3g5Za++OrMMa/ioqieFxmxmuQcdoJFuslbzQ6wZjH BJ3jDfsESM1mKFNlU7ioFwPajwzrfnq186a27T4WTFeWPT3M520JFfOH4F/NRFatdTTV s30g== X-Gm-Message-State: AOAM5315s6UhGbfVx5HoIwyQ7cwn/ZigqT3TayX6I9FZ4LpxFgA+37JR 9oGO/ZcvhCjvWMowBfUAFiLulA== X-Google-Smtp-Source: ABdhPJzEX9/PYCZJ0v5bnw+DU56A+H6y1W46NuNaqvaLGR+HDtIUxBzjsqJkyYMBHNTVe1V5W92Okg== X-Received: by 2002:ac8:4249:: with SMTP id r9mr18127959qtm.285.1614706718945; Tue, 02 Mar 2021 09:38:38 -0800 (PST) Received: from nicolas-tpx395.lan (173-246-12-168.qc.cable.ebox.net. [173.246.12.168]) by smtp.gmail.com with ESMTPSA id t6sm15339867qkd.127.2021.03.02.09.38.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 02 Mar 2021 09:38:38 -0800 (PST) Message-ID: <4cb93f828695f7f6307077da466a58ba478c9824.camel@ndufresne.ca> Subject: Re: [PATCH v2 3/8] media: add Mediatek's MM21 format From: Nicolas Dufresne To: Alexandre Courbot , Tiffany Lin , Andrew-CT Chen , Rob Herring , Yunfei Dong Cc: Mauro Carvalho Chehab , Hans Verkuil , linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mediatek@lists.infradead.org Date: Tue, 02 Mar 2021 12:38:37 -0500 In-Reply-To: <20210225101612.2832444-4-acourbot@chromium.org> References: <20210225101612.2832444-1-acourbot@chromium.org> <20210225101612.2832444-4-acourbot@chromium.org> User-Agent: Evolution 3.38.3 (3.38.3-1.fc33) MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210302_173951_171605_CC862EE8 X-CRM114-Status: GOOD ( 17.86 ) X-BeenThere: linux-mediatek@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-mediatek" Errors-To: linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org TGUgamV1ZGkgMjUgZsOpdnJpZXIgMjAyMSDDoCAxOToxNiArMDkwMCwgQWxleGFuZHJlIENvdXJi b3QgYSDDqWNyaXTCoDoKPiBBZGQgTWVkaWF0ZWsncyBub24tY29tcHJlc3NlZCA4IGJpdCBibG9j ayB2aWRlbyBtb2RlLiBUaGlzIGZvcm1hdCBpcwo+IHByb2R1Y2VkIGJ5IHRoZSBNVDgxODMgY29k ZWMgYW5kIGNhbiBiZSBjb252ZXJ0ZWQgdG8gYSBub24tcHJvcHJpZXRhcnkKPiBmb3JtYXQgYnkg dGhlIE1EUDMgY29tcG9uZW50Lgo+IAo+IFNpZ25lZC1vZmYtYnk6IEFsZXhhbmRyZSBDb3VyYm90 IDxhY291cmJvdEBjaHJvbWl1bS5vcmc+Cj4gLS0tCj4gwqBEb2N1bWVudGF0aW9uL3VzZXJzcGFj ZS1hcGkvbWVkaWEvdjRsL3BpeGZtdC1yZXNlcnZlZC5yc3QgfCA3ICsrKysrKysKPiDCoGRyaXZl cnMvbWVkaWEvdjRsMi1jb3JlL3Y0bDItaW9jdGwuY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCB8IDEgKwo+IMKgaW5jbHVkZS91YXBpL2xpbnV4L3ZpZGVvZGV2Mi5o wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHwg MSArCj4gwqAzIGZpbGVzIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygrKQo+IAo+IGRpZmYgLS1naXQg YS9Eb2N1bWVudGF0aW9uL3VzZXJzcGFjZS1hcGkvbWVkaWEvdjRsL3BpeGZtdC1yZXNlcnZlZC5y c3QKPiBiL0RvY3VtZW50YXRpb24vdXNlcnNwYWNlLWFwaS9tZWRpYS92NGwvcGl4Zm10LXJlc2Vy dmVkLnJzdAo+IGluZGV4IGM5MjMxZTE4ODU5Yi4uMTg3ZWE4OWY3YTI1IDEwMDY0NAo+IC0tLSBh L0RvY3VtZW50YXRpb24vdXNlcnNwYWNlLWFwaS9tZWRpYS92NGwvcGl4Zm10LXJlc2VydmVkLnJz dAo+ICsrKyBiL0RvY3VtZW50YXRpb24vdXNlcnNwYWNlLWFwaS9tZWRpYS92NGwvcGl4Zm10LXJl c2VydmVkLnJzdAo+IEBAIC0yNDIsNiArMjQyLDEzIEBAIHBsZWFzZSBtYWtlIGEgcHJvcG9zYWwg b24gdGhlIGxpbnV4LW1lZGlhIG1haWxpbmcgbGlzdC4KPiDCoMKgwqDCoMKgwqDCoMKgSXQgaXMg YW4gb3BhcXVlIGludGVybWVkaWF0ZSBmb3JtYXQgYW5kIHRoZSBNRFAgaGFyZHdhcmUgbXVzdCBi ZQo+IMKgwqDCoMKgwqDCoMKgwqB1c2VkIHRvIGNvbnZlcnQgYGBWNEwyX1BJWF9GTVRfTVQyMUNg YCB0byBgYFY0TDJfUElYX0ZNVF9OVjEyTWBgLAo+IMKgwqDCoMKgwqDCoMKgwqBgYFY0TDJfUElY X0ZNVF9ZVVY0MjBNYGAgb3IgYGBWNEwyX1BJWF9GTVRfWVZVNDIwYGAuCj4gK8KgwqDCoCAqIC4u IF9WNEwyLVBJWC1GTVQtTU0yMToKPiArCj4gK8KgwqDCoMKgwqAgLSBgYFY0TDJfUElYX0ZNVF9N TTIxYGAKPiArwqDCoMKgwqDCoCAtICdNTTIxJwo+ICvCoMKgwqDCoMKgIC0gTm9uLWNvbXByZXNz ZWQsIHRpbGVkIHR3by1wbGFuYXIgZm9ybWF0IHVzZWQgYnkgTWVkaWF0ZWsgTVQ4MTgzLgo+ICvC oMKgwqDCoMKgwqDCoFRoaXMgaXMgYW4gb3BhcXVlIGludGVybWVkaWF0ZSBmb3JtYXQgYW5kIHRo ZSBNRFAzIGhhcmR3YXJlIGNhbiBiZQo+ICvCoMKgwqDCoMKgwqDCoHVzZWQgdG8gY29udmVydCBp dCB0byBvdGhlciBmb3JtYXRzLgo+IMKgwqDCoMKgICogLi4gX1Y0TDItUElYLUZNVC1TVU5YSS1U SUxFRC1OVjEyOgoKVGhlIFNVTlhJIG9uZSB3YXMgYSBtaXN0YWtlLCAgaXQncyBsaW5lYXIgbGF5 b3V0IDMyeDMyIHRpbGVzLiBUaGUgcHJvYmxlbSB3aXRoCmNhbGxpbmcgdGhpcyBhIHZlbmRvciBm b3JtYXQsIGlzIHRoYXQgb3RoZXIgdmVuZG9yIG1pZ2h0IGJlIHVzaW5nIGl0IHRvby4gQnV0CnRo ZXkgd29uJ3Qga25vdyBhbmQgdGhlIGZvcm1hdCBtaWdodCBlbmR1cCBkdXBsaWNhdGVkLCBldmVu IGlmIGl0J3MgdGhlIHNhbWUKb25lLgoKU28gaGVyZSdzIG15IHJlcXVlc3QsIGhhdmUgeW91IHRy aWVkIHRvIHVuZGVyc3RhbmQgYSBiaXQgbW9yZSB3aGF0IHRoZSB0aWxpbmcKbGF5b3V0IGlzID8g Q291bGQgYmUgdGlsZWQgKyBTQU5ELCBjb3VsZCB1c2UgemlnemFnIGxheW91dCBsaWtlIFNhbXN1 bmcgZG8uIEkKdGhpbmsgaWYgd2UgY2FuIGF2b2lkIHZlbmRvciBmb3JtYXRzLCB3ZSBjYW4gcHJl c2VydmUgdGhlIHBpeGVsIGZvcm1hdCBsaXN0CnNhbml0eSBoZXJlLiBNb3N0IG9mIHRoZSBIVyBJ J3ZlIGVuY291dGVyZWQgd2FzIHZlcnkgZWFzeSB0byByZXZlcnNlLCBldmVuIGlmCnVuZG9jdW1l bnRlZCAoZXhjZXB0IHRoZSBjb21wcmVzc2VkIG9uZSkuCgpJZiBub3QgcG9zc2libGUsIEkgd291 bGQgbGlrZSB0byBzdWdnZXN0OgoKICBWNEwyX1BJWF9GTVRfTVRLX05WMjEKClRoZSBpbXBvcnRh bnQgcGFydCBpcyB0byBhZGQgYSBjbGVhciBzZXBlcmF0aW9uIGZvciB0aGUgdmVuZG9yIG5hbWUs IGl0IGVhc3kgdG8KcmVjb2duaXplIHRoZW4uCgo+IMKgCj4gwqDCoMKgwqDCoMKgIC0gYGBWNEwy X1BJWF9GTVRfU1VOWElfVElMRURfTlYxMmBgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEv djRsMi1jb3JlL3Y0bDItaW9jdGwuYyBiL2RyaXZlcnMvbWVkaWEvdjRsMi0KPiBjb3JlL3Y0bDIt aW9jdGwuYwo+IGluZGV4IDMxZDEzNDJlNjFlOC4uMGI4NWIyYmJjNjI4IDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvbWVkaWEvdjRsMi1jb3JlL3Y0bDItaW9jdGwuYwo+ICsrKyBiL2RyaXZlcnMvbWVk aWEvdjRsMi1jb3JlL3Y0bDItaW9jdGwuYwo+IEBAIC0xMzg0LDYgKzEzODQsNyBAQCBzdGF0aWMg dm9pZCB2NGxfZmlsbF9mbXRkZXNjKHN0cnVjdCB2NGwyX2ZtdGRlc2MgKmZtdCkKPiDCoMKgwqDC oMKgwqDCoMKgY2FzZSBWNEwyX1BJWF9GTVRfVE02MDAwOsKgwqDCoMKgwqDCoMKgZGVzY3IgPSAi QS9WICsgVkJJIE11eCBQYWNrZXQiOyBicmVhazsKPiDCoMKgwqDCoMKgwqDCoMKgY2FzZSBWNEwy X1BJWF9GTVRfQ0lUX1lZVllVWTrCoMKgwqBkZXNjciA9ICJHU1BDQSBDSVQgWVlWWVVZIjsgYnJl YWs7Cj4gwqDCoMKgwqDCoMKgwqDCoGNhc2UgVjRMMl9QSVhfRk1UX0tPTklDQTQyMDrCoMKgwqDC oGRlc2NyID0gIkdTUENBIEtPTklDQTQyMCI7IGJyZWFrOwo+ICvCoMKgwqDCoMKgwqDCoGNhc2Ug VjRMMl9QSVhfRk1UX01NMjE6wqDCoMKgwqDCoMKgwqDCoMKgZGVzY3IgPSAiTWVkaWF0ZWsgOC1i aXQgYmxvY2sgZm9ybWF0IjsKPiBicmVhazsKPiDCoMKgwqDCoMKgwqDCoMKgY2FzZSBWNEwyX1BJ WF9GTVRfSFNWMjQ6wqDCoMKgwqDCoMKgwqDCoGRlc2NyID0gIjI0LWJpdCBIU1YgOC04LTgiOyBi cmVhazsKPiDCoMKgwqDCoMKgwqDCoMKgY2FzZSBWNEwyX1BJWF9GTVRfSFNWMzI6wqDCoMKgwqDC oMKgwqDCoGRlc2NyID0gIjMyLWJpdCBYSFNWIDgtOC04LTgiOyBicmVhazsKPiDCoMKgwqDCoMKg wqDCoMKgY2FzZSBWNEwyX1NEUl9GTVRfQ1U4OsKgwqDCoMKgwqDCoMKgwqDCoMKgZGVzY3IgPSAi Q29tcGxleCBVOCI7IGJyZWFrOwo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvbGludXgvdmlk ZW9kZXYyLmggYi9pbmNsdWRlL3VhcGkvbGludXgvdmlkZW9kZXYyLmgKPiBpbmRleCA3OWRiZGUz YmNmOGQuLmU2ODkwZGFlNzZlYyAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL3VhcGkvbGludXgvdmlk ZW9kZXYyLmgKPiArKysgYi9pbmNsdWRlL3VhcGkvbGludXgvdmlkZW9kZXYyLmgKPiBAQCAtNzMx LDYgKzczMSw3IEBAIHN0cnVjdCB2NGwyX3BpeF9mb3JtYXQgewo+IMKgI2RlZmluZSBWNEwyX1BJ WF9GTVRfWTEyScKgwqDCoMKgIHY0bDJfZm91cmNjKCdZJywgJzEnLCAnMicsICdJJykgLyogR3Jl eXNjYWxlCj4gMTItYml0IEwvUiBpbnRlcmxlYXZlZCAqLwo+IMKgI2RlZmluZSBWNEwyX1BJWF9G TVRfWjE2wqDCoMKgwqDCoCB2NGwyX2ZvdXJjYygnWicsICcxJywgJzYnLCAnICcpIC8qIERlcHRo IGRhdGEKPiAxNi1iaXQgKi8KPiDCoCNkZWZpbmUgVjRMMl9QSVhfRk1UX01UMjFDwqDCoMKgIHY0 bDJfZm91cmNjKCdNJywgJ1QnLCAnMicsICcxJykgLyogTWVkaWF0ZWsKPiBjb21wcmVzc2VkIGJs b2NrIG1vZGXCoCAqLwo+ICsjZGVmaW5lIFY0TDJfUElYX0ZNVF9NTTIxwqDCoMKgwqAgdjRsMl9m b3VyY2MoJ00nLCAnTScsICcyJywgJzEnKSAvKiBNZWRpYXRlayA4LQo+IGJpdCBibG9jayBtb2Rl LCB0d28gbm9uLWNvbnRpZ3VvdXMgcGxhbmVzICovCj4gwqAjZGVmaW5lIFY0TDJfUElYX0ZNVF9J TlpJwqDCoMKgwqAgdjRsMl9mb3VyY2MoJ0knLCAnTicsICdaJywgJ0knKSAvKiBJbnRlbCBQbGFu YXIKPiBHcmV5c2NhbGUgMTAtYml0IGFuZCBEZXB0aCAxNi1iaXQgKi8KPiDCoCNkZWZpbmUgVjRM Ml9QSVhfRk1UX1NVTlhJX1RJTEVEX05WMTIgdjRsMl9mb3VyY2MoJ1MnLCAnVCcsICcxJywgJzIn KSAvKgo+IFN1bnhpIFRpbGVkIE5WMTIgRm9ybWF0ICovCj4gwqAjZGVmaW5lIFY0TDJfUElYX0ZN VF9DTkY0wqDCoMKgwqAgdjRsMl9mb3VyY2MoJ0MnLCAnTicsICdGJywgJzQnKSAvKiBJbnRlbCA0 LWJpdAo+IHBhY2tlZCBkZXB0aCBjb25maWRlbmNlIGluZm9ybWF0aW9uICovCgoKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkxpbnV4LW1lZGlhdGVrIG1h aWxpbmcgbGlzdApMaW51eC1tZWRpYXRla0BsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0 cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtbWVkaWF0ZWsK