From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6A2F66E6B6 for ; Mon, 17 Dec 2018 19:44:28 +0000 (UTC) From: "Srivatsa, Anusha" Date: Mon, 17 Dec 2018 19:44:26 +0000 Message-ID: <83F5C7385F545743AD4FB2A62F75B07347FC81EB@ORSMSX108.amr.corp.intel.com> References: <20181213005739.29199-1-anusha.srivatsa@intel.com> <20181217120027.GR17124@platvala-desk.ger.corp.intel.com> In-Reply-To: <20181217120027.GR17124@platvala-desk.ger.corp.intel.com> Content-Language: en-US MIME-Version: 1.0 Subject: Re: [igt-dev] [PATCH i-g-t] 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: "Latvala, Petri" Cc: "igt-dev@lists.freedesktop.org" , "Navare, Manasi D" , "Pandiyan, Dhinakaran" List-ID: Cgo+LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0KPkZyb206IExhdHZhbGEsIFBldHJpCj5TZW50 OiBNb25kYXksIERlY2VtYmVyIDE3LCAyMDE4IDQ6MDAgQU0KPlRvOiBTcml2YXRzYSwgQW51c2hh IDxhbnVzaGEuc3JpdmF0c2FAaW50ZWwuY29tPgo+Q2M6IGlndC1kZXZAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnOyBOYXZhcmUsIE1hbmFzaSBECj48bWFuYXNpLmQubmF2YXJlQGludGVsLmNvbT47IEFy Z2Vuemlhbm8sIEFudG9uaW8KPjxhbnRvbmlvLmFyZ2Vuemlhbm9AaW50ZWwuY29tPjsgUGFuZGl5 YW4sIERoaW5ha2FyYW4KPjxkaGluYWthcmFuLnBhbmRpeWFuQGludGVsLmNvbT47IFZpbGxlIFN5 cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj5TdWJqZWN0OiBSZTogW1BB VENIIGktZy10XSB0ZXN0L2ttc19kcF9kc2M6IEJhc2ljIEtNUyB0ZXN0IHRvIHZhbGlkYXRlIFZF U0EgRFNDCj5vbiBEUC9lRFAKPgo+T24gV2VkLCBEZWMgMTIsIDIwMTggYXQgMDQ6NTc6MzlQTSAt MDgwMCwgQW51c2hhIHdyb3RlOgo+PiBGcm9tOiBNYW5hc2kgTmF2YXJlIDxtYW5hc2kuZC5uYXZh cmVAaW50ZWwuY29tPgo+Pgo+PiBUaGlzIHBhdGNoIGFkZHMgYSBiYXNpYyBrbXMgdGVzdCB0byB2 YWxpZGF0ZSB0aGUgZGlzcGxheSBzdHJlYW0KPj4gY29tcHJlc3Npb24gZnVuY3Rpb25hbGl0eSBp ZiBzdXBwb3J0ZWQgb24gRFAvZURQIGNvbm5lY3Rvci4KPj4gQ3VycmVudGx5IHRoaXMgaGFzIG9u bHkgdHdvIHN1YnRlc3RzIHRvIGZvcmNlIHRoZSBEU0Mgb24gYWxsIHRoZSBlRFAKPj4gYW5kIERQ IGNvbm5lY3RvcnMgdGhhdCBzdXBwb3J0IGl0IHdpdGggZGVmYXVsdCBwYXJhbWV0ZXJzLgo+PiBU aGlzIHdpbGwgYmUgZXhwYW5kZWQgdG8gYWRkIG1vcmUgc3VidGVzdHMgdG8gdHdlYWsgRFNDIHBh cmFtZXRlcnMuCj4+Cj4+IHY2OiAoZnJvbSBBbnVzaGEpCj4+ICogRml4IHJ1bl90ZXN0KCkgKFBl dHJpKQo+PiAqIEZpeCB1cGRhdGVfZGlzcGxheSgpIHRvIGF2b2lkIGxlYWtzLiAoUGV0cmkpCj4+ IHY1Ogo+PiAqIEZpeCB0ZXN0IGNsZWFudXAgdG8gYXZvaWQgY3Jhc2ggKFBldHJpKQo+PiB2NDoK Pj4gKiBGdXR1cmUgcHJvb2YgZm9yIG1vcmUgdGVzdCB0eXBlcyAoUGV0cmkpCj4+ICogRml4IGFs cGhhYmV0aWNhbCBvcmRlciAoUGV0cmkpCj4+ICogcy9pZ3RfZGlzcGxheV9pbml0L2lndF9kaXNw bGF5X3JlcXVpcmUgKFBldHJpKQo+PiAqIFJlbW92ZSBibGFuayBsaW5lcyBhZnRlciByZXR1cm4g KFBldHJpKQo+PiB2MzoKPj4gKiBVc2UgYXJyYXkgb2YgY29ubmVjdG9ycyBhbmQgbG9vcCB0aHJv dWdoIChQZXRyaSkKPj4gKiBBbHNvIGNoZWNrIGZvciBGRUMgb24gRFAgY29ubmVjdG9ycyAoTWFu YXNpKQo+PiAqIEFkZCBhIFBpcGVfQSByZXN0cmljdGlvbiBvbiBEUCAoVmlsbGUpCj4+IHYyOgo+ PiAqIFVzZSBJR1Qgd3JhcHBlcnMgZm9yIGFsbCAoREssIEFudG9uaW8pCj4+ICogU3BsaXQgaW50 byB0d28gc3VidGVzdHMgZm9yIGVEUCBhbmQgRFAgdHlwZXMgKFBldHJpKQo+Pgo+PiBDYzogUGV0 cmkgTGF0dmFsYSA8cGV0cmkubGF0dmFsYUBpbnRlbC5jb20+Cj4+IENjOiBBbnRvbmlvIEFyZ2Vu emlhbm8gPGFudG9uaW8uYXJnZW56aWFub0BpbnRlbC5jb20+Cj4+IENjOiBEaGluYWthcmFuIFBh bmRpeWFuIDxkaGluYWthcmFuLnBhbmRpeWFuQGludGVsLmNvbT4KPj4gQ2M6IFZpbGxlIFN5cmrD pGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4+IENjOiBBbnVzaGEgU3JpdmF0 c2EgPGFudXNoYS5zcml2YXRzYUBpbnRlbC5jb20+Cj4+IFNpZ25lZC1vZmYtYnk6IEFudXNoYSBT cml2YXRzYSA8YW51c2hhLnNyaXZhdHNhQGludGVsLmNvbT4KPj4gU2lnbmVkLW9mZi1ieTogTWFu YXNpIE5hdmFyZSA8bWFuYXNpLmQubmF2YXJlQGludGVsLmNvbT4KPj4gLS0tCj4+ICB0ZXN0cy9N YWtlZmlsZS5zb3VyY2VzIHwgICAxICsKPj4gIHRlc3RzL2ttc19kcF9kc2MuYyAgICAgfCAyNjQg KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPj4gIHRlc3RzL21lc29u LmJ1aWxkICAgICAgfCAgIDEgKwo+PiAgMyBmaWxlcyBjaGFuZ2VkLCAyNjYgaW5zZXJ0aW9ucygr KQo+PiAgY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3RzL2ttc19kcF9kc2MuYwo+Pgo+PiBkaWZmIC0t Z2l0IGEvdGVzdHMvTWFrZWZpbGUuc291cmNlcyBiL3Rlc3RzL01ha2VmaWxlLnNvdXJjZXMgaW5k ZXgKPj4gZWVkZGUxZTguLmEzYzI0Yzk5IDEwMDY0NAo+PiAtLS0gYS90ZXN0cy9NYWtlZmlsZS5z b3VyY2VzCj4+ICsrKyBiL3Rlc3RzL01ha2VmaWxlLnNvdXJjZXMKPj4gQEAgLTU0LDYgKzU0LDcg QEAgVEVTVFNfcHJvZ3MgPSBcCj4+ICAJa21zX2NydGNfYmFja2dyb3VuZF9jb2xvciBcCj4+ICAJ a21zX2N1cnNvcl9jcmMgXAo+PiAgCWttc19jdXJzb3JfbGVnYWN5IFwKPj4gKwlrbXNfZHBfZHNj IFwKPj4gIAlrbXNfZHJhd19jcmMgXAo+PiAgCWttc19mYmNvbl9mYnQgXAo+PiAgCWttc19mZW5j ZV9waW5fbGVhayBcCj4+IGRpZmYgLS1naXQgYS90ZXN0cy9rbXNfZHBfZHNjLmMgYi90ZXN0cy9r bXNfZHBfZHNjLmMgbmV3IGZpbGUgbW9kZQo+PiAxMDA2NDQgaW5kZXggMDAwMDAwMDAuLjg4NGE3 NzE3Cj4+IC0tLSAvZGV2L251bGwKPj4gKysrIGIvdGVzdHMva21zX2RwX2RzYy5jCj4+IEBAIC0w LDAgKzEsMjY0IEBACj4+ICsvKgo+PiArICogQ29weXJpZ2h0IMKpIDIwMTggSW50ZWwgQ29ycG9y YXRpb24KPj4gKyAqCj4+ICsgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9m IGNoYXJnZSwgdG8gYW55IHBlcnNvbgo+PiArb2J0YWluaW5nIGEKPj4gKyAqIGNvcHkgb2YgdGhp cyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKPj4gKyJT b2Z0d2FyZSIpLAo+PiArICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmlj dGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQKPj4gK2xpbWl0YXRpb24KPj4gKyAqIHRoZSByaWdodHMg dG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLAo+PiArc3Vi bGljZW5zZSwKPj4gKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0 byBwZXJtaXQgcGVyc29ucyB0byB3aG9tCj4+ICt0aGUKPj4gKyAqIFNvZnR3YXJlIGlzIGZ1cm5p c2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Cj4+ICsg Kgo+PiArICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBu b3RpY2UgKGluY2x1ZGluZwo+PiArdGhlIG5leHQKPj4gKyAqIHBhcmFncmFwaCkgc2hhbGwgYmUg aW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucwo+PiArb2YgdGhl Cj4+ICsgKiBTb2Z0d2FyZS4KPj4gKyAqCj4+ICsgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQg IkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKPj4gK0VYUFJFU1MgT1IKPj4g KyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMg T0YKPj4gK01FUkNIQU5UQUJJTElUWSwKPj4gKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ VVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTwo+RVZFTlQKPj4gK1NIQUxMCj4+ICsg KiBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJ TSwKPkRBTUFHRVMKPj4gK09SIE9USEVSCj4+ICsgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4g QUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwKPj4gK0FSSVNJTkcKPj4gKyAq IEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBV U0UgT1IKPj4gK09USEVSIERFQUxJTkdTCj4+ICsgKiBJTiBUSEUgU09GVFdBUkUuCj4+ICsgKgo+ PiArICogRGlzcGxheXBvcnQgRGlzcGxheSBTdHJlYW0gQ29tcHJlc3Npb24gdGVzdAo+PiArICog VW50aWwgdGhlIENSQyBzdXBwb3J0IGlzIGFkZGVkIHRoaXMgbmVlZHMgdG8gYmUgaW52b2tlZCB3 aXRoCj4+ICstLWludGVyYWN0aXZlCj4+ICsgKiB0byBtYW51YWxseSB2ZXJpZnkgaWYgdGhlIHRl c3QgcGF0dGVybiBpcyBzZWVuIHdpdGhvdXQgY29ycnVwdGlvbgo+PiArZm9yIGVhY2gKPj4gKyAq IHN1YnRlc3QuCj4+ICsgKgo+PiArICogQXV0aG9yczoKPj4gKyAqIE1hbmFzaSBOYXZhcmUgPG1h bmFzaS5kLm5hdmFyZUBpbnRlbC5jb20+Cj4+ICsgKgo+PiArICovCj4+ICsjaW5jbHVkZSAiaWd0 LmgiCj4+ICsjaW5jbHVkZSAiaWd0X3N5c2ZzLmgiCj4+ICsjaW5jbHVkZSA8ZXJybm8uaD4KPj4g KyNpbmNsdWRlIDxnZXRvcHQuaD4KPj4gKyNpbmNsdWRlIDxtYXRoLmg+Cj4+ICsjaW5jbHVkZSA8 c3RkaW50Lmg+Cj4+ICsjaW5jbHVkZSA8c3RkYm9vbC5oPgo+PiArI2luY2x1ZGUgPHN0cmluZ3Mu aD4KPj4gKyNpbmNsdWRlIDx1bmlzdGQuaD4KPj4gKyNpbmNsdWRlIDxzdGRsaWIuaD4KPj4gKyNp bmNsdWRlIDxzaWduYWwuaD4KPj4gKyNpbmNsdWRlIDx0aW1lLmg+Cj4+ICsjaW5jbHVkZSA8ZmNu dGwuaD4KPj4gKyNpbmNsdWRlIDx0ZXJtaW9zLmg+Cj4+ICsKPj4gK2VudW0gZHNjX3Rlc3RfdHlw ZQo+PiArewo+PiArCXRlc3RfYmFzaWNfZHNjX2VuYWJsZQo+PiArfTsKPj4gKwo+PiArdHlwZWRl ZiBzdHJ1Y3Qgewo+PiArCWludCBkcm1fZmQ7Cj4+ICsJaW50IGRlYnVnZnNfZmQ7Cj4+ICsJdWlu dDMyX3QgaWQ7Cj4+ICsJaWd0X2Rpc3BsYXlfdCBkaXNwbGF5Owo+PiArCXN0cnVjdCBpZ3RfZmIg ZmJfdGVzdF9wYXR0ZXJuOwo+PiArCWlndF9vdXRwdXRfdCAqb3V0cHV0Owo+PiArCWludCBtb2Rl X3ZhbGlkOwo+PiArCWRybU1vZGVNb2RlSW5mbyAqbW9kZTsKPj4gKwlkcm1Nb2RlQ29ubmVjdG9y ICpjb25uZWN0b3I7Cj4+ICsJZHJtTW9kZUVuY29kZXIgKmVuY29kZXI7Cj4+ICsJaW50IGNydGM7 Cj4+ICsJZW51bSBwaXBlIHBpcGU7Cj4+ICsJY2hhciBjb25uX25hbWVbMTI4XTsKPj4gK30gZGF0 YV90Owo+PiArCj4+ICtzdGF0aWMgaW5saW5lIHZvaWQgbWFudWFsKGNvbnN0IGNoYXIgKmV4cGVj dGVkKSB7Cj4+ICsJaWd0X2RlYnVnX21hbnVhbF9jaGVjaygiYWxsIiwgZXhwZWN0ZWQpOyB9Cj4+ ICsKPj4gK3N0YXRpYyBib29sIGlzX2RwX2RzY19zdXBwb3J0ZWQoZGF0YV90ICpkYXRhKSB7Cj4+ ICsJY2hhciBmaWxlX25hbWVbMTI4XSA9IHswfTsKPj4gKwljaGFyIGJ1Zls1MTJdOwo+PiArCj4+ ICsJc3RyY3B5KGZpbGVfbmFtZSwgZGF0YS0+Y29ubl9uYW1lKTsKPj4gKwlzdHJjYXQoZmlsZV9u YW1lLCAiL2k5MTVfZHNjX2ZlY19zdXBwb3J0Iik7Cj4+ICsJaWd0X3JlcXVpcmUoaWd0X2RlYnVn ZnNfc2ltcGxlX3JlYWQoZGF0YS0+ZGVidWdmc19mZCwgZmlsZV9uYW1lLCBidWYsCj4+ICsJCQkJ CSAgICBzaXplb2YoYnVmKSkgPiAwKTsKPj4gKwlpZ3RfZGVidWdmc19yZWFkKGRhdGEtPmRybV9m ZCwgZmlsZV9uYW1lLCBidWYpOwo+PiArCj4+ICsJcmV0dXJuIHN0cnN0cihidWYsICJEU0NfU2lu a19TdXBwb3J0OiB5ZXMiKTsgfQo+PiArCj4+ICtzdGF0aWMgYm9vbCBpc19kcF9mZWNfc3VwcG9y dGVkKGRhdGFfdCAqZGF0YSkgewo+PiArCWNoYXIgZmlsZV9uYW1lWzEyOF0gPSB7MH07Cj4+ICsJ Y2hhciBidWZbNTEyXTsKPj4gKwo+PiArCXN0cmNweShmaWxlX25hbWUsIGRhdGEtPmNvbm5fbmFt ZSk7Cj4+ICsJc3RyY2F0KGZpbGVfbmFtZSwgIi9pOTE1X2RzY19mZWNfc3VwcG9ydCIpOwo+PiAr CWlndF9kZWJ1Z2ZzX3JlYWQoZGF0YS0+ZHJtX2ZkLCBmaWxlX25hbWUsIGJ1Zik7Cj4+ICsKPj4g KwlyZXR1cm4gc3Ryc3RyKGJ1ZiwgIkZFQ19TaW5rX1N1cHBvcnQ6IHllcyIpOyB9Cj4+ICsKPj4g K3N0YXRpYyBib29sIGlzX2RwX2RzY19lbmFibGVkKGRhdGFfdCAqZGF0YSkgewo+PiArCWNoYXIg ZmlsZV9uYW1lWzEyOF0gPSB7MH07Cj4+ICsJY2hhciBidWZbNTEyXTsKPj4gKwo+PiArCXN0cmNw eShmaWxlX25hbWUsIGRhdGEtPmNvbm5fbmFtZSk7Cj4+ICsJc3RyY2F0KGZpbGVfbmFtZSwgIi9p OTE1X2RzY19mZWNfc3VwcG9ydCIpOwo+PiArCWlndF9kZWJ1Z2ZzX3JlYWQoZGF0YS0+ZHJtX2Zk LCBmaWxlX25hbWUsIGJ1Zik7Cj4+ICsKPj4gKwlyZXR1cm4gc3Ryc3RyKGJ1ZiwgIkRTQ19FbmFi bGVkOiB5ZXMiKTsgfQo+PiArCj4+ICtzdGF0aWMgdm9pZCBmb3JjZV9kcF9kc2NfZW5hYmxlKGRh dGFfdCAqZGF0YSkgewo+PiArCWNoYXIgZmlsZV9uYW1lWzEyOF0gPSB7MH07Cj4+ICsJaW50IHJl dDsKPj4gKwo+PiArCXN0cmNweShmaWxlX25hbWUsIGRhdGEtPmNvbm5fbmFtZSk7Cj4+ICsJc3Ry Y2F0KGZpbGVfbmFtZSwgIi9pOTE1X2RzY19mZWNfc3VwcG9ydCIpOwo+PiArCWlndF9kZWJ1ZyAo IkZvcmNpbmcgRFNDIGVuYWJsZSBvbiAlc1xuIiwgZGF0YS0+Y29ubl9uYW1lKTsKPj4gKwlyZXQg PSBpZ3Rfc3lzZnNfd3JpdGUoZGF0YS0+ZGVidWdmc19mZCwgZmlsZV9uYW1lLCAiMSIsIDEpOwo+ PiArCWlndF9hc3NlcnRfZihyZXQgPiAwLCAiZGVidWdmc193cml0ZSBmYWlsZWQiKTsgfQo+PiAr Cj4+ICtzdGF0aWMgdm9pZCBjbGVhcl9kcF9kc2NfZW5hYmxlKGRhdGFfdCAqZGF0YSkgewo+PiAr CWNoYXIgZmlsZV9uYW1lWzEyOF0gPSB7MH07Cj4+ICsJaW50IHJldDsKPj4gKwo+PiArCXN0cmNw eShmaWxlX25hbWUsIGRhdGEtPmNvbm5fbmFtZSk7Cj4+ICsJc3RyY2F0KGZpbGVfbmFtZSwgIi9p OTE1X2RzY19mZWNfc3VwcG9ydCIpOwo+PiArCWlndF9kZWJ1ZyAoIkNsZWFyaW5nIERTQyBlbmFi bGUgb24gJXNcbiIsIGRhdGEtPmNvbm5fbmFtZSk7Cj4+ICsJcmV0ID0gaWd0X3N5c2ZzX3dyaXRl KGRhdGEtPmRlYnVnZnNfZmQsIGZpbGVfbmFtZSwgIjAiLCAxKTsKPj4gKwlpZ3RfYXNzZXJ0X2Yo cmV0ID4gMCwgImRlYnVnZnNfd3JpdGUgZmFpbGVkIik7IH0KPj4gKwo+PiArc3RhdGljIHZvaWQg dGVzdF9jbGVhbnVwKGRhdGFfdCAqZGF0YSkgewo+PiArCWlndF9wbGFuZV90ICpwcmltYXJ5Owo+ PiArCj4+ICsJaWYgKGRhdGEtPm91dHB1dCkgewo+PiArCXByaW1hcnkgPSBpZ3Rfb3V0cHV0X2dl dF9wbGFuZV90eXBlKGRhdGEtPm91dHB1dCwKPj4gKwkJCQkJICAgIERSTV9QTEFORV9UWVBFX1BS SU1BUlkpOwo+PiArCWlndF9wbGFuZV9zZXRfZmIocHJpbWFyeSwgTlVMTCk7Cj4+ICsJaWd0X2Rp c3BsYXlfY29tbWl0KCZkYXRhLT5kaXNwbGF5KTsKPj4gKwo+PiArCWlndF9yZW1vdmVfZmIoZGF0 YS0+ZHJtX2ZkLCAmZGF0YS0+ZmJfdGVzdF9wYXR0ZXJuKTsKPj4gKwl9Cj4+ICt9Cj4KPgo+SW5k ZW50YXRpb24gb24gdGhlIGlmIGlzIHdyb25nLgoKT29wcy4uLndpbGwgZml4IGl0LgoKPgo+PiAr Cj4+ICsKPj4gKy8qCj4+ICsgKiBSZS1wcm9iZSBjb25uZWN0b3JzIGFuZCBkbyBhIG1vZGVzZXQg d2l0aCBEU0MKPj4gKyAqCj4+ICsgKi8KPj4gK3N0YXRpYyB2b2lkIHVwZGF0ZV9kaXNwbGF5KGRh dGFfdCAqZGF0YSwgZW51bSBkc2NfdGVzdF90eXBlCj4+ICt0ZXN0X3R5cGUpIHsKPj4gKwlpZ3Rf cGxhbmVfdCAqcHJpbWFyeTsKPj4gKwlkYXRhLT5tb2RlID0gaWd0X291dHB1dF9nZXRfbW9kZShk YXRhLT5vdXRwdXQpOwo+PiArCWRhdGEtPmNvbm5lY3RvciA9IGRhdGEtPm91dHB1dC0+Y29uZmln LmNvbm5lY3RvcjsKPj4gKwo+PiArCWlmIChkYXRhLT5jb25uZWN0b3ItPmNvbm5lY3Rvcl90eXBl ID09Cj5EUk1fTU9ERV9DT05ORUNUT1JfRGlzcGxheVBvcnQgJiYKPj4gKwkgICAgZGF0YS0+cGlw ZSA9PSBQSVBFX0EpIHsKPj4gKwkJaWd0X2RlYnVnICgiRFNDIG5vdCBzdXBwb3J0ZWQgb24gUGlw ZSBBIG9uIGV4dGVybmFsIERQXG4iKTsKPj4gKwkJcmV0dXJuOwo+PiArCX0KPj4gKwo+PiArCWlm ICh0ZXN0X3R5cGUgPT0gdGVzdF9iYXNpY19kc2NfZW5hYmxlKSB7Cj4+ICsJCWlndF9kZWJ1ZyAo IkRTQyBpcyBzdXBwb3J0ZWQgb24gJXNcbiIsCj4+ICsJCQkgICBkYXRhLT5jb25uX25hbWUpOwo+ PiArCQlmb3JjZV9kcF9kc2NfZW5hYmxlKGRhdGEpOwo+PiArCQkvKiBDbGVhciB0aGUgZmIgaW4g b3JkZXIgdG8gYXZvaWQgbGVha3MgKi8KPj4gKwkJaWd0X3JlbW92ZV9mYihkYXRhLT5kcm1fZmQs ICZkYXRhLT5mYl90ZXN0X3BhdHRlcm4pOwo+PiArCQlpZ3RfY3JlYXRlX3BhdHRlcm5fZmIoZGF0 YS0+ZHJtX2ZkLCBkYXRhLT5tb2RlLT5oZGlzcGxheSwKPj4gKwkJCQkgICAgICBkYXRhLT5tb2Rl LT52ZGlzcGxheSwKPj4gKwkJCQkgICAgICBEUk1fRk9STUFUX1hSR0I4ODg4LAo+PiArCQkJCSAg ICAgIExPQ0FMX0RSTV9GT1JNQVRfTU9EX05PTkUsCj4+ICsJCQkJICAgICAgJmRhdGEtPmZiX3Rl c3RfcGF0dGVybik7Cj4+ICsJCXByaW1hcnkgPSBpZ3Rfb3V0cHV0X2dldF9wbGFuZV90eXBlKGRh dGEtPm91dHB1dCwKPj4gKwo+RFJNX1BMQU5FX1RZUEVfUFJJTUFSWSk7Cj4+ICsJCWlndF9wbGFu ZV9zZXRfZmIocHJpbWFyeSwgJmRhdGEtPmZiX3Rlc3RfcGF0dGVybik7Cj4+ICsJCWlndF9kaXNw bGF5X2NvbW1pdCgmZGF0YS0+ZGlzcGxheSk7Cj4+ICsJCS8qIFVudGlsIHdlIGhhdmUgQ1JDIGNo ZWNrIHN1cHBvcnQsIG1hbnVhbGx5IGNoZWNrIGlmIFJHQiB0ZXN0Cj5wYXR0ZXJuIGhhcyBubyBj b3JydXB0aW9uICovCj4+ICsJCW1hbnVhbCAoIlJHQiB0ZXN0IHBhdHRlcm4gd2l0aG91dCBjb3Jy dXB0aW9uIik7Cj4+ICsJCWlndF9hc3NlcnRfZihpc19kcF9kc2NfZW5hYmxlZChkYXRhKSwKPj4g KwkJCSAgICAgIkRlZmF1bHQgRFNDIGVuYWJsZSBmYWlsZWQgb24gQ29ubmVjdG9yOiAlcyBQaXBl Ogo+JXMiLAo+PiArCQkJICAgICBkYXRhLT5jb25uX25hbWUsCj4+ICsJCQkgICAgIGttc3Rlc3Rf cGlwZV9uYW1lKGRhdGEtPnBpcGUpKTsKPj4gKwkJY2xlYXJfZHBfZHNjX2VuYWJsZShkYXRhKTsK Pj4gKwl9IGVsc2Ugewo+PiArCQlpZ3RfYXNzZXJ0KCEiVW5rbm93biB0ZXN0IHR5cGVcbiIpOwo+ PiArCX0KPj4gK30KPj4gKwo+PiArc3RhdGljIHZvaWQgcnVuX3Rlc3QoZGF0YV90ICpkYXRhLCBp Z3Rfb3V0cHV0X3QgKm91dHB1dCwKPj4gKwkJICAgICBlbnVtIGRzY190ZXN0X3R5cGUgdGVzdF90 eXBlKQo+PiArewo+PiArCWVudW0gcGlwZSBwaXBlOwo+PiArCj4+ICsJZm9yX2VhY2hfcGlwZV9z dGF0aWMocGlwZSkgewo+Cj4KPlRoaXMgZG9lc24ndCBuZWVkIHRvIGJlIHRoZSBfc3RhdGljIGxv b3AsIGZvcl9lYWNoX3BpcGUoZGF0YS0+ZGlzcGxheSwgcGlwZSkgY2FuCj5iZSB1c2VkLgoKSG1t bS4uLmxvb2tpbmcgYXQgYm90aCBhZ2FpbiwgaXQgc2F5cyBmb3JfZWFjaF9waXBlX3N0YXRpYygp IGlzIHRvIGJlIHVzZWQgdG8gZW51bWVyYXRlIHBlci1waXBlIHN1YnRlc3RzIGFuZCBmb3JfCmVh Y2hfcGlwZSgpIGNhbm5vdCBiZSB1c2VkIHRvIGVudW1lcmF0ZSBwZXItcGlwZSBzdWJ0ZXN0cy4g U28sIGlmIHdlIHdhbnQgdG8gYWRkIG1vcmUgc3VidGVzdHMgd29udCBoYXZpbmcgX3N0YXRpYyBi ZSB1c2VmdWw/Cgo+Cj4+ICsJCWlmIChpZ3RfcGlwZV9jb25uZWN0b3JfdmFsaWQocGlwZSwgb3V0 cHV0KSkgewo+PiArCQkJaWd0X291dHB1dF9zZXRfcGlwZShvdXRwdXQsIHBpcGUpOwo+PiArCQkJ ZGF0YS0+cGlwZSA9IHBpcGU7Cj4+ICsJCQlkYXRhLT5vdXRwdXQgPSBvdXRwdXQ7Cj4+ICsJCQl1 cGRhdGVfZGlzcGxheShkYXRhLCB0ZXN0X3R5cGUpOwo+PiArCQl9Cj4+ICsJfQo+PiArfQo+PiAr Cj4+ICtpZ3RfbWFpbgo+PiArewo+PiArCWRhdGFfdCBkYXRhID0ge307Cj4+ICsJaWd0X291dHB1 dF90ICpvdXRwdXQ7Cj4+ICsJZHJtTW9kZVJlcyAqcmVzOwo+PiArCWRybU1vZGVDb25uZWN0b3Ig KmNvbm5lY3RvcjsKPj4gKwlpbnQgaSwgdGVzdF9jb25uX2NudCwgdGVzdF9jbnQ7Cj4+ICsJaW50 IHRlc3RzW10gPSB7RFJNX01PREVfQ09OTkVDVE9SX2VEUCwKPj4gK0RSTV9NT0RFX0NPTk5FQ1RP Ul9EaXNwbGF5UG9ydH07Cj4+ICsKPj4gKwlpZ3RfZml4dHVyZSB7Cj4+ICsJCWRhdGEuZHJtX2Zk ID0gZHJtX29wZW5fZHJpdmVyX21hc3RlcihEUklWRVJfQU5ZKTsKPj4gKwkJZGF0YS5kZWJ1Z2Zz X2ZkID0gaWd0X2RlYnVnZnNfZGlyKGRhdGEuZHJtX2ZkKTsKPj4gKwkJa21zdGVzdF9zZXRfdnRf Z3JhcGhpY3NfbW9kZSgpOwo+PiArCQlpZ3RfZGlzcGxheV9yZXF1aXJlKCZkYXRhLmRpc3BsYXks IGRhdGEuZHJtX2ZkKTsKPj4gKwkJLy9pZ3RfZGlzcGxheV9yZXF1aXJlX291dHB1dCgmZGF0YS5k aXNwbGF5KTsKPj4gKwkJaWd0X3JlcXVpcmUocmVzID0gZHJtTW9kZUdldFJlc291cmNlcyhkYXRh LmRybV9mZCkpOwo+PiArCX0KPj4gKwo+PiArCWZvciAodGVzdF9jbnQgPSAwOyB0ZXN0X2NudCA8 IEFSUkFZX1NJWkUodGVzdHMpOyB0ZXN0X2NudCsrKSB7Cj4+ICsKPj4gKwkJaWd0X3N1YnRlc3Rf ZigiYmFzaWMtZHNjLWVuYWJsZS0lcyIsCj4+ICsJCQkgICAgICBrbXN0ZXN0X2Nvbm5lY3Rvcl90 eXBlX3N0cih0ZXN0c1t0ZXN0X2NudF0pKSB7Cj4+ICsJCQl0ZXN0X2Nvbm5fY250ID0gMDsKPj4g KwkJCWZvciAoaSA9IDA7IGkgPCByZXMtPmNvdW50X2Nvbm5lY3RvcnM7IGkrKykgewo+PiArCQkJ CWNvbm5lY3RvciA9Cj5kcm1Nb2RlR2V0Q29ubmVjdG9yQ3VycmVudChkYXRhLmRybV9mZCwKPj4g KwkJCQkJCQkJICAgICAgIHJlcy0KPj5jb25uZWN0b3JzW2ldKTsKPj4gKwkJCQlpZiAoY29ubmVj dG9yLT5jb25uZWN0aW9uICE9Cj5EUk1fTU9ERV9DT05ORUNURUQgfHwKPj4gKwkJCQkgICAgY29u bmVjdG9yLT5jb25uZWN0b3JfdHlwZSAhPQo+PiArCQkJCSAgICB0ZXN0c1t0ZXN0X2NudF0pCj4+ ICsJCQkJCWNvbnRpbnVlOwo+PiArCQkJCXRlc3RfY29ubl9jbnQrKzsKPj4gKwkJCQlvdXRwdXQg PQo+aWd0X291dHB1dF9mcm9tX2Nvbm5lY3RvcigmZGF0YS5kaXNwbGF5LCBjb25uZWN0b3IpOwo+ PiArCQkJCXNwcmludGYoZGF0YS5jb25uX25hbWUsICIlcy0lZCIsCj4+ICsJCQkJCWttc3Rlc3Rf Y29ubmVjdG9yX3R5cGVfc3RyKGNvbm5lY3Rvci0KPj5jb25uZWN0b3JfdHlwZSksCj4+ICsJCQkJ CXRlc3RfY29ubl9jbnQpOwo+PiArCQkJCWlndF9yZXF1aXJlX2YoaXNfZHBfZHNjX3N1cHBvcnRl ZCgmZGF0YSksCj4+ICsJCQkJCSAgICAgICJEU0Mgbm90IHN1cHBvcnRlZCBvbiBjb25uZWN0b3Ig JXMKPlxuIiwKPj4gKwkJCQkJICAgICAgZGF0YS5jb25uX25hbWUpOwo+Cj5UaGlzIHdpbGwgbWFr ZSB0aGUgc3VidGVzdCBza2lwIHdoZW4gY2hlY2tpbmcgRFAtMSwgd2l0aG91dCB0cnlpbmcKPkRQ LTIgYXQgYWxsLiBJcyB0aGF0IGludGVuZGVkPwo+Ck5vLiBpdCBoYXMgdG8gdGVzdCBmb3IgRFAt MiBhcyB3ZWxsLi4KQnV0IGV2ZW4gaWYgdGhlIGlndF9yZXF1aXJlKCkgaGVyZSBmYWlscywgdGhl IGxvb3Agd2lsbCBtb3ZlIG9uIHRvIHRoZSBuZXh0IGNvbm5lY3RvciByaWdodD8KCkFudXNoYSAK CgpBbnVzaGEgCj4KPi0tCj5QZXRyaSBMYXR2YWxhCj4KPgo+Cj4+ICsJCQkJaWYgKGNvbm5lY3Rv ci0+Y29ubmVjdG9yX3R5cGUgPT0KPkRSTV9NT0RFX0NPTk5FQ1RPUl9EaXNwbGF5UG9ydCkKPj4g Kwo+CWlndF9yZXF1aXJlX2YoaXNfZHBfZmVjX3N1cHBvcnRlZCgmZGF0YSksCj4+ICsJCQkJCQkg ICAgICAiRFNDIGNhbm5vdCBiZSBlbmFibGVkCj53aXRob3V0IEZFQyBvbiAlc1xuIiwKPj4gKwkJ CQkJCSAgICAgIGRhdGEuY29ubl9uYW1lKTsKPj4gKwkJCQlydW5fdGVzdCgmZGF0YSwgb3V0cHV0 LCB0ZXN0X2Jhc2ljX2RzY19lbmFibGUpOwo+PiArCQkJfQo+PiArCQkJdGVzdF9jbGVhbnVwKCZk YXRhKTsKPj4gKwkJCWlndF9za2lwX29uKHRlc3RfY29ubl9jbnQgPT0gMCk7Cj4+ICsJCX0KPj4g Kwl9Cj4+ICsKPj4gKwlpZ3RfZml4dHVyZSB7Cj4+ICsJCWRybU1vZGVGcmVlQ29ubmVjdG9yKGNv bm5lY3Rvcik7Cj4+ICsJCWRybU1vZGVGcmVlUmVzb3VyY2VzKHJlcyk7Cj4+ICsJCWNsb3NlKGRh dGEuZGVidWdmc19mZCk7Cj4+ICsJCWNsb3NlKGRhdGEuZHJtX2ZkKTsKPj4gKwkJaWd0X2Rpc3Bs YXlfZmluaSgmZGF0YS5kaXNwbGF5KTsKPj4gKwl9Cj4+ICsJaWd0X2V4aXQoKTsKPj4gK30KPj4g ZGlmZiAtLWdpdCBhL3Rlc3RzL21lc29uLmJ1aWxkIGIvdGVzdHMvbWVzb24uYnVpbGQKPj4gaW5k ZXggYjhhNmU2MWIuLmUxNGFiMmI0IDEwMDY0NAo+PiAtLS0gYS90ZXN0cy9tZXNvbi5idWlsZAo+ PiArKysgYi90ZXN0cy9tZXNvbi5idWlsZAo+PiBAQCAtMjUsNiArMjUsNyBAQCB0ZXN0X3Byb2dz ID0gWwo+PiAgCSdrbXNfY3J0Y19iYWNrZ3JvdW5kX2NvbG9yJywKPj4gIAkna21zX2N1cnNvcl9j cmMnLAo+PiAgCSdrbXNfY3Vyc29yX2xlZ2FjeScsCj4+ICsJJ2ttc19kcF9kc2MnLAo+PiAgCSdr bXNfZHJhd19jcmMnLAo+PiAgCSdrbXNfZmJjb25fZmJ0JywKPj4gIAkna21zX2ZlbmNlX3Bpbl9s ZWFrJywKPj4gLS0KPj4gMi4xNy4wCj4+Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCmlndC1kZXYgbWFpbGluZyBsaXN0CmlndC1kZXZAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v aWd0LWRldgo=