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 4169CC433EF for ; Mon, 21 Mar 2022 19:21:36 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S243656AbiCUTXA (ORCPT ); Mon, 21 Mar 2022 15:23:00 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49842 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233977AbiCUTW7 (ORCPT ); Mon, 21 Mar 2022 15:22:59 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4334D6AA6D; Mon, 21 Mar 2022 12:21:33 -0700 (PDT) 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 CF91F60C91; Mon, 21 Mar 2022 19:21:32 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 33F99C340E8; Mon, 21 Mar 2022 19:21:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1647890492; bh=Fg07E1B+nsftghGNWGuBfeakjKWAMFNi7EYoxjsXiNA=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=EXekeJILo+aRdOvYi7DHuRymio6aNm9ywlW40dyprZX/I1aWUr64uGBZ0jqwUnocE pnbdGJC4RHRP5mipOzbE9+kuJ+BPbkz9x3dW6liM4W31qQGYOGtZbAZYpYbs1vBJw8 hdVjsMIFmRlEXL/9brbtdiMfQXR1Ap1Ip+wTsrukwXw3MFLXwHlE6wHMcVey/JWEmD HpAZ2sQ7TntMCnWQk/BxFopBRB9N3UV+A2B03Pm4lwu7/HCB6bjx7HqiX/kruGVntR JJyAvNp7C/VEJ2uLzuRxSzx1v7P1VMFtpBa7/DIhx6dpTTpev3cQxX97QtLGQT70v8 38eYfmEkGXZAA== Received: from sofa.misterjones.org ([185.219.108.64] helo=why.misterjones.org) by disco-boy.misterjones.org with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1nWNar-00G2wF-RJ; Mon, 21 Mar 2022 19:21:29 +0000 Date: Mon, 21 Mar 2022 19:21:29 +0000 Message-ID: <87fsnbxgau.wl-maz@kernel.org> From: Marc Zyngier To: Rob Herring Cc: "linux-kernel@vger.kernel.org" , linux-arm-kernel , PCI , Toan Le , Lorenzo Pieralisi , Krzysztof =?UTF-8?B?V2lsY3p5xYRz?= =?UTF-8?B?a2k=?= , Bjorn Helgaas , =?UTF-8?B?U3TDqXBoYW5l?= Graber , dann frazier , Android Kernel Team Subject: Re: [PATCH v2 0/2] PCI: xgene: Restore working PCIe functionnality In-Reply-To: References: <20220321104843.949645-1-maz@kernel.org> <87h77rxnyl.wl-maz@kernel.org> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM-LB/1.14.9 (=?UTF-8?B?R29qxY0=?=) APEL-LB/10.8 EasyPG/1.0.0 Emacs/27.1 (x86_64-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-SA-Exim-Connect-IP: 185.219.108.64 X-SA-Exim-Rcpt-To: robh@kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-pci@vger.kernel.org, toan@os.amperecomputing.com, lorenzo.pieralisi@arm.com, kw@linux.com, bhelgaas@google.com, stgraber@ubuntu.com, dann.frazier@canonical.com, kernel-team@android.com X-SA-Exim-Mail-From: maz@kernel.org X-SA-Exim-Scanned: No (on disco-boy.misterjones.org); SAEximRunCond expanded to false Precedence: bulk List-ID: X-Mailing-List: linux-pci@vger.kernel.org On Mon, 21 Mar 2022 18:03:27 +0000, Rob Herring wrote: >=20 > On Mon, Mar 21, 2022 at 11:36 AM Marc Zyngier wrote: > > > > On Mon, 21 Mar 2022 15:17:34 +0000, > > Rob Herring wrote: > > > > > > On Mon, Mar 21, 2022 at 5:49 AM Marc Zyngier wrote: > > > > > > > For XGene-1, I'd still like to understand what the issue is. Reverting > > > the first fix and fixing 'dma-ranges' should have fixed it. I need a > > > dump of how the IB registers are initialized in both cases. I'm not > > > saying changing 'dma-ranges' in the firmware is going to be required > > > here. There's a couple of other ways we could fix that without a > > > firmware change, but first I need to understand why it broke. > > > > Reverting 6dce5aa59e0b was enough for me, without changing anything > > else. >=20 > Meaning c7a75d07827a didn't matter for you. I'm not sure that it would. >=20 > Can you tell me what 'dma-ranges' contains on your system? Each pcie node (all 5 of them) has: dma-ranges =3D <0x42000000 0x80 0x00 0x80 0x00 0x00 0x80000000 0x42000000 0x00 0x00 0x00 0x00 0x80 0x00>; >=20 > > m400 probably uses an even older firmware (AFAIR, it was stuck > > with an ancient version of u-boot that HP never updated, while Mustang > > had a few updates). In any case, that DT cannot be changed. >=20 > How is Dann changing it then? I assume he's not changing the firmware, > but overriding it. That could be a possible solution. I don't know about you, but changing DT is not an acceptable solution for me. If I'm bisecting something and have to pick the right DT based on the kernel revision I'm using, that's a huge regression. And I'm not even mentioning the poor sod who simply updates their distro, only to find that the box doesn't boot anymore thanks to a kernel upgrade. We're not talking about a closed embedded device here, but a fully functional desktop/server box that still run rings around your average RPi. > Do the DT's in the kernel tree correspond to anything anyone is using? > I ask because at some point someone will need to address all the > warnings they have or we should drop the dts files if they aren't > close to reality. The same thing applies to Seattle BTW. I'd be perfectly happy to see both of these go. The last time I used the kernel DT on my Seattle was some time in 2015, at which point I got a firmware correctly describing the SMMUs. Oh, and ACPI works just fine on Seattle. > > > P.S. We're carrying ACPI and DT support for these platforms. It seems > > > the few users are using DT, so can we drop the ACPI support? Or do I > > > need to break it first and wait a year? ;) > > > > I'm not sure people on the list are representative of all the users, > > and I didn't realise the plan was "let's break everything we don't > > like and see if someone wakes up" either. That definitely puts things > > in a different perspective. >=20 > I wasn't really suggesting breaking things on purpose. However, there > is a cost to keeping code and it would be nice to know what's being > used or not. The cost isn't *that* big, but it is not zero for what's > not many users. >=20 > At least for St=C3=A9phane, using ACPI didn't even work. I'm assuming the= re > is some version of h/w and f/w out there that did work with the ACPI > support in the kernel? That may have never been seen by anyone but APM > and Jon Masters (his Tested-by is on the patch from APM adding ACPI > support). It's not hard to imagine there was a version of firmware > just to shut Jon up. Well, you can ask Jon. ACPI doesn't work on my box as it doesn't (properly) describe a console, but my FW is rather old, as explained in the release notes: Version 3.06.25 (10/17/2016) Mustang Tianocore (UEFI BIOS) Firmware Features: - TianoCore tag linaro-edk2-2014.07 with custom changes Yes, 2014. Good vintage. But is that the latest and greatest? I have no idea, and the APM website is long gone. M. --=20 Without deviation from the norm, progress is not possible. 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 74D60C433EF for ; Mon, 21 Mar 2022 19:22:43 +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: Subject:Cc:To:From:Message-ID:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=8kZQjrWtj8ZQLEgkBXwIsGDZ0T0eRzluRnywgcoipO0=; b=fWirP7ml8ZyM/5 e8oSjRwDKLuHti5JeL2bAHiiqOOu7LbRaNUnGCf/wlv+GElEWsZ6M/L+cweQ37bZqgtTdbFLYKxzX PcICzLaGzAMrPPp/0+nDjXhcdRuYixqLwA/Hme4Dravzak67nr4+woxKDnF007UGmbFb50jSEF0lC +j+AdBiTHo0AJ4A0C7VHIHJIANbqoHalwn4tc7bWaIYEBnW0wO34wtirGrbBqTlXoa977OaHbugWa SC6fc8S5vteJNxHcdQLmALsREyNZbyytO86qJc/gbAmqgpSf7gJg4VgnskhmlelNbSiiMbbrwfdgD eh8ae6gF0xe4GnQsPrqQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nWNaz-008qVO-5N; Mon, 21 Mar 2022 19:21:37 +0000 Received: from dfw.source.kernel.org ([2604:1380:4641:c500::1]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nWNav-008qUN-8a for linux-arm-kernel@lists.infradead.org; Mon, 21 Mar 2022 19:21:34 +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 CA4C360C86; Mon, 21 Mar 2022 19:21:32 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 33F99C340E8; Mon, 21 Mar 2022 19:21:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1647890492; bh=Fg07E1B+nsftghGNWGuBfeakjKWAMFNi7EYoxjsXiNA=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=EXekeJILo+aRdOvYi7DHuRymio6aNm9ywlW40dyprZX/I1aWUr64uGBZ0jqwUnocE pnbdGJC4RHRP5mipOzbE9+kuJ+BPbkz9x3dW6liM4W31qQGYOGtZbAZYpYbs1vBJw8 hdVjsMIFmRlEXL/9brbtdiMfQXR1Ap1Ip+wTsrukwXw3MFLXwHlE6wHMcVey/JWEmD HpAZ2sQ7TntMCnWQk/BxFopBRB9N3UV+A2B03Pm4lwu7/HCB6bjx7HqiX/kruGVntR JJyAvNp7C/VEJ2uLzuRxSzx1v7P1VMFtpBa7/DIhx6dpTTpev3cQxX97QtLGQT70v8 38eYfmEkGXZAA== Received: from sofa.misterjones.org ([185.219.108.64] helo=why.misterjones.org) by disco-boy.misterjones.org with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1nWNar-00G2wF-RJ; Mon, 21 Mar 2022 19:21:29 +0000 Date: Mon, 21 Mar 2022 19:21:29 +0000 Message-ID: <87fsnbxgau.wl-maz@kernel.org> From: Marc Zyngier To: Rob Herring Cc: "linux-kernel@vger.kernel.org" , linux-arm-kernel , PCI , Toan Le , Lorenzo Pieralisi , Krzysztof =?UTF-8?B?V2lsY3p5xYRz?= =?UTF-8?B?a2k=?= , Bjorn Helgaas , =?UTF-8?B?U3TDqXBoYW5l?= Graber , dann frazier , Android Kernel Team Subject: Re: [PATCH v2 0/2] PCI: xgene: Restore working PCIe functionnality In-Reply-To: References: <20220321104843.949645-1-maz@kernel.org> <87h77rxnyl.wl-maz@kernel.org> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM-LB/1.14.9 (=?UTF-8?B?R29qxY0=?=) APEL-LB/10.8 EasyPG/1.0.0 Emacs/27.1 (x86_64-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") X-SA-Exim-Connect-IP: 185.219.108.64 X-SA-Exim-Rcpt-To: robh@kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-pci@vger.kernel.org, toan@os.amperecomputing.com, lorenzo.pieralisi@arm.com, kw@linux.com, bhelgaas@google.com, stgraber@ubuntu.com, dann.frazier@canonical.com, kernel-team@android.com X-SA-Exim-Mail-From: maz@kernel.org X-SA-Exim-Scanned: No (on disco-boy.misterjones.org); SAEximRunCond expanded to false X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220321_122133_403300_1EE97C31 X-CRM114-Status: GOOD ( 46.85 ) 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 T24gTW9uLCAyMSBNYXIgMjAyMiAxODowMzoyNyArMDAwMCwKUm9iIEhlcnJpbmcgPHJvYmhAa2Vy bmVsLm9yZz4gd3JvdGU6Cj4gCj4gT24gTW9uLCBNYXIgMjEsIDIwMjIgYXQgMTE6MzYgQU0gTWFy YyBaeW5naWVyIDxtYXpAa2VybmVsLm9yZz4gd3JvdGU6Cj4gPgo+ID4gT24gTW9uLCAyMSBNYXIg MjAyMiAxNToxNzozNCArMDAwMCwKPiA+IFJvYiBIZXJyaW5nIDxyb2JoQGtlcm5lbC5vcmc+IHdy b3RlOgo+ID4gPgo+ID4gPiBPbiBNb24sIE1hciAyMSwgMjAyMiBhdCA1OjQ5IEFNIE1hcmMgWnlu Z2llciA8bWF6QGtlcm5lbC5vcmc+IHdyb3RlOgo+ID4gPiA+Cj4gPiA+IEZvciBYR2VuZS0xLCBJ J2Qgc3RpbGwgbGlrZSB0byB1bmRlcnN0YW5kIHdoYXQgdGhlIGlzc3VlIGlzLiBSZXZlcnRpbmcK PiA+ID4gdGhlIGZpcnN0IGZpeCBhbmQgZml4aW5nICdkbWEtcmFuZ2VzJyBzaG91bGQgaGF2ZSBm aXhlZCBpdC4gSSBuZWVkIGEKPiA+ID4gZHVtcCBvZiBob3cgdGhlIElCIHJlZ2lzdGVycyBhcmUg aW5pdGlhbGl6ZWQgaW4gYm90aCBjYXNlcy4gSSdtIG5vdAo+ID4gPiBzYXlpbmcgY2hhbmdpbmcg J2RtYS1yYW5nZXMnIGluIHRoZSBmaXJtd2FyZSBpcyBnb2luZyB0byBiZSByZXF1aXJlZAo+ID4g PiBoZXJlLiBUaGVyZSdzIGEgY291cGxlIG9mIG90aGVyIHdheXMgd2UgY291bGQgZml4IHRoYXQg d2l0aG91dCBhCj4gPiA+IGZpcm13YXJlIGNoYW5nZSwgYnV0IGZpcnN0IEkgbmVlZCB0byB1bmRl cnN0YW5kIHdoeSBpdCBicm9rZS4KPiA+Cj4gPiBSZXZlcnRpbmcgNmRjZTVhYTU5ZTBiIHdhcyBl bm91Z2ggZm9yIG1lLCB3aXRob3V0IGNoYW5naW5nIGFueXRoaW5nCj4gPiBlbHNlLgo+IAo+IE1l YW5pbmcgYzdhNzVkMDc4MjdhIGRpZG4ndCBtYXR0ZXIgZm9yIHlvdS4gSSdtIG5vdCBzdXJlIHRo YXQgaXQgd291bGQuCj4gCj4gQ2FuIHlvdSB0ZWxsIG1lIHdoYXQgJ2RtYS1yYW5nZXMnIGNvbnRh aW5zIG9uIHlvdXIgc3lzdGVtPwoKRWFjaCBwY2llIG5vZGUgKGFsbCA1IG9mIHRoZW0pIGhhczoK CmRtYS1yYW5nZXMgPSA8MHg0MjAwMDAwMCAweDgwIDB4MDAgMHg4MCAweDAwIDB4MDAgMHg4MDAw MDAwMAogICAgICAgICAgICAgIDB4NDIwMDAwMDAgMHgwMCAweDAwIDB4MDAgMHgwMCAweDgwIDB4 MDA+OwoKPiAKPiA+IG00MDAgcHJvYmFibHkgdXNlcyBhbiBldmVuIG9sZGVyIGZpcm13YXJlIChB RkFJUiwgaXQgd2FzIHN0dWNrCj4gPiB3aXRoIGFuIGFuY2llbnQgdmVyc2lvbiBvZiB1LWJvb3Qg dGhhdCBIUCBuZXZlciB1cGRhdGVkLCB3aGlsZSBNdXN0YW5nCj4gPiBoYWQgYSBmZXcgdXBkYXRl cykuIEluIGFueSBjYXNlLCB0aGF0IERUIGNhbm5vdCBiZSBjaGFuZ2VkLgo+IAo+IEhvdyBpcyBE YW5uIGNoYW5naW5nIGl0IHRoZW4/IEkgYXNzdW1lIGhlJ3Mgbm90IGNoYW5naW5nIHRoZSBmaXJt d2FyZSwKPiBidXQgb3ZlcnJpZGluZyBpdC4gVGhhdCBjb3VsZCBiZSBhIHBvc3NpYmxlIHNvbHV0 aW9uLgoKSSBkb24ndCBrbm93IGFib3V0IHlvdSwgYnV0IGNoYW5naW5nIERUIGlzIG5vdCBhbiBh Y2NlcHRhYmxlIHNvbHV0aW9uCmZvciBtZS4gSWYgSSdtIGJpc2VjdGluZyBzb21ldGhpbmcgYW5k IGhhdmUgdG8gcGljayB0aGUgcmlnaHQgRFQgYmFzZWQKb24gdGhlIGtlcm5lbCByZXZpc2lvbiBJ J20gdXNpbmcsIHRoYXQncyBhIGh1Z2UgcmVncmVzc2lvbi4gQW5kIEknbQpub3QgZXZlbiBtZW50 aW9uaW5nIHRoZSBwb29yIHNvZCB3aG8gc2ltcGx5IHVwZGF0ZXMgdGhlaXIgZGlzdHJvLCBvbmx5 CnRvIGZpbmQgdGhhdCB0aGUgYm94IGRvZXNuJ3QgYm9vdCBhbnltb3JlIHRoYW5rcyB0byBhIGtl cm5lbCB1cGdyYWRlLgoKV2UncmUgbm90IHRhbGtpbmcgYWJvdXQgYSBjbG9zZWQgZW1iZWRkZWQg ZGV2aWNlIGhlcmUsIGJ1dCBhIGZ1bGx5CmZ1bmN0aW9uYWwgZGVza3RvcC9zZXJ2ZXIgYm94IHRo YXQgc3RpbGwgcnVuIHJpbmdzIGFyb3VuZCB5b3VyIGF2ZXJhZ2UKUlBpLgoKPiBEbyB0aGUgRFQn cyBpbiB0aGUga2VybmVsIHRyZWUgY29ycmVzcG9uZCB0byBhbnl0aGluZyBhbnlvbmUgaXMgdXNp bmc/Cj4gSSBhc2sgYmVjYXVzZSBhdCBzb21lIHBvaW50IHNvbWVvbmUgd2lsbCBuZWVkIHRvIGFk ZHJlc3MgYWxsIHRoZQo+IHdhcm5pbmdzIHRoZXkgaGF2ZSBvciB3ZSBzaG91bGQgZHJvcCB0aGUg ZHRzIGZpbGVzIGlmIHRoZXkgYXJlbid0Cj4gY2xvc2UgdG8gcmVhbGl0eS4gVGhlIHNhbWUgdGhp bmcgYXBwbGllcyB0byBTZWF0dGxlIEJUVy4KCkknZCBiZSBwZXJmZWN0bHkgaGFwcHkgdG8gc2Vl IGJvdGggb2YgdGhlc2UgZ28uIFRoZSBsYXN0IHRpbWUgSSB1c2VkCnRoZSBrZXJuZWwgRFQgb24g bXkgU2VhdHRsZSB3YXMgc29tZSB0aW1lIGluIDIwMTUsIGF0IHdoaWNoIHBvaW50IEkKZ290IGEg ZmlybXdhcmUgY29ycmVjdGx5IGRlc2NyaWJpbmcgdGhlIFNNTVVzLiBPaCwgYW5kIEFDUEkgd29y a3MganVzdApmaW5lIG9uIFNlYXR0bGUuCgo+ID4gPiBQLlMuIFdlJ3JlIGNhcnJ5aW5nIEFDUEkg YW5kIERUIHN1cHBvcnQgZm9yIHRoZXNlIHBsYXRmb3Jtcy4gSXQgc2VlbXMKPiA+ID4gdGhlIGZl dyB1c2VycyBhcmUgdXNpbmcgRFQsIHNvIGNhbiB3ZSBkcm9wIHRoZSBBQ1BJIHN1cHBvcnQ/IE9y IGRvIEkKPiA+ID4gbmVlZCB0byBicmVhayBpdCBmaXJzdCBhbmQgd2FpdCBhIHllYXI/IDspCj4g Pgo+ID4gSSdtIG5vdCBzdXJlIHBlb3BsZSBvbiB0aGUgbGlzdCBhcmUgcmVwcmVzZW50YXRpdmUg b2YgYWxsIHRoZSB1c2VycywKPiA+IGFuZCBJIGRpZG4ndCByZWFsaXNlIHRoZSBwbGFuIHdhcyAi bGV0J3MgYnJlYWsgZXZlcnl0aGluZyB3ZSBkb24ndAo+ID4gbGlrZSBhbmQgc2VlIGlmIHNvbWVv bmUgd2FrZXMgdXAiIGVpdGhlci4gVGhhdCBkZWZpbml0ZWx5IHB1dHMgdGhpbmdzCj4gPiBpbiBh IGRpZmZlcmVudCBwZXJzcGVjdGl2ZS4KPiAKPiBJIHdhc24ndCByZWFsbHkgc3VnZ2VzdGluZyBi cmVha2luZyB0aGluZ3Mgb24gcHVycG9zZS4gSG93ZXZlciwgdGhlcmUKPiBpcyBhIGNvc3QgdG8g a2VlcGluZyBjb2RlIGFuZCBpdCB3b3VsZCBiZSBuaWNlIHRvIGtub3cgd2hhdCdzIGJlaW5nCj4g dXNlZCBvciBub3QuIFRoZSBjb3N0IGlzbid0ICp0aGF0KiBiaWcsIGJ1dCBpdCBpcyBub3QgemVy byBmb3Igd2hhdCdzCj4gbm90IG1hbnkgdXNlcnMuCj4gCj4gQXQgbGVhc3QgZm9yIFN0w6lwaGFu ZSwgdXNpbmcgQUNQSSBkaWRuJ3QgZXZlbiB3b3JrLiBJJ20gYXNzdW1pbmcgdGhlcmUKPiBpcyBz b21lIHZlcnNpb24gb2YgaC93IGFuZCBmL3cgb3V0IHRoZXJlIHRoYXQgZGlkIHdvcmsgd2l0aCB0 aGUgQUNQSQo+IHN1cHBvcnQgaW4gdGhlIGtlcm5lbD8gVGhhdCBtYXkgaGF2ZSBuZXZlciBiZWVu IHNlZW4gYnkgYW55b25lIGJ1dCBBUE0KPiBhbmQgSm9uIE1hc3RlcnMgKGhpcyBUZXN0ZWQtYnkg aXMgb24gdGhlIHBhdGNoIGZyb20gQVBNIGFkZGluZyBBQ1BJCj4gc3VwcG9ydCkuIEl0J3Mgbm90 IGhhcmQgdG8gaW1hZ2luZSB0aGVyZSB3YXMgYSB2ZXJzaW9uIG9mIGZpcm13YXJlCj4ganVzdCB0 byBzaHV0IEpvbiB1cC4KCldlbGwsIHlvdSBjYW4gYXNrIEpvbi4gQUNQSSBkb2Vzbid0IHdvcmsg b24gbXkgYm94IGFzIGl0IGRvZXNuJ3QKKHByb3Blcmx5KSBkZXNjcmliZSBhIGNvbnNvbGUsIGJ1 dCBteSBGVyBpcyByYXRoZXIgb2xkLCBhcyBleHBsYWluZWQKaW4gdGhlIHJlbGVhc2Ugbm90ZXM6 CgogICAgVmVyc2lvbiAzLjA2LjI1ICgxMC8xNy8yMDE2KQogICAgTXVzdGFuZyBUaWFub2NvcmUg KFVFRkkgQklPUykgRmlybXdhcmUgRmVhdHVyZXM6CiAgICAgLSBUaWFub0NvcmUgdGFnIGxpbmFy by1lZGsyLTIwMTQuMDcgd2l0aCBjdXN0b20gY2hhbmdlcwoKWWVzLCAyMDE0LiBHb29kIHZpbnRh Z2UuIEJ1dCBpcyB0aGF0IHRoZSBsYXRlc3QgYW5kIGdyZWF0ZXN0PyBJIGhhdmUKbm8gaWRlYSwg YW5kIHRoZSBBUE0gd2Vic2l0ZSBpcyBsb25nIGdvbmUuCgoJTS4KCi0tIApXaXRob3V0IGRldmlh dGlvbiBmcm9tIHRoZSBub3JtLCBwcm9ncmVzcyBpcyBub3QgcG9zc2libGUuCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1h aWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xp c3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==