From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 01/14] drm: add new plane property FB_DAMAGE_CLIPS to send damage during plane update Date: Thu, 6 Sep 2018 14:59:58 +0300 Message-ID: <20180906115958.GX5565@intel.com> 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 mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1F9A26E6B7 for ; Thu, 6 Sep 2018 12:00:22 +0000 (UTC) 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, linux-graphics-maintainer@vmware.com, lukasz.spintzyk@displaylink.com, dri-devel@lists.freedesktop.org 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+ ICsgKiBwbGFuZSBzcmMpCgpOb3Qgc3VyZSB3aHkgdGhlIHBsYW5lIHNyYyBjb29yZGluYXRlcyBu ZWVkIHRvIGJlIG1lbnRpb25lZCBoZXJlLiBUaGUKZGFtYWdlIGlzIGp1c3QgdGhlIHBhcnQgb2Yg dGhlIGZiIHRoYXQgaGFzIGNoYW5nZWQuIFdoZXRoZXIgb3Igbm90IGl0CmV4dGVuZHMgcGFzdCB0 aGUgc3JjIGNvb3JkaW5hdGVzIGlzIHRvdGFsbHkgaXJyZWxldmFudCBhcyBmYXIgYXMgSSBjYW4K c2VlLgoKPiB0aGF0IGhhcyBjaGFuZ2VkIHNpbmNlIGxhc3QgcGxhbmUgdXBkYXRlIChhbHNvIGNh bGxlZCBwYWdlLWZsaXApLgo+ICsgKiBPbmx5IHRoZSBhcmVhIGluc2lkZSBkYW1hZ2UgcmVjdGFu Z2xlcyB3aWxsIGJlIGNvbnNpZGVyZWQgZGlmZmVyZW50IHdoZXRoZXIKPiArICogY3VycmVudGx5 IGF0dGFjaGVkIGZyYW1lYnVmZmVyIGlzIHNhbWUgYXMgZnJhbWVidWZmZXIgYXR0YWNoZWQgZHVy aW5nIGxhc3QKPiArICogcGxhbmUgdXBkYXRlIG9yIG5vdC4KPiArICoKPiArICogRkJfREFNQUdF X0NMSVBTIGlzIGEgaGludCB0byBrZXJuZWwgd2hpY2ggY291bGQgYmUgaGVscGZ1bCBmb3Igc29t ZSBkcml2ZXJzCj4gKyAqIHRvIG9wdGltaXplIGludGVybmFsbHkgZXNwZWNpYWxseSBmb3Igdmly dHVhbCBkZXZpY2VzIHdoZXJlIGVhY2ggZnJhbWVidWZmZXIKPiArICogY2hhbmdlIG5lZWRzIHRv IGJlIHRyYW5zbWl0dGVkIG92ZXIgbmV0d29yaywgdXNiLCBldGMuCj4gKyAqCj4gKyAqIFNpbmNl IEZCX0RBTUFHRV9DTElQUyBpcyBhIGhpbnQgc28gaXQgaXMgYW4gb3B0aW9uYWwgcHJvcGVydHku IFVzZXItc3BhY2UgY2FuCj4gKyAqIGlnbm9yZSB0aGUgZGFtYWdlIGNsaXBzIHByb3BlcnR5IGFu ZCBpbiB0aGF0IGNhc2Uga2VybmVsIHdpbGwgZG8gYSBmdWxsIHBsYW5lCj4gKyAqIHVwZGF0ZS4g SW4gY2FzZSBkYW1hZ2UgY2xpcHMgYXJlIHByb3ZpZGVkIHRoZW4gaXQgaXMgZ3VhcmFudGVlZCB0 aGF0IHRoZSBhcmVhCj4gKyAqIGluc2lkZSBkYW1hZ2UgY2xpcHMgd2lsbCBiZSB1cGRhdGVkIHRv IHBsYW5lLiBGb3IgZWZmaWNpZW5jeSBrZXJuZWwgY2FuIGRvCj4gKyAqIGZ1bGwgdXBkYXRlIG9y IG1vcmUgYXJlYSB0aGFuIHNwZWNpZmllZCBpbiBkYW1hZ2UgY2xpcHMuCj4gKyAqCj4gKyAqIEZC X0RBTUFHRV9DTElQUyBpcyBhIGJsb2IgcHJvcGVydHkgd2l0aCB0aGUgbGF5b3V0IG9mIGJsb2Ig ZGF0YSBpcyBzaW1wbHkgYW4KPiArICogYXJyYXkgb2YgZHJtX21vZGVfcmVjdChpbnRlcm5hbGx5 IGRybV9yZWN0KSB3aXRoIG1heGltdW0gYXJyYXkgc2l6ZSBsaW1pdGVkCj4gKyAqIGJ5IERSTV9N T0RFX0ZCX0RJUlRZX01BWF9DTElQUy4gVW5saWtlIHBsYW5lIHNyYyBjb29yZGluYXRlcywgZGFt YWdlIGNsaXBzCj4gKyAqIGFyZSBub3QgaW4gMTYuMTYgZml4ZWQgcG9pbnQuIFNpbWlsYXIgdG8g cGxhbmUgc3JjIGluIGZyYW1lYnVmZmVyLCBkYW1hZ2UKPiArICogY2xpcHMgY2Fubm90IGJlIG5l Z2F0aXZlLiBJbiBkYW1hZ2UgY2xpcCwgeDEveTEgYXJlIGluY2x1c2l2ZSBhbmQgeDIveTIgYXJl Cj4gKyAqIGV4Y2x1c2l2ZS4KPiArICoKPiArICogQWxsIHRoZSBkYW1hZ2UgY2xpcHMgYXJlIGlu IGZyYW1lYnVmZmVyIGNvb3JkaW5hdGVzIGFuZCBzaG91bGQgYmUgaW5zaWRlCj4gKyAqIHBsYW5l IHNyYyBhbmQgaWYgYW55IGNsaXAgZmFsbHMgb3V0c2lkZSBwbGFuZSBzcmMgaXQgd2lsbCBiZSBp Z25vcmVkIGFuZAo+ICsgKiB1c2VyLXNwYWNlIHdvbid0IGJlIG5vdGlmaWVkIG9mIHRoZSBzYW1l LiBBcyBtZW50aW9uZWQgYWJvdmUsIHNvbWV0aW1lcwo+ICsgKiBrZXJuZWwgd2lsbCBkbyBmdWxs IHBsYW5lIHVwZGF0ZSBkdWUgdG8gY2hhbmdlIGluIHByb3BlcnRpZXMgd2hpY2ggY2FuIGFmZmVj dAo+ICsgKiBmdWxsIHBsYW5lIGUuZy4gY29sb3IgbWFuYWdlbWVudCBwcm9wZXJ0aWVzLiBBbHNv IGR1cmluZyBmdWxsIG1vZGVzZXQgZGFtYWdlCj4gKyAqIGlzIGlycmVsZXZhbnQgc28gaWYgcHJv dmlkZWQgYnkgdXNlci1zcGFjZSBpdCBzaW1wbHkgd2lsbCBiZSBpZ25vcmVkLgo+ICsgKiBXaGVu ZXZlciBkYW1hZ2UgY2xpcHMgYXJlIGlnbm9yZWQgYnkga2VybmVsLCB1c2VyLXNwYWNlIHdpbGwg bm90IGJlIGluZm9ybWVkLgo+ICsgKiBJZiBhIHVzZXItc3BhY2UgcHJvdmlkZXMgZGFtYWdlIGNs aXBzIHdoaWNoIGRvZXNuJ3QgZW5jb21wYXNzIHRoZSBhY3R1YWwKPiArICogZGFtYWdlIHRvIGZy YW1lYnVmZmVyIChzaW5jZSBsYXN0IHBsYW5lIHVwZGF0ZSkgd2lsbCByZXN1bHQgaW4gaW5jb3Jy ZWN0Cj4gKyAqIHJlbmRlcmluZyBkdXJpbmcgcGxhbmUgdXBkYXRlLgo+ICsgKgo+ICsgKiBXaGls ZSBrZXJuZWwgZG9lcyBub3QgZXJyb3IgZm9yIG92ZXJsYXBwZWQgZGFtYWdlIGNsaXBzLCBpdCBp cyBkaXNjb3VyYWdlZC4KPiArICovCj4gKwo+ICsvKioKPiArICogZHJtX3BsYW5lX2VuYWJsZV9m Yl9kYW1hZ2VfY2xpcHMgLSBlbmFibGVzIHBsYW5lIGZiIGRhbWFnZSBjbGlwcyBwcm9wZXJ0eQo+ ICsgKiBAcGxhbmU6IHBsYW5lIG9uIHdoaWNoIHRvIGVuYWJsZSBkYW1hZ2UgY2xpcHMgcHJvcGVy dHkKPiArICoKPiArICogVGhpcyBmdW5jdGlvbiBsZXRzIGRyaXZlciB0byBlbmFibGUgdGhlIGRh bWFnZSBjbGlwcyBwcm9wZXJ0eSBvbiBhIHBsYW5lLgo+ICsgKi8KPiArdm9pZCBkcm1fcGxhbmVf ZW5hYmxlX2ZiX2RhbWFnZV9jbGlwcyhzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSkKPiArewo+ICsJ c3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHBsYW5lLT5kZXY7Cj4gKwlzdHJ1Y3QgZHJtX21vZGVf Y29uZmlnICpjb25maWcgPSAmZGV2LT5tb2RlX2NvbmZpZzsKPiArCj4gKwlkcm1fb2JqZWN0X2F0 dGFjaF9wcm9wZXJ0eSgmcGxhbmUtPmJhc2UsIGNvbmZpZy0+cHJvcF9mYl9kYW1hZ2VfY2xpcHMs Cj4gKwkJCQkgICAwKTsKPiArfQo+ICtFWFBPUlRfU1lNQk9MKGRybV9wbGFuZV9lbmFibGVfZmJf ZGFtYWdlX2NsaXBzKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9tb2RlX2Nv bmZpZy5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9tb2RlX2NvbmZpZy5jCj4gaW5kZXggMjFlMzUz YmQzOTQ4Li41MDZmNWE1MjczM2YgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9t b2RlX2NvbmZpZy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9tb2RlX2NvbmZpZy5jCj4g QEAgLTI5OCw2ICsyOTgsMTIgQEAgc3RhdGljIGludCBkcm1fbW9kZV9jcmVhdGVfc3RhbmRhcmRf cHJvcGVydGllcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAJCXJldHVybiAtRU5PTUVNOwo+ ICAJZGV2LT5tb2RlX2NvbmZpZy5wcm9wX2NydGNfaWQgPSBwcm9wOwo+ICAKPiArCXByb3AgPSBk cm1fcHJvcGVydHlfY3JlYXRlKGRldiwgRFJNX01PREVfUFJPUF9CTE9CLCAiRkJfREFNQUdFX0NM SVBTIiwKPiArCQkJCSAgIDApOwo+ICsJaWYgKCFwcm9wKQo+ICsJCXJldHVybiAtRU5PTUVNOwo+ ICsJZGV2LT5tb2RlX2NvbmZpZy5wcm9wX2ZiX2RhbWFnZV9jbGlwcyA9IHByb3A7Cj4gKwo+ICAJ cHJvcCA9IGRybV9wcm9wZXJ0eV9jcmVhdGVfYm9vbChkZXYsIERSTV9NT0RFX1BST1BfQVRPTUlD LAo+ICAJCQkiQUNUSVZFIik7Cj4gIAlpZiAoIXByb3ApCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS92bXdnZngvdm13Z2Z4X2ttcy5jIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdn Znhfa21zLmMKPiBpbmRleCAyM2JlZmY1ZDhlM2MuLjFlZGJhZTczZDZkNiAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9rbXMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS92bXdnZngvdm13Z2Z4X2ttcy5jCj4gQEAgLTcyMyw2ICs3MjMsNyBAQCB2b2lkIHZtd19k dV9wbGFuZV9yZXNldChzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSkKPiAgCXBsYW5lLT5zdGF0ZSA9 ICZ2cHMtPmJhc2U7Cj4gIAlwbGFuZS0+c3RhdGUtPnBsYW5lID0gcGxhbmU7Cj4gIAlwbGFuZS0+ c3RhdGUtPnJvdGF0aW9uID0gRFJNX01PREVfUk9UQVRFXzA7Cj4gKwlwbGFuZS0+c3RhdGUtPmZi X2RhbWFnZV9jbGlwcyA9IE5VTEw7Cj4gIH0KPiAgCj4gIAo+IGRpZmYgLS1naXQgYS9pbmNsdWRl L2RybS9kcm1fZGFtYWdlX2hlbHBlci5oIGIvaW5jbHVkZS9kcm0vZHJtX2RhbWFnZV9oZWxwZXIu aAo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAwMDAwLi4yMTc2OTRlOTE2 OGMKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvaW5jbHVkZS9kcm0vZHJtX2RhbWFnZV9oZWxwZXIu aAo+IEBAIC0wLDAgKzEsNjMgQEAKPiArLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0y LjAgT1IgTUlUICovCj4gKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgo+ICsgKgo+ICsgKiBDb3B5cmlnaHQg KGMpIDIwMTggVk13YXJlLCBJbmMuLCBQYWxvIEFsdG8sIENBLiwgVVNBCj4gKyAqIEFsbCBSaWdo dHMgUmVzZXJ2ZWQuCj4gKyAqCj4gKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZy ZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCj4gKyAqIGNvcHkgb2YgdGhp cyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKPiArICog IlNvZnR3YXJlIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24s IGluY2x1ZGluZwo+ICsgKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNv cHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCj4gKyAqIGRpc3RyaWJ1dGUsIHN1YiBsaWNlbnNl LCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8KPiArICogcGVybWl0 IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJq ZWN0IHRvCj4gKyAqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKPiArICoKPiArICogVGhlIGFi b3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGlu ZyB0aGUKPiArICogbmV4dCBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3Bp ZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMKPiArICogb2YgdGhlIFNvZnR3YXJlLgo+ICsgKgo+ ICsgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBP RiBBTlkgS0lORCwgRVhQUkVTUyBPUgo+ICsgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBM SU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKPiArICogRklUTkVT UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTi1JTkZSSU5HRU1FTlQuIElOIE5PIEVW RU5UIFNIQUxMCj4gKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSUywgQVVUSE9SUyBBTkQvT1IgSVRT IFNVUFBMSUVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwKPiArICogREFNQUdFUyBPUiBPVEhF UiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SCj4g KyAqIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRI IFRIRSBTT0ZUV0FSRSBPUiBUSEUKPiArICogVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBT T0ZUV0FSRS4KPiArICoKPiArICogQXV0aG9yczoKPiArICogRGVlcGFrIFJhd2F0IDxkcmF3YXRA dm13YXJlLmNvbT4KPiArICoKPiArICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwo+ICsKPiArI2lmbmRlZiBE Uk1fREFNQUdFX0hFTFBFUl9IXwo+ICsjZGVmaW5lIERSTV9EQU1BR0VfSEVMUEVSX0hfCj4gKwo+ ICsvKioKPiArICogZHJtX3BsYW5lX2dldF9kYW1hZ2VfY2xpcHNfY291bnQgLSByZXR1cm5zIGRh bWFnZSBjbGlwcyBjb3VudAo+ICsgKiBAc3RhdGU6IFBsYW5lIHN0YXRlCj4gKyAqCj4gKyAqIFJl dHVybnM6IE51bWJlciBvZiBjbGlwcyBpbiBwbGFuZSBmYl9kYW1hZ2VfY2xpcHMgYmxvYiBwcm9w ZXJ0eS4KPiArICovCj4gK3N0YXRpYyBpbmxpbmUgdWludDMyX3QKPiArZHJtX3BsYW5lX2dldF9k YW1hZ2VfY2xpcHNfY291bnQoY29uc3Qgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqc3RhdGUpCj4g K3sKPiArCXJldHVybiAoc3RhdGUgJiYgc3RhdGUtPmZiX2RhbWFnZV9jbGlwcykgPwo+ICsJCXN0 YXRlLT5mYl9kYW1hZ2VfY2xpcHMtPmxlbmd0aC9zaXplb2Yoc3RydWN0IGRybV9yZWN0KSA6IDA7 Cj4gK30KPiArCj4gKy8qKgo+ICsgKiBkcm1fcGxhbmVfZ2V0X2RhbWFnZV9jbGlwcyAtIHJldHVy bnMgZGFtYWdlIGNsaXBzCj4gKyAqIEBzdGF0ZTogUGxhbmUgc3RhdGUKPiArICoKPiArICogUmV0 dXJuczogQ2xpcHMgaW4gcGxhbmUgZmJfZGFtYWdlX2NsaXBzIGJsb2IgcHJvcGVydHkuCj4gKyAq Lwo+ICtzdGF0aWMgaW5saW5lIHN0cnVjdCBkcm1fcmVjdCAqCj4gK2RybV9wbGFuZV9nZXRfZGFt YWdlX2NsaXBzKGNvbnN0IHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnN0YXRlKQo+ICt7Cj4gKwly ZXR1cm4gKHN0cnVjdCBkcm1fcmVjdCAqKSgoc3RhdGUgJiYgc3RhdGUtPmZiX2RhbWFnZV9jbGlw cykgPwo+ICsJCQkJICAgc3RhdGUtPmZiX2RhbWFnZV9jbGlwcy0+ZGF0YSA6IE5VTEwpOwo+ICt9 Cj4gKwo+ICt2b2lkIGRybV9wbGFuZV9lbmFibGVfZmJfZGFtYWdlX2NsaXBzKHN0cnVjdCBkcm1f cGxhbmUgKnBsYW5lKTsKPiArCj4gKyNlbmRpZgo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9k cm1fbW9kZV9jb25maWcuaCBiL2luY2x1ZGUvZHJtL2RybV9tb2RlX2NvbmZpZy5oCj4gaW5kZXgg YTBiMjAyZTFkNjlhLi44Y2NiNWRkY2Q5OWQgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS9kcm0vZHJt X21vZGVfY29uZmlnLmgKPiArKysgYi9pbmNsdWRlL2RybS9kcm1fbW9kZV9jb25maWcuaAo+IEBA IC02MjcsNiArNjI3LDE2IEBAIHN0cnVjdCBkcm1fbW9kZV9jb25maWcgewo+ICAJICogJmRybV9j cnRjLgo+ICAJICovCj4gIAlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpwcm9wX2NydGNfaWQ7Cj4gKwkv KioKPiArCSAqIEBwcm9wX2ZiX2RhbWFnZV9jbGlwczogT3B0aW9uYWwgcGxhbmUgcHJvcGVydHkg dG8gbWFyayBkYW1hZ2VkCj4gKwkgKiByZWdpb25zIG9uIHRoZSBwbGFuZSBpbiBmcmFtZWJ1ZmZl ciBjb29yZGluYXRlcyBvZiB0aGUgZnJhbWVidWZmZXIKPiArCSAqIGF0dGFjaGVkIHRvIHRoZSBw bGFuZS4KPiArCSAqCj4gKwkgKiBUaGUgbGF5b3V0IG9mIGJsb2IgZGF0YSBpcyBzaW1wbHkgYW4g YXJyYXkgb2YgZHJtX21vZGVfcmVjdCB3aXRoCj4gKwkgKiBtYXhpbXVtIGFycmF5IHNpemUgbGlt aXRlZCBieSBEUk1fTU9ERV9GQl9ESVJUWV9NQVhfQ0xJUFMuIFVubGlrZQo+ICsJICogcGxhbmUg c3JjIGNvb3JkaW5hdGVzLCBkYW1hZ2UgY2xpcHMgYXJlIG5vdCBpbiAxNi4xNiBmaXhlZCBwb2lu dC4KPiArCSAqLwo+ICsJc3RydWN0IGRybV9wcm9wZXJ0eSAqcHJvcF9mYl9kYW1hZ2VfY2xpcHM7 Cj4gIAkvKioKPiAgCSAqIEBwcm9wX2FjdGl2ZTogRGVmYXVsdCBhdG9taWMgQ1JUQyBwcm9wZXJ0 eSB0byBjb250cm9sIHRoZSBhY3RpdmUKPiAgCSAqIHN0YXRlLCB3aGljaCBpcyB0aGUgc2ltcGxp ZmllZCBpbXBsZW1lbnRhdGlvbiBmb3IgRFBNUyBpbiBhdG9taWMKPiBkaWZmIC0tZ2l0IGEvaW5j bHVkZS9kcm0vZHJtX3BsYW5lLmggYi9pbmNsdWRlL2RybS9kcm1fcGxhbmUuaAo+IGluZGV4IDhh MTUyZGMxNmVhNS4uYmI4YjA5MzQxMTljIDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvZHJtL2RybV9w bGFuZS5oCj4gKysrIGIvaW5jbHVkZS9kcm0vZHJtX3BsYW5lLmgKPiBAQCAtMTgyLDYgKzE4Miwx NCBAQCBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlIHsKPiAgCSAqLwo+ICAJc3RydWN0IGRybV9jcnRj X2NvbW1pdCAqY29tbWl0Owo+ICAKPiArCS8qKgo+ICsJICogQGZiX2RhbWFnZV9jbGlwczoKPiAr CSAqCj4gKwkgKiBCbG9iIHJlcHJlc2VudGluZyBkYW1hZ2UgKGFyZWEgaW4gcGxhbmUgZnJhbWVi dWZmZXIgdGhhdCBjaGFuZ2VkCj4gKwkgKiBzaW5jZSBsYXN0IHBhZ2UgZmxpcCkgYXMgYXJyYXkg b2YgZHJtX3JlY3QgaW4gZnJhbWVidWZmZXIgY29vZGluYXRlcy4KPiArCSAqLwo+ICsJc3RydWN0 IGRybV9wcm9wZXJ0eV9ibG9iICpmYl9kYW1hZ2VfY2xpcHM7CgpEb24ndCB3ZSBoYXZlIGEgYmV0 dGVyIHBsYWNlIGZvciB0aGlzPyBOZXh0IHRvIHNvbWUgb3RoZXIgcHJvcHMgZXRjLiBpbgp0aGUg cGxhbmUgc3RhdGU/CgpXaGF0IGRvZXMgImluIGZyYW1lYnVmZmVyIGNvb3JkaW5hdGVzIiBtZWFu PyBJbnRlZ2Vycywgc29tZSBmaXhlZApwb2ludCByZXByZXNlbnRhdGlvbj8KCj4gKwo+ICAJLyoq IEBzdGF0ZTogYmFja3BvaW50ZXIgdG8gZ2xvYmFsIGRybV9hdG9taWNfc3RhdGUgKi8KPiAgCXN0 cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZTsKPiAgfTsKPiBkaWZmIC0tZ2l0IGEvaW5jbHVk ZS91YXBpL2RybS9kcm1fbW9kZS5oIGIvaW5jbHVkZS91YXBpL2RybS9kcm1fbW9kZS5oCj4gaW5k ZXggOGQ2NzI0Mzk1MmY0Li44NjJlYTA4OTNlMmUgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS91YXBp L2RybS9kcm1fbW9kZS5oCj4gKysrIGIvaW5jbHVkZS91YXBpL2RybS9kcm1fbW9kZS5oCj4gQEAg LTg4Nyw2ICs4ODcsMjUgQEAgc3RydWN0IGRybV9tb2RlX3Jldm9rZV9sZWFzZSB7Cj4gIAlfX3Uz MiBsZXNzZWVfaWQ7Cj4gIH07Cj4gIAo+ICsvKioKPiArICogc3RydWN0IGRybV9tb2RlX3JlY3Qg LSB0d28gZGltZW5zaW9uYWwgcmVjdGFuZ2xlCj4gKyAqIEB4MTogaG9yaXpvbnRhbCBzdGFydGlu ZyBjb29yZGluYXRlIChpbmNsdXNpdmUpCj4gKyAqIEB5MTogdmVydGljYWwgc3RhcnRpbmcgY29v cmRpbmF0ZSAoaW5jbHVzaXZlKQo+ICsgKiBAeDI6IGhvcml6b250YWwgZW5kaW5nIGNvb3JkaW5h dGUgKGV4Y2x1c2l2ZSkKPiArICogQHkyOiB2ZXJ0aWNhbCBlbmRpbmcgY29vcmRpbmF0ZSAoZXhj bHVzaXZlKQo+ICsgKgo+ICsgKiBXaXRoIGRybSBzdWJzeXN0ZW0gdXNpbmcgc3RydWN0IGRybV9y ZWN0IHRvIG1hbmFnZSByZWN0YW5ndWxhciBhcmVhIHRoaXMKPiArICogZXhwb3J0IGl0IHRvIHVz ZXItc3BhY2UuCj4gKyAqCj4gKyAqIEN1cnJlbnRseSB1c2VkIGJ5IGRybV9tb2RlX2F0b21pYyBi bG9iIHByb3BlcnR5IEZCX0RBTUFHRV9DTElQUy4KPiArICovCj4gK3N0cnVjdCBkcm1fbW9kZV9y ZWN0IHsKPiArCV9fczMyIHgxOwo+ICsJX19zMzIgeTE7Cj4gKwlfX3MzMiB4MjsKPiArCV9fczMy IHkyOwo+ICt9Owo+ICsKPiAgI2lmIGRlZmluZWQoX19jcGx1c3BsdXMpCj4gIH0KPiAgI2VuZGlm Cj4gLS0gCj4gMi4xNy4xCj4gCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KPiBkcmktZGV2ZWwgbWFpbGluZyBsaXN0Cj4gZHJpLWRldmVsQGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vZHJpLWRldmVsCgotLSAKVmlsbGUgU3lyasOkbMOkCkludGVsCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QK ZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=