From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id 655AE6E027 for ; Tue, 2 Jul 2019 15:51:07 +0000 (UTC) Date: Tue, 2 Jul 2019 18:51:03 +0300 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Message-ID: <20190702155103.GU5942@intel.com> References: <20190702125038.21621-1-simon.ser@intel.com> <20190702125038.21621-5-simon.ser@intel.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20190702125038.21621-5-simon.ser@intel.com> Subject: Re: [igt-dev] [PATCH i-g-t 5/5] lib/igt_kms: use igt_edid to generate a 4K EDID 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: Simon Ser Cc: igt-dev@lists.freedesktop.org, martin.peres@intel.com List-ID: T24gVHVlLCBKdWwgMDIsIDIwMTkgYXQgMDM6NTA6MzhQTSArMDMwMCwgU2ltb24gU2VyIHdyb3Rl Ogo+IFRoZSBuZXcgRURJRCBoYXMgYmVlbiBieXRlLWJ5LWJ5dGUgY2hlY2tlZCB0byBiZSBleGFj dGx5IHRoZSBzYW1lIGFzIGJlZm9yZS4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBTaW1vbiBTZXIgPHNp bW9uLnNlckBpbnRlbC5jb20+Cj4gLS0tCj4gIGxpYi9pZ3Rfa21zLmMgICAgICAgICAgICAgICB8 IDEwNyArKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0KPiAgbGliL2lndF9rbXMu aCAgICAgICAgICAgICAgIHwgICAyICstCj4gIGxpYi90ZXN0cy9pZ3RfZWRpZC5jICAgICAgICB8 ICAgMSArCj4gIGxpYi90ZXN0cy9pZ3RfaGRtaV9pbmplY3QuYyB8ICAgMSAtCj4gIHRlc3RzL2tt c19oZG1pX2luamVjdC5jICAgICB8ICAgOSArLS0KPiAgNSBmaWxlcyBjaGFuZ2VkLCA2NCBpbnNl cnRpb25zKCspLCA1NiBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvbGliL2lndF9rbXMu YyBiL2xpYi9pZ3Rfa21zLmMKPiBpbmRleCA0NWM3OWEzODBkYWYuLjQ0NDYwNWU0YjExMCAxMDA2 NDQKPiAtLS0gYS9saWIvaWd0X2ttcy5jCj4gKysrIGIvbGliL2lndF9rbXMuYwo+IEBAIC0yODQs NiArMjg0LDY2IEBAIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlndF9rbXNfZ2V0X2RwX2F1ZGlvX2Vk aWQodm9pZCkKPiAgCXJldHVybiByYXdfZWRpZDsKPiAgfQo+ICAKPiArc3RhdGljIGNvbnN0IHVp bnQ4X3QgZWRpZF80a19zdmRzW10gPSB7Cj4gKwkzMiB8IENFQV9TVkRfTkFUSVZFLCAvKiAxMDgw cCBAIDI0SHogKG5hdGl2ZSkgKi8KPiArCTUsICAgICAgICAgICAgICAgICAgIC8qIDEwODBpIEAg NjBIeiAqLwo+ICsJMjAsICAgICAgICAgICAgICAgICAgLyogMTA4MGkgQCA1MEh6ICovCj4gKwk0 LCAgICAgICAgICAgICAgICAgICAvKiA3MjBwIEAgNjBIeiAqLwo+ICsJMTksICAgICAgICAgICAg ICAgICAgLyogNzIwcCBAIDUwSHogKi8KPiArfTsKPiArCj4gK2NvbnN0IHVuc2lnbmVkIGNoYXIg KmlndF9rbXNfZ2V0XzRrX2VkaWQodm9pZCkKPiArewo+ICsJc3RhdGljIHVuc2lnbmVkIGNoYXIg cmF3X2VkaWRbMjU2XTsKPiArCXN0cnVjdCBlZGlkICplZGlkOwo+ICsJc3RydWN0IGVkaWRfZXh0 ICplZGlkX2V4dDsKPiArCXN0cnVjdCBlZGlkX2NlYSAqZWRpZF9jZWE7Cj4gKwljaGFyICpjZWFf ZGF0YTsKPiArCXN0cnVjdCBlZGlkX2NlYV9kYXRhX2Jsb2NrICpibG9jazsKPiArCWNoYXIgcmF3 X2hkbWlbSERNSV9WU0RfTUlOX1NJWkUgKyA2XSA9IHswfTsKPiArCXN0cnVjdCBoZG1pX3ZzZCAq aGRtaTsKPiArCXNpemVfdCBjZWFfZGF0YV9zaXplID0gMDsKPiArCXNpemVfdCBzdmRzX2xlbjsK PiArCj4gKwkvKiBDcmVhdGUgYSBuZXcgRURJRCBmcm9tIHRoZSBiYXNlIElHVCBFRElELCBhbmQg YWRkIGFuCj4gKwkgKiBleHRlbnNpb24gdGhhdCBhZHZlcnRpc2VzIDRLIHN1cHBvcnQuICovCj4g KwllZGlkID0gKHN0cnVjdCBlZGlkICopIHJhd19lZGlkOwo+ICsJbWVtY3B5KGVkaWQsIGlndF9r bXNfZ2V0X2Jhc2VfZWRpZCgpLCBzaXplb2Yoc3RydWN0IGVkaWQpKTsKClRoYXQgb25seSBjb250 YWlucyB0aGUgYmFzZSBibG9jay4gQXJlIHdlIGxlYXZpbmcgc3RhY2sgZ2FyYmFnZSBpbiB0aGUK ZXh0ZW5zaW9uIGJsb2NrPwoKPiArCWVkaWQtPmV4dGVuc2lvbnNfbGVuID0gMTsKPiArCWVkaWRf ZXh0ID0gJmVkaWQtPmV4dGVuc2lvbnNbMF07Cj4gKwllZGlkX2NlYSA9ICZlZGlkX2V4dC0+ZGF0 YS5jZWE7Cj4gKwljZWFfZGF0YSA9IGVkaWRfY2VhLT5kYXRhOwo+ICsKPiArCS8qIFNob3J0IFZp ZGVvIERlc2NyaXB0b3IgKi8KPiArCWJsb2NrID0gKHN0cnVjdCBlZGlkX2NlYV9kYXRhX2Jsb2Nr ICopICZjZWFfZGF0YVtjZWFfZGF0YV9zaXplXTsKPiArCXN2ZHNfbGVuID0gc2l6ZW9mKGVkaWRf NGtfc3ZkcykgLyBzaXplb2YoZWRpZF80a19zdmRzWzBdKTsKCkkgdGhpbmsgd2UgaGF2ZSBhbiBB UlJBWV9TSVpFKCkuIEFsdGhvdWdoIHNpbmNlIHdlIGtub3cgdGhlc2UgYXJlIGJ5dGVzCm1heWJl IGp1c3QgYSBzaXplb2YoKSB3b3VsZCBiZSBnb29kIGVub3VnaC4KCj4gKwljZWFfZGF0YV9zaXpl ICs9IGVkaWRfY2VhX2RhdGFfYmxvY2tfc2V0X3N2ZChibG9jaywgZWRpZF80a19zdmRzLAo+ICsJ CQkJCQkgICAgIHN2ZHNfbGVuKTsKPiArCj4gKwkvKiBWZW5kb3IgU3BlY2lmaWMgRGF0YSBibG9j ayAqLwo+ICsJaGRtaSA9IChzdHJ1Y3QgaGRtaV92c2QgKikgcmF3X2hkbWk7Cj4gKwloZG1pLT5z cmNfcGh5X2FkZHJbMF0gPSAweDEwOwo+ICsJaGRtaS0+c3JjX3BoeV9hZGRyWzFdID0gMHgwMDsK PiArCWhkbWktPmZsYWdzMSA9IDA7Cj4gKwloZG1pLT5tYXhfdGRtc19jbG9jayA9IDA7Cj4gKwlo ZG1pLT5mbGFnczIgPSBIRE1JX1ZTRF9WSURFT19QUkVTRU5UOwo+ICsJaGRtaS0+ZGF0YVswXSA9 IDB4MDA7IC8qIEhETUkgdmlkZW8gZmxhZ3MgKi8KPiArCWhkbWktPmRhdGFbMV0gPSAxIDw8IDU7 IC8qIDEgVklDIGVudHJ5LCAwIDNEIGVudHJpZXMgKi8KPiArCWhkbWktPmRhdGFbMl0gPSAweDAx OyAvKiAyMTYwcCwgc3BlY2lmaWVkIGFzIHNob3J0IGRlc2NyaXB0b3IgKi8KPiArCj4gKwlibG9j ayA9IChzdHJ1Y3QgZWRpZF9jZWFfZGF0YV9ibG9jayAqKSAmY2VhX2RhdGFbY2VhX2RhdGFfc2l6 ZV07Cj4gKwljZWFfZGF0YV9zaXplICs9IGVkaWRfY2VhX2RhdGFfYmxvY2tfc2V0X2hkbWlfdnNk KGJsb2NrLCBoZG1pLAo+ICsJCQkJCQkJICBzaXplb2YocmF3X2hkbWkpKTsKPiArCj4gKwlhc3Nl cnQoY2VhX2RhdGFfc2l6ZSA8PSBzaXplb2YoZWRpZF9jZWEtPmRhdGEpKTsKPiArCj4gKwllZGlk X2V4dF9zZXRfY2VhKGVkaWRfZXh0LCBjZWFfZGF0YV9zaXplLCAwLCAwKTsKPiArCj4gKwllZGlk X3VwZGF0ZV9jaGVja3N1bShlZGlkKTsKPiArCWVkaWRfZXh0X3VwZGF0ZV9jZWFfY2hlY2tzdW0o ZWRpZF9leHQpOwo+ICsJcmV0dXJuIHJhd19lZGlkOwo+ICt9Cj4gKwo+ICBjb25zdCBjaGFyICog Y29uc3QgaWd0X3BsYW5lX3Byb3BfbmFtZXNbSUdUX05VTV9QTEFORV9QUk9QU10gPSB7Cj4gIAlb SUdUX1BMQU5FX1NSQ19YXSA9ICJTUkNfWCIsCj4gIAlbSUdUX1BMQU5FX1NSQ19ZXSA9ICJTUkNf WSIsCj4gQEAgLTEzNDgsOCArMTQwOCw2IEBAIHN0cnVjdCBlZGlkX2Jsb2NrIHsKPiAgICAgIHVu c2lnbmVkIGNoYXIgKmRhdGE7Cj4gIH07Cj4gIAo+IC0jZGVmaW5lIERURF9TVVBQT1JUU19BVURJ TyAxPDw2Cj4gLQo+ICBzdGF0aWMgc3RydWN0IGVkaWRfYmxvY2sKPiAgaW5pdF9jZWFfYmxvY2so Y29uc3QgdW5zaWduZWQgY2hhciAqZWRpZCwgc2l6ZV90IGxlbmd0aCwKPiAgCSAgICAgICB1bnNp Z25lZCBjaGFyICpuZXdfZWRpZF9wdHJbXSwgc2l6ZV90ICpuZXdfbGVuZ3RoLAo+IEBAIC0xNDM3 LDUxICsxNDk1LDYgQEAgdm9pZCBrbXN0ZXN0X2VkaWRfYWRkXzNkKGNvbnN0IHVuc2lnbmVkIGNo YXIgKmVkaWQsIHNpemVfdCBsZW5ndGgsCj4gIAl1cGRhdGVfZWRpZF9jc3VtKG5ld19lZGlkLmRh dGEsIGxlbmd0aCk7Cj4gIH0KPiAgCj4gLS8qKgo+IC0gKiBrbXN0ZXN0X2VkaWRfYWRkXzRrOgo+ IC0gKiBAZWRpZDogYW4gZXhpc3RpbmcgdmFsaWQgZWRpZCBibG9jawo+IC0gKiBAbGVuZ3RoOiBs ZW5ndGggb2YgQGVkaWQKPiAtICogQG5ld19lZGlkX3B0cjogcG9pbnRlciB0byB3aGVyZSB0aGUg bmV3IGVkaWQgd2lsbCBiZSBwbGFjZWQKPiAtICogQG5ld19sZW5ndGg6IHBvaW50ZXIgdG8gdGhl IHNpemUgb2YgdGhlIG5ldyBlZGlkCj4gLSAqCj4gLSAqIE1ha2VzIGEgY29weSBvZiBhbiBleGlz dGluZyBlZGlkIGJsb2NrIGFuZCBhZGRzIGFuIGV4dGVuc2lvbiBpbmRpY2F0aW5nCj4gLSAqIGEg SERNSSA0SyBtb2RlIGluIHZzZGIuCj4gLSAqLwo+IC12b2lkIGttc3Rlc3RfZWRpZF9hZGRfNGso Y29uc3QgdW5zaWduZWQgY2hhciAqZWRpZCwgc2l6ZV90IGxlbmd0aCwKPiAtCQkJIHVuc2lnbmVk IGNoYXIgKm5ld19lZGlkX3B0cltdLCBzaXplX3QgKm5ld19sZW5ndGgpCj4gLXsKPiAtCWNoYXIg dnNkYl9ibG9ja19sZW4gPSAxMjsKPiAtCXN0cnVjdCBlZGlkX2Jsb2NrIG5ld19lZGlkID0gaW5p dF9jZWFfYmxvY2soZWRpZCwgbGVuZ3RoLCBuZXdfZWRpZF9wdHIsCj4gLQkJCQkJCSAgICBuZXdf bGVuZ3RoLCB2c2RiX2Jsb2NrX2xlbiwKPiAtCQkJCQkJICAgIDApOwo+IC0JaW50IHBvcyA9IG5l d19lZGlkLnBvczsKPiAtCj4gLQkvKiB2c2RiIGJsb2NrICggaWQgfCBsZW5ndGggKSAqLwo+IC0J bmV3X2VkaWQuZGF0YVtwb3MrK10gPSAzIDw8IDUgfCAodnNkYl9ibG9ja19sZW4gLSAxKTsKPiAt CS8qIHJlZ2lzdHJhdGlvbiBpZCAqLwo+IC0JbmV3X2VkaWQuZGF0YVtwb3MrK10gPSAweDM7Cj4g LQluZXdfZWRpZC5kYXRhW3BvcysrXSA9IDB4YzsKPiAtCW5ld19lZGlkLmRhdGFbcG9zKytdID0g MHgwOwo+IC0JLyogc291cmNlIHBoeXNpY2FsIGFkZHJlc3MgKi8KPiAtCW5ld19lZGlkLmRhdGFb cG9zKytdID0gMHgxMDsKPiAtCW5ld19lZGlkLmRhdGFbcG9zKytdID0gMHgwMDsKPiAtCS8qIFN1 cHBvcnRzX0FJIC4uLiBldGMgKi8KPiAtCW5ld19lZGlkLmRhdGFbcG9zKytdID0gMHgwMDsKPiAt CS8qIE1heCBUTURTIENsb2NrICovCj4gLQluZXdfZWRpZC5kYXRhW3BvcysrXSA9IDB4MDA7Cj4g LQkvKiBMYXRlbmN5IHByZXNlbnQsIEhETUkgVmlkZW8gUHJlc2VudCAqLwo+IC0JbmV3X2VkaWQu ZGF0YVtwb3MrK10gPSAweDIwOwo+IC0JLyogSERNSSBWaWRlbyAqLwo+IC0JbmV3X2VkaWQuZGF0 YVtwb3MrK10gPSAweDAwOyAvKiAzRCBwcmVzZW50ICovCj4gLQo+IC0JLyogSERNSSBNT0RFIExF TiAtLSBob3cgbWFueSBlbnRyaWVzICovCj4gLQluZXdfZWRpZC5kYXRhW3BvcysrXSA9IDB4MjA7 Cj4gLQkvKiAyMTYwcCwgc3BlY2lmaWVkIGFzIHNob3J0IGRlc2NyaXB0b3IgKi8KPiAtCW5ld19l ZGlkLmRhdGFbcG9zKytdID0gMHgwMTsKPiAtCj4gLQl1cGRhdGVfZWRpZF9jc3VtKG5ld19lZGlk LmRhdGEsIGxlbmd0aCk7Cj4gLX0KPiAtCj4gIC8qKgo+ICAgKiBrbXN0ZXN0X3Vuc2V0X2FsbF9j cnRjczoKPiAgICogQGRybV9mZDogdGhlIERSTSBmZAo+IGRpZmYgLS1naXQgYS9saWIvaWd0X2tt cy5oIGIvbGliL2lndF9rbXMuaAo+IGluZGV4IGY3MjUwODY0MDcxMi4uMjAzNzE5ODc4ZDg2IDEw MDY0NAo+IC0tLSBhL2xpYi9pZ3Rfa21zLmgKPiArKysgYi9saWIvaWd0X2ttcy5oCj4gQEAgLTE5 NSw3ICsxOTUsNiBAQCBlbnVtIGludGVsX2Jyb2FkY2FzdF9yZ2JfbW9kZSB7Cj4gIGJvb2wga21z dGVzdF9mb3JjZV9jb25uZWN0b3IoaW50IGZkLCBkcm1Nb2RlQ29ubmVjdG9yICpjb25uZWN0b3Is Cj4gIAkJCSAgICAgZW51bSBrbXN0ZXN0X2ZvcmNlX2Nvbm5lY3Rvcl9zdGF0ZSBzdGF0ZSk7Cj4g IHZvaWQga21zdGVzdF9lZGlkX2FkZF8zZChjb25zdCB1bnNpZ25lZCBjaGFyICplZGlkLCBzaXpl X3QgbGVuZ3RoLCB1bnNpZ25lZCBjaGFyICpuZXdfZWRpZF9wdHJbXSwgc2l6ZV90ICpuZXdfbGVu Z3RoKTsKPiAtdm9pZCBrbXN0ZXN0X2VkaWRfYWRkXzRrKGNvbnN0IHVuc2lnbmVkIGNoYXIgKmVk aWQsIHNpemVfdCBsZW5ndGgsIHVuc2lnbmVkIGNoYXIgKm5ld19lZGlkX3B0cltdLCBzaXplX3Qg Km5ld19sZW5ndGgpOwo+ICB2b2lkIGttc3Rlc3RfZm9yY2VfZWRpZChpbnQgZHJtX2ZkLCBkcm1N b2RlQ29ubmVjdG9yICpjb25uZWN0b3IsCj4gIAkJCWNvbnN0IHVuc2lnbmVkIGNoYXIgKmVkaWQp Owo+ICAKPiBAQCAtNzYzLDYgKzc2Miw3IEBAIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlndF9rbXNf Z2V0X2Jhc2VfZWRpZCh2b2lkKTsKPiAgY29uc3QgdW5zaWduZWQgY2hhciAqaWd0X2ttc19nZXRf YWx0X2VkaWQodm9pZCk7Cj4gIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlndF9rbXNfZ2V0X2hkbWlf YXVkaW9fZWRpZCh2b2lkKTsKPiAgY29uc3QgdW5zaWduZWQgY2hhciAqaWd0X2ttc19nZXRfZHBf YXVkaW9fZWRpZCh2b2lkKTsKPiArY29uc3QgdW5zaWduZWQgY2hhciAqaWd0X2ttc19nZXRfNGtf ZWRpZCh2b2lkKTsKPiAgCj4gIHN0cnVjdCB1ZGV2X21vbml0b3IgKmlndF93YXRjaF9ob3RwbHVn KHZvaWQpOwo+ICBib29sIGlndF9ob3RwbHVnX2RldGVjdGVkKHN0cnVjdCB1ZGV2X21vbml0b3Ig Km1vbiwKPiBkaWZmIC0tZ2l0IGEvbGliL3Rlc3RzL2lndF9lZGlkLmMgYi9saWIvdGVzdHMvaWd0 X2VkaWQuYwo+IGluZGV4IGE4NDdkZjI3MjUyNS4uMWE3OGIzOGE5NDViIDEwMDY0NAo+IC0tLSBh L2xpYi90ZXN0cy9pZ3RfZWRpZC5jCj4gKysrIGIvbGliL3Rlc3RzL2lndF9lZGlkLmMKPiBAQCAt NzYsNiArNzYsNyBAQCBpZ3Rfc2ltcGxlX21haW4KPiAgCQl7ICJiYXNlIiwgaWd0X2ttc19nZXRf YmFzZV9lZGlkLCAwIH0sCj4gIAkJeyAiYWx0IiwgaWd0X2ttc19nZXRfYWx0X2VkaWQsIDAgfSwK PiAgCQl7ICJoZG1pX2F1ZGlvIiwgaWd0X2ttc19nZXRfaGRtaV9hdWRpb19lZGlkLCAxIH0sCj4g KwkJeyAiNGsiLCBpZ3Rfa21zX2dldF80a19lZGlkLCAxIH0sCj4gIAkJezB9LAo+ICAJfSwgKmY7 Cj4gIAljb25zdCB1bnNpZ25lZCBjaGFyICplZGlkOwo+IGRpZmYgLS1naXQgYS9saWIvdGVzdHMv aWd0X2hkbWlfaW5qZWN0LmMgYi9saWIvdGVzdHMvaWd0X2hkbWlfaW5qZWN0LmMKPiBpbmRleCAy NTM0YjFhMjNhY2IuLmM3MGMzMTk1Y2IxZCAxMDA2NDQKPiAtLS0gYS9saWIvdGVzdHMvaWd0X2hk bWlfaW5qZWN0LmMKPiArKysgYi9saWIvdGVzdHMvaWd0X2hkbWlfaW5qZWN0LmMKPiBAQCAtNzIs NyArNzIsNiBAQCBpZ3Rfc2ltcGxlX21haW4KPiAgCQloZG1pX2luamVjdF9mdW5jIGluamVjdDsK PiAgCX0gZnVuY3NbXSA9IHsKPiAgCQl7ICIzRCIsIGttc3Rlc3RfZWRpZF9hZGRfM2QgfSwKPiAt CQl7ICI0ayIsIGttc3Rlc3RfZWRpZF9hZGRfNGsgfSwKPiAgCQl7IE5VTEwsIE5VTEwgfSwKPiAg CX0sICpmOwo+ICAKPiBkaWZmIC0tZ2l0IGEvdGVzdHMva21zX2hkbWlfaW5qZWN0LmMgYi90ZXN0 cy9rbXNfaGRtaV9pbmplY3QuYwo+IGluZGV4IDlhOTY4ZmE5ZTUwZS4uNjAxOThmNTI5ODE3IDEw MDY0NAo+IC0tLSBhL3Rlc3RzL2ttc19oZG1pX2luamVjdC5jCj4gKysrIGIvdGVzdHMva21zX2hk bWlfaW5qZWN0LmMKPiBAQCAtNzYsOCArNzYsNyBAQCBnZXRfY29ubmVjdG9yKGludCBkcm1fZmQs IGRybU1vZGVSZXMgKnJlcykKPiAgc3RhdGljIHZvaWQKPiAgaGRtaV9pbmplY3RfNGsoaW50IGRy bV9mZCwgZHJtTW9kZUNvbm5lY3RvciAqY29ubmVjdG9yKQo+ICB7Cj4gLQl1bnNpZ25lZCBjaGFy ICplZGlkOwo+IC0Jc2l6ZV90IGxlbmd0aDsKPiArCWNvbnN0IHVuc2lnbmVkIGNoYXIgKmVkaWQ7 Cj4gIAlzdHJ1Y3Qga21zdGVzdF9jb25uZWN0b3JfY29uZmlnIGNvbmZpZzsKPiAgCWludCByZXQs IGNpZCwgaSwgY3J0Y19tYXNrID0gLTE7Cj4gIAlpbnQgZmJfaWQ7Cj4gQEAgLTkwLDkgKzg5LDcg QEAgaGRtaV9pbmplY3RfNGsoaW50IGRybV9mZCwgZHJtTW9kZUNvbm5lY3RvciAqY29ubmVjdG9y KQo+ICAJLyogNEsgcmVxdWlyZXMgYXQgbGVhc3QgSFNXICovCj4gIAlpZ3RfcmVxdWlyZShJU19I QVNXRUxMKGRldmlkKSB8fCBpbnRlbF9nZW4oZGV2aWQpID49IDgpOwo+ICAKPiAtCWttc3Rlc3Rf ZWRpZF9hZGRfNGsoaWd0X2ttc19nZXRfYmFzZV9lZGlkKCksIEVESURfTEVOR1RILCAmZWRpZCwK PiAtCQkJICAgICZsZW5ndGgpOwo+IC0KPiArCWVkaWQgPSBpZ3Rfa21zX2dldF80a19lZGlkKCk7 Cj4gIAlrbXN0ZXN0X2ZvcmNlX2VkaWQoZHJtX2ZkLCBjb25uZWN0b3IsIGVkaWQpOwo+ICAKPiAg CWlmICgha21zdGVzdF9mb3JjZV9jb25uZWN0b3IoZHJtX2ZkLCBjb25uZWN0b3IsIEZPUkNFX0NP Tk5FQ1RPUl9PTikpCj4gQEAgLTEzNSw4ICsxMzIsNiBAQCBoZG1pX2luamVjdF80ayhpbnQgZHJt X2ZkLCBkcm1Nb2RlQ29ubmVjdG9yICpjb25uZWN0b3IpCj4gIAo+ICAJa21zdGVzdF9mb3JjZV9j b25uZWN0b3IoZHJtX2ZkLCBjb25uZWN0b3IsIEZPUkNFX0NPTk5FQ1RPUl9VTlNQRUNJRklFRCk7 Cj4gIAlrbXN0ZXN0X2ZvcmNlX2VkaWQoZHJtX2ZkLCBjb25uZWN0b3IsIE5VTEwpOwo+IC0KPiAt CWZyZWUoZWRpZCk7Cj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkCj4gLS0gCj4gMi4yMi4wCj4gCj4g X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBpZ3QtZGV2 IG1haWxpbmcgbGlzdAo+IGlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pZ3QtZGV2CgotLSAKVmlsbGUg U3lyasOkbMOkCkludGVsCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCmlndC1kZXYgbWFpbGluZyBsaXN0CmlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0LWRldg==