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 0362EC001DF for ; Fri, 20 Oct 2023 17:45:08 +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=V94olMbWP6a4gFg9sgFROZwQJElse490OzfAM00UopU=; b=xZYb7IBiuFw3Yv g39w+zgBAu9En1PkJHeCGhskV3hlZNR8iplVMVC429KQIu2TUUQNg5Endw8OjgYIfcHd5b8Js7aE0 cfLJFiOK0VP+BEKpsKF1wfdrKAlYR6jWr6A8ShRgmsfQ9U7/dRQKhtqhDDTDjIkNkH9bwXbvViY0l nNikLmwnx8tNh5octd9SjX7oQz+DjPavXQdJiGYSCnOyS/Ei49e2knmmlTPsm7pm+xOrm/MgXPSOB T0U8Qlg7lucJb4YfLObPqUgJJIT9qWs81Is7rSg/YOjQVtL/lVMNGVxI/4CHibOLDtw9wyiPFdTSw Wq+NaqtiIm0JmYmf1Lgg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qttYD-002myn-0k; Fri, 20 Oct 2023 17:44:45 +0000 Received: from ams.source.kernel.org ([145.40.68.75]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qttYA-002mxq-00 for linux-arm-kernel@lists.infradead.org; Fri, 20 Oct 2023 17:44:43 +0000 Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by ams.source.kernel.org (Postfix) with ESMTP id D37FDB83358; Fri, 20 Oct 2023 17:44:38 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 204F6C433C9; Fri, 20 Oct 2023 17:44:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1697823878; bh=tM18i9s5DyCKNvNL4uxB77beHUHrncqWw9WuGgi11Sc=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=qN6wGAxbfAChNjoLr5JDLEMA1Yj+VXAm1mIrvIai0T7d3G6o655pNSQo+SYWECDNJ tkFS3gMulxYKpiNf3SesEVfzKyQjA/5DtMXpEuUMZ0dxODQ8d6kmjsSjqU1iGnX45t U+OBJowH14NvBAGCP93/5kVnK3CAzSZAQiJto8Fwnuewnn4E7yoXVAqHfIsJHL6ODQ SyDGio5RxL70E0jPTDGXylaFoJJ1Rmlb47upWX/MakTC510CcYcdjGU65YQmfWndaq 11TYcwA+E728enME8ni+F/2VRXXMIZQlLNiisg1bXJ79Yg5/pHzqZprTUWY3fifPJk B54UYuQvwVrbw== Date: Fri, 20 Oct 2023 23:14:28 +0530 From: Manivannan Sadhasivam To: Frank Li Cc: manivannan.sadhasivam@linaro.org, aisheng.dong@nxp.com, bhelgaas@google.com, devicetree@vger.kernel.org, festevam@gmail.com, imx@lists.linux.dev, jdmason@kudzu.us, kernel@pengutronix.de, kishon@kernel.org, kw@linux.com, linux-arm-kernel@lists.infradead.org, linux-imx@nxp.com, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, lorenzo.pieralisi@arm.com, lpieralisi@kernel.org, maz@kernel.org, s.hauer@pengutronix.de, shawnguo@kernel.org, tglx@linutronix.de Subject: Re: [PATCH v2 3/5] PCI: endpoint: pci-epf-test: add doorbell test Message-ID: <20231020174428.GB46191@thinkpad> References: <20230911220920.1817033-1-Frank.Li@nxp.com> <20230911220920.1817033-4-Frank.Li@nxp.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20230911220920.1817033-4-Frank.Li@nxp.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231020_104442_360697_E0694120 X-CRM114-Status: GOOD ( 29.15 ) 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 T24gTW9uLCBTZXAgMTEsIDIwMjMgYXQgMDY6MDk6MThQTSAtMDQwMCwgRnJhbmsgTGkgd3JvdGU6 CgpTdWJqZWN0IGNvdWxkIGJlLAoKUENJOiBlbmRwb2ludDogcGNpLWVwZi10ZXN0OiBBZGQgZG9v cmJlbGwgc3VwcG9ydAoKPiBBZGQgdGhyZWUgcmVnaXN0ZXI6IGRvb3JiZWxsX2JhciwgZG9vcmJl bGxfYWRkciwgZG9vcmJlbGxfZGF0YSwKPiBkb29yYmVsbF9kb25lLiBDYWxsIHBjaV9lcGZfYWxs b2NfZG9vcmJlbGwoKSBhbGwgYSBkb29yYmVsbCBhZGRyZXNzIHNwYWNlLgo+IAo+IFJvb3QgY29t cGxleChSQykgc2lkZSBkcml2ZXIgY2FuIHRyaWdnZXIgcGNpLWVwYy10ZXN0J3MgZG9vcmJlbGwg Y2FsbGJhY2sKPiBoYW5kbGVyIGJ5IHdyaXRlIGRvb3JiZWxsX2RhdGEgdG8gbWFwcGVkIGRvb3Ji ZWxsX2JhcidzIGFkZHJlc3Mgc3BhY2UuCj4gCj4gcGNpLWVwYy10ZXN0IHdpbGwgc2V0IGRvb3Ji ZWxsX2RvbmUgaW4gZG9vcmJlbGwgY2FsbGJhY2suCj4gCgpIb3cgYWJvdXQsCgpBZGQgZG9vcmJl bGwgc3VwcG9ydCB0byB0aGUgRVBGIHRlc3QgZHJpdmVyIGJ5IGludHJvZHVjaW5nIDMgbmV3IHJl Z2lzdGVyczoKCmRvb3JiZWxsX2Jhcgpkb29yYmVsbF9hZGRyCmRvb3JiZWxsX2RhdGEKClRoZSBQ Q0kgUkMgZHJpdmVyIGNhbiB0cmlnZ2VyIHRoZSBkb29yYmVsbCBvbiB0aGUgRVAgc2lkZSBieSB3 cml0aW5nIHRoZQpjb250ZW50IG9mICJkb29yYmVsbF9kYXRhIiB0byB0aGUgYWRkcmVzcyBzcGVj aWZpZWQgYnkgdGhlICJkb29yYmVsbF9hZGRyIgpyZWdpc3RlciBpbiB0aGUgImRvb3JiZWxsX2Jh ciIgQkFSIHJlZ2lvbi4KCj4gU2lnbmVkLW9mZi1ieTogRnJhbmsgTGkgPEZyYW5rLkxpQG54cC5j b20+CgpZb3Ugc2hvdWxkIGFsc28gdXBkYXRlIERvY3VtZW50YXRpb24vUENJL2VuZHBvaW50L3Bj aS10ZXN0LSogZmlsZXMgaW4gYSBzZXBhcmF0ZQpjb21taXQgd2l0aCBkb29yYmVsbCBzdXBwb3J0 LgoKPiAtLS0KPiAgZHJpdmVycy9wY2kvZW5kcG9pbnQvZnVuY3Rpb25zL3BjaS1lcGYtdGVzdC5j IHwgNTkgKysrKysrKysrKysrKysrKysrLQo+ICAxIGZpbGUgY2hhbmdlZCwgNTggaW5zZXJ0aW9u cygrKSwgMSBkZWxldGlvbigtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9lbmRwb2lu dC9mdW5jdGlvbnMvcGNpLWVwZi10ZXN0LmMgYi9kcml2ZXJzL3BjaS9lbmRwb2ludC9mdW5jdGlv bnMvcGNpLWVwZi10ZXN0LmMKPiBpbmRleCAxZjBkMmI4NDI5NmEzLi41NjY1NDk5MTliODdiIDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvcGNpL2VuZHBvaW50L2Z1bmN0aW9ucy9wY2ktZXBmLXRlc3Qu Ywo+ICsrKyBiL2RyaXZlcnMvcGNpL2VuZHBvaW50L2Z1bmN0aW9ucy9wY2ktZXBmLXRlc3QuYwo+ IEBAIC0xMSw2ICsxMSw3IEBACj4gICNpbmNsdWRlIDxsaW51eC9kbWFlbmdpbmUuaD4KPiAgI2lu Y2x1ZGUgPGxpbnV4L2lvLmg+Cj4gICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KPiArI2luY2x1 ZGUgPGxpbnV4L21zaS5oPgo+ICAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgo+ICAjaW5jbHVkZSA8 bGludXgvcGNpX2lkcy5oPgo+ICAjaW5jbHVkZSA8bGludXgvcmFuZG9tLmg+Cj4gQEAgLTM5LDE3 ICs0MCwyMSBAQAo+ICAjZGVmaW5lIFNUQVRVU19JUlFfUkFJU0VECQlCSVQoNikKPiAgI2RlZmlu ZSBTVEFUVVNfU1JDX0FERFJfSU5WQUxJRAkJQklUKDcpCj4gICNkZWZpbmUgU1RBVFVTX0RTVF9B RERSX0lOVkFMSUQJCUJJVCg4KQo+ICsjZGVmaW5lIFNUQVRVU19ET09SQkVMTF9TVUNDRVNTCQlC SVQoOSkKPiAgCj4gICNkZWZpbmUgRkxBR19VU0VfRE1BCQkJQklUKDApCj4gIAo+ICAjZGVmaW5l IFRJTUVSX1JFU09MVVRJT04JCTEKPiAgCj4gKyNkZWZpbmUgTUFHSUNfVkVSU0lPTl9NQVNLCQlH RU5NQVNLKDcsIDApCj4gKwo+ICBzdGF0aWMgc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKmtwY2l0 ZXN0X3dvcmtxdWV1ZTsKPiAgCj4gIHN0cnVjdCBwY2lfZXBmX3Rlc3Qgewo+ICAJdm9pZAkJCSpy ZWdbUENJX1NURF9OVU1fQkFSU107Cj4gIAlzdHJ1Y3QgcGNpX2VwZgkJKmVwZjsKPiAgCWVudW0g cGNpX2Jhcm5vCQl0ZXN0X3JlZ19iYXI7Cj4gKwllbnVtIHBjaV9iYXJubwkJZG9vcmJlbGxfYmFy Owo+ICAJc2l6ZV90CQkJbXNpeF90YWJsZV9vZmZzZXQ7Cj4gIAlzdHJ1Y3QgZGVsYXllZF93b3Jr CWNtZF9oYW5kbGVyOwo+ICAJc3RydWN0IGRtYV9jaGFuCQkqZG1hX2NoYW5fdHg7Cj4gQEAgLTc0 LDYgKzc5LDkgQEAgc3RydWN0IHBjaV9lcGZfdGVzdF9yZWcgewo+ICAJdTMyCWlycV90eXBlOwo+ ICAJdTMyCWlycV9udW1iZXI7Cj4gIAl1MzIJZmxhZ3M7Cj4gKwl1MzIJZG9vcmJlbGxfYmFyOwo+ ICsJdTMyCWRvb3JiZWxsX2FkZHI7Cj4gKwl1MzIJZG9vcmJlbGxfZGF0YTsKPiAgfSBfX3BhY2tl ZDsKPiAgCj4gIHN0YXRpYyBzdHJ1Y3QgcGNpX2VwZl9oZWFkZXIgdGVzdF9oZWFkZXIgPSB7Cj4g QEAgLTY5Myw2ICs3MDEsOCBAQCBzdGF0aWMgdm9pZCBwY2lfZXBmX3Rlc3RfdW5iaW5kKHN0cnVj dCBwY2lfZXBmICplcGYpCj4gIAlzdHJ1Y3QgcGNpX2VwZl9iYXIgKmVwZl9iYXI7Cj4gIAlpbnQg YmFyOwo+ICAKPiArCXBjaV9lcGZfZnJlZV9kb29yYmVsbChlcGYpOwo+ICsKPiAgCWNhbmNlbF9k ZWxheWVkX3dvcmsoJmVwZl90ZXN0LT5jbWRfaGFuZGxlcik7Cj4gIAlwY2lfZXBmX3Rlc3RfY2xl YW5fZG1hX2NoYW4oZXBmX3Rlc3QpOwo+ICAJZm9yIChiYXIgPSAwOyBiYXIgPCBQQ0lfU1REX05V TV9CQVJTOyBiYXIrKykgewo+IEBAIC04MDgsOSArODE4LDIyIEBAIHN0YXRpYyBpbnQgcGNpX2Vw Zl90ZXN0X2xpbmtfdXAoc3RydWN0IHBjaV9lcGYgKmVwZikKPiAgCXJldHVybiAwOwo+ICB9Cj4g IAo+ICtzdGF0aWMgaW50IHBjaV9lcGZfdGVzdF9kb29yYmVsbChzdHJ1Y3QgcGNpX2VwZiAqZXBm LCBpbnQgaW5kZXgpCj4gK3sKPiArCXN0cnVjdCBwY2lfZXBmX3Rlc3QgKmVwZl90ZXN0ID0gZXBm X2dldF9kcnZkYXRhKGVwZik7Cj4gKwllbnVtIHBjaV9iYXJubyB0ZXN0X3JlZ19iYXIgPSBlcGZf dGVzdC0+dGVzdF9yZWdfYmFyOwo+ICsJc3RydWN0IHBjaV9lcGZfdGVzdF9yZWcgKnJlZyA9IGVw Zl90ZXN0LT5yZWdbdGVzdF9yZWdfYmFyXTsKPiArCj4gKwlyZWctPnN0YXR1cyB8PSBTVEFUVVNf RE9PUkJFTExfU1VDQ0VTUzsKPiArCXBjaV9lcGZfdGVzdF9yYWlzZV9pcnEoZXBmX3Rlc3QsIHJl Zyk7Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gK30KPiArCj4gIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNp X2VwY19ldmVudF9vcHMgcGNpX2VwZl90ZXN0X2V2ZW50X29wcyA9IHsKPiAgCS5jb3JlX2luaXQg PSBwY2lfZXBmX3Rlc3RfY29yZV9pbml0LAo+ICAJLmxpbmtfdXAgPSBwY2lfZXBmX3Rlc3RfbGlu a191cCwKPiArCS5kb29yYmVsbCA9IHBjaV9lcGZfdGVzdF9kb29yYmVsbCwKCkkgd291bGQgbGlr ZSB0byBwYXNzIHRoaXMgY2FsbGJhY2sgZGlyZWN0bHkgdG8gdGhlIHBjaV9lcGZfYWxsb2NfZG9v cmJlbGwoKSBBUEkuCiBXb3VsZCB0aGF0IGJlIGZlYXNpYmxlPwoKPiAgfTsKPiAgCj4gIHN0YXRp YyBpbnQgcGNpX2VwZl90ZXN0X2FsbG9jX3NwYWNlKHN0cnVjdCBwY2lfZXBmICplcGYpCj4gQEAg LTg1OSw3ICs4ODIsNyBAQCBzdGF0aWMgaW50IHBjaV9lcGZfdGVzdF9hbGxvY19zcGFjZShzdHJ1 Y3QgcGNpX2VwZiAqZXBmKQo+ICAJCWVwZl9iYXIgPSAmZXBmLT5iYXJbYmFyXTsKPiAgCQlhZGQg PSAoZXBmX2Jhci0+ZmxhZ3MgJiBQQ0lfQkFTRV9BRERSRVNTX01FTV9UWVBFXzY0KSA/IDIgOiAx Owo+ICAKPiAtCQlpZiAoYmFyID09IHRlc3RfcmVnX2JhcikKPiArCQlpZiAoYmFyID09IHRlc3Rf cmVnX2JhciB8fCBiYXIgPT0gZXBmX3Rlc3QtPmRvb3JiZWxsX2JhcikKPiAgCQkJY29udGludWU7 Cj4gIAo+ICAJCWlmICghIShlcGNfZmVhdHVyZXMtPnJlc2VydmVkX2JhciAmICgxIDw8IGJhcikp KQo+IEBAIC05MDAsOSArOTIzLDE0IEBAIHN0YXRpYyBpbnQgcGNpX2VwZl90ZXN0X2JpbmQoc3Ry dWN0IHBjaV9lcGYgKmVwZikKPiAgCXN0cnVjdCBwY2lfZXBmX3Rlc3QgKmVwZl90ZXN0ID0gZXBm X2dldF9kcnZkYXRhKGVwZik7Cj4gIAljb25zdCBzdHJ1Y3QgcGNpX2VwY19mZWF0dXJlcyAqZXBj X2ZlYXR1cmVzOwo+ICAJZW51bSBwY2lfYmFybm8gdGVzdF9yZWdfYmFyID0gQkFSXzA7Cj4gKwll bnVtIHBjaV9iYXJubyBkb29yYmVsbF9iYXIgPSBOT19CQVI7Cj4gIAlzdHJ1Y3QgcGNpX2VwYyAq ZXBjID0gZXBmLT5lcGM7Cj4gIAlib29sIGxpbmt1cF9ub3RpZmllciA9IGZhbHNlOwo+ICAJYm9v bCBjb3JlX2luaXRfbm90aWZpZXIgPSBmYWxzZTsKPiArCXN0cnVjdCBwY2lfZXBmX3Rlc3RfcmVn ICpyZWc7Cj4gKwlzdHJ1Y3QgbXNpX21zZyAqbXNnOwo+ICsJdTY0IGRvb3JiZWxsX2FkZHI7Cj4g Kwl1MzIgYWxpZ247Cj4gIAo+ICAJaWYgKFdBUk5fT05fT05DRSghZXBjKSkKPiAgCQlyZXR1cm4g LUVJTlZBTDsKPiBAQCAtOTIzLDEwICs5NTEsMzkgQEAgc3RhdGljIGludCBwY2lfZXBmX3Rlc3Rf YmluZChzdHJ1Y3QgcGNpX2VwZiAqZXBmKQo+ICAJZXBmX3Rlc3QtPnRlc3RfcmVnX2JhciA9IHRl c3RfcmVnX2JhcjsKPiAgCWVwZl90ZXN0LT5lcGNfZmVhdHVyZXMgPSBlcGNfZmVhdHVyZXM7Cj4g IAo+ICsJYWxpZ24gPSBlcGNfZmVhdHVyZXMtPmFsaWduOwo+ICsJYWxpZ24gPSBhbGlnbiA/IGFs aWduIDogMTI4Owo+ICsKPiArCXJldCA9IHBjaV9lcGZfYWxsb2NfZG9vcmJlbGwoZXBmLCAxKTsK ClRoaXMgc2hvdWxkIGJlIHJlbmFtZWQgYXMgcGNpX2VwY19hbGxvY19kb29yYmVsbCgpIGFzIHBl ciBjb21tZW50IG9uIHBhdGNoIDEvMy4KQWxzbywgdGhlICJtc2lfbXNnIiBwb2ludGVyIHNob3Vs ZCBiZSBwYXJ0IG9mIHRoZSBFUEMgc3RydWN0LgoKPiArCWlmICghcmV0KSB7Cj4gKwkJbXNnID0g ZXBmLT5tc2c7Cj4gKwkJZG9vcmJlbGxfYmFyID0gcGNpX2VwY19nZXRfbmV4dF9mcmVlX2Jhcihl cGNfZmVhdHVyZXMsIHRlc3RfcmVnX2JhciArIDEpOwo+ICsKPiArCQlpZiAoZG9vcmJlbGxfYmFy ID4gMCkgewo+ICsJCQllcGZfdGVzdC0+ZG9vcmJlbGxfYmFyID0gZG9vcmJlbGxfYmFyOwo+ICsJ CQlkb29yYmVsbF9hZGRyID0gbXNnLT5hZGRyZXNzX2hpOwo+ICsJCQlkb29yYmVsbF9hZGRyIDw8 PSAzMjsKPiArCQkJZG9vcmJlbGxfYWRkciB8PSBtc2ctPmFkZHJlc3NfbG87Cj4gKwkJCWVwZi0+ YmFyW2Rvb3JiZWxsX2Jhcl0ucGh5c19hZGRyID0gcm91bmRfZG93bihkb29yYmVsbF9hZGRyLCBh bGlnbik7Cj4gKwkJCWVwZi0+YmFyW2Rvb3JiZWxsX2Jhcl0uYmFybm8gPSBkb29yYmVsbF9iYXI7 Cj4gKwkJCWVwZi0+YmFyW2Rvb3JiZWxsX2Jhcl0uc2l6ZSA9IGFsaWduOwo+ICsJCX0gZWxzZSB7 Cj4gKwkJCXBjaV9lcGZfZnJlZV9kb29yYmVsbChlcGYpOwoKVGhpcyBvbmUgdG9vIHNob3VsZCBi ZSByZW5hbWVkLiAKCj4gKwkJfQo+ICsJfQo+ICsKPiAgCXJldCA9IHBjaV9lcGZfdGVzdF9hbGxv Y19zcGFjZShlcGYpOwoKVGhpcyBvbmUgdG9vLgoKPiAgCWlmIChyZXQpCj4gIAkJcmV0dXJuIHJl dDsKPiAgCj4gKwlyZWcgPSBlcGZfdGVzdC0+cmVnW3Rlc3RfcmVnX2Jhcl07Cj4gKwlyZWctPm1h Z2ljIHw9IEZJRUxEX1BSRVAoTUFHSUNfVkVSU0lPTl9NQVNLLCAweDEpOwoKV2h5IGFyZSB5b3Ug d3JpdGluZyB0aGlzIHJlZ2lzdGVyPyBUaGlzIHJlZ2lzdGVyIHNlcnZlcyBmb3IgdGhlIHB1cnBv c2Ugb2YKdGVzdGluZyBCQVIwLgoKLSBNYW5pCgo+ICsJaWYgKGRvb3JiZWxsX2JhciA+IDApIHsK PiArCQlyZWctPmRvb3JiZWxsX2FkZHIgPSBkb29yYmVsbF9hZGRyICYgKGFsaWduIC0gMSk7Cj4g KwkJcmVnLT5kb29yYmVsbF9kYXRhID0gbXNnLT5kYXRhOwo+ICsJCXJlZy0+ZG9vcmJlbGxfYmFy ID0gZG9vcmJlbGxfYmFyOwo+ICsJfQo+ICsKPiAgCWlmICghY29yZV9pbml0X25vdGlmaWVyKSB7 Cj4gIAkJcmV0ID0gcGNpX2VwZl90ZXN0X2NvcmVfaW5pdChlcGYpOwo+ICAJCWlmIChyZXQpCj4g LS0gCj4gMi4zNC4xCj4gCgotLSAK4K6u4K6j4K6/4K614K6j4K+N4K6j4K6p4K+NIOCumuCupOCu vuCumuCuv+CuteCuruCvjQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBs aXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlz dGluZm8vbGludXgtYXJtLWtlcm5lbAo=