From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 2/4] lib/igt_draw: Add Y-tiling support Date: Mon, 24 Oct 2016 20:05:10 +0300 Message-ID: <20161024170510.GL4617@intel.com> References: <1477328158-10817-1-git-send-email-praveen.paneri@intel.com> <1477328158-10817-2-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 A06E86E136 for ; Mon, 24 Oct 2016 17:05:13 +0000 (UTC) Content-Disposition: inline In-Reply-To: <1477328158-10817-2-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 Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBPY3QgMjQsIDIwMTYgYXQgMTA6MjU6NTZQTSArMDUzMCwgUHJhdmVlbiBQYW5lcmkg d3JvdGU6Cj4gVGhpcyBwYXRjaCBhZGRzIFktdGlsaW5nIHN1cHBvcnQgZm9yIGlndF9kcmF3X3Jl Y3QgZnVuY3Rpb24uCj4gCj4gQ2hhbmdlLUlkOiBJMTM5ZTk3NzNiN2RmMjg2ZmViZTlmZmEzZGNl MzU4ZGYwNzlkYWMxNAo+IFNpZ25lZC1vZmYtYnk6IFByYXZlZW4gUGFuZXJpIDxwcmF2ZWVuLnBh bmVyaUBpbnRlbC5jb20+Cj4gLS0tCj4gIGxpYi9pZ3RfZHJhdy5jIHwgMTQ4ICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLQo+ICAxIGZpbGUg Y2hhbmdlZCwgMTEwIGluc2VydGlvbnMoKyksIDM4IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1n aXQgYS9saWIvaWd0X2RyYXcuYyBiL2xpYi9pZ3RfZHJhdy5jCj4gaW5kZXggM2FmYjgyNy4uMjlh NzI1ZiAxMDA2NDQKPiAtLS0gYS9saWIvaWd0X2RyYXcuYwo+ICsrKyBiL2xpYi9pZ3RfZHJhdy5j Cj4gQEAgLTEzNyw3ICsxMzcsNyBAQCBzdGF0aWMgaW50IHN3aXp6bGVfYWRkcihpbnQgYWRkciwg aW50IHN3aXp6bGUpCj4gIC8qIEl0J3MgYWxsIGluICJwaXhlbCBjb29yZGluYXRlcyIsIHNvIG1h a2Ugc3VyZSB5b3UgbXVsdGlwbHkvZGl2aWRlIGJ5IHRoZSBicHAKPiAgICogaWYgeW91IG5lZWQg dG8uICovCj4gIHN0YXRpYyBpbnQgbGluZWFyX3hfeV90b190aWxlZF9wb3MoaW50IHgsIGludCB5 LCB1aW50MzJfdCBzdHJpZGUsIGludCBzd2l6emxlLAo+IC0JCQkJICAgaW50IGJwcCkKPiArCQkJ CSAgIGludCBicHAsIGludCB0aWxpbmcpCj4gIHsKPiAgCWludCB4X3RpbGVfc2l6ZSwgeV90aWxl X3NpemU7Cj4gIAlpbnQgeF90aWxlX24sIHlfdGlsZV9uLCB4X3RpbGVfb2ZmLCB5X3RpbGVfb2Zm Owo+IEBAIC0xNDYsMjMgKzE0Niw1NCBAQCBzdGF0aWMgaW50IGxpbmVhcl94X3lfdG9fdGlsZWRf cG9zKGludCB4LCBpbnQgeSwgdWludDMyX3Qgc3RyaWRlLCBpbnQgc3dpenpsZSwKPiAgCWludCB0 aWxlZF9wb3MsIHRpbGVzX3Blcl9saW5lOwo+ICAJaW50IHBpeGVsX3NpemUgPSBicHAgLyA4Owo+ ICAKPiAtCWxpbmVfc2l6ZSA9IHN0cmlkZTsKPiAtCXhfdGlsZV9zaXplID0gNTEyOwo+IC0JeV90 aWxlX3NpemUgPSA4Owo+IC0JdGlsZV9zaXplID0geF90aWxlX3NpemUgKiB5X3RpbGVfc2l6ZTsK PiAtCXRpbGVzX3Blcl9saW5lID0gbGluZV9zaXplIC8geF90aWxlX3NpemU7Cj4gLQo+IC0JeV90 aWxlX24gPSB5IC8geV90aWxlX3NpemU7Cj4gLQl5X3RpbGVfb2ZmID0geSAlIHlfdGlsZV9zaXpl Owo+IC0KPiAtCXhfdGlsZV9uID0gKHggKiBwaXhlbF9zaXplKSAvIHhfdGlsZV9zaXplOwo+IC0J eF90aWxlX29mZiA9ICh4ICogcGl4ZWxfc2l6ZSkgJSB4X3RpbGVfc2l6ZTsKPiAtCj4gLQl0aWxl X24gPSB5X3RpbGVfbiAqIHRpbGVzX3Blcl9saW5lICsgeF90aWxlX247Cj4gLQl0aWxlX29mZiA9 IHlfdGlsZV9vZmYgKiB4X3RpbGVfc2l6ZSArIHhfdGlsZV9vZmY7Cj4gLQl0aWxlZF9wb3MgPSB0 aWxlX24gKiB0aWxlX3NpemUgKyB0aWxlX29mZjsKPiAtCj4gLQl0aWxlZF9wb3MgPSBzd2l6emxl X2FkZHIodGlsZWRfcG9zLCBzd2l6emxlKTsKPiArCWlmICh0aWxpbmcgPT0gSTkxNV9USUxJTkdf WCApIHsKCldlIHNob3VsZCBhbHJlYWR5IGhhdmUgc29tZSBoZWxwZXJzIHRvIGdldCB5b3UgdGhl IHRpbGUgZGltZW5zaW9ucyBzbwpJIGRvbid0IHRoaW5rIHlvdSBzaG91bGQgaGF2ZSB0byBoYXZl IHRvIGR1cGxpY2F0ZSBhbGwgb2YgdGhpcyBmb3IKZXZlcnkgdGlsaW5nIGZvcm1hdC4gQWxzbyB0 aGlzIGRvZXNuJ3QgZXZlbiBzZWVtIHRvIGJlIGhhbmRsaW5nIHRoZQpnZW4yL2dlbjMgdGlsZSBz aXplcywgc28gd2UnZCBnZXQgbW9zdCBvZiB0aGF0IGZvciBmcmVlIChhcGFydCBmcm9tCnRoZSBp bnRyYSB0aWxlIGxheW91dCkuCgo+ICsJCWxpbmVfc2l6ZSA9IHN0cmlkZTsKPiArCQl4X3RpbGVf c2l6ZSA9IDUxMjsKPiArCQl5X3RpbGVfc2l6ZSA9IDg7Cj4gKwkJdGlsZV9zaXplID0geF90aWxl X3NpemUgKiB5X3RpbGVfc2l6ZTsKPiArCQl0aWxlc19wZXJfbGluZSA9IGxpbmVfc2l6ZSAvIHhf dGlsZV9zaXplOwo+ICsKPiArCQl5X3RpbGVfbiA9IHkgLyB5X3RpbGVfc2l6ZTsKPiArCQl5X3Rp bGVfb2ZmID0geSAlIHlfdGlsZV9zaXplOwo+ICsKPiArCQl4X3RpbGVfbiA9ICh4ICogcGl4ZWxf c2l6ZSkgLyB4X3RpbGVfc2l6ZTsKPiArCQl4X3RpbGVfb2ZmID0gKHggKiBwaXhlbF9zaXplKSAl IHhfdGlsZV9zaXplOwo+ICsKPiArCQl0aWxlX24gPSB5X3RpbGVfbiAqIHRpbGVzX3Blcl9saW5l ICsgeF90aWxlX247Cj4gKwkJdGlsZV9vZmYgPSB5X3RpbGVfb2ZmICogeF90aWxlX3NpemUgKyB4 X3RpbGVfb2ZmOwo+ICsJCXRpbGVkX3BvcyA9IHRpbGVfbiAqIHRpbGVfc2l6ZSArIHRpbGVfb2Zm Owo+ICsKPiArCQl0aWxlZF9wb3MgPSBzd2l6emxlX2FkZHIodGlsZWRfcG9zLCBzd2l6emxlKTsK PiArCX0gZWxzZSB7Cj4gKwkJaW50IHhfb3dvcmRfbiwgeF9vd29yZF9vZmY7Cj4gKwkJaW50IG93 b3JkX3NpemU7Cj4gKwo+ICsJCS8qIFktdGlsZSBhcnJhbmdlbWVudCAqLwo+ICsJCWxpbmVfc2l6 ZSA9IHN0cmlkZTsKPiArCQlvd29yZF9zaXplID0gMTY7Cj4gKwkJeF90aWxlX3NpemUgPSAxMjg7 Cj4gKwkJeV90aWxlX3NpemUgPSAzMjsKPiArCQl0aWxlX3NpemUgPSB4X3RpbGVfc2l6ZSAqIHlf dGlsZV9zaXplOwo+ICsJCXRpbGVzX3Blcl9saW5lID0gbGluZV9zaXplIC8geF90aWxlX3NpemU7 Cj4gKwo+ICsJCXlfdGlsZV9uID0geSAvIHlfdGlsZV9zaXplOwo+ICsJCXlfdGlsZV9vZmYgPSB5 ICUgeV90aWxlX3NpemU7Cj4gKwo+ICsJCXhfdGlsZV9uID0gKHggKiBwaXhlbF9zaXplKSAvIHhf dGlsZV9zaXplOwo+ICsJCXhfdGlsZV9vZmYgPSAoeCAqIHBpeGVsX3NpemUpICUgeF90aWxlX3Np emU7Cj4gKwo+ICsJCXRpbGVfbiA9IHlfdGlsZV9uICogdGlsZXNfcGVyX2xpbmUgKyB4X3RpbGVf bjsKPiArCj4gKwkJLyogY29tcHV0YXRpb24gaW5zaWRlIHRoZSB0aWxlICovCj4gKwkJeF9vd29y ZF9uID0geF90aWxlX29mZiAvIG93b3JkX3NpemU7Cj4gKwkJeF9vd29yZF9vZmYgPSB4X3RpbGVf b2ZmICUgb3dvcmRfc2l6ZTsKPiArCQl0aWxlX29mZiA9IHhfb3dvcmRfbiAqIHlfdGlsZV9zaXpl ICogb3dvcmRfc2l6ZQo+ICsJCQkgICArIHlfdGlsZV9vZmYgKiBvd29yZF9zaXplCj4gKwkJCSAg ICsgeF9vd29yZF9vZmY7Cj4gKwkJdGlsZWRfcG9zID0gdGlsZV9uICogdGlsZV9zaXplICsgdGls ZV9vZmY7Cj4gKwo+ICsJCXRpbGVkX3BvcyA9IHN3aXp6bGVfYWRkcih0aWxlZF9wb3MsIHN3aXp6 bGUpOwo+ICsJfQo+ICAKPiAgCXJldHVybiB0aWxlZF9wb3MgLyBwaXhlbF9zaXplOwo+ICB9Cj4g QEAgLTE3MCw3ICsyMDEsOCBAQCBzdGF0aWMgaW50IGxpbmVhcl94X3lfdG9fdGlsZWRfcG9zKGlu dCB4LCBpbnQgeSwgdWludDMyX3Qgc3RyaWRlLCBpbnQgc3dpenpsZSwKPiAgLyogSXQncyBhbGwg aW4gInBpeGVsIGNvb3JkaW5hdGVzIiwgc28gbWFrZSBzdXJlIHlvdSBtdWx0aXBseS9kaXZpZGUg YnkgdGhlIGJwcAo+ICAgKiBpZiB5b3UgbmVlZCB0by4gKi8KPiAgc3RhdGljIHZvaWQgdGlsZWRf cG9zX3RvX3hfeV9saW5lYXIoaW50IHRpbGVkX3BvcywgdWludDMyX3Qgc3RyaWRlLAo+IC0JCQkJ ICAgIGludCBzd2l6emxlLCBpbnQgYnBwLCBpbnQgKngsIGludCAqeSkKPiArCQkJCSAgICBpbnQg c3dpenpsZSwgaW50IGJwcCwgaW50ICp4LCBpbnQgKnksCj4gKwkJCQkgICAgaW50IHRpbGluZykK PiAgewo+ICAJaW50IHRpbGVfbiwgdGlsZV9vZmYsIHRpbGVzX3Blcl9saW5lLCBsaW5lX3NpemU7 Cj4gIAlpbnQgeF90aWxlX29mZiwgeV90aWxlX29mZjsKPiBAQCAtMTgxLDIyICsyMTMsNTAgQEAg c3RhdGljIHZvaWQgdGlsZWRfcG9zX3RvX3hfeV9saW5lYXIoaW50IHRpbGVkX3BvcywgdWludDMy X3Qgc3RyaWRlLAo+ICAJdGlsZWRfcG9zID0gc3dpenpsZV9hZGRyKHRpbGVkX3Bvcywgc3dpenps ZSk7Cj4gIAo+ICAJbGluZV9zaXplID0gc3RyaWRlOwo+IC0JeF90aWxlX3NpemUgPSA1MTI7Cj4g LQl5X3RpbGVfc2l6ZSA9IDg7Cj4gLQl0aWxlX3NpemUgPSB4X3RpbGVfc2l6ZSAqIHlfdGlsZV9z aXplOwo+IC0JdGlsZXNfcGVyX2xpbmUgPSBsaW5lX3NpemUgLyB4X3RpbGVfc2l6ZTsKPiArCWlm ICh0aWxpbmcgPT0gSTkxNV9USUxJTkdfWCApIHsKPiArCQl4X3RpbGVfc2l6ZSA9IDUxMjsKPiAr CQl5X3RpbGVfc2l6ZSA9IDg7Cj4gKwkJdGlsZV9zaXplID0geF90aWxlX3NpemUgKiB5X3RpbGVf c2l6ZTsKPiArCQl0aWxlc19wZXJfbGluZSA9IGxpbmVfc2l6ZSAvIHhfdGlsZV9zaXplOwo+ICsK PiArCQl0aWxlX24gPSB0aWxlZF9wb3MgLyB0aWxlX3NpemU7Cj4gKwkJdGlsZV9vZmYgPSB0aWxl ZF9wb3MgJSB0aWxlX3NpemU7Cj4gKwo+ICsJCXlfdGlsZV9vZmYgPSB0aWxlX29mZiAvIHhfdGls ZV9zaXplOwo+ICsJCXhfdGlsZV9vZmYgPSB0aWxlX29mZiAlIHhfdGlsZV9zaXplOwo+ICAKPiAt CXRpbGVfbiA9IHRpbGVkX3BvcyAvIHRpbGVfc2l6ZTsKPiAtCXRpbGVfb2ZmID0gdGlsZWRfcG9z ICUgdGlsZV9zaXplOwo+ICsJCXhfdGlsZV9uID0gdGlsZV9uICUgdGlsZXNfcGVyX2xpbmU7Cj4g KwkJeV90aWxlX24gPSB0aWxlX24gLyB0aWxlc19wZXJfbGluZTsKPiArCj4gKwkJKnggPSAoeF90 aWxlX24gKiB4X3RpbGVfc2l6ZSArIHhfdGlsZV9vZmYpIC8gcGl4ZWxfc2l6ZTsKPiArCQkqeSA9 IHlfdGlsZV9uICogeV90aWxlX3NpemUgKyB5X3RpbGVfb2ZmOwo+ICsJfSBlbHNlIHsKPiArCQlp bnQgeF9vd29yZF9uLCB4X293b3JkX29mZjsKPiArCQlpbnQgb3dvcmRfc2l6ZTsKPiAgCj4gLQl5 X3RpbGVfb2ZmID0gdGlsZV9vZmYgLyB4X3RpbGVfc2l6ZTsKPiAtCXhfdGlsZV9vZmYgPSB0aWxl X29mZiAlIHhfdGlsZV9zaXplOwo+ICsJCW93b3JkX3NpemUgPSAxNjsKPiArCQl4X3RpbGVfc2l6 ZSA9IDEyODsKPiArCQl5X3RpbGVfc2l6ZSA9IDMyOwo+ICsJCXRpbGVfc2l6ZSA9IHhfdGlsZV9z aXplICogeV90aWxlX3NpemU7Cj4gKwkJdGlsZXNfcGVyX2xpbmUgPSBsaW5lX3NpemUgLyB4X3Rp bGVfc2l6ZTsKPiAgCj4gLQl4X3RpbGVfbiA9IHRpbGVfbiAlIHRpbGVzX3Blcl9saW5lOwo+IC0J eV90aWxlX24gPSB0aWxlX24gLyB0aWxlc19wZXJfbGluZTsKPiArCQl0aWxlX24gPSB0aWxlZF9w b3MgLyB0aWxlX3NpemU7Cj4gKwkJdGlsZV9vZmYgPSB0aWxlZF9wb3MgJSB0aWxlX3NpemU7Cj4g IAo+IC0JKnggPSAoeF90aWxlX24gKiB4X3RpbGVfc2l6ZSArIHhfdGlsZV9vZmYpIC8gcGl4ZWxf c2l6ZTsKPiAtCSp5ID0geV90aWxlX24gKiB5X3RpbGVfc2l6ZSArIHlfdGlsZV9vZmY7Cj4gKwkJ eF90aWxlX24gPSB0aWxlX24gJSB0aWxlc19wZXJfbGluZTsKPiArCQl5X3RpbGVfbiA9IHRpbGVf biAvIHRpbGVzX3Blcl9saW5lOwo+ICsKPiArCQl4X293b3JkX24gPSB0aWxlX29mZiAvIChvd29y ZF9zaXplICogeV90aWxlX3NpemUpOwo+ICsJCXhfb3dvcmRfb2ZmID0gdGlsZV9vZmYgJSBvd29y ZF9zaXplOwo+ICsKPiArCQl4X3RpbGVfb2ZmID0geF9vd29yZF9uICogb3dvcmRfc2l6ZSArIHhf b3dvcmRfb2ZmOwo+ICsJCXlfdGlsZV9vZmYgPSAodGlsZV9vZmYgLSB4X293b3JkX24gKiBvd29y ZF9zaXplICogeV90aWxlX3NpemUpCj4gKwkJCSAgICAgLyBvd29yZF9zaXplOwo+ICsKPiArCQkq eCA9ICh4X3RpbGVfbiAqIHhfdGlsZV9zaXplICsgeF90aWxlX29mZikgLyBwaXhlbF9zaXplOwo+ ICsJCSp5ID0geV90aWxlX24gKiB5X3RpbGVfc2l6ZSArIHlfdGlsZV9vZmY7Cj4gKwo+ICsJfQo+ ICB9Cj4gIAo+ICBzdGF0aWMgdm9pZCBzZXRfcGl4ZWwodm9pZCAqX3B0ciwgaW50IGluZGV4LCB1 aW50MzJfdCBjb2xvciwgaW50IGJwcCkKPiBAQCAtMjI1LDE0ICsyODUsMTUgQEAgc3RhdGljIHZv aWQgZHJhd19yZWN0X3B0cl9saW5lYXIodm9pZCAqcHRyLCB1aW50MzJfdCBzdHJpZGUsCj4gIH0K PiAgCj4gIHN0YXRpYyB2b2lkIGRyYXdfcmVjdF9wdHJfdGlsZWQodm9pZCAqcHRyLCB1aW50MzJf dCBzdHJpZGUsIGludCBzd2l6emxlLAo+IC0JCQkJc3RydWN0IHJlY3QgKnJlY3QsIHVpbnQzMl90 IGNvbG9yLCBpbnQgYnBwKQo+ICsJCQkJc3RydWN0IHJlY3QgKnJlY3QsIHVpbnQzMl90IGNvbG9y LCBpbnQgYnBwLAo+ICsJCQkJaW50IHRpbGluZykKPiAgewo+ICAJaW50IHgsIHksIHBvczsKPiAg Cj4gIAlmb3IgKHkgPSByZWN0LT55OyB5IDwgcmVjdC0+eSArIHJlY3QtPmg7IHkrKykgewo+ICAJ CWZvciAoeCA9IHJlY3QtPng7IHggPCByZWN0LT54ICsgcmVjdC0+dzsgeCsrKSB7Cj4gIAkJCXBv cyA9IGxpbmVhcl94X3lfdG9fdGlsZWRfcG9zKHgsIHksIHN0cmlkZSwgc3dpenpsZSwKPiAtCQkJ CQkJICAgICAgYnBwKTsKPiArCQkJCQkJICAgICAgYnBwLCB0aWxpbmcpOwo+ICAJCQlzZXRfcGl4 ZWwocHRyLCBwb3MsIGNvbG9yLCBicHApOwo+ICAJCX0KPiAgCX0KPiBAQCAtMjYwLDcgKzMyMSwx MSBAQCBzdGF0aWMgdm9pZCBkcmF3X3JlY3RfbW1hcF9jcHUoaW50IGZkLCBzdHJ1Y3QgYnVmX2Rh dGEgKmJ1Ziwgc3RydWN0IHJlY3QgKnJlY3QsCj4gIAkJYnJlYWs7Cj4gIAljYXNlIEk5MTVfVElM SU5HX1g6Cj4gIAkJZHJhd19yZWN0X3B0cl90aWxlZChwdHIsIGJ1Zi0+c3RyaWRlLCBzd2l6emxl LCByZWN0LCBjb2xvciwKPiAtCQkJCSAgICBidWYtPmJwcCk7Cj4gKwkJCQkgICAgYnVmLT5icHAs IHRpbGluZyk7Cj4gKwkJYnJlYWs7Cj4gKwljYXNlIEk5MTVfVElMSU5HX1k6Cj4gKwkJZHJhd19y ZWN0X3B0cl90aWxlZChwdHIsIGJ1Zi0+c3RyaWRlLCBzd2l6emxlLCByZWN0LCBjb2xvciwKPiAr CQkJCSAgICBidWYtPmJwcCwgdGlsaW5nKTsKPiAgCQlicmVhazsKPiAgCWRlZmF1bHQ6Cj4gIAkJ aWd0X2Fzc2VydChmYWxzZSk7Cj4gQEAgLTMxMCw3ICszNzUsMTEgQEAgc3RhdGljIHZvaWQgZHJh d19yZWN0X21tYXBfd2MoaW50IGZkLCBzdHJ1Y3QgYnVmX2RhdGEgKmJ1Ziwgc3RydWN0IHJlY3Qg KnJlY3QsCj4gIAkJYnJlYWs7Cj4gIAljYXNlIEk5MTVfVElMSU5HX1g6Cj4gIAkJZHJhd19yZWN0 X3B0cl90aWxlZChwdHIsIGJ1Zi0+c3RyaWRlLCBzd2l6emxlLCByZWN0LCBjb2xvciwKPiAtCQkJ CSAgICBidWYtPmJwcCk7Cj4gKwkJCQkgICAgYnVmLT5icHAsIHRpbGluZyk7Cj4gKwkJYnJlYWs7 Cj4gKwljYXNlIEk5MTVfVElMSU5HX1k6Cj4gKwkJZHJhd19yZWN0X3B0cl90aWxlZChwdHIsIGJ1 Zi0+c3RyaWRlLCBzd2l6emxlLCByZWN0LCBjb2xvciwKPiArCQkJCSAgICBidWYtPmJwcCwgdGls aW5nKTsKPiAgCQlicmVhazsKPiAgCWRlZmF1bHQ6Cj4gIAkJaWd0X2Fzc2VydChmYWxzZSk7Cj4g QEAgLTMzOCw3ICs0MDcsNyBAQCBzdGF0aWMgdm9pZCBkcmF3X3JlY3RfcHdyaXRlX3VudGlsZWQo aW50IGZkLCBzdHJ1Y3QgYnVmX2RhdGEgKmJ1ZiwKPiAgCj4gIHN0YXRpYyB2b2lkIGRyYXdfcmVj dF9wd3JpdGVfdGlsZWQoaW50IGZkLCBzdHJ1Y3QgYnVmX2RhdGEgKmJ1ZiwKPiAgCQkJCSAgIHN0 cnVjdCByZWN0ICpyZWN0LCB1aW50MzJfdCBjb2xvciwKPiAtCQkJCSAgIHVpbnQzMl90IHN3aXp6 bGUpCj4gKwkJCQkgICB1aW50MzJfdCBzd2l6emxlLCBpbnQgdGlsaW5nKQo+ICB7Cj4gIAlpbnQg aTsKPiAgCWludCB0aWxlZF9wb3MsIHgsIHksIHBpeGVsX3NpemU7Cj4gQEAgLTM2Miw3ICs0MzEs NyBAQCBzdGF0aWMgdm9pZCBkcmF3X3JlY3RfcHdyaXRlX3RpbGVkKGludCBmZCwgc3RydWN0IGJ1 Zl9kYXRhICpidWYsCj4gIAo+ICAJZm9yICh0aWxlZF9wb3MgPSAwOyB0aWxlZF9wb3MgPCBidWYt PnNpemU7IHRpbGVkX3BvcyArPSBwaXhlbF9zaXplKSB7Cj4gIAkJdGlsZWRfcG9zX3RvX3hfeV9s aW5lYXIodGlsZWRfcG9zLCBidWYtPnN0cmlkZSwgc3dpenpsZSwKPiAtCQkJCQlidWYtPmJwcCwg JngsICZ5KTsKPiArCQkJCQlidWYtPmJwcCwgJngsICZ5LCB0aWxpbmcpOwo+ICAKPiAgCQlpZiAo eCA+PSByZWN0LT54ICYmIHggPCByZWN0LT54ICsgcmVjdC0+dyAmJgo+ICAJCSAgICB5ID49IHJl Y3QtPnkgJiYgeSA8IHJlY3QtPnkgKyByZWN0LT5oKSB7Cj4gQEAgLTM5OSw3ICs0NjgsMTAgQEAg c3RhdGljIHZvaWQgZHJhd19yZWN0X3B3cml0ZShpbnQgZmQsIHN0cnVjdCBidWZfZGF0YSAqYnVm LAo+ICAJCWRyYXdfcmVjdF9wd3JpdGVfdW50aWxlZChmZCwgYnVmLCByZWN0LCBjb2xvcik7Cj4g IAkJYnJlYWs7Cj4gIAljYXNlIEk5MTVfVElMSU5HX1g6Cj4gLQkJZHJhd19yZWN0X3B3cml0ZV90 aWxlZChmZCwgYnVmLCByZWN0LCBjb2xvciwgc3dpenpsZSk7Cj4gKwkJZHJhd19yZWN0X3B3cml0 ZV90aWxlZChmZCwgYnVmLCByZWN0LCBjb2xvciwgc3dpenpsZSwgdGlsaW5nKTsKPiArCQlicmVh azsKPiArCWNhc2UgSTkxNV9USUxJTkdfWToKPiArCQlkcmF3X3JlY3RfcHdyaXRlX3RpbGVkKGZk LCBidWYsIHJlY3QsIGNvbG9yLCBzd2l6emxlLCB0aWxpbmcpOwo+ICAJCWJyZWFrOwo+ICAJZGVm YXVsdDoKPiAgCQlpZ3RfYXNzZXJ0KGZhbHNlKTsKPiAtLSAKPiAxLjkuMQo+IAo+IF9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gSW50ZWwtZ2Z4IG1haWxp bmcgbGlzdAo+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAoKLS0gClZpbGxlIFN5 cmrDpGzDpApJbnRlbCBPVEMKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50 ZWwtZ2Z4Cg==