From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id C5FDE6E092 for ; Thu, 18 Oct 2018 18:19:39 +0000 (UTC) Date: Thu, 18 Oct 2018 11:19:38 -0700 From: Rodrigo Vivi Message-ID: <20181018181938.GB2285@intel.com> References: <20181010064418.2711-1-tarun.vyas@intel.com> <20181017002359.GN3694@intel.com> <20181018133003.GA15363@otc-arch-ivb-06> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20181018133003.GA15363@otc-arch-ivb-06> Subject: Re: [igt-dev] [PATCH i-g-t] tools/dpcd_reg: Introduce dump as the default operation 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: Tarun Vyas Cc: igt-dev@lists.freedesktop.org, dhinakaran.pandiyan@intel.com List-ID: T24gVGh1LCBPY3QgMTgsIDIwMTggYXQgMDE6MzA6MDNQTSArMDAwMCwgVGFydW4gVnlhcyB3cm90 ZToKPiBPbiBUdWUsIE9jdCAxNiwgMjAxOCBhdCAwNToyMzo1OVBNIC0wNzAwLCBSb2RyaWdvIFZp dmkgd3JvdGU6Cj4gPiBPbiBUdWUsIE9jdCAwOSwgMjAxOCBhdCAxMTo0NDoxOFBNIC0wNzAwLCBU YXJ1biBWeWFzIHdyb3RlOgo+ID4gPiBGcm9tOiBSb2RyaWdvIFZpdmkgPHJvZHJpZ28udml2aUBp bnRlbC5jb20+Cj4gPiA+IAo+ID4gPiBGb3Igbm93IHRoaXMgb25seSBpbXBvcnRzIHRoZSByZWdp c3RlcnMgdGhhdCB3ZXJlIHVzZWQgb24KPiA+ID4gaTkxNSdzIGRlYnVnZnMgZHBjZCBkdW1wLiBM YXRlciB0aGlzIGNvdWxkIGJlIGV4dGVuZGVkLgo+ID4gPiAKPiA+ID4gV2l0aCB0aGlzLCB3ZSBz aG91bGQgYmUgYWJsZSB0byBraWxsIGk5MTVfZHBjZCBmcm9tIHRoZQo+ID4gPiBrZXJuZWwgZGVi dWdmcyBhbmQgcmVseSBzb2xlbHkgb24gZHBjZF9yZWcgZm9yIGRwY2QgZHVtcHMuCj4gPiA+IAo+ ID4gPiBDYzogRGhpbmFrYXJhbiBQYW5kaXlhbiA8ZGhpbmFrYXJhbi5wYW5kaXlhbkBpbnRlbC5j b20+Cj4gPiA+IFNpZ25lZC1vZmYtYnk6IFJvZHJpZ28gVml2aSA8cm9kcmlnby52aXZpQGludGVs LmNvbT4KPiA+ID4gU2lnbmVkLW9mZi1ieTogVGFydW4gVnlhcyA8dGFydW4udnlhc0BpbnRlbC5j b20+Cj4gPiAKPiA+IFRoaXMgbG9va3MgZ29vZCB0byBtZSBhbmQgSSBiZWxpZXZlIEkgY291bGQg anVzdAo+ID4gZ28gdGhlcmUgYW5kIG1lcmdlIHNpbmNlIHdlIGhhdmUgMiBwZW9wbGUgd29ya2lu ZyB0b2dldGhlcgo+ID4gYW5kIGFncmVlaW5nIGhlcmUgcmlnaHQ/CgpubyBvbmUgc2VlbXMgdG8g ZGlzYWdyZWUsIHNvIHB1c2hlZCEgOikKCj4gPiAKPiA+IERLLCBjb21tZW50cz8KPiA+IAo+ID4g VGFydW4sIGRvIHlvdSBoYXZlIHBsYW5zIHRvIG1ha2UgdGhpcyBkdW1wIHdpdGhvdXQgLS1kZXZp Y2UKPiA+IG9wdGlvbiB0byBwcmludCBhbGwgb2YgYXZhaWxhYmxlIGRwY2QgbGlrZSBteSBvbGQg c2VyaWVzIHdhcwo+ID4gZG9pbmc/Cj4gPgo+IFRoYW5rcyBSb2RyaWdvLiBESyBhbmQgSSBkaXNj dXNzZWQgZHVtcGluZyBkcGNkcyBmb3IgYWxsIHRoZSBkZXZpY2VzLCBidXQgd2Ugd2VyZW4ndCBz dXJlIGlmIHdlIHdhbnQgdG8gb3BlbiBldmVyeSBkZXZpY2UgdGhhdCBtYXkgb3IgbWF5IG5vdCBi ZSBjb25uZWN0ZWQgYW5kIGhlbmNlIHRpbWVvdXQgb24gYSByZWFkLiBTbywgYnkgZGVmYXVsdCB3 ZSBkdW1wIGRldmljZSAwLCBldmVuIGlmIHRoZSB1c2VyIGRvZXNudCBzcGVjaWZpZXMgYW55dGhp bmcuIEZvciBvdGhlciBkZXZpY2VzIHRoZXkgY2FuIHNwZWNpZnkgdGhlIGRldmljZSBpZHMuCgpN eSBpZGVhIG9uIHRob3NlIGZpcnN0IHBhdGNoZXMgd2FzIHRvIG9ubHkgaXRlcmF0ZSBvbiB0aGUg ZXhpc3RpbmcgZmlsZXMuCmRldiBmaWxlcyB3aWxsIG9ubHkgZXhpc3QgaWYgY29ubmVjdG9yIGV4 aXN0LgoKQW5kIHRoZW4sIGp1c3QgdHJ5IGEgZHVtbXkgYnl0ZSByZWFkIG9uIGl0IHRvIHNlZSBp ZiB0aGVyZSBpcyByZWFsbHkgYSBjb25uZWN0ZWQKRFAgdGhlcmUuIElmIGl0IHJlcGxpZXMgcHJp bnQsIG90aGVyd2lzZSBza2lwLgoKQW5kIGFsc28gcHJpbnQgdGhlIGNvbm5lY3RvciBuYW1lLCBz byBpdCBnZXRzIGVhc2llciB3aGVuIHVzaW5nCnRoaXMgaW5mbyBmb3IgZGVidWdnaW5nLi4uCgo+ ID4gPiAtLS0KPiA+ID4gIHRvb2xzL2RwY2RfcmVnLmMgfCA4NiArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLQo+ID4gPiAgMSBmaWxlIGNoYW5n ZWQsIDY2IGluc2VydGlvbnMoKyksIDIwIGRlbGV0aW9ucygtKQo+ID4gPiAKPiA+ID4gZGlmZiAt LWdpdCBhL3Rvb2xzL2RwY2RfcmVnLmMgYi90b29scy9kcGNkX3JlZy5jCj4gPiA+IGluZGV4IGQ1 NzdhYTU1Li4yNzYxMTY4ZCAxMDA2NDQKPiA+ID4gLS0tIGEvdG9vbHMvZHBjZF9yZWcuYwo+ID4g PiArKysgYi90b29scy9kcGNkX3JlZy5jCj4gPiA+IEBAIC00MSwxOSArNDEsNTAgQEAKPiA+ID4g IAo+ID4gPiAgY29uc3QgY2hhciBhdXhfZGV2W10gPSAiL2Rldi9kcm1fZHBfYXV4IjsKPiA+ID4g IAo+ID4gPiArc3RydWN0IGRwY2RfYmxvY2sgewo+ID4gPiArCS8qIERQQ0QgZHVtcCBzdGFydCBh ZGRyZXNzLiAqLwo+ID4gPiArCXVpbnQzMl90IG9mZnNldDsKPiA+ID4gKwkvKiBEUENEIG51bWJl ciBvZiBieXRlcyB0byByZWFkLiBJZiB1bnNldCwgZGVmYXVsdHMgdG8gMS4gKi8KPiA+ID4gKwlz aXplX3QgY291bnQ7Cj4gPiA+ICt9Owo+ID4gPiArCj4gPiA+ICBzdHJ1Y3QgZHBjZF9kYXRhIHsK PiA+ID4gIAlpbnQgZGV2aWQ7Cj4gPiA+ICAJaW50IGZpbGVfb3A7Cj4gPiA+IC0JdWludDMyX3Qg b2Zmc2V0Owo+ID4gPiArCXN0cnVjdCBkcGNkX2Jsb2NrIHJ3Owo+ID4gPiAgCWVudW0gY29tbWFu ZCB7Cj4gPiA+IC0JCUlOVkFMSUQgPSAtMSwKPiA+ID4gLQkJUkVBRCA9IDIsCj4gPiA+ICsJCURV TVAsCj4gPiA+ICsJCVJFQUQsCj4gPiA+ICAJCVdSSVRFLAo+ID4gPiAgCX0gY21kOwo+ID4gPiAt CXNpemVfdCBjb3VudDsKPiA+ID4gIAl1aW50OF90IHZhbDsKPiA+ID4gIH07Cj4gPiA+ICAKPiA+ ID4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHBjZF9ibG9jayBkdW1wX2xpc3RbXSA9IHsKPiA+ID4g KwkvKiBEUF9EUENEX1JFViAqLwo+ID4gPiArCXsgLm9mZnNldCA9IDAsIC5jb3VudCA9IDE1IH0s Cj4gPiA+ICsJLyogRFBfUFNSX1NVUFBPUlQgdG8gRFBfUFNSX0NBUFMqLwo+ID4gPiArCXsgLm9m ZnNldCA9ICAweDcwLCAuY291bnQgPSAyIH0sCj4gPiA+ICsJLyogRFBfRE9XTlNUUkVBTV9QT1JU XzAgKi8KPiA+ID4gKwl7IC5vZmZzZXQgPSAgMHg4MCwgLmNvdW50ID0gMTYgfSwKPiA+ID4gKwkv KiBEUF9MSU5LX0JXX1NFVCB0byBEUF9FRFBfQ09ORklHVVJBVElPTl9TRVQgKi8KPiA+ID4gKwl7 IC5vZmZzZXQgPSAweDEwMCwgLmNvdW50ID0gMTEgfSwKPiA+ID4gKwkvKiBEUF9TSU5LX0NPVU5U IHRvIERQX0FESlVTVF9SRVFVRVNUX0xBTkUyXzMgKi8KPiA+ID4gKwl7IC5vZmZzZXQgPSAweDIw MCwgLmNvdW50ID0gOCB9LAo+ID4gPiArCS8qIERQX1NFVF9QT1dFUiAqLwo+ID4gPiArCXsgLm9m ZnNldCA9IDB4NjAwIH0sCj4gPiA+ICsJLyogRFBfRURQX0RQQ0RfUkVWICovCj4gPiA+ICsJeyAu b2Zmc2V0ID0gIDB4NzAwIH0sCj4gPiA+ICsJLyogRFBfRURQX0dFTkVSQUxfQ0FQXzEgdG8gRFBf RURQX0dFTkVSQUxfQ0FQXzMgKi8KPiA+ID4gKwl7IC5vZmZzZXQgPSAweDcwMSwgLmNvdW50ID0g NCB9LAo+ID4gPiArCS8qIERQX0VEUF9ESVNQTEFZX0NPTlRST0xfUkVHSVNURVIgdG8gRFBfRURQ X0JBQ0tMSUdIVF9GUkVRX0NBUF9NQVhfTFNCICovCj4gPiA+ICsJeyAub2Zmc2V0ID0gMHg3MjAs IC5jb3VudCA9IDE2fSwKPiA+ID4gKwkvKiBEUF9FRFBfREJDX01JTklNVU1fQlJJR0hUTkVTU19T RVQgdG8gRFBfRURQX0RCQ19NQVhJTVVNX0JSSUdIVE5FU1NfU0VUICovCj4gPiA+ICsJeyAub2Zm c2V0ID0gIDB4NzMyLCAuY291bnQgPSAyIH0sCj4gPiA+ICsJLyogRFBfUFNSX1NUQVRVUyB0byBE UF9QU1JfU1RBVFVTICovCj4gPiA+ICsJeyAub2Zmc2V0ID0gMHgyMDA4LCAuY291bnQgPSAxIH0s Cj4gPiA+ICt9Owo+ID4gPiArCj4gPiA+ICBzdGF0aWMgdm9pZCBwcmludF91c2FnZSh2b2lkKQo+ ID4gPiAgewo+ID4gPiAgCXByaW50ZigiVXNhZ2U6IGRwY2RfcmVnIFtPUFRJT04gLi4uXSBDT01N QU5EXG5cbiIpOwo+ID4gPiBAQCAtMTAzLDcgKzEzNCw3IEBAIHN0YXRpYyBpbnQgcGFyc2Vfb3B0 cyhzdHJ1Y3QgZHBjZF9kYXRhICpkcGNkLCBpbnQgYXJnYywgY2hhciAqKmFyZ3YpCj4gPiA+ICAJ CQkJcHJpbnRfdXNhZ2UoKTsKPiA+ID4gIAkJCQlyZXR1cm4gRVhJVF9GQUlMVVJFOwo+ID4gPiAg CQkJfQo+ID4gPiAtCQkJZHBjZC0+Y291bnQgPSB0ZW1wOwo+ID4gPiArCQkJZHBjZC0+cncuY291 bnQgPSB0ZW1wOwo+ID4gPiAgCQkJYnJlYWs7Cj4gPiA+ICAJCWNhc2UgJ2QnOgo+ID4gPiAgCQkJ dGVtcCA9IHN0cnRvbChvcHRhcmcsICZlbmRwdHIsIDEwKTsKPiA+ID4gQEAgLTEzMSw3ICsxNjIs NyBAQCBzdGF0aWMgaW50IHBhcnNlX29wdHMoc3RydWN0IGRwY2RfZGF0YSAqZHBjZCwgaW50IGFy Z2MsIGNoYXIgKiphcmd2KQo+ID4gPiAgCQkJCXByaW50X3VzYWdlKCk7Cj4gPiA+ICAJCQkJcmV0 dXJuIEVSQU5HRTsKPiA+ID4gIAkJCX0KPiA+ID4gLQkJCWRwY2QtPm9mZnNldCA9IHRlbXA7Cj4g PiA+ICsJCQlkcGNkLT5ydy5vZmZzZXQgPSB0ZW1wOwo+ID4gPiAgCQkJYnJlYWs7Cj4gPiA+ICAJ CWNhc2UgJ3YnOgo+ID4gPiAgCQkJdmZsYWcgPSAndic7Cj4gPiA+IEBAIC0xNDcsMTYgKzE3OCwx NSBAQCBzdGF0aWMgaW50IHBhcnNlX29wdHMoc3RydWN0IGRwY2RfZGF0YSAqZHBjZCwgaW50IGFy Z2MsIGNoYXIgKiphcmd2KQo+ID4gPiAgCQkvKiBDb21tYW5kIHBhcnNpbmcgKi8KPiA+ID4gIAkJ Y2FzZSAxOgo+ID4gPiAgCQkJaWYgKHN0cmNtcChvcHRhcmcsICJyZWFkIikgPT0gMCkgewo+ID4g PiAtCQkJCXRlbXAgPSBSRUFEOwo+ID4gPiArCQkJCWRwY2QtPmNtZCA9IFJFQUQ7Cj4gPiA+ICAJ CQl9IGVsc2UgaWYgKHN0cmNtcChvcHRhcmcsICJ3cml0ZSIpID09IDApIHsKPiA+ID4gLQkJCQl0 ZW1wID0gV1JJVEU7Cj4gPiA+ICsJCQkJZHBjZC0+Y21kID0gV1JJVEU7Cj4gPiA+ICAJCQkJZHBj ZC0+ZmlsZV9vcCA9IE9fV1JPTkxZOwo+ID4gPiAtCQkJfSBlbHNlIHsKPiA+ID4gKwkJCX0gZWxz ZSBpZiAoc3RyY21wKG9wdGFyZywgImR1bXAiKSAhPSAwKSB7Cj4gPiA+ICAJCQkJZnByaW50Zihz dGRlcnIsICJVbnJlY29nbml6ZWQgY29tbWFuZFxuIik7Cj4gPiA+ICAJCQkJcHJpbnRfdXNhZ2Uo KTsKPiA+ID4gIAkJCQlyZXR1cm4gRVhJVF9GQUlMVVJFOwo+ID4gPiAgCQkJfQo+ID4gPiAtCQkJ ZHBjZC0+Y21kID0gdGVtcDsKPiA+ID4gIAkJCWJyZWFrOwo+ID4gPiAgCQljYXNlICc6JzoKPiA+ ID4gIAkJCWZwcmludGYoc3RkZXJyLCAiT3B0aW9uIC0lYyByZXF1aXJlcyBhbiBhcmd1bWVudFxu IiwKPiA+ID4gQEAgLTE3MCw3ICsyMDAsNyBAQCBzdGF0aWMgaW50IHBhcnNlX29wdHMoc3RydWN0 IGRwY2RfZGF0YSAqZHBjZCwgaW50IGFyZ2MsIGNoYXIgKiphcmd2KQo+ID4gPiAgCQl9Cj4gPiA+ ICAJfQo+ID4gPiAgCj4gPiA+IC0JaWYgKChkcGNkLT5jb3VudCArIGRwY2QtPm9mZnNldCkgPiAo TUFYX0RQX09GRlNFVCArIDEpKSB7Cj4gPiA+ICsJaWYgKChkcGNkLT5ydy5jb3VudCArIGRwY2Qt PnJ3Lm9mZnNldCkgPiAoTUFYX0RQX09GRlNFVCArIDEpKSB7Cj4gPiA+ICAJCWZwcmludGYoc3Rk ZXJyLCAiT3V0IG9mIGJvdW5kcy4gQ291bnQgKyBPZmZzZXQgPD0gMHgxMDAwMDBcbiIpOwo+ID4g PiAgCQlyZXR1cm4gRVJBTkdFOwo+ID4gPiAgCX0KPiA+ID4gQEAgLTIwNyw3ICsyMzcsNyBAQCBz dGF0aWMgaW50IGRwY2RfcmVhZChpbnQgZmQsIHVpbnQzMl90IG9mZnNldCwgc2l6ZV90IGNvdW50 KQo+ID4gPiAgCQlyZXQgPSBFWElUX0ZBSUxVUkU7Cj4gPiA+ICAJfQo+ID4gPiAgCj4gPiA+IC0J cHJpbnRmKCIweCUwMng6ICIsIG9mZnNldCk7Cj4gPiA+ICsJcHJpbnRmKCIweCUwNHg6ICIsIG9m ZnNldCk7Cj4gPiA+ICAJZm9yIChpID0gMDsgaSA8IHByZXQ7IGkrKykKPiA+ID4gIAkJcHJpbnRm KCIgJTAyeCIsICooYnVmICsgaSkpOwo+ID4gPiAgCXByaW50ZigiXG4iKTsKPiA+ID4gQEAgLTIz Myw2ICsyNjMsMjMgQEAgc3RhdGljIGludCBkcGNkX3dyaXRlKGludCBmZCwgdWludDMyX3Qgb2Zm c2V0LCB1aW50OF90IHZhbCkKPiA+ID4gIAlyZXR1cm4gcmV0Owo+ID4gPiAgfQo+ID4gPiAgCj4g PiA+ICtzdGF0aWMgaW50IGRwY2RfZHVtcChpbnQgZmQpCj4gPiA+ICt7Cj4gPiA+ICsJc2l6ZV90 IGNvdW50Owo+ID4gPiArCWludCByZXQsIGk7Cj4gPiA+ICsKPiA+ID4gKwlmb3IgKGkgPSAwOyBp IDwgc2l6ZW9mKGR1bXBfbGlzdCkgLyBzaXplb2YoZHVtcF9saXN0WzBdKTsgaSsrKSB7Cj4gPiA+ ICsJCWNvdW50ID0gZHVtcF9saXN0W2ldLmNvdW50ID8gZHVtcF9saXN0W2ldLmNvdW50OiAxOwo+ ID4gPiArCQlyZXQgPSBkcGNkX3JlYWQoZmQsIGR1bXBfbGlzdFtpXS5vZmZzZXQsIGNvdW50KTsK PiA+ID4gKwkJaWYgKHJldCAhPSBFWElUX1NVQ0NFU1MpIHsKPiA+ID4gKwkJCWZwcmludGYoc3Rk ZXJyLCAiRHVtcCBmYWlsZWQgd2hpbGUgcmVhZGluZyAlMDR4XG4iLAo+ID4gPiArCQkJCSBkdW1w X2xpc3RbaV0ub2Zmc2V0KTsKPiA+ID4gKwkJCXJldHVybiByZXQ7Cj4gPiA+ICsJCX0KPiA+ID4g Kwl9Cj4gPiA+ICsJcmV0dXJuIHJldDsKPiA+ID4gK30KPiA+ID4gKwo+ID4gPiAgaW50IG1haW4o aW50IGFyZ2MsIGNoYXIgKiphcmd2KQo+ID4gPiAgewo+ID4gPiAgCWNoYXIgZGV2X25hbWVbMjBd Owo+ID4gPiBAQCAtMjQxLDkgKzI4OCw5IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJn dikKPiA+ID4gIAlzdHJ1Y3QgZHBjZF9kYXRhIGRwY2QgPSB7Cj4gPiA+ICAJCS5kZXZpZCA9IDAs Cj4gPiA+ICAJCS5maWxlX29wID0gT19SRE9OTFksCj4gPiA+IC0JCS5vZmZzZXQgPSAweDAsCj4g PiA+IC0JCS5jbWQgPSBJTlZBTElELAo+ID4gPiAtCQkuY291bnQgPSAxLAo+ID4gPiArCQkucncu b2Zmc2V0ID0gMHgwLAo+ID4gPiArCQkucncuY291bnQgPSAxLAo+ID4gPiArCQkuY21kID0gRFVN UCwKPiA+ID4gIAl9Owo+ID4gPiAgCj4gPiA+ICAJcmV0ID0gcGFyc2Vfb3B0cygmZHBjZCwgYXJn YywgYXJndik7Cj4gPiA+IEBAIC0yNjIsMTUgKzMwOSwxNCBAQCBpbnQgbWFpbihpbnQgYXJnYywg Y2hhciAqKmFyZ3YpCj4gPiA+ICAKPiA+ID4gIAlzd2l0Y2ggKGRwY2QuY21kKSB7Cj4gPiA+ICAJ Y2FzZSBSRUFEOgo+ID4gPiAtCQlyZXQgPSBkcGNkX3JlYWQoZmQsIGRwY2Qub2Zmc2V0LCBkcGNk LmNvdW50KTsKPiA+ID4gKwkJcmV0ID0gZHBjZF9yZWFkKGZkLCBkcGNkLnJ3Lm9mZnNldCwgZHBj ZC5ydy5jb3VudCk7Cj4gPiA+ICAJCWJyZWFrOwo+ID4gPiAgCWNhc2UgV1JJVEU6Cj4gPiA+IC0J CXJldCA9IGRwY2Rfd3JpdGUoZmQsIGRwY2Qub2Zmc2V0LCBkcGNkLnZhbCk7Cj4gPiA+ICsJCXJl dCA9IGRwY2Rfd3JpdGUoZmQsIGRwY2Qucncub2Zmc2V0LCBkcGNkLnZhbCk7Cj4gPiA+ICAJCWJy ZWFrOwo+ID4gPiArCWNhc2UgRFVNUDoKPiA+ID4gIAlkZWZhdWx0Ogo+ID4gPiAtCQlmcHJpbnRm KHN0ZGVyciwgIlBsZWFzZSBzcGVjaWZ5IGEgY29tbWFuZDogcmVhZC93cml0ZS5cbiIpOwo+ID4g PiAtCQlwcmludF91c2FnZSgpOwo+ID4gPiAtCQlyZXQgPSBFWElUX0ZBSUxVUkU7Cj4gPiA+ICsJ CXJldCA9IGRwY2RfZHVtcChmZCk7Cj4gPiA+ICAJCWJyZWFrOwo+ID4gPiAgCX0KPiA+ID4gIAo+ ID4gPiAtLSAKPiA+ID4gMi4xNC4xCj4gPiA+IApfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwppZ3QtZGV2IG1haWxpbmcgbGlzdAppZ3QtZGV2QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2lndC1kZXYK