From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [RFC PATCH v3 2/7] drm/i915: Add support for audio driver notifications Date: Mon, 28 Nov 2016 19:01:08 +0200 Message-ID: <20161128170108.GK31595@intel.com> References: <20161124235548.16440-1-jerome.anand@intel.com> <20161124235548.16440-3-jerome.anand@intel.com> <20161124133240.GR31595@intel.com> <20161128140008.GB31595@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id A5E806E442 for ; Mon, 28 Nov 2016 17:01:13 +0000 (UTC) Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Anand, Jerome" Cc: "alsa-devel@alsa-project.org" , "tiwai@suse.de" , "intel-gfx@lists.freedesktop.org" , "broonie@kernel.org" , "Ughreja, Rakesh A" List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBOb3YgMjgsIDIwMTYgYXQgMDQ6NTA6MTVQTSArMDAwMCwgQW5hbmQsIEplcm9tZSB3 cm90ZToKPiAKPiAKPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tCj4gPiBGcm9tOiBWaWxs ZSBTeXJqw6Rsw6QgW21haWx0bzp2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbV0KPiA+IFNl bnQ6IE1vbmRheSwgTm92ZW1iZXIgMjgsIDIwMTYgNzozMCBQTQo+ID4gVG86IEFuYW5kLCBKZXJv bWUgPGplcm9tZS5hbmFuZEBpbnRlbC5jb20+Cj4gPiBDYzogaW50ZWwtZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZzsgYWxzYS1kZXZlbEBhbHNhLXByb2plY3Qub3JnOwo+ID4gYnJvb25pZUBrZXJu ZWwub3JnOyB0aXdhaUBzdXNlLmRlOyBwaWVycmUtbG91aXMuYm9zc2FydEBsaW51eC5pbnRlbC5j b207Cj4gPiBVZ2hyZWphLCBSYWtlc2ggQSA8cmFrZXNoLmEudWdocmVqYUBpbnRlbC5jb20+Cj4g PiBTdWJqZWN0OiBSZTogW1JGQyBQQVRDSCB2MyAyLzddIGRybS9pOTE1OiBBZGQgc3VwcG9ydCBm b3IgYXVkaW8gZHJpdmVyCj4gPiBub3RpZmljYXRpb25zCj4gPiAKPiA+IE9uIEZyaSwgTm92IDI1 LCAyMDE2IGF0IDA1OjUxOjAwQU0gKzAwMDAsIEFuYW5kLCBKZXJvbWUgd3JvdGU6Cj4gPiA+Cj4g PiA+Cj4gPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0KPiA+ID4gPiBGcm9tOiBWaWxs ZSBTeXJqw6Rsw6QgW21haWx0bzp2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbV0KPiA+ID4g PiBTZW50OiBUaHVyc2RheSwgTm92ZW1iZXIgMjQsIDIwMTYgNzowMyBQTQo+ID4gPiA+IFRvOiBB bmFuZCwgSmVyb21lIDxqZXJvbWUuYW5hbmRAaW50ZWwuY29tPgo+ID4gPiA+IENjOiBpbnRlbC1n ZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnOyBhbHNhLWRldmVsQGFsc2EtcHJvamVjdC5vcmc7Cj4g PiA+ID4gYnJvb25pZUBrZXJuZWwub3JnOyB0aXdhaUBzdXNlLmRlOwo+ID4gPiA+IHBpZXJyZS1s b3Vpcy5ib3NzYXJ0QGxpbnV4LmludGVsLmNvbTsKPiA+ID4gPiBVZ2hyZWphLCBSYWtlc2ggQSA8 cmFrZXNoLmEudWdocmVqYUBpbnRlbC5jb20+Cj4gPiA+ID4gU3ViamVjdDogUmU6IFtSRkMgUEFU Q0ggdjMgMi83XSBkcm0vaTkxNTogQWRkIHN1cHBvcnQgZm9yIGF1ZGlvCj4gPiA+ID4gZHJpdmVy IG5vdGlmaWNhdGlvbnMKPiA+ID4gPgo+ID4gPiA+IE9uIEZyaSwgTm92IDI1LCAyMDE2IGF0IDA1 OjI1OjQzQU0gKzA1MzAsIEplcm9tZSBBbmFuZCB3cm90ZToKPiA+ID4gPiA+IE5vdGlmaWF0aW9u cyBsaWtlIG1vZGUgY2hhbmdlLCBob3QgcGx1ZyBhbmQgZWRpZCB0byB0aGUgYXVkaW8KPiA+ID4g PiA+IGRyaXZlciBhcmUgYWRkZWQuIFRoaXMgaXMgaW50dXJuIHVzZWQgYnkgdGhlIGF1ZGlvIGRy aXZlciBmb3IgaXRzCj4gPiA+ID4gPiBmdW5jdGlvbmFsaXR5Lgo+ID4gPiA+ID4KPiA+ID4gPiA+ IEEgbmV3IGludGVyZmFjZSBmaWxlIGNhcHR1cmluZyB0aGUgbm90aWZpY2F0aW9ucyBuZWVkZWQg YnkgdGhlCj4gPiA+ID4gPiBhdWRpbyBkcml2ZXIgaXMgYWRkZWQKPiA+ID4gPiA+Cj4gPiA+ID4g PiBTaWduZWQtb2ZmLWJ5OiBQaWVycmUtTG91aXMgQm9zc2FydAo+ID4gPiA+ID4gPHBpZXJyZS1s b3Vpcy5ib3NzYXJ0QGxpbnV4LmludGVsLmNvbT4KPiA+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IEpl cm9tZSBBbmFuZCA8amVyb21lLmFuYW5kQGludGVsLmNvbT4KPiA+ID4gPiA+IC0tLQo+ID4gPiA+ ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAgIHwgIDMgKysrCj4gPiA+ ID4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXVkaW8uYyAgICAgfCAgOCArKysrKysK PiA+ID4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMgICAgICB8ICAxICsK PiA+ID4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scGVfYXVkaW8uYyB8IDQ5Cj4g PiA+ID4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ID4gPiA+ID4gIGluY2x1 ZGUvZHJtL2ludGVsX2xwZV9hdWRpby5oICAgICAgICAgIHwgIDEgKwo+ID4gPiA+ID4gIDUgZmls ZXMgY2hhbmdlZCwgNjIgaW5zZXJ0aW9ucygrKQo+ID4gPiA+ID4KPiA+ID4gPiA+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gPiA+ID4gPiBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggaW5kZXggMmE3OTA0OC4uMzNiYzQ0YyAxMDA2NDQKPiA+ ID4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiA+ID4gPiA+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiA+ID4gPiA+IEBAIC0zNTYxLDYg KzM1NjEsOSBAQCBpbnQgIGludGVsX2xwZV9hdWRpb19zZXR1cChzdHJ1Y3QKPiA+ID4gPiA+IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsgIHZvaWQgaW50ZWxfbHBlX2F1ZGlvX3RlYXJkb3du KHN0cnVjdAo+ID4gPiA+ID4gZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOyAgdm9pZAo+ID4g PiA+ID4gaW50ZWxfbHBlX2F1ZGlvX2lycV9oYW5kbGVyKHN0cnVjdAo+ID4gPiA+ID4gZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOyAgYm9vbCBpbnRlbF9scGVfYXVkaW9fZGV0ZWN0KHN0cnVj dAo+ID4gPiA+ID4gZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+ID4gPiA+ID4gK3ZvaWQg aW50ZWxfbHBlX2F1ZGlvX25vdGlmeShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYs Cj4gPiA+ID4gPiArCQkJdm9pZCAqZWxkLCBpbnQgcG9ydCwgaW50IHRtZHNfY2xrX3NwZWVkLAo+ ID4gPiA+ID4gKwkJCWJvb2wgY29ubmVjdGVkKTsKPiA+ID4gPiA+Cj4gPiA+ID4gPiAgLyogaW50 ZWxfaTJjLmMgKi8KPiA+ID4gPiA+ICBleHRlcm4gaW50IGludGVsX3NldHVwX2dtYnVzKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYpOyBkaWZmIC0tZ2l0Cj4gPiA+ID4gPiBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2F1ZGlvLmMKPiA+ID4gPiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfYXVkaW8uYwo+ID4gPiA+ID4gaW5kZXggMWM1MDlmNy4uNTVhNjgzMSAxMDA2NDQKPiA+ID4g PiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F1ZGlvLmMKPiA+ID4gPiA+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F1ZGlvLmMKPiA+ID4gPiA+IEBAIC0yNCw2 ICsyNCw3IEBACj4gPiA+ID4gPiAgI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgo+ID4gPiA+ID4g ICNpbmNsdWRlIDxsaW51eC9jb21wb25lbnQuaD4KPiA+ID4gPiA+ICAjaW5jbHVkZSA8ZHJtL2k5 MTVfY29tcG9uZW50Lmg+Cj4gPiA+ID4gPiArI2luY2x1ZGUgPGRybS9pbnRlbF9scGVfYXVkaW8u aD4KPiA+ID4gPiA+ICAjaW5jbHVkZSAiaW50ZWxfZHJ2LmgiCj4gPiA+ID4gPgo+ID4gPiA+ID4g ICNpbmNsdWRlIDxkcm0vZHJtUC5oPgo+ID4gPiA+ID4gQEAgLTYyNyw2ICs2MjgsMTAgQEAgdm9p ZCBpbnRlbF9hdWRpb19jb2RlY19lbmFibGUoc3RydWN0Cj4gPiA+ID4gaW50ZWxfZW5jb2RlciAq aW50ZWxfZW5jb2RlciwKPiA+ID4gPiA+ICAJaWYgKGFjb21wICYmIGFjb21wLT5hdWRpb19vcHMg JiYgYWNvbXAtPmF1ZGlvX29wcy0KPiA+ID4gPiA+cGluX2VsZF9ub3RpZnkpCj4gPiA+ID4gPiAg CQlhY29tcC0+YXVkaW9fb3BzLT5waW5fZWxkX25vdGlmeShhY29tcC0+YXVkaW9fb3BzLQo+ID4g PiA+ID5hdWRpb19wdHIsCj4gPiA+ID4gPiAgCQkJCQkJIChpbnQpIHBvcnQsIChpbnQpIHBpcGUp Owo+ID4gPiA+ID4gKwo+ID4gPiA+ID4gKwlpZiAoSEFTX0xQRV9BVURJTyhkZXZfcHJpdikpCj4g PiA+ID4gPiArCQlpbnRlbF9scGVfYXVkaW9fbm90aWZ5KGRldl9wcml2LCBjb25uZWN0b3ItPmVs ZCwgcG9ydCwKPiA+ID4gPiA+ICsJCQljcnRjX3N0YXRlLT5wb3J0X2Nsb2NrLCB0cnVlKTsKPiA+ ID4gPiA+ICB9Cj4gPiA+ID4gPgo+ID4gPiA+ID4gIC8qKgo+ID4gPiA+ID4gQEAgLTY2MCw2ICs2 NjUsOSBAQCB2b2lkIGludGVsX2F1ZGlvX2NvZGVjX2Rpc2FibGUoc3RydWN0Cj4gPiA+ID4gaW50 ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlcikKPiA+ID4gPiA+ICAJaWYgKGFjb21wICYmIGFjb21w LT5hdWRpb19vcHMgJiYgYWNvbXAtPmF1ZGlvX29wcy0KPiA+ID4gPiA+cGluX2VsZF9ub3RpZnkp Cj4gPiA+ID4gPiAgCQlhY29tcC0+YXVkaW9fb3BzLT5waW5fZWxkX25vdGlmeShhY29tcC0+YXVk aW9fb3BzLQo+ID4gPiA+ID5hdWRpb19wdHIsCj4gPiA+ID4gPiAgCQkJCQkJIChpbnQpIHBvcnQs IChpbnQpIHBpcGUpOwo+ID4gPiA+ID4gKwo+ID4gPiA+ID4gKwlpZiAoSEFTX0xQRV9BVURJTyhk ZXZfcHJpdikpCj4gPiA+ID4gPiArCQlpbnRlbF9scGVfYXVkaW9fbm90aWZ5KGRldl9wcml2LCBO VUxMLCBwb3J0LCAwLCB0cnVlKTsKPiA+ID4gPiA+ICB9Cj4gPiA+ID4gPgo+ID4gPiA+ID4gIC8q Kgo+ID4gPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWku Ywo+ID4gPiA+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMKPiA+ID4gPiA+ IGluZGV4IGZiODhlMzIuLjAyZDUwZTMgMTAwNjQ0Cj4gPiA+ID4gPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMKPiA+ID4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2hkbWkuYwo+ID4gPiA+ID4gQEAgLTM2LDYgKzM2LDcgQEAKPiA+ID4gPiA+ICAj aW5jbHVkZSA8ZHJtL2RybV9lZGlkLmg+Cj4gPiA+ID4gPiAgI2luY2x1ZGUgImludGVsX2Rydi5o Igo+ID4gPiA+ID4gICNpbmNsdWRlIDxkcm0vaTkxNV9kcm0uaD4KPiA+ID4gPiA+ICsjaW5jbHVk ZSA8ZHJtL2ludGVsX2xwZV9hdWRpby5oPgo+ID4gPiA+ID4gICNpbmNsdWRlICJpOTE1X2Rydi5o Igo+ID4gPiA+ID4KPiA+ID4gPiA+ICBzdGF0aWMgc3RydWN0IGRybV9kZXZpY2UgKmludGVsX2hk bWlfdG9fZGV2KHN0cnVjdCBpbnRlbF9oZG1pCj4gPiA+ID4gPiAqaW50ZWxfaGRtaSkgZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xwZV9hdWRpby5jCj4gPiA+ID4gPiBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xwZV9hdWRpby5jCj4gPiA+ID4gPiBpbmRleCA1 MzM1ZmM2Li45M2Y4M2NiIDEwMDY0NAo+ID4gPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfbHBlX2F1ZGlvLmMKPiA+ID4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2xwZV9hdWRpby5jCj4gPiA+ID4gPiBAQCAtMzY3LDMgKzM2Nyw1MiBAQCB2b2lkIGlu dGVsX2xwZV9hdWRpb190ZWFyZG93bihzdHJ1Y3QKPiA+ID4gPiA+IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2KQo+ID4gPiA+ID4KPiA+ID4gPiA+ICAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgm ZGV2X3ByaXYtPmlycV9sb2NrLCBpcnFmbGFncyk7ICB9Cj4gPiA+ID4gPiArCj4gPiA+ID4gPiAr Cj4gPiA+ID4gPiArLyoqCj4gPiA+ID4gPiArICogaW50ZWxfbHBlX2F1ZGlvX25vdGlmeSgpIC0g bm90aWZ5IGxwZSBhdWRpbyBldmVudAo+ID4gPiA+ID4gKyAqIGF1ZGlvIGRyaXZlciBhbmQgaTkx NQo+ID4gPiA+ID4gKyAqIEBkZXZfcHJpdjogdGhlIGk5MTUgZHJtIGRldmljZSBwcml2YXRlIGRh dGEKPiA+ID4gPiA+ICsgKiBAZWxkIDogRUxEIGRhdGEKPiA+ID4gPiA+ICsgKiBAcG9ydDogcG9y dCBpZAo+ID4gPiA+ID4gKyAqIEB0bWRzX2Nsa19zcGVlZDogdG1kcyBjbG9jayBmcmVxdWVuY3kg aW4gSHoKPiA+ID4gPiA+ICsgKiBAY29ubmVjdGVkOiBoZG1pIGNvbm5lY3RlZC9kaXNjb25uZWN0 ZWQKPiA+ID4gPiA+ICsgKgo+ID4gPiA+ID4gKyAqIE5vdGlmeSBscGUgYXVkaW8gZHJpdmVyIG9m IGVsZCBjaGFuZ2UuCj4gPiA+ID4gPiArICovCj4gPiA+ID4gPiArdm9pZCBpbnRlbF9scGVfYXVk aW9fbm90aWZ5KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+ID4gPiA+ICsJ CQl2b2lkICplbGQsIGludCBwb3J0LCBpbnQgdG1kc19jbGtfc3BlZWQsCj4gPiA+ID4gPiArCQkJ Ym9vbCBjb25uZWN0ZWQpCj4gPiA+ID4gPiArewo+ID4gPiA+ID4gKwl1bnNpZ25lZCBsb25nIGly cV9mbGFnczsKPiA+ID4gPiA+ICsKPiA+ID4gPiA+ICsJaWYgKEhBU19MUEVfQVVESU8oZGV2X3By aXYpKSB7Cj4gPiA+ID4gPiArCQlzdHJ1Y3QgaW50ZWxfaGRtaV9scGVfYXVkaW9fcGRhdGEgKnBk YXRhID0KPiA+ID4gPiBkZXZfZ2V0X3BsYXRkYXRhKAo+ID4gPiA+ID4gKwkJCSYoZGV2X3ByaXYt PmxwZV9hdWRpby5wbGF0ZGV2LT5kZXYpKTsKPiA+ID4gPiA+ICsKPiA+ID4gPiA+ICsJCWlmIChw ZGF0YSkgewo+ID4gPiA+Cj4gPiA+ID4gSG93IGNvdWxkIHRoZSAhcGRhdGEgY2FzZSBoYXBwZW4/ IElmIGl0IGNhbid0IHdlIHNob3VsZG4ndCBjYXRlciBmb3IgaXQuCj4gPiA+ID4KPiA+ID4KPiA+ ID4gSXQgY2FuIGhhcHBlbiBpZiB0aGVyZSBpcyBhIG5vdGlmaWNhdGlvbiBiZWZvcmUgYXVkaW8g ZHJpdmVyIGlzCj4gPiA+IGluaXRpYWxpemVkCj4gPiAKPiA+IFlvdSdyZSBzZXR0aW5nIHRoZSBw bGF0Zm9ybV9kYXRhIGluIGk5MTUgY29kZS4KPiA+IAo+IAo+IE9LCj4gCj4gPiA+Cj4gPiA+ID4g PiArCQkJc3Bpbl9sb2NrX2lycXNhdmUoJnBkYXRhLT5scGVfYXVkaW9fc2xvY2ssCj4gPiA+ID4g PiArCQkJCWlycV9mbGFncyk7Cj4gPiA+ID4gPiArCj4gPiA+ID4gPiArCQkJaWYgKGVsZCAhPSBO VUxMKSB7Cj4gPiA+ID4gPiArCQkJCW1lbWNweShwZGF0YS0+ZWxkLmVsZF9kYXRhLCBlbGQsCj4g PiA+ID4gPiArCQkJCQlIRE1JX01BWF9FTERfQllURVMpOwo+ID4gPiA+ID4gKwkJCQlwZGF0YS0+ ZWxkLnBvcnRfaWQgPSBwb3J0Owo+ID4gPiA+ID4gKwo+ID4gPiA+ID4gKwkJCQlpZiAodG1kc19j bGtfc3BlZWQpCj4gPiA+ID4KPiA+ID4gPiBXaHkgdGhlIGlmPwo+ID4gPiA+Cj4gPiA+Cj4gPiA+ IFRtZHMgb2YgemVybyBpcyBzZW50IGluIGNvZGVjX2Rpc2FibGUuIEhlbmNlIGFkZGVkLCBqdXN0 IHRvIGF2b2lkCj4gPiA+IHVubmVjZXNzYXJ5IG5vdGlmaWNhdGlvbiB0byBhdWRpbyBkcml2ZXIK PiA+IAo+ID4gSSBoYXZlIG5vIGlkZWEgd2h5IGhhbmdpbmcgb24gdG8gYSBib2d1cyB0bWRzIGNs b2NrIHdvdWxkIHByZXZlcnQgc29tZQo+ID4gbm90aWZpY2F0aW9uIGNhbGwuCj4gPiAKPiAKPiBB bSBub3Qgc3VyZSB3aGF0IGFkdmFudGFnZSBpcyBnYWluZWQgaGVyZSBieSByZW1vdmluZyBpdAo+ IAo+ID4gPgo+ID4gPiA+ID4gKwkJCQkJcGRhdGEtPnRtZHNfY2xvY2tfc3BlZWQgPQo+ID4gPiA+ ID4gKwkJCQkJCXRtZHNfY2xrX3NwZWVkOwo+ID4gPiA+ID4gKwkJCX0KPiA+ID4gPiA+ICsJCQlw ZGF0YS0+aGRtaV9jb25uZWN0ZWQgPSBjb25uZWN0ZWQ7Cj4gPiA+ID4KPiA+ID4gPiBBbHNvIGNh bid0IHJlYWxseSBzZWUgbXVjaCBuZWVkIGZvciB0aGlzLiBBbnkgb25lIG9mIHRoZSBwb3J0L3Rt ZHMKPiA+ID4gPiBjbG9jay9lbGQgc2hvdWxkIGJlIHN1ZmZpY2llbnQuCj4gPiA+Cj4gPiA+IEVs ZCBhbmQgdG1kcyBhcmUgbmVlZGVkIHRvIGNhdGVyIHRvIGhvdHBsdWcgYW5kIGRpc3BsYXkgbW9k ZSBjaGFuZ2UKPiA+ID4gbm90aWZpY2F0aW9ucy4gUG9ydCBjYW4gYmUgYXZvaWRlZCBidXQga2Vw dCBmb3IgZGVidWcKPiA+IAo+ID4gSSBkb24ndCBrbm93IHdoYXQgeW91IG1lYW4uIFRoZSBFTEQv dG1kcyBjbG9jayBzaG91bGQgb25seSBiZSBuZWVkZWQKPiA+IHdoZW4gdGhlIGRpc3BsYXkgaXMg b24uCj4gCj4gSSBkb24ndCBnZXQgeW91ciBwb2ludC4gV2UgYXJlIGRvaW5nIHRoaXMgd2hvbGUg ZXhlcmNpc2UgdG8gY2F0ZXIgdG8gZGlzcGxheSBPTiBzY2VuYXJpb3MuCgpZZXMsIGJ1dCB0aGUg aGRtaV9jb25uZWN0ZWQgdGhpbmcgc2VlbXMgdG90YWxseSByZWR1bmRhbnQuIEl0IGNhbiBiZQpk ZXJpdmVkIGZyb20gYW55IG9mIHRoZSBlbGQvdG1kc19jbG9jay9wb3J0IGJlaW5nIHNldCB0byAw L0lOVkFMSUQuCgo+IAo+ID4gCj4gPiA+Cj4gPiA+ID4KPiA+ID4gPiA+ICsJCQlpZiAocGRhdGEt Pm5vdGlmeV9hdWRpb19scGUpCj4gPiA+ID4gPiArCQkJCXBkYXRhLT5ub3RpZnlfYXVkaW9fbHBl KAo+ID4gPiA+ID4gKwkJCQkJKGVsZCAhPSBOVUxMKSA/ICZwZGF0YS0+ZWxkIDogTlVMTCk7Cj4g PiA+ID4gPiArCQkJZWxzZQo+ID4gPiA+ID4gKwkJCQlwZGF0YS0+bm90aWZ5X3BlbmRpbmcgPSB0 cnVlOwo+ID4gPiA+Cj4gPiA+ID4gU3RpbGwgbm90IHN1cmUgd2h5IHRoZSAicGVuZGluZyIgdGhp bmcgaXMgdXNlZnVsLiBDYW4ndCB0aGUgYXVkaW8KPiA+ID4gPiBkcml2ZXIganVzdCBkbyBpdHMg dGhpbmcgKHdoYXRldmVyIGl0IGlzKSB1bmNvbmRpdGlvbmFsbHk/Cj4gPiA+ID4KPiA+ID4KPiA+ ID4gVGhpcyBpcyBhZGRlZCB0byBhdm9pZCByYWNlIHdoZW4gYXVkaW8gZHJpdmVyIGxvYWRzIGxh dGUgYW5kIHRoZSBub3RpZmljYXRpb24KPiA+IGZyb20gZGlzcGxheSBoYXMgYWxyZWFkeSBwYXNz ZWQuCj4gPiAKPiA+IFlvdSBrZWVwIHNheWluZyB0aGF0IGJ1dCBJIGNhbid0IHNlZSBpdC4KPiA+ IAo+IAo+IEkgaGF2ZSBzZWVuIHRoaXMgaGFwcGVuIC0gYmVmb3JlIGF1ZGlvIGRyaXZlciBpcyBs b2FkZWQsIGNvZGVjIGVuYWJsZSBjb21wbGV0ZXMgYW5kIG5vdGlmaWNhdGlvbiBpcyBzZW50IHRv IHRoZSBhdWRpbyBkcml2ZXIuIAo+IFNpbmNlIHRoZSBhdWRpbyBjYWxsYmFja3MgYXJlIG5vdCBp bml0aWFsaXplZCwgbm90aWZpY2F0aW9uIGdldHMgbWlzc2VkLgoKU3VyZS4gQnV0IHdoYXQgZG9l cyB0aGUgZXh0cmEgbm90aWZpY2F0aW9uX3BlbmRpbmcgZmxhZyBidXkgdXM/IFRoZQphdWRpbyBk cml2ZXIgY291bGQganVzdCBjaGVjayB0aGUgZWxkL3RtZHNfY2xvY2svcG9ydCBkaXJlY3RseS4K Cj4gCj4gPiA+Cj4gPiA+ID4gV2hlbiBkaXNhYmxpbmcganVzdCBjbGVhciB0aGUgcG9ydCB0byBJ TlZBTElELCBlbGQgdG8gemVybywgYW5kIHRtZHMKPiA+ID4gPiBjbG9jayB0byAwLCBhbmQgaXQg c2hvdWxkIGFsbCBiZSBmaW5lIG5vPwo+ID4gPiA+Cj4gPiA+Cj4gPiA+IFllcywgdGhhdCdzIHdo YXQgaXMgYmVpbmcgZG9uZS4KPiA+IAo+ID4gV2hlcmU/Cj4gPiAKPiAKPiBOb3RpZnkgY2FsbGJh Y2sgd2lsbCBoYXZlIGVsZCB0byBOVUxMIGFuZCB0bWRzIHRvIHplcm8gc2VudCBpbiBjb2RlY19k aXNhYmxlCgpCdXQgdGhlIGRyaXZlciBjYW4gbG9vayB0aG9zZSB0aGlnbnMgdXAgZGlyZWN0bHkg YXMgd2VsbCBpdCBzZWVtcy4gU28KdGhpcyB3aG9sZSB0aGluZyBpcyBhIGJpdCBvZiBhIG1lc3Mg b24gYWNjb3VudCBvZiBzaGFyaW5nIHRoZSBwbGF0Zm9ybQphcyBhIGNvbW11bmljYXRpb24gY2hh bm5lbCBhbmQgYWxzbyB0cnlpbmcgdG8gcGFzcyB0aGUgdGhpbmdzIGFzCnBhcmFhbWV0ZXJzIHRv IHRoZSBub3RpZnkgaG9vay4gSSB0aGluayB3ZSBuZWVkIHRvIHBpY2sgb25lIG9yIHRoZSBvdGhl cgphcHByb2FjaCwgbm90IHNvbWUgbWlzbWFzaCBvZiBib3RoLgoKPiAKPiA+ID4KPiA+ID4gPiA+ ICsKPiA+ID4gPiA+ICsJCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwZGF0YS0+bHBlX2F1ZGlv X3Nsb2NrLAo+ID4gPiA+ID4gKwkJCQlpcnFfZmxhZ3MpOwo+ID4gPiA+ID4gKwkJfSBlbHNlCj4g PiA+ID4gPiArCQkJRFJNX0RFQlVHX0RSSVZFUigibm8gYXVkaW8gbm90aWZpY2F0aW9uXG4iKTsK PiA+ID4gPiA+ICsJfQo+ID4gPiA+ID4gK30KPiA+ID4gPiA+IGRpZmYgLS1naXQgYS9pbmNsdWRl L2RybS9pbnRlbF9scGVfYXVkaW8uaAo+ID4gPiA+ID4gYi9pbmNsdWRlL2RybS9pbnRlbF9scGVf YXVkaW8uaCBpbmRleCBhNjRjNDQ5Li45NTJkZTA1IDEwMDY0NAo+ID4gPiA+ID4gLS0tIGEvaW5j bHVkZS9kcm0vaW50ZWxfbHBlX2F1ZGlvLmgKPiA+ID4gPiA+ICsrKyBiL2luY2x1ZGUvZHJtL2lu dGVsX2xwZV9hdWRpby5oCj4gPiA+ID4gPiBAQCAtMjUsNiArMjUsNyBAQAo+ID4gPiA+ID4gICNk ZWZpbmUgX0lOVEVMX0xQRV9BVURJT19IXwo+ID4gPiA+ID4KPiA+ID4gPiA+ICAjaW5jbHVkZSA8 bGludXgvdHlwZXMuaD4KPiA+ID4gPiA+ICsjaW5jbHVkZSA8bGludXgvc3BpbmxvY2tfdHlwZXMu aD4KPiA+ID4gPiA+Cj4gPiA+ID4gPiAgI2RlZmluZSBIRE1JX01BWF9FTERfQllURVMJMTI4Cj4g PiA+ID4gPgo+ID4gPiA+ID4gLS0KPiA+ID4gPiA+IDIuOS4zCj4gPiA+ID4KPiA+ID4gPiAtLQo+ ID4gPiA+IFZpbGxlIFN5cmrDpGzDpAo+ID4gPiA+IEludGVsIE9UQwo+ID4gCj4gPiAtLQo+ID4g VmlsbGUgU3lyasOkbMOkCj4gPiBJbnRlbCBPVEMKCi0tIApWaWxsZSBTeXJqw6Rsw6QKSW50ZWwg T1RDCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVs LWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=