From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ben Widawsky Subject: Re: [Intel-gfx] [PATCH 1/3] drm: Plumb modifiers through plane init Date: Wed, 10 May 2017 12:33:15 -0700 Message-ID: <20170510193314.GA2585@mail.bwidawsk.net> References: <20170503051428.4734-1-ben@bwidawsk.net> <20170503103412.GH28653@e110455-lin.cambridge.arm.com> <20170503140729.GJ28653@e110455-lin.cambridge.arm.com> <20170503145223.GK28653@e110455-lin.cambridge.arm.com> <20170503164505.e2kq3d56uqg3loev@phenom.ffwll.local> <20170503173007.GM28653@e110455-lin.cambridge.arm.com> <20170510163439.GB26412@mail.bwidawsk.net> <20170510172452.GC7759@e110455-lin.cambridge.arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20170510172452.GC7759@e110455-lin.cambridge.arm.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Liviu Dudau Cc: Intel GFX , DRI Development List-Id: intel-gfx@lists.freedesktop.org T24gMTctMDUtMTAgMTg6MjQ6NTIsIExpdml1IER1ZGF1IHdyb3RlOgo+T24gV2VkLCBNYXkgMTAs IDIwMTcgYXQgMDk6MzQ6NDBBTSAtMDcwMCwgQmVuIFdpZGF3c2t5IHdyb3RlOgo+PiBPbiAxNy0w NS0wMyAxODozMDowNywgTGl2aXUgRHVkYXUgd3JvdGU6Cj4+ID4gT24gV2VkLCBNYXkgMDMsIDIw MTcgYXQgMDY6NDU6MDVQTSArMDIwMCwgRGFuaWVsIFZldHRlciB3cm90ZToKPj4gPiA+IE9uIFdl ZCwgTWF5IDAzLCAyMDE3IGF0IDAzOjUyOjIzUE0gKzAxMDAsIExpdml1IER1ZGF1IHdyb3RlOgo+ PiA+ID4gPiBPbiBXZWQsIE1heSAwMywgMjAxNyBhdCAwMzoxNDo1NlBNICswMTAwLCBEYW5pZWwg U3RvbmUgd3JvdGU6Cj4+ID4gPiA+ID4gT24gMyBNYXkgMjAxNyBhdCAxNTowNywgTGl2aXUgRHVk YXUgPExpdml1LkR1ZGF1QGFybS5jb20+IHdyb3RlOgo+PiA+ID4gPiA+ID4gT24gV2VkLCBNYXkg MDMsIDIwMTcgYXQgMDI6NDU6MjZQTSArMDEwMCwgRGFuaWVsIFN0b25lIHdyb3RlOgo+PiA+ID4g PiA+ID4+IEl0IGRvZXMgZGVzZXJ2ZSBhIG11Y2ggYmV0dGVyIGNvbW1pdCBtZXNzYWdlIHRoYW4g d2hhdCBpdCBoYXMsIGJ1dCBhcwo+PiA+ID4gPiA+ID4+IGhlIGlzIG9uIGhvbGlkYXkgZm9yIHRo ZSByZXN0IG9mIHRoZSB3ZWVrLCBJIGNhbiBhbnN3ZXIuIEN1cnJlbnRseSwgd2UKPj4gPiA+ID4g PiA+PiBhZHZlcnRpc2Ugd2hpY2ggZm9ybWF0cyBlYWNoIHBsYW5lIGlzIGNhcGFibGUgb2YgZGlz cGxheWluZy4gSW4gb3JkZXIKPj4gPiA+ID4gPiA+PiBmb3IgdXNlcnNwYWNlIHRvIGJlIGFibGUg dG8gYWxsb2NhdGUgdGlsZWQvY29tcHJlc3NlZCBidWZmZXJzIGZvcgo+PiA+ID4gPiA+ID4+IHNj YW5vdXQsIHdlIHdhbnQgdXNlcnNwYWNlIHRvIGJlIGFibGUgdG8gZGlzY292ZXIgd2hpY2ggbW9k aWZpZXJzIGVhY2gKPj4gPiA+ID4gPiA+PiBwbGFuZSBzdXBwb3J0cyBhcyB3ZWxsLgo+PiA+ID4g PiA+ID4KPj4gPiA+ID4gPiA+IEkgZ2V0IHRoZSBvdmVyYWxsIGdvYWwuIFdlIG5lZWQvd2FudCBz b21ldGhpbmcgc2ltaWxhciBmb3IgTWFsaSBEUCBhbmQgQUZCQyBidWZmZXJzLgo+PiA+ID4gPiA+ ID4gV2hhdCBJIGRvbid0IHVuZGVyc3RhbmQgaXMgdGhlIGN1cnJlbnQgYXByb2FjaCAoYnV0IEkn dmUgZm91bmQgZnJvbSBCcmlhbiB0aGF0IHNvbWVob3cKPj4gPiA+ID4gPiA+IEkndmUgbWlzc2Vk IHRoZSBsb25nIGRpc2N1c3Npb24ocykgYXJvdW5kIHRoZSBzdWJqZWN0KS4gSSB3YXMgaG9waW5n IHRvIGxlYXJuCj4+ID4gPiA+ID4gPiBmcm9tIHRoZSBjb21taXQgbWVzc2FnZSB3aHkgaGUgdGhp bmtzIHRoZSBpbnRyb2R1Y3Rpb24gb2YgdGhpcyBjb2RlIGlzIHRoZSByaWdodAo+PiA+ID4gPiA+ ID4gd2F5IG9mIGRvaW5nIGl0LiBBbmQgdGhlIElSQyBsb2dzIHNlZW0gdG8gaW1wbHkgdGhhdCBo ZSBpcyBtb3N0bHkgZG9pbmcgc29tZXRoaW5nCj4+ID4gPiA+ID4gPiB0aGF0IG90aGVycyBoYXZl IGFncmVlZCB1cG9uIGFuZCBoZSBkb2Vzbid0IHJlYWxseSBjYXJlIGFib3V0IHRoZSBhcHByb2Fj aCBhcyBsb25nCj4+ID4gPiA+ID4gPiBhcyBpdCB0aWNrcyB0aGUgInN1cHBvcnRlZCBieSBpbnRl bCBkcml2ZXIiIGJveC4KPj4gPiA+ID4gPgo+PiA+ID4gPiA+IE9yLCB3aXRoIGFub3RoZXIgaW50 ZXJwcmV0YXRpb24sIGhlIHRoaW5rcyB0aGUgdmFyaW91cyBhcHByb2FjaGVzIG9mCj4+ID4gPiA+ ID4gZG9pbmcgaXQgYXJlIGFsbCBlcXVhbGx5IGdvb2QuIEhlIHRvb2sgZ3VpZGFuY2UgZnJvbSBh IGNvdXBsZSBvZgo+PiA+ID4gPiA+IHVzZXJzcGFjZSBkZXZlbG9wZXJzIChXZXN0b24sIENocm9t ZU9TKSwgYSBGcmVlZHJlbm8gZGV2ZWxvcGVyIGFuZAo+PiA+ID4gPiA+IGFsc28gSSBiZWxpZXZl IGFuIEFGQkMgZGV2ZWxvcGVyLCB0byBlbmQgdXAgd2hlcmUgaGUgaXMgbm93LCB3aGljaCBoZQo+ PiA+ID4gPiA+IHN0aWxsIHRoaW5rcyBpcyBmaW5lLiBJbiBkb2luZyBzbywgaGUncyBiZWVuIHRo cm91Z2ggc2V2ZXJhbAo+PiA+ID4gPiA+IGl0ZXJhdGlvbnMsIGFsd2F5cyBtb2RpZnlpbmcgdGhl IGRyaXZlciB0byBzdWl0LiBJIHRoaW5rIHRoYXQncyBhCj4+ID4gPiA+ID4gcHJldHR5IGdvb2Qg d2F5IHRvIGRvIGRldmVsb3BtZW50IG9mIG5ldyB1QUJJLCBpZiB5b3UgYXNrIG1lLiAoQW5kCj4+ ID4gPiA+ID4gYWdhaW4sIEkgaGF2ZSB0cm91YmxlIHJlYWRpbmcgeW91ciBsYXN0IHNlbnRlbmNl IGFzIGFueXRoaW5nIG90aGVyCj4+ID4gPiA+ID4gdGhhbiBob3N0aWxlLikKPj4gPiA+ID4KPj4g PiA+ID4gSSBhbSBnZXR0aW5nIHRoZSBtZXNzYWdlLiBZb3UgdGhpbmsgSSBhbSB0b28gc3Ryb25n IGhlcmUsIHNvIEknbSBnb2luZyB0byBiYWNrIG9mZi4KPj4gPiA+ID4gQWxzbyBsb29rIGZvcndh cmQgdG8gc2VlIHRoZSBuZXh0IHZlcnNpb24gd2hlcmUgaGUgdGFrZXMgaW50byBhY2NvdW50IHRo ZSB0ZWNobmljYWwKPj4gPiA+ID4gY29tbWVudHMgdGhhdCBJIGhhdmUgc2VudC4KPj4gPiA+Cj4+ ID4gPiBKdXN0IHRvIG1ha2UgaXQgcmVhbGx5IGNsZWFyOiBHb29nbGUgaGFzIGFuIGltcGxlbWVu dGF0aW9uIGZvciBBRkJDIHVzaW5nCj4+ID4gPiBleGFjdGx5IHRoaXMgc2NoZW1lIGZvciBjcm9z LiBUaGUgb25seSByZWFzb25zIGl0J3Mgbm90IGZsb2F0aW5nIGFyb3VuZAo+PiA+ID4gaGVyZSBp biB1cHN0cmVhbSBpcyB0aGF0IG9uZSBvZiB0aGUgY3JpdGljYWwgcGllY2VzIGlzIG1pc3Npbmcg KCpoaW50KiwKPj4gPiA+ICpoaW50KiB5b3UgcmVhbGx5IHdhbnQgYW4gb3BlbiBtYWlsIGRyaXZl ciAuLi4pLgo+PiA+Cj4+ID4gPHRvbmd1ZV9pbl9jaGVlaz4KPj4gPiBEb24ndCBrbm93IGFib3V0 IG9wZW4gX21haWxfIGRyaXZlcnMgYnV0IHRoZXJlIGFyZSBwbGVudHkgb2Ygb3BlbiBtYWlsIGFw cHMgdGhhdCBvbmUgY2FuIHVzZQo+PiA+IDwvdG9uZ3VlX2luX2NoZWVrPgo+PiA+Cj4+ID4gSm9r ZSBhc2lkZSwgdGhlIE1hbGkgR1BVICprZXJuZWwqIGRyaXZlciAqaXMqIG9wZW4gc291cmNlLiBK dXN0IG5vdCBpbiB0aGUgbWFpbmxpbmUgYW5kCj4+ID4gbm90IGVub3VnaCBmb3Igd2hhdCB5b3Ug d2FudC4gQnV0IEknbSBub3QgdGhlIHJpZ2h0IHBlcnNvbiB0byBmaXggYWxsIHRoYXQuCj4+ID4K Pj4gPiBBbmQgR1BVIGlzIG5vdCB0aGUgb25seSBJUCBjYXBhYmxlIG9mIHByb2R1Y2luZyBBRkJD IGRhdGEsIHNvIHRoZXJlIG1pZ2h0IGJlIGFub3RoZXIgZHJpdmVyCj4+ID4gaW4gdGhlIG1ha2lu ZyB0aGF0IHdpbGwgYmUgb3BlbiBzb3VyY2UuCj4+ID4KPj4gPiBCZXN0IHJlZ2FyZHMsCj4+ID4g TGl2aXUKPj4gPgo+PiA+ID4gQnV0IGJlc2lkZXMgdGhhdCwgaXQgd29ya3MKPj4gPiA+IHBlcmZl Y3RseSBmaW5lIGZvciBhcm0gcmVuZGVyIGNvbXByZXNzaW9uIGZvcm1hdCB0b28uCj4+ID4gPiAt RGFuaWVsCj4+ID4gPiAtLQo+PiA+ID4gRGFuaWVsIFZldHRlcgo+PiA+ID4gU29mdHdhcmUgRW5n aW5lZXIsIEludGVsIENvcnBvcmF0aW9uCj4+ID4gPiBodHRwOi8vYmxvZy5mZndsbC5jaAo+PiA+ Cj4+ID4gLS0KPj4KPj4gU28gYXJlIHdlIGdvb2Qgd2l0aCBwYXRjaCAxLCBzb3JyeSBpZiBJIG1p c3NlZCBhbnkgcmVhbCB2YWxpZCBjaGFuZ2VzIEkgbmVlZCB0bwo+PiBtYWtlLCBidXQgY2FuIHdl IHBsZWFzZSBjYXB0dXJlIHRoYXQgaGVyZS4KPgo+U3VyZSwKPgoKVGhhbmtzLiBSZW9yZGVyZWQg eW91ciBjb21tZW50cyBhIGJpdC4uLgoKPi0gZG9jdW1lbnRhdGlvbiBuZWVkcyB0byB1c2UgdGhl IGFjdHVhbCBtYWNybyBuYW1lOiBEUk1fRk9STUFUX01PRF9JTlZBTElECgpPa2F5LiBJdCBvcmln aW5hbGx5IHdhc24ndCB0aGlzIHdheSBiZWNhdXNlIGl0IGZvcmNlcyB0aGUgc2VudGVuY2UgdG8g YmUgdHdvCmxpbmVzLCBidXQgSSd2ZSBjaGFuZ2VkIGl0LgoKPi0gc29tZSBleHRyYW5lb3VzIGVt cHR5IGxpbmVzIGNvdWxkIGJlIHRyaW1tZWQKCkkgdGhpbmsgSSBnb3QgdGhlbSBhbGwuLgoKPi0g ZHJtX3VuaXZlcnNhbF9wbGFuZV9pbml0IGNvbW1lbnQgYWJvdXQgZmlyc3QgZHJpdmVyIHdpdGgg PiA2NCBmb3JtYXRzIGNvdWxkIGRvCj4gIHdpdGggc29tZSB2ZXJib3NlIGV4cGxhbmF0aW9uIG9u IHdoeSAoImJlY2F1c2Ugd2UgZW5jb2RlIGVhY2ggZm9ybWF0IGFzIGEgYml0Cj4gIGluIHRoZSBm b3JtYXRfbW9kaWZpZXJzIGZpZWxkIGFuZCB3ZSBoYXZlIG9ubHkgcmVzZXJ2ZWQgNjQgYml0cyBm b3IgdGhhdCIpCgoKPi0gbW9zdCAoYWxsPykgZHJpdmVycyBhcmUgcGFzc2luZyBOVUxMIGFzIHRo ZSBmb3JtYXRfbW9kaWZpZXIgcG9pbnRlciB0bwo+ICBkcm1fdW5pdmVyc2FsX3BsYW5lX2luaXQo KSB3aGljaCBtYWtlcyBtZSB3b25kZXIgaWYgaXQgaXMgbm90IGJldHRlciB0byBoYXZlIGEKPiAg ZGlmZmVyZW50IGZ1bmN0aW9uIGZvciBkcml2ZXJzIHRoYXQgd2FudCB0byBwYXNzIGEgbm9uLU5V TEwgZm9ybWF0X21vZGlmaWVyLgoKSSBjYW4gd3JhcCB0aGlzLCB0aGF0IG1pZ2h0IGJlIHRoZSBi ZXN0IHdheSBhbmQgdGhlbiBJIHdvdWxkbid0IG5lZWQgdG8gdG91Y2gKdGhlIG90aGVyIGRyaXZl cnMuIEhlcmUgaXMgdGhlIHJlbGV2YW50IHBhcnQgb2YgdGhlIGRpZmY6CgpJJ20gZmluZSB3aXRo IHRoYXQgaWYgb3RoZXIgcGVvcGxlIGFyZS4gSXQgb25seSBpcyB0aGUgd2F5IGl0IGlzIGJlY2F1 c2UKS3Jpc3RpYW4gb3JpZ2luYWxseSBkaWQgdGhpcyBmb3IgR0VUX1BMQU5FMi4KCitfX3ByaW50 Zig5LCAxMCkKK2ludCBkcm1fdW5pdmVyc2FsX3BsYW5lX2luaXRfd2l0aF9tb2RpZmllcnMoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBwb3NzaWJsZV9jcnRjcywKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX2Z1 bmNzICpmdW5jcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b25zdCB1aW50MzJfdCAqZm9ybWF0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB1bnNpZ25lZCBpbnQgZm9ybWF0X2NvdW50LAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ2NF90ICpmb3JtYXRfbW9kaWZpZXJz LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudW0gZHJtX3Bs YW5lX3R5cGUgdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjb25zdCBjaGFyICpuYW1lLCAuLi4pOwogX19wcmludGYoOCwgOSkKLWludCBkcm1fdW5pdmVy c2FsX3BsYW5lX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICB1aW50MzJfdCBwb3NzaWJsZV9jcnRjcywKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX2Z1bmNzICpmdW5jcywKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb25zdCB1aW50MzJfdCAqZm9ybWF0cywKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICB1bnNpZ25lZCBpbnQgZm9ybWF0X2NvdW50LAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGVudW0gZHJtX3BsYW5lX3R5cGUgdHlwZSwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjb25zdCBjaGFyICpuYW1lLCAuLi4pOworc3RhdGljIGlubGluZSBpbnQKK2RybV91 bml2ZXJzYWxfcGxhbmVfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAorICAgICAgICAgICAg ICAgICAgICAgICAgc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCisgICAgICAgICAgICAgICAgICAg ICAgICB1aW50MzJfdCBwb3NzaWJsZV9jcnRjcywKKyAgICAgICAgICAgICAgICAgICAgICAgIGNv bnN0IHN0cnVjdCBkcm1fcGxhbmVfZnVuY3MgKmZ1bmNzLAorICAgICAgICAgICAgICAgICAgICAg ICAgY29uc3QgdWludDMyX3QgKmZvcm1hdHMsCisgICAgICAgICAgICAgICAgICAgICAgICB1bnNp Z25lZCBpbnQgZm9ybWF0X2NvdW50LAorICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBkcm1f cGxhbmVfdHlwZSB0eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFt ZSwgLi4uKQoreworICAgICAgIHZhX2xpc3QgYXA7CisgICAgICAgaW50IHJldDsKKworICAgICAg IHZhX3N0YXJ0KGFwLCBuYW1lKTsKKyAgICAgICByZXQgPSAgZHJtX3VuaXZlcnNhbF9wbGFuZV9p bml0X3dpdGhfbW9kaWZpZXJzKGRldiwgcGxhbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NzaWJsZV9jcnRjcywgZnVuY3MsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXRz LCBmb3JtYXRfY291bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBOVUxMLCB0eXBlLCBuYW1lLCBhcCk7CisgICAgICAgdmFfZW5kKGFwKTsK KyAgICAgICByZXR1cm4gcmV0OworfQorCgoKPi0gcGxhbmUtPm1vZGlmaWVyX2NvdW50IGlzIG5l dmVyIHVzZWQKPi0gbWVtY3B5KCktaW5nIHRoZSBmb3JtYXRfbW9kaWZpZXJzIGluIGRybV91bml2 ZXJzYWxfcGxhbmVfaW5pdCBkb2Vzbid0IGNoZWNrIGZvcgo+ICBOVUxMIGV2ZW4gaWYgdGhhdCBp cyB3aGF0IG1vc3QgZHJpdmVycyBwYXNzIG9uIHdoZW4gdGhleSBjYWxsIHRoZSBmdW5jdGlvbi4K Pi0gZm9ybWF0X21vZF9zdXBwb3J0ZWQgZnVuY3Rpb24gaXMgbm90IHVzZWQgaW4gMS8zIHBhdGNo LCB5b3UgY2FuIGludHJvZHVjZSBpdAo+ICBpbiB0aGUgcGF0Y2ggdGhhdCBhY3R1YWxseSB1c2Vz IGl0Cj4tIGRybV9wbGFuZSdzIGZvcm1hdHMgZmllbGQgZG9lc24ndCBsb29rIHVzZWQgZWl0aGVy Lgo+CgpSZWdhcmRpbmcgdGhlIHVudXNlZCBmaWVsZHMsIHRoZXkgYXJlIHVzZWQgaW4gbGF0ZXIg cGF0Y2hlcyBieSB0aGUKaW1wbGVtZW50YXRpb24uIEkgc3BlY2lmaWNhbGx5IHNwbGl0IG91dCB0 aGlzIHNvIHRoYXQgd2UgY2FuIGRlYWwgd2l0aCBhbGwgdGhlCkRSTSBoYXJkd2FyZSBzcGVjaWZp YyBkcml2ZXIgY2hhbmdlcyBpbiBvbmUgW3N1cHBvc2VkIHRvIGJlXSB0cml2aWFsIHBhdGNoLgpH ZW5lcmFsbHkgSSBhZ3JlZSB0aGF0IGludHJvZHVjaW5nIGZpZWxkcyB3aXRob3V0IHVzaW5nIHRo ZW0gaXMgbm90IHZlcnkgdXNlZnVsCnRvIHJldmlld2VycywgYnV0IEkgY29uc2lkZXIgdGhpcyBh IHNwZWNpYWwgY2FzZS4KCkkgc2VlIHR3byBwcmltYXJ5IHJlYXNvbnMgZm9yIHRoaXM6CjEuIEl0 IG1hZGUgcmViYXNlIGVhc2llciAocmVtZW1iZXIsIHRoaXMgc2VyaWVzIGlzID4gNiBtb250aHMg b2xkKSwgYW5kIGFzIG5ldwogICBEUk0gZHJpdmVycyB3ZXJlIGFkZGVkLCBpdCBtYWRlIGEgbmlj ZSBzaW1wbGUgcGF0Y2ggdG8gY2hhbmdlLgoyLiBFYXN5IHRvIHNwb3Qga2J1aWxkIGZhaWx1cmVz L3Jlc29sdXRpb25zLgozLiBSZXZpZXcgc2hvdWxkIGJlIHRyaXZpYWwgZm9yIGFsbCB0aGUgb3Ro ZXIgaGFyZHdhcmUgcGVvcGxlLiBJZiB0aGV5IGRvbid0CiAgIGNhcmUgYWJvdXQgbW9kaWZpZXJz LCB0aGV5IGNhbiBwcmV0dHkgbXVjaCBpZ25vcmUgdGhlIHBhdGNoIGVudGlyZS4KCj5Zb3UgY2Fu IGxvb2sgaW4gdGhlIGZpcnN0IHJlcGx5IHRvIHlvdXIgMS8zIHBhdGNoIGlmIHlvdSB3YW50IHRo ZSBkZXRhaWxzLgo+Cj5CZXN0IHJlZ2FyZHMsCj5MaXZpdQo+Cj4+Cj4+IC0tCj4+IEJlbiBXaWRh d3NreSwgSW50ZWwgT3BlbiBTb3VyY2UgVGVjaG5vbG9neSBDZW50ZXIKPj4gX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPj4gZHJpLWRldmVsIG1haWxpbmcg bGlzdAo+PiBkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4+IGh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCj4KPi0tIAo+PT09PT09 PT09PT09PT09PT09PT0KPnwgSSB3b3VsZCBsaWtlIHRvIHwKPnwgZml4IHRoZSB3b3JsZCwgIHwK PnwgYnV0IHRoZXkncmUgbm90IHwKPnwgZ2l2aW5nIG1lIHRoZSAgIHwKPiBcIHNvdXJjZSBjb2Rl ISAgLwo+ICAtLS0tLS0tLS0tLS0tLS0KPiAgICDCr1xfKOODhClfL8KvCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QK ZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=