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 714C16E0AC for ; Tue, 15 Jun 2021 05:57:01 +0000 (UTC) From: "Modem, Bhanuprakash" Date: Tue, 15 Jun 2021 05:56:54 +0000 Message-ID: References: <20210603122027.27330-1-venkata.sai.patnana@intel.com> <20210603122027.27330-15-venkata.sai.patnana@intel.com> In-Reply-To: Content-Language: en-US MIME-Version: 1.0 Subject: Re: [igt-dev] [PATCH i-g-t 15/24] tests/kms_dither: New IGT to validate crtc Dithering 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: "Shankar, Uma" , "Patnana, Venkata Sai" , "igt-dev@lists.freedesktop.org" , "Varide, Nischal" List-ID: PiBGcm9tOiBTaGFua2FyLCBVbWEgPHVtYS5zaGFua2FyQGludGVsLmNvbT4NCj4gU2VudDogVHVl c2RheSwgSnVuZSAxNSwgMjAyMSAxMToxNiBBTQ0KPiBUbzogUGF0bmFuYSwgVmVua2F0YSBTYWkg PHZlbmthdGEuc2FpLnBhdG5hbmFAaW50ZWwuY29tPjsgaWd0LQ0KPiBkZXZAbGlzdHMuZnJlZWRl c2t0b3Aub3JnOyBNb2RlbSwgQmhhbnVwcmFrYXNoIDxiaGFudXByYWthc2gubW9kZW1AaW50ZWwu Y29tPjsNCj4gVmFyaWRlLCBOaXNjaGFsIDxuaXNjaGFsLnZhcmlkZUBpbnRlbC5jb20+DQo+IFN1 YmplY3Q6IFJFOiBbaWd0LWRldl0gW1BBVENIIGktZy10IDE1LzI0XSB0ZXN0cy9rbXNfZGl0aGVy OiBOZXcgSUdUIHRvDQo+IHZhbGlkYXRlIGNydGMgRGl0aGVyaW5nDQo+IA0KPiANCj4gDQo+ID4g LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiBGcm9tOiBpZ3QtZGV2IDxpZ3QtZGV2LWJv dW5jZXNAbGlzdHMuZnJlZWRlc2t0b3Aub3JnPiBPbiBCZWhhbGYgT2YNCj4gPiB2ZW5rYXRhLnNh aS5wYXRuYW5hQGludGVsLmNvbQ0KPiA+IFNlbnQ6IFRodXJzZGF5LCBKdW5lIDMsIDIwMjEgNTo1 MCBQTQ0KPiA+IFRvOiBpZ3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZw0KPiA+IFN1YmplY3Q6 IFtpZ3QtZGV2XSBbUEFUQ0ggaS1nLXQgMTUvMjRdIHRlc3RzL2ttc19kaXRoZXI6IE5ldyBJR1Qg dG8gdmFsaWRhdGUNCj4gY3J0Yw0KPiA+IERpdGhlcmluZw0KPiA+DQo+ID4gRnJvbTogQmhhbnVw cmFrYXNoIE1vZGVtIDxiaGFudXByYWthc2gubW9kZW1AaW50ZWwuY29tPg0KPiA+DQo+ID4gTWFu eSBvZiB0aGUgZGlzcGxheSBkZXZpY2VzIGhhdmUgY29sb3IgZm9ybWF0IHN1cHBvcnQgbGVzcyB0 aGFuIHRoZSBjb2xvcg0KPiBmb3JtYXQgb2YNCj4gPiB0aGUgaW5wdXQgZGF0YSAoRXg6IDgtYml0 IGlucHV0IGRhdGEgYW5kIDYtYml0IGRpc3BsYXkgY29sb3IgZGVwdGgpLiBUaGVuDQo+IHRoZSBp bnB1dCBkYXRhDQo+ID4gd2lsbCBiZSBlaXRoZXIgdHJ1bmNhdGVkIG9yIHJvdW5kZWQsIGJ1dCB0 aGlzIGFwcHJvYWNoIHVzdWFsbHkgY2F1c2VzIGxvc3MNCj4gb2YgZGV0YWlsDQo+ID4gYW5kIGFs c28gcHJvZHVjZSBsYXJnZSBiYW5kZWQgYXJlYXMgb2YgYSBzaW5nbGUgY29sb3IgdGhhdCBzaWdu aWZpY2FudGx5DQo+IGRpZmZlcnMgZnJvbQ0KPiA+IHRoZSBvcmlnaW5hbCBpbWFnZS4NCj4gPg0K PiA+IERpdGhlcmluZyBpcyBhIHRlY2huaXF1ZSB1c2VkIHRvIGVuaGFuY2UgdGhlc2UgY29sb3Jz IGJ5IGNyZWF0aW5nIHRoZQ0KPiBpbGx1c2lvbiBvZg0KPiA+IHNtb290aG5lc3MgYnkgYWRqdXN0 aW5nIHRoZSBuZWFyYnkgcGl4ZWwgY29sb3IuDQo+ID4gRm9yIEVnOiBDb252ZXJ0aW5nIDgtYml0 IHRvIDYtYml0IGJ5IG1vZGlmeWluZyB0aGUgcGl4ZWwgaW5mb3JtYXRpb24uDQo+ID4NCj4gPiBE aXRoZXJpbmcgc2hvdWxkIGJlIGVuYWJsZWQgd2hlbiBhIHBhbmVsIGNvbG9yIGRlcHRoIGlzIGxv d2VyIHRoYW4gdGhlIGNvbG9yDQo+IGRlcHRoDQo+ID4gb2YgdGhlIGZyYW1lYnVmZmVyLg0KPiA+ DQo+ID4gRXZlbiB0aG91Z2ggZmVhdHVyZSBEaXRoZXJpbmcgaXMgdGhlcmUgc2luY2UgbGVnYWN5 LCB0aGVyZSBpcyBubyBzcGVjaWZpYw0KPiBJR1QgZm9yIHRoaXMuDQo+ID4gVGhpcyBwYXRjaCB3 aWxsIGNyZWF0ZSBOZXcgSUdUIGZvciBEaXRoZXJpbmcuDQo+ID4gQW5kIGJlbG93IGlzIHRoZSB0 cnV0aCB0YWJsZSBmb3IgQ1JUQyBEaXRoZXJpbmcuDQo+ID4NCj4gPiB8LS0tLS0tLS0tLS0tLS0t LXwtLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwNCj4gPiB8ICBGcmFtZSBidWZmZXIgIHwgIFBhbmVs ICB8ICBEaXRoZXJpbmcgIHwNCj4gPiB8LS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS18LS0tLS0t LS0tLS0tLXwNCj4gPiB8ICAgICAgOCBCUEMgICAgIHwgIDYgQlBDICB8ICAgICBZZXMgICAgIHwN Cj4gPiB8LS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwNCj4gPiB8ICAg ICAgOCBCUEMgICAgIHwgIDggQlBDICB8ICAgICBObyAgICAgIHwNCj4gPiB8LS0tLS0tLS0tLS0t LS0tLXwtLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwNCj4gPiB8ICAgICAgOCBCUEMgICAgIHwgMTAg QlBDICB8ICAgICBObyAgICAgIHwNCj4gPiB8LS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS18LS0t LS0tLS0tLS0tLXwNCj4gPiB8ICAgICAxMCBCUEMgICAgIHwgIDYgQlBDICB8ICAgICBZZXMgICAg IHwNCj4gPiB8LS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwNCj4gPiB8 ICAgICAxMCBCUEMgICAgIHwgIDggQlBDICB8ICAgICBZZXMgICAgIHwNCj4gPiB8LS0tLS0tLS0t LS0tLS0tLXwtLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwNCj4gPiB8ICAgICAxMCBCUEMgICAgIHwg MTAgQlBDICB8ICAgICBObyAgICAgIHwNCj4gPiB8LS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS18 LS0tLS0tLS0tLS0tLXwNCj4gPiB8ICAgICAxNiBCUEMgICAgIHwgIDYgQlBDICB8ICAgICBZZXMg ICAgIHwNCj4gPiB8LS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwNCj4g PiB8ICAgICAxNiBCUEMgICAgIHwgIDggQlBDICB8ICAgICBZZXMgICAgIHwNCj4gPiB8LS0tLS0t LS0tLS0tLS0tLXwtLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwNCj4gPiB8ICAgICAxNiBCUEMgICAg IHwgMTAgQlBDICB8ICAgICBZZXMgICAgIHwNCj4gPiB8LS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0t LS18LS0tLS0tLS0tLS0tLXwNCj4gDQo+IFRoaXMgdGVzdCBkZXBlbmRzIG9uIHRoZSBjb3JyZXNw b25kaW5nIGtlcm5lbCBkcml2ZXIgY2hhbmdlcy4NCj4gaHR0cHM6Ly9wYXRjaHdvcmsuZnJlZWRl c2t0b3Aub3JnL3Nlcmllcy85MTM4My8gOiBEaXRoZXJpbmcgc3VwcG9ydA0KPiBodHRwczovL3Bh dGNod29yay5mcmVlZGVza3RvcC5vcmcvc2VyaWVzLzc5NjY0LzogRGVidWdmcyBjaGFuZ2VzDQo+ IFRoZSBhYm92ZSBhcmUgaW4gcmV2aWV3Lg0KPiANCj4gSSB3b3VsZCBzdWdnZXN0IHdlIGNvbnNv bGlkYXRlIGJvdGggaW4gMSBjb21tb24gc2VyaWVzLg0KDQpBcyB3ZSBkb2Vzbid0IGhhdmUgYSB0 ZXN0IGNvdmVyYWdlIGZvciBEaXRoZXJpbmcsIGl0IHdhcyBpbnRlbnRpb25hbCB0bw0KaGF2ZSAy IHBhdGNoZXM6DQogDQoqIG9uZSBmb3IgbGVnYWN5IChkaXRoZXIgYXQgZW5kIG9mIHRoZSBwaXBl KQ0KKiBvdGhlciB0byBleHRlbmQgaXQgZm9yIGRpdGhlciBhdCBlbmQgb2YgQ0MgYmxvY2suDQoN Ci0gQmhhbnUNCg0KPiANCj4gQWxzbyB0aGUgZGl0aGVyIElHVCB0ZXN0cyBkZXBlbmRzIG9uIGEg ZGVidWdmcyBpbiBkcml2ZXIuIEl0IGFsc28gbmVlZHMgdG8gYmUNCj4gbWVyZ2VkIGFuZCBhdmFp bGFibGUgaW4gZHJpdmVyLCBiZWZvcmUgdGhpcyB0ZXN0IGNhbiBnbyBpbi4NCj4gDQo+IFJlZ2Fy ZHMsDQo+IFVtYSBTaGFua2FyDQo+IA0KPiA+IHYyOg0KPiA+ICogRml4IGNvbW1pdCBtZXNzYWdl IChLYXJ0aGlrKQ0KPiA+ICogQWRkIGZpbGUgYXV0aG9yIChLYXJ0aGlrKQ0KPiA+ICogRHluYW1p YyBzdWJ0ZXN0cyBmb3IgcGlwZS1vdXRwdXQgY29tYmluYXRpb25zIChLYXJ0aGlrKQ0KPiA+ICog VXBkYXRlIGRlcHJlY2F0ZWQgcGlwZSBuYW1lIChLYXJ0aGlrKQ0KPiA+ICogUmVtb3ZlIHJlZHVu ZGFudCBmYiBjcmVhdGlvbiBsb2dpYyAoS2FydGhpaykNCj4gPg0KPiA+IHYzOg0KPiA+ICogVXNl IGZvcl9lYWNoX3BpcGVfd2l0aF92YWxpZF9vdXRwdXQoKSB0byBzaW1wbGlmeSB0aGUgbG9naWMg KEJoYW51KQ0KPiA+ICogUmVtb3ZlIG1hZ2ljIG51bWJlcnMgdG8gY3JlYXRlIGZiIChLYXJ0aGlr KQ0KPiA+ICogRml4IHR5cG9zICYgY29tbWVudHMgKFN3YXRpKQ0KPiA+DQo+ID4gdjQ6DQo+ID4g KiBSZW1vdmUgZXhwbGljaXQgaWd0X3JlcXVpcmUgZm9yIGEgdmFsaWQgb3V0cHV0IGZvdW5kLA0K PiA+ICAgaWd0X3N1YnRlc3Rfd2l0aF9keW5hbWljIHdpbGwgaGFuZGxlIHRoZSBTS0lQIChQZXRy aSkNCj4gPiAqIExpbWl0IHRoZSBleGVjdXRpb24gdG8gYSBzaW5nbGUgcGlwZSAoVW1hKQ0KPiA+ DQo+ID4gdjU6DQo+ID4gKiBTS0lQIHN1YnRlc3QgZm9yIEhETUkgd2l0aCA2IEJQQyAoQmhhbnUp DQo+ID4gKiBGaXggdGhlIHVzYWdlIG9mIHZhbGlkIGZvcm1hdCB0byBjcmVhdGUgOCBCUEMgRnJh bWVidWZmZXIgKEJoYW51KQ0KPiA+ICogQWRkIHN1cHBvcnQgZm9yIHN1c3BlbmQvcmVzdW1lIHRl c3RzIChCaGFudSkNCj4gPiAqIEFkZCBmZXcgZGVidWcgcHJpbnRzIChCaGFudSkNCj4gPg0KPiA+ IHY2Og0KPiA+ICogTGltaXQgdGhlIGV4ZWN1dGlvbiB0byA4IEJQQyBwYW5lbHMgKFVtYSkNCj4g PiAqIFJlbW92ZSBzdXNwZW5kL3Jlc3VtZSB0ZXN0cyAoQmhhbnUpDQo+ID4NCj4gPiB2NzoNCj4g PiAqIERyb3AgbWF4X2JwYyBmcm9tIGRlYnVnZnMgKFVtYSkNCj4gPg0KPiA+IHY4Og0KPiA+ICog UnVuIHRlc3Qgb24gYWxsIGNvbm5lY3RlZCBvdXRwdXRzIChCaGFudSkNCj4gPiAqIEJlZm9yZSBl eGl0aW5nIHRoZSB0ZXN0IHJlc2V0IHRoZSAibWF4IGJwYyIgcHJvcCAoQmhhbnUpDQo+ID4gKiBC ZWZvcmUgY29tcHV0aW5nIHRoZSByZXN1bHQgY2hlY2sgdGhhdCB0aGUgY3J0YyBicGMgaXMgdXBk YXRlZA0KPiA+ICAgd2l0aCB0aGUgcmVxdWVzdGVkIG9uZSAoQmhhbnUpDQo+ID4NCj4gPiBDYzog U3dhdGkgU2hhcm1hIDxzd2F0aTIuc2hhcm1hQGludGVsLmNvbT4NCj4gPiBDYzogS2FydGhpayBC IFMgPGthcnRoaWsuYi5zQGludGVsLmNvbT4NCj4gPiBDYzogVW1hIFNoYW5rYXIgPHVtYS5zaGFu a2FyQGludGVsLmNvbT4NCj4gPiBDYzogTmlzY2hhbCBWYXJpZGUgPG5pc2NoYWwudmFyaWRlQGlu dGVsLmNvbT4NCj4gPiBDYzogUGV0cmkgTGF0dmFsYSA8cGV0cmkubGF0dmFsYUBpbnRlbC5jb20+ DQo+ID4gU2lnbmVkLW9mZi1ieTogQmhhbnVwcmFrYXNoIE1vZGVtIDxiaGFudXByYWthc2gubW9k ZW1AaW50ZWwuY29tPiAoY2hlcnJ5DQo+ID4gcGlja2VkIGZyb20gY29tbWl0IDI0ZDU4ZmVmNTA3 MGVjNzU1N2Q4YmY3NzhiMTJiZWNiOTNkZDMzMTUpDQo+ID4gLS0tDQo+ID4gIHRlc3RzL2ttc19k aXRoZXIuYyB8IDI1MCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysNCj4gPiAgdGVzdHMvbWVzb24uYnVpbGQgIHwgICAxICsNCj4gPiAgMiBmaWxlcyBjaGFuZ2Vk LCAyNTEgaW5zZXJ0aW9ucygrKQ0KPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdHMva21zX2Rp dGhlci5jDQo+ID4NCj4gPiBkaWZmIC0tZ2l0IGEvdGVzdHMva21zX2RpdGhlci5jIGIvdGVzdHMv a21zX2RpdGhlci5jIG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4DQo+ID4gMDAwMDAwMDAw MC4uYzI1ZDYyM2Y4MQ0KPiA+IC0tLSAvZGV2L251bGwNCj4gPiArKysgYi90ZXN0cy9rbXNfZGl0 aGVyLmMNCj4gPiBAQCAtMCwwICsxLDI1MCBAQA0KPiA+ICsvKg0KPiA+ICsgKiBDb3B5cmlnaHQg wqkgMjAyMCBJbnRlbCBDb3Jwb3JhdGlvbg0KPiA+ICsgKg0KPiA+ICsgKiBQZXJtaXNzaW9uIGlz IGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbg0KPiA+ICtvYnRh aW5pbmcgYQ0KPiA+ICsgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9j dW1lbnRhdGlvbiBmaWxlcyAodGhlDQo+ID4gKyJTb2Z0d2FyZSIpLA0KPiA+ICsgKiB0byBkZWFs IGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dA0K PiA+ICtsaW1pdGF0aW9uDQo+ID4gKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnks IG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLA0KPiA+ICtzdWJsaWNlbnNlLA0KPiA+ICsgKiBh bmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMg dG8gd2hvbQ0KPiA+ICt0aGUNCj4gPiArICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNv LCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoNCj4gPiArICoNCj4gPiArICog VGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGlu Y2x1ZGluZyB0aGUNCj4gPiArbmV4dA0KPiA+ICsgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1 ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMNCj4gPiArb2YgdGhlDQo+ ID4gKyAqIFNvZnR3YXJlLg0KPiA+ICsgKg0KPiA+ICsgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklE RUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwNCj4gPiArRVhQUkVTUyBP Ug0KPiA+ICsgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJS QU5USUVTIE9GDQo+ID4gK01FUkNIQU5UQUJJTElUWSwNCj4gPiArICogRklUTkVTUyBGT1IgQSBQ QVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UDQo+ID4g K1NIQUxMDQo+ID4gKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSKFMpIE9SIEFVVEhPUihTKSBCRSBM SUFCTEUgRk9SIEFOWSBDTEFJTSwNCj4gPiArREFNQUdFUyBPUg0KPiA+ICsgKiBPVEhFUiBMSUFC SUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SDQo+ID4gK09U SEVSV0lTRSwNCj4gPiArICogQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBX SVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFDQo+ID4gK09SDQo+ID4gKyAqIE9USEVSIERFQUxJ TkdTIElOIFRIRSBTT0ZUV0FSRS4NCj4gPiArICoNCj4gPiArICogQXV0aG9yczoNCj4gPiArICog ICAgIEJoYW51cHJha2FzaCBNb2RlbSA8YmhhbnVwcmFrYXNoLm1vZGVtQGludGVsLmNvbT4NCj4g PiArICoNCj4gPiArICovDQo+ID4gKw0KPiA+ICsjaW5jbHVkZSAiaWd0LmgiDQo+ID4gKyNpbmNs dWRlIDxmY250bC5oPg0KPiA+ICsjaW5jbHVkZSA8dGVybWlvcy5oPg0KPiA+ICsjaW5jbHVkZSA8 dW5pc3RkLmg+DQo+ID4gKw0KPiA+ICtJR1RfVEVTVF9ERVNDUklQVElPTigiVGVzdCBEaXRoZXJp bmcgYmxvY2sgc3RhdHVzIik7DQo+ID4gKw0KPiA+ICsvKiBDb25uZWN0b3IgQlBDICovDQo+ID4g KyNkZWZpbmUgSUdUX0NPTk5FQ1RPUl9CUENfNjYNCj4gPiArI2RlZmluZSBJR1RfQ09OTkVDVE9S X0JQQ184OA0KPiA+ICsjZGVmaW5lIElHVF9DT05ORUNUT1JfQlBDXzEwMTANCj4gPiArI2RlZmlu ZSBJR1RfQ09OTkVDVE9SX0JQQ18xMjEyDQo+ID4gKw0KPiA+ICsvKiBGcmFtZWJ1ZmZlciBCUEMg Ki8NCj4gPiArI2RlZmluZSBJR1RfRlJBTUVfQlVGRkVSX0JQQ184OA0KPiA+ICsjZGVmaW5lIElH VF9GUkFNRV9CVUZGRVJfQlBDXzEwMTANCj4gPiArI2RlZmluZSBJR1RfRlJBTUVfQlVGRkVSX0JQ Q18xNjE2DQo+ID4gKw0KPiA+ICsvKiBDb21tb24gdGVzdCBkYXRhLiAqLw0KPiA+ICt0eXBlZGVm IHN0cnVjdCBkYXRhIHsNCj4gPiAraWd0X2Rpc3BsYXlfdCBkaXNwbGF5Ow0KPiA+ICtpZ3RfcGxh bmVfdCAqcHJpbWFyeTsNCj4gPiAraWd0X291dHB1dF90ICpvdXRwdXQ7DQo+ID4gK2lndF9waXBl X3QgKnBpcGU7DQo+ID4gK2RybU1vZGVNb2RlSW5mbyAqbW9kZTsNCj4gPiArZW51bSBwaXBlIHBp cGVfaWQ7DQo+ID4gK2ludCBkcm1fZmQ7DQo+ID4gK2lndF9mYl90IGZiOw0KPiA+ICt9IGRhdGFf dDsNCj4gPiArDQo+ID4gK3R5cGVkZWYgc3RydWN0IHsNCj4gPiArdW5zaWduZWQgaW50IGJwYzsN Cj4gPiArdW5zaWduZWQgaW50IGRpdGhlcjsNCj4gPiArfSBkaXRoZXJfc3RhdHVzX3Q7DQo+ID4g Kw0KPiA+ICsvKiBQcmVwYXJlIHRlc3QgZGF0YS4gKi8NCj4gPiArc3RhdGljIHZvaWQgcHJlcGFy ZV90ZXN0KGRhdGFfdCAqZGF0YSwgaWd0X291dHB1dF90ICpvdXRwdXQsIGVudW0gcGlwZQ0KPiA+ ICtwaXBlKSB7DQo+ID4gK2lndF9kaXNwbGF5X3QgKmRpc3BsYXkgPSAmZGF0YS0+ZGlzcGxheTsN Cj4gPiArDQo+ID4gK2RhdGEtPnBpcGVfaWQgPSBwaXBlOw0KPiA+ICtkYXRhLT5waXBlID0gJmRh dGEtPmRpc3BsYXkucGlwZXNbZGF0YS0+cGlwZV9pZF07DQo+ID4gK2lndF9hc3NlcnQoZGF0YS0+ cGlwZSk7DQo+ID4gKw0KPiA+ICtpZ3RfZGlzcGxheV9yZXNldChkaXNwbGF5KTsNCj4gPiArDQo+ ID4gK2RhdGEtPm91dHB1dCA9IG91dHB1dDsNCj4gPiAraWd0X2Fzc2VydChkYXRhLT5vdXRwdXQp Ow0KPiA+ICsNCj4gPiArZGF0YS0+bW9kZSA9IGlndF9vdXRwdXRfZ2V0X21vZGUoZGF0YS0+b3V0 cHV0KTsNCj4gPiAraWd0X2Fzc2VydChkYXRhLT5tb2RlKTsNCj4gPiArDQo+ID4gK2RhdGEtPnBy aW1hcnkgPQ0KPiA+ICtpZ3RfcGlwZV9nZXRfcGxhbmVfdHlwZShkYXRhLT5waXBlLA0KPiA+IERS TV9QTEFORV9UWVBFX1BSSU1BUlkpOw0KPiA+ICsNCj4gPiAraWd0X291dHB1dF9zZXRfcGlwZShk YXRhLT5vdXRwdXQsIGRhdGEtPnBpcGVfaWQpOyB9DQo+ID4gKw0KPiA+ICsvKiBSZXR1cm5zIHRo ZSBjdXJyZW50IHN0YXRlIG9mIGRpdGhlcmluZyBmcm9tIHRoZSBjcnRjIGRlYnVnZnMuICovDQo+ ID4gK3N0YXRpYyBkaXRoZXJfc3RhdHVzX3QgZ2V0X2RpdGhlcl9zdGF0ZShkYXRhX3QgKmRhdGEp IHsNCj4gPiArY2hhciBidWZbMjU2XTsNCj4gPiArY2hhciBjcnRjX25hbWVbN107DQo+ID4gK2No YXIgKnN0YXJ0X2xvYzsNCj4gPiAraW50IGZkLCByZXM7DQo+ID4gK2RpdGhlcl9zdGF0dXNfdCBz dGF0dXM7DQo+ID4gKw0KPiA+ICtzbnByaW50ZihjcnRjX25hbWUsIDcsICJjcnRjLSVkIiwgZGF0 YS0+cGlwZV9pZCk7DQo+ID4gK2ZkID0gaWd0X2RlYnVnZnNfb3BlbihkYXRhLT5kcm1fZmQsIGNy dGNfbmFtZSwgT19SRE9OTFkpOw0KPiA+ICtpZ3RfYXNzZXJ0KGZkID49IDApOw0KPiA+ICsNCj4g PiArcmVzID0gaWd0X2RlYnVnZnNfc2ltcGxlX3JlYWQoZmQsICJkaXRoZXIiLCBidWYsIHNpemVv ZihidWYpKTsNCj4gPiAraWd0X3JlcXVpcmUocmVzID4gMCk7DQo+ID4gK2Nsb3NlKGZkKTsNCj4g PiArDQo+ID4gK2lndF9hc3NlcnQoc3RhcnRfbG9jID0gc3Ryc3RyKGJ1ZiwgImJwYzogIikpOw0K PiA+ICtpZ3RfYXNzZXJ0X2VxKHNzY2FuZihzdGFydF9sb2MsICJicGM6ICV1IiwgJnN0YXR1cy5i cGMpLCAxKTsNCj4gPiArDQo+ID4gK2lndF9hc3NlcnQoc3RhcnRfbG9jID0gc3Ryc3RyKGJ1Ziwg IkRpdGhlcjogIikpOw0KPiA+ICtpZ3RfYXNzZXJ0X2VxKHNzY2FuZihzdGFydF9sb2MsICJEaXRo ZXI6ICV1IiwgJnN0YXR1cy5kaXRoZXIpLCAxKTsNCj4gPiArDQo+ID4gK3JldHVybiBzdGF0dXM7 DQo+ID4gK30NCj4gPiArDQo+ID4gK3N0YXRpYyB2b2lkIHRlc3RfZGl0aGVyaW5nKGRhdGFfdCAq ZGF0YSwgZW51bSBwaXBlIHBpcGUsDQo+ID4gKyAgIGlndF9vdXRwdXRfdCAqb3V0cHV0LA0KPiA+ ICsgICBpbnQgZmJfYnBjLCBpbnQgZmJfZm9ybWF0LA0KPiA+ICsgICBpbnQgb3V0cHV0X2JwYykN Cj4gPiArew0KPiA+ICtpZ3RfZGlzcGxheV90ICpkaXNwbGF5ID0gJmRhdGEtPmRpc3BsYXk7DQo+ ID4gK2RpdGhlcl9zdGF0dXNfdCBzdGF0dXM7DQo+ID4gK2ludCBicGM7DQo+ID4gKw0KPiA+ICtp Z3RfaW5mbygiRGl0aGVyaW5nIHRlc3QgZXhlY3V0aW9uIG9uICVzIFBJUEVfJXNcbiIsDQo+ID4g K291dHB1dC0+bmFtZSwga21zdGVzdF9waXBlX25hbWUocGlwZSkpOw0KPiA+ICtwcmVwYXJlX3Rl c3QoZGF0YSwgb3V0cHV0LCBwaXBlKTsNCj4gPiArDQo+ID4gK2lndF9hc3NlcnQoaWd0X2NyZWF0 ZV9mYihkYXRhLT5kcm1fZmQsIGRhdGEtPm1vZGUtPmhkaXNwbGF5LA0KPiA+ICsgZGF0YS0+bW9k ZS0+dmRpc3BsYXksIGZiX2Zvcm1hdCwNCj4gPiArIExPQ0FMX0RSTV9GT1JNQVRfTU9EX05PTkUs ICZkYXRhLT5mYikpOw0KPiA+ICtpZ3RfcGxhbmVfc2V0X2ZiKGRhdGEtPnByaW1hcnksICZkYXRh LT5mYik7DQo+ID4gK2lndF9wbGFuZV9zZXRfc2l6ZShkYXRhLT5wcmltYXJ5LCBkYXRhLT5tb2Rl LT5oZGlzcGxheSwNCj4gPiArZGF0YS0+bW9kZS0+dmRpc3BsYXkpOw0KPiA+ICsNCj4gPiArYnBj ID0gaWd0X291dHB1dF9nZXRfcHJvcChvdXRwdXQsIElHVF9DT05ORUNUT1JfTUFYX0JQQyk7DQo+ ID4gK2lndF9vdXRwdXRfc2V0X3Byb3BfdmFsdWUoZGF0YS0+b3V0cHV0LCBJR1RfQ09OTkVDVE9S X01BWF9CUEMsDQo+ID4gb3V0cHV0X2JwYyk7DQo+ID4gK2lndF9kaXNwbGF5X2NvbW1pdDIoZGlz cGxheSwgZGlzcGxheS0+aXNfYXRvbWljID8gQ09NTUlUX0FUT01JQyA6DQo+ID4gK0NPTU1JVF9M RUdBQ1kpOw0KPiA+ICsNCj4gPiArLyoNCj4gPiArICogQ2hlY2sgdGhlIHN0YXR1cyBvZiBEaXRo ZXJpbmcgYmxvY2s6DQo+ID4gKyAqDQo+ID4gKyAqIFByZXNlcnZlIHRoZSByZXN1bHQgJiBjb21w dXRlIGxhdGVyIChhZnRlciBjbGVhbi11cCkuDQo+ID4gKyAqIElmIGZiX2JwYyBpcyBncmVhdGVy IHRoYW4gb3V0cHV0X2JwYywgRGl0aGVyaW5nIHNob3VsZCBiZSBlbmFibGVkDQo+ID4gKyAqIEVs c2UgZGlzYWJsZWQNCj4gPiArICovDQo+ID4gK3N0YXR1cyA9IGdldF9kaXRoZXJfc3RhdGUoZGF0 YSk7DQo+ID4gKw0KPiA+ICtpZ3RfZGVidWcoIkZCIEJQQzolZCwgUGFuZWwgQlBDOiVkLCBQaXBl IEJQQzolZCwgRXhwZWN0ZWQgRGl0aGVyOiVzLA0KPiA+IEFjdHVhbCByZXN1bHQ6JXNcbiIsDQo+ ID4gKyAgZmJfYnBjLCBvdXRwdXRfYnBjLCBzdGF0dXMuYnBjLA0KPiA+ICsgIChmYl9icGMgPiBv dXRwdXRfYnBjKSA/ICJFbmFibGUiOiAiRGlzYWJsZSIsDQo+ID4gKyAgc3RhdHVzLmRpdGhlciA/ ICJFbmFibGUiOiAiRGlzYWJsZSIpOw0KPiA+ICsNCj4gPiArICAgICAgIC8qDQo+ID4gKyogV2Ug bXVzdCB1cGRhdGUgdGhlIENvbm5lY3RvciBtYXhfYnBjIHByb3BlcnR5IGJhY2sNCj4gPiArKiBP dGhlcndpc2UsIHByZXZpb3VzbHkgdXBkYXRlZCB2YWx1ZSB3aWxsIHN0YXkgZm9yZXZlciBhbmQN Cj4gPiArKiBtYXkgY2F1c2UgdGhlIGZhaWx1cmVzIGZvciBuZXh0L290aGVyIHN1YnRlc3RzLg0K PiA+ICsqLw0KPiA+ICtpZ3Rfb3V0cHV0X3NldF9wcm9wX3ZhbHVlKGRhdGEtPm91dHB1dCwgSUdU X0NPTk5FQ1RPUl9NQVhfQlBDLA0KPiA+IGJwYyk7DQo+ID4gK2lndF9wbGFuZV9zZXRfZmIoZGF0 YS0+cHJpbWFyeSwgTlVMTCk7DQo+ID4gK2lndF9vdXRwdXRfc2V0X3BpcGUob3V0cHV0LCBQSVBF X05PTkUpOw0KPiA+ICtpZ3RfZGlzcGxheV9jb21taXQyKGRpc3BsYXksIGRpc3BsYXktPmlzX2F0 b21pYyA/IENPTU1JVF9BVE9NSUMgOg0KPiA+IENPTU1JVF9MRUdBQ1kpOw0KPiA+ICtpZ3RfcmVt b3ZlX2ZiKGRhdGEtPmRybV9mZCwgJmRhdGEtPmZiKTsNCj4gPiArDQo+ID4gKy8qIENoZWNrIGlm IGNydGMgYnBjIGlzIHVwZGF0ZWQgd2l0aCByZXF1ZXN0ZWQgb25lLiAqLw0KPiA+ICtpZ3RfcmVx dWlyZV9mKChzdGF0dXMuYnBjID09IG91dHB1dF9icGMpLA0KPiA+ICsiJXMgY2FuIHN1cHBvcnQg bWF4ICV1LWJwYywgYnV0IHJlcXVlc3RlZCAlZC1icGNcbiIsDQo+ID4gK291dHB1dC0+bmFtZSwg c3RhdHVzLmJwYywgb3V0cHV0X2JwYyk7DQo+ID4gKw0KPiA+ICsvKiBDb21wdXRlIHRoZSByZXN1 bHQuICovDQo+ID4gK2lmIChmYl9icGMgPiBvdXRwdXRfYnBjKQ0KPiA+ICtpZ3RfYXNzZXJ0X2Yo c3RhdHVzLmRpdGhlciwgIihmYl8lZGJwYyA+IG91dHB1dF8lZGJwYyk6IERpdGhlcg0KPiA+IHNo b3VsZCBiZSBlbmFibGVkXG4iLA0KPiA+ICtmYl9icGMsIG91dHB1dF9icGMpOw0KPiA+ICtlbHNl DQo+ID4gK2lndF9hc3NlcnRfZighc3RhdHVzLmRpdGhlciwgIihmYl8lZGJwYyA8PSBvdXRwdXRf JWRicGMpOiBEaXRoZXINCj4gPiBzaG91bGQgYmUgZGlzYWJsZWRcbiIsDQo+ID4gK2ZiX2JwYywg b3V0cHV0X2JwYyk7DQo+ID4gKw0KPiA+ICtyZXR1cm47DQo+ID4gK30NCj4gPiArDQo+ID4gKy8q IFJldHVybnMgdHJ1ZSBpZiBhbiBvdXRwdXQgc3VwcG9ydHMgbWF4IGJwYyBwcm9wZXJ0eSAmIG1h eF9icGMgPj0NCj4gPiArcmVxdWVzdGVkLiAqLyBzdGF0aWMgYm9vbCBpc19zdXBwb3J0ZWQoaWd0 X291dHB1dF90ICpvdXRwdXQsIGludCBicGMpIHsNCj4gPiArICAgICAgICByZXR1cm4gaWd0X291 dHB1dF9oYXNfcHJvcChvdXRwdXQsIElHVF9DT05ORUNUT1JfTUFYX0JQQykgJiYNCj4gPiArKGln dF9vdXRwdXRfZ2V0X3Byb3Aob3V0cHV0LCBJR1RfQ09OTkVDVE9SX01BWF9CUEMpID49IGJwYyk7 DQo+ID4gfQ0KPiA+ICsNCj4gPiArc3RhdGljIHZvaWQNCj4gPiArcnVuX2RpdGhlcl90ZXN0KGRh dGFfdCAqZGF0YSwgaW50IGZiX2JwYywgaW50IGZiX2Zvcm1hdCwgaW50DQo+ID4gK291dHB1dF9i cGMpIHsNCj4gPiAraWd0X291dHB1dF90ICpvdXRwdXQ7DQo+ID4gK2lndF9kaXNwbGF5X3QgKmRp c3BsYXkgPSAmZGF0YS0+ZGlzcGxheTsNCj4gPiArDQo+ID4gK2Zvcl9lYWNoX2Nvbm5lY3RlZF9v dXRwdXQoZGlzcGxheSwgb3V0cHV0KSB7DQo+ID4gK2VudW0gcGlwZSBwaXBlOw0KPiA+ICsNCj4g PiAraWYgKCFpc19zdXBwb3J0ZWQob3V0cHV0LCBvdXRwdXRfYnBjKSkNCj4gPiArY29udGludWU7 DQo+ID4gKw0KPiA+ICtpZiAoKHN0cnN0cihvdXRwdXQtPm5hbWUsICJIRE1JIikgIT0gTlVMTCkg JiYNCj4gPiArICAgIChvdXRwdXRfYnBjID09IElHVF9DT05ORUNUT1JfQlBDXzYpKQ0KPiA+ICtj b250aW51ZTsNCj4gPiArDQo+ID4gK2Zvcl9lYWNoX3BpcGUoZGlzcGxheSwgcGlwZSkgew0KPiA+ ICtpZiAoaWd0X3BpcGVfY29ubmVjdG9yX3ZhbGlkKHBpcGUsIG91dHB1dCkpIHsNCj4gPiAraWd0 X2R5bmFtaWNfZigiJXMtcGlwZS0lcyIsIG91dHB1dC0+bmFtZSwNCj4gPiBrbXN0ZXN0X3BpcGVf bmFtZShwaXBlKSkNCj4gPiArdGVzdF9kaXRoZXJpbmcoZGF0YSwgcGlwZSwgb3V0cHV0LCBmYl9i cGMsDQo+ID4gK2ZiX2Zvcm1hdCwgb3V0cHV0X2JwYyk7DQo+ID4gKw0KPiA+ICsvKiBPbmUgcGlw ZSBpcyBlbm91Z2ggKi8NCj4gPiArYnJlYWs7DQo+ID4gK30NCj4gPiArfQ0KPiA+ICt9DQo+ID4g K30NCj4gPiArDQo+ID4gK2lndF9tYWluDQo+ID4gK3sNCj4gPiArc3RydWN0IHsNCj4gPiAraW50 IGZiX2JwYzsNCj4gPiAraW50IGZvcm1hdDsNCj4gPiAraW50IG91dHB1dF9icGM7DQo+ID4gK30g dGVzdHNbXSA9IHsNCj4gPiAreyBJR1RfRlJBTUVfQlVGRkVSX0JQQ184LCBEUk1fRk9STUFUX1hS R0I4ODg4LA0KPiA+IElHVF9DT05ORUNUT1JfQlBDXzYgfSwNCj4gPiAreyBJR1RfRlJBTUVfQlVG RkVSX0JQQ184LCBEUk1fRk9STUFUX1hSR0I4ODg4LA0KPiA+IElHVF9DT05ORUNUT1JfQlBDXzgg fSwNCj4gPiArfTsNCj4gPiAraW50IGk7DQo+ID4gK2RhdGFfdCBkYXRhID0geyAwIH07DQo+ID4g Kw0KPiA+ICtpZ3RfZml4dHVyZSB7DQo+ID4gK2RhdGEuZHJtX2ZkID0gZHJtX29wZW5fZHJpdmVy X21hc3RlcihEUklWRVJfSU5URUwpOw0KPiA+ICtrbXN0ZXN0X3NldF92dF9ncmFwaGljc19tb2Rl KCk7DQo+ID4gKw0KPiA+ICtpZ3RfZGlzcGxheV9yZXF1aXJlKCZkYXRhLmRpc3BsYXksIGRhdGEu ZHJtX2ZkKTsNCj4gPiAraWd0X2Rpc3BsYXlfcmVxdWlyZV9vdXRwdXQoJmRhdGEuZGlzcGxheSk7 DQo+ID4gK30NCj4gPiArDQo+ID4gK2ZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHRlc3RzKTsg aSsrKSB7DQo+ID4gK2lndF9kZXNjcmliZV9mKCJGcmFtZWJ1ZmZlciBCUEM6JWQsIFBhbmVsIEJQ QzolZCwgRXhwZWN0ZWQNCj4gPiBEaXRoZXI6JXNcbiIsDQo+ID4gKyAgICAgICB0ZXN0c1tpXS5m Yl9icGMsIHRlc3RzW2ldLm91dHB1dF9icGMsDQo+ID4gKyAgICAgICAodGVzdHNbaV0uZmJfYnBj ID4gdGVzdHNbaV0ub3V0cHV0X2JwYykgPw0KPiA+ICsiRW5hYmxlIjogIkRpc2FibGUiKTsNCj4g PiArDQo+ID4gK2lndF9zdWJ0ZXN0X3dpdGhfZHluYW1pY19mKCJGQi0lZEJQQy1Wcy1QYW5lbC0l ZEJQQyIsDQo+ID4gK3Rlc3RzW2ldLmZiX2JwYywgdGVzdHNbaV0ub3V0cHV0X2JwYykNCj4gPiAr cnVuX2RpdGhlcl90ZXN0KCZkYXRhLA0KPiA+ICt0ZXN0c1tpXS5mYl9icGMsDQo+ID4gK3Rlc3Rz W2ldLmZvcm1hdCwNCj4gPiArdGVzdHNbaV0ub3V0cHV0X2JwYyk7DQo+ID4gK30NCj4gPiArDQo+ ID4gK2lndF9maXh0dXJlIHsNCj4gPiAraWd0X2Rpc3BsYXlfZmluaSgmZGF0YS5kaXNwbGF5KTsN Cj4gPiArfQ0KPiA+ICt9DQo+ID4gZGlmZiAtLWdpdCBhL3Rlc3RzL21lc29uLmJ1aWxkIGIvdGVz dHMvbWVzb24uYnVpbGQgaW5kZXgNCj4gMTljYzRlYmUwZC4uZmYzOTc5MjA3ZA0KPiA+IDEwMDY0 NA0KPiA+IC0tLSBhL3Rlc3RzL21lc29uLmJ1aWxkDQo+ID4gKysrIGIvdGVzdHMvbWVzb24uYnVp bGQNCj4gPiBAQCAtMjgsNiArMjgsNyBAQCB0ZXN0X3Byb2dzID0gWw0KPiA+ICAna21zX2N1cnNv cl9jcmMnLA0KPiA+ICAna21zX2N1cnNvcl9lZGdlX3dhbGsnLA0KPiA+ICAna21zX2N1cnNvcl9s ZWdhY3knLA0KPiA+ICsna21zX2RpdGhlcicsDQo+ID4gICdrbXNfZHBfYXV4X2RldicsDQo+ID4g ICdrbXNfZHBfZHNjJywNCj4gPiAgJ2ttc19kcF90aWxlZF9kaXNwbGF5JywNCj4gPiAtLQ0KPiA+ IDIuMjUuMQ0KPiA+DQo+ID4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18NCj4gPiBpZ3QtZGV2IG1haWxpbmcgbGlzdA0KPiA+IGlndC1kZXZAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnDQo+ID4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pZ3QtZGV2DQoNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCmlndC1kZXYgbWFpbGluZyBsaXN0CmlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0LWRl dgo=