From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM04-CO1-obe.outbound.protection.outlook.com (mail-eopbgr690042.outbound.protection.outlook.com [40.107.69.42]) by gabe.freedesktop.org (Postfix) with ESMTPS id 707E389F4F for ; Tue, 2 Jul 2019 18:07:26 +0000 (UTC) From: "Kazlauskas, Nicholas" Date: Tue, 2 Jul 2019 18:07:24 +0000 Message-ID: <3f3b5d88-49a0-5479-99fa-7b0b228dda6b@amd.com> References: <20190628194438.2714-3-ville.syrjala@linux.intel.com> <20190702175708.15091-1-ville.syrjala@linux.intel.com> In-Reply-To: <20190702175708.15091-1-ville.syrjala@linux.intel.com> Content-Language: en-US Content-ID: MIME-Version: 1.0 Subject: Re: [igt-dev] [PATCH i-g-t v2 2/3] tests/kms_plane: Test all YCbCr encodings/ranges List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: Ville Syrjala , "igt-dev@lists.freedesktop.org" List-ID: T24gNy8yLzE5IDE6NTcgUE0sIFZpbGxlIFN5cmphbGEgd3JvdGU6DQo+IEZyb206IFZpbGxlIFN5 cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+DQo+IA0KPiBUZXN0IGFsbCBz dXBwb3J0IFlDYkNyIGVuY29kaW5nL3JhbmdlIGNvbWJpbmF0aW9ucy4gU28gZmFyDQo+IHdlJ3Zl IG9ubHkgYmVlbiB0ZXN0aW5nIG9uZSBwYXJ0aWN1bGFyIGNvbWJvLg0KPiANCj4gdjI6IFVzZSBp Z3RfY3JlYXRlX2ZiX3dpdGhfYm9fc2l6ZSgpIGFuZCBoYW5kIHJvbGwgdGhlDQo+ICAgICAgc29s aWQgZmlsbHMNCj4gDQo+IENjOiBVbWEgU2hhbmthciA8dW1hLnNoYW5rYXJAaW50ZWwuY29tPg0K PiBSZXZpZXdlZC1ieTogTmljaG9sYXMgS2F6bGF1c2thcyA8bmljaG9sYXMua2F6bGF1c2thc0Bh bWQuY29tPiAjdjENCj4gUmV2aWV3ZWQtYnk6IFVtYSBTaGFua2FyIDx1bWEuc2hhbmthckBpbnRl bC5jb20+ICN2MQ0KPiBTaWduZWQtb2ZmLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmph bGFAbGludXguaW50ZWwuY29tPg0KPiAtLS0NCj4gICB0ZXN0cy9rbXNfcGxhbmUuYyB8IDE2NCAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tDQo+ICAgMSBmaWxl IGNoYW5nZWQsIDEyOSBpbnNlcnRpb25zKCspLCAzNSBkZWxldGlvbnMoLSkNCj4gDQo+IGRpZmYg LS1naXQgYS90ZXN0cy9rbXNfcGxhbmUuYyBiL3Rlc3RzL2ttc19wbGFuZS5jDQo+IGluZGV4IDU5 ZDVmMWU4MGNkMi4uY2U0YmY5ZTFjMjFkIDEwMDY0NA0KPiAtLS0gYS90ZXN0cy9rbXNfcGxhbmUu Yw0KPiArKysgYi90ZXN0cy9rbXNfcGxhbmUuYw0KPiBAQCAtNDI3LDI3ICs0MjcsMzYgQEAgc3Rh dGljIHZvaWQgdGVzdF9mb3JtYXRfcGxhbmVfY29sb3IoZGF0YV90ICpkYXRhLCBlbnVtIHBpcGUg cGlwZSwNCj4gICAJCQkJICAgIGlndF9wbGFuZV90ICpwbGFuZSwNCj4gICAJCQkJICAgIHVpbnQz Ml90IGZvcm1hdCwgdWludDY0X3QgbW9kaWZpZXIsDQo+ICAgCQkJCSAgICBpbnQgd2lkdGgsIGlu dCBoZWlnaHQsDQo+ICsJCQkJICAgIGVudW0gaWd0X2NvbG9yX2VuY29kaW5nIGNvbG9yX2VuY29k aW5nLA0KPiArCQkJCSAgICBlbnVtIGlndF9jb2xvcl9yYW5nZSBjb2xvcl9yYW5nZSwNCj4gICAJ CQkJICAgIGludCBjb2xvciwgaWd0X2NyY190ICpjcmMsIHN0cnVjdCBpZ3RfZmIgKmZiKQ0KPiAg IHsNCj4gICAJY29uc3QgY29sb3JfdCAqYyA9ICZjb2xvcnNbY29sb3JdOw0KPiAgIAlzdHJ1Y3Qg aWd0X2ZiIG9sZF9mYiA9ICpmYjsNCj4gKwljYWlyb190ICpjcjsNCj4gICANCj4gICAJaWYgKGRh dGEtPmNyb3AgPT0gMCB8fCBmb3JtYXQgPT0gRFJNX0ZPUk1BVF9YUkdCODg4OCkgew0KPiAtCQlp Z3RfY3JlYXRlX2NvbG9yX2ZiKGRhdGEtPmRybV9mZCwgd2lkdGgsIGhlaWdodCwNCj4gLQkJCQkg ICAgZm9ybWF0LCBtb2RpZmllciwNCj4gLQkJCQkgICAgYy0+cmVkLCBjLT5ncmVlbiwgYy0+Ymx1 ZSwgZmIpOw0KPiArCQlpZ3RfY3JlYXRlX2ZiX3dpdGhfYm9fc2l6ZShkYXRhLT5kcm1fZmQsIHdp ZHRoLCBoZWlnaHQsDQo+ICsJCQkJCSAgIGZvcm1hdCwgbW9kaWZpZXIsIGNvbG9yX2VuY29kaW5n LA0KPiArCQkJCQkgICBjb2xvcl9yYW5nZSwgZmIsIDAsIDApOw0KPiArDQo+ICsJCWNyID0gaWd0 X2dldF9jYWlyb19jdHgoZGF0YS0+ZHJtX2ZkLCBmYik7DQo+ICsNCj4gKwkJaWd0X3BhaW50X2Nv bG9yKGNyLCAwLCAwLCB3aWR0aCwgaGVpZ2h0LA0KPiArCQkJCWMtPnJlZCwgYy0+Z3JlZW4sIGMt PmJsdWUpOw0KPiArDQo+ICsJCWlndF9wdXRfY2Fpcm9fY3R4KGRhdGEtPmRybV9mZCwgZmIsIGNy KTsNCj4gICAJfSBlbHNlIHsNCj4gKwkJaWd0X2NyZWF0ZV9mYl93aXRoX2JvX3NpemUoZGF0YS0+ ZHJtX2ZkLA0KPiArCQkJCQkgICB3aWR0aCArIGRhdGEtPmNyb3AgKiAyLA0KPiArCQkJCQkgICBo ZWlnaHQgKyBkYXRhLT5jcm9wICogMiwNCj4gKwkJCQkJICAgZm9ybWF0LCBtb2RpZmllciwgY29s b3JfZW5jb2RpbmcsDQo+ICsJCQkJCSAgIGNvbG9yX3JhbmdlLCBmYiwgMCwgMCk7DQo+ICsNCj4g ICAJCS8qDQo+ICAgCQkgKiBwYWludCBib3JkZXIgaW4gaW52ZXJ0ZWQgY29sb3IsIHRoZW4gdmlz aWJsZSBhcmVhIGluIG1pZGRsZQ0KPiAgIAkJICogd2l0aCBjb3JyZWN0IGNvbG9yIGZvciBjbGFt cGluZyB0ZXN0DQo+ICAgCQkgKi8NCj4gLQkJY2Fpcm9fdCAqY3I7DQo+IC0NCj4gLQkJaWd0X2Ny ZWF0ZV9mYihkYXRhLT5kcm1fZmQsDQo+IC0JCQkgICAgICB3aWR0aCArIGRhdGEtPmNyb3AgKiAy LA0KPiAtCQkJICAgICAgaGVpZ2h0ICsgZGF0YS0+Y3JvcCAqIDIsDQo+IC0JCQkgICAgICBmb3Jt YXQsIG1vZGlmaWVyLCBmYik7DQo+IC0NCj4gICAJCWNyID0gaWd0X2dldF9jYWlyb19jdHgoZGF0 YS0+ZHJtX2ZkLCBmYik7DQo+ICAgDQo+ICAgCQlpZ3RfcGFpbnRfY29sb3IoY3IsIDAsIDAsDQo+ IEBAIC01MDAsNiArNTA5LDEwNCBAQCBzdGF0aWMgaW50IG51bV91bmlxdWVfY3Jjcyhjb25zdCBp Z3RfY3JjX3QgY3JjW10sIGludCBudW1fY3JjKQ0KPiAgIAlyZXR1cm4gbnVtX3VuaXF1ZV9jcmM7 DQo+ICAgfQ0KPiAgIA0KPiArc3RhdGljIGJvb2wgdGVzdF9mb3JtYXRfcGxhbmVfY29sb3JzKGRh dGFfdCAqZGF0YSwgZW51bSBwaXBlIHBpcGUsDQo+ICsJCQkJICAgICBpZ3RfcGxhbmVfdCAqcGxh bmUsDQo+ICsJCQkJICAgICB1aW50MzJfdCBmb3JtYXQsIHVpbnQ2NF90IG1vZGlmaWVyLA0KPiAr CQkJCSAgICAgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LA0KPiArCQkJCSAgICAgZW51bSBpZ3RfY29s b3JfZW5jb2RpbmcgZW5jb2RpbmcsDQo+ICsJCQkJICAgICBlbnVtIGlndF9jb2xvcl9yYW5nZSBy YW5nZSwNCj4gKwkJCQkgICAgIGlndF9jcmNfdCByZWZfY3JjW0FSUkFZX1NJWkUoY29sb3JzKV0s DQo+ICsJCQkJICAgICBzdHJ1Y3QgaWd0X2ZiICpmYikNCj4gK3sNCj4gKwlpbnQgY3JjX21pc21h dGNoX2NvdW50ID0gMDsNCj4gKwl1bnNpZ25lZCBpbnQgY3JjX21pc21hdGNoX21hc2sgPSAwOw0K PiArCWJvb2wgcmVzdWx0ID0gdHJ1ZTsNCj4gKw0KPiArCWZvciAoaW50IGkgPSAwOyBpIDwgQVJS QVlfU0laRShjb2xvcnMpOyBpKyspIHsNCj4gKwkJaWd0X2NyY190IGNyYzsNCj4gKw0KPiArCQl0 ZXN0X2Zvcm1hdF9wbGFuZV9jb2xvcihkYXRhLCBwaXBlLCBwbGFuZSwNCj4gKwkJCQkJZm9ybWF0 LCBtb2RpZmllciwNCj4gKwkJCQkJd2lkdGgsIGhlaWdodCwNCj4gKwkJCQkJZW5jb2RpbmcsIHJh bmdlLA0KPiArCQkJCQlpLCAmY3JjLCBmYik7DQo+ICsNCj4gKwkJaWYgKCFpZ3RfY2hlY2tfY3Jj X2VxdWFsKCZjcmMsICZyZWZfY3JjW2ldKSkgew0KPiArCQkJY3JjX21pc21hdGNoX2NvdW50Kys7 DQo+ICsJCQljcmNfbWlzbWF0Y2hfbWFzayB8PSAoMSA8PCBpKTsNCj4gKwkJCXJlc3VsdCA9IGZh bHNlOw0KPiArCQl9DQo+ICsJfQ0KPiArDQo+ICsJaWYgKGNyY19taXNtYXRjaF9jb3VudCkNCj4g KwkJaWd0X3dhcm4oIkNSQyBtaXNtYXRjaGVzIHdpdGggZm9ybWF0ICIgSUdUX0ZPUk1BVF9GTVQg IiBvbiAlcy4ldSB3aXRoICVkLyVkIHNvbGlkIGNvbG9ycyB0ZXN0ZWQgKDB4JVgpXG4iLA0KPiAr CQkJIElHVF9GT1JNQVRfQVJHUyhmb3JtYXQpLCBrbXN0ZXN0X3BpcGVfbmFtZShwaXBlKSwNCj4g KwkJCSBwbGFuZS0+aW5kZXgsIGNyY19taXNtYXRjaF9jb3VudCwgKGludClBUlJBWV9TSVpFKGNv bG9ycyksIGNyY19taXNtYXRjaF9tYXNrKTsNCj4gKw0KPiArCXJldHVybiByZXN1bHQ7DQo+ICt9 DQo+ICsNCj4gK3N0YXRpYyBib29sIHRlc3RfZm9ybWF0X3BsYW5lX3JnYihkYXRhX3QgKmRhdGEs IGVudW0gcGlwZSBwaXBlLA0KPiArCQkJCSAgaWd0X3BsYW5lX3QgKnBsYW5lLA0KPiArCQkJCSAg dWludDMyX3QgZm9ybWF0LCB1aW50NjRfdCBtb2RpZmllciwNCj4gKwkJCQkgIGludCB3aWR0aCwg aW50IGhlaWdodCwNCj4gKwkJCQkgIGlndF9jcmNfdCByZWZfY3JjW0FSUkFZX1NJWkUoY29sb3Jz KV0sDQo+ICsJCQkJICBzdHJ1Y3QgaWd0X2ZiICpmYikNCj4gK3sNCj4gKwlpZ3RfaW5mbygiVGVz dGluZyBmb3JtYXQgIiBJR1RfRk9STUFUX0ZNVCAiIC8gbW9kaWZpZXIgMHglIiBQUkl4NjQgIiBv biAlcy4ldVxuIiwNCj4gKwkJIElHVF9GT1JNQVRfQVJHUyhmb3JtYXQpLCBtb2RpZmllciwNCj4g KwkJIGttc3Rlc3RfcGlwZV9uYW1lKHBpcGUpLCBwbGFuZS0+aW5kZXgpOw0KPiArDQo+ICsJcmV0 dXJuIHRlc3RfZm9ybWF0X3BsYW5lX2NvbG9ycyhkYXRhLCBwaXBlLCBwbGFuZSwNCj4gKwkJCQkJ Zm9ybWF0LCBtb2RpZmllciwNCj4gKwkJCQkJd2lkdGgsIGhlaWdodCwNCj4gKwkJCQkJSUdUX0NP TE9SX1lDQkNSX0JUNjAxLA0KPiArCQkJCQlJR1RfQ09MT1JfWUNCQ1JfTElNSVRFRF9SQU5HRSwN Cj4gKwkJCQkJcmVmX2NyYywgZmIpOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgYm9vbCB0ZXN0X2Zv cm1hdF9wbGFuZV95dXYoZGF0YV90ICpkYXRhLCBlbnVtIHBpcGUgcGlwZSwNCj4gKwkJCQkgIGln dF9wbGFuZV90ICpwbGFuZSwNCj4gKwkJCQkgIHVpbnQzMl90IGZvcm1hdCwgdWludDY0X3QgbW9k aWZpZXIsDQo+ICsJCQkJICBpbnQgd2lkdGgsIGludCBoZWlnaHQsDQo+ICsJCQkJICBpZ3RfY3Jj X3QgcmVmX2NyY1tBUlJBWV9TSVpFKGNvbG9ycyldLA0KPiArCQkJCSAgc3RydWN0IGlndF9mYiAq ZmIpDQo+ICt7DQo+ICsJYm9vbCByZXN1bHQgPSB0cnVlOw0KPiArDQo+ICsJaWYgKCFpZ3RfcGxh bmVfaGFzX3Byb3AocGxhbmUsIElHVF9QTEFORV9DT0xPUl9FTkNPRElORykpDQo+ICsJCXJldHVy biB0cnVlOw0KPiArCWlmICghaWd0X3BsYW5lX2hhc19wcm9wKHBsYW5lLCBJR1RfUExBTkVfQ09M T1JfUkFOR0UpKQ0KPiArCQlyZXR1cm4gdHJ1ZTsNCg0KU2tpbW1lZCBvdmVyIHRoaXMgaW4gbXkg Zmlyc3QgcGFzcy4NCg0KRG8gd2UgcmVhbGx5IHdhbnQgdG8gYmUgcmV0dXJuaW5nIHRydWUgaGVy ZSBpZiB0aGUgZHJpdmVyIGRvZXNuJ3QgDQpzdXBwb3J0IGVuY29kaW5nL3JhbmdlPyBJdCdzIHBy b2JhYmx5IG5vdCBhIGdvb2QgaWRlYSB0byByZWFsbHkgZXhwb3NlIA0KWVVWIGZvcm1hdHMgd2l0 aCB0aGVtIHNvIGl0IG1pZ2h0IGJlIGJlc3QgdG8ganVzdCBhc3NlcnQgaGVyZSBpbnN0ZWFkLg0K DQpUaGUgcmVzdCBvZiBQMStQMiBsZ3RtLiBJIGRvbid0IHNlZSBQMyBidXQgdGhhdCBzdGlsbCBv bmx5IG5lZWRzIHRoZSANCnRpdGxlIGZpeC4NCg0KTmljaG9sYXMgS2F6bGF1c2thcw0KDQo+ICsN Cj4gKwlmb3IgKGVudW0gaWd0X2NvbG9yX2VuY29kaW5nIGUgPSAwOyBlIDwgSUdUX05VTV9DT0xP Ul9FTkNPRElOR1M7IGUrKykgew0KPiArCQlpZiAoIWlndF9wbGFuZV90cnlfcHJvcF9lbnVtKHBs YW5lLA0KPiArCQkJCQkgICAgIElHVF9QTEFORV9DT0xPUl9FTkNPRElORywNCj4gKwkJCQkJICAg ICBpZ3RfY29sb3JfZW5jb2RpbmdfdG9fc3RyKGUpKSkNCj4gKwkJCWNvbnRpbnVlOw0KPiArDQo+ ICsJCWZvciAoZW51bSBpZ3RfY29sb3JfcmFuZ2UgciA9IDA7IHIgPCBJR1RfTlVNX0NPTE9SX1JB TkdFUzsgcisrKSB7DQo+ICsJCQlpZiAoIWlndF9wbGFuZV90cnlfcHJvcF9lbnVtKHBsYW5lLA0K PiArCQkJCQkJICAgICBJR1RfUExBTkVfQ09MT1JfUkFOR0UsDQo+ICsJCQkJCQkgICAgIGlndF9j b2xvcl9yYW5nZV90b19zdHIocikpKQ0KPiArCQkJCWNvbnRpbnVlOw0KPiArDQo+ICsJCQlpZ3Rf aW5mbygiVGVzdGluZyBmb3JtYXQgIiBJR1RfRk9STUFUX0ZNVCAiIC8gbW9kaWZpZXIgMHglIiBQ Ukl4NjQgIiAoJXMsICVzKSBvbiAlcy4ldVxuIiwNCj4gKwkJCQkgSUdUX0ZPUk1BVF9BUkdTKGZv cm1hdCksIG1vZGlmaWVyLA0KPiArCQkJCSBpZ3RfY29sb3JfZW5jb2RpbmdfdG9fc3RyKGUpLA0K PiArCQkJCSBpZ3RfY29sb3JfcmFuZ2VfdG9fc3RyKHIpLA0KPiArCQkJCSBrbXN0ZXN0X3BpcGVf bmFtZShwaXBlKSwgcGxhbmUtPmluZGV4KTsNCj4gKw0KPiArCQkJcmVzdWx0ICY9IHRlc3RfZm9y bWF0X3BsYW5lX2NvbG9ycyhkYXRhLCBwaXBlLCBwbGFuZSwNCj4gKwkJCQkJCQkgICBmb3JtYXQs IG1vZGlmaWVyLA0KPiArCQkJCQkJCSAgIHdpZHRoLCBoZWlnaHQsDQo+ICsJCQkJCQkJICAgZSwg ciwgcmVmX2NyYywgZmIpOw0KPiArCQl9DQo+ICsJfQ0KPiArDQo+ICsJcmV0dXJuIHJlc3VsdDsN Cj4gK30NCj4gKw0KPiAgIHN0YXRpYyBib29sIHRlc3RfZm9ybWF0X3BsYW5lKGRhdGFfdCAqZGF0 YSwgZW51bSBwaXBlIHBpcGUsDQo+ICAgCQkJICAgICAgaWd0X291dHB1dF90ICpvdXRwdXQsIGln dF9wbGFuZV90ICpwbGFuZSkNCj4gICB7DQo+IEBAIC01NjksNiArNjc2LDggQEAgc3RhdGljIGJv b2wgdGVzdF9mb3JtYXRfcGxhbmUoZGF0YV90ICpkYXRhLCBlbnVtIHBpcGUgcGlwZSwNCj4gICAJ CXRlc3RfZm9ybWF0X3BsYW5lX2NvbG9yKGRhdGEsIHBpcGUsIHBsYW5lLA0KPiAgIAkJCQkJZm9y bWF0LCBtb2RpZmllciwNCj4gICAJCQkJCXdpZHRoLCBoZWlnaHQsDQo+ICsJCQkJCUlHVF9DT0xP Ul9ZQ0JDUl9CVDcwOSwNCj4gKwkJCQkJSUdUX0NPTE9SX1lDQkNSX0xJTUlURURfUkFOR0UsDQo+ ICAgCQkJCQlpLCAmcmVmX2NyY1tpXSwgJmZiKTsNCj4gICAJfQ0KPiAgIA0KPiBAQCAtNTgwLDEw ICs2ODksNiBAQCBzdGF0aWMgYm9vbCB0ZXN0X2Zvcm1hdF9wbGFuZShkYXRhX3QgKmRhdGEsIGVu dW0gcGlwZSBwaXBlLA0KPiAgIAlpZ3RfcmVxdWlyZShudW1fdW5pcXVlX2NyY3MocmVmX2NyYywg QVJSQVlfU0laRShjb2xvcnMpKSA+IDEpOw0KPiAgIA0KPiAgIAlmb3IgKGludCBpID0gMDsgaSA8 IHBsYW5lLT5mb3JtYXRfbW9kX2NvdW50OyBpKyspIHsNCj4gLQkJaW50IGNyY19taXNtYXRjaF9j b3VudCA9IDA7DQo+IC0JCWludCBjcmNfbWlzbWF0Y2hfbWFzayA9IDA7DQo+IC0JCWlndF9jcmNf dCBjcmM7DQo+IC0NCj4gICAJCWZvcm1hdCA9IHBsYW5lLT5mb3JtYXRzW2ldOw0KPiAgIAkJbW9k aWZpZXIgPSBwbGFuZS0+bW9kaWZpZXJzW2ldOw0KPiAgIA0KPiBAQCAtNTk5LDMwICs3MDQsMTkg QEAgc3RhdGljIGJvb2wgdGVzdF9mb3JtYXRfcGxhbmUoZGF0YV90ICpkYXRhLCBlbnVtIHBpcGUg cGlwZSwNCj4gICAJCQkJY29udGludWU7DQo+ICAgCQl9DQo+ICAgDQo+IC0JCWlndF9pbmZvKCJU ZXN0aW5nIGZvcm1hdCAiIElHVF9GT1JNQVRfRk1UICIgLyBtb2RpZmllciAweCUiIFBSSXg2NCAi IG9uICVzLiV1XG4iLA0KPiAtCQkJIElHVF9GT1JNQVRfQVJHUyhmb3JtYXQpLCBtb2RpZmllciwN Cj4gLQkJCSBrbXN0ZXN0X3BpcGVfbmFtZShwaXBlKSwgcGxhbmUtPmluZGV4KTsNCj4gLQ0KPiAt CQlmb3IgKGludCBqID0gMDsgaiA8IEFSUkFZX1NJWkUoY29sb3JzKTsgaisrKSB7DQo+IC0JCQl0 ZXN0X2Zvcm1hdF9wbGFuZV9jb2xvcihkYXRhLCBwaXBlLCBwbGFuZSwNCj4gLQkJCQkJCWZvcm1h dCwgbW9kaWZpZXIsDQo+IC0JCQkJCQl3aWR0aCwgaGVpZ2h0LA0KPiAtCQkJCQkJaiwgJmNyYywg JmZiKTsNCj4gLQ0KPiAtCQkJaWYgKCFpZ3RfY2hlY2tfY3JjX2VxdWFsKCZjcmMsICZyZWZfY3Jj W2pdKSkgew0KPiAtCQkJCWNyY19taXNtYXRjaF9jb3VudCsrOw0KPiAtCQkJCWNyY19taXNtYXRj aF9tYXNrIHw9ICgxIDw8IGopOw0KPiAtCQkJCXJlc3VsdCA9IGZhbHNlOw0KPiAtCQkJfQ0KPiAt CQl9DQo+ICsJCWlmIChpZ3RfZm9ybWF0X2lzX3l1dihmb3JtYXQpKQ0KPiArCQkJcmVzdWx0ICY9 IHRlc3RfZm9ybWF0X3BsYW5lX3l1dihkYXRhLCBwaXBlLCBwbGFuZSwNCj4gKwkJCQkJCQlmb3Jt YXQsIG1vZGlmaWVyLA0KPiArCQkJCQkJCXdpZHRoLCBoZWlnaHQsDQo+ICsJCQkJCQkJcmVmX2Ny YywgJmZiKTsNCj4gKwkJZWxzZQ0KPiArCQkJcmVzdWx0ICY9IHRlc3RfZm9ybWF0X3BsYW5lX3Jn YihkYXRhLCBwaXBlLCBwbGFuZSwNCj4gKwkJCQkJCQlmb3JtYXQsIG1vZGlmaWVyLA0KPiArCQkJ CQkJCXdpZHRoLCBoZWlnaHQsDQo+ICsJCQkJCQkJcmVmX2NyYywgJmZiKTsNCj4gICANCj4gICAJ CWlmIChmb3JtYXQgPT0gRFJNX0ZPUk1BVF9DOCkNCj4gICAJCQlzZXRfbGVnYWN5X2x1dChkYXRh LCBwaXBlLCAweGZjMDApOw0KPiAtDQo+IC0JCWlmIChjcmNfbWlzbWF0Y2hfY291bnQpDQo+IC0J CQlpZ3Rfd2FybigiQ1JDIG1pc21hdGNoZXMgd2l0aCBmb3JtYXQgIiBJR1RfRk9STUFUX0ZNVCAi IG9uICVzLiV1IHdpdGggJWQvJWQgc29saWQgY29sb3JzIHRlc3RlZCAoMHglWClcbiIsDQo+IC0J CQkJIElHVF9GT1JNQVRfQVJHUyhmb3JtYXQpLCBrbXN0ZXN0X3BpcGVfbmFtZShwaXBlKSwNCj4g LQkJCQkgcGxhbmUtPmluZGV4LCBjcmNfbWlzbWF0Y2hfY291bnQsIChpbnQpQVJSQVlfU0laRShj b2xvcnMpLCBjcmNfbWlzbWF0Y2hfbWFzayk7DQo+ICAgCX0NCj4gICANCj4gICAJaWd0X3BpcGVf Y3JjX3N0b3AoZGF0YS0+cGlwZV9jcmMpOw0KPiANCg0KX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KaWd0LWRldiBtYWlsaW5nIGxpc3QKaWd0LWRldkBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pZ3QtZGV2