From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Siluvery, Arun" Subject: Re: [PATCH v6 6/6] drm/i915/gen8: Add WaRsRestoreWithPerCtxtBb workaround Date: Tue, 23 Jun 2015 15:48:33 +0100 Message-ID: <558971C1.3070704@linux.intel.com> References: <1434735435-14728-1-git-send-email-arun.siluvery@linux.intel.com> <1434735435-14728-7-git-send-email-arun.siluvery@linux.intel.com> <20150622162152.GW5176@intel.com> <55883EE7.9010400@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id 216306E05D for ; Tue, 23 Jun 2015 07:48:37 -0700 (PDT) In-Reply-To: <55883EE7.9010400@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: =?UTF-8?B?VmlsbGUgU3lyasOkbMOk?= Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gMjIvMDYvMjAxNSAxNzo1OSwgU2lsdXZlcnksIEFydW4gd3JvdGU6Cj4gT24gMjIvMDYvMjAx NSAxNzoyMSwgVmlsbGUgU3lyasOkbMOkIHdyb3RlOgo+PiBPbiBGcmksIEp1biAxOSwgMjAxNSBh dCAwNjozNzoxNVBNICswMTAwLCBBcnVuIFNpbHV2ZXJ5IHdyb3RlOgo+Pj4gSW4gUGVyIGNvbnRl eHQgdy9hIGJhdGNoIGJ1ZmZlciwKPj4+IFdhUnNSZXN0b3JlV2l0aFBlckN0eHRCYgo+Pj4KPj4+ IFRoaXMgV0EgcGVyZm9ybXMgd3JpdGVzIHRvIHNjcmF0Y2ggcGFnZSBzbyBpdCBtdXN0IGJlIHZh bGlkLCB0aGlzIGNoZWNrCj4+PiBpcyBwZXJmb3JtZWQgYmVmb3JlIGluaXRpYWxpemluZyB0aGUg YmF0Y2ggd2l0aCB0aGlzIFdBLgo+Pj4KPj4+IHYyOiBUaGlzIHBhdGNoZXMgbW9kaWZpZXMgZGVm aW5pdGlvbnMgb2YgTUlfTE9BRF9SRUdJU1RFUl9NRU0gYW5kCj4+PiBNSV9MT0FEX1JFR0lTVEVS X1JFRzsgQWRkIEdFTjggc3BlY2lmaWMgZGVmaW5lcyBmb3IgdGhlc2UgaW5zdHJ1Y3Rpb25zCj4+ PiBzbyBhcyB0byBub3QgYnJlYWsgYW55IGZ1dHVyZSB1c2VycyBvZiBleGlzdGluZyBkZWZpbml0 aW9ucyAoTWljaGVsKQo+Pj4KPj4+IHYzOiBMZW5ndGggZGVmaW5lZCBpbiBjdXJyZW50IGRlZmlu aXRpb25zIG9mIExSTSwgTFJSIGluc3RydWN0aW9ucyB3YXMgc3BlY2lmaWVkCj4+PiBhcyAwLiBJ dCBzZWVtcyBpdCBpcyBjb21tb24gY29udmVudGlvbiBmb3IgaW5zdHJ1Y3Rpb25zIHdob3NlIGxl bmd0aCB2YXJ5IGJldHdlZW4KPj4+IHBsYXRmb3Jtcy4gVGhpcyBpcyBub3QgYW4gaXNzdWUgc28g ZmFyIGJlY2F1c2UgdGhleSBhcmUgbm90IHVzZWQgYW55d2hlcmUgZXhjZXB0Cj4+PiBjb21tYW5k IHBhcnNlcjsgbm93IHRoYXQgd2UgdXNlIGluIHRoaXMgcGF0Y2ggdXBkYXRlIHRoZW0gd2l0aCBj b3JyZWN0IGxlbmd0aAo+Pj4gYW5kIGFsc28gbW92ZSB0aGVtIG91dCBvZiBjb21tYW5kIHBhcnNl ciBwbGFjZWhvbGRlciB0byBhcHByb3ByaWF0ZSBwbGFjZS4KPj4+IHJlbW92ZSB1bm5lY2Vzc2Fy eSBwYWRkaW5nIGFuZCBmb2xsb3cgdGhlIFdBIHByb2dyYW1taW5nIHNlcXVlbmNlIGV4YWN0bHkK Pj4+IGFzIG1lbnRpb25lZCBpbiBzcGVjIHdoaWNoIGlzIGVzc2VudGlhbCBmb3IgdGhpcyBXQSAo RGF2ZSkuCj4+Pgo+Pj4gQ2M6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVr Pgo+Pj4gQ2M6IERhdmUgR29yZG9uIDxkYXZpZC5zLmdvcmRvbkBpbnRlbC5jb20+Cj4+PiBTaWdu ZWQtb2ZmLWJ5OiBSYWZhZWwgQmFyYmFsaG8gPHJhZmFlbC5iYXJiYWxob0BpbnRlbC5jb20+Cj4+ PiBTaWduZWQtb2ZmLWJ5OiBBcnVuIFNpbHV2ZXJ5IDxhcnVuLnNpbHV2ZXJ5QGxpbnV4LmludGVs LmNvbT4KPj4+IC0tLQo+Pj4gICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCAgfCAy OSArKysrKysrKysrKysrKysrKysrLS0KPj4+ICAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2xyYy5jIHwgNTQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+Pj4g ICAgMiBmaWxlcyBjaGFuZ2VkLCA4MSBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQo+Pj4K Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+Pj4gaW5kZXggNzYzN2U2NC4uMjA4NjIwZCAxMDA2 NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPj4+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPj4+IEBAIC0zNDcsNiArMzQ3LDMxIEBACj4+ PiAgICAjZGVmaW5lICAgTUlfSU5WQUxJREFURV9CU0QJCSgxPDw3KQo+Pj4gICAgI2RlZmluZSAg IE1JX0ZMVVNIX0RXX1VTRV9HVFQJCSgxPDwyKQo+Pj4gICAgI2RlZmluZSAgIE1JX0ZMVVNIX0RX X1VTRV9QUEdUVAkJKDA8PDIpCj4+PiArI2RlZmluZSBNSV9MT0FEX1JFR0lTVEVSX01FTSAgICBN SV9JTlNUUigweDI5LCAxKQo+Pj4gKyNkZWZpbmUgTUlfTE9BRF9SRUdJU1RFUl9NRU1fR0VOOCBN SV9JTlNUUigweDI5LCAyKQo+Pj4gKyNkZWZpbmUgICBNSV9MUk1fVVNFX0dMT0JBTF9HVFQgKDE8 PDIyKQo+Pj4gKyNkZWZpbmUgICBNSV9MUk1fQVNZTkNfTU9ERV9FTkFCTEUgKDE8PDIxKQo+Pj4g KyNkZWZpbmUgTUlfTE9BRF9SRUdJU1RFUl9SRUcgICAgTUlfSU5TVFIoMHgyQSwgMSkKPj4+ICsj ZGVmaW5lIE1JX0FUT01JQyhsZW4pCU1JX0lOU1RSKDB4MkYsIChsZW4tMikpCj4+PiArI2RlZmlu ZSAgIE1JX0FUT01JQ19NRU1PUllfVFlQRV9HR1RUCSgxPDwyMikKPj4+ICsjZGVmaW5lICAgTUlf QVRPTUlDX0lOTElORV9EQVRBCQkoMTw8MTgpCj4+PiArI2RlZmluZSAgIE1JX0FUT01JQ19DU19T VEFMTAkJKDE8PDE3KQo+Pj4gKyNkZWZpbmUgICBNSV9BVE9NSUNfUkVUVVJOX0RBVEFfQ1RMCSgx PDwxNikKPj4+ICsjZGVmaW5lIE1JX0FUT01JQ19PUF9NQVNLKG9wKSAgKChvcCkgPDwgOCkKPj4+ ICsjZGVmaW5lIE1JX0FUT01JQ19BTkQJTUlfQVRPTUlDX09QX01BU0soMHgwMSkKPj4+ICsjZGVm aW5lIE1JX0FUT01JQ19PUglNSV9BVE9NSUNfT1BfTUFTSygweDAyKQo+Pj4gKyNkZWZpbmUgTUlf QVRPTUlDX1hPUglNSV9BVE9NSUNfT1BfTUFTSygweDAzKQo+Pj4gKyNkZWZpbmUgTUlfQVRPTUlD X01PVkUJTUlfQVRPTUlDX09QX01BU0soMHgwNCkKPj4+ICsjZGVmaW5lIE1JX0FUT01JQ19JTkMJ TUlfQVRPTUlDX09QX01BU0soMHgwNSkKPj4+ICsjZGVmaW5lIE1JX0FUT01JQ19ERUMJTUlfQVRP TUlDX09QX01BU0soMHgwNikKPj4+ICsjZGVmaW5lIE1JX0FUT01JQ19BREQJTUlfQVRPTUlDX09Q X01BU0soMHgwNykKPj4+ICsjZGVmaW5lIE1JX0FUT01JQ19TVUIJTUlfQVRPTUlDX09QX01BU0so MHgwOCkKPj4+ICsjZGVmaW5lIE1JX0FUT01JQ19SU1VCCU1JX0FUT01JQ19PUF9NQVNLKDB4MDkp Cj4+PiArI2RlZmluZSBNSV9BVE9NSUNfSU1BWAlNSV9BVE9NSUNfT1BfTUFTSygweDBBKQo+Pj4g KyNkZWZpbmUgTUlfQVRPTUlDX0lNSU4JTUlfQVRPTUlDX09QX01BU0soMHgwQikKPj4+ICsjZGVm aW5lIE1JX0FUT01JQ19VTUFYCU1JX0FUT01JQ19PUF9NQVNLKDB4MEMpCj4+PiArI2RlZmluZSBN SV9BVE9NSUNfVU1JTglNSV9BVE9NSUNfT1BfTUFTSygweDBEKQo+Pj4gKwo+Pj4gICAgI2RlZmlu ZSBNSV9CQVRDSF9CVUZGRVIJCU1JX0lOU1RSKDB4MzAsIDEpCj4+PiAgICAjZGVmaW5lICAgTUlf QkFUQ0hfTk9OX1NFQ1VSRQkJKDEpCj4+PiAgICAvKiBmb3Igc25iL2l2Yi92bHYgdGhpcyBhbHNv IG1lYW5zICJiYXRjaCBpbiBwcGd0dCIgd2hlbiBwcGd0dCBpcyBlbmFibGVkLiAqLwo+Pj4gQEAg LTQ1MSw4ICs0NzYsNiBAQAo+Pj4gICAgI2RlZmluZSBNSV9DTEZMVVNIICAgICAgICAgICAgICBN SV9JTlNUUigweDI3LCAwKQo+Pj4gICAgI2RlZmluZSBNSV9SRVBPUlRfUEVSRl9DT1VOVCAgICBN SV9JTlNUUigweDI4LCAwKQo+Pj4gICAgI2RlZmluZSAgIE1JX1JFUE9SVF9QRVJGX0NPVU5UX0dH VFQgKDE8PDApCj4+PiAtI2RlZmluZSBNSV9MT0FEX1JFR0lTVEVSX01FTSAgICBNSV9JTlNUUigw eDI5LCAwKQo+Pj4gLSNkZWZpbmUgTUlfTE9BRF9SRUdJU1RFUl9SRUcgICAgTUlfSU5TVFIoMHgy QSwgMCkKPj4+ICAgICNkZWZpbmUgTUlfUlNfU1RPUkVfREFUQV9JTU0gICAgTUlfSU5TVFIoMHgy QiwgMCkKPj4+ICAgICNkZWZpbmUgTUlfTE9BRF9VUkJfTUVNICAgICAgICAgTUlfSU5TVFIoMHgy QywgMCkKPj4+ICAgICNkZWZpbmUgTUlfU1RPUkVfVVJCX01FTSAgICAgICAgTUlfSU5TVFIoMHgy RCwgMCkKPj4+IEBAIC0xNzk5LDYgKzE4MjIsOCBAQCBlbnVtIHNrbF9kaXNwX3Bvd2VyX3dlbGxz IHsKPj4+ICAgICNkZWZpbmUgICBHRU44X1JDX1NFTUFfSURMRV9NU0dfRElTQUJMRQkoMSA8PCAx MikKPj4+ICAgICNkZWZpbmUgICBHRU44X0ZGX0RPUF9DTE9DS19HQVRFX0RJU0FCTEUJKDE8PDEw KQo+Pj4KPj4+ICsjZGVmaW5lIEdFTjhfUlNfUFJFRU1QVF9TVEFUVVMJCTB4MjE1Qwo+Pj4gKwo+ Pj4gICAgLyogRnVzZSByZWFkb3V0IHJlZ2lzdGVycyBmb3IgR1QgKi8KPj4+ICAgICNkZWZpbmUg Q0hWX0ZVU0VfR1QJCQkoVkxWX0RJU1BMQVlfQkFTRSArIDB4MjE2OCkKPj4+ICAgICNkZWZpbmUg ICBDSFZfRkdUX0RJU0FCTEVfU1MwCQkoMSA8PCAxMCkKPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xy Yy5jCj4+PiBpbmRleCA2NjQ0NTVjLi4yODE5OGM0IDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2xyYy5jCj4+PiBAQCAtMTIxNSwxMSArMTIxNSw2NSBAQCBzdGF0aWMgaW50IGdlbjhfaW5p dF9wZXJjdHhfYmIoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKPj4+ICAgIAkJCSAgICAg ICB1aW50MzJfdCAqY29uc3QgYmF0Y2gsCj4+PiAgICAJCQkgICAgICAgdWludDMyX3QgKm9mZnNl dCkKPj4+ICAgIHsKPj4+ICsJdWludDMyX3Qgc2NyYXRjaF9hZGRyOwo+Pj4gICAgCXVpbnQzMl90 IGluZGV4ID0gd2FfY3R4X3N0YXJ0KHdhX2N0eCwgKm9mZnNldCwgQ0FDSEVMSU5FX0RXT1JEUyk7 Cj4+Pgo+Pj4gKwkvKiBBY3R1YWwgc2NyYXRjaCBsb2NhdGlvbiBpcyBhdCAxMjggYnl0ZXMgb2Zm c2V0ICovCj4+PiArCXNjcmF0Y2hfYWRkciA9IHJpbmctPnNjcmF0Y2guZ3R0X29mZnNldCArIDIq Q0FDSEVMSU5FX0JZVEVTOwo+Pj4gKwlzY3JhdGNoX2FkZHIgfD0gUElQRV9DT05UUk9MX0dMT0JB TF9HVFQ7Cj4+PiArCj4+PiAgICAJLyogV2FEaXNhYmxlQ3R4UmVzdG9yZUFyYml0cmF0aW9uOmJk dyxjaHYgKi8KPj4+ICAgIAl3YV9jdHhfZW1pdChiYXRjaCwgTUlfQVJCX09OX09GRiB8IE1JX0FS Ql9FTkFCTEUpOwo+Pj4KPj4+ICsJLyoKPj4+ICsJICogQXMgcGVyIEJzcGVjLCB0byB3b3JrYXJv dW5kIGEga25vd24gSFcgaXNzdWUsIFNXIG11c3QgcGVyZm9ybSB0aGUKPj4+ICsJICogYmVsb3cg cHJvZ3JhbW1pbmcgc2VxdWVuY2UgcHJpb3IgdG8gcHJvZ3JhbW1pbmcgTUlfQkFUQ0hfQlVGRkVS X0VORC4KPj4+ICsJICoKPj4+ICsJICogVGhpcyBpcyBvbmx5IGFwcGxpY2FibGUgZm9yIEdlbjgu Cj4+PiArCSAqLwo+Pj4gKwo+Pj4gKwkvKiBXYVJzUmVzdG9yZVdpdGhQZXJDdHh0QmI6YmR3LGNo diAqLwo+Pgo+PiBUaGlzIHcvYSBkb2Vzbid0IHNlZW0gdG8gYmUgbmVlZGVkIGZvciBDSFYuIEFs c28gQkRXIHNlZW1zIHRvIGhhdmUKPj4gZ2FpbmVkIGEgY2hpY2tlbiBiaXQgaW4gSDAgKEZGX1NM SUNFX0NTX0NISUNLRU4zWzVdKSB0aGF0IHN1cHBvc2VkbHkKPj4gbWVhbnMgd2Ugc2hvdWxkbid0 IG5lZWQgdGhpcyB3L2Egb24gQkRXIGVpdGhlci4KPj4KPiBsb29rcyBsaWtlIHRoaXMgY2hpY2tl biBiaXQgaXMgYXBwbHlpbmcgdGhpcyBXQSwgaWYgdGhpcyBpcyB3b3JraW5nIGFzCj4gZXhwZWN0 ZWQgdGhlbiB3ZSBjYW4gaWdub3JlIHRoaXMgcGF0Y2gsIEkgd2lsbCB0cnkgdG8gZ2V0IHNvbWUK PiBjb25maXJtYXRpb24gb24gdGhpcy4KCkkgZ290IGNvbmZpcm1hdGlvbiBmcm9tIEhXIHRoYXQg Y2hpY2tlbiBiaXQgaXMgZW5vdWdoLCB0aGlzIHBhdGNoIGNhbiBiZSAKaWdub3JlZC4KCnJlZ2Fy ZHMKQXJ1bgoKPgo+IHJlZ2FyZHMKPiBBcnVuCj4KPj4+ICsJd2FfY3R4X2VtaXQoYmF0Y2gsIE1J X0xPQURfUkVHSVNURVJfSU1NKDEpKTsKPj4+ICsJd2FfY3R4X2VtaXQoYmF0Y2gsIElOU1RQTSk7 Cj4+PiArCXdhX2N0eF9lbWl0KGJhdGNoLCBfTUFTS0VEX0JJVF9ESVNBQkxFKElOU1RQTV9GT1JD RV9PUkRFUklORykpOwo+Pj4gKwo+Pj4gKwl3YV9jdHhfZW1pdChiYXRjaCwgKE1JX0FUT01JQyg1 KSB8Cj4+PiArCQkJICAgIE1JX0FUT01JQ19NRU1PUllfVFlQRV9HR1RUIHwKPj4+ICsJCQkgICAg TUlfQVRPTUlDX0lOTElORV9EQVRBIHwKPj4+ICsJCQkgICAgTUlfQVRPTUlDX0NTX1NUQUxMIHwK Pj4+ICsJCQkgICAgTUlfQVRPTUlDX1JFVFVSTl9EQVRBX0NUTCB8Cj4+PiArCQkJICAgIE1JX0FU T01JQ19NT1ZFKSk7Cj4+PiArCXdhX2N0eF9lbWl0KGJhdGNoLCBzY3JhdGNoX2FkZHIpOwo+Pj4g Kwl3YV9jdHhfZW1pdChiYXRjaCwgMCk7Cj4+PiArCXdhX2N0eF9lbWl0KGJhdGNoLCBfTUFTS0VE X0JJVF9FTkFCTEUoSU5TVFBNX0ZPUkNFX09SREVSSU5HKSk7Cj4+PiArCXdhX2N0eF9lbWl0KGJh dGNoLCBfTUFTS0VEX0JJVF9FTkFCTEUoSU5TVFBNX0ZPUkNFX09SREVSSU5HKSk7Cj4+PiArCj4+ PiArCS8qCj4+PiArCSAqIEJTcGVjIHNheXMgTUlfTE9BRF9SRUdJU1RFUl9NRU0sIE1JX0xPQURf UkVHSVNURVJfUkVHIGFuZAo+Pj4gKwkgKiBNSV9CQVRDSF9CVUZGRVJfRU5EIGluc3RydWN0aW9u cyBpbiB0aGlzIHNlcXVlbmNlIG5lZWQgdG8gYmUKPj4+ICsJICogaW4gdGhlIHNhbWUgY2FjaGVs aW5lLiBUbyBzYXRpc2Z5IHRoaXMgY2FzZSBldmVuIGlmIG1vcmUgV0EgYXJlCj4+PiArCSAqIGFk ZGVkIGluIGZ1dHVyZSwgcGFkIGN1cnJlbnQgY2FjaGVsaW5lIGFuZCBzdGFydCByZW1haW5pbmcg c2VxdWVuY2UKPj4+ICsJICogaW4gbmV3IGNhY2hlbGluZS4KPj4+ICsJICovCj4+PiArCXdoaWxl IChpbmRleCAlIENBQ0hFTElORV9EV09SRFMpCj4+PiArCQl3YV9jdHhfZW1pdChiYXRjaCwgTUlf Tk9PUCk7Cj4+PiArCj4+PiArCXdhX2N0eF9lbWl0KGJhdGNoLCAoTUlfTE9BRF9SRUdJU1RFUl9N RU1fR0VOOCB8Cj4+PiArCQkJICAgIE1JX0xSTV9VU0VfR0xPQkFMX0dUVCB8Cj4+PiArCQkJICAg IE1JX0xSTV9BU1lOQ19NT0RFX0VOQUJMRSkpOwo+Pj4gKwl3YV9jdHhfZW1pdChiYXRjaCwgSU5T VFBNKTsKPj4+ICsJd2FfY3R4X2VtaXQoYmF0Y2gsIHNjcmF0Y2hfYWRkcik7Cj4+PiArCXdhX2N0 eF9lbWl0KGJhdGNoLCAwKTsKPj4+ICsKPj4+ICsJLyoKPj4+ICsJICogQlNwZWMgc2F5cyB0aGVy ZSBzaG91bGQgbm90IGJlIGFueSBjb21tYW5kcyBwcm9ncmFtbWVkCj4+PiArCSAqIGJldHdlZW4g TUlfTE9BRF9SRUdJU1RFUl9SRUcgYW5kIE1JX0JBVENIX0JVRkZFUl9FTkQgc28KPj4+ICsJICog ZG8gbm90IGFkZCBhbnkgbmV3IGNvbW1hbmRzCj4+PiArCSAqLwo+Pj4gKwl3YV9jdHhfZW1pdChi YXRjaCwgTUlfTE9BRF9SRUdJU1RFUl9SRUcpOwo+Pj4gKwl3YV9jdHhfZW1pdChiYXRjaCwgR0VO OF9SU19QUkVFTVBUX1NUQVRVUyk7Cj4+PiArCXdhX2N0eF9lbWl0KGJhdGNoLCBHRU44X1JTX1BS RUVNUFRfU1RBVFVTKTsKPj4+ICsKPj4+ICAgIAl3YV9jdHhfZW1pdChiYXRjaCwgTUlfQkFUQ0hf QlVGRkVSX0VORCk7Cj4+Pgo+Pj4gICAgCXJldHVybiB3YV9jdHhfZW5kKHdhX2N0eCwgKm9mZnNl dCA9IGluZGV4LCAxKTsKPj4+IC0tCj4+PiAyLjMuMAo+Pj4KPj4+IF9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4+PiBJbnRlbC1nZnggbWFpbGluZyBsaXN0 Cj4+PiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4+PiBodHRwOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cj4+Cj4KPiBfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IEludGVsLWdmeCBtYWlsaW5n IGxpc3QKPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cDovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo+CgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0 CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=