From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id 179B18938C for ; Thu, 21 Feb 2019 11:28:41 +0000 (UTC) References: <1550499727-25316-1-git-send-email-juhapekka.heikkila@gmail.com> <87aecf52d3dc7513201e77168a9b5903899508ed.camel@intel.com> From: Juha-Pekka Heikkila Message-ID: <56d50f0c-72a7-2fae-341d-49f5b8b8bcbd@gmail.com> Date: Thu, 21 Feb 2019 13:28:32 +0200 MIME-Version: 1.0 In-Reply-To: <87aecf52d3dc7513201e77168a9b5903899508ed.camel@intel.com> Content-Language: en-US Subject: Re: [igt-dev] [PATCH i-g-t] tests/kms_available_modes_crc limit tested fb formats List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: juhapekka.heikkila@gmail.com Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: dhinakaran.pandiyan@intel.com, igt-dev@lists.freedesktop.org List-ID: T24gMjEuMi4yMDE5IDIuMDEsIERoaW5ha2FyYW4gUGFuZGl5YW4gd3JvdGU6Cj4gT24gTW9uLCAy MDE5LTAyLTE4IGF0IDE2OjIyICswMjAwLCBKdWhhLVBla2thIEhlaWtraWxhIHdyb3RlOgo+PiBU aGlzIHRlc3QgaXMgY2F1c2luZyB0b28gbXVjaCB1c2VsZXNzIG5vaXNlLiBMaW1pdCB0ZXN0ZWQK Pj4gZmIgZm9ybWF0cyB0byBEUk1fRk9STUFUX0M4IGFuZCBEUk1fRk9STUFUX1hCR1IyMTAxMDEw IGZvciBub3cuCj4+IFRoZXNlIHR3byBmb3JtYXRzIGFyZSBjdXJyZW50bHkgbm90IHRlc3RlZCBv dGhlcndpc2UgdGh1cwo+PiB0aGV5J3JlIGxlZnQgaGVyZSBmb3Igbm93LiBEUk1fRk9STUFUX1hC R1IyMTAxMDEwIG5lZWQgdG8gYmUKPj4gaW5jbHVkZWQgaW50byBJR1Qgc3VwcG9ydGVkIGZvcm1h dHMgYW5kIERSTV9GT1JNQVRfQzggdGVzdCBuZWVkCj4+IHRvIGJlIG1vdmVkIGVsc2V3aGVyZSwg bWF5YmUgaW50byBrbXNfcGxhbmUuCj4gCj4gVGhhbmtzIGZvciBkb2luZyB0aGlzLgo+IAo+Pgo+ PiBTaWduZWQtb2ZmLWJ5OiBKdWhhLVBla2thIEhlaWtraWxhIDxqdWhhcGVra2EuaGVpa2tpbGFA Z21haWwuY29tPgo+PiAtLS0KPj4gICB0ZXN0cy9rbXNfYXZhaWxhYmxlX21vZGVzX2NyYy5jIHwg MjE3ICsrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLQo+PiAtLS0tLS0tLS0tCj4+ICAgMSBm aWxlIGNoYW5nZWQsIDgzIGluc2VydGlvbnMoKyksIDEzNCBkZWxldGlvbnMoLSkKPj4KPj4gZGlm ZiAtLWdpdCBhL3Rlc3RzL2ttc19hdmFpbGFibGVfbW9kZXNfY3JjLmMKPj4gYi90ZXN0cy9rbXNf YXZhaWxhYmxlX21vZGVzX2NyYy5jCj4+IGluZGV4IDdmZjM4NWYuLmE1MTAwNmIgMTAwNjQ0Cj4+ IC0tLSBhL3Rlc3RzL2ttc19hdmFpbGFibGVfbW9kZXNfY3JjLmMKPj4gKysrIGIvdGVzdHMva21z X2F2YWlsYWJsZV9tb2Rlc19jcmMuYwo+PiBAQCAtMTAxLDE3ICsxMDEsMTcgQEAgc3RhdGljIHZv aWQgZ2VuZXJhdGVfY29tcGFyaXNvbl9jcmNfbGlzdChkYXRhX3QKPj4gKmRhdGEsIGlndF9vdXRw dXRfdCAqb3V0cHV0KQo+PiAgIAlpZ3RfcGxhbmVfc2V0X2ZiKHByaW1hcnksICZkYXRhLT5wcmlt YXJ5X2ZiKTsKPj4gICAJaWd0X2Rpc3BsYXlfY29tbWl0MigmZGF0YS0+ZGlzcGxheSwgZGF0YS0+ Y29tbWl0KTsKPj4gICAKPj4gKwlpZ3RfcGlwZV9jcmNfZHJhaW4oZGF0YS0+cGlwZV9jcmMpOwo+ PiAgIAlpZ3RfcGlwZV9jcmNfZ2V0X2N1cnJlbnQoZGF0YS0+Z2Z4X2ZkLCBkYXRhLT5waXBlX2Ny YywgJmRhdGEtCj4+PiBjdXJzb3JfY3JjKTsKPj4gICAJaWd0X3BsYW5lX3NldF9mYihwcmltYXJ5 LCBOVUxMKTsKPj4gICAJaWd0X2Rpc3BsYXlfY29tbWl0MigmZGF0YS0+ZGlzcGxheSwgZGF0YS0+ Y29tbWl0KTsKPj4gICAKPj4gLQlpbnRlbF9nZW4oaW50ZWxfZ2V0X2RybV9kZXZpZChkYXRhLT5n ZnhfZmQpKSA8IDkgPwo+PiAtCQkgIGlndF9wYWludF9jb2xvcihjciwgMCwgMCwgbW9kZS0+aGRp c3BsYXksIG1vZGUtCj4+PiB2ZGlzcGxheSwgMS4wLCAxLjAsIDEuMCkgOgo+PiAtCQkgIGlndF9w YWludF9jb2xvcl9hbHBoYShjciwgMCwgMCwgbW9kZS0+aGRpc3BsYXksIG1vZGUtCj4+PiB2ZGlz cGxheSwgMS4wLCAxLjAsIDEuMCwgMS4wKTsKPj4gKwlpZ3RfcGFpbnRfY29sb3IoY3IsIDAsIDAs IG1vZGUtPmhkaXNwbGF5LCBtb2RlLT52ZGlzcGxheSwgMS4wLAo+PiAxLjAsIDEuMCk7Cj4+ICAg Cj4+ICAgCWlndF9wbGFuZV9zZXRfZmIocHJpbWFyeSwgJmRhdGEtPnByaW1hcnlfZmIpOwo+PiAg IAlpZ3RfZGlzcGxheV9jb21taXQyKCZkYXRhLT5kaXNwbGF5LCBkYXRhLT5jb21taXQpOwo+PiAg IAo+PiArCWlndF9waXBlX2NyY19kcmFpbihkYXRhLT5waXBlX2NyYyk7Cj4+ICAgCWlndF9waXBl X2NyY19nZXRfY3VycmVudChkYXRhLT5nZnhfZmQsIGRhdGEtPnBpcGVfY3JjLCAmZGF0YS0KPj4+ IGZ1bGxzY3JlZW5fY3JjKTsKPj4gICAKPj4gICAJY2Fpcm9fZGVzdHJveShjcik7Cj4+IEBAIC0x MjIsNDggKzEyMiwxMSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHsKPj4gICAJdWludDMyX3QJZm91 cmNjOwo+PiAgIAljaGFyCQl6ZXJvcGFkZGluZzsKPj4gICAJZW51bQkJeyBCWVRFU19QUF8xPTEs Cj4+IC0JCQkJQllURVNfUFBfMj0yLAo+PiAtCQkJCUJZVEVTX1BQXzQ9NCwKPj4gLQkJCQlOVjEy LAo+PiAtCQkJCVAwMTAsCj4+IC0JCQkJU0tJUDQgfSBicHA7Cj4+ICsJCQkJQllURVNfUFBfND00 fSBicHA7Cj4+ICAgCXVpbnQzMl90CXZhbHVlOwo+PiAgIH0gZmlsbGVyc1tdID0gewo+PiAgIAl7 IERSTV9GT1JNQVRfQzgsIDAsIEJZVEVTX1BQXzEsIDB4ZmZ9LAo+PiAtCXsgRFJNX0ZPUk1BVF9S R0I1NjUsIDAsIEJZVEVTX1BQXzIsIDB4ZmZmZn0sCj4+IC0JeyBEUk1fRk9STUFUX1hSR0I4ODg4 LCAwLCBCWVRFU19QUF80LCAweGZmZmZmZmZmfSwKPj4gLQl7IERSTV9GT1JNQVRfWEJHUjg4ODgs IDAsIEJZVEVTX1BQXzQsIDB4ZmZmZmZmZmZ9LAo+PiAtCj4+IC0JLyoKPj4gLQkgKiBmb2xsb3dp bmcgdHdvIGFyZSBza2lwcGVkIGJlY2F1c2UgYmxlbmRpbmcgc2VlbXMgdG8gd29yawo+PiAtCSAq IGluY29ycmVjdGx5IHdpdGggZXhjZXB0aW9uIG9mIEFSMjQgb24gY3Vyc29yIHBsYW5lLgo+PiAt CSAqIFRlc3Qgc3RpbGwgY3JlYXRlcyB0aGUgcGxhbmVzLCBqdXN0IGZpbGxpbmcgcGxhbmUKPj4g LQkgKiBhbmQgZ2V0dGluZyBjcmMgaXMgc2tpcHBlZC4KPj4gLQkgKi8KPj4gLQl7IERSTV9GT1JN QVRfQVJHQjg4ODgsIDAsIFNLSVA0LCAweGZmZmZmZmZmfSwKPj4gLQl7IERSTV9GT1JNQVRfQUJH Ujg4ODgsIDAsIFNLSVA0LCAweDAwZmZmZmZmfSwKPj4gLQo+PiAtCXsgRFJNX0ZPUk1BVF9YUkdC MjEwMTAxMCwgMCwgQllURVNfUFBfNCwgMHhmZmZmZmZmZn0sCj4+ICAgCXsgRFJNX0ZPUk1BVF9Y QkdSMjEwMTAxMCwgMCwgQllURVNfUFBfNCwgMHhmZmZmZmZmZn0sCj4+IC0KPj4gLQl7IERSTV9G T1JNQVRfWVVZViwgMCwgQllURVNfUFBfNCwgMHg4MGViODBlYn0sCj4+IC0JeyBEUk1fRk9STUFU X1lWWVUsIDAsIEJZVEVTX1BQXzQsIDB4ODBlYjgwZWJ9LAo+PiAtCXsgRFJNX0ZPUk1BVF9WWVVZ LCAwLCBCWVRFU19QUF80LCAweGViODBlYjgwfSwKPj4gLQl7IERSTV9GT1JNQVRfVVlWWSwgMCwg QllURVNfUFBfNCwgMHhlYjgwZWI4MH0sCj4+IC0KPj4gLQkvKgo+PiAtCSAqIChzZW1pLSlwbGFu YXIgZm9ybWF0cwo+PiAtCSAqLwo+PiAtCXsgRFJNX0ZPUk1BVF9OVjEyLCAwLCBOVjEyLCAweDgw ZWJ9LAo+PiAtI2lmZGVmIERSTV9GT1JNQVRfUDAxMAo+PiAtCXsgRFJNX0ZPUk1BVF9QMDEwLCAw LCBQMDEwLCAweDgwMDBlYjAwfSwKPj4gLSNlbmRpZgo+PiAtI2lmZGVmIERSTV9GT1JNQVRfUDAx Mgo+PiAtCXsgRFJNX0ZPUk1BVF9QMDEyLCAwLCBQMDEwLCAweDgwMDBlYjAwfSwKPj4gLSNlbmRp Zgo+PiAtI2lmZGVmIERSTV9GT1JNQVRfUDAxNgo+PiAtCXsgRFJNX0ZPUk1BVF9QMDE2LCAwLCBQ MDEwLCAweDgwMDBlYjAwfSwKPj4gLSNlbmRpZgo+PiAgIAl7IDAsIDAsIDAsIDAgfQo+PiAgIH07 Cj4+ICAgCj4+IEBAIC0xNzUsMTAgKzEzOCw5IEBAIHN0YXRpYyBib29sIGZpbGxfaW5fZmIoZGF0 YV90ICpkYXRhLAo+PiBpZ3Rfb3V0cHV0X3QgKm91dHB1dCwgaWd0X3BsYW5lX3QgKnBsYW5lLAo+ PiAgIAkJICAgICAgIHVpbnQzMl90IGZvcm1hdCkKPj4gICB7Cj4+ICAgCXNpZ25lZCBpLCBjLCB3 cml0ZXNpemU7Cj4+IC0JdW5zaWduZWQgc2hvcnQqIHB0ZW1wXzE2X2J1ZjsKPj4gICAJdW5zaWdu ZWQgaW50KiBwdGVtcF8zMl9idWY7Cj4+ICAgCj4+IC0JZm9yKCBpID0gMDsgZmlsbGVyc1tpXS5m b3VyY2MgIT0gMDsgaSsrICkgewo+PiArCWZvciggaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGZpbGxl cnMpLTE7IGkrKyApIHsKPj4gICAJCWlmKCBmaWxsZXJzW2ldLmZvdXJjYyA9PSBmb3JtYXQgKQo+ PiAgIAkJCWJyZWFrOwo+PiAgIAl9Cj4+IEBAIC0xOTAsNTMgKzE1MiwxMCBAQCBzdGF0aWMgYm9v bCBmaWxsX2luX2ZiKGRhdGFfdCAqZGF0YSwKPj4gaWd0X291dHB1dF90ICpvdXRwdXQsIGlndF9w bGFuZV90ICpwbGFuZSwKPj4gICAJCQlwdGVtcF8zMl9idWZbY10gPSBmaWxsZXJzW2ldLnZhbHVl Owo+PiAgIAkJd3JpdGVzaXplID0gZGF0YS0+c2l6ZTsKPj4gICAJCWJyZWFrOwo+PiAtCWNhc2Ug QllURVNfUFBfMjoKPj4gLQkJcHRlbXBfMTZfYnVmID0gKHVuc2lnbmVkIHNob3J0KilkYXRhLT5i dWY7Cj4+IC0JCWZvciAoYyA9IDA7IGMgPCBkYXRhLT5zaXplLzI7IGMrKykKPj4gLQkJCXB0ZW1w XzE2X2J1ZltjXSA9ICh1bnNpZ25lZAo+PiBzaG9ydClmaWxsZXJzW2ldLnZhbHVlOwo+PiAtCQl3 cml0ZXNpemUgPSBkYXRhLT5zaXplOwo+PiAtCQlicmVhazsKPj4gICAJY2FzZSBCWVRFU19QUF8x Ogo+PiAgIAkJbWVtc2V0KCh2b2lkICopZGF0YS0+YnVmLCBmaWxsZXJzW2ldLnZhbHVlLCBkYXRh LQo+Pj4gc2l6ZSk7Cj4+ICAgCQl3cml0ZXNpemUgPSBkYXRhLT5zaXplOwo+PiAgIAkJYnJlYWs7 Cj4+IC0JY2FzZSBOVjEyOgo+PiAtCQltZW1zZXQoKHZvaWQgKilkYXRhLT5idWYsIGZpbGxlcnNb aV0udmFsdWUmMHhmZiwKPj4gLQkJICAgICAgIGRhdGEtPmZiLm9mZnNldHNbMV0pOwo+PiAtCj4+ IC0JCW1lbXNldCgodm9pZCAqKShkYXRhLT5idWYrZGF0YS0+ZmIub2Zmc2V0c1sxXSksCj4+IC0J CSAgICAgICAoZmlsbGVyc1tpXS52YWx1ZT4+OCkmMHhmZiwKPj4gLQkJICAgICAgIGRhdGEtPnNp emUgLSBkYXRhLT5mYi5vZmZzZXRzWzFdKTsKPj4gLQo+PiAtCQl3cml0ZXNpemUgPSBkYXRhLT5z aXplOwo+PiAtCQlicmVhazsKPj4gLQljYXNlIFAwMTA6Cj4+IC0JCXB0ZW1wXzE2X2J1ZiA9ICh1 bnNpZ25lZCBzaG9ydCopZGF0YS0+YnVmOwo+PiAtCQlmb3IgKGMgPSAwOyBjIDwgZGF0YS0+c2l6 ZS8yOyBjKyspCj4+IC0JCQlwdGVtcF8xNl9idWZbY10gPSAodW5zaWduZWQKPj4gc2hvcnQpZmls bGVyc1tpXS52YWx1ZSYweGZmZmY7Cj4+IC0KPj4gLQkJcHRlbXBfMTZfYnVmID0gKHVuc2lnbmVk IHNob3J0KikoZGF0YS0+YnVmK2RhdGEtPnNpemUpOwo+PiAtCQlmb3IgKGMgPSAwOyBjIDwgZGF0 YS0+c2l6ZS8yOyBjKyspCj4+IC0JCQlwdGVtcF8xNl9idWZbY10gPSAodW5zaWduZWQKPj4gc2hv cnQpKGZpbGxlcnNbaV0udmFsdWU+PjE2KSYweGZmZmY7Cj4+IC0KPj4gLQkJd3JpdGVzaXplID0g ZGF0YS0+c2l6ZStkYXRhLT5zaXplLzI7Cj4+IC0JCWJyZWFrOwo+PiAtCWNhc2UgU0tJUDQ6Cj4+ IC0JCWlmIChmaWxsZXJzW2ldLmZvdXJjYyA9PSBEUk1fRk9STUFUX0FSR0I4ODg4ICYmCj4+IC0J CSAgICBwbGFuZS0+dHlwZSA9PSBEUk1fUExBTkVfVFlQRV9DVVJTT1IpIHsKPj4gLQkJLyoKPj4g LQkJICogc3BlY2lhbCBmb3IgY3Vyc29yIHBsYW5lIHdoZXJlIGJsZW5kaW5nIHdvcmtzCj4+IGNv cnJlY3RseS4KPj4gLQkJICovCj4+IC0JCQlwdGVtcF8zMl9idWYgPSAodW5zaWduZWQgaW50Kilk YXRhLT5idWY7Cj4+IC0JCQlmb3IgKGMgPSAwOyBjIDwgZGF0YS0+c2l6ZS80OyBjKyspCj4+IC0J CQkJcHRlbXBfMzJfYnVmW2NdID0gZmlsbGVyc1tpXS52YWx1ZTsKPj4gLQkJCXdyaXRlc2l6ZSA9 IGRhdGEtPnNpemU7Cj4+IC0JCQlicmVhazsKPj4gLQkJfQo+PiAtCQlpZ3RfaW5mbygiRm9ybWF0 ICVzIENSQyBjb21wYXJpc29uIHNraXBwZWQgYnkKPj4gZGVzaWduLlxuIiwKPj4gLQkJCSAoY2hh ciopJmZpbGxlcnNbaV0uZm91cmNjKTsKPj4gLQo+PiAtCQlyZXR1cm4gZmFsc2U7Cj4+ICAgCWRl ZmF1bHQ6Cj4+ICAgCQlpZ3RfaW5mbygiVW5zdXBwb3J0ZWQgbW9kZSBmb3IgdGVzdCAlc1xuIiwK Pj4gICAJCQkgKGNoYXIqKSZmaWxsZXJzW2ldLmZvdXJjYyk7Cj4+IEBAIC0yNzEsMjYgKzE5MCwy MCBAQCBzdGF0aWMgYm9vbCBzZXR1cF9mYihkYXRhX3QgKmRhdGEsIGlndF9vdXRwdXRfdAo+PiAq b3V0cHV0LCBpZ3RfcGxhbmVfdCAqcGxhbmUsCj4+ICAgCQl0aWxpbmcgPSBMT0NBTF9EUk1fRk9S TUFUX01PRF9OT05FOwo+PiAgIAl9Cj4+ICAgCj4+IC0JZm9yIChpID0gMDsgZmlsbGVyc1tpXS5m b3VyY2MgIT0gMDsgaSsrKSB7Cj4+IC0JCWlmIChmaWxsZXJzW2ldLmZvdXJjYyA9PSBmb3JtYXQp Cj4+ICsJZm9yKCBpID0gMDsgaSA8IEFSUkFZX1NJWkUoZmlsbGVycyktMTsgaSsrICkgewo+PiAr CQlpZiggZmlsbGVyc1tpXS5mb3VyY2MgPT0gZm9ybWF0ICkKPj4gICAJCQlicmVhazsKPj4gICAJ fQo+PiAgIAo+PiAgIAlzd2l0Y2ggKGZpbGxlcnNbaV0uYnBwKSB7Cj4+IC0JY2FzZSBOVjEyOgo+ PiAgIAljYXNlIEJZVEVTX1BQXzE6Cj4+ICAgCQlicHAgPSA4Owo+PiAgIAkJYnJlYWs7Cj4+IC0K Pj4gLQljYXNlIFAwMTA6Cj4+IC0JY2FzZSBCWVRFU19QUF8yOgo+PiAtCQlicHAgPSAxNjsKPj4g LQkJYnJlYWs7Cj4+IC0KPj4gLQljYXNlIFNLSVA0Ogo+PiAgIAljYXNlIEJZVEVTX1BQXzQ6Cj4+ ICAgCQlicHAgPSAzMjsKPj4gICAJCWJyZWFrOwo+PiArCWRlZmF1bHQ6Cj4+ICsJCXJldHVybiBm YWxzZTsKPiAKPiBIbW0sIHdlIHNob3VsZCBuZXZlciBoaXQgdGhpcyBjb25kaXRpb24uIE1hcmsg dGhpcyBhcyBhIGZhaWx1cmUgc28gdGhhdAo+IHRoZSB0ZXN0IGdldHMgZml4ZWQ/CgpZZXMsIHRo aXMgaXMgZ29vZCBwbGFjZSBmb3IgYXNzZXJ0LgoKPiAKPj4gICAJfQo+PiAgIAo+PiAgIAlpZ3Rf Z2V0X2ZiX3RpbGVfc2l6ZShkYXRhLT5nZnhfZmQsIHRpbGluZywgYnBwLAo+PiBAQCAtMjk5LDE3 ICsyMTIsNiBAQCBzdGF0aWMgYm9vbCBzZXR1cF9mYihkYXRhX3QgKmRhdGEsIGlndF9vdXRwdXRf dAo+PiAqb3V0cHV0LCBpZ3RfcGxhbmVfdCAqcGxhbmUsCj4+ICAgCWRhdGEtPmZiLnN0cmlkZXNb MF0gPSBBTElHTih3ICogYnBwIC8gOCwgdGlsZV93aWR0aCk7Cj4+ICAgCWdlbXNpemUgPSBkYXRh LT5zaXplID0gZGF0YS0+ZmIuc3RyaWRlc1swXSAqIEFMSUdOKGgsCj4+IHRpbGVfaGVpZ2h0KTsK Pj4gICAKPj4gLQlpZiAoZmlsbGVyc1tpXS5icHAgPT0gUDAxMCB8fCBmaWxsZXJzW2ldLmJwcCA9 PSBOVjEyKSB7Cj4+IC0JCWRhdGEtPmZiLm9mZnNldHNbMV0gPSBkYXRhLT5zaXplOwo+PiAtCQlk YXRhLT5mYi5zdHJpZGVzWzFdID0gZGF0YS0+ZmIuc3RyaWRlc1swXTsKPj4gLQkJZ2Vtc2l6ZSA9 IGRhdGEtPnNpemUgKiAyOwo+PiAtCj4+IC0JCWlmIChmaWxsZXJzW2ldLmJwcCA9PSBOVjEyKQo+ PiAtCQkJZGF0YS0+c2l6ZSArPSBkYXRhLT5mYi5zdHJpZGVzWzFdICogQUxJR04oaC8yLAo+PiB0 aWxlX2hlaWdodCk7Cj4+IC0KPj4gLQkJbnVtX3BsYW5lcyA9IDI7Cj4+IC0JfQo+PiAtCj4+ICAg CWRhdGEtPmdlbV9oYW5kbGUgPSBnZW1fY3JlYXRlKGRhdGEtPmdmeF9mZCwgZ2Vtc2l6ZSk7Cj4+ ICAgCXJldCA9IF9fZ2VtX3NldF90aWxpbmcoZGF0YS0+Z2Z4X2ZkLCBkYXRhLT5nZW1faGFuZGxl LAo+PiAgIAkJCSAgICAgICBpZ3RfZmJfbW9kX3RvX3RpbGluZyh0aWxpbmcpLAo+PiBAQCAtMzg2 LDEyICsyODgsMjMgQEAgc3RhdGljIGJvb2wgcHJlcGFyZV9jcnRjKGRhdGFfdCAqZGF0YSwKPj4g aWd0X291dHB1dF90ICpvdXRwdXQsCj4+ICAgCj4+ICAgc3RhdGljIGludAo+PiAgIHRlc3Rfb25l X21vZGUoZGF0YV90KiBkYXRhLCBpZ3Rfb3V0cHV0X3QgKm91dHB1dCwgaWd0X3BsYW5lX3QqCj4+ IHBsYW5lLAo+PiAtCSAgICAgIGludCBtb2RlKQo+PiArCSAgICAgIGludCBtb2RlLCBlbnVtIHBp cGUgcGlwZSkKPiBzL21vZGUvZm9ybWF0Cj4gQ29tbWVudCBhcHBsaWVzIHRvIG90aGVyIHBsYWNl cyB0b28uCgpXaGlsZSBJIGFncmVlIEknbSBzby1zbyBhYm91dCBkb2luZyB0aGlzIGNoYW5nZSBz aW5jZSBpdCB3aWxsIGZvbGxvdyAKaW50byBtYXNzaXZlIHBhdGNoIGZvciB0ZXN0IHdoaWNoIEkn bSBhbnl3YXkgd2FudGluZyB0byB0aHJvdyBhd2F5IGluIAp0aGUgZW5kLgoKPiAKPiAKPj4gICB7 Cj4+ICAgCWlndF9jcmNfdCBjdXJyZW50X2NyYzsKPj4gICAJc2lnbmVkIHJWYWwgPSAwOwo+PiAg IAlib29sIGRvX2NyYzsKPj4gLQljaGFyKiBjcmNjb21wYXJlWzJdOwo+PiArCWludCBpOwo+PiAr Cj4+ICsJLyoKPj4gKwkgKiBMaW1pdCB0ZXN0cyBvbmx5IHRvIHRob3NlIGZiIGZvcm1hdHMgbGlz dGVkIGluIGZpbGxlcnMgdGFibGUKPj4gKwkgKi8KPj4gKwlmb3IoIGkgPSAwOyBpIDwgQVJSQVlf U0laRShmaWxsZXJzKS0xOyBpKysgKSB7Cj4+ICsJCWlmKCBmaWxsZXJzW2ldLmZvdXJjYyA9PSBt b2RlICkKPj4gKwkJCWJyZWFrOwo+PiArCX0KPj4gKwo+PiArCWlmKGZpbGxlcnNbaV0uYnBwID09 IDApCj4+ICsJCXJldHVybiBmYWxzZTsKPiAuYnBwIGlzIGFsd2F5cyB2YWxpZCBmb3IgdGhlIHR3 byBmb3JtYXRzIHRoYXQgYXJlIHRlc3RlZCwgaXNuJ3QgaXQ/IEluCj4gdGhhdCBjYXNlIC5icHAg PT0gMCBpcyBhIHRlc3QgZmFpbHVyZS4KPiAKCk5vLCBoZXJlIHdpbGwgYXJyaXZlIHF1ZXJ5IGZv ciBhbGwgZmIgZm9ybWF0cyB3aGljaCBrZXJuZWwgdGFsayBhYm91dC4gCklmIGJwcCBiZWNvbWUg emVybyB0aGlzIHdpbGwgZ28gb3V0IGZyb20gdGVzdGluZyBtb2RlIHdoaWNoIGlzIG5vdCAKc3Vw cG9ydGVkLiBJZS4gQzggb3IgWEJHUjIxMDEwMTAgd2lsbCBnbyBmb3J3YXJkIGFuZCBoZXJlIG90 aGVyIGZvcm1hdHMgCmFyZSBkaXRjaGVkLgoKPj4gICAKPj4gICAJaWYgKHByZXBhcmVfY3J0Yyhk YXRhLCBvdXRwdXQsIHBsYW5lLCBtb2RlKSl7Cj4+ICAgCQkvKgo+PiBAQCAtNDEyLDI5ICszMjUs MzAgQEAgdGVzdF9vbmVfbW9kZShkYXRhX3QqIGRhdGEsIGlndF9vdXRwdXRfdAo+PiAqb3V0cHV0 LCBpZ3RfcGxhbmVfdCogcGxhbmUsCj4+ICAgCQkJaWYgKHBsYW5lLT50eXBlICE9IERSTV9QTEFO RV9UWVBFX0NVUlNPUikgewo+PiAgIAkJCQlpZiAoIWlndF9jaGVja19jcmNfZXF1YWwoJmN1cnJl bnRfY3JjLAo+PiAgIAkJCQkJJmRhdGEtPmZ1bGxzY3JlZW5fY3JjKSkgewo+PiAtCQkJCQljcmNj b21wYXJlWzBdID0KPj4gaWd0X2NyY190b19zdHJpbmcoJmN1cnJlbnRfY3JjKTsKPj4gLQkJCQkJ Y3JjY29tcGFyZVsxXSA9Cj4+IGlndF9jcmNfdG9fc3RyaW5nKCZkYXRhLT5mdWxsc2NyZWVuX2Ny Yyk7Cj4+IC0JCQkJCWlndF93YXJuKCJjcmMgbWlzbWF0Y2guIHRhcmdldAo+PiAlLjhzLCByZXN1 bHQgJS44cy5cbiIsIGNyY2NvbXBhcmVbMF0sIGNyY2NvbXBhcmVbMV0pOwo+PiAtCQkJCQlmcmVl KGNyY2NvbXBhcmVbMF0pOwo+PiAtCQkJCQlmcmVlKGNyY2NvbXBhcmVbMV0pOwo+PiArCQkJCQlp Z3Rfd2FybigiY3JjIG1pc21hdGNoLgo+PiBjb25uZWN0b3IgJXMgdXNpbmcgcGlwZSAlcyIgXAo+ PiArCQkJCQkJIiBwbGFuZSBpbmRleCAlZCBtb2RlCj4+ICUuNHNcbiIsCj4+ICsJCQkJCQlpZ3Rf b3V0cHV0X25hbWUob3V0cHV0KQo+PiAsCj4+ICsJCQkJCQlrbXN0ZXN0X3BpcGVfbmFtZShwaXBl KQo+PiAsCj4+ICsJCQkJCQlwbGFuZS0+aW5kZXgsCj4+ICsJCQkJCQkoY2hhciopJm1vZGUpOwo+ PiAgIAkJCQkJclZhbCsrOwo+PiAgIAkJCQl9Cj4+ICAgCQkJfSBlbHNlIHsKPj4gICAJCQkJaWYg KCFpZ3RfY2hlY2tfY3JjX2VxdWFsKCZjdXJyZW50X2NyYywKPj4gICAJCQkJCSZkYXRhLT5jdXJz b3JfY3JjKSkgewo+PiAtCQkJCQljcmNjb21wYXJlWzBdID0KPj4gaWd0X2NyY190b19zdHJpbmco JmN1cnJlbnRfY3JjKTsKPj4gLQkJCQkJY3JjY29tcGFyZVsxXSA9Cj4+IGlndF9jcmNfdG9fc3Ry aW5nKCZkYXRhLT5jdXJzb3JfY3JjKTsKPj4gLQkJCQkJaWd0X3dhcm4oImNyYyBtaXNtYXRjaC4g dGFyZ2V0Cj4+ICUuOHMsIHJlc3VsdCAlLjhzLlxuIiwgY3JjY29tcGFyZVswXSwgY3JjY29tcGFy ZVsxXSk7Cj4+IC0JCQkJCWZyZWUoY3JjY29tcGFyZVswXSk7Cj4+IC0JCQkJCWZyZWUoY3JjY29t cGFyZVsxXSk7Cj4+ICsJCQkJCWlndF93YXJuKCJjcmMgbWlzbWF0Y2guCj4+IGNvbm5lY3RvciAl cyB1c2luZyBwaXBlICVzIiBcCj4+ICsJCQkJCQkiIHBsYW5lIGluZGV4ICVkIG1vZGUKPj4gJS40 c1xuIiwKPj4gKwkJCQkJCWlndF9vdXRwdXRfbmFtZShvdXRwdXQpCj4+ICwKPj4gKwkJCQkJCWtt c3Rlc3RfcGlwZV9uYW1lKHBpcGUpCj4+ICwKPj4gKwkJCQkJCXBsYW5lLT5pbmRleCwKPj4gKwkJ CQkJCShjaGFyKikmbW9kZSk7Cj4+ICAgCQkJCQlyVmFsKys7Cj4+ICAgCQkJCX0KPj4gICAJCQl9 Cj4+ICAgCQl9Cj4+IC0JCXJlbW92ZV9mYihkYXRhLCBvdXRwdXQsIHBsYW5lKTsKPj4gLQkJcmV0 dXJuIHJWYWw7Cj4+ICAgCX0KPj4gLQlyZXR1cm4gMTsKPj4gKwlyZW1vdmVfZmIoZGF0YSwgb3V0 cHV0LCBwbGFuZSk7Cj4+ICsJcmV0dXJuIHJWYWw7Cj4+ICAgfQo+PiAgIAo+PiAgIAo+PiBAQCAt NDQ1LDE0ICszNTksNDQgQEAgdGVzdF9hdmFpbGFibGVfbW9kZXMoZGF0YV90KiBkYXRhKQo+PiAg IAlpZ3RfcGxhbmVfdCAqcGxhbmU7Cj4+ICAgCWludCBtb2RlaW5kZXg7Cj4+ICAgCWVudW0gcGlw ZSBwaXBlOwo+PiAtCWludCBpbnZhbGlkcyA9IDA7Cj4+ICsJaW50IGludmFsaWRzID0gMCwgaSwg bHV0X3NpemU7Cj4+ICAgCWRybU1vZGVQbGFuZSAqbW9kZVBsYW5lOwo+PiAtCWNoYXIgcGxhbmV0 eXBlWzNdWzhdID0geyJPVkVSTEFZXDAiLCAiUFJJTUFSWVwwIiwgIkNVUlNPUlwwIiB9Owo+PiAr Cj4+ICsJc3RydWN0IHsKPj4gKwkgICAgdWludDE2X3QgcmVkOwo+PiArCSAgICB1aW50MTZfdCBn cmVlbjsKPj4gKwkgICAgdWludDE2X3QgYmx1ZTsKPj4gKwkgICAgdWludDE2X3QgcmVzZXJ2ZWQ7 Cj4+ICsJfSAqbHV0ID0gTlVMTDsKPj4gICAKPj4gICAJZm9yX2VhY2hfcGlwZV93aXRoX3ZhbGlk X291dHB1dCgmZGF0YS0+ZGlzcGxheSwgcGlwZSwgb3V0cHV0KSB7Cj4+ICAgCQlpZ3Rfb3V0cHV0 X3NldF9waXBlKG91dHB1dCwgcGlwZSk7Cj4+ICAgCQlpZ3RfZGlzcGxheV9jb21taXQyKCZkYXRh LT5kaXNwbGF5LCBkYXRhLT5jb21taXQpOwo+PiAgIAo+PiArCQlpZiAoaWd0X3BpcGVfb2JqX2hh c19wcm9wKCZkYXRhLT5kaXNwbGF5LnBpcGVzW3BpcGVdLAo+PiBJR1RfQ1JUQ19HQU1NQV9MVVRf U0laRSkpIHsKPj4gKwkJCWx1dF9zaXplID0gaWd0X3BpcGVfZ2V0X3Byb3AoJmRhdGEtPmRpc3Bs YXksCj4+IHBpcGUsCj4+ICsJCQkJCQkgICAgIElHVF9DUlRDX0dBTU1BX0xVVAo+PiBfU0laRSk7 Cj4+ICsKPj4gKwkJCWx1dCA9IGNhbGxvYyhzaXplb2YoKmx1dCksIGx1dF9zaXplKTsKPj4gKwo+ PiArCQkJZm9yIChpID0gMDsgaSA8IGx1dF9zaXplOyBpKyspIHsKPj4gKwkJCQlsdXRbaV0ucmVk ID0gKGkgKiAweGZmZmYgLyAobHV0X3NpemUgLQo+PiAxKSkgJiAweDgwMDA7Cj4+ICsJCQkJbHV0 W2ldLmdyZWVuID0gKGkgKiAweGZmZmYgLyAobHV0X3NpemUKPj4gLSAxKSkgJiAweDgwMDA7Cj4+ ICsJCQkJbHV0W2ldLmJsdWUgPSAoaSAqIDB4ZmZmZiAvIChsdXRfc2l6ZSAtCj4+IDEpKSAmIDB4 ODAwMDsKPj4gKwkJCX0KPj4gKwo+PiArCQkJaWd0X3BpcGVfcmVwbGFjZV9wcm9wX2Jsb2IoJmRh dGEtPmRpc3BsYXksCj4+IHBpcGUsCj4+ICsJCQkJCQkgICBJR1RfQ1JUQ19HQU1NQV9MVVQsCj4+ ICsJCQkJCQkgICBsdXQsIHNpemVvZigqbHV0KSAqCj4+IGx1dF9zaXplKTsKPj4gKwkJCWlndF9k aXNwbGF5X2NvbW1pdDIoJmRhdGEtPmRpc3BsYXksIGRhdGEtCj4+PiBjb21taXQpOwo+PiArCj4+ ICsJCQlmb3IgKGkgPSAwOyBpIDwgbHV0X3NpemU7IGkrKykgewo+PiArCQkJCWx1dFtpXS5yZWQg PSBpICogMHhmZmZmIC8gKGx1dF9zaXplIC0KPj4gMSk7Cj4+ICsJCQkJbHV0W2ldLmdyZWVuID0g aSAqIDB4ZmZmZiAvIChsdXRfc2l6ZSAtCj4+IDEpOwo+PiArCQkJCWx1dFtpXS5ibHVlID0gaSAq IDB4ZmZmZiAvIChsdXRfc2l6ZSAtCj4+IDEpOwo+PiArCQkJfQo+PiArCQl9Cj4+ICsKPj4gICAJ CWRhdGEtPnBpcGVfY3JjID0gaWd0X3BpcGVfY3JjX25ldyhkYXRhLT5nZnhfZmQsIHBpcGUsCj4+ ICAgCQkJCQkJICBJTlRFTF9QSVBFX0NSQ19TT1VSQ0UKPj4gX0FVVE8pOwo+PiAgIAo+PiBAQCAt NDY3LDI5ICs0MTEsMzQgQEAgdGVzdF9hdmFpbGFibGVfbW9kZXMoZGF0YV90KiBkYXRhKQo+PiAg IAkJCW1vZGVQbGFuZSA9IGRybU1vZGVHZXRQbGFuZShkYXRhLT5nZnhfZmQsCj4+ICAgCQkJCQkJ ICAgIHBsYW5lLT5kcm1fcGxhbmUtCj4+PiBwbGFuZV9pZCk7Cj4+ICAgCj4+ICsJCQlpZiAocGxh bmUtPnR5cGUgPT0gRFJNX1BMQU5FX1RZUEVfQ1VSU09SKQo+PiArCQkJCWNvbnRpbnVlOwo+PiAr Cj4+ICAgCQkJZm9yIChtb2RlaW5kZXggPSAwOwo+PiAgIAkJCSAgICAgbW9kZWluZGV4IDwgbW9k ZVBsYW5lLT5jb3VudF9mb3JtYXRzOwo+PiAgIAkJCSAgICAgbW9kZWluZGV4KyspIHsKPj4gICAJ CQkJZGF0YS0+Zm9ybWF0LmR3b3JkID0gbW9kZVBsYW5lLQo+Pj4gZm9ybWF0c1ttb2RlaW5kZXhd Owo+PiAgIAo+PiAtCQkJCWlndF9pbmZvKCJUZXN0aW5nIGNvbm5lY3RvciAlcyB1c2luZwo+PiBw aXBlICVzIiBcCj4+IC0JCQkJCSAiIHBsYW5lIGluZGV4ICVkIHR5cGUgJXMgbW9kZQo+PiAlc1xu IiwKPj4gLQkJCQkJIGlndF9vdXRwdXRfbmFtZShvdXRwdXQpLAo+PiAtCQkJCQkga21zdGVzdF9w aXBlX25hbWUocGlwZSksCj4+IC0JCQkJCSBwbGFuZS0+aW5kZXgsCj4+IC0JCQkJCSBwbGFuZXR5 cGVbcGxhbmUtPnR5cGVdLAo+PiAtCQkJCQkgKGNoYXIqKSZkYXRhLT5mb3JtYXQubmFtZSk7Cj4g Cj4gTm90IHN1cmUgd2h5IHRoaXMgd2FzIHJlbW92ZWQsIHBlcmhhcHMgY29udmVydCBpdCB0byBp Z3RfZGVidWcoKT8gSXQncwo+IGhhcmQgdG8gdGVsbCB3aGF0IGlzIGJlaW5nIHRlc3RlZCBub3cg ZXZlbiB3aXRoIHRoZSAtLWRlYnVnIG9wdGlvbi4KCkkgZGlkIGNvbnNpZGVyIHRoaXMgYXMgdG9v IHZlcmJvc2UuIEFib3ZlIHdoZXJlIGNyY3MgYXJlIGNvbXBhcmVkIAp0aGVyZSdzIHByaW50ZWQg d2hhdCBmYWlsZWQgd2l0aCBtb3JlIGRldGFpbCB0aGFuIGhlcmUuCgo+IAo+IElmIHlvdSB3YW50 IHRvIGFkZHJlc3MgdGhlIGNvbW1lbnRzIGluIGEgc2VwYXJhdGUgcGF0Y2gsIGZlZWwgZnJlZSB0 bwo+IGFkZAo+IFJldmlld2VkLWJ5OiBEaGluYWthcmFuIFBhbmRpeWFuIDxkaGluYWthcmFuLnBh bmRpeWFuQGludGVsLmNvbT4KCkknbSBnb2luZyB0byBoYXZlIGZldyBDSSBydW5zIHdpdGggZXZv bHZpbmcgdGhpcyBwYXRjaCBzdGlsbC4KCkkgZm91bmQgdGltaW5nIGVycm9yIG9uIHRoaXMgdGVz dCwgaXQgaXMgbW9zdCBsaWtlbHkgd2hhdCBpcyBjYXVzaW5nIHRoZSAKbm9pc2UgZnJvbSB0aGlz IHRlc3QgaW4gQ0kgcnVucy4gSSBzb21laG93IG5ldmVyIHNlZSBpdCBvbiBhbnkgb2YgbXkgb3du IApjb21wdXRlcnMgYnV0IHJlYWxpemVkIGl0IGZyb20gdGhlIGxvZ2ljIGFuZCBmaXJzdCBhdHRl bXB0IHRvIG1pdGlnYXRlIAppdCBjaGFuZ2VkIENJIHJlc3VsdHMgZm9yIHRoZSBiZXR0ZXIgc28g SSdsbCBnZXQgdGhhdCBmaXhlZC4KCi9KdWhhLVBla2thCgo+IAo+IAo+PiAtCj4+ICAgCQkJCWlu dmFsaWRzICs9IHRlc3Rfb25lX21vZGUoZGF0YSwgb3V0cHV0LAo+PiAgIAkJCQkJCQkgIHBsYW5l LAo+PiAtCQkJCQkJCSAgbW9kZVBsYW5lLQo+Pj4gZm9ybWF0c1ttb2RlaW5kZXhdKTsKPj4gKwkJ CQkJCQkgIG1vZGVQbGFuZS0KPj4+IGZvcm1hdHNbbW9kZWluZGV4XSwKPj4gKwkJCQkJCQkgIHBp cGUpOwo+PiAgIAkJCX0KPj4gICAJCQlkcm1Nb2RlRnJlZVBsYW5lKG1vZGVQbGFuZSk7Cj4+ICAg CQl9Cj4+ICAgCQlpZ3RfcGlwZV9jcmNfc3RvcChkYXRhLT5waXBlX2NyYyk7Cj4+ICAgCQlpZ3Rf cGlwZV9jcmNfZnJlZShkYXRhLT5waXBlX2NyYyk7Cj4+IC0JCWlndF9kaXNwbGF5X2NvbW1pdDIo JmRhdGEtPmRpc3BsYXksIGRhdGEtPmNvbW1pdCk7Cj4+ICsKPj4gKwkJaWYgKGx1dCAhPSBOVUxM KSB7Cj4+ICsJCQlpZ3RfcGlwZV9yZXBsYWNlX3Byb3BfYmxvYigmZGF0YS0+ZGlzcGxheSwKPj4g cGlwZSwKPj4gKwkJCQkJCSAgIElHVF9DUlRDX0dBTU1BX0xVVCwKPj4gKwkJCQkJCSAgIGx1dCwg c2l6ZW9mKCpsdXQpICoKPj4gbHV0X3NpemUpOwo+PiArCQkJZnJlZShsdXQpOwo+PiArCQkJbHV0 ID0gTlVMTDsKPj4gKwkJfQo+PiArCj4+ICAgCQlpZ3Rfb3V0cHV0X3NldF9waXBlKG91dHB1dCwg UElQRV9OT05FKTsKPj4gKwkJaWd0X2Rpc3BsYXlfY29tbWl0MigmZGF0YS0+ZGlzcGxheSwgZGF0 YS0+Y29tbWl0KTsKPj4gICAJfQo+PiAgIAlpZ3RfYXNzZXJ0KGludmFsaWRzID09IDApOwo+PiAg IH0KPiAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmln dC1kZXYgbWFpbGluZyBsaXN0CmlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0LWRldg==