From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paulo Zanoni Subject: Re: [PATCH v2 6/7] igt/kms_frontbuffer_tracking: Add Y-tiling support Date: Wed, 12 Jul 2017 17:17:24 -0300 Message-ID: <1499890644.2649.20.camel@intel.com> References: <1493390254-5232-1-git-send-email-praveen.paneri@intel.com> <1493390254-5232-7-git-send-email-praveen.paneri@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6D4EB6E507 for ; Wed, 12 Jul 2017 20:17:29 +0000 (UTC) In-Reply-To: <1493390254-5232-7-git-send-email-praveen.paneri@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Praveen Paneri , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org RW0gU2V4LCAyMDE3LTA0LTI4IMOgcyAyMDowNyArMDUzMCwgUHJhdmVlbiBQYW5lcmkgZXNjcmV2 ZXU6Cj4gQWxsb3cgdGVzdHMgdG8gY3JlYXRlIFktdGlsZWQgYnVmZmVyZXMgdXNpbmcgYSBzZXBh cmF0ZQo+IGFyZ3VtZW50IHRvIHRoZSB0ZXN0IHdpdGhvdXQgaW5jcmVhc2luZyB0aGUgbnVtYmVy IG9mCj4gc3VidGVzdHMuCj4gCj4gdjI6IENoYW5nZWQgdGlsaW5nIG9wdGlvbiB0byBzdHJpbmcg KFBhdWxvKQoKSSBoYWQgc29tZSBtaW5vciBuaXRwaWNrcyBmb3IgdGhpcyBwYXRjaDogcmVzaHVm ZmxpbmcgcGFyYW1ldGVycwpiZXR3ZWVuIGxpbmVzIGFuZCB0aGUgd2F5IHdlIGhhbmRsZSB0aGUg bmV3IGFyZ3VtZW50IGFuZCBpdHMgaGVscAptZXNzYWdlLiBJbnN0ZWFkIG9mIHJlcXVlc3Rpbmcg dGhvc2UgdHJpdmlhbCBjaGFuZ2VzIGFuZCBjcmVhdGluZyB5ZXQKYW5vdGhlciByZXZpZXcgcm91 bmQtdHJpcCBJIGp1c3Qgd2VudCBhaGVhZCBhbmQgaW1wbGVtZW50ZWQgdGhlbSBhcyB2My4KSSBo b3BlIHlvdSdyZSBmaW5lIHdpdGggdGhpcyBhcHByb2FjaC4gVGhlIHBhdGNoIGNhbiBiZSBhcHBs aWVkIHdpdGhvdXQKdGhlIHJlc3Qgb2YgdGhlIHBhdGNoZXMgaW4gdGhlIHNlcmllcywgc28gSSBh cHBsaWVkIGl0ICYgcHVzaGVkIHRvIElHVAp3aXRoIG15IG5pdHBpY2tzIGFuZCBSLUIuCgoKPiAK PiBTaWduZWQtb2ZmLWJ5OiBQcmF2ZWVuIFBhbmVyaSA8cHJhdmVlbi5wYW5lcmlAaW50ZWwuY29t Pgo+IC0tLQo+IMKgdGVzdHMva21zX2Zyb250YnVmZmVyX3RyYWNraW5nLmMgfCA0OCArKysrKysr KysrKysrKysrKysrKysrKystLS0tCj4gLS0tLS0tLS0tLS0tCj4gwqAxIGZpbGUgY2hhbmdlZCwg MjkgaW5zZXJ0aW9ucygrKSwgMTkgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL3Rlc3Rz L2ttc19mcm9udGJ1ZmZlcl90cmFja2luZy5jCj4gYi90ZXN0cy9rbXNfZnJvbnRidWZmZXJfdHJh Y2tpbmcuYwo+IGluZGV4IDdjZWE0ZGUuLjYyYWUzM2EgMTAwNjQ0Cj4gLS0tIGEvdGVzdHMva21z X2Zyb250YnVmZmVyX3RyYWNraW5nLmMKPiArKysgYi90ZXN0cy9rbXNfZnJvbnRidWZmZXJfdHJh Y2tpbmcuYwo+IEBAIC0yNTIsNiArMjUyLDcgQEAgc3RydWN0IHsKPiDCoAlpbnQgb25seV9waXBl czsKPiDCoAlpbnQgc2hhcmVkX2ZiX3hfb2Zmc2V0Owo+IMKgCWludCBzaGFyZWRfZmJfeV9vZmZz ZXQ7Cj4gKwl1aW50NjRfdCB0aWxpbmc7Cj4gwqB9IG9wdCA9IHsKPiDCoAkuY2hlY2tfc3RhdHVz ID0gdHJ1ZSwKPiDCoAkuY2hlY2tfY3JjID0gdHJ1ZSwKPiBAQCAtMjY0LDYgKzI2NSw3IEBAIHN0 cnVjdCB7Cj4gwqAJLm9ubHlfcGlwZXMgPSBQSVBFX0NPVU5ULAo+IMKgCS5zaGFyZWRfZmJfeF9v ZmZzZXQgPSA1MDAsCj4gwqAJLnNoYXJlZF9mYl95X29mZnNldCA9IDUwMCwKPiArCS50aWxpbmcg PSBMT0NBTF9JOTE1X0ZPUk1BVF9NT0RfWF9USUxFRCwKPiDCoH07Cj4gwqAKPiDCoHN0cnVjdCBt b2Rlc2V0X3BhcmFtcyB7Cj4gQEAgLTU3OCw3ICs1ODAsNyBAQCBzdGF0aWMgdm9pZCBjcmVhdGVf ZmIoZW51bSBwaXhlbF9mb3JtYXQgcGZvcm1hdCwKPiBpbnQgd2lkdGgsIGludCBoZWlnaHQsCj4g wqAJaWYgKHBsYW5lID09IFBMQU5FX0NVUikKPiDCoAkJdGlsaW5nX2Zvcl9zaXplID0gTE9DQUxf RFJNX0ZPUk1BVF9NT0RfTk9ORTsKPiDCoAllbHNlCj4gLQkJdGlsaW5nX2Zvcl9zaXplID0gTE9D QUxfSTkxNV9GT1JNQVRfTU9EX1hfVElMRUQ7Cj4gKwkJdGlsaW5nX2Zvcl9zaXplID0gb3B0LnRp bGluZzsKPiDCoAo+IMKgCWlndF9jYWxjX2ZiX3NpemUoZHJtLmZkLCB3aWR0aCwgaGVpZ2h0LCBi cHAsCj4gdGlsaW5nX2Zvcl9zaXplLCAmc2l6ZSwKPiDCoAkJCcKgJnN0cmlkZSk7Cj4gQEAgLTcx MCw3ICs3MTIsNyBAQCBzdGF0aWMgdm9pZCBjcmVhdGVfc2hhcmVkX2ZiKGVudW0gcGl4ZWxfZm9y bWF0Cj4gZm9ybWF0KQo+IMKgCj4gwqAJYmlnX2ggPSBwcmltX2ggKyBzY25kX2ggKyBvZmZzX2gg KyBvcHQuc2hhcmVkX2ZiX3lfb2Zmc2V0Owo+IMKgCj4gLQljcmVhdGVfZmIoZm9ybWF0LCBiaWdf dywgYmlnX2gsCj4gTE9DQUxfSTkxNV9GT1JNQVRfTU9EX1hfVElMRUQsCj4gKwljcmVhdGVfZmIo Zm9ybWF0LCBiaWdfdywgYmlnX2gsIG9wdC50aWxpbmcsCj4gwqAJCcKgwqBQTEFORV9QUkksICZz LT5iaWcpOwo+IMKgfQo+IMKgCj4gQEAgLTc0NCwxNiArNzQ2LDE2IEBAIHN0YXRpYyB2b2lkIGNy ZWF0ZV9mYnMoZW51bSBwaXhlbF9mb3JtYXQKPiBmb3JtYXQpCj4gwqAKPiDCoAljcmVhdGVfZmIo Zm9ybWF0LCBwcmltX21vZGVfcGFyYW1zLm1vZGUtPmhkaXNwbGF5LAo+IMKgCQnCoMKgcHJpbV9t b2RlX3BhcmFtcy5tb2RlLT52ZGlzcGxheSwKPiAtCQnCoMKgTE9DQUxfSTkxNV9GT1JNQVRfTU9E X1hfVElMRUQsIFBMQU5FX1BSSSwgJnMtCj4gPnByaW1fcHJpKTsKPiArCQnCoMKgb3B0LnRpbGlu ZywgUExBTkVfUFJJLCAmcy0+cHJpbV9wcmkpOwo+IMKgCWNyZWF0ZV9mYihmb3JtYXQsIHByaW1f bW9kZV9wYXJhbXMuY3Vyc29yLncsCj4gwqAJCcKgwqBwcmltX21vZGVfcGFyYW1zLmN1cnNvci5o LAo+IExPQ0FMX0RSTV9GT1JNQVRfTU9EX05PTkUsCj4gwqAJCcKgwqBQTEFORV9DVVIsICZzLT5w cmltX2N1cik7Cj4gwqAJY3JlYXRlX2ZiKGZvcm1hdCwgcHJpbV9tb2RlX3BhcmFtcy5zcHJpdGUu dywKPiAtCQnCoMKgcHJpbV9tb2RlX3BhcmFtcy5zcHJpdGUuaCwKPiBMT0NBTF9JOTE1X0ZPUk1B VF9NT0RfWF9USUxFRCwKPiArCQnCoMKgcHJpbV9tb2RlX3BhcmFtcy5zcHJpdGUuaCwgb3B0LnRp bGluZywKPiDCoAkJwqDCoFBMQU5FX1NQUiwgJnMtPnByaW1fc3ByKTsKPiDCoAo+IMKgCWNyZWF0 ZV9mYihmb3JtYXQsIG9mZnNjcmVlbl9mYi53LCBvZmZzY3JlZW5fZmIuaCwKPiAtCQnCoMKgTE9D QUxfSTkxNV9GT1JNQVRfTU9EX1hfVElMRUQsIFBMQU5FX1BSSSwgJnMtCj4gPm9mZnNjcmVlbik7 Cj4gKwkJwqDCoG9wdC50aWxpbmcsIFBMQU5FX1BSSSwgJnMtPm9mZnNjcmVlbik7Cj4gwqAKPiDC oAljcmVhdGVfc2hhcmVkX2ZiKGZvcm1hdCk7Cj4gwqAKPiBAQCAtNzYyLDExICs3NjQsMTEgQEAg c3RhdGljIHZvaWQgY3JlYXRlX2ZicyhlbnVtIHBpeGVsX2Zvcm1hdAo+IGZvcm1hdCkKPiDCoAo+ IMKgCWNyZWF0ZV9mYihmb3JtYXQsIHNjbmRfbW9kZV9wYXJhbXMubW9kZS0+aGRpc3BsYXksCj4g wqAJCcKgwqBzY25kX21vZGVfcGFyYW1zLm1vZGUtPnZkaXNwbGF5LAo+IC0JCcKgwqBMT0NBTF9J OTE1X0ZPUk1BVF9NT0RfWF9USUxFRCwgUExBTkVfUFJJLCAmcy0KPiA+c2NuZF9wcmkpOwo+ICsJ CcKgwqBvcHQudGlsaW5nLCBQTEFORV9QUkksICZzLT5zY25kX3ByaSk7Cj4gwqAJY3JlYXRlX2Zi KGZvcm1hdCwgc2NuZF9tb2RlX3BhcmFtcy5jdXJzb3IudywKPiBzY25kX21vZGVfcGFyYW1zLmN1 cnNvci5oLAo+IMKgCQnCoMKgTE9DQUxfRFJNX0ZPUk1BVF9NT0RfTk9ORSwgUExBTkVfQ1VSLCAm cy0KPiA+c2NuZF9jdXIpOwo+IMKgCWNyZWF0ZV9mYihmb3JtYXQsIHNjbmRfbW9kZV9wYXJhbXMu c3ByaXRlLncsCj4gc2NuZF9tb2RlX3BhcmFtcy5zcHJpdGUuaCwKPiAtCQnCoMKgTE9DQUxfSTkx NV9GT1JNQVRfTU9EX1hfVElMRUQsIFBMQU5FX1NQUiwgJnMtCj4gPnNjbmRfc3ByKTsKPiArCQnC oMKgb3B0LnRpbGluZywgUExBTkVfU1BSLCAmcy0+c2NuZF9zcHIpOwo+IMKgfQo+IMKgCj4gwqBz dGF0aWMgYm9vbCBzZXRfbW9kZV9mb3JfcGFyYW1zKHN0cnVjdCBtb2Rlc2V0X3BhcmFtcyAqcGFy YW1zKQo+IEBAIC0xMjUyLDcgKzEyNTQsNyBAQCBzdGF0aWMgdm9pZCBpbml0X2JsdWVfY3JjKGVu dW0gcGl4ZWxfZm9ybWF0Cj4gZm9ybWF0LCBib29sIG1hbmRhdG9yeV9zaW5rX2NyYykKPiDCoAo+ IMKgCWNyZWF0ZV9mYihmb3JtYXQsIHByaW1fbW9kZV9wYXJhbXMubW9kZS0+aGRpc3BsYXksCj4g wqAJCcKgwqBwcmltX21vZGVfcGFyYW1zLm1vZGUtPnZkaXNwbGF5LAo+IC0JCcKgwqBMT0NBTF9J OTE1X0ZPUk1BVF9NT0RfWF9USUxFRCwgUExBTkVfUFJJLCAmYmx1ZSk7Cj4gKwkJwqDCoG9wdC50 aWxpbmcsIFBMQU5FX1BSSSwgJmJsdWUpOwo+IMKgCj4gwqAJZmlsbF9mYigmYmx1ZSwgQ09MT1Jf UFJJTV9CRyk7Cj4gwqAKPiBAQCAtMTI4Nyw3ICsxMjg5LDcgQEAgc3RhdGljIHZvaWQgaW5pdF9j cmNzKGVudW0gcGl4ZWxfZm9ybWF0IGZvcm1hdCwKPiDCoAlmb3IgKHIgPSAwOyByIDwgcGF0dGVy bi0+bl9yZWN0czsgcisrKQo+IMKgCQljcmVhdGVfZmIoZm9ybWF0LCBwcmltX21vZGVfcGFyYW1z Lm1vZGUtPmhkaXNwbGF5LAo+IMKgCQkJwqDCoHByaW1fbW9kZV9wYXJhbXMubW9kZS0+dmRpc3Bs YXksCj4gLQkJCcKgwqBMT0NBTF9JOTE1X0ZPUk1BVF9NT0RfWF9USUxFRCwgUExBTkVfUFJJLAo+ ICZ0bXBfZmJzW3JdKTsKPiArCQkJwqDCoG9wdC50aWxpbmcsIFBMQU5FX1BSSSwgJnRtcF9mYnNb cl0pOwo+IMKgCj4gwqAJZm9yIChyID0gMDsgciA8IHBhdHRlcm4tPm5fcmVjdHM7IHIrKykKPiDC oAkJZmlsbF9mYigmdG1wX2Zic1tyXSwgQ09MT1JfUFJJTV9CRyk7Cj4gQEAgLTIzODYsNyArMjM4 OCw3IEBAIHN0YXRpYyB2b2lkIGZsaXBfc3VidGVzdChjb25zdCBzdHJ1Y3QgdGVzdF9tb2RlCj4g KnQpCj4gwqAJcHJlcGFyZV9zdWJ0ZXN0KHQsIHBhdHRlcm4pOwo+IMKgCj4gwqAJY3JlYXRlX2Zi KHQtPmZvcm1hdCwgcGFyYW1zLT5mYi5mYi0+d2lkdGgsIHBhcmFtcy0+ZmIuZmItCj4gPmhlaWdo dCwKPiAtCQnCoMKgTE9DQUxfSTkxNV9GT1JNQVRfTU9EX1hfVElMRUQsIHQtPnBsYW5lLCAmZmIy KTsKPiArCQnCoMKgb3B0LnRpbGluZywgdC0+cGxhbmUsICZmYjIpOwo+IMKgCWZpbGxfZmIoJmZi MiwgYmdfY29sb3IpOwo+IMKgCW9yaWdfZmIgPSBwYXJhbXMtPmZiLmZiOwo+IMKgCj4gQEAgLTI0 MzIsNyArMjQzNCw3IEBAIHN0YXRpYyB2b2lkIGZsaXB0cmFja19zdWJ0ZXN0KGNvbnN0IHN0cnVj dAo+IHRlc3RfbW9kZSAqdCwgZW51bSBmbGlwX3R5cGUgdHlwZSkKPiDCoAlwcmVwYXJlX3N1YnRl c3QodCwgcGF0dGVybik7Cj4gwqAKPiDCoAljcmVhdGVfZmIodC0+Zm9ybWF0LCBwYXJhbXMtPmZi LmZiLT53aWR0aCwgcGFyYW1zLT5mYi5mYi0KPiA+aGVpZ2h0LAo+IC0JCcKgwqBMT0NBTF9JOTE1 X0ZPUk1BVF9NT0RfWF9USUxFRCwgdC0+cGxhbmUsICZmYjIpOwo+ICsJCcKgwqBvcHQudGlsaW5n LCB0LT5wbGFuZSwgJmZiMik7Cj4gwqAJZmlsbF9mYigmZmIyLCBDT0xPUl9QUklNX0JHKTsKPiDC oAlvcmlnX2ZiID0gcGFyYW1zLT5mYi5mYjsKPiDCoAo+IEBAIC0yNjQzLDcgKzI2NDUsNyBAQCBz dGF0aWMgdm9pZCBmdWxsc2NyZWVuX3BsYW5lX3N1YnRlc3QoY29uc3QKPiBzdHJ1Y3QgdGVzdF9t b2RlICp0KQo+IMKgCXByZXBhcmVfc3VidGVzdCh0LCBwYXR0ZXJuKTsKPiDCoAo+IMKgCXJlY3Qg PSBwYXR0ZXJuLT5nZXRfcmVjdCgmcGFyYW1zLT5mYiwgMCk7Cj4gLQljcmVhdGVfZmIodC0+Zm9y bWF0LCByZWN0LncsIHJlY3QuaCwKPiBMT0NBTF9JOTE1X0ZPUk1BVF9NT0RfWF9USUxFRCwKPiAr CWNyZWF0ZV9mYih0LT5mb3JtYXQsIHJlY3QudywgcmVjdC5oLCBvcHQudGlsaW5nLAo+IMKgCQnC oMKgdC0+cGxhbmUsICZmdWxsc2NyZWVuX2ZiKTsKPiDCoAkvKiBDYWxsIHBpY2tfY29sb3IoKSBh Z2FpbiBzaW5jZSBQUkkgYW5kIFNQUiBtYXkgbm90IHN1cHBvcnQKPiB0aGUgc2FtZQo+IMKgCcKg KiBwaXhlbCBmb3JtYXRzLiAqLwo+IEBAIC0yNzIyLDcgKzI3MjQsNyBAQCBzdGF0aWMgdm9pZCBz Y2FsZWRwcmltYXJ5X3N1YnRlc3QoY29uc3Qgc3RydWN0Cj4gdGVzdF9tb2RlICp0KQo+IMKgCW9s ZF9mYiA9IHBhcmFtcy0+ZmIuZmI7Cj4gwqAKPiDCoAljcmVhdGVfZmIodC0+Zm9ybWF0LCBwYXJh bXMtPmZiLmZiLT53aWR0aCwgcGFyYW1zLT5mYi5mYi0KPiA+aGVpZ2h0LAo+IC0JCcKgwqBMT0NB TF9JOTE1X0ZPUk1BVF9NT0RfWF9USUxFRCwKPiArCQnCoMKgb3B0LnRpbGluZywKPiDCoAkJwqDC oHQtPnBsYW5lLCAmbmV3X2ZiKTsKPiDCoAlmaWxsX2ZiKCZuZXdfZmIsIENPTE9SX0JMVUUpOwo+ IMKgCj4gQEAgLTI4MzIsNyArMjgzNCw3IEBAIHN0YXRpYyB2b2lkIG1vZGVzZXRmcm9tYnVzeV9z dWJ0ZXN0KGNvbnN0Cj4gc3RydWN0IHRlc3RfbW9kZSAqdCkKPiDCoAlwcmVwYXJlX3N1YnRlc3Qo dCwgTlVMTCk7Cj4gwqAKPiDCoAljcmVhdGVfZmIodC0+Zm9ybWF0LCBwYXJhbXMtPmZiLmZiLT53 aWR0aCwgcGFyYW1zLT5mYi5mYi0KPiA+aGVpZ2h0LAo+IC0JCcKgwqBMT0NBTF9JOTE1X0ZPUk1B VF9NT0RfWF9USUxFRCwgdC0+cGxhbmUsICZmYjIpOwo+ICsJCcKgwqBvcHQudGlsaW5nLCB0LT5w bGFuZSwgJmZiMik7Cj4gwqAJZmlsbF9mYigmZmIyLCBDT0xPUl9QUklNX0JHKTsKPiDCoAo+IMKg CXN0YXJ0X2J1c3lfdGhyZWFkKHBhcmFtcy0+ZmIuZmIpOwo+IEBAIC0yOTM3LDcgKzI5MzksNyBA QCBzdGF0aWMgdm9pZCBmYXJmcm9tZmVuY2Vfc3VidGVzdChjb25zdCBzdHJ1Y3QKPiB0ZXN0X21v ZGUgKnQpCj4gwqAJdGFyZ2V0ID0gcGlja190YXJnZXQodCwgcGFyYW1zKTsKPiDCoAo+IMKgCWNy ZWF0ZV9mYih0LT5mb3JtYXQsIHBhcmFtcy0+bW9kZS0+aGRpc3BsYXksIG1heF9oZWlnaHQsCj4g LQkJwqDCoExPQ0FMX0k5MTVfRk9STUFUX01PRF9YX1RJTEVELCB0LT5wbGFuZSwKPiAmdGFsbF9m Yik7Cj4gKwkJwqDCoG9wdC50aWxpbmcsIHQtPnBsYW5lLCAmdGFsbF9mYik7Cj4gwqAKPiDCoAlm aWxsX2ZiKCZ0YWxsX2ZiLCBDT0xPUl9QUklNX0JHKTsKPiDCoAo+IEBAIC0zMDEyLDcgKzMwMTQs NyBAQCBzdGF0aWMgdm9pZCBiYWRzdHJpZGVfc3VidGVzdChjb25zdCBzdHJ1Y3QKPiB0ZXN0X21v ZGUgKnQpCj4gwqAJb2xkX2ZiID0gcGFyYW1zLT5mYi5mYjsKPiDCoAo+IMKgCWNyZWF0ZV9mYih0 LT5mb3JtYXQsIHBhcmFtcy0+ZmIuZmItPndpZHRoICsgNDA5NiwgcGFyYW1zLQo+ID5mYi5mYi0+ aGVpZ2h0LAo+IC0JCcKgwqBMT0NBTF9JOTE1X0ZPUk1BVF9NT0RfWF9USUxFRCwgdC0+cGxhbmUs Cj4gJndpZGVfZmIpOwo+ICsJCcKgwqBvcHQudGlsaW5nLCB0LT5wbGFuZSwgJndpZGVfZmIpOwo+ IMKgCWlndF9hc3NlcnQod2lkZV9mYi5zdHJpZGUgPiAxNjM4NCk7Cj4gwqAKPiDCoAlmaWxsX2Zi KCZ3aWRlX2ZiLCBDT0xPUl9QUklNX0JHKTsKPiBAQCAtMzA3OSw3ICszMDgxLDcgQEAgc3RhdGlj IHZvaWQgc3RyaWRlY2hhbmdlX3N1YnRlc3QoY29uc3Qgc3RydWN0Cj4gdGVzdF9tb2RlICp0KQo+ IMKgCW9sZF9mYiA9IHBhcmFtcy0+ZmIuZmI7Cj4gwqAKPiDCoAljcmVhdGVfZmIodC0+Zm9ybWF0 LCBwYXJhbXMtPmZiLmZiLT53aWR0aCArIDUxMiwgcGFyYW1zLQo+ID5mYi5mYi0+aGVpZ2h0LAo+ IC0JCcKgwqBMT0NBTF9JOTE1X0ZPUk1BVF9NT0RfWF9USUxFRCwgdC0+cGxhbmUsICZuZXdfZmIp Owo+ICsJCcKgwqBvcHQudGlsaW5nLCB0LT5wbGFuZSwgJm5ld19mYik7Cj4gwqAJZmlsbF9mYigm bmV3X2ZiLCBDT0xPUl9QUklNX0JHKTsKPiDCoAo+IMKgCWlndF9hc3NlcnQob2xkX2ZiLT5zdHJp ZGUgIT0gbmV3X2ZiLnN0cmlkZSk7Cj4gQEAgLTMxOTgsNyArMzIwMCw3IEBAIHN0YXRpYyB2b2lk IGJhc2ljX3N1YnRlc3QoY29uc3Qgc3RydWN0Cj4gdGVzdF9tb2RlICp0KQo+IMKgCXByZXBhcmVf c3VidGVzdCh0LCBwYXR0ZXJuKTsKPiDCoAo+IMKgCWNyZWF0ZV9mYih0LT5mb3JtYXQsIHBhcmFt cy0+ZmIuZmItPndpZHRoLCBwYXJhbXMtPmZiLmZiLQo+ID5oZWlnaHQsCj4gLQkJwqDCoExPQ0FM X0k5MTVfRk9STUFUX01PRF9YX1RJTEVELCB0LT5wbGFuZSwgJmZiMik7Cj4gKwkJwqDCoG9wdC50 aWxpbmcsIHQtPnBsYW5lLCAmZmIyKTsKPiDCoAlmYjEgPSBwYXJhbXMtPmZiLmZiOwo+IMKgCj4g wqAJZm9yIChyID0gMCwgbWV0aG9kID0gMDsgbWV0aG9kIDwgSUdUX0RSQVdfTUVUSE9EX0NPVU5U Owo+IG1ldGhvZCsrLCByKyspIHsKPiBAQCAtMzI2Nyw2ICszMjY5LDEyIEBAIHN0YXRpYyBpbnQg b3B0X2hhbmRsZXIoaW50IG9wdGlvbiwgaW50Cj4gb3B0aW9uX2luZGV4LCB2b2lkICpkYXRhKQo+ IMKgCQlpZ3RfYXNzZXJ0X2VxKG9wdC5vbmx5X3BpcGVzLCBQSVBFX0NPVU5UKTsKPiDCoAkJb3B0 Lm9ubHlfcGlwZXMgPSBQSVBFX0RVQUw7Cj4gwqAJCWJyZWFrOwo+ICsJY2FzZSAnbCc6Cj4gKwkJ aWYgKCFzdHJuY21wKG9wdGFyZywgInkiLCAxKSkKPiArCQkJb3B0LnRpbGluZyA9IExPQ0FMX0k5 MTVfRk9STUFUX01PRF9ZX1RJTEVEOwo+ICsJCWVsc2UKPiArCQkJb3B0LnRpbGluZyA9IExPQ0FM X0k5MTVfRk9STUFUX01PRF9YX1RJTEVEOwo+ICsJCWJyZWFrOwo+IMKgCWRlZmF1bHQ6Cj4gwqAJ CWlndF9hc3NlcnQoZmFsc2UpOwo+IMKgCX0KPiBAQCAtMzI4Niw3ICszMjk0LDggQEAgY29uc3Qg Y2hhciAqaGVscF9zdHIgPQo+IMKgIsKgwqAtLXNoYXJlZC1mYi14IG9mZnNldMKgwqDCoMKgwqDC oMKgwqBVc2UgJ29mZnNldCcgYXMgdGhlIFggb2Zmc2V0IGZvciB0aGUKPiBzaGFyZWQgRkJcbiIK PiDCoCLCoMKgLS1zaGFyZWQtZmIteSBvZmZzZXTCoMKgwqDCoMKgwqDCoMKgVXNlICdvZmZzZXQn IGFzIHRoZSBZIG9mZnNldCBmb3IgdGhlCj4gc2hhcmVkIEZCXG4iCj4gwqAiwqDCoC0tMXAtb25s ecKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgT25seSBydW4gc3VidGVzdHMg dGhhdCB1c2UgMSBwaXBlXG4iCj4gLSLCoMKgLS0ycC1vbmx5wqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqBPbmx5IHJ1biBzdWJ0ZXN0cyB0aGF0IHVzZSAyCj4gcGlwZXNcbiI7 Cj4gKyLCoMKgLS0ycC1vbmx5wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBP bmx5IHJ1biBzdWJ0ZXN0cyB0aGF0IHVzZSAyIHBpcGVzXG4iCj4gKyLCoMKgLS10aWxpbmfCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgU2VsZWN0IHRpbGluZyBtb2RlLSd4 JyBvciAneSdcbiI7Cj4gwqAKPiDCoHN0YXRpYyBjb25zdCBjaGFyICpwaXBlc19zdHIoaW50IHBp cGVzKQo+IMKgewo+IEBAIC0zNDI1LDYgKzM0MzQsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hh ciAqYXJndltdKQo+IMKgCQl7ICJzaGFyZWQtZmIteSIswqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoDEsIDAsICd5J30sCj4gwqAJCXsgIjFwLW9ubHkiLMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoDAsIDAsICcxJ30sCj4gwqAJCXsgIjJwLW9ubHkiLMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoDAsIDAsICcyJ30sCj4gKwkJeyAidGlsaW5nIizCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoDEsIDAsICdsJ30sCj4gwqAJCXsgMCwgMCwg MCwgMCB9Cj4gwqAJfTsKPiDCoApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9p bnRlbC1nZngK