From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 01/14] drm: add new plane property FB_DAMAGE_CLIPS to send damage during plane update Date: Thu, 6 Sep 2018 10:00:42 +0200 Message-ID: <20180906080042.GP4929@phenom.ffwll.local> References: <20180905233901.2321-1-drawat@vmware.com> <20180905233901.2321-2-drawat@vmware.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-ed1-x544.google.com (mail-ed1-x544.google.com [IPv6:2a00:1450:4864:20::544]) by gabe.freedesktop.org (Postfix) with ESMTPS id 161026E5FE for ; Thu, 6 Sep 2018 08:00:47 +0000 (UTC) Received: by mail-ed1-x544.google.com with SMTP id f38-v6so8131872edd.8 for ; Thu, 06 Sep 2018 01:00:47 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20180905233901.2321-2-drawat@vmware.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Deepak Rawat Cc: thellstrom@vmware.com, dri-devel@lists.freedesktop.org, linux-graphics-maintainer@vmware.com, lukasz.spintzyk@displaylink.com List-Id: dri-devel@lists.freedesktop.org T24gV2VkLCBTZXAgMDUsIDIwMTggYXQgMDQ6Mzg6NDhQTSAtMDcwMCwgRGVlcGFrIFJhd2F0IHdy b3RlOgo+IEZyb206IEx1a2FzeiBTcGludHp5ayA8bHVrYXN6LnNwaW50enlrQGRpc3BsYXlsaW5r LmNvbT4KPiAKPiBGQl9EQU1BR0VfQ0xJUFMgaXMgYW4gb3B0aW9uYWwgcGxhbmUgcHJvcGVydHkg dG8gbWFyayBkYW1hZ2VkIHJlZ2lvbnMKPiBvbiB0aGUgcGxhbmUgaW4gZnJhbWVidWZmZXIgY29v cmRpbmF0ZXMgb2YgdGhlIGZyYW1lYnVmZmVyIGF0dGFjaGVkIHRvCj4gdGhlIHBsYW5lLgo+IAo+ IFRoZSBsYXlvdXQgb2YgYmxvYiBkYXRhIGlzIHNpbXBseSBhbiBhcnJheSBvZiAic3RydWN0IGRy bV9tb2RlX3JlY3QiCj4gd2l0aCBtYXhpbXVtIGFycmF5IHNpemUgbGltaXRlZCBieSBEUk1fTU9E RV9GQl9ESVJUWV9NQVhfQ0xJUFMuIFVubGlrZQo+IHBsYW5lIHNyYyBjb29yZGluYXRlcywgZGFt YWdlIGNsaXBzIGFyZSBub3QgaW4gMTYuMTYgZml4ZWQgcG9pbnQuIEFzCj4gcGxhbmUgc3JjIGlu IGZyYW1lYnVmZmVyIGNhbm5vdCBiZSBuZWdhdGl2ZSBzbyBhcmUgZGFtYWdlIGNsaXBzLiBJbgo+ IGRhbWFnZSBjbGlwLCB4MS95MSBhcmUgaW5jbHVzaXZlIGFuZCB4Mi95MiBhcmUgZXhjbHVzaXZl Lgo+IAo+IFRoaXMgcGF0Y2ggYWxzbyBleHBvcnRzIHRoZSBrZXJuZWwgaW50ZXJuYWwgZHJtX3Jl Y3QgdG8gdXNlcnNwYWNlIGFzCj4gZHJtX21vZGVfcmVjdC4gVGhpcyBpcyBiZWNhdXNlICJzdHJ1 Y3QgZHJtX2NsaXBfcmVjdCIgaXMgbm90IHN1ZmZpY2llbnQKPiB0byByZXByZXNlbnQgZGFtYWdl IGZvciBjdXJyZW50IHBsYW5lIHNpemUuCj4gCj4gVXBwZXIgbGltaXQgaXMgc2V0IG9uIHRoZSBt YXhpbXVtIG51bWJlciBvZiBkYW1hZ2UgY2xpcHMgdG8gYXZvaWQKPiBvdmVyZmxvdyBieSB1c2Vy LXNwYWNlLgo+IAo+IERyaXZlciB3aGljaCBhcmUgaW50ZXJlc3RlZCBpbiBlbmFibGluZyBGQl9E QU1BR0VfQ0xJUFMgcHJvcGVydHkgZm9yIGEKPiBwbGFuZSBzaG91bGQgZW5hYmxlIHRoaXMgcHJv cGVydHkgdXNpbmcgZHJtX3BsYW5lX2VuYWJsZV9kYW1hZ2VfY2xpcHMuCj4gCj4gU2lnbmVkLW9m Zi1ieTogTHVrYXN6IFNwaW50enlrIDxsdWthc3ouc3BpbnR6eWtAZGlzcGxheWxpbmsuY29tPgo+ IFNpZ25lZC1vZmYtYnk6IERlZXBhayBSYXdhdCA8ZHJhd2F0QHZtd2FyZS5jb20+Cj4gLS0tCj4g IERvY3VtZW50YXRpb24vZ3B1L2RybS1rbXMucnN0ICAgICAgIHwgIDkgKysrCj4gIGRyaXZlcnMv Z3B1L2RybS9NYWtlZmlsZSAgICAgICAgICAgIHwgIDIgKy0KPiAgZHJpdmVycy9ncHUvZHJtL2Ry bV9hdG9taWMuYyAgICAgICAgfCAxMyArKysrCj4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWlj X2hlbHBlci5jIHwgIDQgKysKPiAgZHJpdmVycy9ncHUvZHJtL2RybV9kYW1hZ2VfaGVscGVyLmMg fCA5MiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ICBkcml2ZXJzL2dwdS9kcm0vZHJt X21vZGVfY29uZmlnLmMgICB8ICA2ICsrCj4gIGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4 X2ttcy5jIHwgIDEgKwo+ICBpbmNsdWRlL2RybS9kcm1fZGFtYWdlX2hlbHBlci5oICAgICB8IDYz ICsrKysrKysrKysrKysrKysrKysrCj4gIGluY2x1ZGUvZHJtL2RybV9tb2RlX2NvbmZpZy5oICAg ICAgIHwgMTAgKysrKwo+ICBpbmNsdWRlL2RybS9kcm1fcGxhbmUuaCAgICAgICAgICAgICB8ICA4 ICsrKwo+ICBpbmNsdWRlL3VhcGkvZHJtL2RybV9tb2RlLmggICAgICAgICB8IDE5ICsrKysrKwo+ ICAxMSBmaWxlcyBjaGFuZ2VkLCAyMjYgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQo+ICBj cmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2RybV9kYW1hZ2VfaGVscGVyLmMKPiAg Y3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUvZHJtL2RybV9kYW1hZ2VfaGVscGVyLmgKPiAKPiBk aWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9ncHUvZHJtLWttcy5yc3QgYi9Eb2N1bWVudGF0aW9u L2dwdS9kcm0ta21zLnJzdAo+IGluZGV4IDVkZWU2YjhhNGMxMi4uNzhiNjZlNjI4ODU3IDEwMDY0 NAo+IC0tLSBhL0RvY3VtZW50YXRpb24vZ3B1L2RybS1rbXMucnN0Cj4gKysrIGIvRG9jdW1lbnRh dGlvbi9ncHUvZHJtLWttcy5yc3QKPiBAQCAtNTQyLDYgKzU0MiwxNSBAQCBQbGFuZSBDb21wb3Np dGlvbiBQcm9wZXJ0aWVzCj4gIC4uIGtlcm5lbC1kb2M6OiBkcml2ZXJzL2dwdS9kcm0vZHJtX2Js ZW5kLmMKPiAgICAgOmV4cG9ydDoKPiAgCj4gK0ZCX0RBTUFHRV9DTElQUwo+ICt+fn5+fn5+fn5+ fn5+fn4KPiArCj4gKy4uIGtlcm5lbC1kb2M6OiBkcml2ZXJzL2dwdS9kcm0vZHJtX2RhbWFnZV9o ZWxwZXIuYwo+ICsgICA6ZG9jOiBvdmVydmlldwo+ICsKPiArLi4ga2VybmVsLWRvYzo6IGRyaXZl cnMvZ3B1L2RybS9kcm1fZGFtYWdlX2hlbHBlci5jCj4gKyAgIDpleHBvcnQ6Cj4gKwo+ICBDb2xv ciBNYW5hZ2VtZW50IFByb3BlcnRpZXMKPiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4g IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9k cm0vTWFrZWZpbGUKPiBpbmRleCBhNjc3MWNlZjg1ZTIuLmNhNWJlMGRlY2IzZiAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGUKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vTWFr ZWZpbGUKPiBAQCAtMzUsNyArMzUsNyBAQCBkcm1fa21zX2hlbHBlci15IDo9IGRybV9jcnRjX2hl bHBlci5vIGRybV9kcF9oZWxwZXIubyBkcm1fcHJvYmVfaGVscGVyLm8gXAo+ICAJCWRybV9wbGFu ZV9oZWxwZXIubyBkcm1fZHBfbXN0X3RvcG9sb2d5Lm8gZHJtX2F0b21pY19oZWxwZXIubyBcCj4g IAkJZHJtX2ttc19oZWxwZXJfY29tbW9uLm8gZHJtX2RwX2R1YWxfbW9kZV9oZWxwZXIubyBcCj4g IAkJZHJtX3NpbXBsZV9rbXNfaGVscGVyLm8gZHJtX21vZGVzZXRfaGVscGVyLm8gXAo+IC0JCWRy bV9zY2RjX2hlbHBlci5vIGRybV9nZW1fZnJhbWVidWZmZXJfaGVscGVyLm8KPiArCQlkcm1fc2Nk Y19oZWxwZXIubyBkcm1fZ2VtX2ZyYW1lYnVmZmVyX2hlbHBlci5vIGRybV9kYW1hZ2VfaGVscGVy Lm8KPiAgCj4gIGRybV9rbXNfaGVscGVyLSQoQ09ORklHX0RSTV9QQU5FTF9CUklER0UpICs9IGJy aWRnZS9wYW5lbC5vCj4gIGRybV9rbXNfaGVscGVyLSQoQ09ORklHX0RSTV9GQkRFVl9FTVVMQVRJ T04pICs9IGRybV9mYl9oZWxwZXIubwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJt X2F0b21pYy5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYwo+IGluZGV4IDNlYjA2MWUx MWUyZS4uNjUyZTc4Y2ExZjgxIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRv bWljLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jCj4gQEAgLTg1Nyw2ICs4 NTcsOCBAQCBzdGF0aWMgaW50IGRybV9hdG9taWNfcGxhbmVfc2V0X3Byb3BlcnR5KHN0cnVjdCBk cm1fcGxhbmUgKnBsYW5lLAo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gcGxhbmUt PmRldjsKPiAgCXN0cnVjdCBkcm1fbW9kZV9jb25maWcgKmNvbmZpZyA9ICZkZXYtPm1vZGVfY29u ZmlnOwo+ICsJYm9vbCByZXBsYWNlZCA9IGZhbHNlOwo+ICsJaW50IHJldDsKPiAgCj4gIAlpZiAo cHJvcGVydHkgPT0gY29uZmlnLT5wcm9wX2ZiX2lkKSB7Cj4gIAkJc3RydWN0IGRybV9mcmFtZWJ1 ZmZlciAqZmIgPSBkcm1fZnJhbWVidWZmZXJfbG9va3VwKGRldiwgTlVMTCwgdmFsKTsKPiBAQCAt OTA4LDYgKzkxMCwxNCBAQCBzdGF0aWMgaW50IGRybV9hdG9taWNfcGxhbmVfc2V0X3Byb3BlcnR5 KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ICAJCXN0YXRlLT5jb2xvcl9lbmNvZGluZyA9IHZh bDsKPiAgCX0gZWxzZSBpZiAocHJvcGVydHkgPT0gcGxhbmUtPmNvbG9yX3JhbmdlX3Byb3BlcnR5 KSB7Cj4gIAkJc3RhdGUtPmNvbG9yX3JhbmdlID0gdmFsOwo+ICsJfSBlbHNlIGlmIChwcm9wZXJ0 eSA9PSBjb25maWctPnByb3BfZmJfZGFtYWdlX2NsaXBzKSB7Cj4gKwkJcmV0ID0gZHJtX2F0b21p Y19yZXBsYWNlX3Byb3BlcnR5X2Jsb2JfZnJvbV9pZChkZXYsCj4gKwkJCQkJJnN0YXRlLT5mYl9k YW1hZ2VfY2xpcHMsCj4gKwkJCQkJdmFsLAo+ICsJCQkJCS0xLAo+ICsJCQkJCXNpemVvZihzdHJ1 Y3QgZHJtX3JlY3QpLAo+ICsJCQkJCSZyZXBsYWNlZCk7Cj4gKwkJcmV0dXJuIHJldDsKPiAgCX0g ZWxzZSBpZiAocGxhbmUtPmZ1bmNzLT5hdG9taWNfc2V0X3Byb3BlcnR5KSB7Cj4gIAkJcmV0dXJu IHBsYW5lLT5mdW5jcy0+YXRvbWljX3NldF9wcm9wZXJ0eShwbGFuZSwgc3RhdGUsCj4gIAkJCQlw cm9wZXJ0eSwgdmFsKTsKPiBAQCAtOTc2LDYgKzk4Niw5IEBAIGRybV9hdG9taWNfcGxhbmVfZ2V0 X3Byb3BlcnR5KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ICAJCSp2YWwgPSBzdGF0ZS0+Y29s b3JfZW5jb2Rpbmc7Cj4gIAl9IGVsc2UgaWYgKHByb3BlcnR5ID09IHBsYW5lLT5jb2xvcl9yYW5n ZV9wcm9wZXJ0eSkgewo+ICAJCSp2YWwgPSBzdGF0ZS0+Y29sb3JfcmFuZ2U7Cj4gKwl9IGVsc2Ug aWYgKHByb3BlcnR5ID09IGNvbmZpZy0+cHJvcF9mYl9kYW1hZ2VfY2xpcHMpIHsKPiArCQkqdmFs ID0gKHN0YXRlLT5mYl9kYW1hZ2VfY2xpcHMpID8KPiArCQkJc3RhdGUtPmZiX2RhbWFnZV9jbGlw cy0+YmFzZS5pZCA6IDA7Cj4gIAl9IGVsc2UgaWYgKHBsYW5lLT5mdW5jcy0+YXRvbWljX2dldF9w cm9wZXJ0eSkgewo+ICAJCXJldHVybiBwbGFuZS0+ZnVuY3MtPmF0b21pY19nZXRfcHJvcGVydHko cGxhbmUsIHN0YXRlLCBwcm9wZXJ0eSwgdmFsKTsKPiAgCX0gZWxzZSB7Cj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2Ry bV9hdG9taWNfaGVscGVyLmMKPiBpbmRleCA4MGJlNzRkZjdiYTYuLmJlODNlMjc2M2MxOCAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYwo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCj4gQEAgLTM1NzYsNiArMzU3Niw3IEBA IHZvaWQgZHJtX2F0b21pY19oZWxwZXJfcGxhbmVfcmVzZXQoc3RydWN0IGRybV9wbGFuZSAqcGxh bmUpCj4gIAkJLyogUmVzZXQgdGhlIGFscGhhIHZhbHVlIHRvIGZ1bGx5IG9wYXF1ZSBpZiBpdCBt YXR0ZXJzICovCj4gIAkJaWYgKHBsYW5lLT5hbHBoYV9wcm9wZXJ0eSkKPiAgCQkJcGxhbmUtPnN0 YXRlLT5hbHBoYSA9IHBsYW5lLT5hbHBoYV9wcm9wZXJ0eS0+dmFsdWVzWzFdOwo+ICsJCXBsYW5l LT5zdGF0ZS0+ZmJfZGFtYWdlX2NsaXBzID0gTlVMTDsKPiAgCX0KPiAgfQo+ICBFWFBPUlRfU1lN Qk9MKGRybV9hdG9taWNfaGVscGVyX3BsYW5lX3Jlc2V0KTsKPiBAQCAtMzU5OCw2ICszNTk5LDcg QEAgdm9pZCBfX2RybV9hdG9taWNfaGVscGVyX3BsYW5lX2R1cGxpY2F0ZV9zdGF0ZShzdHJ1Y3Qg ZHJtX3BsYW5lICpwbGFuZSwKPiAgCj4gIAlzdGF0ZS0+ZmVuY2UgPSBOVUxMOwo+ICAJc3RhdGUt PmNvbW1pdCA9IE5VTEw7Cj4gKwlzdGF0ZS0+ZmJfZGFtYWdlX2NsaXBzID0gTlVMTDsKPiAgfQo+ ICBFWFBPUlRfU1lNQk9MKF9fZHJtX2F0b21pY19oZWxwZXJfcGxhbmVfZHVwbGljYXRlX3N0YXRl KTsKPiAgCj4gQEAgLTM2NDIsNiArMzY0NCw4IEBAIHZvaWQgX19kcm1fYXRvbWljX2hlbHBlcl9w bGFuZV9kZXN0cm95X3N0YXRlKHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnN0YXRlKQo+ICAKPiAg CWlmIChzdGF0ZS0+Y29tbWl0KQo+ICAJCWRybV9jcnRjX2NvbW1pdF9wdXQoc3RhdGUtPmNvbW1p dCk7Cj4gKwo+ICsJZHJtX3Byb3BlcnR5X2Jsb2JfcHV0KHN0YXRlLT5mYl9kYW1hZ2VfY2xpcHMp Owo+ICB9Cj4gIEVYUE9SVF9TWU1CT0woX19kcm1fYXRvbWljX2hlbHBlcl9wbGFuZV9kZXN0cm95 X3N0YXRlKTsKPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZGFtYWdlX2hl bHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9kYW1hZ2VfaGVscGVyLmMKPiBuZXcgZmlsZSBt b2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAwMDAwMC4uM2U3ZGU1YWZlN2Y2Cj4gLS0tIC9kZXYv bnVsbAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZGFtYWdlX2hlbHBlci5jCj4gQEAgLTAs MCArMSw5MiBAQAo+ICsvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCBPUiBNSVQK PiArLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqCj4gKyAqCj4gKyAqIENvcHlyaWdodCAoYykgMjAxOCBWTXdh cmUsIEluYy4sIFBhbG8gQWx0bywgQ0EuLCBVU0EKPiArICogQWxsIFJpZ2h0cyBSZXNlcnZlZC4K PiArICoKPiArICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2Us IHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKPiArICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFu ZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQo+ICsgKiAiU29mdHdhcmUiKSwg dG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCj4g KyAqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBt ZXJnZSwgcHVibGlzaCwKPiArICogZGlzdHJpYnV0ZSwgc3ViIGxpY2Vuc2UsIGFuZC9vciBzZWxs IGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0bwo+ICsgKiBwZXJtaXQgcGVyc29ucyB0byB3 aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KPiArICog dGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgo+ICsgKgo+ICsgKiBUaGUgYWJvdmUgY29weXJpZ2h0 IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZQo+ICsgKiBu ZXh0IHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFu dGlhbCBwb3J0aW9ucwo+ICsgKiBvZiB0aGUgU29mdHdhcmUuCj4gKyAqCj4gKyAqIFRIRSBTT0ZU V0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBF WFBSRVNTIE9SCj4gKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhF IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAo+ICsgKiBGSVRORVNTIEZPUiBBIFBBUlRJ Q1VMQVIgUFVSUE9TRSBBTkQgTk9OLUlORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwKPiAr ICogVEhFIENPUFlSSUdIVCBIT0xERVJTLCBBVVRIT1JTIEFORC9PUiBJVFMgU1VQUExJRVJTIEJF IExJQUJMRSBGT1IgQU5ZIENMQUlNLAo+ICsgKiBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwg V0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IKPiArICogT1RIRVJXSVNF LCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJF IE9SIFRIRQo+ICsgKiBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgo+ICsg Kgo+ICsgKiBBdXRob3JzOgo+ICsgKiBEZWVwYWsgUmF3YXQgPGRyYXdhdEB2bXdhcmUuY29tPgo+ ICsgKgo+ICsgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKiovCj4gKwo+ICsjaW5jbHVkZSA8ZHJtL2RybVAuaD4K PiArI2luY2x1ZGUgPGRybS9kcm1fZGFtYWdlX2hlbHBlci5oPgo+ICsKPiArLyoqCj4gKyAqIERP Qzogb3ZlcnZpZXcKPiArICoKPiArICogRkJfREFNQUdFX0NMSVBTIGlzIGFuIG9wdGlvbmFsIHBs YW5lIHByb3BlcnR5IHdoaWNoIHByb3ZpZGVzIGEgbWVhbnMgdG8KPiArICogc3BlY2lmeSBhIGxp c3Qgb2YgZGFtYWdlIHJlY3RhbmdsZXMgb24gYSBwbGFuZSBpbiBmcmFtZWJ1ZmZlciBjb29yZGlu YXRlcyBvZgo+ICsgKiB0aGUgZnJhbWVidWZmZXIgYXR0YWNoZWQgdG8gdGhlIHBsYW5lLiBJbiBj dXJyZW50IGNvbnRleHQgZGFtYWdlIGlzIHRoZSBhcmVhCj4gKyAqIG9mIHBsYW5lIGZyYW1lYnVm ZmVyIChleGNsdWRpbmcgdGhlIGZyYW1lYnVmZmVyIGFyZWEgd2hpY2ggaXMgb3V0c2lkZSBvZgo+ ICsgKiBwbGFuZSBzcmMpIHRoYXQgaGFzIGNoYW5nZWQgc2luY2UgbGFzdCBwbGFuZSB1cGRhdGUg KGFsc28gY2FsbGVkIHBhZ2UtZmxpcCkuCj4gKyAqIE9ubHkgdGhlIGFyZWEgaW5zaWRlIGRhbWFn ZSByZWN0YW5nbGVzIHdpbGwgYmUgY29uc2lkZXJlZCBkaWZmZXJlbnQgd2hldGhlcgo+ICsgKiBj dXJyZW50bHkgYXR0YWNoZWQgZnJhbWVidWZmZXIgaXMgc2FtZSBhcyBmcmFtZWJ1ZmZlciBhdHRh Y2hlZCBkdXJpbmcgbGFzdAo+ICsgKiBwbGFuZSB1cGRhdGUgb3Igbm90Lgo+ICsgKgo+ICsgKiBG Ql9EQU1BR0VfQ0xJUFMgaXMgYSBoaW50IHRvIGtlcm5lbCB3aGljaCBjb3VsZCBiZSBoZWxwZnVs IGZvciBzb21lIGRyaXZlcnMKPiArICogdG8gb3B0aW1pemUgaW50ZXJuYWxseSBlc3BlY2lhbGx5 IGZvciB2aXJ0dWFsIGRldmljZXMgd2hlcmUgZWFjaCBmcmFtZWJ1ZmZlcgo+ICsgKiBjaGFuZ2Ug bmVlZHMgdG8gYmUgdHJhbnNtaXR0ZWQgb3ZlciBuZXR3b3JrLCB1c2IsIGV0Yy4KPiArICoKPiAr ICogU2luY2UgRkJfREFNQUdFX0NMSVBTIGlzIGEgaGludCBzbyBpdCBpcyBhbiBvcHRpb25hbCBw cm9wZXJ0eS4gVXNlci1zcGFjZSBjYW4KPiArICogaWdub3JlIHRoZSBkYW1hZ2UgY2xpcHMgcHJv cGVydHkgYW5kIGluIHRoYXQgY2FzZSBrZXJuZWwgd2lsbCBkbyBhIGZ1bGwgcGxhbmUKPiArICog dXBkYXRlLiBJbiBjYXNlIGRhbWFnZSBjbGlwcyBhcmUgcHJvdmlkZWQgdGhlbiBpdCBpcyBndWFy YW50ZWVkIHRoYXQgdGhlIGFyZWEKPiArICogaW5zaWRlIGRhbWFnZSBjbGlwcyB3aWxsIGJlIHVw ZGF0ZWQgdG8gcGxhbmUuIEZvciBlZmZpY2llbmN5IGtlcm5lbCBjYW4gZG8KPiArICogZnVsbCB1 cGRhdGUgb3IgbW9yZSBhcmVhIHRoYW4gc3BlY2lmaWVkIGluIGRhbWFnZSBjbGlwcy4KPiArICoK PiArICogRkJfREFNQUdFX0NMSVBTIGlzIGEgYmxvYiBwcm9wZXJ0eSB3aXRoIHRoZSBsYXlvdXQg b2YgYmxvYiBkYXRhIGlzIHNpbXBseSBhbgo+ICsgKiBhcnJheSBvZiBkcm1fbW9kZV9yZWN0KGlu dGVybmFsbHkgZHJtX3JlY3QpIHdpdGggbWF4aW11bSBhcnJheSBzaXplIGxpbWl0ZWQKPiArICog YnkgRFJNX01PREVfRkJfRElSVFlfTUFYX0NMSVBTLiBVbmxpa2UgcGxhbmUgc3JjIGNvb3JkaW5h dGVzLCBkYW1hZ2UgY2xpcHMKPiArICogYXJlIG5vdCBpbiAxNi4xNiBmaXhlZCBwb2ludC4gU2lt aWxhciB0byBwbGFuZSBzcmMgaW4gZnJhbWVidWZmZXIsIGRhbWFnZQo+ICsgKiBjbGlwcyBjYW5u b3QgYmUgbmVnYXRpdmUuIEluIGRhbWFnZSBjbGlwLCB4MS95MSBhcmUgaW5jbHVzaXZlIGFuZCB4 Mi95MiBhcmUKPiArICogZXhjbHVzaXZlLgo+ICsgKgo+ICsgKiBBbGwgdGhlIGRhbWFnZSBjbGlw cyBhcmUgaW4gZnJhbWVidWZmZXIgY29vcmRpbmF0ZXMgYW5kIHNob3VsZCBiZSBpbnNpZGUKPiAr ICogcGxhbmUgc3JjIGFuZCBpZiBhbnkgY2xpcCBmYWxscyBvdXRzaWRlIHBsYW5lIHNyYyBpdCB3 aWxsIGJlIGlnbm9yZWQgYW5kCj4gKyAqIHVzZXItc3BhY2Ugd29uJ3QgYmUgbm90aWZpZWQgb2Yg dGhlIHNhbWUuIEFzIG1lbnRpb25lZCBhYm92ZSwgc29tZXRpbWVzCj4gKyAqIGtlcm5lbCB3aWxs IGRvIGZ1bGwgcGxhbmUgdXBkYXRlIGR1ZSB0byBjaGFuZ2UgaW4gcHJvcGVydGllcyB3aGljaCBj YW4gYWZmZWN0Cj4gKyAqIGZ1bGwgcGxhbmUgZS5nLiBjb2xvciBtYW5hZ2VtZW50IHByb3BlcnRp ZXMuIEFsc28gZHVyaW5nIGZ1bGwgbW9kZXNldCBkYW1hZ2UKPiArICogaXMgaXJyZWxldmFudCBz byBpZiBwcm92aWRlZCBieSB1c2VyLXNwYWNlIGl0IHNpbXBseSB3aWxsIGJlIGlnbm9yZWQuCj4g KyAqIFdoZW5ldmVyIGRhbWFnZSBjbGlwcyBhcmUgaWdub3JlZCBieSBrZXJuZWwsIHVzZXItc3Bh Y2Ugd2lsbCBub3QgYmUgaW5mb3JtZWQuCj4gKyAqIElmIGEgdXNlci1zcGFjZSBwcm92aWRlcyBk YW1hZ2UgY2xpcHMgd2hpY2ggZG9lc24ndCBlbmNvbXBhc3MgdGhlIGFjdHVhbAo+ICsgKiBkYW1h Z2UgdG8gZnJhbWVidWZmZXIgKHNpbmNlIGxhc3QgcGxhbmUgdXBkYXRlKSB3aWxsIHJlc3VsdCBp biBpbmNvcnJlY3QKPiArICogcmVuZGVyaW5nIGR1cmluZyBwbGFuZSB1cGRhdGUuCj4gKyAqCj4g KyAqIFdoaWxlIGtlcm5lbCBkb2VzIG5vdCBlcnJvciBmb3Igb3ZlcmxhcHBlZCBkYW1hZ2UgY2xp cHMsIGl0IGlzIGRpc2NvdXJhZ2VkLgo+ICsgKi8KPiArCj4gKy8qKgo+ICsgKiBkcm1fcGxhbmVf ZW5hYmxlX2ZiX2RhbWFnZV9jbGlwcyAtIGVuYWJsZXMgcGxhbmUgZmIgZGFtYWdlIGNsaXBzIHBy b3BlcnR5Cj4gKyAqIEBwbGFuZTogcGxhbmUgb24gd2hpY2ggdG8gZW5hYmxlIGRhbWFnZSBjbGlw cyBwcm9wZXJ0eQo+ICsgKgo+ICsgKiBUaGlzIGZ1bmN0aW9uIGxldHMgZHJpdmVyIHRvIGVuYWJs ZSB0aGUgZGFtYWdlIGNsaXBzIHByb3BlcnR5IG9uIGEgcGxhbmUuCj4gKyAqLwo+ICt2b2lkIGRy bV9wbGFuZV9lbmFibGVfZmJfZGFtYWdlX2NsaXBzKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lKQo+ ICt7Cj4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gcGxhbmUtPmRldjsKPiArCXN0cnVjdCBk cm1fbW9kZV9jb25maWcgKmNvbmZpZyA9ICZkZXYtPm1vZGVfY29uZmlnOwo+ICsKPiArCWRybV9v YmplY3RfYXR0YWNoX3Byb3BlcnR5KCZwbGFuZS0+YmFzZSwgY29uZmlnLT5wcm9wX2ZiX2RhbWFn ZV9jbGlwcywKPiArCQkJCSAgIDApOwo+ICt9Cj4gK0VYUE9SVF9TWU1CT0woZHJtX3BsYW5lX2Vu YWJsZV9mYl9kYW1hZ2VfY2xpcHMpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJt X21vZGVfY29uZmlnLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX21vZGVfY29uZmlnLmMKPiBpbmRl eCAyMWUzNTNiZDM5NDguLjUwNmY1YTUyNzMzZiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vZHJtX21vZGVfY29uZmlnLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX21vZGVfY29u ZmlnLmMKPiBAQCAtMjk4LDYgKzI5OCwxMiBAQCBzdGF0aWMgaW50IGRybV9tb2RlX2NyZWF0ZV9z dGFuZGFyZF9wcm9wZXJ0aWVzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIAkJcmV0dXJuIC1F Tk9NRU07Cj4gIAlkZXYtPm1vZGVfY29uZmlnLnByb3BfY3J0Y19pZCA9IHByb3A7Cj4gIAo+ICsJ cHJvcCA9IGRybV9wcm9wZXJ0eV9jcmVhdGUoZGV2LCBEUk1fTU9ERV9QUk9QX0JMT0IsICJGQl9E QU1BR0VfQ0xJUFMiLAo+ICsJCQkJICAgMCk7Cj4gKwlpZiAoIXByb3ApCj4gKwkJcmV0dXJuIC1F Tk9NRU07Cj4gKwlkZXYtPm1vZGVfY29uZmlnLnByb3BfZmJfZGFtYWdlX2NsaXBzID0gcHJvcDsK PiArCj4gIAlwcm9wID0gZHJtX3Byb3BlcnR5X2NyZWF0ZV9ib29sKGRldiwgRFJNX01PREVfUFJP UF9BVE9NSUMsCj4gIAkJCSJBQ1RJVkUiKTsKPiAgCWlmICghcHJvcCkKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfa21zLmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13 Z2Z4L3Ztd2dmeF9rbXMuYwo+IGluZGV4IDIzYmVmZjVkOGUzYy4uMWVkYmFlNzNkNmQ2IDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ttcy5jCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfa21zLmMKPiBAQCAtNzIzLDYgKzcyMyw3IEBAIHZv aWQgdm13X2R1X3BsYW5lX3Jlc2V0KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lKQo+ICAJcGxhbmUt PnN0YXRlID0gJnZwcy0+YmFzZTsKPiAgCXBsYW5lLT5zdGF0ZS0+cGxhbmUgPSBwbGFuZTsKPiAg CXBsYW5lLT5zdGF0ZS0+cm90YXRpb24gPSBEUk1fTU9ERV9ST1RBVEVfMDsKPiArCXBsYW5lLT5z dGF0ZS0+ZmJfZGFtYWdlX2NsaXBzID0gTlVMTDsKPiAgfQo+ICAKPiAgCj4gZGlmZiAtLWdpdCBh L2luY2x1ZGUvZHJtL2RybV9kYW1hZ2VfaGVscGVyLmggYi9pbmNsdWRlL2RybS9kcm1fZGFtYWdl X2hlbHBlci5oCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwMDAwMDAuLjIx NzY5NGU5MTY4Ywo+IC0tLSAvZGV2L251bGwKPiArKysgYi9pbmNsdWRlL2RybS9kcm1fZGFtYWdl X2hlbHBlci5oCj4gQEAgLTAsMCArMSw2MyBAQAo+ICsvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmll cjogR1BMLTIuMCBPUiBNSVQgKi8KPiArLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCj4gKyAqCj4gKyAqIENv cHlyaWdodCAoYykgMjAxOCBWTXdhcmUsIEluYy4sIFBhbG8gQWx0bywgQ0EuLCBVU0EKPiArICog QWxsIFJpZ2h0cyBSZXNlcnZlZC4KPiArICoKPiArICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3Jh bnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKPiArICogY29w eSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRo ZQo+ICsgKiAiU29mdHdhcmUiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0 cmljdGlvbiwgaW5jbHVkaW5nCj4gKyAqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRv IHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKPiArICogZGlzdHJpYnV0ZSwgc3Vi IGxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0bwo+ICsg KiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8g c28sIHN1YmplY3QgdG8KPiArICogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgo+ICsgKgo+ICsg KiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAo aW5jbHVkaW5nIHRoZQo+ICsgKiBuZXh0IHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4g YWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucwo+ICsgKiBvZiB0aGUgU29mdHdhcmUu Cj4gKyAqCj4gKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdB UlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCj4gKyAqIElNUExJRUQsIElOQ0xVRElORyBC VVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAo+ICsg KiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OLUlORlJJTkdFTUVOVC4g SU4gTk8gRVZFTlQgU0hBTEwKPiArICogVEhFIENPUFlSSUdIVCBIT0xERVJTLCBBVVRIT1JTIEFO RC9PUiBJVFMgU1VQUExJRVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLAo+ICsgKiBEQU1BR0VT IE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRP UlQgT1IKPiArICogT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNU SU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRQo+ICsgKiBVU0UgT1IgT1RIRVIgREVBTElOR1Mg SU4gVEhFIFNPRlRXQVJFLgo+ICsgKgo+ICsgKiBBdXRob3JzOgo+ICsgKiBEZWVwYWsgUmF3YXQg PGRyYXdhdEB2bXdhcmUuY29tPgo+ICsgKgo+ICsgKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCj4gKwo+ICsj aWZuZGVmIERSTV9EQU1BR0VfSEVMUEVSX0hfCj4gKyNkZWZpbmUgRFJNX0RBTUFHRV9IRUxQRVJf SF8KPiArCj4gKy8qKgo+ICsgKiBkcm1fcGxhbmVfZ2V0X2RhbWFnZV9jbGlwc19jb3VudCAtIHJl dHVybnMgZGFtYWdlIGNsaXBzIGNvdW50Cj4gKyAqIEBzdGF0ZTogUGxhbmUgc3RhdGUKPiArICoK PiArICogUmV0dXJuczogTnVtYmVyIG9mIGNsaXBzIGluIHBsYW5lIGZiX2RhbWFnZV9jbGlwcyBi bG9iIHByb3BlcnR5Lgo+ICsgKi8KPiArc3RhdGljIGlubGluZSB1aW50MzJfdAo+ICtkcm1fcGxh bmVfZ2V0X2RhbWFnZV9jbGlwc19jb3VudChjb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpz dGF0ZSkKPiArewo+ICsJcmV0dXJuIChzdGF0ZSAmJiBzdGF0ZS0+ZmJfZGFtYWdlX2NsaXBzKSA/ Cj4gKwkJc3RhdGUtPmZiX2RhbWFnZV9jbGlwcy0+bGVuZ3RoL3NpemVvZihzdHJ1Y3QgZHJtX3Jl Y3QpIDogMDsKPiArfQo+ICsKPiArLyoqCj4gKyAqIGRybV9wbGFuZV9nZXRfZGFtYWdlX2NsaXBz IC0gcmV0dXJucyBkYW1hZ2UgY2xpcHMKPiArICogQHN0YXRlOiBQbGFuZSBzdGF0ZQo+ICsgKgo+ ICsgKiBSZXR1cm5zOiBDbGlwcyBpbiBwbGFuZSBmYl9kYW1hZ2VfY2xpcHMgYmxvYiBwcm9wZXJ0 eS4KPiArICovCj4gK3N0YXRpYyBpbmxpbmUgc3RydWN0IGRybV9yZWN0ICoKPiArZHJtX3BsYW5l X2dldF9kYW1hZ2VfY2xpcHMoY29uc3Qgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqc3RhdGUpCgpX cm9uZyB0eXBlLCB0aGlzIG5lZWRzIHRvIGJlIHRoZSB1YXBpIGRybV9tb2RlX3JlY3QsIG5vdCB0 aGUgaW50ZXJuYWwKcmVjdC4gVGhlIGRhbWdlX2l0ZXIgbmVlZHMgdG8gdGhlbiBjb252ZXJ0IHRo aXMuIE5vdGljZWQgd2hpbGUgcmV2aWV3aW5nCnBhdGNoIDQsIHdoaWNoIGFsc28gdXNlcyB0aGUg d3JvbmcgdHlwZS4KLURhbmllbAoKPiArewo+ICsJcmV0dXJuIChzdHJ1Y3QgZHJtX3JlY3QgKiko KHN0YXRlICYmIHN0YXRlLT5mYl9kYW1hZ2VfY2xpcHMpID8KPiArCQkJCSAgIHN0YXRlLT5mYl9k YW1hZ2VfY2xpcHMtPmRhdGEgOiBOVUxMKTsKPiArfQo+ICsKPiArdm9pZCBkcm1fcGxhbmVfZW5h YmxlX2ZiX2RhbWFnZV9jbGlwcyhzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSk7Cj4gKwo+ICsjZW5k aWYKPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX21vZGVfY29uZmlnLmggYi9pbmNsdWRl L2RybS9kcm1fbW9kZV9jb25maWcuaAo+IGluZGV4IGEwYjIwMmUxZDY5YS4uOGNjYjVkZGNkOTlk IDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvZHJtL2RybV9tb2RlX2NvbmZpZy5oCj4gKysrIGIvaW5j bHVkZS9kcm0vZHJtX21vZGVfY29uZmlnLmgKPiBAQCAtNjI3LDYgKzYyNywxNiBAQCBzdHJ1Y3Qg ZHJtX21vZGVfY29uZmlnIHsKPiAgCSAqICZkcm1fY3J0Yy4KPiAgCSAqLwo+ICAJc3RydWN0IGRy bV9wcm9wZXJ0eSAqcHJvcF9jcnRjX2lkOwo+ICsJLyoqCj4gKwkgKiBAcHJvcF9mYl9kYW1hZ2Vf Y2xpcHM6IE9wdGlvbmFsIHBsYW5lIHByb3BlcnR5IHRvIG1hcmsgZGFtYWdlZAo+ICsJICogcmVn aW9ucyBvbiB0aGUgcGxhbmUgaW4gZnJhbWVidWZmZXIgY29vcmRpbmF0ZXMgb2YgdGhlIGZyYW1l YnVmZmVyCj4gKwkgKiBhdHRhY2hlZCB0byB0aGUgcGxhbmUuCj4gKwkgKgo+ICsJICogVGhlIGxh eW91dCBvZiBibG9iIGRhdGEgaXMgc2ltcGx5IGFuIGFycmF5IG9mIGRybV9tb2RlX3JlY3Qgd2l0 aAo+ICsJICogbWF4aW11bSBhcnJheSBzaXplIGxpbWl0ZWQgYnkgRFJNX01PREVfRkJfRElSVFlf TUFYX0NMSVBTLiBVbmxpa2UKPiArCSAqIHBsYW5lIHNyYyBjb29yZGluYXRlcywgZGFtYWdlIGNs aXBzIGFyZSBub3QgaW4gMTYuMTYgZml4ZWQgcG9pbnQuCj4gKwkgKi8KPiArCXN0cnVjdCBkcm1f cHJvcGVydHkgKnByb3BfZmJfZGFtYWdlX2NsaXBzOwo+ICAJLyoqCj4gIAkgKiBAcHJvcF9hY3Rp dmU6IERlZmF1bHQgYXRvbWljIENSVEMgcHJvcGVydHkgdG8gY29udHJvbCB0aGUgYWN0aXZlCj4g IAkgKiBzdGF0ZSwgd2hpY2ggaXMgdGhlIHNpbXBsaWZpZWQgaW1wbGVtZW50YXRpb24gZm9yIERQ TVMgaW4gYXRvbWljCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9wbGFuZS5oIGIvaW5j bHVkZS9kcm0vZHJtX3BsYW5lLmgKPiBpbmRleCA4YTE1MmRjMTZlYTUuLmJiOGIwOTM0MTE5YyAx MDA2NDQKPiAtLS0gYS9pbmNsdWRlL2RybS9kcm1fcGxhbmUuaAo+ICsrKyBiL2luY2x1ZGUvZHJt L2RybV9wbGFuZS5oCj4gQEAgLTE4Miw2ICsxODIsMTQgQEAgc3RydWN0IGRybV9wbGFuZV9zdGF0 ZSB7Cj4gIAkgKi8KPiAgCXN0cnVjdCBkcm1fY3J0Y19jb21taXQgKmNvbW1pdDsKPiAgCj4gKwkv KioKPiArCSAqIEBmYl9kYW1hZ2VfY2xpcHM6Cj4gKwkgKgo+ICsJICogQmxvYiByZXByZXNlbnRp bmcgZGFtYWdlIChhcmVhIGluIHBsYW5lIGZyYW1lYnVmZmVyIHRoYXQgY2hhbmdlZAo+ICsJICog c2luY2UgbGFzdCBwYWdlIGZsaXApIGFzIGFycmF5IG9mIGRybV9yZWN0IGluIGZyYW1lYnVmZmVy IGNvb2RpbmF0ZXMuCj4gKwkgKi8KPiArCXN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqZmJfZGFt YWdlX2NsaXBzOwo+ICsKPiAgCS8qKiBAc3RhdGU6IGJhY2twb2ludGVyIHRvIGdsb2JhbCBkcm1f YXRvbWljX3N0YXRlICovCj4gIAlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGU7Cj4gIH07 Cj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9kcm0vZHJtX21vZGUuaCBiL2luY2x1ZGUvdWFw aS9kcm0vZHJtX21vZGUuaAo+IGluZGV4IDhkNjcyNDM5NTJmNC4uODYyZWEwODkzZTJlIDEwMDY0 NAo+IC0tLSBhL2luY2x1ZGUvdWFwaS9kcm0vZHJtX21vZGUuaAo+ICsrKyBiL2luY2x1ZGUvdWFw aS9kcm0vZHJtX21vZGUuaAo+IEBAIC04ODcsNiArODg3LDI1IEBAIHN0cnVjdCBkcm1fbW9kZV9y ZXZva2VfbGVhc2Ugewo+ICAJX191MzIgbGVzc2VlX2lkOwo+ICB9Owo+ICAKPiArLyoqCj4gKyAq IHN0cnVjdCBkcm1fbW9kZV9yZWN0IC0gdHdvIGRpbWVuc2lvbmFsIHJlY3RhbmdsZQo+ICsgKiBA eDE6IGhvcml6b250YWwgc3RhcnRpbmcgY29vcmRpbmF0ZSAoaW5jbHVzaXZlKQo+ICsgKiBAeTE6 IHZlcnRpY2FsIHN0YXJ0aW5nIGNvb3JkaW5hdGUgKGluY2x1c2l2ZSkKPiArICogQHgyOiBob3Jp em9udGFsIGVuZGluZyBjb29yZGluYXRlIChleGNsdXNpdmUpCj4gKyAqIEB5MjogdmVydGljYWwg ZW5kaW5nIGNvb3JkaW5hdGUgKGV4Y2x1c2l2ZSkKPiArICoKPiArICogV2l0aCBkcm0gc3Vic3lz dGVtIHVzaW5nIHN0cnVjdCBkcm1fcmVjdCB0byBtYW5hZ2UgcmVjdGFuZ3VsYXIgYXJlYSB0aGlz Cj4gKyAqIGV4cG9ydCBpdCB0byB1c2VyLXNwYWNlLgo+ICsgKgo+ICsgKiBDdXJyZW50bHkgdXNl ZCBieSBkcm1fbW9kZV9hdG9taWMgYmxvYiBwcm9wZXJ0eSBGQl9EQU1BR0VfQ0xJUFMuCj4gKyAq Lwo+ICtzdHJ1Y3QgZHJtX21vZGVfcmVjdCB7Cj4gKwlfX3MzMiB4MTsKPiArCV9fczMyIHkxOwo+ ICsJX19zMzIgeDI7Cj4gKwlfX3MzMiB5MjsKPiArfTsKPiArCj4gICNpZiBkZWZpbmVkKF9fY3Bs dXNwbHVzKQo+ICB9Cj4gICNlbmRpZgo+IC0tIAo+IDIuMTcuMQo+IAoKLS0gCkRhbmllbCBWZXR0 ZXIKU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9uCmh0dHA6Ly9ibG9nLmZmd2xs LmNoCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1k ZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=