From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id C1AA16E4B4 for ; Wed, 30 Jan 2019 06:40:58 +0000 (UTC) Message-ID: From: Dhinakaran Pandiyan Date: Tue, 29 Jan 2019 22:40:52 -0800 In-Reply-To: <1548419427-16597-1-git-send-email-juhapekka.heikkila@gmail.com> References: <1548419427-16597-1-git-send-email-juhapekka.heikkila@gmail.com> Mime-Version: 1.0 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: dhinakaran.pandiyan@intel.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: Juha-Pekka Heikkila , igt-dev@lists.freedesktop.org List-ID: T24gRnJpLCAyMDE5LTAxLTI1IGF0IDE0OjMwICswMjAwLCBKdWhhLVBla2thIEhlaWtraWxhIHdy b3RlOgo+IEZpeGVkIGhhbmRsaW5nIG9mIHNpbmdsZSBwbGFuZSBtb2RlcyBzbyB1c2VkIGJwcCBu ZXZlciBnZXQgdG8KPiBiZSAwLgo+IAo+IFJlZHVjZSB2ZXJib3NlbmVzcyBpZiB0aGVyZSdzIG5v IGVycm9ycy4KPiAKPiBCdWd6aWxsYTogaHR0cHM6Ly9idWdzLmZyZWVkZXNrdG9wLm9yZy9zaG93 X2J1Zy5jZ2k/aWQ9MTA2NzAxCj4gU2lnbmVkLW9mZi1ieTogSnVoYS1QZWtrYSBIZWlra2lsYSA8 anVoYXBla2thLmhlaWtraWxhQGdtYWlsLmNvbT4KPiAtLS0KPiAgdGVzdHMva21zX2F2YWlsYWJs ZV9tb2Rlc19jcmMuYyB8IDEyMyArKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tCj4gLS0tLS0t LS0tLS0tCj4gIDEgZmlsZSBjaGFuZ2VkLCA2MSBpbnNlcnRpb25zKCspLCA2MiBkZWxldGlvbnMo LSkKPiAKPiBkaWZmIC0tZ2l0IGEvdGVzdHMva21zX2F2YWlsYWJsZV9tb2Rlc19jcmMuYwo+IGIv dGVzdHMva21zX2F2YWlsYWJsZV9tb2Rlc19jcmMuYwo+IGluZGV4IDdmZjM4NWYuLjQzMmMwODQg MTAwNjQ0Cj4gLS0tIGEvdGVzdHMva21zX2F2YWlsYWJsZV9tb2Rlc19jcmMuYwo+ICsrKyBiL3Rl c3RzL2ttc19hdmFpbGFibGVfbW9kZXNfY3JjLmMKPiBAQCAtNTQsNiArNTQsMTIgQEAgdHlwZWRl ZiBzdHJ1Y3Qgewo+ICAKPiAgCWlndF9jcmNfdCBjdXJzb3JfY3JjOwo+ICAJaWd0X2NyY190IGZ1 bGxzY3JlZW5fY3JjOwo+ICsKPiArCS8qCj4gKwkgKiBJZiB0aGVyZSdzIHVua25vd24gZm9ybWF0 IHNldHRpbmcgdXAgbW9kZSBjYW4gZmFpbAo+ICsJICogd2l0aG91dCBmYWlsaW5nIGVudGlyZSB0 ZXN0Lgo+ICsJICovCj4gKwlib29sIGFsbG93X2ZhaWw7Cj4gIH0gZGF0YV90Owo+ICAKPiAgCj4g QEAgLTEyMCw3ICsxMjYsNiBAQCBzdGF0aWMgdm9pZCBnZW5lcmF0ZV9jb21wYXJpc29uX2NyY19s aXN0KGRhdGFfdAo+ICpkYXRhLCBpZ3Rfb3V0cHV0X3QgKm91dHB1dCkKPiAgCj4gIHN0YXRpYyBj b25zdCBzdHJ1Y3Qgewo+ICAJdWludDMyX3QJZm91cmNjOwo+IC0JY2hhcgkJemVyb3BhZGRpbmc7 Cj4gIAllbnVtCQl7IEJZVEVTX1BQXzE9MSwKPiAgCQkJCUJZVEVTX1BQXzI9MiwKPiAgCQkJCUJZ VEVTX1BQXzQ9NCwKPiBAQCAtMTI5LDEwICsxMzQsMTAgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB7 Cj4gIAkJCQlTS0lQNCB9IGJwcDsKPiAgCXVpbnQzMl90CXZhbHVlOwo+ICB9IGZpbGxlcnNbXSA9 IHsKPiAtCXsgRFJNX0ZPUk1BVF9DOCwgMCwgQllURVNfUFBfMSwgMHhmZn0sCj4gLQl7IERSTV9G T1JNQVRfUkdCNTY1LCAwLCBCWVRFU19QUF8yLCAweGZmZmZ9LAo+IC0JeyBEUk1fRk9STUFUX1hS R0I4ODg4LCAwLCBCWVRFU19QUF80LCAweGZmZmZmZmZmfSwKPiAtCXsgRFJNX0ZPUk1BVF9YQkdS ODg4OCwgMCwgQllURVNfUFBfNCwgMHhmZmZmZmZmZn0sCj4gKwl7IERSTV9GT1JNQVRfQzgsIEJZ VEVTX1BQXzEsIDB4ZmZ9LAo+ICsJeyBEUk1fRk9STUFUX1JHQjU2NSwgQllURVNfUFBfMiwgMHhm ZmZmfSwKPiArCXsgRFJNX0ZPUk1BVF9YUkdCODg4OCwgQllURVNfUFBfNCwgMHhmZmZmZmZmZn0s Cj4gKwl7IERSTV9GT1JNQVRfWEJHUjg4ODgsIEJZVEVTX1BQXzQsIDB4ZmZmZmZmZmZ9LAo+ICAK PiAgCS8qCj4gIAkgKiBmb2xsb3dpbmcgdHdvIGFyZSBza2lwcGVkIGJlY2F1c2UgYmxlbmRpbmcg c2VlbXMgdG8gd29yawo+IEBAIC0xNDAsMzEgKzE0NSwzMSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0 IHsKPiAgCSAqIFRlc3Qgc3RpbGwgY3JlYXRlcyB0aGUgcGxhbmVzLCBqdXN0IGZpbGxpbmcgcGxh bmUKPiAgCSAqIGFuZCBnZXR0aW5nIGNyYyBpcyBza2lwcGVkLgo+ICAJICovCj4gLQl7IERSTV9G T1JNQVRfQVJHQjg4ODgsIDAsIFNLSVA0LCAweGZmZmZmZmZmfSwKPiAtCXsgRFJNX0ZPUk1BVF9B QkdSODg4OCwgMCwgU0tJUDQsIDB4MDBmZmZmZmZ9LAo+ICsJeyBEUk1fRk9STUFUX0FSR0I4ODg4 LCBTS0lQNCwgMHhmZmZmZmZmZn0sCj4gKwl7IERSTV9GT1JNQVRfQUJHUjg4ODgsIFNLSVA0LCAw eDAwZmZmZmZmfSwKPiAgCj4gLQl7IERSTV9GT1JNQVRfWFJHQjIxMDEwMTAsIDAsIEJZVEVTX1BQ XzQsIDB4ZmZmZmZmZmZ9LAo+IC0JeyBEUk1fRk9STUFUX1hCR1IyMTAxMDEwLCAwLCBCWVRFU19Q UF80LCAweGZmZmZmZmZmfSwKPiArCXsgRFJNX0ZPUk1BVF9YUkdCMjEwMTAxMCwgQllURVNfUFBf NCwgMHhmZmZmZmZmZn0sCj4gKwl7IERSTV9GT1JNQVRfWEJHUjIxMDEwMTAsIEJZVEVTX1BQXzQs IDB4ZmZmZmZmZmZ9LAo+ICAKPiAtCXsgRFJNX0ZPUk1BVF9ZVVlWLCAwLCBCWVRFU19QUF80LCAw eDgwZWI4MGVifSwKPiAtCXsgRFJNX0ZPUk1BVF9ZVllVLCAwLCBCWVRFU19QUF80LCAweDgwZWI4 MGVifSwKPiAtCXsgRFJNX0ZPUk1BVF9WWVVZLCAwLCBCWVRFU19QUF80LCAweGViODBlYjgwfSwK PiAtCXsgRFJNX0ZPUk1BVF9VWVZZLCAwLCBCWVRFU19QUF80LCAweGViODBlYjgwfSwKPiArCXsg RFJNX0ZPUk1BVF9ZVVlWLCBCWVRFU19QUF80LCAweDgwZWI4MGVifSwKPiArCXsgRFJNX0ZPUk1B VF9ZVllVLCBCWVRFU19QUF80LCAweDgwZWI4MGVifSwKPiArCXsgRFJNX0ZPUk1BVF9WWVVZLCBC WVRFU19QUF80LCAweGViODBlYjgwfSwKPiArCXsgRFJNX0ZPUk1BVF9VWVZZLCBCWVRFU19QUF80 LCAweGViODBlYjgwfSwKPiAgCj4gIAkvKgo+ICAJICogKHNlbWktKXBsYW5hciBmb3JtYXRzCj4g IAkgKi8KPiAtCXsgRFJNX0ZPUk1BVF9OVjEyLCAwLCBOVjEyLCAweDgwZWJ9LAo+ICsJeyBEUk1f Rk9STUFUX05WMTIsIE5WMTIsIDB4ODBlYn0sCj4gICNpZmRlZiBEUk1fRk9STUFUX1AwMTAKPiAt CXsgRFJNX0ZPUk1BVF9QMDEwLCAwLCBQMDEwLCAweDgwMDBlYjAwfSwKPiArCXsgRFJNX0ZPUk1B VF9QMDEwLCBQMDEwLCAweDgwMDBlYjAwfSwKPiAgI2VuZGlmCj4gICNpZmRlZiBEUk1fRk9STUFU X1AwMTIKPiAtCXsgRFJNX0ZPUk1BVF9QMDEyLCAwLCBQMDEwLCAweDgwMDBlYjAwfSwKPiArCXsg RFJNX0ZPUk1BVF9QMDEyLCBQMDEwLCAweDgwMDBlYjAwfSwKPiAgI2VuZGlmCj4gICNpZmRlZiBE Uk1fRk9STUFUX1AwMTYKPiAtCXsgRFJNX0ZPUk1BVF9QMDE2LCAwLCBQMDEwLCAweDgwMDBlYjAw fSwKPiArCXsgRFJNX0ZPUk1BVF9QMDE2LCBQMDEwLCAweDgwMDBlYjAwfSwKCkRvZXNuJ3QgdGhl IGxpYnJhcnkgaW1wbGVtZW50IHRoaXMgc3R1ZmYgYWxyZWFkeT8gSSBzZWUgc2ltaWxhciBjb2Rl IGluCmNyZWF0ZV9ib19mb3JfZmIoKS4gRXZlbiBpZiBuZXcgZm9ybWF0cyBhcmUgbmVlZGVkLCBJ IHRoaW5rIGl0J3MgYmVzdAp0byBwdXQgdGhhdCBpbiB0aGUgbGliL2lndF9mYi4KCgo+ICAjZW5k aWYKPiAtCXsgMCwgMCwgMCwgMCB9Cj4gKwl7IDAsIFNLSVA0LCAwIH0KPiAgfTsKPiAgCj4gIC8q Cj4gQEAgLTIzMywxMyArMjM4LDEwIEBAIHN0YXRpYyBib29sIGZpbGxfaW5fZmIoZGF0YV90ICpk YXRhLAo+IGlndF9vdXRwdXRfdCAqb3V0cHV0LCBpZ3RfcGxhbmVfdCAqcGxhbmUsCj4gIAkJCXdy aXRlc2l6ZSA9IGRhdGEtPnNpemU7Cj4gIAkJCWJyZWFrOwo+ICAJCX0KPiAtCQlpZ3RfaW5mbygi Rm9ybWF0ICVzIENSQyBjb21wYXJpc29uIHNraXBwZWQgYnkKPiBkZXNpZ24uXG4iLAo+IC0JCQkg KGNoYXIqKSZmaWxsZXJzW2ldLmZvdXJjYyk7Cj4gLQo+IC0JCXJldHVybiBmYWxzZTsKPiArCS8q IEZhbGwgdGhyb3VnaCAqLwo+ICAJZGVmYXVsdDoKPiAtCQlpZ3RfaW5mbygiVW5zdXBwb3J0ZWQg bW9kZSBmb3IgdGVzdCAlc1xuIiwKPiAtCQkJIChjaGFyKikmZmlsbGVyc1tpXS5mb3VyY2MpOwo+ ICsJCWlndF9pbmZvKCJVbnN1cHBvcnRlZCBtb2RlIGZvciB0ZXN0aW5nIENSQyAlLjRzXG4iLAo+ ICsJCQkgKGNoYXIgKikmZm9ybWF0KTsKPiAgCQlyZXR1cm4gZmFsc2U7Cj4gIAl9Cj4gIAo+IEBA IC0yNjAsNiArMjYyLDggQEAgc3RhdGljIGJvb2wgc2V0dXBfZmIoZGF0YV90ICpkYXRhLCBpZ3Rf b3V0cHV0X3QKPiAqb3V0cHV0LCBpZ3RfcGxhbmVfdCAqcGxhbmUsCj4gIAlpbnQgYnBwID0gMDsK PiAgCWludCBpOwo+ICAKPiArCWRhdGEtPmFsbG93X2ZhaWwgPSBmYWxzZTsKPiArCj4gIAltb2Rl ID0gaWd0X291dHB1dF9nZXRfbW9kZShvdXRwdXQpOwo+ICAJaWYgKHBsYW5lLT50eXBlICE9IERS TV9QTEFORV9UWVBFX0NVUlNPUikgewo+ICAJCXcgPSBtb2RlLT5oZGlzcGxheTsKPiBAQCAtMjg4 LDYgKzI5Miw4IEBAIHN0YXRpYyBib29sIHNldHVwX2ZiKGRhdGFfdCAqZGF0YSwgaWd0X291dHB1 dF90Cj4gKm91dHB1dCwgaWd0X3BsYW5lX3QgKnBsYW5lLAo+ICAJCWJyZWFrOwo+ICAKPiAgCWNh c2UgU0tJUDQ6Cj4gKwkJZGF0YS0+YWxsb3dfZmFpbCA9IHRydWU7Cj4gKwkJLyogZmFsbCB0aHJv dWdoICovCldvdWxkbid0IHRoaXMgcHJldmVudCBDUkMgdGVzdGluZyBmb3IgCihmaWxsZXJzW2ld LmZvdXJjYyA9PSBEUk1fRk9STUFUX0FSR0I4ODg4ICYmIHBsYW5lLT50eXBlID09CkRSTV9QTEFO RV9UWVBFX0NVUlNPUikgPwoKCj4gIAljYXNlIEJZVEVTX1BQXzQ6Cj4gIAkJYnBwID0gMzI7Cj4g IAkJYnJlYWs7Cj4gQEAgLTMyNCw3ICszMzAsNyBAQCBzdGF0aWMgYm9vbCBzZXR1cF9mYihkYXRh X3QgKmRhdGEsIGlndF9vdXRwdXRfdAo+ICpvdXRwdXQsIGlndF9wbGFuZV90ICpwbGFuZSwKPiAg Cj4gIAlpZihyZXQgPCAwKSB7Cj4gIAkJaWd0X2luZm8oIkNyZWF0aW5nIGZiIGZvciBmb3JtYXQg JXMgZmFpbGVkLCByZXR1cm4gY29kZQo+ICVkXG4iLAo+IC0JCQkgKGNoYXIqKSZkYXRhLT5mb3Jt YXQubmFtZSwgcmV0KTsKPiArCQkJIChjaGFyICopJmRhdGEtPmZvcm1hdC5uYW1lLCByZXQpOwo+ ICAKPiAgCQlyZXR1cm4gZmFsc2U7Cj4gIAl9Cj4gQEAgLTM4NSwxMyArMzkxLDE0IEBAIHN0YXRp YyBib29sIHByZXBhcmVfY3J0YyhkYXRhX3QgKmRhdGEsCj4gaWd0X291dHB1dF90ICpvdXRwdXQs Cj4gIAo+ICAKPiAgc3RhdGljIGludAo+IC10ZXN0X29uZV9tb2RlKGRhdGFfdCogZGF0YSwgaWd0 X291dHB1dF90ICpvdXRwdXQsIGlndF9wbGFuZV90KiAKU2lkZSBub3RlIG5vdCByZWxhdGVkIHRv IHRoZSBjaGFuZ2VzIHlvdSBhcmUgbWFraW5nLCAibW9kZSIgaXMgcXVpdGUKbWlzbGVhZGluZy4g U2hvdWxkbid0IHRoZSB0ZXN0IGJlIGNhbGxlZCBrbXNfcGl4ZWxfZm9ybWF0c19jcmMgb3IKc29t ZXRoaW5nPyBJIHRob3VnaHQgdGhpcyB3YXMgYWJvdXQgdGVzdGluZyBkaWZmZXJlbnQgY29ubmVj dG9yIG1vZGVzLgoKCj4gcGxhbmUsCj4gLQkgICAgICBpbnQgbW9kZSkKPiArdGVzdF9vbmVfbW9k ZShkYXRhX3QgKmRhdGEsIGlndF9vdXRwdXRfdCAqb3V0cHV0LCBpZ3RfcGxhbmVfdAo+ICpwbGFu ZSwKPiArCSAgICAgIGVudW0gcGlwZSBwaXBlLCBpbnQgbW9kZSkKPiAgewo+ICAJaWd0X2NyY190 IGN1cnJlbnRfY3JjOwo+ICAJc2lnbmVkIHJWYWwgPSAwOwo+ICAJYm9vbCBkb19jcmM7Cj4gLQlj aGFyKiBjcmNjb21wYXJlWzJdOwo+ICsJY2hhciAqY3JjY29tcGFyZVsyXTsKPiArCWlndF9jcmNf dCAqcF9jcmM7Cj4gIAo+ICAJaWYgKHByZXBhcmVfY3J0YyhkYXRhLCBvdXRwdXQsIHBsYW5lLCBt b2RlKSl7Cj4gIAkJLyoKPiBAQCAtNDA5LDMyICs0MTYsMzIgQEAgdGVzdF9vbmVfbW9kZShkYXRh X3QqIGRhdGEsIGlndF9vdXRwdXRfdAo+ICpvdXRwdXQsIGlndF9wbGFuZV90KiBwbGFuZSwKPiAg CQlpZiAoZG9fY3JjKSB7Cj4gIAkJCWlndF9waXBlX2NyY19nZXRfY3VycmVudChkYXRhLT5nZnhf ZmQsIGRhdGEtCj4gPnBpcGVfY3JjLCAmY3VycmVudF9jcmMpOwo+ICAKPiAtCQkJaWYgKHBsYW5l LT50eXBlICE9IERSTV9QTEFORV9UWVBFX0NVUlNPUikgewo+IC0JCQkJaWYgKCFpZ3RfY2hlY2tf Y3JjX2VxdWFsKCZjdXJyZW50X2NyYywKPiAtCQkJCQkmZGF0YS0+ZnVsbHNjcmVlbl9jcmMpKSB7 Cj4gLQkJCQkJY3JjY29tcGFyZVswXSA9Cj4gaWd0X2NyY190b19zdHJpbmcoJmN1cnJlbnRfY3Jj KTsKPiAtCQkJCQljcmNjb21wYXJlWzFdID0KPiBpZ3RfY3JjX3RvX3N0cmluZygmZGF0YS0+ZnVs bHNjcmVlbl9jcmMpOwo+IC0JCQkJCWlndF93YXJuKCJjcmMgbWlzbWF0Y2guIHRhcmdldAo+ICUu OHMsIHJlc3VsdCAlLjhzLlxuIiwgY3JjY29tcGFyZVswXSwgY3JjY29tcGFyZVsxXSk7Cj4gLQkJ CQkJZnJlZShjcmNjb21wYXJlWzBdKTsKPiAtCQkJCQlmcmVlKGNyY2NvbXBhcmVbMV0pOwo+IC0J CQkJCXJWYWwrKzsKPiAtCQkJCX0KPiAtCQkJfSBlbHNlIHsKPiAtCQkJCWlmICghaWd0X2NoZWNr X2NyY19lcXVhbCgmY3VycmVudF9jcmMsCj4gLQkJCQkJJmRhdGEtPmN1cnNvcl9jcmMpKSB7Cj4g LQkJCQkJY3JjY29tcGFyZVswXSA9Cj4gaWd0X2NyY190b19zdHJpbmcoJmN1cnJlbnRfY3JjKTsK PiAtCQkJCQljcmNjb21wYXJlWzFdID0KPiBpZ3RfY3JjX3RvX3N0cmluZygmZGF0YS0+Y3Vyc29y X2NyYyk7Cj4gLQkJCQkJaWd0X3dhcm4oImNyYyBtaXNtYXRjaC4gdGFyZ2V0Cj4gJS44cywgcmVz dWx0ICUuOHMuXG4iLCBjcmNjb21wYXJlWzBdLCBjcmNjb21wYXJlWzFdKTsKPiAtCQkJCQlmcmVl KGNyY2NvbXBhcmVbMF0pOwo+IC0JCQkJCWZyZWUoY3JjY29tcGFyZVsxXSk7Cj4gKwkJCWlmIChw bGFuZS0+dHlwZSAhPSBEUk1fUExBTkVfVFlQRV9DVVJTT1IpCj4gKwkJCQlwX2NyYyA9ICZkYXRh LT5mdWxsc2NyZWVuX2NyYzsKPiArCQkJZWxzZQo+ICsJCQkJcF9jcmMgPSAmZGF0YS0+Y3Vyc29y X2NyYzsKPiArCj4gKwkJCWlmICghaWd0X2NoZWNrX2NyY19lcXVhbCgmY3VycmVudF9jcmMsIHBf Y3JjKSkKPiB7Cj4gKwkJCQljcmNjb21wYXJlWzBdID0KPiBpZ3RfY3JjX3RvX3N0cmluZygmY3Vy cmVudF9jcmMpOwo+ICsJCQkJY3JjY29tcGFyZVsxXSA9Cj4gaWd0X2NyY190b19zdHJpbmcocF9j cmMpOwo+ICsJCQkJaWd0X3dhcm4oImNyYyBtaXNtYXRjaCBvbiAlcyBQSVBFICVzCj4gcGxhbmUg JWQgZm9ybWF0ICUuNHMuIHRhcmdldCAlLjhzLCByZXN1bHQgJS44cy5cbiIsCj4gKwkJCQkJIGln dF9vdXRwdXRfbmFtZShvdXRwdXQpLAo+ICsJCQkJCSBrbXN0ZXN0X3BpcGVfbmFtZShwaXBlKSwK PiArCQkJCQkgcGxhbmUtPmluZGV4LAo+ICsJCQkJCSAoY2hhciAqKSZkYXRhLT5mb3JtYXQubmFt ZSwKPiArCQkJCQkgY3JjY29tcGFyZVswXSwKPiArCQkJCQkgY3JjY29tcGFyZVsxXSk7ClRoaXMg aXMgdGhlIG9ubHkgaHVuayBJIHdhcyBob3BpbmcgeW91IHdvdWxkIGJlIGFibGUgdG8gc3BsaXQg aW50byBhCnNlcGFyYXRlIHBhdGNoLgoKPiArCj4gKwkJCQlmcmVlKGNyY2NvbXBhcmVbMF0pOwo+ ICsJCQkJZnJlZShjcmNjb21wYXJlWzFdKTsKPiArCQkJCWlmICghZGF0YS0+YWxsb3dfZmFpbCkK SXMgdGhlcmUgYSBwb2ludCBvZiByZWFkaW5nIENSQ3MgaWYgZmFpbHVyZXMgYXJlIGFsbG93ZWQ/ Cgo+ICAJCQkJCXJWYWwrKzsKPiAtCQkJCX0KPiAgCQkJfQo+ICAJCX0KPiAgCQlyZW1vdmVfZmIo ZGF0YSwgb3V0cHV0LCBwbGFuZSk7Cj4gIAkJcmV0dXJuIHJWYWw7Cj4gIAl9Cj4gLQlyZXR1cm4g MTsKPiArCXJldHVybiBkYXRhLT5hbGxvd19mYWlsID8gMCA6IDE7Cj4gIH0KPiAgCj4gIAo+IEBA IC00NDUsMTEgKzQ1MiwxMSBAQCB0ZXN0X2F2YWlsYWJsZV9tb2RlcyhkYXRhX3QqIGRhdGEpCj4g IAlpZ3RfcGxhbmVfdCAqcGxhbmU7Cj4gIAlpbnQgbW9kZWluZGV4Owo+ICAJZW51bSBwaXBlIHBp cGU7Cj4gLQlpbnQgaW52YWxpZHMgPSAwOwo+ICsJaW50IGZhaWxlZF9jcmNzID0gMDsKPiAgCWRy bU1vZGVQbGFuZSAqbW9kZVBsYW5lOwo+IC0JY2hhciBwbGFuZXR5cGVbM11bOF0gPSB7Ik9WRVJM QVlcMCIsICJQUklNQVJZXDAiLCAiQ1VSU09SXDAiIH07Cj4gIAo+ICAJZm9yX2VhY2hfcGlwZV93 aXRoX3ZhbGlkX291dHB1dCgmZGF0YS0+ZGlzcGxheSwgcGlwZSwgb3V0cHV0KSB7Cj4gKwkJaWd0 X2Rpc3BsYXlfcmVzZXQoJmRhdGEtPmRpc3BsYXkpOwo+ICAJCWlndF9vdXRwdXRfc2V0X3BpcGUo b3V0cHV0LCBwaXBlKTsKPiAgCQlpZ3RfZGlzcGxheV9jb21taXQyKCZkYXRhLT5kaXNwbGF5LCBk YXRhLT5jb21taXQpOwo+ICAKPiBAQCAtNDcyLDE3ICs0NzksOSBAQCB0ZXN0X2F2YWlsYWJsZV9t b2RlcyhkYXRhX3QqIGRhdGEpCj4gIAkJCSAgICAgbW9kZWluZGV4KyspIHsKPiAgCQkJCWRhdGEt PmZvcm1hdC5kd29yZCA9IG1vZGVQbGFuZS0KPiA+Zm9ybWF0c1ttb2RlaW5kZXhdOwo+ICAKPiAt CQkJCWlndF9pbmZvKCJUZXN0aW5nIGNvbm5lY3RvciAlcyB1c2luZwo+IHBpcGUgJXMiIFwKPiAt CQkJCQkgIiBwbGFuZSBpbmRleCAlZCB0eXBlICVzIG1vZGUKPiAlc1xuIiwKPiAtCQkJCQkgaWd0 X291dHB1dF9uYW1lKG91dHB1dCksCj4gLQkJCQkJIGttc3Rlc3RfcGlwZV9uYW1lKHBpcGUpLAo+ IC0JCQkJCSBwbGFuZS0+aW5kZXgsCj4gLQkJCQkJIHBsYW5ldHlwZVtwbGFuZS0+dHlwZV0sCj4g LQkJCQkJIChjaGFyKikmZGF0YS0+Zm9ybWF0Lm5hbWUpOwo+IC0KPiAtCQkJCWludmFsaWRzICs9 IHRlc3Rfb25lX21vZGUoZGF0YSwgb3V0cHV0LAo+IC0JCQkJCQkJICBwbGFuZSwKPiAtCQkJCQkJ CSAgbW9kZVBsYW5lLQo+ID5mb3JtYXRzW21vZGVpbmRleF0pOwo+ICsJCQkJZmFpbGVkX2NyY3Mg Kz0gdGVzdF9vbmVfbW9kZShkYXRhLAo+IG91dHB1dCwKPiArCQkJCQkJCSAgICAgcGxhbmUsCj4g cGlwZSwKPiArCQkJCQkJCSAgICAgbW9kZVBsYW5lLQo+ID5mb3JtYXRzW21vZGVpbmRleF0pOwo+ ICAJCQl9Cj4gIAkJCWRybU1vZGVGcmVlUGxhbmUobW9kZVBsYW5lKTsKPiAgCQl9Cj4gQEAgLTQ5 MSw3ICs0OTAsNyBAQCB0ZXN0X2F2YWlsYWJsZV9tb2RlcyhkYXRhX3QqIGRhdGEpCj4gIAkJaWd0 X2Rpc3BsYXlfY29tbWl0MigmZGF0YS0+ZGlzcGxheSwgZGF0YS0+Y29tbWl0KTsKPiAgCQlpZ3Rf b3V0cHV0X3NldF9waXBlKG91dHB1dCwgUElQRV9OT05FKTsKPiAgCX0KPiAtCWlndF9hc3NlcnQo aW52YWxpZHMgPT0gMCk7Cj4gKwlpZ3RfYXNzZXJ0X2YoKGZhaWxlZF9jcmNzID09IDApLCAiVGhl cmUgd2FzICVkIG1vZGVzIHdpdGgKPiBpbnZhbGlkIGNyY1xuIiwgZmFpbGVkX2NyY3MpOwo+ICB9 Cj4gIAo+ICAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CmlndC1kZXYgbWFpbGluZyBsaXN0CmlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBz Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0LWRldgo=