From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [RFC] drm/i915: Move execlists irq handler to a bottom half Date: Wed, 23 Mar 2016 10:08:46 +0000 Message-ID: <56F26B2E.3040401@linux.intel.com> References: <1458667804-14121-1-git-send-email-tvrtko.ursulin@linux.intel.com> <20160323090735.GM28483@phenom.ffwll.local> <20160323091427.GB21717@nuc-i3427.alporthouse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id BE2B56E2F9 for ; Wed, 23 Mar 2016 10:08:48 +0000 (UTC) In-Reply-To: <20160323091427.GB21717@nuc-i3427.alporthouse.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson , Daniel Vetter , Intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Ck9uIDIzLzAzLzE2IDA5OjE0LCBDaHJpcyBXaWxzb24gd3JvdGU6Cj4gT24gV2VkLCBNYXIgMjMs IDIwMTYgYXQgMTA6MDc6MzVBTSArMDEwMCwgRGFuaWVsIFZldHRlciB3cm90ZToKPj4gT24gVHVl LCBNYXIgMjIsIDIwMTYgYXQgMDU6MzA6MDRQTSArMDAwMCwgVHZydGtvIFVyc3VsaW4gd3JvdGU6 Cj4+PiBGcm9tOiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgo+Pj4K Pj4+IERvaW5nIGEgbG90IG9mIHdvcmsgaW4gdGhlIGludGVycnVwdCBoYW5kbGVyIGludHJvZHVj ZXMgaHVnZQo+Pj4gbGF0ZW5jaWVzIHRvIHRoZSBzeXN0ZW0gYXMgYSB3aG9sZS4KPj4+Cj4+PiBN b3N0IGRyYW1hdGljIGVmZmVjdCBjYW4gYmUgc2VlbiBieSBydW5uaW5nIGFuIGFsbCBlbmdpbmUK Pj4+IHN0cmVzcyB0ZXN0IGxpa2UgaWd0L2dlbV9leGVjX25vcC9hbGwgd2hlcmUsIHdoZW4gdGhl IGtlcm5lbAo+Pj4gY29uZmlnIGlzIGxlYW4gZW5vdWdoLCB0aGUgd2hvbGUgc3lzdGVtIGNhbiBi ZSBicm91Z2h0IGludG8KPj4+IG11bHRpLXNlY29uZCBwZXJpb2RzIG9mIGNvbXBsZXRlIG5vbi1p bnRlcmFjdGl2dHkuIFRoYXQgY2FuCj4+PiBsb29rIGZvciBleGFtcGxlIGxpa2UgdGhpczoKPj4+ Cj4+PiAgIE5NSSB3YXRjaGRvZzogQlVHOiBzb2Z0IGxvY2t1cCAtIENQVSMwIHN0dWNrIGZvciAy M3MhIFtrd29ya2VyL3U4OjM6MTQzXQo+Pj4gICBNb2R1bGVzIGxpbmtlZCBpbjogW3JlZGFjdGVk IGZvciBicmV2aXR5XQo+Pj4gICBDUFU6IDAgUElEOiAxNDMgQ29tbToga3dvcmtlci91ODozIFRh aW50ZWQ6IEcgICAgIFUgICAgICAgTCAgNC41LjAtMTYwMzIxKyAjMTgzCj4+PiAgIEhhcmR3YXJl IG5hbWU6IEludGVsIENvcnBvcmF0aW9uIEJyb2Fkd2VsbCBDbGllbnQgcGxhdGZvcm0vV2hpdGVU aXAgTW91bnRhaW4gMQo+Pj4gICBXb3JrcXVldWU6IGk5MTUgZ2VuNl9wbV9ycHNfd29yayBbaTkx NV0KPj4+ICAgdGFzazogZmZmZjg4MDBhYWU4ODAwMCB0aTogZmZmZjg4MDBhYWU5MDAwMCB0YXNr LnRpOiBmZmZmODgwMGFhZTkwMDAwCj4+PiAgIFJJUDogMDAxMDpbPGZmZmZmZmZmODEwNGEzYzI+ XSAgWzxmZmZmZmZmZjgxMDRhM2MyPl0gX19kb19zb2Z0aXJxKzB4NzIvMHgxZDAKPj4+ICAgUlNQ OiAwMDAwOmZmZmY4ODAxNGY0MDNmMzggIEVGTEFHUzogMDAwMDAyMDYKPj4+ICAgUkFYOiBmZmZm ODgwMGFhZTk0MDAwIFJCWDogMDAwMDAwMDAwMDAwMDAwMCBSQ1g6IDAwMDAwMDAwMDAwMDA2ZTAK Pj4+ICAgUkRYOiAwMDAwMDAwMDAwMDAwMDIwIFJTSTogMDAwMDAwMDAwNDIwODA2MCBSREk6IDAw MDAwMDAwMDAyMTVkODAKPj4+ICAgUkJQOiBmZmZmODgwMTRmNDAzZjgwIFIwODogMDAwMDAwMGIx YjQyYzE4MCBSMDk6IDAwMDAwMDAwMDAwMDAwMjIKPj4+ICAgUjEwOiAwMDAwMDAwMDAwMDAwMDA0 IFIxMTogMDAwMDAwMDBmZmZmZmZmZiBSMTI6IDAwMDAwMDAwMDAwMGEwMzAKPj4+ICAgUjEzOiAw MDAwMDAwMDAwMDAwMDgyIFIxNDogZmZmZjg4MDBhYTRkMDA4MCBSMTU6IDAwMDAwMDAwMDAwMDAw ODIKPj4+ICAgRlM6ICAwMDAwMDAwMDAwMDAwMDAwKDAwMDApIEdTOmZmZmY4ODAxNGY0MDAwMDAo MDAwMCkga25sR1M6MDAwMDAwMDAwMDAwMDAwMAo+Pj4gICBDUzogIDAwMTAgRFM6IDAwMDAgRVM6 IDAwMDAgQ1IwOiAwMDAwMDAwMDgwMDUwMDMzCj4+PiAgIENSMjogMDAwMDdmYTUzYjkwYzAwMCBD UjM6IDAwMDAwMDAwMDFhMGEwMDAgQ1I0OiAwMDAwMDAwMDAwMTQwNmYwCj4+PiAgIERSMDogMDAw MDAwMDAwMDAwMDAwMCBEUjE6IDAwMDAwMDAwMDAwMDAwMDAgRFIyOiAwMDAwMDAwMDAwMDAwMDAw Cj4+PiAgIERSMzogMDAwMDAwMDAwMDAwMDAwMCBEUjY6IDAwMDAwMDAwZmZmZTBmZjAgRFI3OiAw MDAwMDAwMDAwMDAwNDAwCj4+PiAgIFN0YWNrOgo+Pj4gICAgMDQyMDgwNjAxYjMzODY5ZiBmZmZm ODgwMGFhZTk0MDAwIDAwMDAwMDAwZmZmYzI2NzggZmZmZjg4MDEwMDAwMDAwYQo+Pj4gICAgMDAw MDAwMDAwMDAwMDAwMCAwMDAwMDAwMDAwMDBhMDMwIDAwMDAwMDAwMDAwMDUzMDIgZmZmZjg4MDBh YTRkMDA4MAo+Pj4gICAgMDAwMDAwMDAwMDAwMDIwNiBmZmZmODgwMTRmNDAzZjkwIGZmZmZmZmZm ODEwNGE3MTYgZmZmZjg4MDE0ZjQwM2ZhOAo+Pj4gICBDYWxsIFRyYWNlOgo+Pj4gICAgPElSUT4K Pj4+ICAgIFs8ZmZmZmZmZmY4MTA0YTcxNj5dIGlycV9leGl0KzB4ODYvMHg5MAo+Pj4gICAgWzxm ZmZmZmZmZjgxMDMxZTdkPl0gc21wX2FwaWNfdGltZXJfaW50ZXJydXB0KzB4M2QvMHg1MAo+Pj4g ICAgWzxmZmZmZmZmZjgxNGYzZWFjPl0gYXBpY190aW1lcl9pbnRlcnJ1cHQrMHg3Yy8weDkwCj4+ PiAgICA8RU9JPgo+Pj4gICAgWzxmZmZmZmZmZmEwMWM1YjQwPl0gPyBnZW44X3dyaXRlNjQrMHgx YTAvMHgxYTAgW2k5MTVdCj4+PiAgICBbPGZmZmZmZmZmODE0ZjJiMzk+XSA/IF9yYXdfc3Bpbl91 bmxvY2tfaXJxcmVzdG9yZSsweDkvMHgyMAo+Pj4gICAgWzxmZmZmZmZmZmEwMWM1YzQ0Pl0gZ2Vu OF93cml0ZTMyKzB4MTA0LzB4MWEwIFtpOTE1XQo+Pj4gICAgWzxmZmZmZmZmZjgxMzJjNmEyPl0g PyBuX3R0eV9yZWNlaXZlX2J1Zl9jb21tb24rMHgzNzIvMHhhZTAKPj4+ICAgIFs8ZmZmZmZmZmZh MDE3Y2M5ZT5dIGdlbjZfc2V0X3Jwc190aHJlc2hvbGRzKzB4MWJlLzB4MzMwIFtpOTE1XQo+Pj4g ICAgWzxmZmZmZmZmZmEwMTdlYWYwPl0gZ2VuNl9zZXRfcnBzKzB4NzAvMHgyMDAgW2k5MTVdCj4+ PiAgICBbPGZmZmZmZmZmYTAxODUzNzU+XSBpbnRlbF9zZXRfcnBzKzB4MjUvMHgzMCBbaTkxNV0K Pj4+ICAgIFs8ZmZmZmZmZmZhMDE3NjhmZD5dIGdlbjZfcG1fcnBzX3dvcmsrMHgxMGQvMHgyZTAg W2k5MTVdCj4+PiAgICBbPGZmZmZmZmZmODEwNjM4NTI+XSA/IGZpbmlzaF90YXNrX3N3aXRjaCsw eDcyLzB4MWMwCj4+PiAgICBbPGZmZmZmZmZmODEwNWFiMjk+XSBwcm9jZXNzX29uZV93b3JrKzB4 MTM5LzB4MzUwCj4+PiAgICBbPGZmZmZmZmZmODEwNWIxODY+XSB3b3JrZXJfdGhyZWFkKzB4MTI2 LzB4NDkwCj4+PiAgICBbPGZmZmZmZmZmODEwNWIwNjA+XSA/IHJlc2N1ZXJfdGhyZWFkKzB4MzIw LzB4MzIwCj4+PiAgICBbPGZmZmZmZmZmODEwNWZhNjQ+XSBrdGhyZWFkKzB4YzQvMHhlMAo+Pj4g ICAgWzxmZmZmZmZmZjgxMDVmOWEwPl0gPyBrdGhyZWFkX2NyZWF0ZV9vbl9ub2RlKzB4MTcwLzB4 MTcwCj4+PiAgICBbPGZmZmZmZmZmODE0ZjM1MWY+XSByZXRfZnJvbV9mb3JrKzB4M2YvMHg3MAo+ Pj4gICAgWzxmZmZmZmZmZjgxMDVmOWEwPl0gPyBrdGhyZWFkX2NyZWF0ZV9vbl9ub2RlKzB4MTcw LzB4MTcwCj4+Pgo+Pj4gSSBjb3VsZCBub3QgZXhwbGFpbiwgb3IgZmluZCBhIGNvZGUgcGF0aCwg d2hpY2ggd291bGQgZXhwbGFpbgo+Pj4gYSArMjAgc2Vjb25kIGxvY2t1cCwgYnV0IGZyb20gc29t ZSBpbnN0cnVtZW50YXRpb24gaXQgd2FzCj4+PiBhcHBhcmVudCB0aGUgaW50ZXJydXB0cyBvZmYg cHJvcG9ydGlvbiBvZiB0aW1lIHdhcyBiZXR3ZWVuCj4+PiAxMC0yNSUgdW5kZXIgaGVhdnkgbG9h ZCB3aGljaCBpcyBxdWl0ZSBiYWQuCj4+Pgo+Pj4gQnkgbW92aW5nIHRoZSBHVCBpbnRlcnJ1cHQg aGFuZGxpbmcgdG8gYSB0YXNrbGV0IGluIGEgbW9zdAo+Pj4gc2ltcGxlIHdheSwgdGhlIHByb2Js ZW0gYWJvdmUgZGlzYXBwZWFycyBjb21wbGV0ZWx5Lgo+Pj4KPj4+IEFsc28sIGdlbV9sYXRlbmN5 IC1uIDEwMCBzaG93cyAyNSUgYmV0dGVyIHRocm91Z2hwdXQgYW5kIENQVQo+Pj4gdXNhZ2UsIGFu ZCAxNCUgYmV0dGVyIGxhdGVuY2llcy4KPgo+IEZvcmdvdCBnZW1fc3lzbGF0ZW5jeSwgc2luY2Ug dGhhdCBkb2VzIHJlZmxlY3QgVVggdW5kZXIgbG9hZCByZWFsbHkKPiBzdGFydGxpbmdseSB3ZWxs LgoKZ2VtX3N5c2xhdGVuY3ksIGJlZm9yZToKCmdlbV9zeXNsYXRlbmN5OiBjeWNsZXM9MTUzMjcz OSwgbGF0ZW5jeSBtZWFuPTQxNjUzMS44Mjl1cyBtYXg9MjQ5OTIzN3VzCmdlbV9zeXNsYXRlbmN5 OiBjeWNsZXM9MTgzOTQzNCwgbGF0ZW5jeSBtZWFuPTE0NTgwOTkuMTU3dXMgbWF4PTQ5OTg5NDR1 cwpnZW1fc3lzbGF0ZW5jeTogY3ljbGVzPTE0MzI1NzAsIGxhdGVuY3kgbWVhbj0yNjg4LjQ1MXVz IG1heD0xMjAxMTg1dXMKZ2VtX3N5c2xhdGVuY3k6IGN5Y2xlcz0xNTMzNTQzLCBsYXRlbmN5IG1l YW49NDE2NTIwLjQ5OXVzIG1heD0yNDk4ODg2dXMKCndpdGggdGFza2xldDoKCmdlbV9zeXNsYXRl bmN5OiBjeWNsZXM9ODA4OTA3LCBsYXRlbmN5IG1lYW49NTMuMTMzdXMgbWF4PTE2NDB1cwpnZW1f c3lzbGF0ZW5jeTogY3ljbGVzPTg2MjE1NCwgbGF0ZW5jeSBtZWFuPTYyLjc3OHVzIG1heD0yMTE3 dXMKZ2VtX3N5c2xhdGVuY3k6IGN5Y2xlcz04NTYwMzksIGxhdGVuY3kgbWVhbj01OC4wNzl1cyBt YXg9MjEyM3VzCmdlbV9zeXNsYXRlbmN5OiBjeWNsZXM9ODQxNjgzLCBsYXRlbmN5IG1lYW49NTYu OTE0dXMgbWF4PTE2Njd1cwoKSXMgdGhpcyBzbWFsbGVyIHRocm91Z2hwdXQgYW5kIGJldHRlciBs YXRlbmN5PwoKZ2VtX3N5c2xhdGVuY3kgLW4sIGJlZm9yZToKCmdlbV9zeXNsYXRlbmN5OiBjeWNs ZXM9MCwgbGF0ZW5jeSBtZWFuPTIuNDQ2dXMgbWF4PTE4dXMKZ2VtX3N5c2xhdGVuY3k6IGN5Y2xl cz0wLCBsYXRlbmN5IG1lYW49Ny4yMjB1cyBtYXg9Mzd1cwpnZW1fc3lzbGF0ZW5jeTogY3ljbGVz PTAsIGxhdGVuY3kgbWVhbj02Ljk0OXVzIG1heD0zNnVzCmdlbV9zeXNsYXRlbmN5OiBjeWNsZXM9 MCwgbGF0ZW5jeSBtZWFuPTUuOTMxdXMgbWF4PTM5dXMKCndpdGggdGFza2xldDoKCmdlbV9zeXNs YXRlbmN5OiBjeWNsZXM9MCwgbGF0ZW5jeSBtZWFuPTIuNDc3dXMgbWF4PTV1cwpnZW1fc3lzbGF0 ZW5jeTogY3ljbGVzPTAsIGxhdGVuY3kgbWVhbj0yLjQ3MXVzIG1heD02dXMKZ2VtX3N5c2xhdGVu Y3k6IGN5Y2xlcz0wLCBsYXRlbmN5IG1lYW49Mi42OTZ1cyBtYXg9MjR1cwpnZW1fc3lzbGF0ZW5j eTogY3ljbGVzPTAsIGxhdGVuY3kgbWVhbj02LjQxNHVzIG1heD0zOXVzCgpUaGlzIGxvb2tzIHBv dGVudGlhbGx5IHRoZSBzYW1lIG9yIHZlcnkgc2ltaWxhci4gTWF5IG5lZWQgbW9yZSBydW5zIHRv IApnZXQgYSBkZWZpbml0aXZlIHBpY3R1cmUuCgpnZW1fZXhlY19ub3AvYWxsIGhhcyBhIGh1Z2Ug aW1wcm92ZW1lbnQgYWxzbywgaWYgd2UgaWdub3JlIHRoZSBmYWN0IGl0IApsb2NrcyB1cCB0aGUg c3lzdGVtIHdpdGggdGhlIGN1cnJldCBpcnEgaGFuZGxlciBvbiBmdWxsIHRpbHQsIHdoZW4gSSAK bGltaXQgdGhlIG1heCBHUFUgZnJlcXVlbmN5IGEgYml0IGl0IGNhbiBhdm9pZCB0aGF0IHByb2Js ZW0gYnV0IHRhc2tsZXRzIAptYWtlIGl0IHR3aWNlIGFzIGZhc3QgaGVyZS4KCj4+PiBJIGRpZCBu b3QgZmluZCBhbnkgZ2FpbnMgb3IgcmVncmVzc2lvbnMgd2l0aCBTeW5tYXJrMiBvcgo+Pj4gR0xi ZW5jaCB1bmRlciBsaWdodCB0ZXN0aW5nLiBNb3JlIGJlbmNobWFya2luZyBpcyBjZXJ0YWlubHkK Pj4+IHJlcXVpcmVkLgo+Pj4KPgo+IEJ1Z3ppbGxhPwoKWW91IHRoaW5rIGl0IGlzIE9LIHRvIGNv bnRpbnVlIHNoYXJpbmcgeW91ciBvbmUsIApodHRwczovL2J1Z3MuZnJlZWRlc2t0b3Aub3JnL3No b3dfYnVnLmNnaT9pZD05MzQ2Nz8KCj4+PiBTaWduZWQtb2ZmLWJ5OiBUdnJ0a28gVXJzdWxpbiA8 dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgo+Pj4gQ2M6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hy aXMtd2lsc29uLmNvLnVrPgo+Pgo+PiBJIHRob3VnaHQgdGFza2xldHMgYXJlIGNvbnNpZGVyZWQg dW5wb3B1bGFyIG5vd2FkYXlzPyBUaGV5IHN0aWxsIHN0ZWFsIGNwdQoKRGlkIG5vdCBrbm93LCBs YXN0IChhbmQgZmlyc3QpIHRpbWUgSSd2ZSB1c2VkIHRoZW0gd2FzIH4xNSB5ZWFycyBhZ28uIDop IApZb3UgZ290IGFueSBsaW5rcyB0byByZWFkIGFib3V0IGl0PyBTaW5jZSAoc2VlIGJlbG93KSBJ IGFtIG5vdCBzdXJlIHRoZXkgCiJzdGVhbCIgQ1BVIHRpbWUuCgo+PiB0aW1lLCBqdXN0IGhhdmUg dGhlIGJlbmVmaXQgb2Ygbm90IGFsc28gZGlzYWJsaW5nIGhhcmQgaW50ZXJydXB0cy4gVGhlcmUK Pj4gc2hvdWxkIGJlIG1pdGlnYXRpb24gdGhvdWdoIHRvIG9mZmxvYWQgdGhlc2Ugc29mdGludGVy cnVwdHMgdG8gdGhyZWFkcy4KPj4gSGF2ZSB5b3UgdHJpZWQgdG8gY3JlYXRlIGEgdGhyZWFkZWQg aW50ZXJydXB0IHRocmVhZCBqdXN0IGZvciB0aGVzZSBwaW5zCj4+IGluc3RlYWQ/IEEgYml0IG9m IGJvaWxlcnBsYXRlLCBidXQgbm90IG11Y2ggdXNpbmcgdGhlIGdlbmlycSBzdHVmZiBpaXJjLgo+ Cj4gQWgsIHlvdSBoYXZlbid0IGJlZW4gcmVhZGluZyBwYXRjaGVzLiBZZXMsIHRoZXJlJ3MgYmVl biBhIHBhdGNoIHRvIGZpeAo+IHRoZSBoYXJkbG9ja3VwIHVzaW5nIGt0aHJlYWRzIGZvciBhIGZl dyBtb250aHMuIFR2cnRrbyBpcyB0cnlpbmcgdG8gbW92ZQo+IHRoaXMgZm9yd2FyZCBzaW5jZSBo ZSB0b28gaGFzIGZvdW5kIGEgd2F5IG9mIGxvY2tpbmcgdXAgaGlzIG1hY2hpbmUKPiB1c2luZyBl eGVjbGlzdCB1bmRlciBsb2FkLgoKQ29ycmVjdC4KCj4gU28gZmFyIGt0aHJlYWRzIHNlZW1zIHRv IGhhdmUgYSBzbGlnaHQgZWRnZSBpbiB0aGUgYmVuY2htYXJrcywgb3IgcmF0aGVyCj4gdXNpbmcg dGFza2xldCBJIGhhdmUgc29tZSB2ZXJ5IHdpbGQgcmVzdWx0cyBvbiBCcmFzd2VsbC4gVXNpbmcg dGFza2xldHMKPiB0aGUgQ1BVIHRpbWUgaXMgYWNjb3VudGVkIHRvIHRoZSBwcm9jZXNzIChpLmUu IHdob2V2ZXIgd2FzIHJ1bm5pbmcgYXQKID4gdGhlIHRpbWUgb2YgdGhlIGlycSwgdHlwaWNhbGx5 IHRoZSBiZW5jaG1hcmspLCB1c2luZyBrdGhyZWFkIHdlIGhhdmUKCkkgdGhvdWdodCB0aGV5IHJ1 biBmcm9tIGtzb2Z0aXJxZCBzbyB0aGUgQ1BVIHRpbWUgaXMgYWNjb3VudGVkIGFnYWluc3QgCml0 LiBBbmQgbG9va2luZyBhdCB0b3AsIHRoYXQgZXZlbiBzZWVtcyB3aGF0IGFjdHVhbGx5IGhhcHBl bnMuCgo+IGluZGVwZW5kZW50IGVudHJpZXMgaW4gdGhlIHByb2Nlc3MgdGFibGUvdG9wICh3aGlj aCBpcyBxdWl0ZSBuaWNlIHRvIHNlZQo+IGp1c3QgaG93IG11Y2ggdGltZSBpcyBiZWVuIGVhdGVu IHVwIGJ5IHRoZSBjb250ZXh0LXN3aXRjaGVzKS4KPgo+IEJlbmNobWFya3Mgc3RpbGwgcHJvZ2Vz c2luZywgaGF2ZW4ndCB5ZXQgZ290IG9uIHRvIHRoZSBsYXRlbmN5Cj4gbWVhc3VyZWVtbnRzLi4u LgoKTXkgdGFza2xldHMgaGFjayByZXF1aXJlZCBzdXJwcmlzaW5nbHkgbGl0dGxlIGNvZGUgY2hh bmdlLCBhdCBsZWFzdCBpZiAKdGhlcmUgYXJlIG5vdCBzb21lIG1pc3NlZCBjb3JuZXIgY2FzZXMg dG8gaGFuZGxlLCBidXQgSSBkb24ndCBtaW5kIHlvdXIgCnRocmVhZHMgZWl0aGVyLgoKUmVnYXJk cywKClR2cnRrbwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK