From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Chauhan, Madhav" Subject: Re: [PATCH] drm/i915/glk: limit pixel clock to 99% of cdclk workaround Date: Tue, 4 Apr 2017 13:26:51 +0000 Message-ID: References: <1491293753-12325-1-git-send-email-jani.nikula@intel.com> <1491294079.3274.3.camel@gmail.com> <87zifwo9au.fsf@intel.com> <1491300368.3274.5.camel@gmail.com> <87wpb01nop.fsf@intel.com> <20170404113914.GN30290@intel.com> <20170404125555.GO30290@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4E7616E411 for ; Tue, 4 Apr 2017 13:26:59 +0000 (UTC) In-Reply-To: <20170404125555.GO30290@intel.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: =?utf-8?B?J1ZpbGxlIFN5cmrDpGzDpCc=?= Cc: "Nikula, Jani" , "intel-gfx@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBWaWxsZSBTeXJqw6Rsw6QgW21h aWx0bzp2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbV0NCj4gU2VudDogVHVlc2RheSwgQXBy aWwgNCwgMjAxNyA2OjI2IFBNDQo+IFRvOiBDaGF1aGFuLCBNYWRoYXYgPG1hZGhhdi5jaGF1aGFu QGludGVsLmNvbT4NCj4gQ2M6IE5pa3VsYSwgSmFuaSA8amFuaS5uaWt1bGFAaW50ZWwuY29tPjsg QW5kZXIgQ29uc2VsdmFuIERlIE9saXZlaXJhDQo+IDxjb25zZWx2YW4yQGdtYWlsLmNvbT47IGlu dGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcNCj4gU3ViamVjdDogUmU6IFtQQVRDSF0gZHJt L2k5MTUvZ2xrOiBsaW1pdCBwaXhlbCBjbG9jayB0byA5OSUgb2YgY2RjbGsNCj4gd29ya2Fyb3Vu ZA0KPiANCj4gT24gVHVlLCBBcHIgMDQsIDIwMTcgYXQgMTE6NTM6NDJBTSArMDAwMCwgQ2hhdWhh biwgTWFkaGF2IHdyb3RlOg0KPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ IEZyb206IFZpbGxlIFN5cmrDpGzDpCBbbWFpbHRvOnZpbGxlLnN5cmphbGFAbGludXguaW50ZWwu Y29tXQ0KPiA+ID4gU2VudDogVHVlc2RheSwgQXByaWwgNCwgMjAxNyA1OjA5IFBNDQo+ID4gPiBU bzogQ2hhdWhhbiwgTWFkaGF2IDxtYWRoYXYuY2hhdWhhbkBpbnRlbC5jb20+DQo+ID4gPiBDYzog TmlrdWxhLCBKYW5pIDxqYW5pLm5pa3VsYUBpbnRlbC5jb20+OyBBbmRlciBDb25zZWx2YW4gRGUN Cj4gPiA+IE9saXZlaXJhIDxjb25zZWx2YW4yQGdtYWlsLmNvbT47IGludGVsLWdmeEBsaXN0cy5m cmVlZGVza3RvcC5vcmcNCj4gPiA+IFN1YmplY3Q6IFJlOiBbUEFUQ0hdIGRybS9pOTE1L2dsazog bGltaXQgcGl4ZWwgY2xvY2sgdG8gOTklIG9mIGNkY2xrDQo+ID4gPiB3b3JrYXJvdW5kDQo+ID4g Pg0KPiA+ID4gT24gVHVlLCBBcHIgMDQsIDIwMTcgYXQgMTA6Mjc6NTdBTSArMDAwMCwgQ2hhdWhh biwgTWFkaGF2IHdyb3RlOg0KPiA+ID4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ ID4gPiA+ID4gRnJvbTogTmlrdWxhLCBKYW5pDQo+ID4gPiA+ID4gU2VudDogVHVlc2RheSwgQXBy aWwgNCwgMjAxNyAzOjQ4IFBNDQo+ID4gPiA+ID4gVG86IEFuZGVyIENvbnNlbHZhbiBEZSBPbGl2 ZWlyYSA8Y29uc2VsdmFuMkBnbWFpbC5jb20+OyBpbnRlbC0NCj4gPiA+ID4gPiBnZnhAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnDQo+ID4gPiA+ID4gQ2M6IENoYXVoYW4sIE1hZGhhdiA8bWFkaGF2LmNo YXVoYW5AaW50ZWwuY29tPjsgVmlsbGUgU3lyasOkbMOkDQo+ID4gPiA+ID4gPHZpbGxlLnN5cmph bGFAbGludXguaW50ZWwuY29tPg0KPiA+ID4gPiA+IFN1YmplY3Q6IFJlOiBbUEFUQ0hdIGRybS9p OTE1L2dsazogbGltaXQgcGl4ZWwgY2xvY2sgdG8gOTklIG9mDQo+ID4gPiA+ID4gY2RjbGsgd29y a2Fyb3VuZA0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gT24gVHVlLCAwNCBBcHIgMjAxNywgQW5kZXIg Q29uc2VsdmFuIERlIE9saXZlaXJhDQo+ID4gPiA+ID4gPGNvbnNlbHZhbjJAZ21haWwuY29tPg0K PiA+ID4gPiA+IHdyb3RlOg0KPiA+ID4gPiA+ID4gT24gVHVlLCAyMDE3LTA0LTA0IGF0IDExOjQw ICswMzAwLCBKYW5pIE5pa3VsYSB3cm90ZToNCj4gPiA+ID4gPiA+PiBPbiBUdWUsIDA0IEFwciAy MDE3LCBBbmRlciBDb25zZWx2YW4gRGUgT2xpdmVpcmENCj4gPiA+ID4gPiA8Y29uc2VsdmFuMkBn bWFpbC5jb20+IHdyb3RlOg0KPiA+ID4gPiA+ID4+ID4gT24gVHVlLCAyMDE3LTA0LTA0IGF0IDEx OjE1ICswMzAwLCBKYW5pIE5pa3VsYSB3cm90ZToNCj4gPiA+ID4gPiA+PiA+ID4gRnJvbTogTWFk aGF2IENoYXVoYW4gPG1hZGhhdi5jaGF1aGFuQGludGVsLmNvbT4NCj4gPiA+ID4gPiA+PiA+ID4N Cj4gPiA+ID4gPiA+PiA+ID4gQXMgcGVyIEJTUEVDLCB2YWxpZCBjZGNsayB2YWx1ZXMgZm9yIGds ayBhcmUgNzkuMiwgMTU4LjQsIDMxNi44DQo+IE1oei4NCj4gPiA+ID4gPiA+PiA+ID4gUHJhY3Rp Y2FsbHkgd2UgY2FuIGFjaGl2ZSBvbmx5IDk5JSBvZiB0aGVzZSBjZGNsayB2YWx1ZXMNCj4gPiA+ ID4gPiA+PiA+ID4gKEhXIHRlYW0gY2hlY2tpbmcgb24gdGhpcykuIFNvIGNkY2xrIHNob3VsZCBi ZSBjYWxjdWxhdGVkDQo+ID4gPiA+ID4gPj4gPiA+IGZvciB0aGUgZ2l2ZW4gcGl4Y2xrIGFzIHBl ciB0aGF0IG90aGVyd2lzZSBpdCBtYXkgbGVhZCB0bw0KPiA+ID4gPiA+ID4+ID4gPiBzY3JlZW4g Y29ycnVwdGlvbiBmb3Igc29tZQ0KPiA+ID4gPiA+IHNjZW5hcmlvcy4NCj4gPiA+ID4gPiA+PiA+ ID4NCj4gPiA+ID4gPiA+PiA+ID4gdjI6IFJlYmFzZWQgdG8gbmV3IENETENLIGNvZGUgZnJhbWV3 b3JrDQo+ID4gPiA+ID4gPj4gPiA+IHYzOiBBZGRyZXNzZWQgcmV2aWV3IGNvbW1lbnRzIGZyb20g QW5kZXIvSmFuaQ0KPiA+ID4gPiA+ID4+ID4gPiAgICAgLSBBZGQgY29tbWVudCBpbiBjb2RlIGFi b3V0IDk5JSB1c2FnZSBvZiBDRENMSw0KPiA+ID4gPiA+ID4+ID4gPiAgICAgLSBDYWxjdWxhdGUg bWF4IGRvdCBjbG9jayBhcyB3ZWxsIHdpdGggOTklIGxpbWl0DQo+ID4gPiA+ID4gPj4gPiA+IHY0 IGJ5IEphbmk6DQo+ID4gPiA+ID4gPj4gPiA+ICAgICAtIGRyb3Agc3VwZXJmbHVvdXMgd2hpdGVz cGFjZSBjaGFuZ2UNCj4gPiA+ID4gPiA+PiA+ID4gICAgIC0gcmV3cml0ZSBjb2RlIGNvbW1lbnRz IHRvIGNsYXJpZnkNCj4gPiA+ID4gPiA+PiA+ID4NCj4gPiA+ID4gPiA+PiA+ID4gQ2M6IEFuZGVy IENvbnNlbHZhbiBkZSBPbGl2ZWlyYQ0KPiA+ID4gPiA+ID4+ID4gPiA8YW5kZXIuY29uc2VsdmFu LmRlLm9saXZlaXJhQGludGVsLmNvbT4NCj4gPiA+ID4gPiA+PiA+ID4gQ2M6IFZpbGxlIFN5cmrD pGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+DQo+ID4gPiA+ID4gPj4gPiA+IFNp Z25lZC1vZmYtYnk6IE1hZGhhdiBDaGF1aGFuDQo+IDxtYWRoYXYuY2hhdWhhbkBpbnRlbC5jb20+ DQo+ID4gPiA+ID4gPj4gPiA+IFNpZ25lZC1vZmYtYnk6IEphbmkgTmlrdWxhIDxqYW5pLm5pa3Vs YUBpbnRlbC5jb20+DQo+ID4gPiA+ID4gPj4gPiA+IC0tLQ0KPiA+ID4gPiA+ID4+ID4gPiAgZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY2RjbGsuYyB8IDE2ICsrKysrKysrKysrKystLS0NCj4g PiA+ID4gPiA+PiA+ID4gIDEgZmlsZSBjaGFuZ2VkLCAxMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0 aW9ucygtKQ0KPiA+ID4gPiA+ID4+ID4gPg0KPiA+ID4gPiA+ID4+ID4gPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY2RjbGsuYw0KPiA+ID4gPiA+ID4+ID4gPiBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NkY2xrLmMNCj4gPiA+ID4gPiA+PiA+ID4gaW5kZXgg ZGQzYWQ1MmI3ZGZlLi43NjMwMTBmOGFkODkgMTAwNjQ0DQo+ID4gPiA+ID4gPj4gPiA+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NkY2xrLmMNCj4gPiA+ID4gPiA+PiA+ID4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY2RjbGsuYw0KPiA+ID4gPiA+ID4+ID4gPiBA QCAtMTA3MSw5ICsxMDcxLDE1IEBAIHN0YXRpYyBpbnQgYnh0X2NhbGNfY2RjbGsoaW50DQo+ID4g PiA+ID4gPj4gPiA+IG1heF9waXhjbGspDQo+ID4gPiA+ID4gPj4gPiA+DQo+ID4gPiA+ID4gPj4g PiA+ICBzdGF0aWMgaW50IGdsa19jYWxjX2NkY2xrKGludCBtYXhfcGl4Y2xrKSAgew0KPiA+ID4g PiA+ID4+ID4gPiAtCWlmIChtYXhfcGl4Y2xrID4gMiAqIDE1ODQwMCkNCj4gPiA+ID4gPiA+PiA+ ID4gKwkvKg0KPiA+ID4gPiA+ID4+ID4gPiArCSAqIEZJWE1FOiBBdm9pZCB1c2luZyBhIHBpeGVs IGNsb2NrIHRoYXQgaXMgbW9yZSB0aGFuDQo+ID4gPiA+ID4gPj4gPiA+ICs5OSUgb2YNCj4gPiA+ IHRoZSBjZGNsaw0KPiA+ID4gPiA+ID4+ID4gPiArCSAqIGFzIGEgdGVtcG9yYXJ5IHdvcmthcm91 bmQuIFVzZSBhIGhpZ2hlciBjZGNsayBpbnN0ZWFkLg0KPiA+ID4gPiA+ID4+ID4gPiArKE5vdGUg dGhhdA0KPiA+ID4gPiA+ID4+ID4NCj4gPiA+ID4gPiA+PiA+IFRlbXBvcmFyeSB3b3JrYXJvdW5k IGZvciB3aGF0PyBOZWl0aGVyIHRoZSBjb21tZW50IG5vciB0aGUNCj4gPiA+ID4gPiA+PiA+IGNv bW1pdCBtZXNzYWdlIGV4cGxpY2l0bHkgbGlzdHMgdGhlIHNjZW5hcmlvIHRoYXQgdHJpZ2dlcnMg dGhpcw0KPiBpc3N1ZS4NCj4gPiA+ID4gPiA+Pg0KPiA+ID4gPiA+ID4+IEZyYW5rbHkgSSBkaWQg bm90IGtub3cgd2hhdCB0byB3cml0ZS4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4g PiA+ID4+IFRoZXJlIGFyZSBpc3N1ZXMgd2l0aCBwaXhlbCBjbG9ja3MgbmVhciBjZGNsayB0aGF0 IHNob3VsZG4ndA0KPiA+ID4gPiA+ID4+IGhhcHBlbi4gUGVvcGxlIGFyZSBsb29raW5nIGludG8g dGhpcywgYnV0IGluIHRoZSBtZWFuIHRpbWUNCj4gPiA+ID4gPiA+PiBkb2RnZSB0aGUgaXNzdWVz IGJ5IHVzaW5nIGhpZ2hlciBjZGNsay4gVGhlIGlzc3VlIHNob3VsZCBub3QNCj4gPiA+ID4gPiA+ PiBiZSBlbmNvZGVyIHNwZWNpZmljLCBidXQgaW4gcHJhY3RpY2UgdGhpcyBoYXMgb25seSBiZWVu IHNlZW4NCj4gPiA+ID4gPiA+PiB3aXRoIERTSSBiZWNhdXNlIHRoZXJlIHdlcmUgc29tZSBtb2Rl cyB3aXRoIHBpeGVsIGNsb2NrcyB0aGF0DQo+ID4gPiA+ID4gPj4gYXJlIG5lYXIgdGhlIGNkY2xr Lg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IFRoZSBhYm92ZSBwbHVzIHRoZSBtb2RlbCBudW1i ZXIgb2YgdGhlIERTSSBwYW5lbCB3aXRoIHdoaWNoDQo+ID4gPiA+ID4gPiB0aGUgaXNzdWUgaGFz IGJlZW4gc2VlbiB3b3VsZCBiZSBnb29kIGVub3VnaCBJTU8uDQo+ID4gPiA+ID4NCj4gPiA+ID4g PiBNYWRoYXY/DQo+ID4gPiA+DQo+ID4gPiA+IElzc3VlIGlzIGdlbmVyaWMgKHZhbGlkIGZvciBE UC9IRE1JKSBub3QganVzdCBNSVBJIERTSSBzcGVjaWZpYy4NCj4gPiA+ID4gUGFydGljdWxhciBE U0kgcGFuZWwgZXhwb3NpbmcgdGhpcyBpc3N1ZSBhcyBkZXNjcmliZWQgYmVsb3c6DQo+ID4gPiA+ IDEuIEZvciBYWFhYIHBhbmVsICgxOVgxMikgcmVxdWlyZWQgcGl4Y2xrIGlzIDE1NzEwMCBLSFoN Cj4gPiA+DQo+ID4gPiBBbmQgd2hhdCBpcyB0aGUgYWN0dWFsIHBpeGVsIGNsb2NrIHdlIGVuZCB1 cCB1c2luZz8gQXMgSSd2ZQ0KPiA+ID4gbWVudGlvbmVkIGJlZm9yZSBvdXIgY29kZSBpcyBidWdn eSBiZWNhdXNlIGl0IGFzc3VtZXMgd2UgY2FuIGdldCBhbnkNCj4gPiA+IGFyYml0cmFyeSBjbG9j ayBmcmVxdWVuY3kgZnJvbSB0aGUgUExMLiBUaGF0IGlzIG5vdCBnZW5lcmFsbHkgdHJ1ZS4NCj4g PiA+DQo+ID4gPiBTbyBJJ2QgbGlrZSB0byBrbm93IGlmIHRoZSBwcm9ibGVtIHJlYWxseSBpcyB0 aGF0IHdlIGNhbid0IHJlYWNoDQo+ID4gPiAxMDAlIG9mIGNkY2xrLCBvciBpZiB3ZSBqdXN0IGVu ZCB1cCB3aXRoIGEgcGl4ZWwgY2xvY2sgdGhhdCBzbGlnaHRseQ0KPiA+ID4gaGlnaGVyIHRoYW4g d2hhdCB3ZSBhc2tlZCBmb3IgYW5kIHRodXMgZXhjZWVkcyAxMDAlIG9mIGNkY2xrLg0KPiA+DQo+ ID4gQUZBSUsgKGZyb20gdGVzdGluZywgR09QIHRlYW0gaW5wdXRzKSwgcHJvYmxlbSBpcyB0aGF0 IHdlIGNhbid0IHJlYWNoDQo+IDEwMCVDRENMSyBvbiBHTEsuDQo+ID4gSW4gdGhpcyBzY2VuYXJp byBjYWxjdWxhdGVkL3JlcXVpcmVkIHBpeGVsIGNsb2NrIGlzIDE1NzEwMCBLSFogIChtaWdodA0K PiA+IGJlIGhpZ2hlciBkdWUgdG8gYnVnZ3kgY29kZSBhcyB5b3UgbWVudGlvbmVkKQ0KPiANCj4g V2VsbCwgd2hhdCBpcyB0aGUgY2xvY2sgd2UgZ2V0IGZyb20gdGhlIFBMTCBleGFjdGx5Pw0KUGxl YXNlIGV4cGxhaW4gbW9yZSBpZiBJIG1pc3VuZGVyc3Rvb2QgeW91ciBxdWVzdGlvbi4NCkZvciBE U0ksIHdlIGdldCBwY2xrIGZvciBhIHBhbmVsIGJ5IFZCVCBwYXJzaW5nLiBPbiB0aGUgYmFzaXMg b2YgdGhpcyBwY2xrIHdlIA0KUHJvZ3JhbSBQTEwgZGl2aWRlcnMgIGFuZCB0aGVuIGVuYWJsZSB0 aGUgUExMIHRvIGdlbmVyYXRlIHRoZSByZXF1aXJlZCBjbGsuDQpEbyB5b3UgbWVhbiB0aGlzIHBj bGs/Pw0KDQo+IA0KPiA+IHdoaWNoIHNob3VsZCBiZSBoYW5kbGVkIHZlcnkgd2VsbCBpZiB3ZSBz ZXQgQ0RDTEsgNzkyMDAgS0haIGJ1dCBjYXVzZXMNCj4gcGFuZWwgY29ycnVwdGlvbi4NCj4gPg0K PiA+ID4NCj4gPiA+IEFuZCBpZiB0aGUgcHJvYmxlbSBpcyByZWFsbHkgdGhhdCB3ZSBjYW4ndCBy ZWFjaCAxMDAlIG9mIGNkY2xrLCB0aGVuDQo+ID4gPiB3aHkgYXJlIHdlIGxpbWl0aW5nIHRoaXMg dG8gR0xLIG9ubHk/DQo+ID4NCj4gPiBGcm9tIGRpc2N1c3Npb24sIGxvb2tzIGxpa2UgaXNzdWUg aXMgc3BlY2lmaWMgdG8gR0xLIHBsYXRmb3JtLg0KPiA+IEhXIHRlYW0gaXMgZGVidWdnaW5nIHRo aXMgaXNzdWUuDQo+ID4NCj4gPiA+DQo+ID4gPiA+IDIuIGdsa19jYWxjX2NkY2xrIHJldHVybnMg NzkyMDAgS0haIGZvciB0aGlzIHBpeGNsay4gRm9yIDJQUEMgaXQNCj4gPiA+ID4gd2lsbCBiZSAx NTg0MDAgS0haIDMuIFByYWN0aWNhbGx5IDEwMCUgb2YgdGhlIGNkY2xrIGNhbuKAmXQgYmUNCj4g PiA+ID4gYWNoaWV2ZWQsIHNvIDk5JSBvZg0KPiA+ID4gMTU4NDAwIEtIWiAgPSAxNTY4MTYgd2hp Y2ggaXMgbGVzcyB0aGFuIHRoZSBkZXNpcmVkIHBpeGxjbGsuDQo+ID4gPiA+ICAgICAgVGhpcyBj YXVzZXMgdGhlIGNvcnJ1cHRpb24uDQo+ID4gPiA+DQo+ID4gPiA+IFNvIHdoeSBkbyB3ZSBuZWVk IHRvIG1lbnRpb24gYSBwYXJ0aWN1bGFyIHBhbmVsPz8NCj4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gQW5kZXINCj4gPiA+ID4gPiA+DQo+ID4g PiA+ID4gPg0KPiA+ID4gPiA+ID4+ID4gV2l0aCB0aGF0IGZpeGVkLA0KPiA+ID4gPiA+ID4+ID4N Cj4gPiA+ID4gPiA+PiA+IFJldmlld2VkLWJ5OiBBbmRlciBDb25zZWx2YW4gZGUgT2xpdmVpcmEN Cj4gPiA+ID4gPiA+PiA+IDxjb25zZWx2YW4yQGdtYWlsLmNvbT4NCj4gPiA+ID4gPiA+PiA+DQo+ ID4gPiA+ID4gPj4gPiA+ICsJICogaW50ZWxfY29tcHV0ZV9tYXhfZG90Y2xrKCkgbGltaXRzIHRo ZSBtYXggcGl4ZWwNCj4gPiA+ID4gPiA+PiA+ID4gK2Nsb2NrIHRvIDk5JSBvZg0KPiA+ID4gPiA+ IG1heA0KPiA+ID4gPiA+ID4+ID4gPiArCSAqIGNkY2xrLikNCj4gPiA+ID4gPiA+PiA+ID4gKwkg Ki8NCj4gPiA+ID4gPiA+PiA+ID4gKwlpZiAobWF4X3BpeGNsayA+IERJVl9ST1VORF9VUCgyICog MTU4NDAwICogOTksIDEwMCkpDQo+ID4gPiA+ID4gPj4gPiA+ICAJCXJldHVybiAzMTY4MDA7DQo+ ID4gPiA+ID4gPj4gPiA+IC0JZWxzZSBpZiAobWF4X3BpeGNsayA+IDIgKiA3OTIwMCkNCj4gPiA+ ID4gPiA+PiA+ID4gKwllbHNlIGlmIChtYXhfcGl4Y2xrID4gRElWX1JPVU5EX1VQKDIgKiA3OTIw MCAqIDk5LA0KPiA+ID4gPiA+ID4+ID4gPiArMTAwKSkNCj4gPiA+ID4gPiA+PiA+ID4gIAkJcmV0 dXJuIDE1ODQwMDsNCj4gPiA+ID4gPiA+PiA+ID4gIAllbHNlDQo+ID4gPiA+ID4gPj4gPiA+ICAJ CXJldHVybiA3OTIwMDsNCj4gPiA+ID4gPiA+PiA+ID4gQEAgLTE2NjQsNyArMTY3MCwxMSBAQCBz dGF0aWMgaW50DQo+ID4gPiA+ID4gPj4gPiA+IGludGVsX2NvbXB1dGVfbWF4X2RvdGNsayhzdHJ1 Y3QNCj4gPiA+ID4gPiBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikNCj4gPiA+ID4gPiA+PiA+ ID4gIAlpbnQgbWF4X2NkY2xrX2ZyZXEgPSBkZXZfcHJpdi0+bWF4X2NkY2xrX2ZyZXE7DQo+ID4g PiA+ID4gPj4gPiA+DQo+ID4gPiA+ID4gPj4gPiA+ICAJaWYgKElTX0dFTUlOSUxBS0UoZGV2X3By aXYpKQ0KPiA+ID4gPiA+ID4+ID4gPiAtCQlyZXR1cm4gMiAqIG1heF9jZGNsa19mcmVxOw0KPiA+ ID4gPiA+ID4+ID4gPiArCQkvKg0KPiA+ID4gPiA+ID4+ID4gPiArCQkgKiBGSVhNRTogTGltaXRp bmcgdG8gOTklIGFzIGEgdGVtcG9yYXJ5DQo+ID4gPiB3b3JrYXJvdW5kLiBTZWUNCj4gPiA+ID4g PiA+PiA+ID4gKwkJICogZ2xrX2NhbGNfY2RjbGsoKSBmb3IgZGV0YWlscy4NCj4gPiA+ID4gPiA+ PiA+ID4gKwkJICovDQo+ID4gPiA+ID4gPj4gPiA+ICsJCXJldHVybiAyICogbWF4X2NkY2xrX2Zy ZXEgKiA5OSAvIDEwMDsNCj4gPiA+ID4gPiA+PiA+ID4gIAllbHNlIGlmIChJTlRFTF9JTkZPKGRl dl9wcml2KS0+Z2VuID49IDkgfHwNCj4gPiA+ID4gPiA+PiA+ID4gIAkJIElTX0hBU1dFTEwoZGV2 X3ByaXYpIHx8IElTX0JST0FEV0VMTChkZXZfcHJpdikpDQo+ID4gPiA+ID4gPj4gPiA+ICAJCXJl dHVybiBtYXhfY2RjbGtfZnJlcTsNCj4gPiA+ID4gPiA+Pg0KPiA+ID4gPiA+ID4+DQo+ID4gPiA+ ID4NCj4gPiA+ID4gPiAtLQ0KPiA+ID4gPiA+IEphbmkgTmlrdWxhLCBJbnRlbCBPcGVuIFNvdXJj ZSBUZWNobm9sb2d5IENlbnRlcg0KPiA+ID4NCj4gPiA+IC0tDQo+ID4gPiBWaWxsZSBTeXJqw6Rs w6QNCj4gPiA+IEludGVsIE9UQw0KPiANCj4gLS0NCj4gVmlsbGUgU3lyasOkbMOkDQo+IEludGVs IE9UQw0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50 ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBz Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==