From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 4368B38C2 for ; Wed, 16 Mar 2022 13:10:45 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id C654CC340E9; Wed, 16 Mar 2022 13:10:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1647436244; bh=ESbbcLu/1iy4VCTs0pWTJ94umpC1+FygKacL+9W4w10=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=DcPUYzV1Aku3NcbcTL9mdkMh1LWnKoJ2XTkIoBo8wtuneK7AqFc5LHQ4+RsZN47Ro TUy+Ll7nYCAG/HLI4ecmBAy3F8pMq2hKFdrktfkGgYIUyQIqhi6BpKNY4NNZlrwBdc bDycPpgG8QFWVaCQyI7Z7R9RUmhpU3ikfyMX+RiOvQJFuCwXkoOHOdgqt3f3mh2/4A FLjpYtyz+8GJAufTG1ItDJyYjVNYgohQjdE6hRq2Z3M53jAH1DdJ8nEs29BzSHqjX1 WgXwGnUKBXVbeoSSLJNdFH0PUjhcoFnbgVtX/co3lCeBFRoQLvayqkwO2Xcs8DRi1M UUGpV/32fmXNg== Date: Wed, 16 Mar 2022 14:10:36 +0100 From: Mauro Carvalho Chehab To: Laurent Pinchart Cc: Jernej =?UTF-8?B?xaBrcmFiZWM=?= , Niklas =?UTF-8?B?U8O2ZGVybHVuZA==?= , Cai Huoqing , Chen-Yu Tsai , Dinghao Liu , Dmitry Osipenko , Eugen Hristev , Ezequiel Garcia , Hans Verkuil , Jacopo Mondi , Jia-Ju Bai , Jonathan Cameron , Maxime Ripard , Mikhail Rudenko , Ming Qian , Ondrej Jirman , Robert Foss , Sakari Ailus , Tomi Valkeinen , Yong Deng , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-media@vger.kernel.org, linux-sunxi@lists.linux.dev Subject: Re: [PATCH v2 47/67] media: platform: rename sunxi/ to allwinner/ Message-ID: <20220316141036.1c9ad0c6@coco.lan> In-Reply-To: References: <85266b480902079391d4206b8aa276ff131a730f.1647274407.git.mchehab@kernel.org> <2816975.e9J7NaK4W3@kista> <20220315064005.10ecdab2@coco.lan> <20220315092736.7e805c81@coco.lan> X-Mailer: Claws Mail 4.0.0 (GTK+ 3.24.31; x86_64-redhat-linux-gnu) Precedence: bulk X-Mailing-List: linux-sunxi@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Em Tue, 15 Mar 2022 10:35:05 +0200 Laurent Pinchart escreveu: > On Tue, Mar 15, 2022 at 09:27:36AM +0100, Mauro Carvalho Chehab wrote: > > Em Tue, 15 Mar 2022 08:54:25 +0200 > > Laurent Pinchart escreveu: > > =20 > > > Hi Mauro, > > >=20 > > > On Tue, Mar 15, 2022 at 06:40:05AM +0100, Mauro Carvalho Chehab wrote= : =20 > > > > Em Mon, 14 Mar 2022 18:22:20 +0100 Jernej =C5=A0krabec escreveu: > > > > =20 > > > > > Dne ponedeljek, 14. marec 2022 ob 17:34:42 CET je Mauro Carvalho = Chehab=20 > > > > > napisal(a): =20 > > > > > > As the end goal is to have platform drivers split by vendor, > > > > > > rename sunxi/ to allwinner/. > > > > > >=20 > > > > > > Signed-off-by: Mauro Carvalho Chehab = =20 > > > > >=20 > > > > > I would rather not do that. Everything related to Allwinner is ca= lled sunxi,=20 > > > > > albeit there are a few outliers. This is similar to Amlogic/meson= situation. =20 > > > >=20 > > > > The rationale of having one directory per manufacturer is that, if = drivers > > > > for newer platforms with different names from the same manufacturer= s are=20 > > > > added, those will still fit under allwinner/ and amlogic/. > > > >=20 > > > > The Kconfig names for sunxi and meson didn't change, nor the driver= 's name.=20 > > > > Also, the directories under allwinner preserve suni name on them: > > > >=20 > > > > drivers/media/platform/allwinner/ > > > > =E2=94=9C=E2=94=80=E2=94=80 sun4i-csi > > > > =E2=94=9C=E2=94=80=E2=94=80 sun6i-csi > > > > =E2=94=9C=E2=94=80=E2=94=80 sun8i-di > > > > =E2=94=94=E2=94=80=E2=94=80 sun8i-rotate > > > >=20 > > > > and so the directory under amlogic/: > > > >=20 > > > > drivers/media/platform/amlogic/ > > > > =E2=94=94=E2=94=80=E2=94=80 meson-ge2d > > > >=20 > > > > Now, if Allinner decides to release a new platforms named after ano= ther star, > > > > let's say, "Vega" and "Rigel", it would be just a matter of adding= =20 > > > > "vega/" and "rigel/" directories under allwinner. No need to touch > > > > media/platform/Kconfig and media/platform/Makefile. Everything will= happen > > > > on much more smaller vendor-specific Kconfig/Makefile. =20 > > >=20 > > > But the day Allwinner changes its name to Noloser, we'll have a simil= ar > > > problem. =20 > >=20 > > Not really. It will still be a single directory per vendor (whatever > > name it is). > > =20 > > > Thnk about Freescale vs. NXP, or Altera bought by Intel. =20 > >=20 > > Yeah, when some drivers move from one vendor to another one that > > already exists there, we should probably move the directories, in > > order to keep things well organized. =20 >=20 > I'm not sure we should. We still have arch/arm64/boot/dts/freescale/ for > instance. We can answer that question later though, when confronted with > the situation. It would be messy if some drivers under a media/platform/vendor_a/ directory would actually belong to vendor_b, which also has its own media/platform/vendor_b/ directory. On such case, I do think we should move stuff. Now, if everything under a "media/platform/vendor_a/" directory are now property of a vendor_c which doesn't have yet any directory there, I don't see and problems on not renaming - and even adding new drivers there that would belong to vendor_c. >=20 > > The worse case scenario is really if, let's say, TI decides to sell the= ir > > omap architecture to NXP, keeping the rest. On such case, the best would > > be to move platform/ti/omap* to the directory of its newer owner. > >=20 > > That's said, when things like that happen, there are usually a change > > at MAINTAINERS, as e-mails, mailing lists and contact people will > > likely change. So, this will very likely generate patches anyway. > > =20 > > > No > > > naming scheme is totally future-proof. If the accepted standard throu= gh > > > the kernel is to use sunxi to refer to Allwinner SoCs, I don't think > > > it's a bit idea to go with that. =20 > >=20 > > I'm not too concerned about the name here, but rather about the > > process. Needing to do reorg like this is painful, as it causes=20 > > all pending work to fail merging against upstream, requiring rebases. > > So, we should avoid needing to re-do it by trying our best to avoid > > the need of another global change like that in the future. =20 >=20 > Most of the pain we'll go through in the immediate future comes from the > fact that we never really cared about this.=20 Nah, we had other reorgs in the past, also trying to better organize stuff, like splitting M2M from V4L and DVB platform drivers. The thing is that the number of entries at platform/ increased a lot, and that justifies a major change. > I think renames (of vendors > or product lines) will be infrequent enough that picking sunxi for > Allwinner drivers wouldn't be an issue. Agreed. > There's a similar think with Renesas, which had an SH product line and > then moved to ARM, creating R-Mobile and R-Car (among other product > liens). That's why we still have drivers/dma/sh/ for Renesas DMA > drivers. >=20 > > By organizing entries per vendor, while we may need to do puntual > > per-vendor adjustments when they rename and change IP with other > > vendors, the global platform Kconfig/Make will contain a single entry > > per vendor. I can't foresee any need to change this in the future, > > if we take care of keeping the entries there properly sorted. > >=20 > > With regards to naming the per-vendor directory, while I do prefer to h= ave > > the directories named after the vendor, and not after a vendor's nick= =20 > > name, It should also be ok to use a vendor's nick name, provided that=20 > > such name is meant to be used by all their current and future IP. > >=20 > > Not sure if "sunxi" is actually a vendor's nick name. It sounds > > much likely that it is, instead, a brand name that covers their=20 > > current media-related SoC.=20 > >=20 > > Can someone from the vendor shed a light on it? =20 >=20 > Maybe we can let the Allwinner upstream community tell us what name to > pick ? I'm sure they know better than us :-) Works for me. Thanks, Mauro 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 E7797C433EF for ; Wed, 16 Mar 2022 13:14:54 +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: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=eyViwxi+IKVkWQofadijcOB5kY35ogzB0UP9Xef5XMg=; b=YCeAe2HGmupge8 afEQch9VuWwvAdWl5T6ux1FFU1HZunY/tUbvMTez0GP+CGdspbgaFrHN56yuyUql7kpYzg/SIf30K piNa4e6SVZV2BkmizTr9XiHAORfDorgOjbfEBc3TNeMOmqXJy6EYJLu5dnYxUJ5hncCVYi7niQNvt MDQnoWAG5RMJ/aIdk9kgiNYLza/v+HMh179f9oZZRYFhM5VUc4VwCmtYWNVfegJAbzNFmj3I5CdWi TqeF3/rr1W/iGW1ARwMH0qGUMfpJO8MxPrNrKbDz9MNwJmnWSaTY7mgQognMWi93uHDH5ewU0bxh5 sk1iuogjj/D1w2bD4MJg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nUTSi-00CvSM-Pi; Wed, 16 Mar 2022 13:13:13 +0000 Received: from dfw.source.kernel.org ([139.178.84.217]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nUTQN-00CuIP-3n for linux-arm-kernel@lists.infradead.org; Wed, 16 Mar 2022 13:10:49 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 21A11617AB; Wed, 16 Mar 2022 13:10:45 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id C654CC340E9; Wed, 16 Mar 2022 13:10:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1647436244; bh=ESbbcLu/1iy4VCTs0pWTJ94umpC1+FygKacL+9W4w10=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=DcPUYzV1Aku3NcbcTL9mdkMh1LWnKoJ2XTkIoBo8wtuneK7AqFc5LHQ4+RsZN47Ro TUy+Ll7nYCAG/HLI4ecmBAy3F8pMq2hKFdrktfkGgYIUyQIqhi6BpKNY4NNZlrwBdc bDycPpgG8QFWVaCQyI7Z7R9RUmhpU3ikfyMX+RiOvQJFuCwXkoOHOdgqt3f3mh2/4A FLjpYtyz+8GJAufTG1ItDJyYjVNYgohQjdE6hRq2Z3M53jAH1DdJ8nEs29BzSHqjX1 WgXwGnUKBXVbeoSSLJNdFH0PUjhcoFnbgVtX/co3lCeBFRoQLvayqkwO2Xcs8DRi1M UUGpV/32fmXNg== Date: Wed, 16 Mar 2022 14:10:36 +0100 From: Mauro Carvalho Chehab To: Laurent Pinchart Cc: Jernej =?UTF-8?B?xaBrcmFiZWM=?= , Niklas =?UTF-8?B?U8O2ZGVybHVuZA==?= , Cai Huoqing , Chen-Yu Tsai , Dinghao Liu , Dmitry Osipenko , Eugen Hristev , Ezequiel Garcia , Hans Verkuil , Jacopo Mondi , Jia-Ju Bai , Jonathan Cameron , Maxime Ripard , Mikhail Rudenko , Ming Qian , Ondrej Jirman , Robert Foss , Sakari Ailus , Tomi Valkeinen , Yong Deng , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-media@vger.kernel.org, linux-sunxi@lists.linux.dev Subject: Re: [PATCH v2 47/67] media: platform: rename sunxi/ to allwinner/ Message-ID: <20220316141036.1c9ad0c6@coco.lan> In-Reply-To: References: <85266b480902079391d4206b8aa276ff131a730f.1647274407.git.mchehab@kernel.org> <2816975.e9J7NaK4W3@kista> <20220315064005.10ecdab2@coco.lan> <20220315092736.7e805c81@coco.lan> X-Mailer: Claws Mail 4.0.0 (GTK+ 3.24.31; x86_64-redhat-linux-gnu) MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220316_061047_316006_C39C28A1 X-CRM114-Status: GOOD ( 49.81 ) 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 RW0gVHVlLCAxNSBNYXIgMjAyMiAxMDozNTowNSArMDIwMApMYXVyZW50IFBpbmNoYXJ0IDxsYXVy ZW50LnBpbmNoYXJ0QGlkZWFzb25ib2FyZC5jb20+IGVzY3JldmV1OgoKPiBPbiBUdWUsIE1hciAx NSwgMjAyMiBhdCAwOToyNzozNkFNICswMTAwLCBNYXVybyBDYXJ2YWxobyBDaGVoYWIgd3JvdGU6 Cj4gPiBFbSBUdWUsIDE1IE1hciAyMDIyIDA4OjU0OjI1ICswMjAwCj4gPiBMYXVyZW50IFBpbmNo YXJ0IDxsYXVyZW50LnBpbmNoYXJ0QGlkZWFzb25ib2FyZC5jb20+IGVzY3JldmV1Ogo+ID4gICAK PiA+ID4gSGkgTWF1cm8sCj4gPiA+IAo+ID4gPiBPbiBUdWUsIE1hciAxNSwgMjAyMiBhdCAwNjo0 MDowNUFNICswMTAwLCBNYXVybyBDYXJ2YWxobyBDaGVoYWIgd3JvdGU6ICAKPiA+ID4gPiBFbSBN b24sIDE0IE1hciAyMDIyIDE4OjIyOjIwICswMTAwIEplcm5laiDFoGtyYWJlYyBlc2NyZXZldToK PiA+ID4gPiAgICAgCj4gPiA+ID4gPiBEbmUgcG9uZWRlbGplaywgMTQuIG1hcmVjIDIwMjIgb2Ig MTc6MzQ6NDIgQ0VUIGplIE1hdXJvIENhcnZhbGhvIENoZWhhYiAKPiA+ID4gPiA+IG5hcGlzYWwo YSk6ICAgIAo+ID4gPiA+ID4gPiBBcyB0aGUgZW5kIGdvYWwgaXMgdG8gaGF2ZSBwbGF0Zm9ybSBk cml2ZXJzIHNwbGl0IGJ5IHZlbmRvciwKPiA+ID4gPiA+ID4gcmVuYW1lIHN1bnhpLyB0byBhbGx3 aW5uZXIvLgo+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gU2lnbmVkLW9mZi1ieTogTWF1cm8gQ2Fy dmFsaG8gQ2hlaGFiIDxtY2hlaGFiQGtlcm5lbC5vcmc+ICAgICAgCj4gPiA+ID4gPiAKPiA+ID4g PiA+IEkgd291bGQgcmF0aGVyIG5vdCBkbyB0aGF0LiBFdmVyeXRoaW5nIHJlbGF0ZWQgdG8gQWxs d2lubmVyIGlzIGNhbGxlZCBzdW54aSwgCj4gPiA+ID4gPiBhbGJlaXQgdGhlcmUgYXJlIGEgZmV3 IG91dGxpZXJzLiBUaGlzIGlzIHNpbWlsYXIgdG8gQW1sb2dpYy9tZXNvbiBzaXR1YXRpb24uICAg IAo+ID4gPiA+IAo+ID4gPiA+IFRoZSByYXRpb25hbGUgb2YgaGF2aW5nIG9uZSBkaXJlY3Rvcnkg cGVyIG1hbnVmYWN0dXJlciBpcyB0aGF0LCBpZiBkcml2ZXJzCj4gPiA+ID4gZm9yIG5ld2VyIHBs YXRmb3JtcyB3aXRoIGRpZmZlcmVudCBuYW1lcyBmcm9tIHRoZSBzYW1lIG1hbnVmYWN0dXJlcnMg YXJlIAo+ID4gPiA+IGFkZGVkLCB0aG9zZSB3aWxsIHN0aWxsIGZpdCB1bmRlciBhbGx3aW5uZXIv IGFuZCBhbWxvZ2ljLy4KPiA+ID4gPiAKPiA+ID4gPiBUaGUgS2NvbmZpZyBuYW1lcyBmb3Igc3Vu eGkgYW5kIG1lc29uIGRpZG4ndCBjaGFuZ2UsIG5vciB0aGUgZHJpdmVyJ3MgbmFtZS4gCj4gPiA+ ID4gQWxzbywgdGhlIGRpcmVjdG9yaWVzIHVuZGVyIGFsbHdpbm5lciBwcmVzZXJ2ZSBzdW48eD5p IG5hbWUgb24gdGhlbToKPiA+ID4gPiAKPiA+ID4gPiAJZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9h bGx3aW5uZXIvCj4gPiA+ID4gCeKUnOKUgOKUgCBzdW40aS1jc2kKPiA+ID4gPiAJ4pSc4pSA4pSA IHN1bjZpLWNzaQo+ID4gPiA+IAnilJzilIDilIAgc3VuOGktZGkKPiA+ID4gPiAJ4pSU4pSA4pSA IHN1bjhpLXJvdGF0ZQo+ID4gPiA+IAo+ID4gPiA+IGFuZCBzbyB0aGUgZGlyZWN0b3J5IHVuZGVy IGFtbG9naWMvOgo+ID4gPiA+IAo+ID4gPiA+IAlkcml2ZXJzL21lZGlhL3BsYXRmb3JtL2FtbG9n aWMvCj4gPiA+ID4gCeKUlOKUgOKUgCBtZXNvbi1nZTJkCj4gPiA+ID4gCj4gPiA+ID4gTm93LCBp ZiBBbGxpbm5lciBkZWNpZGVzIHRvIHJlbGVhc2UgYSBuZXcgcGxhdGZvcm1zIG5hbWVkIGFmdGVy IGFub3RoZXIgc3RhciwKPiA+ID4gPiBsZXQncyBzYXksICJWZWdhIiBhbmQgIlJpZ2VsIiwgaXQg d291bGQgYmUganVzdCBhIG1hdHRlciBvZiBhZGRpbmcgCj4gPiA+ID4gInZlZ2EvIiBhbmQgInJp Z2VsLyIgZGlyZWN0b3JpZXMgdW5kZXIgYWxsd2lubmVyLiBObyBuZWVkIHRvIHRvdWNoCj4gPiA+ ID4gbWVkaWEvcGxhdGZvcm0vS2NvbmZpZyBhbmQgbWVkaWEvcGxhdGZvcm0vTWFrZWZpbGUuIEV2 ZXJ5dGhpbmcgd2lsbCBoYXBwZW4KPiA+ID4gPiBvbiBtdWNoIG1vcmUgc21hbGxlciB2ZW5kb3It c3BlY2lmaWMgS2NvbmZpZy9NYWtlZmlsZS4gICAgCj4gPiA+IAo+ID4gPiBCdXQgdGhlIGRheSBB bGx3aW5uZXIgY2hhbmdlcyBpdHMgbmFtZSB0byBOb2xvc2VyLCB3ZSdsbCBoYXZlIGEgc2ltaWxh cgo+ID4gPiBwcm9ibGVtLiAgIAo+ID4gCj4gPiBOb3QgcmVhbGx5LiBJdCB3aWxsIHN0aWxsIGJl IGEgc2luZ2xlIGRpcmVjdG9yeSBwZXIgdmVuZG9yICh3aGF0ZXZlcgo+ID4gbmFtZSBpdCBpcyku Cj4gPiAgIAo+ID4gPiBUaG5rIGFib3V0IEZyZWVzY2FsZSB2cy4gTlhQLCBvciBBbHRlcmEgYm91 Z2h0IGJ5IEludGVsLiAgCj4gPiAKPiA+IFllYWgsIHdoZW4gc29tZSBkcml2ZXJzIG1vdmUgZnJv bSBvbmUgdmVuZG9yIHRvIGFub3RoZXIgb25lIHRoYXQKPiA+IGFscmVhZHkgZXhpc3RzIHRoZXJl LCB3ZSBzaG91bGQgcHJvYmFibHkgbW92ZSB0aGUgZGlyZWN0b3JpZXMsIGluCj4gPiBvcmRlciB0 byBrZWVwIHRoaW5ncyB3ZWxsIG9yZ2FuaXplZC4gIAo+IAo+IEknbSBub3Qgc3VyZSB3ZSBzaG91 bGQuIFdlIHN0aWxsIGhhdmUgYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvIGZvcgo+IGlu c3RhbmNlLiBXZSBjYW4gYW5zd2VyIHRoYXQgcXVlc3Rpb24gbGF0ZXIgdGhvdWdoLCB3aGVuIGNv bmZyb250ZWQgd2l0aAo+IHRoZSBzaXR1YXRpb24uCgpJdCB3b3VsZCBiZSBtZXNzeSBpZiBzb21l IGRyaXZlcnMgdW5kZXIgYQoKCW1lZGlhL3BsYXRmb3JtL3ZlbmRvcl9hLwoKZGlyZWN0b3J5IHdv dWxkIGFjdHVhbGx5IGJlbG9uZyB0byB2ZW5kb3JfYiwgd2hpY2ggYWxzbyBoYXMgaXRzIG93bgpt ZWRpYS9wbGF0Zm9ybS92ZW5kb3JfYi8gZGlyZWN0b3J5LgoKT24gc3VjaCBjYXNlLCBJIGRvIHRo aW5rIHdlIHNob3VsZCBtb3ZlIHN0dWZmLiBOb3csIGlmIGV2ZXJ5dGhpbmcKdW5kZXIgYSAibWVk aWEvcGxhdGZvcm0vdmVuZG9yX2EvIiBkaXJlY3RvcnkgYXJlIG5vdyBwcm9wZXJ0eSBvZgphIHZl bmRvcl9jIHdoaWNoIGRvZXNuJ3QgaGF2ZSB5ZXQgYW55IGRpcmVjdG9yeSB0aGVyZSwgSSBkb24n dCBzZWUKYW5kIHByb2JsZW1zIG9uIG5vdCByZW5hbWluZyAtIGFuZCBldmVuIGFkZGluZyBuZXcg ZHJpdmVycyB0aGVyZQp0aGF0IHdvdWxkIGJlbG9uZyB0byB2ZW5kb3JfYy4KCj4gCj4gPiBUaGUg d29yc2UgY2FzZSBzY2VuYXJpbyBpcyByZWFsbHkgaWYsIGxldCdzIHNheSwgVEkgZGVjaWRlcyB0 byBzZWxsIHRoZWlyCj4gPiBvbWFwIGFyY2hpdGVjdHVyZSB0byBOWFAsIGtlZXBpbmcgdGhlIHJl c3QuIE9uIHN1Y2ggY2FzZSwgdGhlIGJlc3Qgd291bGQKPiA+IGJlIHRvIG1vdmUgcGxhdGZvcm0v dGkvb21hcCogdG8gdGhlIGRpcmVjdG9yeSBvZiBpdHMgbmV3ZXIgb3duZXIuCj4gPiAKPiA+IFRo YXQncyBzYWlkLCB3aGVuIHRoaW5ncyBsaWtlIHRoYXQgaGFwcGVuLCB0aGVyZSBhcmUgdXN1YWxs eSBhIGNoYW5nZQo+ID4gYXQgTUFJTlRBSU5FUlMsIGFzIGUtbWFpbHMsIG1haWxpbmcgbGlzdHMg YW5kIGNvbnRhY3QgcGVvcGxlIHdpbGwKPiA+IGxpa2VseSBjaGFuZ2UuIFNvLCB0aGlzIHdpbGwg dmVyeSBsaWtlbHkgZ2VuZXJhdGUgcGF0Y2hlcyBhbnl3YXkuCj4gPiAgIAo+ID4gPiBObwo+ID4g PiBuYW1pbmcgc2NoZW1lIGlzIHRvdGFsbHkgZnV0dXJlLXByb29mLiBJZiB0aGUgYWNjZXB0ZWQg c3RhbmRhcmQgdGhyb3VnaAo+ID4gPiB0aGUga2VybmVsIGlzIHRvIHVzZSBzdW54aSB0byByZWZl ciB0byBBbGx3aW5uZXIgU29DcywgSSBkb24ndCB0aGluawo+ID4gPiBpdCdzIGEgYml0IGlkZWEg dG8gZ28gd2l0aCB0aGF0LiAgCj4gPiAKPiA+IEknbSBub3QgdG9vIGNvbmNlcm5lZCBhYm91dCB0 aGUgbmFtZSBoZXJlLCBidXQgcmF0aGVyIGFib3V0IHRoZQo+ID4gcHJvY2Vzcy4gTmVlZGluZyB0 byBkbyByZW9yZyBsaWtlIHRoaXMgaXMgcGFpbmZ1bCwgYXMgaXQgY2F1c2VzIAo+ID4gYWxsIHBl bmRpbmcgd29yayB0byBmYWlsIG1lcmdpbmcgYWdhaW5zdCB1cHN0cmVhbSwgcmVxdWlyaW5nIHJl YmFzZXMuCj4gPiBTbywgd2Ugc2hvdWxkIGF2b2lkIG5lZWRpbmcgdG8gcmUtZG8gaXQgYnkgdHJ5 aW5nIG91ciBiZXN0IHRvIGF2b2lkCj4gPiB0aGUgbmVlZCBvZiBhbm90aGVyIGdsb2JhbCBjaGFu Z2UgbGlrZSB0aGF0IGluIHRoZSBmdXR1cmUuICAKPiAKPiBNb3N0IG9mIHRoZSBwYWluIHdlJ2xs IGdvIHRocm91Z2ggaW4gdGhlIGltbWVkaWF0ZSBmdXR1cmUgY29tZXMgZnJvbSB0aGUKPiBmYWN0 IHRoYXQgd2UgbmV2ZXIgcmVhbGx5IGNhcmVkIGFib3V0IHRoaXMuIAoKTmFoLCB3ZSBoYWQgb3Ro ZXIgcmVvcmdzIGluIHRoZSBwYXN0LCBhbHNvIHRyeWluZyB0byBiZXR0ZXIgb3JnYW5pemUKc3R1 ZmYsIGxpa2Ugc3BsaXR0aW5nIE0yTSBmcm9tIFY0TCBhbmQgRFZCIHBsYXRmb3JtIGRyaXZlcnMu CgpUaGUgdGhpbmcgaXMgdGhhdCB0aGUgbnVtYmVyIG9mIGVudHJpZXMgYXQgcGxhdGZvcm0vIGlu Y3JlYXNlZAphIGxvdCwgYW5kIHRoYXQganVzdGlmaWVzIGEgbWFqb3IgY2hhbmdlLgoKPiBJIHRo aW5rIHJlbmFtZXMgKG9mIHZlbmRvcnMKPiBvciBwcm9kdWN0IGxpbmVzKSB3aWxsIGJlIGluZnJl cXVlbnQgZW5vdWdoIHRoYXQgcGlja2luZyBzdW54aSBmb3IKPiBBbGx3aW5uZXIgZHJpdmVycyB3 b3VsZG4ndCBiZSBhbiBpc3N1ZS4KCkFncmVlZC4KCj4gVGhlcmUncyBhIHNpbWlsYXIgdGhpbmsg d2l0aCBSZW5lc2FzLCB3aGljaCBoYWQgYW4gU0ggcHJvZHVjdCBsaW5lIGFuZAo+IHRoZW4gbW92 ZWQgdG8gQVJNLCBjcmVhdGluZyBSLU1vYmlsZSBhbmQgUi1DYXIgKGFtb25nIG90aGVyIHByb2R1 Y3QKPiBsaWVucykuIFRoYXQncyB3aHkgd2Ugc3RpbGwgaGF2ZSBkcml2ZXJzL2RtYS9zaC8gZm9y IFJlbmVzYXMgRE1BCj4gZHJpdmVycy4KPiAKPiA+IEJ5IG9yZ2FuaXppbmcgZW50cmllcyBwZXIg dmVuZG9yLCB3aGlsZSB3ZSBtYXkgbmVlZCB0byBkbyBwdW50dWFsCj4gPiBwZXItdmVuZG9yIGFk anVzdG1lbnRzIHdoZW4gdGhleSByZW5hbWUgYW5kIGNoYW5nZSBJUCB3aXRoIG90aGVyCj4gPiB2 ZW5kb3JzLCB0aGUgZ2xvYmFsIHBsYXRmb3JtIEtjb25maWcvTWFrZSB3aWxsIGNvbnRhaW4gYSBz aW5nbGUgZW50cnkKPiA+IHBlciB2ZW5kb3IuIEkgY2FuJ3QgZm9yZXNlZSBhbnkgbmVlZCB0byBj aGFuZ2UgdGhpcyBpbiB0aGUgZnV0dXJlLAo+ID4gaWYgd2UgdGFrZSBjYXJlIG9mIGtlZXBpbmcg dGhlIGVudHJpZXMgdGhlcmUgcHJvcGVybHkgc29ydGVkLgo+ID4gCj4gPiBXaXRoIHJlZ2FyZHMg dG8gbmFtaW5nIHRoZSBwZXItdmVuZG9yIGRpcmVjdG9yeSwgd2hpbGUgSSBkbyBwcmVmZXIgdG8g aGF2ZQo+ID4gdGhlICBkaXJlY3RvcmllcyBuYW1lZCBhZnRlciB0aGUgdmVuZG9yLCBhbmQgbm90 IGFmdGVyIGEgdmVuZG9yJ3MgbmljayAKPiA+IG5hbWUsIEl0IHNob3VsZCBhbHNvIGJlIG9rIHRv IHVzZSBhIHZlbmRvcidzIG5pY2sgbmFtZSwgcHJvdmlkZWQgdGhhdCAKPiA+IHN1Y2ggbmFtZSBp cyBtZWFudCB0byBiZSB1c2VkIGJ5IGFsbCB0aGVpciBjdXJyZW50IGFuZCBmdXR1cmUgSVAuCj4g PiAKPiA+IE5vdCBzdXJlIGlmICJzdW54aSIgaXMgYWN0dWFsbHkgYSB2ZW5kb3IncyBuaWNrIG5h bWUuIEl0IHNvdW5kcwo+ID4gbXVjaCBsaWtlbHkgdGhhdCBpdCBpcywgaW5zdGVhZCwgYSBicmFu ZCBuYW1lIHRoYXQgY292ZXJzIHRoZWlyIAo+ID4gY3VycmVudCBtZWRpYS1yZWxhdGVkIFNvQy4g Cj4gPiAKPiA+IENhbiBzb21lb25lIGZyb20gdGhlIHZlbmRvciBzaGVkIGEgbGlnaHQgb24gaXQ/ ICAKPiAKPiBNYXliZSB3ZSBjYW4gbGV0IHRoZSBBbGx3aW5uZXIgdXBzdHJlYW0gY29tbXVuaXR5 IHRlbGwgdXMgd2hhdCBuYW1lIHRvCj4gcGljayA/IEknbSBzdXJlIHRoZXkga25vdyBiZXR0ZXIg dGhhbiB1cyA6LSkKCldvcmtzIGZvciBtZS4KClRoYW5rcywKTWF1cm8KCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGlu ZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMu aW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK