From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Pandiyan, Dhinakaran" Subject: Re: [PATCH] drm/i915/fbc: disable FBC on FIFO underruns Date: Fri, 2 Sep 2016 05:58:31 +0000 Message-ID: <1472796807.28300.36.camel@dk-H97M-D3H> References: <1471294136.5339.10.camel@intel.com> <1471300581-10905-1-git-send-email-paulo.r.zanoni@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id 07DE66E9DF for ; Fri, 2 Sep 2016 05:58:35 +0000 (UTC) In-Reply-To: <1471300581-10905-1-git-send-email-paulo.r.zanoni@intel.com> Content-Language: en-US Content-ID: <35A6E440EBD19249A053A70BD912F391@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Zanoni, Paulo R" Cc: "intel-gfx@lists.freedesktop.org" , "stefanr@s5r6.in-berlin.de" , "stevenhoneyman@gmail.com" List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCAyMDE2LTA4LTE1IGF0IDE5OjM2IC0wMzAwLCBQYXVsbyBaYW5vbmkgd3JvdGU6DQo+ IEV2ZXIgc2luY2UgSSBzdGFydGVkIHdvcmtpbmcgb24gRkJDIEkgd2FzIGFscmVhZHkgYXdhcmUg dGhhdCBGQkMgY2FuDQo+IHJlYWxseSBhbXBsaWZ5IHRoZSBGSUZPIHVuZGVycnVuIHN5bXB0b21z LiBPbiBzeXN0ZW1zIHdoZXJlIEZJRk8NCj4gdW5kZXJydW5zIHdlcmUgaGFybWxlc3MgZXJyb3Ig bWVzc2FnZXMsIGVuYWJsaW5nIEZCQyB3b3VsZCBjYXVzZSB0aGUNCj4gdW5kZXJydW5zIHRvIGdp dmUgYmxhY2sgc2NyZWVucy4NCj4gDQo+IFdlIHJlY2VudGx5IHRyaWVkIHRvIGVuYWJsZSBGQkMg b24gSGFzd2VsbCBhbmQgZ290IHJlcG9ydHMgb2YgYSBzeXN0ZW0NCj4gdGhhdCB3b3VsZCBoYW5n IGFmdGVyIHNvbWUgaG91cnMgb2YgdXB0aW1lLCBhbmQgdGhlIGZpcnN0IGJhZCBjb21taXQNCj4g d2FzIHRoZSBvbmUgdGhhdCBlbmFibGVkIEZCQy4gV2UgYWxzbyBvYnNlcnZlZCB0aGF0IHRoaXMg c3lzdGVtIGhhZA0KPiBGSUZPIHVuZGVycnVuIGVycm9yIG1lc3NhZ2VzIG9uIGl0cyBkbWVzZy4g QWx0aG91Z2ggd2UgZG9uJ3QgaGF2ZSBhbnkNCj4gZXZpZGVuY2UgdGhhdCBmaXhpbmcgdGhlIHVu ZGVycnVucyB3b3VsZCBzb2x2ZSB0aGUgYnVnIGFuZCBtYWtlIEZCQw0KPiB3b3JrIHByb3Blcmx5 IG9uIHRoaXMgbWFjaGluZSwgSU1ITyBpdCdzIGJldHRlciBpZiB3ZSBtaW5pbWl6ZSB0aGUNCj4g YW1vdW50IG9mIHBvc3NpYmxlIHByb2JsZW1zIGJ5IGp1c3QgZ2l2aW5nIHVwIEZCQyB3aGVuZXZl ciB3ZSBkZXRlY3QNCj4gYW4gdW5kZXJydW4uDQo+IA0KPiB2MjogTmV3IHZlcnNpb24sIGRpZmZl cmVudCBpbXBsZW1lbnRhdGlvbiBhbmQgY29tbWl0IG1lc3NhZ2UuDQo+IHYzOiBDbGFyaWZ5IHRo ZSBmYWN0IHRoYXQgd2UgcnVuIGZyb20gYW4gSVJRIGhhbmRsZXIgKENocmlzKS4NCj4gDQo+IENj OiBTdGVmYW4gUmljaHRlciA8c3RlZmFuckBzNXI2LmluLWJlcmxpbi5kZT4NCj4gQ2M6IEx5dWRl IDxjcGF1bEByZWRoYXQuY29tPg0KPiBDYzogc3RldmVuaG9uZXltYW5AZ21haWwuY29tIDxzdGV2 ZW5ob25leW1hbkBnbWFpbC5jb20+DQo+IFNpZ25lZC1vZmYtYnk6IFBhdWxvIFphbm9uaSA8cGF1 bG8uci56YW5vbmlAaW50ZWwuY29tPg0KPiAtLS0NCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmggICAgICAgICAgICB8ICAzICsrDQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcnYuaCAgICAgICAgICAgfCAgMSArDQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9m YmMuYyAgICAgICAgICAgfCA2MSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysNCj4gIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZpZm9fdW5kZXJydW4uYyB8ICAyICsNCj4gIDQgZmls ZXMgY2hhbmdlZCwgNjcgaW5zZXJ0aW9ucygrKQ0KPiANCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5o DQo+IGluZGV4IDM1Y2FhOWIuLmJhYTljNjYgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZHJ2LmgNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu aA0KPiBAQCAtOTQxLDYgKzk0MSw5IEBAIHN0cnVjdCBpbnRlbF9mYmMgew0KPiAgCWJvb2wgZW5h YmxlZDsNCj4gIAlib29sIGFjdGl2ZTsNCj4gIA0KPiArCWJvb2wgdW5kZXJydW5fZGV0ZWN0ZWQ7 DQo+ICsJc3RydWN0IHdvcmtfc3RydWN0IHVuZGVycnVuX3dvcms7DQo+ICsNCj4gIAlzdHJ1Y3Qg aW50ZWxfZmJjX3N0YXRlX2NhY2hlIHsNCj4gIAkJc3RydWN0IHsNCj4gIAkJCXVuc2lnbmVkIGlu dCBtb2RlX2ZsYWdzOw0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaA0KPiBpbmRleCAxYzcwMGIw Li41MGMxZWIwIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYu aA0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaA0KPiBAQCAtMTQ5NCw2 ICsxNDk0LDcgQEAgdm9pZCBpbnRlbF9mYmNfaW52YWxpZGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsDQo+ICB2b2lkIGludGVsX2ZiY19mbHVzaChzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsDQo+ICAJCSAgICAgdW5zaWduZWQgaW50IGZyb250YnVmZmVyX2Jp dHMsIGVudW0gZmJfb3Bfb3JpZ2luIG9yaWdpbik7DQo+ICB2b2lkIGludGVsX2ZiY19jbGVhbnVw X2NmYihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOw0KPiArdm9pZCBpbnRlbF9m YmNfaGFuZGxlX2ZpZm9fdW5kZXJydW5faXJxKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdik7DQo+ICANCj4gIC8qIGludGVsX2hkbWkuYyAqLw0KPiAgdm9pZCBpbnRlbF9oZG1pX2lu aXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaTkxNV9yZWdfdCBoZG1pX3JlZywgZW51bSBwb3J0 IHBvcnQpOw0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJjLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmMuYw0KPiBpbmRleCBlMTIyMDUyLi45NTBh ZWQ1IDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmMuYw0KPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmMuYw0KPiBAQCAtNzUwLDYgKzc1MCwx MyBAQCBzdGF0aWMgYm9vbCBpbnRlbF9mYmNfY2FuX2FjdGl2YXRlKHN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjKQ0KPiAgCXN0cnVjdCBpbnRlbF9mYmMgKmZiYyA9ICZkZXZfcHJpdi0+ZmJjOw0KPiAg CXN0cnVjdCBpbnRlbF9mYmNfc3RhdGVfY2FjaGUgKmNhY2hlID0gJmZiYy0+c3RhdGVfY2FjaGU7 DQo+ICANCj4gKwkvKiBXZSBkb24ndCBuZWVkIHRvIHVzZSBhIHN0YXRlIGNhY2hlIGhlcmUgc2lu Y2UgdGhpcyBpbmZvcm1hdGlvbiBpcw0KPiArCSAqIGdsb2JhbCBmb3IgZXZlcnkgQ1JUQy4gKi8N Cj4gKwlpZiAoZmJjLT51bmRlcnJ1bl9kZXRlY3RlZCkgew0KPiArCQlmYmMtPm5vX2ZiY19yZWFz b24gPSAidW5kZXJydW4gZGV0ZWN0ZWQiOw0KPiArCQlyZXR1cm4gZmFsc2U7DQo+ICsJfQ0KPiAr DQo+ICAJaWYgKCFjYWNoZS0+cGxhbmUudmlzaWJsZSkgew0KPiAgCQlmYmMtPm5vX2ZiY19yZWFz b24gPSAicHJpbWFyeSBwbGFuZSBub3QgdmlzaWJsZSI7DQo+ICAJCXJldHVybiBmYWxzZTsNCj4g QEAgLTExOTMsNiArMTIwMCw1OSBAQCB2b2lkIGludGVsX2ZiY19nbG9iYWxfZGlzYWJsZShzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpDQo+ICAJY2FuY2VsX3dvcmtfc3luYygmZmJj LT53b3JrLndvcmspOw0KPiAgfQ0KPiAgDQo+ICtzdGF0aWMgdm9pZCBpbnRlbF9mYmNfdW5kZXJy dW5fd29ya19mbihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspDQo+ICt7DQo+ICsJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0NCj4gKwkJY29udGFpbmVyX29mKHdvcmssIHN0cnVj dCBkcm1faTkxNV9wcml2YXRlLCBmYmMudW5kZXJydW5fd29yayk7DQo+ICsJc3RydWN0IGludGVs X2ZiYyAqZmJjID0gJmRldl9wcml2LT5mYmM7DQo+ICsNCj4gKwltdXRleF9sb2NrKCZmYmMtPmxv Y2spOw0KPiArDQo+ICsJLyogTWF5YmUgd2Ugd2VyZSBzY2hlZHVsZWQgdHdpY2UuICovDQo+ICsJ aWYgKGZiYy0+dW5kZXJydW5fZGV0ZWN0ZWQpDQo+ICsJCWdvdG8gb3V0Ow0KDQpJZiB0aGUgdW5k ZXJydW4gaGFwcGVucyB2ZXJ5IGVhcmx5IGFmdGVyIGJvb3QgKGxpa2VseSBkdXJpbmcgbW9kZXNl dCksDQp0aGUgdXNlciBtaWdodCBlbmQgdXAgc2VlaW5nIGp1c3QgRkJDIGVuYWJsZSBhbmQgZGlz YWJsZSBtZXNzYWdlcyBpbg0KZG1lc2cgd2l0aG91dCBrbm93aW5nIGl0IChvciB3aHkgaXQpIHdh cyBkZWFjdGl2YXRlZC4NCg0KRm9yIGUuZy4sDQoNClsgMTg1NS41NTI0ODldIFtkcm06aW50ZWxf ZmJjX2VuYWJsZV0gRW5hYmxpbmcgRkJDIG9uIHBpcGUgQQ0KWyAxODU2Ljg1NDIzOV0gW2RybTpf X2ludGVsX2ZiY19kaXNhYmxlXSBEaXNhYmxpbmcgRkJDIG9uIHBpcGUgQQ0KWyAxODU3Ljc1MzM4 M10gW2RybTppbnRlbF9mYmNfYWxsb2NfY2ZiXSBSZWR1Y2luZyB0aGUgY29tcHJlc3NlZA0KZnJh bWVidWZmZXIgc2l6ZS4gVGhpcyBtYXkgbGVhZCB0byBsZXNzIHBvd2VyIHNhdmluZ3MgdGhhbiBh DQpub24tcmVkdWNlZC1zaXplLiBUcnkgdG8gaW5jcmVhc2Ugc3RvbGVuIG1lbW9yeSBzaXplIGlm IGF2YWlsYWJsZSBpbg0KQklPUy4NClsgMTg1Ny43NTMzODRdIFtkcm06aW50ZWxfZmJjX2FsbG9j X2NmYl0gcmVzZXJ2ZWQgMTAzNjgwMDAgYnl0ZXMgb2YNCmNvbnRpZ3VvdXMgc3RvbGVuIHNwYWNl IGZvciBGQkMsIHRocmVzaG9sZDogNA0KWyAxODU3Ljc1MzM4NF0gW2RybTppbnRlbF9mYmNfZW5h YmxlXSBFbmFibGluZyBGQkMgb24gcGlwZSBBDQoNCkkgZmluZCB0aGlzIG5vaXNlIG1pc2xlYWRp bmcgYmVjYXVzZSBGQkMgaXMgbm90IGdvaW5nIHRvIGJlIGFjdGl2YXRlZCBhdA0KYWxsLg0KDQoN Cj4gKw0KPiArCURSTV9ERUJVR19LTVMoIkRpc2FibGluZyBGQkMgZHVlIHRvIEZJRk8gdW5kZXJy dW4uXG4iKTsNCg0KUHJpbnQgb3V0IHRoZSBwaXBlIGhlcmU/IEJvdGggdGhlIGVuYWJsaW5nIGFu ZCBkaXNhYmxpbmcgZGVidWcgbWVzc2FnZXMNCmNsYXJpZnkgdGhlIHBpcGUuIEl0IG1heSBiZSB1 c2VmdWwgdG8gcHJvdmlkZSB0aGlzIGluZm9ybWF0aW9uIGhlcmUgdG9vLg0KDQo+ICsJZmJjLT51 bmRlcnJ1bl9kZXRlY3RlZCA9IHRydWU7DQo+ICsNCj4gKwlpbnRlbF9mYmNfZGVhY3RpdmF0ZShk ZXZfcHJpdik7DQo+ICtvdXQ6DQo+ICsJbXV0ZXhfdW5sb2NrKCZmYmMtPmxvY2spOw0KPiArfQ0K PiArDQo+ICsvKioNCj4gKyAqIGludGVsX2ZiY19oYW5kbGVfZmlmb191bmRlcnJ1bl9pcnEgLSBk aXNhYmxlIEZCQyB3aGVuIHdlIGdldCBhIEZJRk8gdW5kZXJydW4NCj4gKyAqIEBkZXZfcHJpdjog aTkxNSBkZXZpY2UgaW5zdGFuY2UNCj4gKyAqDQo+ICsgKiBXaXRob3V0IEZCQywgbW9zdCB1bmRl cnJ1bnMgYXJlIGhhcm1sZXNzIGFuZCBkb24ndCByZWFsbHkgY2F1c2UgdG9vIG1hbnkNCj4gKyAq IHByb2JsZW1zLCBleGNlcHQgZm9yIGFuIGFubm95aW5nIG1lc3NhZ2Ugb24gZG1lc2cuIFdpdGgg RkJDLCB1bmRlcnJ1bnMgY2FuDQo+ICsgKiBiZWNvbWUgYmxhY2sgc2NyZWVucyBvciBldmVuIHdv cnNlLCBlc3BlY2lhbGx5IHdoZW4gcGFpcmVkIHdpdGggYmFkDQo+ICsgKiB3YXRlcm1hcmtzLiBT byBpbiBvcmRlciBmb3IgdXMgdG8gYmUgb24gdGhlIHNhZmUgc2lkZSwgY29tcGxldGVseSBkaXNh YmxlIEZCQw0KPiArICogaW4gY2FzZSB3ZSBldmVyIGRldGVjdCBhIEZJRk8gdW5kZXJydW4gb24g YW55IHBpcGUuIEFuIHVuZGVycnVuIG9uIGFueSBwaXBlDQo+ICsgKiBhbHJlYWR5IHN1Z2dlc3Rz IHRoYXQgd2F0ZXJtYXJrcyBtYXkgYmUgYmFkLCBzbyB0cnkgdG8gYmUgYXMgc2FmZSBhcw0KPiAr ICogcG9zc2libGUuDQo+ICsgKg0KPiArICogVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgZnJvbSB0 aGUgSVJRIGhhbmRsZXIuDQo+ICsgKi8NCj4gK3ZvaWQgaW50ZWxfZmJjX2hhbmRsZV9maWZvX3Vu ZGVycnVuX2lycShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpDQo+ICt7DQo+ICsJ c3RydWN0IGludGVsX2ZiYyAqZmJjID0gJmRldl9wcml2LT5mYmM7DQo+ICsNCj4gKwlpZiAoIWZi Y19zdXBwb3J0ZWQoZGV2X3ByaXYpKQ0KPiArCQlyZXR1cm47DQo+ICsNCj4gKwkvKiBUaGVyZSdz IG5vIGd1YXJhbnRlZSB0aGF0IHVuZGVycnVuX2RldGVjdGVkIHdvbid0IGJlIHNldCB0byB0cnVl DQo+ICsJICogcmlnaHQgYWZ0ZXIgdGhpcyBjaGVjayBhbmQgYmVmb3JlIHRoZSB3b3JrIGlzIHNj aGVkdWxlZCwgYnV0IHRoYXQncw0KPiArCSAqIG5vdCBhIHByb2JsZW0gc2luY2Ugd2UnbGwgY2hl Y2sgaXQgYWdhaW4gdW5kZXIgdGhlIHdvcmsgZnVuY3Rpb24NCj4gKwkgKiB3aGlsZSBGQkMgaXMg bG9ja2VkLiBUaGlzIGNoZWNrIGhlcmUgaXMganVzdCB0byBwcmV2ZW50IHVzIGZyb20NCj4gKwkg KiB1bm5lY2Vzc2FyaWx5IHNjaGVkdWxpbmcgdGhlIHdvcmssIGFuZCBpdCByZWxpZXMgb24gdGhl IGZhY3QgdGhhdCB3ZQ0KPiArCSAqIG5ldmVyIHN3aXRjaCB1bmRlcnJ1bl9kZXRlY3QgYmFjayB0 byBmYWxzZSBhZnRlciBpdCdzIHRydWUuICovDQo+ICsJaWYgKGZiYy0+dW5kZXJydW5fZGV0ZWN0 ZWQpDQo+ICsJCXJldHVybjsNCj4gKw0KPiArCXNjaGVkdWxlX3dvcmsoJmZiYy0+dW5kZXJydW5f d29yayk7DQo+ICt9DQo+ICsNCj4gIC8qKg0KPiAgICogaW50ZWxfZmJjX2luaXRfcGlwZV9zdGF0 ZSAtIGluaXRpYWxpemUgRkJDJ3MgQ1JUQyB2aXNpYmlsaXR5IHRyYWNraW5nDQo+ICAgKiBAZGV2 X3ByaXY6IGk5MTUgZGV2aWNlIGluc3RhbmNlDQo+IEBAIC0xMjY0LDYgKzEzMjQsNyBAQCB2b2lk IGludGVsX2ZiY19pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikNCj4gIAll bnVtIHBpcGUgcGlwZTsNCj4gIA0KPiAgCUlOSVRfV09SSygmZmJjLT53b3JrLndvcmssIGludGVs X2ZiY193b3JrX2ZuKTsNCj4gKwlJTklUX1dPUksoJmZiYy0+dW5kZXJydW5fd29yaywgaW50ZWxf ZmJjX3VuZGVycnVuX3dvcmtfZm4pOw0KPiAgCW11dGV4X2luaXQoJmZiYy0+bG9jayk7DQo+ICAJ ZmJjLT5lbmFibGVkID0gZmFsc2U7DQo+ICAJZmJjLT5hY3RpdmUgPSBmYWxzZTsNCj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZpZm9fdW5kZXJydW4uYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZpZm9fdW5kZXJydW4uYw0KPiBpbmRleCAyYWE3NDQwLi5l YmI0ZmVkIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9maWZvX3Vu ZGVycnVuLmMNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmlmb191bmRlcnJ1 bi5jDQo+IEBAIC0zNzIsNiArMzcyLDggQEAgdm9pZCBpbnRlbF9jcHVfZmlmb191bmRlcnJ1bl9p cnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsDQo+ICAJaWYgKGlu dGVsX3NldF9jcHVfZmlmb191bmRlcnJ1bl9yZXBvcnRpbmcoZGV2X3ByaXYsIHBpcGUsIGZhbHNl KSkNCj4gIAkJRFJNX0VSUk9SKCJDUFUgcGlwZSAlYyBGSUZPIHVuZGVycnVuXG4iLA0KPiAgCQkJ ICBwaXBlX25hbWUocGlwZSkpOw0KPiArDQo+ICsJaW50ZWxfZmJjX2hhbmRsZV9maWZvX3VuZGVy cnVuX2lycShkZXZfcHJpdik7DQo+ICB9DQo+ICANCj4gIC8qKg0KDQoNCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QK SW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=