From mboxrd@z Thu Jan 1 00:00:00 1970 From: Takashi Iwai Subject: Re: [PATCH 0/5] sanitize hda/i915 interface using the component fw Date: Thu, 08 Jan 2015 15:35:35 +0100 Message-ID: References: <1418056929-7977-1-git-send-email-imre.deak@intel.com> <20141208201405.GJ27182@phenom.ffwll.local> <1418115594.15622.56.camel@ideak-mobl> <20141209100321.GQ27182@phenom.ffwll.local> <1418144167.5014.16.camel@intelbox> <1420471774.16056.34.camel@intelbox> <1420478709.16056.39.camel@intelbox> <1420660186.17750.5.camel@ideak-mobl> Mime-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1420660186.17750.5.camel@ideak-mobl> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: imre.deak@intel.com Cc: intel-gfx@lists.freedesktop.org, alsa-devel@alsa-project.org List-Id: alsa-devel@alsa-project.org QXQgV2VkLCAwNyBKYW4gMjAxNSAyMTo0OTo0NiArMDIwMCwKSW1yZSBEZWFrIHdyb3RlOgo+IAo+ IE9uIFR1ZSwgMjAxNS0wMS0wNiBhdCAxMToyNSArMDEwMCwgVGFrYXNoaSBJd2FpIHdyb3RlOgo+ ID4gQXQgTW9uLCAwNSBKYW4gMjAxNSAxOToyNTowOSArMDIwMCwKPiA+IEltcmUgRGVhayB3cm90 ZToKPiA+ID4gCj4gPiA+IE9uIE1vbiwgMjAxNS0wMS0wNSBhdCAxNjozNSArMDEwMCwgVGFrYXNo aSBJd2FpIHdyb3RlOgo+ID4gPiA+IEF0IE1vbiwgMDUgSmFuIDIwMTUgMTc6Mjk6MzQgKzAyMDAs Cj4gPiA+ID4gSW1yZSBEZWFrIHdyb3RlOgo+ID4gPiA+ID4gCj4gPiA+ID4gPiBIaSBNZW5nZG9u ZywgVGFrYXNoaSwKPiA+ID4gPiA+IAo+ID4gPiA+ID4gT24gVHVlLCAyMDE0LTEyLTA5IGF0IDE4 OjMzICswMTAwLCBUYWthc2hpIEl3YWkgd3JvdGU6Cj4gPiA+ID4gPiA+IEF0IFR1ZSwgMDkgRGVj IDIwMTQgMTg6NTY6MDcgKzAyMDAsCj4gPiA+ID4gPiA+IEltcmUgRGVhayB3cm90ZToKPiA+ID4g PiA+ID4gPiAKPiA+ID4gPiA+ID4gPiBPbiBUdWUsIDIwMTQtMTItMDkgYXQgMTE6MDMgKzAxMDAs IERhbmllbCBWZXR0ZXIgd3JvdGU6Cj4gPiA+ID4gPiA+ID4gPiBPbiBUdWUsIERlYyAwOSwgMjAx NCBhdCAxMDo1OTo1NEFNICswMjAwLCBJbXJlIERlYWsgd3JvdGU6Cj4gPiA+ID4gPiA+ID4gPiA+ IE9uIE1vbiwgMjAxNC0xMi0wOCBhdCAyMToxNCArMDEwMCwgRGFuaWVsIFZldHRlciB3cm90ZToK PiA+ID4gPiA+ID4gPiA+ID4gPiBPbiBNb24sIERlYyAwOCwgMjAxNCBhdCAwNjo0MjowNFBNICsw MjAwLCBJbXJlIERlYWsgd3JvdGU6Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBUaGUgY3VycmVudCBo ZGEvaTkxNSBpbnRlcmZhY2UgdG8gZW5hYmxlL2Rpc2FibGUgcG93ZXIgd2VsbHMgYW5kIHF1ZXJ5 Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiB0aGUgQ0QgY2xvY2sgcmF0ZSBpcyBiYXNlZCBvbiBsb29r aW5nIHVwIHRoZSByZWxldmFudCBpOTE1IG1vZHVsZQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gc3lt Ym9scyBmcm9tIHRoZSBoZGEgZHJpdmVyLiBCeSB1c2luZyB0aGUgY29tcG9uZW50IGZyYW1ld29y ayB3ZSBjYW4gZ2V0Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiByaWQgb2Ygc29tZSBnbG9iYWwgc3Rh dGUgdHJhY2tpbmcgaW4gdGhlIGk5MTUgZHJpdmVyIGFuZCBwYXZlIHRoZSB3YXkgdG8KPiA+ID4g PiA+ID4gPiA+ID4gPiA+IGZ1bGx5IGRlY291cGxlIHRoZSB0d28gZHJpdmVyczogb25jZSBzdXBw b3J0IGlzIGFkZGVkIHRvIGVuYWJsZS9kaXNhYmxlCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiB0aGUg SERNSSBmdW5jdGlvbmFsaXR5IGR5bmFtaWNhbGx5IGluIHRoZSBoZGEgZHJpdmVyLCBpdCBjYW4g YmluZC91bmJpbmQKPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGl0c2VsZiBmcm9tIHRoZSBpOTE1IGNv bXBvbmVudCBtYXN0ZXIsIHdpdGhvdXQgdGhlIG5lZWQgdG8ga2VlcCBhCj4gPiA+ID4gPiA+ID4g PiA+ID4gPiByZWZlcmVuY2Ugb24gdGhlIGk5MTUgbW9kdWxlLgo+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBUaGlzIGFsc28gZ2V0cyByaWQgb2YgdGhlIHByb2Js ZW0gdGhhdCBjdXJyZW50bHkgdGhlIGk5MTUgZHJpdmVyIGV4cG9zZXMKPiA+ID4gPiA+ID4gPiA+ ID4gPiA+IHRoZSBpbnRlcmZhY2Ugb25seSBvbiBIU1cgYW5kIEJEVywgd2hpbGUgaXQncyBhbHNv IG5lZWRlZCBhdCBsZWFzdCBvbgo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gVkxWL0NIVi4KPiA+ID4g PiA+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gPiA+ID4gPiBBd2Vzb21lIHRoYXQgeW91J3JlIHRh Y2tsaW5nIHRoaXMsIHJlYWxseSBoYXBweSB0byBzZWUgdGhlc2UgaGFja3MgZ28uCj4gPiA+ID4g PiA+ID4gPiA+ID4gVW5mb3J0dW5hdGVseSBJIHRoaW5rIGl0J3MgdXBzaWRlIGRvd246IGhkYSBz aG91bGQgYmUgdGhlIGNvbXBvbmVudCBtYXN0ZXIKPiA+ID4gPiA+ID4gPiA+ID4gPiBhbmQgaTkx NSBzaG91bGQgb25seSByZWdpc3RlciBhIGNvbXBvbmVudC4KPiA+ID4gPiA+ID4gPiA+ID4gPiAK PiA+ID4gPiA+ID4gPiA+ID4gPiBMb25nZXIgc3Rvcnk6IFRoZSBtYWluIHJlYXNvbiBmb3IgdGhl IGNvbXBvbmVudCBoZWxwZXJzIGlzIHRvIGJlIGFibGUgdG8KPiA+ID4gPiA+ID4gPiA+ID4gPiBt YWdpY2FsbHkgZGVsYXkgcmVnaXN0ZXJpbmcgdGhlIG1haW4vbWFzdGVyIGRyaXZlciB1bnRpbCBh bGwgdGhlCj4gPiA+ID4gPiA+ID4gPiA+ID4gY29tcG9uZW50cyBhcmUgbG9hZGVkLiBPdGhlcndp c2UgLUVERUZFUiBkb2Vzbid0IHdvcmsgYW5kIGFsc28gdGhlCj4gPiA+ID4gPiA+ID4gPiA+ID4g c3VzcGVuZC9yZXN1bWUgb3JkZXJpbmcgdGhpcyBzaG91bGQgcmVzdWx0IGluLiBNYXN0ZXIgaGVy ZSBtZWFucyB3aGF0ZXZlcgo+ID4gPiA+ID4gPiA+ID4gPiA+IHVzZXJzcGFjZSBldmVudHVhbGx5 IHNlZXMgYXMgYSBkZXZpY2Ugbm9kZSBvciBzaW1pbGFyLCBjb21wb25lbnQgaXMKPiA+ID4gPiA+ ID4gPiA+ID4gPiBhbnl0aGluZyByZWFsbHkgdGhhdCB0aGlzIHVzZXJzcGFjZSBpbnRlcmZhY2Vz IG5lZWRzIHRvIGZ1bmN0aW9uCj4gPiA+ID4gPiA+ID4gPiA+ID4gY29ycmVjdGx5Lgo+ID4gPiA+ ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gPiA+ID4gRURFRkVSIGRvZXNuJ3Qgc29sdmUgdGhlIHN1 c3BlbmQvcmVzdW1lIG9yZGVyaW5nLCBhdCBsZWFzdCBub3QgaW4gdGhlCj4gPiA+ID4gPiA+ID4g PiA+IGdlbmVyYWwgYXN5bmMgcy9yIGNhc2UuIEluIGFueSBjYXNlIEkgZG9uJ3Qgc2VlIGEgcHJv YmxlbSBpbiBtYWtpbmcgdGhlCj4gPiA+ID4gPiA+ID4gPiA+IGhkYSBjb21wb25lbnQgdGhlIG1h c3RlciBhbmQgSSB0aGluayBpdCdzIG1vcmUgbG9naWNhbCB0aGF0IHdheSBhcyB5b3UKPiA+ID4g PiA+ID4gPiA+ID4gc2FpZCwgc28gSSBjaGFuZ2VkIHRoYXQuCj4gPiA+ID4gPiA+ID4gPiAKPiA+ ID4gPiA+ID4gPiA+IFllYWggZm9yIGZ1bGwgYXN5bmMgcy9yIHdlJ3JlIHNjcmV3ZWQgYXMtaXMu IEJ1dCBzZWUgYmVsb3cgZm9yIHNvbWUgY3JhenkKPiA+ID4gPiA+ID4gPiA+IGlkZWFzLgo+ID4g PiA+ID4gPiA+ID4gPiA+IEkgdGhpbmsgd2hhdCB3ZSBuZWVkIGhlcmUgaXMgdGhlbjoKPiA+ID4g PiA+ID4gPiA+ID4gPiAtIFB1dCB0aGUgY3VycmVudCBhenhfcHJvYmUgaW50byB0aGUgbWFzdGVy X2JpbmQgY2FsbGJhY2suIFRoZSBuZXcKPiA+ID4gPiA+ID4gPiA+ID4gPiAgIGF6eF9wcm9iZSB3 aWxsIGRvIG5vdGhpbmcgZWxzZSB0aGFuIHJlZ2lzdGVyIHRoZSBtYXN0ZXIgY29tcG9uZW50IGFu ZAo+ID4gPiA+ID4gPiA+ID4gPiA+ICAgdGhlIGNvbXBvbmVudCBtYXRjaCBsaXN0LiBUbyBkbyBz byBpdCBjaGVja3MgdGhlIGNoaXAgZmxhZyBhbmQgaWYgaXQKPiA+ID4gPiA+ID4gPiA+ID4gPiAg IG5lZWRzIHRvIGNvb3BlcmF0ZSB3aXRoIGk5MTUgaXQgcmVnaXN0ZXJzIG9uZSBjb21wb25lbnQg bWF0Y2ggZm9yIHRoYXQuCj4gPiA+ID4gPiA+ID4gPiA+ID4gICBUaGUgbWFzdGVyX2JpbmQgKG9s ZCBwcm9iZSkgZnVuY3Rpb24gY2FsbHMgY29tcG9uZW50X2JpbmRfYWxsIHdpdGggdGhlCj4gPiA+ ID4gPiA+ID4gPiA+ID4gICBoZGFfaW50ZWwgcG9pbnRlciBhcyB2b2lkICpkYXRhIHBhcmFtZXRl ci4KPiA+ID4gPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4gPiA+IEknbSBub3Qgc3VyZSB0aGlz IGlzIHRoZSBiZXN0IHdheSBzaW5jZSBieSB0aGlzIHRoZSBpOTE1IG1vZHVsZSB3b3VsZAo+ID4g PiA+ID4gPiA+ID4gPiBuZWVkIHRvIGJlIHBpbm5lZCBldmVuIHdoZW4gbm8gSERNSSBmdW5jdGlv bmFsaXR5IGlzIHVzZWQuIEkgdGhpbmsgYQo+ID4gPiA+ID4gPiA+ID4gPiBiZXR0ZXIgd2F5IHdv dWxkIGJlIHRvIGxldCB0aGUgcHJvYmUgZnVuY3Rpb24gcnVuIGFzIG5vdyBhbmQKPiA+ID4gPiA+ ID4gPiA+ID4gaW5pdC9yZWdpc3RlciBhbGwgdGhlIG5vbi1IRE1JIGZ1bmN0aW9uYWxpdHkuIFRo ZW4gb25seSB0aGUgSERNSQo+ID4gPiA+ID4gPiA+ID4gPiBmdW5jdGlvbmFsaXR5IHdvdWxkIGJl IGluaXRlZC9yZWdpc3RlcmVkIGZyb20gdGhlIGJpbmQvdW5iaW5kIGhvb2tzLgo+ID4gPiA+ID4g PiA+ID4gCj4gPiA+ID4gPiA+ID4gPiBIbSwgSSB3YXNuJ3Qgc3VyZSB3aGV0aGVyIGFsc2EgYWxs b3dzIHRoaXMgYW5kIHRob3VnaHQgd2UgbmVlZCBpOTE1IGFueXdheQo+ID4gPiA+ID4gPiA+ID4g dG8gYmUgYWJsZSB0byBsb2FkIHRoZSBkcml2ZXIuIEJ1dCBpZiB3ZSBjYW4gZGVmZXIganVzdCB0 aGUgaGRtaSBwYXJ0Lgo+ID4gPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4gPiA+IEJ1dCB3ZSBj b3VsZCBnbyBlaXRoZXIgd2F5IGV2ZW4gYXMgYSBmb2xsb3ctdXAgdG8gdGhpcyBwYXRjaHNldC4K PiA+ID4gPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4gPiA+ID4gLSBpOTE1IHJlZ2lzdGVycyBh IGNvbXBvbmVudCBmb3IgdGhlIGk5MTUgZ2Z4IGRldmljZS4gSXQgdXNlcyB0aGUKPiA+ID4gPiA+ ID4gPiA+ID4gPiAgIGNvbXBvbmVudCBkZXZpY2UgdG8gZ2V0IGF0IGk5MTUgc3R1cmN0dXJlcyBh bmQgZmlsbHMgdGhlIGRlditvcHMgaW50bwo+ID4gPiA+ID4gPiA+ID4gPiA+ICAgdGhlIGhkYV9p bnRlbCBwb2ludGVyIGl0IGdldHMgYXMgdm9pZCAqZGF0YS4KPiA+ID4gPiA+ID4gPiA+ID4gPgo+ ID4gPiA+ID4gPiA+ID4gPiA+IFN0dWZmIHdlIHRoZW4gc2hvdWxkIGRvIG9uIHRvcDoKPiA+ID4g PiA+ID4gPiA+ID4gPiAtIEFkZCBkZWZlcnJlZCBwcm9iaW5nIHRvIGF6eF9wcm9iZTogT25seSB3 aGVuIGFsbCBjb21wb25lbnRzIGFyZSB0aGVyZQo+ID4gPiA+ID4gPiA+ID4gPiA+ICAgc2hvdWxk IGl0IGFjdHVhbGx5IHJlZ2lzdGVyLiBUaGlzIHdpbGwgdGFrZSBjYXJlIG9mIGFsbCB0aGUgbW9k dWxlIGxvYWQKPiA+ID4gPiA+ID4gPiA+ID4gPiAgIG9yZGVyIG1lc3MuCj4gPiA+ID4gPiA+ID4g PiA+IAo+ID4gPiA+ID4gPiA+ID4gPiBJIGFncmVlIHRoYXQgd2Ugc2hvdWxkIG9ubHkgcmVnaXN0 ZXIgdXNlciBpbnRlcmZhY2VzIHdoZW4gZXZlcnl0aGluZyBpcwo+ID4gPiA+ID4gPiA+ID4gPiBp biBwbGFjZS4gQnV0IEknbSBub3Qgc3VyZSBkZWZlcnJlZCBwcm9iZSBpcyB0aGUgYmVzdCwgd2Ug Y291bGQgZG8KPiA+ID4gPiA+ID4gPiA+ID4gd2l0aG91dCBpdCBieSByZWdpc3RlcmluZyBIRE1J IGZyb20gdGhlIGNvbXBvbmVudCBiaW5kIGhvb2suCj4gPiA+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ ID4gPiA+IEl0J3MgbW9zdGx5IGEgcXVlc3Rpb24gd2hldGhlciBhbHNhIGRvZXMgc3VwcG9ydCBk ZWxheWVkIGFkZGl0aW9uIG9mCj4gPiA+ID4gPiA+ID4gPiBpbnRlcmZhY2UgcGFydHMuIERSTSBt b3N0IGRlZmluaXRlbHkgZG9lcyBub3QgKGV4Y2VwdCBmb3IgcmVjZW50bHkgYWRkZWQKPiA+ID4g PiA+ID4gPiA+IGRwIG1zdCBjb25uZWN0b3IgaG90cGx1ZykuIEJ1dCBJIGd1ZXNzIGlmIHRoZSBj dXJyZW50IGRyaXZlciBhbHJlYWR5Cj4gPiA+ID4gPiA+ID4gPiBkZWxheXMgcmVnaXN0ZXJpbmcg dGhlIGhkbWkgcGFydCB0aGVuIHdlJ3JlIGZpbmUuIEknbSBub3Qgc3VyZSBhYm91dAo+ID4gPiA+ ID4gPiA+ID4gd2hldGhlciBpdCdzIHJlYWxseSBzYWZlIC0gSSBzcG90dGVkIG5vdCBhIGxvdCBv ZiBsb2NraW5nIHJlYWxseSB0byBtYWtlCj4gPiA+ID4gPiA+ID4gPiBzdXJlIHRoZXJlJ3Mgbm8g cmFjZXMgYmV0d2VlbiBpOTE1IGxvYWRpbmcgYW5kIHVzZXJzcGFjZSB0cnlpbmcgdG8gYWNjZXNz Cj4gPiA+ID4gPiA+ID4gPiB0aGUgaGRtaSBzaWRlLgo+ID4gPiA+ID4gPiA+IAo+ID4gPiA+ID4g PiA+IE9rLCBJJ20gbm90IHN1cmUgZWl0aGVyLiBJZiB0aGF0J3Mgbm90IHBvc3NpYmxlLCBJIGFn cmVlIEVERUZFUiB3b3VsZCBiZQo+ID4gPiA+ID4gPiA+IHRoZSBiZXN0IGFuZCB3aXRoIHRoYXQg d2UgY291bGQgYWxzbyBnZXQgcmlkIG9mIHRoZSByZXF1ZXN0X21vZHVsZSgpIHdlCj4gPiA+ID4g PiA+ID4gbmVlZCBub3cuCj4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiBUaGUgcHJvYmUgb2YgSEQt YXVkaW8gZHJpdmVyIGlzIGRvbmUgaW4gYSB3b3JrIGFueXdheSwgc28gY2hhbmdpbmcgdGhlCj4g PiA+ID4gPiA+IGNvZGUgdG8gc3luYyB3aXRoIGNvbXBvbmVudCBzaG91bGQgYmUgZmVhc2libGUu IAo+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gSSdtIG9mZiB0b2RheSAoYW5kIHllc3RlcmRheSB3 YXMgYSBDaHJpc3RtYXMgcGFydHkgOiksIHNvIGhhZCBsaXR0bGUKPiA+ID4gPiA+ID4gdGltZSBm b3IgcmV2aWV3IHNvIGZhci4gIFdpbGwgY2hlY2sgdGhlIHNlcmllcyB0b21vcnJvdy4KPiA+ID4g PiA+IAo+ID4gPiA+ID4gY291bGQgb25lIG9mIHlvdSBoZWxwIHJldmlld2luZyB0aGlzIHBhdGNo c2V0PyBOb3RlIHRoYXQgdGhlcmUgaXMgYSB2Mgo+ID4gPiA+ID4gdmVyc2lvbiB3aXRoIHNvbWUg aW5kaXZpZHVhbCBwYXRjaGVzIGhhdmluZyBhIHYzIGFscmVhZHkuCj4gPiA+ID4gCj4gPiA+ID4g SXMgdGhlcmUgYW55IGdpdCBicmFuY2ggY29udGFpbmluZyB0aGUgbGF0ZXN0IHBhdGNoZXMgdGhh dCBpcyBlYXNpbHkKPiA+ID4gPiBhcHBsaWNhYmxlIHRvIDMuMTktcmMgKG9yIGxpbnV4LW5leHQp Pwo+ID4gPiAKPiA+ID4gSSBhcHBsaWVkIHRoZW0gb24gMy4xOS1yYzIgYW5kIHB1c2hlZCB0aGUg YnJhbmNoIHRvOgo+ID4gPiBodHRwczovL2dpdGh1Yi5jb20vaWRlYWsvbGludXgvY29tbWl0cy9h dWRpby1jb21wb25lbnQKPiA+IAo+ID4gVGhhbmtzISAgSnVzdCByZWFkaW5nIHRocm91Z2ggaXQg KGJ1dCBjb3VsZG4ndCBidWlsZC90ZXN0IGl0IGFzIHRvZGF5Cj4gPiBpcyBhZ2FpbiBhIGhvbGlk YXkgaGVyZSA6KSAgVGhlIHBhdGNoZXMgbG9va3MgZ29vZCBidXQgYSBmZXcKPiA+IG5pdHBpY2tp bmc6Cj4gPiAKPiA+IC0gYXVkaW9fY29tcG9uZW50IHNob3VsZG4ndCBiZSBhZGRlZCBpbnRvIHN0 cnVjdCBheng7Cj4gPiAgIHN0cnVjdCBhenggaXMgYSBjb21tb24gb2JqZWN0IHVzZWQgYnkgVGVn cmEgSEQtYXVkaW8sIHRvbywgc28ga2VlcAo+ID4gICBpdCBjbGVhbi4gIFRoZXJlIGlzIHN0cnVj dCBoZGFfaW50ZWwgZGVmaW5lZCBpbiBoZGFfaW50ZWwuYywgd2hpY2gKPiA+ICAgaW5oZXJpdHMg c3RydWN0IGF6eC4KPiA+IAo+ID4gICBUaGF0IGlzLCB3ZSBuZWVkIHRvIGN1dCBzdHJ1Y3QgaGRh X2ludGVsIGRlZmluaXRpb24gb3V0IHRvIGEgaGVhZGVyCj4gPiAgIGZpbGUgKGUuZy4gaGRhX2lu dGVsLmgpIGFuZCBpbmNsdWRlIGl0IGluIGhkYV9pOTE1LmMuICBJIHRoaW5rIHdlCj4gPiAgIGNh biBtZXJnZSB0aGUgY29udGVudHMgb2YgaGRhX2k5MTUuaCBpbnRvIGhkYV9pbnRlbC5oLCB0b28u Cj4gCj4gT2ssIEkgZGlkIHRoZSBhYm92ZSBhbmQgYWxzbyBjaGFuZ2VkIHRoZSBoZGFfaTkxNSBp bnRlcmZhY2UgdG8gYWNjZXB0Cj4gaGRhX2ludGVsIGluc3RlYWQgb2YgY2hpcCBhcyB0aGF0IG1h a2VzIG5vdyBtb3JlIHNlbnNlLgo+IAo+ID4gLSBUaGUgcmVtb3ZhbCBvZiBpbmNsdWRlL2RybS9p OTE1X3Bvd2Vyd2VsbC5oIHNob3VsZCBiZSBmb2xkZWQgaW50bwo+ID4gICB0aGUgbGFzdCBwYXRj aCwgc28gdGhhdCB3ZSBjYW4gc2VwYXJhdGUgdGhlIGNoYW5nZXMgaW4gc291bmQvKiBhbmQKPiA+ ICAgZHJtL2k5MTUvKiBpbiBlYWNoIHBhdGNoLgo+IAo+IE9vcHMsIHRoYXQgd291bGQndmUgYWxz byBjYXVzZWQgYSBiaXNlY3QgZXJyb3IuIEkgbW92ZWQgdGhlIHJlbW92YWwgdG8KPiB0aGUgbGFz dCBwYXRjaC4KPiAKPiBJIHRlc3RlZCB0aGlzIG9uIEhTVywgc2VlbXMgdG8gd29yayBvay4gSSB1 cGRhdGVkIHRoZSBnaXRodWIgYnJhbmNoLCBpZgo+IHlvdSBkb24ndCBzZWUgbW9yZSBpc3N1ZXMs IEkgd2lsbCBwb3N0IHRoZSBuZXcgdmVyc2lvbiB0byB0aGUgbGlzdC4KClRoYW5rcy4gIEkgdHJp ZWQgcHVsbGluZyB5b3VyIGJyYW5jaCBhbmQgZGlkIGEgcXVpY2sgdGVzdC4gIEl0IGxvb2tzCndv cmtpbmcgd2VsbC4KCkFmdGVyIHJlYWRpbmcgdGhlIGNvbW1pdHMgYWdhaW4sIHRoZSBmb2xsb3dp bmcgbWlub3IgaXNzdWVzIGNhbWUgdG8gbXkKbWluZDoKCi0gcmVxdWVzdF9tb2R1bGUoImk5MTUi KSBtYXkgcmV0dXJuIGFuIGVycm9yIGlmIGk5MTUgaXMgYnVpbHQtaW4uCiAgV2UgY2FuIHNpbXBs eSBpZ25vcmUgdGhlIHJldHVybiB2YWx1ZSB0aGVyZSBzaW5jZSB0aGUgYmluZGluZwogIGNvbmRp dGlvbiBpcyBjaGVja2VkIGF0IHRoZSBuZXh0IHNvb25lciBvciBsYXRlci4KCi0gcHJfeHh4KCkg Y2FuIGJlIHJlcGxhY2VkIHdpdGggZGV2X3h4eCgpIGFzIHdlIHBhc3MgdGhlIGhkYSBvYmplY3Qg dG8KICBlYWNoIGZ1bmN0aW9uLgoKT3RoZXIgdGhhbiB0aGF0LCBhbGwgcGF0Y2hlcyBsb29rIGdv b2QuICBGZWVsIGZyZWUgdG8gdGFrZSBteQpyZXZpZXdlZC1ieSB0YWcuCiAgUmV2aWV3ZWQtYnk6 IFRha2FzaGkgSXdhaSA8dGl3YWlAc3VzZS5kZT4KCgp0aGFua3MsCgpUYWthc2hpCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5n IGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==