From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id E73276E31F for ; Tue, 4 Dec 2018 19:06:06 +0000 (UTC) Date: Tue, 4 Dec 2018 11:08:23 -0800 From: Manasi Navare Message-ID: <20181204190823.GA562@intel.com> References: <20181204031051.29182-1-manasi.d.navare@intel.com> <20181204110723.GK17124@platvala-desk.ger.corp.intel.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20181204110723.GK17124@platvala-desk.ger.corp.intel.com> Subject: Re: [igt-dev] [PATCH i-g-t v3] test/kms_dp_dsc: Basic KMS test to validate VESA DSC on DP/eDP 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: igt-dev@lists.freedesktop.org, Anusha Srivatsa , Dhinakaran Pandiyan List-ID: T24gVHVlLCBEZWMgMDQsIDIwMTggYXQgMDE6MDc6MjNQTSArMDIwMCwgUGV0cmkgTGF0dmFsYSB3 cm90ZToKPiBPbiBNb24sIERlYyAwMywgMjAxOCBhdCAwNzoxMDo1MVBNIC0wODAwLCBNYW5hc2kg TmF2YXJlIHdyb3RlOgo+ID4gVGhpcyBwYXRjaCBhZGRzIGEgYmFzaWMga21zIHRlc3QgdG8gdmFs aWRhdGUgdGhlIGRpc3BsYXkgc3RyZWFtCj4gPiBjb21wcmVzc2lvbiBmdW5jdGlvbmFsaXR5IGlm IHN1cHBvcnRlZCBvbiBEUC9lRFAgY29ubmVjdG9yLgo+ID4gQ3VycmVudGx5IHRoaXMgaGFzIG9u bHkgdHdvIHN1YnRlc3RzIHRvIGZvcmNlIHRoZSBEU0Mgb24gYWxsCj4gPiB0aGUgZURQIGFuZCBE UCBjb25uZWN0b3JzIHRoYXQgc3VwcG9ydCBpdCB3aXRoIGRlZmF1bHQgcGFyYW1ldGVycy4KPiA+ IFRoaXMgd2lsbCBiZSBleHBhbmRlZCB0byBhZGQgbW9yZSBzdWJ0ZXN0cyB0byB0d2VhayBEU0Mg cGFyYW1ldGVycy4KPiA+IAo+ID4gVGhpcyB1c2VzIHRoZSBkZWJ1Z2ZzIG5vZGVzIGFkZGVkIGlu IHRoZSBwYXRjaDoKPiA+IGh0dHBzOi8vcGF0Y2h3b3JrLmZyZWVkZXNrdG9wLm9yZy9zZXJpZXMv NTM0NDkvCj4gPiAKPiA+IHYzOgo+ID4gKiBVc2UgYXJyYXkgb2YgY29ubmVjdG9ycyBhbmQgbG9v cCB0aHJvdWdoIChQZXRyaSkKPiA+ICogQWxzbyBjaGVjayBmb3IgRkVDIG9uIERQIGNvbm5lY3Rv cnMgKE1hbmFzaSkKPiA+ICogQWRkIGEgUGlwZV9BIHJlc3RyaWN0aW9uIG9uIERQIChWaWxsZSkK PiA+IHYyOgo+ID4gKiBVc2UgSUdUIHdyYXBwZXJzIGZvciBhbGwgKERLLCBBbnRvbmlvKQo+ID4g KiBTcGxpdCBpbnRvIHR3byBzdWJ0ZXN0cyBmb3IgZURQIGFuZCBEUCB0eXBlcyAoUGV0cmkpCj4g PiAKPiA+IENjOiBQZXRyaSBMYXR2YWxhIDxwZXRyaS5sYXR2YWxhQGludGVsLmNvbT4KPiA+IENj OiBBbnRvbmlvIEFyZ2Vuemlhbm8gPGFudG9uaW8uYXJnZW56aWFub0BpbnRlbC5jb20+Cj4gPiBD YzogRGhpbmFrYXJhbiBQYW5kaXlhbiA8ZGhpbmFrYXJhbi5wYW5kaXlhbkBpbnRlbC5jb20+Cj4g PiBDYzogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiA+ IENjOiBBbnVzaGEgU3JpdmF0c2EgPGFudXNoYS5zcml2YXRzYUBpbnRlbC5jb20+Cj4gPiBTaWdu ZWQtb2ZmLWJ5OiBNYW5hc2kgTmF2YXJlIDxtYW5hc2kuZC5uYXZhcmVAaW50ZWwuY29tPgo+ID4g LS0tCj4gPiAgdGVzdHMvTWFrZWZpbGUuc291cmNlcyB8ICAgMSArCj4gPiAgdGVzdHMva21zX2Rw X2RzYy5jICAgICB8IDI2MSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr Kwo+ID4gIHRlc3RzL21lc29uLmJ1aWxkICAgICAgfCAgIDEgKwo+ID4gIDMgZmlsZXMgY2hhbmdl ZCwgMjYzIGluc2VydGlvbnMoKykKPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdHMva21zX2Rw X2RzYy5jCj4gPiAKPiA+IGRpZmYgLS1naXQgYS90ZXN0cy9NYWtlZmlsZS5zb3VyY2VzIGIvdGVz dHMvTWFrZWZpbGUuc291cmNlcwo+ID4gaW5kZXggZDAwN2ViYzcuLjJhNWIxYzdmIDEwMDY0NAo+ ID4gLS0tIGEvdGVzdHMvTWFrZWZpbGUuc291cmNlcwo+ID4gKysrIGIvdGVzdHMvTWFrZWZpbGUu c291cmNlcwo+ID4gQEAgLTg4LDYgKzg4LDcgQEAgVEVTVFNfcHJvZ3MgPSBcCj4gPiAgCWttc191 bml2ZXJzYWxfcGxhbmUgXAo+ID4gIAlrbXNfdmJsYW5rIFwKPiA+ICAJa21zX3NlcXVlbmNlIFwK PiA+ICsJa21zX2RwX2RzYyBcCj4gPiAgCW1ldGFfdGVzdCBcCj4gPiAgCXBlcmYgXAo+ID4gIAlw ZXJmX3BtdSBcCj4gCj4gQWxwaGFiZXRpY2FsbHkgb3JkZXJlZCBwbGVhc2UuCgpZZXMgd2lsbCBm aXggdGhpcyBvcmRlcmluZyBhbmQgbW92ZSBrbXNfZHBfZHNjIHVwCgo+IAo+IAo+ID4gZGlmZiAt LWdpdCBhL3Rlc3RzL2ttc19kcF9kc2MuYyBiL3Rlc3RzL2ttc19kcF9kc2MuYwo+ID4gbmV3IGZp bGUgbW9kZSAxMDA2NDQKPiA+IGluZGV4IDAwMDAwMDAwLi5kMjcxMGRkZQo+ID4gLS0tIC9kZXYv bnVsbAo+ID4gKysrIGIvdGVzdHMva21zX2RwX2RzYy5jCj4gPiBAQCAtMCwwICsxLDI2MSBAQAo+ ID4gKy8qCj4gPiArICogQ29weXJpZ2h0IMKpIDIwMTggSW50ZWwgQ29ycG9yYXRpb24KPiA+ICsg Kgo+ID4gKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0 byBhbnkgcGVyc29uIG9idGFpbmluZyBhCj4gPiArICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFu ZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKPiA+ICsg KiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcg d2l0aG91dCBsaW1pdGF0aW9uCj4gPiArICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlm eSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCj4gPiArICogYW5kL29y IHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdo b20gdGhlCj4gPiArICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRv IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKPiA+ICsgKgo+ID4gKyAqIFRoZSBhYm92ZSBjb3B5 cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5l eHQKPiA+ICsgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Ig c3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCj4gPiArICogU29mdHdhcmUuCj4gPiArICoKPiA+ ICsgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBP RiBBTlkgS0lORCwgRVhQUkVTUyBPUgo+ID4gKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9U IExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAo+ID4gKyAqIEZJ VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBO TyBFVkVOVCBTSEFMTAo+ID4gKyAqIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJF IExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCj4gPiArICogTElBQklMSVRZ LCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFS SVNJTkcKPiA+ICsgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZU V0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTCj4gPiArICogSU4gVEhFIFNPRlRXQVJF Lgo+ID4gKyAqCj4gPiArICogRGlzcGxheXBvcnQgRGlzcGxheSBTdHJlYW0gQ29tcHJlc3Npb24g dGVzdAo+ID4gKyAqIFVudGlsIHRoZSBDUkMgc3VwcG9ydCBpcyBhZGRlZCB0aGlzIG5lZWRzIHRv IGJlIGludm9rZWQgd2l0aCAtLWludGVyYWN0aXZlCj4gPiArICogdG8gbWFudWFsbHkgdmVyaWZ5 IGlmIHRoZSB0ZXN0IHBhdHRlcm4gaXMgc2VlbiB3aXRob3V0IGNvcnJ1cHRpb24gZm9yIGVhY2gK PiA+ICsgKiBzdWJ0ZXN0Lgo+ID4gKyAqCj4gPiArICogQXV0aG9yczoKPiA+ICsgKiBNYW5hc2kg TmF2YXJlIDxtYW5hc2kuZC5uYXZhcmVAaW50ZWwuY29tPgo+ID4gKyAqCj4gPiArICovCj4gPiAr I2luY2x1ZGUgImlndC5oIgo+ID4gKyNpbmNsdWRlICJpZ3Rfc3lzZnMuaCIKPiA+ICsjaW5jbHVk ZSA8ZXJybm8uaD4KPiA+ICsjaW5jbHVkZSA8Z2V0b3B0Lmg+Cj4gPiArI2luY2x1ZGUgPG1hdGgu aD4KPiA+ICsjaW5jbHVkZSA8c3RkaW50Lmg+Cj4gPiArI2luY2x1ZGUgPHN0ZGJvb2wuaD4KPiA+ ICsjaW5jbHVkZSA8c3RyaW5ncy5oPgo+ID4gKyNpbmNsdWRlIDx1bmlzdGQuaD4KPiA+ICsjaW5j bHVkZSA8c3RkbGliLmg+Cj4gPiArI2luY2x1ZGUgPHNpZ25hbC5oPgo+ID4gKyNpbmNsdWRlIDx0 aW1lLmg+Cj4gPiArI2luY2x1ZGUgPGZjbnRsLmg+Cj4gPiArI2luY2x1ZGUgPHRlcm1pb3MuaD4K PiA+ICsKPiA+ICtlbnVtIGRzY190ZXN0X3R5cGUKPiA+ICt7Cj4gPiArCXRlc3RfYmFzaWNfZHNj X2VuYWJsZQo+ID4gK307Cj4gPiArCj4gPiArdHlwZWRlZiBzdHJ1Y3Qgewo+ID4gKwlpbnQgZHJt X2ZkOwo+ID4gKwlpbnQgZGVidWdmc19mZDsKPiA+ICsJdWludDMyX3QgaWQ7Cj4gPiArCWlndF9k aXNwbGF5X3QgZGlzcGxheTsKPiA+ICsJc3RydWN0IGlndF9mYiBmYl90ZXN0X3BhdHRlcm47Cj4g PiArCWlndF9vdXRwdXRfdCAqb3V0cHV0Owo+ID4gKwlpbnQgbW9kZV92YWxpZDsKPiA+ICsJZHJt TW9kZU1vZGVJbmZvICptb2RlOwo+ID4gKwlkcm1Nb2RlQ29ubmVjdG9yICpjb25uZWN0b3I7Cj4g PiArCWRybU1vZGVFbmNvZGVyICplbmNvZGVyOwo+ID4gKwlpbnQgY3J0YzsKPiA+ICsJZW51bSBw aXBlIHBpcGU7Cj4gPiArCWNoYXIgY29ubl9uYW1lWzEyOF07Cj4gPiArfSBkYXRhX3Q7Cj4gPiAr Cj4gPiArc3RhdGljIGlubGluZSB2b2lkIG1hbnVhbChjb25zdCBjaGFyICpleHBlY3RlZCkKPiA+ ICt7Cj4gPiArCWlndF9kZWJ1Z19tYW51YWxfY2hlY2soImFsbCIsIGV4cGVjdGVkKTsKPiA+ICt9 Cj4gPiArCj4gPiArc3RhdGljIGJvb2wgaXNfZHBfZHNjX3N1cHBvcnRlZChkYXRhX3QgKmRhdGEp Cj4gPiArewo+ID4gKwljaGFyIGZpbGVfbmFtZVsxMjhdID0gezB9Owo+ID4gKwljaGFyIGJ1Zls1 MTJdOwo+ID4gKwo+ID4gKwlzdHJjcHkoZmlsZV9uYW1lLCBkYXRhLT5jb25uX25hbWUpOwo+ID4g KwlzdHJjYXQoZmlsZV9uYW1lLCAiL2k5MTVfZHNjX2ZlY19zdXBwb3J0Iik7Cj4gPiArCWlndF9y ZXF1aXJlKGlndF9kZWJ1Z2ZzX3NpbXBsZV9yZWFkKGRhdGEtPmRlYnVnZnNfZmQsIGZpbGVfbmFt ZSwgYnVmLAo+ID4gKwkJCQkJICAgIHNpemVvZihidWYpKSA+IDApOwo+ID4gKwlpZ3RfZGVidWdm c19yZWFkKGRhdGEtPmRybV9mZCwgZmlsZV9uYW1lLCBidWYpOwo+ID4gKwo+ID4gKwlyZXR1cm4g c3Ryc3RyKGJ1ZiwgIkRTQ19TaW5rX1N1cHBvcnQ6IHllcyIpOwo+ID4gKwo+ID4gK30KPiA+ICsK PiA+ICtzdGF0aWMgYm9vbCBpc19kcF9mZWNfc3VwcG9ydGVkKGRhdGFfdCAqZGF0YSkKPiA+ICt7 Cj4gPiArCWNoYXIgZmlsZV9uYW1lWzEyOF0gPSB7MH07Cj4gPiArCWNoYXIgYnVmWzUxMl07Cj4g PiArCj4gPiArCXN0cmNweShmaWxlX25hbWUsIGRhdGEtPmNvbm5fbmFtZSk7Cj4gPiArCXN0cmNh dChmaWxlX25hbWUsICIvaTkxNV9kc2NfZmVjX3N1cHBvcnQiKTsKPiA+ICsJaWd0X2RlYnVnZnNf cmVhZChkYXRhLT5kcm1fZmQsIGZpbGVfbmFtZSwgYnVmKTsKPiA+ICsKPiA+ICsJcmV0dXJuIHN0 cnN0cihidWYsICJGRUNfU2lua19TdXBwb3J0OiB5ZXMiKTsKPiA+ICsKPiA+ICt9Cj4gPiArCj4g PiArc3RhdGljIGJvb2wgaXNfZHBfZHNjX2VuYWJsZWQoZGF0YV90ICpkYXRhKQo+ID4gK3sKPiA+ ICsJY2hhciBmaWxlX25hbWVbMTI4XSA9IHswfTsKPiA+ICsJY2hhciBidWZbNTEyXTsKPiA+ICsK PiA+ICsJc3RyY3B5KGZpbGVfbmFtZSwgZGF0YS0+Y29ubl9uYW1lKTsKPiA+ICsJc3RyY2F0KGZp bGVfbmFtZSwgIi9pOTE1X2RzY19mZWNfc3VwcG9ydCIpOwo+ID4gKwlpZ3RfZGVidWdmc19yZWFk KGRhdGEtPmRybV9mZCwgZmlsZV9uYW1lLCBidWYpOwo+ID4gKwo+ID4gKwlyZXR1cm4gc3Ryc3Ry KGJ1ZiwgIkRTQ19FbmFibGVkOiB5ZXMiKTsKPiA+ICsKPiA+ICt9Cj4gCj4gUmVtb3ZlIGV4dHJh IGVtcHR5IGxpbmVzIGFmdGVyIHJldHVybiBzdGF0ZW1lbnRzIGluIHRoZSBhYm92ZSB0aHJlZQo+ IGZ1bmN0aW9ucy4KClllcyB3aWxsIGRvCgo+IAo+IAo+ID4gKwo+ID4gK3N0YXRpYyB2b2lkIGZv cmNlX2RwX2RzY19lbmFibGUoZGF0YV90ICpkYXRhKQo+ID4gK3sKPiA+ICsJY2hhciBmaWxlX25h bWVbMTI4XSA9IHswfTsKPiA+ICsJaW50IHJldDsKPiA+ICsKPiA+ICsJc3RyY3B5KGZpbGVfbmFt ZSwgZGF0YS0+Y29ubl9uYW1lKTsKPiA+ICsJc3RyY2F0KGZpbGVfbmFtZSwgIi9pOTE1X2RzY19m ZWNfc3VwcG9ydCIpOwo+ID4gKwlpZ3RfZGVidWcgKCJGb3JjaW5nIERTQyBlbmFibGUgb24gJXNc biIsIGRhdGEtPmNvbm5fbmFtZSk7Cj4gPiArCXJldCA9IGlndF9zeXNmc193cml0ZShkYXRhLT5k ZWJ1Z2ZzX2ZkLCBmaWxlX25hbWUsICIxIiwgMSk7Cj4gPiArCWlndF9hc3NlcnRfZihyZXQgPiAw LCAiZGVidWdmc193cml0ZSBmYWlsZWQiKTsKPiA+ICt9Cj4gPiArCj4gPiArc3RhdGljIHZvaWQg Y2xlYXJfZHBfZHNjX2VuYWJsZShkYXRhX3QgKmRhdGEpCj4gPiArewo+ID4gKwljaGFyIGZpbGVf bmFtZVsxMjhdID0gezB9Owo+ID4gKwlpbnQgcmV0Owo+ID4gKwo+ID4gKwlzdHJjcHkoZmlsZV9u YW1lLCBkYXRhLT5jb25uX25hbWUpOwo+ID4gKwlzdHJjYXQoZmlsZV9uYW1lLCAiL2k5MTVfZHNj X2ZlY19zdXBwb3J0Iik7Cj4gPiArCWlndF9kZWJ1ZyAoIkNsZWFyaW5nIERTQyBlbmFibGUgb24g JXNcbiIsIGRhdGEtPmNvbm5fbmFtZSk7Cj4gPiArCXJldCA9IGlndF9zeXNmc193cml0ZShkYXRh LT5kZWJ1Z2ZzX2ZkLCBmaWxlX25hbWUsICIwIiwgMSk7Cj4gPiArCWlndF9hc3NlcnRfZihyZXQg PiAwLCAiZGVidWdmc193cml0ZSBmYWlsZWQiKTsKPiA+ICt9Cj4gPiArCj4gPiArc3RhdGljIHZv aWQgdGVzdF9jbGVhbnVwKGRhdGFfdCAqZGF0YSkgewo+ID4gKwlpZ3RfcGxhbmVfdCAqcHJpbWFy eTsKPiA+ICsKPiA+ICsJcHJpbWFyeSA9IGlndF9vdXRwdXRfZ2V0X3BsYW5lX3R5cGUoZGF0YS0+ b3V0cHV0LAo+ID4gKwkJCQkJICAgIERSTV9QTEFORV9UWVBFX1BSSU1BUlkpOwo+ID4gKwlpZ3Rf cGxhbmVfc2V0X2ZiKHByaW1hcnksIE5VTEwpOwo+ID4gKwlpZ3RfZGlzcGxheV9jb21taXQoJmRh dGEtPmRpc3BsYXkpOwo+ID4gKwo+ID4gKwlpZ3RfcmVtb3ZlX2ZiKGRhdGEtPmRybV9mZCwgJmRh dGEtPmZiX3Rlc3RfcGF0dGVybik7Cj4gPiArfQo+ID4gKwo+ID4gKwo+ID4gKy8qCj4gPiArICog UmUtcHJvYmUgY29ubmVjdG9ycyBhbmQgZG8gYSBtb2Rlc2V0IHdpdGggRFNDCj4gPiArICoKPiA+ ICsgKi8KPiA+ICtzdGF0aWMgdm9pZCB1cGRhdGVfZGlzcGxheShkYXRhX3QgKmRhdGEsIGVudW0g ZHNjX3Rlc3RfdHlwZSB0ZXN0X3R5cGUpCj4gPiArewo+ID4gKwlpZ3RfcGxhbmVfdCAqcHJpbWFy eTsKPiA+ICsJZGF0YS0+bW9kZSA9IGlndF9vdXRwdXRfZ2V0X21vZGUoZGF0YS0+b3V0cHV0KTsK PiA+ICsJZGF0YS0+Y29ubmVjdG9yID0gZGF0YS0+b3V0cHV0LT5jb25maWcuY29ubmVjdG9yOwo+ ID4gKwo+ID4gKwlpZiAoZGF0YS0+Y29ubmVjdG9yLT5jb25uZWN0b3JfdHlwZSA9PSBEUk1fTU9E RV9DT05ORUNUT1JfRGlzcGxheVBvcnQgJiYKPiA+ICsJICAgIGRhdGEtPnBpcGUgPT0gUElQRV9B KSB7Cj4gPiArCQlpZ3RfZGVidWcgKCJEU0Mgbm90IHN1cHBvcnRlZCBvbiBQaXBlIEEgb24gZXh0 ZXJuYWwgRFBcbiIpOwo+ID4gKwkJcmV0dXJuOwo+ID4gKwl9Cj4gPiArCj4gPiArCWlmICh0ZXN0 X3R5cGUgPT0gdGVzdF9iYXNpY19kc2NfZW5hYmxlKSB7Cj4gPiArCQlpZ3RfZGVidWcgKCJEU0Mg aXMgc3VwcG9ydGVkIG9uICVzXG4iLAo+ID4gKwkJCSAgIGRhdGEtPmNvbm5fbmFtZSk7Cj4gPiAr CQlmb3JjZV9kcF9kc2NfZW5hYmxlKGRhdGEpOwo+ID4gKwkJaWd0X2NyZWF0ZV9wYXR0ZXJuX2Zi KGRhdGEtPmRybV9mZCwgZGF0YS0+bW9kZS0+aGRpc3BsYXksCj4gPiArCQkJCSAgICAgIGRhdGEt Pm1vZGUtPnZkaXNwbGF5LAo+ID4gKwkJCQkgICAgICBEUk1fRk9STUFUX1hSR0I4ODg4LAo+ID4g KwkJCQkgICAgICBMT0NBTF9EUk1fRk9STUFUX01PRF9OT05FLAo+ID4gKwkJCQkgICAgICAmZGF0 YS0+ZmJfdGVzdF9wYXR0ZXJuKTsKPiA+ICsJCXByaW1hcnkgPSBpZ3Rfb3V0cHV0X2dldF9wbGFu ZV90eXBlKGRhdGEtPm91dHB1dCwKPiA+ICsJCQkJCQkgICAgRFJNX1BMQU5FX1RZUEVfUFJJTUFS WSk7Cj4gPiArCQlpZ3RfcGxhbmVfc2V0X2ZiKHByaW1hcnksICZkYXRhLT5mYl90ZXN0X3BhdHRl cm4pOwo+ID4gKwkJaWd0X2Rpc3BsYXlfY29tbWl0KCZkYXRhLT5kaXNwbGF5KTsKPiA+ICsJCS8q IFVudGlsIHdlIGhhdmUgQ1JDIGNoZWNrIHN1cHBvcnQsIG1hbnVhbGx5IGNoZWNrIGlmIFJHQiB0 ZXN0IHBhdHRlcm4gaGFzIG5vIGNvcnJ1cHRpb24gKi8KPiA+ICsJCW1hbnVhbCAoIlJHQiB0ZXN0 IHBhdHRlcm4gd2l0aG91dCBjb3JydXB0aW9uIik7Cj4gPiArCQlpZ3RfYXNzZXJ0X2YoaXNfZHBf ZHNjX2VuYWJsZWQoZGF0YSksCj4gPiArCQkJICAgICAiRGVmYXVsdCBEU0MgZW5hYmxlIGZhaWxl ZCBvbiBDb25uZWN0b3I6ICVzIFBpcGU6ICVzIiwKPiA+ICsJCQkgICAgIGRhdGEtPmNvbm5fbmFt ZSwKPiA+ICsJCQkgICAgIGttc3Rlc3RfcGlwZV9uYW1lKGRhdGEtPnBpcGUpKTsKPiA+ICsJCWNs ZWFyX2RwX2RzY19lbmFibGUoZGF0YSk7Cj4gPiArCX0KPiAKPiBDYW4gd2UgZnV0dXJlLXByb29m IHRoaXMgd2l0aCBhbgo+IAo+IH0gZWxzZSB7Cj4gIGlndF9hc3NlcnQoISJVbmtub3duIHRlc3Qg dHlwZSIpOwo+IH0KPgoKWWVzIHRoYXRzIGEgZ29vZCBpZGVhCiAKPiAKPiA+ICsKPiA+ICt9Cj4g PiArCj4gPiArc3RhdGljIHZvaWQgcnVuX3Rlc3QoZGF0YV90ICpkYXRhLCBpZ3Rfb3V0cHV0X3Qg Km91dHB1dCwKPiA+ICsJCSAgICAgZW51bSBkc2NfdGVzdF90eXBlIHRlc3RfdHlwZSkKPiA+ICt7 Cj4gPiArCWVudW0gcGlwZSBwaXBlOwo+ID4gKwo+ID4gKwlmb3JfZWFjaF9waXBlX3dpdGhfdmFs aWRfb3V0cHV0KCZkYXRhLT5kaXNwbGF5LCBwaXBlLCBvdXRwdXQpIHsKPiA+ICsJCWlndF9vdXRw dXRfc2V0X3BpcGUob3V0cHV0LCBwaXBlKTsKPiA+ICsJCWRhdGEtPnBpcGUgPSBwaXBlOwo+ID4g KwkJZGF0YS0+b3V0cHV0ID0gb3V0cHV0Owo+ID4gKwkJdXBkYXRlX2Rpc3BsYXkoZGF0YSwgdGVz dF9iYXNpY19kc2NfZW5hYmxlKTsKPiAKPiBTaG91bGQgdGhpcyBiZSBwYXNzaW5nIHRoZSB0ZXN0 X3R5cGUgcGFyYW1ldGVyIGluc3RlYWQgb2YgaGFyZGNvZGluZwo+IHRlc3RfYmFzaWNfZHNjX2Vu YWJsZT8KPgoKT2ggeWVzIHNvcnJ5IG1pc3NlZCB0aGlzIHBhcnQgd2hlbiBJIHdhcyBtb2R1bGFy aXppbmcgdGhlIGZ1bmN0aW9ucwogCj4gCj4gPiArCX0KPiA+ICt9Cj4gPiArCj4gPiAraWd0X21h aW4KPiA+ICt7Cj4gPiArCWRhdGFfdCBkYXRhID0ge307Cj4gPiArCWlndF9vdXRwdXRfdCAqb3V0 cHV0Owo+ID4gKwlkcm1Nb2RlUmVzICpyZXM7Cj4gPiArCWRybU1vZGVDb25uZWN0b3IgKmNvbm5l Y3RvcjsKPiA+ICsJaW50IGksIHRlc3RfY29ubl9jbnQsIHRlc3RfY250Owo+ID4gKwlpbnQgdGVz dHNbXSA9IHtEUk1fTU9ERV9DT05ORUNUT1JfZURQLCBEUk1fTU9ERV9DT05ORUNUT1JfRGlzcGxh eVBvcnR9Owo+ID4gKwo+ID4gKwlpZ3RfZml4dHVyZSB7Cj4gPiArCQlpZ3Rfc2tpcF9vbl9zaW11 bGF0aW9uKCk7Cj4gCj4gUmVtb3ZlIGlndF9za2lwX29uX3NpbXVsYXRpb24gaWYgdGhlcmUncyBu b3QgYSBnb29kIHJlYXNvbiBmb3IKPiBpdC4gV2hlbiBpbiBkb3VidCwgdGhlcmUgaXNuJ3QuCgpC dXQgd2UgY2FudCB0ZXN0IHRoZSBkaXNwbGF5IG9uIHNpbXVsYXRpb24gc28gaXQgd2lsbCBoYXZl IHRvIGJlIHNraXBwZWQuCgo+IAo+IAo+ID4gKwkJZGF0YS5kcm1fZmQgPSBkcm1fb3Blbl9kcml2 ZXJfbWFzdGVyKERSSVZFUl9BTlkpOwo+ID4gKwkJZGF0YS5kZWJ1Z2ZzX2ZkID0gaWd0X2RlYnVn ZnNfZGlyKGRhdGEuZHJtX2ZkKTsKPiA+ICsJCWttc3Rlc3Rfc2V0X3Z0X2dyYXBoaWNzX21vZGUo KTsKPiA+ICsJCWlndF9kaXNwbGF5X2luaXQoJmRhdGEuZGlzcGxheSwgZGF0YS5kcm1fZmQpOwo+ IAo+IGNvbW1pdCA1MTA1ZjA2OGY2NTI1ZjRkODYzNzE5YWNmNzU0ODkxNDQyZWVkMjU0Cj4gQXV0 aG9yOiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPgo+IERhdGU6ICAgVGh1 IE5vdiAyMiAxMDozNjo1OCAyMDE4ICswMTAwCj4gCj4gICAgIGxpYi9rbXM6IERyb3AgaWd0X2Rp c3BsYXlfaW5pdAo+IAo+IAo+IFlvdSBuZWVkIHRvIGNoYW5nZSB0aGlzIGNhbGwgdG8gaWd0X2Rp c3BsYXlfcmVxdWlyZS4KCk9rYXkgd2lsbCBkbywgZG8gSSBhbHNvIG5lZWQgaWd0X2Rpc3BsYXlf cmVxdWlyZV9vdXRwdXQoKSBjYWxsIGFmdGVyIHRoaXM/Cgo+IAo+IAo+IAo+ID4gKwkJaWd0X2Rp c3BsYXlfcmVxdWlyZV9vdXRwdXQoJmRhdGEuZGlzcGxheSk7Cj4gPiArCQlpZ3RfcmVxdWlyZShy ZXMgPSBkcm1Nb2RlR2V0UmVzb3VyY2VzKGRhdGEuZHJtX2ZkKSk7Cj4gPiArCX0KPiA+ICsKPiA+ ICsJZm9yICh0ZXN0X2NudCA9IDA7IHRlc3RfY250IDwgQVJSQVlfU0laRSh0ZXN0cyk7IHRlc3Rf Y250KyspIHsKPiA+ICsKPiA+ICsJCWlndF9zdWJ0ZXN0X2YoImJhc2ljLWRzYy1lbmFibGUtJXMi LAo+ID4gKwkJCSAgICAgIGttc3Rlc3RfY29ubmVjdG9yX3R5cGVfc3RyKHRlc3RzW3Rlc3RfY250 XSkpIHsKPiA+ICsJCQl0ZXN0X2Nvbm5fY250ID0gMDsKPiA+ICsJCQlmb3IgKGkgPSAwOyBpIDwg cmVzLT5jb3VudF9jb25uZWN0b3JzOyBpKyspIHsKPiA+ICsJCQkJY29ubmVjdG9yID0gZHJtTW9k ZUdldENvbm5lY3RvckN1cnJlbnQoZGF0YS5kcm1fZmQsCj4gPiArCQkJCQkJCQkgICAgICAgcmVz LT5jb25uZWN0b3JzW2ldKTsKPiA+ICsJCQkJaWYgKGNvbm5lY3Rvci0+Y29ubmVjdGlvbiAhPSBE Uk1fTU9ERV9DT05ORUNURUQgfHwKPiA+ICsJCQkJICAgIGNvbm5lY3Rvci0+Y29ubmVjdG9yX3R5 cGUgIT0KPiA+ICsJCQkJICAgIHRlc3RzW3Rlc3RfY250XSkKPiA+ICsJCQkJCWNvbnRpbnVlOwo+ ID4gKwkJCQl0ZXN0X2Nvbm5fY250Kys7Cj4gPiArCQkJCW91dHB1dCA9IGlndF9vdXRwdXRfZnJv bV9jb25uZWN0b3IoJmRhdGEuZGlzcGxheSwgY29ubmVjdG9yKTsKPiA+ICsJCQkJc3ByaW50Zihk YXRhLmNvbm5fbmFtZSwgIiVzLSVkIiwKPiA+ICsJCQkJCWttc3Rlc3RfY29ubmVjdG9yX3R5cGVf c3RyKGNvbm5lY3Rvci0+Y29ubmVjdG9yX3R5cGUpLAo+ID4gKwkJCQkJdGVzdF9jb25uX2NudCk7 Cj4gPiArCQkJCWlndF9yZXF1aXJlX2YoaXNfZHBfZHNjX3N1cHBvcnRlZCgmZGF0YSksCj4gPiAr CQkJCQkgICAgICAiRFNDIG5vdCBzdXBwb3J0ZWQgb24gY29ubmVjdG9yICVzIFxuIiwKPiA+ICsJ CQkJCSAgICAgIGRhdGEuY29ubl9uYW1lKTsKPiA+ICsJCQkJaWYgKGNvbm5lY3Rvci0+Y29ubmVj dG9yX3R5cGUgPT0gRFJNX01PREVfQ09OTkVDVE9SX0Rpc3BsYXlQb3J0KQo+ID4gKwkJCQkJaWd0 X3JlcXVpcmVfZihpc19kcF9mZWNfc3VwcG9ydGVkKCZkYXRhKSwKPiA+ICsJCQkJCQkgICAgICAi RFNDIGNhbm5vdCBiZSBlbmFibGVkIHdpdGhvdXQgRkVDIG9uICVzXG4iLAo+ID4gKwkJCQkJCSAg ICAgIGRhdGEuY29ubl9uYW1lKTsKPiA+ICsJCQkJcnVuX3Rlc3QoJmRhdGEsIG91dHB1dCwgdGVz dF9iYXNpY19kc2NfZW5hYmxlKTsKPiA+ICsJCQl9Cj4gPiArCQkJdGVzdF9jbGVhbnVwKCZkYXRh KTsKPiA+ICsJCQlpZ3Rfc2tpcF9vbih0ZXN0X2Nvbm5fY250ID09IDApOwo+ID4gKwkJfQo+ID4g Kwl9Cj4gPiArCj4gPiArCWlndF9maXh0dXJlIHsKPiA+ICsJCWRybU1vZGVGcmVlQ29ubmVjdG9y KGNvbm5lY3Rvcik7Cj4gPiArCQlkcm1Nb2RlRnJlZVJlc291cmNlcyhyZXMpOwo+ID4gKwkJY2xv c2UoZGF0YS5kZWJ1Z2ZzX2ZkKTsKPiA+ICsJCWNsb3NlKGRhdGEuZHJtX2ZkKTsKPiA+ICsJCWln dF9kaXNwbGF5X2ZpbmkoJmRhdGEuZGlzcGxheSk7Cj4gPiArCX0KPiA+ICsJaWd0X2V4aXQoKTsK PiA+ICt9Cj4gPiBkaWZmIC0tZ2l0IGEvdGVzdHMvbWVzb24uYnVpbGQgYi90ZXN0cy9tZXNvbi5i dWlsZAo+ID4gaW5kZXggMzAyMGY3OTguLmRkZTQyNzBjIDEwMDY0NAo+ID4gLS0tIGEvdGVzdHMv bWVzb24uYnVpbGQKPiA+ICsrKyBiL3Rlc3RzL21lc29uLmJ1aWxkCj4gPiBAQCAtMzIsNiArMzIs NyBAQCB0ZXN0X3Byb2dzID0gWwo+ID4gIAkna21zX2N1cnNvcl9jcmMnLAo+ID4gIAkna21zX2N1 cnNvcl9sZWdhY3knLAo+ID4gIAkna21zX2RyYXdfY3JjJywKPiA+ICsJJ2ttc19kcF9kc2MnLAo+ ID4gIAkna21zX2ZiY29uX2ZidCcsCj4gCj4gQWxwaGFiZXRpY2FsIG9yZGVyaW5nIG9mZi1ieS1v bmUuCgpHb3RjaGEsIHdpbGwgZml4IGl0IQpUaGFua3MgZm9yIHRoZSByZXZpZXcKCk1hbmFzaQoK PiAKPiAKPiAKPiAKPiAtLSAKPiBQZXRyaSBMYXR2YWxhCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCmlndC1kZXYgbWFpbGluZyBsaXN0CmlndC1kZXZAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vaWd0LWRldgo=