From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleksandr Andrushchenko Subject: Re: [PATCH 0/1] drm/xen-zcopy: Add Xen zero-copy helper DRM driver Date: Tue, 24 Apr 2018 13:14:31 +0300 Message-ID: References: <76cdc65a-7bb1-9377-7bc5-6164e32f7b5d@gmail.com> <20180423115242.ywdwqblj2aseu3fr@citrix.com> <61105351-8896-072b-abf0-757c7f6c0edf@gmail.com> <30ddb005-96c8-f47c-2e23-4e0d354e5842@gmail.com> <6089d701-5221-75b4-38eb-b23bc5dc30cd@suse.com> <85fc8f82-6d4d-9343-2737-85b7d7391168@gmail.com> <0657bbb5-5cb7-4c63-5490-fbfc7dec1e59@suse.com> <20180424100132.5573sg2hhbhpkr7c@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1fAuyE-0000zh-Je for xen-devel@lists.xenproject.org; Tue, 24 Apr 2018 10:14:46 +0000 In-Reply-To: <20180424100132.5573sg2hhbhpkr7c@citrix.com> Content-Language: en-US List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Wei Liu , Juergen Gross , Dongwon Kim Cc: Artem Mygaiev , Oleksandr Andrushchenko , Ian Jackson , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, airlied@linux.ie, "Potrola, MateuszX" , daniel.vetter@intel.com, xen-devel@lists.xenproject.org, Boris Ostrovsky , =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= List-Id: xen-devel@lists.xenproject.org T24gMDQvMjQvMjAxOCAwMTowMSBQTSwgV2VpIExpdSB3cm90ZToKPiBPbiBUdWUsIEFwciAyNCwg MjAxOCBhdCAxMTowODo0MUFNICswMjAwLCBKdWVyZ2VuIEdyb3NzIHdyb3RlOgo+PiBPbiAyNC8w NC8xOCAxMTowMywgT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6Cj4+PiBPbiAwNC8yNC8y MDE4IDExOjQwIEFNLCBKdWVyZ2VuIEdyb3NzIHdyb3RlOgo+Pj4+IE9uIDI0LzA0LzE4IDEwOjA3 LCBPbGVrc2FuZHIgQW5kcnVzaGNoZW5rbyB3cm90ZToKPj4+Pj4gT24gMDQvMjQvMjAxOCAxMDo1 MSBBTSwgSnVlcmdlbiBHcm9zcyB3cm90ZToKPj4+Pj4+IE9uIDI0LzA0LzE4IDA3OjQzLCBPbGVr c2FuZHIgQW5kcnVzaGNoZW5rbyB3cm90ZToKPj4+Pj4+PiBPbiAwNC8yNC8yMDE4IDAxOjQxIEFN LCBCb3JpcyBPc3Ryb3Zza3kgd3JvdGU6Cj4+Pj4+Pj4+IE9uIDA0LzIzLzIwMTggMDg6MTAgQU0s IE9sZWtzYW5kciBBbmRydXNoY2hlbmtvIHdyb3RlOgo+Pj4+Pj4+Pj4gT24gMDQvMjMvMjAxOCAw Mjo1MiBQTSwgV2VpIExpdSB3cm90ZToKPj4+Pj4+Pj4+PiBPbiBGcmksIEFwciAyMCwgMjAxOCBh dCAwMjoyNToyMFBNICswMzAwLCBPbGVrc2FuZHIgQW5kcnVzaGNoZW5rbwo+Pj4+Pj4+Pj4+IHdy b3RlOgo+Pj4+Pj4+Pj4+Pj4+ICDCoMKgwqDCoMKgwqDCoCB0aGUgZ250ZGV2Lgo+Pj4+Pj4+Pj4+ Pj4+Cj4+Pj4+Pj4+Pj4+Pj4gSSB0aGluayB0aGlzIGlzIGdlbmVyaWMgZW5vdWdoIHRoYXQgaXQg Y291bGQgYmUgaW1wbGVtZW50ZWQgYnkgYQo+Pj4+Pj4+Pj4+Pj4+IGRldmljZSBub3QgdGllZCB0 byBYZW4uIEFGQUlDVCB0aGUgaHlwZXJfZG1hIGd1eXMgYWxzbyB3YW50ZWQKPj4+Pj4+Pj4+Pj4+ PiBzb21ldGhpbmcgc2ltaWxhciB0byB0aGlzLgo+Pj4+Pj4+Pj4+Pj4gWW91IGNhbid0IGp1c3Qg d3JhcCByYW5kb20gdXNlcnNwYWNlIG1lbW9yeSBpbnRvIGEgZG1hLWJ1Zi4gV2UndmUKPj4+Pj4+ Pj4+Pj4+IGp1c3QgaGFkCj4+Pj4+Pj4+Pj4+PiB0aGlzIGRpc2N1c3Npb24gd2l0aCBrdm0vcWVt dSBmb2xrcywgd2hvIHByb3Bvc2VkIGp1c3QgdGhhdCwgYW5kCj4+Pj4+Pj4+Pj4+PiBhZnRlciBh Cj4+Pj4+Pj4+Pj4+PiBiaXQgb2YgZGlzY3Vzc2lvbiB0aGV5J2xsIG5vdyB0cnkgdG8gaGF2ZSBh IGRyaXZlciB3aGljaCBqdXN0Cj4+Pj4+Pj4+Pj4+PiB3cmFwcyBhCj4+Pj4+Pj4+Pj4+PiBtZW1m ZCBpbnRvIGEgZG1hLWJ1Zi4KPj4+Pj4+Pj4+Pj4gU28sIHdlIGhhdmUgdG8gZGVjaWRlIGVpdGhl ciB3ZSBpbnRyb2R1Y2UgYSBuZXcgZHJpdmVyCj4+Pj4+Pj4+Pj4+IChzYXksIHVuZGVyIGRyaXZl cnMveGVuL3hlbi1kbWEtYnVmKSBvciBleHRlbmQgdGhlIGV4aXN0aW5nCj4+Pj4+Pj4+Pj4+IGdu dGRldi9iYWxsb29uIHRvIHN1cHBvcnQgZG1hLWJ1ZiB1c2UtY2FzZXMuCj4+Pj4+Pj4+Pj4+Cj4+ Pj4+Pj4+Pj4+IENhbiBhbnlib2R5IGZyb20gWGVuIGNvbW11bml0eSBleHByZXNzIHRoZWlyIHBy ZWZlcmVuY2UgaGVyZT8KPj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+PiBPbGVrc2FuZHIgdGFsa2VkIHRv IG1lIG9uIElSQyBhYm91dCB0aGlzLCBoZSBzYWlkIGEgZmV3IElPQ1RMcwo+Pj4+Pj4+Pj4+IG5l ZWQgdG8KPj4+Pj4+Pj4+PiBiZSBhZGRlZCB0byBlaXRoZXIgZXhpc3RpbmcgZHJpdmVycyBvciBh IG5ldyBkcml2ZXIuCj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+PiBJIHdlbnQgdGhyb3VnaCB0aGlzIHRo cmVhZCB0d2ljZSBhbmQgc2tpbW1lZCB0aHJvdWdoIHRoZSByZWxldmFudAo+Pj4+Pj4+Pj4+IGRv Y3VtZW50cywgYnV0IEkgY291bGRuJ3Qgc2VlIGFueSBvYnZpb3VzIHByb3MgYW5kIGNvbnMgZm9y IGVpdGhlcgo+Pj4+Pj4+Pj4+IGFwcHJvYWNoLiBTbyBJIGRvbid0IHJlYWxseSBoYXZlIGFuIG9w aW5pb24gb24gdGhpcy4KPj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+IEJ1dCwgYXNzdW1pbmcgaWYgaW1w bGVtZW50ZWQgaW4gZXhpc3RpbmcgZHJpdmVycywgdGhvc2UgSU9DVExzCj4+Pj4+Pj4+Pj4gbmVl ZCB0bwo+Pj4+Pj4+Pj4+IGJlIGFkZGVkIHRvIGRpZmZlcmVudCBkcml2ZXJzLCB3aGljaCBtZWFu cyB1c2Vyc3BhY2UgcHJvZ3JhbQo+Pj4+Pj4+Pj4+IG5lZWRzIHRvCj4+Pj4+Pj4+Pj4gd3JpdGUg bW9yZSBjb2RlIGFuZCBnZXQgbW9yZSBoYW5kbGVzLCBpdCB3b3VsZCBiZSBzbGlnaHRseQo+Pj4+ Pj4+Pj4+IGJldHRlciB0bwo+Pj4+Pj4+Pj4+IGltcGxlbWVudCBhIG5ldyBkcml2ZXIgZnJvbSB0 aGF0IHBlcnNwZWN0aXZlLgo+Pj4+Pj4+Pj4gSWYgZ250ZGV2L2JhbGxvb24gZXh0ZW5zaW9uIGlz IHN0aWxsIGNvbnNpZGVyZWQ6Cj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gQWxsIHRoZSBJT0NUTHMgd2ls bCBiZSBpbiBnbnRkZXYgZHJpdmVyIChpbiBjdXJyZW50IHhlbi16Y29weQo+Pj4+Pj4+Pj4gdGVy bWlub2xvZ3kpOgo+Pj4+Pj4+Pj4gIMKgwqDCoMKgLSBEUk1fSUNPVExfWEVOX1pDT1BZX0RVTUJf RlJPTV9SRUZTCj4+Pj4+Pj4+PiAgwqDCoMKgwqAtIERSTV9JT0NUTF9YRU5fWkNPUFlfRFVNQl9U T19SRUZTCj4+Pj4+Pj4+PiAgwqDCoMKgwqAtIERSTV9JT0NUTF9YRU5fWkNPUFlfRFVNQl9XQUlU X0ZSRUUKPj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiBCYWxsb29uIGRyaXZlciBleHRlbnNpb24sIHdoaWNo IGlzIG5lZWRlZCBmb3IgY29udGlndW91cy9ETUEKPj4+Pj4+Pj4+IGJ1ZmZlcnMsIHdpbGwgYmUg dG8gcHJvdmlkZSBuZXcgKmtlcm5lbCBBUEkqLCBubyBVQVBJIGlzIG5lZWRlZC4KPj4+Pj4+Pj4+ Cj4+Pj4+Pj4+IFNvIEkgYW0gb2J2aW91c2x5IGEgYml0IGxhdGUgdG8gdGhpcyB0aHJlYWQsIGJ1 dCB3aHkgZG8geW91IG5lZWQKPj4+Pj4+Pj4gdG8gYWRkCj4+Pj4+Pj4+IG5ldyBpb2N0bHMgdG8g Z250ZGV2IGFuZCBiYWxsb29uPyBEb2Vzbid0IHRoaXMgZHJpdmVyIG1hbmFnZSB0byBkbwo+Pj4+ Pj4+PiB3aGF0Cj4+Pj4+Pj4+IHlvdSB3YW50IHdpdGhvdXQgYW55IGV4dGVuc2lvbnM/Cj4+Pj4+ Pj4gMS4gSSBvbmx5IChtYXkpIG5lZWQgdG8gYWRkIElPQ1RMcyB0byBnbnRkZXYKPj4+Pj4+PiAy LiBiYWxsb29uIGRyaXZlciBuZWVkcyB0byBiZSBleHRlbmRlZCwgc28gaXQgY2FuIGFsbG9jYXRl Cj4+Pj4+Pj4gY29udGlndW91cyAoRE1BKSBtZW1vcnksIG5vdCBJT0NUTHMvVUFQSSBoZXJlLCBh bGwgbGl2ZXMKPj4+Pj4+PiBpbiB0aGUga2VybmVsLgo+Pj4+Pj4+IDMuIFRoZSByZWFzb24gSSBu ZWVkIHRvIGV4dGVuZCBnbnR0YWIgd2l0aCBuZXcgSU9DVExzIGlzIHRvCj4+Pj4+Pj4gcHJvdmlk ZSBuZXcgZnVuY3Rpb25hbGl0eSB0byBjcmVhdGUgYSBkbWEtYnVmIGZyb20gZ3JhbnQgcmVmZXJl bmNlcwo+Pj4+Pj4+IGFuZCB0byBwcm9kdWNlIGdyYW50IHJlZmVyZW5jZXMgZm9yIGEgZG1hLWJ1 Zi4gVGhpcyBpcyB3aGF0IEkgaGF2ZSBhcwo+Pj4+Pj4+IFVBUEkKPj4+Pj4+PiBkZXNjcmlwdGlv biBmb3IgeGVuLXpjb3B5IGRyaXZlcjoKPj4+Pj4+Pgo+Pj4+Pj4+IDEuIERSTV9JT0NUTF9YRU5f WkNPUFlfRFVNQl9GUk9NX1JFRlMKPj4+Pj4+PiBUaGlzIHdpbGwgY3JlYXRlIGEgRFJNIGR1bWIg YnVmZmVyIGZyb20gZ3JhbnQgcmVmZXJlbmNlcyBwcm92aWRlZAo+Pj4+Pj4+IGJ5IHRoZSBmcm9u dGVuZC4gVGhlIGludGVuZGVkIHVzYWdlIGlzOgo+Pj4+Pj4+ICDCoMKgwqAgLSBGcm9udGVuZAo+ Pj4+Pj4+ICDCoMKgwqDCoMKgIC0gY3JlYXRlcyBhIGR1bWIvZGlzcGxheSBidWZmZXIgYW5kIGFs bG9jYXRlcyBtZW1vcnkKPj4+Pj4+PiAgwqDCoMKgwqDCoCAtIGdyYW50cyBmb3JlaWduIGFjY2Vz cyB0byB0aGUgYnVmZmVyIHBhZ2VzCj4+Pj4+Pj4gIMKgwqDCoMKgwqAgLSBwYXNzZXMgZ3JhbnRl ZCByZWZlcmVuY2VzIHRvIHRoZSBiYWNrZW5kCj4+Pj4+Pj4gIMKgwqDCoCAtIEJhY2tlbmQKPj4+ Pj4+PiAgwqDCoMKgwqDCoCAtIGlzc3VlcyBEUk1fWEVOX1pDT1BZX0RVTUJfRlJPTV9SRUZTIGlv Y3RsIHRvIG1hcAo+Pj4+Pj4+ICDCoMKgwqDCoMKgwqDCoCBncmFudGVkIHJlZmVyZW5jZXMgYW5k IGNyZWF0ZSBhIGR1bWIgYnVmZmVyCj4+Pj4+Pj4gIMKgwqDCoMKgwqAgLSByZXF1ZXN0cyBoYW5k bGUgdG8gZmQgY29udmVyc2lvbiB2aWEKPj4+Pj4+PiBEUk1fSU9DVExfUFJJTUVfSEFORExFX1RP X0ZECj4+Pj4+Pj4gIMKgwqDCoMKgwqAgLSByZXF1ZXN0cyByZWFsIEhXIGRyaXZlci9jb25zdW1l ciB0byBpbXBvcnQgdGhlIFBSSU1FIGJ1ZmZlcgo+Pj4+Pj4+IHdpdGgKPj4+Pj4+PiAgwqDCoMKg wqDCoMKgwqAgRFJNX0lPQ1RMX1BSSU1FX0ZEX1RPX0hBTkRMRQo+Pj4+Pj4+ICDCoMKgwqDCoMKg IC0gdXNlcyBoYW5kbGUgcmV0dXJuZWQgYnkgdGhlIHJlYWwgSFcgZHJpdmVyCj4+Pj4+Pj4gIMKg wqDCoCAtIGF0IHRoZSBlbmQ6Cj4+Pj4+Pj4gIMKgwqDCoMKgwqAgbyBjbG9zZXMgcmVhbCBIVyBk cml2ZXIncyBoYW5kbGUgd2l0aCBEUk1fSU9DVExfR0VNX0NMT1NFCj4+Pj4+Pj4gIMKgwqDCoMKg wqAgbyBjbG9zZXMgemVyby1jb3B5IGRyaXZlcidzIGhhbmRsZSB3aXRoIERSTV9JT0NUTF9HRU1f Q0xPU0UKPj4+Pj4+PiAgwqDCoMKgwqDCoCBvIGNsb3NlcyBmaWxlIGRlc2NyaXB0b3Igb2YgdGhl IGV4cG9ydGVkIGJ1ZmZlcgo+Pj4+Pj4+Cj4+Pj4+Pj4gMi4gRFJNX0lPQ1RMX1hFTl9aQ09QWV9E VU1CX1RPX1JFRlMKPj4+Pj4+PiBUaGlzIHdpbGwgZ3JhbnQgcmVmZXJlbmNlcyB0byBhIGR1bWIv ZGlzcGxheSBidWZmZXIncyBtZW1vcnkKPj4+Pj4+PiBwcm92aWRlZCBieQo+Pj4+Pj4+IHRoZQo+ Pj4+Pj4+IGJhY2tlbmQuIFRoZSBpbnRlbmRlZCB1c2FnZSBpczoKPj4+Pj4+PiAgwqDCoMKgIC0g RnJvbnRlbmQKPj4+Pj4+PiAgwqDCoMKgwqDCoCAtIHJlcXVlc3RzIGJhY2tlbmQgdG8gYWxsb2Nh dGUgZHVtYi9kaXNwbGF5IGJ1ZmZlciBhbmQgZ3JhbnQKPj4+Pj4+PiByZWZlcmVuY2VzCj4+Pj4+ Pj4gIMKgwqDCoMKgwqDCoMKgIHRvIGl0cyBwYWdlcwo+Pj4+Pj4+ICDCoMKgwqAgLSBCYWNrZW5k Cj4+Pj4+Pj4gIMKgwqDCoMKgwqAgLSByZXF1ZXN0cyByZWFsIEhXIGRyaXZlciB0byBjcmVhdGUg YSBkdW1iIHdpdGgKPj4+Pj4+PiBEUk1fSU9DVExfTU9ERV9DUkVBVEVfRFVNQgo+Pj4+Pj4+ICDC oMKgwqDCoMKgIC0gcmVxdWVzdHMgaGFuZGxlIHRvIGZkIGNvbnZlcnNpb24gdmlhCj4+Pj4+Pj4g RFJNX0lPQ1RMX1BSSU1FX0hBTkRMRV9UT19GRAo+Pj4+Pj4+ICDCoMKgwqDCoMKgIC0gcmVxdWVz dHMgemVyby1jb3B5IGRyaXZlciB0byBpbXBvcnQgdGhlIFBSSU1FIGJ1ZmZlciB3aXRoCj4+Pj4+ Pj4gIMKgwqDCoMKgwqDCoMKgIERSTV9JT0NUTF9QUklNRV9GRF9UT19IQU5ETEUKPj4+Pj4+PiAg wqDCoMKgwqDCoCAtIGlzc3VlcyBEUk1fWEVOX1pDT1BZX0RVTUJfVE9fUkVGUyBpb2N0bCB0bwo+ Pj4+Pj4+ICDCoMKgwqDCoMKgwqDCoCBncmFudCByZWZlcmVuY2VzIHRvIHRoZSBidWZmZXIncyBt ZW1vcnkuCj4+Pj4+Pj4gIMKgwqDCoMKgwqAgLSBwYXNzZXMgZ3JhbnQgcmVmZXJlbmNlcyB0byB0 aGUgZnJvbnRlbmQKPj4+Pj4+PiAgwqDCoMKgLSBhdCB0aGUgZW5kOgo+Pj4+Pj4+ICDCoMKgwqDC oMKgIC0gY2xvc2VzIHplcm8tY29weSBkcml2ZXIncyBoYW5kbGUgd2l0aCBEUk1fSU9DVExfR0VN X0NMT1NFCj4+Pj4+Pj4gIMKgwqDCoMKgwqAgLSBjbG9zZXMgcmVhbCBIVyBkcml2ZXIncyBoYW5k bGUgd2l0aCBEUk1fSU9DVExfR0VNX0NMT1NFCj4+Pj4+Pj4gIMKgwqDCoMKgwqAgLSBjbG9zZXMg ZmlsZSBkZXNjcmlwdG9yIG9mIHRoZSBpbXBvcnRlZCBidWZmZXIKPj4+Pj4+Pgo+Pj4+Pj4+IDMu IERSTV9YRU5fWkNPUFlfRFVNQl9XQUlUX0ZSRUUKPj4+Pj4+PiBUaGlzIHdpbGwgYmxvY2sgdW50 aWwgdGhlIGR1bWIgYnVmZmVyIHdpdGggdGhlIHdhaXQgaGFuZGxlIHByb3ZpZGVkIGJlCj4+Pj4+ Pj4gZnJlZWQ6Cj4+Pj4+Pj4gdGhpcyBpcyBuZWVkZWQgZm9yIHN5bmNocm9uaXphdGlvbiBiZXR3 ZWVuIGZyb250ZW5kIGFuZCBiYWNrZW5kIGluCj4+Pj4+Pj4gY2FzZQo+Pj4+Pj4+IGZyb250ZW5k IHByb3ZpZGVzIGdyYW50IHJlZmVyZW5jZXMgb2YgdGhlIGJ1ZmZlciB2aWEKPj4+Pj4+PiBEUk1f WEVOX1pDT1BZX0RVTUJfRlJPTV9SRUZTIElPQ1RMIGFuZCB3aGljaCBtdXN0IGJlIHJlbGVhc2Vk IGJlZm9yZQo+Pj4+Pj4+IGJhY2tlbmQgcmVwbGllcyB3aXRoIFhFTkRJU1BMX09QX0RCVUZfREVT VFJPWSByZXNwb25zZS4KPj4+Pj4+PiB3YWl0X2hhbmRsZSBtdXN0IGJlIHRoZSBzYW1lIHZhbHVl IHJldHVybmVkIHdoaWxlIGNhbGxpbmcKPj4+Pj4+PiBEUk1fWEVOX1pDT1BZX0RVTUJfRlJPTV9S RUZTIElPQ1RMLgo+Pj4+Pj4+Cj4+Pj4+Pj4gU28sIGFzIHlvdSBjYW4gc2VlIHRoZSBhYm92ZSBm dW5jdGlvbmFsaXR5IGlzIG5vdCBjb3ZlcmVkIGJ5IHRoZQo+Pj4+Pj4+IGV4aXN0aW5nIFVBUEkK Pj4+Pj4+PiBvZiB0aGUgZ250ZGV2IGRyaXZlci4KPj4+Pj4+PiBOb3csIGlmIHdlIGNoYW5nZSBk dW1iIC0+IGRtYS1idWYgYW5kIHJlbW92ZSBEUk0gY29kZSAod2hpY2ggaXMgb25seSBhCj4+Pj4+ Pj4gd3JhcHBlcgo+Pj4+Pj4+IGhlcmUgb24gdG9wIG9mIGRtYS1idWYpIHdlIGdldCBuZXcgZHJp dmVyIGZvciBkbWEtYnVmIGZvciBYZW4uCj4+Pj4+Pj4KPj4+Pj4+PiBUaGlzIGlzIHdoeSBJIGhh dmUgMiBvcHRpb25zIGhlcmU6IGVpdGhlciBjcmVhdGUgYSBkZWRpY2F0ZWQgZHJpdmVyCj4+Pj4+ Pj4gZm9yCj4+Pj4+Pj4gdGhpcwo+Pj4+Pj4+IChlLmcuIHJlLXdvcmsgeGVuLXpjb3B5IHRvIGJl IERSTSBpbmRlcGVuZGVudCBhbmQgcHV0IGl0IHVuZGVyCj4+Pj4+Pj4gZHJpdmVycy94ZW4veGVu LWRtYS1idWYsIGZvciBleGFtcGxlKSBvciBleHRlbmQgdGhlIGV4aXN0aW5nIGdudGRldgo+Pj4+ Pj4+IGRyaXZlcgo+Pj4+Pj4+IHdpdGggdGhlIGFib3ZlIFVBUEkgKyBtYWtlIGNoYW5nZXMgdG8g dGhlIGJhbGxvb24gZHJpdmVyIHRvIHByb3ZpZGUKPj4+Pj4+PiBrZXJuZWwKPj4+Pj4+PiBBUEkg Zm9yIERNQSBidWZmZXIgYWxsb2NhdGlvbnMuCj4+Pj4+PiBXaGljaCB1c2VyIGNvbXBvbmVudCB3 b3VsZCB1c2UgdGhlIG5ldyBpb2N0bHM/Cj4+Pj4+IEl0IGlzIGN1cnJlbnRseSB1c2VkIGJ5IHRo ZSBkaXNwbGF5IGJhY2tlbmQgWzFdIGFuZCB3aWxsCj4+Pj4+IHByb2JhYmx5IGJlIHVzZWQgYnkg dGhlIGh5cGVyLWRtYWJ1ZiBmcm9udGVuZC9iYWNrZW5kCj4+Pj4+IChEb25nd29uIGZyb20gSW50 ZWwgY2FuIHByb3ZpZGUgbW9yZSBpbmZvIG9uIHRoaXMpLgo+Pj4+Pj4gSSdtIGFza2luZyBiZWNh dXNlIEknbSBub3QgdmVyeSBmb25kIG9mIGFkZGluZyBtb3JlIGxpbnV4IHNwZWNpZmljCj4+Pj4+ PiBmdW5jdGlvbnMgdG8gbGliZ250dGFiIHdoaWNoIGFyZSBub3QgcmVsYXRlZCB0byBhIHNwZWNp ZmljIFhlbiB2ZXJzaW9uLAo+Pj4+Pj4gYnV0IHRvIGEga2VybmVsIHZlcnNpb24uCj4+Pj4+IEht LCBJIHdhcyBub3QgdGhpbmtpbmcgYWJvdXQgdGhpcyBVQVBJIHRvIGJlIGFkZGVkIHRvIGxpYmdu dHRhYi4KPj4+Pj4gSXQgc2VlbXMgaXQgY2FuIGJlIHVzZWQgZGlyZWN0bHkgdy9vIHdyYXBwZXJz IGluIHVzZXItc3BhY2UKPj4+PiBXb3VsZCB0aGlzIHByb2dyYW0gdXNlIGxpYmdudHRhYiBpbiBw YXJhbGxlbD8KPj4+IEluIGNhc2Ugb2YgdGhlIGRpc3BsYXkgYmFja2VuZCAtIHllcywgZm9yIHNo YXJlZCByaW5ncywKPj4+IGV4dHJhY3RpbmcgZ3JlZnMgZnJvbSBkaXNwbGlmIHByb3RvY29sIGl0 IHVzZXMgZ250ZGV2IHZpYQo+Pj4gaGVscGVyIGxpYnJhcnkgWzFdCj4+Pj4gIMKgIElmIHllcyBo b3cgd291bGQgdGhlIHR3bwo+Pj4+IHVzYWdlIHBhdGhzIGJlIGNvbWJpbmVkIChzYW1lIGFwcGxp ZXMgdG8gdGhlIHNlcGFyYXRlIGRyaXZlciwgYnR3KT8gVGhlCj4+Pj4gZ250ZGV2IGRyaXZlciBt YW5hZ2VzIHJlc291cmNlcyBwZXIgZmlsZSBkZXNjcmlwdG9yIGFuZCBsaWJnbnR0YWIgaXMKPj4+ PiBoaWRpbmcgdGhlIGZpbGUgZGVzY3JpcHRvciBpdCBpcyB1c2luZyBmb3IgYSBjb25uZWN0aW9u Lgo+Pj4gQWgsIGF0IHRoZSBtb21lbnQgdGhlIFVBUEkgd2FzIG5vdCB1c2VkIGluIHBhcmFsbGVs IGFzIHRoZXJlIHdlcmUKPj4+IDIgZHJpdmVycyBmb3IgdGhhdDogZ250ZGV2ICsgeGVuLXpjb3B5 IHdpdGggZGlmZmVyZW50IFVBUElzLgo+Pj4gQnV0IG5vdywgaWYgd2UgZXh0ZW5kIGdudGRldiB3 aXRoIHRoZSBuZXcgQVBJIHRoZW4geW91IGFyZSByaWd0aDoKPj4+IGVpdGhlciBsaWJnbnR0YWIg bmVlZHMgdG8gYmUgZXh0ZW5kZWQgb3IgdGhhdCBuZXcgcGFydCBvZiB0aGUKPj4+IGdudGRldiBV QVBJIG5lZWRzIHRvIGJlIG9wZW4tY29kZWQgYnkgdGhlIGJhY2tlbmQKPj4+PiAgwqAgT3Igd291 bGQgdGhlCj4+Pj4gdXNlciBwcm9ncmFtIHVzZSBvbmx5IHRoZSBuZXcgZHJpdmVyIGZvciBjb21t dW5pY2F0aW5nIHdpdGggdGhlIGdudGRldgo+Pj4+IGRyaXZlcj8gSW4gdGhpcyBjYXNlIGl0IG1p Z2h0IGJlIGFuIG9wdGlvbiB0byBleHRlbmQgdGhlIGdudGRldiBkcml2ZXIKPj4+PiB0byBwcmVz ZW50IGEgbmV3IGRldmljZSAoZS5nLiAiZ250ZG1hZGV2IikgZm9yIHRoYXQgcHVycG9zZS4KPj4+ IE5vLCBpdCBzZWVtcyB0aGF0IGxpYmdudHRhYiBhbmQgdGhpcyBuZXcgZHJpdmVyJ3MgVUFQSSB3 aWxsIGJlIHVzZWQKPj4+IGluIHBhcmFsbGVsCj4+Pj4+PiBTbyBkb2luZyB0aGlzIGluIGEgc2Vw YXJhdGUgZHJpdmVyIHNlZW1zIHRvIGJlIHRoZSBiZXR0ZXIgb3B0aW9uIGluCj4+Pj4+PiB0aGlz IHJlZ2FyZC4KPj4+Pj4gV2VsbCwgZnJvbSBtYWludGVuYW5jZSBQT1YgaXQgaXMgZWFzaWVyIGZv ciBtZSB0byBoYXZlIGl0IGFsbCBpbgo+Pj4+PiBhIHNlcGFyYXRlIGRyaXZlciBhcyBhbGwgZG1h LWJ1ZiByZWxhdGVkIGZ1bmN0aW9uYWxpdHkgd2lsbAo+Pj4+PiByZXNpZGUgYXQgb25lIHBsYWNl LiBUaGlzIGFsc28gbWVhbnMgdGhhdCBubyBjaGFuZ2VzIHRvIGV4aXN0aW5nCj4+Pj4+IGRyaXZl cnMgd2lsbCBiZSBuZWVkZWQgKGlmIGl0IGlzIG9rIHRvIGhhdmUgYmFsbG9vbmluZyBpbi9vdXQK Pj4+Pj4gY29kZSBmb3IgRE1BIGJ1ZmZlcnMgKGFsbG9jYXRlZCB3aXRoIGRtYV9hbGxvY194eHgp IG5vdCBpbiB0aGUgYmFsbG9vbgo+Pj4+PiBkcml2ZXIpCj4+Pj4gSSB0aGluayBpbiB0aGUgZW5k IHRoaXMgcmVhbGx5IGRlcGVuZHMgb24gaG93IHRoZSBjb21wbGV0ZSBzb2x1dGlvbgo+Pj4+IHdp bGwgbG9vayBsaWtlLiBnbnRkZXYgaXMgYSBzcGVjaWFsIHdyYXBwZXIgZm9yIHRoZSBnbnR0YWIg ZHJpdmVyLgo+Pj4+IEluIGNhc2UgdGhlIG5ldyBkbWEtYnVmIGRyaXZlciBuZWVkcyB0byB1c2Ug cGFydHMgb2YgZ250ZGV2IEknZCByYXRoZXIKPj4+PiBoYXZlIGEgbmV3IGRyaXZlciBhYm92ZSBn bnR0YWIgKCJnbnR1c2VyIj8pIHVzZWQgYnkgZ250ZGV2IGFuZCBkbWEtYnVmLgo+Pj4gVGhlIG5l dyBkcml2ZXIgZG9lc24ndCB1c2UgZ250ZGV2J3MgZXhpc3RpbmcgQVBJLCBidXQgZXh0ZW5kcyBp dCwKPj4+IGUuZy4gYnkgYWRkaW5nIG5ldyB3YXlzIHRvIGV4cG9ydC9pbXBvcnQgZ3JlZnMgZm9y IGEgZG1hLWJ1ZiBhbmQKPj4+IG1hbmFnZSBkbWEtYnVmJ3Mga2VybmVsIG9wcy4gVGh1cywgZ250 ZGV2LCB3aGljaCBhbHJlYWR5IHByb3ZpZGVzCj4+PiBVQVBJLCBzZWVtcyB0byBiZSBhIGdvb2Qg Y2FuZGlkYXRlIGZvciBzdWNoIGFuIGV4dGVuc2lvbgo+PiBTbyB0aGlzIHdvdWxkIG1lYW4geW91 IG5lZWQgYSBtb2RpZmljYXRpb24gb2YgbGliZ250dGFiLCByaWdodD8gVGhpcyBpcwo+PiBzb21l dGhpbmcgdGhlIFhlbiB0b29scyBtYWludGFpbmVycyBuZWVkIHRvIGRlY2lkZS4gSW4gY2FzZSB0 aGV5IGRvbid0Cj4+IG9iamVjdCBleHRlbmRpbmcgdGhlIGdudGRldiBkcml2ZXIgd291bGQgYmUg dGhlIG5hdHVyYWwgdGhpbmcgdG8gZG8uCj4+Cj4gVGhhdCBzaG91bGQgYmUgZmluZS4gTW9zdCBv ZiBsaWJnbnR0YWIgZG9lcyBpcyB0byB3cmFwIGV4aXN0aW5nIGtlcm5lbAo+IGludGVyZmFjZXMg YW5kIGV4cG9zZSB0aGVtIHNlbnNpYmx5IHRvIHVzZXIgc3BhY2UgcHJvZ3JhbXMuIElmIGdudHRh Ygo+IGRldmljZSBpcyBleHRlbmRlZCwgbGliZ250dGFiIHNob3VsZCBiZSBleHRlbmRlZCBhY2Nv cmRpbmdseS4gSWYgYSBuZXcKPiBkZXZpY2UgaXMgY3JlYXRlZCwgYSBuZXcgbGlicmFyeSBzaG91 bGQgYmUgYWRkZWQuIEVpdGhlciB3YXkgdGhlcmUgd2lsbAo+IGJlIG5ldyB0b29sc3RhY2sgY29k ZSBpbnZvbHZlZCwgd2hpY2ggaXMgbm90IGEgcHJvYmxlbSBpbiBnZW5lcmFsLgpHcmVhdCwgc28g ZmluYWxseSBJIHNlZSB0aGUgZm9sbG93aW5nIGFwcHJvYWNoIHRvIGhhdmUgZ2VuZXJpYwpkbWEt YnVmIHVzZS1jYXNlcyBzdXBwb3J0IGZvciBYZW4gKHdoaWNoIGNhbiBiZSB1c2VkIGZvciBtYW55 IHB1cnBvc2VzLAplLmcuIEdQVS9EUk0gYnVmZmVyIHNoYXJpbmcsIFY0TCwgaHlwZXItZG1hYnVm IGV0Yy4pOgoKMS4gRXh0ZW5kIExpbnV4IGdudGRldiBkcml2ZXIgdG8gc3VwcG9ydCAzIG5ldyBJ T0NUTHMgZGlzY3Vzc2VkIHByZXZpb3VzbHkKMi4gRXh0ZW5kIGxpYmdudHRhYiB0byBwcm92aWRl IFVBUEkgZm9yIHRob3NlIC0gTGludXggb25seSBhcyBkbWEtYnVmCmlzIGEgTGludXggdGhpbmcK My4gRXh0ZW5kIGtlcm5lbCBBUEkgb2YgdGhlIExpbnV4IGJhbGxvb24gZHJpdmVyIHRvIGFsbG93 IGRtYV9hbGxvY194eHggd2F5Cm9mIG1lbW9yeSBhbGxvY2F0aW9ucwoKSWYgdGhlIGFib3ZlIGxv b2tzIG9rLCB0aGVuIEkgY2FuIHN0YXJ0IHByb3RvdHlwaW5nLCBzbyB3ZSBjYW4gZGlzY3Vzcwpp bXBsZW1lbnRhdGlvbiBkZXRhaWxzCgpEb25nd29uZyAtIGNvdWxkIHlvdSBwbGVhc2UgY29tbWVu dCBvbiBhbGwgdGhpcyBpZiBpdCBmaXRzIHlvdXIgdXNlLWNhc2VzCihJIGRvIGJlbGlldmUgaXQg ZG9lcyk/Cj4gV2VpLgo+Cj4+IEp1ZXJnZW4KVGhhbmsgeW91LApPbGVrc2FuZHIKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5n IGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJv amVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=