From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: DRM Atomic property for color-space conversion Date: Fri, 17 Mar 2017 16:09:51 +0200 Message-ID: <20170317140951.GT31595@intel.com> References: <20170131155541.GF11506@e106950-lin.cambridge.arm.com> <20170316140725.GF31595@intel.com> <0cff6bab-7593-d3d2-f3b5-71dc21669dab@intel.com> <20170316143059.GG31595@intel.com> <20170316143721.GN6268@e110455-lin.cambridge.arm.com> <20170316155501.GA25006@e106950-lin.cambridge.arm.com> <20170316173656.GI31595@intel.com> <20170317103313.GA2090@e106950-lin.cambridge.arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id 867656E202 for ; Fri, 17 Mar 2017 14:09:57 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20170317103313.GA2090@e106950-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: Brian Starkey Cc: Local user for Liviu Dudau , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, mihail.atanassov@arm.com, linux-media@vger.kernel.org List-Id: dri-devel@lists.freedesktop.org T24gRnJpLCBNYXIgMTcsIDIwMTcgYXQgMTA6MzM6MTVBTSArMDAwMCwgQnJpYW4gU3RhcmtleSB3 cm90ZToKPiBIaSBWaWxsZSwKPiAKPiBPbiBUaHUsIE1hciAxNiwgMjAxNyBhdCAwNzozNjo1NlBN ICswMjAwLCBWaWxsZSBTeXJqw6Rsw6Qgd3JvdGU6Cj4gPk9uIFRodSwgTWFyIDE2LCAyMDE3IGF0 IDA3OjA1OjEyUE0gKzAyMDAsIFNoYXJtYSwgU2hhc2hhbmsgd3JvdGU6Cj4gPj4gT24gMy8xNi8y MDE3IDU6NTUgUE0sIEJyaWFuIFN0YXJrZXkgd3JvdGU6Cj4gPj4gPiBPbiBUaHUsIE1hciAxNiwg MjAxNyBhdCAwNToxNDowN1BNICswMjAwLCBTaGFybWEgU2hhc2hhbmsgd3JvdGU6Cj4gPj4gPj4g T24gMy8xNi8yMDE3IDQ6MzcgUE0sIExvY2FsIHVzZXIgZm9yIExpdml1IER1ZGF1IHdyb3RlOgo+ ID4+ID4+PiBPbiBUaHUsIE1hciAxNiwgMjAxNyBhdCAwNDozMDo1OVBNICswMjAwLCBWaWxsZSBT eXJqw6Rsw6Qgd3JvdGU6Cj4gPj4gPj4+PiBPbiBUaHUsIE1hciAxNiwgMjAxNyBhdCAwNDoyMDoy OVBNICswMjAwLCBTaGFybWEsIFNoYXNoYW5rIHdyb3RlOgo+ID4+ID4+Pj4+IE9uIDMvMTYvMjAx NyA0OjA3IFBNLCBWaWxsZSBTeXJqw6Rsw6Qgd3JvdGU6Cj4gCj4gW3NuaXBdCj4gCj4gPj4gPj4+ Pj4+Cj4gPj4gPj4+Pj4+IFNvIHdoYXQgd2UgbWlnaHQgbmVlZCBpcyBzb21ldGhpbmcgbGlrZToK PiA+PiA+Pj4+Pj4gZW51bSBZQ0JDUl9UT19SR0JfQ1NDCj4gPj4gPj4+Pj4+ICAgKiBZQ2JDciBC VC42MDEgbGltaXRlZCB0byBSR0IgQlQuNzA5IGZ1bGwKPiA+PiA+Pj4+Pj4gICAqIFlDYkNyIEJU LjcwOSBsaW1pdGVkIHRvIFJHQiBCVC43MDkgZnVsbCA8dGhpcyB3b3VsZCBiZSB0aGUKPiA+PiA+ Pj4+Pj4gbGlrZWx5IGRlZmF1bHQgdmFsdWUgSU1PPgo+ID4+ID4+Pj4+PiAgICogWUNiQ3IgQlQu NjAxIGxpbWl0ZWQgdG8gUkdCIEJULjIwMjAgZnVsbAo+ID4+ID4+Pj4+PiAgICogWUNiQ3IgQlQu NzA5IGxpbWl0ZWQgdG8gUkdCIEJULjIwMjAgZnVsbAo+ID4+ID4+Pj4+PiAgICogWUNiQ3IgQlQu MjAyMCBsaW1pdGVkIHRvIFJHQiBCVC4yMDIwIGZ1bGwKPiA+PiA+Pj4+Pj4KPiA+PiA+Pj4+Pj4g QW5kIHRoYW5rcyB0byBCVC4yMDIwIHdlJ2xsIG5lZWQgYSBSR0ItPlJHQiBDU0MgcHJvcGVydHkg YXMgd2VsbC4KPiA+PiA+Pj4+Pj4gRWc6Cj4gPj4gPj4+Pj4+IGVudW0gUkdCX1RPX1JHQl9DU0MK PiA+PiA+Pj4+Pj4gICAqIGJ5cGFzcyAob3Igc2VwYXJhdGUgNzA5LT43MDksIDIwMjAtPjIwMjA/ KSA8dGhpcyB3b3VsZCBiZSB0aGUKPiA+PiA+Pj4+Pj4gZGVmYXVsdD4KPiA+PiA+Pj4+Pj4gICAq IFJHQiBCVC43MDkgZnVsbCB0byBSR0IgQlQuMjAyMCBmdWxsCj4gPj4gPgo+ID4+ID4gSSBsaWtl IHRoaXMgYXBwcm9hY2gsIGZyb20gYSBwb2ludCBvZiB2aWV3IG9mIGJlaW5nIGV4cGxpY2l0IGFu ZAo+ID4+ID4gZGlzY292ZXJhYmxlIGJ5IHVzZXJzcGFjZS4gSXQgYWxzbyBoYXBwZW5zIHRvIG1h cCBxdWl0ZSBuaWNlbHkgdG8gb3VyCj4gPj4gPiBoYXJkd2FyZS4uLiB3ZSBoYXZlIGEgbWF0cml4 IGJlZm9yZSBkZWdhbW1hLCBzbyB3ZSBjb3VsZCBkbyBhCj4gPj4gPiBDU0MgKyBHYW11dCBjb252 ZXJzaW9uIHRoZXJlIGluIG9uZSBnbywgd2hpY2ggaXMgYXBwYXJlbnRseSBub3QgMTAwJQo+ID4+ ID4gbWF0aGVtYXRpY2FsbHkgY29ycmVjdCwgYnV0IGluIGdlbmVyYWwgaXMgZ29vZCBlbm91Z2gu Cj4gPj4gPgo+ID4+ID4gLi4uIGhvd2V2ZXIgaGF2aW5nIHRhbGtlZCB0aGlzIG92ZXIgYSBiaXQg d2l0aCBzb21lb25lIHdobyB1bmRlcnN0YW5kcwo+ID4+ID4gdGhlIGRldGFpbCBhIGxvdCBiZXR0 ZXIgdGhhbiBtZSwgaXQgc291bmRzIGxpa2UgdGhlICJjb3JyZWN0IiB0aGluZyB0bwo+ID4+ID4g ZG8gYXMgcGVyIHRoZSBzcGVjIGlzOgo+ID4+ID4KPiA+PiA+IENTQyAtPiBERUdBTU1BIC0+IEdB TVVUCj4gPj4gPgo+ID4+ID4gZS5nLgo+ID4+ID4KPiA+PiA+IFlDYkNyIGJ0LjYwMSBsaW1pdGVk IHRvIFJHQiBidC42MDEgZnVsbCAtPiBkZWdhbW1hIC0+Cj4gPj4gPiAgICAgUkdCIGJ0LjYwMSBm dWxsIHRvIFJHQiBidC43MDkgZnVsbAo+ID4+ID4KPiA+PiA+IFNvIHRoYXQgc291bmRzIGxpa2Ug d2hhdCB3ZSBuZWVkIHRvIHN1cHBvcnQgaW4gdGhlIEFQSSwgYW5kIGFsc28KPiA+PiA+IHNvdW5k cyBtb3JlIGxpa2UgdGhlICJzZXBhcmF0ZSBwcm9wZXJ0aWVzIiBhcHByb2FjaC4KPiA+PiBJIGFn cmVlLgo+ID4+ID4KPiA+PiA+Pj4+Pj4KPiA+PiA+Pj4+Pj4gQWx0ZXJuYXRpdmVzIHdvdWxkIGlu dm9sdmUgdHdvIHByb3BlcnRpZXMgdG8gZGVmaW5lIHRoZSBpbnB1dCBhbmQKPiA+PiA+Pj4+Pj4g b3V0cHV0Cj4gPj4gPj4+Pj4+IGZyb20gdGhlIENTQyBzZXBhcmF0ZWx5LCBidXQgdGhlbiB5b3Ug bG9zZSB0aGUgY2FwYWJpbGl0eSB0byBzZWUKPiA+PiA+Pj4+Pj4gd2hpY2gKPiA+PiA+Pj4+Pj4g Y29tYmluYXRpb25zIGFyZSBhY3R1YWxseSBzdXBvb3J0ZWQuCj4gPj4gPj4+Pj4gSSB3YXMgdGhp bmtpbmcgYWJvdXQgdGhpcyB0b28sIG9yIHdvdWxkIGl0IG1ha2UgbW9yZSBzZW5zZSB0bwo+ID4+ ID4+Pj4+IGNyZWF0ZSB0d28KPiA+PiA+Pj4+PiBwcm9wZXJ0aWVzOgo+ID4+ID4+Pj4+IC0gb25l IGZvciBnYW11dCBtYXBwaW5nIChjYXNlcyBsaWtlIFJHQjcwOS0+UkdCMjAyMCkKPiA+PiA+Pj4+ PiAtIG90aGVyIG9uZSBmb3IgQ29sb3Igc3BhY2UgY29udmVyc2lvbiAoY2FzZXMgbGlsZSBZVVYg NzA5IC0+IFJHQgo+ID4+ID4+Pj4+IDcwOSkKPiA+PiA+Pj4+Pgo+ID4+ID4+Pj4+IEdhbXV0IG1h cHBpbmcgY2FuIHJlcHJlc2VudCBhbnkgb2YgdGhlIGZpeCBmdW5jdGlvbiBtYXBwaW5nLAo+ID4+ ID4+Pj4+IHdlcmVhcyBDU0MKPiA+PiA+Pj4+PiBjYW4gYnJpbmcgdXAgYW55IHByb2dyYW1tYWJs ZSBtYXRyaXgKPiA+PiA+Pj4+Pgo+ID4+ID4+Pj4+IEludGVybmFsbHkgdGhlc2UgcHJvcGVydGll cyBjYW4gdXNlIHRoZSBzYW1lIEhXIHVuaXQgb3IgZXZlbiBzYW1lCj4gPj4gPj4+Pj4gZnVuY3Rp b24uCj4gPj4gPj4+Pj4gRG9lcyBpdCBzb3VuZCBhbnkgZ29vZCA/Cj4gPj4gPgo+ID4+ID4gSXQg c2VlbXMgdG8gbWUgdGhhdCBhY3R1YWxseSB0aGUgdHdvIGFwcHJvYWNoZXMgY2FuIGJlIGNvbWJp bmVkIGludG8KPiA+PiA+IHRoZSBzYW1lIHRoaW5nOgo+ID4+ID4gICogV2UgZGVmaW5pdGVseSBu ZWVkIGEgWUNiQ3ItdG8tUkdCIGNvbnZlcnNpb24gYmVmb3JlIGRlZ2FtbWEKPiA+PiA+ICAgIChm b3IgY29udmVydGluZyBZVVYgZGF0YSB0byBSR0IsIGluIHNvbWUgZmxhdm91cikKPiA+PiA+ICAq IFdlIGRlZmluaXRlbHkgbmVlZCBhbiBSR0ItdG8tUkdCIGNvbnZlcnNpb24gYWZ0ZXIgZ2FtbWEg dG8gaGFuZGxlCj4gPj4gPiAgICA3MDkgbGF5ZXJzIGJsZW5kZWQgd2l0aCBSZWMuMjAyMC4KPiA+ PiA+IFRoZSBleGFjdCBjb252ZXJzaW9uIGVhY2ggb2YgdGhvc2UgcHJvcGVydGllcyByZXByZXNl bnRzIChDU0MgKyBnYW11dCwKPiA+PiA+IENTQyBvbmx5LCBnYW11dCBvbmx5KSBjYW4gYmUgaW1w bGljaXQgaW4gdGhlIGVudW0gbmFtZS4KPiA+PiA+Cj4gPj4gPiBGb3IgaGFyZHdhcmUgd2hpY2gg aGFzIGEgZml4ZWQtZnVuY3Rpb24gQ1NDIGJlZm9yZSBERUdBTU1BIHdpdGggYQo+ID4+ID4gbWF0 cml4IGFmdGVyIERFR0FNTUEsIEknZCBleHBlY3QgdG8gc2VlIHNvbWV0aGluZyBsaWtlIGJlbG93 LiBOb25lIG9mCj4gPj4gPiB0aGUgWUNCQ1JfVE9fUkdCX0NTQyB2YWx1ZXMgaW5jbHVkZSBhIGdh bXV0IGNvbnZlcnNpb24sIGJlY2F1c2UgdGhhdAo+ID4+ID4gaXMgaW5zdGVhZCBleHBvc2VkIHdp dGggdGhlIFJHQl9UT19SR0JfQ1NDIHByb3BlcnR5ICh3aGljaCByZXByZXNlbnRzCj4gPj4gPiB0 aGUgaGFyZHdhcmUgbWF0cml4KQo+ID4+ID4KPiA+PiA+IFlDQkNSX1RPX1JHQl9DU0MgKGJlZm9y ZSBERUdBTU1BKToKPiA+PiA+ICAgICBZQ2JDciBCVC42MDEgbGltaXRlZCB0byBSR0IgQlQuNjAx IGZ1bGwKPiA+PiA+ICAgICBZQ2JDciBCVC43MDkgbGltaXRlZCB0byBSR0IgQlQuNzA5IGZ1bGwK PiA+PiA+ICAgICBZQ2JDciBCVC4yMDIwIGxpbWl0ZWQgdG8gUkdCIEJULjIwMjAgZnVsbAo+ID4+ ID4KPiA+PiA+IFJHQl9UT19SR0JfQ1NDIChhZnRlciBERUdBTU1BKToKPiA+PiA+ICAgICBSR0Ig QlQuNjAxIGZ1bGwgdG8gUkdCIEJULjcwOSBmdWxsCj4gPj4gPiAgICAgUkdCIEJULjcwOSBmdWxs IHRvIFJHQiBCVC4yMDIwIGZ1bGwKPiA+PiA+Cj4gPj4gPgo+ID4+ID4gT24gdGhlIG90aGVyIGhh bmQsIG9uIGhhcmR3YXJlIHdoaWNoIGRvZXMgYSBDU0MgKyBHYW11dCBjb252ZXJzaW9uIGluCj4g Pj4gPiBvbmUgZ28sIGJlZm9yZSBERUdBTU1BIChsaWtlIG91cnMpLCB5b3UgbWlnaHQgaGF2ZToK PiA+PiA+Cj4gPj4gPiBZQ0JDUl9UT19SR0JfQ1NDIChiZWZvcmUgREVHQU1NQSk6Cj4gPj4gPiAg ICAgWUNiQ3IgQlQuNjAxIGxpbWl0ZWQgdG8gUkdCIEJULjYwMSBmdWxsCj4gPj4gPiAgICAgWUNi Q3IgQlQuNjAxIGxpbWl0ZWQgdG8gUkdCIEJULjcwOSBmdWxsCj4gPj4gPiAgICAgWUNiQ3IgQlQu NzA5IGxpbWl0ZWQgdG8gUkdCIEJULjcwOSBmdWxsCj4gPj4gPiAgICAgWUNiQ3IgQlQuMjAyMCBs aW1pdGVkIHRvIFJHQiBCVC4yMDIwIGZ1bGwKPiA+PiA+Cj4gPj4gPiBSR0JfVE9fUkdCX0NTQyAo YWZ0ZXIgREVHQU1NQSk6Cj4gPj4gPiAgICAgTm90IHN1cHBvcnRlZAo+ID4+ID4KPiA+PiA+IFVz ZXJzcGFjZSBjYW4gcGFyc2UgdGhlIHR3byBwcm9wZXJ0aWVzIHRvIGZpZ3VyZSBvdXQgaXRzIG9w dGlvbnMgdG8KPiA+PiA+IGdldCBmcm9tIGRlc2lyZWQgaW5wdXQgLT4gZGVzaXJlZCBvdXRwdXQu IEl0IGlzIHBlcmhhcHMgYSBsaXR0bGUKPiA+PiA+IHZlcmJvc2UsIGJ1dCBpdCdzIGRlc2NyaXB0 aXZlIGFuZCBmbGV4aWJsZS4KPiA+PiA+Cj4gPj4gU2VlbXMgdG8gYmUgYSBnb29kIGlkZWEsIFZp bGxlID8KPiA+Cj4gPkxvb2tzIHByZXR0eSBzYW5lIHRvIG1lLgo+ID4KPiA+VGhvdWdoIGhvdyB3 ZSdsbCBkbyB0aGUgZGVnYW1tYS9nYW1tYSBpcyByYXRoZXIgdW5jbGVhciBzdGlsbC4KPiA+Cj4g PkkgdGhpbmsgd2UgbWlnaHQgYmUgbG9va2luZyBhdCB0d28gdmFyaWFudHMgb2YgaGFyZHdhcmU6 Cj4gPi0gQSBmdWxseSBwcm9ncmFtbWFibGUgb25lIHdpdGggc2VwYXJhdGUgc3RhZ2VzOgo+ID4g IGNzYyAtPiBkZWdhbW1hIC0+IGdhbXV0IC0+IGdhbW1hCj4gPi0gQSB0b3RhbGx5IGZpeGVkIG9u ZSB3aXRoIGp1c3QgYSBmZXcgZGlmZmVyZW50IHZhcmlhbnRzCj4gPiAgb2YgdGhlIHBpcGVsaW5l IGJha2VkIGludG8gdGhlIGhhcmR3YXJlCj4gPgo+ID5JZiB3ZSB3YW50IHRvIGV4cG9zZSB0aGUg Z2FtbWEvZGVnYW1tYSB0byB0aGUgdXNlciwgaG93IGV4YWN0bHkgYXJlIHdlCj4gPmdvaW5nIHRv IGRvIHRoYXQgd2l0aCB0aGUgbGF0dGVyIGZvcm0gb3IgaGFyZHdhcmUuIEkgZ3Vlc3Mgd2UgY291 bGQKPiA+c3BlY2lmeSB0aGF0IGlmIHRoZSBkZWdhbW1hIHByb3BlcnR5IGlzIG5vdCBleHBvc2Vk LCB0aGVyZSB3aWxsIGJlIGFuCj4gPmltcGxpY2l0IGRlZ2FtbWEgc3RhZ2UgYmV0d2VlbiB0aGUg dHdvIGNzYyBhbmQgZ2FtdXQuIEFuZCBpZiBpdCBpcwo+ID5leHBvc2VkIHRoZSBvdXRwdXQgZnJv bSB0aGUgZmlyc3QgY3NjIGlzIG5vbi1saW5lYXIgYW5kIHRodXMgbmVlZHMKPiA+dGhlIGRlZ2Ft bWEgcHJvZ3JhbW1lZCB0byBtYWtlIGl0IHNvIGJlZm9yZSB0aGUgZ2FtdXQgbWFwcGluZy4KPiA+ Cj4gPkFuZCBwZXJoYXBzIGEgc2ltaWxhciBydWxlIGNvdWxkIHdvcmsgZm9yIHRoZSBnYW1tYTsg SWYgaXQncyBwcmVzZW50Cj4gPnRoZSBvdXRwdXQgZnJvbSB0aGUgZ2FtdXQgbWFwcGluZyBpcyBl eHBlY3RlZCB0byBiZSBsaW5lYXIsIGFuZAo+ID5vdGhlcndpc2Ugbm9uLWxpbmVhci4gTm90IHF1 aXRlIHN1cmUgYWJvdXQgdGhpcy4gSW4gZmFjdCBJIGRvbid0IHlldAo+ID5rbm93IHdoYXQgb3Vy IGhhcmR3YXJlIHdvdWxkIG91dHB1dCBmcm9tIHRoZSBlbmQgb2YgdGhlIGZpeGVkIHBpcGVsaW5l Lgo+IAo+IEkgZG9uJ3QgcmVhbGx5IGxpa2UgdGhlIGltcGxpY2l0IG5hdHVyZSBvZiB0aGF0LCBh bmQgSSBhbHNvIGRvbid0Cj4gdGhpbmsgaXQgZml0cyB3aXRoIHByYWN0aWNhbCB1c2UtY2FzZXMg LSBmb3IgaW5zdGFuY2Ugb24gY3VycmVudAo+IEFuZHJvaWQsIGJsZW5kaW5nIGlzIGFzc3VtZWQg dG8gYmUgZG9uZSB3aXRoIG5vbi1saW5lYXIgZGF0YSwgc28gYW4KPiBpbXBsaWNpdCBsaW5lYXJp c2F0aW9uIGRvZXNuJ3QgZml0IHdpdGggdGhhdC4KCkkgdGhpbmsgdGhlcmUncyBnb2luZyB0byBi ZSBhbiBpbXBsaWNpdCBsaW5lYXJpemF0aW9uIGJldHdlZW4gdGhlIGNzYwphbmQgZ2FtdXQgbWFw cGluZyBhbnl3YXkuIE90aGVyd2lzZSBpdCBqdXN0IHdvdWxkbid0IHdvcmsgY29ycmVjdGx5LgpC dXQgd2hldGhlciB0aGUgb3V0cHV0IGZyb20gdGhhdCBnYW11dCBtYXBwaW5nIGlzIGxpbmVhciBv ciBub3QgZm9yCm91ciBoYXJkd2FyZSBJIGRvbid0IGtub3cgeWV0LgoKPiBJIHRoaW5rIGl0J3Mg bXVjaCBiZXR0ZXIgdG8gbWFrZSBzdXJlIGVhY2ggZWxlbWVudCBpbiB0aGUgcGlwZWxpbmUgaXMK PiBkaXNjb3ZlcmFibGUgYW5kIGNvbmZpZ3VyYWJsZSBmcm9tIHVzZXJzcGFjZS4KPiAKPiBUaGVy ZSdzIGFsc28gdGhlIGZhY3QgdGhhdCB3ZSBhbHJlYWR5IGhhdmUgR0FNTUEvREVHQU1NQSBwcm9w ZXJ0aWVzCj4gd2l0aCBhIGRlZmluZWQgaW50ZXJmYWNlIGFuZCBzZW1hbnRpY3MuCj4gCj4gTWFs aS1EUCBmYWxscyBpbiB0aGUgImZ1bGx5IHByb2dyYW1tYWJsZSIgY2FtcCAtIHdlIGNhbiB1c2Ug YQo+IHByb2dyYW1tYWJsZSBkZS1nYW1tYSBjdXJ2ZSBpbiB0aGUgcGxhbmUgcGlwZWxpbmUsIGFu ZCBmb3IgdGhpcywgdGhlCj4gZXhpc3RpbmcgREVHQU1NQSBwcm9wZXJ0eSBpcyBhIGdvb2QgZml0 Lgo+IAo+IEZvciBub3QtcHJvZ3JhbW1hYmxlIGhhcmR3YXJlLCB3b3VsZCBhIHNlY29uZCAiREVH QU1NQV9GSVhFRCIgcHJvcGVydHkKPiBtYWtlIHNlbnNlLCB3aGljaCBpcyBhbiBlbnVtIHR5cGUg ZXhwb3Npbmcgd2hhdCBjdXJ2ZXMgYXJlIHN1cHBvcnRlZD8KPiAod2l0aCBhbmFsb2dvdXMgR0FN TUFfRklYRUQgYXMgd2VsbCkKCkhtbS4gSSBzdXBwb3NlIHdlIGNvdWxkIG1ha2UgaXQgYSBiaXQg bW9yZSBleHBsaWNpdCBsaWtlIHRoYXQuCk5vdCBzdXJlIGhvdyB3ZSdkIHNwZWNpZnkgdGhvc2Ug dGhvdWdoLiBKdXN0IEJULjcwOSwgQlQuMjAyMCwgZXRjLiBhbmQKcGVyaGFwcyBqdXN0IHNvbWV0 aGluZyBsaWtlICdHYW1tYSAyLjInIGlmIGl0J3MgYSBwdXJlIGdhbW1hIGN1cnZlPwpTb21lb25l IHdobyBpcyBtb3JlIGZhbWlsaWFyIHdpdGggdGhlIHN1YmplY3QgY291bGQgcHJvYmFibHkgcHJv cG9zZQphIGJldHRlciBuYW1pbmcgc2NoZW1lLgoKPiAKPiBEcml2ZXJzIHNob3VsZCBleHBvc2Ug b25lIG9yIHRoZSBvdGhlciAoYnV0IG5vdCBib3RoKSBmb3IgZWFjaAo+IGdhbW1hL2RlZ2FtbWEg Y29udmVyc2lvbiB0aGUgaGFyZHdhcmUgaW1wbGVtZW50cy4KPiAKPiAtQnJpYW4KPiAKPiA+Cj4g Pj4KPiA+PiAtIFNoYXNoYW5rCj4gPj4gPj4+PiBJdCdzIGNlcnRhaW5seSBwb3NzaWJsZS4gT25l IHByb2JsZW0gaXMgdGhhdCB3ZSBjYW4ndCBpbmZvcm0gdXNlcnNwYWNlCj4gPj4gPj4+PiB1cGZy b250IHdoaWNoIGNvbWJpbmF0aW9ucyBhcmUgc3VwcG9ydGVkLiBXaGV0aGVyIHRoYXQncyBhIHJl YWwKPiA+PiA+Pj4+IHByb2JsZW0KPiA+PiA+Pj4+IEknbSBub3Qgc3VyZS4gV2l0aCBhdG9taWMg dXNlcnNwYWNlIGNhbiBvZiBjb3Vyc2UgY2hlY2sgdXBmcm9udCBpZgo+ID4+ID4+Pj4gc29tZXRo aW5nIGNhbiBiZSBkb25lIG9yIG5vdCwgYnV0IHRoZSBtYWluIHByb2JsZW0gaXMgdGhlbiBjb21p bmcgdXAKPiA+PiA+Pj4+IHdpdGggYSBmYWxsYmFjayBzdHJhdGVneSB0aGF0IGRvZXNuJ3Qgc3Vj ayB0b28gYmFkbHkuCj4gPj4gPj4+Pgo+ID4+ID4KPiA+PiA+IFRoZSBhcHByb2FjaCBhYm92ZSBo ZWxwcyBsaW1pdCB0aGUgc2V0IGV4cG9zZWQgdG8gdXNlcnNwYWNlIHRvIGJlIG9ubHkKPiA+PiA+ IHRob3NlIHdoaWNoIGFyZSBzdXBwb3J0ZWQgLSBiZWNhdXNlIGRldmljZXMgd2hpY2ggZG9uJ3Qg aGF2ZSBzZXBhcmF0ZQo+ID4+ID4gaGFyZHdhcmUgZm9yIHRoZSB0d28gc3RhZ2VzIHdvbid0IGV4 cG9zZSB2YWx1ZXMgZm9yIGJvdGguCj4gPj4gPgo+ID4+ID4+Pj4gQW55d2F5cywgSSBkb24ndCB0 aGluayBJIGhhdmUgYW55IHN0cm9uZyBmYXZvcml0ZXMgaGVyZS4gV291bGQgYmUgbmljZQo+ID4+ ID4+Pj4gdG8gaGVhciB3aGF0IGV2ZXJ5b25lIGVsc2UgdGhpbmtzLgo+ID4+ID4+PiBJIGNvbmZl c3MgdG8gYSBsYWNrIG9mIGV4cGVyaWVuY2UgaW4gdGhlIHN1YmplY3QgaGVyZSwgYnV0IHdoYXQg aXMKPiA+PiA+Pj4gdGhlIG1vcmUgY29tbW9uCj4gPj4gPj4+IHJlcXVlc3QgY29taW5nIGZyb20g dXNlcnNwYWNlOiBjb252ZXJ0aW5nIFlVViA8LT4gUkdCIGJ1dCBrZWVwaW5nCj4gPj4gPj4+IHRo ZSBnYW1tdXQgbWFwcGluZwo+ID4+ID4+PiBzZXBhcmF0ZSwgb3IgWVVWIChnYW1tdXQgeCkgPC0+ IFJHQiAoZ2FtbXV0IHkpID8gSW4gb3RoZXIgd29yZHM6IEkKPiA+PiA+Pj4gY2FuIHNlZSB0aGUg dXNlZnVsbmVzcwo+ID4+ID4+PiBvZiBoYXZpbmcgYW4gZXhwbGljaXQgd2F5IG9mIGRlY29tcG9z aW5nIHRoZSBjb2xvciBtYXBwaW5nIHByb2Nlc3MKPiA+PiA+Pj4gYW5kIGNvbnRyb2wgdGhlCj4g Pj4gPj4+IHBhcmFtZXRlcnMsIGJ1dCBob3cgb2Z0ZW4gZG8gYXBwcyBvciBjb21wb3NpdG9ycyBn byB0aHJvdWdoIHRoZQo+ID4+ID4+PiB3aG9sZSBjaGFpbj8KPiA+PiA+PiBSaWdodCBub3csIG1v cmUgb3IgbGVzcyB0aGUgaW50ZXJlc3QgaXMgb24gdGhlIFJHQi0+WVVWIGNvbnZlcnNpb24KPiA+ PiA+PiBzaWRlLCBjb3ogdGlsbCBub3cgQlQgMjAyMCBnYW11dCB3YXMgbm90IGluCj4gPj4gPj4g cGljdHVyZS4gUkVDIDYwMSBhbmQgNzA5IGhhdmUgdmVyeSBjbG9zZSBnYW11dHMsIHNvIGl0IHdh cyBvayB0bwo+ID4+ID4+IGJsZW5kIGZyYW1lcyBtb3N0bHkgd2l0aG91dCBib3RoZXJpbmcgYWJv dXQKPiA+PiA+PiBnYW11dCwgYnV0IGdvaW5nIGZ3ZCwgb25lcyBSRUMgMjAyMCBjb21lcyBpbnRv IHBpY3R1cmUsIHdlIG5lZWQgdG8KPiA+PiA+PiBib3RoZXIgYWJvdXQgbWFwcGluZyBnYW11dHMg dG9vLCBlbHNlCj4gPj4gPj4gYmxlbmRpbmcgUmVjNzA5IGJ1ZmZlcnMgYW5kIFJlYzIwMjAgYnVm ZmVycyB0b2dldGhlciB3b3VsZCBjYXVzZSB2ZXJ5Cj4gPj4gPj4gdmlzaWJsZSBnYW11dCBtaXNt YXRjaC4KPiA+PiA+Pgo+ID4+ID4+IFNvIGNvbnNpZGVyaW5nIGZ1dHVyaXN0aWMgZGV2ZWxvcG1l bnRzLCBpdCBtaWdodCBiZSBvayB0byBjb25zaWRlcgo+ID4+ID4+IGJvdGguIFN0aWxsLCBhcyBW aWxsZSBtZW50aW9uZWQsIGl0IHdvdWxkIGJlIGdvb2QKPiA+PiA+PiB0byBoZWFyIGZyb20gb3Ro ZXIgdG9vLgo+ID4+ID4+Cj4gPj4gPgo+ID4+ID4gWWVhaCBJIGFncmVlIHRoYXQgd2UgZGVmaW5p dGVseSBuZWVkIHRvIGNvbnNpZGVyIGJvdGggZm9yIGFueXRoaW5nIHdlCj4gPj4gPiBjb21lIHVw IHdpdGggbm93Lgo+ID4+ID4KPiA+PiA+IENoZWVycywKPiA+PiA+IEJyaWFuCj4gPj4gPgo+ID4+ ID4+IC0gU2hhc2hhbmsKPiA+PiA+Pj4KPiA+PiA+Pj4gQmVzdCByZWdhcmRzLAo+ID4+ID4+PiBM aXZpdQo+ID4+ID4+Pgo+ID4+ID4+Pj4gLS0KPiA+PiA+Pj4+IFZpbGxlIFN5cmrDpGzDpAo+ID4+ ID4+Pj4gSW50ZWwgT1RDCj4gPj4gPj4KPiA+Cj4gPi0tIAo+ID5WaWxsZSBTeXJqw6Rsw6QKPiA+ SW50ZWwgT1RDCgotLSAKVmlsbGUgU3lyasOkbMOkCkludGVsIE9UQwpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRy aS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK