From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleksandr Andrushchenko Subject: Re: [PATCH 2/2] xen/input: add multi-touch support Date: Fri, 5 May 2017 07:45:59 +0300 Message-ID: <8a43bbdf-f843-2c4d-e7b7-0cddb2e7fd7e__11899.5787961923$1493959614$gmane$org@gmail.com> References: <1492083484-31786-1-git-send-email-andr2000@gmail.com> <1492083484-31786-3-git-send-email-andr2000@gmail.com> <20170421021018.GB23279@dtor-ws> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1d6V80-0001BF-3P for xen-devel@lists.xenproject.org; Fri, 05 May 2017 04:46:04 +0000 Received: by mail-lf0-f66.google.com with SMTP id h4so2980062lfj.3 for ; Thu, 04 May 2017 21:46:02 -0700 (PDT) In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Oleksandr Andrushchenko , Dmitry Torokhov Cc: jgross@suse.com, vlad.babchuk@gmail.com, linux-kernel@vger.kernel.org, andrii.anisov@gmail.com, olekstysh@gmail.com, al1img@gmail.com, linux-input@vger.kernel.org, xen-devel@lists.xenproject.org, boris.ostrovsky@oracle.com, joculator@gmail.com List-Id: xen-devel@lists.xenproject.org SGksIERtaXRyeSEKCk9uIDA0LzIxLzIwMTcgMDk6NDAgQU0sIE9sZWtzYW5kciBBbmRydXNoY2hl bmtvIHdyb3RlOgo+IEhpLCBEbWl0cnkhCj4KPiBPbiAwNC8yMS8yMDE3IDA1OjEwIEFNLCBEbWl0 cnkgVG9yb2tob3Ygd3JvdGU6Cj4+IEhpIE9sZWtzYW5kciwKPj4KPj4gT24gVGh1LCBBcHIgMTMs IDIwMTcgYXQgMDI6Mzg6MDRQTSArMDMwMCwgT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6 Cj4+PiBGcm9tOiBPbGVrc2FuZHIgQW5kcnVzaGNoZW5rbyA8b2xla3NhbmRyX2FuZHJ1c2hjaGVu a29AZXBhbS5jb20+Cj4+Pgo+Pj4gRXh0ZW5kIHhlbl9rYmRmcm9udCB0byBwcm92aWRlIG11bHRp LXRvdWNoIHN1cHBvcnQKPj4+IHRvIHVucHJpdmlsZWdlZCBkb21haW5zLgo+Pj4KPj4+IFNpZ25l ZC1vZmYtYnk6IE9sZWtzYW5kciBBbmRydXNoY2hlbmtvIAo+Pj4gPG9sZWtzYW5kcl9hbmRydXNo Y2hlbmtvQGVwYW0uY29tPgo+Pj4gLS0tCj4+PiAgIGRyaXZlcnMvaW5wdXQvbWlzYy94ZW4ta2Jk ZnJvbnQuYyB8IDE0MiAKPj4+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKyst Cj4+PiAgIDEgZmlsZSBjaGFuZ2VkLCAxNDAgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkK Pj4+Cj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbnB1dC9taXNjL3hlbi1rYmRmcm9udC5jIAo+ Pj4gYi9kcml2ZXJzL2lucHV0L21pc2MveGVuLWtiZGZyb250LmMKPj4+IGluZGV4IDAxYzI3YjRj MzI4OC4uZTVkMDY0YWFhMjM3IDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9pbnB1dC9taXNjL3hl bi1rYmRmcm9udC5jCj4+PiArKysgYi9kcml2ZXJzL2lucHV0L21pc2MveGVuLWtiZGZyb250LmMK Pj4+IEBAIC0xNyw2ICsxNyw3IEBACj4+PiAgICNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgo+Pj4g ICAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Cj4+PiAgICNpbmNsdWRlIDxsaW51eC9pbnB1dC5o Pgo+Pj4gKyNpbmNsdWRlIDxsaW51eC9pbnB1dC9tdC5oPgo+Pj4gICAjaW5jbHVkZSA8bGludXgv c2xhYi5oPgo+Pj4gICAgICNpbmNsdWRlIDxhc20veGVuL2h5cGVydmlzb3IuaD4KPj4+IEBAIC0z NCwxMSArMzUsMTQgQEAKPj4+ICAgc3RydWN0IHhlbmtiZF9pbmZvIHsKPj4+ICAgICAgIHN0cnVj dCBpbnB1dF9kZXYgKmtiZDsKPj4+ICAgICAgIHN0cnVjdCBpbnB1dF9kZXYgKnB0cjsKPj4+ICsg ICAgc3RydWN0IGlucHV0X2RldiAqbXRvdWNoOwo+Pj4gICAgICAgc3RydWN0IHhlbmtiZF9wYWdl ICpwYWdlOwo+Pj4gICAgICAgaW50IGdyZWY7Cj4+PiAgICAgICBpbnQgaXJxOwo+Pj4gICAgICAg c3RydWN0IHhlbmJ1c19kZXZpY2UgKnhiZGV2Owo+Pj4gICAgICAgY2hhciBwaHlzWzMyXTsKPj4+ ICsgICAgLyogY3VycmVudCBNVCBzbG90L2NvbnRhY3QgSUQgd2UgYXJlIGluamVjdGluZyBldmVu dHMgaW4gKi8KPj4+ICsgICAgaW50IG10b3VjaF9jdXJfY29udGFjdF9pZDsKPj4+ICAgfTsKPj4+ ICAgICBlbnVtIHsgS1BBUkFNX1gsIEtQQVJBTV9ZLCBLUEFSQU1fQ05UIH07Cj4+PiBAQCAtNDcs NiArNTEsMTIgQEAgbW9kdWxlX3BhcmFtX2FycmF5KHB0cl9zaXplLCBpbnQsIE5VTEwsIDA0NDQp Owo+Pj4gICBNT0RVTEVfUEFSTV9ERVNDKHB0cl9zaXplLAo+Pj4gICAgICAgIlBvaW50aW5nIGRl dmljZSB3aWR0aCwgaGVpZ2h0IGluIHBpeGVscyAoZGVmYXVsdCA4MDAsNjAwKSIpOwo+Pj4gICAr ZW51bSB7IEtQQVJBTV9NVF9YLCBLUEFSQU1fTVRfWSwgS1BBUkFNX01UX0NOVCB9Owo+Pj4gK3N0 YXRpYyBpbnQgbXRvdWNoX3NpemVbS1BBUkFNX01UX0NOVF0gPSB7IFhFTkZCX1dJRFRILCBYRU5G Ql9IRUlHSFQgfTsKPj4+ICttb2R1bGVfcGFyYW1fYXJyYXkobXRvdWNoX3NpemUsIGludCwgTlVM TCwgMDQ0NCk7Cj4+PiArTU9EVUxFX1BBUk1fREVTQyhwdHJfc2l6ZSwKPj4+ICsgICAgIk11bHRp LXRvdWNoIGRldmljZSB3aWR0aCwgaGVpZ2h0IGluIHBpeGVscyAoZGVmYXVsdCA4MDAsNjAwKSIp Owo+Pj4gKwo+PiBXaHkgZG8geW91IG5lZWQgc2VwYXJhdGUgbW9kdWxlIHBhcmFtZXRlcnMgZm9y IG11bHRpLXRvdWNoIGRldmljZT8KPiBwbGVhc2Ugc2VlIGJlbG93Cj4+Cj4+PiAgIHN0YXRpYyBp bnQgeGVua2JkX3JlbW92ZShzdHJ1Y3QgeGVuYnVzX2RldmljZSAqKTsKPj4+ICAgc3RhdGljIGlu dCB4ZW5rYmRfY29ubmVjdF9iYWNrZW5kKHN0cnVjdCB4ZW5idXNfZGV2aWNlICosIHN0cnVjdCAK Pj4+IHhlbmtiZF9pbmZvICopOwo+Pj4gICBzdGF0aWMgdm9pZCB4ZW5rYmRfZGlzY29ubmVjdF9i YWNrZW5kKHN0cnVjdCB4ZW5rYmRfaW5mbyAqKTsKPj4+IEBAIC0xMDAsNiArMTEwLDYwIEBAIHN0 YXRpYyBpcnFyZXR1cm5fdCBpbnB1dF9oYW5kbGVyKGludCBycSwgdm9pZCAKPj4+ICpkZXZfaWQp Cj4+PiAgICAgICAgICAgICAgICAgICBpbnB1dF9yZXBvcnRfcmVsKGRldiwgUkVMX1dIRUVMLAo+ Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLWV2ZW50LT5wb3MucmVsX3opOwo+Pj4gICAg ICAgICAgICAgICBicmVhazsKPj4+ICsgICAgICAgIGNhc2UgWEVOS0JEX1RZUEVfTVRPVUNIOgo+ Pj4gKyAgICAgICAgICAgIGRldiA9IGluZm8tPm10b3VjaDsKPj4+ICsgICAgICAgICAgICBpZiAo dW5saWtlbHkoIWRldikpCj4+PiArICAgICAgICAgICAgICAgIGJyZWFrOwo+Pj4gKyAgICAgICAg ICAgIGlmICh1bmxpa2VseShldmVudC0+bXRvdWNoLmNvbnRhY3RfaWQgIT0KPj4+ICsgICAgICAg ICAgICAgICAgICAgIGluZm8tPm10b3VjaF9jdXJfY29udGFjdF9pZCkpIHsKPj4gV2h5IGlzIHRo aXMgdW5saWtlbHk/IERvZXMgY29udGFjdCBJRCBjaGFuZ2VzIG9uY2UgaW4gMTAwMCBwYWNrZXRz IG9yCj4+IGV2ZW4gbGVzcz8KPiBNdSBhc3N1bXB0aW9uIHdhcyB0aGF0IHJlZ2FyZGxlc3Mgb2Yg dGhlIGZhY3QgdGhhdCB3ZSBhcmUgbXVsdGktdG91Y2gKPiBkZXZpY2Ugc3RpbGwgc2luZ2xlIHRv dWNoZXMgd2lsbCBjb21lIGluIG1vcmUgZnJlcXVlbnRseQo+IEJ1dCBJIGNhbiByZW1vdmUgKnVu bGlrZWx5KiBpZiBteSBhc3N1bXB0aW9uIGlzIG5vdCBjb3JyZWN0Cj4+PiArIGluZm8tPm10b3Vj aF9jdXJfY29udGFjdF9pZCA9Cj4+PiArICAgICAgICAgICAgICAgICAgICBldmVudC0+bXRvdWNo LmNvbnRhY3RfaWQ7Cj4+PiArICAgICAgICAgICAgICAgIGlucHV0X210X3Nsb3QoZGV2LCBldmVu dC0+bXRvdWNoLmNvbnRhY3RfaWQpOwo+Pj4gKyAgICAgICAgICAgIH0KPj4+ICsgICAgICAgICAg ICBzd2l0Y2ggKGV2ZW50LT5tdG91Y2guZXZlbnRfdHlwZSkgewo+Pj4gKyAgICAgICAgICAgIGNh c2UgWEVOS0JEX01UX0VWX0RPV046Cj4+PiArICAgICAgICAgICAgICAgIGlucHV0X210X3JlcG9y dF9zbG90X3N0YXRlKGRldiwgTVRfVE9PTF9GSU5HRVIsCj4+PiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHRydWUpOwo+Pj4gKyAgICAgICAgICAgICAgICBpbnB1dF9ldmVudChkZXYs IEVWX0FCUywgQUJTX01UX1BPU0lUSU9OX1gsCj4+PiArICAgICAgICAgICAgICAgICAgICAgICAg ZXZlbnQtPm10b3VjaC51LnBvcy5hYnNfeCk7Cj4+PiArICAgICAgICAgICAgICAgIGlucHV0X2V2 ZW50KGRldiwgRVZfQUJTLCBBQlNfTVRfUE9TSVRJT05fWSwKPj4+ICsgICAgICAgICAgICAgICAg ICAgICAgICBldmVudC0+bXRvdWNoLnUucG9zLmFic195KTsKPj4+ICsgICAgICAgICAgICAgICAg aW5wdXRfZXZlbnQoZGV2LCBFVl9BQlMsIEFCU19YLAo+Pj4gKyAgICAgICAgICAgICAgICAgICAg ICAgIGV2ZW50LT5tdG91Y2gudS5wb3MuYWJzX3gpOwo+Pj4gKyAgICAgICAgICAgICAgICBpbnB1 dF9ldmVudChkZXYsIEVWX0FCUywgQUJTX1ksCj4+PiArICAgICAgICAgICAgICAgICAgICAgICAg ZXZlbnQtPm10b3VjaC51LnBvcy5hYnNfeSk7Cj4+PiArICAgICAgICAgICAgICAgIGJyZWFrOwo+ Pj4gKyAgICAgICAgICAgIGNhc2UgWEVOS0JEX01UX0VWX1VQOgo+Pj4gKyAgICAgICAgICAgICAg ICBpbnB1dF9tdF9yZXBvcnRfc2xvdF9zdGF0ZShkZXYsIE1UX1RPT0xfRklOR0VSLAo+Pj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSk7Cj4+PiArICAgICAgICAgICAgICAg IGJyZWFrOwo+Pj4gKyAgICAgICAgICAgIGNhc2UgWEVOS0JEX01UX0VWX01PVElPTjoKPj4+ICsg ICAgICAgICAgICAgICAgaW5wdXRfZXZlbnQoZGV2LCBFVl9BQlMsIEFCU19NVF9QT1NJVElPTl9Y LAo+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LT5tdG91Y2gudS5wb3MuYWJzX3gp Owo+Pj4gKyAgICAgICAgICAgICAgICBpbnB1dF9ldmVudChkZXYsIEVWX0FCUywgQUJTX01UX1BP U0lUSU9OX1ksCj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQtPm10b3VjaC51LnBv cy5hYnNfeSk7Cj4+PiArICAgICAgICAgICAgICAgIGlucHV0X2V2ZW50KGRldiwgRVZfQUJTLCBB QlNfWCwKPj4+ICsgICAgICAgICAgICAgICAgICAgICAgICBldmVudC0+bXRvdWNoLnUucG9zLmFi c194KTsKPj4+ICsgICAgICAgICAgICAgICAgaW5wdXRfZXZlbnQoZGV2LCBFVl9BQlMsIEFCU19Z LAo+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LT5tdG91Y2gudS5wb3MuYWJzX3kp Owo+Pj4gKyAgICAgICAgICAgICAgICBicmVhazsKPj4+ICsgICAgICAgICAgICBjYXNlIFhFTktC RF9NVF9FVl9TWU46Cj4+PiArICAgICAgICAgICAgICAgIGlucHV0X210X3N5bmNfZnJhbWUoZGV2 KTsKPj4+ICsgICAgICAgICAgICAgICAgYnJlYWs7Cj4+PiArICAgICAgICAgICAgY2FzZSBYRU5L QkRfTVRfRVZfU0hBUEU6Cj4+PiArICAgICAgICAgICAgICAgIGlucHV0X2V2ZW50KGRldiwgRVZf QUJTLCBBQlNfTVRfVE9VQ0hfTUFKT1IsCj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgZXZl bnQtPm10b3VjaC51LnNoYXBlLm1ham9yKTsKPj4+ICsgICAgICAgICAgICAgICAgaW5wdXRfZXZl bnQoZGV2LCBFVl9BQlMsIEFCU19NVF9UT1VDSF9NSU5PUiwKPj4+ICsgICAgICAgICAgICAgICAg ICAgICAgICBldmVudC0+bXRvdWNoLnUuc2hhcGUubWlub3IpOwo+Pj4gKyAgICAgICAgICAgICAg ICBicmVhazsKPj4+ICsgICAgICAgICAgICBjYXNlIFhFTktCRF9NVF9FVl9PUklFTlQ6Cj4+PiAr ICAgICAgICAgICAgICAgIGlucHV0X2V2ZW50KGRldiwgRVZfQUJTLCBBQlNfTVRfT1JJRU5UQVRJ T04sCj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQtPm10b3VjaC51Lm9yaWVudGF0 aW9uKTsKPj4+ICsgICAgICAgICAgICAgICAgYnJlYWs7Cj4+PiArICAgICAgICAgICAgfQo+Pj4g KyAgICAgICAgICAgIC8qIG9ubHkgcmVwb3J0IHN5biB3aGVuIHJlcXVlc3RlZCAqLwo+Pj4gKyAg ICAgICAgICAgIGlmIChldmVudC0+bXRvdWNoLmV2ZW50X3R5cGUgIT0gWEVOS0JEX01UX0VWX1NZ TikKPj4+ICsgICAgICAgICAgICAgICAgZGV2ID0gTlVMTDsKPj4+ICAgICAgICAgICB9Cj4+PiAg ICAgICAgICAgaWYgKGRldikKPj4+ICAgICAgICAgICAgICAgaW5wdXRfc3luYyhkZXYpOwo+Pj4g QEAgLTExNSw5ICsxNzksOSBAQCBzdGF0aWMgaW50IHhlbmtiZF9wcm9iZShzdHJ1Y3QgeGVuYnVz X2RldmljZSAqZGV2LAo+Pj4gICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgeGVuYnVz X2RldmljZV9pZCAqaWQpCj4+PiAgIHsKPj4+ICAgICAgIGludCByZXQsIGk7Cj4+PiAtICAgIHVu c2lnbmVkIGludCBhYnM7Cj4+PiArICAgIHVuc2lnbmVkIGludCBhYnMsIHRvdWNoOwo+Pj4gICAg ICAgc3RydWN0IHhlbmtiZF9pbmZvICppbmZvOwo+Pj4gLSAgICBzdHJ1Y3QgaW5wdXRfZGV2ICpr YmQsICpwdHI7Cj4+PiArICAgIHN0cnVjdCBpbnB1dF9kZXYgKmtiZCwgKnB0ciwgKm10b3VjaDsK Pj4+ICAgICAgICAgaW5mbyA9IGt6YWxsb2Moc2l6ZW9mKCppbmZvKSwgR0ZQX0tFUk5FTCk7Cj4+ PiAgICAgICBpZiAoIWluZm8pIHsKPj4+IEBAIC0xNTIsNiArMjE2LDE3IEBAIHN0YXRpYyBpbnQg eGVua2JkX3Byb2JlKHN0cnVjdCB4ZW5idXNfZGV2aWNlICpkZXYsCj4+PiAgICAgICAgICAgfQo+ Pj4gICAgICAgfQo+Pj4gICArICAgIHRvdWNoID0geGVuYnVzX3JlYWRfdW5zaWduZWQoZGV2LT5u b2RlbmFtZSwKPj4+ICsgICAgICAgICAgICAgICAgICAgICBYRU5LQkRfRklFTERfRkVBVF9NVE9V Q0gsIDApOwo+Pj4gKyAgICBpZiAodG91Y2gpIHsKPj4+ICsgICAgICAgIHJldCA9IHhlbmJ1c193 cml0ZShYQlRfTklMLCBkZXYtPm5vZGVuYW1lLAo+Pj4gKyAgICAgICAgICAgICAgICAgICBYRU5L QkRfRklFTERfUkVRX01UT1VDSCwgIjEiKTsKPj4+ICsgICAgICAgIGlmIChyZXQpIHsKPj4+ICsg ICAgICAgICAgICBwcl93YXJuaW5nKCJ4ZW5rYmQ6IGNhbid0IHJlcXVlc3QgbXVsdGktdG91Y2gi KTsKPj4+ICsgICAgICAgICAgICB0b3VjaCA9IDA7Cj4+PiArICAgICAgICB9Cj4+PiArICAgIH0K Pj4+ICsKPj4+ICAgICAgIC8qIGtleWJvYXJkICovCj4+PiAgICAgICBrYmQgPSBpbnB1dF9hbGxv Y2F0ZV9kZXZpY2UoKTsKPj4+ICAgICAgIGlmICgha2JkKQo+Pj4gQEAgLTIwOCw2ICsyODMsNjcg QEAgc3RhdGljIGludCB4ZW5rYmRfcHJvYmUoc3RydWN0IHhlbmJ1c19kZXZpY2UgKmRldiwKPj4+ ICAgICAgIH0KPj4+ICAgICAgIGluZm8tPnB0ciA9IHB0cjsKPj4+ICAgKyAgICAvKiBtdWx0aS10 b3VjaCBkZXZpY2UgKi8KPj4+ICsgICAgaWYgKHRvdWNoKSB7Cj4+PiArICAgICAgICBpbnQgbnVt X2NvbnQsIHdpZHRoLCBoZWlnaHQ7Cj4+PiArCj4+PiArICAgICAgICBtdG91Y2ggPSBpbnB1dF9h bGxvY2F0ZV9kZXZpY2UoKTsKPj4+ICsgICAgICAgIGlmICghbXRvdWNoKQo+Pj4gKyAgICAgICAg ICAgIGdvdG8gZXJyb3Jfbm9tZW07Cj4+PiArCj4+PiArICAgICAgICBudW1fY29udCA9IHhlbmJ1 c19yZWFkX3Vuc2lnbmVkKGluZm8tPnhiZGV2LT5ub2RlbmFtZSwKPj4+ICsgICAgICAgICAgICAg ICAgICAgICAgICBYRU5LQkRfRklFTERfTVRfTlVNX0NPTlRBQ1RTLAo+Pj4gKyAgICAgICAgICAg ICAgICAgICAgICAgIDEpOwo+Pj4gKyAgICAgICAgd2lkdGggPSB4ZW5idXNfcmVhZF91bnNpZ25l ZChpbmZvLT54YmRldi0+bm9kZW5hbWUsCj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgIFhF TktCRF9GSUVMRF9NVF9XSURUSCwKPj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgWEVORkJf V0lEVEgpOwo+Pj4gKyAgICAgICAgaGVpZ2h0ID0geGVuYnVzX3JlYWRfdW5zaWduZWQoaW5mby0+ eGJkZXYtPm5vZGVuYW1lLAo+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgWEVOS0JEX0ZJ RUxEX01UX0hFSUdIVCwKPj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIFhFTkZCX0hFSUdI VCk7Cj4+IEN1cmlvdXMgd2h5IHlvdSBuZWVkIHNlcGFyYXRlIHBhcmFtZXRlcnMgaGVyZSB0b28u Li4KPiBUaGlzIGlzIGJlY2F1c2UgbXQgcGFyYW1ldGVycyBhcmUgZGlmZmVyZW50IGZyb20gcHRy Cj4gaW4gYSB3YXkgdGhhdCB0aGV5IGFyZSBjb25maWd1cmFibGUgcGVyIGZyb250IGRyaXZlcidz Cj4gaW5zdGFuY2UgcmF0aGVyIHRoYW4gcGVyIGJhY2tlbmQsIGUuZy4gaW4gWGVuU3RvcmU6Cj4K PiAvbG9jYWwvZG9tYWluLzAvYmFja2VuZC92a2JkLzEvMC93aWR0aCA9ICIxOTIwIgo+IC9sb2Nh bC9kb21haW4vMC9iYWNrZW5kL3ZrYmQvMS8wL2hlaWdodCA9ICIxMDgwIgo+Cj4gL2xvY2FsL2Rv bWFpbi8xL2RldmljZS92a2JkLzAvbXVsdGktdG91Y2gtd2lkdGggPSAiMTkyMCIKPiAvbG9jYWwv ZG9tYWluLzEvZGV2aWNlL3ZrYmQvMC9tdWx0aS10b3VjaC1oZWlnaHQgPSAiMTA4MCIKPiAvbG9j YWwvZG9tYWluLzEvZGV2aWNlL3ZrYmQvMC9tdWx0aS10b3VjaC1udW0tY29udGFjdHMgPSAiMTAi Cj4KPiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZrYmQvMS9tdWx0aS10b3VjaC13aWR0aCA9ICI4 MDAiCj4gL2xvY2FsL2RvbWFpbi8xL2RldmljZS92a2JkLzEvbXVsdGktdG91Y2gtaGVpZ2h0ID0g IjYwMCIKPiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZrYmQvMS9tdWx0aS10b3VjaC1udW0tY29u dGFjdHMgPSAiMyIKPgo+IFRoZSBtYWluIHJlYXNvbiBmb3Igc3VjaCBjb25maWd1cmF0aW9uIGlz IHRoYXQgeW91IGNhbgo+IGNvbmZpZ3VyZSBtdWx0aXBsZSBtdCBpbnB1dCBkZXZpY2VzIGV2ZW4g Zm9yIHRoZSBzYW1lIGd1ZXN0Cj4gd2l0aCBkaWZmZXJlbnQgcmVzb2x1dGlvbnMgd2hpY2ggbWF5 IG5vdCBtYXRjaCB0aG9zZQo+IGNvbmZpZ3VyZWQgZm9yIHB0ci4KPiAoSW4gbXkgdXNlLWNhc2Ug SSB1c2UgbmV3IGRpc3BsaWYgcHJvdG9jb2wgWzFdIGluIGNvbmp1bmN0aW9uCj4gd2l0aCBtdCBp bnB1dCBkZXZpY2VzIGFuZCB0aGUgY29ycmVzcG9uZGluZyBiYWNrZW5kIGlzIG5vdAo+IFFFTVUn cyB4ZW5mYikKPgo+IEFzIHRvIG1vZHVsZSBwYXJhbWV0ZXJzLCBJIGFkZGVkIHRob3NlIHRvIGJl IGNvbnNpc3RlbnQgd2l0aAo+IHB0ciBkZXZpY2UuIERvIHlvdSB0aGluayB3ZSBjYW4gbGl2ZSB3 aXRob3V0IHRoZW0gYW5kCj4gZG8geW91IHdhbnQgbWUgdG8gcmVtb3ZlIHRoZW0/Cj4+PiArCj4+ PiArICAgICAgICBtdG91Y2gtPm5hbWUgPSAiWGVuIFZpcnR1YWwgTXVsdGktdG91Y2giOwo+Pj4g KyAgICAgICAgbXRvdWNoLT5waHlzID0gaW5mby0+cGh5czsKPj4+ICsgICAgICAgIG10b3VjaC0+ aWQuYnVzdHlwZSA9IEJVU19QQ0k7Cj4+PiArICAgICAgICBtdG91Y2gtPmlkLnZlbmRvciA9IDB4 NTg1MzsKPj4+ICsgICAgICAgIG10b3VjaC0+aWQucHJvZHVjdCA9IDB4ZmZmZDsKPj4+ICsKPj4+ ICsgICAgICAgIF9fc2V0X2JpdChFVl9BQlMsIG10b3VjaC0+ZXZiaXQpOwo+Pj4gKyAgICAgICAg X19zZXRfYml0KEVWX0tFWSwgbXRvdWNoLT5ldmJpdCk7Cj4+PiArICAgICAgICBfX3NldF9iaXQo QlROX1RPVUNILCBtdG91Y2gtPmtleWJpdCk7Cj4+PiArCj4+PiArICAgICAgICBpbnB1dF9zZXRf YWJzX3BhcmFtcyhtdG91Y2gsIEFCU19YLAo+Pj4gKyAgICAgICAgICAgICAgICAgICAgIDAsIHdp ZHRoLCAwLCAwKTsKPj4+ICsgICAgICAgIGlucHV0X3NldF9hYnNfcGFyYW1zKG10b3VjaCwgQUJT X1ksCj4+PiArICAgICAgICAgICAgICAgICAgICAgMCwgaGVpZ2h0LCAwLCAwKTsKPj4+ICsgICAg ICAgIGlucHV0X3NldF9hYnNfcGFyYW1zKG10b3VjaCwgQUJTX1BSRVNTVVJFLAo+Pj4gKyAgICAg ICAgICAgICAgICAgICAgIDAsIDI1NSwgMCwgMCk7Cj4+PiArCj4+PiArICAgICAgICBpbnB1dF9z ZXRfYWJzX3BhcmFtcyhtdG91Y2gsIEFCU19NVF9UT1VDSF9NQUpPUiwKPj4+ICsgICAgICAgICAg ICAgICAgICAgICAwLCAyNTUsIDAsIDApOwo+Pj4gKyAgICAgICAgaW5wdXRfc2V0X2Fic19wYXJh bXMobXRvdWNoLCBBQlNfTVRfUE9TSVRJT05fWCwKPj4+ICsgICAgICAgICAgICAgICAgICAgICAw LCB3aWR0aCwgMCwgMCk7Cj4+PiArICAgICAgICBpbnB1dF9zZXRfYWJzX3BhcmFtcyhtdG91Y2gs IEFCU19NVF9QT1NJVElPTl9ZLAo+Pj4gKyAgICAgICAgICAgICAgICAgICAgIDAsIGhlaWdodCwg MCwgMCk7Cj4+PiArICAgICAgICBpbnB1dF9zZXRfYWJzX3BhcmFtcyhtdG91Y2gsIEFCU19NVF9Q UkVTU1VSRSwKPj4+ICsgICAgICAgICAgICAgICAgICAgICAwLCAyNTUsIDAsIDApOwo+Pj4gKwo+ Pj4gKyAgICAgICAgaW5wdXRfbXRfaW5pdF9zbG90cyhtdG91Y2gsIG51bV9jb250LCAwKTsKPj4+ ICsKPj4+ICsgICAgICAgIG10b3VjaF9zaXplW0tQQVJBTV9NVF9YXSA9IHdpZHRoOwo+Pj4gKyAg ICAgICAgbXRvdWNoX3NpemVbS1BBUkFNX01UX1ldID0gaGVpZ2h0Owo+Pj4gKyAgICAgICAgaW5m by0+bXRvdWNoX2N1cl9jb250YWN0X2lkID0gLTE7Cj4+PiArCj4+PiArICAgICAgICByZXQgPSBp bnB1dF9yZWdpc3Rlcl9kZXZpY2UobXRvdWNoKTsKPj4+ICsgICAgICAgIGlmIChyZXQpIHsKPj4+ ICsgICAgICAgICAgICBpbnB1dF9mcmVlX2RldmljZShtdG91Y2gpOwo+Pj4gKyAgICAgICAgICAg IHhlbmJ1c19kZXZfZmF0YWwoaW5mby0+eGJkZXYsIHJldCwKPj4+ICsgICAgICAgICAgICAgICAg ICAgICAiaW5wdXRfcmVnaXN0ZXJfZGV2aWNlKG10b3VjaCkiKTsKPj4+ICsgICAgICAgICAgICBn b3RvIGVycm9yOwo+Pj4gKyAgICAgICAgfQo+Pj4gKyAgICAgICAgaW5mby0+bXRvdWNoX2N1cl9j b250YWN0X2lkID0gLTE7Cj4+PiArICAgICAgICBpbmZvLT5tdG91Y2ggPSBtdG91Y2g7Cj4+PiAr ICAgIH0KPj4+ICsKPj4+ICAgICAgIHJldCA9IHhlbmtiZF9jb25uZWN0X2JhY2tlbmQoZGV2LCBp bmZvKTsKPj4+ICAgICAgIGlmIChyZXQgPCAwKQo+Pj4gICAgICAgICAgIGdvdG8gZXJyb3I7Cj4+ PiBAQCAtMjQwLDYgKzM3Niw4IEBAIHN0YXRpYyBpbnQgeGVua2JkX3JlbW92ZShzdHJ1Y3QgeGVu YnVzX2RldmljZSAqZGV2KQo+Pj4gICAgICAgICAgIGlucHV0X3VucmVnaXN0ZXJfZGV2aWNlKGlu Zm8tPmtiZCk7Cj4+PiAgICAgICBpZiAoaW5mby0+cHRyKQo+Pj4gICAgICAgICAgIGlucHV0X3Vu cmVnaXN0ZXJfZGV2aWNlKGluZm8tPnB0cik7Cj4+PiArICAgIGlmIChpbmZvLT5tdG91Y2gpCj4+ PiArICAgICAgICBpbnB1dF91bnJlZ2lzdGVyX2RldmljZShpbmZvLT5tdG91Y2gpOwo+Pj4gICAg ICAgZnJlZV9wYWdlKCh1bnNpZ25lZCBsb25nKWluZm8tPnBhZ2UpOwo+Pj4gICAgICAga2ZyZWUo aW5mbyk7Cj4+PiAgICAgICByZXR1cm4gMDsKPj4+IC0tIAo+Pj4gMi43LjQKPj4+Cj4+IFRoYW5r cy4KPiBUaGFuayB5b3UsCj4gT2xla3NhbmRyCj4gWzFdIAo+IGh0dHBzOi8vZ2l0Lmtlcm5lbC5v cmcvcHViL3NjbS9saW51eC9rZXJuZWwvZ2l0L3hlbi90aXAuZ2l0L2NvbW1pdC8/aD1mb3ItbGlu dXMtNC4xMiZpZD1lMjdjNTMzZGM0ZDAzMzgyNjZjY2I2ZGFiNDI4MTUwZDRkNjI5ZTZhCj4KCkFz IGFsbCB0aGUgZGVwZW5kZW5jaWVzIGFyZSBub3cgbWVyZ2VkIGludG8gdGhlIGtlcm5lbCBhbmQg KmlmKgp0aGUgYWJvdmUgc291bmRzIHJlYXNvbmFibGUgZm9yIHlvdSBjYW4gd2UgcGxlYXNlIHBy b2NlZWQgd2l0aCB0aGlzIHBhdGNoPwoKVGhhbmsgeW91LApPbGVrc2FuZHIKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxp c3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZl bAo=