From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kuoppala Subject: Re: [PATCH] drm/i915/execlists: Verify context register state before execution Date: Thu, 31 Oct 2019 16:52:33 +0200 Message-ID: <87tv7p6k7i.fsf@gaia.fi.intel.com> References: <20191031104747.5308-1-chris@chris-wilson.co.uk> <87y2x1j89m.fsf@gaia.fi.intel.com> <157253285086.11954.12097715789006191101@skylake-alporthouse-com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id C574A6EEC3 for ; Thu, 31 Oct 2019 14:53:29 +0000 (UTC) In-Reply-To: <157253285086.11954.12097715789006191101@skylake-alporthouse-com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Q2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+IHdyaXRlczoKCj4gUXVvdGlu ZyBNaWthIEt1b3BwYWxhICgyMDE5LTEwLTMxIDE0OjMyOjA1KQo+PiBDaHJpcyBXaWxzb24gPGNo cmlzQGNocmlzLXdpbHNvbi5jby51az4gd3JpdGVzOgo+PiAKPj4gPiBDaGVjayB0aGF0IHRoZSBj b250ZXh0J3MgcmluZyByZWdpc3RlciBzdGF0ZSBzdGlsbCBtYXRjaGVzIG91cgo+PiA+IGV4cGVj dGF0aW9ucyBwcmlvciB0byBleGVjdXRpb24uCj4+ID4KPj4gPiBTaWduZWQtb2ZmLWJ5OiBDaHJp cyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KPj4gPiBDYzogTWlrYSBLdW9wcGFs YSA8bWlrYS5rdW9wcGFsYUBsaW51eC5pbnRlbC5jb20+Cj4+ID4gLS0tCj4+ID4gIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2d0L2ludGVsX2xyYy5jICAgICB8IDczICsrKysrKysrKysrKysrKysrKysr LS0tLS0KPj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfbHJjX3JlZy5oIHwgIDQg Ky0KPj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3RfbHJjLmMgIHwgIDQgKy0K Pj4gPiAgMyBmaWxlcyBjaGFuZ2VkLCA2MyBpbnNlcnRpb25zKCspLCAxOCBkZWxldGlvbnMoLSkK Pj4gPgo+PiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9scmMu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2xyYy5jCj4+ID4gaW5kZXggNWY2MWNk MTI4ZDljLi42NjZlNzA5MzE1MjQgMTAwNjQ0Cj4+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ3QvaW50ZWxfbHJjLmMKPj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRl bF9scmMuYwo+PiA+IEBAIC0xMTQ2LDYgKzExNDYsNjAgQEAgZXhlY2xpc3RzX3NjaGVkdWxlX291 dChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkKPj4gPiAgICAgICBpOTE1X3JlcXVlc3RfcHV0KHJx KTsKPj4gPiAgfQo+PiA+ICAKPj4gPiArc3RhdGljIGludCBscmNfcmluZ19taV9tb2RlKGNvbnN0 IHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPj4gPiArewo+PiA+ICsgICAgIGlmIChJ TlRFTF9HRU4oZW5naW5lLT5pOTE1KSA+PSAxMikKPj4gPiArICAgICAgICAgICAgIHJldHVybiAw eDYwOwo+PiA+ICsgICAgIGVsc2UgaWYgKElOVEVMX0dFTihlbmdpbmUtPmk5MTUpID49IDkpCj4+ ID4gKyAgICAgICAgICAgICByZXR1cm4gMHg1NDsKPj4gPiArICAgICBlbHNlIGlmIChlbmdpbmUt PmNsYXNzID09IFJFTkRFUl9DTEFTUykKPj4gPiArICAgICAgICAgICAgIHJldHVybiAweDU4Owo+ PiA+ICsgICAgIGVsc2UKPj4gPiArICAgICAgICAgICAgIHJldHVybiAtMTsKPj4gPiArfQo+PiA+ ICsKPj4gPiArc3RhdGljIHZvaWQKPj4gPiArZXhlY2xpc3RzX2NoZWNrX2NvbnRleHQoY29uc3Qg c3RydWN0IGludGVsX2NvbnRleHQgKmNlLAo+PiA+ICsgICAgICAgICAgICAgICAgICAgICBjb25z dCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4+ID4gK3sKPj4gPiArICAgICBjb25z dCBzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZyA9IGNlLT5yaW5nOwo+PiA+ICsgICAgIHUzMiAqcmVn cyA9IGNlLT5scmNfcmVnX3N0YXRlOwo+PiA+ICsgICAgIGludCB4Owo+PiA+ICsKPj4gPiArICAg ICBpZiAocmVnc1tDVFhfUklOR19TVEFSVF0gIT0gaTkxNV9nZ3R0X29mZnNldChyaW5nLT52bWEp KSB7Cj4+ID4gKyAgICAgICAgICAgICBwcl9lcnJfb25jZSgiJXM6IGNvbnRleHQgc3VibWl0dGVk IHdpdGggaW5jb3JyZWN0IFJJTkdfQlVGRkVSX1NUQVJUIFslMDh4XSwgZXhwZWN0ZWQgJTA4eFxu IiwKPj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgIGVuZ2luZS0+bmFtZSwKPj4gPiArICAg ICAgICAgICAgICAgICAgICAgICAgIHJlZ3NbQ1RYX1JJTkdfU1RBUlRdLAo+PiA+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgaTkxNV9nZ3R0X29mZnNldChyaW5nLT52bWEpKTsKPj4gPiArICAg ICAgICAgICAgIHJlZ3NbQ1RYX1JJTkdfU1RBUlRdID0gaTkxNV9nZ3R0X29mZnNldChyaW5nLT52 bWEpOwo+PiA+ICsgICAgIH0KPj4gPiArCj4+ID4gKyAgICAgaWYgKChyZWdzW0NUWF9SSU5HX0NU TF0gJiB+KFJJTkdfV0FJVCB8IFJJTkdfV0FJVF9TRU1BUEhPUkUpKSAhPQo+PiA+ICsgICAgICAg ICAoUklOR19DVExfU0laRShyaW5nLT5zaXplKSB8IFJJTkdfVkFMSUQpKSB7Cj4+ID4gKyAgICAg ICAgICAgICBwcl9lcnJfb25jZSgiJXM6IGNvbnRleHQgc3VibWl0dGVkIHdpdGggaW5jb3JyZWN0 IFJJTkdfQlVGRkVSX0NPTlRST0wgWyUwOHhdLCBleHBlY3RlZCAlMDh4XG4iLAo+PiA+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgZW5naW5lLT5uYW1lLAo+PiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgcmVnc1tDVFhfUklOR19DVExdLAo+PiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgKHUzMikoUklOR19DVExfU0laRShyaW5nLT5zaXplKSB8IFJJTkdfVkFMSUQpKTsKPj4gPiAr ICAgICAgICAgICAgIHJlZ3NbQ1RYX1JJTkdfQ1RMXSA9IFJJTkdfQ1RMX1NJWkUocmluZy0+c2l6 ZSkgfCBSSU5HX1ZBTElEOwo+PiAKPj4gV2UgYXJlIGdvaW5nIHRvIHN1Ym1pdCBieSBjbGVhcmlu ZyB0aGUgd2FpdHMuIEZpcnN0IEkgdGhvdWdodCB0aGlzIHdpbGwKPj4gbGVhZCB0byBkaXNhc3Rl ciBidXQgdGhlIGhhcmR3YXJlIHdvcmtzIHNvIHRoYXQgd2UgY2xlYXIgb24gd3JpdGluZyAnMScu Cj4KPiBBZmFpaywgdGhleSBhcmUgb25seSBpbmRpY2F0b3IgYml0cy4gU28gdGhlIEhXIGlnbm9y ZXMgdGhvc2UgYml0cyB3aGVuCj4gd2Ugd3JpdGUgdG8gdGhlIHJlZ2lzdGVyLgo+CgpJIGRpZCBj aGVjayBvbiByZXZpZXdpbmcuIEZvciBHZW4xMiBpdCBzdGF0ZXMgdGhhdDogd3JpdGluZyAwID09 IG5vCmVmZmVjdCwgd3JpdGluZyAxID09IGNsZWFyLgoKLU1pa2EKCgo+PiA+ICsgICAgIGlmIChy ZWdzW0NUWF9CQl9TVEFURV0gIT0gUklOR19CQl9QUEdUVCkgewo+PiA+ICsgICAgICAgICAgICAg cHJfZXJyX29uY2UoIiVzOiBjb250ZXh0IHN1Ym1pdHRlZCB3aXRoIGluY29ycmVjdCBCQl9TVEFU RSBbJTA4eF0sIGV4cGVjdGVkICUwOHhcbiIsCj4+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg ICBlbmdpbmUtPm5hbWUsCj4+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICByZWdzW0NUWF9C Ql9TVEFURV0sCj4+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICBSSU5HX0JCX1BQR1RUKTsK Pj4gPiArICAgICAgICAgICAgIHJlZ3NbQ1RYX0JCX1NUQVRFXSA9IFJJTkdfQkJfUFBHVFQ7Cj4+ ID4gKyAgICAgfQo+PiA+ICsKPj4gPiArICAgICB4ID0gbHJjX3JpbmdfbWlfbW9kZShlbmdpbmUp Owo+PiA+ICsgICAgIGlmICh4ICE9IC0xICYmIHJlZ3NbeCArIDFdICYgU1RPUF9SSU5HKSB7Cj4+ ID4gKyAgICAgICAgICAgICBwcl9lcnJfb25jZSgiJXM6IGNvbnRleHQgc3VibWl0dGVkIHdpdGgg U1RPUF9SSU5HIFslMDh4XSBpbiBSSU5HX01JX01PREVcbiIsCj4+ID4gKyAgICAgICAgICAgICAg ICAgICAgICAgICBlbmdpbmUtPm5hbWUsIHJlZ3NbeCArIDFdKTsKPj4gPiArICAgICAgICAgICAg IHJlZ3NbeCArIDFdICY9IH5TVE9QX1JJTkc7Cj4+ID4gKyAgICAgICAgICAgICByZWdzW3ggKyAx XSB8PSBTVE9QX1JJTkcgPDwgMTY7Cj4+IAo+PiBPayB5b3Ugd2FudCBvbmx5IHRvIGNhcmUgYWJv dXQgdGhpcyBvbmUuIFdhcyBwb25kZXJpbmcgb2YgcmVzdG9yaW5nIHJlc3QKPj4gb2YgdGhlIHN0 YXRlIGZyb20gcHJldmlvdXMuCj4KPiBJdCB3YXMgbW9zdGx5IGluIHRoZSBzcGlyaXQgb2YgIm5v dyB0aGF0IHdlIGFyZSBoZXJlLCB3ZSBtaWdodCBhcyB3ZWxsCj4gZml4IGl0IHVwIi4gSXQncyBt YWlubHkgdGhlIHBhcmFub2lhIGluIHRyeWluZyB0byBhc2NlcnRhaW4gaWYgd2UgYXJlCj4gZmVl ZGluZyBnYXJiYWdlIGludG8gdGhlIEdQVS4gVGhlcmUncyBwcm9iYWJseSBhIGxvdCBtb3JlIHdl IGNhbiBjaGVjaywKPiBidXQgdGhlIHJpbmcgcmVnaXN0ZXJzIGFyZSBlc3NlbnRpYWwgOikKPgo+ PiBXaWxsIHRoZSBoYXJkd2FyZSBldmVuIGNhcmUgb24gbWFza3MgYXQgdGhpcyBwb2ludCBvciBp cyB0aGUgc2F2aW5nIHBhcnQKPj4gc2V0dGluZyB0aGVtIGFjY29yZGluZ2x5Pwo+Cj4gQWl1aSwg aXQgdXNlcyB0aGUgbWFza3Mgb24gdGhlIGltcGxpY2l0IExSSSBpbiB0aGUgY29udGV4dCByZXN0 b3JlIHRvCj4gY29udHJvbCB3aGVyZSBvciBub3QgdG8gYWN0dWFsbHkgYXBwbHkgdGhlIGJpdHMu IE5vdCB0aGF0IEkgaGF2ZSBjaGVja2VkCj4gdG8gc2VlIHdoYXQgdGhlIEhXIGlzIGRvaW5nICh3 ZSB3aWxsIHNlZSBpZiBpdCBldmVyIGZsYWdzIGFuIGVycm9yKSwgYnV0Cj4gbWVtb3J5IHNheXMg ZnJvbSBlbHNld2VyZSBpdCB1c2VzIDB4ZmZmZnh4eHguCj4gLUNocmlzCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QK SW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA== 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 X-Spam-Level: X-Spam-Status: No, score=-6.7 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 882A6CA9ECB for ; Thu, 31 Oct 2019 14:53:31 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 5FBBF2087E for ; Thu, 31 Oct 2019 14:53:31 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 5FBBF2087E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id E1F046EEC3; Thu, 31 Oct 2019 14:53:30 +0000 (UTC) Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id C574A6EEC3 for ; Thu, 31 Oct 2019 14:53:29 +0000 (UTC) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga106.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 31 Oct 2019 07:53:29 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.68,250,1569308400"; d="scan'208";a="400520743" Received: from gaia.fi.intel.com ([10.237.72.192]) by fmsmga005.fm.intel.com with ESMTP; 31 Oct 2019 07:53:28 -0700 Received: by gaia.fi.intel.com (Postfix, from userid 1000) id 34E4C5C1E15; Thu, 31 Oct 2019 16:52:33 +0200 (EET) From: Mika Kuoppala To: Chris Wilson , intel-gfx@lists.freedesktop.org In-Reply-To: <157253285086.11954.12097715789006191101@skylake-alporthouse-com> References: <20191031104747.5308-1-chris@chris-wilson.co.uk> <87y2x1j89m.fsf@gaia.fi.intel.com> <157253285086.11954.12097715789006191101@skylake-alporthouse-com> Date: Thu, 31 Oct 2019 16:52:33 +0200 Message-ID: <87tv7p6k7i.fsf@gaia.fi.intel.com> MIME-Version: 1.0 Subject: Re: [Intel-gfx] [PATCH] drm/i915/execlists: Verify context register state before execution X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" Message-ID: <20191031145233.mYITVeq2sE-rmbq6-0K4rvRnUTr_drRcEkhulW89i8k@z> Q2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+IHdyaXRlczoKCj4gUXVvdGlu ZyBNaWthIEt1b3BwYWxhICgyMDE5LTEwLTMxIDE0OjMyOjA1KQo+PiBDaHJpcyBXaWxzb24gPGNo cmlzQGNocmlzLXdpbHNvbi5jby51az4gd3JpdGVzOgo+PiAKPj4gPiBDaGVjayB0aGF0IHRoZSBj b250ZXh0J3MgcmluZyByZWdpc3RlciBzdGF0ZSBzdGlsbCBtYXRjaGVzIG91cgo+PiA+IGV4cGVj dGF0aW9ucyBwcmlvciB0byBleGVjdXRpb24uCj4+ID4KPj4gPiBTaWduZWQtb2ZmLWJ5OiBDaHJp cyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KPj4gPiBDYzogTWlrYSBLdW9wcGFs YSA8bWlrYS5rdW9wcGFsYUBsaW51eC5pbnRlbC5jb20+Cj4+ID4gLS0tCj4+ID4gIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2d0L2ludGVsX2xyYy5jICAgICB8IDczICsrKysrKysrKysrKysrKysrKysr LS0tLS0KPj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfbHJjX3JlZy5oIHwgIDQg Ky0KPj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3RfbHJjLmMgIHwgIDQgKy0K Pj4gPiAgMyBmaWxlcyBjaGFuZ2VkLCA2MyBpbnNlcnRpb25zKCspLCAxOCBkZWxldGlvbnMoLSkK Pj4gPgo+PiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9scmMu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2xyYy5jCj4+ID4gaW5kZXggNWY2MWNk MTI4ZDljLi42NjZlNzA5MzE1MjQgMTAwNjQ0Cj4+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ3QvaW50ZWxfbHJjLmMKPj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRl bF9scmMuYwo+PiA+IEBAIC0xMTQ2LDYgKzExNDYsNjAgQEAgZXhlY2xpc3RzX3NjaGVkdWxlX291 dChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkKPj4gPiAgICAgICBpOTE1X3JlcXVlc3RfcHV0KHJx KTsKPj4gPiAgfQo+PiA+ICAKPj4gPiArc3RhdGljIGludCBscmNfcmluZ19taV9tb2RlKGNvbnN0 IHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPj4gPiArewo+PiA+ICsgICAgIGlmIChJ TlRFTF9HRU4oZW5naW5lLT5pOTE1KSA+PSAxMikKPj4gPiArICAgICAgICAgICAgIHJldHVybiAw eDYwOwo+PiA+ICsgICAgIGVsc2UgaWYgKElOVEVMX0dFTihlbmdpbmUtPmk5MTUpID49IDkpCj4+ ID4gKyAgICAgICAgICAgICByZXR1cm4gMHg1NDsKPj4gPiArICAgICBlbHNlIGlmIChlbmdpbmUt PmNsYXNzID09IFJFTkRFUl9DTEFTUykKPj4gPiArICAgICAgICAgICAgIHJldHVybiAweDU4Owo+ PiA+ICsgICAgIGVsc2UKPj4gPiArICAgICAgICAgICAgIHJldHVybiAtMTsKPj4gPiArfQo+PiA+ ICsKPj4gPiArc3RhdGljIHZvaWQKPj4gPiArZXhlY2xpc3RzX2NoZWNrX2NvbnRleHQoY29uc3Qg c3RydWN0IGludGVsX2NvbnRleHQgKmNlLAo+PiA+ICsgICAgICAgICAgICAgICAgICAgICBjb25z dCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4+ID4gK3sKPj4gPiArICAgICBjb25z dCBzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZyA9IGNlLT5yaW5nOwo+PiA+ICsgICAgIHUzMiAqcmVn cyA9IGNlLT5scmNfcmVnX3N0YXRlOwo+PiA+ICsgICAgIGludCB4Owo+PiA+ICsKPj4gPiArICAg ICBpZiAocmVnc1tDVFhfUklOR19TVEFSVF0gIT0gaTkxNV9nZ3R0X29mZnNldChyaW5nLT52bWEp KSB7Cj4+ID4gKyAgICAgICAgICAgICBwcl9lcnJfb25jZSgiJXM6IGNvbnRleHQgc3VibWl0dGVk IHdpdGggaW5jb3JyZWN0IFJJTkdfQlVGRkVSX1NUQVJUIFslMDh4XSwgZXhwZWN0ZWQgJTA4eFxu IiwKPj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgIGVuZ2luZS0+bmFtZSwKPj4gPiArICAg ICAgICAgICAgICAgICAgICAgICAgIHJlZ3NbQ1RYX1JJTkdfU1RBUlRdLAo+PiA+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgaTkxNV9nZ3R0X29mZnNldChyaW5nLT52bWEpKTsKPj4gPiArICAg ICAgICAgICAgIHJlZ3NbQ1RYX1JJTkdfU1RBUlRdID0gaTkxNV9nZ3R0X29mZnNldChyaW5nLT52 bWEpOwo+PiA+ICsgICAgIH0KPj4gPiArCj4+ID4gKyAgICAgaWYgKChyZWdzW0NUWF9SSU5HX0NU TF0gJiB+KFJJTkdfV0FJVCB8IFJJTkdfV0FJVF9TRU1BUEhPUkUpKSAhPQo+PiA+ICsgICAgICAg ICAoUklOR19DVExfU0laRShyaW5nLT5zaXplKSB8IFJJTkdfVkFMSUQpKSB7Cj4+ID4gKyAgICAg ICAgICAgICBwcl9lcnJfb25jZSgiJXM6IGNvbnRleHQgc3VibWl0dGVkIHdpdGggaW5jb3JyZWN0 IFJJTkdfQlVGRkVSX0NPTlRST0wgWyUwOHhdLCBleHBlY3RlZCAlMDh4XG4iLAo+PiA+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgZW5naW5lLT5uYW1lLAo+PiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgcmVnc1tDVFhfUklOR19DVExdLAo+PiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgKHUzMikoUklOR19DVExfU0laRShyaW5nLT5zaXplKSB8IFJJTkdfVkFMSUQpKTsKPj4gPiAr ICAgICAgICAgICAgIHJlZ3NbQ1RYX1JJTkdfQ1RMXSA9IFJJTkdfQ1RMX1NJWkUocmluZy0+c2l6 ZSkgfCBSSU5HX1ZBTElEOwo+PiAKPj4gV2UgYXJlIGdvaW5nIHRvIHN1Ym1pdCBieSBjbGVhcmlu ZyB0aGUgd2FpdHMuIEZpcnN0IEkgdGhvdWdodCB0aGlzIHdpbGwKPj4gbGVhZCB0byBkaXNhc3Rl ciBidXQgdGhlIGhhcmR3YXJlIHdvcmtzIHNvIHRoYXQgd2UgY2xlYXIgb24gd3JpdGluZyAnMScu Cj4KPiBBZmFpaywgdGhleSBhcmUgb25seSBpbmRpY2F0b3IgYml0cy4gU28gdGhlIEhXIGlnbm9y ZXMgdGhvc2UgYml0cyB3aGVuCj4gd2Ugd3JpdGUgdG8gdGhlIHJlZ2lzdGVyLgo+CgpJIGRpZCBj aGVjayBvbiByZXZpZXdpbmcuIEZvciBHZW4xMiBpdCBzdGF0ZXMgdGhhdDogd3JpdGluZyAwID09 IG5vCmVmZmVjdCwgd3JpdGluZyAxID09IGNsZWFyLgoKLU1pa2EKCgo+PiA+ICsgICAgIGlmIChy ZWdzW0NUWF9CQl9TVEFURV0gIT0gUklOR19CQl9QUEdUVCkgewo+PiA+ICsgICAgICAgICAgICAg cHJfZXJyX29uY2UoIiVzOiBjb250ZXh0IHN1Ym1pdHRlZCB3aXRoIGluY29ycmVjdCBCQl9TVEFU RSBbJTA4eF0sIGV4cGVjdGVkICUwOHhcbiIsCj4+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg ICBlbmdpbmUtPm5hbWUsCj4+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICByZWdzW0NUWF9C Ql9TVEFURV0sCj4+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICBSSU5HX0JCX1BQR1RUKTsK Pj4gPiArICAgICAgICAgICAgIHJlZ3NbQ1RYX0JCX1NUQVRFXSA9IFJJTkdfQkJfUFBHVFQ7Cj4+ ID4gKyAgICAgfQo+PiA+ICsKPj4gPiArICAgICB4ID0gbHJjX3JpbmdfbWlfbW9kZShlbmdpbmUp Owo+PiA+ICsgICAgIGlmICh4ICE9IC0xICYmIHJlZ3NbeCArIDFdICYgU1RPUF9SSU5HKSB7Cj4+ ID4gKyAgICAgICAgICAgICBwcl9lcnJfb25jZSgiJXM6IGNvbnRleHQgc3VibWl0dGVkIHdpdGgg U1RPUF9SSU5HIFslMDh4XSBpbiBSSU5HX01JX01PREVcbiIsCj4+ID4gKyAgICAgICAgICAgICAg ICAgICAgICAgICBlbmdpbmUtPm5hbWUsIHJlZ3NbeCArIDFdKTsKPj4gPiArICAgICAgICAgICAg IHJlZ3NbeCArIDFdICY9IH5TVE9QX1JJTkc7Cj4+ID4gKyAgICAgICAgICAgICByZWdzW3ggKyAx XSB8PSBTVE9QX1JJTkcgPDwgMTY7Cj4+IAo+PiBPayB5b3Ugd2FudCBvbmx5IHRvIGNhcmUgYWJv dXQgdGhpcyBvbmUuIFdhcyBwb25kZXJpbmcgb2YgcmVzdG9yaW5nIHJlc3QKPj4gb2YgdGhlIHN0 YXRlIGZyb20gcHJldmlvdXMuCj4KPiBJdCB3YXMgbW9zdGx5IGluIHRoZSBzcGlyaXQgb2YgIm5v dyB0aGF0IHdlIGFyZSBoZXJlLCB3ZSBtaWdodCBhcyB3ZWxsCj4gZml4IGl0IHVwIi4gSXQncyBt YWlubHkgdGhlIHBhcmFub2lhIGluIHRyeWluZyB0byBhc2NlcnRhaW4gaWYgd2UgYXJlCj4gZmVl ZGluZyBnYXJiYWdlIGludG8gdGhlIEdQVS4gVGhlcmUncyBwcm9iYWJseSBhIGxvdCBtb3JlIHdl IGNhbiBjaGVjaywKPiBidXQgdGhlIHJpbmcgcmVnaXN0ZXJzIGFyZSBlc3NlbnRpYWwgOikKPgo+ PiBXaWxsIHRoZSBoYXJkd2FyZSBldmVuIGNhcmUgb24gbWFza3MgYXQgdGhpcyBwb2ludCBvciBp cyB0aGUgc2F2aW5nIHBhcnQKPj4gc2V0dGluZyB0aGVtIGFjY29yZGluZ2x5Pwo+Cj4gQWl1aSwg aXQgdXNlcyB0aGUgbWFza3Mgb24gdGhlIGltcGxpY2l0IExSSSBpbiB0aGUgY29udGV4dCByZXN0 b3JlIHRvCj4gY29udHJvbCB3aGVyZSBvciBub3QgdG8gYWN0dWFsbHkgYXBwbHkgdGhlIGJpdHMu IE5vdCB0aGF0IEkgaGF2ZSBjaGVja2VkCj4gdG8gc2VlIHdoYXQgdGhlIEhXIGlzIGRvaW5nICh3 ZSB3aWxsIHNlZSBpZiBpdCBldmVyIGZsYWdzIGFuIGVycm9yKSwgYnV0Cj4gbWVtb3J5IHNheXMg ZnJvbSBlbHNld2VyZSBpdCB1c2VzIDB4ZmZmZnh4eHguCj4gLUNocmlzCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QK SW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA==