From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rodrigo Vivi Subject: Re: [PATCH 3/5] drm/i915: merge gen checks to use range Date: Fri, 2 Nov 2018 15:47:53 -0700 Message-ID: <20181102224753.GT2233@intel.com> References: <20181101083517.20193-1-lucas.demarchi@intel.com> <20181101083517.20193-4-lucas.demarchi@intel.com> <4d341fa0-538a-d4aa-29bb-307ce04523ff@linux.intel.com> <20181102181008.GA10689@ldmartin-desk.jf.intel.com> <20181102191913.GG2233@intel.com> <20181102194728.GA2824@ldmartin-desk.jf.intel.com> <20181102221218.GP2233@intel.com> <20181102222726.GA3648@ldmartin-desk.jf.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id AE7B66E61E for ; Fri, 2 Nov 2018 22:47:56 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20181102222726.GA3648@ldmartin-desk.jf.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Lucas De Marchi Cc: intel-gfx@lists.freedesktop.org, Lucas De Marchi List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBOb3YgMDIsIDIwMTggYXQgMDM6Mjg6MDBQTSAtMDcwMCwgTHVjYXMgRGUgTWFyY2hp IHdyb3RlOgo+IE9uIEZyaSwgTm92IDAyLCAyMDE4IGF0IDAzOjEyOjE4UE0gLTA3MDAsIFJvZHJp Z28gVml2aSB3cm90ZToKPiA+IE9uIEZyaSwgTm92IDAyLCAyMDE4IGF0IDEyOjQ3OjI4UE0gLTA3 MDAsIEx1Y2FzIERlIE1hcmNoaSB3cm90ZToKPiA+ID4gT24gRnJpLCBOb3YgMDIsIDIwMTggYXQg MTI6MTk6MTNQTSAtMDcwMCwgUm9kcmlnbyBWaXZpIHdyb3RlOgo+ID4gPiA+IE9uIEZyaSwgTm92 IDAyLCAyMDE4IGF0IDExOjEwOjEwQU0gLTA3MDAsIEx1Y2FzIERlIE1hcmNoaSB3cm90ZToKPiA+ ID4gPiA+IE9uIFRodSwgTm92IDAxLCAyMDE4IGF0IDExOjMxOjI1QU0gKzAwMDAsIFR2cnRrbyBV cnN1bGluIHdyb3RlOgo+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gT24gMDEvMTEvMjAxOCAwODoz NSwgTHVjYXMgRGUgTWFyY2hpIHdyb3RlOgo+ID4gPiA+ID4gPiA+IEluc3RlYWQgb2YgdXNpbmcg c2V2ZXJhbCBJU19HRU4oKSwgaXQncyBwb3NzaWJsZSB0byBwYXNzIHRoZQo+ID4gPiA+ID4gPiA+ IHJhbmdlIGFzIGFyZ3VtZW50LiBCeSBjb2RlIGluc3BlY3Rpb24gdGhlc2Ugd2VyZSB0aGUgcmFu Z2VzIGRlZW1lZAo+ID4gPiA+ID4gPiA+IG5lY2Vzc2FyeSBmb3Igc3BhdGNoOgo+ID4gPiA+ID4g PiA+IAo+ID4gPiA+ID4gPiA+IEBACj4gPiA+ID4gPiA+ID4gZXhwcmVzc2lvbiBlOwo+ID4gPiA+ ID4gPiA+IEBACj4gPiA+ID4gPiA+ID4gKAo+ID4gPiA+ID4gPiA+IC0gSVNfR0VOKGUsIDMpIHx8 IElTX0dFTihlLCA0KQo+ID4gPiA+ID4gPiA+ICsgSVNfR0VOKGUsIDMsIDQpCj4gPiA+ID4gPiA+ ID4gfAo+ID4gPiA+ID4gPiA+IC0gSVNfR0VOKGUsIDUpIHx8IElTX0dFTihlLCA2KQo+ID4gPiA+ ID4gPiA+ICsgSVNfR0VOKGUsIDUsIDYpCj4gPiA+ID4gPiA+ID4gfAo+ID4gPiA+ID4gPiA+IC0g SVNfR0VOKGUsIDYpIHx8IElTX0dFTihlLCA3KQo+ID4gPiA+ID4gPiA+ICsgSVNfR0VOKGUsIDYs IDcpCj4gPiA+ID4gPiA+ID4gfAo+ID4gPiA+ID4gPiA+IC0gSVNfR0VOKGUsIDcpIHx8IElTX0dF TihlLCA4KQo+ID4gPiA+ID4gPiA+ICsgSVNfR0VOKGUsIDcsIDgpCj4gPiA+ID4gPiA+ID4gfAo+ ID4gPiA+ID4gPiA+IC0gSVNfR0VOKGUsIDgpIHx8IElTX0dFTihlLCA5KQo+ID4gPiA+ID4gPiA+ ICsgSVNfR0VOKGUsIDgsIDkpCj4gPiA+ID4gPiA+ID4gfAo+ID4gPiA+ID4gPiA+IC0gSVNfR0VO KGUsIDEwKSB8fCBJU19HRU4oZSwgOSkKPiA+ID4gPiA+ID4gPiArIElTX0dFTihlLCA5LCAxMCkK PiA+ID4gPiA+ID4gPiB8Cj4gPiA+ID4gPiA+ID4gLSBJU19HRU4oZSwgOSkgfHwgSVNfR0VOKGUs IDEwKQo+ID4gPiA+ID4gPiA+ICsgSVNfR0VOKGUsIDksIDEwKQo+ID4gPiA+ID4gPiA+ICkKPiA+ ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBMdWNhcyBEZSBNYXJjaGkg PGx1Y2FzLmRlbWFyY2hpQGludGVsLmNvbT4KPiA+ID4gPiA+ID4gPiAtLS0KPiA+ID4gPiA+ID4g PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jICAgICAgICB8IDYgKysrLS0t Cj4gPiA+ID4gPiA+ID4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jICAg ICAgfCAyICstCj4gPiA+ID4gPiA+ID4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BlcmYu YyAgICAgICAgICAgfCAyICstCj4gPiA+ID4gPiA+ID4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9jcnQuYyAgICAgICAgICAgfCAyICstCj4gPiA+ID4gPiA+ID4gICBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kZXZpY2VfaW5mby5jICAgfCAyICstCj4gPiA+ID4gPiA+ID4gICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgICAgICAgfCAyICstCj4gPiA+ID4gPiA+ ID4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYyAgICAgfCAyICstCj4g PiA+ID4gPiA+ID4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9maWZvX3VuZGVycnVuLmMg fCAyICstCj4gPiA+ID4gPiA+ID4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9waXBlX2Ny Yy5jICAgICAgfCA0ICsrLS0KPiA+ID4gPiA+ID4gPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3VuY29yZS5jICAgICAgICB8IDYgKysrLS0tCj4gPiA+ID4gPiA+ID4gICAxMCBmaWxlcyBj aGFuZ2VkLCAxNSBpbnNlcnRpb25zKCspLCAxNSBkZWxldGlvbnMoLSkKPiA+ID4gPiA+ID4gPiAK PiA+ID4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1 Z2ZzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+ID4gPiA+ID4gPiA+ IGluZGV4IDI4ZDk1ZjlkMGIwZS4uZjJmYmMwMTZiZDdmIDEwMDY0NAo+ID4gPiA+ID4gPiA+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCj4gPiA+ID4gPiA+ID4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiA+ID4gPiA+ID4gPiBAQCAt MjAzMCw3ICsyMDMwLDcgQEAgc3RhdGljIGludCBpOTE1X3N3aXp6bGVfaW5mbyhzdHJ1Y3Qgc2Vx X2ZpbGUgKm0sIHZvaWQgKmRhdGEpCj4gPiA+ID4gPiA+ID4gICAJc2VxX3ByaW50ZihtLCAiYml0 NiBzd2l6emxlIGZvciBZLXRpbGluZyA9ICVzXG4iLAo+ID4gPiA+ID4gPiA+ICAgCQkgICBzd2l6 emxlX3N0cmluZyhkZXZfcHJpdi0+bW0uYml0XzZfc3dpenpsZV95KSk7Cj4gPiA+ID4gPiA+ID4g LQlpZiAoSVNfR0VOKGRldl9wcml2LCAzKSB8fCBJU19HRU4oZGV2X3ByaXYsIDQpKSB7Cj4gPiA+ ID4gPiA+ID4gKwlpZiAoSVNfR0VOKGRldl9wcml2LCAzLCA0KSkgewo+ID4gPiA+ID4gPiAKPiA+ ID4gPiA+ID4gSSBjYW4gc2VlIHZhbHVlIGluIGl0IGJ1dCB0aGluayBpdCB3b3VsZCByZWFkIGJl dHRlciB3aXRoIElTX0dFTl9SQU5HRS4KPiA+ID4gPiA+IAo+ID4gPiA+ID4gT2ssIGl0IHNlZW1z IHRoZXJlJ3MgYSByb3VnaCBjb25zZW5zdXMgb2Ygcy9JU19HRU4vSVNfR0VOX1JBTkdFLyBhbiB0 aGVuCj4gPiA+ID4gPiBicmluZyB0aGUgcGF0Y2hlcyB0aGF0IG1ha2Ugc2Vuc2UgaGVyZS4gVGhl cmUgd2FzIGEgcmVjZW50IHBhdGNoIGZyb20gUm9kcmlnbwo+ID4gPiA+ID4gZG9pbmcgdGhhdC4g SSdsbCBpbmNsdWRlIGl0IGluIG5leHQgdmVyc2lvbi4KPiA+ID4gPiAKPiA+ID4gPiBJIGxpa2Vk IHRoZSBkb3VibGUgYXJncyBpZGVhIGJ1dCBhZnRlciByZWFkaW5nIEkgYmVsaWV2ZQo+ID4gPiA+ IGl0IGdldHMgY2xlYXIgSVNfR0VOX1JBTkdFLgo+ID4gPiA+IAo+ID4gPiA+ID4gCj4gPiA+ID4g PiA+IAo+ID4gPiA+ID4gPiBBcmUgdGhlcmUgYW55IGNhc2VzIG9mIG9yLWVkIElTX0dFTiBjaGVj a3Mgd2l0aCBzb21ldGhpbmcgc2FuZHdpY2hlZCBpbgo+ID4gPiA+ID4gPiBiZXR3ZWVuIHRoZW4s IHdoaWNoIHRoZSBhYm92ZSBzcGF0Y2ggd291bGQgbWlzcz8KPiA+ID4gPiA+IAo+ID4gPiA+ID4g QnkgbWFudWFsbHkgaW5zcGVjdGluZyB0aGUgcmVzdWx0IG9mIGBgZ2l0IGdyZXAgLW5lICJJU19H RU4oLioiIC0tIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2BgCj4gPiA+ID4gPiBJIGRpZG4ndCBmaW5k IGFueS4gVGhlIG9ubHkgdGhpbmcgSSBmb3VuZCB3YXMgYSBtaXNzZWQgY2FzZSBmb3IgZ2VuMyB8 fCBnZW4yCj4gPiA+ID4gPiB0aGF0IHdhcyBub3QgY292ZXJlZCBieSB0aGUgc3BhdGNoLgo+ID4g PiA+ID4gCj4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiBIb3cgbWFueSBub24tY29uc2VjdXRpdmUg SVNfR0VOIGdlbiBjaGVja3MgYXJlIHRoZXJlPyBUbyBnaXZlIHVzIHNvbWUgaWRlYXMKPiA+ID4g PiA+ID4gaWYgdGhlIHVzdWFsIHBhdHRlcm4gaXMgcmFuZ2UsIG9yIHBlcmhhcHMgY2hlY2tzIGFn YWluc3QgYSBsaXN0IG9mIGdlbnMgYWxzbwo+ID4gPiA+ID4gPiBleGlzdHM/IChHdXQgZmVlbGlu ZyBzYXlzIG5vLikKPiA+ID4gPiA+IAo+ID4gPiA+ID4gb25seSBjYXNlcyBvZiA8PSwgPCwgPj0s ID4uCj4gPiA+ID4gCj4gPiA+ID4gRm9yIHRoZXNlIGNhc2VzIG9uIHBhdGNoZXMgNCBhbmQgNTo6 Cj4gPiA+ID4gCj4gPiA+ID4gV2hhdCBhYm91dCBjb252ZXJ0aW5nIGFsbCA8IG4gdG8gPD0gbi0x IGFuZCBhbGwgPiBuIHRvID49IG4gKyAxCj4gPiA+ID4gZ2V0IEZPUlZFUiBiYWNrIGFuZCBpbnRy b2R1Y2UgSVNfR0VOX1VOVElMID8KPiA+ID4gPiAKPiA+ID4gPiBJU19HRU5fVU5USUwoZGV2X3By aXYsIGUpCj4gPiA+ID4gSVNfR0VOX1JBTkdFKGRldl9wcml2LCBzLCBGT1JFVkVSKQo+ID4gPiA+ IAo+ID4gPiA+IHNvIHdlIGNhbiBhbHNvIGtpbGwgSU5URUxfR0VOLgo+ID4gPiA+IAo+ID4gPiA+ IEFub3RoZXIgZGlmZmVyZW50IGlkZWEgb24gdG9wIG9mIHRoYXQuCj4gPiA+ID4gCj4gPiA+ID4g V2hhdCBhYm91dCByZW1vdmluZyBhbGwgIklTXyI/Cj4gPiA+ID4gCj4gPiA+ID4gc28gZW5kIHJl c3VsdCBjb3VsZCBiZSBzb21ldGhpbmcgbGlrZSB0aGF0Ogo+ID4gPiA+IAo+ID4gPiA+IElOVEVM X0dFTihkZXZfcHJpdiwgbikKPiA+ID4gPiBESVNQTEFZX0dFTihkZXZfcHJpdiwgbikKPiA+ID4g PiBJTlRFTF9HRU5fUkFOR0UoZGV2X3ByaXYsIHMsIGUpICNvciBlID0gRk9SRVZFUgo+ID4gPiA+ IERJU1BMQVlfR0VOX1JBTkdFKGRldl9wcml2LCBzLCBlKSAjb3IgZSA9IEZPUkVWRVIKPiA+ID4g PiBJTlRFTF9HRU5fVU5USUwoZGV2X3ByaXYsIGUpCj4gPiA+ID4gRElTUExBWV9HRU5fVU5USUwo ZGV2X3ByaXYsIGUpCj4gPiA+ID4gCj4gPiA+ID4gKG1heWJlIHMvSU5URUwvR1QpCj4gPiA+IAo+ ID4gPiBJIGxpa2UgaXQuIEknbSBqdXN0IG5vdCBzdXJlIGFib3V0IFVOVElMLCBiZWNhdXNlIEkg d2lsbCBhbHdheXMgaGF2ZSBkb3VidHMgaWYKPiA+ID4gaXQncyBpbmNsdXNpdmUgb3Igbm90LiBC dXQgSSBndWVzcyB3ZSBoYXZlIHRoZSBzYW1lIHRvZGF5IHdpdGggUkFOR0UgYW5kIHdlCj4gPiA+ IGp1c3QgZ2V0IHVzZWQgdG8gaXQuIEJ5IG1ha2luZyBhbGwgb2YgdGhlbSBpbmNsdXNpdmUsIGl0 IHdpbGwgYmUgZWFzaWVyLgo+ID4gPiAKPiA+ID4gQW55d2F5LCBteSBwcmVmZXJlbmNlIGlzOgo+ ID4gPiAKPiA+ID4gR1RfR0VOKGRldl9wcml2LCBuKQo+ID4gPiBHVF9HRU5fUkFOR0UoZGV2X3By aXYsIHMsIGUpCj4gPiA+ICAgICBhbmQgZSBjYW4gYmUgR0VOX0ZPUkVWRVIsIGFrYSAtMS4gVGhl IG1hY3JvIGhhcyBlbm91Z2gga25vd2xlZGdlIHRvIHdvcmsgb3V0Cj4gPiAKPiA+IG9uZSBuaXB0 aWsKPiA+IEkgcHJlZmVyIEZPUkVWRVIgYWxvbmUgdGhhbiBHRU5fRk9SRVZFUiBiZWNhdXNlIG1h Y3JvIGFscmVhZHkgaGFzICJHRU4iCj4gCj4gaHVtbi4uLiBidXQgdGhlbiB0aGUgbWFjcm8gbG9z ZXMgY29udGV4dCBhbmQgbWF5IGNvbmZsaWN0IHdpdGggb3RoZXIgdXNlIGNhc2VzCj4gKG5vdCBv bmx5IHByZXNlbnQgb25lcywgYnV0IHdoZW4gd2UgZGVjaWRlIHRvIGFkZCBzb21ldGhpbmcgYW5k IHdpbGwgbmVlZCB0bwo+IHJlbmFtZSBGT1JFVkVSIHNvIGl0IGRvZXNuJ3QgY2x1dHRlciB0aGUg bmFtZXNwYWNlLiBUb2RheSB3ZSBhbHJlYWR5IGhhdmUKPiBSRVZJRF9GT1JFVkVSIHByb3Blcmx5 IG5hbWVzcGFjZWQuCgpkYW0uLi4geW91IGFyZSByaWdodC4uLi4KCnNvIGp1c3QgcmV2ZXJ0IG15 IHBhdGNoPwoKZ2l0IHJldmVydCA1YmMwZTg5ZmYxYmUgIyAoImRybS9pOTE1OiBLaWxsIEdFTl9G T1JFVkVSIikKCihzdHVwaWQgUm9kcmlnbyBydXNoZWQgdGhpcyBpbiB3aXRob3V0IG11Y2ggZGlz Y3Vzc2lvbiA6UCkKCj4gCj4gCj4gPiAKPiA+ID4gICAgIHRoZSBtYXNrLCBlLmcuIHMgPT0gMTAs IGUgPT0gRk9SRVZFUiA9PiBtYXNrID09IH4oQklUKHMpIHwgKEJJVChzKSAtIDEpKQo+ID4gPiAK PiA+ID4gQW5kIHRoZSBESVNQTEFZX0dFTiogY291bnRlcnBhcnRzLgo+ID4gPiAKPiA+ID4gSU1P IHRoZXJlJ3Mgbm8gbmVlZCB0byBoYXZlIF9VTlRJTCBiZWNhdXNlIGl0IGNhbiBhbHNvIGJlIGV4 cHJlc3NlZCBhcwo+ID4gPiBHVF9HRU5fUkFOR0UoZGV2X3ByaXYsIEdFTl9GT1JFVkVSLCAxMCku Cj4gPiAKPiA+IFllYXAsIHRoZSBHRU5fRk9SRVZFUiBJIGhhZCBqdXN0IGtpbGxlZCBsYXN0IHdl ZWsgY292ZXJlZCB0aGlzIGNhc2UsCj4gPiBidXQgbXkgYnJhaW4gcmVmdXNlcyB0byB1c2UgYW5k IGFjY2VwdCBGT1JFVkVSIHRvIHNvbWV0aGluZyBpbiB0aGUgcGFzdC4KPiA+IAo+ID4gbWF5YmUg R1RfR0VOX1JBTkdFKGRldl9wcml2LCAwLCAxMCkgaW5zdGVhZCBvZiBVTlRJTCA/Cj4gCj4geWVh aCwgdGhhdCdzIGEgZ3JlYXQgaWRlYSwgdmVyeSBjbGVhciBhbmQgZWFzeSB0byBpbXBsZW1lbnQu Cj4gCj4gPiAKPiA+IG9yIEdUX0dFTl9SQU5HRShkZXZfcHJpdiwgQkVHSU4sIDEwKSA/Cj4gPiAK PiA+ID4gCj4gPiA+IFRoaXMgd2F5IHdlIGNhbiBhbHNvIGtpbGwgdGhlIGNvbXBhcmlzb25zIElO VEVMX0dFTihkZXZfcHJpdikgPT0geCwgc28gd2UgYWx3YXlzCj4gPiA+IHdvcmsgd2l0aCB0aGUg Z2VuX21hc2sgZmllbGQuIFdoaWNoIG1lYW5zIHRoZSBjb21waWxlciBjYW4gZG8gYSBzaW5nbGUg Y29tcGFyaXNvbgo+ID4gPiAoL21lIGhvcGluZyBpdCBhY3R1YWxseSBnZW5lcmF0ZXMgZ29vZCBj b2RlKQo+ID4gCj4gPiB5ZWFwIQo+ID4gCj4gPiA+IAo+ID4gPiBUaGVyZSBhcmUgY29ybmVyIGNh c2VzIHRob3VnaDoKPiA+ID4gCj4gPiA+IFdoYXQgc2hvdWxkIHdlIGRvIHdpdGggZS5nLiBJU19H RU45X0xQKCkgYW5kIGZyaWVuZHM/Cj4gPiAKPiA+ICNkZWZpbmUgR1RfR0VOX0xQKGRldl9wcml2 LCBuKSBHVF9HRU4oZGV2X3ByaXYsIG4pICYmIElTX0xQKGRldl9wcml2KQo+ID4gI2RlZmluZSBE SVNQTEFZX0dFTl9MUChkZXZfcHJpdiwgbikgRElTUExBWV9HRU4oZGV2X3ByaXYsIG4pICYmIElT X0xQKGRldl9wcml2KQo+ID4gI2RlZmluZSBHVF9HRU5fQkMoZGV2X3ByaXYsIG4pIEdUX0dFTihk ZXZfcHJpdiwgbikgJiYgIUlTX0xQKGRldl9wcml2KQo+ID4gI2RlZmluZSBESVNQTEFZX0dFTl9C QyhkZXZfcHJpdiwgbikgRElTUExBWV9HRU4oZGV2X3ByaXYsIG4pICYmICFJU19MUChkZXZfcHJp dikKPiA+IAo+ID4gSSB0aGluayB0aGlzIHdvdWxkIGJlIHVzZWZ1bCB0byByZXBsYWNlIG1hbnkg SVNfVkFMTEVZVklFVyB8fCBJU19DSEVSUllWSUVXCj4gPiB0byBESVNQTEFZX0dFTl9MUChkZXZf cHJpdiwgNykKPiAKPiB0aGF0IHdvcmtzIGZvciBtZSwgdG9vLiBTbyB0aGlzIG1lYW5zIGluIHRo ZSBlbmQgd2UgaGF2ZToKPiAKPiBHVF9HRU4oZGV2X3ByaXYsIG4pCj4gRElTUExBWV9HRU4oZGV2 X3ByaXYsIG4pCj4gCj4gR1RfR0VOX1JBTkdFKGRldl9wcml2LCBzLCBlKQo+IERJU1BMQVlfR0VO X1JBTkdFKGRldl9wcml2LCBzLCBlKQo+IAo+ICAgICBXaXRoIHRoZXNlIG1hY3JvcyBpbXBsZW1l bnRpbmcgdGhlIHNwZWNpYWwgY2FzZSBmb3IgcyA9PSAwIGFuZCBlID09IEdFTl9GT1JFVkVSCj4g Cj4gR1RfR0VOX0xQKGRldl9wcml2LCBuKQo+IERJU1BMQVlfR0VOX0xQKGRldl9wcml2LCBuKQo+ IAo+IHRoYW5rcwo+IEx1Y2FzIERlIE1hcmNoaQo+IAo+ID4gCj4gPiBlaXRoZXIgdGhpcyBhYm92 ZSBvciBzaW1wbHkga2lsbCBpdCBpbiBmYXZvciBvZiBhIG1vcmUgdmVyYm9zZSB2ZXJzaW9uIGV2 ZXJ5d2hlcmUKPiA+IEdUX0dFTihkZXZfcHJpdiwgOSkgJiYgSVNfTFAoZGV2X3ByaXYpID8hIDov Cj4gPiAKPiA+ID4gCj4gPiA+IAo+ID4gPiBBbnkgY29udmVyc2lvbiBsaWtlIHRoZXNlIHdpbGwg Y3JlYXRlIGEgbG90IG9mIG5vaXNlLCBub3Qgb25seSBmb3IgaW5mbGlnaHQgcGF0Y2hlcywKPiA+ ID4gYnV0IGFsc28gZm9yIHN0YWJsZSBiYWNrcG9ydHMuICBTbyBJTU8gYW55dGhpbmcgd2UgZG8g bmVlZHMgdG8gYmUgc2NyaXB0YWJsZS4KPiA+IAo+ID4gSSBmdWxseSBhZ3JlZS4KPiA+IAo+ID4g VGhhbmtzLAo+ID4gUm9kcmlnby4KPiA+IAo+ID4gPiAKPiA+ID4gTHVjYXMgRGUgTWFyY2hpCj4g PiA+IAo+ID4gPiA+IAo+ID4gPiA+IGFuZCBncm91cCBhbGwgb2YgdGhlc2UgdG9nZXRoZXIsIGJl Y2F1c2UgdG9kYXkKPiA+ID4gPiB0aGV5IGFyZSBzcHJlYWRkZWQgYXBhcnQuCj4gPiA+ID4gCj4g PiA+ID4gVGhhbmtzLAo+ID4gPiA+IFJvZHJpZ28uCj4gPiA+ID4gCj4gPiA+ID4gPiAKPiA+ID4g PiA+IAo+ID4gPiA+ID4gdGhhbmtzCj4gPiA+ID4gPiBMdWNhcyBEZSBNYXJjaGkKPiA+ID4gPiA+ IAo+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gUmVnYXJkcywKPiA+ID4gPiA+ID4gCj4gPiA+ID4g PiA+IFR2cnRrbwo+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gPiAgIAkJc2VxX3ByaW50ZihtLCAi RERDID0gMHglMDh4XG4iLAo+ID4gPiA+ID4gPiA+ICAgCQkJICAgSTkxNV9SRUFEKERDQykpOwo+ ID4gPiA+ID4gPiA+ICAgCQlzZXFfcHJpbnRmKG0sICJEREMyID0gMHglMDh4XG4iLAo+ID4gPiA+ ID4gPiA+IEBAIC00MjYwLDcgKzQyNjAsNyBAQCBpOTE1X2NhY2hlX3NoYXJpbmdfZ2V0KHZvaWQg KmRhdGEsIHU2NCAqdmFsKQo+ID4gPiA+ID4gPiA+ICAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IGRhdGE7Cj4gPiA+ID4gPiA+ID4gICAJdTMyIHNucGNyOwo+ID4gPiA+ID4g PiA+IC0JaWYgKCEoSVNfR0VOKGRldl9wcml2LCA2KSB8fCBJU19HRU4oZGV2X3ByaXYsIDcpKSkK PiA+ID4gPiA+ID4gPiArCWlmICghKElTX0dFTihkZXZfcHJpdiwgNiwgNykpKQo+ID4gPiA+ID4g PiA+ICAgCQlyZXR1cm4gLUVOT0RFVjsKPiA+ID4gPiA+ID4gPiAgIAlpbnRlbF9ydW50aW1lX3Bt X2dldChkZXZfcHJpdik7Cj4gPiA+ID4gPiA+ID4gQEAgLTQyODAsNyArNDI4MCw3IEBAIGk5MTVf Y2FjaGVfc2hhcmluZ19zZXQodm9pZCAqZGF0YSwgdTY0IHZhbCkKPiA+ID4gPiA+ID4gPiAgIAlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkYXRhOwo+ID4gPiA+ID4gPiA+ICAg CXUzMiBzbnBjcjsKPiA+ID4gPiA+ID4gPiAtCWlmICghKElTX0dFTihkZXZfcHJpdiwgNikgfHwg SVNfR0VOKGRldl9wcml2LCA3KSkpCj4gPiA+ID4gPiA+ID4gKwlpZiAoIShJU19HRU4oZGV2X3By aXYsIDYsIDcpKSkKPiA+ID4gPiA+ID4gPiAgIAkJcmV0dXJuIC1FTk9ERVY7Cj4gPiA+ID4gPiA+ ID4gICAJaWYgKHZhbCA+IDMpCj4gPiA+ID4gPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dw dV9lcnJvci5jCj4gPiA+ID4gPiA+ID4gaW5kZXggYzlmOGFhNDcwMDVhLi45Njk2OTFlNTBjMDQg MTAwNjQ0Cj4gPiA+ID4gPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVf ZXJyb3IuYwo+ID4gPiA+ID4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1 X2Vycm9yLmMKPiA+ID4gPiA+ID4gPiBAQCAtMTY3Myw3ICsxNjczLDcgQEAgc3RhdGljIHZvaWQg Y2FwdHVyZV9yZWdfc3RhdGUoc3RydWN0IGk5MTVfZ3B1X3N0YXRlICplcnJvcikKPiA+ID4gPiA+ ID4gPiAgIAkJZXJyb3ItPmNjaWQgPSBJOTE1X1JFQUQoQ0NJRCk7Cj4gPiA+ID4gPiA+ID4gICAJ LyogMzogRmVhdHVyZSBzcGVjaWZpYyByZWdpc3RlcnMgKi8KPiA+ID4gPiA+ID4gPiAtCWlmIChJ U19HRU4oZGV2X3ByaXYsIDYpIHx8IElTX0dFTihkZXZfcHJpdiwgNykpIHsKPiA+ID4gPiA+ID4g PiArCWlmIChJU19HRU4oZGV2X3ByaXYsIDYsIDcpKSB7Cj4gPiA+ID4gPiA+ID4gICAJCWVycm9y LT5nYW1fZWNvY2hrID0gSTkxNV9SRUFEKEdBTV9FQ09DSEspOwo+ID4gPiA+ID4gPiA+ICAgCQll cnJvci0+Z2FjX2VjbyA9IEk5MTVfUkVBRChHQUNfRUNPX0JJVFMpOwo+ID4gPiA+ID4gPiA+ICAg CX0KPiA+ID4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9w ZXJmLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BlcmYuYwo+ID4gPiA+ID4gPiA+IGlu ZGV4IDkyZGFkZGY3OWNiMC4uYmFhYTdiNzBmZmEwIDEwMDY0NAo+ID4gPiA+ID4gPiA+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGVyZi5jCj4gPiA+ID4gPiA+ID4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wZXJmLmMKPiA+ID4gPiA+ID4gPiBAQCAtMzQ0OSw3ICsz NDQ5LDcgQEAgdm9pZCBpOTE1X3BlcmZfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpCj4gPiA+ID4gPiA+ID4gICAJCWRldl9wcml2LT5wZXJmLm9hLm9wcy5yZWFkID0gZ2Vu OF9vYV9yZWFkOwo+ID4gPiA+ID4gPiA+ICAgCQlkZXZfcHJpdi0+cGVyZi5vYS5vcHMub2FfaHdf dGFpbF9yZWFkID0gZ2VuOF9vYV9od190YWlsX3JlYWQ7Cj4gPiA+ID4gPiA+ID4gLQkJaWYgKElT X0dFTihkZXZfcHJpdiwgOCkgfHwgSVNfR0VOKGRldl9wcml2LCA5KSkgewo+ID4gPiA+ID4gPiA+ ICsJCWlmIChJU19HRU4oZGV2X3ByaXYsIDgsIDkpKSB7Cj4gPiA+ID4gPiA+ID4gICAJCQlkZXZf cHJpdi0+cGVyZi5vYS5vcHMuaXNfdmFsaWRfYl9jb3VudGVyX3JlZyA9Cj4gPiA+ID4gPiA+ID4g ICAJCQkJZ2VuN19pc192YWxpZF9iX2NvdW50ZXJfYWRkcjsKPiA+ID4gPiA+ID4gPiAgIAkJCWRl dl9wcml2LT5wZXJmLm9hLm9wcy5pc192YWxpZF9tdXhfcmVnID0KPiA+ID4gPiA+ID4gPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY3J0LmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9jcnQuYwo+ID4gPiA+ID4gPiA+IGluZGV4IGJmNGZkNzM5YjY4Yy4uMTgy MmRjY2IxOTE0IDEwMDY0NAo+ID4gPiA+ID4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2NydC5jCj4gPiA+ID4gPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfY3J0LmMKPiA+ID4gPiA+ID4gPiBAQCAtMzIyLDcgKzMyMiw3IEBAIGludGVsX2NydF9tb2Rl X3ZhbGlkKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gPiA+ID4gPiA+ID4gICAJ CSAqIERBQyBsaW1pdCBzdXBwb3NlZGx5IDM1NSBNSHouCj4gPiA+ID4gPiA+ID4gICAJCSAqLwo+ ID4gPiA+ID4gPiA+ICAgCQltYXhfY2xvY2sgPSAyNzAwMDA7Cj4gPiA+ID4gPiA+ID4gLQllbHNl IGlmIChJU19HRU4oZGV2X3ByaXYsIDMpIHx8IElTX0dFTihkZXZfcHJpdiwgNCkpCj4gPiA+ID4g PiA+ID4gKwllbHNlIGlmIChJU19HRU4oZGV2X3ByaXYsIDMsIDQpKQo+ID4gPiA+ID4gPiA+ICAg CQltYXhfY2xvY2sgPSA0MDAwMDA7Cj4gPiA+ID4gPiA+ID4gICAJZWxzZQo+ID4gPiA+ID4gPiA+ ICAgCQltYXhfY2xvY2sgPSAzNTAwMDA7Cj4gPiA+ID4gPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RldmljZV9pbmZvLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kZXZpY2VfaW5mby5jCj4gPiA+ID4gPiA+ID4gaW5kZXggODczZjM3YjdiNzk2Li5h MWIwNDZjMzIyZDUgMTAwNjQ0Cj4gPiA+ID4gPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGV2aWNlX2luZm8uYwo+ID4gPiA+ID4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2RldmljZV9pbmZvLmMKPiA+ID4gPiA+ID4gPiBAQCAtNzgzLDcgKzc4Myw3 IEBAIHZvaWQgaW50ZWxfZGV2aWNlX2luZm9fcnVudGltZV9pbml0KHN0cnVjdCBpbnRlbF9kZXZp Y2VfaW5mbyAqaW5mbykKPiA+ID4gPiA+ID4gPiAgIAkJRFJNX0lORk8oIkRpc3BsYXkgZGlzYWJs ZWQgKG1vZHVsZSBwYXJhbWV0ZXIpXG4iKTsKPiA+ID4gPiA+ID4gPiAgIAkJaW5mby0+bnVtX3Bp cGVzID0gMDsKPiA+ID4gPiA+ID4gPiAgIAl9IGVsc2UgaWYgKGluZm8tPm51bV9waXBlcyA+IDAg JiYKPiA+ID4gPiA+ID4gPiAtCQkgICAoSVNfR0VOKGRldl9wcml2LCA3KSB8fCBJU19HRU4oZGV2 X3ByaXYsIDgpKSAmJgo+ID4gPiA+ID4gPiA+ICsJCSAgIChJU19HRU4oZGV2X3ByaXYsIDcsIDgp KSAmJgo+ID4gPiA+ID4gPiA+ICAgCQkgICBIQVNfUENIX1NQTElUKGRldl9wcml2KSkgewo+ID4g PiA+ID4gPiA+ICAgCQl1MzIgZnVzZV9zdHJhcCA9IEk5MTVfUkVBRChGVVNFX1NUUkFQKTsKPiA+ ID4gPiA+ID4gPiAgIAkJdTMyIHNmdXNlX3N0cmFwID0gSTkxNV9SRUFEKFNGVVNFX1NUUkFQKTsK PiA+ID4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlz cGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPiA+ID4gPiA+ ID4gaW5kZXggODRjNDMyY2JkZjViLi4wMmIzMzhiMWQ4YmUgMTAwNjQ0Cj4gPiA+ID4gPiA+ID4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPiA+ID4gPiA+ID4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPiA+ID4gPiA+ID4g QEAgLTEwNjc3LDcgKzEwNjc3LDcgQEAgaW50IGludGVsX3BsYW5lX2F0b21pY19jYWxjX2NoYW5n ZXMoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXQKPiA+ID4gPiA+ ID4gPiAgIAkgKiB0aGUgdy9hIG9uIGFsbCB0aHJlZSBwbGF0Zm9ybXMuCj4gPiA+ID4gPiA+ID4g ICAJICovCj4gPiA+ID4gPiA+ID4gICAJaWYgKHBsYW5lLT5pZCA9PSBQTEFORV9TUFJJVEUwICYm Cj4gPiA+ID4gPiA+ID4gLQkgICAgKElTX0dFTihkZXZfcHJpdiwgNSkgfHwgSVNfR0VOKGRldl9w cml2LCA2KSB8fAo+ID4gPiA+ID4gPiA+ICsJICAgIChJU19HRU4oZGV2X3ByaXYsIDUsIDYpIHx8 Cj4gPiA+ID4gPiA+ID4gICAJICAgICBJU19JVllCUklER0UoZGV2X3ByaXYpKSAmJgo+ID4gPiA+ ID4gPiA+ICAgCSAgICAodHVybl9vbiB8fCAoIW5lZWRzX3NjYWxpbmcob2xkX3BsYW5lX3N0YXRl KSAmJgo+ID4gPiA+ID4gPiA+ICAgCQkJIG5lZWRzX3NjYWxpbmcodG9faW50ZWxfcGxhbmVfc3Rh dGUocGxhbmVfc3RhdGUpKSkpKQo+ID4gPiA+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2VuZ2luZV9jcy5jCj4gPiA+ID4gPiA+ID4gaW5kZXggNzY0MmY2NjM0ZjdiLi43NzljNjgzYjQ4 YWIgMTAwNjQ0Cj4gPiA+ID4gPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZW5naW5lX2NzLmMKPiA+ID4gPiA+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9lbmdpbmVfY3MuYwo+ID4gPiA+ID4gPiA+IEBAIC00MzgsNyArNDM4LDcgQEAgdm9pZCBpbnRl bF9lbmdpbmVfaW5pdF9nbG9iYWxfc2Vxbm8oc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5l LCB1MzIgc2Vxbm8pCj4gPiA+ID4gPiA+ID4gICAJICogdGhlIHNlbWFwaG9yZSB2YWx1ZSwgdGhl biB3aGVuIHRoZSBzZXFubyBtb3ZlcyBiYWNrd2FyZHMgYWxsCj4gPiA+ID4gPiA+ID4gICAJICog ZnV0dXJlIHdhaXRzIHdpbGwgY29tcGxldGUgaW5zdGFudGx5IChjYXVzaW5nIHJlbmRlcmluZyBj b3JydXB0aW9uKS4KPiA+ID4gPiA+ID4gPiAgIAkgKi8KPiA+ID4gPiA+ID4gPiAtCWlmIChJU19H RU4oZGV2X3ByaXYsIDYpIHx8IElTX0dFTihkZXZfcHJpdiwgNykpIHsKPiA+ID4gPiA+ID4gPiAr CWlmIChJU19HRU4oZGV2X3ByaXYsIDYsIDcpKSB7Cj4gPiA+ID4gPiA+ID4gICAJCUk5MTVfV1JJ VEUoUklOR19TWU5DXzAoZW5naW5lLT5tbWlvX2Jhc2UpLCAwKTsKPiA+ID4gPiA+ID4gPiAgIAkJ STkxNV9XUklURShSSU5HX1NZTkNfMShlbmdpbmUtPm1taW9fYmFzZSksIDApOwo+ID4gPiA+ID4g PiA+ICAgCQlpZiAoSEFTX1ZFQk9YKGRldl9wcml2KSkKPiA+ID4gPiA+ID4gPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmlmb191bmRlcnJ1bi5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZmlmb191bmRlcnJ1bi5jCj4gPiA+ID4gPiA+ID4gaW5kZXggZmYy NzQzY2NiZWNlLi5hMTZiNDYzYTUyN2QgMTAwNjQ0Cj4gPiA+ID4gPiA+ID4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZmlmb191bmRlcnJ1bi5jCj4gPiA+ID4gPiA+ID4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmlmb191bmRlcnJ1bi5jCj4gPiA+ID4gPiA+ID4g QEAgLTI2MCw3ICsyNjAsNyBAQCBzdGF0aWMgYm9vbCBfX2ludGVsX3NldF9jcHVfZmlmb191bmRl cnJ1bl9yZXBvcnRpbmcoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiA+ID4gPiA+ID4gPiAgIAlp ZiAoSEFTX0dNQ0hfRElTUExBWShkZXZfcHJpdikpCj4gPiA+ID4gPiA+ID4gICAJCWk5eHhfc2V0 X2ZpZm9fdW5kZXJydW5fcmVwb3J0aW5nKGRldiwgcGlwZSwgZW5hYmxlLCBvbGQpOwo+ID4gPiA+ ID4gPiA+IC0JZWxzZSBpZiAoSVNfR0VOKGRldl9wcml2LCA1KSB8fCBJU19HRU4oZGV2X3ByaXYs IDYpKQo+ID4gPiA+ID4gPiA+ICsJZWxzZSBpZiAoSVNfR0VOKGRldl9wcml2LCA1LCA2KSkKPiA+ ID4gPiA+ID4gPiAgIAkJaXJvbmxha2Vfc2V0X2ZpZm9fdW5kZXJydW5fcmVwb3J0aW5nKGRldiwg cGlwZSwgZW5hYmxlKTsKPiA+ID4gPiA+ID4gPiAgIAllbHNlIGlmIChJU19HRU4oZGV2X3ByaXYs IDcpKQo+ID4gPiA+ID4gPiA+ICAgCQlpdnlicmlkZ2Vfc2V0X2ZpZm9fdW5kZXJydW5fcmVwb3J0 aW5nKGRldiwgcGlwZSwgZW5hYmxlLCBvbGQpOwo+ID4gPiA+ID4gPiA+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9waXBlX2NyYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfcGlwZV9jcmMuYwo+ID4gPiA+ID4gPiA+IGluZGV4IDllODcwY2FmODEwNC4uM2Uw NjU3MDMzN2I2IDEwMDY0NAo+ID4gPiA+ID4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3BpcGVfY3JjLmMKPiA+ID4gPiA+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9waXBlX2NyYy5jCj4gPiA+ID4gPiA+ID4gQEAgLTQzMyw3ICs0MzMsNyBAQCBzdGF0 aWMgaW50IGdldF9uZXdfY3JjX2N0bF9yZWcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LAo+ID4gPiA+ID4gPiA+ICAgCQlyZXR1cm4gaTl4eF9waXBlX2NyY19jdGxfcmVnKGRldl9w cml2LCBwaXBlLCBzb3VyY2UsIHZhbCk7Cj4gPiA+ID4gPiA+ID4gICAJZWxzZSBpZiAoSVNfVkFM TEVZVklFVyhkZXZfcHJpdikgfHwgSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikpCj4gPiA+ID4gPiA+ ID4gICAJCXJldHVybiB2bHZfcGlwZV9jcmNfY3RsX3JlZyhkZXZfcHJpdiwgcGlwZSwgc291cmNl LCB2YWwpOwo+ID4gPiA+ID4gPiA+IC0JZWxzZSBpZiAoSVNfR0VOKGRldl9wcml2LCA1KSB8fCBJ U19HRU4oZGV2X3ByaXYsIDYpKQo+ID4gPiA+ID4gPiA+ICsJZWxzZSBpZiAoSVNfR0VOKGRldl9w cml2LCA1LCA2KSkKPiA+ID4gPiA+ID4gPiAgIAkJcmV0dXJuIGlsa19waXBlX2NyY19jdGxfcmVn KHNvdXJjZSwgdmFsKTsKPiA+ID4gPiA+ID4gPiAgIAllbHNlCj4gPiA+ID4gPiA+ID4gICAJCXJl dHVybiBpdmJfcGlwZV9jcmNfY3RsX3JlZyhkZXZfcHJpdiwgcGlwZSwgc291cmNlLCB2YWwsIHNl dF93YSk7Cj4gPiA+ID4gPiA+ID4gQEAgLTU1MCw3ICs1NTAsNyBAQCBpbnRlbF9pc192YWxpZF9j cmNfc291cmNlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+ID4gPiA+ID4g PiAgIAkJcmV0dXJuIGk5eHhfY3JjX3NvdXJjZV92YWxpZChkZXZfcHJpdiwgc291cmNlKTsKPiA+ ID4gPiA+ID4gPiAgIAllbHNlIGlmIChJU19WQUxMRVlWSUVXKGRldl9wcml2KSB8fCBJU19DSEVS UllWSUVXKGRldl9wcml2KSkKPiA+ID4gPiA+ID4gPiAgIAkJcmV0dXJuIHZsdl9jcmNfc291cmNl X3ZhbGlkKGRldl9wcml2LCBzb3VyY2UpOwo+ID4gPiA+ID4gPiA+IC0JZWxzZSBpZiAoSVNfR0VO KGRldl9wcml2LCA1KSB8fCBJU19HRU4oZGV2X3ByaXYsIDYpKQo+ID4gPiA+ID4gPiA+ICsJZWxz ZSBpZiAoSVNfR0VOKGRldl9wcml2LCA1LCA2KSkKPiA+ID4gPiA+ID4gPiAgIAkJcmV0dXJuIGls a19jcmNfc291cmNlX3ZhbGlkKGRldl9wcml2LCBzb3VyY2UpOwo+ID4gPiA+ID4gPiA+ICAgCWVs c2UKPiA+ID4gPiA+ID4gPiAgIAkJcmV0dXJuIGl2Yl9jcmNfc291cmNlX3ZhbGlkKGRldl9wcml2 LCBzb3VyY2UpOwo+ID4gPiA+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF91bmNvcmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VuY29yZS5jCj4g PiA+ID4gPiA+ID4gaW5kZXggYzM2NDUzZDY2ZDkzLi44OGNiZDMyZDY5NjQgMTAwNjQ0Cj4gPiA+ ID4gPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdW5jb3JlLmMKPiA+ID4g PiA+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91bmNvcmUuYwo+ID4gPiA+ ID4gPiA+IEBAIC01MjgsNyArNTI4LDcgQEAgY2hlY2tfZm9yX3VuY2xhaW1lZF9tbWlvKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiA+ID4gPiA+ID4gPiAgIAlpZiAoSVNfVkFM TEVZVklFVyhkZXZfcHJpdikgfHwgSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikpCj4gPiA+ID4gPiA+ ID4gICAJCXJldCB8PSB2bHZfY2hlY2tfZm9yX3VuY2xhaW1lZF9tbWlvKGRldl9wcml2KTsKPiA+ ID4gPiA+ID4gPiAtCWlmIChJU19HRU4oZGV2X3ByaXYsIDYpIHx8IElTX0dFTihkZXZfcHJpdiwg NykpCj4gPiA+ID4gPiA+ID4gKwlpZiAoSVNfR0VOKGRldl9wcml2LCA2LCA3KSkKPiA+ID4gPiA+ ID4gPiAgIAkJcmV0IHw9IGdlbjZfY2hlY2tfZm9yX2ZpZm9fZGVidWcoZGV2X3ByaXYpOwo+ID4g PiA+ID4gPiA+ICAgCXJldHVybiByZXQ7Cj4gPiA+ID4gPiA+ID4gQEAgLTU1Niw3ICs1NTYsNyBA QCBzdGF0aWMgdm9pZCBfX2ludGVsX3VuY29yZV9lYXJseV9zYW5pdGl6ZShzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gPiA+ID4gPiA+ID4gICAJCWRldl9wcml2LT51bmNvcmUu ZnVuY3MuZm9yY2Vfd2FrZV9nZXQoZGV2X3ByaXYsCj4gPiA+ID4gPiA+ID4gICAJCQkJCQkgICAg ICByZXN0b3JlX2ZvcmNld2FrZSk7Cj4gPiA+ID4gPiA+ID4gLQkJaWYgKElTX0dFTihkZXZfcHJp diwgNikgfHwgSVNfR0VOKGRldl9wcml2LCA3KSkKPiA+ID4gPiA+ID4gPiArCQlpZiAoSVNfR0VO KGRldl9wcml2LCA2LCA3KSkKPiA+ID4gPiA+ID4gPiAgIAkJCWRldl9wcml2LT51bmNvcmUuZmlm b19jb3VudCA9Cj4gPiA+ID4gPiA+ID4gICAJCQkJZmlmb19mcmVlX2VudHJpZXMoZGV2X3ByaXYp Owo+ID4gPiA+ID4gPiA+ICAgCQlzcGluX3VubG9ja19pcnEoJmRldl9wcml2LT51bmNvcmUubG9j ayk7Cj4gPiA+ID4gPiA+ID4gQEAgLTE0MzcsNyArMTQzNyw3IEBAIHN0YXRpYyB2b2lkIGludGVs X3VuY29yZV9md19kb21haW5zX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 KQo+ID4gPiA+ID4gPiA+ICAgCQkJCSAgICAgICBGT1JDRVdBS0VfTUVESUFfVkVCT1hfR0VOMTEo aSksCj4gPiA+ID4gPiA+ID4gICAJCQkJICAgICAgIEZPUkNFV0FLRV9BQ0tfTUVESUFfVkVCT1hf R0VOMTEoaSkpOwo+ID4gPiA+ID4gPiA+ICAgCQl9Cj4gPiA+ID4gPiA+ID4gLQl9IGVsc2UgaWYg KElTX0dFTihkZXZfcHJpdiwgMTApIHx8IElTX0dFTihkZXZfcHJpdiwgOSkpIHsKPiA+ID4gPiA+ ID4gPiArCX0gZWxzZSBpZiAoSVNfR0VOKGRldl9wcml2LCA5LCAxMCkpIHsKPiA+ID4gPiA+ID4g PiAgIAkJZGV2X3ByaXYtPnVuY29yZS5mdW5jcy5mb3JjZV93YWtlX2dldCA9Cj4gPiA+ID4gPiA+ ID4gICAJCQlmd19kb21haW5zX2dldF93aXRoX2ZhbGxiYWNrOwo+ID4gPiA+ID4gPiA+ICAgCQlk ZXZfcHJpdi0+dW5jb3JlLmZ1bmNzLmZvcmNlX3dha2VfcHV0ID0gZndfZG9tYWluc19wdXQ7Cj4g PiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCj4gPiA+ID4gPiA+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPiA+ID4g PiA+ID4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+ID4gPiA+ID4gPiBodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeApfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGlu ZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK