From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH] drm: disable deep color when EDID violates spec Date: Wed, 11 Jan 2017 12:04:09 +0200 Message-ID: <87a8ax9ali.fsf@intel.com> References: <20170105234523.5899-1-nicholas.sielicki@gmail.com> <20170110105213.GW31595@intel.com> <20170110174608.GH31595@intel.com> <6d21d10b-01a4-55ca-3e6d-e93839e07bda@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id AAAB56E862 for ; Wed, 11 Jan 2017 10:04:12 +0000 (UTC) In-Reply-To: <6d21d10b-01a4-55ca-3e6d-e93839e07bda@amd.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Harry Wentland , dri-devel@lists.freedesktop.org, Ernst =?utf-8?Q?Sj=C3=B6strand?= , Nicholas Sielicki , "Deucher, Alexander" , Ville =?utf-8?B?U3ly?= =?utf-8?B?asOkbMOk?= List-Id: dri-devel@lists.freedesktop.org T24gVHVlLCAxMCBKYW4gMjAxNywgSGFycnkgV2VudGxhbmQgPGhhcnJ5LndlbnRsYW5kQGFtZC5j b20+IHdyb3RlOgo+IE9uIDIwMTctMDEtMTAgMDM6NDEgUE0sIEhhcnJ5IFdlbnRsYW5kIHdyb3Rl Ogo+PiBPbiAyMDE3LTAxLTEwIDAzOjEwIFBNLCBBbGV4IERldWNoZXIgd3JvdGU6Cj4+PiBPbiBU dWUsIEphbiAxMCwgMjAxNyBhdCAzOjAyIFBNLCBFcm5zdCBTasO2c3RyYW5kIDxlcm5zdHBAZ21h aWwuY29tPgo+Pj4gd3JvdGU6Cj4+Pj4gSSBraW5kb2YgYXNzdW1lIERQIGlzIHRoZSBkZWZhdWx0 IGNvbm5lY3Rpb24gdGhlc2UgZGF5cyBhbmQgd2l0aAo+Pj4+IEZyZWVzeW5jCj4+Pj4geW91IHVz ZQo+Pj4+IERQIG9yIGNvdXJzZSwgYnV0IHRoaXMgcXVlc3Rpb24gd2FzIHNwZWNpZmljYWxseSBm b3IgSERNSS4KPj4+PiBJIGd1ZXNzIHRoaXMgcGF0Y2ggZG9lc24ndCBhZmZlY3QgZGVlcCBjb2xv ciBvdmVyIERQPwo+Pj4+Cj4+Pj4gQW55d2F5LCBvbmx5IDE3IG9mIHRob3NlIG1vbml0b3JzIGhh dmUgRnJlZVN5bmMgYnV0IGFsbW9zdCBhbGwgaGF2ZQo+Pj4+IERQLCBzbwo+Pj4+IHBlcmhhcHMg dGhleSBvbmx5IHN1cHBvcnQKPj4+PiAxMCBicGMgd2hlbiBjb25uZWN0ZWQgd2l0aCBEUD8KPj4+ Cj4+PiBXZSBzZWUgMTAgYnBjIG9ubHkgb3ZlciBIRE1JIGEgbG90IGFwcGFyZW50bHkuICBJIGd1 ZXNzIGEgbG90IG9mCj4+PiBtb25pdG9yIHZlbmRvcnMgZG8gdGhlIG1pbmltdW0gbmVjZXNzYXJ5 IGZvciBkZWVwIGNvbG9yLgo+Pj4KPj4KPj4gWWVzLCBhcHBhcmVudGx5IHRoZXJlIGFyZSBhIGJ1 bmNoIG9mIEhETUkgZGlzcGxheXMgdGhhdCB3ZSBkcml2ZSBpbgo+PiAxMGJwYyB0aGF0IG1pZ2h0 IG9yIG1pZ2h0IG5vdCByZXBvcnQgMTJicGMgc3VwcG9ydC4gRnJvbSB0YWxraW5nIHRvIG91cgo+ PiBIRE1JIGd1eXMgaXQgc291bmRzIGxpa2UgdGhpcyBpcyBhIHNsaWdodGx5IGFtYmlndW91cyBh cmVhIGluIHRoZSBzcGVjLAo+PiBkZXNwaXRlIHdoYXQgdGhlIEhETUkgc3BlYyBxdW90ZSBtZW50 aW9uZWQgYnkgTmljaG9sYXMgc2FpZC4gSSdsbCBzZWUgaWYKPj4gSSBjYW4gZ2V0IG1vcmUgaW5m by4KPj4KPgo+IEFkZGluZyBFcm5zdCwgTmljaG9sYXMsIFZpbGxlLCBBbGV4IGFnYWluLgo+Cj4g U28gYXBwYXJlbnRseSB0aGUgc3BlYyBpcyBwcmV0dHkgY2xlYXIgYW5kIHRoZXJlJ3MgYSBzaW5r IGNvbXBsaWFuY2UgCj4gdGVzdCB0aGF0IHNob3VsZCBjb3ZlciB0aGlzLiBJIGRvbid0IHJlYWxs eSB0aGluayBpdCBtYWtlcyBzZW5zZSBmb3IgdGhlIAo+IHNvdXJjZSBkZXZpY2UgdG8gYmFieXNp dCB0aGUgc2luaydzIGJlaGF2aW9yLCB0aG91Z2guCj4KPiBJbiBnZW5lcmFsIHdlIG1pZ2h0IHdh bnQgdG8gdHJ5IGZvciBhIHNvbHV0aW9uIHRoYXQgZ2l2ZXMgdGhlIGJlc3QgdXNlciAKPiBleHBl cmllbmNlIGFuZCBoaWdoZXN0IGludGVyb3BlcmFiaWxpdHksIHNvIGNoZWNrIHdoYXQgc2luayBz dXBwb3J0cywgCj4gY2hlY2sgd2hhdCBzb3VyY2Ugc3VwcG9ydHMsIGNoZWNrIHdoYXQgY2FibGUg Y2FuIGRvLCBhbmQgZG8gYW4gCj4gaW50ZXJzZWN0aW9uIG9mIGFsbCB0byBnaXZlIHRoZSBiZXN0 IHVzZXIgZXhwZXJpZW5jZS4KPgo+IEkgc3VnZ2VzdCB0byBibG9jayAxMC1iaXQgb24gZHJpdmVy J3MgdGhhdCBjYW4ndCBoYW5kbGUgdGhpcy4KCkFncmVlZC4gUHJldHR5IG11Y2ggYm9pbHMgZG93 biB0byB3aGF0IEkgd3JvdGUgaW4gWzFdLgoKQlIsCkphbmkuCgpbMV0gaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvYXJjaGl2ZXMvZHJpLWRldmVsLzIwMTctSmFudWFyeS8xMjkzNzQuaHRt bAoKCgo+Cj4gSGFycnkKPgo+Cj4+IEknbSBub3Qgc3VyZSBpdCBtYWtlcyBzZW5zZSB0byBibG9j ayBhbGwgZGVlcCBjb2xvciBtb2RlcyBpbiB0aGlzIGNhc2UKPj4gZm9yIGFsbCBkcml2ZXJzLiBP dGhlciBIVyAoZS5nLiBBTUQncykgaXMgcGVyZmVjdGx5IGNhcGFibGUgb2YgZHJpdmluZwo+PiAx MC1iaXQuIFdvdWxkIGl0IG1ha2Ugc2Vuc2UgdG8ganVzdCBibG9jayB0aGlzIG9uIHRoZSBpOTE1 IHNpZGUgYXMgVmlsbGUKPj4gYWxsdWRlZCB0byBvbiBhbm90aGVyIHRocmVhZD8KPj4KPj4gSGFy cnkKPj4KPj4+IEFsZXgKPj4+Cj4+Pj4KPj4+PiBSZWdhcmRzCj4+Pj4gLy9Fcm5zdAo+Pj4+Cj4+ Pj4gMjAxNy0wMS0xMCAyMDo1NCBHTVQrMDE6MDAgQWxleCBEZXVjaGVyIDxhbGV4ZGV1Y2hlckBn bWFpbC5jb20+Ogo+Pj4+Pgo+Pj4+PiBPbiBUdWUsIEphbiAxMCwgMjAxNyBhdCAxMjo0NiBQTSwg VmlsbGUgU3lyasOkbMOkCj4+Pj4+IDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4gd3Jv dGU6Cj4+Pj4+PiBPbiBUdWUsIEphbiAxMCwgMjAxNyBhdCAxMjoyNzo0NVBNIC0wNTAwLCBBbGV4 IERldWNoZXIgd3JvdGU6Cj4+Pj4+Pj4gT24gVHVlLCBKYW4gMTAsIDIwMTcgYXQgNjozMyBBTSwg RXJuc3QgU2rDtnN0cmFuZCA8ZXJuc3RwQGdtYWlsLmNvbT4KPj4+Pj4+PiB3cm90ZToKPj4+Pj4+ Pj4gSXNuJ3QgMTBicGMgdmVyeSBjb21tb24gYW1vbmcgbW9uaXRvcnMsIGFuZCAxMmJwYyB2ZXJ5 IHJhcmU/IE9yCj4+Pj4+Pj4+IG1heWJlCj4+Pj4+Pj4+IEknbQo+Pj4+Pj4+PiBjb25mdXNpbmcg dGhlIHRyYW5zcG9ydCBsYXllciB3aXRoIHRoZSBwcmVzZW50YXRpb24gY2FwYWJpbGl0aWVzLi4u Pwo+Pj4+Pj4+PiBIZXJlIGFyZSAyMDEgbW9uaXRvcnMgdGhhdCBjbGFpbSAxMGJwYzoKPj4+Pj4+ Pj4gaHR0cDovL3ByaWNlc3B5LmNvLnVrL2NhdGVnb3J5LnBocD9sPXMzMDA4NTk0MzQmbz1lZ180 MDEjcHJvZGxpc3RhCj4+Pj4+Pj4+Cj4+Pj4+Pj4KPj4+Pj4+PiBGV0lXLCBJJ3ZlIGFsbW9zdCBu ZXZlciBzZWVuIGEgbW9uaXRvciB0aGF0IHN1cHBvcnRzIDEyIGJwYywgYnV0IEkndmUKPj4+Pj4+ PiBzZWUgcXVpdGUgYSBmZXcgMTAgYnBjIG1vbml0b3JzLgo+Pj4+Pj4KPj4+Pj4+IEkndmUgc2Vl biBwbGVudHkgb2YgbW9uaXRvcnMgdGhhdCBkbyAxMGJwYyBvdmVyIERQLCBidXQgSSd2ZSBuZXZl cgo+Pj4+Pj4gc2Vlbgo+Pj4+Pj4gYW55dGhpbmcgdGhhdCBkb2VzIDEwYnBjIG92ZXIgSERNSS4g MTJicGMgb3ZlciBIRE1JIGlzIHByZXR0eSBjb21tb24KPj4+Pj4+IGluICJwcm9wZXIiIFRWcyBp biBteSBleHBlcmllbmNlLgo+Pj4+Pj4KPj4+Pj4+PiBJIGNhbiB0YWxrIHRvIG91ciBkaXNwbGF5 IHRlYW0gdG8KPj4+Pj4+PiBzZWUgd2hhdCBvdGhlciBPU2VzIGRvLgo+Pj4+Pj4KPj4+Pj4+IFRo YW5rcy4gVGhhdCBzaG91bGQgZ2l2ZSB1cyBzb21lIGlkZWEgaWYgYW55b25lIGV2ZXIgdHJpZWQg MTBicGMKPj4+Pj4+IG92ZXIgSERNSSBvbiB0aGVzZSB0aGluZ3MuCj4+Pj4+Cj4+Pj4+IFdlIGFw cGFyZW50bHkgc2VlIHRoaXMgcHJldHR5IGNvbW1vbmx5LCBlc3BlY2lhbGx5IHdpdGggZnJlZXN5 bmMKPj4+Pj4gbW9uaXRvcnMsIGFuZCB3ZSBzdXBwb3J0IGl0LiAgSXQgc2VlbXMgdG8gYmUgcHJl dHR5IHByZXZhbGVudCBiZWNhdXNlCj4+Pj4+IHlvdSBjYW4gc3VwcG9ydCBhIGhpZ2hlciByZWZy ZXNoIHJhdGUgd2l0aCBhIGxvd2VyIGJwYy4KPj4+Pj4KPj4+Pj4gQWxleAo+Pj4+Pgo+Pj4+Pj4K Pj4+Pj4+Pgo+Pj4+Pj4+IEFsZXgKPj4+Pj4+Pgo+Pj4+Pj4+PiBSZWdhcmRzCj4+Pj4+Pj4+IC8v RXJuc3QKPj4+Pj4+Pj4KPj4+Pj4+Pj4gMjAxNy0wMS0xMCAxMTo1MiBHTVQrMDE6MDAgVmlsbGUg U3lyasOkbMOkCj4+Pj4+Pj4+IDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT46Cj4+Pj4+ Pj4+Pgo+Pj4+Pj4+Pj4gT24gVGh1LCBKYW4gMDUsIDIwMTcgYXQgMDU6NDU6MjNQTSAtMDYwMCwg TmljaG9sYXMgU2llbGlja2kgd3JvdGU6Cj4+Pj4+Pj4+Pj4gQXMgcGVyIHRoZSBIRE1JIDEuMyBh bmQgMS40IHNwZWMsICJkZWVwIGNvbG9yIG1vZGVzIiBhcmUgY29sb3IKPj4+Pj4+Pj4+PiBkZXB0 aHMKPj4+Pj4+Pj4+PiBncmVhdGVyIHRoYW4gMjQgYml0cyBwZXIgcGl4ZWwuIFRoZSBzcGVjIGV4 cGxpY2l0bHkgc3RhdGVzLCAiQWxsCj4+Pj4+Pj4+Pj4gRGVlcAo+Pj4+Pj4+Pj4+IENvbG9yIG1v ZGVzIGFyZSBvcHRpb25hbCB0aG91Z2ggaWYgYW4gSERNSSBTb3VyY2Ugb3IgU2luayBzdXBwb3J0 cwo+Pj4+Pj4+Pj4+IGFueQo+Pj4+Pj4+Pj4+IERlZXAgQ29sb3IgbW9kZSwgaXQgc2hhbGwgc3Vw cG9ydCAzNi1iaXQgbW9kZS4iICg2LjIuNCBDb2xvciBEZXB0aAo+Pj4+Pj4+Pj4+IFJlcXVpcmVt ZW50cykuCj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+PiBJIGNhbWUgYWNyb3NzIGEgbW9uaXRvciAoQWNl ciBYMjMzSCkgdGhhdCBzdXBwbGllcyBhbiBpbGxlZ2FsIEVESUQKPj4+Pj4+Pj4+PiB3aGVyZQo+ Pj4+Pj4+Pj4+IERDXzMwYml0IGlzIHNldCBhbmQgRENfMzZiaXQgaXMgbm90IHNldC4gVGhlIGVu ZCByZXN1bHQgaXMgYmFkbHkKPj4+Pj4+Pj4+PiBnYXJibGVkCj4+Pj4+Pj4+Pj4gb3V0cHV0IGJl Y2F1c2UgdGhlIGRyaXZlciBpcyBzZW5kaW5nIDM2QlBQIHdoZW4gdGhlIG1vbml0b3IgY2FuJ3QK Pj4+Pj4+Pj4+PiBoYW5kbGUKPj4+Pj4+Pj4+PiBpdC4KPj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+IE11 Y2ggb2YgdGhlIGludGVsIGhhcmR3YXJlIGlzIGluY2FwYWJsZSBvZiBvcGVyYXRpbmcgYXQgYW55 Cj4+Pj4+Pj4+Pj4gYml0LXBlci1jb21wb25lbnQgc2V0dGluZyBvdXRzaWRlIG9mIDggb3IgMTIs IGFuZCB0aGUgc3BlYyBzZWVtcwo+Pj4+Pj4+Pj4+IHRvCj4+Pj4+Pj4+Pj4gaW1wbHkgdGhhdCBp ZiBhbnkgZGVlcCBjb2xvciBzdXBwb3J0IGlzIGZvdW5kLCB0aGVuIGl0IGlzIGEgc2FmZQo+Pj4+ Pj4+Pj4+IGFzc3VtcHRpb24gdG8gb3BlcmF0ZSBhdCAxMi4KPj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+ IFRoaXMgcGF0Y2ggZW5zdXJlcyB0aGF0IHRoZSBFRElEIGlzIHdpdGhpbiB0aGUgc3BlYyAoc3Bl Y2lmaWNhbGx5LAo+Pj4+Pj4+Pj4+IHRoYXQKPj4+Pj4+Pj4+PiBEQ18zNmJpdCBpcyBzZXQpIGJl Zm9yZSBjb21taXR0aW5nIHRvIGdvaW5nIGZvcndhcmQgd2l0aCBhbnkgZGVlcAo+Pj4+Pj4+Pj4+ IGNvbG9ycy4gIFRoZXJlIHdhcyBhbHJlYWR5IGEgY2hlY2sgZm9yIHRoaXMgRURJRCBpbmNvbnNp c3RlbmN5LAo+Pj4+Pj4+Pj4+IGJ1dCBpdAo+Pj4+Pj4+Pj4+IHJlc3VsdGVkIG9ubHkgaW4gYSB3 YXJuaW5nIGFuZCBkaWQgbm90IGZhbGwtYmFjayB0byBzYWZlcgo+Pj4+Pj4+Pj4+IHNldHRpbmdz Lgo+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4gQ0M6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFs YUBsaW51eC5pbnRlbC5jb20+Cj4+Pj4+Pj4+Pj4gU2lnbmVkLW9mZi1ieTogTmljaG9sYXMgU2ll bGlja2kgPG5pY2hvbGFzLnNpZWxpY2tpQGdtYWlsLmNvbT4KPj4+Pj4+Pj4+PiAtLS0KPj4+Pj4+ Pj4+PiAgZHJpdmVycy9ncHUvZHJtL2RybV9lZGlkLmMgfCAzNQo+Pj4+Pj4+Pj4+ICsrKysrKysr KysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tCj4+Pj4+Pj4+Pj4gIDEgZmlsZSBjaGFuZ2VkLCAy MyBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMoLSkKPj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2VkaWQuYwo+Pj4+Pj4+Pj4+IGIvZHJpdmVy cy9ncHUvZHJtL2RybV9lZGlkLmMKPj4+Pj4+Pj4+PiBpbmRleCAzMzZiZTMxZmYzZGUuLjQyY2Uz ZjU0ZDJkYyAxMDA2NDQKPj4+Pj4+Pj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2VkaWQu Ywo+Pj4+Pj4+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZWRpZC5jCj4+Pj4+Pj4+Pj4g QEAgLTM3NzIsMzAgKzM3NzIsMzQgQEAgc3RhdGljIHZvaWQKPj4+Pj4+Pj4+PiBkcm1fcGFyc2Vf aGRtaV9kZWVwX2NvbG9yX2luZm8oc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPj4+ Pj4+Pj4+PiAgewo+Pj4+Pj4+Pj4+ICAgICAgIHN0cnVjdCBkcm1fZGlzcGxheV9pbmZvICppbmZv ID0gJmNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvOwo+Pj4+Pj4+Pj4+ICAgICAgIHVuc2lnbmVkIGlu dCBkY19icGMgPSAwOwo+Pj4+Pj4+Pj4+ICsgICAgIHU4IG1vZGVzID0gMDsKPj4+Pj4+Pj4+Pgo+ Pj4+Pj4+Pj4+ICAgICAgIC8qIEhETUkgc3VwcG9ydHMgYXQgbGVhc3QgOCBicGMgKi8KPj4+Pj4+ Pj4+PiAgICAgICBpbmZvLT5icGMgPSA4Owo+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4gKyAgICAgLyog RW5zdXJlIGFsbCBEQyBtb2RlcyBhcmUgdW5zZXQgaWYgd2UgcmV0dXJuIGVhcmx5ICovCj4+Pj4+ Pj4+Pj4gKyAgICAgaW5mby0+ZWRpZF9oZG1pX2RjX21vZGVzID0gMDsKPj4+Pj4+Pj4+Cj4+Pj4+ Pj4+PiBDbGVhcmluZyB0aGlzIGluIGRybV9hZGRfZGlzcGxheV9pbmZvKCkgc2hvdWxkIGJlIHN1 ZmZpY2llbnQgc2luY2UKPj4+Pj4+Pj4+IHRoaXMgZ3V5IGRvZXNuJ3QgZ2V0IGNhbGxlZCBmcm9t IGFueXdoZXJlIGVsc2UuIFNvIHRoaXMgcGFydCBjb3VsZAo+Pj4+Pj4+Pj4gYmUgZHJvcHBwZWQu Cj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gT3RoZXJ3aXNlIHRoaXMgZmVlbHMgbGlrZSBhIGRlY2VudCB3 YXkgdG8gaGFuZGxlIHRoZSBwcm9ibGVtLiBXZQo+Pj4+Pj4+Pj4gY291bGQgb2YgY291cnNlIHRy eSB0byB1c2UgdGhlIDEwYnBjIChvciB3aGF0ZXZlcikgZGVlcCBjb2xvciBtb2Rlcwo+Pj4+Pj4+ Pj4gdGhlIHNpbmsgY2xhaW1zIHRvIHN1cHBvcnQsIGJ1dCBnaXZlbiB0aGF0IHRoZSBwZW9wbGUg ZGVzaWduaW5nIHRoZQo+Pj4+Pj4+Pj4gdGhpbmcgZGlkbid0IGJvdGhlciByZWFkaW5nIHRoZSBz cGVjLCBpdCBzZWVtcyBzYWZlciB0byBqdXN0Cj4+Pj4+Pj4+PiBkaXNhYmxlCj4+Pj4+Pj4+PiBk ZWVwIGNvbG9yIHN1cHBvcnQgZW50aXJlbHkuCj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gUmV2aWV3ZWQt Ynk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4+Pj4+ Pj4+Pgo+Pj4+Pj4+Pj4+ICsKPj4+Pj4+Pj4+PiAgICAgICBpZiAoY2VhX2RiX3BheWxvYWRfbGVu KGhkbWkpIDwgNikKPj4+Pj4+Pj4+PiAgICAgICAgICAgICAgIHJldHVybjsKPj4+Pj4+Pj4+Pgo+ Pj4+Pj4+Pj4+ICAgICAgIGlmIChoZG1pWzZdICYgRFJNX0VESURfSERNSV9EQ18zMCkgewo+Pj4+ Pj4+Pj4+ICAgICAgICAgICAgICAgZGNfYnBjID0gMTA7Cj4+Pj4+Pj4+Pj4gLSAgICAgICAgICAg ICBpbmZvLT5lZGlkX2hkbWlfZGNfbW9kZXMgfD0gRFJNX0VESURfSERNSV9EQ18zMDsKPj4+Pj4+ Pj4+PiArICAgICAgICAgICAgIG1vZGVzIHw9IERSTV9FRElEX0hETUlfRENfMzA7Cj4+Pj4+Pj4+ Pj4gICAgICAgICAgICAgICBEUk1fREVCVUcoIiVzOiBIRE1JIHNpbmsgZG9lcyBkZWVwIGNvbG9y IDMwLlxuIiwKPj4+Pj4+Pj4+PiAgICAgICAgICAgICAgICAgICAgICAgICBjb25uZWN0b3ItPm5h bWUpOwo+Pj4+Pj4+Pj4+ICAgICAgIH0KPj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+ICAgICAgIGlmICho ZG1pWzZdICYgRFJNX0VESURfSERNSV9EQ18zNikgewo+Pj4+Pj4+Pj4+ICAgICAgICAgICAgICAg ZGNfYnBjID0gMTI7Cj4+Pj4+Pj4+Pj4gLSAgICAgICAgICAgICBpbmZvLT5lZGlkX2hkbWlfZGNf bW9kZXMgfD0gRFJNX0VESURfSERNSV9EQ18zNjsKPj4+Pj4+Pj4+PiArICAgICAgICAgICAgIG1v ZGVzIHw9IERSTV9FRElEX0hETUlfRENfMzY7Cj4+Pj4+Pj4+Pj4gICAgICAgICAgICAgICBEUk1f REVCVUcoIiVzOiBIRE1JIHNpbmsgZG9lcyBkZWVwIGNvbG9yIDM2LlxuIiwKPj4+Pj4+ICA+PiA+ ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rvci0+bmFtZSk7Cj4+Pj4+Pj4+Pj4gICAg ICAgfQo+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4gICAgICAgaWYgKGhkbWlbNl0gJiBEUk1fRURJRF9I RE1JX0RDXzQ4KSB7Cj4+Pj4+Pj4+Pj4gICAgICAgICAgICAgICBkY19icGMgPSAxNjsKPj4+Pj4+ Pj4+PiAtICAgICAgICAgICAgIGluZm8tPmVkaWRfaGRtaV9kY19tb2RlcyB8PSBEUk1fRURJRF9I RE1JX0RDXzQ4Owo+Pj4+Pj4+Pj4+ICsgICAgICAgICAgICAgbW9kZXMgfD0gRFJNX0VESURfSERN SV9EQ180ODsKPj4+Pj4+Pj4+PiAgICAgICAgICAgICAgIERSTV9ERUJVRygiJXM6IEhETUkgc2lu ayBkb2VzIGRlZXAgY29sb3IgNDguXG4iLAo+Pj4+Pj4+Pj4+ICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbm5lY3Rvci0+bmFtZSk7Cj4+Pj4+Pj4+Pj4gICAgICAgfQo+Pj4+Pj4+Pj4+IEBAIC0z ODA2LDkgKzM4MTAsMjQgQEAgc3RhdGljIHZvaWQKPj4+Pj4+Pj4+PiBkcm1fcGFyc2VfaGRtaV9k ZWVwX2NvbG9yX2luZm8oc3RydWN0Cj4+Pj4+Pj4+Pj4gZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9y LAo+Pj4+Pj4+Pj4+ICAgICAgICAgICAgICAgcmV0dXJuOwo+Pj4+Pj4+Pj4+ICAgICAgIH0KPj4+ Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+ICsgICAgIC8qCj4+Pj4+Pj4+Pj4gKyAgICAgICogQWxsIGRlZXAg Y29sb3IgbW9kZXMgYXJlIG9wdGlvbmFsLCBidXQgaWYgYSBzaW5rIHN1cHBvcnRzCj4+Pj4+Pj4+ Pj4gYW55Cj4+Pj4+Pj4+Pj4gZGVlcAo+Pj4+Pj4+Pj4+ICsgICAgICAqIGNvbG9yIG1vZGUsIGl0 IG11c3Qgc3VwcG9ydCAzNi1iaXQgbW9kZS4gSWYgdGhpcyBpcyBmb3VuZAo+Pj4+Pj4+Pj4+IG5v dAo+Pj4+Pj4+Pj4+ICsgICAgICAqIHRvIGJlIHRoZSBjYXNlLCBzaW5rIGlzIGluIHZpb2xhdGlv biBvZiBIRE1JIDEuMyAvIDEuNAo+Pj4+Pj4+Pj4+IHNwZWMgYW5kCj4+Pj4+Pj4+Pj4gaXQKPj4+ Pj4+Pj4+PiArICAgICAgKiBpcyBwcnVkZW50IHRvIGRpc2FibGUgYWxsIGRlZXAgY29sb3IgbW9k ZXMuIFJldHVybiBoZXJlCj4+Pj4+Pj4+Pj4gYmVmb3JlCj4+Pj4+Pj4+Pj4gKyAgICAgICogY29t bWl0dGluZyBicGMgYW5kIGVkaWRfaGRtaV9kY19tb2Rlcy4KPj4+Pj4+Pj4+PiArICAgICAgKi8K Pj4+Pj4+Pj4+PiArICAgICBpZiAoIShtb2RlcyAmIERSTV9FRElEX0hETUlfRENfMzYpKSB7Cj4+ Pj4+Pj4+Pj4gKyAgICAgICAgICAgICBEUk1fREVCVUcoIiVzOiBIRE1JIHNpbmsgc2hvdWxkIGRv IERDXzM2LCBidXQgZG9lcwo+Pj4+Pj4+Pj4+IG5vdCFcbiIsCj4+Pj4+Pj4+Pj4gKyAgICAgICAg ICAgICAgICAgICAgICAgY29ubmVjdG9yLT5uYW1lKTsKPj4+Pj4+Pj4+PiArICAgICAgICAgICAg IHJldHVybjsKPj4+Pj4+Pj4+PiArICAgICB9Cj4+Pj4+Pj4+Pj4gKwo+Pj4+Pj4+Pj4+ICsKPj4+ Pj4+Pj4+PiAgICAgICBEUk1fREVCVUcoIiVzOiBBc3NpZ25pbmcgSERNSSBzaW5rIGNvbG9yIGRl cHRoIGFzICVkCj4+Pj4+Pj4+Pj4gYnBjLlxuIiwKPj4+Pj4+Pj4+PiAgICAgICAgICAgICAgICAg Y29ubmVjdG9yLT5uYW1lLCBkY19icGMpOwo+Pj4+Pj4+Pj4+ICAgICAgIGluZm8tPmJwYyA9IGRj X2JwYzsKPj4+Pj4+Pj4+PiArICAgICBpbmZvLT5lZGlkX2hkbWlfZGNfbW9kZXMgPSBtb2RlczsK Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+ICAgICAgIC8qCj4+Pj4+Pj4+Pj4gICAgICAgICogRGVlcCBj b2xvciBzdXBwb3J0IG1hbmRhdGVzIFJHQjQ0NCBzdXBwb3J0IGZvciBhbGwgdmlkZW8KPj4+Pj4+ Pj4+PiBAQCAtMzgyMywxNSArMzg0Miw2IEBAIHN0YXRpYyB2b2lkCj4+Pj4+Pj4+Pj4gZHJtX3Bh cnNlX2hkbWlfZGVlcF9jb2xvcl9pbmZvKHN0cnVjdAo+Pj4+Pj4+Pj4+IGRybV9jb25uZWN0b3Ig KmNvbm5lY3RvciwKPj4+Pj4+Pj4+PiAgICAgICAgICAgICAgIERSTV9ERUJVRygiJXM6IEhETUkg c2luayBkb2VzIFlDUkNCNDQ0IGluIGRlZXAKPj4+Pj4+Pj4+PiBjb2xvci5cbiIsCj4+Pj4+Pj4+ Pj4gICAgICAgICAgICAgICAgICAgICAgICAgY29ubmVjdG9yLT5uYW1lKTsKPj4+Pj4+Pj4+PiAg ICAgICB9Cj4+Pj4+Pj4+Pj4gLQo+Pj4+Pj4+Pj4+IC0gICAgIC8qCj4+Pj4+Pj4+Pj4gLSAgICAg ICogU3BlYyBzYXlzIHRoYXQgaWYgYW55IGRlZXAgY29sb3IgbW9kZSBpcyBzdXBwb3J0ZWQgYXQK Pj4+Pj4+Pj4+PiBhbGwsCj4+Pj4+Pj4+Pj4gLSAgICAgICogdGhlbiBkZWVwIGNvbG9yIDM2IGJp dCBtdXN0IGJlIHN1cHBvcnRlZC4KPj4+Pj4+Pj4+PiAtICAgICAgKi8KPj4+Pj4+Pj4+PiAtICAg ICBpZiAoIShoZG1pWzZdICYgRFJNX0VESURfSERNSV9EQ18zNikpIHsKPj4+Pj4+Pj4+PiAtICAg ICAgICAgICAgIERSTV9ERUJVRygiJXM6IEhETUkgc2luayBzaG91bGQgZG8gRENfMzYsIGJ1dCBk b2VzCj4+Pj4+Pj4+Pj4gbm90IVxuIiwKPj4+Pj4+Pj4+PiAtICAgICAgICAgICAgICAgICAgICAg ICBjb25uZWN0b3ItPm5hbWUpOwo+Pj4+Pj4+Pj4+IC0gICAgIH0KPj4+Pj4+Pj4+PiAgfQo+Pj4+ Pj4+Pj4+Cj4+Pj4+Pj4+Pj4gIHN0YXRpYyB2b2lkCj4+Pj4+Pj4+Pj4gQEAgLTM4OTUsNiArMzkw NSw3IEBAIHN0YXRpYyB2b2lkIGRybV9hZGRfZGlzcGxheV9pbmZvKHN0cnVjdAo+Pj4+Pj4+Pj4+ IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPj4+Pj4+Pj4+PiAgICAgICAvKiBkcml2ZXIgZmln dXJlcyBpdCBvdXQgaW4gdGhpcyBjYXNlICovCj4+Pj4+Pj4+Pj4gICAgICAgaW5mby0+YnBjID0g MDsKPj4+Pj4+Pj4+PiAgICAgICBpbmZvLT5jb2xvcl9mb3JtYXRzID0gMDsKPj4+Pj4+Pj4+PiAr ICAgICBpbmZvLT5lZGlkX2hkbWlfZGNfbW9kZXMgPSAwOwo+Pj4+Pj4+Pj4+ICAgICAgIGluZm8t PmNlYV9yZXYgPSAwOwo+Pj4+Pj4+Pj4+ICAgICAgIGluZm8tPm1heF90bWRzX2Nsb2NrID0gMDsK Pj4+Pj4+Pj4+PiAgICAgICBpbmZvLT5kdmlfZHVhbCA9IGZhbHNlOwo+Pj4+Pj4+Pj4+IC0tCj4+ Pj4+Pj4+Pj4gMi4xMS4wCj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gLS0KPj4+Pj4+Pj4+IFZpbGxlIFN5 cmrDpGzDpAo+Pj4+Pj4+Pj4gSW50ZWwgT1RDCj4+Pj4+Pj4+PiBfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+Pj4+Pj4+Pj4gZHJpLWRldmVsIG1haWxpbmcg bGlzdAo+Pj4+Pj4+Pj4gZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+Pj4+Pj4+Pj4g aHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK Pj4+Pj4+Pj4KPj4+Pj4+Pj4KPj4+Pj4+Pj4KPj4+Pj4+Pj4gX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KPj4+Pj4+Pj4gZHJpLWRldmVsIG1haWxpbmcgbGlz dAo+Pj4+Pj4+PiBkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4+Pj4+Pj4+IGh0dHBz Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCj4+Pj4+ Pj4+Cj4+Pj4+Pgo+Pj4+Pj4gLS0KPj4+Pj4+IFZpbGxlIFN5cmrDpGzDpAo+Pj4+Pj4gSW50ZWwg T1RDCj4+Pj4KPj4+Pgo+Pj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KPj4+IGRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKPj4+IGRyaS1kZXZlbEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKPj4+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vZHJpLWRldmVsCj4+Pgo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCj4gZHJpLWRldmVsIG1haWxpbmcgbGlzdAo+IGRyaS1kZXZlbEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2RyaS1kZXZlbAoKLS0gCkphbmkgTmlrdWxhLCBJbnRlbCBPcGVuIFNvdXJjZSBU ZWNobm9sb2d5IENlbnRlcgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmkt ZGV2ZWwK