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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 681F3C636D7 for ; Fri, 10 Feb 2023 15:08:44 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232545AbjBJPIn (ORCPT ); Fri, 10 Feb 2023 10:08:43 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36314 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232516AbjBJPIk (ORCPT ); Fri, 10 Feb 2023 10:08:40 -0500 Received: from mail-qt1-x82f.google.com (mail-qt1-x82f.google.com [IPv6:2607:f8b0:4864:20::82f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 603056CC6D for ; Fri, 10 Feb 2023 07:08:28 -0800 (PST) Received: by mail-qt1-x82f.google.com with SMTP id g18so6015434qtb.6 for ; Fri, 10 Feb 2023 07:08:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ndufresne-ca.20210112.gappssmtp.com; s=20210112; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject :date:message-id:reply-to; bh=NeXajktN08gdTqt/pb1PeyZwlRPXP0HIHSrcxP/wobQ=; b=4tz0G1FmuViqvkhIudhqhbw7o48RF15bvCVJ8whu4nFj5BzkWYRhwDP0DBuBbHvyOV 2TCufrhYIxparXIirM90ae67HytZTXY/OMR8LIdwRNjy47yvWYpCcRUNfgOxK1Ndv9F+ Wamp2/MbQ3FQO/OZ85pKweJ9/iJI15npFgEqKYhdrgM7mpuh1nEUKAMQmw23Jw3GZrvg Axdqe4O7ahSdl0QU8+5JfRxdubpUHIxL9jskCp5CSGAdWY8daWMIExB6afUNwedX2jWu YYJqYpVKt0h0BPR7B7jcN+2hen/rwlidcyifr/DFVHQ05EO1URsMHg0w/DaEApuGGlG6 RASQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=NeXajktN08gdTqt/pb1PeyZwlRPXP0HIHSrcxP/wobQ=; b=JovWpIKhOE490Qp8+H5t6WKGLYihJpjmdbPgLegQ8RaTxMc9hXiTrwL25kG939Yden lqWSenAa97F/XN69I+3AUCaBVSzN/9JMkuhkfEd1O7DIYJfp84bZ4UQp8INaKngUJRG2 5t7hC93ydBmLx6hZymhkyAJ8z6hzslWvpcEZ4NpPko+S/33nJ/XwnAYXl/PIvIOmw7hT WerzV63r/NymwxpqKrGb7Hxsz2B9TpJ9SD+6SR9u1geYtK02kpcWOf2S4fip82baIRUJ Y6hcXr60KS3/lWhCyWw3kTC4qQxN5LXTMobeqo0nD1q3Fx9GKYoYxYsUju9bbmMMMcO+ SqYg== X-Gm-Message-State: AO0yUKW7aQUFgcgQ5AJLUbbScbAK6/iwdDjhq3gwMzDa7PIjcjHG5gKZ Hsq3ru17vNn4xVqTJ7osm1D25Q== X-Google-Smtp-Source: AK7set+gB8I7SsaibW3tqxP2qGOehyGAfE7YysBkVatv5LZKtMsvyz4C6ypUP2jUhOysRHv/ioF2JQ== X-Received: by 2002:a05:622a:11c3:b0:3ab:d932:6c4e with SMTP id n3-20020a05622a11c300b003abd9326c4emr28225693qtk.18.1676041707499; Fri, 10 Feb 2023 07:08:27 -0800 (PST) Received: from nicolas-tpx395.localdomain (192-222-136-102.qc.cable.ebox.net. [192.222.136.102]) by smtp.gmail.com with ESMTPSA id d10-20020ac800ca000000b003b0b903720esm3579310qtg.13.2023.02.10.07.08.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 10 Feb 2023 07:08:26 -0800 (PST) Message-ID: Subject: Re: [EXT] Re: [PATCH 01/10] media: Add P012 and P012M video format From: Nicolas Dufresne To: Ming Qian , Hans Verkuil , "mchehab@kernel.org" , "Mirela Rabulea (OSS)" Cc: "shawnguo@kernel.org" , "s.hauer@pengutronix.de" , "kernel@pengutronix.de" , "festevam@gmail.com" , "X.H. Bao" , dl-linux-imx , "linux-media@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "devicetree@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" Date: Fri, 10 Feb 2023 10:08:25 -0500 In-Reply-To: References: <05bfc909-1ebb-b74f-dcdd-adc70dd97f3e@xs4all.nl> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.46.3 (3.46.3-1.fc37) MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Le lundi 30 janvier 2023 =C3=A0 08:15 +0000, Ming Qian a =C3=A9crit=C2=A0: > > > diff --git a/include/uapi/linux/videodev2.h > > > b/include/uapi/linux/videodev2.h index 1befd181a4cc..5448aa3b7858 > > > 100644 > > > --- a/include/uapi/linux/videodev2.h > > > +++ b/include/uapi/linux/videodev2.h > > > @@ -626,12 +626,14 @@ struct v4l2_pix_format { > > > =C2=A0 #define V4L2_PIX_FMT_NV24=C2=A0=C2=A0=C2=A0 v4l2_fourcc('N', '= V', '2', '4') /* 24=C2=A0 > > > Y/CbCr > > 4:4:4=C2=A0 */ > > > =C2=A0 #define V4L2_PIX_FMT_NV42=C2=A0=C2=A0=C2=A0 v4l2_fourcc('N', '= V', '4', '2') /* 24=C2=A0 > > > Y/CrCb > > 4:4:4=C2=A0 */ > > > =C2=A0 #define V4L2_PIX_FMT_P010=C2=A0=C2=A0=C2=A0 v4l2_fourcc('P', '= 0', '1', '0') /* 24=C2=A0 > > > Y/CbCr > > 4:2:0 10-bit per component */ > > > +#define V4L2_PIX_FMT_P012=C2=A0=C2=A0=C2=A0 v4l2_fourcc('P', '0', '1= ', '2') /* 24=C2=A0 > > > Y/CbCr > > 4:2:0 12-bit per component */ > > >=20 > > > =C2=A0 /* two non contiguous planes - one Y, one Cr + Cb interleaved= =C2=A0 */ > > > =C2=A0 #define V4L2_PIX_FMT_NV12M=C2=A0=C2=A0 v4l2_fourcc('N', 'M', '= 1', '2') /* 12=C2=A0 > > > Y/CbCr > > 4:2:0=C2=A0 */ > > > =C2=A0 #define V4L2_PIX_FMT_NV21M=C2=A0=C2=A0 v4l2_fourcc('N', 'M', '= 2', '1') /* 21=C2=A0 > > > Y/CrCb > > 4:2:0=C2=A0 */ > > > =C2=A0 #define V4L2_PIX_FMT_NV16M=C2=A0=C2=A0 v4l2_fourcc('N', 'M', '= 1', '6') /* 16=C2=A0 > > > Y/CbCr > > 4:2:2=C2=A0 */ > > > =C2=A0 #define V4L2_PIX_FMT_NV61M=C2=A0=C2=A0 v4l2_fourcc('N', 'M', '= 6', '1') /* 16=C2=A0 > > > Y/CrCb > > 4:2:2=C2=A0 */ > > > +#define V4L2_PIX_FMT_P012M=C2=A0=C2=A0 v4l2_fourcc('P', 'M', '1', '2= ') /* 24=C2=A0 > > > Y/CbCr > > 4:2:0 12-bit per component */ > >=20 > > The name of the V4L2_PIX_FMT_ defines in this series are hard to decode= . > >=20 > > In this case is it derived from V4L2_PIX_FMT_P010, which really should = have > > been named differently, but it's too late now :-( > >=20 > > So I guess we'll stick with this naming, but it's not obvious what 'P01= 2' > > means > > without referring to documentation. > >=20 > > Oh well. > >=20 > > Regards, > >=20 > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 Hans >=20 > Hi Hans, > =C2=A0=C2=A0=C2=A0 I'll update the format name, as you know,=C2=A0 the P0= 12 is following the P010, > as they are almost the same, and the Y212 comes from gstreamer > (GST_VIDEO_FORMAT_Y212_LE), then I did some naming like that. > =C2=A0=C2=A0=C2=A0 I'll correct them in v2 patch. I agree these naming are not obvious. In GStreamer, appart from the _LE par= t, we've had this historical tendency to just stick with Microsoft names when = they exist. Though Microsoft only define 10 and 16bits (P010/P016, Y210 and Y216= ). In this case, the 12 has is derived from it. https://learn.microsoft.com/en-us/windows/win32/medfound/10-bit-and-16-bit-= yuv-video-formats While P010 is very commonly seen, I don't know if Y210/Y212/Y216 is a great idea. It is a 16bit component width version of YUYV, which as we know exist= in all sort of swizzling. So the Microsoft name will be hard to extend to othe= r component order. My argument of keeping it this way though is that it match= es the other copy of pixel formats definition that exist in Linux, which is drm_fourcc.h. Nicolas 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 19F9CC636CD for ; Fri, 10 Feb 2023 15:09:41 +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: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=ryYrxC1KkQeUrYrJhwtougZDDBbJaE1VfOQ32NzRMFc=; b=Or/AJ7UzTu2orH hgmQboUINCMNqoi8x/4tM8FfhnT4oIwhaQDw5lSoaeZ+H0qPsylOxm9pd+Cr3ceoWIBwowPMY5jzf Yufwa8VSW6mb09v6247K31FtPegxAB8M8zzpFdeCNPz3RZe6ubeTQ+84ijYj1PgwO1sqLNwmZncAH elCgfUAtfuqPVgJjI3xZSZkZtRU+vZ5bXF3sjkKLKCM2k6RfZ38cTWQ+KyQkDIrWh6a4Ht3KRd+Cj tSSBmK+nqknoS+wPZ6ywSeYokaPE+Rae3mzprhiK4tKaqo1InO8sAD1um2xgflYBDw7auia5SwjOV LfebuJYl7kQGDsweL72Q==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1pQV0s-006DOH-9w; Fri, 10 Feb 2023 15:08:34 +0000 Received: from mail-qt1-x829.google.com ([2607:f8b0:4864:20::829]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1pQV0n-006DLr-Bc for linux-arm-kernel@lists.infradead.org; Fri, 10 Feb 2023 15:08:31 +0000 Received: by mail-qt1-x829.google.com with SMTP id g8so5976493qtq.13 for ; Fri, 10 Feb 2023 07:08:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ndufresne-ca.20210112.gappssmtp.com; s=20210112; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject :date:message-id:reply-to; bh=NeXajktN08gdTqt/pb1PeyZwlRPXP0HIHSrcxP/wobQ=; b=4tz0G1FmuViqvkhIudhqhbw7o48RF15bvCVJ8whu4nFj5BzkWYRhwDP0DBuBbHvyOV 2TCufrhYIxparXIirM90ae67HytZTXY/OMR8LIdwRNjy47yvWYpCcRUNfgOxK1Ndv9F+ Wamp2/MbQ3FQO/OZ85pKweJ9/iJI15npFgEqKYhdrgM7mpuh1nEUKAMQmw23Jw3GZrvg Axdqe4O7ahSdl0QU8+5JfRxdubpUHIxL9jskCp5CSGAdWY8daWMIExB6afUNwedX2jWu YYJqYpVKt0h0BPR7B7jcN+2hen/rwlidcyifr/DFVHQ05EO1URsMHg0w/DaEApuGGlG6 RASQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=NeXajktN08gdTqt/pb1PeyZwlRPXP0HIHSrcxP/wobQ=; b=gV3jX2c/8JeM5oPVTYjvNLm1GRLQHga4M4ONRckhKgD5B2cIimeM/T+AynKS1NrFiu EeqlOq2yW1l22leJYO+3vwrk3V60osov3F8Z6teMeuGUJmY8hRpB5DSLZbpYC2yg8qT4 /jm8pceaplAvVvemWuOMWD5S4Busv1PyC9/WNTzGr14HdJ1mEvj86kgWW5BZTTEULEXS VbFZGmfeKfPC6YEUF7oNagwkeL8cyC9zMouik6V1SWNV/Tt5YloMgcyPx9zvdU7+jFjY dHjB9lGjYb+5S2aCr+1ORxYIwTjJECMn8K6svi/yazBsnE2mpzc3B/nWyLUwYxW8VE/8 mSGg== X-Gm-Message-State: AO0yUKUC4Jymg39AWs2QiVv0fZIfZCuTij8etjx83A7wu7fa0OQ96RAi pikJIPi44tf0D3sHtaFWCK/Kmw== X-Google-Smtp-Source: AK7set+gB8I7SsaibW3tqxP2qGOehyGAfE7YysBkVatv5LZKtMsvyz4C6ypUP2jUhOysRHv/ioF2JQ== X-Received: by 2002:a05:622a:11c3:b0:3ab:d932:6c4e with SMTP id n3-20020a05622a11c300b003abd9326c4emr28225693qtk.18.1676041707499; Fri, 10 Feb 2023 07:08:27 -0800 (PST) Received: from nicolas-tpx395.localdomain (192-222-136-102.qc.cable.ebox.net. [192.222.136.102]) by smtp.gmail.com with ESMTPSA id d10-20020ac800ca000000b003b0b903720esm3579310qtg.13.2023.02.10.07.08.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 10 Feb 2023 07:08:26 -0800 (PST) Message-ID: Subject: Re: [EXT] Re: [PATCH 01/10] media: Add P012 and P012M video format From: Nicolas Dufresne To: Ming Qian , Hans Verkuil , "mchehab@kernel.org" , "Mirela Rabulea (OSS)" Cc: "shawnguo@kernel.org" , "s.hauer@pengutronix.de" , "kernel@pengutronix.de" , "festevam@gmail.com" , "X.H. Bao" , dl-linux-imx , "linux-media@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "devicetree@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" Date: Fri, 10 Feb 2023 10:08:25 -0500 In-Reply-To: References: <05bfc909-1ebb-b74f-dcdd-adc70dd97f3e@xs4all.nl> User-Agent: Evolution 3.46.3 (3.46.3-1.fc37) MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230210_070829_439926_FFF7D065 X-CRM114-Status: GOOD ( 21.84 ) X-BeenThere: linux-arm-kernel@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-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org TGUgbHVuZGkgMzAgamFudmllciAyMDIzIMOgIDA4OjE1ICswMDAwLCBNaW5nIFFpYW4gYSDDqWNy aXTCoDoKPiA+ID4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC92aWRlb2RldjIuaAo+ ID4gPiBiL2luY2x1ZGUvdWFwaS9saW51eC92aWRlb2RldjIuaCBpbmRleCAxYmVmZDE4MWE0Y2Mu LjU0NDhhYTNiNzg1OAo+ID4gPiAxMDA2NDQKPiA+ID4gLS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4 L3ZpZGVvZGV2Mi5oCj4gPiA+ICsrKyBiL2luY2x1ZGUvdWFwaS9saW51eC92aWRlb2RldjIuaAo+ ID4gPiBAQCAtNjI2LDEyICs2MjYsMTQgQEAgc3RydWN0IHY0bDJfcGl4X2Zvcm1hdCB7Cj4gPiA+ IMKgICNkZWZpbmUgVjRMMl9QSVhfRk1UX05WMjTCoMKgwqAgdjRsMl9mb3VyY2MoJ04nLCAnVics ICcyJywgJzQnKSAvKiAyNMKgCj4gPiA+IFkvQ2JDcgo+ID4gNDo0OjTCoCAqLwo+ID4gPiDCoCAj ZGVmaW5lIFY0TDJfUElYX0ZNVF9OVjQywqDCoMKgIHY0bDJfZm91cmNjKCdOJywgJ1YnLCAnNCcs ICcyJykgLyogMjTCoAo+ID4gPiBZL0NyQ2IKPiA+IDQ6NDo0wqAgKi8KPiA+ID4gwqAgI2RlZmlu ZSBWNEwyX1BJWF9GTVRfUDAxMMKgwqDCoCB2NGwyX2ZvdXJjYygnUCcsICcwJywgJzEnLCAnMCcp IC8qIDI0wqAKPiA+ID4gWS9DYkNyCj4gPiA0OjI6MCAxMC1iaXQgcGVyIGNvbXBvbmVudCAqLwo+ ID4gPiArI2RlZmluZSBWNEwyX1BJWF9GTVRfUDAxMsKgwqDCoCB2NGwyX2ZvdXJjYygnUCcsICcw JywgJzEnLCAnMicpIC8qIDI0wqAKPiA+ID4gWS9DYkNyCj4gPiA0OjI6MCAxMi1iaXQgcGVyIGNv bXBvbmVudCAqLwo+ID4gPiAKPiA+ID4gwqAgLyogdHdvIG5vbiBjb250aWd1b3VzIHBsYW5lcyAt IG9uZSBZLCBvbmUgQ3IgKyBDYiBpbnRlcmxlYXZlZMKgICovCj4gPiA+IMKgICNkZWZpbmUgVjRM Ml9QSVhfRk1UX05WMTJNwqDCoCB2NGwyX2ZvdXJjYygnTicsICdNJywgJzEnLCAnMicpIC8qIDEy wqAKPiA+ID4gWS9DYkNyCj4gPiA0OjI6MMKgICovCj4gPiA+IMKgICNkZWZpbmUgVjRMMl9QSVhf Rk1UX05WMjFNwqDCoCB2NGwyX2ZvdXJjYygnTicsICdNJywgJzInLCAnMScpIC8qIDIxwqAKPiA+ ID4gWS9DckNiCj4gPiA0OjI6MMKgICovCj4gPiA+IMKgICNkZWZpbmUgVjRMMl9QSVhfRk1UX05W MTZNwqDCoCB2NGwyX2ZvdXJjYygnTicsICdNJywgJzEnLCAnNicpIC8qIDE2wqAKPiA+ID4gWS9D YkNyCj4gPiA0OjI6MsKgICovCj4gPiA+IMKgICNkZWZpbmUgVjRMMl9QSVhfRk1UX05WNjFNwqDC oCB2NGwyX2ZvdXJjYygnTicsICdNJywgJzYnLCAnMScpIC8qIDE2wqAKPiA+ID4gWS9DckNiCj4g PiA0OjI6MsKgICovCj4gPiA+ICsjZGVmaW5lIFY0TDJfUElYX0ZNVF9QMDEyTcKgwqAgdjRsMl9m b3VyY2MoJ1AnLCAnTScsICcxJywgJzInKSAvKiAyNMKgCj4gPiA+IFkvQ2JDcgo+ID4gNDoyOjAg MTItYml0IHBlciBjb21wb25lbnQgKi8KPiA+IAo+ID4gVGhlIG5hbWUgb2YgdGhlIFY0TDJfUElY X0ZNVF8gZGVmaW5lcyBpbiB0aGlzIHNlcmllcyBhcmUgaGFyZCB0byBkZWNvZGUuCj4gPiAKPiA+ IEluIHRoaXMgY2FzZSBpcyBpdCBkZXJpdmVkIGZyb20gVjRMMl9QSVhfRk1UX1AwMTAsIHdoaWNo IHJlYWxseSBzaG91bGQgaGF2ZQo+ID4gYmVlbiBuYW1lZCBkaWZmZXJlbnRseSwgYnV0IGl0J3Mg dG9vIGxhdGUgbm93IDotKAo+ID4gCj4gPiBTbyBJIGd1ZXNzIHdlJ2xsIHN0aWNrIHdpdGggdGhp cyBuYW1pbmcsIGJ1dCBpdCdzIG5vdCBvYnZpb3VzIHdoYXQgJ1AwMTInCj4gPiBtZWFucwo+ID4g d2l0aG91dCByZWZlcnJpbmcgdG8gZG9jdW1lbnRhdGlvbi4KPiA+IAo+ID4gT2ggd2VsbC4KPiA+ IAo+ID4gUmVnYXJkcywKPiA+IAo+ID4gwqDCoMKgwqDCoMKgwqAgSGFucwo+IAo+IEhpIEhhbnMs Cj4gwqDCoMKgIEknbGwgdXBkYXRlIHRoZSBmb3JtYXQgbmFtZSwgYXMgeW91IGtub3cswqAgdGhl IFAwMTIgaXMgZm9sbG93aW5nIHRoZSBQMDEwLAo+IGFzIHRoZXkgYXJlIGFsbW9zdCB0aGUgc2Ft ZSwgYW5kIHRoZSBZMjEyIGNvbWVzIGZyb20gZ3N0cmVhbWVyCj4gKEdTVF9WSURFT19GT1JNQVRf WTIxMl9MRSksIHRoZW4gSSBkaWQgc29tZSBuYW1pbmcgbGlrZSB0aGF0Lgo+IMKgwqDCoCBJJ2xs IGNvcnJlY3QgdGhlbSBpbiB2MiBwYXRjaC4KCkkgYWdyZWUgdGhlc2UgbmFtaW5nIGFyZSBub3Qg b2J2aW91cy4gSW4gR1N0cmVhbWVyLCBhcHBhcnQgZnJvbSB0aGUgX0xFIHBhcnQsCndlJ3ZlIGhh ZCB0aGlzIGhpc3RvcmljYWwgdGVuZGVuY3kgdG8ganVzdCBzdGljayB3aXRoIE1pY3Jvc29mdCBu YW1lcyB3aGVuIHRoZXkKZXhpc3QuIFRob3VnaCBNaWNyb3NvZnQgb25seSBkZWZpbmUgMTAgYW5k IDE2Yml0cyAoUDAxMC9QMDE2LCBZMjEwIGFuZCBZMjE2KS4gSW4KdGhpcyBjYXNlLCB0aGUgMTIg aGFzIGlzIGRlcml2ZWQgZnJvbSBpdC4KCmh0dHBzOi8vbGVhcm4ubWljcm9zb2Z0LmNvbS9lbi11 cy93aW5kb3dzL3dpbjMyL21lZGZvdW5kLzEwLWJpdC1hbmQtMTYtYml0LXl1di12aWRlby1mb3Jt YXRzCgpXaGlsZSBQMDEwIGlzIHZlcnkgY29tbW9ubHkgc2VlbiwgSSBkb24ndCBrbm93IGlmIFky MTAvWTIxMi9ZMjE2IGlzIGEgZ3JlYXQKaWRlYS4gSXQgaXMgYSAxNmJpdCBjb21wb25lbnQgd2lk dGggdmVyc2lvbiBvZiBZVVlWLCB3aGljaCBhcyB3ZSBrbm93IGV4aXN0IGluCmFsbCBzb3J0IG9m IHN3aXp6bGluZy4gU28gdGhlIE1pY3Jvc29mdCBuYW1lIHdpbGwgYmUgaGFyZCB0byBleHRlbmQg dG8gb3RoZXIKY29tcG9uZW50IG9yZGVyLiBNeSBhcmd1bWVudCBvZiBrZWVwaW5nIGl0IHRoaXMg d2F5IHRob3VnaCBpcyB0aGF0IGl0IG1hdGNoZXMKdGhlIG90aGVyIGNvcHkgb2YgcGl4ZWwgZm9y bWF0cyBkZWZpbml0aW9uIHRoYXQgZXhpc3QgaW4gTGludXgsIHdoaWNoIGlzCmRybV9mb3VyY2Mu aC4KCk5pY29sYXMKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMu aW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2xpbnV4LWFybS1rZXJuZWwK