From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleksandr Andrushchenko Subject: Re: [RfC PATCH] Add udmabuf misc device Date: Tue, 10 Apr 2018 09:37:53 +0300 Message-ID: References: <20180313154826.20436-1-kraxel@redhat.com> <20180313161035.GL4788@phenom.ffwll.local> <20180314080301.366zycak3whqvvqx@sirius.home.kraxel.org> <20180406001117.GD31612@mdroper-desk.amr.corp.intel.com> <2411d2c1-33c0-2ba5-67ea-3bb9af5d5ec9@epam.com> <20180406090747.gwiegu22z4noj23i@sirius.home.kraxel.org> <9a085854-3758-1500-9971-806c611cb54f@gmail.com> <20180406115730.jtwcbz5okrphlxli@sirius.home.kraxel.org> <7ef89a29-6584-d23c-efd1-f30d9b767a24@gmail.com> <20180406185746.GA4983@downor-Z87X-UD5H> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mail-lf0-x233.google.com (mail-lf0-x233.google.com [IPv6:2a00:1450:4010:c07::233]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2696B6E31C for ; Tue, 10 Apr 2018 06:37:57 +0000 (UTC) Received: by mail-lf0-x233.google.com with SMTP id m200-v6so10012212lfm.4 for ; Mon, 09 Apr 2018 23:37:56 -0700 (PDT) In-Reply-To: <20180406185746.GA4983@downor-Z87X-UD5H> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Dongwon Kim Cc: Tomeu Vizoso , Oleksandr Andrushchenko , David Airlie , open list , dri-devel , qemu-devel@nongnu.org, "moderated list:DMA BUFFER SHARING FRAMEWORK" , Gerd Hoffmann , "open list:DMA BUFFER SHARING FRAMEWORK" List-Id: dri-devel@lists.freedesktop.org T24gMDQvMDYvMjAxOCAwOTo1NyBQTSwgRG9uZ3dvbiBLaW0gd3JvdGU6Cj4gT24gRnJpLCBBcHIg MDYsIDIwMTggYXQgMDM6MzY6MDNQTSArMDMwMCwgT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gd3Jv dGU6Cj4+IE9uIDA0LzA2LzIwMTggMDI6NTcgUE0sIEdlcmQgSG9mZm1hbm4gd3JvdGU6Cj4+PiAg ICBIaSwKPj4+Cj4+Pj4+IEkgZmFpbCB0byBzZWUgYW55IGNvbW1vbiBncm91bmQgZm9yIHhlbi16 Y29weSBhbmQgdWRtYWJ1ZiAuLi4KPj4+PiBEb2VzIHRoZSBhYm92ZSBtZWFuIHlvdSBjYW4gYXNz dW1lIHRoYXQgeGVuLXpjb3B5IGFuZCB1ZG1hYnVmCj4+Pj4gY2FuIGNvLWV4aXN0IGFzIHR3byBk aWZmZXJlbnQgc29sdXRpb25zPwo+Pj4gV2VsbCwgdWRtYWJ1ZiByb3V0ZSBpc24ndCBmdWxseSBj bGVhciB5ZXQsIGJ1dCB5ZXMuCj4+Pgo+Pj4gU2VlIGFsc28gZ3Z0IChpbnRlbCB2Z3B1KSwgd2hl cmUgdGhlIGh5cGVydmlzb3IgaW50ZXJmYWNlIGlzIGFic3RyYWN0ZWQKPj4+IGF3YXkgaW50byBh IHNlcGFyYXRlIGtlcm5lbCBtb2R1bGVzIGV2ZW4gdGhvdWdoIG1vc3Qgb2YgdGhlIGFjdHVhbCB2 Z3B1Cj4+PiBlbXVsYXRpb24gY29kZSBpcyBjb21tb24uCj4+IFRoYW5rIHlvdSBmb3IgeW91ciBp bnB1dCwgSSdtIGp1c3QgdHJ5aW5nIHRvIGZpZ3VyZSBvdXQKPj4gd2hpY2ggb2YgdGhlIHRocmVl IHotY29weSBzb2x1dGlvbnMgaW50ZXJzZWN0IGFuZCBob3cgbXVjaAo+Pj4+IEFuZCB3aGF0IGFi b3V0IGh5cGVyLWRtYWJ1Zj8KPiB4ZW4gei1jb3B5IHNvbHV0aW9uIGlzIHByZXR0eSBzaW1pbGFy IGZ1bmRhbWVudGFsbHkgdG8gaHlwZXJfZG1hYnVmCj4gaW4gdGVybXMgb2YgdGhlc2UgY29yZSBz aGFyaW5nIGZlYXR1cmU6Cj4KPiAxLiB0aGUgc2hhcmluZyBwcm9jZXNzIC0gaW1wb3J0IHByaW1l L2RtYWJ1ZiBmcm9tIHRoZSBwcm9kdWNlciAtPiBleHRyYWN0Cj4gdW5kZXJseWluZyBwYWdlcyBh bmQgZ2V0IHRob3NlIHNoYXJlZCAtPiByZXR1cm4gcmVmZXJlbmNlcyBmb3Igc2hhcmVkIHBhZ2Vz Cj4KPiAyLiB0aGUgcGFnZSBzaGFyaW5nIG1lY2hhbmlzbSAtIGl0IHVzZXMgWGVuLWdyYW50LXRh YmxlLgo+Cj4gQW5kIHRvIGdpdmUgeW91IGEgcXVpY2sgc3VtbWFyeSBvZiBkaWZmZXJlbmNlcyBh cyBmYXIgYXMgSSB1bmRlcnN0YW5kCj4gYmV0d2VlbiB0d28gaW1wbGVtZW50YXRpb25zIChwbGVh c2UgY29ycmVjdCBtZSBpZiBJIGFtIHdyb25nLCBPbGVrc2FuZHIuKQo+Cj4gMS4geGVuLXpjb3B5 IGlzIERSTSBzcGVjaWZpYyAtIGNhbiBpbXBvcnQgb25seSBEUk0gcHJpbWUgYnVmZmVyCj4gd2hp bGUgaHlwZXJfZG1hYnVmIGNhbiBleHBvcnQgYW55IGRtYWJ1ZiByZWdhcmRsZXNzIG9mIG9yaWdp bmF0b3IKV2VsbCwgdGhpcyBpcyB0cnVlLiBBbmQgYXQgdGhlIHNhbWUgdGltZSB0aGlzIGlzIGp1 c3QgYSBtYXR0ZXIKb2YgZXh0ZW5kaW5nIHRoZSBBUEk6IHhlbi16Y29weSBpcyBhIGhlbHBlciBk cml2ZXIgZGVzaWduZWQgZm9yCnhlbi1mcm9udC9iYWNrIHVzZS1jYXNlLCBzbyB0aGlzIGlzIHdo eSBpdCBvbmx5IGhhcyBEUk0gUFJJTUUgQVBJCj4KPiAyLiB4ZW4temNvcHkgZG9lc24ndCBzZWVt IHRvIGhhdmUgZG1hLWJ1ZiBzeW5jaHJvbml6YXRpb24gYmV0d2VlbiB0d28gVk1zCj4gd2hpbGUg KGFzIGRhbnZldCBjYWxsZWQgaXQgYXMgcmVtb3RlIGRtYWJ1ZiBhcGkgc2hhcmluZykgaHlwZXJf ZG1hYnVmIHNlbmRzCj4gb3V0IHN5bmNocm9uaXphdGlvbiBtZXNzYWdlIHRvIHRoZSBleHBvcnRp bmcgVk0gZm9yIHN5bmNocm9uaXphdGlvbi4KVGhpcyBpcyB0cnVlLiBBZ2FpbiwgdGhpcyBpcyBi ZWNhdXNlIG9mIHRoZSB1c2UtY2FzZXMgaXQgY292ZXJzLgpCdXQgaGF2aW5nIHN5bmNocm9uaXph dGlvbiBmb3IgYSBnZW5lcmljIHNvbHV0aW9uIHNlZW1zIHRvIGJlIGEgZ29vZCBpZGVhLgo+Cj4g My4gMS1sZXZlbCByZWZlcmVuY2VzIC0gd2hlbiB1c2luZyBncmFudC10YWJsZSBmb3Igc2hhcmlu ZyBwYWdlcywgdGhlcmUgd2lsbAo+IGJlIHNhbWUgIyBvZiByZWZzIChlYWNoIDggYnl0ZSkKVG8g YmUgcHJlY2lzZSwgZ3JhbnQgcmVmIGlzIDQgYnl0ZXMKPiBhcyAjIG9mIHNoYXJlZCBwYWdlcywg d2hpY2ggaXMgcGFzc2VkIHRvCj4gdGhlIHVzZXJzcGFjZSB0byBiZSBzaGFyZWQgd2l0aCBpbXBv cnRpbmcgVk0gaW4gY2FzZSBvZiB4ZW4temNvcHkuClRoZSByZWFzb24gZm9yIHRoYXQgaXMgdGhh dCB4ZW4temNvcHkgaXMgYSBoZWxwZXIgZHJpdmVyLCBlLmcuCnRoZSBncmFudCByZWZlcmVuY2Vz IGNvbWUgZnJvbSB0aGUgZGlzcGxheSBiYWNrZW5kIFsxXSwgd2hpY2ggaW1wbGVtZW50cwpYZW4g ZGlzcGxheSBwcm90b2NvbCBbMl0uIFNvLCBlZmZlY3RpdmVseSB0aGUgYmFja2VuZCBleHRyYWN0 cyByZWZlcmVuY2VzCmZyb20gZnJvbnRlbmQncyByZXF1ZXN0cyBhbmQgcGFzc2VzIHRob3NlIHRv IHhlbi16Y29weSBhcyBhbiBhcnJheQpvZiByZWZzLgo+ICAgQ29tcGFyZWQKPiB0byB0aGlzLCBo eXBlcl9kbWFidWYgZG9lcyBtdWx0aXBsZSBsZXZlbCBhZGRyZXNzaW5nIHRvIGdlbmVyYXRlIG9u bHkgb25lCj4gcmVmZXJlbmNlIGlkIHRoYXQgcmVwcmVzZW50cyBhbGwgc2hhcmVkIHBhZ2VzLgpJ biB0aGUgcHJvdG9jb2wgWzJdIG9ubHkgb25lIHJlZmVyZW5jZSB0byB0aGUgZ3JlZiBkaXJlY3Rv cnkgaXMgcGFzc2VkIApiZXR3ZWVuIFZNcwooYW5kIHRoZSBncmVmIGRpcmVjdG9yeSBpcyBhIHNp bmdsZS1saW5rZWQgbGlzdCBvZiBzaGFyZWQgcGFnZXMgCmNvbnRhaW5pbmcgYWxsCm9mIHRoZSBn cmVmcyBvZiB0aGUgYnVmZmVyKS4KCj4KPiA0LiBpbnRlciBWTSBtZXNzYWdpbmcgKGh5cGVfZG1h YnVmIG9ubHkpIC0gaHlwZXJfZG1hYnVmIGhhcyBpbnRlci12bSBtc2cKPiBjb21tdW5pY2F0aW9u IGRlZmluZWQgZm9yIGRtYWJ1ZiBzeW5jaHJvbml6YXRpb24gYW5kIHByaXZhdGUgZGF0YSAobWV0 YQo+IGluZm8gdGhhdCBNYXR0IFJvcGVyIG1lbnRpb25lZCkgZXhjaGFuZ2UuClRoaXMgaXMgdHJ1 ZSwgeGVuLXpjb3B5IGhhcyBubyBtZWFucyBmb3IgaW50ZXIgVk0gc3luYyBhbmQgbWV0YS1kYXRh LApzaW1wbHkgYmVjYXVzZSBpdCBkb2Vzbid0IGhhdmUgYW55IGNvZGUgZm9yIGludGVyIFZNIGV4 Y2hhbmdlIGluIGl0LAplLmcuIHRoZSBpbnRlciBWTSBwcm90b2NvbCBpcyBoYW5kbGVkIGJ5IHRo ZSBiYWNrZW5kIFsxXS4KPgo+IDUuIGRyaXZlci10by1kcml2ZXIgbm90aWZpY2F0aW9uIChoeXBl cl9kbWFidWYgb25seSkgLSBpbXBvcnRpbmcgVk0gZ2V0cwo+IG5vdGlmaWVkIHdoZW4gbmV3ZG1h YnVmIGlzIGV4cG9ydGVkIGZyb20gb3RoZXIgVk0gLSB1ZXZlbnQgY2FuIGJlIG9wdGlvbmFsbHkK PiBnZW5lcmF0ZWQgd2hlbiB0aGlzIGhhcHBlbnMuCj4KPiA2LiBzdHJ1Y3R1cmUgLSBoeXBlcl9k bWFidWYgaXMgdGFyZ2V0dGluZyB0byBwcm92aWRlIGEgZ2VuZXJpYyBzb2x1dGlvbiBmb3IKPiBp bnRlci1kb21haW4gZG1hYnVmIHNoYXJpbmcgZm9yIG1vc3QgaHlwZXJ2aXNvcnMsIHdoaWNoIGlz IHdoeSBpdCBoYXMgdHdvCj4gbGF5ZXJzIGFzIG1hdHRyb3BlIG1lbnRpb25lZCwgZnJvbnQtZW5k IHRoYXQgY29udGFpbnMgc3RhbmRhcmQgQVBJIGFuZCBiYWNrZW5kCj4gdGhhdCBpcyBzcGVjaWZp YyB0byBoeXBlcnZpc29yLgpBZ2FpbiwgeGVuLXpjb3B5IGlzIGRlY291cGxlZCBmcm9tIGludGVy IFZNIGNvbW11bmljYXRpb24KPj4+IE5vIGlkZWEsIGRpZG4ndCBsb29rIGF0IGl0IGluIGRldGFp bC4KPj4+Cj4+PiBMb29rcyBwcmV0dHkgY29tcGxleCBmcm9tIGEgZGlzdGFudCB2aWV3LiAgTWF5 YmUgYmVjYXVzZSBpdCB0cmllcyB0bwo+Pj4gYnVpbGQgYSBjb21tdW5pY2F0aW9uIGZyYW1ld29y ayB1c2luZyBkbWEtYnVmcyBpbnN0ZWFkIG9mIGEgc2ltcGxlCj4+PiBkbWEtYnVmIHBhc3Npbmcg bWVjaGFuaXNtLgo+IHdlIHN0YXJ0ZWQgd2l0aCBzaW1wbGUgZG1hLWJ1ZiBzaGFyaW5nIGJ1dCBy ZWFsaXplZCB0aGVyZSBhcmUgbWFueQo+IHRoaW5ncyB3ZSBuZWVkIHRvIGNvbnNpZGVyIGluIHJl YWwgdXNlLWNhc2UsIHNvIHdlIGFkZGVkIGNvbW11bmljYXRpb24KPiAsIG5vdGlmaWNhdGlvbiBh bmQgZG1hLWJ1ZiBzeW5jaHJvbml6YXRpb24gdGhlbiByZS1zdHJ1Y3R1cmVkIGl0IHRvCj4gZnJv bnQtZW5kIGFuZCBiYWNrLWVuZCAodGhpcyBtYWRlIHRoaW5ncyBtb3JlIGNvbXBpY2F0ZWQuLikg c2luY2UgWGVuCj4gd2FzIG5vdCBvdXIgb25seSB0YXJnZXQuIEFsc28sIHdlIHRob3VnaHQgcGFz c2luZyB0aGUgcmVmZXJlbmNlIGZvciB0aGUKPiBidWZmZXIgKGh5cGVyX2RtYWJ1Zl9pZCkgaXMg bm90IHNlY3VyZSBzbyBhZGRlZCB1dmVudCBtZWNoYW5pc20gbGF0ZXIuCj4KPj4gWWVzLCBJIGFt IGxvb2tpbmcgYXQgaXQgbm93LCB0cnlpbmcgdG8gZmlndXJlIG91dCB0aGUgZnVsbCBzdG9yeQo+ PiBhbmQgaXRzIGltcGxlbWVudGF0aW9uLiBCVFcsIEludGVsIGd1eXMgd2VyZSBhYm91dCB0byBz aGFyZSBzb21lCj4+IHRlc3QgYXBwbGljYXRpb24gZm9yIGh5cGVyLWRtYWJ1ZiwgbWF5YmUgSSBo YXZlIG1pc3NlZCBvbmUuCj4+IEl0IGNvdWxkIHByb2JhYmx5IGJldHRlciBleHBsYWluIHRoZSB1 c2UtY2FzZXMgYW5kIHRoZSBjb21wbGV4aXR5Cj4+IHRoZXkgaGF2ZSBpbiBoeXBlci1kbWFidWYu Cj4gT25lIGV4YW1wbGUgaXMgYWN0dWFsbHkgaW4gZ2l0aHViLiBJZiB5b3Ugd2FudCB0YWtlIGEg bG9vayBhdCBpdCwgcGxlYXNlCj4gdmlzaXQ6Cj4KPiBodHRwczovL2dpdGh1Yi5jb20vZG93bm9y L2xpbnV4X2h5cGVyX2RtYWJ1Zl90ZXN0L3RyZWUveGVuL3NpbXBsZV9leHBvcnQKVGhhbmsgeW91 LCBJJ2xsIGhhdmUgYSBsb29rCj4+PiBMaWtlIHhlbi16Y29weSBpdCBzZWVtcyB0byBkZXBlbmQg b24gdGhlIGlkZWEgdGhhdCB0aGUgaHlwZXJ2aXNvcgo+Pj4gbWFuYWdlcyBhbGwgbWVtb3J5IGl0 IGlzIGVhc3kgZm9yIGd1ZXN0cyB0byBzaGFyZSBwYWdlcyB3aXRoIHRoZSBoZWxwIG9mCj4+PiB0 aGUgaHlwZXJ2aXNvci4KPj4gU28sIGZvciB4ZW4temNvcHkgd2Ugd2VyZSBub3QgdHJ5aW5nIHRv IG1ha2UgaXQgZ2VuZXJpYywKPj4gaXQganVzdCBzb2x2ZXMgZGlzcGxheSAoZHVtYikgemVyby1j b3B5aW5nIHVzZS1jYXNlcyBmb3IgWGVuLgo+PiBXZSBpbXBsZW1lbnRlZCBpdCBhcyBhIERSTSBo ZWxwZXIgZHJpdmVyIGJlY2F1c2Ugd2UgY2FuJ3Qgc2VlIGFueQo+PiBvdGhlciB1c2UtY2FzZXMg YXMgb2Ygbm93Lgo+PiBGb3IgZXhhbXBsZSwgd2UgYWxzbyBoYXZlIFhlbiBwYXJhLXZpcnR1YWxp emVkIHNvdW5kIGRyaXZlciwgYnV0Cj4+IGl0cyBidWZmZXIgbWVtb3J5IHVzYWdlIGlzIG5vdCBj b21wYXJhYmxlIHRvIHdoYXQgZGlzcGxheSB3YW50cwo+PiBhbmQgaXQgd29ya3Mgc29tZXdoYXQg ZGlmZmVyZW50bHkgKGUuZy4gdGhlcmUgaXMgbm8gImZyYW1lIGRvbmUiCj4+IGV2ZW50LCBzbyBv bmUgY2FuJ3QgdGVsbCB3aGVuIHRoZSBzb3VuZCBidWZmZXIgY2FuIGJlICJmbGlwcGVkIikuCj4+ IEF0IHRoZSBzYW1lIHRpbWUsIHdlIGRvIG5vdCB1c2UgdmlydGlvLWdwdSwgc28gdGhpcyBjb3Vs ZCBwcm9iYWJseQo+PiBiZSBvbmUgbW9yZSBjYW5kaWRhdGUgZm9yIHNoYXJlZCBkbWEtYnVmcyBz b21lIGRheS4KPj4+ICAgIFdoaWNoIHNpbXBseSBpc24ndCB0aGUgY2FzZSBvbiBrdm0uCj4+Pgo+ Pj4gaHlwZXItZG1hYnVmIGFuZCB4ZW4temNvcHkgY291bGQgbWF5YmUgc2hhcmUgY29kZSwgb3Ig aHlwZXItZG1hYnVmIGJ1aWxkCj4+PiBvbiB0b3Agb2YgeGVuLXpjb3B5Lgo+PiBIbSwgSSBjYW4g aW1hZ2luZSB0aGF0OiB4ZW4temNvcHkgY291bGQgYmUgYSBsaWJyYXJ5IGNvZGUgZm9yIGh5cGVy LWRtYWJ1Zgo+PiBpbiB0ZXJtcyBvZiBpbXBsZW1lbnRpbmcgYWxsIHRoYXQgcGFnZSBzaGFyaW5n IGZ1biBpbiBtdWx0aXBsZSBkaXJlY3Rpb25zLAo+PiBlLmcuIEhvc3QtPkd1ZXN0LCBHdWVzdC0+ SG9zdCwgR3Vlc3Q8LT5HdWVzdC4KPj4gQnV0IEknbGwgbGV0IE1hdHQgYW5kIERvbmd3b24gdG8g Y29tbWVudCBvbiB0aGF0Lgo+IEkgdGhpbmsgd2UgY2FuIGRlZmluaXRlbHkgY29sbGFib3JhdGUu IEVzcGVjaWFsbHksIG1heWJlIHdlIGFyZSB1c2luZyBzb21lCj4gb3V0ZGF0ZWQgc2hhcmluZyBt ZWNoYW5pc20vZ3JhbnQtdGFibGUgbWVjaGFuaXNtIGluIG91ciBYZW4gYmFja2VuZCAodGhhbmtz Cj4gZm9yIGJyaW5naW5nIHRoYXQgdXAgT2xla3NhbmRyKS4gSG93ZXZlciwgdGhlIHF1ZXN0aW9u IGlzIG9uY2Ugd2UgY29sbGFib3JhdGUKPiBzb21laG93LCBjYW4geGVuLXpjb3B5J3MgdXNlY2Fz ZSB1c2UgdGhlIHN0YW5kYXJkIEFQSSB0aGF0IGh5cGVyX2RtYWJ1Zgo+IHByb3ZpZGVzPyBJIGRv bid0IHRoaW5rIHdlIG5lZWQgZGlmZmVyZW50IElPQ1RMcyB0aGF0IGRvIHRoZSBzYW1lIGluIHRo ZSBmaW5hbAo+IHNvbHV0aW9uLgo+CklmIHlvdSB0aGluayBvZiB4ZW4temNvcHkgYXMgYSBsaWJy YXJ5ICh3aGljaCBpbXBsZW1lbnRzIFhlbgpncmFudCByZWZlcmVuY2VzIG1hbmdsaW5nKSBhbmQg RFJNIFBSSU1FIHdyYXBwZXIgb24gdG9wIG9mIHRoYXQKbGlicmFyeSwgd2UgY2FuIHByb2JhYmx5 IGRlZmluZSBwcm9wZXIgQVBJIGZvciB0aGF0IGxpYnJhcnksCnNvIGJvdGggeGVuLXpjb3B5IGFu ZCBoeXBlci1kbWFidWYgY2FuIHVzZSBpdC4gV2hhdCBpcyBtb3JlLCBJIGFtCmFib3V0IHRvIHN0 YXJ0IHVwc3RyZWFtaW5nIFhlbiBwYXJhLXZpcnR1YWxpemVkIHNvdW5kIGRldmljZSBkcml2ZXIg c29vbiwKd2hpY2ggYWxzbyB1c2VzIHNpbWlsYXIgY29kZSBhbmQgZ3JlZiBwYXNzaW5nIG1lY2hh bmlzbSBbM10uCihBY3R1YWxseSwgSSB3YXMgYWJvdXQgdG8gdXBzdHJlYW0gZHJtL3hlbi1mcm9u dCwgZHJtL3hlbi16Y29weSBhbmQKc25kL3hlbi1mcm9udCBhbmQgdGhlbiBwcm9wb3NlIGEgWGVu IGhlbHBlciBsaWJyYXJ5IGZvciBzaGFyaW5nIGJpZyBidWZmZXJzLApzbyBjb21tb24gY29kZSBv ZiB0aGUgYWJvdmUgZHJpdmVycyBjYW4gdXNlIHRoZSBzYW1lIGNvZGUgdy9vIGNvZGUgCmR1cGxp Y2F0aW9uKQoKVGhhbmsgeW91LApPbGVrc2FuZHIKClAuUy4gQWxsLCBpcyBpdCBhIGdvb2QgaWRl YSB0byBtb3ZlIHRoaXMgb3V0IG9mIHVkbWFidWYgdGhyZWFkIGludG8gYSAKZGVkaWNhdGVkIG9u ZT8KPj4+IGNoZWVycywKPj4+ICAgIEdlcmQKPj4+Cj4+IFRoYW5rIHlvdSwKPj4gT2xla3NhbmRy Cj4+Cj4+IFAuUy4gU29ycnkgZm9yIG1ha2luZyB5b3VyIG9yaWdpbmFsIG1haWwgdGhyZWFkIHRv IGRpc2N1c3MgdGhpbmdzIG11Y2gKPj4gYnJvYWRlciB0aGFuIHlvdXIgUkZDLi4uCj4+ClsxXSBo dHRwczovL2dpdGh1Yi5jb20veGVuLXRyb29wcy9kaXNwbF9iZQpbMl0gCmh0dHBzOi8vZWxpeGly LmJvb3RsaW4uY29tL2xpbnV4L3Y0LjE2LXJjNy9zb3VyY2UvaW5jbHVkZS94ZW4vaW50ZXJmYWNl L2lvL2Rpc3BsaWYuaCNMNDg0ClszXSAKaHR0cHM6Ly9lbGl4aXIuYm9vdGxpbi5jb20vbGludXgv djQuMTYtcmM3L3NvdXJjZS9pbmNsdWRlL3hlbi9pbnRlcmZhY2UvaW8vc25kaWYuaAoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxp bmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==