From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Sharma, Shashank" Subject: Re: [Intel-gfx] [v11 1/4] drm: Add HDMI colorspace property Date: Fri, 8 Feb 2019 18:36:39 +0530 Message-ID: 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> <20190207190324.GM20097@intel.com> <20190208125239.GQ20097@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190208125239.GQ20097@intel.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: =?UTF-8?B?VmlsbGUgU3lyasOkbMOk?= Cc: "intel-gfx@lists.freedesktop.org" , "Shankar, Uma" , "Syrjala, Ville" , "Lankhorst, Maarten" , "dri-devel@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org UmVnYXJkcwoKU2hhc2hhbmsKCk9uIDIvOC8yMDE5IDY6MjIgUE0sIFZpbGxlIFN5cmrDpGzDpCB3 cm90ZToKPiBPbiBGcmksIEZlYiAwOCwgMjAxOSBhdCAxMjozNjoyNVBNICswMDAwLCBTaGFybWEs IFNoYXNoYW5rIHdyb3RlOgo+PiBSZWdhcmRzCj4+IFNoYXNoYW5rCj4+Cj4+PiAtLS0tLU9yaWdp bmFsIE1lc3NhZ2UtLS0tLQo+Pj4gRnJvbTogSW50ZWwtZ2Z4IFttYWlsdG86aW50ZWwtZ2Z4LWJv dW5jZXNAbGlzdHMuZnJlZWRlc2t0b3Aub3JnXSBPbiBCZWhhbGYgT2YKPj4+IFNoYW5rYXIsIFVt YQo+Pj4gU2VudDogRnJpZGF5LCBGZWJydWFyeSA4LCAyMDE5IDU6NDUgUE0KPj4+IFRvOiBWaWxs ZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+Pj4gQ2M6IGludGVs LWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmc7IFN5cmphbGEsIFZpbGxlIDx2aWxsZS5zeXJqYWxh QGludGVsLmNvbT47IGRyaS0KPj4+IGRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZzsgTGFua2hv cnN0LCBNYWFydGVuIDxtYWFydGVuLmxhbmtob3JzdEBpbnRlbC5jb20+Cj4+PiBTdWJqZWN0OiBS ZTogW0ludGVsLWdmeF0gW3YxMSAxLzRdIGRybTogQWRkIEhETUkgY29sb3JzcGFjZSBwcm9wZXJ0 eQo+Pj4KPj4+Pj4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0KPj4+Pj4+Pj4gRnJvbTog VmlsbGUgU3lyasOkbMOkIFttYWlsdG86dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb21dCj4+ Pj4+Pj4+IFNlbnQ6IFR1ZXNkYXksIEZlYnJ1YXJ5IDUsIDIwMTkgMTA6MDIgUE0KPj4+Pj4+Pj4g VG86IFNoYW5rYXIsIFVtYSA8dW1hLnNoYW5rYXJAaW50ZWwuY29tPgo+Pj4+Pj4+PiBDYzogaW50 ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZzsKPj4+Pj4+Pj4gZHJpLWRldmVsQGxpc3RzLmZy ZWVkZXNrdG9wLm9yZzsgU3lyamFsYSwgVmlsbGUKPj4+Pj4+Pj4gPHZpbGxlLnN5cmphbGFAaW50 ZWwuY29tPjsgTGFua2hvcnN0LCBNYWFydGVuCj4+Pj4+Pj4+IDxtYWFydGVuLmxhbmtob3JzdEBp bnRlbC5jb20+Cj4+Pj4+Pj4+IFN1YmplY3Q6IFJlOiBbSW50ZWwtZ2Z4XSBbdjExIDEvNF0gZHJt OiBBZGQgSERNSSBjb2xvcnNwYWNlCj4+Pj4+Pj4+IHByb3BlcnR5Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+ IE9uIFR1ZSwgRmViIDA1LCAyMDE5IGF0IDA5OjMzOjM0UE0gKzA1MzAsIFVtYSBTaGFua2FyIHdy b3RlOgo+Pj4+Pj4+Pj4gQ3JlYXRlIGEgbmV3IGNvbm5lY3RvciBwcm9wZXJ0eSB0byBwcm9ncmFt IGNvbG9yc3BhY2UgdG8gc2luayBkZXZpY2VzLgo+Pj4+Pj4+Pj4gTW9kZXJuIHNpbmsgZGV2aWNl cyBzdXBwb3J0IG1vcmUgdGhhbiAxIHR5cGUgb2YgY29sb3JzcGFjZSBsaWtlCj4+Pj4+Pj4+PiA2 MDEsIDcwOSwgQlQyMDIwIGV0Yy4gVGhpcyBoZWxwcyB0byBzd2l0Y2ggYmFzZWQgb24gY29udGVu dAo+Pj4+Pj4+Pj4gdHlwZSB3aGljaCBpcyB0byBiZSBkaXNwbGF5ZWQuIFRoZSBkZWNpc2lvbiBs aWVzIHdpdGgKPj4+Pj4+Pj4+IGNvbXBvc2l0b3JzIGFzIHRvIGluIHdoaWNoIHNjZW5hcmlvcywg YSBwYXJ0aWN1bGFyIGNvbG9yc3BhY2Ugd2lsbCBiZSBwaWNrZWQuCj4+Pj4+Pj4+Pgo+Pj4+Pj4+ Pj4gVGhpcyB3aWxsIGJlIGhlbHBmdWwgbW9zdGx5IHRvIHN3aXRjaCB0byBoaWdoZXIgZ2FtdXQK Pj4+Pj4+Pj4+IGNvbG9yc3BhY2VzIGxpa2UKPj4+Pj4+Pj4+IEJUMjAyMCB3aGVuIHRoZSBtZWRp YSBjb250ZW50IGlzIGVuY29kZWQgYXMgQlQyMDIwLiBUaGVyZWJ5Cj4+Pj4+Pj4+PiBnaXZpbmcg YSBnb29kIHZpc3VhbCBleHBlcmllbmNlIHRvIHVzZXJzLgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IFRo ZSBleHBlY3RhdGlvbiBmcm9tIHVzZXJzcGFjZSBpcyB0aGF0IGl0IHNob3VsZCBwYXJzZSB0aGUg RURJRAo+Pj4+Pj4+Pj4gYW5kIGdldCBzdXBwb3J0ZWQgY29sb3JzcGFjZXMuIFVzZSB0aGlzIHBy b3BlcnR5IGFuZCBzd2l0Y2ggdG8KPj4+Pj4+Pj4+IHRoZSBvbmUgc3VwcG9ydGVkLiBTaW5rIHN1 cHBvcnRlZCBjb2xvcnNwYWNlcyBzaG91bGQgYmUKPj4+Pj4+Pj4+IHJldHJpZXZlZCBieSB1c2Vy c3BhY2UgZnJvbSBFRElEIGFuZCBkcml2ZXIgd2lsbCBub3QgZXhwbGljaXRseQo+Pj4+Pj4+Pj4g ZXhwb3NlCj4+Pj4gdGhlbS4KPj4+Pj4+Pj4+IEJhc2ljYWxseSB0aGUgZXhwZWN0YXRpb24gZnJv bSB1c2Vyc3BhY2UgaXM6Cj4+Pj4+Pj4+PiAgIC0gU2V0IHVwIENSVEMgREVHQU1NQS9DVE0vR0FN TUEgdG8gY29udmVydCB0byBzb21lIHNpbmsKPj4+Pj4+Pj4+ICAgICBjb2xvcnNwYWNlCj4+Pj4+ Pj4+PiAgIC0gU2V0IHRoaXMgbmV3IHByb3BlcnR5IHRvIGxldCB0aGUgc2luayBrbm93IHdoYXQg aXQKPj4+Pj4+Pj4+ICAgICBjb252ZXJ0ZWQgdGhlIENSVEMgb3V0cHV0IHRvLgo+Pj4+Pj4+Pj4K Pj4+Pj4+Pj4+IHYyOiBBZGRyZXNzZWQgTWFhcnRlbiBhbmQgVmlsbGUncyByZXZpZXcgY29tbWVu dHMuIEVuaGFuY2VkIHRoZQo+Pj4+Pj4+Pj4gY29sb3JzcGFjZSBlbnVtIHRvIGluY29ycG9yYXRl IGJvdGggSERNSSBhbmQgRFAgc3VwcG9ydGVkCj4+Pj4gY29sb3JzcGFjZXMuCj4+Pj4+Pj4+PiBB bHNvLCBhZGRlZCBhIGRlZmF1bHQgb3B0aW9uIGZvciBjb2xvcnNwYWNlLgo+Pj4+Pj4+Pj4KPj4+ Pj4+Pj4+IHYzOiBSZW1vdmVkIEFkb2JlIHJlZmVyZW5jZXMgZnJvbSBlbnVtIGRlZmluaXRpb25z IGFzIHBlcgo+Pj4+Pj4+Pj4gVmlsbGUsIEhhbnMgVmVya3VpbCBhbmQgSm9uYXMgS2FybG1hbiBz dWdnZXN0aW9ucy4gQ2hhbmdlZAo+Pj4+Pj4+Pj4gRGVmYXVsdCB0byBhbiB1bnNldCBzdGF0ZSB3 aGVyZSBkcml2ZXIgd2lsbCBhc3NpZ24gdGhlCj4+Pj4+Pj4+PiBjb2xvcnNwYWNlIGlzIG5vdCBj aG9zZW4gYnkgdXNlciwgc3VnZ2VzdGVkIGJ5IFZpbGxlIGFuZAo+Pj4+Pj4+Pj4gTWFhcnRlbi4g QWRkcmVzc2VkIG90aGVyIG1pc2MgcmV2aWV3IGNvbW1lbnRzIGZyb20gTWFhcnRlbi4KPj4+Pj4+ Pj4+IFNwbGl0IHRoZSBjaGFuZ2VzIHRvIGhhdmUgc2VwYXJhdGUgY29sb3JzcGFjZSBwcm9wZXJ0 eSBmb3IgRFAgYW5kIEhETUkuCj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gdjQ6IEFkZHJlc3NlZCBDaHJp cyBhbmQgVmlsbGUncyByZXZpZXcgY29tbWVudHMsIGFuZCBjcmVhdGVkIGEKPj4+Pj4+Pj4+IGNv bW1vbiBjb2xvcnNwYWNlIHByb3BlcnR5IGZvciBEUCBhbmQgSERNSSwgZmlsdGVyZWQgdGhlIGxp c3QKPj4+Pj4+Pj4+IGJhc2VkIG9uIHRoZSBjb2xvcnNwYWNlcyBzdXBwb3J0ZWQgYnkgdGhlIHJl c3BlY3RpdmUgcHJvdG9jb2wgc3RhbmRhcmQuCj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gdjU6IE1hZGUg dGhlIHByb3BlcnR5IGNyZWF0aW9uIGhlbHBlciBhY2NlcHQgZW51bSBsaXN0IGJhc2VkIG9uCj4+ Pj4+Pj4+PiBwbGF0Zm9ybSBjYXBhYmlsdGllcyBhcyBzdWdnZXN0ZWQgYnkgU2hhc2hhbmsuIENv bnNvbGlkYXRlZAo+Pj4+Pj4+Pj4gSERNSSBhbmQgRFAgcHJvcGVydHkgY3JlYXRpb24gaW4gdGhl IGNvbW1vbiBoZWxwZXIuCj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gdjY6IEFkZHJlc3NlZCBTaGFzaGFu aydzIHJldmlldyBjb21tZW50cy4KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiB2NzogQWRkZWQgZGVmaW5l cyBpbnN0ZWFkIG9mIGVudW0gaW4gdWFwaSBhcyBwZXIgQnJpYW4KPj4+Pj4+Pj4+IFN0YXJrZXkn cyBzdWdnZXN0aW9uIGluIG9yZGVyIHRvIGdvIHdpdGggc3RyaW5nIG1hdGNoaW5nIGF0IHVzZXJz cGFjZS4KPj4+Pj4+Pj4+IFVwZGF0ZWQgdGhlIGNvbW1pdCBtZXNzYWdlIHRvIGFkZCBtb3JlIGRl dGFpbHMgYXMgd2VsbCBrZXJuZWwgZG9jcy4KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiB2ODogQWRkcmVz c2VkIE1hYXJ0ZW4ncyByZXZpZXcgY29tbWVudHMuCj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gdjk6IFJl bW92ZWQgbWFjcm8gZGVmaW5lcyBmcm9tIHVhcGkgYXMgcGVyIEJyaWFuIFN0YXJrZXkgYW5kCj4+ Pj4+Pj4+PiBEYW5pZWwgU3RvbmUncyBjb21tZW50cyBhbmQgbW92ZWQgdG8gZHJtIGluY2x1ZGUg ZmlsZS4gTW92ZWQKPj4+Pj4+Pj4+IGJhY2sgdG8gb2xkZXIgZGVzaWduIHdpdGggZXhwb3Npbmcg YWxsIEhETUkgY29sb3JzcGFjZXMgdG8KPj4+Pj4+Pj4+IHVzZXJzcGFjZSBzaW5jZSBpbmZvZnJh bWUgY2FwYWJpbGl0eSBpcyB0aGVyZSBldmVuIG9uIGxlZ2FjeQo+Pj4+Pj4+Pj4gcGxhdGZvcm1z LCBhcyBwZXIgVmlsbGUncyByZXZpZXcgY29tbWVudHMuCj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gdjEw OiBGaXhlZCBzcGFyc2Ugd2FybmluZ3MsIHVwZGF0ZWQgdGhlIFJCIGZyb20gTWFhcnRlbiBhbmQg SmFuaSdzIGFjay4KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiB2MTE6IEFkZHJlc3NlZCBWaWxsZSdzIHJl dmlldyBjb21tZW50cy4gVXBkYXRlZCB0aGUgTWFjcm8KPj4+Pj4+Pj4+IG5hbWluZyBhbmQgYWRk ZWQgRENJLVAzIGNvbG9yc3BhY2UgYXMgd2VsbCBkZWZpbmVkIGluIENFQSA4NjEuRyBzcGVjLgo+ Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IFNpZ25lZC1vZmYtYnk6IFVtYSBTaGFua2FyIDx1bWEuc2hhbmth ckBpbnRlbC5jb20+Cj4+Pj4+Pj4+PiBBY2tlZC1ieTogSmFuaSBOaWt1bGEgPGphbmkubmlrdWxh QGludGVsLmNvbT4KPj4+Pj4+Pj4+IFJldmlld2VkLWJ5OiBTaGFzaGFuayBTaGFybWEgPHNoYXNo YW5rLnNoYXJtYUBpbnRlbC5jb20+Cj4+Pj4+Pj4+PiBSZXZpZXdlZC1ieTogTWFhcnRlbiBMYW5r aG9yc3QKPj4+Pj4+Pj4+IDxtYWFydGVuLmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb20+Cj4+Pj4+ Pj4+PiAtLS0KPj4+Pj4+Pj4+ICAgZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfdWFwaS5jIHwg IDQgKysKPj4+Pj4+Pj4+ICAgZHJpdmVycy9ncHUvZHJtL2RybV9jb25uZWN0b3IuYyAgIHwgNzgK Pj4+Pj4+Pj4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4+Pj4+Pj4+ PiAgIGluY2x1ZGUvZHJtL2RybV9jb25uZWN0b3IuaCAgICAgICB8IDUwICsrKysrKysrKysrKysr KysrKysrKysrKysKPj4+Pj4+Pj4+ICAgMyBmaWxlcyBjaGFuZ2VkLCAxMzIgaW5zZXJ0aW9ucygr KQo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0 b21pY191YXBpLmMKPj4+Pj4+Pj4+IGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfdWFwaS5j Cj4+Pj4+Pj4+PiBpbmRleCA5YTFmNDFhLi45YjVkNDRmIDEwMDY0NAo+Pj4+Pj4+Pj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfdWFwaS5jCj4+Pj4+Pj4+PiArKysgYi9kcml2ZXJz L2dwdS9kcm0vZHJtX2F0b21pY191YXBpLmMKPj4+Pj4+Pj4+IEBAIC03NDYsNiArNzQ2LDggQEAg c3RhdGljIGludAo+Pj4+Pj4+Pj4gZHJtX2F0b21pY19jb25uZWN0b3Jfc2V0X3Byb3BlcnR5KHN0 cnVjdAo+Pj4+Pj4+PiBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4+Pj4+Pj4+PiAgIAkJCXJl dHVybiAtRUlOVkFMOwo+Pj4+Pj4+Pj4gICAJCX0KPj4+Pj4+Pj4+ICAgCQlzdGF0ZS0+Y29udGVu dF9wcm90ZWN0aW9uID0gdmFsOwo+Pj4+Pj4+Pj4gKwl9IGVsc2UgaWYgKHByb3BlcnR5ID09IGNv bm5lY3Rvci0+Y29sb3JzcGFjZV9wcm9wZXJ0eSkgewo+Pj4+Pj4+Pj4gKwkJc3RhdGUtPmNvbG9y c3BhY2UgPSB2YWw7Cj4+Pj4+Pj4+PiAgIAl9IGVsc2UgaWYgKHByb3BlcnR5ID09IGNvbmZpZy0+ d3JpdGViYWNrX2ZiX2lkX3Byb3BlcnR5KSB7Cj4+Pj4+Pj4+PiAgIAkJc3RydWN0IGRybV9mcmFt ZWJ1ZmZlciAqZmIgPQo+Pj4+IGRybV9mcmFtZWJ1ZmZlcl9sb29rdXAoZGV2LAo+Pj4+Pj4+PiBO VUxMLCB2YWwpOwo+Pj4+Pj4+Pj4gICAJCWludCByZXQgPQo+Pj4+IGRybV9hdG9taWNfc2V0X3dy aXRlYmFja19mYl9mb3JfY29ubmVjdG9yKHN0YXRlLAo+Pj4+Pj4+PiBmYik7IEBACj4+Pj4+Pj4+ PiAtODE0LDYgKzgxNiw4IEBAIHN0YXRpYyBpbnQKPj4+Pj4+Pj4+IGRybV9hdG9taWNfY29ubmVj dG9yX3NldF9wcm9wZXJ0eShzdHJ1Y3QKPj4+Pj4+Pj4gZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9y LAo+Pj4+Pj4+Pj4gICAJCSp2YWwgPSBzdGF0ZS0+cGljdHVyZV9hc3BlY3RfcmF0aW87Cj4+Pj4+ Pj4+PiAgIAl9IGVsc2UgaWYgKHByb3BlcnR5ID09IGNvbmZpZy0+Y29udGVudF90eXBlX3Byb3Bl cnR5KSB7Cj4+Pj4+Pj4+PiAgIAkJKnZhbCA9IHN0YXRlLT5jb250ZW50X3R5cGU7Cj4+Pj4+Pj4+ PiArCX0gZWxzZSBpZiAocHJvcGVydHkgPT0gY29ubmVjdG9yLT5jb2xvcnNwYWNlX3Byb3BlcnR5 KSB7Cj4+Pj4+Pj4+PiArCQkqdmFsID0gc3RhdGUtPmNvbG9yc3BhY2U7Cj4+Pj4+Pj4+PiAgIAl9 IGVsc2UgaWYgKHByb3BlcnR5ID09IGNvbm5lY3Rvci0+c2NhbGluZ19tb2RlX3Byb3BlcnR5KSB7 Cj4+Pj4+Pj4+PiAgIAkJKnZhbCA9IHN0YXRlLT5zY2FsaW5nX21vZGU7Cj4+Pj4+Pj4+PiAgIAl9 IGVsc2UgaWYgKHByb3BlcnR5ID09Cj4+Pj4+Pj4+PiBjb25uZWN0b3ItPmNvbnRlbnRfcHJvdGVj dGlvbl9wcm9wZXJ0eSkKPj4+Pj4+Pj4+IHsgZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9k cm1fY29ubmVjdG9yLmMKPj4+Pj4+Pj4+IGIvZHJpdmVycy9ncHUvZHJtL2RybV9jb25uZWN0b3Iu YyBpbmRleCA4NDc1Mzk2Li40MzA5ODczIDEwMDY0NAo+Pj4+Pj4+Pj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2RybV9jb25uZWN0b3IuYwo+Pj4+Pj4+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2Ry bV9jb25uZWN0b3IuYwo+Pj4+Pj4+Pj4gQEAgLTgyNiw2ICs4MjYsMzMgQEAgaW50Cj4+Pj4+Pj4+ PiBkcm1fZGlzcGxheV9pbmZvX3NldF9idXNfZm9ybWF0cyhzdHJ1Y3QKPj4+Pj4+Pj4+IGRybV9k aXNwbGF5X2luZm8gKmluZm8sICB9Owo+Pj4+Pj4+Pj4gRFJNX0VOVU1fTkFNRV9GTihkcm1fZ2V0 X2NvbnRlbnRfcHJvdGVjdGlvbl9uYW1lLAo+Pj4+Pj4+PiBkcm1fY3BfZW51bV9saXN0KQo+Pj4+ Pj4+Pj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX3Byb3BfZW51bV9saXN0IGhkbWlfY29sb3Jz cGFjZXNbXSA9IHsKPj4+Pj4+Pj4+ICsJLyogRm9yIERlZmF1bHQgY2FzZSwgZHJpdmVyIHdpbGwg c2V0IHRoZSBjb2xvcnNwYWNlICovCj4+Pj4+Pj4+PiArCXsgRFJNX01PREVfQ09MT1JJTUVUUllf REVGQVVMVCwgIkRlZmF1bHQiIH0sCj4+Pj4+Pj4+PiArCS8qIFN0YW5kYXJkIERlZmluaXRpb24g Q29sb3JpbWV0cnkgYmFzZWQgb24gQ0VBIDg2MSAqLwo+Pj4+Pj4+Pj4gKwl7IERSTV9NT0RFX0NP TE9SSU1FVFJZX1NNUFRFXzE3ME0sICJTTVBURV8xNzBNIiB9LAo+Pj4+Pj4+Pj4gKwl7IERSTV9N T0RFX0NPTE9SSU1FVFJZX0JUNzA5LCAiQlQ3MDkiIH0sCj4+Pj4+Pj4+PiArCS8qIFN0YW5kYXJk IERlZmluaXRpb24gQ29sb3JpbWV0cnkgYmFzZWQgb24gSUVDIDYxOTY2LTItNCAqLwo+Pj4+Pj4+ Pj4gKwl7IERSTV9NT0RFX0NPTE9SSU1FVFJZX1hWWUNDXzYwMSwgIlhWWUNDXzYwMSIgfSwKPj4+ Pj4+Pj4+ICsJLyogSGlnaCBEZWZpbml0aW9uIENvbG9yaW1ldHJ5IGJhc2VkIG9uIElFQyA2MTk2 Ni0yLTQgKi8KPj4+Pj4+Pj4+ICsJeyBEUk1fTU9ERV9DT0xPUklNRVRSWV9YVllDQ183MDksICJY VllDQ183MDkiIH0sCj4+Pj4+Pj4+PiArCS8qIENvbG9yaW1ldHJ5IGJhc2VkIG9uIElFQyA2MTk2 Ni0yLTEvQW1lbmRtZW50IDEgKi8KPj4+Pj4+Pj4+ICsJeyBEUk1fTU9ERV9DT0xPUklNRVRSWV9T WUNDXzYwMSwgIlNZQ0NfNjAxIiB9LAo+Pj4+Pj4+Pj4gKwkvKiBDb2xvcmltZXRyeSBiYXNlZCBv biBJRUMgNjE5NjYtMi01IFszM10gKi8KPj4+Pj4+Pj4+ICsJeyBEUk1fTU9ERV9DT0xPUklNRVRS WV9PUFlDQ182MDEsICJvcFlDQ182MDEiIH0sCj4+Pj4+Pj4+PiArCS8qIENvbG9yaW1ldHJ5IGJh c2VkIG9uIElFQyA2MTk2Ni0yLTUgKi8KPj4+Pj4+Pj4+ICsJeyBEUk1fTU9ERV9DT0xPUklNRVRS WV9PUFJHQiwgIm9wUkdCIiB9LAo+Pj4+Pj4+Pj4gKwkvKiBDb2xvcmltZXRyeSBiYXNlZCBvbiBJ VFUtUiBCVC4yMDIwICovCj4+Pj4+Pj4+PiArCXsgRFJNX01PREVfQ09MT1JJTUVUUllfQlQyMDIw X1lDQywgIkJUMjAyMF9ZQ0MiIH0sCj4+Pj4+Pj4+PiArCS8qIENvbG9yaW1ldHJ5IGJhc2VkIG9u IElUVS1SIEJULjIwMjAgKi8KPj4+Pj4+Pj4+ICsJeyBEUk1fTU9ERV9DT0xPUklNRVRSWV9CVDIw MjBfUkdCLCAiQlQyMDIwX1JHQiIgfSwKPj4+Pj4+Pj4+ICsJLyogQ29sb3JpbWV0cnkgYmFzZWQg b24gSVRVLVIgQlQuMjAyMCAqLwo+Pj4+Pj4+Pj4gKwl7IERSTV9NT0RFX0NPTE9SSU1FVFJZX0JU MjAyMF9DWUNDLCAiQlQyMDIwX0NZQ0MiIH0sCj4+Pj4+Pj4+PiArCS8qIEFkZGVkIGFzIHBhcnQg b2YgQWRkaXRpb25hbCBDb2xvcmltZXRyeSBFeHRlbnNpb24gaW4gODYxLkcgKi8KPj4+Pj4+Pj4+ ICsJeyBEUk1fTU9ERV9DT0xPUklNRVRSWV9EQ0lfUDNfUkdCX0Q2NSwgIkRDSS0KPj4+PiBQM19S R0JfRDY1IiB9LAo+Pj4+Pj4+Pj4gKwl7IERSTV9NT0RFX0NPTE9SSU1FVFJZX0RDSV9QM19SR0Jf VEhFQVRFUiwgIkRDSS0KPj4+Pj4+Pj4gUDNfUkdCX1RoZWF0ZXIiIH0sCj4+Pj4+Pj4+PiArfTsK Pj4+Pj4+Pj4+ICsKPj4+Pj4+Pj4+ICAgLyoqCj4+Pj4+Pj4+PiAgICAqIERPQzogc3RhbmRhcmQg Y29ubmVjdG9yIHByb3BlcnRpZXMKPj4+Pj4+Pj4+ICAgICoKPj4+Pj4+Pj4+IEBAIC0xNTQ4LDYg KzE1NzUsNTcgQEAgaW50Cj4+Pj4+Pj4+PiBkcm1fbW9kZV9jcmVhdGVfYXNwZWN0X3JhdGlvX3By b3BlcnR5KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4+Pj4+Pj4+PiBFWFBPUlRfU1lNQk9MKGRy bV9tb2RlX2NyZWF0ZV9hc3BlY3RfcmF0aW9fcHJvcGVydHkpOwo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+ ICAgLyoqCj4+Pj4+Pj4+PiArICogRE9DOiBzdGFuZGFyZCBjb25uZWN0b3IgcHJvcGVydGllcwo+ Pj4+Pj4+Pj4gKyAqCj4+Pj4+Pj4+PiArICogQ29sb3JzcGFjZToKPj4+Pj4+Pj4+ICsgKiAgICAg ZHJtX21vZGVfY3JlYXRlX2NvbG9yc3BhY2VfcHJvcGVydHkgLSBjcmVhdGUgY29sb3JzcGFjZQo+ Pj4+IHByb3BlcnR5Cj4+Pj4+Pj4+PiArICogICAgIFRoaXMgcHJvcGVydHkgaGVscHMgc2VsZWN0 IGEgc3VpdGFibGUgY29sb3JzcGFjZSBiYXNlZCBvbiB0aGUgc2luawo+Pj4+Pj4+Pj4gKyAqICAg ICBjYXBhYmlsaXR5LiBNb2Rlcm4gc2luayBkZXZpY2VzIHN1cHBvcnQgd2lkZXIgZ2FtdXQgbGlr ZSBCVDIwMjAuCj4+Pj4+Pj4+PiArICogICAgIFRoaXMgaGVscHMgc3dpdGNoIHRvIEJUMjAyMCBt b2RlIGlmIHRoZSBCVDIwMjAgZW5jb2RlZCB2aWRlbwo+Pj4+IHN0cmVhbQo+Pj4+Pj4+Pj4gKyAq ICAgICBpcyBiZWluZyBwbGF5ZWQgYnkgdGhlIHVzZXIsIHNhbWUgZm9yIGFueSBvdGhlciBjb2xv cnNwYWNlLiBUaGVyZWJ5Cj4+Pj4+Pj4+PiArICogICAgIGdpdmluZyBhIGdvb2QgdmlzdWFsIGV4 cGVyaWVuY2UgdG8gdXNlcnMuCj4+Pj4+Pj4+PiArICoKPj4+Pj4+Pj4+ICsgKiAgICAgVGhlIGV4 cGVjdGF0aW9uIGZyb20gdXNlcnNwYWNlIGlzIHRoYXQgaXQgc2hvdWxkIHBhcnNlIHRoZSBFRElE Cj4+Pj4+Pj4+PiArICogICAgIGFuZCBnZXQgc3VwcG9ydGVkIGNvbG9yc3BhY2VzLiBVc2UgdGhp cyBwcm9wZXJ0eSBhbmQgc3dpdGNoIHRvIHRoZQo+Pj4+Pj4+Pj4gKyAqICAgICBvbmUgc3VwcG9y dGVkLiBTaW5rIHN1cHBvcnRlZCBjb2xvcnNwYWNlcyBzaG91bGQgYmUgcmV0cmlldmVkIGJ5Cj4+ Pj4+Pj4+PiArICogICAgIHVzZXJzcGFjZSBmcm9tIEVESUQgYW5kIGRyaXZlciB3aWxsIG5vdCBl eHBsaWNpdGx5IGV4cG9zZSB0aGVtLgo+Pj4+Pj4+Pj4gKyAqCj4+Pj4+Pj4+PiArICogICAgIEJh c2ljYWxseSB0aGUgZXhwZWN0YXRpb24gZnJvbSB1c2Vyc3BhY2UgaXM6Cj4+Pj4+Pj4+PiArICog ICAgICAtIFNldCB1cCBDUlRDIERFR0FNTUEvQ1RNL0dBTU1BIHRvIGNvbnZlcnQgdG8gc29tZSBz aW5rCj4+Pj4+Pj4+PiArICogICAgICAgIGNvbG9yc3BhY2UKPj4+Pj4+Pj4+ICsgKiAgICAgIC0g U2V0IHRoaXMgbmV3IHByb3BlcnR5IHRvIGxldCB0aGUgc2luayBrbm93IHdoYXQgaXQKPj4+Pj4+ Pj4+ICsgKiAgICAgICAgY29udmVydGVkIHRoZSBDUlRDIG91dHB1dCB0by4KPj4+Pj4+Pj4+ICsg KiAgICAgIC0gVGhpcyBwcm9wZXJ0eSBpcyBqdXN0IHRvIGluZm9ybSBzaW5rIHdoYXQgY29sb3Jz cGFjZQo+Pj4+Pj4+Pj4gKyAqICAgICAgICBzb3VyY2UgaXMgdHJ5aW5nIHRvIGRyaXZlLgo+Pj4+ Pj4+Pj4gKyAqCj4+Pj4+Pj4+PiArICogQ2FsbGVkIGJ5IGEgZHJpdmVyIHRoZSBmaXJzdCB0aW1l IGl0J3MgbmVlZGVkLCBtdXN0IGJlCj4+Pj4+Pj4+PiArYXR0YWNoZWQgdG8gZGVzaXJlZAo+Pj4+ Pj4+Pj4gKyAqIGNvbm5lY3RvcnMuCj4+Pj4+Pj4+PiArICovCj4+Pj4+Pj4+PiAraW50IGRybV9t b2RlX2NyZWF0ZV9jb2xvcnNwYWNlX3Byb3BlcnR5KHN0cnVjdCBkcm1fY29ubmVjdG9yCj4+Pj4+ Pj4+PiArKmNvbm5lY3Rvcikgewo+Pj4+Pj4+Pj4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0g Y29ubmVjdG9yLT5kZXY7Cj4+Pj4+Pj4+PiArCXN0cnVjdCBkcm1fcHJvcGVydHkgKnByb3A7Cj4+ Pj4+Pj4+PiArCj4+Pj4+Pj4+PiArCWlmIChjb25uZWN0b3ItPmNvbm5lY3Rvcl90eXBlID09Cj4+ Pj4gRFJNX01PREVfQ09OTkVDVE9SX0hETUlBIHx8Cj4+Pj4+Pj4+PiArCSAgICBjb25uZWN0b3It PmNvbm5lY3Rvcl90eXBlID09Cj4+Pj4gRFJNX01PREVfQ09OTkVDVE9SX0hETUlCKSB7Cj4+Pj4+ Pj4+PiArCQlwcm9wID0gZHJtX3Byb3BlcnR5X2NyZWF0ZV9lbnVtKGRldiwKPj4+Pj4+Pj4gRFJN X01PREVfUFJPUF9FTlVNLAo+Pj4+Pj4+Pj4gKwkJCQkJCSJDb2xvcnNwYWNlIiwKPj4+Pj4+Pj4+ ICsJCQkJCQloZG1pX2NvbG9yc3BhY2VzLAo+Pj4+Pj4+Pj4gKwo+Pj4+Pj4+PiAJQVJSQVlfU0la RShoZG1pX2NvbG9yc3BhY2VzKSk7Cj4+Pj4+Pj4+PiArCQlpZiAoIXByb3ApCj4+Pj4+Pj4+PiAr CQkJcmV0dXJuIC1FTk9NRU07Cj4+Pj4+Pj4+PiArCX0gZWxzZSB7Cj4+Pj4+Pj4+PiArCQlEUk1f REVCVUdfS01TKCJDb2xvcnNwYWNlIHByb3BlcnR5IG5vdAo+Pj4+IHN1cHBvcnRlZFxuIik7Cj4+ Pj4+Pj4+PiArCQlyZXR1cm4gMDsKPj4+Pj4+Pj4+ICsJfQo+Pj4+Pj4+Pj4gKwo+Pj4+Pj4+Pj4g Kwljb25uZWN0b3ItPmNvbG9yc3BhY2VfcHJvcGVydHkgPSBwcm9wOwo+Pj4+Pj4+Pj4gKwo+Pj4+ Pj4+Pj4gKwlyZXR1cm4gMDsKPj4+Pj4+Pj4+ICt9Cj4+Pj4+Pj4+PiArRVhQT1JUX1NZTUJPTChk cm1fbW9kZV9jcmVhdGVfY29sb3JzcGFjZV9wcm9wZXJ0eSk7Cj4+Pj4+Pj4+PiArCj4+Pj4+Pj4+ PiArLyoqCj4+Pj4+Pj4+PiAgICAqIGRybV9tb2RlX2NyZWF0ZV9jb250ZW50X3R5cGVfcHJvcGVy dHkgLSBjcmVhdGUgY29udGVudCB0eXBlCj4+Pj4gcHJvcGVydHkKPj4+Pj4+Pj4+ICAgICogQGRl djogRFJNIGRldmljZQo+Pj4+Pj4+Pj4gICAgKgo+Pj4+Pj4+Pj4gZGlmZiAtLWdpdCBhL2luY2x1 ZGUvZHJtL2RybV9jb25uZWN0b3IuaAo+Pj4+Pj4+Pj4gYi9pbmNsdWRlL2RybS9kcm1fY29ubmVj dG9yLmggaW5kZXggOTk0MTYxMy4uNThkYjY2ZSAxMDA2NDQKPj4+Pj4+Pj4+IC0tLSBhL2luY2x1 ZGUvZHJtL2RybV9jb25uZWN0b3IuaAo+Pj4+Pj4+Pj4gKysrIGIvaW5jbHVkZS9kcm0vZHJtX2Nv bm5lY3Rvci5oCj4+Pj4+Pj4+PiBAQCAtMjUzLDYgKzI1Myw0MiBAQCBlbnVtIGRybV9wYW5lbF9v cmllbnRhdGlvbiB7Cj4+Pj4+Pj4+PiAgIAlEUk1fTU9ERV9QQU5FTF9PUklFTlRBVElPTl9SSUdI VF9VUCwKPj4+Pj4+Pj4+ICAgfTsKPj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiArLyoKPj4+Pj4+Pj4+ICsg KiBUaGlzIGlzIGEgY29uc29saWRhdGVkIGNvbG9yaW1ldHJ5IGxpc3Qgc3VwcG9ydGVkIGJ5IEhE TUkKPj4+Pj4+Pj4+ICthbmQKPj4+Pj4+Pj4+ICsgKiBEUCBwcm90b2NvbCBzdGFuZGFyZC4gVGhl IHJlc3BlY3RpdmUgY29ubmVjdG9ycyB3aWxsCj4+Pj4+Pj4+PiArcmVnaXN0ZXIKPj4+Pj4+Pj4+ ICsgKiBhIHByb3BlcnR5IHdpdGggdGhlIHN1YnNldCBvZiB0aGlzIGxpc3QgKHN1cHBvcnRlZCBi eSB0aGF0Cj4+Pj4+Pj4+PiArICogcmVzcGVjdGl2ZSBwcm90b2NvbCkuIFVzZXJzcGFjZSB3aWxs IHNldCB0aGUgY29sb3JzcGFjZQo+Pj4+Pj4+Pj4gK3Rocm91Z2gKPj4+Pj4+Pj4+ICsgKiBhIGNv bG9yc3BhY2UgcHJvcGVydHkgd2hpY2ggd2lsbCBiZSBjcmVhdGVkIGFuZCBleHBvc2VkIHRvCj4+ Pj4+Pj4+PiArICogdXNlcnNwYWNlLgo+Pj4+Pj4+Pj4gKyAqLwo+Pj4+Pj4+Pj4gKwo+Pj4+Pj4+ Pj4gKy8qIEZvciBEZWZhdWx0IGNhc2UsIGRyaXZlciB3aWxsIHNldCB0aGUgY29sb3JzcGFjZSAq Lwo+Pj4+Pj4+Pj4gKyNkZWZpbmUgRFJNX01PREVfQ09MT1JJTUVUUllfREVGQVVMVAkJCTAKPj4+ Pj4+Pj4+ICsvKiBDRUEgODYxIE5vcm1hbCBDb2xvcmltZXRyeSBvcHRpb25zICovCj4+Pj4+Pj4+ PiArI2RlZmluZSBEUk1fTU9ERV9DT0xPUklNRVRSWV9OT19EQVRBCQkJMAo+Pj4+Pj4+Pj4gKyNk ZWZpbmUgRFJNX01PREVfQ09MT1JJTUVUUllfU01QVEVfMTcwTQo+Pj4+Pj4gCTEKPj4+Pj4+Pj4+ ICsjZGVmaW5lIERSTV9NT0RFX0NPTE9SSU1FVFJZX0JUNzA5CQkJMgo+Pj4+Pj4+PiBTdGlsbCBt aXNzaW5nIHRoZSBZQ2JDciBpbmZvcm1hdGlvbiBpbiB0aGVzZSB0d28uCj4+Pj4+Pj4gQXMgcGVy IENUQSA4NjEuRyBzcGVjLCB3ZSBoYXZlIHRoZXNlIGFzIG9ubHkgU01QVEVfMTcwTSBhbmQgSVRV LVIKPj4+Pj4+PiBCVDcwOSwgd2l0aCBubyBzcGVjaWZpYyBtZW50aW9uIG9mIFJHQiBvciBZQ2JD ci4gSGVuY2UsIGtlcHQgaXQgYXMKPj4+Pj4+PiBwZXIgc3BlYy4gV2Ugc2VlbSB0byBoYXZlIGEg Y29tbW9uIGZpZWxkIGZvciBib3RoIGFzIHBlciBDVEEgc3BlYy4KPj4+Pj4+PiBDb3JyZWN0IG1l IGlmIG15IHVuZGVyc3RhbmRpbmcgaXMgd3JvbmcuCj4+Pj4+PiBDaGVjawo+Pj4+Pj4gIlRhYmxl IDE0IFBpY3R1cmUgQ29sb3JpbWV0cnkgSW5kaWNhdGVkIGJ5IHRoZSBSR0Igb3IgWUMgQiBDIFIg KFkpLAo+Pj4+Pj4gQ29sb3JpbWV0cnkKPj4+Pj4+IChDKSBhbmQgRXh0ZW5kZWQgQ29sb3JpbWV0 cnkgKEVDKSBGaWVsZCBTZXR0aW5ncyIKPj4+Pj4gVGhlc2UgIFkyIFkxIFkwIHZhbHVlcyBzaG91 bGQgYmUgcHJvZ3JhbW1lZCBzZXBhcmF0ZWx5IGFuZCBub3QKPj4+Pj4gdGhyb3VnaCB0aGUgY29s b3JzcGFjZSBhcyB0aGV5IGFyZSBkYXRhIGZvcm1hdHMgaXNuJ3QgaXQuIEkgZmVlbCB0aGlzCj4+ Pj4+IHNob3VsZCBnZXQgY29udHJvbGxlZCBzZXBhcmF0ZWx5IGluZGVwZW5kZW50IG9mIGNvbG9y aW1ldHJ5LCBvcgo+Pj4+PiBzaG91bGQgd2UgYWRkIGFsbCB0aGUgWUNiQ3IgYW5kIFJHQiB2ZXJz aW9ucyBhbmQgcHJvZ3JhbSB0aGVtIGFzIHBhcnQKPj4+Pj4gb2YgdGhpcyBwcm9wZXJ0eSBpdHNl bGYKPj4+PiA/Cj4+Pj4KPj4+PiBJIGRvbid0IHRoaW5rIHdlIGNhbiBzZXBhcmF0ZSB0aGVtLiBU aGUgdmFsdWVzIG9mIHRoZSBjb2xvcmltZXRyeSBiaXRzCj4+Pj4gZG9lc24ndCBtZWFuIGFueXRo aW5nIHdpdGhvdXQgdGhlIFkgYml0cy4gSXQgd291bGQgbWFrZSB0aGUgdWFwaSBraW5kYQo+Pj4+ IGNyYXp5IGlmIHdlIGFsbG93IHRoZSB1c2VyIHRvIHNwZWNpZnkgQlQuMjAyMCBSR0IgYnV0IHRo ZW4gd2UgYWN0dWFsbHkKPj4+PiBzaWduYWwgQlQuMjAyMCBZQ2JDciBpbiB0aGUgaW5mb2ZyYW1l LCBvciB2aWNlIHZlcnNhLiBPciB3ZSBqdXN0IHNpZ25hbAo+Pj4+IGEgdG90YWxseSBpbnZhbGlk IHZhbHVlIGZvciBhbGwgdGhlIG90aGVyIGNhc2VzLgo+Pj4gSSBhZ3JlZSB3ZSBuZWVkIGRhdGEg Zm9ybWF0IGFsc28gdG8gYmUgc2VuZCBhbG9uZyB3aXRoIGNvbG9yc3BhY2UsIGJ1dCB0aGV5IGFy ZSAyCj4+PiBkaWZmZXJlbnQgdGhpbmdzLiBUbyBoYW5kbGUgWUNiQ3IgYW5kIHZhcmlhbnRzIChZ VVYgNDQ0LCA0MjAgb3IgNDIyKSBhbmQgUkdCIEkgZmVlbAo+Pj4gd2Ugc2hvdWxkIGV4cG9zZSBh IGRpZmZlcmVudCBBUEkgaW5zdGVhZCBvZiB1c2luZyB0aGlzIG9uZS4gIFdlIGNhbiBjcmVhdGUg YW4gb3V0cHV0Cj4+PiBjc2MgcHJvcGVydHkgd2hpY2ggZG9lcyB0aGF0IGpvYiBmb3IgdXMuCj4+ Pgo+Pj4gU28gZnJvbSBhIHVzZXIgcGVyc3BlY3RpdmUgaWYgd2Ugd2FudHMgdG8gc2V0IGEgY29s b3JzcGFjZSB3ZSBzaG91bGQgdXNlIHRoZSBvbmUgaW4KPj4+IHRoaXMgc2VyaWVzIGFuZCBzZXQg dGhlIGRhdGEgZm9ybWF0IHNlcGFyYXRlbHkgdXNpbmcgdGhlIG90aGVyIGludGVyZmFjZS4gQm90 aCB3aWxsIGJlCj4+PiByZWNlaXZlZCBpbiB0aGUgc3RhdGUgdmFyaWFibGVzIGFuZCBsYXRlciBJ bmZvZnJhbWUgcGFja2V0IHdpbGwgYmUgY3JlYXRlZCBhY2NvcmRpbmdseS4KPj4+IENsdWJiaW5n IGJvdGggaW4gb25lIG1heSBsZWFkIHRvIGxvdCBvZiBwb3NzaWJsZSBjb21iaW5hdGlvbnMgZXhw b3NlZCBhcyBlbnVtCj4+PiB3aGljaCBtYXkgbm90IGxvb2sgdG9vIGNsZWFuLgo+Pj4KPj4+IFdo YXQgZG8geW91IHNheSBhYm91dCBoYW5kbGluZyB0aGF0IGluIHRoZSBvdXRwdXQgY3NjIHByb3Bl cnR5LiBJIHdpbGwgZ28gd2l0aCB3aGF0IHlvdQo+Pj4gcmVjb21tZW5kIC4KPj4gUHJvZ3JhbW1p bmcgWTJZMVkwIGlzIGFscmVhZHkgdGFrZW4gY2FyZSBvZiwgd2hlbiB3ZSBhZGRlZCBzdXBwb3J0 IGZvciBZQ0JDUiBvdXRwdXRzICg0OjI6MCBpbXBsZW1lbnRhdGlvbikuCj4+IEluIGludGVsX2hk bWkuYzppbnRlbF9oZG1pX3NldF9hdmlfaW5mb2ZyYW1lKCk6Cj4+Cj4+IGlmIChjcnRjX3N0YXRl LT5vdXRwdXRfZm9ybWF0ID09IElOVEVMX09VVFBVVF9GT1JNQVRfWUNCQ1I0MjApCj4+IAlmcmFt ZS5hdmkuY29sb3JzcGFjZSA9IEhETUlfQ09MT1JTUEFDRV9ZVVY0MjA7Cj4+IGVsc2UgaWYgKGNy dGNfc3RhdGUtPm91dHB1dF9mb3JtYXQgPT0gSU5URUxfT1VUUFVUX0ZPUk1BVF9ZQ0JDUjQ0NCkK Pj4gCWZyYW1lLmF2aS5jb2xvcnNwYWNlID0gSERNSV9DT0xPUlNQQUNFX1lVVjQ0NDsKPj4gZWxz ZQo+PiAJZnJhbWUuYXZpLmNvbG9yc3BhY2UgPSBIRE1JX0NPTE9SU1BBQ0VfUkdCOwo+Pgo+PiBJ TU8gVGhpcyBsb29rcyBsaWtlIGEgYmV0dGVyIHdheSB0byBoYW5kbGUgdGhpcywgaWUgd2hpbGUg YWRkaW5nIHN1cHBvcnQgZm9yIGEgbmV3IGZvcm1hdCwgYWRkIHN1cHBvcnQgZm9yIGNvcnJlc3Bv bmRpbmcgQVZJIElGIGZpbGVkcy4gVGhpcyB3aWxsIGFsc28gbWFrZSBzY29wZSBvZiB0aGUgcHJv cGVydHkgdW5kZXIgZGlzY3Vzc2lvbiBsZXNzIGNvbXBsaWNhdGVkLgo+IFRoYXQncyBhbiBleGNl cHRpb25hbCBjYXNlLiBXZSdyZSBwcm9ncmFtbWluZyB0aGUgQ1NDIGluIHRoYXQgY2FzZQo+IHRv IGRvIHRoZSBSR0ItPllDYkNyIGNvbnZlcnNpb24gd2l0aG91dCB0ZWxsaW5nIHVzZXJzcGFjZS4g U28gd2UKPiBtdXN0IGFsc28gY29uZmlndXJlIHRoZSBZIGJpdHMgYXV0b21hZ2ljYWxseS4KPgo+ IFdoYXQgd2Ugd2FudCBpcyBhIGNoZWNrIGxpa2Ugc286Cj4KPiBpZiAocHJvcC5jb2xvcnNwYWNl ICE9IGRlZmF1bHQgJiYgb3V0cHV0X2Zvcm1hdCAhPSBSR0IpCj4gICAgICByZXR1cm4gLUlOVkFM Owo+Cj4gYmVjYXVzZSB3ZSBjYW4ndCBzZXQgdXAgdGhlIENTQyB0byBtYWtlIGEgbWVzcyBvZiB0 aGUgdXNlcidzCj4gY2FyZWZ1bGx5IGNyYWZ0ZWQgcGl4ZWxzLiBUaGUgcGl4ZWxzIG1pZ2h0IG5v dCBldmVuIGNvbnRhaW4KPiBSR0IgZGF0YSBpbiB0aGF0IGNhc2UuCj4KPiBXZSdsbCBuZWVkIHRv IGV4dGVuZCB0aGF0IGEgbGl0dGxlIGJpdCBvbmNlIHdlIGFkZCB0aGUgZXhwbGljaXQKPiBjb250 cm9sIG9mIHRoZSBvdXRwdXQgQ1NDIHZpYSBhbm90aGVyIHByb3AuIEJ1dCB0aGUgc2FtZQo+IHBy aW5jaXBsZSBzaG91bGQgaG9sZC4KCkluIGZhY3QsIEkgcmVtZW1iZXIgdGhlIHJlYXNvbiB3aHkg d2UgY3JlYXRlZCBpbmZyYXN0cnVjdHVyZSBsaWtlIHRoaXMsIApzbyB0aGF0LCBnb2luZyBmb3J3 YXJkLCB3ZSBjb3VsZCBqdXN0IGFkZCBhIG91dHB1dF9mb3JtYXQgcHJvcGVydHksIGZvciAKd2hp Y2gsIHdlIGFscmVhZHkgaGF2ZSB0aGUgYmFja2VkIGFuZCB0aGUgc3RhdGUgdmFyaWFibGVzIHJl YWR5LiBUaGUgCmNvbnN1bWUgb2YgdGhpcyBiYWNrZW5kIGNhbiBiZSB0aGlzIGRybV9wcm9wZXJ0 eSAobGlrZSBvdXRwdXRfZm9ybWF0KSwgCm9yIGludGVybmFsIG1vZGVzZXQgbGlrZSBZQ0JDUjQ6 MjowIG9ubHkgbW9kZXMgaW4gRURJRC4gSXQgd2lsbCBhbHNvIGJlIAppbmxpbmUgd2l0aCB5b3Vy IHN1Z2dlc3Rpb24gb2YgQ1NDIHByb3BlcnR5LgoKU28gd2UgY2FuIGhhdmUgdHdvIHByb3BlcnRp ZXMgY29sb3JzcGFjZSAoQlQyMDIwL1NSR0IvUkVDNzA5KSBhbmQgCmNvbG9yX21vZGVsL2NvbG9y X2Zvcm1hdChSR0IvWUNCQ1I0NDQvNDIwKSwgYW5kIGEgY29tYmluYXRpb24gb2YgYm90aCAKc2hv dWxkIHByb2dyYW0gdGhlIG91dHB1dCBBVkkgaW5mby1mcmFtZXMuIERvZXMgaXQgYXBwZWFsIHlv dSA/CgotIFNoYXNoYW5rCgo+Cj4+PiBSZWdhcmRzLAo+Pj4gVW1hIFNoYW5rYXIKPj4+Cj4+Pgo+ Pj4KPj4+Pj4gTXkgaWRlYSB3YXMganVzdCB0byB1cGRhdGUgY29sb3JpbWV0cnkgZmllbGRzIGFs b25lIGFzIHBhcnQgb2YgdGhpcyBpbnRlcmZhY2UuCj4+Pj4+Cj4+Pj4+Pj4+PiArLyogQ0VBIDg2 MSBFeHRlbmRlZCBDb2xvcmltZXRyeSBPcHRpb25zICovICNkZWZpbmUKPj4+Pj4+Pj4+ICtEUk1f TU9ERV9DT0xPUklNRVRSWV9YVllDQ182MDEKPj4+PiAJMwo+Pj4+Pj4+Pj4gKyNkZWZpbmUgRFJN X01PREVfQ09MT1JJTUVUUllfWFZZQ0NfNzA5Cj4+Pj4gCTQKPj4+Pj4+Pj4+ICsjZGVmaW5lIERS TV9NT0RFX0NPTE9SSU1FVFJZX1NZQ0NfNjAxCQkJNQo+Pj4+Pj4+Pj4gKyNkZWZpbmUgRFJNX01P REVfQ09MT1JJTUVUUllfT1BZQ0NfNjAxCj4+Pj4gCTYKPj4+Pj4+Pj4+ICsjZGVmaW5lIERSTV9N T0RFX0NPTE9SSU1FVFJZX09QUkdCCQkJNwo+Pj4+Pj4+Pj4gKyNkZWZpbmUgRFJNX01PREVfQ09M T1JJTUVUUllfQlQyMDIwX1lDQwo+Pj4+IAk4Cj4+Pj4+Pj4+PiArLyogQm90aCBCVDIwMjBfUkdC IGFuZCBCVDIwMjBfWUNiQ2JDciBoYXZlIHNhbWUgdmFsdWUgKi8KPj4+Pj4+Pj4+ICsjZGVmaW5l IERSTV9NT0RFX0NPTE9SSU1FVFJZX0JUMjAyMF9SR0IKPj4+PiAJOQo+Pj4+Pj4+Pj4gKyNkZWZp bmUgRFJNX01PREVfQ09MT1JJTUVUUllfQlQyMDIwX0NZQ0MJCTkKPj4+Pj4+Pj4gSSB0aG91Z2gg eW91IGRpZG4ndCB3YW50IHRoZXNlIG51bWJlcnMgdG8gYmUgYmFzZWQgb24gdGhlIHNwZWMKPj4+ Pj4+Pj4gbnVtYmVycz8gVGhpcyBkdXBsaWNhdGVkIHZhbHVlIHNlZW1zIHRvIGdvIGFnYWluc3Qg dGhhdCBpZGVhLgo+Pj4+Pj4+IFllYWgsIGZvciBIRE1JIHNvbWVob3cgd2FzIHRyeWluZyB0byB1 dGlsaXplIHRoZSBkZWZpbml0aW9ucyB0bwo+Pj4+Pj4+IGFkdmFudGFnZS4gQnV0IEkgZmVlbCwg SXQncyBiZXR0ZXIgdG8gZGUtY291cGxlIHRoaXMuIERlZmluZSB0aGlzCj4+Pj4+Pj4gYXMgbm9y bWFsIGVudW0gdmFsdWVzIHNlcXVlbnRpYWxseSBzbyB0aGF0IHVzZXJzcGFjZSBnZXQgcmVhZGFi bGUKPj4+Pj4+PiBzZXJpYWwgbnVtYmVyCj4+Pj4+PiBraW5kIHZhbHVlcy4KPj4+Pj4+PiBBbmQg dXNlIHRoZXNlIGluIGVuY29kZXIgZmlsZXMgdG8gZ2V0IHByb3BlciB2YWx1ZXMgdG8gYmUKPj4+ Pj4+PiBwcm9ncmFtbWVkIGFzIHBlciByZXNwZWN0aXZlIHNwZWMsIHdoaWxlIGRlZmluaW5nIHRo b3NlIHZhbHVlcyBwZXIKPj4+Pj4+PiBlbmNvZGVyCj4+Pj4gc2VwYXJhdGVseS4KPj4+Pj4+IEhv cGUgdGhpcyBpcyBmaW5lLgo+Pj4+Pj4+Pj4gKy8qIEFkZGl0aW9uYWwgQ29sb3JpbWV0cnkgZXh0 ZW5zaW9uIGFkZGVkIGFzIHBhcnQgb2YgQ1RBIDg2MS5HICovCj4+Pj4+Pj4+PiArI2RlZmluZSBE Uk1fTU9ERV9DT0xPUklNRVRSWV9EQ0lfUDNfUkdCX0Q2NQkJMTAKPj4+Pj4+Pj4+ICsjZGVmaW5l IERSTV9NT0RFX0NPTE9SSU1FVFJZX0RDSV9QM19SR0JfVEhFQVRFUgo+Pj4+Pj4gCTExCj4+Pj4+ Pj4+PiArCj4+Pj4+Pj4+PiArLyogRFAgTVNBIENvbG9yaW1ldHJ5IE9wdGlvbnMgKi8gI2RlZmlu ZQo+Pj4+Pj4+Pj4gK0RSTV9NT0RFX0RQX0NPTE9SSU1FVFJZX1lDQkNSX0lUVV82MDEKPj4+PiAJ MTIKPj4+Pj4+Pj4+ICsjZGVmaW5lIERSTV9NT0RFX0RQX0NPTE9SSU1FVFJZX1lDQkNSX0lUVV83 MDkKPj4+PiAJMTMKPj4+Pj4+Pj4gU3RpbGwgaW5jb25zaXN0ZW50IG5hbWluZyBpbiBtYW55IHBs YWNlcyAoSVRVXyB2cy4gQlQsIFlDQkNSIHZzLgo+Pj4+Pj4+PiBZQ0MsIG9yZGVyIG9mIHRoZSB0 d28pLgo+Pj4+Pj4+IFdpbGwgZml4IHRoaXMuIFRoYW5rcyBWaWxsZS4KPj4+Pj4+Pgo+Pj4+Pj4+ Pj4gKyNkZWZpbmUgRFJNX01PREVfRFBfQ09MT1JJTUVUUllfU1JHQgkJCTE0Cj4+Pj4+Pj4+PiAr I2RlZmluZSBEUk1fTU9ERV9EUF9DT0xPUklNRVRSWV9SR0JfV0lERV9HQU1VVAo+Pj4+Pj4gCTE1 Cj4+Pj4+Pj4+PiArI2RlZmluZSBEUk1fTU9ERV9EUF9DT0xPUklNRVRSWV9TQ1JHQgo+Pj4+IAkx Ngo+Pj4+Pj4+Pj4gKwo+Pj4+Pj4+Pj4gICAvKioKPj4+Pj4+Pj4+ICAgICogc3RydWN0IGRybV9k aXNwbGF5X2luZm8gLSBydW50aW1lIGRhdGEgYWJvdXQgdGhlIGNvbm5lY3RlZCBzaW5rCj4+Pj4+ Pj4+PiAgICAqCj4+Pj4+Pj4+PiBAQCAtNTAzLDYgKzUzOSwxMyBAQCBzdHJ1Y3QgZHJtX2Nvbm5l Y3Rvcl9zdGF0ZSB7Cj4+Pj4+Pj4+PiAgIAl1bnNpZ25lZCBpbnQgY29udGVudF9wcm90ZWN0aW9u Owo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+ICAgCS8qKgo+Pj4+Pj4+Pj4gKwkgKiBAY29sb3JzcGFjZTog U3RhdGUgdmFyaWFibGUgZm9yIENvbm5lY3RvciBwcm9wZXJ0eSB0byByZXF1ZXN0Cj4+Pj4+Pj4+ PiArCSAqIGNvbG9yc3BhY2UgY2hhbmdlIG9uIFNpbmsuIFRoaXMgaXMgbW9zdCBjb21tb25seSB1 c2VkIHRvCj4+Pj4gc3dpdGNoCj4+Pj4+Pj4+PiArCSAqIHRvIHdpZGVyIGNvbG9yIGdhbXV0cyBs aWtlIEJUMjAyMC4KPj4+Pj4+Pj4+ICsJICovCj4+Pj4+Pj4+PiArCXUzMiBjb2xvcnNwYWNlOwo+ Pj4+Pj4+Pj4gKwo+Pj4+Pj4+Pj4gKwkvKioKPj4+Pj4+Pj4+ICAgCSAqIEB3cml0ZWJhY2tfam9i OiBXcml0ZWJhY2sgam9iIGZvciB3cml0ZWJhY2sgY29ubmVjdG9ycwo+Pj4+Pj4+Pj4gICAJICoK Pj4+Pj4+Pj4+ICAgCSAqIEhvbGRzIHRoZSBmcmFtZWJ1ZmZlciBhbmQgb3V0LWZlbmNlIGZvciBh IHdyaXRlYmFjawo+Pj4+IGNvbm5lY3Rvci4KPj4+Pj4+Pj4+IEFzIEBAIC05OTUsNiArMTAzOCwx MiBAQCBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciB7Cj4+Pj4+Pj4+PiAgIAlzdHJ1Y3QgZHJtX3Byb3Bl cnR5ICpjb250ZW50X3Byb3RlY3Rpb25fcHJvcGVydHk7Cj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gICAJ LyoqCj4+Pj4+Pj4+PiArCSAqIEBjb2xvcnNwYWNlX3Byb3BlcnR5OiBDb25uZWN0b3IgcHJvcGVy dHkgdG8gc2V0IHRoZSBzdWl0YWJsZQo+Pj4+Pj4+Pj4gKwkgKiBjb2xvcnNwYWNlIHN1cHBvcnRl ZCBieSB0aGUgc2luay4KPj4+Pj4+Pj4+ICsJICovCj4+Pj4+Pj4+PiArCXN0cnVjdCBkcm1fcHJv cGVydHkgKmNvbG9yc3BhY2VfcHJvcGVydHk7Cj4+Pj4+Pj4+PiArCj4+Pj4+Pj4+PiArCS8qKgo+ Pj4+Pj4+Pj4gICAJICogQHBhdGhfYmxvYl9wdHI6Cj4+Pj4+Pj4+PiAgIAkgKgo+Pj4+Pj4+Pj4g ICAJICogRFJNIGJsb2IgcHJvcGVydHkgZGF0YSBmb3IgdGhlIERQIE1TVCBwYXRoIHByb3BlcnR5 LiBUaGlzCj4+Pj4+Pj4+PiBzaG91bGQgb25seSBAQCAtMTI2OSw2ICsxMzE4LDcgQEAgaW50Cj4+ Pj4+Pj4+PiBkcm1fY29ubmVjdG9yX2F0dGFjaF92cnJfY2FwYWJsZV9wcm9wZXJ0eSgKPj4+Pj4+ Pj4+ICAgaW50IGRybV9jb25uZWN0b3JfYXR0YWNoX2NvbnRlbnRfcHJvdGVjdGlvbl9wcm9wZXJ0 eSgKPj4+Pj4+Pj4+ICAgCQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKTsgIGludAo+ Pj4+Pj4+Pj4gZHJtX21vZGVfY3JlYXRlX2FzcGVjdF9yYXRpb19wcm9wZXJ0eShzdHJ1Y3QgZHJt X2RldmljZSAqZGV2KTsKPj4+Pj4+Pj4+ICtpbnQgZHJtX21vZGVfY3JlYXRlX2NvbG9yc3BhY2Vf cHJvcGVydHkoc3RydWN0IGRybV9jb25uZWN0b3IKPj4+Pj4+Pj4+ICsqY29ubmVjdG9yKTsKPj4+ Pj4+Pj4+ICAgaW50IGRybV9tb2RlX2NyZWF0ZV9jb250ZW50X3R5cGVfcHJvcGVydHkoc3RydWN0 IGRybV9kZXZpY2UKPj4+Pj4+Pj4+ICpkZXYpOyB2b2lkIGRybV9oZG1pX2F2aV9pbmZvZnJhbWVf Y29udGVudF90eXBlKHN0cnVjdAo+Pj4+Pj4+Pj4gaGRtaV9hdmlfaW5mb2ZyYW1lCj4+Pj4+Pj4+ ICpmcmFtZSwKPj4+Pj4+Pj4+ICAgCQkJCQkgY29uc3Qgc3RydWN0Cj4+Pj4gZHJtX2Nvbm5lY3Rv cl9zdGF0ZQo+Pj4+Pj4+PiAqY29ubl9zdGF0ZSk7Cj4+Pj4+Pj4+PiAtLQo+Pj4+Pj4+Pj4gMS45 LjEKPj4+Pj4+Pj4+Cj4+PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwo+Pj4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+Pj4gSW50ZWwtZ2Z4QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwo+Pj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pbnRlbC1nZngKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJp LWRldmVsCg==