From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [v11 1/4] drm: Add HDMI colorspace property Date: Thu, 7 Feb 2019 21:03:24 +0200 Message-ID: <20190207190324.GM20097@intel.com> References: <1549382617-8951-1-git-send-email-uma.shankar@intel.com> <1549382617-8951-2-git-send-email-uma.shankar@intel.com> <20190205163133.GS20097@intel.com> <20190205181307.GV20097@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Shankar, Uma" Cc: "intel-gfx@lists.freedesktop.org" , "Syrjala, Ville" , "dri-devel@lists.freedesktop.org" , "Lankhorst, Maarten" List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBGZWIgMDUsIDIwMTkgYXQgMDc6MjI6MzJQTSArMDAwMCwgU2hhbmthciwgVW1hIHdy b3RlOgo+IAo+IAo+ID4tLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+ID5Gcm9tOiBkcmktZGV2 ZWwgW21haWx0bzpkcmktZGV2ZWwtYm91bmNlc0BsaXN0cy5mcmVlZGVza3RvcC5vcmddIE9uIEJl aGFsZiBPZgo+ID5WaWxsZSBTeXJqw6Rsw6QKPiA+U2VudDogVHVlc2RheSwgRmVicnVhcnkgNSwg MjAxOSAxMTo0MyBQTQo+ID5UbzogU2hhbmthciwgVW1hIDx1bWEuc2hhbmthckBpbnRlbC5jb20+ Cj4gPkNjOiBpbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnOyBTeXJqYWxhLCBWaWxsZSA8 dmlsbGUuc3lyamFsYUBpbnRlbC5jb20+Owo+ID5MYW5raG9yc3QsIE1hYXJ0ZW4gPG1hYXJ0ZW4u bGFua2hvcnN0QGludGVsLmNvbT47IGRyaS0KPiA+ZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cj4gPlN1YmplY3Q6IFJlOiBbSW50ZWwtZ2Z4XSBbdjExIDEvNF0gZHJtOiBBZGQgSERNSSBjb2xv cnNwYWNlIHByb3BlcnR5Cj4gPgo+ID5PbiBUdWUsIEZlYiAwNSwgMjAxOSBhdCAwNTozMjoxNlBN ICswMDAwLCBTaGFua2FyLCBVbWEgd3JvdGU6Cj4gPj4KPiA+Pgo+ID4+ID4tLS0tLU9yaWdpbmFs IE1lc3NhZ2UtLS0tLQo+ID4+ID5Gcm9tOiBWaWxsZSBTeXJqw6Rsw6QgW21haWx0bzp2aWxsZS5z eXJqYWxhQGxpbnV4LmludGVsLmNvbV0KPiA+PiA+U2VudDogVHVlc2RheSwgRmVicnVhcnkgNSwg MjAxOSAxMDowMiBQTQo+ID4+ID5UbzogU2hhbmthciwgVW1hIDx1bWEuc2hhbmthckBpbnRlbC5j b20+Cj4gPj4gPkNjOiBpbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnOyBkcmktZGV2ZWxA bGlzdHMuZnJlZWRlc2t0b3Aub3JnOwo+ID4+ID5TeXJqYWxhLCBWaWxsZSA8dmlsbGUuc3lyamFs YUBpbnRlbC5jb20+OyBMYW5raG9yc3QsIE1hYXJ0ZW4KPiA+PiA+PG1hYXJ0ZW4ubGFua2hvcnN0 QGludGVsLmNvbT4KPiA+PiA+U3ViamVjdDogUmU6IFtJbnRlbC1nZnhdIFt2MTEgMS80XSBkcm06 IEFkZCBIRE1JIGNvbG9yc3BhY2UgcHJvcGVydHkKPiA+PiA+Cj4gPj4gPk9uIFR1ZSwgRmViIDA1 LCAyMDE5IGF0IDA5OjMzOjM0UE0gKzA1MzAsIFVtYSBTaGFua2FyIHdyb3RlOgo+ID4+ID4+IENy ZWF0ZSBhIG5ldyBjb25uZWN0b3IgcHJvcGVydHkgdG8gcHJvZ3JhbSBjb2xvcnNwYWNlIHRvIHNp bmsgZGV2aWNlcy4KPiA+PiA+PiBNb2Rlcm4gc2luayBkZXZpY2VzIHN1cHBvcnQgbW9yZSB0aGFu IDEgdHlwZSBvZiBjb2xvcnNwYWNlIGxpa2UKPiA+PiA+PiA2MDEsIDcwOSwgQlQyMDIwIGV0Yy4g VGhpcyBoZWxwcyB0byBzd2l0Y2ggYmFzZWQgb24gY29udGVudCB0eXBlCj4gPj4gPj4gd2hpY2gg aXMgdG8gYmUgZGlzcGxheWVkLiBUaGUgZGVjaXNpb24gbGllcyB3aXRoIGNvbXBvc2l0b3JzIGFz IHRvCj4gPj4gPj4gaW4gd2hpY2ggc2NlbmFyaW9zLCBhIHBhcnRpY3VsYXIgY29sb3JzcGFjZSB3 aWxsIGJlIHBpY2tlZC4KPiA+PiA+Pgo+ID4+ID4+IFRoaXMgd2lsbCBiZSBoZWxwZnVsIG1vc3Rs eSB0byBzd2l0Y2ggdG8gaGlnaGVyIGdhbXV0IGNvbG9yc3BhY2VzCj4gPj4gPj4gbGlrZQo+ID4+ ID4+IEJUMjAyMCB3aGVuIHRoZSBtZWRpYSBjb250ZW50IGlzIGVuY29kZWQgYXMgQlQyMDIwLiBU aGVyZWJ5IGdpdmluZwo+ID4+ID4+IGEgZ29vZCB2aXN1YWwgZXhwZXJpZW5jZSB0byB1c2Vycy4K PiA+PiA+Pgo+ID4+ID4+IFRoZSBleHBlY3RhdGlvbiBmcm9tIHVzZXJzcGFjZSBpcyB0aGF0IGl0 IHNob3VsZCBwYXJzZSB0aGUgRURJRCBhbmQKPiA+PiA+PiBnZXQgc3VwcG9ydGVkIGNvbG9yc3Bh Y2VzLiBVc2UgdGhpcyBwcm9wZXJ0eSBhbmQgc3dpdGNoIHRvIHRoZSBvbmUKPiA+PiA+PiBzdXBw b3J0ZWQuIFNpbmsgc3VwcG9ydGVkIGNvbG9yc3BhY2VzIHNob3VsZCBiZSByZXRyaWV2ZWQgYnkK PiA+PiA+PiB1c2Vyc3BhY2UgZnJvbSBFRElEIGFuZCBkcml2ZXIgd2lsbCBub3QgZXhwbGljaXRs eSBleHBvc2UgdGhlbS4KPiA+PiA+Pgo+ID4+ID4+IEJhc2ljYWxseSB0aGUgZXhwZWN0YXRpb24g ZnJvbSB1c2Vyc3BhY2UgaXM6Cj4gPj4gPj4gIC0gU2V0IHVwIENSVEMgREVHQU1NQS9DVE0vR0FN TUEgdG8gY29udmVydCB0byBzb21lIHNpbmsKPiA+PiA+PiAgICBjb2xvcnNwYWNlCj4gPj4gPj4g IC0gU2V0IHRoaXMgbmV3IHByb3BlcnR5IHRvIGxldCB0aGUgc2luayBrbm93IHdoYXQgaXQKPiA+ PiA+PiAgICBjb252ZXJ0ZWQgdGhlIENSVEMgb3V0cHV0IHRvLgo+ID4+ID4+Cj4gPj4gPj4gdjI6 IEFkZHJlc3NlZCBNYWFydGVuIGFuZCBWaWxsZSdzIHJldmlldyBjb21tZW50cy4gRW5oYW5jZWQg dGhlCj4gPj4gPj4gY29sb3JzcGFjZSBlbnVtIHRvIGluY29ycG9yYXRlIGJvdGggSERNSSBhbmQg RFAgc3VwcG9ydGVkIGNvbG9yc3BhY2VzLgo+ID4+ID4+IEFsc28sIGFkZGVkIGEgZGVmYXVsdCBv cHRpb24gZm9yIGNvbG9yc3BhY2UuCj4gPj4gPj4KPiA+PiA+PiB2MzogUmVtb3ZlZCBBZG9iZSBy ZWZlcmVuY2VzIGZyb20gZW51bSBkZWZpbml0aW9ucyBhcyBwZXIgVmlsbGUsCj4gPj4gPj4gSGFu cyBWZXJrdWlsIGFuZCBKb25hcyBLYXJsbWFuIHN1Z2dlc3Rpb25zLiBDaGFuZ2VkIERlZmF1bHQg dG8gYW4KPiA+PiA+PiB1bnNldCBzdGF0ZSB3aGVyZSBkcml2ZXIgd2lsbCBhc3NpZ24gdGhlIGNv bG9yc3BhY2UgaXMgbm90IGNob3Nlbgo+ID4+ID4+IGJ5IHVzZXIsIHN1Z2dlc3RlZCBieSBWaWxs ZSBhbmQgTWFhcnRlbi4gQWRkcmVzc2VkIG90aGVyIG1pc2MKPiA+PiA+PiByZXZpZXcgY29tbWVu dHMgZnJvbSBNYWFydGVuLiBTcGxpdCB0aGUgY2hhbmdlcyB0byBoYXZlIHNlcGFyYXRlCj4gPj4g Pj4gY29sb3JzcGFjZSBwcm9wZXJ0eSBmb3IgRFAgYW5kIEhETUkuCj4gPj4gPj4KPiA+PiA+PiB2 NDogQWRkcmVzc2VkIENocmlzIGFuZCBWaWxsZSdzIHJldmlldyBjb21tZW50cywgYW5kIGNyZWF0 ZWQgYQo+ID4+ID4+IGNvbW1vbiBjb2xvcnNwYWNlIHByb3BlcnR5IGZvciBEUCBhbmQgSERNSSwg ZmlsdGVyZWQgdGhlIGxpc3QgYmFzZWQKPiA+PiA+PiBvbiB0aGUgY29sb3JzcGFjZXMgc3VwcG9y dGVkIGJ5IHRoZSByZXNwZWN0aXZlIHByb3RvY29sIHN0YW5kYXJkLgo+ID4+ID4+Cj4gPj4gPj4g djU6IE1hZGUgdGhlIHByb3BlcnR5IGNyZWF0aW9uIGhlbHBlciBhY2NlcHQgZW51bSBsaXN0IGJh c2VkIG9uCj4gPj4gPj4gcGxhdGZvcm0gY2FwYWJpbHRpZXMgYXMgc3VnZ2VzdGVkIGJ5IFNoYXNo YW5rLiBDb25zb2xpZGF0ZWQgSERNSQo+ID4+ID4+IGFuZCBEUCBwcm9wZXJ0eSBjcmVhdGlvbiBp biB0aGUgY29tbW9uIGhlbHBlci4KPiA+PiA+Pgo+ID4+ID4+IHY2OiBBZGRyZXNzZWQgU2hhc2hh bmsncyByZXZpZXcgY29tbWVudHMuCj4gPj4gPj4KPiA+PiA+PiB2NzogQWRkZWQgZGVmaW5lcyBp bnN0ZWFkIG9mIGVudW0gaW4gdWFwaSBhcyBwZXIgQnJpYW4gU3RhcmtleSdzCj4gPj4gPj4gc3Vn Z2VzdGlvbiBpbiBvcmRlciB0byBnbyB3aXRoIHN0cmluZyBtYXRjaGluZyBhdCB1c2Vyc3BhY2Uu Cj4gPj4gPj4gVXBkYXRlZCB0aGUgY29tbWl0IG1lc3NhZ2UgdG8gYWRkIG1vcmUgZGV0YWlscyBh cyB3ZWxsIGtlcm5lbCBkb2NzLgo+ID4+ID4+Cj4gPj4gPj4gdjg6IEFkZHJlc3NlZCBNYWFydGVu J3MgcmV2aWV3IGNvbW1lbnRzLgo+ID4+ID4+Cj4gPj4gPj4gdjk6IFJlbW92ZWQgbWFjcm8gZGVm aW5lcyBmcm9tIHVhcGkgYXMgcGVyIEJyaWFuIFN0YXJrZXkgYW5kIERhbmllbAo+ID4+ID4+IFN0 b25lJ3MgY29tbWVudHMgYW5kIG1vdmVkIHRvIGRybSBpbmNsdWRlIGZpbGUuIE1vdmVkIGJhY2sg dG8gb2xkZXIKPiA+PiA+PiBkZXNpZ24gd2l0aCBleHBvc2luZyBhbGwgSERNSSBjb2xvcnNwYWNl cyB0byB1c2Vyc3BhY2Ugc2luY2UKPiA+PiA+PiBpbmZvZnJhbWUgY2FwYWJpbGl0eSBpcyB0aGVy ZSBldmVuIG9uIGxlZ2FjeSBwbGF0Zm9ybXMsIGFzIHBlcgo+ID4+ID4+IFZpbGxlJ3MgcmV2aWV3 IGNvbW1lbnRzLgo+ID4+ID4+Cj4gPj4gPj4gdjEwOiBGaXhlZCBzcGFyc2Ugd2FybmluZ3MsIHVw ZGF0ZWQgdGhlIFJCIGZyb20gTWFhcnRlbiBhbmQgSmFuaSdzIGFjay4KPiA+PiA+Pgo+ID4+ID4+ IHYxMTogQWRkcmVzc2VkIFZpbGxlJ3MgcmV2aWV3IGNvbW1lbnRzLiBVcGRhdGVkIHRoZSBNYWNy byBuYW1pbmcKPiA+PiA+PiBhbmQgYWRkZWQgRENJLVAzIGNvbG9yc3BhY2UgYXMgd2VsbCBkZWZp bmVkIGluIENFQSA4NjEuRyBzcGVjLgo+ID4+ID4+Cj4gPj4gPj4gU2lnbmVkLW9mZi1ieTogVW1h IFNoYW5rYXIgPHVtYS5zaGFua2FyQGludGVsLmNvbT4KPiA+PiA+PiBBY2tlZC1ieTogSmFuaSBO aWt1bGEgPGphbmkubmlrdWxhQGludGVsLmNvbT4KPiA+PiA+PiBSZXZpZXdlZC1ieTogU2hhc2hh bmsgU2hhcm1hIDxzaGFzaGFuay5zaGFybWFAaW50ZWwuY29tPgo+ID4+ID4+IFJldmlld2VkLWJ5 OiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwuY29tPgo+ ID4+ID4+IC0tLQo+ID4+ID4+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY191YXBpLmMgfCAg NCArKwo+ID4+ID4+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2Nvbm5lY3Rvci5jICAgfCA3OAo+ID4+ ID4rKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiA+PiA+PiAgaW5jbHVk ZS9kcm0vZHJtX2Nvbm5lY3Rvci5oICAgICAgIHwgNTAgKysrKysrKysrKysrKysrKysrKysrKysr Kwo+ID4+ID4+ICAzIGZpbGVzIGNoYW5nZWQsIDEzMiBpbnNlcnRpb25zKCspCj4gPj4gPj4KPiA+ PiA+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfdWFwaS5jCj4gPj4g Pj4gYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY191YXBpLmMKPiA+PiA+PiBpbmRleCA5YTFm NDFhLi45YjVkNDRmIDEwMDY0NAo+ID4+ID4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRv bWljX3VhcGkuYwo+ID4+ID4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX3VhcGku Ywo+ID4+ID4+IEBAIC03NDYsNiArNzQ2LDggQEAgc3RhdGljIGludAo+ID4+ID4+IGRybV9hdG9t aWNfY29ubmVjdG9yX3NldF9wcm9wZXJ0eShzdHJ1Y3QKPiA+PiA+ZHJtX2Nvbm5lY3RvciAqY29u bmVjdG9yLAo+ID4+ID4+ICAJCQlyZXR1cm4gLUVJTlZBTDsKPiA+PiA+PiAgCQl9Cj4gPj4gPj4g IAkJc3RhdGUtPmNvbnRlbnRfcHJvdGVjdGlvbiA9IHZhbDsKPiA+PiA+PiArCX0gZWxzZSBpZiAo cHJvcGVydHkgPT0gY29ubmVjdG9yLT5jb2xvcnNwYWNlX3Byb3BlcnR5KSB7Cj4gPj4gPj4gKwkJ c3RhdGUtPmNvbG9yc3BhY2UgPSB2YWw7Cj4gPj4gPj4gIAl9IGVsc2UgaWYgKHByb3BlcnR5ID09 IGNvbmZpZy0+d3JpdGViYWNrX2ZiX2lkX3Byb3BlcnR5KSB7Cj4gPj4gPj4gIAkJc3RydWN0IGRy bV9mcmFtZWJ1ZmZlciAqZmIgPSBkcm1fZnJhbWVidWZmZXJfbG9va3VwKGRldiwKPiA+PiA+TlVM TCwgdmFsKTsKPiA+PiA+PiAgCQlpbnQgcmV0ID0gZHJtX2F0b21pY19zZXRfd3JpdGViYWNrX2Zi X2Zvcl9jb25uZWN0b3Ioc3RhdGUsCj4gPj4gPmZiKTsgQEAKPiA+PiA+PiAtODE0LDYgKzgxNiw4 IEBAIHN0YXRpYyBpbnQKPiA+PiA+PiBkcm1fYXRvbWljX2Nvbm5lY3Rvcl9zZXRfcHJvcGVydHko c3RydWN0Cj4gPj4gPmRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiA+PiA+PiAgCQkqdmFsID0g c3RhdGUtPnBpY3R1cmVfYXNwZWN0X3JhdGlvOwo+ID4+ID4+ICAJfSBlbHNlIGlmIChwcm9wZXJ0 eSA9PSBjb25maWctPmNvbnRlbnRfdHlwZV9wcm9wZXJ0eSkgewo+ID4+ID4+ICAJCSp2YWwgPSBz dGF0ZS0+Y29udGVudF90eXBlOwo+ID4+ID4+ICsJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBjb25u ZWN0b3ItPmNvbG9yc3BhY2VfcHJvcGVydHkpIHsKPiA+PiA+PiArCQkqdmFsID0gc3RhdGUtPmNv bG9yc3BhY2U7Cj4gPj4gPj4gIAl9IGVsc2UgaWYgKHByb3BlcnR5ID09IGNvbm5lY3Rvci0+c2Nh bGluZ19tb2RlX3Byb3BlcnR5KSB7Cj4gPj4gPj4gIAkJKnZhbCA9IHN0YXRlLT5zY2FsaW5nX21v ZGU7Cj4gPj4gPj4gIAl9IGVsc2UgaWYgKHByb3BlcnR5ID09IGNvbm5lY3Rvci0+Y29udGVudF9w cm90ZWN0aW9uX3Byb3BlcnR5KSB7Cj4gPj4gPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fY29ubmVjdG9yLmMKPiA+PiA+PiBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY29ubmVjdG9y LmMgaW5kZXggODQ3NTM5Ni4uNDMwOTg3MyAxMDA2NDQKPiA+PiA+PiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vZHJtX2Nvbm5lY3Rvci5jCj4gPj4gPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9j b25uZWN0b3IuYwo+ID4+ID4+IEBAIC04MjYsNiArODI2LDMzIEBAIGludCBkcm1fZGlzcGxheV9p bmZvX3NldF9idXNfZm9ybWF0cyhzdHJ1Y3QKPiA+PiA+PiBkcm1fZGlzcGxheV9pbmZvICppbmZv LCAgfTsKPiA+PiA+PiBEUk1fRU5VTV9OQU1FX0ZOKGRybV9nZXRfY29udGVudF9wcm90ZWN0aW9u X25hbWUsCj4gPj4gPmRybV9jcF9lbnVtX2xpc3QpCj4gPj4gPj4KPiA+PiA+PiArc3RhdGljIGNv bnN0IHN0cnVjdCBkcm1fcHJvcF9lbnVtX2xpc3QgaGRtaV9jb2xvcnNwYWNlc1tdID0gewo+ID4+ ID4+ICsJLyogRm9yIERlZmF1bHQgY2FzZSwgZHJpdmVyIHdpbGwgc2V0IHRoZSBjb2xvcnNwYWNl ICovCj4gPj4gPj4gKwl7IERSTV9NT0RFX0NPTE9SSU1FVFJZX0RFRkFVTFQsICJEZWZhdWx0IiB9 LAo+ID4+ID4+ICsJLyogU3RhbmRhcmQgRGVmaW5pdGlvbiBDb2xvcmltZXRyeSBiYXNlZCBvbiBD RUEgODYxICovCj4gPj4gPj4gKwl7IERSTV9NT0RFX0NPTE9SSU1FVFJZX1NNUFRFXzE3ME0sICJT TVBURV8xNzBNIiB9LAo+ID4+ID4+ICsJeyBEUk1fTU9ERV9DT0xPUklNRVRSWV9CVDcwOSwgIkJU NzA5IiB9LAo+ID4+ID4+ICsJLyogU3RhbmRhcmQgRGVmaW5pdGlvbiBDb2xvcmltZXRyeSBiYXNl ZCBvbiBJRUMgNjE5NjYtMi00ICovCj4gPj4gPj4gKwl7IERSTV9NT0RFX0NPTE9SSU1FVFJZX1hW WUNDXzYwMSwgIlhWWUNDXzYwMSIgfSwKPiA+PiA+PiArCS8qIEhpZ2ggRGVmaW5pdGlvbiBDb2xv cmltZXRyeSBiYXNlZCBvbiBJRUMgNjE5NjYtMi00ICovCj4gPj4gPj4gKwl7IERSTV9NT0RFX0NP TE9SSU1FVFJZX1hWWUNDXzcwOSwgIlhWWUNDXzcwOSIgfSwKPiA+PiA+PiArCS8qIENvbG9yaW1l dHJ5IGJhc2VkIG9uIElFQyA2MTk2Ni0yLTEvQW1lbmRtZW50IDEgKi8KPiA+PiA+PiArCXsgRFJN X01PREVfQ09MT1JJTUVUUllfU1lDQ182MDEsICJTWUNDXzYwMSIgfSwKPiA+PiA+PiArCS8qIENv bG9yaW1ldHJ5IGJhc2VkIG9uIElFQyA2MTk2Ni0yLTUgWzMzXSAqLwo+ID4+ID4+ICsJeyBEUk1f TU9ERV9DT0xPUklNRVRSWV9PUFlDQ182MDEsICJvcFlDQ182MDEiIH0sCj4gPj4gPj4gKwkvKiBD b2xvcmltZXRyeSBiYXNlZCBvbiBJRUMgNjE5NjYtMi01ICovCj4gPj4gPj4gKwl7IERSTV9NT0RF X0NPTE9SSU1FVFJZX09QUkdCLCAib3BSR0IiIH0sCj4gPj4gPj4gKwkvKiBDb2xvcmltZXRyeSBi YXNlZCBvbiBJVFUtUiBCVC4yMDIwICovCj4gPj4gPj4gKwl7IERSTV9NT0RFX0NPTE9SSU1FVFJZ X0JUMjAyMF9ZQ0MsICJCVDIwMjBfWUNDIiB9LAo+ID4+ID4+ICsJLyogQ29sb3JpbWV0cnkgYmFz ZWQgb24gSVRVLVIgQlQuMjAyMCAqLwo+ID4+ID4+ICsJeyBEUk1fTU9ERV9DT0xPUklNRVRSWV9C VDIwMjBfUkdCLCAiQlQyMDIwX1JHQiIgfSwKPiA+PiA+PiArCS8qIENvbG9yaW1ldHJ5IGJhc2Vk IG9uIElUVS1SIEJULjIwMjAgKi8KPiA+PiA+PiArCXsgRFJNX01PREVfQ09MT1JJTUVUUllfQlQy MDIwX0NZQ0MsICJCVDIwMjBfQ1lDQyIgfSwKPiA+PiA+PiArCS8qIEFkZGVkIGFzIHBhcnQgb2Yg QWRkaXRpb25hbCBDb2xvcmltZXRyeSBFeHRlbnNpb24gaW4gODYxLkcgKi8KPiA+PiA+PiArCXsg RFJNX01PREVfQ09MT1JJTUVUUllfRENJX1AzX1JHQl9ENjUsICJEQ0ktUDNfUkdCX0Q2NSIgfSwK PiA+PiA+PiArCXsgRFJNX01PREVfQ09MT1JJTUVUUllfRENJX1AzX1JHQl9USEVBVEVSLCAiRENJ LQo+ID4+ID5QM19SR0JfVGhlYXRlciIgfSwKPiA+PiA+PiArfTsKPiA+PiA+PiArCj4gPj4gPj4g IC8qKgo+ID4+ID4+ICAgKiBET0M6IHN0YW5kYXJkIGNvbm5lY3RvciBwcm9wZXJ0aWVzCj4gPj4g Pj4gICAqCj4gPj4gPj4gQEAgLTE1NDgsNiArMTU3NSw1NyBAQCBpbnQKPiA+PiA+PiBkcm1fbW9k ZV9jcmVhdGVfYXNwZWN0X3JhdGlvX3Byb3BlcnR5KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4g Pj4gPj4gRVhQT1JUX1NZTUJPTChkcm1fbW9kZV9jcmVhdGVfYXNwZWN0X3JhdGlvX3Byb3BlcnR5 KTsKPiA+PiA+Pgo+ID4+ID4+ICAvKioKPiA+PiA+PiArICogRE9DOiBzdGFuZGFyZCBjb25uZWN0 b3IgcHJvcGVydGllcwo+ID4+ID4+ICsgKgo+ID4+ID4+ICsgKiBDb2xvcnNwYWNlOgo+ID4+ID4+ ICsgKiAgICAgZHJtX21vZGVfY3JlYXRlX2NvbG9yc3BhY2VfcHJvcGVydHkgLSBjcmVhdGUgY29s b3JzcGFjZSBwcm9wZXJ0eQo+ID4+ID4+ICsgKiAgICAgVGhpcyBwcm9wZXJ0eSBoZWxwcyBzZWxl Y3QgYSBzdWl0YWJsZSBjb2xvcnNwYWNlIGJhc2VkIG9uIHRoZSBzaW5rCj4gPj4gPj4gKyAqICAg ICBjYXBhYmlsaXR5LiBNb2Rlcm4gc2luayBkZXZpY2VzIHN1cHBvcnQgd2lkZXIgZ2FtdXQgbGlr ZSBCVDIwMjAuCj4gPj4gPj4gKyAqICAgICBUaGlzIGhlbHBzIHN3aXRjaCB0byBCVDIwMjAgbW9k ZSBpZiB0aGUgQlQyMDIwIGVuY29kZWQgdmlkZW8gc3RyZWFtCj4gPj4gPj4gKyAqICAgICBpcyBi ZWluZyBwbGF5ZWQgYnkgdGhlIHVzZXIsIHNhbWUgZm9yIGFueSBvdGhlciBjb2xvcnNwYWNlLiBU aGVyZWJ5Cj4gPj4gPj4gKyAqICAgICBnaXZpbmcgYSBnb29kIHZpc3VhbCBleHBlcmllbmNlIHRv IHVzZXJzLgo+ID4+ID4+ICsgKgo+ID4+ID4+ICsgKiAgICAgVGhlIGV4cGVjdGF0aW9uIGZyb20g dXNlcnNwYWNlIGlzIHRoYXQgaXQgc2hvdWxkIHBhcnNlIHRoZSBFRElECj4gPj4gPj4gKyAqICAg ICBhbmQgZ2V0IHN1cHBvcnRlZCBjb2xvcnNwYWNlcy4gVXNlIHRoaXMgcHJvcGVydHkgYW5kIHN3 aXRjaCB0byB0aGUKPiA+PiA+PiArICogICAgIG9uZSBzdXBwb3J0ZWQuIFNpbmsgc3VwcG9ydGVk IGNvbG9yc3BhY2VzIHNob3VsZCBiZSByZXRyaWV2ZWQgYnkKPiA+PiA+PiArICogICAgIHVzZXJz cGFjZSBmcm9tIEVESUQgYW5kIGRyaXZlciB3aWxsIG5vdCBleHBsaWNpdGx5IGV4cG9zZSB0aGVt Lgo+ID4+ID4+ICsgKgo+ID4+ID4+ICsgKiAgICAgQmFzaWNhbGx5IHRoZSBleHBlY3RhdGlvbiBm cm9tIHVzZXJzcGFjZSBpczoKPiA+PiA+PiArICogICAgICAtIFNldCB1cCBDUlRDIERFR0FNTUEv Q1RNL0dBTU1BIHRvIGNvbnZlcnQgdG8gc29tZSBzaW5rCj4gPj4gPj4gKyAqICAgICAgICBjb2xv cnNwYWNlCj4gPj4gPj4gKyAqICAgICAgLSBTZXQgdGhpcyBuZXcgcHJvcGVydHkgdG8gbGV0IHRo ZSBzaW5rIGtub3cgd2hhdCBpdAo+ID4+ID4+ICsgKiAgICAgICAgY29udmVydGVkIHRoZSBDUlRD IG91dHB1dCB0by4KPiA+PiA+PiArICogICAgICAtIFRoaXMgcHJvcGVydHkgaXMganVzdCB0byBp bmZvcm0gc2luayB3aGF0IGNvbG9yc3BhY2UKPiA+PiA+PiArICogICAgICAgIHNvdXJjZSBpcyB0 cnlpbmcgdG8gZHJpdmUuCj4gPj4gPj4gKyAqCj4gPj4gPj4gKyAqIENhbGxlZCBieSBhIGRyaXZl ciB0aGUgZmlyc3QgdGltZSBpdCdzIG5lZWRlZCwgbXVzdCBiZSBhdHRhY2hlZAo+ID4+ID4+ICt0 byBkZXNpcmVkCj4gPj4gPj4gKyAqIGNvbm5lY3RvcnMuCj4gPj4gPj4gKyAqLwo+ID4+ID4+ICtp bnQgZHJtX21vZGVfY3JlYXRlX2NvbG9yc3BhY2VfcHJvcGVydHkoc3RydWN0IGRybV9jb25uZWN0 b3IKPiA+PiA+PiArKmNvbm5lY3Rvcikgewo+ID4+ID4+ICsJc3RydWN0IGRybV9kZXZpY2UgKmRl diA9IGNvbm5lY3Rvci0+ZGV2Owo+ID4+ID4+ICsJc3RydWN0IGRybV9wcm9wZXJ0eSAqcHJvcDsK PiA+PiA+PiArCj4gPj4gPj4gKwlpZiAoY29ubmVjdG9yLT5jb25uZWN0b3JfdHlwZSA9PSBEUk1f TU9ERV9DT05ORUNUT1JfSERNSUEgfHwKPiA+PiA+PiArCSAgICBjb25uZWN0b3ItPmNvbm5lY3Rv cl90eXBlID09IERSTV9NT0RFX0NPTk5FQ1RPUl9IRE1JQikgewo+ID4+ID4+ICsJCXByb3AgPSBk cm1fcHJvcGVydHlfY3JlYXRlX2VudW0oZGV2LAo+ID4+ID5EUk1fTU9ERV9QUk9QX0VOVU0sCj4g Pj4gPj4gKwkJCQkJCSJDb2xvcnNwYWNlIiwKPiA+PiA+PiArCQkJCQkJaGRtaV9jb2xvcnNwYWNl cywKPiA+PiA+PiArCj4gPj4gPglBUlJBWV9TSVpFKGhkbWlfY29sb3JzcGFjZXMpKTsKPiA+PiA+ PiArCQlpZiAoIXByb3ApCj4gPj4gPj4gKwkJCXJldHVybiAtRU5PTUVNOwo+ID4+ID4+ICsJfSBl bHNlIHsKPiA+PiA+PiArCQlEUk1fREVCVUdfS01TKCJDb2xvcnNwYWNlIHByb3BlcnR5IG5vdCBz dXBwb3J0ZWRcbiIpOwo+ID4+ID4+ICsJCXJldHVybiAwOwo+ID4+ID4+ICsJfQo+ID4+ID4+ICsK PiA+PiA+PiArCWNvbm5lY3Rvci0+Y29sb3JzcGFjZV9wcm9wZXJ0eSA9IHByb3A7Cj4gPj4gPj4g Kwo+ID4+ID4+ICsJcmV0dXJuIDA7Cj4gPj4gPj4gK30KPiA+PiA+PiArRVhQT1JUX1NZTUJPTChk cm1fbW9kZV9jcmVhdGVfY29sb3JzcGFjZV9wcm9wZXJ0eSk7Cj4gPj4gPj4gKwo+ID4+ID4+ICsv KioKPiA+PiA+PiAgICogZHJtX21vZGVfY3JlYXRlX2NvbnRlbnRfdHlwZV9wcm9wZXJ0eSAtIGNy ZWF0ZSBjb250ZW50IHR5cGUgcHJvcGVydHkKPiA+PiA+PiAgICogQGRldjogRFJNIGRldmljZQo+ ID4+ID4+ICAgKgo+ID4+ID4+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fY29ubmVjdG9y LmgKPiA+PiA+PiBiL2luY2x1ZGUvZHJtL2RybV9jb25uZWN0b3IuaCBpbmRleCA5OTQxNjEzLi41 OGRiNjZlIDEwMDY0NAo+ID4+ID4+IC0tLSBhL2luY2x1ZGUvZHJtL2RybV9jb25uZWN0b3IuaAo+ ID4+ID4+ICsrKyBiL2luY2x1ZGUvZHJtL2RybV9jb25uZWN0b3IuaAo+ID4+ID4+IEBAIC0yNTMs NiArMjUzLDQyIEBAIGVudW0gZHJtX3BhbmVsX29yaWVudGF0aW9uIHsKPiA+PiA+PiAgCURSTV9N T0RFX1BBTkVMX09SSUVOVEFUSU9OX1JJR0hUX1VQLAo+ID4+ID4+ICB9Owo+ID4+ID4+Cj4gPj4g Pj4gKy8qCj4gPj4gPj4gKyAqIFRoaXMgaXMgYSBjb25zb2xpZGF0ZWQgY29sb3JpbWV0cnkgbGlz dCBzdXBwb3J0ZWQgYnkgSERNSSBhbmQKPiA+PiA+PiArICogRFAgcHJvdG9jb2wgc3RhbmRhcmQu IFRoZSByZXNwZWN0aXZlIGNvbm5lY3RvcnMgd2lsbCByZWdpc3Rlcgo+ID4+ID4+ICsgKiBhIHBy b3BlcnR5IHdpdGggdGhlIHN1YnNldCBvZiB0aGlzIGxpc3QgKHN1cHBvcnRlZCBieSB0aGF0Cj4g Pj4gPj4gKyAqIHJlc3BlY3RpdmUgcHJvdG9jb2wpLiBVc2Vyc3BhY2Ugd2lsbCBzZXQgdGhlIGNv bG9yc3BhY2UgdGhyb3VnaAo+ID4+ID4+ICsgKiBhIGNvbG9yc3BhY2UgcHJvcGVydHkgd2hpY2gg d2lsbCBiZSBjcmVhdGVkIGFuZCBleHBvc2VkIHRvCj4gPj4gPj4gKyAqIHVzZXJzcGFjZS4KPiA+ PiA+PiArICovCj4gPj4gPj4gKwo+ID4+ID4+ICsvKiBGb3IgRGVmYXVsdCBjYXNlLCBkcml2ZXIg d2lsbCBzZXQgdGhlIGNvbG9yc3BhY2UgKi8KPiA+PiA+PiArI2RlZmluZSBEUk1fTU9ERV9DT0xP UklNRVRSWV9ERUZBVUxUCQkJMAo+ID4+ID4+ICsvKiBDRUEgODYxIE5vcm1hbCBDb2xvcmltZXRy eSBvcHRpb25zICovCj4gPj4gPj4gKyNkZWZpbmUgRFJNX01PREVfQ09MT1JJTUVUUllfTk9fREFU QQkJCTAKPiA+PiA+PiArI2RlZmluZSBEUk1fTU9ERV9DT0xPUklNRVRSWV9TTVBURV8xNzBNCj4g PgkxCj4gPj4gPj4gKyNkZWZpbmUgRFJNX01PREVfQ09MT1JJTUVUUllfQlQ3MDkJCQkyCj4gPj4g Pgo+ID4+ID5TdGlsbCBtaXNzaW5nIHRoZSBZQ2JDciBpbmZvcm1hdGlvbiBpbiB0aGVzZSB0d28u Cj4gPj4KPiA+PiBBcyBwZXIgQ1RBIDg2MS5HIHNwZWMsIHdlIGhhdmUgdGhlc2UgYXMgb25seSBT TVBURV8xNzBNIGFuZCBJVFUtUgo+ID4+IEJUNzA5LCB3aXRoIG5vIHNwZWNpZmljIG1lbnRpb24g b2YgUkdCIG9yIFlDYkNyLiBIZW5jZSwga2VwdCBpdCBhcyBwZXIKPiA+PiBzcGVjLiBXZSBzZWVt IHRvIGhhdmUgYSBjb21tb24gZmllbGQgZm9yIGJvdGggYXMgcGVyIENUQSBzcGVjLiBDb3JyZWN0 Cj4gPj4gbWUgaWYgbXkgdW5kZXJzdGFuZGluZyBpcyB3cm9uZy4KPiA+Cj4gPkNoZWNrCj4gPiJU YWJsZSAxNCBQaWN0dXJlIENvbG9yaW1ldHJ5IEluZGljYXRlZCBieSB0aGUgUkdCIG9yIFlDIEIg QyBSIChZKSwgIENvbG9yaW1ldHJ5Cj4gPihDKSBhbmQgRXh0ZW5kZWQgQ29sb3JpbWV0cnkgKEVD KSBGaWVsZCBTZXR0aW5ncyIKPiAKPiBUaGVzZSAgWTIgWTEgWTAgdmFsdWVzIHNob3VsZCBiZSBw cm9ncmFtbWVkIHNlcGFyYXRlbHkgYW5kIG5vdCB0aHJvdWdoCj4gdGhlIGNvbG9yc3BhY2UgYXMg dGhleSBhcmUgZGF0YSBmb3JtYXRzIGlzbid0IGl0LiBJIGZlZWwgdGhpcyBzaG91bGQgZ2V0IGNv bnRyb2xsZWQKPiBzZXBhcmF0ZWx5IGluZGVwZW5kZW50IG9mIGNvbG9yaW1ldHJ5LCBvciBzaG91 bGQgd2UgYWRkIGFsbCB0aGUgWUNiQ3IgYW5kIFJHQgo+IHZlcnNpb25zIGFuZCBwcm9ncmFtIHRo ZW0gYXMgcGFydCBvZiB0aGlzIHByb3BlcnR5IGl0c2VsZiA/CgpJIGRvbid0IHRoaW5rIHdlIGNh biBzZXBhcmF0ZSB0aGVtLiBUaGUgdmFsdWVzIG9mIHRoZSBjb2xvcmltZXRyeQpiaXRzIGRvZXNu J3QgbWVhbiBhbnl0aGluZyB3aXRob3V0IHRoZSBZIGJpdHMuIEl0IHdvdWxkIG1ha2UgdGhlIHVh cGkKa2luZGEgY3JhenkgaWYgd2UgYWxsb3cgdGhlIHVzZXIgdG8gc3BlY2lmeSBCVC4yMDIwIFJH QiBidXQgdGhlbiB3ZQphY3R1YWxseSBzaWduYWwgQlQuMjAyMCBZQ2JDciBpbiB0aGUgaW5mb2Zy YW1lLCBvciB2aWNlIHZlcnNhLiBPcgp3ZSBqdXN0IHNpZ25hbCBhIHRvdGFsbHkgaW52YWxpZCB2 YWx1ZSBmb3IgYWxsIHRoZSBvdGhlciBjYXNlcy4KCj4gCj4gTXkgaWRlYSB3YXMganVzdCB0byB1 cGRhdGUgY29sb3JpbWV0cnkgZmllbGRzIGFsb25lIGFzIHBhcnQgb2YgdGhpcyBpbnRlcmZhY2Uu Cj4gCj4gPj4KPiA+PiA+Cj4gPj4gPj4gKy8qIENFQSA4NjEgRXh0ZW5kZWQgQ29sb3JpbWV0cnkg T3B0aW9ucyAqLwo+ID4+ID4+ICsjZGVmaW5lIERSTV9NT0RFX0NPTE9SSU1FVFJZX1hWWUNDXzYw MQkJCTMKPiA+PiA+PiArI2RlZmluZSBEUk1fTU9ERV9DT0xPUklNRVRSWV9YVllDQ183MDkJCQk0 Cj4gPj4gPj4gKyNkZWZpbmUgRFJNX01PREVfQ09MT1JJTUVUUllfU1lDQ182MDEJCQk1Cj4gPj4g Pj4gKyNkZWZpbmUgRFJNX01PREVfQ09MT1JJTUVUUllfT1BZQ0NfNjAxCQkJNgo+ID4+ID4+ICsj ZGVmaW5lIERSTV9NT0RFX0NPTE9SSU1FVFJZX09QUkdCCQkJNwo+ID4+ID4+ICsjZGVmaW5lIERS TV9NT0RFX0NPTE9SSU1FVFJZX0JUMjAyMF9ZQ0MJCQk4Cj4gPj4gPj4gKy8qIEJvdGggQlQyMDIw X1JHQiBhbmQgQlQyMDIwX1lDYkNiQ3IgaGF2ZSBzYW1lIHZhbHVlICovCj4gPj4gPj4gKyNkZWZp bmUgRFJNX01PREVfQ09MT1JJTUVUUllfQlQyMDIwX1JHQgkJCTkKPiA+PiA+PiArI2RlZmluZSBE Uk1fTU9ERV9DT0xPUklNRVRSWV9CVDIwMjBfQ1lDQwkJOQo+ID4+ID4KPiA+PiA+SSB0aG91Z2gg eW91IGRpZG4ndCB3YW50IHRoZXNlIG51bWJlcnMgdG8gYmUgYmFzZWQgb24gdGhlIHNwZWMKPiA+ PiA+bnVtYmVycz8gVGhpcyBkdXBsaWNhdGVkIHZhbHVlIHNlZW1zIHRvIGdvIGFnYWluc3QgdGhh dCBpZGVhLgo+ID4+Cj4gPj4gWWVhaCwgZm9yIEhETUkgc29tZWhvdyB3YXMgdHJ5aW5nIHRvIHV0 aWxpemUgdGhlIGRlZmluaXRpb25zIHRvCj4gPj4gYWR2YW50YWdlLiBCdXQgSSBmZWVsLCBJdCdz IGJldHRlciB0byBkZS1jb3VwbGUgdGhpcy4gRGVmaW5lIHRoaXMgYXMKPiA+PiBub3JtYWwgZW51 bSB2YWx1ZXMgc2VxdWVudGlhbGx5IHNvIHRoYXQgdXNlcnNwYWNlIGdldCByZWFkYWJsZSBzZXJp YWwgbnVtYmVyCj4gPmtpbmQgdmFsdWVzLgo+ID4+IEFuZCB1c2UgdGhlc2UgaW4gZW5jb2RlciBm aWxlcyB0byBnZXQgcHJvcGVyIHZhbHVlcyB0byBiZSBwcm9ncmFtbWVkCj4gPj4gYXMgcGVyIHJl c3BlY3RpdmUgc3BlYywgd2hpbGUgZGVmaW5pbmcgdGhvc2UgdmFsdWVzIHBlciBlbmNvZGVyIHNl cGFyYXRlbHkuCj4gPkhvcGUgdGhpcyBpcyBmaW5lLgo+ID4+Cj4gPj4gPj4gKy8qIEFkZGl0aW9u YWwgQ29sb3JpbWV0cnkgZXh0ZW5zaW9uIGFkZGVkIGFzIHBhcnQgb2YgQ1RBIDg2MS5HICovCj4g Pj4gPj4gKyNkZWZpbmUgRFJNX01PREVfQ09MT1JJTUVUUllfRENJX1AzX1JHQl9ENjUJCTEwCj4g Pj4gPj4gKyNkZWZpbmUgRFJNX01PREVfQ09MT1JJTUVUUllfRENJX1AzX1JHQl9USEVBVEVSCj4g PgkxMQo+ID4+ID4+ICsKPiA+PiA+PiArLyogRFAgTVNBIENvbG9yaW1ldHJ5IE9wdGlvbnMgKi8K PiA+PiA+PiArI2RlZmluZSBEUk1fTU9ERV9EUF9DT0xPUklNRVRSWV9ZQ0JDUl9JVFVfNjAxCQkx Mgo+ID4+ID4+ICsjZGVmaW5lIERSTV9NT0RFX0RQX0NPTE9SSU1FVFJZX1lDQkNSX0lUVV83MDkJ CTEzCj4gPj4gPgo+ID4+ID5TdGlsbCBpbmNvbnNpc3RlbnQgbmFtaW5nIGluIG1hbnkgcGxhY2Vz IChJVFVfIHZzLiBCVCwgWUNCQ1IgdnMuIFlDQywKPiA+PiA+b3JkZXIgb2YgdGhlIHR3bykuCj4g Pj4KPiA+PiBXaWxsIGZpeCB0aGlzLiBUaGFua3MgVmlsbGUuCj4gPj4KPiA+PiA+Cj4gPj4gPj4g KyNkZWZpbmUgRFJNX01PREVfRFBfQ09MT1JJTUVUUllfU1JHQgkJCTE0Cj4gPj4gPj4gKyNkZWZp bmUgRFJNX01PREVfRFBfQ09MT1JJTUVUUllfUkdCX1dJREVfR0FNVVQKPiA+CTE1Cj4gPj4gPj4g KyNkZWZpbmUgRFJNX01PREVfRFBfQ09MT1JJTUVUUllfU0NSR0IJCQkxNgo+ID4+ID4+ICsKPiA+ PiA+PiAgLyoqCj4gPj4gPj4gICAqIHN0cnVjdCBkcm1fZGlzcGxheV9pbmZvIC0gcnVudGltZSBk YXRhIGFib3V0IHRoZSBjb25uZWN0ZWQgc2luawo+ID4+ID4+ICAgKgo+ID4+ID4+IEBAIC01MDMs NiArNTM5LDEzIEBAIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlIHsKPiA+PiA+PiAgCXVuc2ln bmVkIGludCBjb250ZW50X3Byb3RlY3Rpb247Cj4gPj4gPj4KPiA+PiA+PiAgCS8qKgo+ID4+ID4+ ICsJICogQGNvbG9yc3BhY2U6IFN0YXRlIHZhcmlhYmxlIGZvciBDb25uZWN0b3IgcHJvcGVydHkg dG8gcmVxdWVzdAo+ID4+ID4+ICsJICogY29sb3JzcGFjZSBjaGFuZ2Ugb24gU2luay4gVGhpcyBp cyBtb3N0IGNvbW1vbmx5IHVzZWQgdG8gc3dpdGNoCj4gPj4gPj4gKwkgKiB0byB3aWRlciBjb2xv ciBnYW11dHMgbGlrZSBCVDIwMjAuCj4gPj4gPj4gKwkgKi8KPiA+PiA+PiArCXUzMiBjb2xvcnNw YWNlOwo+ID4+ID4+ICsKPiA+PiA+PiArCS8qKgo+ID4+ID4+ICAJICogQHdyaXRlYmFja19qb2I6 IFdyaXRlYmFjayBqb2IgZm9yIHdyaXRlYmFjayBjb25uZWN0b3JzCj4gPj4gPj4gIAkgKgo+ID4+ ID4+ICAJICogSG9sZHMgdGhlIGZyYW1lYnVmZmVyIGFuZCBvdXQtZmVuY2UgZm9yIGEgd3JpdGVi YWNrIGNvbm5lY3Rvci4KPiA+PiA+PiBBcyBAQCAtOTk1LDYgKzEwMzgsMTIgQEAgc3RydWN0IGRy bV9jb25uZWN0b3Igewo+ID4+ID4+ICAJc3RydWN0IGRybV9wcm9wZXJ0eSAqY29udGVudF9wcm90 ZWN0aW9uX3Byb3BlcnR5Owo+ID4+ID4+Cj4gPj4gPj4gIAkvKioKPiA+PiA+PiArCSAqIEBjb2xv cnNwYWNlX3Byb3BlcnR5OiBDb25uZWN0b3IgcHJvcGVydHkgdG8gc2V0IHRoZSBzdWl0YWJsZQo+ ID4+ID4+ICsJICogY29sb3JzcGFjZSBzdXBwb3J0ZWQgYnkgdGhlIHNpbmsuCj4gPj4gPj4gKwkg Ki8KPiA+PiA+PiArCXN0cnVjdCBkcm1fcHJvcGVydHkgKmNvbG9yc3BhY2VfcHJvcGVydHk7Cj4g Pj4gPj4gKwo+ID4+ID4+ICsJLyoqCj4gPj4gPj4gIAkgKiBAcGF0aF9ibG9iX3B0cjoKPiA+PiA+ PiAgCSAqCj4gPj4gPj4gIAkgKiBEUk0gYmxvYiBwcm9wZXJ0eSBkYXRhIGZvciB0aGUgRFAgTVNU IHBhdGggcHJvcGVydHkuIFRoaXMKPiA+PiA+PiBzaG91bGQgb25seSBAQCAtMTI2OSw2ICsxMzE4 LDcgQEAgaW50Cj4gPj4gPj4gZHJtX2Nvbm5lY3Rvcl9hdHRhY2hfdnJyX2NhcGFibGVfcHJvcGVy dHkoCj4gPj4gPj4gIGludCBkcm1fY29ubmVjdG9yX2F0dGFjaF9jb250ZW50X3Byb3RlY3Rpb25f cHJvcGVydHkoCj4gPj4gPj4gIAkJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rvcik7ICBp bnQKPiA+PiA+PiBkcm1fbW9kZV9jcmVhdGVfYXNwZWN0X3JhdGlvX3Byb3BlcnR5KHN0cnVjdCBk cm1fZGV2aWNlICpkZXYpOwo+ID4+ID4+ICtpbnQgZHJtX21vZGVfY3JlYXRlX2NvbG9yc3BhY2Vf cHJvcGVydHkoc3RydWN0IGRybV9jb25uZWN0b3IKPiA+PiA+PiArKmNvbm5lY3Rvcik7Cj4gPj4g Pj4gIGludCBkcm1fbW9kZV9jcmVhdGVfY29udGVudF90eXBlX3Byb3BlcnR5KHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYpOwo+ID4+ID4+IHZvaWQgZHJtX2hkbWlfYXZpX2luZm9mcmFtZV9jb250ZW50 X3R5cGUoc3RydWN0IGhkbWlfYXZpX2luZm9mcmFtZQo+ID4+ID4qZnJhbWUsCj4gPj4gPj4gIAkJ CQkJIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlCj4gPj4gPipjb25uX3N0YXRlKTsK PiA+PiA+PiAtLQo+ID4+ID4+IDEuOS4xCj4gPj4gPj4KPiA+PiA+PiBfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+ID4+ID4+IEludGVsLWdmeCBtYWlsaW5n IGxpc3QKPiA+PiA+PiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gPj4gPj4gaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKPiA+ PiA+Cj4gPj4gPi0tCj4gPj4gPlZpbGxlIFN5cmrDpGzDpAo+ID4+ID5JbnRlbAo+ID4KPiA+LS0K PiA+VmlsbGUgU3lyasOkbMOkCj4gPkludGVsCj4gPl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCj4gPmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKPiA+ZHJpLWRl dmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+ID5odHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAoKLS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbApf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZngg bWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK