From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kahola Subject: Re: [PATCH i-g-t v2 2/9] tests/kms_plane_scaling: Move the actual test to its own function. Date: Mon, 15 Jan 2018 10:47:19 +0200 Message-ID: <1516006039.12453.87.camel@intel.com> References: <20180112102116.4670-1-maarten.lankhorst@linux.intel.com> <20180112102116.4670-3-maarten.lankhorst@linux.intel.com> Reply-To: mika.kahola@intel.com Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0B7A289F45 for ; Mon, 15 Jan 2018 08:46:39 +0000 (UTC) In-Reply-To: <20180112102116.4670-3-maarten.lankhorst@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Maarten Lankhorst , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCAyMDE4LTAxLTEyIGF0IDExOjIxICswMTAwLCBNYWFydGVuIExhbmtob3JzdCB3cm90 ZToKPiBXZSB3aWxsIGFkZCBtb3JlIHN1YnRlc3RzIGluIHRoZSBmdXR1cmUsIGl0J3MgbW9yZSBj bGVhciBpZiB3ZSBzcGxpdAo+IG91dCB0aGUgYWN0dWFsIHRlc3QgdG8gaXRzIG93biBmdW5jdGlv biBmaXJzdC4KPiAKUmV2aWV3ZWQtYnk6IE1pa2EgS2Fob2xhIDxtaWthLmthaG9sYUBpbnRlbC5j b20+Cgo+IFNpZ25lZC1vZmYtYnk6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVuLmxhbmtob3Jz dEBsaW51eC5pbnRlbC5jb20+Cj4gLS0tCj4gwqB0ZXN0cy9rbXNfcGxhbmVfc2NhbGluZy5jIHwg MjI2ICsrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0KPiAtLS0tLS0tLS0tLS0KPiDC oDEgZmlsZSBjaGFuZ2VkLCAxMTcgaW5zZXJ0aW9ucygrKSwgMTA5IGRlbGV0aW9ucygtKQo+IAo+ IGRpZmYgLS1naXQgYS90ZXN0cy9rbXNfcGxhbmVfc2NhbGluZy5jIGIvdGVzdHMva21zX3BsYW5l X3NjYWxpbmcuYwo+IGluZGV4IDQwM2RmNDdlMmQzYi4uMzdlMDUxNThiOTY4IDEwMDY0NAo+IC0t LSBhL3Rlc3RzL2ttc19wbGFuZV9zY2FsaW5nLmMKPiArKysgYi90ZXN0cy9rbXNfcGxhbmVfc2Nh bGluZy5jCj4gQEAgLTE2MywxNDQgKzE2MywxNTEgQEAgc3RhdGljIHZvaWQgaXRlcmF0ZV9wbGFu ZV9zY2FsaW5nKGRhdGFfdCAqZCwKPiBkcm1Nb2RlTW9kZUluZm8gKm1vZGUpCj4gwqAJfQo+IMKg fQo+IMKgCj4gLXN0YXRpYyB2b2lkIHRlc3RfcGxhbmVfc2NhbGluZyhkYXRhX3QgKmQpCj4gK3N0 YXRpYyB2b2lkCj4gK3Rlc3RfcGxhbmVfc2NhbGluZ19vbl9waXBlKGRhdGFfdCAqZCwgZW51bSBw aXBlIHBpcGUsIGlndF9vdXRwdXRfdAo+ICpvdXRwdXQpCj4gwqB7Cj4gwqAJaWd0X2Rpc3BsYXlf dCAqZGlzcGxheSA9ICZkLT5kaXNwbGF5Owo+IC0JaWd0X291dHB1dF90ICpvdXRwdXQ7Cj4gLQll bnVtIHBpcGUgcGlwZTsKPiAtCWludCB2YWxpZF90ZXN0cyA9IDA7Cj4gKwlkcm1Nb2RlTW9kZUlu Zm8gKm1vZGU7Cj4gwqAJaW50IHByaW1hcnlfcGxhbmVfc2NhbGluZyA9IDA7IC8qIEZvciBub3cg Ki8KPiDCoAo+IC0JaWd0X3JlcXVpcmUoZC0+bnVtX3NjYWxlcnMpOwo+ICsJaWd0X291dHB1dF9z ZXRfcGlwZShvdXRwdXQsIHBpcGUpOwo+ICsJbW9kZSA9IGlndF9vdXRwdXRfZ2V0X21vZGUob3V0 cHV0KTsKPiArCj4gKwkvKiBhbGxvY2F0ZSBmYjIgd2l0aCBpbWFnZSBzaXplICovCj4gKwlkLT5m Yl9pZDIgPSBpZ3RfY3JlYXRlX2ltYWdlX2ZiKGQtPmRybV9mZCwgMCwgMCwKPiArCQkJCQlEUk1f Rk9STUFUX1hSR0I4ODg4LAo+ICsJCQkJCUxPQ0FMX0k5MTVfRk9STUFUX01PRF9YX1RJTEUKPiBE LCAvKiB0aWxlZCAqLwo+ICsJCQkJCUZJTEVfTkFNRSwgJmQtPmZiMik7Cj4gKwlpZ3RfYXNzZXJ0 KGQtPmZiX2lkMik7Cj4gKwo+ICsJZC0+ZmJfaWQzID0gaWd0X2NyZWF0ZV9wYXR0ZXJuX2ZiKGQt PmRybV9mZCwKPiArCQkJCQnCoMKgbW9kZS0+aGRpc3BsYXksIG1vZGUtCj4gPnZkaXNwbGF5LAo+ ICsJCQkJCcKgwqBEUk1fRk9STUFUX1hSR0I4ODg4LAo+ICsJCQkJCcKgwqBMT0NBTF9JOTE1X0ZP Uk1BVF9NT0RfWF9USQo+IExFRCwgLyogdGlsZWQgKi8KPiArCQkJCQnCoMKgJmQtPmZiMyk7Cj4g KwlpZ3RfYXNzZXJ0KGQtPmZiX2lkMyk7Cj4gKwo+ICsJLyogU2V0IHVwIGRpc3BsYXkgd2l0aCBw bGFuZSAxICovCj4gKwlkLT5wbGFuZTEgPSBpZ3Rfb3V0cHV0X2dldF9wbGFuZShvdXRwdXQsIDAp Owo+ICsJcHJlcGFyZV9jcnRjKGQsIG91dHB1dCwgcGlwZSwgZC0+cGxhbmUxLCBtb2RlLAo+IENP TU1JVF9VTklWRVJTQUwpOwo+ICsKPiArCWlmIChwcmltYXJ5X3BsYW5lX3NjYWxpbmcpIHsKPiAr CQkvKiBQcmltYXJ5IHBsYW5lIHVwc2NhbGluZyAqLwo+ICsJCWlndF9mYl9zZXRfcG9zaXRpb24o JmQtPmZiMSwgZC0+cGxhbmUxLCAxMDAsIDEwMCk7Cj4gKwkJaWd0X2ZiX3NldF9zaXplKCZkLT5m YjEsIGQtPnBsYW5lMSwgNTAwLCA1MDApOwo+ICsJCWlndF9wbGFuZV9zZXRfcG9zaXRpb24oZC0+ cGxhbmUxLCAwLCAwKTsKPiArCQlpZ3RfcGxhbmVfc2V0X3NpemUoZC0+cGxhbmUxLCBtb2RlLT5o ZGlzcGxheSwgbW9kZS0KPiA+dmRpc3BsYXkpOwo+ICsJCWlndF9kaXNwbGF5X2NvbW1pdDIoZGlz cGxheSwgQ09NTUlUX1VOSVZFUlNBTCk7Cj4gwqAKPiAtCWZvcl9lYWNoX3BpcGVfd2l0aF92YWxp ZF9vdXRwdXQoZGlzcGxheSwgcGlwZSwgb3V0cHV0KSB7Cj4gLQkJZHJtTW9kZU1vZGVJbmZvICpt b2RlOwo+IC0KPiAtCQlpZ3Rfb3V0cHV0X3NldF9waXBlKG91dHB1dCwgcGlwZSk7Cj4gLQo+IC0J CW1vZGUgPSBpZ3Rfb3V0cHV0X2dldF9tb2RlKG91dHB1dCk7Cj4gLQo+IC0JCS8qIGFsbG9jYXRl IGZiMiB3aXRoIGltYWdlIHNpemUgKi8KPiAtCQlkLT5mYl9pZDIgPSBpZ3RfY3JlYXRlX2ltYWdl X2ZiKGQtPmRybV9mZCwgMCwgMCwKPiAtCQkJCQkJRFJNX0ZPUk1BVF9YUkdCODg4OCwKPiAtCQkJ CQkJTE9DQUxfSTkxNV9GT1JNQVRfTU8KPiBEX1hfVElMRUQsIC8qIHRpbGVkICovCj4gLQkJCQkJ CUZJTEVfTkFNRSwgJmQtPmZiMik7Cj4gLQkJaWd0X2Fzc2VydChkLT5mYl9pZDIpOwo+IC0KPiAt CQlkLT5mYl9pZDMgPSBpZ3RfY3JlYXRlX3BhdHRlcm5fZmIoZC0+ZHJtX2ZkLAo+IC0JCQkJCQnC oMKgbW9kZS0+aGRpc3BsYXksCj4gbW9kZS0+dmRpc3BsYXksCj4gLQkJCQkJCcKgwqBEUk1fRk9S TUFUX1hSR0I4ODgKPiA4LAo+IC0JCQkJCQnCoMKgTE9DQUxfSTkxNV9GT1JNQVRfCj4gTU9EX1hf VElMRUQsIC8qIHRpbGVkICovCj4gLQkJCQkJCcKgwqAmZC0+ZmIzKTsKPiAtCQlpZ3RfYXNzZXJ0 KGQtPmZiX2lkMyk7Cj4gLQo+IC0JCS8qIFNldCB1cCBkaXNwbGF5IHdpdGggcGxhbmUgMSAqLwo+ IC0JCWQtPnBsYW5lMSA9IGlndF9vdXRwdXRfZ2V0X3BsYW5lKG91dHB1dCwgMCk7Cj4gLQkJcHJl cGFyZV9jcnRjKGQsIG91dHB1dCwgcGlwZSwgZC0+cGxhbmUxLCBtb2RlLAo+IENPTU1JVF9VTklW RVJTQUwpOwo+IC0KPiAtCQlpZiAocHJpbWFyeV9wbGFuZV9zY2FsaW5nKSB7Cj4gLQkJCS8qIFBy aW1hcnkgcGxhbmUgdXBzY2FsaW5nICovCj4gLQkJCWlndF9mYl9zZXRfcG9zaXRpb24oJmQtPmZi MSwgZC0+cGxhbmUxLCAxMDAsCj4gMTAwKTsKPiAtCQkJaWd0X2ZiX3NldF9zaXplKCZkLT5mYjEs IGQtPnBsYW5lMSwgNTAwLAo+IDUwMCk7Cj4gLQkJCWlndF9wbGFuZV9zZXRfcG9zaXRpb24oZC0+ cGxhbmUxLCAwLCAwKTsKPiAtCQkJaWd0X3BsYW5lX3NldF9zaXplKGQtPnBsYW5lMSwgbW9kZS0K PiA+aGRpc3BsYXksIG1vZGUtPnZkaXNwbGF5KTsKPiAtCQkJaWd0X2Rpc3BsYXlfY29tbWl0Mihk aXNwbGF5LAo+IENPTU1JVF9VTklWRVJTQUwpOwo+ICsJCS8qIFByaW1hcnkgcGxhbmUgMToxIG5v IHNjYWxpbmcgKi8KPiArCQlpZ3RfZmJfc2V0X3Bvc2l0aW9uKCZkLT5mYjEsIGQtPnBsYW5lMSwg MCwgMCk7Cj4gKwkJaWd0X2ZiX3NldF9zaXplKCZkLT5mYjEsIGQtPnBsYW5lMSwgZC0+ZmIxLndp ZHRoLCBkLQo+ID5mYjEuaGVpZ2h0KTsKPiArCQlpZ3RfcGxhbmVfc2V0X3Bvc2l0aW9uKGQtPnBs YW5lMSwgMCwgMCk7Cj4gKwkJaWd0X3BsYW5lX3NldF9zaXplKGQtPnBsYW5lMSwgbW9kZS0+aGRp c3BsYXksIG1vZGUtCj4gPnZkaXNwbGF5KTsKPiArCQlpZ3RfZGlzcGxheV9jb21taXQyKGRpc3Bs YXksIENPTU1JVF9VTklWRVJTQUwpOwo+ICsJfQo+IMKgCj4gLQkJCS8qIFByaW1hcnkgcGxhbmUg MToxIG5vIHNjYWxpbmcgKi8KPiAtCQkJaWd0X2ZiX3NldF9wb3NpdGlvbigmZC0+ZmIxLCBkLT5w bGFuZTEsIDAsCj4gMCk7Cj4gLQkJCWlndF9mYl9zZXRfc2l6ZSgmZC0+ZmIxLCBkLT5wbGFuZTEs IGQtCj4gPmZiMS53aWR0aCwgZC0+ZmIxLmhlaWdodCk7Cj4gLQkJCWlndF9wbGFuZV9zZXRfcG9z aXRpb24oZC0+cGxhbmUxLCAwLCAwKTsKPiAtCQkJaWd0X3BsYW5lX3NldF9zaXplKGQtPnBsYW5l MSwgbW9kZS0KPiA+aGRpc3BsYXksIG1vZGUtPnZkaXNwbGF5KTsKPiAtCQkJaWd0X2Rpc3BsYXlf Y29tbWl0MihkaXNwbGF5LAo+IENPTU1JVF9VTklWRVJTQUwpOwo+IC0JCX0KPiArCS8qIFNldCB1 cCBmYjItPnBsYW5lMiBtYXBwaW5nLiAqLwo+ICsJZC0+cGxhbmUyID0gaWd0X291dHB1dF9nZXRf cGxhbmUob3V0cHV0LCAxKTsKPiArCWlndF9wbGFuZV9zZXRfZmIoZC0+cGxhbmUyLCAmZC0+ZmIy KTsKPiDCoAo+IC0JCS8qIFNldCB1cCBmYjItPnBsYW5lMiBtYXBwaW5nLiAqLwo+IC0JCWQtPnBs YW5lMiA9IGlndF9vdXRwdXRfZ2V0X3BsYW5lKG91dHB1dCwgMSk7Cj4gLQkJaWd0X3BsYW5lX3Nl dF9mYihkLT5wbGFuZTIsICZkLT5mYjIpOwo+ICsJLyogMm5kIHBsYW5lIHdpbmRvd2VkICovCj4g KwlpZ3RfZmJfc2V0X3Bvc2l0aW9uKCZkLT5mYjIsIGQtPnBsYW5lMiwgMTAwLCAxMDApOwo+ICsJ aWd0X2ZiX3NldF9zaXplKCZkLT5mYjIsIGQtPnBsYW5lMiwgZC0+ZmIyLndpZHRoLTIwMCwgZC0K PiA+ZmIyLmhlaWdodC0yMDApOwo+ICsJaWd0X3BsYW5lX3NldF9wb3NpdGlvbihkLT5wbGFuZTIs IDEwMCwgMTAwKTsKPiArCWlndF9wbGFuZV9zZXRfc2l6ZShkLT5wbGFuZTIsIG1vZGUtPmhkaXNw bGF5LTIwMCwgbW9kZS0KPiA+dmRpc3BsYXktMjAwKTsKPiArCWlndF9kaXNwbGF5X2NvbW1pdDIo ZGlzcGxheSwgQ09NTUlUX1VOSVZFUlNBTCk7Cj4gwqAKPiAtCQkvKiAybmQgcGxhbmUgd2luZG93 ZWQgKi8KPiAtCQlpZ3RfZmJfc2V0X3Bvc2l0aW9uKCZkLT5mYjIsIGQtPnBsYW5lMiwgMTAwLCAx MDApOwo+IC0JCWlndF9mYl9zZXRfc2l6ZSgmZC0+ZmIyLCBkLT5wbGFuZTIsIGQtPmZiMi53aWR0 aC0KPiAyMDAsIGQtPmZiMi5oZWlnaHQtMjAwKTsKPiAtCQlpZ3RfcGxhbmVfc2V0X3Bvc2l0aW9u KGQtPnBsYW5lMiwgMTAwLCAxMDApOwo+IC0JCWlndF9wbGFuZV9zZXRfc2l6ZShkLT5wbGFuZTIs IG1vZGUtPmhkaXNwbGF5LTIwMCwKPiBtb2RlLT52ZGlzcGxheS0yMDApOwo+IC0JCWlndF9kaXNw bGF5X2NvbW1pdDIoZGlzcGxheSwgQ09NTUlUX1VOSVZFUlNBTCk7Cj4gKwlpdGVyYXRlX3BsYW5l X3NjYWxpbmcoZCwgbW9kZSk7Cj4gwqAKPiAtCQlpdGVyYXRlX3BsYW5lX3NjYWxpbmcoZCwgbW9k ZSk7Cj4gKwkvKiAybmQgcGxhbmUgdXAgc2NhbGluZyAqLwo+ICsJaWd0X2ZiX3NldF9wb3NpdGlv bigmZC0+ZmIyLCBkLT5wbGFuZTIsIDEwMCwgMTAwKTsKPiArCWlndF9mYl9zZXRfc2l6ZSgmZC0+ ZmIyLCBkLT5wbGFuZTIsIDUwMCwgNTAwKTsKPiArCWlndF9wbGFuZV9zZXRfcG9zaXRpb24oZC0+ cGxhbmUyLCAxMCwgMTApOwo+ICsJaWd0X3BsYW5lX3NldF9zaXplKGQtPnBsYW5lMiwgbW9kZS0+ aGRpc3BsYXktMjAsIG1vZGUtCj4gPnZkaXNwbGF5LTIwKTsKPiArCWlndF9kaXNwbGF5X2NvbW1p dDIoZGlzcGxheSwgQ09NTUlUX1VOSVZFUlNBTCk7Cj4gwqAKPiAtCQkvKiAybmQgcGxhbmUgdXAg c2NhbGluZyAqLwo+IC0JCWlndF9mYl9zZXRfcG9zaXRpb24oJmQtPmZiMiwgZC0+cGxhbmUyLCAx MDAsIDEwMCk7Cj4gLQkJaWd0X2ZiX3NldF9zaXplKCZkLT5mYjIsIGQtPnBsYW5lMiwgNTAwLCA1 MDApOwo+IC0JCWlndF9wbGFuZV9zZXRfcG9zaXRpb24oZC0+cGxhbmUyLCAxMCwgMTApOwo+IC0J CWlndF9wbGFuZV9zZXRfc2l6ZShkLT5wbGFuZTIsIG1vZGUtPmhkaXNwbGF5LTIwLAo+IG1vZGUt PnZkaXNwbGF5LTIwKTsKPiAtCQlpZ3RfZGlzcGxheV9jb21taXQyKGRpc3BsYXksIENPTU1JVF9V TklWRVJTQUwpOwo+ICsJLyogMm5kIHBsYW5lIGRvd25zY2FsaW5nICovCj4gKwlpZ3RfZmJfc2V0 X3Bvc2l0aW9uKCZkLT5mYjIsIGQtPnBsYW5lMiwgMCwgMCk7Cj4gKwlpZ3RfZmJfc2V0X3NpemUo JmQtPmZiMiwgZC0+cGxhbmUyLCBkLT5mYjIud2lkdGgsIGQtCj4gPmZiMi5oZWlnaHQpOwo+ICsJ aWd0X3BsYW5lX3NldF9wb3NpdGlvbihkLT5wbGFuZTIsIDEwLCAxMCk7Cj4gKwlpZ3RfcGxhbmVf c2V0X3NpemUoZC0+cGxhbmUyLCA1MDAsIDUwMCAqIGQtPmZiMi5oZWlnaHQvZC0KPiA+ZmIyLndp ZHRoKTsKPiArCWlndF9kaXNwbGF5X2NvbW1pdDIoZGlzcGxheSwgQ09NTUlUX1VOSVZFUlNBTCk7 Cj4gwqAKPiAtCQkvKiAybmQgcGxhbmUgZG93bnNjYWxpbmcgKi8KPiAtCQlpZ3RfZmJfc2V0X3Bv c2l0aW9uKCZkLT5mYjIsIGQtPnBsYW5lMiwgMCwgMCk7Cj4gLQkJaWd0X2ZiX3NldF9zaXplKCZk LT5mYjIsIGQtPnBsYW5lMiwgZC0+ZmIyLndpZHRoLCBkLQo+ID5mYjIuaGVpZ2h0KTsKPiAtCQlp Z3RfcGxhbmVfc2V0X3Bvc2l0aW9uKGQtPnBsYW5lMiwgMTAsIDEwKTsKPiAtCQlpZ3RfcGxhbmVf c2V0X3NpemUoZC0+cGxhbmUyLCA1MDAsIDUwMCAqIGQtCj4gPmZiMi5oZWlnaHQvZC0+ZmIyLndp ZHRoKTsKPiArCWlmIChwcmltYXJ5X3BsYW5lX3NjYWxpbmcpIHsKPiArCQkvKiBQcmltYXJ5IHBs YW5lIHVwIHNjYWxpbmcgKi8KPiArCQlpZ3RfZmJfc2V0X3Bvc2l0aW9uKCZkLT5mYjEsIGQtPnBs YW5lMSwgMTAwLCAxMDApOwo+ICsJCWlndF9mYl9zZXRfc2l6ZSgmZC0+ZmIxLCBkLT5wbGFuZTEs IDUwMCwgNTAwKTsKPiArCQlpZ3RfcGxhbmVfc2V0X3Bvc2l0aW9uKGQtPnBsYW5lMSwgMCwgMCk7 Cj4gKwkJaWd0X3BsYW5lX3NldF9zaXplKGQtPnBsYW5lMSwgbW9kZS0+aGRpc3BsYXksIG1vZGUt Cj4gPnZkaXNwbGF5KTsKPiDCoAkJaWd0X2Rpc3BsYXlfY29tbWl0MihkaXNwbGF5LCBDT01NSVRf VU5JVkVSU0FMKTsKPiArCX0KPiDCoAo+IC0JCWlmIChwcmltYXJ5X3BsYW5lX3NjYWxpbmcpIHsK PiAtCQkJLyogUHJpbWFyeSBwbGFuZSB1cCBzY2FsaW5nICovCj4gLQkJCWlndF9mYl9zZXRfcG9z aXRpb24oJmQtPmZiMSwgZC0+cGxhbmUxLCAxMDAsCj4gMTAwKTsKPiAtCQkJaWd0X2ZiX3NldF9z aXplKCZkLT5mYjEsIGQtPnBsYW5lMSwgNTAwLAo+IDUwMCk7Cj4gLQkJCWlndF9wbGFuZV9zZXRf cG9zaXRpb24oZC0+cGxhbmUxLCAwLCAwKTsKPiAtCQkJaWd0X3BsYW5lX3NldF9zaXplKGQtPnBs YW5lMSwgbW9kZS0KPiA+aGRpc3BsYXksIG1vZGUtPnZkaXNwbGF5KTsKPiAtCQkJaWd0X2Rpc3Bs YXlfY29tbWl0MihkaXNwbGF5LAo+IENPTU1JVF9VTklWRVJTQUwpOwo+IC0JCX0KPiArCS8qIFNl dCB1cCBmYjMtPnBsYW5lMyBtYXBwaW5nLiAqLwo+ICsJZC0+cGxhbmUzID0gaWd0X291dHB1dF9n ZXRfcGxhbmUob3V0cHV0LCAyKTsKPiArCWlndF9wbGFuZV9zZXRfZmIoZC0+cGxhbmUzLCAmZC0+ ZmIzKTsKPiArCj4gKwkvKiAzcmQgcGxhbmUgd2luZG93ZWQgLSBubyBzY2FsaW5nICovCj4gKwlp Z3RfZmJfc2V0X3Bvc2l0aW9uKCZkLT5mYjMsIGQtPnBsYW5lMywgMTAwLCAxMDApOwo+ICsJaWd0 X2ZiX3NldF9zaXplKCZkLT5mYjMsIGQtPnBsYW5lMywgZC0+ZmIzLndpZHRoLTMwMCwgZC0KPiA+ ZmIzLmhlaWdodC0zMDApOwo+ICsJaWd0X3BsYW5lX3NldF9wb3NpdGlvbihkLT5wbGFuZTMsIDEw MCwgMTAwKTsKPiArCWlndF9wbGFuZV9zZXRfc2l6ZShkLT5wbGFuZTMsIG1vZGUtPmhkaXNwbGF5 LTMwMCwgbW9kZS0KPiA+dmRpc3BsYXktMzAwKTsKPiArCWlndF9kaXNwbGF5X2NvbW1pdDIoZGlz cGxheSwgQ09NTUlUX1VOSVZFUlNBTCk7Cj4gwqAKPiAtCQkvKiBTZXQgdXAgZmIzLT5wbGFuZTMg bWFwcGluZy4gKi8KPiAtCQlkLT5wbGFuZTMgPSBpZ3Rfb3V0cHV0X2dldF9wbGFuZShvdXRwdXQs IDIpOwo+IC0JCWlndF9wbGFuZV9zZXRfZmIoZC0+cGxhbmUzLCAmZC0+ZmIzKTsKPiArCS8qIFN3 aXRjaCBzY2FsZXIgZnJvbSBwbGFuZSAyIHRvIHBsYW5lIDMgKi8KPiArCWlndF9mYl9zZXRfcG9z aXRpb24oJmQtPmZiMiwgZC0+cGxhbmUyLCAxMDAsIDEwMCk7Cj4gKwlpZ3RfZmJfc2V0X3NpemUo JmQtPmZiMiwgZC0+cGxhbmUyLCBkLT5mYjIud2lkdGgtMjAwLCBkLQo+ID5mYjIuaGVpZ2h0LTIw MCk7Cj4gKwlpZ3RfcGxhbmVfc2V0X3Bvc2l0aW9uKGQtPnBsYW5lMiwgMTAwLCAxMDApOwo+ICsJ aWd0X3BsYW5lX3NldF9zaXplKGQtPnBsYW5lMiwgZC0+ZmIyLndpZHRoLTIwMCwgZC0KPiA+ZmIy LmhlaWdodC0yMDApOwo+IMKgCj4gLQkJLyogM3JkIHBsYW5lIHdpbmRvd2VkIC0gbm8gc2NhbGlu ZyAqLwo+IC0JCWlndF9mYl9zZXRfcG9zaXRpb24oJmQtPmZiMywgZC0+cGxhbmUzLCAxMDAsIDEw MCk7Cj4gLQkJaWd0X2ZiX3NldF9zaXplKCZkLT5mYjMsIGQtPnBsYW5lMywgZC0+ZmIzLndpZHRo LQo+IDMwMCwgZC0+ZmIzLmhlaWdodC0zMDApOwo+IC0JCWlndF9wbGFuZV9zZXRfcG9zaXRpb24o ZC0+cGxhbmUzLCAxMDAsIDEwMCk7Cj4gLQkJaWd0X3BsYW5lX3NldF9zaXplKGQtPnBsYW5lMywg bW9kZS0+aGRpc3BsYXktMzAwLAo+IG1vZGUtPnZkaXNwbGF5LTMwMCk7Cj4gLQkJaWd0X2Rpc3Bs YXlfY29tbWl0MihkaXNwbGF5LCBDT01NSVRfVU5JVkVSU0FMKTsKPiArCWlndF9mYl9zZXRfcG9z aXRpb24oJmQtPmZiMywgZC0+cGxhbmUzLCAxMDAsIDEwMCk7Cj4gKwlpZ3RfZmJfc2V0X3NpemUo JmQtPmZiMywgZC0+cGxhbmUzLCBkLT5mYjMud2lkdGgtNDAwLCBkLQo+ID5mYjMuaGVpZ2h0LTQw MCk7Cj4gKwlpZ3RfcGxhbmVfc2V0X3Bvc2l0aW9uKGQtPnBsYW5lMywgMTAsIDEwKTsKPiArCWln dF9wbGFuZV9zZXRfc2l6ZShkLT5wbGFuZTMsIG1vZGUtPmhkaXNwbGF5LTMwMCwgbW9kZS0KPiA+ dmRpc3BsYXktMzAwKTsKPiArCWlndF9kaXNwbGF5X2NvbW1pdDIoZGlzcGxheSwgQ09NTUlUX1VO SVZFUlNBTCk7Cj4gKwo+ICsJaWYgKHByaW1hcnlfcGxhbmVfc2NhbGluZykgewo+ICsJCS8qIFN3 aXRjaCBzY2FsZXIgZnJvbSBwbGFuZSAxIHRvIHBsYW5lIDIgKi8KPiArCQlpZ3RfZmJfc2V0X3Bv c2l0aW9uKCZkLT5mYjEsIGQtPnBsYW5lMSwgMCwgMCk7Cj4gKwkJaWd0X2ZiX3NldF9zaXplKCZk LT5mYjEsIGQtPnBsYW5lMSwgZC0+ZmIxLndpZHRoLCBkLQo+ID5mYjEuaGVpZ2h0KTsKPiArCQlp Z3RfcGxhbmVfc2V0X3Bvc2l0aW9uKGQtPnBsYW5lMSwgMCwgMCk7Cj4gKwkJaWd0X3BsYW5lX3Nl dF9zaXplKGQtPnBsYW5lMSwgbW9kZS0+aGRpc3BsYXksIG1vZGUtCj4gPnZkaXNwbGF5KTsKPiDC oAo+IC0JCS8qIFN3aXRjaCBzY2FsZXIgZnJvbSBwbGFuZSAyIHRvIHBsYW5lIDMgKi8KPiDCoAkJ aWd0X2ZiX3NldF9wb3NpdGlvbigmZC0+ZmIyLCBkLT5wbGFuZTIsIDEwMCwgMTAwKTsKPiAtCQlp Z3RfZmJfc2V0X3NpemUoJmQtPmZiMiwgZC0+cGxhbmUyLCBkLT5mYjIud2lkdGgtCj4gMjAwLCBk LT5mYjIuaGVpZ2h0LTIwMCk7Cj4gKwkJaWd0X2ZiX3NldF9zaXplKCZkLT5mYjIsIGQtPnBsYW5l MiwgZC0+ZmIyLndpZHRoLQo+IDUwMCxkLT5mYjIuaGVpZ2h0LTUwMCk7Cj4gwqAJCWlndF9wbGFu ZV9zZXRfcG9zaXRpb24oZC0+cGxhbmUyLCAxMDAsIDEwMCk7Cj4gLQkJaWd0X3BsYW5lX3NldF9z aXplKGQtPnBsYW5lMiwgZC0+ZmIyLndpZHRoLTIwMCwgZC0KPiA+ZmIyLmhlaWdodC0yMDApOwo+ IC0KPiAtCQlpZ3RfZmJfc2V0X3Bvc2l0aW9uKCZkLT5mYjMsIGQtPnBsYW5lMywgMTAwLCAxMDAp Owo+IC0JCWlndF9mYl9zZXRfc2l6ZSgmZC0+ZmIzLCBkLT5wbGFuZTMsIGQtPmZiMy53aWR0aC0K PiA0MDAsIGQtPmZiMy5oZWlnaHQtNDAwKTsKPiAtCQlpZ3RfcGxhbmVfc2V0X3Bvc2l0aW9uKGQt PnBsYW5lMywgMTAsIDEwKTsKPiAtCQlpZ3RfcGxhbmVfc2V0X3NpemUoZC0+cGxhbmUzLCBtb2Rl LT5oZGlzcGxheS0zMDAsCj4gbW9kZS0+dmRpc3BsYXktMzAwKTsKPiArCQlpZ3RfcGxhbmVfc2V0 X3NpemUoZC0+cGxhbmUyLCBtb2RlLT5oZGlzcGxheS0yMDAsCj4gbW9kZS0+dmRpc3BsYXktMjAw KTsKPiDCoAkJaWd0X2Rpc3BsYXlfY29tbWl0MihkaXNwbGF5LCBDT01NSVRfVU5JVkVSU0FMKTsK PiArCX0KPiDCoAo+IC0JCWlmIChwcmltYXJ5X3BsYW5lX3NjYWxpbmcpIHsKPiAtCQkJLyogU3dp dGNoIHNjYWxlciBmcm9tIHBsYW5lIDEgdG8gcGxhbmUgMiAqLwo+IC0JCQlpZ3RfZmJfc2V0X3Bv c2l0aW9uKCZkLT5mYjEsIGQtPnBsYW5lMSwgMCwKPiAwKTsKPiAtCQkJaWd0X2ZiX3NldF9zaXpl KCZkLT5mYjEsIGQtPnBsYW5lMSwgZC0KPiA+ZmIxLndpZHRoLCBkLT5mYjEuaGVpZ2h0KTsKPiAt CQkJaWd0X3BsYW5lX3NldF9wb3NpdGlvbihkLT5wbGFuZTEsIDAsIDApOwo+IC0JCQlpZ3RfcGxh bmVfc2V0X3NpemUoZC0+cGxhbmUxLCBtb2RlLQo+ID5oZGlzcGxheSwgbW9kZS0+dmRpc3BsYXkp Owo+IC0KPiAtCQkJaWd0X2ZiX3NldF9wb3NpdGlvbigmZC0+ZmIyLCBkLT5wbGFuZTIsIDEwMCwK PiAxMDApOwo+IC0JCQlpZ3RfZmJfc2V0X3NpemUoJmQtPmZiMiwgZC0+cGxhbmUyLCBkLQo+ID5m YjIud2lkdGgtNTAwLGQtPmZiMi5oZWlnaHQtNTAwKTsKPiAtCQkJaWd0X3BsYW5lX3NldF9wb3Np dGlvbihkLT5wbGFuZTIsIDEwMCwgMTAwKTsKPiAtCQkJaWd0X3BsYW5lX3NldF9zaXplKGQtPnBs YW5lMiwgbW9kZS0KPiA+aGRpc3BsYXktMjAwLCBtb2RlLT52ZGlzcGxheS0yMDApOwo+IC0JCQlp Z3RfZGlzcGxheV9jb21taXQyKGRpc3BsYXksCj4gQ09NTUlUX1VOSVZFUlNBTCk7Cj4gLQkJfQo+ ICsJLyogYmFjayB0byBzaW5nbGUgcGxhbmUgbW9kZSAqLwo+ICsJaWd0X3BsYW5lX3NldF9mYihk LT5wbGFuZTIsIE5VTEwpOwo+ICsJaWd0X3BsYW5lX3NldF9mYihkLT5wbGFuZTMsIE5VTEwpOwo+ ICsJaWd0X2Rpc3BsYXlfY29tbWl0MihkaXNwbGF5LCBDT01NSVRfVU5JVkVSU0FMKTsKPiDCoAo+ IC0JCS8qIGJhY2sgdG8gc2luZ2xlIHBsYW5lIG1vZGUgKi8KPiAtCQlpZ3RfcGxhbmVfc2V0X2Zi KGQtPnBsYW5lMiwgTlVMTCk7Cj4gLQkJaWd0X3BsYW5lX3NldF9mYihkLT5wbGFuZTMsIE5VTEwp Owo+IC0JCWlndF9kaXNwbGF5X2NvbW1pdDIoZGlzcGxheSwgQ09NTUlUX1VOSVZFUlNBTCk7Cj4g KwljbGVhbnVwX2NydGMoZCwgb3V0cHV0LCBkLT5wbGFuZTEpOwo+ICt9Cj4gwqAKPiArc3RhdGlj IHZvaWQgdGVzdF9wbGFuZV9zY2FsaW5nKGRhdGFfdCAqZCwgZW51bSBwaXBlIHBpcGUpCj4gK3sK PiArCWlndF9vdXRwdXRfdCAqb3V0cHV0Owo+ICsJaW50IHZhbGlkX3Rlc3RzID0gMDsKPiArCj4g KwlpZ3RfcmVxdWlyZShkLT5udW1fc2NhbGVycyk7Cj4gKwo+ICsJZm9yX2VhY2hfdmFsaWRfb3V0 cHV0X29uX3BpcGUoJmQtPmRpc3BsYXksIHBpcGUsIG91dHB1dCkgewo+ICsJCXRlc3RfcGxhbmVf c2NhbGluZ19vbl9waXBlKGQsIHBpcGUsIG91dHB1dCk7Cj4gKwkJaWd0X291dHB1dF9zZXRfcGlw ZShvdXRwdXQsIFBJUEVfQU5ZKTsKPiDCoAkJdmFsaWRfdGVzdHMrKzsKPiAtCQljbGVhbnVwX2Ny dGMoZCwgb3V0cHV0LCBkLT5wbGFuZTEpOwo+IMKgCX0KPiArCj4gwqAJaWd0X3JlcXVpcmVfZih2 YWxpZF90ZXN0cywgIm5vIHZhbGlkIGNydGMvY29ubmVjdG9yCj4gY29tYmluYXRpb25zIGZvdW5k XG4iKTsKPiDCoH0KPiDCoAo+IMKgaWd0X3NpbXBsZV9tYWluCj4gwqB7Cj4gwqAJZGF0YV90IGRh dGEgPSB7fTsKPiArCWVudW0gcGlwZSBwaXBlOwo+IMKgCj4gwqAJaWd0X3NraXBfb25fc2ltdWxh dGlvbigpOwo+IMKgCj4gQEAgLTMxMiw3ICszMTksOCBAQCBpZ3Rfc2ltcGxlX21haW4KPiDCoAo+ IMKgCWRhdGEubnVtX3NjYWxlcnMgPSBpbnRlbF9nZW4oZGF0YS5kZXZpZCkgPj0gOSA/IDIgOiAw Owo+IMKgCj4gLQl0ZXN0X3BsYW5lX3NjYWxpbmcoJmRhdGEpOwo+ICsJZm9yX2VhY2hfcGlwZV9z dGF0aWMocGlwZSkKPiArCQl0ZXN0X3BsYW5lX3NjYWxpbmcoJmRhdGEsIHBpcGUpOwo+IMKgCj4g wqAJaWd0X2Rpc3BsYXlfZmluaSgmZGF0YS5kaXNwbGF5KTsKPiDCoH0KLS0gCk1pa2EgS2Fob2xh IC0gSW50ZWwgT1RDCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1n ZngK