From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 3/5] drm/i915: Do not adjust scale when out of bounds, v2. Date: Thu, 3 May 2018 16:35:28 +0300 Message-ID: <20180503133528.GU23723@intel.com> References: <20180503112217.37292-1-maarten.lankhorst@linux.intel.com> <20180503112217.37292-4-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20180503112217.37292-4-maarten.lankhorst@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Maarten Lankhorst Cc: intel-gfx@lists.freedesktop.org, Vidya Srinivas , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gVGh1LCBNYXkgMDMsIDIwMTggYXQgMDE6MjI6MTVQTSArMDIwMCwgTWFhcnRlbiBMYW5raG9y c3Qgd3JvdGU6Cj4gV2l0aCB0aGUgcHJldmlvdXMgcGF0Y2ggZHJtX2F0b21pY19oZWxwZXJfY2hl Y2tfcGxhbmVfc3RhdGUgY29ycmVjdGx5Cj4gY2FsY3VsYXRlcyBjbGlwcGluZyBhbmQgdGhlIHhm ODYtdmlkZW8taW50ZWwgZGR4IGlzIGZpeGVkIHRvIGZhbGwgYmFjawo+IHRvIEdQVSBjb3JyZWN0 bHkgd2hlbiBTZXRQbGFuZSBmYWlscywgd2UgY2FuIHJlbW92ZSB0aGUgaGFjayB3aGVyZQo+IHdl IHRyeSB0byBwYW4vem9vbSB3aGVuIG91dCBvZiBtaW4vbWF4IHNjYWxpbmcgcmFuZ2UuIFRoaXMg d2FzIGFscmVhZHkKPiBwb29yIGJlaGF2aW9yIHdoZXJlIHRoZSBzY3JlZW4gZGlkbid0IHNob3cg d2hhdCB3YXMgcmVxdWVzdGVkLCBhbmQgbm93Cj4gaW5zdGVhZCB3ZSByZWplY3QgaXQgb3V0cmln aHQuIFRoaXMgc2ltcGxpZmllcyBjaGVja19zcHJpdGVfcGxhbmUgYSBsb3QuCj4gCj4gQ2hhbmdl cyBzaW5jZSB2MToKPiAtIFNldCBjcnRjX2ggdG8gdGhlIGhlaWdodCBjb3JyZWN0bHkuCj4gLSBS ZWplY3QgPCAzeDMgcmVjdGFuZ2xlcyBpbnN0ZWFkIG9mIG1ha2luZyB0aGVtIGludmlzaWJsZSBm b3IgPGdlbjkuCj4gICBGb3IgZ2VuOSsgc2tsX3VwZGF0ZV9zY2FsZXJfcGxhbmUgd2lsbCByZWpl Y3QgdGhlbS4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5s YW5raG9yc3RAbGludXguaW50ZWwuY29tPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9zcHJpdGUuYyB8IDE0NCArKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gIDEgZmls ZSBjaGFuZ2VkLCAzNSBpbnNlcnRpb25zKCspLCAxMDkgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKPiBpbmRleCA0NGQ3YWNhMjIyYjAuLjk3MDAxNWRjYzZm MSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jCj4gQEAgLTkzNiwyMiArOTM2 LDEyIEBAIGludGVsX2NoZWNrX3Nwcml0ZV9wbGFuZShzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5l LAo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShwbGFuZS0+ YmFzZS5kZXYpOwo+ICAJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNy dGNfc3RhdGUtPmJhc2UuY3J0Yyk7Cj4gIAlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHN0 YXRlLT5iYXNlLmZiOwo+IC0JaW50IGNydGNfeCwgY3J0Y195Owo+IC0JdW5zaWduZWQgaW50IGNy dGNfdywgY3J0Y19oOwo+IC0JdWludDMyX3Qgc3JjX3gsIHNyY195LCBzcmNfdywgc3JjX2g7Cj4g LQlzdHJ1Y3QgZHJtX3JlY3QgKnNyYyA9ICZzdGF0ZS0+YmFzZS5zcmM7Cj4gLQlzdHJ1Y3QgZHJt X3JlY3QgKmRzdCA9ICZzdGF0ZS0+YmFzZS5kc3Q7Cj4gLQlzdHJ1Y3QgZHJtX3JlY3QgY2xpcCA9 IHt9Owo+ICAJaW50IG1heF9zdHJpZGUgPSBJTlRFTF9HRU4oZGV2X3ByaXYpID49IDkgPyAzMjc2 OCA6IDE2Mzg0Owo+IC0JaW50IGhzY2FsZSwgdnNjYWxlOwo+ICAJaW50IG1heF9zY2FsZSwgbWlu X3NjYWxlOwo+ICAJYm9vbCBjYW5fc2NhbGU7Cj4gIAlpbnQgcmV0Owo+ICAJdWludDMyX3QgcGl4 ZWxfZm9ybWF0ID0gMDsKPiAgCj4gLQkqc3JjID0gZHJtX3BsYW5lX3N0YXRlX3NyYygmc3RhdGUt PmJhc2UpOwo+IC0JKmRzdCA9IGRybV9wbGFuZV9zdGF0ZV9kZXN0KCZzdGF0ZS0+YmFzZSk7Cj4g LQo+ICAJaWYgKCFmYikgewo+ICAJCXN0YXRlLT5iYXNlLnZpc2libGUgPSBmYWxzZTsKPiAgCQly ZXR1cm4gMDsKPiBAQCAtOTkwLDY0ICs5ODAsMTkgQEAgaW50ZWxfY2hlY2tfc3ByaXRlX3BsYW5l KHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUsCj4gIAkJbWluX3NjYWxlID0gcGxhbmUtPmNhbl9z Y2FsZSA/IDEgOiAoMSA8PCAxNik7Cj4gIAl9Cj4gIAo+IC0JLyoKPiAtCSAqIEZJWE1FIHRoZSBm b2xsb3dpbmcgY29kZSBkb2VzIGEgYnVuY2ggb2YgZnV6enkgYWRqdXN0bWVudHMgdG8gdGhlCj4g LQkgKiBjb29yZGluYXRlcyBhbmQgc2l6ZXMuIFdlIHByb2JhYmx5IG5lZWQgc29tZSB3YXkgdG8g ZGVjaWRlIHdoZXRoZXIKPiAtCSAqIG1vcmUgc3RyaWN0IGNoZWNraW5nIHNob3VsZCBiZSBkb25l IGluc3RlYWQuCj4gLQkgKi8KPiAtCWRybV9yZWN0X3JvdGF0ZShzcmMsIGZiLT53aWR0aCA8PCAx NiwgZmItPmhlaWdodCA8PCAxNiwKPiAtCQkJc3RhdGUtPmJhc2Uucm90YXRpb24pOwo+IC0KPiAt CWhzY2FsZSA9IGRybV9yZWN0X2NhbGNfaHNjYWxlX3JlbGF4ZWQoc3JjLCBkc3QsIG1pbl9zY2Fs ZSwgbWF4X3NjYWxlKTsKPiAtCUJVR19PTihoc2NhbGUgPCAwKTsKPiAtCj4gLQl2c2NhbGUgPSBk cm1fcmVjdF9jYWxjX3ZzY2FsZV9yZWxheGVkKHNyYywgZHN0LCBtaW5fc2NhbGUsIG1heF9zY2Fs ZSk7Cj4gLQlCVUdfT04odnNjYWxlIDwgMCk7Cj4gLQo+IC0JaWYgKGNydGNfc3RhdGUtPmJhc2Uu ZW5hYmxlKQo+IC0JCWRybV9tb2RlX2dldF9odl90aW1pbmcoJmNydGNfc3RhdGUtPmJhc2UubW9k ZSwKPiAtCQkJCSAgICAgICAmY2xpcC54MiwgJmNsaXAueTIpOwo+IC0KPiAtCXN0YXRlLT5iYXNl LnZpc2libGUgPSBkcm1fcmVjdF9jbGlwX3NjYWxlZChzcmMsIGRzdCwgJmNsaXApOwo+IC0KPiAt CWNydGNfeCA9IGRzdC0+eDE7Cj4gLQljcnRjX3kgPSBkc3QtPnkxOwo+IC0JY3J0Y193ID0gZHJt X3JlY3Rfd2lkdGgoZHN0KTsKPiAtCWNydGNfaCA9IGRybV9yZWN0X2hlaWdodChkc3QpOwo+ICsJ cmV0ID0gZHJtX2F0b21pY19oZWxwZXJfY2hlY2tfcGxhbmVfc3RhdGUoJnN0YXRlLT5iYXNlLAo+ ICsJCQkJCQkgICZjcnRjX3N0YXRlLT5iYXNlLAo+ICsJCQkJCQkgIG1pbl9zY2FsZSwgbWF4X3Nj YWxlLAo+ICsJCQkJCQkgIHRydWUsIHRydWUpOwo+ICsJaWYgKHJldCkKPiArCQlyZXR1cm4gcmV0 Owo+ICAKPiAgCWlmIChzdGF0ZS0+YmFzZS52aXNpYmxlKSB7Cj4gLQkJLyogY2hlY2sgYWdhaW4g aW4gY2FzZSBjbGlwcGluZyBjbGFtcGVkIHRoZSByZXN1bHRzICovCj4gLQkJaHNjYWxlID0gZHJt X3JlY3RfY2FsY19oc2NhbGUoc3JjLCBkc3QsIG1pbl9zY2FsZSwgbWF4X3NjYWxlKTsKPiAtCQlp ZiAoaHNjYWxlIDwgMCkgewo+IC0JCQlEUk1fREVCVUdfS01TKCJIb3Jpem9udGFsIHNjYWxpbmcg ZmFjdG9yIG91dCBvZiBsaW1pdHNcbiIpOwo+IC0JCQlkcm1fcmVjdF9kZWJ1Z19wcmludCgic3Jj OiAiLCBzcmMsIHRydWUpOwo+IC0JCQlkcm1fcmVjdF9kZWJ1Z19wcmludCgiZHN0OiAiLCBkc3Qs IGZhbHNlKTsKPiAtCj4gLQkJCXJldHVybiBoc2NhbGU7Cj4gLQkJfQo+IC0KPiAtCQl2c2NhbGUg PSBkcm1fcmVjdF9jYWxjX3ZzY2FsZShzcmMsIGRzdCwgbWluX3NjYWxlLCBtYXhfc2NhbGUpOwo+ IC0JCWlmICh2c2NhbGUgPCAwKSB7Cj4gLQkJCURSTV9ERUJVR19LTVMoIlZlcnRpY2FsIHNjYWxp bmcgZmFjdG9yIG91dCBvZiBsaW1pdHNcbiIpOwo+IC0JCQlkcm1fcmVjdF9kZWJ1Z19wcmludCgi c3JjOiAiLCBzcmMsIHRydWUpOwo+IC0JCQlkcm1fcmVjdF9kZWJ1Z19wcmludCgiZHN0OiAiLCBk c3QsIGZhbHNlKTsKPiAtCj4gLQkJCXJldHVybiB2c2NhbGU7Cj4gLQkJfQo+IC0KPiAtCQkvKiBN YWtlIHRoZSBzb3VyY2Ugdmlld3BvcnQgc2l6ZSBhbiBleGFjdCBtdWx0aXBsZSBvZiB0aGUgc2Nh bGluZyBmYWN0b3JzLiAqLwo+IC0JCWRybV9yZWN0X2FkanVzdF9zaXplKHNyYywKPiAtCQkJCSAg ICAgZHJtX3JlY3Rfd2lkdGgoZHN0KSAqIGhzY2FsZSAtIGRybV9yZWN0X3dpZHRoKHNyYyksCj4g LQkJCQkgICAgIGRybV9yZWN0X2hlaWdodChkc3QpICogdnNjYWxlIC0gZHJtX3JlY3RfaGVpZ2h0 KHNyYykpOwo+IC0KPiAtCQlkcm1fcmVjdF9yb3RhdGVfaW52KHNyYywgZmItPndpZHRoIDw8IDE2 LCBmYi0+aGVpZ2h0IDw8IDE2LAo+IC0JCQkJICAgIHN0YXRlLT5iYXNlLnJvdGF0aW9uKTsKPiAt Cj4gLQkJLyogc2FuaXR5IGNoZWNrIHRvIG1ha2Ugc3VyZSB0aGUgc3JjIHZpZXdwb3J0IHdhc24n dCBlbmxhcmdlZCAqLwo+IC0JCVdBUk5fT04oc3JjLT54MSA8IChpbnQpIHN0YXRlLT5iYXNlLnNy Y194IHx8Cj4gLQkJCXNyYy0+eTEgPCAoaW50KSBzdGF0ZS0+YmFzZS5zcmNfeSB8fAo+IC0JCQlz cmMtPngyID4gKGludCkgc3RhdGUtPmJhc2Uuc3JjX3ggKyBzdGF0ZS0+YmFzZS5zcmNfdyB8fAo+ IC0JCQlzcmMtPnkyID4gKGludCkgc3RhdGUtPmJhc2Uuc3JjX3kgKyBzdGF0ZS0+YmFzZS5zcmNf aCk7Cj4gKwkJc3RydWN0IGRybV9yZWN0ICpzcmMgPSAmc3RhdGUtPmJhc2Uuc3JjOwo+ICsJCXN0 cnVjdCBkcm1fcmVjdCAqZHN0ID0gJnN0YXRlLT5iYXNlLmRzdDsKPiArCQl1bnNpZ25lZCBpbnQg Y3J0Y193ID0gZHJtX3JlY3Rfd2lkdGgoZHN0KTsKPiArCQl1bnNpZ25lZCBpbnQgY3J0Y19oID0g ZHJtX3JlY3RfaGVpZ2h0KGRzdCk7Cj4gKwkJdWludDMyX3Qgc3JjX3gsIHNyY195LCBzcmNfdywg c3JjX2g7Cj4gIAo+ICAJCS8qCj4gIAkJICogSGFyZHdhcmUgZG9lc24ndCBoYW5kbGUgc3VicGl4 ZWwgY29vcmRpbmF0ZXMuCj4gQEAgLTEwNjAsNTggKzEwMDUsMzkgQEAgaW50ZWxfY2hlY2tfc3By aXRlX3BsYW5lKHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUsCj4gIAkJc3JjX3kgPSBzcmMtPnkx ID4+IDE2Owo+ICAJCXNyY19oID0gZHJtX3JlY3RfaGVpZ2h0KHNyYykgPj4gMTY7Cj4gIAo+IC0J CWlmIChpbnRlbF9mb3JtYXRfaXNfeXV2KGZiLT5mb3JtYXQtPmZvcm1hdCkpIHsKPiAtCQkJc3Jj X3ggJj0gfjE7Cj4gLQkJCXNyY193ICY9IH4xOwo+IC0KPiAtCQkJLyoKPiAtCQkJICogTXVzdCBr ZWVwIHNyYyBhbmQgZHN0IHRoZQo+IC0JCQkgKiBzYW1lIGlmIHdlIGNhbid0IHNjYWxlLgo+IC0J CQkgKi8KPiAtCQkJaWYgKCFjYW5fc2NhbGUpCj4gLQkJCQljcnRjX3cgJj0gfjE7Cj4gKwkJc3Jj LT54MSA9IHNyY194IDw8IDE2Owo+ICsJCXNyYy0+eDIgPSAoc3JjX3ggKyBzcmNfdykgPDwgMTY7 Cj4gKwkJc3JjLT55MSA9IHNyY195IDw8IDE2Owo+ICsJCXNyYy0+eTIgPSAoc3JjX3kgKyBzcmNf aCkgPDwgMTY7Cj4gIAo+IC0JCQlpZiAoY3J0Y193ID09IDApCj4gLQkJCQlzdGF0ZS0+YmFzZS52 aXNpYmxlID0gZmFsc2U7Cj4gKwkJaWYgKGludGVsX2Zvcm1hdF9pc195dXYoZmItPmZvcm1hdC0+ Zm9ybWF0KSAmJgo+ICsJCSAgICAoc3JjX3ggJSAyIHx8IHNyY193ICUgMikpIHsKPiArCQkJRFJN X0RFQlVHX0tNUygic3JjIHgvdyAoJXUsICV1KSBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgMiBmb3Ig WVVWIHBsYW5lc1xuIiwKPiArCQkJCSAgICAgIHNyY194LCBzcmNfdyk7Cj4gKwkJCXJldHVybiAt RUlOVkFMOwo+ICAJCX0KPiAtCX0KPiAgCj4gLQkvKiBDaGVjayBzaXplIHJlc3RyaWN0aW9ucyB3 aGVuIHNjYWxpbmcgKi8KPiAtCWlmIChzdGF0ZS0+YmFzZS52aXNpYmxlICYmIChzcmNfdyAhPSBj cnRjX3cgfHwgc3JjX2ggIT0gY3J0Y19oKSkgewo+IC0JCXVuc2lnbmVkIGludCB3aWR0aF9ieXRl czsKPiAtCQlpbnQgY3BwID0gZmItPmZvcm1hdC0+Y3BwWzBdOwo+ICsJCS8qIENoZWNrIHNpemUg cmVzdHJpY3Rpb25zIHdoZW4gc2NhbGluZyAqLwo+ICsJCWlmIChzcmNfdyAhPSBjcnRjX3cgfHwg c3JjX2ggIT0gY3J0Y19oKSB7Cj4gKwkJCXVuc2lnbmVkIGludCB3aWR0aF9ieXRlczsKPiArCQkJ aW50IGNwcCA9IGZiLT5mb3JtYXQtPmNwcFswXTsKPiAgCj4gLQkJV0FSTl9PTighY2FuX3NjYWxl KTsKPiArCQkJV0FSTl9PTighY2FuX3NjYWxlKTsKPiAgCj4gLQkJLyogRklYTUUgaW50ZXJsYWNp bmcgbWluIGhlaWdodCBpcyA2ICovCj4gKwkJCXdpZHRoX2J5dGVzID0gKChzcmNfeCAqIGNwcCkg JiA2MykgKyBzcmNfdyAqIGNwcDsKPiAgCj4gLQkJaWYgKGNydGNfdyA8IDMgfHwgY3J0Y19oIDwg MykKPiAtCQkJc3RhdGUtPmJhc2UudmlzaWJsZSA9IGZhbHNlOwo+IC0KPiAtCQlpZiAoc3JjX3cg PCAzIHx8IHNyY19oIDwgMykKPiAtCQkJc3RhdGUtPmJhc2UudmlzaWJsZSA9IGZhbHNlOwo+IC0K PiAtCQl3aWR0aF9ieXRlcyA9ICgoc3JjX3ggKiBjcHApICYgNjMpICsgc3JjX3cgKiBjcHA7Cj4g LQo+IC0JCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpIDwgOSAmJiAoc3JjX3cgPiAyMDQ4IHx8IHNy Y19oID4gMjA0OCB8fAo+IC0JCSAgICB3aWR0aF9ieXRlcyA+IDQwOTYgfHwgZmItPnBpdGNoZXNb MF0gPiA0MDk2KSkgewo+IC0JCQlEUk1fREVCVUdfS01TKCJTb3VyY2UgZGltZW5zaW9ucyBleGNl ZWQgaGFyZHdhcmUgbGltaXRzXG4iKTsKPiAtCQkJcmV0dXJuIC1FSU5WQUw7Cj4gKwkJCS8qIEZJ WE1FIGludGVybGFjaW5nIG1pbiBoZWlnaHQgaXMgNiAqLwo+ICsJCQlpZiAoSU5URUxfR0VOKGRl dl9wcml2KSA8IDkgJiYgKAo+ICsJCQkgICAgIHNyY193IDwgMyB8fCBzcmNfaCA8IDMgfHwKPiAr CQkJICAgICBzcmNfdyA+IDIwNDggfHwgc3JjX2ggPiAyMDQ4IHx8Cj4gKwkJCSAgICAgY3J0Y193 IDwgMyB8fCBjcnRjX2ggPCAzIHx8Cj4gKwkJCSAgICAgd2lkdGhfYnl0ZXMgPiA0MDk2IHx8IGZi LT5waXRjaGVzWzBdID4gNDA5NikpIHsKPiArCQkJCURSTV9ERUJVR19LTVMoIlNvdXJjZSBkaW1l bnNpb25zIGV4Y2VlZCBoYXJkd2FyZSBsaW1pdHNcbiIpOwoKVGhlIGRlYnVnIG1lc3NhZ2UgY2Fu IG5vdyBiZSBtaXNsZWFkaW5nIHNpbmNlIHdlJ3JlIGNoZWNraW5nIGZhciBtb3JlCnRoYW4gdGhl IHNvdXJjZSBzaXplIGxpbWl0cyBoZXJlLiBJIHRoaW5rIHdlIHNob3VsZCBzcGxpdCB0aGlzIHVw IGludG8KbW9yZSBzcGVjaWZpYyBkZWJ1ZyBtZXNzYWdlcy4gQnV0IHRoYXQgY291bGQgYmUgYSBm b2xsb3d1cC4KCldlIHNob3VsZCBzcGxpdCB0aGlzIG1lc3MgdXAgaW50byBwbGF0Zm9ybSBzcGVj aWZpYyBmdW5jdGlvbnMgYW55d2F5LgoKV2UncmUgc3RpbGwgbWlzc2luZyB0aGUgc2NhbGluZyBm YWN0b3IgY2hlY2sgYWZ0ZXIgd2UgdGhyb3cgb3V0IHRoZQpzdWItcGl4ZWwgY29vcmRpbmF0ZXMs IGJ1dCBzaW5jZSB0aGF0IGNhbiBvbmx5IG1ha2Ugc3JjIHNtYWxsZXIgaXQgY2FuCm9ubHkgZGVj cmVhc2UgdGhlIHNjYWxpbmcgZmFjdG9yLCB3aGljaCBpcyBnZW5lcmFsbHkgc2FmZSBvbiBvdXIg aHcuCk9yIGF0IGxlYXN0IHVzZWQgdG8gYmUuIFdoaWNoIGlzIHdoeSB3ZSBkaWRuJ3QgY2hlY2sg Zm9yIGl0IGJlZm9yZSBlaXRoZXIuCgpBbnl3YXlzLCBsb29rcyBwcmV0dHkgZ29vZCBzbzoKUmV2 aWV3ZWQtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+ Cgo+ICsJCQkJcmV0dXJuIC1FSU5WQUw7Cj4gKwkJCX0KPiAgCQl9Cj4gIAl9Cj4gIAo+IC0JaWYg KHN0YXRlLT5iYXNlLnZpc2libGUpIHsKPiAtCQlzcmMtPngxID0gc3JjX3ggPDwgMTY7Cj4gLQkJ c3JjLT54MiA9IChzcmNfeCArIHNyY193KSA8PCAxNjsKPiAtCQlzcmMtPnkxID0gc3JjX3kgPDwg MTY7Cj4gLQkJc3JjLT55MiA9IChzcmNfeSArIHNyY19oKSA8PCAxNjsKPiAtCX0KPiAtCj4gLQlk c3QtPngxID0gY3J0Y194Owo+IC0JZHN0LT54MiA9IGNydGNfeCArIGNydGNfdzsKPiAtCWRzdC0+ eTEgPSBjcnRjX3k7Cj4gLQlkc3QtPnkyID0gY3J0Y195ICsgY3J0Y19oOwo+IC0KPiAgCWlmIChJ TlRFTF9HRU4oZGV2X3ByaXYpID49IDkpIHsKPiAgCQlyZXQgPSBza2xfY2hlY2tfcGxhbmVfc3Vy ZmFjZShjcnRjX3N0YXRlLCBzdGF0ZSk7Cj4gIAkJaWYgKHJldCkKPiAtLSAKPiAyLjE3LjAKCi0t IApWaWxsZSBTeXJqw6Rsw6QKSW50ZWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vZHJpLWRldmVsCg==