From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Lis, Tomasz" Subject: Re: [PATCH v1] drm/i915/gen11: Preempt-to-idle support in execlists. Date: Fri, 30 Mar 2018 17:42:02 +0200 Message-ID: <5ae13cf3-f96c-7bd5-9d66-2fa6b5c3e433@intel.com> References: <1522163879-10837-1-git-send-email-tomasz.lis@intel.com> <152219323026.10679.15841903313103368914@mail.alporthouse.com> <9a0aefb3-12cb-2614-d8fb-1d069719b9aa@intel.com> <152227609116.10679.12481725029029254564@mail.alporthouse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id B39346E8F2 for ; Fri, 30 Mar 2018 15:42:04 +0000 (UTC) In-Reply-To: <152227609116.10679.12481725029029254564@mail.alporthouse.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: Chris Wilson , intel-gfx@lists.freedesktop.org Cc: mika.kuoppala@intel.com List-Id: intel-gfx@lists.freedesktop.org CgpPbiAyMDE4LTAzLTI5IDAwOjI4LCBDaHJpcyBXaWxzb24gd3JvdGU6Cj4gUXVvdGluZyBMaXMs IFRvbWFzeiAoMjAxOC0wMy0yOCAxNzowNjo1OCkKPj4KPj4gT24gMjAxOC0wMy0yOCAwMToyNywg Q2hyaXMgV2lsc29uIHdyb3RlOgo+Pj4gUXVvdGluZyBUb21hc3ogTGlzICgyMDE4LTAzLTI3IDE2 OjE3OjU5KQo+Pj4+IFRoZSBwYXRjaCBhZGRzIHN1cHBvcnQgb2YgcHJlZW1wdC10by1pZGxlIHJl cXVlc3RpbmcgYnkgc2V0dGluZyBhIHByb3Blcgo+Pj4+IGJpdCB3aXRoaW4gRXhlY2xpc3QgQ29u dHJvbCBSZWdpc3RlciwgYW5kIHJlY2VpdmluZyBwcmVlbXB0aW9uIHJlc3VsdCBmcm9tCj4+Pj4g Q29udGV4dCBTdGF0dXMgQnVmZmVyLgo+Pj4+Cj4+Pj4gUHJlZW1wdGlvbiBpbiBwcmV2aW91cyBn ZW5zIHJlcXVpcmVkIGEgc3BlY2lhbCBiYXRjaCBidWZmZXIgdG8gYmUgZXhlY3V0ZWQsCj4+Pj4g c28gdGhlIENvbW1hbmQgU3RyZWFtZXIgbmV2ZXIgcHJlZW1wdGVkIHRvIGlkbGUgZGlyZWN0bHku IEluIEljZWxha2UgaXQgaXMKPj4+PiBwb3NzaWJsZSwgYXMgdGhlcmUgaXMgYSBoYXJkd2FyZSBt ZWNoYW5pc20gdG8gaW5mb3JtIHRoZSBrZXJuZWwgYWJvdXQKPj4+PiBzdGF0dXMgb2YgdGhlIHBy ZWVtcHRpb24gcmVxdWVzdC4KPj4+Pgo+Pj4+IFRoaXMgcGF0Y2ggZG9lcyBub3QgY292ZXIgdXNp bmcgdGhlIG5ldyBwcmVlbXB0aW9uIG1lY2hhbmlzbSB3aGVuIEd1QyBpcwo+Pj4+IGFjdGl2ZS4K Pj4+Pgo+Pj4+IEJzcGVjOiAxODkyMgo+Pj4+IFNpZ25lZC1vZmYtYnk6IFRvbWFzeiBMaXMgPHRv bWFzei5saXNAaW50ZWwuY29tPgo+Pj4+IC0tLQo+Pj4+ICAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmggICAgICAgICAgfCAgMiArKwo+Pj4+ICAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfcGNpLmMgICAgICAgICAgfCAgMyArKy0KPj4+PiAgICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kZXZpY2VfaW5mby5oIHwgIDEgKwo+Pj4+ICAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2xyYy5jICAgICAgICAgfCA0NSArKysrKysrKysrKysrKysrKysrKysrKysrKystLS0t LQo+Pj4+ICAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5oICAgICAgICAgfCAgMSAr Cj4+Pj4gICAgNSBmaWxlcyBjaGFuZ2VkLCA0NSBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygt KQo+Pj4+Cj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2Lmgg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4+Pj4gaW5kZXggODAwMjMwYi4uYzMy NTgwYiAxMDA2NDQKPj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4+ Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+Pj4+IEBAIC0yNTE0LDYg KzI1MTQsOCBAQCBpbnRlbF9pbmZvKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdikKPj4+PiAgICAgICAgICAgICAgICAgICAoKGRldl9wcml2KS0+aW5mby5oYXNfbG9naWNh bF9yaW5nX2Vsc3EpCj4+Pj4gICAgI2RlZmluZSBIQVNfTE9HSUNBTF9SSU5HX1BSRUVNUFRJT04o ZGV2X3ByaXYpIFwKPj4+PiAgICAgICAgICAgICAgICAgICAoKGRldl9wcml2KS0+aW5mby5oYXNf bG9naWNhbF9yaW5nX3ByZWVtcHRpb24pCj4+Pj4gKyNkZWZpbmUgSEFTX0hXX1BSRUVNUFRfVE9f SURMRShkZXZfcHJpdikgXAo+Pj4+ICsgICAgICAgICAgICAgICAoKGRldl9wcml2KS0+aW5mby5o YXNfaHdfcHJlZW1wdF90b19pZGxlKQo+Pj4+ICAgIAo+Pj4+ICAgICNkZWZpbmUgSEFTX0VYRUNM SVNUUyhkZXZfcHJpdikgSEFTX0xPR0lDQUxfUklOR19DT05URVhUUyhkZXZfcHJpdikKPj4+PiAg ICAKPj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wY2kuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGNpLmMKPj4+PiBpbmRleCA0MzY0OTIyLi42NmI2NzAw IDEwMDY0NAo+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGNpLmMKPj4+PiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BjaS5jCj4+Pj4gQEAgLTU5NSw3ICs1OTUs OCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RldmljZV9pbmZvIGludGVsX2Nhbm5vbmxh a2VfaW5mbyA9IHsKPj4+PiAgICAgICAgICAgR0VOKDExKSwgXAo+Pj4+ICAgICAgICAgICAuZGRi X3NpemUgPSAyMDQ4LCBcCj4+Pj4gICAgICAgICAgIC5oYXNfY3NyID0gMCwgXAo+Pj4+IC0gICAg ICAgLmhhc19sb2dpY2FsX3JpbmdfZWxzcSA9IDEKPj4+PiArICAgICAgIC5oYXNfbG9naWNhbF9y aW5nX2Vsc3EgPSAxLCBcCj4+Pj4gKyAgICAgICAuaGFzX2h3X3ByZWVtcHRfdG9faWRsZSA9IDEK Pj4+PiAgICAKPj4+PiAgICBzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RldmljZV9pbmZvIGlu dGVsX2ljZWxha2VfMTFfaW5mbyA9IHsKPj4+PiAgICAgICAgICAgR0VOMTFfRkVBVFVSRVMsCj4+ Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RldmljZV9pbmZvLmgg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZXZpY2VfaW5mby5oCj4+Pj4gaW5kZXggOTMz ZTMxNi4uNGViOTdiNSAxMDA2NDQKPj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kZXZpY2VfaW5mby5oCj4+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGV2 aWNlX2luZm8uaAo+Pj4+IEBAIC05OCw2ICs5OCw3IEBAIGVudW0gaW50ZWxfcGxhdGZvcm0gewo+ Pj4+ICAgICAgICAgICBmdW5jKGhhc19sb2dpY2FsX3JpbmdfY29udGV4dHMpOyBcCj4+Pj4gICAg ICAgICAgIGZ1bmMoaGFzX2xvZ2ljYWxfcmluZ19lbHNxKTsgXAo+Pj4+ICAgICAgICAgICBmdW5j KGhhc19sb2dpY2FsX3JpbmdfcHJlZW1wdGlvbik7IFwKPj4+PiArICAgICAgIGZ1bmMoaGFzX2h3 X3ByZWVtcHRfdG9faWRsZSk7IFwKPj4+PiAgICAgICAgICAgZnVuYyhoYXNfb3ZlcmxheSk7IFwK Pj4+PiAgICAgICAgICAgZnVuYyhoYXNfcG9vbGVkX2V1KTsgXAo+Pj4+ICAgICAgICAgICBmdW5j KGhhc19wc3IpOyBcCj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2xyYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKPj4+PiBpbmRleCBiYTdm NzgzLi4xYTIyZGU0IDEwMDY0NAo+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2xyYy5jCj4+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKPj4+PiBA QCAtMTUzLDYgKzE1Myw3IEBACj4+Pj4gICAgI2RlZmluZSBHRU44X0NUWF9TVEFUVVNfQUNUSVZF X0lETEUgICAgKDEgPDwgMykKPj4+PiAgICAjZGVmaW5lIEdFTjhfQ1RYX1NUQVRVU19DT01QTEVU RSAgICAgICAoMSA8PCA0KQo+Pj4+ICAgICNkZWZpbmUgR0VOOF9DVFhfU1RBVFVTX0xJVEVfUkVT VE9SRSAgICgxIDw8IDE1KQo+Pj4+ICsjZGVmaW5lIEdFTjExX0NUWF9TVEFUVVNfUFJFRU1QVF9J RExFICAoMSA8PCAyOSkKPj4+PiAgICAKPj4+PiAgICAjZGVmaW5lIEdFTjhfQ1RYX1NUQVRVU19D T01QTEVURURfTUFTSyBcCj4+Pj4gICAgICAgICAgICAoR0VOOF9DVFhfU1RBVFVTX0NPTVBMRVRF IHwgR0VOOF9DVFhfU1RBVFVTX1BSRUVNUFRFRCkKPj4+PiBAQCAtMTgzLDcgKzE4NCw5IEBAIHN0 YXRpYyBpbmxpbmUgYm9vbCBuZWVkX3ByZWVtcHQoY29uc3Qgc3RydWN0IGludGVsX2VuZ2luZV9j cyAqZW5naW5lLAo+Pj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBz dHJ1Y3QgaTkxNV9yZXF1ZXN0ICpsYXN0LAo+Pj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpbnQgcHJpbykKPj4+PiAgICB7Cj4+Pj4gLSAgICAgICByZXR1cm4gZW5naW5lLT5p OTE1LT5wcmVlbXB0X2NvbnRleHQgJiYgcHJpbyA+IG1heChycV9wcmlvKGxhc3QpLCAwKTsKPj4+ PiArICAgICAgIHJldHVybiAoZW5naW5lLT5pOTE1LT5wcmVlbXB0X2NvbnRleHQgfHwKPj4+PiAr ICAgICAgICAgICAgICAgSEFTX0hXX1BSRUVNUFRfVE9fSURMRShlbmdpbmUtPmk5MTUpKSAmJgo+ Pj4gV2VsbCwgeW91IGhhdmVuJ3QgYWN0dWFsbHkgZGlzYWJsZWQgYWxsb2NhdGluZyB0aGUgcHJl ZW1wdF9jb250ZXh0IHNvLi4uCj4+IFllcy4uIEkgaGFkIG1peGVkIGZlZWxpbmdzIGFib3V0IGNo YW5naW5nIG5lZWRzX3ByZWVtcHRfY29udGV4dCgpIG5vdywKPj4gYXMgdGhhdCB3b3VsZCBtZWFu IGFkZGluZyBhIHRlbXBvcmFyeSBjb25kaXRpb24gb24gR3VDIHVudGlsIHRoZSBHdUMKPj4gcHJl ZW1wdGlvbiBpcyBtZXJnZWQuCj4+IEkgd2lsbCBhZGQgdGhlIGNvbmRpdGlvbnMgYW5kIGRpc2Fi bGUgdGhlIGFsbG9jYXRpb24gaW4gdjIgb2YgdGhlIHBhdGNoLgo+Pj4gQnV0IGF0IGFueSByYXRl LCBtYWtpbmcgdGhpcyBhbiBlbmdpbmUtPmZsYWcgd291bGQgZWxpbWluYXRlIG9uZSBwb2ludGVy Cj4+PiBkYW5jZS4KPj4gQ291bGQgYmUgYW4gaW50ZXJlc3RpbmcgaWRlYSBmb3IgYSBzZXBhcmF0 ZSBwYXRjaC4KPiBUbyBsYW5kIGZpcnN0IDspCjopClN1cmUsIEkgY2FuIGRvIHRoYXQuCj4+Pj4g KyAgICAgICAgICAgICAgICBwcmlvID4gbWF4KHJxX3ByaW8obGFzdCksIDApOwo+Pj4+ICAgIH0K Pj4+PiAgICAKPj4+PiAgICAvKioKPj4+PiBAQCAtNTM1LDYgKzUzOCwyNSBAQCBzdGF0aWMgdm9p ZCBpbmplY3RfcHJlZW1wdF9jb250ZXh0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkK Pj4+PiAgICAgICAgICAgZXhlY2xpc3RzX3NldF9hY3RpdmUoJmVuZ2luZS0+ZXhlY2xpc3RzLCBF WEVDTElTVFNfQUNUSVZFX1BSRUVNUFQpOwo+Pj4+ICAgIH0KPj4+PiAgICAKPj4+PiArc3RhdGlj IHZvaWQgZ2VuMTFfcHJlZW1wdF90b19pZGxlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2lu ZSkKPj4+PiArewo+Pj4+ICsgICAgICAgc3RydWN0IGludGVsX2VuZ2luZV9leGVjbGlzdHMgKmV4 ZWNsaXN0cyA9ICZlbmdpbmUtPmV4ZWNsaXN0czsKPj4+PiArCj4+Pj4gKyAgICAgICBHRU1fVFJB Q0UoIiVzXG4iLCBlbmdpbmUtPm5hbWUpOwo+Pj4+ICsKPj4+PiArICAgICAgIC8qCj4+Pj4gKyAg ICAgICAgKiBoYXJkd2FyZSB3aGljaCBIQVNfSFdfUFJFRU1QVF9UT19JRExFKCksIGFsd2F5cyBh bHNvCj4+Pj4gKyAgICAgICAgKiBIQVNfTE9HSUNBTF9SSU5HX0VMU1EoKSwgc28gd2UgY2FuIGFz c3VtZSBjdHJsX3JlZyBpcyBzZXQKPj4+PiArICAgICAgICAqLwo+Pj4+ICsgICAgICAgR0VNX0JV R19PTihleGVjbGlzdHMtPmN0cmxfcmVnICE9IE5VTEwpOwo+Pj4+ICsKPj4+PiArICAgICAgIC8q IHRyaWdnZXIgcHJlZW1wdGlvbiB0byBpZGxlICovCj4+Pj4gKyAgICAgICB3cml0ZWwoRUxfQ1RS TF9QUkVFTVBUX1RPX0lETEUsIGV4ZWNsaXN0cy0+Y3RybF9yZWcpOwo+Pj4gRnV0dXJlIHBsYW5z PyBCZWNhdXNlIGp1c3QgaW5zZXJ0aW5nIHRoZSBicmFuY2ggaW50byB0aGUgc2V0dGVyIG9mCj4+ PiBpbmplY3RfcHJlZW1wdF9jb250ZXh0KCkgcmVzb2x2ZXMgYSBsb3Qgb2YgY29uZmxpY3RzIHdp dGggb3RoZXIgd29yay4KPj4gTXkgYXJndW1lbnRzIGZvciBzZXBhcmF0ZSBmdW5jdGlvbiBhcmU6 Cj4+IC0gYmV0dGVyIGNvZGUgcmVhZGFiaWxpdHkKPj4gLSBrZWVwaW5nIHRoZSBzeW1tZXRyeSBi ZXR3ZWVuIGV4ZWNsaXN0IGFuZCBHdUMgZmxvdyAtIEd1QyBwcmVlbXB0aW9uCj4+IHBhdGNoZXMg d2lsbCBpbnRyb2R1Y2Ugc2VwYXJhdGUgZnVuY3Rpb24gYXMgd2VsbAo+PiAtIG9ubHkgNCBsaW5l cyBvZiB0aGUgZnVuY3Rpb24gd291bGQgYmUgY29tbW9uCj4+IC0gdGhlIG5hbWUgaW5qZWN0X3By ZWVtcHRfY29udGV4dCgpIHdvdWxkbid0IG1hdGNoIHRoZSBuZXcgcHVycG9zZSwgc28KPj4gcmVu YW1pbmcgd291bGQgYmUgbmVlZGVkCj4+IC0gcmVkdWNlZCBzZWxmLWRvY3VtZW50aW5nIGNvZGUg ZHVlIHRvIHR3byBzZXBhcmF0ZSBwcmVlbXB0IG1ldGhvZHMgbm90Cj4+IGhhdmluZyBkaXN0aW5j dCBuYW1lcwo+Pgo+PiBUaGF0J3MgYWxsLCBJIGRvbid0IGhhdmUgYW55IGZ1dHVyZSBwbGFucyBm b3IgaXQuIElmIHlvdSB3YW50IG1lIHRvCj4+IG1lcmdlIHRoZSB0d28sIGxldCBtZSBrbm93Lgo+ IFRoZSBwcm9ibGVtIHRoYXQgSSBhbSB3b3JyeWluZyBhYm91dCBpcyB0aGF0IHdlIHdpbGwgZHVw bGljYXRlIGJ1bmNoIG9mCj4gb3RoZXIgY29kZSwgdGhlIGFjdHVhbCBFTFNbUFFdIHdyaXRlIGlz IHRoZSBzbWFsbGVyIHBvcnRpb24uIFBsdXMgd2UKPiBhbHJlYWR5IGhhdmUgdGhlIGJyYW5jaCBv biBzb21ldGhpbmcgbXVjaCBtb3JlIHBsZWFzYW50LgpJIHNlZS4gSSBkb24ndCBrbm93IGFueSBk ZXRhaWxzIHRoZXJlLCBzbyBJJ20gbm90IGFibGUgdG8gd2VpZ2ggdGhhdC4KSnVzdCBsZXQgbWUg a25vdyB3aGV0aGVyIHRoaXMgcG9zc2libGUgZHVwbGljYXRpb24gb3V0d2VpZ2h0cyB0aGUgCmFy Z3VtZW50cyBJIHByb3ZpZGVkLCBhbmQgSSB3aWxsIG1lcmdlIHRoZXNlIGZ1bmN0aW9ucy4KSSdt IG5vdCBvdmVybHkgYXR0YWNoZWQgdG8gbXkgc29sdXRpb24uCj4KPj4+PiBAQCAtOTYyLDEwICs5 ODcsMTMgQEAgc3RhdGljIHZvaWQgZXhlY2xpc3RzX3N1Ym1pc3Npb25fdGFza2xldCh1bnNpZ25l ZCBsb25nIGRhdGEpCj4+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Rh dHVzLCBidWZbMipoZWFkICsgMV0sCj4+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZXhlY2xpc3RzLT5hY3RpdmUpOwo+Pj4+ICAgIAo+Pj4+IC0gICAgICAgICAgICAgICAg ICAgICAgIGlmIChzdGF0dXMgJiAoR0VOOF9DVFhfU1RBVFVTX0lETEVfQUNUSVZFIHwKPj4+PiAt ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdFTjhfQ1RYX1NUQVRVU19QUkVF TVBURUQpKQo+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgIC8qIENoZWNrIGlmIHN3aXRjaGVk IHRvIGFjdGl2ZSBvciBwcmVlbXB0ZWQgdG8gYWN0aXZlICovCj4+Pj4gKyAgICAgICAgICAgICAg ICAgICAgICAgaWYgKChzdGF0dXMgJiAoR0VOOF9DVFhfU1RBVFVTX0lETEVfQUNUSVZFIHwKPj4+ PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0VOOF9DVFhfU1RBVFVT X1BSRUVNUFRFRCkpICYmCj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICEoc3RhdHVz ICYgR0VOMTFfQ1RYX1NUQVRVU19QUkVFTVBUX0lETEUpKQo+Pj4gU2V0dGluZyBIV0FDSyBoZXJl IGlzIGhhcm1sZXNzIGFzIGl0IGdldHMgY2xlYXJlZCBhZ2Fpbi4gVW5sZXNzLCB0aGVyZQo+Pj4g aXMgc29tZSBvZGRpdHkgaW4gdGhlIGNvZGUgZmxvdy4KPj4gSSB3aWxsIGNoZWNrIGlmIGxhY2sg b2YgdGhlIGNoYW5nZSBhZmZlY3RzIHRlc3QgcmVzdWx0cy4KPj4gUGVyc29uYWxseSwgSSB3b3Vs ZCBrZWVwIHRoaXMgY2hhbmdlLCBldmVuIGlmIG9ubHkgZm9yIGFsbG93aW5nIHNpbXBsZQo+PiBk ZWZpbml0aW9uIG9mIHdoYXQgSFdBQ0sgZmxhZyBtZWFucy4KPiBUaGUgc2ltcGxlIGRlZmluaXRp b24gaXMgdGhlIG9wcG9zaXRlIG9uZSwgaW1vLiBXZSBzZXQgdGhlIGZsYWcgYWZ0ZXIgd2UKPiBn ZXQgdGhlIGNvcnJlc3BvbmRpbmcgcmVzcG9uc2UgZnJvbSBIVzsgYW55IHByZWVtcHRpb24gb3Ig YWN0aXZhdGUgZXZlbnQKPiBtdXN0IGZvbGxvdyB0aGUgbW9zdCByZWNlbnQgRUxTUCB3cml0ZS4g U28gdGhhdCB3aWxsIGluY2x1ZGUgdGhlCj4gcHJlZW1wdGlvbiBldmVudCBmb2xsb3dpbmcgdGhl IHByZWVtcHQtaWRsZSB3cml0ZS4KPgo+IFRoZW4gb24gZGVjaWRpbmcgdGhhdCB0aGUgSFcgaXMg aWRsZSwgd2UgYXBwbHkgdGhlIGNvbXBsaWNhdGlvbiBzdWNoCj4gdGhhdCBleGVjbGlzdHMtPmFj dGl2ZSA9PSAwLiAoVGhhdCBydWxlIGlzIHdoYXQgYnJlYWtzIHRoZSBwYXR0ZXJuLikKPiAtQ2hy aXMKT2ssIEkgd2lsbCByZW1vdmUgdGhpcyB1bm5lY2Vzc2FyeSBjb25kaXRpb24uCkkgdGVzdGVk IHRoaXMgYW5kIGxhY2sgb2YgaXQgZG9lc24ndCBzZWVtIHRvIGFmZmVjdCB0aGUgcmVzdWx0cy4K KEknbGwgYmUgb3V0IG5leHQgd2VlazsgZXhwZWN0IHYyIHdoZW4gSSdtIGJhY2spCi1Ub21hc3oK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdm eCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=