From mboxrd@z Thu Jan 1 00:00:00 1970 Received: by 10.28.91.67 with SMTP id p64csp3842738wmb; Tue, 20 Mar 2018 06:35:59 -0700 (PDT) X-Google-Smtp-Source: AG47ELtn1Zy9lpxHss9WRgSKVp7vxHmpkOR4/ou4fqsguKaLStE1vAvyFbGt031QcDl1YXg+0qbx X-Received: by 10.13.231.68 with SMTP id q65mr9528736ywe.514.1521552959724; Tue, 20 Mar 2018 06:35:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1521552959; cv=none; d=google.com; s=arc-20160816; b=Sd8sfN1W1l7QloyX6v0rVU/8DUgSUDqoXuQAKGYO5mjq/4fqRbu5CGLNMfirePxfhm RfMsrvmxUHFkqQONIZRh95qWoysvfbjeLHWCowI1Wk5BF88NN1eGZvcyOwdGNRg7lPGV 8B/4PiNvpTvuizD2EZmdtAMF99BShmRiEGmJarX/iCk3Bq6/LikUXQaldcBP8BERWWfk 8Z61l57D5xnDqgprB9JMHFptWiQcmcUostcAzHmRwxan87Knk7twK5qqXkLWX3PqMTgI brfk2rUGarIDCaWUd87CW19/5tBSBeEA93PHqrnoYQYyJdwpTKKP285oHJ+O0CKh5w2O MxoQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:subject :content-transfer-encoding:in-reply-to:content-disposition :mime-version:references:message-id:to:from:date :arc-authentication-results; bh=vyovXP06rWINaTxVTQekMgEhlDqrHJL6vuSXMllbPMg=; b=bRosLEYM16dLgdL6MpYEMts1SyRdt32mpmdlQ6ZGOzyzFVrXBNOYM1yu1m3y8wxfkf WlGM4ql8wMrxuSm+u3+WxhMy35MaFK7L9QevsAfOW071K1TIri9GKgEC04DAp/nx27ug Rkt0pz1Ih5eZTUEiYMPTsGb7ITZ74xK2JRZJYdf+kwGm+k/WTlXW9BpTPX5Iiox0pYsD o8EZBPV4h4duU3nhK+uOCPWyKjmqnyAGnRjRopW0eNWtKOjQwYx0n0xl5ys7VGLIILXj WHIIpPutIzr9L29A50ah+tZGzsa3CB3GgSQ0g1sDqDhdvFF1XcUaXFGrB/Te7VikUSeN 5ruA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of qemu-arm-bounces+alex.bennee=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) smtp.mailfrom=qemu-arm-bounces+alex.bennee=linaro.org@nongnu.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org. [2001:4830:134:3::11]) by mx.google.com with ESMTPS id n66si2791692qkb.418.2018.03.20.06.35.59 for (version=TLS1 cipher=AES128-SHA bits=128/128); Tue, 20 Mar 2018 06:35:59 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-arm-bounces+alex.bennee=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) client-ip=2001:4830:134:3::11; Authentication-Results: mx.google.com; spf=pass (google.com: domain of qemu-arm-bounces+alex.bennee=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) smtp.mailfrom=qemu-arm-bounces+alex.bennee=linaro.org@nongnu.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: from localhost ([::1]:48586 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eyHQl-00074N-5l for alex.bennee@linaro.org; Tue, 20 Mar 2018 09:35:59 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:36453) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eyG8B-0008W2-Mw for qemu-arm@nongnu.org; Tue, 20 Mar 2018 08:12:45 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eyG86-0008Nx-BR for qemu-arm@nongnu.org; Tue, 20 Mar 2018 08:12:43 -0400 Received: from mx3-rdu2.redhat.com ([66.187.233.73]:51922 helo=mx1.redhat.com) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1eyG86-0008Nr-5P; Tue, 20 Mar 2018 08:12:38 -0400 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 78553A27ED; Tue, 20 Mar 2018 12:12:32 +0000 (UTC) Received: from redhat.com (ovpn-121-0.rdu2.redhat.com [10.10.121.0]) by smtp.corp.redhat.com (Postfix) with ESMTP id F368B202322F; Tue, 20 Mar 2018 12:12:24 +0000 (UTC) Date: Tue, 20 Mar 2018 14:12:24 +0200 From: "Michael S. Tsirkin" To: Daniel =?iso-8859-1?Q?P=2E_Berrang=E9?= Message-ID: <20180320141107-mutt-send-email-mst@kernel.org> References: <1521510562-529051-1-git-send-email-mst@redhat.com> <8f06e1e3-4823-d8e8-43bd-c092c523849e@vivier.eu> <20180320094406.GD4530@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline In-Reply-To: <20180320094406.GD4530@redhat.com> X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.2]); Tue, 20 Mar 2018 12:12:32 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.2]); Tue, 20 Mar 2018 12:12:32 +0000 (UTC) for IP:'10.11.54.4' DOMAIN:'int-mx04.intmail.prod.int.rdu2.redhat.com' HELO:'smtp.corp.redhat.com' FROM:'mst@redhat.com' RCPT:'' Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 66.187.233.73 X-Mailman-Approved-At: Tue, 20 Mar 2018 09:28:26 -0400 Subject: Re: [Qemu-arm] [PATCH] qemu: include generated files with <> and not "" X-BeenThere: qemu-arm@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , Dmitry Fleytman , sheepdog@lists.wpkg.org, Ronnie Sahlberg , Li Zhijian , David Hildenbrand , Jeff Cody , Zhang Chen , Mark Cave-Ayland , qemu-devel@nongnu.org, "Richard W.M. Jones" , Keith Busch , Max Filippov , Gerd Hoffmann , Jiri Pirko , Subbaraya Sundeep , Eric Blake , Michael Roth , Marcelo Tosatti , Josh Durgin , Stefano Stabellini , Alberto Garcia , zhanghailiang , Ben Warren , Marcel Apfelbaum , Yongbok Kim , Markus Armbruster , Stefan Berger , Christian Borntraeger , kvm@vger.kernel.org, =?iso-8859-1?Q?Herv=E9?= Poussineau , Shannon Zhao , Anthony Perard , Liu Yuan , David Gibson , Andrzej Zaborowski , Jason Wang , Artyom Tarasenko , Thomas Huth , Riku Voipio , Fam Zheng , Eduardo Habkost , Corey Minyard , Amit Shah , Pavel Dovgalyuk , Stefan Weil , Xie Changlong , Alistair Francis , Peter Lieven , "Dr. David Alan Gilbert" , Fabien Chouteau , Greg Kurz , =?iso-8859-1?Q?Marc-Andr=E9?= Lureau , Alex Williamson , qemu-arm@nongnu.org, Peter Chubb , Yuval Shaia , Stefan Hajnoczi , Paolo Bonzini , xen-devel@lists.xenproject.org, BALATON Zoltan , John Snow , Richard Henderson , Kevin Wolf , Alexander Graf , qemu-block@nongnu.org, Hitoshi Mitake , Wen Congyang , qemu-s390x@nongnu.org, Cornelia Huck , Laurent Vivier , Juan Quintela , Max Reitz , Michael Walle , qemu-ppc@nongnu.org, Andreas =?iso-8859-1?Q?F=E4rber?= , Igor Mammedov , Hannes Reinecke , Aurelien Jarno , Philippe =?iso-8859-1?Q?Mathieu-Daud=E9?= Errors-To: qemu-arm-bounces+alex.bennee=linaro.org@nongnu.org Sender: "Qemu-arm" X-TUID: ntp9Hzl3+3r8 On Tue, Mar 20, 2018 at 09:44:06AM +0000, Daniel P. Berrang=E9 wrote: > On Tue, Mar 20, 2018 at 09:58:23AM +0100, Laurent Vivier wrote: > > Le 20/03/2018 =E0 02:54, Michael S. Tsirkin a =E9crit=A0: > > > QEMU coding style at the moment asks for all non-system > > > include files to be used with #include "foo.h". > > > However this rule actually does not make sense and > > > creates issues for when the included file is generated. > >=20 > > If you change that, we can have issue when a system include has the s= ame > > name as our local include. With "", system header are taken fir= st. >=20 > > > In C, include "file" means look in current directory, > > > then on include search path. Current directory here > > > means the source file directory. > > > By comparison include means look on include search path. > >=20 > > Not exactly, there is the notion of "system header" too. > >=20 > > https://gcc.gnu.org/onlinedocs/cpp/Include-Syntax.html > >=20 > > #include > > This variant is used for system header files. It searches for a file > > named file in a standard list of system directories. You can prepend > > directories to this list with the -I option (see Invocation). > >=20 > > #include "file" > > This variant is used for header files of your own program. It searche= s > > for a file named file first in the directory containing the current > > file, then in the quote directories and then the same directories use= d > > for . You can prepend directories to the list of quote director= ies > > with the -iquote option. > >=20 > > > As generated files are not in the search directory (unless the buil= d > > > directory happens to match the source directory), it does not make = sense > > > to include them with "" - doing so is merely more work for preproce= ssor > > > and a source or errors if a stale file happens to exist in the sour= ce > > > directory. > >=20 > > I agree there is a problem with stale files. But linux, for instance, > > asks for a "make mrproper" to avoid this. >=20 > We can follow what autoconf does, and add a check to configure to see i= f > there are generated files left in the source dir, when configuring with > builddir !=3D srcdir, and exit with error, telling user to clean their > src dir first. >=20 > > > This changes include directives for all generated files, across the > > > tree. The idea is to avoid sending a huge amount of email. But whe= n > > > merging, the changes will be split with one commit per file, e.g. f= or > > > ease of bisect in case of build failures, and to ease merging. > > >=20 > > > Note that should some generated files be missed by this tree-wide > > > refactoring, it isn't a big deal - this merely maintains the status= quo, > > > and this can be addressed by a separate patch on top. > > >=20 > > > Signed-off-by: Michael S. Tsirkin > >=20 > > I think your idea conflicts with what Markus has started to do: >=20 > Yes, I don't think we should revert what Markus started. Both ways of > referencing QEMU headers have downsides, but I think "..." has fewer > downsides that "<....">. Could you please explain what the advantage of "" is? It seems to be gone since we moved headers away from source. > The problem Michael is tackling should be pretty rare, because moist > developers aren't frequently switching between srcdir=3D=3Dbuilddir and > srcdir!=3Dbiulddir setups - they have their preference for which to use > and stick with it. As long as we get ./configure to warn about the > dirty srcdir it should be good enough >=20 > Regards, > Daniel > --=20 > |: https://berrange.com -o- https://www.flickr.com/photos/dberr= ange :| > |: https://libvirt.org -o- https://fstop138.berrange= .com :| > |: https://entangle-photo.org -o- https://www.instagram.com/dberr= ange :| From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Michael S. Tsirkin" Subject: Re: [PATCH] qemu: include generated files with <> and not "" Date: Tue, 20 Mar 2018 14:12:24 +0200 Message-ID: <20180320141107-mutt-send-email-mst@kernel.org> References: <1521510562-529051-1-git-send-email-mst@redhat.com> <8f06e1e3-4823-d8e8-43bd-c092c523849e@vivier.eu> <20180320094406.GD4530@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1eyG83-0001oe-98 for xen-devel@lists.xenproject.org; Tue, 20 Mar 2018 12:12:35 +0000 Content-Disposition: inline In-Reply-To: <20180320094406.GD4530@redhat.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Daniel =?iso-8859-1?Q?P=2E_Berrang=E9?= Cc: Peter Maydell , Dmitry Fleytman , sheepdog@lists.wpkg.org, Ronnie Sahlberg , Li Zhijian , David Hildenbrand , Jeff Cody , Zhang Chen , Mark Cave-Ayland , qemu-devel@nongnu.org, "Richard W.M. Jones" , Keith Busch , Max Filippov , Gerd Hoffmann , "Edgar E. Iglesias" , Jiri Pirko , Subbaraya Sundeep , Eric Blake , Michael Roth , Marcelo Tosatti , Josh Durgin , Stefano Stabellini , Alberto Garcia , zhanghailiang List-Id: xen-devel@lists.xenproject.org T24gVHVlLCBNYXIgMjAsIDIwMTggYXQgMDk6NDQ6MDZBTSArMDAwMCwgRGFuaWVsIFAuIEJlcnJh bmfDqSB3cm90ZToKPiBPbiBUdWUsIE1hciAyMCwgMjAxOCBhdCAwOTo1ODoyM0FNICswMTAwLCBM YXVyZW50IFZpdmllciB3cm90ZToKPiA+IExlIDIwLzAzLzIwMTggw6AgMDI6NTQsIE1pY2hhZWwg Uy4gVHNpcmtpbiBhIMOpY3JpdMKgOgo+ID4gPiBRRU1VIGNvZGluZyBzdHlsZSBhdCB0aGUgbW9t ZW50IGFza3MgZm9yIGFsbCBub24tc3lzdGVtCj4gPiA+IGluY2x1ZGUgZmlsZXMgdG8gYmUgdXNl ZCB3aXRoICNpbmNsdWRlICJmb28uaCIuCj4gPiA+IEhvd2V2ZXIgdGhpcyBydWxlIGFjdHVhbGx5 IGRvZXMgbm90IG1ha2Ugc2Vuc2UgYW5kCj4gPiA+IGNyZWF0ZXMgaXNzdWVzIGZvciB3aGVuIHRo ZSBpbmNsdWRlZCBmaWxlIGlzIGdlbmVyYXRlZC4KPiA+IAo+ID4gSWYgeW91IGNoYW5nZSB0aGF0 LCB3ZSBjYW4gaGF2ZSBpc3N1ZSB3aGVuIGEgc3lzdGVtIGluY2x1ZGUgaGFzIHRoZSBzYW1lCj4g PiBuYW1lIGFzIG91ciBsb2NhbCBpbmNsdWRlLiBXaXRoICI8RklMRT4iLCBzeXN0ZW0gaGVhZGVy IGFyZSB0YWtlbiBmaXJzdC4KPiAKPiA+ID4gSW4gQywgaW5jbHVkZSAiZmlsZSIgbWVhbnMgbG9v ayBpbiBjdXJyZW50IGRpcmVjdG9yeSwKPiA+ID4gdGhlbiBvbiBpbmNsdWRlIHNlYXJjaCBwYXRo LiBDdXJyZW50IGRpcmVjdG9yeSBoZXJlCj4gPiA+IG1lYW5zIHRoZSBzb3VyY2UgZmlsZSBkaXJl Y3RvcnkuCj4gPiA+IEJ5IGNvbXBhcmlzb24gaW5jbHVkZSA8ZmlsZT4gbWVhbnMgbG9vayBvbiBp bmNsdWRlIHNlYXJjaCBwYXRoLgo+ID4gCj4gPiBOb3QgZXhhY3RseSwgdGhlcmUgaXMgdGhlIG5v dGlvbiBvZiAic3lzdGVtIGhlYWRlciIgdG9vLgo+ID4gCj4gPiBodHRwczovL2djYy5nbnUub3Jn L29ubGluZWRvY3MvY3BwL0luY2x1ZGUtU3ludGF4Lmh0bWwKPiA+IAo+ID4gI2luY2x1ZGUgPGZp bGU+Cj4gPiBUaGlzIHZhcmlhbnQgaXMgdXNlZCBmb3Igc3lzdGVtIGhlYWRlciBmaWxlcy4gSXQg c2VhcmNoZXMgZm9yIGEgZmlsZQo+ID4gbmFtZWQgZmlsZSBpbiBhIHN0YW5kYXJkIGxpc3Qgb2Yg c3lzdGVtIGRpcmVjdG9yaWVzLiBZb3UgY2FuIHByZXBlbmQKPiA+IGRpcmVjdG9yaWVzIHRvIHRo aXMgbGlzdCB3aXRoIHRoZSAtSSBvcHRpb24gKHNlZSBJbnZvY2F0aW9uKS4KPiA+IAo+ID4gI2lu Y2x1ZGUgImZpbGUiCj4gPiBUaGlzIHZhcmlhbnQgaXMgdXNlZCBmb3IgaGVhZGVyIGZpbGVzIG9m IHlvdXIgb3duIHByb2dyYW0uIEl0IHNlYXJjaGVzCj4gPiBmb3IgYSBmaWxlIG5hbWVkIGZpbGUg Zmlyc3QgaW4gdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIHRoZSBjdXJyZW50Cj4gPiBmaWxlLCB0 aGVuIGluIHRoZSBxdW90ZSBkaXJlY3RvcmllcyBhbmQgdGhlbiB0aGUgc2FtZSBkaXJlY3Rvcmll cyB1c2VkCj4gPiBmb3IgPGZpbGU+LiBZb3UgY2FuIHByZXBlbmQgZGlyZWN0b3JpZXMgdG8gdGhl IGxpc3Qgb2YgcXVvdGUgZGlyZWN0b3JpZXMKPiA+IHdpdGggdGhlIC1pcXVvdGUgb3B0aW9uLgo+ ID4gCj4gPiA+IEFzIGdlbmVyYXRlZCBmaWxlcyBhcmUgbm90IGluIHRoZSBzZWFyY2ggZGlyZWN0 b3J5ICh1bmxlc3MgdGhlIGJ1aWxkCj4gPiA+IGRpcmVjdG9yeSBoYXBwZW5zIHRvIG1hdGNoIHRo ZSBzb3VyY2UgZGlyZWN0b3J5KSwgaXQgZG9lcyBub3QgbWFrZSBzZW5zZQo+ID4gPiB0byBpbmNs dWRlIHRoZW0gd2l0aCAiIiAtIGRvaW5nIHNvIGlzIG1lcmVseSBtb3JlIHdvcmsgZm9yIHByZXBy b2Nlc3Nvcgo+ID4gPiBhbmQgYSBzb3VyY2Ugb3IgZXJyb3JzIGlmIGEgc3RhbGUgZmlsZSBoYXBw ZW5zIHRvIGV4aXN0IGluIHRoZSBzb3VyY2UKPiA+ID4gZGlyZWN0b3J5Lgo+ID4gCj4gPiBJIGFn cmVlIHRoZXJlIGlzIGEgcHJvYmxlbSB3aXRoIHN0YWxlIGZpbGVzLiBCdXQgbGludXgsIGZvciBp bnN0YW5jZSwKPiA+IGFza3MgZm9yIGEgIm1ha2UgbXJwcm9wZXIiIHRvIGF2b2lkIHRoaXMuCj4g Cj4gV2UgY2FuIGZvbGxvdyB3aGF0IGF1dG9jb25mIGRvZXMsIGFuZCBhZGQgYSBjaGVjayB0byBj b25maWd1cmUgdG8gc2VlIGlmCj4gdGhlcmUgYXJlIGdlbmVyYXRlZCBmaWxlcyBsZWZ0IGluIHRo ZSBzb3VyY2UgZGlyLCB3aGVuIGNvbmZpZ3VyaW5nIHdpdGgKPiBidWlsZGRpciAhPSBzcmNkaXIs IGFuZCBleGl0IHdpdGggZXJyb3IsIHRlbGxpbmcgdXNlciB0byBjbGVhbiB0aGVpcgo+IHNyYyBk aXIgZmlyc3QuCj4gCj4gPiA+IFRoaXMgY2hhbmdlcyBpbmNsdWRlIGRpcmVjdGl2ZXMgZm9yIGFs bCBnZW5lcmF0ZWQgZmlsZXMsIGFjcm9zcyB0aGUKPiA+ID4gdHJlZS4gVGhlIGlkZWEgaXMgdG8g YXZvaWQgc2VuZGluZyBhIGh1Z2UgYW1vdW50IG9mIGVtYWlsLiAgQnV0IHdoZW4KPiA+ID4gbWVy Z2luZywgdGhlIGNoYW5nZXMgd2lsbCBiZSBzcGxpdCB3aXRoIG9uZSBjb21taXQgcGVyIGZpbGUs IGUuZy4gZm9yCj4gPiA+IGVhc2Ugb2YgYmlzZWN0IGluIGNhc2Ugb2YgYnVpbGQgZmFpbHVyZXMs IGFuZCB0byBlYXNlIG1lcmdpbmcuCj4gPiA+IAo+ID4gPiBOb3RlIHRoYXQgc2hvdWxkIHNvbWUg Z2VuZXJhdGVkIGZpbGVzIGJlIG1pc3NlZCBieSB0aGlzIHRyZWUtd2lkZQo+ID4gPiByZWZhY3Rv cmluZywgaXQgaXNuJ3QgYSBiaWcgZGVhbCAtIHRoaXMgbWVyZWx5IG1haW50YWlucyB0aGUgc3Rh dHVzIHF1bywKPiA+ID4gYW5kIHRoaXMgY2FuIGJlIGFkZHJlc3NlZCBieSBhIHNlcGFyYXRlIHBh dGNoIG9uIHRvcC4KPiA+ID4gCj4gPiA+IFNpZ25lZC1vZmYtYnk6IE1pY2hhZWwgUy4gVHNpcmtp biA8bXN0QHJlZGhhdC5jb20+Cj4gPiAKPiA+IEkgdGhpbmsgeW91ciBpZGVhIGNvbmZsaWN0cyB3 aXRoIHdoYXQgTWFya3VzIGhhcyBzdGFydGVkIHRvIGRvOgo+IAo+IFllcywgSSBkb24ndCB0aGlu ayB3ZSBzaG91bGQgcmV2ZXJ0IHdoYXQgTWFya3VzIHN0YXJ0ZWQuICAgQm90aCB3YXlzIG9mCj4g cmVmZXJlbmNpbmcgUUVNVSBoZWFkZXJzIGhhdmUgZG93bnNpZGVzLCBidXQgSSB0aGluayAiLi4u IiBoYXMgZmV3ZXIKPiBkb3duc2lkZXMgdGhhdCAiPC4uLi4iPi4KCkNvdWxkIHlvdSBwbGVhc2Ug ZXhwbGFpbiB3aGF0IHRoZSBhZHZhbnRhZ2Ugb2YgIiIgaXM/Ckl0IHNlZW1zIHRvIGJlIGdvbmUg c2luY2Ugd2UgbW92ZWQgaGVhZGVycyBhd2F5IGZyb20Kc291cmNlLgoKPiBUaGUgcHJvYmxlbSBN aWNoYWVsIGlzIHRhY2tsaW5nIHNob3VsZCBiZSBwcmV0dHkgcmFyZSwgYmVjYXVzZSBtb2lzdAo+ IGRldmVsb3BlcnMgYXJlbid0IGZyZXF1ZW50bHkgc3dpdGNoaW5nIGJldHdlZW4gc3JjZGlyPT1i dWlsZGRpciBhbmQKPiBzcmNkaXIhPWJpdWxkZGlyIHNldHVwcyAtIHRoZXkgaGF2ZSB0aGVpciBw cmVmZXJlbmNlIGZvciB3aGljaCB0byB1c2UKPiBhbmQgc3RpY2sgd2l0aCBpdC4gQXMgbG9uZyBh cyB3ZSBnZXQgLi9jb25maWd1cmUgdG8gd2FybiBhYm91dCB0aGUKPiBkaXJ0eSBzcmNkaXIgaXQg c2hvdWxkIGJlIGdvb2QgZW5vdWdoCj4gCj4gUmVnYXJkcywKPiBEYW5pZWwKPiAtLSAKPiB8OiBo dHRwczovL2JlcnJhbmdlLmNvbSAgICAgIC1vLSAgICBodHRwczovL3d3dy5mbGlja3IuY29tL3Bo b3Rvcy9kYmVycmFuZ2UgOnwKPiB8OiBodHRwczovL2xpYnZpcnQub3JnICAgICAgICAgLW8tICAg ICAgICAgICAgaHR0cHM6Ly9mc3RvcDEzOC5iZXJyYW5nZS5jb20gOnwKPiB8OiBodHRwczovL2Vu dGFuZ2xlLXBob3RvLm9yZyAgICAtby0gICAgaHR0cHM6Ly93d3cuaW5zdGFncmFtLmNvbS9kYmVy cmFuZ2UgOnwKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Clhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0 dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=