From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 1/5] drm/i915: Enable edp psr error interrupts on hsw Date: Thu, 22 Mar 2018 13:33:10 +0200 Message-ID: <20180322113310.GH5453@intel.com> References: <20180320224151.6009-1-dhinakaran.pandiyan@intel.com> <20180320224151.6009-2-dhinakaran.pandiyan@intel.com> <20180321185913.GA5453@intel.com> <1521661444.19788.9.camel@dk-H97M-D3H> <20180321192944.GB5453@intel.com> <1521683012.19788.40.camel@dk-H97M-D3H> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id 43A046EBD4 for ; Thu, 22 Mar 2018 11:33:40 +0000 (UTC) Content-Disposition: inline In-Reply-To: <1521683012.19788.40.camel@dk-H97M-D3H> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Pandiyan, Dhinakaran" Cc: "daniel.vetter@ffwll.ch" , "Vetter, Daniel" , "intel-gfx@lists.freedesktop.org" , "Vivi, Rodrigo" List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBNYXIgMjIsIDIwMTggYXQgMDE6MTk6MTlBTSArMDAwMCwgUGFuZGl5YW4sIERoaW5h a2FyYW4gd3JvdGU6Cj4gCj4gCj4gCj4gT24gV2VkLCAyMDE4LTAzLTIxIGF0IDIxOjI5ICswMjAw LCBWaWxsZSBTeXJqw6Rsw6Qgd3JvdGU6Cj4gPiBPbiBXZWQsIE1hciAyMSwgMjAxOCBhdCAwNzox OTo1M1BNICswMDAwLCBQYW5kaXlhbiwgRGhpbmFrYXJhbiB3cm90ZToKPiA+ID4gCj4gPiA+IAo+ ID4gPiAKPiA+ID4gT24gV2VkLCAyMDE4LTAzLTIxIGF0IDIwOjU5ICswMjAwLCBWaWxsZSBTeXJq w6Rsw6Qgd3JvdGU6Cj4gPiA+ID4gT24gVHVlLCBNYXIgMjAsIDIwMTggYXQgMDM6NDE6NDdQTSAt MDcwMCwgRGhpbmFrYXJhbiBQYW5kaXlhbiB3cm90ZToKPiA+ID4gPiA+IEZyb206IERhbmllbCBW ZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+Cj4gPiA+ID4gPiAKPiA+ID4gPiA+IFRoZSBk ZWZpbml0aW9ucyBmb3IgdGhlIGVycm9yIHJlZ2lzdGVyIHNob3VsZCBiZSB2YWxpZCBvbiBiZHcv c2tsIHRvbywKPiA+ID4gPiA+IGJ1dCB0aGVyZSB3ZSBoYXZlbid0IGV2ZW4gZW5hYmxlZCBERV9N SVNDIGhhbmRsaW5nIHlldC4KPiA+ID4gPiA+IAo+ID4gPiA+ID4gU29tZXdoYXQgY29uZnVzaW5n IHRoZSB0aGUgbW92ZWQgcmVnaXN0ZXIgb2Zmc2V0IG9uIGJkdyBpcyBvbmx5IGZvcgo+ID4gPiA+ ID4gdGhlIF9DVEwvX0FVWCByZWdpc3RlciwgYW5kIHRoYXQgX0lJUi9JTVIgc3RheWVkIHdoZXJl IHRoZXkgaGF2ZSBiZWVuCj4gPiA+ID4gPiBvbiBiZHcuCj4gPiA+ID4gPiAKPiA+ID4gPiA+IHYy OiBGaXhlcyBmcm9tIFZpbGxlLgo+ID4gPiA+ID4gCj4gPiA+ID4gPiB2MzogRnJvbSBESwo+ID4g PiA+ID4gICogUmViYXNlZCBvbiBkcm0tdGlwCj4gPiA+ID4gPiAgKiBSZW1vdmVkIEJEVyBJSVIg Yml0IGRlZmluaXRpb24sIGxvb2tzIGxpa2UgYW4gdW5pbnRlbnRpb25hbCBjaGFuZ2UgdGhhdAo+ ID4gPiA+ID4gc2hvdWxkIGJlIGluIHRoZSBmb2xsb3dpbmcgcGF0Y2guCj4gPiA+ID4gPiAKPiA+ ID4gPiA+IENjOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29t Pgo+ID4gPiA+ID4gQ2M6IFJvZHJpZ28gVml2aSA8cm9kcmlnby52aXZpQGludGVsLmNvbT4KPiA+ ID4gPiA+IENjOiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGludGVsLmNvbT4KPiA+ID4g PiA+IFNpZ25lZC1vZmYtYnk6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAaW50ZWwuY29t Pgo+ID4gPiA+ID4gU2lnbmVkLW9mZi1ieTogRGhpbmFrYXJhbiBQYW5kaXlhbiA8ZGhpbmFrYXJh bi5wYW5kaXlhbkBpbnRlbC5jb20+Cj4gPiA+ID4gPiAtLS0KPiA+ID4gPiA+ICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2lycS5jICB8IDM0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysKPiA+ID4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oICB8ICA4ICsr KysrKysrCj4gPiA+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcHNyLmMgfCAgMyAr Ky0KPiA+ID4gPiA+ICAzIGZpbGVzIGNoYW5nZWQsIDQ0IGluc2VydGlvbnMoKyksIDEgZGVsZXRp b24oLSkKPiA+ID4gPiA+IAo+ID4gPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfaXJxLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCj4gPiA+ID4g PiBpbmRleCA0NGVlZjM1NWUxMmMuLmU5NGE4MzViNzUxNSAxMDA2NDQKPiA+ID4gPiA+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKPiA+ID4gPiA+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKPiA+ID4gPiA+IEBAIC0yMzkyLDYgKzIzOTIsMjYgQEAg c3RhdGljIHZvaWQgaWxrX2Rpc3BsYXlfaXJxX2hhbmRsZXIoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LAo+ID4gPiA+ID4gIAkJaXJvbmxha2VfcnBzX2NoYW5nZV9pcnFfaGFuZGxl cihkZXZfcHJpdik7Cj4gPiA+ID4gPiAgfQo+ID4gPiA+ID4gIAo+ID4gPiA+ID4gK3N0YXRpYyB2 b2lkIGhzd19lZHBfcHNyX2lycV9oYW5kbGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdikKPiA+ID4gPiA+ICt7Cj4gPiA+ID4gPiArCXUzMiBlZHBfcHNyX2lpciA9IEk5MTVfUkVB RChFRFBfUFNSX0lJUik7Cj4gPiA+ID4gPiArCj4gPiA+ID4gPiArCWlmIChlZHBfcHNyX2lpciAm IEVEUF9QU1JfRVJST1IpCj4gPiA+ID4gPiArCQlEUk1fREVCVUdfS01TKCJQU1IgZXJyb3JcbiIp Owo+ID4gPiA+ID4gKwo+ID4gPiA+ID4gKwlpZiAoZWRwX3Bzcl9paXIgJiBFRFBfUFNSX1BSRV9F TlRSWSkgewo+ID4gPiA+ID4gKwkJRFJNX0RFQlVHX0tNUygiUFNSIHByZXBhcmUgZW50cnkgaW4g MiB2YmxhbmtzXG4iKTsKPiA+ID4gPiAKPiA+ID4gPiBJIGRvdWJ0IHdlIHdhbnQgdG8gaGF2ZSB0 aGUgZW50cnkvZXhpdCBpbnRlcnJ1cHRzIGdlbmVyYXRlIGFsbCB0aGlzCj4gPiA+ID4gbm9pc2Ug aW4gZG1lc2cgYWxsIHRoZSB0aW1lLiBXZSBzaG91bGQgcHJvYmFibHkgb25seSBlbmFibGUgdGhl Cj4gPiA+ID4gaW50ZXJydXB0cyBmb3IgdGVzdGluZy4gVGhlIGVycm9yIGludGVycnVwdCBJIHN1 cHBvc2Ugd2Ugd2FudCBhbHdheXMsCj4gPiA+ID4gbWlnaHQgZXZlbiB3YW50IERSTV9FUlJPUiBv biBpdC4KPiA+ID4gCj4gPiA+IEkgaW1wbGVtZW50IGRlYnVnZnMgY29udHJvbCBpbiBQYXRjaCA0 LzUsIGFncmVlZCBvbiBEUk1fRVJST1IuCj4gPiAKPiA+IFJpZ2h0LiBJdCdzIGEgYml0IGhhcmQg dG8gcmVhZCB0aGlzIHdpdGggc3R1ZmYgZ2V0dGluZwo+ID4gYWRkZWQvcmVtb3ZlL21vdmVkIG1v cmUgb3IgbGVzcyByYW5kb21seS4KPiA+IAo+ID4gPiAKPiA+ID4gPiAKPiA+ID4gPiA+ICsJCUk5 MTVfV1JJVEUoRURQX1BTUl9JTVIsIEVEUF9QU1JfUFJFX0VOVFJZKTsKPiA+ID4gPiA+ICsJfQo+ ID4gPiA+ID4gKwo+ID4gPiA+ID4gKwlpZiAoZWRwX3Bzcl9paXIgJiBFRFBfUFNSX1BPU1RfRVhJ VCkgewo+ID4gPiA+ID4gKwkJRFJNX0RFQlVHX0tNUygiUFNSIGV4aXQgY29tcGxldGVkXG4iKTsK PiA+ID4gPiA+ICsJCUk5MTVfV1JJVEUoRURQX1BTUl9JTVIsIDApOwo+ID4gPiA+ID4gKwl9Cj4g PiA+ID4gPiArCj4gPiA+ID4gPiArCUk5MTVfV1JJVEUoRURQX1BTUl9JSVIsIGVkcF9wc3JfaWly KTsKPiA+ID4gPiA+ICt9Cj4gPiA+ID4gPiArCj4gPiA+ID4gPiAgc3RhdGljIHZvaWQgaXZiX2Rp c3BsYXlfaXJxX2hhbmRsZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4g PiA+ID4gIAkJCQkgICAgdTMyIGRlX2lpcikKPiA+ID4gPiA+ICB7Cj4gPiA+ID4gPiBAQCAtMjQw NCw2ICsyNDI0LDkgQEAgc3RhdGljIHZvaWQgaXZiX2Rpc3BsYXlfaXJxX2hhbmRsZXIoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4gPiA+ID4gIAlpZiAoZGVfaWlyICYgREVf RVJSX0lOVF9JVkIpCj4gPiA+ID4gPiAgCQlpdmJfZXJyX2ludF9oYW5kbGVyKGRldl9wcml2KTsK PiA+ID4gPiA+ICAKPiA+ID4gPiA+ICsJaWYgKGRlX2lpciAmIERFX0VEUF9QU1JfSU5UX0hTVykK PiA+ID4gPiA+ICsJCWhzd19lZHBfcHNyX2lycV9oYW5kbGVyKGRldl9wcml2KTsKPiA+ID4gPiA+ ICsKPiA+ID4gPiA+ICAJaWYgKGRlX2lpciAmIERFX0FVWF9DSEFOTkVMX0FfSVZCKQo+ID4gPiA+ ID4gIAkJZHBfYXV4X2lycV9oYW5kbGVyKGRldl9wcml2KTsKPiA+ID4gPiA+ICAKPiA+ID4gPiA+ IEBAIC0zMjUyLDYgKzMyNzUsMTEgQEAgc3RhdGljIHZvaWQgaXJvbmxha2VfaXJxX3Jlc2V0KHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gPiA+ID4gPiAgCWlmIChJU19HRU43KGRldl9wcml2KSkK PiA+ID4gPiA+ICAJCUk5MTVfV1JJVEUoR0VON19FUlJfSU5ULCAweGZmZmZmZmZmKTsKPiA+ID4g PiA+ICAKPiA+ID4gPiA+ICsJaWYgKElTX0hBU1dFTEwoZGV2X3ByaXYpKSB7Cj4gPiA+ID4gPiAr CQlJOTE1X1dSSVRFKEVEUF9QU1JfSU1SLCAweGZmZmZmZmZmKTsKPiA+ID4gPiA+ICsJCUk5MTVf V1JJVEUoRURQX1BTUl9JSVIsIDB4ZmZmZmZmZmYpOwo+ID4gPiA+ID4gKwl9Cj4gPiA+ID4gPiAr Cj4gPiA+ID4gPiAgCWdlbjVfZ3RfaXJxX3Jlc2V0KGRldl9wcml2KTsKPiA+ID4gPiA+ICAKPiA+ ID4gPiA+ICAJaWJ4X2lycV9yZXNldChkZXZfcHJpdik7Cj4gPiA+ID4gPiBAQCAtMzY2Myw2ICsz NjkxLDEyIEBAIHN0YXRpYyBpbnQgaXJvbmxha2VfaXJxX3Bvc3RpbnN0YWxsKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYpCj4gPiA+ID4gPiAgCQkJICAgICAgREVfRFBfQV9IT1RQTFVHKTsKPiA+ID4g PiA+ICAJfQo+ID4gPiA+ID4gIAo+ID4gPiA+ID4gKwlpZiAoSVNfSEFTV0VMTChkZXZfcHJpdikp IHsKPiA+ID4gPiA+ICsJCWdlbjNfYXNzZXJ0X2lpcl9pc196ZXJvKGRldl9wcml2LCBFRFBfUFNS X0lJUik7Cj4gPiA+ID4gPiArCQlJOTE1X1dSSVRFKEVEUF9QU1JfSU1SLCAwKTsKPiA+ID4gPiA+ ICsJCWRpc3BsYXlfbWFzayB8PSBERV9FRFBfUFNSX0lOVF9IU1c7Cj4gPiA+ID4gPiArCX0KPiA+ ID4gPiA+ICsKPiA+ID4gPiA+ICAJZGV2X3ByaXYtPmlycV9tYXNrID0gfmRpc3BsYXlfbWFzazsK PiA+ID4gPiA+ICAKPiA+ID4gPiA+ICAJaWJ4X2lycV9wcmVfcG9zdGluc3RhbGwoZGV2KTsKPiA+ ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+ID4gPiA+ID4gaW5kZXggMWUwMDBmMzAwNGNi Li4zNDQ3ZjAzZWFjM2QgMTAwNjQ0Cj4gPiA+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3JlZy5oCj4gPiA+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3Jl Zy5oCj4gPiA+ID4gPiBAQCAtMzgyOCw2ICszODI4LDEzIEBAIGVudW0gewo+ID4gPiA+ID4gICNk ZWZpbmUgICBFRFBfUFNSX1RQMV9USU1FXzB1cwkJCSgzPDw0KQo+ID4gPiA+ID4gICNkZWZpbmUg ICBFRFBfUFNSX0lETEVfRlJBTUVfU0hJRlQJCTAKPiA+ID4gPiA+ICAKPiA+ID4gPiA+ICsvKiBC c3BlYyBjbGFpbXMgdGhvc2UgYXJlbid0IHNoaWZ0ZWQgYnV0IHN0YXkgYXQgMHg2NDgwMCAqLwo+ ID4gPiA+ID4gKyNkZWZpbmUgRURQX1BTUl9JTVIJCQkJX01NSU8oMHg2NDgzNCkKPiA+ID4gPiA+ ICsjZGVmaW5lIEVEUF9QU1JfSUlSCQkJCV9NTUlPKDB4NjQ4MzgpCj4gPiA+ID4gPiArI2RlZmlu ZSAgIEVEUF9QU1JfRVJST1IJCQkJKDE8PDIpCj4gPiA+ID4gPiArI2RlZmluZSAgIEVEUF9QU1Jf UE9TVF9FWElUCQkJKDE8PDEpCj4gPiA+ID4gPiArI2RlZmluZSAgIEVEUF9QU1JfUFJFX0VOVFJZ CQkJKDE8PDApCj4gPiA+ID4gPiArCj4gPiA+ID4gPiAgI2RlZmluZSBFRFBfUFNSX0FVWF9DVEwJ CQkJX01NSU8oZGV2X3ByaXYtPnBzcl9tbWlvX2Jhc2UgKyAweDEwKQo+ID4gPiA+ID4gICNkZWZp bmUgRURQX1BTUl9BVVhfREFUQShpKQkJCV9NTUlPKGRldl9wcml2LT5wc3JfbW1pb19iYXNlICsg MHgxNCArIChpKSAqIDQpIC8qIDUgcmVnaXN0ZXJzICovCj4gPiA+ID4gPiAgCj4gPiA+ID4gPiBA QCAtNjYyOCw2ICs2NjM1LDcgQEAgZW51bSB7Cj4gPiA+ID4gPiAgI2RlZmluZSBERV9QQ0hfRVZF TlRfSVZCCQkoMTw8MjgpCj4gPiA+ID4gPiAgI2RlZmluZSBERV9EUF9BX0hPVFBMVUdfSVZCCQko MTw8MjcpCj4gPiA+ID4gPiAgI2RlZmluZSBERV9BVVhfQ0hBTk5FTF9BX0lWQgkJKDE8PDI2KQo+ ID4gPiA+ID4gKyNkZWZpbmUgREVfRURQX1BTUl9JTlRfSFNXCQkoMTw8MTkpCj4gPiA+ID4gPiAg I2RlZmluZSBERV9TUFJJVEVDX0ZMSVBfRE9ORV9JVkIJKDE8PDE0KQo+ID4gPiA+ID4gICNkZWZp bmUgREVfUExBTkVDX0ZMSVBfRE9ORV9JVkIJCSgxPDwxMykKPiA+ID4gPiA+ICAjZGVmaW5lIERF X1BJUEVDX1ZCTEFOS19JVkIJCSgxPDwxMCkKPiA+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9wc3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bz ci5jCj4gPiA+ID4gPiBpbmRleCAzMTdjYjRhMTI2OTMuLjI3ZGZkNTA3YTRmNyAxMDA2NDQKPiA+ ID4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bzci5jCj4gPiA+ID4gPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wc3IuYwo+ID4gPiA+ID4gQEAgLTYxMyw3 ICs2MTMsOCBAQCBzdGF0aWMgdm9pZCBoc3dfcHNyX2VuYWJsZV9zb3VyY2Uoc3RydWN0IGludGVs X2RwICppbnRlbF9kcCwKPiA+ID4gPiA+ICAJCUk5MTVfV1JJVEUoRURQX1BTUl9ERUJVRywKPiA+ ID4gPiA+ICAJCQkgICBFRFBfUFNSX0RFQlVHX01BU0tfTUVNVVAgfAo+ID4gPiA+ID4gIAkJCSAg IEVEUF9QU1JfREVCVUdfTUFTS19IUEQgfAo+ID4gPiA+ID4gLQkJCSAgIEVEUF9QU1JfREVCVUdf TUFTS19MUFNQKTsKPiA+ID4gPiA+ICsJCQkgICBFRFBfUFNSX0RFQlVHX01BU0tfTFBTUCB8Cj4g PiA+ID4gPiArCQkJICAgRURQX1BTUl9ERUJVR19NQVNLX1JFR19XUklURSk7Cj4gPiA+ID4gCj4g PiA+ID4gSSBkb24ndCB0aGluayBEYW5pZWwncyBvcmlnaW5hbCBoYWQgdGhpcyBhY3R1YWxseS4g SSB0aGluayBJIGFkZGVkIGl0Cj4gPiA+ID4gYmVjYXVzZSBJIGRpZG4ndCB3YW50IG1taW8gdG8g bWVzcyB1cCBteSB0ZXN0aW5nLgo+ID4gPiAKPiA+ID4gSXQgZ2V0cyByZW1vdmVkIGluIGEgc2Vw YXJhdGUgcGF0Y2ggKDIvNSkuIFNvIEkgYXNzdW1lZCBEYW5pZWwgYWRkZWQgaXQKPiA+ID4gYW5k IHlvdSByZW1vdmVkIGl0Lgo+ID4gCj4gPiBIbW0uIFRoYXQgY291bGQgaW5kZWVkIGJlIHRoZSBj YXNlLgo+ID4gCj4gPiA+IAo+ID4gPiAKPiA+ID4gPiBJbiBnZW5lcmFsIEknZCByZWFsbHkKPiA+ ID4gPiBwcmVmZXIgdG8gbWFzayBldmVyeXRoaW5nIHNvIHRoYXQgd2UgY2FuIGJlIHN1cmUgdGhh dCB0aGUgUFNSIGV4aXRzCj4gPiA+ID4gaGFwcGVuIHdoZW4gd2Ugd2FudC9uZWVkIHRoZW0gYW5k IG5vdCByYW5kb21seSBkdWUgdG8gb3RoZXIgYWN0aXZpdHkuCj4gPiA+ID4gCj4gPiA+ID4gSWYg YW55IHJhbmRvbSBtbWlvIGNhbiBjYXVzZSBhIFBTUiBleGl0IGl0J3MgZ29pbmcgdG8gaGFyZCB0 byBwcm92ZSB0aGF0Cj4gPiA+ID4gd2UncmUgZG9pbmcgdGhlIGNvcnJlY3QgdGhpbmcuIEFsc28g c2VlbXMgcHJldHR5IHdhc3RlZnVsIGlmIGVnLiBHVAo+ID4gPiA+IGludGVycnVwdHMgY2FuIGNh dXNlIFBTUiBleGl0cyBmb3Igbm8gZ29vZCByZWFzb24uIEkgbmV2ZXIgdGVzdGVkIHRvIHNlZQo+ ID4gPiA+IHdoaWNoIHJlZ2lzdGVycyBjYXVzZSB0aGUgUFNSIGV4aXQuIFRoYXQgd291bGQgYmUg Z29vZCB0byBrbm93Lgo+ID4gPiA+IAo+ID4gPiAKPiA+ID4gVGhlIHNhbWUgYml0IG9uIFNLTCsg aXMgY2FsbGVkICJNYXNrIERpc3BsYXkgUmVnIFdyaXRlIiwgc28gaXQgZWl0aGVyCj4gPiA+IG1l YW5zCj4gPiA+IDEpIEhTVyBhbmQgQkRXIGV4aXQgb25seSBvbiBkaXNwbGF5IHJlZ2lzdGVyIHdy aXRlcyBhbmQgdGhlIGJzcGVjCj4gPiA+IGRlc2NyaXB0aW9uIGlzIGFtYmlndW91cyBvciAKPiA+ IAo+ID4gVGhlIHByb2JsZW0gaXMgdGhhdCBlZy4gc29tZSBvZiB0aGUgaW50ZXJydXB0IHJlZ2lz dGVycyBsaXZlIGluIHRoZQo+ID4gZGlzcGxheSBibG9jay4gSGVuY2UgYW55IGludGVycnVwdCBj b3VsZCBwb3RlbnRpYWxseSBjYXVzZSB0aGUgUFNSIGV4aXQuCj4gPiBBcyBjb3VsZCBhbnkgcmVn aXN0ZXIgcmVhZCB3ZSBkbyBmb3IgZGVidWcgcHVycG9zZSBldGMuIFNvIGF0IGxlYXN0IEkKPiA+ IHdvdWxkIGZlZWwgc2FmZXIgaWYgUFNSIGNhbiBiZSBtYWRlIHRvIHdvcmsgcmVsaWFibHkgd2l0 aCBtb3JlIG9yIGxlc3MKPiA+IGV2ZXJ5dGhpbmcgbWFza2VkLgo+ID4gCj4gVGhlIGlkZWEgaXMg dG8gbW92ZSB0b3dhcmRzIGhhcmR3YXJlIHRyaWdnZXJlZCBleGl0cyBzaW5jZSB0aGF0J3Mgd2hh dAo+IGlzIG5lY2Vzc2FyeSBmb3IgUFNSMiBzZWxlY3RpdmUgdXBkYXRlc1sxXS4gTW9yZSBpbXBv cnRhbnRseSwgdGhlcmUgYXJlCj4gcGxhY2VzIGluIHRoZSBkcml2ZXIgd2hlcmUgd2UgY2FuJ3Qg bWFudWFsbHkgZXhpdCBQU1Igd2l0aG91dAo+IGNpcmN1bXZlbnRpbmcgbG9ja2luZyBpc3N1ZXMg LSBmcm9tIHZibGFuayBlbmFibGUgZm9yIGluc3RhbmNlLiBSZWx5aW5nCj4gb24gaGFyZHdhcmUg dHJpZ2dlcmVkIGV4aXRzIGluIHRoZSBtb2Rlc2V0L2NvbW1pdCBwYXRoIGtlZXBzIGl0Cj4gY29u c2lzdGVudCBJTU8uCgpXaGF0J3MgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgaGFyZHdhcmUg YmVoYXZpb3VyIGJldHdlZW4gIndyaXRlIGFueQpyYW5kb20gbW1pbyB0byB0cmlnZ2VyIGFuIGV4 aXQiIHZzLiAid3JpdGUgc29tZSBzcGVjaWZpYyByZWdpc3RlciB0bwp0cmlnZ2VyIGFuIGV4aXQi LiBJIHByZXN1bWUgdGhlcmUgaXMgYSB3YXkgdG8gdHJpZ2dlciB0aGUgZXhpdApleHBsaWNpdGx5 PwoKLS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbCBPVEMKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==