From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id 841DD6E326 for ; Tue, 29 Jan 2019 14:01:40 +0000 (UTC) References: <1545144020-21029-1-git-send-email-juhapekka.heikkila@gmail.com> <1545226909-1148-1-git-send-email-juhapekka.heikkila@gmail.com> From: Juha-Pekka Heikkila Message-ID: Date: Tue, 29 Jan 2019 16:01:30 +0200 MIME-Version: 1.0 In-Reply-To: Content-Language: en-US Subject: Re: [igt-dev] [PATCH i-g-t] tests/kms_available_modes_crc: Fix handling of test comparisons 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: "Pandiyan, Dhinakaran" , "igt-dev@lists.freedesktop.org" List-ID: T24gMjMuMS4yMDE5IDIxLjUwLCBQYW5kaXlhbiwgRGhpbmFrYXJhbiB3cm90ZToKPiBPbiBXZWQs IDIwMTgtMTItMTkgYXQgMTU6NDEgKzAyMDAsIEp1aGEtUGVra2EgSGVpa2tpbGEgd3JvdGU6Cj4+ IEZpeGVkIGhhbmRsaW5nIG9mIHNpbmdsZSBwbGFuZSBtb2RlcyBzbyB1c2VkIGJwcCBuZXZlciBn ZXQgdG8KPj4gYmUgMCBhbmQgZWFzZSBvZmYgY3JjIGNvbXBhcmlzb24gYSBiaXQgd2l0aCBnYW1t YSB0YWJsZXMgYXMKPj4gaWRlYSBvZiB0aGlzIHRlc3QgaXMgdG8gc2VlIGNob3NlbiBtb2RlcyBh cmUgYWJsZSB0byBpbml0aWFsaXplLgo+Pgo+PiBSZWxlYXNlIG91dHB1dCB0byBQSVBFX0FOWSBh dCBlbmQgb2YgdGVzdCBwZXIgY29ubmVjdG9yLgo+Pgo+PiBSZWR1Y2UgdmVyYm9zZW5lc3MgaWYg dGhlcmUncyBubyBlcnJvcnMuCj4+Cj4+IEJ1Z3ppbGxhOiBodHRwczovL2J1Z3MuZnJlZWRlc2t0 b3Aub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDY2NDEKPj4gQnVnemlsbGE6IGh0dHBzOi8vYnVncy5m cmVlZGVza3RvcC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNjcwMQo+PiBTaWduZWQtb2ZmLWJ5OiBK dWhhLVBla2thIEhlaWtraWxhIDxqdWhhcGVra2EuaGVpa2tpbGFAZ21haWwuY29tPgo+PiAtLS0K Pj4gICB0ZXN0cy9rbXNfYXZhaWxhYmxlX21vZGVzX2NyYy5jIHwgMTY5ICsrKysrKysrKysrKysr KysrKysrLS0tLS0tLS0KPj4gLS0tLS0tLS0tLS0tCj4+ICAgMSBmaWxlIGNoYW5nZWQsIDg2IGlu c2VydGlvbnMoKyksIDgzIGRlbGV0aW9ucygtKQo+Pgo+PiBkaWZmIC0tZ2l0IGEvdGVzdHMva21z X2F2YWlsYWJsZV9tb2Rlc19jcmMuYwo+PiBiL3Rlc3RzL2ttc19hdmFpbGFibGVfbW9kZXNfY3Jj LmMKPj4gaW5kZXggNDVhNDc3NS4uMDQ0NzJkMCAxMDA2NDQKPj4gLS0tIGEvdGVzdHMva21zX2F2 YWlsYWJsZV9tb2Rlc19jcmMuYwo+PiArKysgYi90ZXN0cy9rbXNfYXZhaWxhYmxlX21vZGVzX2Ny Yy5jCj4+IEBAIC01NCw2ICs1NCwxMiBAQCB0eXBlZGVmIHN0cnVjdCB7Cj4+ICAgCj4+ICAgCWln dF9jcmNfdCBjdXJzb3JfY3JjOwo+PiAgIAlpZ3RfY3JjX3QgZnVsbHNjcmVlbl9jcmM7Cj4+ICsK Pj4gKwkvKgo+PiArCSAqIElmIHRoZXJlJ3MgdW5rbm93biBmb3JtYXQgc2V0dGluZyB1cCBtb2Rl IGNhbiBmYWlsCj4+ICsJICogd2l0aG91dCBmYWlsaW5nIGVudGlyZSB0ZXN0Lgo+PiArCSAqLwo+ PiArCWJvb2wgYWxsb3dfZmFpbDsKPj4gICB9IGRhdGFfdDsKPj4gICAKPj4gICAKPj4gQEAgLTEy MCw3ICsxMjYsNiBAQCBzdGF0aWMgdm9pZCBnZW5lcmF0ZV9jb21wYXJpc29uX2NyY19saXN0KGRh dGFfdAo+PiAqZGF0YSwgaWd0X291dHB1dF90ICpvdXRwdXQpCj4+ICAgCj4+ICAgc3RhdGljIGNv bnN0IHN0cnVjdCB7Cj4+ICAgCXVpbnQzMl90CWZvdXJjYzsKPj4gLQljaGFyCQl6ZXJvcGFkZGlu ZzsKPj4gICAJZW51bQkJeyBCWVRFU19QUF8xPTEsCj4+ICAgCQkJCUJZVEVTX1BQXzI9MiwKPj4g ICAJCQkJQllURVNfUFBfND00LAo+PiBAQCAtMTI5LDQyICsxMzQsMzMgQEAgc3RhdGljIGNvbnN0 IHN0cnVjdCB7Cj4+ICAgCQkJCVNLSVA0IH0gYnBwOwo+PiAgIAl1aW50MzJfdAl2YWx1ZTsKPj4g ICB9IGZpbGxlcnNbXSA9IHsKPj4gLQl7IERSTV9GT1JNQVRfQzgsIDAsIEJZVEVTX1BQXzEsIDB4 ZmZ9LAo+PiAtCXsgRFJNX0ZPUk1BVF9SR0I1NjUsIDAsIEJZVEVTX1BQXzIsIDB4ZmZmZn0sCj4+ IC0JeyBEUk1fRk9STUFUX1hSR0I4ODg4LCAwLCBCWVRFU19QUF80LCAweGZmZmZmZmZmfSwKPj4g LQl7IERSTV9GT1JNQVRfWEJHUjg4ODgsIDAsIEJZVEVTX1BQXzQsIDB4ZmZmZmZmZmZ9LAo+PiAt Cj4+IC0JLyoKPj4gLQkgKiBmb2xsb3dpbmcgdHdvIGFyZSBza2lwcGVkIGJlY2F1c2UgYmxlbmRp bmcgc2VlbXMgdG8gd29yawo+PiAtCSAqIGluY29ycmVjdGx5IHdpdGggZXhjZXB0aW9uIG9mIEFS MjQgb24gY3Vyc29yIHBsYW5lLgo+PiAtCSAqIFRlc3Qgc3RpbGwgY3JlYXRlcyB0aGUgcGxhbmVz LCBqdXN0IGZpbGxpbmcgcGxhbmUKPj4gLQkgKiBhbmQgZ2V0dGluZyBjcmMgaXMgc2tpcHBlZC4K Pj4gLQkgKi8KPj4gLQl7IERSTV9GT1JNQVRfQVJHQjg4ODgsIDAsIFNLSVA0LCAweGZmZmZmZmZm fSwKPj4gLQl7IERSTV9GT1JNQVRfQUJHUjg4ODgsIDAsIFNLSVA0LCAweDAwZmZmZmZmfSwKPj4g LQo+PiAtCXsgRFJNX0ZPUk1BVF9YUkdCMjEwMTAxMCwgMCwgQllURVNfUFBfNCwgMHhmZmZmZmZm Zn0sCj4+IC0JeyBEUk1fRk9STUFUX1hCR1IyMTAxMDEwLCAwLCBCWVRFU19QUF80LCAweGZmZmZm ZmZmfSwKPj4gLQo+PiAtCXsgRFJNX0ZPUk1BVF9ZVVlWLCAwLCBCWVRFU19QUF80LCAweDgwZWI4 MGVifSwKPj4gLQl7IERSTV9GT1JNQVRfWVZZVSwgMCwgQllURVNfUFBfNCwgMHg4MGViODBlYn0s Cj4+IC0JeyBEUk1fRk9STUFUX1ZZVVksIDAsIEJZVEVTX1BQXzQsIDB4ZWI4MGViODB9LAo+PiAt CXsgRFJNX0ZPUk1BVF9VWVZZLCAwLCBCWVRFU19QUF80LCAweGViODBlYjgwfSwKPj4gKwl7IERS TV9GT1JNQVRfQzgsIEJZVEVTX1BQXzEsIDB4ZmZ9LAo+PiArCXsgRFJNX0ZPUk1BVF9SR0I1NjUs IEJZVEVTX1BQXzIsIDB4ZmZmZn0sCj4+ICsJeyBEUk1fRk9STUFUX1hSR0I4ODg4LCBCWVRFU19Q UF80LCAweGZmZmZmZmZmfSwKPj4gKwl7IERSTV9GT1JNQVRfWEJHUjg4ODgsIEJZVEVTX1BQXzQs IDB4ZmZmZmZmZmZ9LAo+PiArCXsgRFJNX0ZPUk1BVF9BUkdCODg4OCwgQllURVNfUFBfNCwgMHhm ZmZmZmZmZn0sCj4+ICsJeyBEUk1fRk9STUFUX0FCR1I4ODg4LCBCWVRFU19QUF80LCAweDAwZmZm ZmZmfSwKPj4gKwl7IERSTV9GT1JNQVRfWFJHQjIxMDEwMTAsIEJZVEVTX1BQXzQsIDB4ZmZmZmZm ZmZ9LAo+PiArCXsgRFJNX0ZPUk1BVF9YQkdSMjEwMTAxMCwgQllURVNfUFBfNCwgMHhmZmZmZmZm Zn0sCj4+ICsJeyBEUk1fRk9STUFUX1lVWVYsIEJZVEVTX1BQXzQsIDB4ODBlYjgwZWJ9LAo+PiAr CXsgRFJNX0ZPUk1BVF9ZVllVLCBCWVRFU19QUF80LCAweDgwZWI4MGVifSwKPj4gKwl7IERSTV9G T1JNQVRfVllVWSwgQllURVNfUFBfNCwgMHhlYjgwZWI4MH0sCj4+ICsJeyBEUk1fRk9STUFUX1VZ VlksIEJZVEVTX1BQXzQsIDB4ZWI4MGViODB9LAo+PiAgIAo+PiAgIAkvKgo+PiAgIAkgKiAoc2Vt aS0pcGxhbmFyIGZvcm1hdHMKPj4gICAJICovCj4+IC0JeyBEUk1fRk9STUFUX05WMTIsIDAsIE5W MTIsIDB4ODBlYn0sCj4+ICsJeyBEUk1fRk9STUFUX05WMTIsIE5WMTIsIDB4ODBlYn0sCj4+ICAg I2lmZGVmIERSTV9GT1JNQVRfUDAxMAo+PiAtCXsgRFJNX0ZPUk1BVF9QMDEwLCAwLCBQMDEwLCAw eDgwMDBlYjAwfSwKPj4gKwl7IERSTV9GT1JNQVRfUDAxMCwgUDAxMCwgMHg4MDAwZWIwMH0sCj4+ ICAgI2VuZGlmCj4+ICAgI2lmZGVmIERSTV9GT1JNQVRfUDAxMgo+PiAtCXsgRFJNX0ZPUk1BVF9Q MDEyLCAwLCBQMDEwLCAweDgwMDBlYjAwfSwKPj4gKwl7IERSTV9GT1JNQVRfUDAxMiwgUDAxMCwg MHg4MDAwZWIwMH0sCj4+ICAgI2VuZGlmCj4+ICAgI2lmZGVmIERSTV9GT1JNQVRfUDAxNgo+PiAt CXsgRFJNX0ZPUk1BVF9QMDE2LCAwLCBQMDEwLCAweDgwMDBlYjAwfSwKPj4gKwl7IERSTV9GT1JN QVRfUDAxNiwgUDAxMCwgMHg4MDAwZWIwMH0sCj4+ICAgI2VuZGlmCj4+IC0JeyAwLCAwLCAwLCAw IH0KPj4gKwl7IDAsIFNLSVA0LCAwIH0KPj4gICB9Owo+PiAgIAo+PiAgIC8qCj4+IEBAIC0yMjEs MjQgKzIxNyw5IEBAIHN0YXRpYyBib29sIGZpbGxfaW5fZmIoZGF0YV90ICpkYXRhLAo+PiBpZ3Rf b3V0cHV0X3QgKm91dHB1dCwgaWd0X3BsYW5lX3QgKnBsYW5lLAo+PiAgIAkJd3JpdGVzaXplID0g ZGF0YS0+c2l6ZStkYXRhLT5zaXplLzI7Cj4+ICAgCQlicmVhazsKPj4gICAJY2FzZSBTS0lQNDoK Pj4gLQkJaWYgKGZpbGxlcnNbaV0uZm91cmNjID09IERSTV9GT1JNQVRfQVJHQjg4ODggJiYKPj4g LQkJICAgIHBsYW5lLT50eXBlID09IERSTV9QTEFORV9UWVBFX0NVUlNPUikgewo+PiAtCQkvKgo+ PiAtCQkgKiBzcGVjaWFsIGZvciBjdXJzb3IgcGxhbmUgd2hlcmUgYmxlbmRpbmcgd29ya3MKPj4g Y29ycmVjdGx5Lgo+PiAtCQkgKi8KPj4gLQkJCXB0ZW1wXzMyX2J1ZiA9ICh1bnNpZ25lZCBpbnQq KWRhdGEtPmJ1ZjsKPj4gLQkJCWZvciAoYyA9IDA7IGMgPCBkYXRhLT5zaXplLzQ7IGMrKykKPj4g LQkJCQlwdGVtcF8zMl9idWZbY10gPSBmaWxsZXJzW2ldLnZhbHVlOwo+PiAtCQkJd3JpdGVzaXpl ID0gZGF0YS0+c2l6ZTsKPj4gLQkJCWJyZWFrOwo+PiAtCQl9Cj4+IC0JCWlndF9pbmZvKCJGb3Jt YXQgJXMgQ1JDIGNvbXBhcmlzb24gc2tpcHBlZCBieQo+PiBkZXNpZ24uXG4iLAo+PiAtCQkJIChj aGFyKikmZmlsbGVyc1tpXS5mb3VyY2MpOwo+PiAtCj4+IC0JCXJldHVybiBmYWxzZTsKPj4gICAJ ZGVmYXVsdDoKPj4gLQkJaWd0X2luZm8oIlVuc3VwcG9ydGVkIG1vZGUgZm9yIHRlc3QgJXNcbiIs Cj4+IC0JCQkgKGNoYXIqKSZmaWxsZXJzW2ldLmZvdXJjYyk7Cj4+ICsJCWlndF9pbmZvKCJVbnN1 cHBvcnRlZCBtb2RlIGZvciB0ZXN0aW5nIENSQyAlLjRzXG4iLAo+PiArCQkJIChjaGFyICopJmZv cm1hdCk7Cj4+ICAgCQlyZXR1cm4gZmFsc2U7Cj4+ICAgCX0KPj4gICAKPj4gQEAgLTI2MSw2ICsy NDIsOCBAQCBzdGF0aWMgYm9vbCBzZXR1cF9mYihkYXRhX3QgKmRhdGEsIGlndF9vdXRwdXRfdAo+ PiAqb3V0cHV0LCBpZ3RfcGxhbmVfdCAqcGxhbmUsCj4+ICAgCWludCBicHAgPSAwOwo+PiAgIAlp bnQgaTsKPj4gICAKPj4gKwlkYXRhLT5hbGxvd19mYWlsID0gZmFsc2U7Cj4+ICsKPj4gICAJbW9k ZSA9IGlndF9vdXRwdXRfZ2V0X21vZGUob3V0cHV0KTsKPj4gICAJaWYgKHBsYW5lLT50eXBlICE9 IERSTV9QTEFORV9UWVBFX0NVUlNPUikgewo+PiAgIAkJdyA9IG1vZGUtPmhkaXNwbGF5Owo+PiBA QCAtMjg5LDYgKzI3Miw4IEBAIHN0YXRpYyBib29sIHNldHVwX2ZiKGRhdGFfdCAqZGF0YSwgaWd0 X291dHB1dF90Cj4+ICpvdXRwdXQsIGlndF9wbGFuZV90ICpwbGFuZSwKPj4gICAJCWJyZWFrOwo+ PiAgIAo+PiAgIAljYXNlIFNLSVA0Ogo+PiArCQlkYXRhLT5hbGxvd19mYWlsID0gdHJ1ZTsKPj4g KwkJLyogZmFsbCB0aHJvdWdoICovCj4+ICAgCWNhc2UgQllURVNfUFBfNDoKPj4gICAJCWJwcCA9 IDMyOwo+PiAgIAkJYnJlYWs7Cj4+IEBAIC0zMTksNyArMzA0LDcgQEAgc3RhdGljIGJvb2wgc2V0 dXBfZmIoZGF0YV90ICpkYXRhLCBpZ3Rfb3V0cHV0X3QKPj4gKm91dHB1dCwgaWd0X3BsYW5lX3Qg KnBsYW5lLAo+PiAgIAo+PiAgIAlpZihyZXQgPCAwKSB7Cj4+ICAgCQlpZ3RfaW5mbygiQ3JlYXRp bmcgZmIgZm9yIGZvcm1hdCAlcyBmYWlsZWQsIHJldHVybiBjb2RlCj4+ICVkXG4iLAo+PiAtCQkJ IChjaGFyKikmZGF0YS0+Zm9ybWF0Lm5hbWUsIHJldCk7Cj4+ICsJCQkgKGNoYXIgKikmZGF0YS0+ Zm9ybWF0Lm5hbWUsIHJldCk7Cj4+ICAgCj4+ICAgCQlyZXR1cm4gZmFsc2U7Cj4+ICAgCX0KPj4g QEAgLTM4MCwxMyArMzY1LDE0IEBAIHN0YXRpYyBib29sIHByZXBhcmVfY3J0YyhkYXRhX3QgKmRh dGEsCj4+IGlndF9vdXRwdXRfdCAqb3V0cHV0LAo+PiAgIAo+PiAgIAo+PiAgIHN0YXRpYyBpbnQK Pj4gLXRlc3Rfb25lX21vZGUoZGF0YV90KiBkYXRhLCBpZ3Rfb3V0cHV0X3QgKm91dHB1dCwgaWd0 X3BsYW5lX3QqCj4+IHBsYW5lLAo+PiAtCSAgICAgIGludCBtb2RlKQo+PiArdGVzdF9vbmVfbW9k ZShkYXRhX3QgKmRhdGEsIGlndF9vdXRwdXRfdCAqb3V0cHV0LCBpZ3RfcGxhbmVfdAo+PiAqcGxh bmUsCj4+ICsJICAgICAgZW51bSBwaXBlIHBpcGUsIGludCBtb2RlKQo+PiAgIHsKPj4gICAJaWd0 X2NyY190IGN1cnJlbnRfY3JjOwo+PiAgIAlzaWduZWQgclZhbCA9IDA7Cj4+ICAgCWJvb2wgZG9f Y3JjOwo+PiAtCWNoYXIqIGNyY2NvbXBhcmVbMl07Cj4+ICsJY2hhciAqY3JjY29tcGFyZVsyXTsK Pj4gKwlpZ3RfY3JjX3QgKnBfY3JjOwo+PiAgIAo+PiAgIAlpZiAocHJlcGFyZV9jcnRjKGRhdGEs IG91dHB1dCwgcGxhbmUsIG1vZGUpKXsKPj4gICAJCS8qCj4+IEBAIC00MDQsMzIgKzM5MCwzMiBA QCB0ZXN0X29uZV9tb2RlKGRhdGFfdCogZGF0YSwgaWd0X291dHB1dF90Cj4+ICpvdXRwdXQsIGln dF9wbGFuZV90KiBwbGFuZSwKPj4gICAJCWlmIChkb19jcmMpIHsKPj4gICAJCQlpZ3RfcGlwZV9j cmNfZ2V0X2N1cnJlbnQoZGF0YS0+Z2Z4X2ZkLCBkYXRhLQo+Pj4gcGlwZV9jcmMsICZjdXJyZW50 X2NyYyk7Cj4+ICAgCj4+IC0JCQlpZiAocGxhbmUtPnR5cGUgIT0gRFJNX1BMQU5FX1RZUEVfQ1VS U09SKSB7Cj4+IC0JCQkJaWYgKCFpZ3RfY2hlY2tfY3JjX2VxdWFsKCZjdXJyZW50X2NyYywKPj4g LQkJCQkJJmRhdGEtPmZ1bGxzY3JlZW5fY3JjKSkgewo+PiAtCQkJCQljcmNjb21wYXJlWzBdID0K Pj4gaWd0X2NyY190b19zdHJpbmcoJmN1cnJlbnRfY3JjKTsKPj4gLQkJCQkJY3JjY29tcGFyZVsx XSA9Cj4+IGlndF9jcmNfdG9fc3RyaW5nKCZkYXRhLT5mdWxsc2NyZWVuX2NyYyk7Cj4+IC0JCQkJ CWlndF93YXJuKCJjcmMgbWlzbWF0Y2guIHRhcmdldAo+PiAlLjhzLCByZXN1bHQgJS44cy5cbiIs IGNyY2NvbXBhcmVbMF0sIGNyY2NvbXBhcmVbMV0pOwo+PiAtCQkJCQlmcmVlKGNyY2NvbXBhcmVb MF0pOwo+PiAtCQkJCQlmcmVlKGNyY2NvbXBhcmVbMV0pOwo+PiAtCQkJCQlyVmFsKys7Cj4+IC0J CQkJfQo+PiAtCQkJfSBlbHNlIHsKPj4gLQkJCQlpZiAoIWlndF9jaGVja19jcmNfZXF1YWwoJmN1 cnJlbnRfY3JjLAo+PiAtCQkJCQkmZGF0YS0+Y3Vyc29yX2NyYykpIHsKPj4gLQkJCQkJY3JjY29t cGFyZVswXSA9Cj4+IGlndF9jcmNfdG9fc3RyaW5nKCZjdXJyZW50X2NyYyk7Cj4+IC0JCQkJCWNy Y2NvbXBhcmVbMV0gPQo+PiBpZ3RfY3JjX3RvX3N0cmluZygmZGF0YS0+Y3Vyc29yX2NyYyk7Cj4+ IC0JCQkJCWlndF93YXJuKCJjcmMgbWlzbWF0Y2guIHRhcmdldAo+PiAlLjhzLCByZXN1bHQgJS44 cy5cbiIsIGNyY2NvbXBhcmVbMF0sIGNyY2NvbXBhcmVbMV0pOwo+PiAtCQkJCQlmcmVlKGNyY2Nv bXBhcmVbMF0pOwo+PiAtCQkJCQlmcmVlKGNyY2NvbXBhcmVbMV0pOwo+PiArCQkJaWYgKHBsYW5l LT50eXBlICE9IERSTV9QTEFORV9UWVBFX0NVUlNPUikKPj4gKwkJCQlwX2NyYyA9ICZkYXRhLT5m dWxsc2NyZWVuX2NyYzsKPj4gKwkJCWVsc2UKPj4gKwkJCQlwX2NyYyA9ICZkYXRhLT5jdXJzb3Jf Y3JjOwo+PiArCj4+ICsJCQlpZiAoIWlndF9jaGVja19jcmNfZXF1YWwoJmN1cnJlbnRfY3JjLCBw X2NyYykpCj4+IHsKPj4gKwkJCQljcmNjb21wYXJlWzBdID0KPj4gaWd0X2NyY190b19zdHJpbmco JmN1cnJlbnRfY3JjKTsKPj4gKwkJCQljcmNjb21wYXJlWzFdID0KPj4gaWd0X2NyY190b19zdHJp bmcocF9jcmMpOwo+PiArCQkJCWlndF93YXJuKCJjcmMgbWlzbWF0Y2ggb24gJXMgUElQRSAlcwo+ PiBwbGFuZSAlZCBmb3JtYXQgJS40cy4gdGFyZ2V0ICUuOHMsIHJlc3VsdCAlLjhzLlxuIiwKPj4g KwkJCQkJIGlndF9vdXRwdXRfbmFtZShvdXRwdXQpLAo+PiArCQkJCQkga21zdGVzdF9waXBlX25h bWUocGlwZSksCj4+ICsJCQkJCSBwbGFuZS0+aW5kZXgsCj4+ICsJCQkJCSAoY2hhciAqKSZkYXRh LT5mb3JtYXQubmFtZSwKPj4gKwkJCQkJIGNyY2NvbXBhcmVbMF0sCj4+ICsJCQkJCSBjcmNjb21w YXJlWzFdKTsKPiAKPiBDYW4geW91IHBsZWFzZSBzcGxpdCB0aGlzIGRlYnVnIHByaW50IGludG8g YSBzZXBhcmF0ZSBwYXRjaD8gVGhhdCB3YXkKPiB3ZSBjYW4gc2VlIHdoaWNoIGZvcm1hdC9wbGFu ZS9waXBlIGNvbWJpbmF0aW9uIGlzIGZhaWxpbmcgb24gSUNMIHdoaWxlCj4geW91IGFyZSB3b3Jr aW5nIG9uIHRoZSBnYW1tYSBmaXhlcz8KClRoaXMgaXMgd2hhdCB5b3Ugd2VyZSBob3BpbmcgZm9y PyAKaHR0cHM6Ly9wYXRjaHdvcmsuZnJlZWRlc2t0b3Aub3JnL3Nlcmllcy81NTcyNy8KCgovSnVo YS1QZWtrYQoKCj4gCj4gCj4gCj4+ICsKPj4gKwkJCQlmcmVlKGNyY2NvbXBhcmVbMF0pOwo+PiAr CQkJCWZyZWUoY3JjY29tcGFyZVsxXSk7Cj4+ICsJCQkJaWYgKCFkYXRhLT5hbGxvd19mYWlsKQo+ PiAgIAkJCQkJclZhbCsrOwo+PiAtCQkJCX0KPj4gICAJCQl9Cj4+ICAgCQl9Cj4+ICAgCQlyZW1v dmVfZmIoZGF0YSwgb3V0cHV0LCBwbGFuZSk7Cj4+ICAgCQlyZXR1cm4gclZhbDsKPj4gICAJfQo+ PiAtCXJldHVybiAxOwo+PiArCXJldHVybiBkYXRhLT5hbGxvd19mYWlsID8gMCA6IDE7Cj4+ICAg fQo+PiAgIAo+PiAgIAo+PiBAQCAtNDQwLDE0ICs0MjYsMzggQEAgdGVzdF9hdmFpbGFibGVfbW9k ZXMoZGF0YV90KiBkYXRhKQo+PiAgIAlpZ3RfcGxhbmVfdCAqcGxhbmU7Cj4+ICAgCWludCBtb2Rl aW5kZXg7Cj4+ICAgCWVudW0gcGlwZSBwaXBlOwo+PiAtCWludCBpbnZhbGlkcyA9IDA7Cj4+ICsJ aW50IGZhaWxlZF9jcmNzID0gMCwgaSwgbHV0X3NpemU7Cj4+ICAgCWRybU1vZGVQbGFuZSAqbW9k ZVBsYW5lOwo+PiAtCWNoYXIgcGxhbmV0eXBlWzNdWzhdID0geyJPVkVSTEFZXDAiLCAiUFJJTUFS WVwwIiwgIkNVUlNPUlwwIiB9Owo+PiArCj4+ICsJc3RydWN0IHsKPj4gKwkJdWludDE2X3QgcmVk Owo+PiArCQl1aW50MTZfdCBncmVlbjsKPj4gKwkJdWludDE2X3QgYmx1ZTsKPj4gKwkJdWludDE2 X3QgcmVzZXJ2ZWQ7Cj4+ICsJfSAqbHV0Owo+PiAgIAo+PiAgIAlmb3JfZWFjaF9waXBlX3dpdGhf dmFsaWRfb3V0cHV0KCZkYXRhLT5kaXNwbGF5LCBwaXBlLCBvdXRwdXQpIHsKPj4gKwkJaWd0X2Rp c3BsYXlfcmVzZXQoJmRhdGEtPmRpc3BsYXkpOwo+PiAgIAkJaWd0X291dHB1dF9zZXRfcGlwZShv dXRwdXQsIHBpcGUpOwo+PiAgIAkJaWd0X2Rpc3BsYXlfY29tbWl0MigmZGF0YS0+ZGlzcGxheSwg ZGF0YS0+Y29tbWl0KTsKPj4gICAKPj4gKwkJaWYgKGlndF9waXBlX29ial9oYXNfcHJvcCgmZGF0 YS0+ZGlzcGxheS5waXBlc1twaXBlXSwKPj4gSUdUX0NSVENfR0FNTUFfTFVUX1NJWkUpKSB7Cj4+ ICsJCQlsdXRfc2l6ZSA9IGlndF9waXBlX2dldF9wcm9wKCZkYXRhLT5kaXNwbGF5LAo+PiBwaXBl LAo+PiArCQkJCQkJICAgICBJR1RfQ1JUQ19HQU1NQV9MVVQKPj4gX1NJWkUpOwo+PiArCQkJbHV0 ID0gY2FsbG9jKHNpemVvZigqbHV0KSwgbHV0X3NpemUpOwo+PiArCj4+ICsJCQlmb3IgKGkgPSAw OyBpIDwgbHV0X3NpemU7IGkrKykgewo+PiArCQkJCWx1dFtpXS5yZWQgPSAoaSAqIDB4ZmZmZiAv IChsdXRfc2l6ZSAtCj4+IDEpKSAmIDB4ZmMwMDsKPj4gKwkJCQlsdXRbaV0uZ3JlZW4gPSAoaSAq IDB4ZmZmZiAvIChsdXRfc2l6ZQo+PiAtIDEpKSAmIDB4ZmMwMDsKPj4gKwkJCQlsdXRbaV0uYmx1 ZSA9IChpICogMHhmZmZmIC8gKGx1dF9zaXplIC0KPj4gMSkpICYgMHhmYzAwOwo+PiArCQkJfQo+ PiArCj4+ICsJCQlpZ3RfcGlwZV9yZXBsYWNlX3Byb3BfYmxvYigmZGF0YS0+ZGlzcGxheSwKPj4g cGlwZSwKPj4gKwkJCQkJCSAgIElHVF9DUlRDX0dBTU1BX0xVVCwKPj4gKwkJCQkJCSAgIGx1dCwg c2l6ZW9mKCpsdXQpICoKPj4gbHV0X3NpemUpOwo+PiArCQkJZnJlZShsdXQpOwo+PiArCQl9Cj4+ ICsKPj4gICAJCWRhdGEtPnBpcGVfY3JjID0gaWd0X3BpcGVfY3JjX25ldyhkYXRhLT5nZnhfZmQs IHBpcGUsCj4+ICAgCQkJCQkJICBJTlRFTF9QSVBFX0NSQ19TT1VSQ0UKPj4gX0FVVE8pOwo+PiAg IAo+PiBAQCAtNDY3LDI1ICs0NzcsMTggQEAgdGVzdF9hdmFpbGFibGVfbW9kZXMoZGF0YV90KiBk YXRhKQo+PiAgIAkJCSAgICAgbW9kZWluZGV4KyspIHsKPj4gICAJCQkJZGF0YS0+Zm9ybWF0LmR3 b3JkID0gbW9kZVBsYW5lLQo+Pj4gZm9ybWF0c1ttb2RlaW5kZXhdOwo+PiAgIAo+PiAtCQkJCWln dF9pbmZvKCJUZXN0aW5nIGNvbm5lY3RvciAlcyB1c2luZwo+PiBwaXBlICVzIiBcCj4+IC0JCQkJ CSAiIHBsYW5lIGluZGV4ICVkIHR5cGUgJXMgbW9kZQo+PiAlc1xuIiwKPj4gLQkJCQkJIGlndF9v dXRwdXRfbmFtZShvdXRwdXQpLAo+PiAtCQkJCQkga21zdGVzdF9waXBlX25hbWUocGlwZSksCj4+ IC0JCQkJCSBwbGFuZS0+aW5kZXgsCj4+IC0JCQkJCSBwbGFuZXR5cGVbcGxhbmUtPnR5cGVdLAo+ PiAtCQkJCQkgKGNoYXIqKSZkYXRhLT5mb3JtYXQubmFtZSk7Cj4+IC0KPj4gLQkJCQlpbnZhbGlk cyArPSB0ZXN0X29uZV9tb2RlKGRhdGEsIG91dHB1dCwKPj4gLQkJCQkJCQkgIHBsYW5lLAo+PiAt CQkJCQkJCSAgbW9kZVBsYW5lLQo+Pj4gZm9ybWF0c1ttb2RlaW5kZXhdKTsKPj4gKwkJCQlmYWls ZWRfY3JjcyArPSB0ZXN0X29uZV9tb2RlKGRhdGEsCj4+IG91dHB1dCwKPj4gKwkJCQkJCQkgICAg IHBsYW5lLAo+PiBwaXBlLAo+PiArCQkJCQkJCSAgICAgbW9kZVBsYW5lLQo+Pj4gZm9ybWF0c1tt b2RlaW5kZXhdKTsKPj4gICAJCQl9Cj4+ICAgCQkJZHJtTW9kZUZyZWVQbGFuZShtb2RlUGxhbmUp Owo+PiAgIAkJfQo+PiAgIAkJaWd0X3BpcGVfY3JjX3N0b3AoZGF0YS0+cGlwZV9jcmMpOwo+PiAg IAkJaWd0X3BpcGVfY3JjX2ZyZWUoZGF0YS0+cGlwZV9jcmMpOwo+PiAtCQlpZ3RfZGlzcGxheV9j b21taXQyKCZkYXRhLT5kaXNwbGF5LCBkYXRhLT5jb21taXQpOwo+PiArCj4+ICsJCWlndF9vdXRw dXRfc2V0X3BpcGUob3V0cHV0LCBQSVBFX0FOWSk7Cj4+ICAgCX0KPj4gLQlpZ3RfYXNzZXJ0KGlu dmFsaWRzID09IDApOwo+PiArCWlndF9hc3NlcnQoZmFpbGVkX2NyY3MgPT0gMCk7Cj4+ICAgfQo+ PiAgIAo+PiAgIAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KaWd0LWRldiBtYWlsaW5nIGxpc3QKaWd0LWRldkBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pZ3QtZGV2Cg==