From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 0/1] drm/xen-zcopy: Add Xen zero-copy helper DRM driver Date: Fri, 20 Apr 2018 09:19:14 +0200 Message-ID: <20180420071914.GG31310__1767.86909946731$1524208704$gmane$org@phenom.ffwll.local> References: <20180329131931.29957-1-andr2000@gmail.com> <5d8fec7f-956c-378f-be90-f45029385740@gmail.com> <20180416192905.GA18096@downor-Z87X-UD5H> <20180417075928.GT31310@phenom.ffwll.local> <20180417205744.GA15930@downor-Z87X-UD5H> <41487acb-a67a-8933-d0c3-702c19b0938e@gmail.com> <20180418073508.ptvntwedczpvl7bx@MacBook-Pro-de-Roger.local> <20180418101058.hyqk3gr3b2ibxswu@MacBook-Pro-de-Roger.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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 1f9QKH-00059h-3k for xen-devel@lists.xenproject.org; Fri, 20 Apr 2018 07:19:21 +0000 Received: by mail-wr0-x232.google.com with SMTP id h3-v6so20169097wrh.5 for ; Fri, 20 Apr 2018 00:19:19 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20180418101058.hyqk3gr3b2ibxswu@MacBook-Pro-de-Roger.local> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Roger Pau =?iso-8859-1?Q?Monn=E9?= Cc: jgross@suse.com, Artem Mygaiev , Dongwon Kim , Oleksandr Andrushchenko , "Oleksandr_Andrushchenko@epam.com" , 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@oracle.com List-Id: xen-devel@lists.xenproject.org T24gV2VkLCBBcHIgMTgsIDIwMTggYXQgMTE6MTA6NThBTSArMDEwMCwgUm9nZXIgUGF1IE1vbm7D qSB3cm90ZToKPiBPbiBXZWQsIEFwciAxOCwgMjAxOCBhdCAxMTowMToxMkFNICswMzAwLCBPbGVr c2FuZHIgQW5kcnVzaGNoZW5rbyB3cm90ZToKPiA+IE9uIDA0LzE4LzIwMTggMTA6MzUgQU0sIFJv Z2VyIFBhdSBNb25uw6kgd3JvdGU6Cj4gPiA+IE9uIFdlZCwgQXByIDE4LCAyMDE4IGF0IDA5OjM4 OjM5QU0gKzAzMDAsIE9sZWtzYW5kciBBbmRydXNoY2hlbmtvIHdyb3RlOgo+ID4gPiA+IE9uIDA0 LzE3LzIwMTggMTE6NTcgUE0sIERvbmd3b24gS2ltIHdyb3RlOgo+ID4gPiA+ID4gT24gVHVlLCBB cHIgMTcsIDIwMTggYXQgMDk6NTk6MjhBTSArMDIwMCwgRGFuaWVsIFZldHRlciB3cm90ZToKPiA+ ID4gPiA+ID4gT24gTW9uLCBBcHIgMTYsIDIwMTggYXQgMTI6Mjk6MDVQTSAtMDcwMCwgRG9uZ3dv biBLaW0gd3JvdGU6Cj4gPiA+ID4gMy4yIEJhY2tlbmQgZXhwb3J0cyBkbWEtYnVmIHRvIHhlbi1m cm9udAo+ID4gPiA+IAo+ID4gPiA+IEluIHRoaXMgY2FzZSBEb20wIHBhZ2VzIGFyZSBzaGFyZWQg d2l0aCBEb21VLiBBcyBiZWZvcmUsIERvbVUgY2FuIG9ubHkgd3JpdGUKPiA+ID4gPiB0byB0aGVz ZSBwYWdlcywgbm90IGFueSBvdGhlciBwYWdlIGZyb20gRG9tMCwgc28gaXQgY2FuIGJlIHN0aWxs IGNvbnNpZGVyZWQKPiA+ID4gPiBzYWZlLgo+ID4gPiA+IEJ1dCwgdGhlIGZvbGxvd2luZyBtdXN0 IGJlIGNvbnNpZGVyZWQgKGhpZ2hsaWdodGVkIGluIHhlbi1mcm9udCdzIEtlcm5lbAo+ID4gPiA+ IGRvY3VtZW50YXRpb24pOgo+ID4gPiA+ICDCoC0gSWYgZ3Vlc3QgZG9tYWluIGRpZXMgdGhlbiBw YWdlcy9ncmFudHMgcmVjZWl2ZWQgZnJvbSB0aGUgYmFja2VuZCBjYW5ub3QKPiA+ID4gPiAgwqDC oCBiZSBjbGFpbWVkIGJhY2sgLSB0aGluayBvZiBpdCBhcyBtZW1vcnkgbG9zdCB0byBEb20wICh3 b24ndCBiZSB1c2VkIGZvcgo+ID4gPiA+IGFueQo+ID4gPiA+ICDCoMKgIG90aGVyIGd1ZXN0KQo+ ID4gPiA+ICDCoC0gTWlzYmVoYXZpbmcgZ3Vlc3QgbWF5IHNlbmQgdG9vIG1hbnkgcmVxdWVzdHMg dG8gdGhlIGJhY2tlbmQgZXhoYXVzdGluZwo+ID4gPiA+ICDCoMKgIGl0cyBncmFudCByZWZlcmVu Y2VzIGFuZCBtZW1vcnkgKGNvbnNpZGVyIHRoaXMgZnJvbSBzZWN1cml0eSBQT1YpLiBBcyB0aGUK PiA+ID4gPiAgwqDCoCBiYWNrZW5kIHJ1bnMgaW4gdGhlIHRydXN0ZWQgZG9tYWluIHdlIGFsc28g YXNzdW1lIHRoYXQgaXQgaXMgdHJ1c3RlZCBhcwo+ID4gPiA+IHdlbGwsCj4gPiA+ID4gIMKgwqAg ZS5nLiBtdXN0IHRha2UgbWVhc3VyZXMgdG8gcHJldmVudCBERG9TIGF0dGFja3MuCj4gPiA+IEkg Y2Fubm90IHBhcnNlIHRoZSBhYm92ZSBzZW50ZW5jZToKPiA+ID4gCj4gPiA+ICJBcyB0aGUgYmFj a2VuZCBydW5zIGluIHRoZSB0cnVzdGVkIGRvbWFpbiB3ZSBhbHNvIGFzc3VtZSB0aGF0IGl0IGlz Cj4gPiA+IHRydXN0ZWQgYXMgd2VsbCwgZS5nLiBtdXN0IHRha2UgbWVhc3VyZXMgdG8gcHJldmVu dCBERG9TIGF0dGFja3MuIgo+ID4gPiAKPiA+ID4gV2hhdCdzIHRoZSByZWxhdGlvbiBiZXR3ZWVu IGJlaW5nIHRydXN0ZWQgYW5kIHByb3RlY3RpbmcgZnJvbSBEb1MKPiA+ID4gYXR0YWNrcz8KPiA+ IEkgbWVhbiB0aGF0IHdlIHRydXN0IHRoZSBiYWNrZW5kIHRoYXQgaXQgY2FuIHByZXZlbnQgRG9t MAo+ID4gZnJvbSBjcmFzaGluZyBpbiBjYXNlIERvbVUncyBmcm9udGVuZCBtaXNiZWhhdmVzLCBl LmcuCj4gPiBpZiB0aGUgZnJvbnRlbmQgc2VuZHMgdG9vIG1hbnkgbWVtb3J5IHJlcXVlc3RzIGV0 Yy4KPiA+ID4gSW4gYW55IGNhc2UsIGFsbD8gUFYgcHJvdG9jb2xzIGFyZSBpbXBsZW1lbnRlZCB3 aXRoIHRoZSBmcm9udGVuZAo+ID4gPiBzaGFyaW5nIHBhZ2VzIHRvIHRoZSBiYWNrZW5kLCBhbmQg SSB0aGluayB0aGVyZSdzIGEgcmVhc29uIHdoeSB0aGlzCj4gPiA+IG1vZGVsIGlzIHVzZWQsIGFu ZCBpdCBzaG91bGQgY29udGludWUgdG8gYmUgdXNlZC4KPiA+IFRoaXMgaXMgdGhlIGZpcnN0IHVz ZS1jYXNlIGFib3ZlLiBCdXQgdGhlcmUgYXJlIHJlYWwtd29ybGQKPiA+IHVzZS1jYXNlcyAoZW1i ZWRkZWQgaW4gbXkgY2FzZSkgd2hlbiBwaHlzaWNhbGx5IGNvbnRpZ3VvdXMgbWVtb3J5Cj4gPiBu ZWVkcyB0byBiZSBzaGFyZWQsIG9uZSBvZiB0aGUgcG9zc2libGUgd2F5cyB0byBhY2hpZXZlIHRo aXMgaXMKPiA+IHRvIHNoYXJlIGNvbnRpZ3VvdXMgbWVtb3J5IGZyb20gRG9tMCB0byBEb21VICh0 aGUgc2Vjb25kIHVzZS1jYXNlIGFib3ZlKQo+ID4gPiBIYXZpbmcgdG8gYWRkIGxvZ2ljIGluIHRo ZSBiYWNrZW5kIHRvIHByZXZlbnQgc3VjaCBhdHRhY2tzIG1lYW5zCj4gPiA+IHRoYXQ6Cj4gPiA+ IAo+ID4gPiAgIC0gV2UgbmVlZCBtb3JlIGNvZGUgaW4gdGhlIGJhY2tlbmQsIHdoaWNoIGluY3Jl YXNlcyBjb21wbGV4aXR5IGFuZAo+ID4gPiAgICAgY2hhbmNlcyBvZiBidWdzLgo+ID4gPiAgIC0g U3VjaCBjb2RlL2xvZ2ljIGNvdWxkIGJlIHdyb25nLCB0aHVzIGFsbG93aW5nIERvUy4KPiA+IFlv dSBjYW4gbGl2ZSB3aXRob3V0IHRoaXMgY29kZSBhdCBhbGwsIGJ1dCB0aGlzIGlzIHRoZW4gdXAg dG8KPiA+IGJhY2tlbmQgd2hpY2ggbWF5IG1ha2UgRG9tMCBkb3duIGJlY2F1c2Ugb2YgRG9tVSdz IGZyb250ZW5kIGRvaW5nIGV2aWwKPiA+IHRoaW5ncwo+IAo+IElNTyB3ZSBzaG91bGQgZGVzaWdu IHByb3RvY29scyB0aGF0IGRvIG5vdCBhbGxvdyBzdWNoIGF0dGFja3MgaW5zdGVhZAo+IG9mIGhh dmluZyB0byBkZWZlbmQgYWdhaW5zdCB0aGVtLgo+IAo+ID4gPiA+IDQuIHhlbi1mcm9udC9iYWNr ZW5kL3hlbi16Y29weSBzeW5jaHJvbml6YXRpb24KPiA+ID4gPiAKPiA+ID4gPiA0LjEuIEFzIEkg YWxyZWFkeSBzYWlkIGluIDIpIGFsbCB0aGUgaW50ZXIgVk0gY29tbXVuaWNhdGlvbiBoYXBwZW5z IGJldHdlZW4KPiA+ID4gPiB4ZW4tZnJvbnQgYW5kIHRoZSBiYWNrZW5kLCB4ZW4temNvcHkgaXMg Tk9UIGludm9sdmVkIGluIHRoYXQuCj4gPiA+ID4gV2hlbiB4ZW4tZnJvbnQgd2FudHMgdG8gZGVz dHJveSBhIGRpc3BsYXkgYnVmZmVyIChkdW1iL2RtYS1idWYpIGl0IGlzc3VlcyBhCj4gPiA+ID4g WEVORElTUExfT1BfREJVRl9ERVNUUk9ZIGNvbW1hbmQgKG9wcG9zaXRlIHRvIFhFTkRJU1BMX09Q X0RCVUZfQ1JFQVRFKS4KPiA+ID4gPiBUaGlzIGNhbGwgaXMgc3luY2hyb25vdXMsIHNvIHhlbi1m cm9udCBleHBlY3RzIHRoYXQgYmFja2VuZCBkb2VzIGZyZWUgdGhlCj4gPiA+ID4gYnVmZmVyIHBh Z2VzIG9uIHJldHVybi4KPiA+ID4gPiAKPiA+ID4gPiA0LjIuIEJhY2tlbmQsIG9uIFhFTkRJU1BM X09QX0RCVUZfREVTVFJPWToKPiA+ID4gPiAgwqAgLSBjbG9zZXMgYWxsIGR1bWIgaGFuZGxlcy9m ZCdzIG9mIHRoZSBidWZmZXIgYWNjb3JkaW5nIHRvIFszXQo+ID4gPiA+ICDCoCAtIGlzc3VlcyBE Uk1fSU9DVExfWEVOX1pDT1BZX0RVTUJfV0FJVF9GUkVFIElPQ1RMIHRvIHhlbi16Y29weSB0byBt YWtlCj4gPiA+ID4gc3VyZQo+ID4gPiA+ICDCoMKgwqAgdGhlIGJ1ZmZlciBpcyBmcmVlZCAodGhp bmsgb2YgaXQgYXMgaXQgd2FpdHMgZm9yIGRtYS1idWYtPnJlbGVhc2UKPiA+ID4gPiBjYWxsYmFj aykKPiA+ID4gU28gdGhpcyB6Y29weSB0aGluZyBrZWVwcyBzb21lIGtpbmQgb2YgdHJhY2sgb2Yg dGhlIG1lbW9yeSB1c2FnZT8gV2h5Cj4gPiA+IGNhbid0IHRoZSB1c2VyLXNwYWNlIGJhY2tlbmQg a2VlcCB0cmFjayBvZiB0aGUgYnVmZmVyIHVzYWdlPwo+ID4gQmVjYXVzZSB0aGVyZSBpcyBubyBk bWEtYnVmIFVBUEkgd2hpY2ggYWxsb3dzIHRvIHRyYWNrIHRoZSBidWZmZXIgbGlmZSBjeWNsZQo+ ID4gKGUuZy4gd2FpdCB1bnRpbCBkbWEtYnVmJ3MgLnJlbGVhc2UgY2FsbGJhY2sgaXMgY2FsbGVk KQo+ID4gPiA+ICDCoCAtIHJlcGxpZXMgdG8geGVuLWZyb250IHRoYXQgdGhlIGJ1ZmZlciBjYW4g YmUgZGVzdHJveWVkLgo+ID4gPiA+IFRoaXMgd2F5IGRlbGV0aW9uIG9mIHRoZSBidWZmZXIgaGFw cGVucyBzeW5jaHJvbm91c2x5IG9uIGJvdGggRG9tMCBhbmQgRG9tVQo+ID4gPiA+IHNpZGVzLiBJ biBjYXNlIGlmIERSTV9JT0NUTF9YRU5fWkNPUFlfRFVNQl9XQUlUX0ZSRUUgcmV0dXJucyB3aXRo IHRpbWUtb3V0Cj4gPiA+ID4gZXJyb3IKPiA+ID4gPiAoQlRXLCB3YWl0IHRpbWUgaXMgYSBwYXJh bWV0ZXIgb2YgdGhpcyBJT0NUTCksIFhlbiB3aWxsIGRlZmVyIGdyYW50Cj4gPiA+ID4gcmVmZXJl bmNlCj4gPiA+ID4gcmVtb3ZhbCBhbmQgd2lsbCByZXRyeSBsYXRlciB1bnRpbCB0aG9zZSBhcmUg ZnJlZS4KPiA+ID4gPiAKPiA+ID4gPiBIb3BlIHRoaXMgaGVscHMgdW5kZXJzdGFuZCBob3cgYnVm ZmVycyBhcmUgc3luY2hyb25vdXNseSBkZWxldGVkIGluIGNhc2UKPiA+ID4gPiBvZiB4ZW4temNv cHkgd2l0aCBhIHNpbmdsZSBwcm90b2NvbCBjb21tYW5kLgo+ID4gPiA+IAo+ID4gPiA+IEkgdGhp bmsgdGhlIGFib3ZlIGxvZ2ljIGNhbiBhbHNvIGJlIHJlLXVzZWQgYnkgdGhlIGh5cGVyLWRtYWJ1 ZiBkcml2ZXIgd2l0aAo+ID4gPiA+IHNvbWUgYWRkaXRpb25hbCB3b3JrOgo+ID4gPiA+IAo+ID4g PiA+IDEuIHhlbi16Y29weSBjYW4gYmUgc3BsaXQgaW50byAyIHBhcnRzIGFuZCBleHRlbmQ6Cj4g PiA+ID4gMS4xLiBYZW4gZ250ZGV2IGRyaXZlciBbNF0sIFs1XSB0byBhbGxvdyBjcmVhdGluZyBk bWEtYnVmIGZyb20gZ3JlZnMgYW5kCj4gPiA+ID4gdmlzZSB2ZXJzYSwKPiA+ID4gSSBkb24ndCBr bm93IG11Y2ggYWJvdXQgdGhlIGRtYS1idWYgaW1wbGVtZW50YXRpb24gaW4gTGludXgsIGJ1dAo+ ID4gPiBnbnRkZXYgaXMgYSB1c2VyLXNwYWNlIGRldmljZSwgYW5kIEFGQUlDVCB1c2VyLXNwYWNl IGFwcGxpY2F0aW9ucwo+ID4gPiBkb24ndCBoYXZlIGFueSBub3Rpb24gb2YgZG1hIGJ1ZmZlcnMu IEhvdyBhcmUgc3VjaCBidWZmZXJzIHVzZWZ1bCBmb3IKPiA+ID4gdXNlci1zcGFjZT8gV2h5IGNh bid0IHRoaXMganVzdCBiZSBjYWxsZWQgbWVtb3J5Pwo+ID4gQSBkbWEtYnVmIGlzIHNlZW4gYnkg dXNlci1zcGFjZSBhcyBhIGZpbGUgZGVzY3JpcHRvciBhbmQgeW91IGNhbgo+ID4gcGFzcyBpdCB0 byBkaWZmZXJlbnQgZHJpdmVycyB0aGVuLiBGb3IgZXhhbXBsZSwgeW91IGNhbiBzaGFyZSBhIGJ1 ZmZlcgo+ID4gdXNlZCBieSBhIGRpc3BsYXkgZHJpdmVyIGZvciBzY2Fub3V0IHdpdGggYSBHUFUs IHRvIGNvbXBvc2UgYSBwaWN0dXJlCj4gPiBpbnRvIGl0Ogo+ID4gMS4gVXNlci1zcGFjZSAoVVMp IGFsbG9jYXRlcyBhIGRpc3BsYXkgYnVmZmVyIGZyb20gZGlzcGxheSBkcml2ZXIKPiA+IDIuIFVT IGFza3MgZGlzcGxheSBkcml2ZXIgdG8gZXhwb3J0IHRoZSBkbWEtYnVmIHdoaWNoIGJhY2tzIHVw IHRoYXQgYnVmZmVyLAo+ID4gVVMgZ2V0cyBidWZmZXIncyBmZDogZG1hX2J1Zl9mZAo+ID4gMy4g VVMgYXNrcyBHUFUgZHJpdmVyIHRvIGltcG9ydCBhIGJ1ZmZlciBhbmQgcHJvdmlkZXMgaXQgd2l0 aCBkbWFfYnVmX2ZkCj4gPiA0LiBHUFUgcmVuZGVycyBjb250ZW50cyBpbnRvIGRpc3BsYXkgYnVm ZmVyIChkbWFfYnVmX2ZkKQo+IAo+IEFmdGVyIHNwZWFraW5nIHdpdGggT2xla3NhbmRyIG9uIElS QywgSSB0aGluayB0aGUgbWFpbiB1c2FnZSBvZiB0aGUKPiBnbnRkZXYgZXh0ZW5zaW9uIGlzIHRv Ogo+IAo+IDEuIENyZWF0ZSBhIGRtYS1idWYgZnJvbSBhIHNldCBvZiBncmFudCByZWZlcmVuY2Vz Lgo+IDIuIFNoYXJlIGRtYS1idWYgYW5kIGdldCBhIGxpc3Qgb2YgZ3JhbnQgcmVmZXJlbmNlcy4K PiAKPiBJIHRoaW5rIHRoaXMgc2V0IG9mIG9wZXJhdGlvbnMgY291bGQgYmUgYnJva2VuIGludG86 Cj4gCj4gMS4xIE1hcCBncmFudCByZWZlcmVuY2VzIGludG8gdXNlci1zcGFjZSB1c2luZyB0aGUg Z250ZGV2Lgo+IDEuMiBDcmVhdGUgYSBkbWEtYnVmIG91dCBvZiBhIHNldCBvZiB1c2VyLXNwYWNl IHZpcnR1YWwgYWRkcmVzc2VzLgo+IAo+IDIuMSBNYXAgYSBkbWEtYnVmIGludG8gdXNlci1zcGFj ZS4KPiAyLjIgR2V0IGdyZWZzIG91dCBvZiB0aGUgdXNlci1zcGFjZSBhZGRyZXNzZXMgd2hlcmUg dGhlIGRtYS1idWYgaXMKPiAgICAgbWFwcGVkLgo+IAo+IFNvIGl0IHNlZW1zIGxpa2Ugd2hhdCdz IGFjdHVhbGx5IG1pc3NpbmcgaXMgYSB3YXkgdG86Cj4gCj4gIC0gQ3JlYXRlIGEgZG1hLWJ1ZiBm cm9tIGEgbGlzdCBvZiB1c2VyLXNwYWNlIHZpcnR1YWwgYWRkcmVzc2VzLgo+ICAtIEFsbG93IHRv IG1hcCBhIGRtYS1idWYgaW50byB1c2VyLXNwYWNlLCBzbyBpdCBjYW4gdGhlbiBiZSB1c2VkIHdp dGgKPiAgICB0aGUgZ250ZGV2Lgo+IAo+IEkgdGhpbmsgdGhpcyBpcyBnZW5lcmljIGVub3VnaCB0 aGF0IGl0IGNvdWxkIGJlIGltcGxlbWVudGVkIGJ5IGEKPiBkZXZpY2Ugbm90IHRpZWQgdG8gWGVu LiBBRkFJQ1QgdGhlIGh5cGVyX2RtYSBndXlzIGFsc28gd2FudGVkCj4gc29tZXRoaW5nIHNpbWls YXIgdG8gdGhpcy4KCllvdSBjYW4ndCBqdXN0IHdyYXAgcmFuZG9tIHVzZXJzcGFjZSBtZW1vcnkg aW50byBhIGRtYS1idWYuIFdlJ3ZlIGp1c3QgaGFkCnRoaXMgZGlzY3Vzc2lvbiB3aXRoIGt2bS9x ZW11IGZvbGtzLCB3aG8gcHJvcG9zZWQganVzdCB0aGF0LCBhbmQgYWZ0ZXIgYQpiaXQgb2YgZGlz Y3Vzc2lvbiB0aGV5J2xsIG5vdyB0cnkgdG8gaGF2ZSBhIGRyaXZlciB3aGljaCBqdXN0IHdyYXBz IGEKbWVtZmQgaW50byBhIGRtYS1idWYuCgpZZXMgaTkxNSBhbmQgYW1kZ3B1IGFuZCBhIGZldyBv dGhlciBkcml2ZXJzIGRvIGhhdmUgZmFjaWxpdGllcyB0byB3cmFwCnVzZXJzcGFjZSBtZW1vcnkg aW50byBhIGdwdSBidWZmZXIgb2JqZWN0LiBCdXQgd2UgZG9uJ3QgYWxsb3cgdGhvc2UgdG8gYmUK ZXhwb3J0ZWQgdG8gb3RoZXIgZHJpdmVycywgYmVjYXVzZSB0aGUgY29yZSBtbSBtYWdpYyBuZWVk ZWQgdG8gbWFrZSB0aGlzCmFsbCB3b3JrIGlzIHdheSB0b28gdHJpY2t5LCBldmVuIHdpdGhpbiB0 aGUgY29udGV4dCBvZiBqdXN0IDEgZHJpdmVyLiBBbmQKZG1hLWJ1ZiBkb2VzIG5vdCBoYXZlIHRo ZSByZXF1aXJlZCBjYWxsYmFja3MgYW5kIHNlbWFudGljcyB0byBtYWtlIGl0CndvcmsuCi1EYW5p ZWwKCj4gCj4gPiBGaW5hbGx5LCB0aGlzIGlzIGluZGVlZCBzb21lIG1lbW9yeSwgYnV0IGEgYml0 IG1vcmUgWzFdCj4gPiA+IAo+ID4gPiBBbHNvLCAod2l0aCBteSBGcmVlQlNEIG1haW50YWluZXIg aGF0KSBob3cgaXMgdGhpcyBnb2luZyB0byB0cmFuc2xhdGUKPiA+ID4gdG8gb3RoZXIgT1Nlcz8g U28gZmFyIHRoZSBvcGVyYXRpb25zIHBlcmZvcm1lZCBieSB0aGUgZ250ZGV2IGRldmljZQo+ID4g PiBhcmUgbW9zdGx5IE9TLWFnbm9zdGljIGJlY2F1c2UgdGhpcyBqdXN0IG1hcC91bm1hcCBtZW1v cnksIGFuZCBpbiBmYWN0Cj4gPiA+IHRoZXkgYXJlIGltcGxlbWVudGVkIGJ5IExpbnV4IGFuZCBG cmVlQlNELgo+ID4gQXQgdGhlIG1vbWVudCBJIGNhbiBvbmx5IHNlZSBMaW51eCBpbXBsZW1lbnRh dGlvbiBhbmQgaXQgc2VlbXMKPiA+IHRvIGJlIHBlcmZlY3RseSBvayBhcyB3ZSBkbyBub3QgY2hh bmdlIFhlbidzIEFQSXMgZXRjLiBhbmQgb25seQo+ID4gdXNlIHRoZSBleGlzdGluZyBvbmVzIChy ZW1lbWJlciwgd2Ugb25seSBleHRlbmQgZ250ZGV2L2JhbGxvb24KPiA+IGRyaXZlcnMsIGFsbCB0 aGUgY2hhbmdlcyBpbiB0aGUgTGludXgga2VybmVsKQo+ID4gQXMgdGhlIHNlY29uZCBub3RlIEkg Y2FuIGFsc28gdGhpbmsgdGhhdCB3ZSBkbyBub3QgZXh0ZW5kIGdudGRldi9iYWxsb29uCj4gPiBk cml2ZXJzIGFuZCBoYXZlIHJlLXdvcmtlZCB4ZW4temNvcHkgZHJpdmVyIGJlIGEgc2VwYXJhdGUg ZW50aXR5LAo+ID4gc2F5IGRyaXZlcnMveGVuL2RtYS1idWYKPiA+ID4gPiBpbXBsZW1lbnQgIndh aXQiIGlvY3RsICh3YWl0IGZvciBkbWEtYnVmLT5yZWxlYXNlKTogY3VycmVudGx5IHRoZXNlIGFy ZQo+ID4gPiA+IERSTV9YRU5fWkNPUFlfRFVNQl9GUk9NX1JFRlMsIERSTV9YRU5fWkNPUFlfRFVN Ql9UT19SRUZTIGFuZAo+ID4gPiA+IERSTV9YRU5fWkNPUFlfRFVNQl9XQUlUX0ZSRUUKPiA+ID4g PiAxLjIuIFhlbiBiYWxsb29uIGRyaXZlciBbNl0gdG8gYWxsb3cgYWxsb2NhdGluZyBjb250aWd1 b3VzIGJ1ZmZlcnMgKG5vdAo+ID4gPiA+IG5lZWRlZAo+ID4gPiA+IGJ5IGN1cnJlbnQgaHlwZXIt ZG1hYnVmLCBidXQgaXMgYSBtdXN0IGZvciB4ZW4temNvcHkgdXNlLWNhc2VzKQo+ID4gPiBJIHRo aW5rIHRoaXMgbmVlZHMgY2xhcmlmeWluZy4gSW4gd2hpY2ggbWVtb3J5IHNwYWNlIGRvIHlvdSBu ZWVkIHRob3NlCj4gPiA+IHJlZ2lvbnMgdG8gYmUgY29udGlndW91cz8KPiA+IFVzZS1jYXNlOiBE b20wIGhhcyBhIEhXIGRyaXZlciB3aGljaCBvbmx5IHdvcmtzIHdpdGggY29udGlnIG1lbW9yeQo+ ID4gYW5kIEkgd2FudCBEb21VIHRvIGJlIGFibGUgdG8gZGlyZWN0bHkgd3JpdGUgaW50byB0aGF0 IG1lbW9yeSwgdGh1cwo+ID4gaW1wbGVtZW50aW5nIHplcm8gY29weWluZwo+ID4gPiAKPiA+ID4g RG8gdGhleSBuZWVkIHRvIGJlIGNvbnRpZ3VvdXMgaW4gaG9zdCBwaHlzaWNhbCBtZW1vcnksIG9y IGd1ZXN0Cj4gPiA+IHBoeXNpY2FsIG1lbW9yeT8KPiA+IEhvc3QKPiA+ID4gCj4gPiA+IElmIGl0 J3MgaW4gZ3Vlc3QgbWVtb3J5IHNwYWNlLCBpc24ndCB0aGVyZSBhbnkgZ2VuZXJpYyBpbnRlcmZh Y2UgdGhhdAo+ID4gPiB5b3UgY2FuIHVzZT8KPiA+ID4gCj4gPiA+IElmIGl0J3MgaW4gaG9zdCBw aHlzaWNhbCBtZW1vcnkgc3BhY2UsIHdoeSBkbyB5b3UgbmVlZCB0aGlzIGJ1ZmZlciB0bwo+ID4g PiBiZSBjb250aWd1b3VzIGluIGhvc3QgcGh5c2ljYWwgbWVtb3J5IHNwYWNlPyBUaGUgSU9NTVUg c2hvdWxkIGhpZGUgYWxsCj4gPiA+IHRoaXMuCj4gPiBUaGVyZSBhcmUgZHJpdmVycy9IVyB3aGlj aCBjYW4gb25seSB3b3JrIHdpdGggY29udGlnIG1lbW9yeSBhbmQKPiA+IGlmIGl0IGlzIGJhY2tl ZCBieSBhbiBJT01NVSB0aGVuIHN0aWxsIGl0IGhhcyB0byBiZSBjb250aWcgaW4gSVBBCj4gPiBz cGFjZSAocmVhbCBkZXZpY2UgZG9lc24ndCBrbm93IHRoYXQgaXQgaXMgYWN0dWFsbHkgSVBBIGNv bnRpZywgbm90IFBBKQo+IAo+IFdoYXQncyBJUEEgY29udGlnPwo+IAo+IFRoYW5rcywgUm9nZXIu Cj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBkcmkt ZGV2ZWwgbWFpbGluZyBsaXN0Cj4gZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCgot LSAKRGFuaWVsIFZldHRlcgpTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KaHR0 cDovL2Jsb2cuZmZ3bGwuY2gKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2pl Y3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4t ZGV2ZWw=