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 44436C38A2D for ; Wed, 26 Oct 2022 12:37:19 +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:In-Reply-To:MIME-Version:References: 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=EeR+W8sNQQWT6uRZI0GZqRASuOUkJ9cknIdrmiCPeKI=; b=qcFY7+ic0UAg3Y fk7aAnBTO3FhHN3hm2fy45u46uHGhlMpoZmVrSgLvtI5HSusOi75bBvvREyyvfS1r1ymgDKdOheor r6nnDsbK9OkyxTiryLcvn+7W9pSJAMdMrwvFXjC/U7m8mZ2e/95wi4QL1SS1XsbNdQUGjaNEumJ2j svdbD6mTQGVnjRBqOHjdb+UgJK950vt5FTa+1QwH4GHhI5pPowodxqSJv4Qytq5KHza8Lq+7g2Yn7 VpoQYGoY7NTYq1g+RR3zQQ7RVsirRy8umJP7PdzDVApYXlBtQVYFmbL7f2Ztib6vnDZ4Utw3uSpGE 9+tyqzlw34QG35y7/svw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1onfdn-009BeI-BO; Wed, 26 Oct 2022 12:36:15 +0000 Received: from ams.source.kernel.org ([145.40.68.75]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1onfdj-009Bcy-0w for linux-arm-kernel@lists.infradead.org; Wed, 26 Oct 2022 12:36:13 +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 ams.source.kernel.org (Postfix) with ESMTPS id 32981B82249; Wed, 26 Oct 2022 12:36:08 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id C60F2C433C1; Wed, 26 Oct 2022 12:36:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1666787766; bh=YWJiKbTDo7BBU/+ElSXgovuFpGfSmV2ja7uG120+Lbw=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=BiS7cv7wKgfyH+uOcl5q3hWrTGqcIesy5/Zm0tfpkNzR7Ivw+lZ+t8G1GhpqFUJt8 vHy7lV9WV/GADxmMwZwlMOtY1iqH0eLOO+4RgGG7Ju8YbQEXxuYenQczP0EyMlLJHj UGk/9mOQrZMcUIIRQkt5cxKrm5Tokbppxu7zcQrYAM8aDxnfqg8jjfiP5CgPloBI6U ErnnkcQG+SfrDCF0s1cLkAz6U/CCjCTG0yhNaswEttOLJ0HtOwtiGpikX0sl+7XGvB cByr6hjRLC0BUEivouXfgmJpcAoOK6vsjj8dXCT1bAWNxRbDIDfWqhAsnStp/PJPm/ 4UsGaYcwP03Hg== Date: Wed, 26 Oct 2022 14:36:01 +0200 From: Lorenzo Pieralisi To: Elad Nachman Cc: Pali =?iso-8859-1?Q?Roh=E1r?= , Bjorn Helgaas , Krzysztof =?utf-8?Q?Wilczy=C5=84ski?= , "linux-pci@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" , "linux-kernel@vger.kernel.org" Subject: Re: [EXT] Re: [PATCH v2] PCI: aardvark: Implement workaround for PCIe Completion Timeout Message-ID: References: <20220802123816.21817-1-pali@kernel.org> <20220926123434.2tqx4t6u3cnlrcx3@pali> <20221003211412.5pqfjvcxyszd4ai6@pali> <20221004083957.qtfkn4eyi42lsd4j@pali> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20221026_053611_414086_23C9758F X-CRM114-Status: GOOD ( 79.35 ) 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 T24gU3VuLCBPY3QgMjMsIDIwMjIgYXQgMDk6MjE6NDJBTSArMDAwMCwgRWxhZCBOYWNobWFuIHdy b3RlOgo+IEhpLAo+IAo+IERJU19PUkRfQ0hLIC0gRGlzYWJsZSBPcmRlcmluZyBDaGVja3MuCj4g U2V0dGluZyB0aGlzIGJpdCB0byAxIGRpc2FibGVzIHRoZSBvcmRlcmluZyBjaGVjayBpbiB0aGUg Y29yZQo+IGJldHdlZW4gQ29tcGxldGlvbnMgYW5kIFBvc3RlZCByZXF1ZXN0cyByZWNlaXZlZCBm cm9tIHRoZQo+IGxpbmsKPiAKPiBUZXN0aW5nIC0gSSB0aGluayBQYWxpIGhhcyAzNzAwIGJvYXJk cywgSSBkb24ndCBoYXZlIGFueS4KPiAKPiBUaGUgbWVtb3J5IGJhcnJpZXIgaXMgZGVsYXlpbmcg dGhlIGFiaWxpdHkgb2YgdGhlIGhvc3QgdG8gYWNjZXNzIHRoZSBtZW1vcnkgYmVmb3JlIHRoZSB1 cGRhdGUgaXMgY29tcGxldGVkLiBUaGlzIGlzIG5vdCBhIGJ1bGxldCBwcm9vZiBmaXgsIGl0IGlz IGp1c3QgbWVhbnQgYXMgYSB3YXkgdG8gcmVkdWNlIHRoZSBwcm9iYWJpbGl0eSBvZiB0aGlzIGhh cHBlbmluZy4KPiBIZW5jZSBpdCBpcyBvcHRpb25hbDsgSSB0aGluayBpdCBpcyBiZXR0ZXIgdG8g aGF2ZSBpdCwgYnV0IGl0IGlzIG5vdCBwYXJ0IG9mIHRoZSBvcmlnaW5hbCB3b3JrYXJvdW5kLgo+ IE9uY2UgYWdhaW4gLSBpZiB0aGUgYWJvdmUgZXhwbGFuYXRpb24gaXMgbm90IHNhdGlzZmFjdG9y eSwgdGhlIHBhdGNoIGNhbiBiZSByZXBvc3RlZCB3aXRob3V0IHRoZSBtZW1vcnkgYmFycmllci4K Ckl0IGlzIG5vdCBzYXRpc2ZhY3Rvcnkgc28gaXQgc2hvdWxkIGJlIGRyb3BwZWQgZnJvbSB0aGUg cGF0Y2guCgpUaGFua3MsCkxvcmVuem8KCj4gRllJLAo+IAo+IEVsYWQuCj4gCj4gLS0tLS1Pcmln aW5hbCBNZXNzYWdlLS0tLS0KPiBGcm9tOiBMb3JlbnpvIFBpZXJhbGlzaSA8bHBpZXJhbGlzaUBr ZXJuZWwub3JnPiAKPiBTZW50OiBGcmlkYXksIE9jdG9iZXIgMjEsIDIwMjIgMTE6MjYgQU0KPiBU bzogRWxhZCBOYWNobWFuIDxlbmFjaG1hbkBtYXJ2ZWxsLmNvbT4KPiBDYzogUGFsaSBSb2jDoXIg PHBhbGlAa2VybmVsLm9yZz47IEJqb3JuIEhlbGdhYXMgPGJoZWxnYWFzQGdvb2dsZS5jb20+OyBL cnp5c3p0b2YgV2lsY3p5xYRza2kgPGt3QGxpbnV4LmNvbT47IGxpbnV4LXBjaUB2Z2VyLmtlcm5l bC5vcmc7IGxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZzsgbGludXgta2VybmVs QHZnZXIua2VybmVsLm9yZwo+IFN1YmplY3Q6IFJlOiBbRVhUXSBSZTogW1BBVENIIHYyXSBQQ0k6 IGFhcmR2YXJrOiBJbXBsZW1lbnQgd29ya2Fyb3VuZCBmb3IgUENJZSBDb21wbGV0aW9uIFRpbWVv dXQKPiAKPiBPbiBUaHUsIE9jdCAwNiwgMjAyMiBhdCAwODoxNDo0OEFNICswMDAwLCBFbGFkIE5h Y2htYW4gd3JvdGU6Cj4gPiBIaSwKPiA+IAo+ID4gUmVnYXJkaW5nIG51bWJlciAjMSA6Cj4gPiBU aGUgSC9XIGVycmF0dW0gbWVhbnMgc3Ryb25nIG9yZGVyaW5nIG1vZGUgaXMgbm90IHByb3Blcmx5 IGltcGxlbWVudGVkIAo+ID4gaW4gdGhlIEgvVy4gIFRoZSB3b3JrYXJvdW5kIGlzIHRvIHNldCBE SVNfT1JEX0NISyB0byBkaXNhYmxlIHRoZSAKPiA+IG9yZGVyZWQgY2hlY2ssIHRvIHByZXZlbnQg dGhlIGlzc3VlcyBQYWxpIG1lbnRpb25lZC4gIExlYXZpbmcgaXQgCj4gPiB3aXRob3V0IHRoZSB3 b3JrYXJvdW5kIG1lYW5zIGVuY291bnRlcmluZyB0aGUgY3Jhc2hlcyBQYWxpIG1lbnRpb25lZC4K PiA+IFRoZSBIL1cgd2FzIG9yaWdpbmFsbHkgZGVzaWduZWQgdG8gaGF2ZSB0aGUgc3Ryb25nIG9y ZGVyaW5nIG1vZGUsIHBlciAKPiA+IHdoYXQgaXMgZXhwZWN0ZWQgb2YgUENJIEV4cHJlc3MsIGJ1 dCBkdWUgdG8gdGhpcyBlcnJhdHVtLCBpdCBjYW5ub3QgYmUgCj4gPiBzdXBwb3J0ZWQgYnkgdGhl IHRhcGVkLW91dCBIL1cuICBUaGVyZSBpcyBub3RoaW5nIHRvIGRvIGFib3V0IGl0IG5vdyAKPiA+ IGluIHRoZSBIL1csIGFzIHRoaXMgaXMgYSB5ZWFycyBvbGQgU09DLiAgU29mdHdhcmUgd2lzZSB0 aGUgb25seSBvcHRpb24gCj4gPiBpcyB0aGUgd29ya2Fyb3VuZCBhYm92ZSwgb3IgdG8gYWNjZXB0 IHNwb3JhZGljIGNyYXNoZXMgb2YgdGhlIGtlcm5lbC4KPiAKPiBJdCBjYW4gZml4IGEgZHJpdmVy LCBpdCBjYW4gYnJlYWsgYW5vdGhlciBvbmUgLSB0aGUgUENJIG9yZGVyaW5nIG1vZGVsIGlzIGJy b2tlbiBvbmUgd2F5IG9yIGFub3RoZXIuCj4gCj4gSSBoYXZlIG5vIHdheSB0byBkZXRlcm1pbmUg d2hhdCBzZXR0aW5nIERJU19PUkRfQ0hLIGRvZXMgYW5kIHdoYXQgaXQgaW1wbGllcy4KPiAKPiBX aGF0IEkga25vdyBpcyB0aGF0IHdlIGFyZSBzZW5kaW5nIHRoaXMgcGF0Y2ggdG8gc3RhYmxlIGtl cm5lbHMgYW5kIEkgd2FudCB0byBtYWtlIHN1cmUgYSkgaXQgd2FzIHRob3JvdWdobHkgdGVzdGVk IG9uIHNldmVyYWwgUENJIGVuZHBvaW50cyBhbmQgYikgaXQgaXMgcHJvcGVybHkgZG9jdW1lbnRl ZC4KPiAKPiA+IFRoZSBpbXBhY3Qgb2YgdGhlIHdvcmthcm91bmQgaXMgdGhhdCB0aGUgRE1BIGRv bmUgc3RhdHVzIGNvdWxkIGJlIHNldCAKPiA+IGJlZm9yZSB0aGUgbGFzdCBkYXRhIGlzIHdyaXR0 ZW4gdG8gdGhlIGhvc3QgbWVtb3J5LCBjYXVzaW5nIHRoZSBob3N0IAo+ID4gdG8gcmVhZCBpbmNv bXBsZXRlIGRhdGEuIFRoaXMgaXMgdGhlIHJlYXNvbiB3aHkgSSByZWNvbW1lbmRlZCB0byBhZGQg YSAKPiA+IG1lbW9yeSBiYXJyaWVyLiBJZiB0aGlzIGlzIGJvdGhlcmluZywgdGhlIG1lbW9yeSBi YXJyaWVyIGNhbiBiZSAKPiA+IHJlbW92ZWQgZnJvbSB0aGUgcGF0Y2gsIGFsdGhvdWdoIEkgc3Vn Z2VzdCB0byB0aG9yb3VnaGx5IHRlc3QgdGhlIGRhdGEgCj4gPiBpbnRlZ3JpdHkgaWYgaW1wbGVt ZW50aW5nIHRoZSBwYXRjaCB3aXRob3V0IHRoZSBtZW1vcnkgYmFycmllci4KPiAKPiBJdCBpcyBu b3QgYm90aGVyaW5nLCBpdCBpcyB0aGF0IGV2ZXJ5IG1iKCkgbXVzdCBiZSBleHBsYWluZWQgaW4g ZGVwdGguCj4gCj4gV2UgYXJlIGFkZGluZyBhbiBtYigpIGluIHRoZSAqY29udHJvbGxlciogaW50 ZXJydXB0IGhhbmRsZXIuCj4gCj4gSSBhc3N1bWUgdGhpcyBpcyBiZWNhdXNlIHRoYXQncyB3aGVy ZSB0aGUgRE1BIGNvbXBsZXRpb24gSVJRIGlzIHJhaXNlZCBhbmQgdGhlcmUgd2UgaXNzdWUgYW4g bWIoKSB0byBtYWtlIHN1cmUgdGhhdCBlbmRwb2ludCB3cml0ZXMgaW50byBtZW1vcnkgY29tcGxl dGVkLgo+IAo+IElmIHRoYXQncyBjb3JyZWN0LCBJIGhhdmUgbm8gaWRlYSBob3cgdGhlIGJhcnJp ZXIgcGxheXMgdG9nZXRoZXIgd2l0aCBESVNfT1JEX0NISyBhYm92ZS4gVGhlIG1iKCkgaGFzIG5v IGVmZmVjdCBvbiBQQ0kgd3JpdGVzIHF1ZXVlZCBpbiB0aGUgUENJIGJ1cywgc28gaXQgbWF5IGJl IGEgcGxhc3RlciBidXQgbm90IGEgZml4Lgo+IAo+IEkgd291bGQgbGlrZSB0byBoYXZlIGEgZnVs bCBkZXNjcmlwdGlvbiBvZiB3aGF0IHRoYXQgbWIoKSBpcyBzdXBwb3NlZCB0byBmaXggLSBpbiBk ZXRhaWxzLgo+IAo+IFdoZW4gd2UgYWdyZWUgaXQgaXMgZml4aW5nIHNvbWV0aGluZyB3ZSBjYW4g YWRkIGEgZGVzY3JpcHRpdmUgY29tbWVudCB3aXRoIHRoZSBtYigpIGFuZCBtZXJnZSB0aGUgY29k ZS4KPiAKPiBUaGFua3MsCj4gTG9yZW56bwo+IAo+ID4gRllJLAo+ID4gCj4gPiBFbGFkLgo+ID4g Cj4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+ID4gRnJvbTogUGFsaSBSb2jDoXIgPHBh bGlAa2VybmVsLm9yZz4KPiA+IFNlbnQ6IFR1ZXNkYXksIE9jdG9iZXIgNCwgMjAyMiAxMTo0MCBB TQo+ID4gVG86IEVsYWQgTmFjaG1hbiA8ZW5hY2htYW5AbWFydmVsbC5jb20+OyBMb3JlbnpvIFBp ZXJhbGlzaSAKPiA+IDxscGllcmFsaXNpQGtlcm5lbC5vcmc+Cj4gPiBDYzogQmpvcm4gSGVsZ2Fh cyA8YmhlbGdhYXNAZ29vZ2xlLmNvbT47IEtyenlzenRvZiBXaWxjennFhHNraSAKPiA+IDxrd0Bs aW51eC5jb20+OyBsaW51eC1wY2lAdmdlci5rZXJuZWwub3JnOyAKPiA+IGxpbnV4LWFybS1rZXJu ZWxAbGlzdHMuaW5mcmFkZWFkLm9yZzsgbGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZwo+ID4g U3ViamVjdDogUmU6IFtFWFRdIFJlOiBbUEFUQ0ggdjJdIFBDSTogYWFyZHZhcms6IEltcGxlbWVu dCB3b3JrYXJvdW5kIAo+ID4gZm9yIFBDSWUgQ29tcGxldGlvbiBUaW1lb3V0Cj4gPiAKPiA+ICsg RWxhZAo+ID4gCj4gPiBDb3VsZCB5b3UgcGxlYXNlIGxvb2sgYXQgTG9yZW56bydzIGNvbW1lbnRz IGFuZCBoZWxwIHdpdGggdGhpcyBmaXg/Cj4gPiAKPiA+IE9uIFR1ZXNkYXkgMDQgT2N0b2JlciAy MDIyIDEwOjAyOjMyIExvcmVuem8gUGllcmFsaXNpIHdyb3RlOgo+ID4gPiBPbiBNb24sIE9jdCAw MywgMjAyMiBhdCAxMToxNDoxMlBNICswMjAwLCBQYWxpIFJvaMOhciB3cm90ZToKPiA+ID4gPiBM b3JlbnpvLCBpcyBzb21ldGhpbmcgbW9yZSBuZWVkZWQgZm9yIHRoaXMgcGF0Y2g/IEFzIGl0IAo+ ID4gPiA+IHdvcmthcm91bmRzIGNyYXNoaW5nIGl0IGlzIHJlYWxseSBuZWVkZWQgdG8gaGF2ZSBp dCBpbiBtYWlubGluZSBhbmQgYmFja3BvcnRzLgo+ID4gPiAKPiA+ID4gWWVzLCBhIGNsZWFyIGV4 cGxhbmF0aW9uIGZyb20gTWFydmVsbCBhYm91dCB3aGF0IHRoaXMgaXMgYWN0dWFsbHkgCj4gPiA+ IGZpeGluZyAtIGl0IHRvb2sgbWUgYSB3aGlsZSB0byBnbyB0aHJvdWdoIHRoZSB3aG9sZSB0aHJl YWQgYnV0IEkgCj4gPiA+IHN0aWxsIGRvbid0IHVuZGVyc3RhbmQgd2hhdCB0aGlzIHBhdGNoIGFj dHVhbGx5IGRvZXMgYW5kIHdoeS4KPiA+ID4gCj4gPiA+IEFuIEVycmF0dW0gd29ya2Fyb3VuZCAo aWYgdGhlcmUgaXMgYW55KSBzaG91bGQgZGVmaW5lIGFuZCBleHBsYWluIGEgCj4gPiA+IFNXIHdv cmthcm91bmQuCj4gPiA+IAo+ID4gPiAoMSkgQmpvcm4ncyBjb25jZXJucyBpbiByZWxhdGlvbiB0 byBQQ0kgbWVtb3J5IG1vZGVsIHdlcmVuJ3QgCj4gPiA+IGFkZHJlc3NlZAo+ID4gPiAoMikgV2Ug ZG9uJ3QgYWRkIHVuZG9jdW1lbnRlZCBtZW1vcnkgYmFycmllcnMgdG8gdGhlIGtlcm5lbCB0byAi bWluaW1pemUKPiA+ID4gICAgIHJpc2tzIi4gRWl0aGVyIHdlIGZpeCBhIGJ1ZyBvciB3ZSBkb24n dC4gSWYgd2UgZG8sIHdyaXRlIHRoYXQgZG93bgo+ID4gPiAgICAgYW5kIGRvY3VtZW50IHdoeSB0 aGUgYmFycmllciBpcyB0aGVyZSBhbmQgdGhlIGlzc3VlIGl0IHNvbHZlcy4KPiA+ID4gCj4gPiA+ IEkgdW5kZXJzdGFuZCB0aGF0IGJhc2ljYWxseSB5b3UgYXJlIHJldmVyc2UgZW5naW5lZXJpbmcg YSBIVyBidWcgYnV0IAo+ID4gPiBJIGFtIGFmcmFpZCB3ZSBjYW4ndCBmaXggdGhlIGtlcm5lbCB0 aGlzIHdheSAtIG1vcmUgc28gd2l0aCBwYXRjaGVzIAo+ID4gPiBnb2luZyB0byBiZSBiYWNrcG9y dGVkIHRvIHN0YWJsZSBrZXJuZWxzLgo+ID4gPiAKPiA+ID4gTG9yZW56bwo+ID4gPiAKPiA+ID4g PiBPbiBXZWRuZXNkYXkgMjggU2VwdGVtYmVyIDIwMjIgMTQ6MDU6MTAgRWxhZCBOYWNobWFuIHdy b3RlOgo+ID4gPiA+ID4gUmV2aWV3ZWQtYnk6IEVsYWQgTmFjaG1hbiA8ZW5hY2htYW5AbWFydmVs bC5jb20+Cj4gPiA+ID4gPiAKPiA+ID4gPiA+IFRoYW5rcywKPiA+ID4gPiA+IAo+ID4gPiA+ID4g RWxhZC4KPiA+ID4gPiA+IAo+ID4gPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0KPiA+ ID4gPiA+IEZyb206IFBhbGkgUm9ow6FyIDxwYWxpQGtlcm5lbC5vcmc+Cj4gPiA+ID4gPiBTZW50 OiBNb25kYXksIFNlcHRlbWJlciAyNiwgMjAyMiAzOjM1IFBNCj4gPiA+ID4gPiBUbzogRWxhZCBO YWNobWFuIDxlbmFjaG1hbkBtYXJ2ZWxsLmNvbT4KPiA+ID4gPiA+IENjOiBUaG9tYXMgUGV0YXp6 b25pIDx0aG9tYXMucGV0YXp6b25pQGJvb3RsaW4uY29tPjsgTG9yZW56byAKPiA+ID4gPiA+IFBp ZXJhbGlzaSA8bHBpZXJhbGlzaUBrZXJuZWwub3JnPjsgQmpvcm4gSGVsZ2FhcyAKPiA+ID4gPiA+ IDxiaGVsZ2Fhc0Bnb29nbGUuY29tPjsgS3J6eXN6dG9mIFdpbGN6ecWEc2tpIDxrd0BsaW51eC5j b20+OyBSb2IgCj4gPiA+ID4gPiBIZXJyaW5nIDxyb2JoQGtlcm5lbC5vcmc+OyBsaW51eC1wY2lA dmdlci5rZXJuZWwub3JnOyAKPiA+ID4gPiA+IGxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFk ZWFkLm9yZzsKPiA+ID4gPiA+IGxpbnV4LWtlcm5lbEB2Z2VyLmtlcm5lbC5vcmc7IEdyZWdvcnkg Q2xlbWVudCAKPiA+ID4gPiA+IDxncmVnb3J5LmNsZW1lbnRAYm9vdGxpbi5jb20+OyBNYXJlayBC ZWjDum4gPGthYmVsQGtlcm5lbC5vcmc+OyAKPiA+ID4gPiA+IFJlbWkgUG9tbWFyZWwgPHJlcGtA dHJpcGxlZmF1Lmx0PjsgWG9naXVtIDxjb250YWN0QHhvZ2l1bS5tZT47IAo+ID4gPiA+ID4gVG9t YXN6IE1hY2llaiBOb3dhayA8dG1uNTA1QGdtYWlsLmNvbT4KPiA+ID4gPiA+IFN1YmplY3Q6IFtF WFRdIFJlOiBbUEFUQ0ggdjJdIFBDSTogYWFyZHZhcms6IEltcGxlbWVudCAKPiA+ID4gPiA+IHdv cmthcm91bmQgZm9yIFBDSWUgQ29tcGxldGlvbiBUaW1lb3V0Cj4gPiA+ID4gPiAKPiA+ID4gPiA+ IEV4dGVybmFsIEVtYWlsCj4gPiA+ID4gPiAKPiA+ID4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ID4gPiA+IC0t Cj4gPiA+ID4gPiAtLS0tIEhlbGxvIEVsYWQsIGNvdWxkIHlvdSBwbGVhc2UgcmV2aWV3IHRoaXMg cGF0Y2g/IEkgaGF2ZSAKPiA+ID4gPiA+IGltcGxlbWVudGVkIGl0IGFjY29yZGluZyB5b3VyIGlu c3RydWN0aW9ucywgaW5jbHVkaW5nIHRoYXQgZnVsbCBtZW1vcnkgYmFycmllciBhcyB5b3UgZGVz Y3JpYmVkLgo+ID4gPiA+ID4gCj4gPiA+ID4gPiBPbiBUdWVzZGF5IDAyIEF1Z3VzdCAyMDIyIDE0 OjM4OjE2IFBhbGkgUm9ow6FyIHdyb3RlOgo+ID4gPiA+ID4gPiBNYXJ2ZWxsIEFybWFkYSAzNzAw IEZ1bmN0aW9uYWwgRXJyYXRhLCBHdWlkZWxpbmVzLCBhbmQgCj4gPiA+ID4gPiA+IFJlc3RyaWN0 aW9ucyBkb2N1bWVudCBkZXNjcmliZXMgaW4gZXJyYXR1bSAzLjEyIFBDSWUgQ29tcGxldGlvbiBU aW1lb3V0IChSZWYgIzoKPiA+ID4gPiA+ID4gMjUxKSwgdGhhdCBQQ0llIElQIGRvZXMgbm90IHN1 cHBvcnQgYSBzdHJvbmctb3JkZXJlZCBtb2RlbCBmb3IgaW5ib3VuZCBwb3N0ZWQgdnMuCj4gPiA+ ID4gPiA+IG91dGJvdW5kIGNvbXBsZXRpb24uCj4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiBBcyBh IHdvcmthcm91bmQgZm9yIHRoaXMgZXJyYXR1bSwgRElTX09SRF9DSEsgZmxhZyBpbiBEZWJ1ZyAK PiA+ID4gPiA+ID4gTXV4IENvbnRyb2wgcmVnaXN0ZXIgbXVzdCBiZSBzZXQuIEl0IGRpc2FibGVz IHRoZSBvcmRlcmluZyAKPiA+ID4gPiA+ID4gY2hlY2sgaW4gdGhlIGNvcmUgYmV0d2VlbiBDb21w bGV0aW9ucyBhbmQgUG9zdGVkIHJlcXVlc3RzIHJlY2VpdmVkIGZyb20gdGhlIGxpbmsuCj4gPiA+ ID4gPiA+IAo+ID4gPiA+ID4gPiBNYXJ2ZWxsIGFsc28gc3VnZ2VzdHMgdG8gZG8gZnVsbCBtZW1v cnkgYmFycmllciBhdCB0aGUgCj4gPiA+ID4gPiA+IGJlZ2lubmluZyBvZiBhYXJkdmFyayBzdW1t YXJ5IGludGVycnVwdCBoYW5kbGVyIGJlZm9yZSBjYWxsaW5nIAo+ID4gPiA+ID4gPiBpbnRlcnJ1 cHQgaGFuZGxlcnMgb2YgZW5kcG9pbnQgZHJpdmVycyBpbiBvcmRlciB0byBtaW5pbWl6ZSAKPiA+ ID4gPiA+ID4gdGhlIHJpc2sgZm9yIHRoZSByYWNlIGNvbmRpdGlvbiBkb2N1bWVudGVkIGluIHRo ZSBFcnJhdHVtIAo+ID4gPiA+ID4gPiBiZXR3ZWVuIHRoZSBETUEgZG9uZSBzdGF0dXMgcmVhZGlu ZyBhbmQgdGhlIGNvbXBsZXRpb24gb2Ygd3JpdGluZyB0byB0aGUgaG9zdCBtZW1vcnkuCj4gPiA+ ID4gPiA+IAo+ID4gPiA+ID4gPiBNb3JlIGRldGFpbHMgYWJvdXQgdGhpcyBpc3N1ZSBhbmQgc3Vn Z2VzdGVkIHdvcmthcm91bmRzIGFyZSBpbiBkaXNjdXNzaW9uOgo+ID4gPiA+ID4gPiBodHRwczov L3VybGRlZmVuc2UucHJvb2Zwb2ludC5jb20vdjIvdXJsP3U9aHR0cHMtM0FfX2xvcmUua2Vybgo+ ID4gPiA+ID4gPiBlbAo+ID4gPiA+ID4gPiAub3JnX2wKPiA+ID4gPiA+ID4gaW51eC0yRHBjaV9C TjlQUjE4TUI0MjUxNTRGRTUwMTlEQ0FGMjAyOEExRDVEQjhEOS00MEJOOVBSMThNQjQKPiA+ID4g PiA+ID4gMjUKPiA+ID4gPiA+ID4gMS5uYW1wCj4gPiA+ID4gPiA+IHJkMTgucHJvZC5vdXRsb29r LmNvbV90Xy0yM3UmZD1Ed0lEYVEmYz1uS2pXZWMyYjZSMG1PeVBhejd4dGZRCj4gPiA+ID4gPiA+ ICZyCj4gPiA+ID4gPiA+ID1lVGVOVAo+ID4gPiA+ID4gPiBMRUs1LVR4WGN6ak9jS1BoQU5JRnRs QjlwUDRscTlxaGRsRnJ3USZtPWJqZ2toZ1BnT2pxQ0VzYkhZSE9OQwo+ID4gPiA+ID4gPiBaTQo+ ID4gPiA+ID4gPiBpRkRYNzIKPiA+ID4gPiA+ID4gTXp0V2FFMEF2V0JrdFFWbjN6S0VEdFVkbjAy S3hfS0oxNEImcz1TVG9Hc0RHRU9id2JaR2lsVnRWWlB5TUUKPiA+ID4gPiA+ID4gOGoKPiA+ID4g PiA+ID4gTmlSZ3JxCj4gPiA+ID4gPiA+IDRTRFl2cXFUMFRBJmU9Cj4gPiA+ID4gPiA+IAo+ID4g PiA+ID4gPiBJdCB3YXMgcmVwb3J0ZWQgdGhhdCBlbmFibGluZyB0aGlzIHdvcmthcm91bmQgZml4 ZXMgCj4gPiA+ID4gPiA+IGluc3RhYmlsaXR5IGlzc3VlcyBhbmQgIlVuaGFuZGxlZCBmYXVsdCIg ZXJyb3JzIHdoZW4gdXNpbmcgNjAgCj4gPiA+ID4gPiA+IEdIeiBXaUZpIDgwMi4xMWFkIGNhcmQg d2l0aCBRdWFsY29tbQo+ID4gPiA+ID4gPiBRQ0E2MzM1IGNoaXAgdW5kZXIgc2lnbmlmaWNhbnQg bG9hZCB3aGljaCB3ZXJlIGNhdXNlZCBieSAKPiA+ID4gPiA+ID4gaW50ZXJydXB0IHN0YXR1cyBz dHVjayBpbiB0aGUgb3V0Ym91bmQgQ01QTFQgcXVldWUgdHJhY2VkIGJhY2sgdG8gdGhpcyBlcnJh dHVtLgo+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gVGhpcyB3b3JrYXJvdW5kIGZpeGVzIGFsc28g a2VybmVsIHBhbmljIHRyaWdnZXJlZCBhZnRlciBzb21lIAo+ID4gPiA+ID4gPiBtaW51dGVzIG9m IHVzYWdlIDUgR0h6IFdpRmkgODAyLjExYXggY2FyZCB3aXRoIE1lZGlhdGVrIE1UNzkxNSBjaGlw Ogo+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gICAgIEludGVybmFsIGVycm9yOiBzeW5jaHJvbm91 cyBleHRlcm5hbCBhYm9ydDogOTYwMDAyMTAgWyMxXSBTTVAKPiA+ID4gPiA+ID4gICAgIEtlcm5l bCBwYW5pYyAtIG5vdCBzeW5jaW5nOiBGYXRhbCBleGNlcHRpb24gaW4gaW50ZXJydXB0Cj4gPiA+ ID4gPiA+IAo+ID4gPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBUaG9tYXMgUGV0YXp6b25pIDx0aG9t YXMucGV0YXp6b25pQGJvb3RsaW4uY29tPgo+ID4gPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBQYWxp IFJvaMOhciA8cGFsaUBrZXJuZWwub3JnPgo+ID4gPiA+ID4gPiBGaXhlczogOGMzOWQ3MTAzNjNj ICgiUENJOiBhYXJkdmFyazogQWRkIEFhcmR2YXJrIFBDSSBob3N0IAo+ID4gPiA+ID4gPiBjb250 cm9sbGVyCj4gPiA+ID4gPiA+IGRyaXZlciIpCj4gPiA+ID4gPiA+IENjOiBzdGFibGVAdmdlci5r ZXJuZWwub3JnCj4gPiA+ID4gPiA+IC0tLQo+ID4gPiA+ID4gPiAgZHJpdmVycy9wY2kvY29udHJv bGxlci9wY2ktYWFyZHZhcmsuYyB8IDEwICsrKysrKysrKysKPiA+ID4gPiA+ID4gIDEgZmlsZSBj aGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspCj4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2ktYWFyZHZhcmsuYwo+ID4gPiA+ID4gPiBi L2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpLWFhcmR2YXJrLmMKPiA+ID4gPiA+ID4gaW5kZXgg MDYwOTM2ZWYwMWZlLi4zYWU4YTg1ZWM3MmUgMTAwNjQ0Cj4gPiA+ID4gPiA+IC0tLSBhL2RyaXZl cnMvcGNpL2NvbnRyb2xsZXIvcGNpLWFhcmR2YXJrLmMKPiA+ID4gPiA+ID4gKysrIGIvZHJpdmVy cy9wY2kvY29udHJvbGxlci9wY2ktYWFyZHZhcmsuYwo+ID4gPiA+ID4gPiBAQCAtMjEwLDYgKzIx MCw4IEBAIGVudW0gewo+ID4gPiA+ID4gPiAgfTsKPiA+ID4gPiA+ID4gIAo+ID4gPiA+ID4gPiAg I2RlZmluZSBWRU5ET1JfSURfUkVHCQkJCShMTUlfQkFTRV9BRERSICsgMHg0NCkKPiA+ID4gPiA+ ID4gKyNkZWZpbmUgREVCVUdfTVVYX0NUUkxfUkVHCQkJKExNSV9CQVNFX0FERFIgKyAweDIwOCkK PiA+ID4gPiA+ID4gKyNkZWZpbmUgICAgIERJU19PUkRfQ0hLCQkJCUJJVCgzMCkKPiA+ID4gPiA+ ID4gIAo+ID4gPiA+ID4gPiAgLyogUENJZSBjb3JlIGNvbnRyb2xsZXIgcmVnaXN0ZXJzICovCj4g PiA+ID4gPiA+ICAjZGVmaW5lIENUUkxfQ09SRV9CQVNFX0FERFIJCQkweDE4MDAwCj4gPiA+ID4g PiA+IEBAIC01NTgsNiArNTYwLDExIEBAIHN0YXRpYyB2b2lkIGFkdmtfcGNpZV9zZXR1cF9odyhz dHJ1Y3QgYWR2a19wY2llICpwY2llKQo+ID4gPiA+ID4gPiAgCQlQQ0lFX0NPUkVfQ1RSTDJfVERf RU5BQkxFOwo+ID4gPiA+ID4gPiAgCWFkdmtfd3JpdGVsKHBjaWUsIHJlZywgUENJRV9DT1JFX0NU UkwyX1JFRyk7Cj4gPiA+ID4gPiA+ICAKPiA+ID4gPiA+ID4gKwkvKiBEaXNhYmxlIG9yZGVyaW5n IGNoZWNrcywgd29ya2Fyb3VuZCBmb3IgZXJyYXR1bSAzLjEyICJQQ0llIGNvbXBsZXRpb24gdGlt ZW91dCIgKi8KPiA+ID4gPiA+ID4gKwlyZWcgPSBhZHZrX3JlYWRsKHBjaWUsIERFQlVHX01VWF9D VFJMX1JFRyk7Cj4gPiA+ID4gPiA+ICsJcmVnIHw9IERJU19PUkRfQ0hLOwo+ID4gPiA+ID4gPiAr CWFkdmtfd3JpdGVsKHBjaWUsIHJlZywgREVCVUdfTVVYX0NUUkxfUkVHKTsKPiA+ID4gPiA+ID4g Kwo+ID4gPiA+ID4gPiAgCS8qIFNldCBsYW5lIFgxICovCj4gPiA+ID4gPiA+ICAJcmVnID0gYWR2 a19yZWFkbChwY2llLCBQQ0lFX0NPUkVfQ1RSTDBfUkVHKTsKPiA+ID4gPiA+ID4gIAlyZWcgJj0g fkxBTkVfQ05UX01TSzsKPiA+ID4gPiA+ID4gQEAgLTE1ODEsNiArMTU4OCw5IEBAIHN0YXRpYyBp cnFyZXR1cm5fdCBhZHZrX3BjaWVfaXJxX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqYXJnKQo+ID4g PiA+ID4gPiAgCXN0cnVjdCBhZHZrX3BjaWUgKnBjaWUgPSBhcmc7Cj4gPiA+ID4gPiA+ICAJdTMy IHN0YXR1czsKPiA+ID4gPiA+ID4gIAo+ID4gPiA+ID4gPiArCS8qIEZ1bGwgbWVtb3J5IGJhcnJp ZXIgKEFSTSBkc2Igc3kpLCB3b3JrYXJvdW5kIGZvciBlcnJhdHVtIDMuMTIgIlBDSWUgY29tcGxl dGlvbiB0aW1lb3V0IiAqLwo+ID4gPiA+ID4gPiArCW1iKCk7Cj4gPiA+ID4gPiA+ICsKPiA+ID4g PiA+ID4gIAlzdGF0dXMgPSBhZHZrX3JlYWRsKHBjaWUsIEhPU1RfQ1RSTF9JTlRfU1RBVFVTX1JF Ryk7Cj4gPiA+ID4gPiA+ICAJaWYgKCEoc3RhdHVzICYgUENJRV9JUlFfQ09SRV9JTlQpKQo+ID4g PiA+ID4gPiAgCQlyZXR1cm4gSVJRX05PTkU7Cj4gPiA+ID4gPiA+IC0tCj4gPiA+ID4gPiA+IDIu MjAuMQo+ID4gPiA+ID4gPiAKPiA+ID4gPiAKPiA+ID4gPiBfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwo+ID4gPiA+IGxpbnV4LWFybS1rZXJuZWwgbWFpbGlu ZyBsaXN0Cj4gPiA+ID4gbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCj4gPiA+ ID4gaHR0cHM6Ly91cmxkZWZlbnNlLnByb29mcG9pbnQuY29tL3YyL3VybD91PWh0dHAtM0FfX2xp c3RzLmluZnJhZGVhZC4KPiA+ID4gPiBvcmdfbWFpbG1hbl9saXN0aW5mb19saW51eC0yRGFybS0y RGtlcm5lbCZkPUR3SURhUSZjPW5LaldlYzJiNlIwbU8KPiA+ID4gPiB5UCAKPiA+ID4gPiBhejd4 dGZRJnI9ZVRlTlRMRUs1LVR4WGN6ak9jS1BoQU5JRnRsQjlwUDRscTlxaGRsRnJ3USZtPTJOemtU OUtMTzIKPiA+ID4gPiA2ayAKPiA+ID4gPiBlZlVPdzJuSWVTZVJuSlZaTHhFaUJYcUVvUnZEUTB1 ZXd3Nm40WWFYV2dBTjF1Q0pYMjBvJnM9bmN6QUNTXzJqRVIKPiA+ID4gPiBiQQo+ID4gPiA+IC1j NEdmYXIwLUhUQTRQdHZaZEptc0J2OGpoVzhHMCZlPQo+ID4gX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KPiA+IGxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBs aXN0Cj4gPiBsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKPiA+IGh0dHBzOi8v dXJsZGVmZW5zZS5wcm9vZnBvaW50LmNvbS92Mi91cmw/dT1odHRwLTNBX19saXN0cy5pbmZyYWRl YWQub3IKPiA+IGdfbWFpbG1hbl9saXN0aW5mb19saW51eC0yRGFybS0yRGtlcm5lbCZkPUR3SURh USZjPW5LaldlYzJiNlIwbU95UGF6N3h0ZlEmcj1lVGVOVExFSzUtVHhYY3pqT2NLUGhBTklGdGxC OXBQNGxxOXFoZGxGcndRJm09LUZlU1hTMGdqSVdHVTBPeHN1MnYxQ0xkbFFJNlFDM0VndjJYUVBE NzZOZy13QWVBdEJyT25xRXNIcDlkbW1rbyZzPU9FVXBjSUstOXVXSG0yV3NQMDJ4bEgxQVhjOTBG b1NWemtscmZIaFFnUFkmZT0KPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwo+IGxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0Cj4gbGludXgtYXJtLWtl cm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCj4gaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFp bG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51 eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5v cmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==