From mboxrd@z Thu Jan 1 00:00:00 1970 From: Brian Starkey Subject: Re: [RFC PATCH 00/11] Introduce writeback connectors Date: Tue, 11 Oct 2016 22:24:23 +0100 Message-ID: <20161011212423.GA10077@e106950-lin.cambridge.arm.com> References: <1476197648-24918-1-git-send-email-brian.starkey@arm.com> <20161011154359.GD20761@phenom.ffwll.local> <20161011164305.GA14337@e106950-lin.cambridge.arm.com> <20161011194422.GC14337@e106950-lin.cambridge.arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from foss.arm.com (foss.arm.com [217.140.101.70]) by gabe.freedesktop.org (Postfix) with ESMTP id 747F96E25F for ; Tue, 11 Oct 2016 21:24:37 +0000 (UTC) Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Daniel Vetter Cc: Liviu Dudau , Linux Kernel Mailing List , dri-devel , Hans Verkuil , "linux-media@vger.kernel.org" List-Id: dri-devel@lists.freedesktop.org T24gVHVlLCBPY3QgMTEsIDIwMTYgYXQgMTA6MDI6NDNQTSArMDIwMCwgRGFuaWVsIFZldHRlciB3 cm90ZToKPk9uIFR1ZSwgT2N0IDExLCAyMDE2IGF0IDk6NDQgUE0sIEJyaWFuIFN0YXJrZXkgPGJy aWFuLnN0YXJrZXlAYXJtLmNvbT4gd3JvdGU6Cj4+IEhpLAo+Pgo+Pgo+PiBPbiBUdWUsIE9jdCAx MSwgMjAxNiBhdCAwNzowMTozM1BNICswMjAwLCBEYW5pZWwgVmV0dGVyIHdyb3RlOgo+Pj4KPj4+ IE9uIFR1ZSwgT2N0IDExLCAyMDE2IGF0IDY6NDMgUE0sIEJyaWFuIFN0YXJrZXkgPGJyaWFuLnN0 YXJrZXlAYXJtLmNvbT4KPj4+IHdyb3RlOgo+Pj4+Cj4+Pj4gSGkgRGFuaWVsLAo+Pj4+Cj4+Pj4g Rmlyc3RseSB0aGFua3MgdmVyeSBtdWNoIGZvciBoYXZpbmcgYSBsb29rLgo+Pj4+Cj4+Pj4KPj4+ PiBPbiBUdWUsIE9jdCAxMSwgMjAxNiBhdCAwNTo0Mzo1OVBNICswMjAwLCBEYW5pZWwgVmV0dGVy IHdyb3RlOgo+Pj4+Pgo+Pj4+Pgo+Pj4+PiBPbiBUdWUsIE9jdCAxMSwgMjAxNiBhdCAwMzo1Mzo1 N1BNICswMTAwLCBCcmlhbiBTdGFya2V5IHdyb3RlOgo+Pj4+Pj4KPj4+Pj4+Cj4+Pj4+PiBIaSwK Pj4+Pj4+Cj4+Pj4+PiBUaGlzIFJGQyBzZXJpZXMgaW50cm9kdWNlcyBhIG5ldyBjb25uZWN0b3Ig dHlwZToKPj4+Pj4+ICBEUk1fTU9ERV9DT05ORUNUT1JfV1JJVEVCQUNLCj4+Pj4+PiBJdCBpcyBh IGZvbGxvdy1vbiBmcm9tIGEgcHJldmlvdXMgZGlzY3Vzc2lvbjogWzFdCj4+Pj4+Pgo+Pj4+Pj4g V3JpdGViYWNrIGNvbm5lY3RvcnMgYXJlIHVzZWQgdG8gZXhwb3NlIHRoZSBtZW1vcnkgd3JpdGVi YWNrIGVuZ2luZXMKPj4+Pj4+IGZvdW5kIGluIHNvbWUgZGlzcGxheSBjb250cm9sbGVycywgd2hp Y2ggY2FuIHdyaXRlIGEgQ1JUQydzCj4+Pj4+PiBjb21wb3NpdGlvbiByZXN1bHQgdG8gYSBtZW1v cnkgYnVmZmVyLgo+Pj4+Pj4gVGhpcyBpcyB1c2VmdWwgZS5nLiBmb3IgdGVzdGluZywgc2NyZWVu LXJlY29yZGluZywgc2NyZWVuc2hvdHMsCj4+Pj4+PiB3aXJlbGVzcyBkaXNwbGF5LCBkaXNwbGF5 IGNsb25pbmcsIG1lbW9yeS10by1tZW1vcnkgY29tcG9zaXRpb24uCj4+Pj4+Pgo+Pj4+Pj4gUGF0 Y2hlcyAxLTcgaW5jbHVkZSB0aGUgY29yZSBmcmFtZXdvcmsgY2hhbmdlcyByZXF1aXJlZCwgYW5k IHBhdGNoZXMKPj4+Pj4+IDgtMTEgaW1wbGVtZW50IGEgd3JpdGViYWNrIGNvbm5lY3RvciBmb3Ig dGhlIE1hbGktRFAgd3JpdGViYWNrIGVuZ2luZS4KPj4+Pj4+IFRoZSBNYWxpLURQIHBhdGNoZXMg ZGVwZW5kIG9uIHRoaXMgb3RoZXIgc2VyaWVzOiBbMl0uCj4+Pj4+Pgo+Pj4+Pj4gVGhlIGNvbm5l Y3RvciBpcyBnaXZlbiB0aGUgRkJfSUQgcHJvcGVydHkgZm9yIHRoZSBvdXRwdXQgZnJhbWVidWZm ZXIsCj4+Pj4+PiBhbmQgdHdvIG5ldyByZWFkLW9ubHkgcHJvcGVydGllczogUElYRUxfRk9STUFU UyBhbmQKPj4+Pj4+IFBJWEVMX0ZPUk1BVFNfU0laRSwgd2hpY2ggZXhwb3NlIHRoZSBzdXBwb3J0 ZWQgZnJhbWVidWZmZXIgcGl4ZWwKPj4+Pj4+IGZvcm1hdHMgb2YgdGhlIGVuZ2luZS4KPj4+Pj4+ Cj4+Pj4+PiBUaGUgRURJRCBwcm9wZXJ0eSBpcyBub3QgZXhwb3NlZCBmb3Igd3JpdGViYWNrIGNv bm5lY3RvcnMuCj4+Pj4+Pgo+Pj4+Pj4gV3JpdGViYWNrIGNvbm5lY3RvciB1c2FnZToKPj4+Pj4+ IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+Pj4+PiBEdWUgdG8gY29ubmVjdG9yIHJvdXRp bmcgY2hhbmdlcyBiZWluZyB0cmVhdGVkIGFzICJmdWxsIG1vZGVzZXQiCj4+Pj4+PiBvcGVyYXRp b25zLCBhbnkgY2xpZW50IHdoaWNoIHdpc2hlcyB0byB1c2UgYSB3cml0ZWJhY2sgY29ubmVjdG9y Cj4+Pj4+PiBzaG91bGQgaW5jbHVkZSB0aGUgY29ubmVjdG9yIGluIGV2ZXJ5IG1vZGVzZXQuIFRo ZSB3cml0ZWJhY2sgd2lsbCBub3QKPj4+Pj4+IGFjdHVhbGx5IGJlY29tZSBhY3RpdmUgdW50aWwg YSBmcmFtZWJ1ZmZlciBpcyBhdHRhY2hlZC4KPj4+Pj4KPj4+Pj4KPj4+Pj4KPj4+Pj4gRXJobSwg dGhpcyBpcyBqdXN0IHRoZSBkZWZhdWx0LCBkcml2ZXJzIGNhbiBvdmVycmlkZSB0aGlzLiBBbmQg d2UgY291bGQKPj4+Pj4gY2hhbmdlIHRoZSBhdG9taWMgaGVscGVycyB0byBub3QgbWFyayBhIG1v ZGVzZXQgYXMgYSBtb2Rlc2V0IGlmIHRoZQo+Pj4+PiBjb25uZWN0b3IgdGhhdCBjaGFuZ2VkIGlz IGEgd3JpdGViYWNrIG9uZS4KPj4+Pj4KPj4+Pgo+Pj4+IEhtbSwgbWF5YmUuIEkgZG9uJ3QgdGhp bmsgaXQncyBpZGVhbCAtIHRoZSBkcml2ZXIgd291bGQgbmVlZCB0bwo+Pj4+IHJlLWltcGxlbWVu dCBkcm1fYXRvbWljX2hlbHBlcl9jaGVja19tb2Rlc2V0LCB3aGljaCBpcyBxdWl0ZSBhIGNodW5r Cj4+Pj4gb2YgY29kZSAoYWxvbmcgd2l0aCBleHBvc2luZyB1cGRhdGVfY29ubmVjdG9yX3JvdXRp bmcsIG1vZGVfZml4dXAsCj4+Pj4gbWF5YmUgb3RoZXJzKSwgYW5kIGV2ZW4gYWZ0ZXIgdGhhdCBp dCB3b3VsZCBoYXZlIHRvIGxpZSBhbmQgc2V0Cj4+Pj4gY3J0Y19zdGF0ZS0+Y29ubmVjdG9yc19j aGFuZ2VkIHRvIGZhbHNlIHNvIHRoYXQKPj4+PiBkcm1fY3J0Y19uZWVkc19tb2Rlc2V0IHJldHVy bnMgZmFsc2UgdG8gZHJtX2F0b21pY19jaGVja19vbmx5Lgo+Pj4KPj4+Cj4+PiBZb3Ugb25seSBu ZWVkIHRvIHVwZGF0ZSB0aGUgcHJvcGVydHkgaW4geW91ciBlbmNvZGVycydzIC0+YXRvbWljX2No ZWNrCj4+PiBmdW5jdGlvbi4gTm8gbmVlZCBmb3IgbW9yZSwgYW5kIEkgdGhpbmsgYmVpbmcgY29u c2lzdGVudCB3aXRoCj4+PiBjb21wdXRpbmcgd2hlbiB5b3UgbmVlZCBhIG1vZGVzZXQgaXMgcmVh bGx5IGEgY3J1Y2lhbCBwYXJ0IG9mIHRoZQo+Pj4gYXRvbWljIGlvY3RsIHRoYXQgd2Ugc2hvdWxk IGltbyB0cnkgdG8gaW1wbGVtZW50IGNvcnJlY3RseSBhcyBtdWNoIGFzCj4+PiBwb3NzaWJsZS4K Pj4+Cj4+Cj4+IFNvcnJ5IEkgcmVhbGx5IGRvbid0IGZvbGxvdy4gV2hpY2ggcHJvcGVydHk/IENS VENfSUQ/Cj4+Cj4+IFVzZXJzcGFjZSBjaGFuZ2luZyBDUlRDX0lEIHdpbGwgY2hhbmdlIGNvbm5l Y3Rvcl9zdGF0ZS0+Y3J0YyAoYmVmb3JlCj4+IHdlIGV2ZW4gZ2V0IHRvIGEgZHJpdmVyIGNhbGxi YWNrKS4KPj4KPj4gQWZ0ZXIgdGhhdCwgZHJtX2F0b21pY19oZWxwZXJfY2hlY2tfbW9kZXNldCBk ZXJpdmVzIGNvbm5lY3RvcnNfY2hhbmdlZAo+PiBiYXNlZCBvbiB0aGUgLT5jcnRjIHBvaW50ZXJz Lgo+Pgo+PiBBZnRlciB0aGF0LCBteSBlbmNvZGVyIC0+YXRvbWljX2NoZWNrICpjb3VsZCogY2xl YXIKPj4gY29ubmVjdG9yc19jaGFuZ2VkIChvciBJIGNvdWxkIGFjaGlldmUgdGhlIHNhbWUgdGhp bmcgYnkgd3JhcHBpbmcKPj4gZHJtX2F0b21pY19oZWxwZXJfY2hlY2spLCBidXQgaXQgc2VlbXMg d3JvbmcgdG8gZG8gc28sIGNvbnNpZGVyaW5nCj4+IHRoYXQgdGhlIGNvbm5lY3RvciByb3V0aW5n ICpoYXMqIGNoYW5nZWQuCj4+Cj4+IElmIHlvdSB0aGluayBjaGFuZ2luZyBDUlRDX0lEIHNob3Vs ZG4ndCByZXF1aXJlIGEgZnVsbCBtb2Rlc2V0LCBJJ2QKPj4gcmF0aGVyIGdpdmUgZHJpdmVycyBh IC0+bmVlZHNfbW9kZXNldCBjYWxsYmFjayB0byBvdmVycmlkZSB0aGUgZGVmYXVsdAo+PiBkcm1f YXRvbWljX2NydGNfbmVlZHNfbW9kZXNldCBiZWhhdmlvdXIsIGluc3RlYWQgb2YgInRyaWNraW5n IiBpdCBpbnRvCj4+IHJldHVybmluZyBmYWxzZS4KPgo+VGhlIHByb2JsZW0gd2l0aCBqdXN0IHRo YXQgaXMgdGhhdCB0aGVyZSdzIGxvdHMgb2YgZGlmZmVyZW50IHRoaW5ncwo+dGhhdCBjYW4gZmVl ZCBpbnRvIHRoZSBvdmVyYWxsIG5lZWRzX21vZGVzZXQgdmFyaWFibGUuIFRoYXQncyB3aHkgd2UK PnNwbGl0IGl0IHVwIGludG8gbXVsdGlwbGUgYm9vbGVhbnMuCj4KPlNvIHllcyB5b3UncmUgc3Vw cG9zZWQgdG8gY2xlYXIgY29ubmVjdG9yc19jaGFuZ2VkIGlmIHRoZXJlIGlzIHNvbWUKPmNoYW5n ZSB0aGF0IHlvdSBjYW4gaGFuZGxlIHdpdGhvdXQgYSBmdWxsIG1vZGVzZXQuIElmIHlvdSB3YW50 LCB0aGluawo+b2YgY29ubmVjdG9yc19jaGFuZ2VkIGFzCj5uZWVkc19tb2Rlc2V0X2R1ZV90b19j aGFuZ2VfaW5fY29ubm5lY3Rvcl9zdGF0ZSwgYnV0IHRoYXQncyBjdW1iZXJzb21lCj50byB0eXBl IGFuZCB0b28gbG9uZyA7LSkKPgoKQWxsIHJpZ2h0LCBnb3QgaXQgOi0pLiBUaGlzIGludGVudGlv biB3YXNuJ3QgY2xlYXIgdG8gbWUgZnJvbSB0aGUKY29tbWVudHMgaW4gdGhlIGNvZGUuCgo+PiBJ IGNhbiBpbWFnaW5lIHNvbWUgaGFyZHdhcmUgd2lsbCBuZWVkIGEgZnVsbCBtb2Rlc2V0IHRvIGNo YW5nZWQgdGhlCj4+IHdyaXRlYmFjayBDUlRDIGJpbmRpbmcgYW55d2F5Lgo+Cj5ZdXAsIGFuZCB0 aGVuIHRoZXkgY2FuIHVwZ3JhZGUgdGhpcyBhZ2Fpbi4gV2l0aCBhbGwgdGhlc2UgZmxvdy1jb250 cm9sCj5ib29sZWFucyB0aGUgaWRlYSBpcyB2ZXJ5IG11Y2ggdGhhdCBoZWxwZXJzIGdpdmUgYSBk ZWZhdWx0IHRoYXQgd29ya3MKPmZvciA5MCUgb2YgYWxsIGNhc2VzLCBhbmQgZHJpdmVyIGNhbGxi YWNrcyBjYW4gdGhlbiBjaGFuZ2UgaXQgZm9yIHRoZQo+b3RoZXIgMTAlLgo+Cj4+Pj4gSSB0cmll ZCB0byBrZWVwIHNwZWNpYWwtY2FzaW5nIG9mIHdyaXRlYmFjayBjb25uZWN0b3JzIGluIHRoZSAK Pj4+PiBjb3JlIHRvCj4+Pj4gYSBiYXJlIG1pbmltdW0sIGJlY2F1c2UgSSB0aGluayBpdCB3aWxs IHF1aWNrbHkgZ2V0IG1lc3N5IGFuZCBmcmFnaWxlCj4+Pj4gb3RoZXJ3aXNlLgo+Pj4KPj4+Cj4+ PiBQbGVhc2UgYWx3YXlzIG1ha2UgdGhlIGRpc2RpbmN0aW9uIGJldHdlZW4gY29yZSBhbmQgc2hh cmVkIGRybQo+Pj4gaGVscGVycy4gU3BlY2lhbCBjYXNlcyBpbiBjb3JlID09IHByb2JhYmx5IG5v dCBnb29kLiBTcGVjaWFsIGNhc2VzIGluCj4+PiBoZWxwZXJzID09IHBlcmZlY3RseSBmaW5lIGlt by4KPj4+Cj4+Pj4gSG9uZXN0bHksIEkgZG9uJ3Qgc2VlIG1vZGVzZXR0aW5nIHRoZSB3cml0ZWJh Y2sgY29ubmVjdG9ycyBhdAo+Pj4+IHN0YXJ0LW9mLWRheSBhcyBhIGJpZyBwcm9ibGVtLgo+Pj4K Pj4+Cj4+PiBJdCdzIGluY29uc2lzdGVudC4gQ2xhaW1pbmcgaXQgbmVlZHMgYSBtb2Rlc2V0IHdo ZW4gaXQgZG9lc24ndCBpc24ndAo+Pj4gZ3JlYXQuIE1ha2luZyB0aGF0IG1vcmUgZGlzY292ZXJh YmxlIHRvIHVzZXJzcGFjZSBpcyB0aGUgZW50aXJlIHBvaW50Cj4+PiBvZiBhdG9taWMuIEFuZCB0 aGVyZSBtaWdodCBiZSBodyB3aGVyZSByZWNvbmZpZ3VyaW5nIGZvciB3cml0ZWJhY2sKPj4+IG1p Z2h0IG5lZWQgYSBmdWxsIG1vZGVzZXQuCj4+Pgo+Pgo+PiBJJ20gYSBsaXR0bGUgY29uZnVzZWQg LSB3aGF0IGJpdCBleGFjdGx5IGlzIGluY29uc2lzdGVudD8KPgo+Tm90IGJlaW5nIHRydXRoZnVs IGZvciB3aGVuIHlvdSBuZWVkIGEgbW9kZXNldCBhbmQgd2hlbiBub3QuCj4KPj4gTXkgaW1wbGVt ZW50YXRpb24gaGVyZSBpcyBjb25zaXN0ZW50IHdpdGggb3RoZXIgY29ubmVjdG9ycy4KPj4gVXBk YXRpbmcgdGhlIHdyaXRlYmFjayBjb25uZWN0b3IgQ1JUQ19JRCBwcm9wZXJ0eSByZXF1aXJlcyBh IGZ1bGwKPj4gbW9kZXNldCwgdGhlIHNhbWUgYXMgb3RoZXIgY29ubmVjdG9ycy4KPgo+SXQncyBu b3QgYWJvdXQgY29uc2lzdGVuY3kgd2l0aCBvdGhlciBpbXBsZW1lbnRhdGlvbnMsIGl0J3MgYWJv dXQKPmNvbnNpc3RlbmN5IHdpdGggd2hhdCB5b3VyIGh3IGNhbiBkby4gRS5nLiBpOTE1IGNsZWFy cwo+Y3J0Y19zdGF0ZS0+bW9kZV9jaGFuZ2VkIHdoZW4gd2UgY2FuIGRvIGEgbW9kZSBjaGFuZ2Ug d2l0aG91dCBhIGZ1bGwKPm1vZGVzZXQuIFRoZSBnb2FsIG9mIGF0b21pYyBpcyB0byBleHBvc2Ug dGhlIGZ1bGwgZmVhdHVyZXMgb2YgZWFjaCBodwo+KGluY2x1ZGluZyBhbGwgcXVpcmtzKSwgbm90 IHJlZHVjZSBpdCBhbGwgdG8gYSBsZWFzdCBjb21tb24gc2V0IG9mCj5zaGFyZWQgZmVhdHVyZXMu Cj4KClVuZGVyc3Rvb2QsIEkgd2lsbCBtYWtlIHN1cmUgdGhhdCB3ZSBkb24ndCByZXF1aXJlIGEg bW9kZXNldCB1bmxlc3MKYWJzb2x1dGVseSBuZWNlc3NhcnkuCgo+PiBDaGFuZ2luZyB0aGUgRkJf SUQgZG9lcyAqbm90KiByZXF1aXJlIGEgZnVsbCBtb2Rlc2V0LCBiZWNhdXNlIG91cgo+PiBoYXJk d2FyZSBoYXMgbm8gc3VjaCByZXN0cmljdGlvbi4gVGhpcyBpcyBhbmFsb2dvdXMgdG8gdXBkYXRp bmcgdGhlCj4+IEZCX0lEIG9uIG91ciBwbGFuZXMsIGFuZCBpcyBjb25zaXN0ZW50IHdpdGggdGhl IG90aGVyIGluc3RhbmNlcyBvZiB0aGUKPj4gRkJfSUQgcHJvcGVydHkuCj4KPldlbGwgdGhhdCdz IGluY29uc2lzdGVudCB3aXRoIGNvbm5lY3RvciBwcm9wZXJ0aWVzLCBiZWNhdXNlIGluIGdlbmVy YWwKPnRoZXkgYWxsIGRvIHJlcXVpcmUgYSBmdWxsIG1vZGVzZXQgdG8gY2hhbmdlIDstKSBJLmUu IGNvbnNpc3RlbmN5IHdpdGgKPm90aGVyIGRyaXZlcnMgcmVhbGx5IGlzbid0IGEgZ29vZCBhcmd1 bWVudC4KPgo+PiBJZiB0aGVyZSBpcyBoYXJkd2FyZSB3aGljaCBkb2VzIGhhdmUgYSByZXN0cmlj dGlvbiBvbiBjaGFuZ2luZyBGQl9JRCwgSQo+PiB0aGluayB0aGF0IGRyaXZlciBtdXN0IGJlIHJl c3BvbnNpYmxlIGZvciBoYW5kbGluZyBpdCBpbiB0aGUgc2FtZQo+PiB3YXkgYXMgZHJpdmVycyB3 aGljaCBjYW4ndCBoYW5kbGUgcGxhbmUgdXBkYXRlcyB3aXRob3V0IGEgZnVsbAo+PiBtb2Rlc2V0 Lgo+Pgo+PiBBcmUgeW91IHNheWluZyB0aGF0IGJlY2F1c2Ugc2V0dGluZyBDUlRDX0lEIG9uIE1h bGktRFAgaXMgYSBuby1vcCwgaXQKPj4gc2hvdWxkbid0IHJlcXVpcmUgYSBmdWxsIG1vZGVzZXQ/ IEknZCByYXRoZXIgc29tZWhvdyBoYXJkLWNvZGUgdGhlCj4+IENSVENfSUQgZm9yIG91ciB3cml0 ZWJhY2sgY29ubmVjdG9yIHRvIGhhdmUgaXQgYWx3YXlzIGF0dGFjaGVkIHRvCj4+IHRoZSBDUlRD IGluIHRoYXQgY2FzZS4KPgo+WXVwLCBJIHRoaW5rIGlmIGNoYW5naW5nIHRoZSBDUlRDX0lEIG9m IHRoZSB3cml0ZWJhY2sgY29ubmVjdG9yCj5kb2Vzbid0IHJlcXVpcmUgYSBtb2Rlc2V0LCB0aGVu IHlvdXIgZHJpdmVyIGJldHRlciBub3QgcmVxdWlyZSBhIGZ1bGwKPm1vZGVzZXQgdG8gZG8gdGhh dCBjaGFuZ2UuIE1heWJlIHRoZXJlJ3Mgb25seSBvbmUgd3JpdGViYWNrIHBvcnQsIGFuZAo+dXNl cnNwYWNlIHdhbnRzIHRvIG1vdmUgaXQgYXJvdW5kLiBBbmQgaWYgdGhlIGh3IHN1cHBvcnRzIHRo YXQgd2l0aG91dAo+YSBmdWxsIG1vZGVzZXQsIHRoZW4gSSB0aGluayB3ZSBzaG91bGQgYWxsb3cg dGhhdC4gSSBhbHNvIHRoaW5rIHRoYXQKPm1vc3QgaHcgd2lsbCBnZXQgYXdheSB3aXRoIGNoYW5n aW5nIHRoZSB3cml0ZWJhY2sgcm91dGluZyB3aXRob3V0Cj5kb2luZyBhIGZ1bGwgbW9kZXNldC4g SSBtaWdodCBiZSBtaXN0YWtlbiBhYm91dCB0aGF0IHRob3VnaC4gQW5kIGlmCj5pdCdzIG5vdCBj bGVhci1jdXQgd2UgY291bGQgYWRkIGEgbmV3IHdyaXRlYmFja19jaGFuZ2VkIGJvb2xlYW4gdG8K PnRyYWNrIHRoaXMuCj4KPkFuZCBmcm9tIGEgdXNlciBleHBlcmllbmNlIHBvdiBJIHJlYWxseSB0 aGluayB3ZSBzaG91bGQgYXZvaWQgbW9kZXNldHMKPmxpa2UgdGhlIHBsYWd1ZS4gUGx1Z2dpbmcg aW4gYSBjaHJvbWVjYXN0IHN0aWNrIGFuZCB0aGVuIHdhdGNoaW5nIGhvdwo+eW91ciBwYW5lbCBm bGlja2VycyBpcyBqdXN0IG5vdCBuaWNlLgo+CgpZdXAsIG1ha2VzIHNlbnNlLiBJIHRoaW5rIG15 IG1pbmRzZXQgaXMgc3RpbGwgYSBiaXQgc3R1Y2sgaW4gU0VUQ1JUQy0KbGFuZC4KCj4+Pj4+PiBU aGUgd3JpdGViYWNrIGl0c2VsZiBpcyBlbmFibGVkIGJ5IGF0dGFjaGluZyBhIGZyYW1lYnVmZmVy IHRvIHRoZQo+Pj4+Pj4gRkJfSUQgcHJvcGVydHkgb2YgdGhlIGNvbm5lY3Rvci4gVGhlIGRyaXZl ciBtdXN0IHRoZW4gZW5zdXJlIHRoYXQgdGhlCj4+Pj4+PiBDUlRDIGNvbnRlbnQgb2YgdGhhdCBh dG9taWMgY29tbWl0IGlzIHdyaXR0ZW4gaW50byB0aGUgZnJhbWVidWZmZXIuCj4+Pj4+Pgo+Pj4+ Pj4gVGhlIHdyaXRlYmFjayB3b3JrcyBpbiBhIG9uZS1zaG90IG1vZGUgd2l0aCBlYWNoIGF0b21p YyBjb21taXQuIFRoaXMKPj4+Pj4+IHByZXZlbnRzIHRoZSBzYW1lIGNvbnRlbnQgZnJvbSBiZWlu ZyB3cml0dGVuIG11bHRpcGxlIHRpbWVzLgo+Pj4+Pj4gSW4gc29tZSBjYXNlcyAoZnJvbnQtYnVm ZmVyIHJlbmRlcmluZykgdGhlcmUgbWlnaHQgYmUgYSBkZXNpcmUgZm9yCj4+Pj4+PiBjb250aW51 b3VzIG9wZXJhdGlvbiAtIEkgdGhpbmsgYSBwcm9wZXJ0eSBjb3VsZCBiZSBhZGRlZCBsYXRlciBm b3IKPj4+Pj4+IHRoaXMga2luZCBvZiBjb250cm9sLgo+Pj4+Pj4KPj4+Pj4+IFdyaXRlYmFjayBj YW4gYmUgZGlzYWJsZWQgYnkgc2V0dGluZyBGQl9JRCB0byB6ZXJvLgo+Pj4+Pgo+Pj4+Pgo+Pj4+ Pgo+Pj4+PiBUaGlzIHNlZW1zIHRvIGNvbnRyYWRpY3QgaXRzZWxmOiBJZiBpdCdzIG9uZS1zaG90 LCB0aGVyZSdzIG5vIG5lZWQgdG8KPj4+Pj4gZGlzYWJsZSBpdCAtIGl0IHdpbGwgYXV0by1kaXNh YmxlLgo+Pj4+Cj4+Pj4KPj4+Pgo+Pj4+IEkgc2hvdWxkIGhhdmUgZXhwbGFpbmVkIG9uZS1zaG90 IG1vcmUgY2xlYXJseS4gV2hhdCBJIG1lYW4gaXMsIG9uZQo+Pj4+IGRybU1vZGVBdG9taWNDb21t aXQgPT0gb25lIHdyaXRlIHRvIG1lbW9yeS4gVGhpcyBpcyBhcyBvcHBvc2VkIHRvCj4+Pj4gd3Jp dGluZyB0aGUgc2FtZSB0aGluZyB0byBtZW1vcnkgZXZlcnkgdnN5bmMgdW50aWwgaXQgaXMgc3Rv cHBlZAo+Pj4+ICh3aGljaCBvdXIgSFcgaXMgY2FwYWJsZSBvZiBkb2luZykuCj4+Pj4KPj4+PiBB IHN1YnNlcXVlbnQgZHJtTW9kZUF0b21pY0NvbW1pdCB3aGljaCBkb2Vzbid0IHRvdWNoIHRoZSB3 cml0ZWJhY2sgRkJfSUQKPj4+PiB3aWxsIHdyaXRlIChhZ2FpbiAtIGJ1dCB3aXRoIHdoYXRldmVy IHNjZW5lIHVwZGF0ZXMpIHRvIHRoZSBzYW1lCj4+Pj4gZnJhbWVidWZmZXIuCj4+Pj4KPj4+PiBU aGlzIGNvbnRpbnVlcyBmb3IgZXZlcnkgZHJtTW9kZUF0b21pY0NvbW1pdCB1bnRpbCBGQl9JRCBp cyBzZXQgdG8KPj4+PiB6ZXJvIC0gdG8gZGlzYWJsZSB3cml0aW5nIC0gb3IgY2hhbmdlZCB0byBh IGRpZmZlcmVudCBmcmFtZWJ1ZmZlciwgaW4KPj4+PiB3aGljaCBjYXNlIHdlIHdyaXRlIHRvIHRo ZSBuZXcgb25lLgo+Pj4+Cj4+Pj4gSU1PIHRoaXMgYmVoYXZpb3VyIG1ha2VzIHNlbnNlIGluIHRo ZSBjb250ZXh0IG9mIHRoZSByZXN0IG9mIEF0b21pYywKPj4+PiBhbmQgYXMgdGhlIEZCX0lEIGlz IGluZGVlZCBwZXJzaXN0ZW50IGFjcm9zcyBhdG9taWMgY29tbWl0cywgSSB0aGluawo+Pj4+IGl0 IHNob3VsZCBiZSByZWFkLWFibGUuCj4+Pgo+Pj4KPj4+IHRiaCBJIGRvbid0IGxpa2UgdGhhdCwg SSB0aGluayBpdCdkIGJlIGJldHRlciB0byBtYWtlIHRoaXMgdHJ1bHkKPj4+IG9uZS1zaG90LiBP dGhlcndpc2Ugd2UnbGwgaGF2ZSByZWFsIGZ1biBwcm9ibGVtcyB3aXRoIGh3IHdoZXJlIHRoZQo+ Pj4gd3JpdGViYWNrIGNhbiB0YWtlIGxvbmdlciB0aGFuIGEgdmJsYW5rIChpdCBoYXBwZW5zIC4u LikuIFNvIG9uZS1zaG90LAo+Pj4gd2l0aCBhdXRvLWNsZWFyaW5nIHRvIE5VTEwvMCBpcyBpbW8g dGhlIHJpZ2h0IGFwcHJvYWNoLgo+Pj4KPj4KPj4gVGhhdCdzIGFuIGludGVyZXN0aW5nIHBvaW50 IGFib3V0IGhhcmR3YXJlIHdoaWNoIHdvbid0IGZpbmlzaCB3aXRoaW4KPj4gb25lIGZyYW1lOyBi dXQgSSBkb24ndCBzZWUgaG93ICJ0cnVlIG9uZS1zaG90IiBoZWxwcy4KPj4KPj4gV2hhdCdzIHRo ZSBleHBlY3RlZCBiZWhhdmlvdXIgaWYgdXNlcnNwYWNlIG1ha2VzIGEgbmV3IGF0b21pYyBjb21t aXQKPj4gd2l0aCBhIHdyaXRlYmFjayBmcmFtZWJ1ZmZlciB3aGlsc3QgYSBwcmV2aW91cyB3cml0 ZWJhY2sgaXMgb25nb2luZz8KPj4KPj4gSW4gYm90aCBjYXNlcywgeW91IGVpdGhlciBuZWVkIHRv IGJsb2NrIG9yIGZhaWwgdGhlIGNvbW1pdCAtIHdoZXRoZXIKPj4gdGhlIGZyYW1lYnVmZmVyIGdl dHMgcmVtb3ZlZCB3aGVuIGl0J3MgZG9uZSBpcyBpbW1hdGVyaWFsLgo+Cj5TZWUgRXJpYydzIHF1 ZXN0aW9uLiBXZSBuZWVkIHRvIGRlZmluZSB0aGF0LCBhbmQgSSB0aGluayB0aGUgc2ltcGxlc3QK PmFwcHJvYWNoIGlzIGEgY29tcGxldGlvbiBmZW5jZS9zeW5jX2ZpbGUuIEl0J3MgZGVzdGFnZWQg bm93IGluIDQuOSwgd2UKPmNhbiB1c2UgdGhlbS4gSSB0aGluayB0aGUgc2ltcGxlc3QgdWFiaSB3 b3VsZCBiZSBhIHBvaW50ZXIgcHJvcGVydHkKPih1NjQpIHdoZXJlIHdlIHdyaXRlIHRoZSBmZCBv ZiB0aGUgZmVuY2Ugd2UnbGwgc2lnbmFsIHdoZW4gd3JpdGUtb3V0Cj5jb21wbGV0ZXMuCj4KClRo YXQgdGVsbHMgdXNlcnNwYWNlIHRoYXQgdGhlIHByZXZpb3VzIHdyaXRlYmFjayBpcyBmaW5pc2hl ZCwgSSBhZ3JlZSAKdGhhdCdzIG5lZWRlZC4gSXQgZG9lc24ndCBkZWZpbmUgYW55IGJlaGF2aW91 ciBpbiBjYXNlIHVzZXJzcGFjZSBhc2tzIApmb3IgYW5vdGhlciB3cml0ZWJhY2sgYmVmb3JlIHRo YXQgZmVuY2UgZmlyZXMgdGhvdWdoLgoKPj4+Pj4gSW4gb3RoZXIgY2FzZXMgd2hlcmUgd2Ugd3Jp dGUgYSBwcm9wZXJ0eSBhcyBhIG9uZS1zaG90IHRoaW5nIChmZW5jZXMgZm9yCj4+Pj4+IGFuZHJv aWQpLiBJbiB0aGF0IGNhc2Ugd2hlbiB5b3UgcmVhZCB0aGF0IHByb3BlcnR5IGl0J3MgYWx3YXlz IDAgKHdlbGwsCj4+Pj4+IC0xCj4+Pj4+IGZvciBmZW5jZXMgc2luY2UgZmlsZSBkZXNjcmlwdG9y KS4gVGhhdCBhbHNvIGF2b2lkcyB0aGUgaXNzdWVzIHdoZW4KPj4+Pj4gdXNlcnNwYWNlIHVuY29u ZGl0aW9uYWxseSBzYXZlcy9yZXN0b3JlcyBhbGwgcHJvcGVydGllcyAodGhpcyBpcyBuZWVkZWQK Pj4+Pj4gZm9yIGdlbmVyaWMgY29tcG9zaXRvciBzd2l0Y2hpbmcpLgo+Pj4+Pgo+Pj4+PiBJIHRo aW5rIGEgYmV0dGVyIGJlaGF2aW91ciB3b3VsZCBiZSB0byBkbyB0aGUgc2FtZSB0cmljaywgd2l0 aCBGQl9JRCBvbgo+Pj4+PiB0aGUgY29ubmVjdG9yIGFsd2F5cyByZXR1cm5pbmcgMCBhcyB0aGUg Y3VycmVudCB2YWx1ZS4gVGhhdCBlbmNvZGVzIHRoZQo+Pj4+PiBvbmUtc2hvdCBiZWhhdmlvdXIg ZGlyZWN0bHkuCj4+Pj4+CgpJIGhhZCBtb3JlIG9mIGEgdGhpbmsgYWJvdXQgdGhpcy4gSSB0aGlu ayB5b3UncmUgcmlnaHQgdGhhdApvbmUtc2hvdC13cml0ZS1vbmx5IG1ha2VzIHNlbnNlIGZvciB0 aGUgZnJhbWVidWZmZXIgLSBhdCBsZWFzdCBJIGNhbid0CnRoaW5rIG9mIGEgZGVjZW50IHVzZSBj YXNlIG5lZWRpbmcgdGhlIHBlcnNpc3RlbnQgYmVoYXZpb3VyIHdoaWNoCmNvdWxkbid0IGVhc2ls eSBiZSBhY2hpZXZlZCB1c2luZyB0aGUgb25lLXNob3Qgc3R5bGUuCgpUaGFua3MhCi1CcmlhbgoK Pj4+Pj4gRm9yIG9uZS1zaG90IHZzIGNvbnRpbnVvdXM6IE1heWJlIHdlIHdhbnQgdG8gc2ltcGx5 IGhhdmUgYSBzZXBhcmF0ZQo+Pj4+PiB3cml0ZWJhY2sgcHJvcGVydHkgZm9yIGNvbnRpbnVlcywg ZS5nLiBGQl9XUklURUJBQ0tfT05FX1NIT1RfSUQgYW5kCj4+Pj4+IEZCX1dSSVRFQkFDS19DT05U SU5VT1VTX0lELgo+Pj4+Pgo+Pj4+Pj4gS25vd24gaXNzdWVzOgo+Pj4+Pj4gLS0tLS0tLS0tLS0t LQo+Pj4+Pj4gICogSSdtIG5vdCBzdXJlIHdoYXQgIkRQTVMiIHNob3VsZCBtZWFuIGZvciB3cml0 ZWJhY2sgY29ubmVjdG9ycy4KPj4+Pj4+ICAgIEl0IGNvdWxkIGJlIHVzZWQgdG8gZGlzYWJsZSB3 cml0ZWJhY2sgKGV2ZW4gd2hlbiBhIGZyYW1lYnVmZmVyIGlzCj4+Pj4+PiAgICBhdHRhY2hlZCks IG9yIGl0IGNvdWxkIGJlIGhpZGRlbiBlbnRpcmVseSAod2hpY2ggd291bGQgYnJlYWsgdGhlCj4+ Pj4+PiAgICBsZWdhY3kgRFBNUyBjYWxsIGZvciB3cml0ZWJhY2sgY29ubmVjdG9ycykuCj4+Pj4+ Cj4+Pj4+Cj4+Pj4+Cj4+Pj4+IGRwbXMgaXMgbGVnYWN5LCBpbiBhdG9taWMgbGFuZCB0aGUgb25s eSB0aGluZyB5b3UgaGF2ZSBpcyAiQUNUSVZFIiBvbgo+Pj4+PiB0aGUKPj4+Pj4gY3J0Yy4gaXQg ZGlzYWJsZXMgZXZlcnl0aGluZywgaS5lLiBhbHNvIHdyaXRlYmFjay4KPj4+Pj4KPj4+Pgo+Pj4+ IFNvIHJlbW92aW5nIHRoZSBEUE1TIHByb3BlcnR5IGlzIGEgdmlhYmxlIG9wdGlvbiBmb3Igd3Jp dGViYWNrIGNvbm5lY3RvcnMKPj4+PiBpbgo+Pj4+IHlvdXIgb3Bpbmlvbj8KPj4+Cj4+Pgo+Pj4g TmFoLCB0aGF0J3MgcGFydCBvZiB0aGUgYWJpIG5vdy4gQnV0IGF0b21pYyBpbnRlcm5hbGx5IHJl bWFwcyBpdCB0bwo+Pj4gIkFDVElWRSIsIGluIHNob3J0IHlvdSBkb24ndCBuZWVkIHRvIGNhcmUg KGFzIGxvbmcgYXMgeW91IGZpbGwgb3V0IHRoZQo+Pj4gZHBtcyBob29rIHdpdGggdGhlIHByb3Zp ZGVkIGhlbHBlci4gZHJtX3dyaXRlYmFja19jb25uZWN0b3JfaW5pdAo+Pj4gc2hvdWxkIHByb2Jh Ymx5IGRvIHRoYXQpLgo+Pj4KPj4KPj4gQSBjb25uZWN0b3IgY2FuIHN0aWxsIGJlIERQTVMtZWQg aW5kaXZpZHVhbGx5LCBzbyBhIENSVEMgY2FuIGJlCj4+ICJBQ1RJVkUiLCBhdHRhY2hlZCB0byBh biAiT0ZGIiB3cml0ZWJhY2sgY29ubmVjdG9yLCBhbmQgdGhlIHdyaXRlYmFjawo+PiBjb25uZWN0 b3Igd291bGQgc3RpbGwgYmUgYWJsZSB0byBhY3RpdmVseSB3cml0ZSB0byBtZW1vcnkuCj4KPlll cywgYnV0IGF0b21pYyBkcml2ZXJzIGlnbm9yZSB0aGF0LiBZb3Ugc2hvdWxkIHRvby4gSSB3b24n dCB0YWtlCj5wYXRjaGVzIHdoaWNoIGNyZWF0ZSBzcGVjaWFsIGJlaGF2aW91ciBmb3IgZHBtcyBv biB0aGUgd3JpdGViYWNrCj5jb25uZWN0b3IuIElmIHlvdSB3YW50IHRvIGNoYW5nZSB0aGUgd3Jp dGViYWNrIHNlcGFyYXRlbHksIHRoZW4gd2UgY2FuCj5jaGFuZ2UgdGhlIENSVENfSUQgb2YgdGhl IHdyaXRlYmFjayBjb25uZWN0b3IuIEFuZCB0aGUgZHJpdmVyIHNob3VsZAo+cmVwb3J0IGNvcnJl Y3RseSB3aGV0aGVyIHRoYXQgbmVlZHMgYSBtb2Rlc2V0IG9yIG5vdC4KPgo+PiBJJ20gT0sgd2l0 aCB0aGF0LCBhbmQgaXQncyB3aGF0IEkgYWxyZWFkeSBpbXBsZW1lbnRlZCwgYnV0IEkgdGhvdWdo dAo+PiB0aGF0IHVzZXJzcGFjZSBtaWdodCByZWFzb25hYmx5IGV4cGVjdCBhIHdyaXRlYmFjayBj b25uZWN0b3Igd2l0aCBEUE1TCj4+IHNldCB0byAiT0ZGIiB0byBiZSBjb21wbGV0ZWx5IGluZXJ0 Lgo+Cj5Ob3BlLCBEUE1TIHR1cm5lZCBvdXQgdG8gYmUgYSBtaXN0YWtlIGluIGttcyAobm8gb25l IHN1cHBvcnRzIHRoZQo+aW50ZXJtZWRpYXRlIHN0YWdlcywgdGhleSBkb24ndCBtYWtlIHNlbnNl KSBhbmQgd2UgbmVyZmVkIGl0IGluCj5hdG9taWMuIFBsZWFzZSBkb24ndCByZXN1cnJlY3Qgem9t YmllcyA7LSkKPi1EYW5pZWwKPi0tIAo+RGFuaWVsIFZldHRlcgo+U29mdHdhcmUgRW5naW5lZXIs IEludGVsIENvcnBvcmF0aW9uCj4rNDEgKDApIDc5IDM2NSA1NyA0OCAtIGh0dHA6Ly9ibG9nLmZm d2xsLmNoCj4KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K ZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==