From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM05-BY2-obe.outbound.protection.outlook.com (mail-eopbgr710052.outbound.protection.outlook.com [40.107.71.52]) by gabe.freedesktop.org (Postfix) with ESMTPS id DBD7E6E27E for ; Tue, 13 Nov 2018 17:00:28 +0000 (UTC) From: "Kazlauskas, Nicholas" Date: Tue, 13 Nov 2018 17:00:24 +0000 Message-ID: <72a7cc17-b404-f3df-4a04-95c1fce49679@amd.com> References: <20181113152350.23864-1-nicholas.kazlauskas@amd.com> <20181113165746.GE9144@intel.com> In-Reply-To: <20181113165746.GE9144@intel.com> Content-Language: en-US Content-ID: MIME-Version: 1.0 Subject: Re: [igt-dev] [PATCH i-g-t 1/4] tests/kms_plane_scaling: Add support for testing AMDGPU List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: =?utf-8?B?VmlsbGUgU3lyasOkbMOk?= Cc: "igt-dev@lists.freedesktop.org" List-ID: T24gMTEvMTMvMTggMTE6NTcgQU0sIFZpbGxlIFN5cmrDpGzDpCB3cm90ZToNCj4gT24gVHVlLCBO b3YgMTMsIDIwMTggYXQgMTA6MjM6NDdBTSAtMDUwMCwgTmljaG9sYXMgS2F6bGF1c2thcyB3cm90 ZToNCj4+IFRoZSBwbGFuZV9zY2FsaW5nIHN1YnRlc3RzIGFyZSBjYXBhYmxlIG9mIHJ1bm5pbmcg b24gQU1ER1BVIHdoZW4NCj4+IG5vdCB1c2luZyBpOTE1IHNwZWNpZmljIHRpbGluZyBmb3JtYXRz IGFuZCB3aGVuIHRoZSB0ZXN0IG9ubHkgcmVxdWlyZXMNCj4+IG9uZSBzY2FsZXIgcGVyIHBpcGUu DQo+IA0KPiBJIGRvbid0IHNlZSBhbnkgc3BlY2lmaWMgcmVhc29uIHdoeSB3ZSdkIHdhbnQgdG8g dXNlIHRpbGVkIGZvcm1hdHMgb24NCj4gaTkxNSBlaXRoZXIuIFRoZSBvbmx5IGV4Y2VwdGlvbiBp cyB0aGUgcm90YXRpb24gdGVzdCB3aGljaCByZXF1aXJlcw0KPiBZIHRpbGluZyBmb3IgOTAvMjcw IGRlZ3JlZXMuIEkgdGhpbmsgZXZlcnl0aGluZyBlbHNlIHNob3VsZCBiZSBmaW5lDQo+IHdpdGgg bGluZWFyLg0KDQpTdXJlLCBJIGRvbid0IG1pbmQgc3dhcHBpbmcgZXZlcnl0aGluZyB0byBsaW5l YXIgb24gZXZlcnl0aGluZyBidXQgdGhlIA0Kcm90YXRpb24gdGVzdHMgYXMgcGFydCBvZiBhIHYy IHRoZW4gaWYgaXQncyB0aGF0IGZpbmUgYnkgeW91Lg0KDQpOaWNob2xhcyBLYXpsYXVza2FzDQoN Cj4gDQo+Pg0KPj4gVGhpcyBwYXRjaCByZW1vdmVzIHRoZSBmb3JjZWQgaTkxNSBkZXZpZCBhbmQg Z2VuIGNoZWNrcyBmcm9tIG5vbiBpOTE1DQo+PiBkZXZpY2VzLiBJdCBhbHNvIGFkZHMgbG9naWMg Zm9yIGdldHRpbmcgdGhlIG51bWJlciBvZiBzY2FsZXJzIHBlciBwaXBlDQo+PiBpbiBhIHdheSB0 aGF0IGRvZXNuJ3Qgb25seSBkZXBlbmQgb24gZGV2aWQuIE9uZSBzY2FsZXIgcGVyIHBpcGUgaXMN Cj4+IGFzc3VtZWQgZm9yIEFNREdQVS4NCj4+DQo+PiBTaWduZWQtb2ZmLWJ5OiBOaWNob2xhcyBL YXpsYXVza2FzIDxuaWNob2xhcy5rYXpsYXVza2FzQGFtZC5jb20+DQo+PiAtLS0NCj4+ICAgdGVz dHMva21zX3BsYW5lX3NjYWxpbmcuYyB8IDQ2ICsrKysrKysrKysrKysrKysrKysrKysrKy0tLS0t LS0tLS0tLS0tLQ0KPj4gICAxIGZpbGUgY2hhbmdlZCwgMjkgaW5zZXJ0aW9ucygrKSwgMTcgZGVs ZXRpb25zKC0pDQo+Pg0KPj4gZGlmZiAtLWdpdCBhL3Rlc3RzL2ttc19wbGFuZV9zY2FsaW5nLmMg Yi90ZXN0cy9rbXNfcGxhbmVfc2NhbGluZy5jDQo+PiBpbmRleCA3NzMxNjJlYy4uZWUyOWYxMWUg MTAwNjQ0DQo+PiAtLS0gYS90ZXN0cy9rbXNfcGxhbmVfc2NhbGluZy5jDQo+PiArKysgYi90ZXN0 cy9rbXNfcGxhbmVfc2NhbGluZy5jDQo+PiBAQCAtNDYsMTEgKzQ2LDE0IEBAIHR5cGVkZWYgc3Ry dWN0IHsNCj4+ICAgCWlndF9wbGFuZV90ICpwbGFuZTQ7DQo+PiAgIH0gZGF0YV90Ow0KPj4gICAN Cj4+IC1zdGF0aWMgaW50IGdldF9udW1fc2NhbGVycyh1aW50MzJfdCBkZXZpZCwgZW51bSBwaXBl IHBpcGUpDQo+PiArc3RhdGljIGludCBnZXRfbnVtX3NjYWxlcnMoZGF0YV90KiBkLCBlbnVtIHBp cGUgcGlwZSkNCj4+ICAgew0KPj4gLQlpZ3RfcmVxdWlyZShpbnRlbF9nZW4oZGV2aWQpID49IDkp Ow0KPj4gKwlpZiAoIWlzX2k5MTVfZGV2aWNlKGQtPmRybV9mZCkpDQo+PiArCQlyZXR1cm4gMTsN Cj4+ICsNCj4+ICsJaWd0X3JlcXVpcmUoaW50ZWxfZ2VuKGQtPmRldmlkKSA+PSA5KTsNCj4+ICAg DQo+PiAtCWlmIChpbnRlbF9nZW4oZGV2aWQpID49IDEwKQ0KPj4gKwlpZiAoaW50ZWxfZ2VuKGQt PmRldmlkKSA+PSAxMCkNCj4+ICAgCQlyZXR1cm4gMjsNCj4+ICAgCWVsc2UgaWYgKHBpcGUgIT0g UElQRV9DKQ0KPj4gICAJCXJldHVybiAyOw0KPj4gQEAgLTc5LDYgKzgyLDggQEAgc3RhdGljIHZv aWQgcHJlcGFyZV9jcnRjKGRhdGFfdCAqZGF0YSwgaWd0X291dHB1dF90ICpvdXRwdXQsIGVudW0g cGlwZSBwaXBlLA0KPj4gICAJCQlpZ3RfcGxhbmVfdCAqcGxhbmUsIGRybU1vZGVNb2RlSW5mbyAq bW9kZSkNCj4+ICAgew0KPj4gICAJaWd0X2Rpc3BsYXlfdCAqZGlzcGxheSA9ICZkYXRhLT5kaXNw bGF5Ow0KPj4gKwl1aW50NjRfdCB0aWxpbmcgPSBpc19pOTE1X2RldmljZShkYXRhLT5kcm1fZmQp ID8NCj4+ICsJCUxPQ0FMX0k5MTVfRk9STUFUX01PRF9YX1RJTEVEIDogTE9DQUxfRFJNX0ZPUk1B VF9NT0RfTk9ORTsNCj4+ICAgDQo+PiAgIAljbGVhbnVwX2NydGMoZGF0YSk7DQo+PiAgIA0KPj4g QEAgLTkwLDcgKzk1LDcgQEAgc3RhdGljIHZvaWQgcHJlcGFyZV9jcnRjKGRhdGFfdCAqZGF0YSwg aWd0X291dHB1dF90ICpvdXRwdXQsIGVudW0gcGlwZSBwaXBlLA0KPj4gICAJLyogYWxsb2NhdGUg ZmIgZm9yIHBsYW5lIDEgKi8NCj4+ICAgCWlndF9jcmVhdGVfcGF0dGVybl9mYihkYXRhLT5kcm1f ZmQsIG1vZGUtPmhkaXNwbGF5LCBtb2RlLT52ZGlzcGxheSwNCj4+ICAgCQkJICAgICAgRFJNX0ZP Uk1BVF9YUkdCODg4OCwNCj4+IC0JCQkgICAgICBMT0NBTF9JOTE1X0ZPUk1BVF9NT0RfWF9USUxF RCwgLyogdGlsZWQgKi8NCj4+ICsJCQkgICAgICB0aWxpbmcsDQo+PiAgIAkJCSAgICAgICZkYXRh LT5mYlswXSk7DQo+PiAgIA0KPj4gICAJaWd0X3BsYW5lX3NldF9mYihwbGFuZSwgJmRhdGEtPmZi WzBdKTsNCj4+IEBAIC0xNzAsNiArMTc1LDggQEAgc3RhdGljIHZvaWQgdGVzdF9zY2FsZXJfd2l0 aF9yb3RhdGlvbl9waXBlKGRhdGFfdCAqZCwgZW51bSBwaXBlIHBpcGUsDQo+PiAgIHsNCj4+ICAg CWlndF9kaXNwbGF5X3QgKmRpc3BsYXkgPSAmZC0+ZGlzcGxheTsNCj4+ICAgCWlndF9wbGFuZV90 ICpwbGFuZTsNCj4+ICsJdWludDY0X3QgdGlsaW5nID0gaXNfaTkxNV9kZXZpY2UoZC0+ZHJtX2Zk KSA/DQo+PiArCQlMT0NBTF9JOTE1X0ZPUk1BVF9NT0RfWV9USUxFRCA6IExPQ0FMX0RSTV9GT1JN QVRfTU9EX05PTkU7DQo+PiAgIA0KPj4gICAJaWd0X291dHB1dF9zZXRfcGlwZShvdXRwdXQsIHBp cGUpOw0KPj4gICAJZm9yX2VhY2hfcGxhbmVfb25fcGlwZShkaXNwbGF5LCBwaXBlLCBwbGFuZSkg ew0KPj4gQEAgLTE4Myw4ICsxOTAsOCBAQCBzdGF0aWMgdm9pZCB0ZXN0X3NjYWxlcl93aXRoX3Jv dGF0aW9uX3BpcGUoZGF0YV90ICpkLCBlbnVtIHBpcGUgcGlwZSwNCj4+ICAgCQkJCWlmIChpZ3Rf ZmJfc3VwcG9ydGVkX2Zvcm1hdChmb3JtYXQpICYmDQo+PiAgIAkJCQkgICAgY2FuX3JvdGF0ZShk LCBmb3JtYXQpKQ0KPj4gICAJCQkJCWNoZWNrX3NjYWxpbmdfcGlwZV9wbGFuZV9yb3QoZCwgcGxh bmUsIGZvcm1hdCwNCj4+IC0JCQkJCQkJCSAgICAgTE9DQUxfSTkxNV9GT1JNQVRfTU9EX1lfVElM RUQsDQo+PiAtCQkJCQkJCQkgICAgIHBpcGUsIG91dHB1dCwgcm90KTsNCj4+ICsJCQkJCQkJCSAg ICAgdGlsaW5nLCBwaXBlLA0KPj4gKwkJCQkJCQkJICAgICBvdXRwdXQsIHJvdCk7DQo+PiAgIAkJ CX0NCj4+ICAgCQl9DQo+PiAgIAl9DQo+PiBAQCAtMjY0LDYgKzI3MSw4IEBAIHRlc3RfcGxhbmVf c2NhbGluZ19vbl9waXBlKGRhdGFfdCAqZCwgZW51bSBwaXBlIHBpcGUsIGlndF9vdXRwdXRfdCAq b3V0cHV0KQ0KPj4gICAJaWd0X2Rpc3BsYXlfdCAqZGlzcGxheSA9ICZkLT5kaXNwbGF5Ow0KPj4g ICAJZHJtTW9kZU1vZGVJbmZvICptb2RlOw0KPj4gICAJaW50IHByaW1hcnlfcGxhbmVfc2NhbGlu ZyA9IDA7IC8qIEZvciBub3cgKi8NCj4+ICsJdWludDY0X3QgdGlsaW5nID0gaXNfaTkxNV9kZXZp Y2UoZGlzcGxheS0+ZHJtX2ZkKSA/DQo+PiArCQlMT0NBTF9JOTE1X0ZPUk1BVF9NT0RfWF9USUxF RCA6IExPQ0FMX0RSTV9GT1JNQVRfTU9EX05PTkU7DQo+PiAgIA0KPj4gICAJbW9kZSA9IGlndF9v dXRwdXRfZ2V0X21vZGUob3V0cHV0KTsNCj4+ICAgDQo+PiBAQCAtMjczLDEzICsyODIsMTMgQEAg dGVzdF9wbGFuZV9zY2FsaW5nX29uX3BpcGUoZGF0YV90ICpkLCBlbnVtIHBpcGUgcGlwZSwgaWd0 X291dHB1dF90ICpvdXRwdXQpDQo+PiAgIA0KPj4gICAJaWd0X2NyZWF0ZV9jb2xvcl9wYXR0ZXJu X2ZiKGRpc3BsYXktPmRybV9mZCwgNjAwLCA2MDAsDQo+PiAgIAkJCQkgICAgRFJNX0ZPUk1BVF9Y UkdCODg4OCwNCj4+IC0JCQkJICAgIExPQ0FMX0k5MTVfRk9STUFUX01PRF9YX1RJTEVELCAvKiB0 aWxlZCAqLw0KPj4gKwkJCQkgICAgdGlsaW5nLA0KPj4gICAJCQkJICAgIC41LCAuNSwgLjUsICZk LT5mYlsxXSk7DQo+PiAgIA0KPj4gICAJaWd0X2NyZWF0ZV9wYXR0ZXJuX2ZiKGQtPmRybV9mZCwN Cj4+ICAgCQkJICAgICAgbW9kZS0+aGRpc3BsYXksIG1vZGUtPnZkaXNwbGF5LA0KPj4gICAJCQkg ICAgICBEUk1fRk9STUFUX1hSR0I4ODg4LA0KPj4gLQkJCSAgICAgIExPQ0FMX0k5MTVfRk9STUFU X01PRF9YX1RJTEVELCAvKiB0aWxlZCAqLw0KPj4gKwkJCSAgICAgIHRpbGluZywNCj4+ICAgCQkJ ICAgICAgJmQtPmZiWzJdKTsNCj4+ICAgDQo+PiAgIAlpZiAocHJpbWFyeV9wbGFuZV9zY2FsaW5n KSB7DQo+PiBAQCAtNDI1LDcgKzQzNCw3IEBAIHRlc3Rfc2NhbGVyX3dpdGhfY2xpcHBpbmdfY2xh bXBpbmdfc2NlbmFyaW8oZGF0YV90ICpkLCBlbnVtIHBpcGUgcGlwZSwgaWd0X291dHB1DQo+PiAg IHsNCj4+ICAgCWRybU1vZGVNb2RlSW5mbyAqbW9kZTsNCj4+ICAgDQo+PiAtCWlndF9yZXF1aXJl KGdldF9udW1fc2NhbGVycyhkLT5kZXZpZCwgcGlwZSkgPj0gMik7DQo+PiArCWlndF9yZXF1aXJl KGdldF9udW1fc2NhbGVycyhkLCBwaXBlKSA+PSAyKTsNCj4+ICAgDQo+PiAgIAltb2RlID0gaWd0 X291dHB1dF9nZXRfbW9kZShvdXRwdXQpOw0KPj4gICAJZC0+cGxhbmUxID0gJmQtPmRpc3BsYXku cGlwZXNbcGlwZV0ucGxhbmVzWzBdOw0KPj4gQEAgLTQ4MCw2ICs0ODksOCBAQCBzdGF0aWMgdm9p ZCB0ZXN0X3NjYWxlcl93aXRoX211bHRpX3BpcGVfcGxhbmUoZGF0YV90ICpkKQ0KPj4gICAJaWd0 X291dHB1dF90ICpvdXRwdXQxLCAqb3V0cHV0MjsNCj4+ICAgCWRybU1vZGVNb2RlSW5mbyAqbW9k ZTEsICptb2RlMjsNCj4+ICAgCWVudW0gcGlwZSBwaXBlMSwgcGlwZTI7DQo+PiArCXVpbnQ2NF90 IHRpbGluZyA9IGlzX2k5MTVfZGV2aWNlKGRpc3BsYXktPmRybV9mZCkgPw0KPj4gKwkJTE9DQUxf STkxNV9GT1JNQVRfTU9EX1lfVElMRUQgOiBMT0NBTF9EUk1fRk9STUFUX01PRF9OT05FOw0KPj4g ICANCj4+ICAgCWNsZWFudXBfY3J0YyhkKTsNCj4+ICAgDQo+PiBAQCAtNDkyLDI4ICs1MDMsMjgg QEAgc3RhdGljIHZvaWQgdGVzdF9zY2FsZXJfd2l0aF9tdWx0aV9waXBlX3BsYW5lKGRhdGFfdCAq ZCkNCj4+ICAgCWlndF9vdXRwdXRfc2V0X3BpcGUob3V0cHV0MiwgcGlwZTIpOw0KPj4gICANCj4+ ICAgCWQtPnBsYW5lMSA9IGlndF9vdXRwdXRfZ2V0X3BsYW5lKG91dHB1dDEsIDApOw0KPj4gLQlk LT5wbGFuZTIgPSBnZXRfbnVtX3NjYWxlcnMoZC0+ZGV2aWQsIHBpcGUxKSA+PSAyID8gaWd0X291 dHB1dF9nZXRfcGxhbmUob3V0cHV0MSwgMSkgOiBOVUxMOw0KPj4gKwlkLT5wbGFuZTIgPSBnZXRf bnVtX3NjYWxlcnMoZCwgcGlwZTEpID49IDIgPyBpZ3Rfb3V0cHV0X2dldF9wbGFuZShvdXRwdXQx LCAxKSA6IE5VTEw7DQo+PiAgIAlkLT5wbGFuZTMgPSBpZ3Rfb3V0cHV0X2dldF9wbGFuZShvdXRw dXQyLCAwKTsNCj4+IC0JZC0+cGxhbmU0ID0gZ2V0X251bV9zY2FsZXJzKGQtPmRldmlkLCBwaXBl MikgPj0gMiA/IGlndF9vdXRwdXRfZ2V0X3BsYW5lKG91dHB1dDIsIDEpIDogTlVMTDsNCj4+ICsJ ZC0+cGxhbmU0ID0gZ2V0X251bV9zY2FsZXJzKGQsIHBpcGUyKSA+PSAyID8gaWd0X291dHB1dF9n ZXRfcGxhbmUob3V0cHV0MiwgMSkgOiBOVUxMOw0KPj4gICANCj4+ICAgCW1vZGUxID0gaWd0X291 dHB1dF9nZXRfbW9kZShvdXRwdXQxKTsNCj4+ICAgCW1vZGUyID0gaWd0X291dHB1dF9nZXRfbW9k ZShvdXRwdXQyKTsNCj4+ICAgDQo+PiAgIAlpZ3RfY3JlYXRlX3BhdHRlcm5fZmIoZC0+ZHJtX2Zk LCA2MDAsIDYwMCwNCj4+ICAgCQkJICAgICAgRFJNX0ZPUk1BVF9YUkdCODg4OCwNCj4+IC0JCQkg ICAgICBMT0NBTF9JOTE1X0ZPUk1BVF9NT0RfWV9USUxFRCwgJmQtPmZiWzBdKTsNCj4+ICsJCQkg ICAgICB0aWxpbmcsICZkLT5mYlswXSk7DQo+PiAgIA0KPj4gICAJaWd0X2NyZWF0ZV9wYXR0ZXJu X2ZiKGQtPmRybV9mZCwgNTAwLCA1MDAsDQo+PiAgIAkJCSAgICAgIERSTV9GT1JNQVRfWFJHQjg4 ODgsDQo+PiAtCQkJICAgICAgTE9DQUxfSTkxNV9GT1JNQVRfTU9EX1lfVElMRUQsICZkLT5mYlsx XSk7DQo+PiArCQkJICAgICAgdGlsaW5nLCAmZC0+ZmJbMV0pOw0KPj4gICANCj4+ICAgCWlndF9j cmVhdGVfcGF0dGVybl9mYihkLT5kcm1fZmQsIDcwMCwgNzAwLA0KPj4gICAJCQkgICAgICBEUk1f Rk9STUFUX1hSR0I4ODg4LA0KPj4gLQkJCSAgICAgIExPQ0FMX0k5MTVfRk9STUFUX01PRF9ZX1RJ TEVELCAmZC0+ZmJbMl0pOw0KPj4gKwkJCSAgICAgIHRpbGluZywgJmQtPmZiWzJdKTsNCj4+ICAg DQo+PiAgIAlpZ3RfY3JlYXRlX3BhdHRlcm5fZmIoZC0+ZHJtX2ZkLCA0MDAsIDQwMCwNCj4+ICAg CQkJICAgICAgRFJNX0ZPUk1BVF9YUkdCODg4OCwNCj4+IC0JCQkgICAgICBMT0NBTF9JOTE1X0ZP Uk1BVF9NT0RfWV9USUxFRCwgJmQtPmZiWzNdKTsNCj4+ICsJCQkgICAgICB0aWxpbmcsICZkLT5m YlszXSk7DQo+PiAgIA0KPj4gICAJaWd0X3BsYW5lX3NldF9mYihkLT5wbGFuZTEsICZkLT5mYlsw XSk7DQo+PiAgIAlpZiAoZC0+cGxhbmUyKQ0KPj4gQEAgLTU0NSw3ICs1NTYsOCBAQCBpZ3RfbWFp bg0KPj4gICAJCWRhdGEuZHJtX2ZkID0gZHJtX29wZW5fZHJpdmVyX21hc3RlcihEUklWRVJfSU5U RUwpOw0KPj4gICAJCWlndF9yZXF1aXJlX3BpcGVfY3JjKGRhdGEuZHJtX2ZkKTsNCj4+ICAgCQlp Z3RfZGlzcGxheV9yZXF1aXJlKCZkYXRhLmRpc3BsYXksIGRhdGEuZHJtX2ZkKTsNCj4+IC0JCWRh dGEuZGV2aWQgPSBpbnRlbF9nZXRfZHJtX2RldmlkKGRhdGEuZHJtX2ZkKTsNCj4+ICsJCWRhdGEu ZGV2aWQgPSBpc19pOTE1X2RldmljZShkYXRhLmRybV9mZCkgPw0KPj4gKwkJCWludGVsX2dldF9k cm1fZGV2aWQoZGF0YS5kcm1fZmQpIDogMDsNCj4+ICAgCQlpZ3RfcmVxdWlyZShkYXRhLmRpc3Bs YXkuaXNfYXRvbWljKTsNCj4+ICAgCX0NCj4+ICAgDQo+PiBAQCAtNTU1LDcgKzU2Nyw3IEBAIGln dF9tYWluDQo+PiAgIAkJaWd0X2ZpeHR1cmUgew0KPj4gICAJCQlpZ3RfZGlzcGxheV9yZXF1aXJl X291dHB1dF9vbl9waXBlKCZkYXRhLmRpc3BsYXksIHBpcGUpOw0KPj4gICANCj4+IC0JCQlpZ3Rf cmVxdWlyZShnZXRfbnVtX3NjYWxlcnMoZGF0YS5kZXZpZCwgcGlwZSkgPiAwKTsNCj4+ICsJCQlp Z3RfcmVxdWlyZShnZXRfbnVtX3NjYWxlcnMoJmRhdGEsIHBpcGUpID4gMCk7DQo+PiAgIAkJfQ0K Pj4gICANCj4+ICAgCQlpZ3Rfc3VidGVzdF9mKCJwaXBlLSVzLXBsYW5lLXNjYWxpbmciLCBrbXN0 ZXN0X3BpcGVfbmFtZShwaXBlKSkNCj4+IC0tIA0KPj4gMi4xNy4xDQo+Pg0KPj4gX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCj4+IGlndC1kZXYgbWFpbGlu ZyBsaXN0DQo+PiBpZ3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZw0KPj4gaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pZ3QtZGV2DQo+IA0KDQpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwppZ3QtZGV2IG1haWxpbmcg bGlzdAppZ3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndC1kZXYK