From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Sharma, Shashank" Subject: Re: [PATCH RFC 3/6] drm: Plane YCbCr to RGB conversion related properties Date: Fri, 21 Apr 2017 18:28:06 +0530 Message-ID: <75dc934e-fa06-83c7-614b-289e5efe2824@intel.com> References: <3f25532ae9b05c34996fc9657261b204c627e232.1492768073.git.jsarha@ti.com> <20170421111756.GI30290@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" 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 0FCF46E404 for ; Fri, 21 Apr 2017 12:58:11 +0000 (UTC) In-Reply-To: <20170421111756.GI30290@intel.com> 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?= , Jyri Sarha Cc: Liviu.Dudau@arm.com, dri-devel@lists.freedesktop.org, tomi.valkeinen@ti.com, laurent.pinchart@ideasonboard.com List-Id: dri-devel@lists.freedesktop.org UmVnYXJkcwoKU2hhc2hhbmsKCgpPbiA0LzIxLzIwMTcgNDo0NyBQTSwgVmlsbGUgU3lyasOkbMOk IHdyb3RlOgo+IE9uIEZyaSwgQXByIDIxLCAyMDE3IGF0IDEyOjUxOjE0UE0gKzAzMDAsIEp5cmkg U2FyaGEgd3JvdGU6Cj4+IEFkZCBzdGFuZGFyZCBwcm9wZXJ0aWVzIHRvIGNvbnRyb2wgWUNiQ3Ig dG8gUkdCIGNvbnZlcnNpb24gaW4gRFJNCj4+IHBsYW5lcy4gVGhlIGNyZWF0ZWQgcHJvcGVydGll cyBhcmUgc3RvcmVkIHRvIGRybV9wbGFuZSBvYmplY3QgdG8gYWxsb3cKPj4gZGlmZmVyZW50IHNl dCBvZiBzdXBwb3J0ZWQgY29udmVyc2lvbiBtb2RlcyBmb3IgZGlmZmVyZW50IHBsYW5lcyBvbgo+ PiB0aGUgZGV2aWNlLiBGb3Igc2ltcGxpY2l0eSB0aGUgcmVsYXRlZCBwcm9wZXJ0eSBibG9icyBm b3IgQ1NDIG1hdHJpeAo+PiBhbmQgWUNiQ3IgcHJlb2Zmc2V0cyBhcmUgYWxzbyBzdG9yZWQgaW4g dGhlIHNhbWUgcGxhY2UuIFRoZSBibG9iCj4+IGNvbnRlbnRzIGFyZSBkZWZpbmVkIGluIHRoZSB1 YXBpL2RybS9kcm1fbW9kZS5oIGhlYWRlci4KPj4KPj4gU2lnbmVkLW9mZi1ieTogSnlyaSBTYXJo YSA8anNhcmhhQHRpLmNvbT4KPj4gLS0tCj4+ICAgZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMu YyAgICAgICAgfCAgMjYgKysrKysrKwo+PiAgIGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hl bHBlci5jIHwgICA5ICsrKwo+PiAgIGRyaXZlcnMvZ3B1L2RybS9kcm1fY29sb3JfbWdtdC5jICAg IHwgMTM2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQo+PiAgIGRyaXZlcnMv Z3B1L2RybS9kcm1fcGxhbmUuYyAgICAgICAgIHwgIDEwICsrKwo+PiAgIGluY2x1ZGUvZHJtL2Ry bV9jb2xvcl9tZ210LmggICAgICAgIHwgIDIzICsrKysrKwo+PiAgIGluY2x1ZGUvZHJtL2RybV9w bGFuZS5oICAgICAgICAgICAgIHwgIDEwICsrKwo+PiAgIGluY2x1ZGUvdWFwaS9kcm0vZHJtX21v ZGUuaCAgICAgICAgIHwgIDEyICsrKysKPj4gICA3IGZpbGVzIGNoYW5nZWQsIDIyMyBpbnNlcnRp b25zKCspLCAzIGRlbGV0aW9ucygtKQo+Pgo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2RybV9hdG9taWMuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMKPj4gaW5kZXggZjg4 MTMxOS4uZDE1MTJhYSAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMu Ywo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jCj4+IEBAIC03MzIsNiArNzMy LDggQEAgaW50IGRybV9hdG9taWNfcGxhbmVfc2V0X3Byb3BlcnR5KHN0cnVjdCBkcm1fcGxhbmUg KnBsYW5lLAo+PiAgIHsKPj4gICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHBsYW5lLT5kZXY7 Cj4+ICAgCXN0cnVjdCBkcm1fbW9kZV9jb25maWcgKmNvbmZpZyA9ICZkZXYtPm1vZGVfY29uZmln Owo+PiArCWludCByZXQ7Cj4+ICsJYm9vbCBkdW1teTsKPj4gICAKPj4gICAJaWYgKHByb3BlcnR5 ID09IGNvbmZpZy0+cHJvcF9mYl9pZCkgewo+PiAgIAkJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAq ZmIgPSBkcm1fZnJhbWVidWZmZXJfbG9va3VwKGRldiwgdmFsKTsKPj4gQEAgLTc3NCw2ICs3NzYs MjIgQEAgaW50IGRybV9hdG9taWNfcGxhbmVfc2V0X3Byb3BlcnR5KHN0cnVjdCBkcm1fcGxhbmUg KnBsYW5lLAo+PiAgIAkJc3RhdGUtPnJvdGF0aW9uID0gdmFsOwo+PiAgIAl9IGVsc2UgaWYgKHBy b3BlcnR5ID09IHBsYW5lLT56cG9zX3Byb3BlcnR5KSB7Cj4+ICAgCQlzdGF0ZS0+enBvcyA9IHZh bDsKPj4gKwl9IGVsc2UgaWYgKHByb3BlcnR5ID09IHBsYW5lLT55Y2Jjcl90b19yZ2JfbW9kZV9w cm9wZXJ0eSkgewo+PiArCQlzdGF0ZS0+eWNiY3JfdG9fcmdiX21vZGUgPSB2YWw7Cj4+ICsJfSBl bHNlIGlmIChwcm9wZXJ0eSA9PSBwbGFuZS0+eWNiY3JfdG9fcmdiX2NzY19wcm9wZXJ0eSkgewo+ PiArCQlyZXQgPSBkcm1fYXRvbWljX3JlcGxhY2VfcHJvcGVydHlfYmxvYl9mcm9tX2lkKGRldiwK Pj4gKwkJCQkmc3RhdGUtPnljYmNyX3RvX3JnYl9jc2MsCj4+ICsJCQkJdmFsLAo+PiArCQkJCXNp emVvZihzdHJ1Y3QgZHJtX3ljYmNyX3RvX3JnYl9jc2MpLAo+PiArCQkJCSZkdW1teSk7Cj4+ICsJ CXJldHVybiByZXQ7Cj4+ICsJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBwbGFuZS0+eWNiY3JfdG9f cmdiX3ByZW9mZnNldF9wcm9wZXJ0eSkgewo+PiArCQlyZXQgPSBkcm1fYXRvbWljX3JlcGxhY2Vf cHJvcGVydHlfYmxvYl9mcm9tX2lkKGRldiwKPj4gKwkJCQkmc3RhdGUtPnljYmNyX3RvX3JnYl9w cmVvZmZzZXQsCj4+ICsJCQkJdmFsLAo+PiArCQkJCXNpemVvZihzdHJ1Y3QgZHJtX3ljYmNyX3Rv X3JnYl9wcmVvZmZzZXQpLAo+PiArCQkJCSZkdW1teSk7Cj4+ICsJCXJldHVybiByZXQ7Cj4+ICAg CX0gZWxzZSBpZiAocGxhbmUtPmZ1bmNzLT5hdG9taWNfc2V0X3Byb3BlcnR5KSB7Cj4+ICAgCQly ZXR1cm4gcGxhbmUtPmZ1bmNzLT5hdG9taWNfc2V0X3Byb3BlcnR5KHBsYW5lLCBzdGF0ZSwKPj4g ICAJCQkJcHJvcGVydHksIHZhbCk7Cj4+IEBAIC04MzQsNiArODUyLDE0IEBAIGludCBkcm1fYXRv bWljX3BsYW5lX3NldF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPj4gICAJCSp2 YWwgPSBzdGF0ZS0+cm90YXRpb247Cj4+ICAgCX0gZWxzZSBpZiAocHJvcGVydHkgPT0gcGxhbmUt Pnpwb3NfcHJvcGVydHkpIHsKPj4gICAJCSp2YWwgPSBzdGF0ZS0+enBvczsKPj4gKwl9IGVsc2Ug aWYgKHByb3BlcnR5ID09IHBsYW5lLT55Y2Jjcl90b19yZ2JfbW9kZV9wcm9wZXJ0eSkgewo+PiAr CQkqdmFsID0gc3RhdGUtPnljYmNyX3RvX3JnYl9tb2RlOwo+PiArCX0gZWxzZSBpZiAocHJvcGVy dHkgPT0gcGxhbmUtPnljYmNyX3RvX3JnYl9jc2NfcHJvcGVydHkpIHsKPj4gKwkJKnZhbCA9IHN0 YXRlLT55Y2Jjcl90b19yZ2JfY3NjID8KPj4gKwkJCXN0YXRlLT55Y2Jjcl90b19yZ2JfY3NjLT5i YXNlLmlkIDogMDsKPj4gKwl9IGVsc2UgaWYgKHByb3BlcnR5ID09IHBsYW5lLT55Y2Jjcl90b19y Z2JfcHJlb2Zmc2V0X3Byb3BlcnR5KSB7Cj4+ICsJCSp2YWwgPSBzdGF0ZS0+eWNiY3JfdG9fcmdi X3ByZW9mZnNldCA/Cj4+ICsJCQlzdGF0ZS0+eWNiY3JfdG9fcmdiX3ByZW9mZnNldC0+YmFzZS5p ZCA6IDA7Cj4+ICAgCX0gZWxzZSBpZiAocGxhbmUtPmZ1bmNzLT5hdG9taWNfZ2V0X3Byb3BlcnR5 KSB7Cj4+ICAgCQlyZXR1cm4gcGxhbmUtPmZ1bmNzLT5hdG9taWNfZ2V0X3Byb3BlcnR5KHBsYW5l LCBzdGF0ZSwgcHJvcGVydHksIHZhbCk7Cj4+ICAgCX0gZWxzZSB7Cj4+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1f YXRvbWljX2hlbHBlci5jCj4+IGluZGV4IGMzOTk0YjQuLjg5ZmQ4MjYgMTAwNjQ0Cj4+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCj4+IEBAIC0zMTk2LDYgKzMxOTYsMTIgQEAgdm9pZCBf X2RybV9hdG9taWNfaGVscGVyX3BsYW5lX2R1cGxpY2F0ZV9zdGF0ZShzdHJ1Y3QgZHJtX3BsYW5l ICpwbGFuZSwKPj4gICB7Cj4+ICAgCW1lbWNweShzdGF0ZSwgcGxhbmUtPnN0YXRlLCBzaXplb2Yo KnN0YXRlKSk7Cj4+ICAgCj4+ICsJaWYgKHN0YXRlLT55Y2Jjcl90b19yZ2JfY3NjKQo+PiArCQlk cm1fcHJvcGVydHlfYmxvYl9nZXQoc3RhdGUtPnljYmNyX3RvX3JnYl9jc2MpOwo+PiArCj4+ICsJ aWYgKHN0YXRlLT55Y2Jjcl90b19yZ2JfcHJlb2Zmc2V0KQo+PiArCQlkcm1fcHJvcGVydHlfYmxv Yl9nZXQoc3RhdGUtPnljYmNyX3RvX3JnYl9wcmVvZmZzZXQpOwo+PiArCj4+ICAgCWlmIChzdGF0 ZS0+ZmIpCj4+ICAgCQlkcm1fZnJhbWVidWZmZXJfZ2V0KHN0YXRlLT5mYik7Cj4+ICAgCj4+IEBA IC0zMjM2LDYgKzMyNDIsOSBAQCBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICoKPj4gICAgKi8KPj4g ICB2b2lkIF9fZHJtX2F0b21pY19oZWxwZXJfcGxhbmVfZGVzdHJveV9zdGF0ZShzdHJ1Y3QgZHJt X3BsYW5lX3N0YXRlICpzdGF0ZSkKPj4gICB7Cj4+ICsJZHJtX3Byb3BlcnR5X2Jsb2JfcHV0KHN0 YXRlLT55Y2Jjcl90b19yZ2JfY3NjKTsKPj4gKwlkcm1fcHJvcGVydHlfYmxvYl9wdXQoc3RhdGUt PnljYmNyX3RvX3JnYl9wcmVvZmZzZXQpOwo+PiArCj4+ICAgCWlmIChzdGF0ZS0+ZmIpCj4+ICAg CQlkcm1fZnJhbWVidWZmZXJfcHV0KHN0YXRlLT5mYik7Cj4+ICAgCj4+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vZHJtX2NvbG9yX21nbXQuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY29s b3JfbWdtdC5jCj4+IGluZGV4IGNjMjNiOWEuLmJhZGFkZGQgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9kcm1fY29sb3JfbWdtdC5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1f Y29sb3JfbWdtdC5jCj4+IEBAIC0yOSw5ICsyOSwxNCBAQAo+PiAgIC8qKgo+PiAgICAqIERPQzog b3ZlcnZpZXcKPj4gICAgKgo+PiAtICogQ29sb3IgbWFuYWdlbWVudCBvciBjb2xvciBzcGFjZSBh ZGp1c3RtZW50cyBpcyBzdXBwb3J0ZWQgdGhyb3VnaCBhIHNldCBvZiA1Cj4+IC0gKiBwcm9wZXJ0 aWVzIG9uIHRoZSAmZHJtX2NydGMgb2JqZWN0LiBUaGV5IGFyZSBzZXQgdXAgYnkgY2FsbGluZwo+ PiAtICogZHJtX2NydGNfZW5hYmxlX2NvbG9yX21nbXQoKS4KPj4gKyAqIENvbG9yIG1hbmFnZW1l bnQgb3IgY29sb3Igc3BhY2UgYWRqdXN0bWVudHMgaW4gQ1JUQ3MgaXMgc3VwcG9ydGVkCj4+ICsg KiB0aHJvdWdoIGEgc2V0IG9mIDUgcHJvcGVydGllcyBvbiB0aGUgJmRybV9jcnRjIG9iamVjdC4g VGhleSBhcmUgc2V0Cj4+ICsgKiB1cCBieSBjYWxsaW5nIGRybV9jcnRjX2VuYWJsZV9jb2xvcl9t Z210KCkuCj4+ICsgKgo+PiArICogQ29sb3Igc3BhY2UgY29udmVyc2lvbnMgZnJvbSBZQ2JDciB0 byBSR0IgY29sb3Igc3BhY2UgaW4gcGxhbmVzIGlzCj4+ICsgKiBzdXBwb3J0ZXIgdHJvdWdoIDMg b3B0aW9uYWwgcHJvcGVydGllcyBpbiAmZHJtX3BsYW5lIG9iamVjdC4KPj4gKyAqCj4+ICsgKiBU aGUgJmRybV9jcnRjIG9iamVjdCdzIHByb3BlcnRpZXMgYXJlOgo+PiAgICAqCj4+ICAgICogIkRF R0FNTUFfTFVU4oCdOgo+PiAgICAqCUJsb2IgcHJvcGVydHkgdG8gc2V0IHRoZSBkZWdhbW1hIGxv b2t1cCB0YWJsZSAoTFVUKSBtYXBwaW5nIHBpeGVsIGRhdGEKPj4gQEAgLTg1LDYgKzkwLDI4IEBA Cj4+ICAgICogZHJtX21vZGVfY3J0Y19zZXRfZ2FtbWFfc2l6ZSgpLiBEcml2ZXJzIHdoaWNoIHN1 cHBvcnQgYm90aCBzaG91bGQgdXNlCj4+ICAgICogZHJtX2F0b21pY19oZWxwZXJfbGVnYWN5X2dh bW1hX3NldCgpIHRvIGFsaWFzIHRoZSBsZWdhY3kgZ2FtbWEgcmFtcCB3aXRoIHRoZQo+PiAgICAq ICJHQU1NQV9MVVQiIHByb3BlcnR5IGFib3ZlLgo+PiArICoKPj4gKyAqIFRoZSAmZHJtX3BsYW5l IG9iamVjdCdzIHByb3BlcnRpZXMgYXJlOgo+PiArICoKPj4gKyAqICJZQ0JDUl9UT19SR0JfTU9E RSIKPj4gKyAqIAlPcHRpb25hbCBwbGFuZSBlbnVtIHByb3BlcnR5IHRvIGNvbmZpZ3VyZSBZQ2JD ciB0byBSR0IKPj4gKyAqIAljb252ZXJzaW9uLiBUaGUgcG9zc2libGUgbW9kZXMgaW5jbHVkZSBh IG51bWJlciBvZiBzdGFuZGFyZAo+PiArICogCWNvbnZlcnNpb25zIGFuZCBhIHBvc3NpYmlsaXR5 IHRvIHNlbGVjdCBjdXN0b20gY29udmVyc2lvbgo+PiArICogCW1hdHJpeCBhbmQgcHJlb2Zmc2V0 IHZlY3Rvci4gVGhlIGRyaXZlciBzaG91bGQgc2VsZWN0IHRoZQo+PiArICoJc3VwcG9ydGVkIHN1 YnNldCBvZiBvZiB0aGUgbW9kZXMuCj4+ICsgKgo+PiArICogIllDQkNSX1RPX1JHQl9DU0MiCj4+ ICsgKglPcHRpb25hbCBwbGFuZSBwcm9wZXJ0eSBibG9iIHRvIHNldCBZQ2JDciB0byBSR0IgY29u dmVyc2lvbgo+PiArICoJbWF0cml4LiBUaGUgYmxvYiBjb250YWlucyBzdHJ1Y3QgZHJtX3ljYmNy X3RvX3JnYl9jc2Mgd2hpY2ggaXMKPj4gKyAqCWRlZmluZWQgaW4gdWFwaS9kcm0vZHJtX21vZGUu aC4gV2hldGhlciB0aGlzIHByb3BlcnR5IGlzCj4+ICsgKglhY3RpdmUgZGVwZW5kZW50IG9uIFlD QkNSX1RPX1JHQl9NT0RFIHByb3BlcnR5Lgo+PiArICoKPj4gKyAqICJZQ0JDUl9UT19SR0JfUFJF T0ZGU0VUIgo+PiArICoJT3B0aW9uYWwgcGxhbmUgcHJvcGVydHkgYmxvYiB0byBjb25maWd1cmUg WUNiQ3Igb2Zmc2V0IGJlZm9yZQo+PiArICoJWUNiQ3IgdG8gUkdCIENTQyBpcyBhcHBsaWVkLiBU aGUgYmxvYiBjb250YWlucyBzdHJ1Y3QKPj4gKyAqCWRybV95Y2Jjcl90b19yZ2JfcHJlb2Zmc2V0 IHdoaWNoIGlzIGRlZmluZWQgaW4KPj4gKyAqCXVhcGkvZHJtL2RybV9tb2RlLmguIFdoZXRoZXIg dGhpcyBwcm9wZXJ0eSBpcyBhY3RpdmUgZGVwZW5kZW50Cj4+ICsgKglvbiBZQ0JDUl9UT19SR0Jf TU9ERSBwcm9wZXJ0eS4KPj4gICAgKi8KPj4gICAKPj4gICAvKioKPj4gQEAgLTMzMCwzICszNTcs MTA2IEBAIGludCBkcm1fbW9kZV9nYW1tYV9nZXRfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRl diwKPj4gICAJZHJtX21vZGVzZXRfdW5sb2NrX2FsbChkZXYpOwo+PiAgIAlyZXR1cm4gcmV0Owo+ PiAgIH0KPj4gKwo+PiArc3RhdGljIGNoYXIgKnljYmNyX3RvX3JnYl9tb2RlX25hbWVbXSA9IHsK Pj4gKwlbRFJNX1BMQU5FX1lDQkNSX0JUNjAxX0xJTV9UT19SR0JfQlQ2MDFfRlVMTF0gPQo+PiAr CQkiWUNiQ3IgQlQuNjAxIGxpbWl0ZWQgcmFuZ2UgVE8gUkdCIEJULjYwMSBmdWxsIHJhbmdlIiwK Pj4gKwlbRFJNX1BMQU5FX1lDQkNSX0JUNjAxX0ZVTExfVE9fUkdCX0JUNjAxX0ZVTExdID0KPj4g KwkJIllDYkNyIEJULjYwMSBmdWxsIHJhbmdlIFRPIFJHQiBCVC42MDEgZnVsbCByYW5nZSIsCj4+ ICsJW0RSTV9QTEFORV9ZQ0JDUl9CVDcwOV9MSU1fVE9fUkdCX0JUNzA5X0ZVTExdID0KPj4gKwkJ IllDYkNyIEJULjcwOSBsaW1pdGVkIHJhbmdlIFRPIFJHQiBCVC43MDkgZnVsbCByYW5nZSIsCj4+ ICsJW0RSTV9QTEFORV9ZQ0JDUl9CVDIwMjBfTElNX1RPX1JHQl9CVDIwMjBfRlVMTF0gPQo+PiAr CQkiWUNiQ3IgQlQuMjAyMCBsaW1pdGVkIHJhbmdlIFRPIFJHQiBCVC4yMDIwIGZ1bGwgcmFuZ2Ui LAo+PiArCVtEUk1fUExBTkVfWUNCQ1JfQlQ2MDFfTElNX1RPX1JHQl9CVDcwOV9GVUxMXSA9Cj4+ ICsJCSJZQ2JDciBCVC42MDEgbGltaXRlZCByYW5nZSBUTyBSR0IgQlQuNzA5IGZ1bGwgcmFuZ2Ui LAo+IFdlIHByb2JhYmx5IGRvbid0IHdhbnQgdG8gY29uZmxhdGUgdGhlIFlDYkNyLT5SR0IgcGFy dCB3aXRoIHRoZSBjb2xvcnNwYWNlCj4gY29udmVyc2lvbiBiZWNhdXNlIHRoZSBZQ2JDci0+UkdC IHBhcnQgc2hvdWxkIGJlIHBlcmZvcm1lZCBvbiBnYW1tYSBlbmNvZGVkCj4gZGF0YSBhbmQgdGhl IGNvbG9yc3BhY2UgY29udmVyc2lvbiBvbiBsaW5lYXIgZGF0YS4gU28gd2UgbmVlZCBhIGRlZ2Ft bWEKPiBzdGFnZSBpbiBiZXR3ZWVuLiBBdCBsZWFzdCB0aGF0IHNlZW1lZCB0byBiZSB0aGUgZ2Vu ZXJhbCBjb25jZW5jdXMgYWZ0ZXIKPiB0aGUgbGFzdCByb3VuZCBvZiBtYWlscyBvbiB0aGlzIHRv cGljLgo+Cj4gQWZ0ZXIgc3RhcmluZyBhdCB0aGUgdjRsIGRvY3Mgb24gdGhpcyBzdHVmZiBJIGtp bmRhIGxpa2UgdGhlaXIKPiAiZW5jb2RpbmciIHRlcm1pbm9sb2d5IHRvIGRlc2NyaWJlIHRoZSBZ Q2JDci0+UkdCIHBhcnQsIHNvIEknbSBub3cgYQo+IGxpdHRsZSBwYXJ0aWFsIHRvIGNhbGxpbmcg dGhlIHByb3Agc29tZXRoaW5nIGxpa2UgWUNCQ1JfRU5DT0RJTkcuIE9UT0gKPiBpZiB3ZSB3YW50 IHRvIGV4cG9zZSB0aGUgcmF3IG1hdHJpeCBhcyBhIGJsb2IgdGhlbiBtYXliZSBjYWxsaW5nIGl0 IGEKPiBDU0MgbWlnaHQgYmUgYmV0dGVyLiBOb3Qgc3VyZSB0aGVyZSdzIG11Y2ggcG9pbnQgaW4g ZXhwb3NpbmcgaXQgdGhvdWdoLgo+IEkgZG9uJ3QgdGhpbmsgbW9zdCBwZW9wbGUgYXJlIGluIHRo ZSBoYWJpdCBpZiBjb29raW5nIHVwIG5ldyB3YXlzIHRvCj4gZW5jb2RlIHRoZWlyIHBpeGVsIGRh dGEuClZpbGxlIGhhcyBhbHJlYWR5IGNvbnZleWVkIHRoZSB6ZXN0IG9mIHRoaXMgZGVzaWduLiBX aGVuIHdlIHdhbnQgdG8gCmJsZW5kIHRoZSBkYXRhIHRhcmdldGluZwp2YXJpb3VzIGZyYW1lYnVm ZmVycywgd2UgaGF2ZSB0byBjb25zaWRlciB0aGVpciBjb2xvciBzcGFjZXMgdG9vLiBTbyB3ZSAK c2hvdWxkIGFjdHVhbGx5IGNvbWUgdXAKd2l0aCBhIHNldCBvZiBwcm9wZXJ0aWVzLCB3aGljaCBp biBhIGNvbWJpbmF0aW9uIChhbmQgaW4gc2VxdWVuY2UpIApwcm92aWRlIHRoZSBjYXBhYmlsaXR5 IHRvIGJsZW5kCmEgUmVjIDcwOSBhbmQgUmVjIDIwMjAgYnVmZmVyLgoKSSB3YXMgc3VwcG9zZWQg dG8gcHVibGlzaCBhIGRlc2lnbiBSRkMgZG9jIGZvciB0aGUgc2FtZSwgYnV0IGl0IGdvdCAKZGVs YXllZCBmcm9tIG15IHNpZGUuCldpbGwgcHVibGlzaCB0aGF0IGluIHBhcmFsbGVsLCB0byBzZWUg aWYgd2UgY2FuIG1lcmdlIHRoZXNlIHR3byB0aG91Z2h0cy4KCi0gU2hhc2hhbmsKPj4gKwlbRFJN X1BMQU5FX1lDQkNSX0JUNjAxX0xJTV9UT19SR0JfQlQyMDIwX0ZVTExdID0KPj4gKwkJIllDYkNy IEJULjYwMSBsaW1pdGVkIHJhbmdlIFRPIFJHQiBCVC4yMDIwIGZ1bGwgcmFuZ2UiLAo+PiArCVtE Uk1fUExBTkVfWUNCQ1JfQlQ3MDlfTElNX1RPX1JHQl9CVDYwMV9GVUxMXSA9Cj4+ICsJCSJZQ2JD ciBCVC43MDkgbGltaXRlZCByYW5nZSBUTyBSR0IgQlQuNjAxIGZ1bGwgcmFuZ2UiLAo+PiArCVtE Uk1fUExBTkVfWUNCQ1JfQlQ3MDlfTElNX1RPX1JHQl9CVDIwMjBfRlVMTF0gPQo+PiArCQkiWUNi Q3IgQlQuNzA5IGxpbWl0ZWQgcmFuZ2UgVE8gUkdCIEJULjIwMjAgZnVsbCByYW5nZSIsCj4+ICsJ W0RSTV9QTEFORV9ZQ0JDUl9CVDIwMjBfTElNX1RPX1JHQl9CVDYwMV9GVUxMXSA9Cj4+ICsJCSJZ Q2JDciBCVC4yMDIwIGxpbWl0ZWQgcmFuZ2UgVE8gUkdCIEJULjYwMSBmdWxsIHJhbmdlIiwKPj4g KwlbRFJNX1BMQU5FX1lDQkNSX0JUMjAyMF9MSU1fVE9fUkdCX0JUNzA5X0ZVTExdID0KPj4gKwkJ IllDYkNyIEJULjIwMjAgbGltaXRlZCByYW5nZSBUTyBSR0IgQlQuNzA5IGZ1bGwgcmFuZ2UiLAo+ PiArCVtEUk1fUExBTkVfWUNCQ1JfVE9fUkdCX0NTQ19MSU1fUFJFT0ZGU0VUXSA9Cj4+ICsJCSJZ Q2JDciBUTyBSR0IgQ1NDIGxpbWl0ZWQgcmFuZ2UgcHJlb2Zmc2V0IiwKPj4gKwlbRFJNX1BMQU5F X1lDQkNSX1RPX1JHQl9DU0NfRlVMTF9QUkVPRkZTRVRdID0KPj4gKwkJIllDYkNyIFRPIFJHQiBD U0MgZnVsbCByYW5nZSBwcmVvZmZzZXQiLAo+PiArCVtEUk1fUExBTkVfWUNCQ1JfVE9fUkdCX0NT Q19QUkVPRkZTRVRfVkVDVE9SXSA9Cj4+ICsJCSJZQ0JDUiBUTyBSR0IgQ1NDIHByZW9mZnNldCB2 ZWN0b3IiLAo+PiArfTsKPj4gKwo+PiArLyoqCj4+ICsgKiBkcm1fcGxhbmVfY3JlYXRlX3ljYmNy X3RvX3JnYl9wcm9wZXJ0aWVzIC0geWNiY3IgdG8gcmdiIHJlbGF0ZWQgcHJvcGVydGllcwo+PiAr ICogQGVudW1fbGlzdDogZHJtX3Byb3BfZW51bV9saXN0IGFycmF5IG9mIHN1cHBvcnRlZCBtb2Rl cyB3aXRob3V0IG5hbWVzCj4+ICsgKiBAZW51bV9saXN0X2xlbjogbGVuZ3RoIG9mIGVudW1fbGlz dCBhcnJheQo+PiArICogQGRlZmF1bHRfbW9kZTogZGVmYXVsdCBjc2MgbW9kZQo+PiArICoKPj4g KyAqIENyZWF0ZSBhbmQgYXR0YWNoIHBsYW5lIHNwZWNpZmljIFlDYkNyIHRvIFJHQiBjb252ZXJz aW9uIHJlbGF0ZWQKPj4gKyAqIHByb3BlcnRpZXMgdG8gdG8gdGhlIGRybV9wbGFuZSBvYmplY3Qu IFRoZSBZQ0JDUl9UT19SR0JfTU9ERSBwcm9wZXR5Cj4+ICsgKiBjcmVhdGVkIGFuZCBhbiB0aGUg c3VwcG9ydGVkIG1vZGVzIHNob3VsZCBiZSBwcm92aWRlZCB0aGUgZW51bV9saXN0Cj4+ICsgKiBw YXJhbWV0ZXIuIFlDQkNSX1RPX1JHQl9DU0MgYW5kIFlDQkNSX1RPX1JHQl9QUkVPRkZTRVQgcHJv cGVydGllcyBhcmUKPj4gKyAqIGNyZWF0ZWQgYmFzZWQgb24gc3VwcG9ydGVkIGNvbnZlcnNpb24g bW9kZXMuIFRoZSBlbnVtX2xpc3QgcGFyYW1ldGVyCj4+ICsgKiBzaG91bGQgbm90IGNvbnRhaW4g dGhlIGVudW0gbmFtZXMsIGJlY2F1c2UgdGhlIHN0YW5kYXJkIG5hbWVzIGFyZQo+PiArICogYWRk ZWQgYnkgdGhpcyBmdW5jdGlvbi4KPj4gKyAqLwo+PiAraW50IGRybV9wbGFuZV9jcmVhdGVfeWNi Y3JfdG9fcmdiX3Byb3BlcnRpZXMoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4+ICsJCQlzdHJ1 Y3QgZHJtX3Byb3BfZW51bV9saXN0ICplbnVtX2xpc3QsCj4+ICsJCQl1bnNpZ25lZCBpbnQgZW51 bV9saXN0X2xlbiwKPj4gKwkJCWVudW0gZHJtX3BsYW5lX3ljYmNyX3RvX3JnYl9tb2RlIGRlZmF1 bHRfbW9kZSkKPj4gK3sKPj4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gcGxhbmUtPmRldjsK Pj4gKwlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpwcm9wOwo+PiArCWJvb2wgeWNiY3JfdG9fcmdiX2Nz Y19jcmVhdGUgPSBmYWxzZTsKPj4gKwlib29sIHljYmNyX3RvX3JnYl9wcmVvZmZzZXRfY3JlYXRl ID0gZmFsc2U7Cj4+ICsJaW50IGk7Cj4+ICsKPj4gKwlpZiAoV0FSTl9PTihwbGFuZS0+eWNiY3Jf dG9fcmdiX21vZGVfcHJvcGVydHkgIT0gTlVMTCkpCj4+ICsJCXJldHVybiAtRUVYSVNUOwo+PiAr Cj4+ICsJZm9yIChpID0gMDsgaSA8IGVudW1fbGlzdF9sZW47IGkrKykgewo+PiArCQllbnVtIGRy bV9wbGFuZV95Y2Jjcl90b19yZ2JfbW9kZSBtb2RlID0gZW51bV9saXN0W2ldLnR5cGU7Cj4+ICsK Pj4gKwkJZW51bV9saXN0W2ldLm5hbWUgPSB5Y2Jjcl90b19yZ2JfbW9kZV9uYW1lW21vZGVdOwo+ PiArCj4+ICsJCWlmIChtb2RlID09IERSTV9QTEFORV9ZQ0JDUl9UT19SR0JfQ1NDX0xJTV9QUkVP RkZTRVQgfHwKPj4gKwkJICAgIG1vZGUgPT0gRFJNX1BMQU5FX1lDQkNSX1RPX1JHQl9DU0NfRlVM TF9QUkVPRkZTRVQpCj4+ICsJCQl5Y2Jjcl90b19yZ2JfY3NjX2NyZWF0ZSA9IHRydWU7Cj4+ICsK Pj4gKwkJaWYgKG1vZGUgPT0gRFJNX1BMQU5FX1lDQkNSX1RPX1JHQl9DU0NfUFJFT0ZGU0VUX1ZF Q1RPUikgewo+PiArCQkJeWNiY3JfdG9fcmdiX2NzY19jcmVhdGUgPSB0cnVlOwo+PiArCQkJeWNi Y3JfdG9fcmdiX3ByZW9mZnNldF9jcmVhdGUgPSB0cnVlOwo+PiArCQl9Cj4+ICsJfQo+PiArCj4+ ICsJcHJvcCA9IGRybV9wcm9wZXJ0eV9jcmVhdGVfZW51bShkZXYsIERSTV9NT0RFX1BST1BfQVRP TUlDLAo+PiArCQkJCQkiWUNCQ1JfVE9fUkdCX01PREUiLAo+PiArCQkJCQllbnVtX2xpc3QsIGVu dW1fbGlzdF9sZW4pOwo+PiArCWlmICghcHJvcCkKPj4gKwkJcmV0dXJuIC1FTk9NRU07Cj4+ICsJ cGxhbmUtPnljYmNyX3RvX3JnYl9tb2RlX3Byb3BlcnR5ID0gcHJvcDsKPj4gKwlkcm1fb2JqZWN0 X2F0dGFjaF9wcm9wZXJ0eSgmcGxhbmUtPmJhc2UsIHByb3AsIGRlZmF1bHRfbW9kZSk7Cj4+ICsK Pj4gKwlpZiAoeWNiY3JfdG9fcmdiX2NzY19jcmVhdGUpIHsKPj4gKwkJcHJvcCA9IGRybV9wcm9w ZXJ0eV9jcmVhdGUoZGV2LCBEUk1fTU9ERV9QUk9QX0FUT01JQyB8Cj4+ICsJCQkJCSAgIERSTV9N T0RFX1BST1BfQkxPQiwKPj4gKwkJCQkJICAgIllDQkNSX1RPX1JHQl9DU0MiLCAwKTsKPj4gKwkJ aWYgKCFwcm9wKQo+PiArCQkJcmV0dXJuIC1FTk9NRU07Cj4+ICsJCXBsYW5lLT55Y2Jjcl90b19y Z2JfY3NjX3Byb3BlcnR5ID0gcHJvcDsKPj4gKwkJZHJtX29iamVjdF9hdHRhY2hfcHJvcGVydHko JnBsYW5lLT5iYXNlLCBwcm9wLCAwKTsKPj4gKwl9Cj4+ICsKPj4gKwlpZiAoeWNiY3JfdG9fcmdi X3ByZW9mZnNldF9jcmVhdGUpIHsKPj4gKwkJcHJvcCA9IGRybV9wcm9wZXJ0eV9jcmVhdGUoZGV2 LCBEUk1fTU9ERV9QUk9QX0FUT01JQyB8Cj4+ICsJCQkJCSAgIERSTV9NT0RFX1BST1BfQkxPQiwK Pj4gKwkJCQkJICAgIllDQkNSX1RPX1JHQl9QUkVPRkZTRVQiLCAwKTsKPj4gKwkJaWYgKCFwcm9w KQo+PiArCQkJcmV0dXJuIC1FTk9NRU07Cj4+ICsJCXBsYW5lLT55Y2Jjcl90b19yZ2JfcHJlb2Zm c2V0X3Byb3BlcnR5ID0gcHJvcDsKPj4gKwkJZHJtX29iamVjdF9hdHRhY2hfcHJvcGVydHkoJnBs YW5lLT5iYXNlLCBwcm9wLCAwKTsKPj4gKwl9Cj4+ICsKPj4gKwlyZXR1cm4gMDsKPj4gK30KPj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fcGxhbmUuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fcGxhbmUuYwo+PiBpbmRleCBiYzcxYWEyLi40YzdlODI3IDEwMDY0NAo+PiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vZHJtX3BsYW5lLmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9w bGFuZS5jCj4+IEBAIC0yNDQsNiArMjQ0LDE2IEBAIHZvaWQgZHJtX3BsYW5lX2NsZWFudXAoc3Ry dWN0IGRybV9wbGFuZSAqcGxhbmUpCj4+ICAgCj4+ICAgCWtmcmVlKHBsYW5lLT5uYW1lKTsKPj4g ICAKPj4gKwlpZiAocGxhbmUtPnljYmNyX3RvX3JnYl9tb2RlX3Byb3BlcnR5KQo+PiArCQlkcm1f cHJvcGVydHlfZGVzdHJveShkZXYsIHBsYW5lLT55Y2Jjcl90b19yZ2JfbW9kZV9wcm9wZXJ0eSk7 Cj4+ICsKPj4gKwlpZiAocGxhbmUtPnljYmNyX3RvX3JnYl9jc2NfcHJvcGVydHkpCj4+ICsJCWRy bV9wcm9wZXJ0eV9kZXN0cm95KGRldiwgcGxhbmUtPnljYmNyX3RvX3JnYl9jc2NfcHJvcGVydHkp Owo+PiArCj4+ICsJaWYgKHBsYW5lLT55Y2Jjcl90b19yZ2JfcHJlb2Zmc2V0X3Byb3BlcnR5KQo+ PiArCQlkcm1fcHJvcGVydHlfZGVzdHJveShkZXYsCj4+ICsJCQkJICAgICBwbGFuZS0+eWNiY3Jf dG9fcmdiX3ByZW9mZnNldF9wcm9wZXJ0eSk7Cj4+ICsKPj4gICAJbWVtc2V0KHBsYW5lLCAwLCBz aXplb2YoKnBsYW5lKSk7Cj4+ICAgfQo+PiAgIEVYUE9SVF9TWU1CT0woZHJtX3BsYW5lX2NsZWFu dXApOwo+PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2NvbG9yX21nbXQuaCBiL2luY2x1 ZGUvZHJtL2RybV9jb2xvcl9tZ210LmgKPj4gaW5kZXggMDNhNTljYi4uYTIwYjNmZiAxMDA2NDQK Pj4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2NvbG9yX21nbXQuaAo+PiArKysgYi9pbmNsdWRlL2Ry bS9kcm1fY29sb3JfbWdtdC5oCj4+IEBAIC0yNiw2ICsyNiw4IEBACj4+ICAgI2luY2x1ZGUgPGxp bnV4L2N0eXBlLmg+Cj4+ICAgCj4+ICAgc3RydWN0IGRybV9jcnRjOwo+PiArc3RydWN0IGRybV9w bGFuZTsKPj4gK3N0cnVjdCBkcm1fcHJvcF9lbnVtX2xpc3Q7Cj4+ICAgCj4+ICAgdWludDMyX3Qg ZHJtX2NvbG9yX2x1dF9leHRyYWN0KHVpbnQzMl90IHVzZXJfaW5wdXQsIHVpbnQzMl90IGJpdF9w cmVjaXNpb24pOwo+PiAgIAo+PiBAQCAtMzcsNCArMzksMjUgQEAgdm9pZCBkcm1fY3J0Y19lbmFi bGVfY29sb3JfbWdtdChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4+ICAgaW50IGRybV9tb2RlX2Ny dGNfc2V0X2dhbW1hX3NpemUoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+PiAgIAkJCQkgaW50IGdh bW1hX3NpemUpOwo+PiAgIAo+PiArZW51bSBkcm1fcGxhbmVfeWNiY3JfdG9fcmdiX21vZGUgewo+ PiArCURSTV9QTEFORV9ZQ0JDUl9CVDYwMV9MSU1fVE9fUkdCX0JUNjAxX0ZVTEwgPSAwLAo+PiAr CURSTV9QTEFORV9ZQ0JDUl9CVDYwMV9GVUxMX1RPX1JHQl9CVDYwMV9GVUxMLAo+PiArCURSTV9Q TEFORV9ZQ0JDUl9CVDcwOV9MSU1fVE9fUkdCX0JUNzA5X0ZVTEwsCj4+ICsJRFJNX1BMQU5FX1lD QkNSX0JUMjAyMF9MSU1fVE9fUkdCX0JUMjAyMF9GVUxMLAo+PiArCURSTV9QTEFORV9ZQ0JDUl9C VDYwMV9MSU1fVE9fUkdCX0JUNzA5X0ZVTEwsCj4+ICsJRFJNX1BMQU5FX1lDQkNSX0JUNjAxX0xJ TV9UT19SR0JfQlQyMDIwX0ZVTEwsCj4+ICsJRFJNX1BMQU5FX1lDQkNSX0JUNzA5X0xJTV9UT19S R0JfQlQ2MDFfRlVMTCwKPj4gKwlEUk1fUExBTkVfWUNCQ1JfQlQ3MDlfTElNX1RPX1JHQl9CVDIw MjBfRlVMTCwKPj4gKwlEUk1fUExBTkVfWUNCQ1JfQlQyMDIwX0xJTV9UT19SR0JfQlQ2MDFfRlVM TCwKPj4gKwlEUk1fUExBTkVfWUNCQ1JfQlQyMDIwX0xJTV9UT19SR0JfQlQ3MDlfRlVMTCwKPj4g KwlEUk1fUExBTkVfWUNCQ1JfVE9fUkdCX0NTQ19MSU1fUFJFT0ZGU0VULAo+PiArCURSTV9QTEFO RV9ZQ0JDUl9UT19SR0JfQ1NDX0ZVTExfUFJFT0ZGU0VULAo+PiArCURSTV9QTEFORV9ZQ0JDUl9U T19SR0JfQ1NDX1BSRU9GRlNFVF9WRUNUT1IsCj4+ICt9Owo+PiArCj4+ICtpbnQgZHJtX3BsYW5l X2NyZWF0ZV95Y2Jjcl90b19yZ2JfcHJvcGVydGllcyhzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwK Pj4gKwkJCXN0cnVjdCBkcm1fcHJvcF9lbnVtX2xpc3QgKmVudW1fbGlzdCwKPj4gKwkJCXVuc2ln bmVkIGludCBlbnVtX2xpc3RfbGVuLAo+PiArCQkJZW51bSBkcm1fcGxhbmVfeWNiY3JfdG9fcmdi X21vZGUgZGVmYXVsdF9tb2RlKTsKPj4gKwo+PiAgICNlbmRpZgo+PiBkaWZmIC0tZ2l0IGEvaW5j bHVkZS9kcm0vZHJtX3BsYW5lLmggYi9pbmNsdWRlL2RybS9kcm1fcGxhbmUuaAo+PiBpbmRleCA5 YWIzZTcwLi40MWRjZGUyIDEwMDY0NAo+PiAtLS0gYS9pbmNsdWRlL2RybS9kcm1fcGxhbmUuaAo+ PiArKysgYi9pbmNsdWRlL2RybS9kcm1fcGxhbmUuaAo+PiBAQCAtMjYsNiArMjYsNyBAQAo+PiAg ICNpbmNsdWRlIDxsaW51eC9saXN0Lmg+Cj4+ICAgI2luY2x1ZGUgPGxpbnV4L2N0eXBlLmg+Cj4+ ICAgI2luY2x1ZGUgPGRybS9kcm1fbW9kZV9vYmplY3QuaD4KPj4gKyNpbmNsdWRlIDxkcm0vZHJt X2NvbG9yX21nbXQuaD4KPj4gICAKPj4gICBzdHJ1Y3QgZHJtX2NydGM7Cj4+ICAgc3RydWN0IGRy bV9wcmludGVyOwo+PiBAQCAtMTEyLDYgKzExMywxMSBAQCBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRl IHsKPj4gICAJdW5zaWduZWQgaW50IHpwb3M7Cj4+ICAgCXVuc2lnbmVkIGludCBub3JtYWxpemVk X3pwb3M7Cj4+ICAgCj4+ICsJLyogWUNiQ3IgdG8gUkdCIGNvbnZlcnNpb24gKi8KPj4gKwllbnVt IGRybV9wbGFuZV95Y2Jjcl90b19yZ2JfbW9kZSB5Y2Jjcl90b19yZ2JfbW9kZTsKPj4gKwlzdHJ1 Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKnljYmNyX3RvX3JnYl9jc2M7Cj4+ICsJc3RydWN0IGRybV9w cm9wZXJ0eV9ibG9iICp5Y2Jjcl90b19yZ2JfcHJlb2Zmc2V0Owo+PiArCj4+ICAgCS8qIENsaXBw ZWQgY29vcmRpbmF0ZXMgKi8KPj4gICAJc3RydWN0IGRybV9yZWN0IHNyYywgZHN0Owo+PiAgIAo+ PiBAQCAtNTIzLDYgKzUyOSwxMCBAQCBzdHJ1Y3QgZHJtX3BsYW5lIHsKPj4gICAKPj4gICAJc3Ry dWN0IGRybV9wcm9wZXJ0eSAqenBvc19wcm9wZXJ0eTsKPj4gICAJc3RydWN0IGRybV9wcm9wZXJ0 eSAqcm90YXRpb25fcHJvcGVydHk7Cj4+ICsKPj4gKwlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICp5Y2Jj cl90b19yZ2JfbW9kZV9wcm9wZXJ0eTsKPj4gKwlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICp5Y2Jjcl90 b19yZ2JfY3NjX3Byb3BlcnR5Owo+PiArCXN0cnVjdCBkcm1fcHJvcGVydHkgKnljYmNyX3RvX3Jn Yl9wcmVvZmZzZXRfcHJvcGVydHk7Cj4+ICAgfTsKPj4gICAKPj4gICAjZGVmaW5lIG9ial90b19w bGFuZSh4KSBjb250YWluZXJfb2YoeCwgc3RydWN0IGRybV9wbGFuZSwgYmFzZSkKPj4gZGlmZiAt LWdpdCBhL2luY2x1ZGUvdWFwaS9kcm0vZHJtX21vZGUuaCBiL2luY2x1ZGUvdWFwaS9kcm0vZHJt X21vZGUuaAo+PiBpbmRleCA4YzY3ZmMwLi4yN2UwYmVlIDEwMDY0NAo+PiAtLS0gYS9pbmNsdWRl L3VhcGkvZHJtL2RybV9tb2RlLmgKPj4gKysrIGIvaW5jbHVkZS91YXBpL2RybS9kcm1fbW9kZS5o Cj4+IEBAIC01NDMsNiArNTQzLDE4IEBAIHN0cnVjdCBkcm1fY29sb3JfbHV0IHsKPj4gICAJX191 MTYgcmVzZXJ2ZWQ7Cj4+ICAgfTsKPj4gICAKPj4gK3N0cnVjdCBkcm1feWNiY3JfdG9fcmdiX2Nz YyB7Cj4+ICsJLyogQ29udmVyc2lvbiBtYXRyaXggaW4gMi1jb21wbGVtZW50IHMzMi4zMiBmb3Jt YXQuICovCj4+ICsJX19zNjQgcnksIHJjYiwgcmNyOwo+PiArCV9fczY0IGd5LCBnY2IsIGdjcjsK Pj4gKwlfX3M2NCBieSwgYmNiLCBiY3I7Cj4+ICt9Owo+PiArCj4+ICtzdHJ1Y3QgZHJtX3ljYmNy X3RvX3JnYl9wcmVvZmZzZXQgewo+PiArCS8qIE9mZnNldCB2ZWN0b3IgaW4gMi1jb21wbGVtZW50 IHMuMzIgZm9ybWF0LiAqLwo+PiArCV9fczMyIHksIGNiLCBjcjsKPj4gK307Cj4+ICsKPj4gICAj ZGVmaW5lIERSTV9NT0RFX1BBR0VfRkxJUF9FVkVOVCAweDAxCj4+ICAgI2RlZmluZSBEUk1fTU9E RV9QQUdFX0ZMSVBfQVNZTkMgMHgwMgo+PiAgICNkZWZpbmUgRFJNX01PREVfUEFHRV9GTElQX1RB UkdFVF9BQlNPTFVURSAweDQKPj4gLS0gCj4+IDEuOS4xCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZl bEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9kcmktZGV2ZWwK