From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: Re: [PATCH v1] drm/i915/gen11: Preempt-to-idle support in execlists. Date: Wed, 28 Mar 2018 23:28:11 +0100 Message-ID: <152227609116.10679.12481725029029254564@mail.alporthouse.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> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from fireflyinternet.com (mail.fireflyinternet.com [109.228.58.192]) by gabe.freedesktop.org (Postfix) with ESMTPS id CAA0D89104 for ; Wed, 28 Mar 2018 22:28:25 +0000 (UTC) In-Reply-To: <9a0aefb3-12cb-2614-d8fb-1d069719b9aa@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Lis, Tomasz" , intel-gfx@lists.freedesktop.org Cc: mika.kuoppala@intel.com List-Id: intel-gfx@lists.freedesktop.org UXVvdGluZyBMaXMsIFRvbWFzeiAoMjAxOC0wMy0yOCAxNzowNjo1OCkKPiAKPiAKPiBPbiAyMDE4 LTAzLTI4IDAxOjI3LCBDaHJpcyBXaWxzb24gd3JvdGU6Cj4gPiBRdW90aW5nIFRvbWFzeiBMaXMg KDIwMTgtMDMtMjcgMTY6MTc6NTkpCj4gPj4gVGhlIHBhdGNoIGFkZHMgc3VwcG9ydCBvZiBwcmVl bXB0LXRvLWlkbGUgcmVxdWVzdGluZyBieSBzZXR0aW5nIGEgcHJvcGVyCj4gPj4gYml0IHdpdGhp biBFeGVjbGlzdCBDb250cm9sIFJlZ2lzdGVyLCBhbmQgcmVjZWl2aW5nIHByZWVtcHRpb24gcmVz dWx0IGZyb20KPiA+PiBDb250ZXh0IFN0YXR1cyBCdWZmZXIuCj4gPj4KPiA+PiBQcmVlbXB0aW9u IGluIHByZXZpb3VzIGdlbnMgcmVxdWlyZWQgYSBzcGVjaWFsIGJhdGNoIGJ1ZmZlciB0byBiZSBl eGVjdXRlZCwKPiA+PiBzbyB0aGUgQ29tbWFuZCBTdHJlYW1lciBuZXZlciBwcmVlbXB0ZWQgdG8g aWRsZSBkaXJlY3RseS4gSW4gSWNlbGFrZSBpdCBpcwo+ID4+IHBvc3NpYmxlLCBhcyB0aGVyZSBp cyBhIGhhcmR3YXJlIG1lY2hhbmlzbSB0byBpbmZvcm0gdGhlIGtlcm5lbCBhYm91dAo+ID4+IHN0 YXR1cyBvZiB0aGUgcHJlZW1wdGlvbiByZXF1ZXN0Lgo+ID4+Cj4gPj4gVGhpcyBwYXRjaCBkb2Vz IG5vdCBjb3ZlciB1c2luZyB0aGUgbmV3IHByZWVtcHRpb24gbWVjaGFuaXNtIHdoZW4gR3VDIGlz Cj4gPj4gYWN0aXZlLgo+ID4+Cj4gPj4gQnNwZWM6IDE4OTIyCj4gPj4gU2lnbmVkLW9mZi1ieTog VG9tYXN6IExpcyA8dG9tYXN6Lmxpc0BpbnRlbC5jb20+Cj4gPj4gLS0tCj4gPj4gICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAgIHwgIDIgKysKPiA+PiAgIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfcGNpLmMgICAgICAgICAgfCAgMyArKy0KPiA+PiAgIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2RldmljZV9pbmZvLmggfCAgMSArCj4gPj4gICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9scmMuYyAgICAgICAgIHwgNDUgKysrKysrKysrKysrKysrKysrKysr KysrKysrLS0tLS0KPiA+PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5oICAgICAg ICAgfCAgMSArCj4gPj4gICA1IGZpbGVzIGNoYW5nZWQsIDQ1IGluc2VydGlvbnMoKyksIDcgZGVs ZXRpb25zKC0pCj4gPj4KPiA+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiA+PiBpbmRleCA4MDAy MzBiLi5jMzI1ODBiIDEwMDY0NAo+ID4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmgKPiA+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gPj4gQEAg LTI1MTQsNiArMjUxNCw4IEBAIGludGVsX2luZm8oY29uc3Qgc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KQo+ID4+ICAgICAgICAgICAgICAgICAgKChkZXZfcHJpdiktPmluZm8uaGFz X2xvZ2ljYWxfcmluZ19lbHNxKQo+ID4+ICAgI2RlZmluZSBIQVNfTE9HSUNBTF9SSU5HX1BSRUVN UFRJT04oZGV2X3ByaXYpIFwKPiA+PiAgICAgICAgICAgICAgICAgICgoZGV2X3ByaXYpLT5pbmZv Lmhhc19sb2dpY2FsX3JpbmdfcHJlZW1wdGlvbikKPiA+PiArI2RlZmluZSBIQVNfSFdfUFJFRU1Q VF9UT19JRExFKGRldl9wcml2KSBcCj4gPj4gKyAgICAgICAgICAgICAgICgoZGV2X3ByaXYpLT5p bmZvLmhhc19od19wcmVlbXB0X3RvX2lkbGUpCj4gPj4gICAKPiA+PiAgICNkZWZpbmUgSEFTX0VY RUNMSVNUUyhkZXZfcHJpdikgSEFTX0xPR0lDQUxfUklOR19DT05URVhUUyhkZXZfcHJpdikKPiA+ PiAgIAo+ID4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BjaS5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wY2kuYwo+ID4+IGluZGV4IDQzNjQ5MjIuLjY2YjY3 MDAgMTAwNjQ0Cj4gPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wY2kuYwo+ID4+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGNpLmMKPiA+PiBAQCAtNTk1LDcgKzU5 NSw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gaW50ZWxfY2Fubm9u bGFrZV9pbmZvID0gewo+ID4+ICAgICAgICAgIEdFTigxMSksIFwKPiA+PiAgICAgICAgICAuZGRi X3NpemUgPSAyMDQ4LCBcCj4gPj4gICAgICAgICAgLmhhc19jc3IgPSAwLCBcCj4gPj4gLSAgICAg ICAuaGFzX2xvZ2ljYWxfcmluZ19lbHNxID0gMQo+ID4+ICsgICAgICAgLmhhc19sb2dpY2FsX3Jp bmdfZWxzcSA9IDEsIFwKPiA+PiArICAgICAgIC5oYXNfaHdfcHJlZW1wdF90b19pZGxlID0gMQo+ ID4+ICAgCj4gPj4gICBzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RldmljZV9pbmZvIGludGVs X2ljZWxha2VfMTFfaW5mbyA9IHsKPiA+PiAgICAgICAgICBHRU4xMV9GRUFUVVJFUywKPiA+PiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGV2aWNlX2luZm8uaCBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RldmljZV9pbmZvLmgKPiA+PiBpbmRleCA5MzNlMzE2 Li40ZWI5N2I1IDEwMDY0NAo+ID4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rl dmljZV9pbmZvLmgKPiA+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZXZpY2Vf aW5mby5oCj4gPj4gQEAgLTk4LDYgKzk4LDcgQEAgZW51bSBpbnRlbF9wbGF0Zm9ybSB7Cj4gPj4g ICAgICAgICAgZnVuYyhoYXNfbG9naWNhbF9yaW5nX2NvbnRleHRzKTsgXAo+ID4+ICAgICAgICAg IGZ1bmMoaGFzX2xvZ2ljYWxfcmluZ19lbHNxKTsgXAo+ID4+ICAgICAgICAgIGZ1bmMoaGFzX2xv Z2ljYWxfcmluZ19wcmVlbXB0aW9uKTsgXAo+ID4+ICsgICAgICAgZnVuYyhoYXNfaHdfcHJlZW1w dF90b19pZGxlKTsgXAo+ID4+ICAgICAgICAgIGZ1bmMoaGFzX292ZXJsYXkpOyBcCj4gPj4gICAg ICAgICAgZnVuYyhoYXNfcG9vbGVkX2V1KTsgXAo+ID4+ICAgICAgICAgIGZ1bmMoaGFzX3Bzcik7 IFwKPiA+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+ID4+IGluZGV4IGJhN2Y3ODMuLjFhMjJk ZTQgMTAwNjQ0Cj4gPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKPiA+ PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+ID4+IEBAIC0xNTMsNiAr MTUzLDcgQEAKPiA+PiAgICNkZWZpbmUgR0VOOF9DVFhfU1RBVFVTX0FDVElWRV9JRExFICAgICgx IDw8IDMpCj4gPj4gICAjZGVmaW5lIEdFTjhfQ1RYX1NUQVRVU19DT01QTEVURSAgICAgICAoMSA8 PCA0KQo+ID4+ICAgI2RlZmluZSBHRU44X0NUWF9TVEFUVVNfTElURV9SRVNUT1JFICAgKDEgPDwg MTUpCj4gPj4gKyNkZWZpbmUgR0VOMTFfQ1RYX1NUQVRVU19QUkVFTVBUX0lETEUgICgxIDw8IDI5 KQo+ID4+ICAgCj4gPj4gICAjZGVmaW5lIEdFTjhfQ1RYX1NUQVRVU19DT01QTEVURURfTUFTSyBc Cj4gPj4gICAgICAgICAgIChHRU44X0NUWF9TVEFUVVNfQ09NUExFVEUgfCBHRU44X0NUWF9TVEFU VVNfUFJFRU1QVEVEKQo+ID4+IEBAIC0xODMsNyArMTg0LDkgQEAgc3RhdGljIGlubGluZSBib29s IG5lZWRfcHJlZW1wdChjb25zdCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCj4gPj4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGk5MTVfcmVxdWVz dCAqbGFzdCwKPiA+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcHJpbykK PiA+PiAgIHsKPiA+PiAtICAgICAgIHJldHVybiBlbmdpbmUtPmk5MTUtPnByZWVtcHRfY29udGV4 dCAmJiBwcmlvID4gbWF4KHJxX3ByaW8obGFzdCksIDApOwo+ID4+ICsgICAgICAgcmV0dXJuIChl bmdpbmUtPmk5MTUtPnByZWVtcHRfY29udGV4dCB8fAo+ID4+ICsgICAgICAgICAgICAgICBIQVNf SFdfUFJFRU1QVF9UT19JRExFKGVuZ2luZS0+aTkxNSkpICYmCj4gPiBXZWxsLCB5b3UgaGF2ZW4n dCBhY3R1YWxseSBkaXNhYmxlZCBhbGxvY2F0aW5nIHRoZSBwcmVlbXB0X2NvbnRleHQgc28uLi4K PiBZZXMuLiBJIGhhZCBtaXhlZCBmZWVsaW5ncyBhYm91dCBjaGFuZ2luZyBuZWVkc19wcmVlbXB0 X2NvbnRleHQoKSBub3csIAo+IGFzIHRoYXQgd291bGQgbWVhbiBhZGRpbmcgYSB0ZW1wb3Jhcnkg Y29uZGl0aW9uIG9uIEd1QyB1bnRpbCB0aGUgR3VDIAo+IHByZWVtcHRpb24gaXMgbWVyZ2VkLgo+ IEkgd2lsbCBhZGQgdGhlIGNvbmRpdGlvbnMgYW5kIGRpc2FibGUgdGhlIGFsbG9jYXRpb24gaW4g djIgb2YgdGhlIHBhdGNoLgo+ID4gQnV0IGF0IGFueSByYXRlLCBtYWtpbmcgdGhpcyBhbiBlbmdp bmUtPmZsYWcgd291bGQgZWxpbWluYXRlIG9uZSBwb2ludGVyCj4gPiBkYW5jZS4KPiBDb3VsZCBi ZSBhbiBpbnRlcmVzdGluZyBpZGVhIGZvciBhIHNlcGFyYXRlIHBhdGNoLgoKVG8gbGFuZCBmaXJz dCA7KQoKPiA+PiArICAgICAgICAgICAgICAgIHByaW8gPiBtYXgocnFfcHJpbyhsYXN0KSwgMCk7 Cj4gPj4gICB9Cj4gPj4gICAKPiA+PiAgIC8qKgo+ID4+IEBAIC01MzUsNiArNTM4LDI1IEBAIHN0 YXRpYyB2b2lkIGluamVjdF9wcmVlbXB0X2NvbnRleHQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAq ZW5naW5lKQo+ID4+ICAgICAgICAgIGV4ZWNsaXN0c19zZXRfYWN0aXZlKCZlbmdpbmUtPmV4ZWNs aXN0cywgRVhFQ0xJU1RTX0FDVElWRV9QUkVFTVBUKTsKPiA+PiAgIH0KPiA+PiAgIAo+ID4+ICtz dGF0aWMgdm9pZCBnZW4xMV9wcmVlbXB0X3RvX2lkbGUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAq ZW5naW5lKQo+ID4+ICt7Cj4gPj4gKyAgICAgICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2V4ZWNsaXN0 cyAqZXhlY2xpc3RzID0gJmVuZ2luZS0+ZXhlY2xpc3RzOwo+ID4+ICsKPiA+PiArICAgICAgIEdF TV9UUkFDRSgiJXNcbiIsIGVuZ2luZS0+bmFtZSk7Cj4gPj4gKwo+ID4+ICsgICAgICAgLyoKPiA+ PiArICAgICAgICAqIGhhcmR3YXJlIHdoaWNoIEhBU19IV19QUkVFTVBUX1RPX0lETEUoKSwgYWx3 YXlzIGFsc28KPiA+PiArICAgICAgICAqIEhBU19MT0dJQ0FMX1JJTkdfRUxTUSgpLCBzbyB3ZSBj YW4gYXNzdW1lIGN0cmxfcmVnIGlzIHNldAo+ID4+ICsgICAgICAgICovCj4gPj4gKyAgICAgICBH RU1fQlVHX09OKGV4ZWNsaXN0cy0+Y3RybF9yZWcgIT0gTlVMTCk7Cj4gPj4gKwo+ID4+ICsgICAg ICAgLyogdHJpZ2dlciBwcmVlbXB0aW9uIHRvIGlkbGUgKi8KPiA+PiArICAgICAgIHdyaXRlbChF TF9DVFJMX1BSRUVNUFRfVE9fSURMRSwgZXhlY2xpc3RzLT5jdHJsX3JlZyk7Cj4gPiBGdXR1cmUg cGxhbnM/IEJlY2F1c2UganVzdCBpbnNlcnRpbmcgdGhlIGJyYW5jaCBpbnRvIHRoZSBzZXR0ZXIg b2YKPiA+IGluamVjdF9wcmVlbXB0X2NvbnRleHQoKSByZXNvbHZlcyBhIGxvdCBvZiBjb25mbGlj dHMgd2l0aCBvdGhlciB3b3JrLgo+IE15IGFyZ3VtZW50cyBmb3Igc2VwYXJhdGUgZnVuY3Rpb24g YXJlOgo+IC0gYmV0dGVyIGNvZGUgcmVhZGFiaWxpdHkKPiAtIGtlZXBpbmcgdGhlIHN5bW1ldHJ5 IGJldHdlZW4gZXhlY2xpc3QgYW5kIEd1QyBmbG93IC0gR3VDIHByZWVtcHRpb24gCj4gcGF0Y2hl cyB3aWxsIGludHJvZHVjZSBzZXBhcmF0ZSBmdW5jdGlvbiBhcyB3ZWxsCj4gLSBvbmx5IDQgbGlu ZXMgb2YgdGhlIGZ1bmN0aW9uIHdvdWxkIGJlIGNvbW1vbgo+IC0gdGhlIG5hbWUgaW5qZWN0X3By ZWVtcHRfY29udGV4dCgpIHdvdWxkbid0IG1hdGNoIHRoZSBuZXcgcHVycG9zZSwgc28gCj4gcmVu YW1pbmcgd291bGQgYmUgbmVlZGVkCj4gLSByZWR1Y2VkIHNlbGYtZG9jdW1lbnRpbmcgY29kZSBk dWUgdG8gdHdvIHNlcGFyYXRlIHByZWVtcHQgbWV0aG9kcyBub3QgCj4gaGF2aW5nIGRpc3RpbmN0 IG5hbWVzCj4gCj4gVGhhdCdzIGFsbCwgSSBkb24ndCBoYXZlIGFueSBmdXR1cmUgcGxhbnMgZm9y IGl0LiBJZiB5b3Ugd2FudCBtZSB0byAKPiBtZXJnZSB0aGUgdHdvLCBsZXQgbWUga25vdy4KClRo ZSBwcm9ibGVtIHRoYXQgSSBhbSB3b3JyeWluZyBhYm91dCBpcyB0aGF0IHdlIHdpbGwgZHVwbGlj YXRlIGJ1bmNoIG9mCm90aGVyIGNvZGUsIHRoZSBhY3R1YWwgRUxTW1BRXSB3cml0ZSBpcyB0aGUg c21hbGxlciBwb3J0aW9uLiBQbHVzIHdlCmFscmVhZHkgaGF2ZSB0aGUgYnJhbmNoIG9uIHNvbWV0 aGluZyBtdWNoIG1vcmUgcGxlYXNhbnQuCgo+ID4+IEBAIC05NjIsMTAgKzk4NywxMyBAQCBzdGF0 aWMgdm9pZCBleGVjbGlzdHNfc3VibWlzc2lvbl90YXNrbGV0KHVuc2lnbmVkIGxvbmcgZGF0YSkK PiA+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cywgYnVmWzIqaGVh ZCArIDFdLAo+ID4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhlY2xpc3Rz LT5hY3RpdmUpOwo+ID4+ICAgCj4gPj4gLSAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXR1 cyAmIChHRU44X0NUWF9TVEFUVVNfSURMRV9BQ1RJVkUgfAo+ID4+IC0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgR0VOOF9DVFhfU1RBVFVTX1BSRUVNUFRFRCkpCj4gPj4gKyAg ICAgICAgICAgICAgICAgICAgICAgLyogQ2hlY2sgaWYgc3dpdGNoZWQgdG8gYWN0aXZlIG9yIHBy ZWVtcHRlZCB0byBhY3RpdmUgKi8KPiA+PiArICAgICAgICAgICAgICAgICAgICAgICBpZiAoKHN0 YXR1cyAmIChHRU44X0NUWF9TVEFUVVNfSURMRV9BQ1RJVkUgfAo+ID4+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBHRU44X0NUWF9TVEFUVVNfUFJFRU1QVEVEKSkgJiYK PiA+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIShzdGF0dXMgJiBHRU4xMV9DVFhfU1RB VFVTX1BSRUVNUFRfSURMRSkpCj4gPiBTZXR0aW5nIEhXQUNLIGhlcmUgaXMgaGFybWxlc3MgYXMg aXQgZ2V0cyBjbGVhcmVkIGFnYWluLiBVbmxlc3MsIHRoZXJlCj4gPiBpcyBzb21lIG9kZGl0eSBp biB0aGUgY29kZSBmbG93Lgo+IEkgd2lsbCBjaGVjayBpZiBsYWNrIG9mIHRoZSBjaGFuZ2UgYWZm ZWN0cyB0ZXN0IHJlc3VsdHMuCj4gUGVyc29uYWxseSwgSSB3b3VsZCBrZWVwIHRoaXMgY2hhbmdl LCBldmVuIGlmIG9ubHkgZm9yIGFsbG93aW5nIHNpbXBsZSAKPiBkZWZpbml0aW9uIG9mIHdoYXQg SFdBQ0sgZmxhZyBtZWFucy4KClRoZSBzaW1wbGUgZGVmaW5pdGlvbiBpcyB0aGUgb3Bwb3NpdGUg b25lLCBpbW8uIFdlIHNldCB0aGUgZmxhZyBhZnRlciB3ZQpnZXQgdGhlIGNvcnJlc3BvbmRpbmcg cmVzcG9uc2UgZnJvbSBIVzsgYW55IHByZWVtcHRpb24gb3IgYWN0aXZhdGUgZXZlbnQKbXVzdCBm b2xsb3cgdGhlIG1vc3QgcmVjZW50IEVMU1Agd3JpdGUuIFNvIHRoYXQgd2lsbCBpbmNsdWRlIHRo ZQpwcmVlbXB0aW9uIGV2ZW50IGZvbGxvd2luZyB0aGUgcHJlZW1wdC1pZGxlIHdyaXRlLgoKVGhl biBvbiBkZWNpZGluZyB0aGF0IHRoZSBIVyBpcyBpZGxlLCB3ZSBhcHBseSB0aGUgY29tcGxpY2F0 aW9uIHN1Y2gKdGhhdCBleGVjbGlzdHMtPmFjdGl2ZSA9PSAwLiAoVGhhdCBydWxlIGlzIHdoYXQg YnJlYWtzIHRoZSBwYXR0ZXJuLikKLUNocmlzCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2ludGVsLWdmeAo=