From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oscar Mateo Subject: Re: [PATCH v8 1/2] drm/i915: Implement WaProgramMgsrForCorrectSliceSpecificMmioReads Date: Tue, 17 Apr 2018 14:53:37 -0700 Message-ID: <9a55ddb2-c016-ac9a-7906-d7f27df9f2b0@intel.com> References: <1523913758-32381-1-git-send-email-yunwei.zhang@intel.com> <1523999112-15449-1-git-send-email-yunwei.zhang@intel.com> <40c44f78-f28e-8c1b-ae54-7d76b00349b9@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6BB256E185 for ; Tue, 17 Apr 2018 21:53:39 +0000 (UTC) In-Reply-To: <40c44f78-f28e-8c1b-ae54-7d76b00349b9@intel.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Yunwei Zhang , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org CgpPbiA0LzE3LzIwMTggMjozNCBQTSwgT3NjYXIgTWF0ZW8gd3JvdGU6Cj4KPgo+IE9uIDQvMTcv MjAxOCAyOjA1IFBNLCBZdW53ZWkgWmhhbmcgd3JvdGU6Cj4+IFdhUHJvZ3JhbU1nc3JGb3JDb3Jy ZWN0U2xpY2VTcGVjaWZpY01taW9SZWFkcyBkaWN0YXRlIHRoYXQgYmVmb3JlIGFueSAKPj4gTU1J Two+PiByZWFkIGludG8gU2xpY2UvU3Vic2xpY2Ugc3BlY2lmaWMgcmVnaXN0ZXJzLCBNQ1IgcGFj a2V0IGNvbnRyb2wKPj4gcmVnaXN0ZXIoMHhGREMpIG5lZWRzIHRvIGJlIHByb2dyYW1tZWQgdG8g cG9pbnQgdG8gYW55IGVuYWJsZWQKPj4gc2xpY2Uvc3Vic2xpY2UgcGFpci4gT3RoZXJ3aXNlLCBp bmNvcnJlY3QgdmFsdWUgd2lsbCBiZSByZXR1cm5lZC4KPj4KPj4gSG93ZXZlciwgdGhhdCBtZWFu cyBlYWNoIHN1YnNlcXVlbnQgTU1JTyByZWFkIHdpbGwgYmUgZm9yd2FyZGVkIHRvIGEKPj4gc3Bl Y2lmaWMgc2xpY2Uvc3Vic2xpY2UgY29tYmluYXRpb24gYXMgcmVhZCBpcyB1bmljYXN0LiBUaGlz IGlzIE9LIHNpbmNlCj4+IHNsaWNlL3N1YnNsaWNlIHNwZWNpZmljIHJlZ2lzdGVyIHZhbHVlcyBh cmUgY29uc2lzdGVudCBpbiBhbG1vc3QgYWxsIAo+PiBjYXNlcwo+PiBhY3Jvc3Mgc2xpY2Uvc3Vi c2xpY2UuIFRoZXJlIGFyZSByYXJlIG9jY2FzaW9ucyBzdWNoIGFzIElOU1RET05FIHRoYXQgCj4+ IHRoaXMKPj4gdmFsdWUgd2lsbCBiZSBkZXBlbmRlbnQgb24gc2xpY2Uvc3Vic2xpY2UgY29tYm8s IGluIHN1Y2ggY2FzZXMsIHdlIAo+PiBuZWVkIHRvCj4+IHByb2dyYW0gMHhGREMgYW5kIHJlY292 ZXIgdGhpcyBhZnRlci4gVGhpcyBpcyBhbHJlYWR5IGNvdmVyZWQgYnkKPj4gcmVhZF9zdWJzbGlj ZV9yZWcuCj4+Cj4+IEFsc28sIDB4RkRDIHdpbGwgbG9zZSBpdHMgaW5mb3JtYXRpb24gYWZ0ZXIg VERSL2VuZ2luZSByZXNldC9wb3dlciBzdGF0ZQo+PiBjaGFuZ2UuCj4+Cj4+IFJlZmVyZW5jZXM6 IEhTRCMxNDA1NTg2ODQwLCBCU0lEIzA1NzUKPj4KPj4gdjI6Cj4+IMKgIC0gdXNlIGZscygpIGlu c3RlYWQgb2YgZmluZF9sYXN0X2JpdCgpIChDaHJpcykKPj4gwqAgLSBhZGRlZCBJTlRFTF9TU0VV IHRvIGV4dHJhY3Qgc3NldSBmcm9tIGRldmljZSBpbmZvLiAoQ2hyaXMpCj4+IHYzOgo+PiDCoCAt IHJlYmFzZSBvbiBsYXRlc3QgdGlwCj4+IHY1Ogo+PiDCoCAtIEFkZGVkIHJlZmVyZW5jZXMgKE1p a2EpCj4+IMKgIC0gQ2hhbmdlIHRoZSBvcmRlcmVkIG9mIHBhc3NpbmcgYXJndW1lbnRzIGFuZCBl dGMuIChVcnN1bGluKQo+PiB2NzoKPj4gwqAgLSBSZWJhc2VkLgo+PiB2ODoKPj4gwqAgLSBSZXZp ZXdlZCBieSBPc2Nhcgo+PiDCoCAtIFN0b3JlIGRlZmF1bHQgTUNSIHZhbHVlIGluc3RlYWQgb2Yg Y2FsY3VsYXRlIG9uIHRoZSBydW4uIChPc2NhcikKPj4KPj4gQ2M6IE9zY2FyIE1hdGVvIDxvc2Nh ci5tYXRlb0BpbnRlbC5jb20+Cj4+IENjOiBNaWNoZWwgVGhpZXJyeSA8bWljaGVsLnRoaWVycnlA aW50ZWwuY29tPgo+PiBDYzogSm9vbmFzIExhaHRpbmVuIDxqb29uYXMubGFodGluZW5AbGludXgu aW50ZWwuY29tPgo+PiBDYzogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+ Cj4+IENjOiBNaWthIEt1b3BwYWxhIDxtaWthLmt1b3BwYWxhQGxpbnV4LmludGVsLmNvbT4KPj4g Q2M6IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBsaW51eC5pbnRlbC5jb20+Cj4+IFNp Z25lZC1vZmYtYnk6IFl1bndlaSBaaGFuZyA8eXVud2VpLnpoYW5nQGludGVsLmNvbT4KPj4gUmV2 aWV3ZWQtYnk6IE9zY2FyIE1hdGVvIDxvc2Nhci5tYXRlb0BpbnRlbC5jb20+Cj4+IC0tLQo+PiDC oCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZXZpY2VfaW5mby5jIHwgMzMgCj4+ICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrCj4+IMKgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2RldmljZV9pbmZvLmggfMKgIDMgKysrCj4+IMKgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2VuZ2luZV9jcy5jwqDCoCB8IDE0ICsrKysrKysrKysrLS0tCj4+IMKgIDMgZmlsZXMgY2hh bmdlZCwgNDcgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKPj4KPj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RldmljZV9pbmZvLmMgCj4+IGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZGV2aWNlX2luZm8uYwo+PiBpbmRleCBhMzJiYTcyLi4yMjQzYTIz IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZXZpY2VfaW5mby5j Cj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RldmljZV9pbmZvLmMKPj4gQEAg LTcxOSw2ICs3MTksMzYgQEAgc3RhdGljIHUzMiByZWFkX3RpbWVzdGFtcF9mcmVxdWVuY3koc3Ry dWN0IAo+PiBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPj4gwqDCoMKgwqDCoCByZXR1cm4g MDsKPj4gwqAgfQo+PiDCoCArc3RhdGljIHZvaWQgd2FfaW5pdF9tY3Ioc3RydWN0IGludGVsX2Rl dmljZV9pbmZvICppbmZvKQo+Cj4gbWNyX3Nhbml0aXplPwo+Cj4+ICt7Cj4+ICvCoMKgwqAgc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0KPj4gK8KgwqDCoMKgwqDCoMKgIGNvbnRh aW5lcl9vZihpbmZvLCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSwgaW5mbyk7Cj4+ICvCoMKgwqAg dTMyIG1jcjsKPj4gK8KgwqDCoCB1MzIgbWNyX3NsaWNlX3N1YnNsaWNlX21hc2s7Cj4+ICvCoMKg wqAgdTMyIG1jcl9zbGljZV9zdWJzbGljZV9zZWxlY3Q7Cj4+ICvCoMKgwqAgdTMyIHNsaWNlID0g ZmxzKGluZm8tPnNzZXUuc2xpY2VfbWFzayk7Cj4+ICvCoMKgwqAgdTMyIHN1YnNsaWNlID0gZmxz KGluZm8tPnNzZXUuc3Vic2xpY2VfbWFza1tzbGljZV0pOwo+PiArCj4+ICvCoMKgwqAgaWYgKElO VEVMX0dFTihkZXZfcHJpdikgPj0gMTEpIHsKPj4gK8KgwqDCoMKgwqDCoMKgIG1jcl9zbGljZV9z dWJzbGljZV9tYXNrID0gR0VOMTFfTUNSX1NMSUNFX01BU0sgfAo+PiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIEdFTjExX01DUl9TVUJTTElDRV9NQVNLOwo+PiAr wqDCoMKgwqDCoMKgwqAgbWNyX3NsaWNlX3N1YnNsaWNlX3NlbGVjdCA9IEdFTjExX01DUl9TTElD RShzbGljZSkgfAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCBHRU4xMV9NQ1JfU1VCU0xJQ0Uoc3Vic2xpY2UpOwo+PiArwqDCoMKgIH0gZWxzZSB7Cj4+ ICvCoMKgwqDCoMKgwqDCoCBtY3Jfc2xpY2Vfc3Vic2xpY2VfbWFzayA9IEdFTjhfTUNSX1NMSUNF X01BU0sgfAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIEdF TjhfTUNSX1NVQlNMSUNFX01BU0s7Cj4+ICvCoMKgwqDCoMKgwqDCoCBtY3Jfc2xpY2Vfc3Vic2xp Y2Vfc2VsZWN0ID0gR0VOOF9NQ1JfU0xJQ0Uoc2xpY2UpIHwKPj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgR0VOOF9NQ1JfU1VCU0xJQ0Uoc3Vic2xpY2Up Owo+PiArwqDCoMKgIH0KPj4gKwo+PiArwqDCoMKgIG1jciA9IEk5MTVfUkVBRChHRU44X01DUl9T RUxFQ1RPUik7Cj4+ICvCoMKgwqAgbWNyICY9IH5tY3Jfc2xpY2Vfc3Vic2xpY2VfbWFzazsKPgo+ IFVudGlsIGhlcmUgeW91IGFyZSBub3QgYXBwbHlpbmcgYW55IFdBLCBvbmx5IHNhbml0aXppbmcg d2hhdCB0aGUgTUNSIAo+IGNvbnRhaW5zLiBUaGUgcmVhbCBXQSBpcyBpbiB0aGUgdHdvIGZvbGxv d2luZyBsaW5lcy4gVGhhdCdzIHdoZXJlIHRoZSAKPiBXYVByb2dyYW1NZ3NyRm9yQ29ycmVjdFNs aWNlU3BlY2lmaWNNbWlvUmVhZHMgbGFiZWwgc2hvdWxkIGJlIChhbmQgCj4gbWF5YmUgYSBzbWFs bCBjb21tZW50IG5vdGluZyB0aGF0IHdlIGFyZSBzZWxlY3RpbmcgYSBraW5kIG9mIHJhbmRvbSAK PiBzbGljZS9zdWJzbGljZSBjb21iaW5hdGlvbiB0byBtYWtlIHN1cmUgTU1JTyByZWFkcyBpbiBh IGNlcnRhaW5nIHJhbmdlIAo+IGFyZSB2YWxpZCkuCj4KPj4gK8KgwqDCoCBpZiAoSU5URUxfR0VO KGRldl9wcml2KSA+PSAxMCkKPj4gK8KgwqDCoMKgwqDCoMKgIG1jciB8PSBtY3Jfc2xpY2Vfc3Vi c2xpY2Vfc2VsZWN0Owo+PiArCj4+ICvCoMKgwqAgaW5mby0+bWNyID0gbWNyOwo+CgpBbiBleHRy YSB0aG91Z2h0OiB0ZWNobmljYWxseSwgeW91IGRvbid0IGNhcmUgYWJvdXQgdGhlIHdob2xlIE1D Uiwgb25seSAKdGhlIGJpdHMgaW4gbWNyX3NsaWNlX3N1YnNsaWNlX21hc2suIEkgZG91YnQgdGhl IG90aGVyIGJpdHMgY2FuIGNoYW5nZSAKYnV0LCBpZiB5b3Ugd2FudCB0byBiZSB0aG9yb3VnaCwg c3RvcmUgb25seSB0aG9zZSBiaXRzIGFuZCBhdm9pZCBtYWtpbmcgCmFzc3VtcHRpb25zIGFib3V0 IHRoZSByZXN0IGluIHJlYWRfc3Vic2xpY2VfcmVnLgoKPiBBbmQgbm93IHlvdSBhbHNvIHdhbnQg dG8gd3JpdGUgdGhlIEhXIHJlZ2lzdGVyIGJhY2ssIG90aGVyd2lzZSB5b3UgYXJlIAo+IG5vdCBh cHBseWluZyB0aGUgV0EhCj4KPj4gK30KPj4gKwo+PiDCoCAvKioKPj4gwqDCoCAqIGludGVsX2Rl dmljZV9pbmZvX3J1bnRpbWVfaW5pdCAtIGluaXRpYWxpemUgcnVudGltZSBpbmZvCj4+IMKgwqAg KiBAaW5mbzogaW50ZWwgZGV2aWNlIGluZm8gc3RydWN0Cj4+IEBAIC04NTEsNiArODgxLDkgQEAg dm9pZCBpbnRlbF9kZXZpY2VfaW5mb19ydW50aW1lX2luaXQoc3RydWN0IAo+PiBpbnRlbF9kZXZp Y2VfaW5mbyAqaW5mbykKPj4gwqDCoMKgwqDCoCBlbHNlIGlmIChJTlRFTF9JTkZPKGRldl9wcml2 KS0+Z2VuID49IDExKQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgZ2VuMTFfc3NldV9pbmZvX2luaXQo ZGV2X3ByaXYpOwo+PiDCoCArwqDCoMKgIC8qIFdhUHJvZ3JhbU1nc3JGb3JDb3JyZWN0U2xpY2VT cGVjaWZpY01taW9SZWFkczpjbmwsaWNsICovCj4+ICvCoMKgwqAgd2FfaW5pdF9tY3IoaW5mbyk7 Cj4+ICsKPj4gwqDCoMKgwqDCoCAvKiBJbml0aWFsaXplIGNvbW1hbmQgc3RyZWFtIHRpbWVzdGFt cCBmcmVxdWVuY3kgKi8KPj4gwqDCoMKgwqDCoCBpbmZvLT5jc190aW1lc3RhbXBfZnJlcXVlbmN5 X2toeiA9IAo+PiByZWFkX3RpbWVzdGFtcF9mcmVxdWVuY3koZGV2X3ByaXYpOwo+PiDCoCB9Cj4+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZXZpY2VfaW5mby5oIAo+ PiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RldmljZV9pbmZvLmgKPj4gaW5kZXggOTMz ZTMxNi4uNTQ0OWExNSAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZGV2aWNlX2luZm8uaAo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZXZpY2Vf aW5mby5oCj4+IEBAIC0xNzYsNiArMTc2LDkgQEAgc3RydWN0IGludGVsX2RldmljZV9pbmZvIHsK Pj4gwqDCoMKgwqDCoCAvKiBTbGljZS9zdWJzbGljZS9FVSBpbmZvICovCj4+IMKgwqDCoMKgwqAg c3RydWN0IHNzZXVfZGV2X2luZm8gc3NldTsKPj4gwqAgK8KgwqDCoCAvKiBNQ1IgcGFja2V0IGNv bnRyb2wgKi8KPj4gK8KgwqDCoCB1MzIgbWNyOwo+Cj4gVXNlIGEgYmV0dGVyIG5hbWUgZm9yIHRo aXMsIGxpa2UgZGVmYXVsdF9tY3IuIEknbGwgZXhwbGFpbiB3aHkgaW4gYSAKPiBzZWNvbmQuLi4K Pgo+PiArCj4+IMKgwqDCoMKgwqAgdTMyIGNzX3RpbWVzdGFtcF9mcmVxdWVuY3lfa2h6Owo+PiDC oCDCoMKgwqDCoMKgIHN0cnVjdCBjb2xvcl9sdXRzIHsKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jIAo+PiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2VuZ2luZV9jcy5jCj4+IGluZGV4IDFhODM3MDcuLjA4Nzk4ZjIgMTAwNjQ0Cj4+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jCj4+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jCj4+IEBAIC04MzEsMTggKzgzMSwyNiBA QCByZWFkX3N1YnNsaWNlX3JlZyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAKPj4gKmRldl9wcml2 LCBpbnQgc2xpY2UsCj4+IMKgwqDCoMKgwqAgaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9nZXRfX2xv Y2tlZChkZXZfcHJpdiwgZndfZG9tYWlucyk7Cj4+IMKgIMKgwqDCoMKgwqAgbWNyID0gSTkxNV9S RUFEX0ZXKEdFTjhfTUNSX1NFTEVDVE9SKTsKPj4gKwo+PiDCoMKgwqDCoMKgIC8qCj4+IMKgwqDC oMKgwqDCoCAqIFRoZSBIVyBleHBlY3RzIHRoZSBzbGljZSBhbmQgc3VibGljZSBzZWxlY3RvcnMg dG8gYmUgcmVzZXQgdG8gMAo+PiAtwqDCoMKgwqAgKiBhZnRlciByZWFkaW5nIG91dCB0aGUgcmVn aXN0ZXJzLgo+PiArwqDCoMKgwqAgKiBiZWZvcmUgR0VOMTAgb3IgdG8gYSBlbmFibGVkIHMvc3Mg cG9zdCBHRU4xMCBhZnRlciByZWFkaW5nIAo+PiBvdXQgdGhlCj4+ICvCoMKgwqDCoCAqIHJlZ2lz dGVycy4KPj4gwqDCoMKgwqDCoMKgICovCj4+IC3CoMKgwqAgV0FSTl9PTl9PTkNFKG1jciAmIG1j cl9zbGljZV9zdWJzbGljZV9tYXNrKTsKPj4gK8KgwqDCoCBXQVJOX09OX09OQ0UobWNyICE9IGRl dl9wcml2LT5pbmZvLm1jcik7Cj4KPiAuLi4gaWYgeW91IGNhbGwgaXQgZGVmYXVsdF9tY3IsIHlv dSBjYW4gc2tpcCB0aGUgY29tbWVudCBjb21wbGV0ZWx5LiAKPiBJdCdzIHZlcnkgY2xlYXIgeW91 IGFyZSBqdXN0IG1ha2luZyBzdXJlIHRoZSBNQ1IgaGFzIHRoZSBleHBlY3RlZCB2YWx1ZS4KPgo+ PiDCoMKgwqDCoMKgIG1jciAmPSB+bWNyX3NsaWNlX3N1YnNsaWNlX21hc2s7Cj4+IMKgwqDCoMKg wqAgbWNyIHw9IG1jcl9zbGljZV9zdWJzbGljZV9zZWxlY3Q7Cj4+IMKgwqDCoMKgwqAgSTkxNV9X UklURV9GVyhHRU44X01DUl9TRUxFQ1RPUiwgbWNyKTsKPj4gwqAgwqDCoMKgwqDCoCByZXQgPSBJ OTE1X1JFQURfRlcocmVnKTsKPj4gwqAgLcKgwqDCoCBtY3IgJj0gfm1jcl9zbGljZV9zdWJzbGlj ZV9tYXNrOwo+PiArwqDCoMKgIC8qCj4+ICvCoMKgwqDCoCAqIFdhUHJvZ3JhbU1nc3JGb3JDb3Jy ZWN0U2xpY2VTcGVjaWZpY01taW9SZWFkczpjbmwsaWNsCj4KPiBObyBuZWVkIGZvciB0aGlzIGxh YmVsIGhlcmUsIGJlY2F1c2UgdGhpcyBpcyBub3Qgd2VyZSB0aGUgV0Egc2hvdWxkIGJlIAo+IGFw cGxpZWQhISBIb3BlZnVsbHksIHlvdSBhbHJlYWR5IGFwcGxpZWQgaXQgYmVmb3JlIG5vdy4KPgo+ PiArwqDCoMKgwqAgKiBleHBlY3RzIG1jciB0byBiZSBwcm9ncmFtZWQgdG8gYSBlbmFibGVkIHNs aWNlL3N1YnNsaWNlIHBhaXIKPj4gK8KgwqDCoMKgICogYmVmb3JlIGFueSBNTUlPIHJlYWQgaW50 byBzbGljZS9zdWJzbGljZSByZWdpc3Rlcgo+PiArwqDCoMKgwqAgKi8KPj4gK8KgwqDCoCBtY3Ig PSBkZXZfcHJpdi0+aW5mby5tY3I7Cj4KPiBTYW1lIGhlcmU6IHdpdGggYSBiZXR0ZXIgbmFtaW5n LCBpdCdzIHZlcnkgY2xlYXIgeW91IGFyZSBqdXN0IHNldHRpbmcgCj4gdGhlIE1DUiB0byB0aGUg ZGVmYXVsdCB2YWx1ZSwgc28gdGhlcmUgaXMgbm8gbmVlZCBmb3IgYW55IGV4dHJhIAo+IGNvbW1l bnQgKGFuZCByZW1vdmUgdGhlIGZvbGxvd2luZyBibGFuayBsaW5lLCB0byBzaG93IHRoaXMgZ29l cyAKPiB0b2dldGhlciB3aXRoIHRoZSBJOTE1X1dSSVRFX0ZXKS4KPgo+PiArCj4+IMKgwqDCoMKg wqAgSTkxNV9XUklURV9GVyhHRU44X01DUl9TRUxFQ1RPUiwgbWNyKTsKPj4gwqAgwqDCoMKgwqDC oCBpbnRlbF91bmNvcmVfZm9yY2V3YWtlX3B1dF9fbG9ja2VkKGRldl9wcml2LCBmd19kb21haW5z KTsKPgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50 ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBz Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==