From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Sripada, Radhakrishna" Subject: Re: [PATCH v7 7/7] drm/i915/tgl: Add Clear Color support for TGL Render Decompression Date: Tue, 26 Nov 2019 22:29:16 +0000 Message-ID: <8C2593290C2B3E488D763E819AF1F02E15FCAC63@ORSMSX101.amr.corp.intel.com> References: <20191126002635.5779-1-radhakrishna.sripada@intel.com> <20191126002635.5779-8-radhakrishna.sripada@intel.com> <20191126204855.GB6337@mdroper-desk1.amr.corp.intel.com> <8C2593290C2B3E488D763E819AF1F02E15FCAC19@ORSMSX101.amr.corp.intel.com> <20191126220028.GD6337@mdroper-desk1.amr.corp.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id 408196E49D for ; Tue, 26 Nov 2019 22:29:18 +0000 (UTC) In-Reply-To: <20191126220028.GD6337@mdroper-desk1.amr.corp.intel.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Roper, Matthew D" Cc: "Chery, Nanley G" , "intel-gfx@lists.freedesktop.org" , "Pandiyan, Dhinakaran" , "Syrjala, Ville" List-Id: intel-gfx@lists.freedesktop.org Cgo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tCj4gRnJvbTogUm9wZXIsIE1hdHRoZXcgRAo+ IFNlbnQ6IFR1ZXNkYXksIE5vdmVtYmVyIDI2LCAyMDE5IDI6MDAgUE0KPiBUbzogU3JpcGFkYSwg UmFkaGFrcmlzaG5hIDxyYWRoYWtyaXNobmEuc3JpcGFkYUBpbnRlbC5jb20+Cj4gQ2M6IGludGVs LWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmc7IFBhbmRpeWFuLCBEaGluYWthcmFuCj4gPGRoaW5h a2FyYW4ucGFuZGl5YW5AaW50ZWwuY29tPjsgU3lyamFsYSwgVmlsbGUgPHZpbGxlLnN5cmphbGFA aW50ZWwuY29tPjsKPiBTaGFybWEsIFNoYXNoYW5rIDxzaGFzaGFuay5zaGFybWFAaW50ZWwuY29t PjsgQW50b2dub2xsaSwgUmFmYWVsCj4gPHJhZmFlbC5hbnRvZ25vbGxpQGludGVsLmNvbT47IENo ZXJ5LCBOYW5sZXkgRyA8bmFubGV5LmcuY2hlcnlAaW50ZWwuY29tPgo+IFN1YmplY3Q6IFJlOiBb UEFUQ0ggdjcgNy83XSBkcm0vaTkxNS90Z2w6IEFkZCBDbGVhciBDb2xvciBzdXBwb3J0IGZvciBU R0wKPiBSZW5kZXIgRGVjb21wcmVzc2lvbgo+IAo+IE9uIFR1ZSwgTm92IDI2LCAyMDE5IGF0IDAx OjUyOjM5UE0gLTA4MDAsIFNyaXBhZGEsIFJhZGhha3Jpc2huYSB3cm90ZToKPiA+IEhpIE1hdHQs Cj4gPgo+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+ID4gPiBGcm9tOiBSb3Blciwg TWF0dGhldyBECj4gPiA+IFNlbnQ6IFR1ZXNkYXksIE5vdmVtYmVyIDI2LCAyMDE5IDEyOjQ5IFBN Cj4gPiA+IFRvOiBTcmlwYWRhLCBSYWRoYWtyaXNobmEgPHJhZGhha3Jpc2huYS5zcmlwYWRhQGlu dGVsLmNvbT4KPiA+ID4gQ2M6IGludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmc7IFBhbmRp eWFuLCBEaGluYWthcmFuCj4gPiA+IDxkaGluYWthcmFuLnBhbmRpeWFuQGludGVsLmNvbT47IFN5 cmphbGEsIFZpbGxlCj4gPiA+IDx2aWxsZS5zeXJqYWxhQGludGVsLmNvbT47IFNoYXJtYSwgU2hh c2hhbmsKPiA+ID4gPHNoYXNoYW5rLnNoYXJtYUBpbnRlbC5jb20+OyBBbnRvZ25vbGxpLCBSYWZh ZWwKPiA+ID4gPHJhZmFlbC5hbnRvZ25vbGxpQGludGVsLmNvbT47IENoZXJ5LCBOYW5sZXkgRwo+ ID4gPiA8bmFubGV5LmcuY2hlcnlAaW50ZWwuY29tPgo+ID4gPiBTdWJqZWN0OiBSZTogW1BBVENI IHY3IDcvN10gZHJtL2k5MTUvdGdsOiBBZGQgQ2xlYXIgQ29sb3Igc3VwcG9ydAo+ID4gPiBmb3Ig VEdMIFJlbmRlciBEZWNvbXByZXNzaW9uCj4gPiA+Cj4gPiA+IE9uIE1vbiwgTm92IDI1LCAyMDE5 IGF0IDA0OjI2OjM1UE0gLTA4MDAsIFJhZGhha3Jpc2huYSBTcmlwYWRhIHdyb3RlOgo+ID4gPiA+ IFJlbmRlciBEZWNvbXByZXNzaW9uIGlzIHN1cHBvcnRlZCB3aXRoIFktVGlsZWQgbWFpbiBzdXJm YWNlLiBUaGUKPiA+ID4gPiBDQ1MgaXMgbGluZWFyIGFuZCBoYXMgNCBiaXRzIG9mIGRhdGEgZm9y IGVhY2ggbWFpbiBzdXJmYWNlIGNhY2hlCj4gPiA+ID4gbGluZSBwYWlyLCBhIHJhdGlvIG9mIDE6 MjU2LiBBZGRpdGlvbmFsIENsZWFyIENvbG9yIGluZm9ybWF0aW9uIGlzCj4gPiA+ID4gcGFzc2Vk IGZyb20gdGhlIHVzZXItc3BhY2UgdGhyb3VnaCBhbiBvZmZzZXQgaW4gdGhlIEdFTSBCTy4gQWRk IGEKPiA+ID4gPiBuZXcgbW9kaWZpZXIgdG8gaWRlbnRpZnkgYW5kIHBhcnNlIG5ldyBDbGVhciBD b2xvciBpbmZvcm1hdGlvbiBhbmQKPiA+ID4gPiBleHRlbmQKPiA+ID4gPiBHZW4xMiByZW5kZXIg ZGVjb21wcmVzc2lvbiBmdW5jdGlvbmFsaXR5IHRvIHRoZSBuZXdseSBhZGRlZCBtb2RpZmllci4K PiA+ID4gPgo+ID4gPiA+IHYyOiBGaXggaGFzX2FscGhhIGZsYWcgZm9yIG1vZGlmaWVycywgb21p dCBDQyBtb2RpZmllciBkdXJpbmcgaW5pdGlhbAo+ID4gPiA+ICAgICBwbGFuZSBjb25maWcoTWF0 dCkuIEZpeCBMb29rdXAgZXJyb3IuCj4gPiA+ID4gdjM6IEZpeCB0aGUgcGFuaWMgd2hpbGUgcnVu bmluZyBrbXNfY3ViZQo+ID4gPiA+IHY0OiBBZGQgYWxpZ25tZW50IGNoZWNrIGFuZCByZXVzZSB0 aGUgY29tbWVudHMgZm9yCj4gPiA+ID4gZ2UxMl9jY3NfZm9ybWF0cyhNYXR0KQo+ID4gPiA+IHY1 OiBGaXggdHlwb3MgYW5kIHdyYXAgY29tbWVudHMoTWF0dCkKPiA+ID4gPiB2NjogUmViYXNlCj4g PiA+ID4gdjc6IFJlYmFzZSwgQWRkIG1pc3NpbmcgY2FzZSBpbiBpbnRlbF90aWxlX2hlaWdodChS SykKPiA+ID4gPgo+ID4gPiA+IENjOiBEaGluYWthcmFuIFBhbmRpeWFuIDxkaGluYWthcmFuLnBh bmRpeWFuQGludGVsLmNvbT4KPiA+ID4gPiBDYzogVmlsbGUgU3lyamFsYSA8dmlsbGUuc3lyamFs YUBpbnRlbC5jb20+Cj4gPiA+ID4gQ2M6IFNoYXNoYW5rIFNoYXJtYSA8c2hhc2hhbmsuc2hhcm1h QGludGVsLmNvbT4KPiA+ID4gPiBDYzogUmFmYWVsIEFudG9nbm9sbGkgPHJhZmFlbC5hbnRvZ25v bGxpQGludGVsLmNvbT4KPiA+ID4gPiBDYzogTmFubGV5IEcgQ2hlcnkgPG5hbmxleS5nLmNoZXJ5 QGludGVsLmNvbT4KPiA+ID4gPiBDYzogTWF0dCBSb3BlciA8bWF0dGhldy5kLnJvcGVyQGludGVs LmNvbT4KPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBSYWRoYWtyaXNobmEgU3JpcGFkYQo+ID4gPiA+ IDxyYWRoYWtyaXNobmEuc3JpcGFkYUBpbnRlbC5jb20+Cj4gPiA+Cj4gPiA+IEEgZmV3IG1pbm9y IGNvbW1lbnRzIGJlbG93LCBidXQgbm9uZSBvZiB0aGVtIGFyZSBjcml0aWNhbC4KPiA+ID4KPiA+ ID4gUmV2aWV3ZWQtYnk6IE1hdHQgUm9wZXIgPG1hdHRoZXcuZC5yb3BlckBpbnRlbC5jb20+Cj4g PiA+Cj4gPiA+IFdoYXQncyB0aGUgY3VycmVudCBzdGF0dXMgb2YgdGhlIHVuZGVybHlpbmcgY29t cHJlc3Npb24gc2VyaWVzIHRoaXMKPiA+ID4gd29yayBpcyBiYXNlZCBvbj8KPiA+IEkgZGlkIG5v dCBzZWUgYW55IHBhdGNoZXMgZnJvbSBESyBmdXJ0aGVyIG9uIGNvbXByZXNzaW9uIHBhdGNoZXMu IEZyb20KPiA+IG15IHVuZGVyc3RhbmRpbmcgVGhlIHJlbmRlciBjb21wcmVzc2lvbiBwYXRjaGVz IGdvdCByLWIncyBhbmQgdGhlIG1lZGlhCj4gY29tcHJlc3Npb24gcGF0Y2hlcyBuZWVkIGZ1cnRo ZXIgIHJld29yay4KPiA+ID4KPiA+ID4gPiAtLS0KPiA+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMgIHwgNjQgKysrKysrKysrKysrKysrKysrLQo+ID4g PiA+ICAuLi4vZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3R5cGVzLmggICAgfCAgMyAr Cj4gPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfc3ByaXRlLmMgICB8 IDEwICsrLQo+ID4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oICAgICAgICAg ICAgICAgfCAxMiArKysrCj4gPiA+ID4gIDQgZmlsZXMgY2hhbmdlZCwgODYgaW5zZXJ0aW9ucygr KSwgMyBkZWxldGlvbnMoLSkKPiA+ID4gPgo+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYwo+ID4gPiA+IGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMKPiA+ID4gPiBpbmRleCA2YzQyNzRjMTU2 NGQuLjY5ZTcwYmU4NmY1NyAxMDA2NDQKPiA+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYwo+ID4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jCj4gPiA+ID4gQEAgLTE5NzUsNiArMTk3NSwxMCBA QCBpbnRlbF90aWxlX3dpZHRoX2J5dGVzKGNvbnN0IHN0cnVjdAo+ID4gPiBkcm1fZnJhbWVidWZm ZXIgKmZiLCBpbnQgY29sb3JfcGxhbmUpCj4gPiA+ID4gIAkJaWYgKGNvbG9yX3BsYW5lID09IDEp Cj4gPiA+ID4gIAkJCXJldHVybiA2NDsKPiA+ID4gPiAgCQkvKiBmYWxsIHRocm91Z2ggKi8KPiA+ ID4KPiA+ID4gU2luY2UgdGhpcyBvbmUgKEdFTjEyX1JDX0NDUykgbm93IGZhbGxzIHRocm91Z2gg dG8gdGhlIG5ldwo+ID4gPiBHRU4xMl9SQ19DQ1NfQ0MsIHlvdSBjYW4gcHJvYmFibHkgZHJvcCB0 aGVzZSBsaW5lcyBzaW5jZSB0aGV5J2xsIGJlCj4gPiA+IGhhbmRsZWQgdGhlIHNhbWUgd2F5IGlu IHRoZSBuZXh0IGNhc2UgZG93bi4KPiA+IENvbG9yX3BsYW5lID09IDIgZG9lcyBub3QgYXBwbHkg Zm9yIEdFMTJfUkNfQ0NTLiBEbyB5b3UgdGhpbmsgaXQgaXMKPiA+IHN0aWxsIG9rIHRvIGNsdWIg VGhlIHR3byBjYXNlcz8KPiAKPiBSaWdodC4gIEJ1dCBzaW5jZSBpdCBkb2Vzbid0IGFwcGx5LCB5 b3Ugc2hvdWxkIG5ldmVyIGdldCBjYWxsZWQgaGVyZSB3aXRoCj4gY29sb3JfcGxhbmUgPT0gMi4g IElmIHdlIGhhdmUgYSBidWcgc29tZXdoZXJlIGhpZ2hlciB1cCBhbmQgeW91IGRpZCBnZXQgY2Fs bGVkCj4gd2l0aCBhICcyJyBoZXJlLCB5b3UnZCBzdGlsbCBiZSBmb2xsb3dpbmcgdGhlIGV4YWN0 IHNhbWUgbG9naWMgKGZhbGxpbmcgdGhyb3VnaCB0bwo+IHRoZSBDQ1NfQ0MgaGFuZGxlciksIHNv IGtlZXBpbmcgdGhlbSBzZXBhcmF0ZSBkb2Vzbid0IHNlZW0gdG8gcHJvdmlkZSBhbnkKPiBleHRy YSBiZW5lZml0Lgo+IAo+IFRoYXQncyBhbHNvIHBhcnQgb2Ygd2h5IEkgd2FzIGFza2luZyBhYm91 dCB0aGUgaXNfY2NzX3BsYW5lIGhlbHBlciAtLS0gaXQgY291bGQKPiB0YWtlIGNhcmUgb2YgdGVz dGluZyB0aGUgYXBwcm9wcmlhdGUgcGxhbmVzIGZvciBhIG1vZGlmaWVyIGFuZCBhbHNvIGFkZCBh IHdhcm5pbmcKPiBtZXNzYWdlIGlmIHdlIGVuY291bnRlciBhIHBsYW5lIHRoYXQgaXNuJ3Qgc3Vw cG9zZWQgdG8gZXhpc3QgZm9yIHRoZSBtb2RpZmllci4KPiAKU3VyZSB3aWxsIHNpbXBsaWZ5IGlu IG5leHQgcmV2LgoKPiA+ID4KPiA+ID4gPiArCWNhc2UgSTkxNV9GT1JNQVRfTU9EX1lfVElMRURf R0VOMTJfUkNfQ0NTX0NDOgo+ID4gPiA+ICsJCWlmIChjb2xvcl9wbGFuZSA9PSAxIHx8IGNvbG9y X3BsYW5lID09IDIpCj4gPiA+Cj4gPiA+IEkndmUgcmV2aWV3ZWQgYSBsb3Qgb2YgdmVyc2lvbnMg b2YgdGhlc2UgY29tcHJlc3Npb24gc2VyaWVzIHNvIEkKPiA+ID4gbWlnaHQgYmUgZ2V0dGluZyBj b25mdXNlZCwgYnV0IGRpZG4ndCBESyBoYXZlIGEgdmVyc2lvbiBhdCBvbmUgdGltZQo+ID4gPiB0 aGF0IGFkZGVkIHNvbWUga2luZCBvZiBpc19jY3NfcGxhbmUobW9kLCBwbGFuZSkgaGVscGVyIGZ1 bmN0aW9uPwo+ID4gPiBJJ20gbm90IHN1cmUgd2hhdCBoYXBwZW5lZCB0byB0aGF0LCBidXQgaXQg ZGlkIHNlZW0gbGlrZSBhIG5pY2Ugd2F5Cj4gPiA+IHRvIGNvbnNvbGlkYXRlIHRoZSAidGhlc2Ug cGxhbmVzIGNvbnRhaW4gQ0NTIHN0dWZmIiBsb2dpYyByYXRoZXIKPiA+ID4gdGhhbiBoYXZpbmcg dG8gaGFyZGNvZGUgdGhlIHBsYW5lIElEJ3MgYWxsIG92ZXIgdGhlIHBsYWNlIGxpa2UgdGhpcy4K PiA+IFRoZSBpc19jY3NfcGxhbmUgaGVscGVyIGZ1bmN0aW9uIHdhcyBpbnRyb2R1Y2VkIGluIG1l ZGlhICBjb21wcmVzc2lvbgo+ID4gcGF0Y2hlcyBXaGVyZSBmdXJ0aGVyIGNvbXBsZXhpdGllcyB3 ZXJlIHJlcXVpcmVkIHdoaWxlIGNhbGN1bGF0aW5nIHBsYW5lCj4gZGltcy4KPiA+Cj4gPiA+Cj4g PiA+Cj4gPiA+ID4gKwkJCXJldHVybiA2NDsKPiA+ID4gPiArCQkvKiBmYWxsIHRocm91Z2ggKi8K PiA+ID4gPiAgCWNhc2UgSTkxNV9GT1JNQVRfTU9EX1lfVElMRUQ6Cj4gPiA+ID4gIAkJaWYgKElT X0dFTihkZXZfcHJpdiwgMikgfHwgSEFTXzEyOF9CWVRFX1lfVElMSU5HKGRldl9wcml2KSkKPiA+ ID4gPiAgCQkJcmV0dXJuIDEyODsKPiA+ID4gPiBAQCAtMjAxMyw2ICsyMDE3LDEwIEBAIGludGVs X3RpbGVfaGVpZ2h0KGNvbnN0IHN0cnVjdAo+ID4gPiA+IGRybV9mcmFtZWJ1ZmZlcgo+ID4gPiAq ZmIsIGludCBjb2xvcl9wbGFuZSkKPiA+ID4gPiAgCQlpZiAoY29sb3JfcGxhbmUgPT0gMSkKPiA+ ID4gPiAgCQkJcmV0dXJuIDE7Cj4gPiA+ID4gIAkJLyogZmFsbCB0aHJvdWdoICovCj4gPiA+Cj4g PiA+IEFzIGFib3ZlLCB5b3UgY2FuIG5vdyBjb25zb2xpZGF0ZSB0aGlzIHdpdGggdGhlIG5ldyBi bG9jayBiZWxvdyBpZiB5b3UKPiB3YW50Lgo+ID4gPgo+ID4gPiA+ICsJY2FzZSBJOTE1X0ZPUk1B VF9NT0RfWV9USUxFRF9HRU4xMl9SQ19DQ1NfQ0M6Cj4gPiA+ID4gKwkJaWYgKGNvbG9yX3BsYW5l ID09IDEgfHwgY29sb3JfcGxhbmUgPT0gMikKPiA+ID4gPiArCQkJcmV0dXJuIDE7Cj4gPiA+ID4g KwkJLyogZmFsbCB0aHJvdWdoICovCj4gPiA+ID4gIAlkZWZhdWx0Ogo+ID4gPiA+ICAJCXJldHVy biBpbnRlbF90aWxlX3NpemUodG9faTkxNShmYi0+ZGV2KSkgLwo+ID4gPiA+ICAJCQlpbnRlbF90 aWxlX3dpZHRoX2J5dGVzKGZiLCBjb2xvcl9wbGFuZSk7IEBAIC0yMTE2LDYKPiA+ID4gKzIxMjQs NyBAQAo+ID4gPiA+IHN0YXRpYyB1bnNpZ25lZCBpbnQgaW50ZWxfc3VyZl9hbGlnbm1lbnQoY29u c3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsCj4gPiA+ID4gIAkJCXJldHVybiAyNTYgKiAx MDI0Owo+ID4gPiA+ICAJCXJldHVybiAwOwo+ID4gPiA+ICAJY2FzZSBJOTE1X0ZPUk1BVF9NT0Rf WV9USUxFRF9HRU4xMl9SQ19DQ1M6Cj4gPiA+ID4gKwljYXNlIEk5MTVfRk9STUFUX01PRF9ZX1RJ TEVEX0dFTjEyX1JDX0NDU19DQzoKPiA+ID4gPiAgCQlyZXR1cm4gMTYgKiAxMDI0Owo+ID4gPiA+ ICAJY2FzZSBJOTE1X0ZPUk1BVF9NT0RfWV9USUxFRF9DQ1M6Cj4gPiA+ID4gIAljYXNlIEk5MTVf Rk9STUFUX01PRF9ZZl9USUxFRF9DQ1M6Cj4gPiA+ID4gQEAgLTIzMTMsOCArMjMyMiwxNiBAQCBz dGF0aWMgdTMyIGludGVsX2FkanVzdF90aWxlX29mZnNldChpbnQgKngsCj4gPiA+ID4gaW50ICp5 LAo+ID4gPiA+Cj4gPiA+ID4gIHN0YXRpYyBib29sIGlzX3N1cmZhY2VfbGluZWFyKHU2NCBtb2Rp ZmllciwgaW50IGNvbG9yX3BsYW5lKSAgewo+ID4gPiA+IC0JcmV0dXJuIG1vZGlmaWVyID09IERS TV9GT1JNQVRfTU9EX0xJTkVBUiB8fAo+ID4gPiA+IC0JICAgICAgIChtb2RpZmllciA9PSBJOTE1 X0ZPUk1BVF9NT0RfWV9USUxFRF9HRU4xMl9SQ19DQ1MgJiYKPiA+ID4gY29sb3JfcGxhbmUgPT0g MSk7Cj4gPiA+ID4gKwlzd2l0Y2ggKG1vZGlmaWVyKSB7Cj4gPiA+ID4gKwljYXNlIERSTV9GT1JN QVRfTU9EX0xJTkVBUjoKPiA+ID4gPiArCQlyZXR1cm4gdHJ1ZTsKPiA+ID4gPiArCWNhc2UgSTkx NV9GT1JNQVRfTU9EX1lfVElMRURfR0VOMTJfUkNfQ0NTOgo+ID4gPiA+ICsJCXJldHVybiBjb2xv cl9wbGFuZSA9PSAxOwo+ID4gPiA+ICsJY2FzZSBJOTE1X0ZPUk1BVF9NT0RfWV9USUxFRF9HRU4x Ml9SQ19DQ1NfQ0M6Cj4gPiA+ID4gKwkJcmV0dXJuIGNvbG9yX3BsYW5lID09IDEgfHwgY29sb3Jf cGxhbmUgPT0gMjsKPiA+ID4gPiArCWRlZmF1bHQ6Cj4gPiA+ID4gKwkJcmV0dXJuIGZhbHNlOwo+ ID4gPiA+ICsJfQo+ID4gPiA+ICB9Cj4gPiA+ID4KPiA+ID4gPiAgc3RhdGljIHUzMiBpbnRlbF9h ZGp1c3RfYWxpZ25lZF9vZmZzZXQoaW50ICp4LCBpbnQgKnksIEBAIC0yNTAyLDYKPiA+ID4gPiAr MjUxOSw3IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgaW50ZWxfZmJfbW9kaWZpZXJfdG9fdGlsaW5n KHU2NAo+ID4gPiA+ICtmYl9tb2RpZmllcikKPiA+ID4gPiAgCWNhc2UgSTkxNV9GT1JNQVRfTU9E X1lfVElMRUQ6Cj4gPiA+ID4gIAljYXNlIEk5MTVfRk9STUFUX01PRF9ZX1RJTEVEX0NDUzoKPiA+ ID4gPiAgCWNhc2UgSTkxNV9GT1JNQVRfTU9EX1lfVElMRURfR0VOMTJfUkNfQ0NTOgo+ID4gPiA+ ICsJY2FzZSBJOTE1X0ZPUk1BVF9NT0RfWV9USUxFRF9HRU4xMl9SQ19DQ1NfQ0M6Cj4gPiA+ID4g IAkJcmV0dXJuIEk5MTVfVElMSU5HX1k7Cj4gPiA+ID4gIAlkZWZhdWx0Ogo+ID4gPiA+ICAJCXJl dHVybiBJOTE1X1RJTElOR19OT05FOwo+ID4gPiA+IEBAIC0yNTUxLDYgKzI1NjksMjEgQEAgc3Rh dGljIGNvbnN0IHN0cnVjdCBkcm1fZm9ybWF0X2luZm8KPiA+ID4gZ2VuMTJfY2NzX2Zvcm1hdHNb XSA9IHsKPiA+ID4gPiAgCSAgLmNwcCA9IHsgNCwgMSwgfSwgLmhzdWIgPSAyLCAudnN1YiA9IDMy LCAuaGFzX2FscGhhID0gdHJ1ZSB9LAo+ID4gPiA+IH07Cj4gPiA+ID4KPiA+ID4gPiArLyoKPiA+ ID4gPiArICogU2FtZSBhcyBnZW4xMl9jY3NfZm9ybWF0c1tdIGFib3ZlLCBidXQgd2l0aCBhZGRp dGlvbmFsIHN1cmZhY2UKPiA+ID4gPiArdXNlZAo+ID4gPiA+ICsgKiB0byBwYXNzIENsZWFyIENv bG9yIGluZm9ybWF0aW9uIGluIHBsYW5lIDIgd2l0aCA2NCBiaXRzIG9mIGRhdGEuCj4gPiA+ID4g KyAqLwo+ID4gPiA+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9mb3JtYXRfaW5mbyBnZW4xMl9j Y3NfY2NfZm9ybWF0c1tdID0gewo+ID4gPiA+ICsJeyAuZm9ybWF0ID0gRFJNX0ZPUk1BVF9YUkdC ODg4OCwgLmRlcHRoID0gMjQsIC5udW1fcGxhbmVzID0gMywKPiA+ID4gPiArCSAgLmNwcCA9IHsg NCwgMSwgMCwgfSwgLmhzdWIgPSAyLCAudnN1YiA9IDMyLCB9LAo+ID4gPiA+ICsJeyAuZm9ybWF0 ID0gRFJNX0ZPUk1BVF9YQkdSODg4OCwgLmRlcHRoID0gMjQsIC5udW1fcGxhbmVzID0gMywKPiA+ ID4gPiArCSAgLmNwcCA9IHsgNCwgMSwgMCwgfSwgLmhzdWIgPSAyLCAudnN1YiA9IDMyLCB9LAo+ ID4gPiA+ICsJeyAuZm9ybWF0ID0gRFJNX0ZPUk1BVF9BUkdCODg4OCwgLmRlcHRoID0gMzIsIC5u dW1fcGxhbmVzID0gMywKPiA+ID4gPiArCSAgLmNwcCA9IHsgNCwgMSwgMCwgfSwgLmhzdWIgPSAy LCAudnN1YiA9IDMyLCAuaGFzX2FscGhhID0gdHJ1ZSB9LAo+ID4gPiA+ICsJeyAuZm9ybWF0ID0g RFJNX0ZPUk1BVF9BQkdSODg4OCwgLmRlcHRoID0gMzIsIC5udW1fcGxhbmVzID0gMywKPiA+ID4g PiArCSAgLmNwcCA9IHsgNCwgMSwgMCwgfSwgLmhzdWIgPSAyLCAudnN1YiA9IDMyLCAuaGFzX2Fs cGhhID0gdHJ1ZQo+ID4gPiA+ICt9LCB9Owo+ID4gPiA+ICsKPiA+ID4gPiAgc3RhdGljIGNvbnN0 IHN0cnVjdCBkcm1fZm9ybWF0X2luZm8gKiAgbG9va3VwX2Zvcm1hdF9pbmZvKGNvbnN0Cj4gPiA+ ID4gc3RydWN0IGRybV9mb3JtYXRfaW5mbyBmb3JtYXRzW10sCj4gPiA+ID4gIAkJICAgaW50IG51 bV9mb3JtYXRzLCB1MzIgZm9ybWF0KSBAQCAtMjU3OCw2ICsyNjExLDEwIEBACj4gPiA+ID4gaW50 ZWxfZ2V0X2Zvcm1hdF9pbmZvKGNvbnN0IHN0cnVjdAo+ID4gPiBkcm1fbW9kZV9mYl9jbWQyICpj bWQpCj4gPiA+ID4gIAkJcmV0dXJuIGxvb2t1cF9mb3JtYXRfaW5mbyhnZW4xMl9jY3NfZm9ybWF0 cywKPiA+ID4gPiAgCQkJCQkgIEFSUkFZX1NJWkUoZ2VuMTJfY2NzX2Zvcm1hdHMpLAo+ID4gPiA+ ICAJCQkJCSAgY21kLT5waXhlbF9mb3JtYXQpOwo+ID4gPiA+ICsJY2FzZSBJOTE1X0ZPUk1BVF9N T0RfWV9USUxFRF9HRU4xMl9SQ19DQ1NfQ0M6Cj4gPiA+ID4gKwkJcmV0dXJuIGxvb2t1cF9mb3Jt YXRfaW5mbyhnZW4xMl9jY3NfY2NfZm9ybWF0cywKPiA+ID4gPiArCQkJCQkgIEFSUkFZX1NJWkUo Z2VuMTJfY2NzX2NjX2Zvcm1hdHMpLAo+ID4gPiA+ICsJCQkJCSAgY21kLT5waXhlbF9mb3JtYXQp Owo+ID4gPiA+ICAJZGVmYXVsdDoKPiA+ID4gPiAgCQlyZXR1cm4gTlVMTDsKPiA+ID4gPiAgCX0K PiA+ID4gPiBAQCAtMjU4Niw2ICsyNjIzLDcgQEAgaW50ZWxfZ2V0X2Zvcm1hdF9pbmZvKGNvbnN0 IHN0cnVjdAo+ID4gPiA+IGRybV9tb2RlX2ZiX2NtZDIgKmNtZCkgIGJvb2wgaXNfY2NzX21vZGlm aWVyKHU2NCBtb2RpZmllcikgIHsKPiA+ID4gPiAgCXJldHVybiBtb2RpZmllciA9PSBJOTE1X0ZP Uk1BVF9NT0RfWV9USUxFRF9HRU4xMl9SQ19DQ1MgfHwKPiA+ID4gPiArCSAgICAgICBtb2RpZmll ciA9PSBJOTE1X0ZPUk1BVF9NT0RfWV9USUxFRF9HRU4xMl9SQ19DQ1NfQ0MgfHwKPiA+ID4gPiAg CSAgICAgICBtb2RpZmllciA9PSBJOTE1X0ZPUk1BVF9NT0RfWV9USUxFRF9DQ1MgfHwKPiA+ID4g PiAgCSAgICAgICBtb2RpZmllciA9PSBJOTE1X0ZPUk1BVF9NT0RfWWZfVElMRURfQ0NTOyAgfSBA QCAtMjc5OCw2Cj4gPiA+ID4gKzI4MzYsMTggQEAgaW50ZWxfZmlsbF9mYl9pbmZvKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+ID4gPiAgCQlpbnQgeCwgeTsKPiA+ID4gPiAg CQlpbnQgcmV0Owo+ID4gPiA+Cj4gPiA+ID4gKwkJLyoKPiA+ID4gPiArCQkgKiBQbGFuZSAyIG9m IFJlbmRlciBDb21wcmVzc2lvbiB3aXRoIENsZWFyIENvbG9yIGZiIG1vZGlmaWVyCj4gPiA+ID4g KwkJICogaXMgY29uc3VtZWQgYnkgdGhlIGRyaXZlciBhbmQgbm90IHBhc3NlZCB0byBERS4gU2tp cCB0aGUKPiA+ID4gPiArCQkgKiBhcml0aG1ldGljIHJlbGF0ZWQgdG8gYWxpZ25tZW50IGFuZCBv ZmZzZXQgY2FsY3VsYXRpb24uCj4gPiA+ID4gKwkJICovCj4gPiA+ID4gKwkJaWYgKGkgPT0gMiAm JiBmYi0+bW9kaWZpZXIgPT0KPiA+ID4gPiArSTkxNV9GT1JNQVRfTU9EX1lfVElMRURfR0VOMTJf UkNfQ0NTX0NDKSB7Cj4gPiA+Cj4gPiA+IFRoaXMgbGluZSBzaG91bGQgYmUgd3JhcHBlZC4KPiA+ IFN1cmUgd2lsbCBpbmNsdWRlIGluIGZpbmFsIHJldi4KPiA+ID4KPiA+ID4gPiArCQkJaWYgKElT X0FMSUdORUQoZmItPm9mZnNldHNbMl0sIFBBR0VfU0laRSkpCj4gPiA+ID4gKwkJCQljb250aW51 ZTsKPiA+ID4gPiArCQkJZWxzZQo+ID4gPiA+ICsJCQkJcmV0dXJuIC1FSU5WQUw7Cj4gPiA+ID4g KwkJfQo+ID4gPiA+ICsKPiA+ID4gPiAgCQljcHAgPSBmYi0+Zm9ybWF0LT5jcHBbaV07Cj4gPiA+ ID4gIAkJd2lkdGggPSBkcm1fZnJhbWVidWZmZXJfcGxhbmVfd2lkdGgoZmItPndpZHRoLCBmYiwg aSk7Cj4gPiA+ID4gIAkJaGVpZ2h0ID0gZHJtX2ZyYW1lYnVmZmVyX3BsYW5lX2hlaWdodChmYi0+ aGVpZ2h0LCBmYiwgaSk7IEBACj4gPiA+ID4gLTQyOTUsNiArNDM0NSw3IEBAIHN0YXRpYyB1MzIg c2tsX3BsYW5lX2N0bF90aWxpbmcodTY0IGZiX21vZGlmaWVyKQo+ID4gPiA+ICAJY2FzZSBJOTE1 X0ZPUk1BVF9NT0RfWV9USUxFRDoKPiA+ID4gPiAgCQlyZXR1cm4gUExBTkVfQ1RMX1RJTEVEX1k7 Cj4gPiA+ID4gIAljYXNlIEk5MTVfRk9STUFUX01PRF9ZX1RJTEVEX0NDUzoKPiA+ID4gPiArCWNh c2UgSTkxNV9GT1JNQVRfTU9EX1lfVElMRURfR0VOMTJfUkNfQ0NTX0NDOgo+ID4gPiA+ICAJCXJl dHVybiBQTEFORV9DVExfVElMRURfWSB8Cj4gPiA+IFBMQU5FX0NUTF9SRU5ERVJfREVDT01QUkVT U0lPTl9FTkFCTEU7Cj4gPiA+ID4gIAljYXNlIEk5MTVfRk9STUFUX01PRF9ZX1RJTEVEX0dFTjEy X1JDX0NDUzoKPiA+ID4gPiAgCQlyZXR1cm4gUExBTkVfQ1RMX1RJTEVEX1kgfAo+ID4gPiA+IEBA IC0xNTI0NSw2ICsxNTI5NiwxNSBAQCBzdGF0aWMgaW50IGludGVsX3BsYW5lX3Bpbl9mYihzdHJ1 Y3QKPiA+ID4gPiBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpCj4gPiA+ID4KPiA+ID4g PiAgCXBsYW5lX3N0YXRlLT52bWEgPSB2bWE7Cj4gPiA+ID4KPiA+ID4gPiArCWlmIChmYi0+bW9k aWZpZXIgPT0gSTkxNV9GT1JNQVRfTU9EX1lfVElMRURfR0VOMTJfUkNfQ0NTX0NDKSB7Cj4gPiA+ ID4gKwkJdTMyICpjY2FkZHIgPQo+ID4gPiBrbWFwX2F0b21pYyhpOTE1X2dlbV9vYmplY3RfZ2V0 X3BhZ2UoaW50ZWxfZmJfb2JqKGZiKSwKPiA+ID4gPiArCQkJCQkJCQkgIGZiLQo+ID4gPiA+b2Zm c2V0c1syXSA+PiBQQUdFX1NISUZUKSk7Cj4gPiA+ID4gKwo+ID4gPiA+ICsJCXBsYW5lX3N0YXRl LT5jY3ZhbCA9ICgodTY0KSooY2NhZGRyICsgQ0NfVkFMX0hJR0hFUl9PRkZTRVQpCj4gPiA+IDw8 IDMyKQo+ID4gPiA+ICsJCQkJICAgICB8ICooY2NhZGRyICsgQ0NfVkFMX0xPV0VSX09GRlNFVCk7 Cj4gPiA+Cj4gPiA+IElzbid0IHRoaXMganVzdCB0aGUgc2FtZSB0aGluZyBhcwo+ID4gPgo+ID4g PiAgICAgICAgIHU2NCAqY2NhZGRyID0ga21hcF9hdG9taWMoLi4uKTsKPiA+ID4gICAgICAgICBw bGFuZV9zdGF0ZS0+Y2N2YWwgPSBjY2FkZHJbMl07Cj4gPiA+Cj4gPiA+ID8KPiA+IEkgdGhpbmsg aXQgaXMgY2N2YWwgPSBjY2FkZHJbNV0gPDwgMzIgfCBjY2FkZHJbNF0/Cj4gPiBJcyB0aGlzIHBy ZWZlcnJlZD8KPiAKPiBHaXZlbiB0aGF0IHdlJ3JlIGxpdHRsZS1lbmRpYW4sIGJvdGggc2hvdWxk IGJlIGVxdWl2YWxlbnQsIHJpZ2h0PyAgSS5lLiwgaWYgeW91IHRyZWF0Cj4gdGhlIHBvaW50ZXIg YXMgdTY0KiwgdGhlbiBjY2FkZHJbMl0gZ2l2ZXMgeW91IHRoZSB3aG9sZSB2YWx1ZSBhdCBvbmNl IHdpdGggbm8KPiBiaXQgbWFuaXB1bGF0aW9uLiAgSWYgeW91IHRyZWF0IGl0IGFzIHUzMiosIHRo ZW4geW91IG5lZWQgdG8gZ3JhYiBib3RoIHdvcmRzIGFuZAo+IHNoaWZ0IHRoZW0gaW50byBwb3Np dGlvbiBhbmQgT1IgdGhlbSBhcyB5b3UgZG8gaGVyZS4KPiAKPiBJIGRvbid0IHRoaW5rIGl0IHJl YWxseSBtYXR0ZXJzIHRvbyBtdWNoLiAgSSB3YXMganVzdCBzdWdnZXN0aW5nIHNvbWV0aGluZyB0 aGF0Cj4gbWlnaHQgYmUgc2xpZ2h0bHkgc2hvcnRlciBhbmQgZWFzaWVyIHRvIHJlYWQuCkFoIHU2 NCogeWVzLiBCdXQgSSBwcmVmZXIga2VlcGluZyBpdCBleHBsaWNpdCBzbyBhcyB0byBjbGVhcmx5 IGlkZW50aWZ5IHRoZSBoaWdoZXIgYW5kCmxvd2VyIG9mZnNldHMgaW4gY2FzZSBzb21lb25lIHdh bnRzIHRvIHVzZSB0aGlzIGZ1cnRoZXIgYWxzbyBleHBsYWlucyB0aGUgZGlmZmVyZW50CmZpZWxk cyBkZXNjcmliZWQgaW4gdGhlIGRvY3VtZW50YXRpb24gc2VjdGlvbiBvZiB0aGUgcHJldmlvdXMg cGF0Y2guCgpSSwo+IAo+IAo+IE1hdHQKPiAKPiA+Cj4gPiBUaGFua3MsCj4gPiBSYWRoYWtyaXNo bmEoUkspIFNyaXBhZGEKPiA+ID4KPiA+ID4gPiArCQlrdW5tYXBfYXRvbWljKGNjYWRkcik7Cj4g PiA+ID4gKwl9Cj4gPiA+ID4gKwo+ID4gPiA+ICAJcmV0dXJuIDA7Cj4gPiA+ID4gIH0KPiA+ID4g Pgo+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVs X2Rpc3BsYXlfdHlwZXMuaAo+ID4gPiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9p bnRlbF9kaXNwbGF5X3R5cGVzLmgKPiA+ID4gPiBpbmRleCA4M2VhMDQxNDliNzcuLmUxYmQxODEy MmNlNiAxMDA2NDQKPiA+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX2Rpc3BsYXlfdHlwZXMuaAo+ID4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rp c3BsYXkvaW50ZWxfZGlzcGxheV90eXBlcy5oCj4gPiA+ID4gQEAgLTYwNyw2ICs2MDcsOSBAQCBz dHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgewo+ID4gPiA+ICAJdTMyIHBsYW5hcl9zbGF2ZTsKPiA+ ID4gPgo+ID4gPiA+ICAJc3RydWN0IGRybV9pbnRlbF9zcHJpdGVfY29sb3JrZXkgY2tleTsKPiA+ ID4gPiArCj4gPiA+ID4gKwkvKiBDbGVhciBDb2xvciBWYWx1ZSAqLwo+ID4gPiA+ICsJdTY0IGNj dmFsOwo+ID4gPiA+ICB9Owo+ID4gPiA+Cj4gPiA+ID4gIHN0cnVjdCBpbnRlbF9pbml0aWFsX3Bs YW5lX2NvbmZpZyB7IGRpZmYgLS1naXQKPiA+ID4gPiBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rp c3BsYXkvaW50ZWxfc3ByaXRlLmMKPiA+ID4gPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3Bs YXkvaW50ZWxfc3ByaXRlLmMKPiA+ID4gPiBpbmRleCA2N2E5MDA1OTkwMGYuLjg5ZjdmYmM4N2Fk OSAxMDA2NDQKPiA+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVs X3Nwcml0ZS5jCj4gPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRl bF9zcHJpdGUuYwo+ID4gPiA+IEBAIC01OTcsNiArNTk3LDcgQEAgc2tsX3Byb2dyYW1fcGxhbmUo c3RydWN0IGludGVsX3BsYW5lICpwbGFuZSwKPiA+ID4gPiAgCXVuc2lnbmVkIGxvbmcgaXJxZmxh Z3M7Cj4gPiA+ID4gIAl1MzIga2V5bXNrLCBrZXltYXg7Cj4gPiA+ID4gIAl1MzIgcGxhbmVfY3Rs ID0gcGxhbmVfc3RhdGUtPmN0bDsKPiA+ID4gPiArCXU2NCBjY3ZhbCA9IHBsYW5lX3N0YXRlLT5j Y3ZhbDsKPiA+ID4gPgo+ID4gPiA+ICAJcGxhbmVfY3RsIHw9IHNrbF9wbGFuZV9jdGxfY3J0Yyhj cnRjX3N0YXRlKTsKPiA+ID4gPgo+ID4gPiA+IEBAIC02MzksNiArNjQwLDEwIEBAIHNrbF9wcm9n cmFtX3BsYW5lKHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUsCj4gPiA+ID4gIAlpZiAoZmItPmZv cm1hdC0+aXNfeXV2ICYmIGljbF9pc19oZHJfcGxhbmUoZGV2X3ByaXYsIHBsYW5lX2lkKSkKPiA+ ID4gPiAgCQlpY2xfcHJvZ3JhbV9pbnB1dF9jc2MocGxhbmUsIGNydGNfc3RhdGUsIHBsYW5lX3N0 YXRlKTsKPiA+ID4gPgo+ID4gPiA+ICsJaWYgKGZiLT5tb2RpZmllciA9PSBJOTE1X0ZPUk1BVF9N T0RfWV9USUxFRF9HRU4xMl9SQ19DQ1NfQ0MpCj4gPiA+ID4gKwkJaW50ZWxfdW5jb3JlX3dyaXRl NjRfZncoJmRldl9wcml2LT51bmNvcmUsCj4gPiA+ID4gKwkJCQkJUExBTkVfQ0NfVkFMKHBpcGUs IHBsYW5lX2lkKSwgY2N2YWwpOwo+ID4gPiA+ICsKPiA+ID4gPiAgCXNrbF93cml0ZV9wbGFuZV93 bShwbGFuZSwgY3J0Y19zdGF0ZSk7Cj4gPiA+ID4KPiA+ID4gPiAgCUk5MTVfV1JJVEVfRlcoUExB TkVfS0VZVkFMKHBpcGUsIHBsYW5lX2lkKSwga2V5LT5taW5fdmFsdWUpOyBAQAo+ID4gPiA+IC0y MTA2LDcgKzIxMTEsOCBAQCBzdGF0aWMgaW50IHNrbF9wbGFuZV9jaGVja19mYihjb25zdCBzdHJ1 Y3QKPiA+ID4gaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiA+ID4gPiAgCSAgICAgZmIt Pm1vZGlmaWVyID09IEk5MTVfRk9STUFUX01PRF9ZZl9USUxFRCB8fAo+ID4gPiA+ICAJICAgICBm Yi0+bW9kaWZpZXIgPT0gSTkxNV9GT1JNQVRfTU9EX1lfVElMRURfQ0NTIHx8Cj4gPiA+ID4gIAkg ICAgIGZiLT5tb2RpZmllciA9PSBJOTE1X0ZPUk1BVF9NT0RfWWZfVElMRURfQ0NTIHx8Cj4gPiA+ ID4gLQkgICAgIGZiLT5tb2RpZmllciA9PSBJOTE1X0ZPUk1BVF9NT0RfWV9USUxFRF9HRU4xMl9S Q19DQ1MpKSB7Cj4gPiA+ID4gKwkgICAgIGZiLT5tb2RpZmllciA9PSBJOTE1X0ZPUk1BVF9NT0Rf WV9USUxFRF9HRU4xMl9SQ19DQ1MgfHwKPiA+ID4gPiArCSAgICAgZmItPm1vZGlmaWVyID09IEk5 MTVfRk9STUFUX01PRF9ZX1RJTEVEX0dFTjEyX1JDX0NDU19DQykpCj4gPiA+IHsKPiA+ID4gPiAg CQlEUk1fREVCVUdfS01TKCJZL1lmIHRpbGluZyBub3Qgc3VwcG9ydGVkIGluIElGLUlEIG1vZGVc biIpOwo+ID4gPiA+ICAJCXJldHVybiAtRUlOVkFMOwo+ID4gPiA+ICAJfQo+ID4gPiA+IEBAIC0y NTc5LDYgKzI1ODUsNyBAQCBzdGF0aWMgY29uc3QgdTY0Cj4gPiA+ID4gc2tsX3BsYW5lX2Zvcm1h dF9tb2RpZmllcnNfY2NzW10gPSB7Cj4gPiA+ID4KPiA+ID4gPiAgc3RhdGljIGNvbnN0IHU2NCBn ZW4xMl9wbGFuZV9mb3JtYXRfbW9kaWZpZXJzX2Njc1tdID0gewo+ID4gPiA+ICAJSTkxNV9GT1JN QVRfTU9EX1lfVElMRURfR0VOMTJfUkNfQ0NTLAo+ID4gPiA+ICsJSTkxNV9GT1JNQVRfTU9EX1lf VElMRURfR0VOMTJfUkNfQ0NTX0NDLAo+ID4gPiA+ICAJSTkxNV9GT1JNQVRfTU9EX1lfVElMRUQs Cj4gPiA+ID4gIAlJOTE1X0ZPUk1BVF9NT0RfWF9USUxFRCwKPiA+ID4gPiAgCURSTV9GT1JNQVRf TU9EX0xJTkVBUiwKPiA+ID4gPiBAQCAtMjc1MCw2ICsyNzU3LDcgQEAgc3RhdGljIGJvb2wKPiA+ ID4gZ2VuMTJfcGxhbmVfZm9ybWF0X21vZF9zdXBwb3J0ZWQoc3RydWN0IGRybV9wbGFuZSAqX3Bs YW5lLAo+ID4gPiA+ICAJY2FzZSBJOTE1X0ZPUk1BVF9NT0RfWF9USUxFRDoKPiA+ID4gPiAgCWNh c2UgSTkxNV9GT1JNQVRfTU9EX1lfVElMRUQ6Cj4gPiA+ID4gIAljYXNlIEk5MTVfRk9STUFUX01P RF9ZX1RJTEVEX0dFTjEyX1JDX0NDUzoKPiA+ID4gPiArCWNhc2UgSTkxNV9GT1JNQVRfTU9EX1lf VElMRURfR0VOMTJfUkNfQ0NTX0NDOgo+ID4gPiA+ICAJCWJyZWFrOwo+ID4gPiA+ICAJZGVmYXVs dDoKPiA+ID4gPiAgCQlyZXR1cm4gZmFsc2U7Cj4gPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiA+ID4gPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfcmVnLmggaW5kZXggMmU0NDRhMThlZDBiLi40YTY4M2RiMjY3YzEKPiA+ID4gPiAxMDA2NDQK PiA+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gPiA+ID4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+ID4gPiA+IEBAIC02ODQwLDYgKzY4 NDAsOCBAQCBlbnVtIHsKPiA+ID4gPiAgI2RlZmluZSBfUExBTkVfS0VZTUFYXzFfQQkJCTB4NzAx YTAKPiA+ID4gPiAgI2RlZmluZSBfUExBTkVfS0VZTUFYXzJfQQkJCTB4NzAyYTAKPiA+ID4gPiAg I2RlZmluZSAgUExBTkVfS0VZTUFYX0FMUEhBKGEpCQkJKChhKSA8PCAyNCkKPiA+ID4gPiArI2Rl ZmluZSBfUExBTkVfQ0NfVkFMXzFfQQkJCTB4NzAxYjQKPiA+ID4gPiArI2RlZmluZSBfUExBTkVf Q0NfVkFMXzJfQQkJCTB4NzAyYjQKPiA+ID4gPiAgI2RlZmluZSBfUExBTkVfQVVYX0RJU1RfMV9B CQkJMHg3MDFjMAo+ID4gPiA+ICAjZGVmaW5lIF9QTEFORV9BVVhfRElTVF8yX0EJCQkweDcwMmMw Cj4gPiA+ID4gICNkZWZpbmUgX1BMQU5FX0FVWF9PRkZTRVRfMV9BCQkJMHg3MDFjNAo+ID4gPiA+ IEBAIC02ODc5LDYgKzY4ODEsMTYgQEAgZW51bSB7Cj4gPiA+ID4gICNkZWZpbmUgX1BMQU5FX05W MTJfQlVGX0NGR18xX0EJCTB4NzAyNzgKPiA+ID4gPiAgI2RlZmluZSBfUExBTkVfTlYxMl9CVUZf Q0ZHXzJfQQkJMHg3MDM3OAo+ID4gPiA+Cj4gPiA+ID4gKyNkZWZpbmUgX1BMQU5FX0NDX1ZBTF8x X0IJCQkweDcxMWI0Cj4gPiA+ID4gKyNkZWZpbmUgX1BMQU5FX0NDX1ZBTF8yX0IJCQkweDcxMmI0 Cj4gPiA+ID4gKyNkZWZpbmUgX1BMQU5FX0NDX1ZBTF8xKHBpcGUpCV9QSVBFKHBpcGUsIF9QTEFO RV9DQ19WQUxfMV9BLAo+ID4gPiBfUExBTkVfQ0NfVkFMXzFfQikKPiA+ID4gPiArI2RlZmluZSBf UExBTkVfQ0NfVkFMXzIocGlwZSkJX1BJUEUocGlwZSwgX1BMQU5FX0NDX1ZBTF8yX0EsCj4gPiA+ IF9QTEFORV9DQ19WQUxfMl9CKQo+ID4gPiA+ICsjZGVmaW5lIFBMQU5FX0NDX1ZBTChwaXBlLCBw bGFuZSkJXAo+ID4gPiA+ICsJX01NSU9fUExBTkUocGxhbmUsIF9QTEFORV9DQ19WQUxfMShwaXBl KSwKPiA+ID4gX1BMQU5FX0NDX1ZBTF8yKHBpcGUpKQo+ID4gPiA+ICsKPiA+ID4gPiArI2RlZmlu ZSBDQ19WQUxfTE9XRVJfT0ZGU0VUCQk0Cj4gPiA+ID4gKyNkZWZpbmUgQ0NfVkFMX0hJR0hFUl9P RkZTRVQJCTUKPiA+ID4gPiArCj4gPiA+ID4gIC8qIElucHV0IENTQyBSZWdpc3RlciBEZWZpbml0 aW9ucyAqLwo+ID4gPiA+ICAjZGVmaW5lIF9QTEFORV9JTlBVVF9DU0NfUllfR1lfMV9BCTB4NzAx RTAKPiA+ID4gPiAgI2RlZmluZSBfUExBTkVfSU5QVVRfQ1NDX1JZX0dZXzJfQQkweDcwMkUwCj4g PiA+ID4gLS0KPiA+ID4gPiAyLjIwLjEKPiA+ID4gPgo+ID4gPgo+ID4gPiAtLQo+ID4gPiBNYXR0 IFJvcGVyCj4gPiA+IEdyYXBoaWNzIFNvZnR3YXJlIEVuZ2luZWVyCj4gPiA+IFZUVC1PU0dDIFBs YXRmb3JtIEVuYWJsZW1lbnQKPiA+ID4gSW50ZWwgQ29ycG9yYXRpb24KPiA+ID4gKDkxNikgMzU2 LTI3OTUKPiAKPiAtLQo+IE1hdHQgUm9wZXIKPiBHcmFwaGljcyBTb2Z0d2FyZSBFbmdpbmVlcgo+ IFZUVC1PU0dDIFBsYXRmb3JtIEVuYWJsZW1lbnQKPiBJbnRlbCBDb3Jwb3JhdGlvbgo+ICg5MTYp IDM1Ni0yNzk1Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.7 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8F043C432C0 for ; Tue, 26 Nov 2019 22:29:20 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 6858A2071E for ; Tue, 26 Nov 2019 22:29:20 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6858A2071E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id EFF146E4A1; Tue, 26 Nov 2019 22:29:19 +0000 (UTC) Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id 408196E49D for ; Tue, 26 Nov 2019 22:29:18 +0000 (UTC) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by fmsmga107.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 26 Nov 2019 14:29:17 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.69,247,1571727600"; d="scan'208";a="410135130" Received: from orsmsx104.amr.corp.intel.com ([10.22.225.131]) by fmsmga006.fm.intel.com with ESMTP; 26 Nov 2019 14:29:17 -0800 Received: from orsmsx152.amr.corp.intel.com (10.22.226.39) by ORSMSX104.amr.corp.intel.com (10.22.225.131) with Microsoft SMTP Server (TLS) id 14.3.439.0; Tue, 26 Nov 2019 14:29:17 -0800 Received: from orsmsx101.amr.corp.intel.com ([169.254.8.229]) by ORSMSX152.amr.corp.intel.com ([169.254.8.219]) with mapi id 14.03.0439.000; Tue, 26 Nov 2019 14:29:16 -0800 From: "Sripada, Radhakrishna" To: "Roper, Matthew D" Thread-Topic: [PATCH v7 7/7] drm/i915/tgl: Add Clear Color support for TGL Render Decompression Thread-Index: AQHVo+/5zVMtFvTju0GU9ptW+QHKmKeedBKA//+JWaCAAIqkAP//gQbw Date: Tue, 26 Nov 2019 22:29:16 +0000 Message-ID: <8C2593290C2B3E488D763E819AF1F02E15FCAC63@ORSMSX101.amr.corp.intel.com> References: <20191126002635.5779-1-radhakrishna.sripada@intel.com> <20191126002635.5779-8-radhakrishna.sripada@intel.com> <20191126204855.GB6337@mdroper-desk1.amr.corp.intel.com> <8C2593290C2B3E488D763E819AF1F02E15FCAC19@ORSMSX101.amr.corp.intel.com> <20191126220028.GD6337@mdroper-desk1.amr.corp.intel.com> In-Reply-To: <20191126220028.GD6337@mdroper-desk1.amr.corp.intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ctpclassification: CTP_NT x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiZjIxOGZjYjEtZmZhZi00NzA3LThmYjItZDM0M2Y2ZGMzMmUzIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiNnFGXC82NVlHRllDdDdZREN0cDlZVWlQV3hJcUNsTTErVnYxTjAxWnJvVjhVQVFtZkRsSzZRRWw3YXdMclh2ME0ifQ== dlp-product: dlpe-windows dlp-version: 11.0.400.15 dlp-reaction: no-action x-originating-ip: [10.22.254.138] MIME-Version: 1.0 Subject: Re: [Intel-gfx] [PATCH v7 7/7] drm/i915/tgl: Add Clear Color support for TGL Render Decompression X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Chery, Nanley G" , "intel-gfx@lists.freedesktop.org" , "Pandiyan, Dhinakaran" , "Syrjala, Ville" Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" Message-ID: <20191126222916.4vcAqXUsDQlofHzDpEXU87E5_FXn7paNIvjvERXSDZ4@z> Cgo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tCj4gRnJvbTogUm9wZXIsIE1hdHRoZXcgRAo+ IFNlbnQ6IFR1ZXNkYXksIE5vdmVtYmVyIDI2LCAyMDE5IDI6MDAgUE0KPiBUbzogU3JpcGFkYSwg UmFkaGFrcmlzaG5hIDxyYWRoYWtyaXNobmEuc3JpcGFkYUBpbnRlbC5jb20+Cj4gQ2M6IGludGVs LWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmc7IFBhbmRpeWFuLCBEaGluYWthcmFuCj4gPGRoaW5h a2FyYW4ucGFuZGl5YW5AaW50ZWwuY29tPjsgU3lyamFsYSwgVmlsbGUgPHZpbGxlLnN5cmphbGFA aW50ZWwuY29tPjsKPiBTaGFybWEsIFNoYXNoYW5rIDxzaGFzaGFuay5zaGFybWFAaW50ZWwuY29t PjsgQW50b2dub2xsaSwgUmFmYWVsCj4gPHJhZmFlbC5hbnRvZ25vbGxpQGludGVsLmNvbT47IENo ZXJ5LCBOYW5sZXkgRyA8bmFubGV5LmcuY2hlcnlAaW50ZWwuY29tPgo+IFN1YmplY3Q6IFJlOiBb UEFUQ0ggdjcgNy83XSBkcm0vaTkxNS90Z2w6IEFkZCBDbGVhciBDb2xvciBzdXBwb3J0IGZvciBU R0wKPiBSZW5kZXIgRGVjb21wcmVzc2lvbgo+IAo+IE9uIFR1ZSwgTm92IDI2LCAyMDE5IGF0IDAx OjUyOjM5UE0gLTA4MDAsIFNyaXBhZGEsIFJhZGhha3Jpc2huYSB3cm90ZToKPiA+IEhpIE1hdHQs Cj4gPgo+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+ID4gPiBGcm9tOiBSb3Blciwg TWF0dGhldyBECj4gPiA+IFNlbnQ6IFR1ZXNkYXksIE5vdmVtYmVyIDI2LCAyMDE5IDEyOjQ5IFBN Cj4gPiA+IFRvOiBTcmlwYWRhLCBSYWRoYWtyaXNobmEgPHJhZGhha3Jpc2huYS5zcmlwYWRhQGlu dGVsLmNvbT4KPiA+ID4gQ2M6IGludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmc7IFBhbmRp eWFuLCBEaGluYWthcmFuCj4gPiA+IDxkaGluYWthcmFuLnBhbmRpeWFuQGludGVsLmNvbT47IFN5 cmphbGEsIFZpbGxlCj4gPiA+IDx2aWxsZS5zeXJqYWxhQGludGVsLmNvbT47IFNoYXJtYSwgU2hh c2hhbmsKPiA+ID4gPHNoYXNoYW5rLnNoYXJtYUBpbnRlbC5jb20+OyBBbnRvZ25vbGxpLCBSYWZh ZWwKPiA+ID4gPHJhZmFlbC5hbnRvZ25vbGxpQGludGVsLmNvbT47IENoZXJ5LCBOYW5sZXkgRwo+ ID4gPiA8bmFubGV5LmcuY2hlcnlAaW50ZWwuY29tPgo+ID4gPiBTdWJqZWN0OiBSZTogW1BBVENI IHY3IDcvN10gZHJtL2k5MTUvdGdsOiBBZGQgQ2xlYXIgQ29sb3Igc3VwcG9ydAo+ID4gPiBmb3Ig VEdMIFJlbmRlciBEZWNvbXByZXNzaW9uCj4gPiA+Cj4gPiA+IE9uIE1vbiwgTm92IDI1LCAyMDE5 IGF0IDA0OjI2OjM1UE0gLTA4MDAsIFJhZGhha3Jpc2huYSBTcmlwYWRhIHdyb3RlOgo+ID4gPiA+ IFJlbmRlciBEZWNvbXByZXNzaW9uIGlzIHN1cHBvcnRlZCB3aXRoIFktVGlsZWQgbWFpbiBzdXJm YWNlLiBUaGUKPiA+ID4gPiBDQ1MgaXMgbGluZWFyIGFuZCBoYXMgNCBiaXRzIG9mIGRhdGEgZm9y IGVhY2ggbWFpbiBzdXJmYWNlIGNhY2hlCj4gPiA+ID4gbGluZSBwYWlyLCBhIHJhdGlvIG9mIDE6 MjU2LiBBZGRpdGlvbmFsIENsZWFyIENvbG9yIGluZm9ybWF0aW9uIGlzCj4gPiA+ID4gcGFzc2Vk IGZyb20gdGhlIHVzZXItc3BhY2UgdGhyb3VnaCBhbiBvZmZzZXQgaW4gdGhlIEdFTSBCTy4gQWRk IGEKPiA+ID4gPiBuZXcgbW9kaWZpZXIgdG8gaWRlbnRpZnkgYW5kIHBhcnNlIG5ldyBDbGVhciBD b2xvciBpbmZvcm1hdGlvbiBhbmQKPiA+ID4gPiBleHRlbmQKPiA+ID4gPiBHZW4xMiByZW5kZXIg ZGVjb21wcmVzc2lvbiBmdW5jdGlvbmFsaXR5IHRvIHRoZSBuZXdseSBhZGRlZCBtb2RpZmllci4K PiA+ID4gPgo+ID4gPiA+IHYyOiBGaXggaGFzX2FscGhhIGZsYWcgZm9yIG1vZGlmaWVycywgb21p dCBDQyBtb2RpZmllciBkdXJpbmcgaW5pdGlhbAo+ID4gPiA+ICAgICBwbGFuZSBjb25maWcoTWF0 dCkuIEZpeCBMb29rdXAgZXJyb3IuCj4gPiA+ID4gdjM6IEZpeCB0aGUgcGFuaWMgd2hpbGUgcnVu bmluZyBrbXNfY3ViZQo+ID4gPiA+IHY0OiBBZGQgYWxpZ25tZW50IGNoZWNrIGFuZCByZXVzZSB0 aGUgY29tbWVudHMgZm9yCj4gPiA+ID4gZ2UxMl9jY3NfZm9ybWF0cyhNYXR0KQo+ID4gPiA+IHY1 OiBGaXggdHlwb3MgYW5kIHdyYXAgY29tbWVudHMoTWF0dCkKPiA+ID4gPiB2NjogUmViYXNlCj4g PiA+ID4gdjc6IFJlYmFzZSwgQWRkIG1pc3NpbmcgY2FzZSBpbiBpbnRlbF90aWxlX2hlaWdodChS SykKPiA+ID4gPgo+ID4gPiA+IENjOiBEaGluYWthcmFuIFBhbmRpeWFuIDxkaGluYWthcmFuLnBh bmRpeWFuQGludGVsLmNvbT4KPiA+ID4gPiBDYzogVmlsbGUgU3lyamFsYSA8dmlsbGUuc3lyamFs YUBpbnRlbC5jb20+Cj4gPiA+ID4gQ2M6IFNoYXNoYW5rIFNoYXJtYSA8c2hhc2hhbmsuc2hhcm1h QGludGVsLmNvbT4KPiA+ID4gPiBDYzogUmFmYWVsIEFudG9nbm9sbGkgPHJhZmFlbC5hbnRvZ25v bGxpQGludGVsLmNvbT4KPiA+ID4gPiBDYzogTmFubGV5IEcgQ2hlcnkgPG5hbmxleS5nLmNoZXJ5 QGludGVsLmNvbT4KPiA+ID4gPiBDYzogTWF0dCBSb3BlciA8bWF0dGhldy5kLnJvcGVyQGludGVs LmNvbT4KPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBSYWRoYWtyaXNobmEgU3JpcGFkYQo+ID4gPiA+ IDxyYWRoYWtyaXNobmEuc3JpcGFkYUBpbnRlbC5jb20+Cj4gPiA+Cj4gPiA+IEEgZmV3IG1pbm9y IGNvbW1lbnRzIGJlbG93LCBidXQgbm9uZSBvZiB0aGVtIGFyZSBjcml0aWNhbC4KPiA+ID4KPiA+ ID4gUmV2aWV3ZWQtYnk6IE1hdHQgUm9wZXIgPG1hdHRoZXcuZC5yb3BlckBpbnRlbC5jb20+Cj4g PiA+Cj4gPiA+IFdoYXQncyB0aGUgY3VycmVudCBzdGF0dXMgb2YgdGhlIHVuZGVybHlpbmcgY29t cHJlc3Npb24gc2VyaWVzIHRoaXMKPiA+ID4gd29yayBpcyBiYXNlZCBvbj8KPiA+IEkgZGlkIG5v dCBzZWUgYW55IHBhdGNoZXMgZnJvbSBESyBmdXJ0aGVyIG9uIGNvbXByZXNzaW9uIHBhdGNoZXMu IEZyb20KPiA+IG15IHVuZGVyc3RhbmRpbmcgVGhlIHJlbmRlciBjb21wcmVzc2lvbiBwYXRjaGVz IGdvdCByLWIncyBhbmQgdGhlIG1lZGlhCj4gY29tcHJlc3Npb24gcGF0Y2hlcyBuZWVkIGZ1cnRo ZXIgIHJld29yay4KPiA+ID4KPiA+ID4gPiAtLS0KPiA+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMgIHwgNjQgKysrKysrKysrKysrKysrKysrLQo+ID4g PiA+ICAuLi4vZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3R5cGVzLmggICAgfCAgMyAr Cj4gPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfc3ByaXRlLmMgICB8 IDEwICsrLQo+ID4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oICAgICAgICAg ICAgICAgfCAxMiArKysrCj4gPiA+ID4gIDQgZmlsZXMgY2hhbmdlZCwgODYgaW5zZXJ0aW9ucygr KSwgMyBkZWxldGlvbnMoLSkKPiA+ID4gPgo+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYwo+ID4gPiA+IGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMKPiA+ID4gPiBpbmRleCA2YzQyNzRjMTU2 NGQuLjY5ZTcwYmU4NmY1NyAxMDA2NDQKPiA+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYwo+ID4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jCj4gPiA+ID4gQEAgLTE5NzUsNiArMTk3NSwxMCBA QCBpbnRlbF90aWxlX3dpZHRoX2J5dGVzKGNvbnN0IHN0cnVjdAo+ID4gPiBkcm1fZnJhbWVidWZm ZXIgKmZiLCBpbnQgY29sb3JfcGxhbmUpCj4gPiA+ID4gIAkJaWYgKGNvbG9yX3BsYW5lID09IDEp Cj4gPiA+ID4gIAkJCXJldHVybiA2NDsKPiA+ID4gPiAgCQkvKiBmYWxsIHRocm91Z2ggKi8KPiA+ ID4KPiA+ID4gU2luY2UgdGhpcyBvbmUgKEdFTjEyX1JDX0NDUykgbm93IGZhbGxzIHRocm91Z2gg dG8gdGhlIG5ldwo+ID4gPiBHRU4xMl9SQ19DQ1NfQ0MsIHlvdSBjYW4gcHJvYmFibHkgZHJvcCB0 aGVzZSBsaW5lcyBzaW5jZSB0aGV5J2xsIGJlCj4gPiA+IGhhbmRsZWQgdGhlIHNhbWUgd2F5IGlu IHRoZSBuZXh0IGNhc2UgZG93bi4KPiA+IENvbG9yX3BsYW5lID09IDIgZG9lcyBub3QgYXBwbHkg Zm9yIEdFMTJfUkNfQ0NTLiBEbyB5b3UgdGhpbmsgaXQgaXMKPiA+IHN0aWxsIG9rIHRvIGNsdWIg VGhlIHR3byBjYXNlcz8KPiAKPiBSaWdodC4gIEJ1dCBzaW5jZSBpdCBkb2Vzbid0IGFwcGx5LCB5 b3Ugc2hvdWxkIG5ldmVyIGdldCBjYWxsZWQgaGVyZSB3aXRoCj4gY29sb3JfcGxhbmUgPT0gMi4g IElmIHdlIGhhdmUgYSBidWcgc29tZXdoZXJlIGhpZ2hlciB1cCBhbmQgeW91IGRpZCBnZXQgY2Fs bGVkCj4gd2l0aCBhICcyJyBoZXJlLCB5b3UnZCBzdGlsbCBiZSBmb2xsb3dpbmcgdGhlIGV4YWN0 IHNhbWUgbG9naWMgKGZhbGxpbmcgdGhyb3VnaCB0bwo+IHRoZSBDQ1NfQ0MgaGFuZGxlciksIHNv IGtlZXBpbmcgdGhlbSBzZXBhcmF0ZSBkb2Vzbid0IHNlZW0gdG8gcHJvdmlkZSBhbnkKPiBleHRy YSBiZW5lZml0Lgo+IAo+IFRoYXQncyBhbHNvIHBhcnQgb2Ygd2h5IEkgd2FzIGFza2luZyBhYm91 dCB0aGUgaXNfY2NzX3BsYW5lIGhlbHBlciAtLS0gaXQgY291bGQKPiB0YWtlIGNhcmUgb2YgdGVz dGluZyB0aGUgYXBwcm9wcmlhdGUgcGxhbmVzIGZvciBhIG1vZGlmaWVyIGFuZCBhbHNvIGFkZCBh IHdhcm5pbmcKPiBtZXNzYWdlIGlmIHdlIGVuY291bnRlciBhIHBsYW5lIHRoYXQgaXNuJ3Qgc3Vw cG9zZWQgdG8gZXhpc3QgZm9yIHRoZSBtb2RpZmllci4KPiAKU3VyZSB3aWxsIHNpbXBsaWZ5IGlu IG5leHQgcmV2LgoKPiA+ID4KPiA+ID4gPiArCWNhc2UgSTkxNV9GT1JNQVRfTU9EX1lfVElMRURf R0VOMTJfUkNfQ0NTX0NDOgo+ID4gPiA+ICsJCWlmIChjb2xvcl9wbGFuZSA9PSAxIHx8IGNvbG9y X3BsYW5lID09IDIpCj4gPiA+Cj4gPiA+IEkndmUgcmV2aWV3ZWQgYSBsb3Qgb2YgdmVyc2lvbnMg b2YgdGhlc2UgY29tcHJlc3Npb24gc2VyaWVzIHNvIEkKPiA+ID4gbWlnaHQgYmUgZ2V0dGluZyBj b25mdXNlZCwgYnV0IGRpZG4ndCBESyBoYXZlIGEgdmVyc2lvbiBhdCBvbmUgdGltZQo+ID4gPiB0 aGF0IGFkZGVkIHNvbWUga2luZCBvZiBpc19jY3NfcGxhbmUobW9kLCBwbGFuZSkgaGVscGVyIGZ1 bmN0aW9uPwo+ID4gPiBJJ20gbm90IHN1cmUgd2hhdCBoYXBwZW5lZCB0byB0aGF0LCBidXQgaXQg ZGlkIHNlZW0gbGlrZSBhIG5pY2Ugd2F5Cj4gPiA+IHRvIGNvbnNvbGlkYXRlIHRoZSAidGhlc2Ug cGxhbmVzIGNvbnRhaW4gQ0NTIHN0dWZmIiBsb2dpYyByYXRoZXIKPiA+ID4gdGhhbiBoYXZpbmcg dG8gaGFyZGNvZGUgdGhlIHBsYW5lIElEJ3MgYWxsIG92ZXIgdGhlIHBsYWNlIGxpa2UgdGhpcy4K PiA+IFRoZSBpc19jY3NfcGxhbmUgaGVscGVyIGZ1bmN0aW9uIHdhcyBpbnRyb2R1Y2VkIGluIG1l ZGlhICBjb21wcmVzc2lvbgo+ID4gcGF0Y2hlcyBXaGVyZSBmdXJ0aGVyIGNvbXBsZXhpdGllcyB3 ZXJlIHJlcXVpcmVkIHdoaWxlIGNhbGN1bGF0aW5nIHBsYW5lCj4gZGltcy4KPiA+Cj4gPiA+Cj4g PiA+Cj4gPiA+ID4gKwkJCXJldHVybiA2NDsKPiA+ID4gPiArCQkvKiBmYWxsIHRocm91Z2ggKi8K PiA+ID4gPiAgCWNhc2UgSTkxNV9GT1JNQVRfTU9EX1lfVElMRUQ6Cj4gPiA+ID4gIAkJaWYgKElT X0dFTihkZXZfcHJpdiwgMikgfHwgSEFTXzEyOF9CWVRFX1lfVElMSU5HKGRldl9wcml2KSkKPiA+ ID4gPiAgCQkJcmV0dXJuIDEyODsKPiA+ID4gPiBAQCAtMjAxMyw2ICsyMDE3LDEwIEBAIGludGVs X3RpbGVfaGVpZ2h0KGNvbnN0IHN0cnVjdAo+ID4gPiA+IGRybV9mcmFtZWJ1ZmZlcgo+ID4gPiAq ZmIsIGludCBjb2xvcl9wbGFuZSkKPiA+ID4gPiAgCQlpZiAoY29sb3JfcGxhbmUgPT0gMSkKPiA+ ID4gPiAgCQkJcmV0dXJuIDE7Cj4gPiA+ID4gIAkJLyogZmFsbCB0aHJvdWdoICovCj4gPiA+Cj4g PiA+IEFzIGFib3ZlLCB5b3UgY2FuIG5vdyBjb25zb2xpZGF0ZSB0aGlzIHdpdGggdGhlIG5ldyBi bG9jayBiZWxvdyBpZiB5b3UKPiB3YW50Lgo+ID4gPgo+ID4gPiA+ICsJY2FzZSBJOTE1X0ZPUk1B VF9NT0RfWV9USUxFRF9HRU4xMl9SQ19DQ1NfQ0M6Cj4gPiA+ID4gKwkJaWYgKGNvbG9yX3BsYW5l ID09IDEgfHwgY29sb3JfcGxhbmUgPT0gMikKPiA+ID4gPiArCQkJcmV0dXJuIDE7Cj4gPiA+ID4g KwkJLyogZmFsbCB0aHJvdWdoICovCj4gPiA+ID4gIAlkZWZhdWx0Ogo+ID4gPiA+ICAJCXJldHVy biBpbnRlbF90aWxlX3NpemUodG9faTkxNShmYi0+ZGV2KSkgLwo+ID4gPiA+ICAJCQlpbnRlbF90 aWxlX3dpZHRoX2J5dGVzKGZiLCBjb2xvcl9wbGFuZSk7IEBAIC0yMTE2LDYKPiA+ID4gKzIxMjQs NyBAQAo+ID4gPiA+IHN0YXRpYyB1bnNpZ25lZCBpbnQgaW50ZWxfc3VyZl9hbGlnbm1lbnQoY29u c3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsCj4gPiA+ID4gIAkJCXJldHVybiAyNTYgKiAx MDI0Owo+ID4gPiA+ICAJCXJldHVybiAwOwo+ID4gPiA+ICAJY2FzZSBJOTE1X0ZPUk1BVF9NT0Rf WV9USUxFRF9HRU4xMl9SQ19DQ1M6Cj4gPiA+ID4gKwljYXNlIEk5MTVfRk9STUFUX01PRF9ZX1RJ TEVEX0dFTjEyX1JDX0NDU19DQzoKPiA+ID4gPiAgCQlyZXR1cm4gMTYgKiAxMDI0Owo+ID4gPiA+ ICAJY2FzZSBJOTE1X0ZPUk1BVF9NT0RfWV9USUxFRF9DQ1M6Cj4gPiA+ID4gIAljYXNlIEk5MTVf Rk9STUFUX01PRF9ZZl9USUxFRF9DQ1M6Cj4gPiA+ID4gQEAgLTIzMTMsOCArMjMyMiwxNiBAQCBz dGF0aWMgdTMyIGludGVsX2FkanVzdF90aWxlX29mZnNldChpbnQgKngsCj4gPiA+ID4gaW50ICp5 LAo+ID4gPiA+Cj4gPiA+ID4gIHN0YXRpYyBib29sIGlzX3N1cmZhY2VfbGluZWFyKHU2NCBtb2Rp ZmllciwgaW50IGNvbG9yX3BsYW5lKSAgewo+ID4gPiA+IC0JcmV0dXJuIG1vZGlmaWVyID09IERS TV9GT1JNQVRfTU9EX0xJTkVBUiB8fAo+ID4gPiA+IC0JICAgICAgIChtb2RpZmllciA9PSBJOTE1 X0ZPUk1BVF9NT0RfWV9USUxFRF9HRU4xMl9SQ19DQ1MgJiYKPiA+ID4gY29sb3JfcGxhbmUgPT0g MSk7Cj4gPiA+ID4gKwlzd2l0Y2ggKG1vZGlmaWVyKSB7Cj4gPiA+ID4gKwljYXNlIERSTV9GT1JN QVRfTU9EX0xJTkVBUjoKPiA+ID4gPiArCQlyZXR1cm4gdHJ1ZTsKPiA+ID4gPiArCWNhc2UgSTkx NV9GT1JNQVRfTU9EX1lfVElMRURfR0VOMTJfUkNfQ0NTOgo+ID4gPiA+ICsJCXJldHVybiBjb2xv cl9wbGFuZSA9PSAxOwo+ID4gPiA+ICsJY2FzZSBJOTE1X0ZPUk1BVF9NT0RfWV9USUxFRF9HRU4x Ml9SQ19DQ1NfQ0M6Cj4gPiA+ID4gKwkJcmV0dXJuIGNvbG9yX3BsYW5lID09IDEgfHwgY29sb3Jf cGxhbmUgPT0gMjsKPiA+ID4gPiArCWRlZmF1bHQ6Cj4gPiA+ID4gKwkJcmV0dXJuIGZhbHNlOwo+ ID4gPiA+ICsJfQo+ID4gPiA+ICB9Cj4gPiA+ID4KPiA+ID4gPiAgc3RhdGljIHUzMiBpbnRlbF9h ZGp1c3RfYWxpZ25lZF9vZmZzZXQoaW50ICp4LCBpbnQgKnksIEBAIC0yNTAyLDYKPiA+ID4gPiAr MjUxOSw3IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgaW50ZWxfZmJfbW9kaWZpZXJfdG9fdGlsaW5n KHU2NAo+ID4gPiA+ICtmYl9tb2RpZmllcikKPiA+ID4gPiAgCWNhc2UgSTkxNV9GT1JNQVRfTU9E X1lfVElMRUQ6Cj4gPiA+ID4gIAljYXNlIEk5MTVfRk9STUFUX01PRF9ZX1RJTEVEX0NDUzoKPiA+ ID4gPiAgCWNhc2UgSTkxNV9GT1JNQVRfTU9EX1lfVElMRURfR0VOMTJfUkNfQ0NTOgo+ID4gPiA+ ICsJY2FzZSBJOTE1X0ZPUk1BVF9NT0RfWV9USUxFRF9HRU4xMl9SQ19DQ1NfQ0M6Cj4gPiA+ID4g IAkJcmV0dXJuIEk5MTVfVElMSU5HX1k7Cj4gPiA+ID4gIAlkZWZhdWx0Ogo+ID4gPiA+ICAJCXJl dHVybiBJOTE1X1RJTElOR19OT05FOwo+ID4gPiA+IEBAIC0yNTUxLDYgKzI1NjksMjEgQEAgc3Rh dGljIGNvbnN0IHN0cnVjdCBkcm1fZm9ybWF0X2luZm8KPiA+ID4gZ2VuMTJfY2NzX2Zvcm1hdHNb XSA9IHsKPiA+ID4gPiAgCSAgLmNwcCA9IHsgNCwgMSwgfSwgLmhzdWIgPSAyLCAudnN1YiA9IDMy LCAuaGFzX2FscGhhID0gdHJ1ZSB9LAo+ID4gPiA+IH07Cj4gPiA+ID4KPiA+ID4gPiArLyoKPiA+ ID4gPiArICogU2FtZSBhcyBnZW4xMl9jY3NfZm9ybWF0c1tdIGFib3ZlLCBidXQgd2l0aCBhZGRp dGlvbmFsIHN1cmZhY2UKPiA+ID4gPiArdXNlZAo+ID4gPiA+ICsgKiB0byBwYXNzIENsZWFyIENv bG9yIGluZm9ybWF0aW9uIGluIHBsYW5lIDIgd2l0aCA2NCBiaXRzIG9mIGRhdGEuCj4gPiA+ID4g KyAqLwo+ID4gPiA+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9mb3JtYXRfaW5mbyBnZW4xMl9j Y3NfY2NfZm9ybWF0c1tdID0gewo+ID4gPiA+ICsJeyAuZm9ybWF0ID0gRFJNX0ZPUk1BVF9YUkdC ODg4OCwgLmRlcHRoID0gMjQsIC5udW1fcGxhbmVzID0gMywKPiA+ID4gPiArCSAgLmNwcCA9IHsg NCwgMSwgMCwgfSwgLmhzdWIgPSAyLCAudnN1YiA9IDMyLCB9LAo+ID4gPiA+ICsJeyAuZm9ybWF0 ID0gRFJNX0ZPUk1BVF9YQkdSODg4OCwgLmRlcHRoID0gMjQsIC5udW1fcGxhbmVzID0gMywKPiA+ ID4gPiArCSAgLmNwcCA9IHsgNCwgMSwgMCwgfSwgLmhzdWIgPSAyLCAudnN1YiA9IDMyLCB9LAo+ ID4gPiA+ICsJeyAuZm9ybWF0ID0gRFJNX0ZPUk1BVF9BUkdCODg4OCwgLmRlcHRoID0gMzIsIC5u dW1fcGxhbmVzID0gMywKPiA+ID4gPiArCSAgLmNwcCA9IHsgNCwgMSwgMCwgfSwgLmhzdWIgPSAy LCAudnN1YiA9IDMyLCAuaGFzX2FscGhhID0gdHJ1ZSB9LAo+ID4gPiA+ICsJeyAuZm9ybWF0ID0g RFJNX0ZPUk1BVF9BQkdSODg4OCwgLmRlcHRoID0gMzIsIC5udW1fcGxhbmVzID0gMywKPiA+ID4g PiArCSAgLmNwcCA9IHsgNCwgMSwgMCwgfSwgLmhzdWIgPSAyLCAudnN1YiA9IDMyLCAuaGFzX2Fs cGhhID0gdHJ1ZQo+ID4gPiA+ICt9LCB9Owo+ID4gPiA+ICsKPiA+ID4gPiAgc3RhdGljIGNvbnN0 IHN0cnVjdCBkcm1fZm9ybWF0X2luZm8gKiAgbG9va3VwX2Zvcm1hdF9pbmZvKGNvbnN0Cj4gPiA+ ID4gc3RydWN0IGRybV9mb3JtYXRfaW5mbyBmb3JtYXRzW10sCj4gPiA+ID4gIAkJICAgaW50IG51 bV9mb3JtYXRzLCB1MzIgZm9ybWF0KSBAQCAtMjU3OCw2ICsyNjExLDEwIEBACj4gPiA+ID4gaW50 ZWxfZ2V0X2Zvcm1hdF9pbmZvKGNvbnN0IHN0cnVjdAo+ID4gPiBkcm1fbW9kZV9mYl9jbWQyICpj bWQpCj4gPiA+ID4gIAkJcmV0dXJuIGxvb2t1cF9mb3JtYXRfaW5mbyhnZW4xMl9jY3NfZm9ybWF0 cywKPiA+ID4gPiAgCQkJCQkgIEFSUkFZX1NJWkUoZ2VuMTJfY2NzX2Zvcm1hdHMpLAo+ID4gPiA+ ICAJCQkJCSAgY21kLT5waXhlbF9mb3JtYXQpOwo+ID4gPiA+ICsJY2FzZSBJOTE1X0ZPUk1BVF9N T0RfWV9USUxFRF9HRU4xMl9SQ19DQ1NfQ0M6Cj4gPiA+ID4gKwkJcmV0dXJuIGxvb2t1cF9mb3Jt YXRfaW5mbyhnZW4xMl9jY3NfY2NfZm9ybWF0cywKPiA+ID4gPiArCQkJCQkgIEFSUkFZX1NJWkUo Z2VuMTJfY2NzX2NjX2Zvcm1hdHMpLAo+ID4gPiA+ICsJCQkJCSAgY21kLT5waXhlbF9mb3JtYXQp Owo+ID4gPiA+ICAJZGVmYXVsdDoKPiA+ID4gPiAgCQlyZXR1cm4gTlVMTDsKPiA+ID4gPiAgCX0K PiA+ID4gPiBAQCAtMjU4Niw2ICsyNjIzLDcgQEAgaW50ZWxfZ2V0X2Zvcm1hdF9pbmZvKGNvbnN0 IHN0cnVjdAo+ID4gPiA+IGRybV9tb2RlX2ZiX2NtZDIgKmNtZCkgIGJvb2wgaXNfY2NzX21vZGlm aWVyKHU2NCBtb2RpZmllcikgIHsKPiA+ID4gPiAgCXJldHVybiBtb2RpZmllciA9PSBJOTE1X0ZP Uk1BVF9NT0RfWV9USUxFRF9HRU4xMl9SQ19DQ1MgfHwKPiA+ID4gPiArCSAgICAgICBtb2RpZmll ciA9PSBJOTE1X0ZPUk1BVF9NT0RfWV9USUxFRF9HRU4xMl9SQ19DQ1NfQ0MgfHwKPiA+ID4gPiAg CSAgICAgICBtb2RpZmllciA9PSBJOTE1X0ZPUk1BVF9NT0RfWV9USUxFRF9DQ1MgfHwKPiA+ID4g PiAgCSAgICAgICBtb2RpZmllciA9PSBJOTE1X0ZPUk1BVF9NT0RfWWZfVElMRURfQ0NTOyAgfSBA QCAtMjc5OCw2Cj4gPiA+ID4gKzI4MzYsMTggQEAgaW50ZWxfZmlsbF9mYl9pbmZvKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+ID4gPiAgCQlpbnQgeCwgeTsKPiA+ID4gPiAg CQlpbnQgcmV0Owo+ID4gPiA+Cj4gPiA+ID4gKwkJLyoKPiA+ID4gPiArCQkgKiBQbGFuZSAyIG9m IFJlbmRlciBDb21wcmVzc2lvbiB3aXRoIENsZWFyIENvbG9yIGZiIG1vZGlmaWVyCj4gPiA+ID4g KwkJICogaXMgY29uc3VtZWQgYnkgdGhlIGRyaXZlciBhbmQgbm90IHBhc3NlZCB0byBERS4gU2tp cCB0aGUKPiA+ID4gPiArCQkgKiBhcml0aG1ldGljIHJlbGF0ZWQgdG8gYWxpZ25tZW50IGFuZCBv ZmZzZXQgY2FsY3VsYXRpb24uCj4gPiA+ID4gKwkJICovCj4gPiA+ID4gKwkJaWYgKGkgPT0gMiAm JiBmYi0+bW9kaWZpZXIgPT0KPiA+ID4gPiArSTkxNV9GT1JNQVRfTU9EX1lfVElMRURfR0VOMTJf UkNfQ0NTX0NDKSB7Cj4gPiA+Cj4gPiA+IFRoaXMgbGluZSBzaG91bGQgYmUgd3JhcHBlZC4KPiA+ IFN1cmUgd2lsbCBpbmNsdWRlIGluIGZpbmFsIHJldi4KPiA+ID4KPiA+ID4gPiArCQkJaWYgKElT X0FMSUdORUQoZmItPm9mZnNldHNbMl0sIFBBR0VfU0laRSkpCj4gPiA+ID4gKwkJCQljb250aW51 ZTsKPiA+ID4gPiArCQkJZWxzZQo+ID4gPiA+ICsJCQkJcmV0dXJuIC1FSU5WQUw7Cj4gPiA+ID4g KwkJfQo+ID4gPiA+ICsKPiA+ID4gPiAgCQljcHAgPSBmYi0+Zm9ybWF0LT5jcHBbaV07Cj4gPiA+ ID4gIAkJd2lkdGggPSBkcm1fZnJhbWVidWZmZXJfcGxhbmVfd2lkdGgoZmItPndpZHRoLCBmYiwg aSk7Cj4gPiA+ID4gIAkJaGVpZ2h0ID0gZHJtX2ZyYW1lYnVmZmVyX3BsYW5lX2hlaWdodChmYi0+ aGVpZ2h0LCBmYiwgaSk7IEBACj4gPiA+ID4gLTQyOTUsNiArNDM0NSw3IEBAIHN0YXRpYyB1MzIg c2tsX3BsYW5lX2N0bF90aWxpbmcodTY0IGZiX21vZGlmaWVyKQo+ID4gPiA+ICAJY2FzZSBJOTE1 X0ZPUk1BVF9NT0RfWV9USUxFRDoKPiA+ID4gPiAgCQlyZXR1cm4gUExBTkVfQ1RMX1RJTEVEX1k7 Cj4gPiA+ID4gIAljYXNlIEk5MTVfRk9STUFUX01PRF9ZX1RJTEVEX0NDUzoKPiA+ID4gPiArCWNh c2UgSTkxNV9GT1JNQVRfTU9EX1lfVElMRURfR0VOMTJfUkNfQ0NTX0NDOgo+ID4gPiA+ICAJCXJl dHVybiBQTEFORV9DVExfVElMRURfWSB8Cj4gPiA+IFBMQU5FX0NUTF9SRU5ERVJfREVDT01QUkVT U0lPTl9FTkFCTEU7Cj4gPiA+ID4gIAljYXNlIEk5MTVfRk9STUFUX01PRF9ZX1RJTEVEX0dFTjEy X1JDX0NDUzoKPiA+ID4gPiAgCQlyZXR1cm4gUExBTkVfQ1RMX1RJTEVEX1kgfAo+ID4gPiA+IEBA IC0xNTI0NSw2ICsxNTI5NiwxNSBAQCBzdGF0aWMgaW50IGludGVsX3BsYW5lX3Bpbl9mYihzdHJ1 Y3QKPiA+ID4gPiBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpCj4gPiA+ID4KPiA+ID4g PiAgCXBsYW5lX3N0YXRlLT52bWEgPSB2bWE7Cj4gPiA+ID4KPiA+ID4gPiArCWlmIChmYi0+bW9k aWZpZXIgPT0gSTkxNV9GT1JNQVRfTU9EX1lfVElMRURfR0VOMTJfUkNfQ0NTX0NDKSB7Cj4gPiA+ ID4gKwkJdTMyICpjY2FkZHIgPQo+ID4gPiBrbWFwX2F0b21pYyhpOTE1X2dlbV9vYmplY3RfZ2V0 X3BhZ2UoaW50ZWxfZmJfb2JqKGZiKSwKPiA+ID4gPiArCQkJCQkJCQkgIGZiLQo+ID4gPiA+b2Zm c2V0c1syXSA+PiBQQUdFX1NISUZUKSk7Cj4gPiA+ID4gKwo+ID4gPiA+ICsJCXBsYW5lX3N0YXRl LT5jY3ZhbCA9ICgodTY0KSooY2NhZGRyICsgQ0NfVkFMX0hJR0hFUl9PRkZTRVQpCj4gPiA+IDw8 IDMyKQo+ID4gPiA+ICsJCQkJICAgICB8ICooY2NhZGRyICsgQ0NfVkFMX0xPV0VSX09GRlNFVCk7 Cj4gPiA+Cj4gPiA+IElzbid0IHRoaXMganVzdCB0aGUgc2FtZSB0aGluZyBhcwo+ID4gPgo+ID4g PiAgICAgICAgIHU2NCAqY2NhZGRyID0ga21hcF9hdG9taWMoLi4uKTsKPiA+ID4gICAgICAgICBw bGFuZV9zdGF0ZS0+Y2N2YWwgPSBjY2FkZHJbMl07Cj4gPiA+Cj4gPiA+ID8KPiA+IEkgdGhpbmsg aXQgaXMgY2N2YWwgPSBjY2FkZHJbNV0gPDwgMzIgfCBjY2FkZHJbNF0/Cj4gPiBJcyB0aGlzIHBy ZWZlcnJlZD8KPiAKPiBHaXZlbiB0aGF0IHdlJ3JlIGxpdHRsZS1lbmRpYW4sIGJvdGggc2hvdWxk IGJlIGVxdWl2YWxlbnQsIHJpZ2h0PyAgSS5lLiwgaWYgeW91IHRyZWF0Cj4gdGhlIHBvaW50ZXIg YXMgdTY0KiwgdGhlbiBjY2FkZHJbMl0gZ2l2ZXMgeW91IHRoZSB3aG9sZSB2YWx1ZSBhdCBvbmNl IHdpdGggbm8KPiBiaXQgbWFuaXB1bGF0aW9uLiAgSWYgeW91IHRyZWF0IGl0IGFzIHUzMiosIHRo ZW4geW91IG5lZWQgdG8gZ3JhYiBib3RoIHdvcmRzIGFuZAo+IHNoaWZ0IHRoZW0gaW50byBwb3Np dGlvbiBhbmQgT1IgdGhlbSBhcyB5b3UgZG8gaGVyZS4KPiAKPiBJIGRvbid0IHRoaW5rIGl0IHJl YWxseSBtYXR0ZXJzIHRvbyBtdWNoLiAgSSB3YXMganVzdCBzdWdnZXN0aW5nIHNvbWV0aGluZyB0 aGF0Cj4gbWlnaHQgYmUgc2xpZ2h0bHkgc2hvcnRlciBhbmQgZWFzaWVyIHRvIHJlYWQuCkFoIHU2 NCogeWVzLiBCdXQgSSBwcmVmZXIga2VlcGluZyBpdCBleHBsaWNpdCBzbyBhcyB0byBjbGVhcmx5 IGlkZW50aWZ5IHRoZSBoaWdoZXIgYW5kCmxvd2VyIG9mZnNldHMgaW4gY2FzZSBzb21lb25lIHdh bnRzIHRvIHVzZSB0aGlzIGZ1cnRoZXIgYWxzbyBleHBsYWlucyB0aGUgZGlmZmVyZW50CmZpZWxk cyBkZXNjcmliZWQgaW4gdGhlIGRvY3VtZW50YXRpb24gc2VjdGlvbiBvZiB0aGUgcHJldmlvdXMg cGF0Y2guCgpSSwo+IAo+IAo+IE1hdHQKPiAKPiA+Cj4gPiBUaGFua3MsCj4gPiBSYWRoYWtyaXNo bmEoUkspIFNyaXBhZGEKPiA+ID4KPiA+ID4gPiArCQlrdW5tYXBfYXRvbWljKGNjYWRkcik7Cj4g PiA+ID4gKwl9Cj4gPiA+ID4gKwo+ID4gPiA+ICAJcmV0dXJuIDA7Cj4gPiA+ID4gIH0KPiA+ID4g Pgo+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVs X2Rpc3BsYXlfdHlwZXMuaAo+ID4gPiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9p bnRlbF9kaXNwbGF5X3R5cGVzLmgKPiA+ID4gPiBpbmRleCA4M2VhMDQxNDliNzcuLmUxYmQxODEy MmNlNiAxMDA2NDQKPiA+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX2Rpc3BsYXlfdHlwZXMuaAo+ID4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rp c3BsYXkvaW50ZWxfZGlzcGxheV90eXBlcy5oCj4gPiA+ID4gQEAgLTYwNyw2ICs2MDcsOSBAQCBz dHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgewo+ID4gPiA+ICAJdTMyIHBsYW5hcl9zbGF2ZTsKPiA+ ID4gPgo+ID4gPiA+ICAJc3RydWN0IGRybV9pbnRlbF9zcHJpdGVfY29sb3JrZXkgY2tleTsKPiA+ ID4gPiArCj4gPiA+ID4gKwkvKiBDbGVhciBDb2xvciBWYWx1ZSAqLwo+ID4gPiA+ICsJdTY0IGNj dmFsOwo+ID4gPiA+ICB9Owo+ID4gPiA+Cj4gPiA+ID4gIHN0cnVjdCBpbnRlbF9pbml0aWFsX3Bs YW5lX2NvbmZpZyB7IGRpZmYgLS1naXQKPiA+ID4gPiBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rp c3BsYXkvaW50ZWxfc3ByaXRlLmMKPiA+ID4gPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3Bs YXkvaW50ZWxfc3ByaXRlLmMKPiA+ID4gPiBpbmRleCA2N2E5MDA1OTkwMGYuLjg5ZjdmYmM4N2Fk OSAxMDA2NDQKPiA+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVs X3Nwcml0ZS5jCj4gPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRl bF9zcHJpdGUuYwo+ID4gPiA+IEBAIC01OTcsNiArNTk3LDcgQEAgc2tsX3Byb2dyYW1fcGxhbmUo c3RydWN0IGludGVsX3BsYW5lICpwbGFuZSwKPiA+ID4gPiAgCXVuc2lnbmVkIGxvbmcgaXJxZmxh Z3M7Cj4gPiA+ID4gIAl1MzIga2V5bXNrLCBrZXltYXg7Cj4gPiA+ID4gIAl1MzIgcGxhbmVfY3Rs ID0gcGxhbmVfc3RhdGUtPmN0bDsKPiA+ID4gPiArCXU2NCBjY3ZhbCA9IHBsYW5lX3N0YXRlLT5j Y3ZhbDsKPiA+ID4gPgo+ID4gPiA+ICAJcGxhbmVfY3RsIHw9IHNrbF9wbGFuZV9jdGxfY3J0Yyhj cnRjX3N0YXRlKTsKPiA+ID4gPgo+ID4gPiA+IEBAIC02MzksNiArNjQwLDEwIEBAIHNrbF9wcm9n cmFtX3BsYW5lKHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUsCj4gPiA+ID4gIAlpZiAoZmItPmZv cm1hdC0+aXNfeXV2ICYmIGljbF9pc19oZHJfcGxhbmUoZGV2X3ByaXYsIHBsYW5lX2lkKSkKPiA+ ID4gPiAgCQlpY2xfcHJvZ3JhbV9pbnB1dF9jc2MocGxhbmUsIGNydGNfc3RhdGUsIHBsYW5lX3N0 YXRlKTsKPiA+ID4gPgo+ID4gPiA+ICsJaWYgKGZiLT5tb2RpZmllciA9PSBJOTE1X0ZPUk1BVF9N T0RfWV9USUxFRF9HRU4xMl9SQ19DQ1NfQ0MpCj4gPiA+ID4gKwkJaW50ZWxfdW5jb3JlX3dyaXRl NjRfZncoJmRldl9wcml2LT51bmNvcmUsCj4gPiA+ID4gKwkJCQkJUExBTkVfQ0NfVkFMKHBpcGUs IHBsYW5lX2lkKSwgY2N2YWwpOwo+ID4gPiA+ICsKPiA+ID4gPiAgCXNrbF93cml0ZV9wbGFuZV93 bShwbGFuZSwgY3J0Y19zdGF0ZSk7Cj4gPiA+ID4KPiA+ID4gPiAgCUk5MTVfV1JJVEVfRlcoUExB TkVfS0VZVkFMKHBpcGUsIHBsYW5lX2lkKSwga2V5LT5taW5fdmFsdWUpOyBAQAo+ID4gPiA+IC0y MTA2LDcgKzIxMTEsOCBAQCBzdGF0aWMgaW50IHNrbF9wbGFuZV9jaGVja19mYihjb25zdCBzdHJ1 Y3QKPiA+ID4gaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiA+ID4gPiAgCSAgICAgZmIt Pm1vZGlmaWVyID09IEk5MTVfRk9STUFUX01PRF9ZZl9USUxFRCB8fAo+ID4gPiA+ICAJICAgICBm Yi0+bW9kaWZpZXIgPT0gSTkxNV9GT1JNQVRfTU9EX1lfVElMRURfQ0NTIHx8Cj4gPiA+ID4gIAkg ICAgIGZiLT5tb2RpZmllciA9PSBJOTE1X0ZPUk1BVF9NT0RfWWZfVElMRURfQ0NTIHx8Cj4gPiA+ ID4gLQkgICAgIGZiLT5tb2RpZmllciA9PSBJOTE1X0ZPUk1BVF9NT0RfWV9USUxFRF9HRU4xMl9S Q19DQ1MpKSB7Cj4gPiA+ID4gKwkgICAgIGZiLT5tb2RpZmllciA9PSBJOTE1X0ZPUk1BVF9NT0Rf WV9USUxFRF9HRU4xMl9SQ19DQ1MgfHwKPiA+ID4gPiArCSAgICAgZmItPm1vZGlmaWVyID09IEk5 MTVfRk9STUFUX01PRF9ZX1RJTEVEX0dFTjEyX1JDX0NDU19DQykpCj4gPiA+IHsKPiA+ID4gPiAg CQlEUk1fREVCVUdfS01TKCJZL1lmIHRpbGluZyBub3Qgc3VwcG9ydGVkIGluIElGLUlEIG1vZGVc biIpOwo+ID4gPiA+ICAJCXJldHVybiAtRUlOVkFMOwo+ID4gPiA+ICAJfQo+ID4gPiA+IEBAIC0y NTc5LDYgKzI1ODUsNyBAQCBzdGF0aWMgY29uc3QgdTY0Cj4gPiA+ID4gc2tsX3BsYW5lX2Zvcm1h dF9tb2RpZmllcnNfY2NzW10gPSB7Cj4gPiA+ID4KPiA+ID4gPiAgc3RhdGljIGNvbnN0IHU2NCBn ZW4xMl9wbGFuZV9mb3JtYXRfbW9kaWZpZXJzX2Njc1tdID0gewo+ID4gPiA+ICAJSTkxNV9GT1JN QVRfTU9EX1lfVElMRURfR0VOMTJfUkNfQ0NTLAo+ID4gPiA+ICsJSTkxNV9GT1JNQVRfTU9EX1lf VElMRURfR0VOMTJfUkNfQ0NTX0NDLAo+ID4gPiA+ICAJSTkxNV9GT1JNQVRfTU9EX1lfVElMRUQs Cj4gPiA+ID4gIAlJOTE1X0ZPUk1BVF9NT0RfWF9USUxFRCwKPiA+ID4gPiAgCURSTV9GT1JNQVRf TU9EX0xJTkVBUiwKPiA+ID4gPiBAQCAtMjc1MCw2ICsyNzU3LDcgQEAgc3RhdGljIGJvb2wKPiA+ ID4gZ2VuMTJfcGxhbmVfZm9ybWF0X21vZF9zdXBwb3J0ZWQoc3RydWN0IGRybV9wbGFuZSAqX3Bs YW5lLAo+ID4gPiA+ICAJY2FzZSBJOTE1X0ZPUk1BVF9NT0RfWF9USUxFRDoKPiA+ID4gPiAgCWNh c2UgSTkxNV9GT1JNQVRfTU9EX1lfVElMRUQ6Cj4gPiA+ID4gIAljYXNlIEk5MTVfRk9STUFUX01P RF9ZX1RJTEVEX0dFTjEyX1JDX0NDUzoKPiA+ID4gPiArCWNhc2UgSTkxNV9GT1JNQVRfTU9EX1lf VElMRURfR0VOMTJfUkNfQ0NTX0NDOgo+ID4gPiA+ICAJCWJyZWFrOwo+ID4gPiA+ICAJZGVmYXVs dDoKPiA+ID4gPiAgCQlyZXR1cm4gZmFsc2U7Cj4gPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiA+ID4gPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfcmVnLmggaW5kZXggMmU0NDRhMThlZDBiLi40YTY4M2RiMjY3YzEKPiA+ID4gPiAxMDA2NDQK PiA+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gPiA+ID4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+ID4gPiA+IEBAIC02ODQwLDYgKzY4 NDAsOCBAQCBlbnVtIHsKPiA+ID4gPiAgI2RlZmluZSBfUExBTkVfS0VZTUFYXzFfQQkJCTB4NzAx YTAKPiA+ID4gPiAgI2RlZmluZSBfUExBTkVfS0VZTUFYXzJfQQkJCTB4NzAyYTAKPiA+ID4gPiAg I2RlZmluZSAgUExBTkVfS0VZTUFYX0FMUEhBKGEpCQkJKChhKSA8PCAyNCkKPiA+ID4gPiArI2Rl ZmluZSBfUExBTkVfQ0NfVkFMXzFfQQkJCTB4NzAxYjQKPiA+ID4gPiArI2RlZmluZSBfUExBTkVf Q0NfVkFMXzJfQQkJCTB4NzAyYjQKPiA+ID4gPiAgI2RlZmluZSBfUExBTkVfQVVYX0RJU1RfMV9B CQkJMHg3MDFjMAo+ID4gPiA+ICAjZGVmaW5lIF9QTEFORV9BVVhfRElTVF8yX0EJCQkweDcwMmMw Cj4gPiA+ID4gICNkZWZpbmUgX1BMQU5FX0FVWF9PRkZTRVRfMV9BCQkJMHg3MDFjNAo+ID4gPiA+ IEBAIC02ODc5LDYgKzY4ODEsMTYgQEAgZW51bSB7Cj4gPiA+ID4gICNkZWZpbmUgX1BMQU5FX05W MTJfQlVGX0NGR18xX0EJCTB4NzAyNzgKPiA+ID4gPiAgI2RlZmluZSBfUExBTkVfTlYxMl9CVUZf Q0ZHXzJfQQkJMHg3MDM3OAo+ID4gPiA+Cj4gPiA+ID4gKyNkZWZpbmUgX1BMQU5FX0NDX1ZBTF8x X0IJCQkweDcxMWI0Cj4gPiA+ID4gKyNkZWZpbmUgX1BMQU5FX0NDX1ZBTF8yX0IJCQkweDcxMmI0 Cj4gPiA+ID4gKyNkZWZpbmUgX1BMQU5FX0NDX1ZBTF8xKHBpcGUpCV9QSVBFKHBpcGUsIF9QTEFO RV9DQ19WQUxfMV9BLAo+ID4gPiBfUExBTkVfQ0NfVkFMXzFfQikKPiA+ID4gPiArI2RlZmluZSBf UExBTkVfQ0NfVkFMXzIocGlwZSkJX1BJUEUocGlwZSwgX1BMQU5FX0NDX1ZBTF8yX0EsCj4gPiA+ IF9QTEFORV9DQ19WQUxfMl9CKQo+ID4gPiA+ICsjZGVmaW5lIFBMQU5FX0NDX1ZBTChwaXBlLCBw bGFuZSkJXAo+ID4gPiA+ICsJX01NSU9fUExBTkUocGxhbmUsIF9QTEFORV9DQ19WQUxfMShwaXBl KSwKPiA+ID4gX1BMQU5FX0NDX1ZBTF8yKHBpcGUpKQo+ID4gPiA+ICsKPiA+ID4gPiArI2RlZmlu ZSBDQ19WQUxfTE9XRVJfT0ZGU0VUCQk0Cj4gPiA+ID4gKyNkZWZpbmUgQ0NfVkFMX0hJR0hFUl9P RkZTRVQJCTUKPiA+ID4gPiArCj4gPiA+ID4gIC8qIElucHV0IENTQyBSZWdpc3RlciBEZWZpbml0 aW9ucyAqLwo+ID4gPiA+ICAjZGVmaW5lIF9QTEFORV9JTlBVVF9DU0NfUllfR1lfMV9BCTB4NzAx RTAKPiA+ID4gPiAgI2RlZmluZSBfUExBTkVfSU5QVVRfQ1NDX1JZX0dZXzJfQQkweDcwMkUwCj4g PiA+ID4gLS0KPiA+ID4gPiAyLjIwLjEKPiA+ID4gPgo+ID4gPgo+ID4gPiAtLQo+ID4gPiBNYXR0 IFJvcGVyCj4gPiA+IEdyYXBoaWNzIFNvZnR3YXJlIEVuZ2luZWVyCj4gPiA+IFZUVC1PU0dDIFBs YXRmb3JtIEVuYWJsZW1lbnQKPiA+ID4gSW50ZWwgQ29ycG9yYXRpb24KPiA+ID4gKDkxNikgMzU2 LTI3OTUKPiAKPiAtLQo+IE1hdHQgUm9wZXIKPiBHcmFwaGljcyBTb2Z0d2FyZSBFbmdpbmVlcgo+ IFZUVC1PU0dDIFBsYXRmb3JtIEVuYWJsZW1lbnQKPiBJbnRlbCBDb3Jwb3JhdGlvbgo+ICg5MTYp IDM1Ni0yNzk1Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA==