From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 08/13] drm/i915: Populate gamma_mode for all platforms Date: Wed, 16 Jan 2019 21:51:01 +0200 Message-ID: <20190116195101.GW20097@intel.com> References: <20190111170823.4441-1-ville.syrjala@linux.intel.com> <20190111170823.4441-9-ville.syrjala@linux.intel.com> <20190116183156.GI4563@mdroper-desk.amr.corp.intel.com> <20190116185804.GT20097@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id E9FAC6E1B8 for ; Wed, 16 Jan 2019 19:51:04 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20190116185804.GT20097@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Matt Roper Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBKYW4gMTYsIDIwMTkgYXQgMDg6NTg6MDRQTSArMDIwMCwgVmlsbGUgU3lyasOkbMOk IHdyb3RlOgo+IE9uIFdlZCwgSmFuIDE2LCAyMDE5IGF0IDEwOjMxOjU2QU0gLTA4MDAsIE1hdHQg Um9wZXIgd3JvdGU6Cj4gPiBPbiBGcmksIEphbiAxMSwgMjAxOSBhdCAwNzowODoxOFBNICswMjAw LCBWaWxsZSBTeXJqYWxhIHdyb3RlOgo+ID4gPiBGcm9tOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxl LnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+ID4gPiAKPiA+ID4gT24gcHJlLUhTVyBnYW1tYSBt b2RlIGlzIGNvbmZpZ3VyZWQgdmlhIFBJUEVDT05GLiBUaGUgYml0cyBhcmUKPiA+ID4gdGhlIHNh bWUgZXhjZXB0IHNoaWZ0ZWQgdXAsIHNvIHdlIGNhbiByZXVzZSBqdXN0IHN0b3JlIHRoZW0gaW4K PiA+ID4gY3J0Y19zdGF0ZS0+Z2FtbWFfbW9kZSBpbiB0aGUgSFNXKyB3YXksIGFsbG93aW5nIHVz IHRvIHNoYXJlCj4gPiA+IHNvbWUgY29kZSBsYXRlci4KPiA+ID4gCj4gPiA+IFNpZ25lZC1vZmYt Ynk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gPiA+ IC0tLQo+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCAgICAgIHwgMTAgKysr Ky0KPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NvbG9yLmMgICB8IDYwICsrKysr KysrKysrKysrKysrKysrKy0tLS0tLS0KPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rpc3BsYXkuYyB8IDE0ICsrKysrKy0KPiA+ID4gIDMgZmlsZXMgY2hhbmdlZCwgNjYgaW5zZXJ0 aW9ucygrKSwgMTggZGVsZXRpb25zKC0pCj4gPiA+IAo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVn LmgKPiA+ID4gaW5kZXggNDQ5NThkOTk0YmZhLi45ZDE3YmExOTliZTQgMTAwNjQ0Cj4gPiA+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiA+ID4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+ID4gPiBAQCAtNTU3OCw5ICs1NTc4LDE1IEBAIGVudW0g ewo+ID4gPiAgI2RlZmluZSAgIFBJUEVDT05GX1NJTkdMRV9XSURFCTAKPiA+ID4gICNkZWZpbmUg ICBQSVBFQ09ORl9QSVBFX1VOTE9DS0VEIDAKPiA+ID4gICNkZWZpbmUgICBQSVBFQ09ORl9QSVBF X0xPQ0tFRAkoMSA8PCAyNSkKPiA+ID4gLSNkZWZpbmUgICBQSVBFQ09ORl9QQUxFVFRFCTAKPiA+ ID4gLSNkZWZpbmUgICBQSVBFQ09ORl9HQU1NQQkJKDEgPDwgMjQpCj4gPiA+ICAjZGVmaW5lICAg UElQRUNPTkZfRk9SQ0VfQk9SREVSCSgxIDw8IDI1KQo+ID4gPiArI2RlZmluZSAgIFBJUEVDT05G X0dBTU1BX01PREVfTUFTS19JOVhYCSgxIDw8IDI0KSAvKiBnbWNoICovCj4gPiA+ICsjZGVmaW5l ICAgUElQRUNPTkZfR0FNTUFfTU9ERV9NQVNLX0lMSwkoMyA8PCAyNCkgLyogaWxrLWl2YiAqLwo+ ID4gPiArI2RlZmluZSAgIFBJUEVDT05GX0dBTU1BX01PREVfOEJJVAkoMCA8PCAyNCkgLyogZ21j aCxpbGstaXZiICovCj4gPiA+ICsjZGVmaW5lICAgUElQRUNPTkZfR0FNTUFfTU9ERV8xMEJJVAko MSA8PCAyNCkgLyogZ21jaCxpbGstaXZiICovCj4gPiA+ICsjZGVmaW5lICAgUElQRUNPTkZfR0FN TUFfTU9ERV8xMkJJVAkoMiA8PCAyNCkgLyogaWxrLWl2YiAqLwo+ID4gPiArI2RlZmluZSAgIFBJ UEVDT05GX0dBTU1BX01PREVfU1BMSVQJKDMgPDwgMjQpIC8qIGl2YiAqLwo+ID4gPiArI2RlZmlu ZSAgIFBJUEVDT05GX0dBTU1BX01PREUoeCkJKCh4KTw8MjQpIC8qIHBhc3MgaW4gR0FNTUFfTU9E RV9NT0RFXyogKi8KPiA+ID4gKyNkZWZpbmUgICBQSVBFQ09ORl9HQU1NQV9NT0RFX1NISUZUCTI0 Cj4gPiA+ICAjZGVmaW5lICAgUElQRUNPTkZfSU5URVJMQUNFX01BU0sJKDcgPDwgMjEpCj4gPiA+ ICAjZGVmaW5lICAgUElQRUNPTkZfSU5URVJMQUNFX01BU0tfSFNXCSgzIDw8IDIxKQo+ID4gPiAg LyogTm90ZSB0aGF0IHByZS1nZW4zIGRvZXMgbm90IHN1cHBvcnQgaW50ZXJsYWNlZCBkaXNwbGF5 IGRpcmVjdGx5LiBQYW5lbAo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfY29sb3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NvbG9yLmMKPiA+ID4g aW5kZXggMGMwZGE3ZWQwZmQ3Li42ZmRiZmE4YzQwMDggMTAwNjQ0Cj4gPiA+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2NvbG9yLmMKPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfY29sb3IuYwo+ID4gPiBAQCAtMzUxLDYgKzM1MSwzMiBAQCBzdGF0aWMgdm9p ZCBpOXh4X2xvYWRfbHV0cyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0 ZSkKPiA+ID4gIAlpOXh4X2xvYWRfbHV0c19pbnRlcm5hbChjcnRjX3N0YXRlLCBjcnRjX3N0YXRl LT5iYXNlLmdhbW1hX2x1dCk7Cj4gPiA+ICB9Cj4gPiA+ICAKPiA+ID4gK3N0YXRpYyB2b2lkIGk5 eHhfY29sb3JfY29tbWl0KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRl KQo+ID4gPiArewo+ID4gPiArCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0 YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwo+ID4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwo+ID4gPiArCWVudW0gcGlwZSBw aXBlID0gY3J0Yy0+cGlwZTsKPiA+ID4gKwl1MzIgdmFsOwo+ID4gPiArCj4gPiA+ICsJdmFsID0g STkxNV9SRUFEKFBJUEVDT05GKHBpcGUpKTsKPiA+ID4gKwl2YWwgJj0gflBJUEVDT05GX0dBTU1B X01PREVfTUFTS19JOVhYOwo+ID4gPiArCXZhbCB8PSBQSVBFQ09ORl9HQU1NQV9NT0RFKGNydGNf c3RhdGUtPmdhbW1hX21vZGUpOwo+ID4gPiArCUk5MTVfV1JJVEUoUElQRUNPTkYocGlwZSksIHZh bCk7Cj4gPiA+ICt9Cj4gPiA+ICsKPiA+ID4gK3N0YXRpYyB2b2lkIGlsa19jb2xvcl9jb21taXQo Y29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gPiA+ICt7Cj4gPiA+ ICsJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJh c2UuY3J0Yyk7Cj4gPiA+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9f aTkxNShjcnRjLT5iYXNlLmRldik7Cj4gPiA+ICsJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBl Owo+ID4gPiArCXUzMiB2YWw7Cj4gPiA+ICsKPiA+ID4gKwl2YWwgPSBJOTE1X1JFQUQoUElQRUNP TkYocGlwZSkpOwo+ID4gPiArCXZhbCAmPSB+UElQRUNPTkZfR0FNTUFfTU9ERV9NQVNLX0lMSzsK PiA+ID4gKwl2YWwgfD0gUElQRUNPTkZfR0FNTUFfTU9ERShjcnRjX3N0YXRlLT5nYW1tYV9tb2Rl KTsKPiA+ID4gKwlJOTE1X1dSSVRFKFBJUEVDT05GKHBpcGUpLCB2YWwpOwo+ID4gPiArfQo+ID4g Cj4gPiBDb3VsZCB3ZSBqdXN0IHNldCBjb2xvcl9jb21taXQgdG8gaTl4eF9zZXRfcGlwZWNvbmYg YW5kCj4gPiBpcm9ubGFrZV9zZXRfcGlwZWNvbmYgdG8gaGFuZGxlIHRoZXNlIHdpdGhvdXQgdGhl IHItbS13Pwo+IAo+IFBlcmhhcHMuIEJ1dCBub3QgcXVpdGUgc3VyZSBpZiB3ZSBoYXZlIGFueSBt YWdpYyByZXN0cmljdGlvbnMKPiBpbiB0aGUgY3J0YyBlbmFibGUgc2VxdWVuY2UgdGhhdCB3b3Vs ZCBwcmV2ZW50IHRoYXQuCgpJIGd1ZXNzIHdlIGNvdWxkIGFsd2F5cyBrZWVwIHRoZSBkb3VibGUg c2V0X3BpcGVjb25mKCkgaW4gdGhlCmNydGMgZW5hYmxlIHBhdGggc28gdGhhdCB3ZSB3b24ndCBo YXZlIHRvIHRoaW5rIHdoZXRoZXIgdG8gbW92ZSB0aGUKY29sb3JfY29tbWl0KCkgZWFybGllciBv ciB0aGUgc2V0X3BpcGVjb25mKCkgbGF0ZXIuCgo+IAo+ID4gCj4gPiAKPiA+IE1hdHQKPiA+IAo+ ID4gPiArCj4gPiA+ICBzdGF0aWMgdm9pZCBoc3dfY29sb3JfY29tbWl0KGNvbnN0IHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ID4gPiAgewo+ID4gPiAgCXN0cnVjdCBpbnRl bF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwo+ID4g PiBAQCAtNTg1LDggKzYxMSw3IEBAIHZvaWQgaW50ZWxfY29sb3JfY29tbWl0KGNvbnN0IHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ID4gPiAgewo+ID4gPiAgCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+YmFzZS5jcnRj LT5kZXYpOwo+ID4gPiAgCj4gPiA+IC0JaWYgKGRldl9wcml2LT5kaXNwbGF5LmNvbG9yX2NvbW1p dCkKPiA+ID4gLQkJZGV2X3ByaXYtPmRpc3BsYXkuY29sb3JfY29tbWl0KGNydGNfc3RhdGUpOwo+ ID4gPiArCWRldl9wcml2LT5kaXNwbGF5LmNvbG9yX2NvbW1pdChjcnRjX3N0YXRlKTsKPiA+ID4g IH0KPiA+ID4gIAo+ID4gPiAgaW50IGludGVsX2NvbG9yX2NoZWNrKHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpjcnRjX3N0YXRlKQo+ID4gPiBAQCAtNjM0LDIwICs2NTksMjUgQEAgdm9pZCBpbnRl bF9jb2xvcl9pbml0KHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQo+ID4gPiAgCj4gPiA+ICAJZHJt X21vZGVfY3J0Y19zZXRfZ2FtbWFfc2l6ZSgmY3J0Yy0+YmFzZSwgMjU2KTsKPiA+ID4gIAo+ID4g PiAtCWlmIChJU19DSEVSUllWSUVXKGRldl9wcml2KSkgewo+ID4gPiAtCQlkZXZfcHJpdi0+ZGlz cGxheS5sb2FkX2x1dHMgPSBjaGVycnl2aWV3X2xvYWRfbHV0czsKPiA+ID4gLQl9IGVsc2UgaWYg KElTX0hBU1dFTEwoZGV2X3ByaXYpKSB7Cj4gPiA+IC0JCWRldl9wcml2LT5kaXNwbGF5LmxvYWRf bHV0cyA9IGk5eHhfbG9hZF9sdXRzOwo+ID4gPiAtCQlkZXZfcHJpdi0+ZGlzcGxheS5jb2xvcl9j b21taXQgPSBoc3dfY29sb3JfY29tbWl0Owo+ID4gPiAtCX0gZWxzZSBpZiAoSVNfQlJPQURXRUxM KGRldl9wcml2KSB8fCBJU19HRU45X0JDKGRldl9wcml2KSB8fAo+ID4gPiAtCQkgICBJU19CUk9Y VE9OKGRldl9wcml2KSkgewo+ID4gPiAtCQlkZXZfcHJpdi0+ZGlzcGxheS5sb2FkX2x1dHMgPSBi cm9hZHdlbGxfbG9hZF9sdXRzOwo+ID4gPiAtCQlkZXZfcHJpdi0+ZGlzcGxheS5jb2xvcl9jb21t aXQgPSBoc3dfY29sb3JfY29tbWl0Owo+ID4gPiAtCX0gZWxzZSBpZiAoSVNfR0VNSU5JTEFLRShk ZXZfcHJpdikgfHwgSVNfQ0FOTk9OTEFLRShkZXZfcHJpdikpIHsKPiA+ID4gLQkJZGV2X3ByaXYt PmRpc3BsYXkubG9hZF9sdXRzID0gZ2xrX2xvYWRfbHV0czsKPiA+ID4gLQkJZGV2X3ByaXYtPmRp c3BsYXkuY29sb3JfY29tbWl0ID0gaHN3X2NvbG9yX2NvbW1pdDsKPiA+ID4gKwlpZiAoSEFTX0dN Q0hfRElTUExBWShkZXZfcHJpdikpIHsKPiA+ID4gKwkJaWYgKElTX0NIRVJSWVZJRVcoZGV2X3By aXYpKQo+ID4gPiArCQkJZGV2X3ByaXYtPmRpc3BsYXkubG9hZF9sdXRzID0gY2hlcnJ5dmlld19s b2FkX2x1dHM7Cj4gPiA+ICsJCWVsc2UKPiA+ID4gKwkJCWRldl9wcml2LT5kaXNwbGF5LmxvYWRf bHV0cyA9IGk5eHhfbG9hZF9sdXRzOwo+ID4gPiArCj4gPiA+ICsJCWRldl9wcml2LT5kaXNwbGF5 LmNvbG9yX2NvbW1pdCA9IGk5eHhfY29sb3JfY29tbWl0Owo+ID4gPiAgCX0gZWxzZSB7Cj4gPiA+ IC0JCWRldl9wcml2LT5kaXNwbGF5LmxvYWRfbHV0cyA9IGk5eHhfbG9hZF9sdXRzOwo+ID4gPiAr CQlpZiAoSVNfQ0FOTk9OTEFLRShkZXZfcHJpdikgfHwgSVNfR0VNSU5JTEFLRShkZXZfcHJpdikp Cj4gPiA+ICsJCQlkZXZfcHJpdi0+ZGlzcGxheS5sb2FkX2x1dHMgPSBnbGtfbG9hZF9sdXRzOwo+ ID4gPiArCQllbHNlIGlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDkgfHwgSVNfQlJPQURXRUxM KGRldl9wcml2KSkKPiA+ID4gKwkJCWRldl9wcml2LT5kaXNwbGF5LmxvYWRfbHV0cyA9IGJyb2Fk d2VsbF9sb2FkX2x1dHM7Cj4gPiA+ICsJCWVsc2UKPiA+ID4gKwkJCWRldl9wcml2LT5kaXNwbGF5 LmxvYWRfbHV0cyA9IGk5eHhfbG9hZF9sdXRzOwo+ID4gPiArCj4gPiA+ICsJCWlmIChJTlRFTF9H RU4oZGV2X3ByaXYpID49IDggfHwgSVNfSEFTV0VMTChkZXZfcHJpdikpCj4gPiA+ICsJCQlkZXZf cHJpdi0+ZGlzcGxheS5jb2xvcl9jb21taXQgPSBoc3dfY29sb3JfY29tbWl0Owo+ID4gPiArCQll bHNlCj4gPiA+ICsJCQlkZXZfcHJpdi0+ZGlzcGxheS5jb2xvcl9jb21taXQgPSBpbGtfY29sb3Jf Y29tbWl0Owo+ID4gPiAgCX0KPiA+ID4gIAo+ID4gPiAgCS8qIEVuYWJsZSBjb2xvciBtYW5hZ2Vt ZW50IHN1cHBvcnQgd2hlbiB3ZSBoYXZlIGRlZ2FtbWEgJiBnYW1tYSBMVVRzLiAqLwo+ID4gPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPiA+IGluZGV4IDFjYWVlNDEyODk3NC4u OTBhZmNhZTkxYjMwIDEwMDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kaXNwbGF5LmMKPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxh eS5jCj4gPiA+IEBAIC0zNDE1LDcgKzM0MTUsNyBAQCBzdGF0aWMgdm9pZCBpOXh4X2Rpc2FibGVf cGxhbmUoc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSwKPiA+ID4gIAkgKgo+ID4gPiAgCSAqIE9u IHByZS1nNHggdGhlcmUgaXMgbm8gd2F5IHRvIGdhbW1hIGNvcnJlY3QgdGhlCj4gPiA+ICAJICog cGlwZSBib3R0b20gY29sb3IgYnV0IHdlJ2xsIGtlZXAgb24gZG9pbmcgdGhpcwo+ID4gPiAtCSAq IGFueXdheS4KPiA+ID4gKwkgKiBhbnl3YXkgc28gdGhhdCB0aGUgY3J0YyBzdGF0ZSByZWFkb3V0 IHdvcmtzIGNvcnJlY3RseS4KPiA+ID4gIAkgKi8KPiA+ID4gIAlkc3BjbnRyID0gaTl4eF9wbGFu ZV9jdGxfY3J0YyhjcnRjX3N0YXRlKTsKPiA+ID4gIAo+ID4gPiBAQCAtNzYyNyw2ICs3NjI3LDgg QEAgc3RhdGljIHZvaWQgaTl4eF9zZXRfcGlwZWNvbmYoY29uc3Qgc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNydGNfc3RhdGUpCj4gPiA+ICAJICAgICBjcnRjX3N0YXRlLT5saW1pdGVkX2NvbG9y X3JhbmdlKQo+ID4gPiAgCQlwaXBlY29uZiB8PSBQSVBFQ09ORl9DT0xPUl9SQU5HRV9TRUxFQ1Q7 Cj4gPiA+ICAKPiA+ID4gKwlwaXBlY29uZiB8PSBQSVBFQ09ORl9HQU1NQV9NT0RFKGNydGNfc3Rh dGUtPmdhbW1hX21vZGUpOwo+ID4gPiArCj4gPiA+ICAJSTkxNV9XUklURShQSVBFQ09ORihjcnRj LT5waXBlKSwgcGlwZWNvbmYpOwo+ID4gPiAgCVBPU1RJTkdfUkVBRChQSVBFQ09ORihjcnRjLT5w aXBlKSk7Cj4gPiA+ICB9Cj4gPiA+IEBAIC04MDc3LDYgKzgwNzksOSBAQCBzdGF0aWMgYm9vbCBp OXh4X2dldF9waXBlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKPiA+ID4gIAkgICAg KHRtcCAmIFBJUEVDT05GX0NPTE9SX1JBTkdFX1NFTEVDVCkpCj4gPiA+ICAJCXBpcGVfY29uZmln LT5saW1pdGVkX2NvbG9yX3JhbmdlID0gdHJ1ZTsKPiA+ID4gIAo+ID4gPiArCXBpcGVfY29uZmln LT5nYW1tYV9tb2RlID0gKHRtcCAmIFBJUEVDT05GX0dBTU1BX01PREVfTUFTS19JOVhYKSA+Pgo+ ID4gPiArCQlQSVBFQ09ORl9HQU1NQV9NT0RFX1NISUZUOwo+ID4gPiArCj4gPiA+ICAJaWYgKElO VEVMX0dFTihkZXZfcHJpdikgPCA0KQo+ID4gPiAgCQlwaXBlX2NvbmZpZy0+ZG91YmxlX3dpZGUg PSB0bXAgJiBQSVBFQ09ORl9ET1VCTEVfV0lERTsKPiA+ID4gIAo+ID4gPiBAQCAtODYxNiw2ICs4 NjIxLDggQEAgc3RhdGljIHZvaWQgaXJvbmxha2Vfc2V0X3BpcGVjb25mKGNvbnN0IHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ID4gPiAgCWlmIChjcnRjX3N0YXRlLT5saW1p dGVkX2NvbG9yX3JhbmdlKQo+ID4gPiAgCQl2YWwgfD0gUElQRUNPTkZfQ09MT1JfUkFOR0VfU0VM RUNUOwo+ID4gPiAgCj4gPiA+ICsJdmFsIHw9IFBJUEVDT05GX0dBTU1BX01PREUoY3J0Y19zdGF0 ZS0+Z2FtbWFfbW9kZSk7Cj4gPiA+ICsKPiA+ID4gIAlJOTE1X1dSSVRFKFBJUEVDT05GKHBpcGUp LCB2YWwpOwo+ID4gPiAgCVBPU1RJTkdfUkVBRChQSVBFQ09ORihwaXBlKSk7Cj4gPiA+ICB9Cj4g PiA+IEBAIC05MTQ3LDYgKzkxNTQsOSBAQCBzdGF0aWMgYm9vbCBpcm9ubGFrZV9nZXRfcGlwZV9j b25maWcoc3RydWN0IGludGVsX2NydGMgKmNydGMsCj4gPiA+ICAJaWYgKHRtcCAmIFBJUEVDT05G X0NPTE9SX1JBTkdFX1NFTEVDVCkKPiA+ID4gIAkJcGlwZV9jb25maWctPmxpbWl0ZWRfY29sb3Jf cmFuZ2UgPSB0cnVlOwo+ID4gPiAgCj4gPiA+ICsJcGlwZV9jb25maWctPmdhbW1hX21vZGUgPSAo dG1wICYgUElQRUNPTkZfR0FNTUFfTU9ERV9NQVNLX0lMSykgPj4KPiA+ID4gKwkJUElQRUNPTkZf R0FNTUFfTU9ERV9TSElGVDsKPiA+ID4gKwo+ID4gPiAgCWlmIChJOTE1X1JFQUQoUENIX1RSQU5T Q09ORihjcnRjLT5waXBlKSkgJiBUUkFOU19FTkFCTEUpIHsKPiA+ID4gIAkJc3RydWN0IGludGVs X3NoYXJlZF9kcGxsICpwbGw7Cj4gPiA+ICAJCWVudW0gaW50ZWxfZHBsbF9pZCBwbGxfaWQ7Cj4g PiA+IEBAIC0xMTk3Nyw2ICsxMTk4Nyw4IEBAIGludGVsX3BpcGVfY29uZmlnX2NvbXBhcmUoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4gPiAgCj4gPiA+ICAJUElQRV9DT05G X0NIRUNLX0JPT0woZG91YmxlX3dpZGUpOwo+ID4gPiAgCj4gPiA+ICsJUElQRV9DT05GX0NIRUNL X1goZ2FtbWFfbW9kZSk7Cj4gPiA+ICsKPiA+ID4gIAlQSVBFX0NPTkZfQ0hFQ0tfUChzaGFyZWRf ZHBsbCk7Cj4gPiA+ICAJUElQRV9DT05GX0NIRUNLX1goZHBsbF9od19zdGF0ZS5kcGxsKTsKPiA+ ID4gIAlQSVBFX0NPTkZfQ0hFQ0tfWChkcGxsX2h3X3N0YXRlLmRwbGxfbWQpOwo+ID4gPiAtLSAK PiA+ID4gMi4xOS4yCj4gPiA+IAo+ID4gCj4gPiAtLSAKPiA+IE1hdHQgUm9wZXIKPiA+IEdyYXBo aWNzIFNvZnR3YXJlIEVuZ2luZWVyCj4gPiBJb1RHIFBsYXRmb3JtIEVuYWJsaW5nICYgRGV2ZWxv cG1lbnQKPiA+IEludGVsIENvcnBvcmF0aW9uCj4gPiAoOTE2KSAzNTYtMjc5NQo+IAo+IC0tIAo+ IFZpbGxlIFN5cmrDpGzDpAo+IEludGVsCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4gSW50ZWwtZ2Z4QGxp c3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vaW50ZWwtZ2Z4CgotLSAKVmlsbGUgU3lyasOkbMOkCkludGVsCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5n IGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=