From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [Intel-gfx] [PATCH 14/15] drm/i915/tv: Fix >1024 modes on gen3 Date: Wed, 23 Jan 2019 18:38:17 +0200 Message-ID: <20190123163817.GC20097@intel.com> References: <20181112170000.27531-1-ville.syrjala@linux.intel.com> <20181112170000.27531-16-ville.syrjala@linux.intel.com> <20190123134902.GE17259@ideak-desk.fi.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20190123134902.GE17259@ideak-desk.fi.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Imre Deak Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gV2VkLCBKYW4gMjMsIDIwMTkgYXQgMDM6NDk6MDJQTSArMDIwMCwgSW1yZSBEZWFrIHdyb3Rl Ogo+IE9uIE1vbiwgTm92IDEyLCAyMDE4IGF0IDA2OjU5OjU5UE0gKzAyMDAsIFZpbGxlIFN5cmph bGEgd3JvdGU6Cj4gPiBGcm9tOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXgu aW50ZWwuY29tPgo+ID4gCj4gPiBPbiBnZW4zIHdlIG11c3QgZGlzYWJsZSB0aGUgVFYgZW5jb2Rl ciB2ZXJ0aWNhbCBmaWx0ZXIgZm9yID4xMDI0Cj4gPiBwaXhlbCB3aWRlIHNvdXJjZXMuIE9uY2Ug dGhhdCdzIGRvbmUgYWxsIHdlIGNhbiBpcyB0cnkgdG8gY2VudGVyCj4gPiB0aGUgaW1hZ2Ugb24g dGhlIHNjcmVlbi4gTmF0dXJhbGx5IHRoZSBUViBtb2RlIHZlcnRpY2FsIHJlc29sdXRpb24KPiA+ IG11c3QgYmUgZXF1YWwgb3IgbGFyZ2VyIHRoYW4gdGhlIHVzZXIgbW9kZSB2ZXJ0aWNhbCByZXNv bHV0aW9uCj4gPiBvciBlbHNlIHdlJ2QgaGF2ZSB0byBjdXQgb2ZmIHBhcnQgb2YgdGhlIHVzZXIg bW9kZS4KPiA+IAo+ID4gQW5kIHdoaWxlIHdlIG1heSBub3QgYmUgYWJsZSB0byByZXNwZWN0IHRo ZSB1c2VyJ3MgY2hvaWNlIG9mCj4gPiB0b3AgYW5kIGJvdHRvbSBib3JkZXJzIGV4YWN0bHkgKG9y IHdlJ2QgaGF2ZSB0byByZWplY3QgaGUgbW9kZQo+ID4gbW9zdCBsaWtlbHkpLCB3ZSBjYW4gdHJ5 IHRvIG1haW50YWluIHRoZSByZWxhdGl2ZSBzaXplcyBvZiB0aGUKPiA+IHRvcCBhbmQgYm90dG9t IGJvcmRlciB3aXRoIHJlc3BlY3QgdG8gZWFjaCBvcmhlci4KPiA+IAo+ID4gQWRkaXRpb25hbGx5 IHdlIG11c3QgY29uZmlndXJlIHRoZSBwaXBlIGFzIGludGVybGFjZWQgaWYgdGhlCj4gPiBUViBt b2RlIGlzIGludGVybGFjZWQuCj4gPiAKPiA+IFNpZ25lZC1vZmYtYnk6IFZpbGxlIFN5cmrDpGzD pCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gPiAtLS0KPiA+ICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF90di5jIHwgMTAwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr LS0tCj4gPiAgMSBmaWxlIGNoYW5nZWQsIDkyIGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0p Cj4gPiAKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF90di5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdHYuYwo+ID4gaW5kZXggNzUxMjZmY2U2NTVkLi43 MDk5ZDgzN2UzMWEgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF90 di5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF90di5jCj4gPiBAQCAtODYx LDYgKzg2MSw0NCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHR2X21vZGUgdHZfbW9kZXNbXSA9IHsK PiA+ICAJfSwKPiA+ICB9Owo+ID4gIAo+ID4gK3N0cnVjdCBpbnRlbF90dl9jb25uZWN0b3Jfc3Rh dGUgewo+ID4gKwlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSBiYXNlOwo+ID4gKwo+ID4gKwkv Kgo+ID4gKwkgKiBNYXkgbmVlZCB0byBvdmVycmlkZSB0aGUgdXNlciBtYXJnaW5zIGZvcgo+ID4g KwkgKiBnZW4zID4xMDI0IHdpZGUgc291cmNlIHZlcnRpY2FsIGNlbnRlcmluZy4KPiA+ICsJICov Cj4gPiArCXN0cnVjdCB7Cj4gPiArCQl1MTYgdG9wLCBib3R0b207Cj4gPiArCX0gbWFyZ2luczsK PiA+ICsKPiA+ICsJYm9vbCBieXBhc3NfdmZpbHRlcjsKPiA+ICt9Owo+ID4gKwo+ID4gKyNkZWZp bmUgdG9faW50ZWxfdHZfY29ubmVjdG9yX3N0YXRlKHgpIGNvbnRhaW5lcl9vZih4LCBzdHJ1Y3Qg aW50ZWxfdHZfY29ubmVjdG9yX3N0YXRlLCBiYXNlKQo+ID4gKwo+ID4gKy8qKgo+ID4gKyAqIGlu dGVsX2RpZ2l0YWxfY29ubmVjdG9yX2R1cGxpY2F0ZV9zdGF0ZSAtIGR1cGxpY2F0ZSBjb25uZWN0 b3Igc3RhdGUKPiAgICAgICBeaW50ZWxfdHZfY29ubmVjdG9yX2R1cGxpY2F0ZV9zdGF0ZQo+ID4g KyAqIEBjb25uZWN0b3I6IGRpZ2l0YWwgY29ubmVjdG9yCj4gICAgICAgICAgICAgICAgICAgXnR2 IGNvbm5lY3Rvcj8KPiA+ICsgKgo+ID4gKyAqIEFsbG9jYXRlcyBhbmQgcmV0dXJucyBhIGNvcHkg b2YgdGhlIGNvbm5lY3RvciBzdGF0ZSAoYm90aCBjb21tb24gYW5kCj4gPiArICogZGlnaXRhbCBj b25uZWN0b3Igc3BlY2lmaWMpIGZvciB0aGUgc3BlY2lmaWVkIGNvbm5lY3Rvci4KPiA+ICsgKgo+ ID4gKyAqIFJldHVybnM6IFRoZSBuZXdseSBhbGxvY2F0ZWQgY29ubmVjdG9yIHN0YXRlLCBvciBO VUxMIG9uIGZhaWx1cmUuCj4gPiArICovCj4gPiArc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUg Kgo+ID4gK2ludGVsX3R2X2Nvbm5lY3Rvcl9kdXBsaWNhdGVfc3RhdGUoc3RydWN0IGRybV9jb25u ZWN0b3IgKmNvbm5lY3RvcikKPiA+ICt7Cj4gPiArCXN0cnVjdCBpbnRlbF90dl9jb25uZWN0b3Jf c3RhdGUgKnN0YXRlOwo+ID4gKwo+ID4gKwlzdGF0ZSA9IGttZW1kdXAoY29ubmVjdG9yLT5zdGF0 ZSwgc2l6ZW9mKCpzdGF0ZSksIEdGUF9LRVJORUwpOwo+ID4gKwlpZiAoIXN0YXRlKQo+ID4gKwkJ cmV0dXJuIE5VTEw7Cj4gPiArCj4gPiArCV9fZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX2R1 cGxpY2F0ZV9zdGF0ZShjb25uZWN0b3IsICZzdGF0ZS0+YmFzZSk7Cj4gPiArCXJldHVybiAmc3Rh dGUtPmJhc2U7Cj4gPiArfQo+IAo+IFlvdSBkaWRuJ3QgYWRkIHRoZSBjb3JyZXNwb25kaW5nIGNo ZWNrcyBmb3IgdGhlIG5ldwo+IGludGVsX3R2X2Nvbm5lY3Rvcl9zdGF0ZSBmaWVsZHMgdG8gaW50 ZWxfdHZfYXRvbWljX2NoZWNrKCkuIEkgc3VwcG9zZQo+IHRoYXQncyBvayBzaW5jZSBzb21ldGhp bmcgcmVzdWx0aW5nIGluIGEgY2hhbmdlIGluIHRob3NlIHdpbGwgZm9yY2UgYQo+IG1vZGVzZXQg YW55d2F5OgoKVGhlIG5ldyBmaWVsZHMgYXJlIG5vdCB2aXNpYmxlIHRvIHRoZSB1c2VyIHNvIG5v dGhpbmcgZXh0ZXJuYWwKd2lsbCBjaGFuZ2UgdGhlbS4gaW50ZWxfdHZfY29tcHV0ZV9jb25maWco KSAod2hpY2ggaXMgZXhlY3V0ZWQKYWZ0ZXIgLmF0b21pY19jaGVjaygpKSB3aWxsIGp1c3QgcmVj b21wdXRlIHRoZW0gYmFzZWQgb24gb3RoZXIKdXNlciB2aXNpYmxlIHN0YXRlLgoKPiAKPiBSZXZp ZXdlZC1ieTogSW1yZSBEZWFrIDxpbXJlLmRlYWtAaW50ZWwuY29tPgo+IAo+ID4gKwo+ID4gIHN0 YXRpYyBzdHJ1Y3QgaW50ZWxfdHYgKmVuY190b190dihzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5j b2RlcikKPiA+ICB7Cj4gPiAgCXJldHVybiBjb250YWluZXJfb2YoZW5jb2Rlciwgc3RydWN0IGlu dGVsX3R2LCBiYXNlKTsKPiA+IEBAIC0xMTI5LDYgKzExNjcsOSBAQCBpbnRlbF90dl9jb21wdXRl X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiA+ICAJCQlzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCj4gPiAgCQkJc3RydWN0IGRybV9jb25uZWN0b3Jf c3RhdGUgKmNvbm5fc3RhdGUpCj4gPiAgewo+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPiA+ICsJc3RydWN0IGludGVs X3R2X2Nvbm5lY3Rvcl9zdGF0ZSAqdHZfY29ubl9zdGF0ZSA9Cj4gPiArCQl0b19pbnRlbF90dl9j b25uZWN0b3Jfc3RhdGUoY29ubl9zdGF0ZSk7Cj4gPiAgCWNvbnN0IHN0cnVjdCB0dl9tb2RlICp0 dl9tb2RlID0gaW50ZWxfdHZfbW9kZV9maW5kKGNvbm5fc3RhdGUpOwo+ID4gIAlzdHJ1Y3QgZHJt X2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9Cj4gPiAgCQkmcGlwZV9jb25maWctPmJhc2Uu YWRqdXN0ZWRfbW9kZTsKPiA+IEBAIC0xMTQ5LDYgKzExOTAsNDMgQEAgaW50ZWxfdHZfY29tcHV0 ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gPiAgCXBpcGVfY29uZmln LT5wb3J0X2Nsb2NrID0gdHZfbW9kZS0+Y2xvY2s7Cj4gPiAgCj4gPiAgCWludGVsX3R2X21vZGVf dG9fbW9kZShhZGp1c3RlZF9tb2RlLCB0dl9tb2RlKTsKPiA+ICsJZHJtX21vZGVfc2V0X2NydGNp bmZvKGFkanVzdGVkX21vZGUsIDApOwo+ID4gKwo+ID4gKwlpZiAoSVNfR0VOMyhkZXZfcHJpdikg JiYgaGRpc3BsYXkgPiAxMDI0KSB7Cj4gPiArCQlpbnQgZXh0cmEsIHRvcCwgYm90dG9tOwo+ID4g Kwo+ID4gKwkJZXh0cmEgPSBhZGp1c3RlZF9tb2RlLT5jcnRjX3ZkaXNwbGF5IC0gdmRpc3BsYXk7 Cj4gPiArCj4gPiArCQlpZiAoZXh0cmEgPCAwKSB7Cj4gPiArCQkJRFJNX0RFQlVHX0tNUygiTm8g dmVydGljYWwgc2NhbGluZyBmb3IgPjEwMjQgcGl4ZWwgd2lkZSBtb2Rlc1xuIik7Cj4gPiArCQkJ cmV0dXJuIGZhbHNlOwo+ID4gKwkJfQo+ID4gKwo+ID4gKwkJLyogTmVlZCB0byB0dXJuIG9mZiB0 aGUgdmVydGljYWwgZmlsdGVyIGFuZCBjZW50ZXIgdGhlIGltYWdlICovCj4gPiArCj4gPiArCQkv KiBBdHRlbXB0IHRvIG1haW50YWluIHRoZSByZWxhdGl2ZSBzaXplcyBvZiB0aGUgbWFyZ2lucyAq Lwo+ID4gKwkJdG9wID0gY29ubl9zdGF0ZS0+dHYubWFyZ2lucy50b3A7Cj4gPiArCQlib3R0b20g PSBjb25uX3N0YXRlLT50di5tYXJnaW5zLmJvdHRvbTsKPiA+ICsKPiA+ICsJCWlmICh0b3AgKyBi b3R0b20pCj4gPiArCQkJdG9wID0gZXh0cmEgKiB0b3AgLyAodG9wICsgYm90dG9tKTsKPiA+ICsJ CWVsc2UKPiA+ICsJCQl0b3AgPSBleHRyYSAvIDI7Cj4gPiArCQlib3R0b20gPSBleHRyYSAtIHRv cDsKPiA+ICsKPiA+ICsJCXR2X2Nvbm5fc3RhdGUtPm1hcmdpbnMudG9wID0gdG9wOwo+ID4gKwkJ dHZfY29ubl9zdGF0ZS0+bWFyZ2lucy5ib3R0b20gPSBib3R0b207Cj4gPiArCj4gPiArCQl0dl9j b25uX3N0YXRlLT5ieXBhc3NfdmZpbHRlciA9IHRydWU7Cj4gPiArCj4gPiArCQlpZiAoIXR2X21v ZGUtPnByb2dyZXNzaXZlKQo+ID4gKwkJCWFkanVzdGVkX21vZGUtPmZsYWdzIHw9IERSTV9NT0RF X0ZMQUdfSU5URVJMQUNFOwo+ID4gKwl9IGVsc2Ugewo+ID4gKwkJdHZfY29ubl9zdGF0ZS0+bWFy Z2lucy50b3AgPSBjb25uX3N0YXRlLT50di5tYXJnaW5zLnRvcDsKPiA+ICsJCXR2X2Nvbm5fc3Rh dGUtPm1hcmdpbnMuYm90dG9tID0gY29ubl9zdGF0ZS0+dHYubWFyZ2lucy5ib3R0b207Cj4gPiAr Cj4gPiArCQl0dl9jb25uX3N0YXRlLT5ieXBhc3NfdmZpbHRlciA9IGZhbHNlOwo+ID4gKwl9Cj4g PiAgCj4gPiAgCURSTV9ERUJVR19LTVMoIlRWIG1vZGU6XG4iKTsKPiA+ICAJZHJtX21vZGVfZGVi dWdfcHJpbnRtb2RlbGluZShhZGp1c3RlZF9tb2RlKTsKPiA+IEBAIC0xMjIyLDggKzEzMDAsOCBA QCBpbnRlbF90dl9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwK PiA+ICAJCQkJICBjb25uX3N0YXRlLT50di5tYXJnaW5zLmxlZnQsCj4gPiAgCQkJCSAgY29ubl9z dGF0ZS0+dHYubWFyZ2lucy5yaWdodCk7Cj4gPiAgCWludGVsX3R2X3NjYWxlX21vZGVfdmVydChh ZGp1c3RlZF9tb2RlLCB2ZGlzcGxheSwKPiA+IC0JCQkJIGNvbm5fc3RhdGUtPnR2Lm1hcmdpbnMu dG9wLAo+ID4gLQkJCQkgY29ubl9zdGF0ZS0+dHYubWFyZ2lucy5ib3R0b20pOwo+ID4gKwkJCQkg dHZfY29ubl9zdGF0ZS0+bWFyZ2lucy50b3AsCj4gPiArCQkJCSB0dl9jb25uX3N0YXRlLT5tYXJn aW5zLmJvdHRvbSk7Cj4gPiAgCWRybV9tb2RlX3NldF9jcnRjaW5mbyhhZGp1c3RlZF9tb2RlLCAw KTsKPiA+ICAJYWRqdXN0ZWRfbW9kZS0+bmFtZVswXSA9ICdcMCc7Cj4gPiAgCj4gPiBAQCAtMTMx Niw4ICsxMzk0LDEwIEBAIHN0YXRpYyB2b2lkIGludGVsX3R2X3ByZV9lbmFibGUoc3RydWN0IGlu dGVsX2VuY29kZXIgKmVuY29kZXIsCj4gPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+ID4gIAlzdHJ1Y3QgaW50ZWxfY3J0 YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMocGlwZV9jb25maWctPmJhc2UuY3J0Yyk7Cj4g PiAgCXN0cnVjdCBpbnRlbF90diAqaW50ZWxfdHYgPSBlbmNfdG9fdHYoZW5jb2Rlcik7Cj4gPiAr CWNvbnN0IHN0cnVjdCBpbnRlbF90dl9jb25uZWN0b3Jfc3RhdGUgKnR2X2Nvbm5fc3RhdGUgPQo+ ID4gKwkJdG9faW50ZWxfdHZfY29ubmVjdG9yX3N0YXRlKGNvbm5fc3RhdGUpOwo+ID4gIAljb25z dCBzdHJ1Y3QgdHZfbW9kZSAqdHZfbW9kZSA9IGludGVsX3R2X21vZGVfZmluZChjb25uX3N0YXRl KTsKPiA+IC0JdTMyIHR2X2N0bDsKPiA+ICsJdTMyIHR2X2N0bCwgdHZfZmlsdGVyX2N0bDsKPiA+ ICAJdTMyIHNjY3RsMSwgc2NjdGwyLCBzY2N0bDM7Cj4gPiAgCWludCBpLCBqOwo+ID4gIAljb25z dCBzdHJ1Y3QgdmlkZW9fbGV2ZWxzICp2aWRlb19sZXZlbHM7Cj4gPiBAQCAtMTQyNSwxNiArMTUw NSwyMCBAQCBzdGF0aWMgdm9pZCBpbnRlbF90dl9wcmVfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNv ZGVyICplbmNvZGVyLAo+ID4gIAlhc3NlcnRfcGlwZV9kaXNhYmxlZChkZXZfcHJpdiwgaW50ZWxf Y3J0Yy0+cGlwZSk7Cj4gPiAgCj4gPiAgCS8qIEZpbHRlciBjdGwgbXVzdCBiZSBzZXQgYmVmb3Jl IFRWX1dJTl9TSVpFICovCj4gPiAtCUk5MTVfV1JJVEUoVFZfRklMVEVSX0NUTF8xLCBUVl9BVVRP X1NDQUxFKTsKPiA+ICsJdHZfZmlsdGVyX2N0bCA9IFRWX0FVVE9fU0NBTEU7Cj4gPiArCWlmICh0 dl9jb25uX3N0YXRlLT5ieXBhc3NfdmZpbHRlcikKPiA+ICsJCXR2X2ZpbHRlcl9jdGwgfD0gVFZf Vl9GSUxURVJfQllQQVNTOwo+ID4gKwlJOTE1X1dSSVRFKFRWX0ZJTFRFUl9DVExfMSwgdHZfZmls dGVyX2N0bCk7Cj4gPiArCj4gPiAgCXhzaXplID0gdHZfbW9kZS0+aGJsYW5rX3N0YXJ0IC0gdHZf bW9kZS0+aGJsYW5rX2VuZDsKPiA+ICAJeXNpemUgPSBpbnRlbF90dl9tb2RlX3ZkaXNwbGF5KHR2 X21vZGUpOwo+ID4gIAo+ID4gIAl4cG9zID0gY29ubl9zdGF0ZS0+dHYubWFyZ2lucy5sZWZ0Owo+ ID4gLQl5cG9zID0gY29ubl9zdGF0ZS0+dHYubWFyZ2lucy50b3A7Cj4gPiArCXlwb3MgPSB0dl9j b25uX3N0YXRlLT5tYXJnaW5zLnRvcDsKPiA+ICAJeHNpemUgLT0gKGNvbm5fc3RhdGUtPnR2Lm1h cmdpbnMubGVmdCArCj4gPiAgCQkgIGNvbm5fc3RhdGUtPnR2Lm1hcmdpbnMucmlnaHQpOwo+ID4g LQl5c2l6ZSAtPSAoY29ubl9zdGF0ZS0+dHYubWFyZ2lucy50b3AgKwo+ID4gLQkJICBjb25uX3N0 YXRlLT50di5tYXJnaW5zLmJvdHRvbSk7Cj4gPiArCXlzaXplIC09ICh0dl9jb25uX3N0YXRlLT5t YXJnaW5zLnRvcCArCj4gPiArCQkgIHR2X2Nvbm5fc3RhdGUtPm1hcmdpbnMuYm90dG9tKTsKPiA+ ICAJSTkxNV9XUklURShUVl9XSU5fUE9TLCAoeHBvczw8MTYpfHlwb3MpOwo+ID4gIAlJOTE1X1dS SVRFKFRWX1dJTl9TSVpFLCAoeHNpemU8PDE2KXx5c2l6ZSk7Cj4gPiAgCj4gPiBAQCAtMTcwMSw3 ICsxNzg1LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX2Z1bmNzIGludGVs X3R2X2Nvbm5lY3Rvcl9mdW5jcyA9IHsKPiA+ICAJLmRlc3Ryb3kgPSBpbnRlbF9jb25uZWN0b3Jf ZGVzdHJveSwKPiA+ICAJLmZpbGxfbW9kZXMgPSBkcm1faGVscGVyX3Byb2JlX3NpbmdsZV9jb25u ZWN0b3JfbW9kZXMsCj4gPiAgCS5hdG9taWNfZGVzdHJveV9zdGF0ZSA9IGRybV9hdG9taWNfaGVs cGVyX2Nvbm5lY3Rvcl9kZXN0cm95X3N0YXRlLAo+ID4gLQkuYXRvbWljX2R1cGxpY2F0ZV9zdGF0 ZSA9IGRybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9kdXBsaWNhdGVfc3RhdGUsCj4gPiArCS5h dG9taWNfZHVwbGljYXRlX3N0YXRlID0gaW50ZWxfdHZfY29ubmVjdG9yX2R1cGxpY2F0ZV9zdGF0 ZSwKPiA+ICB9Owo+ID4gIAo+ID4gIHN0YXRpYyBpbnQgaW50ZWxfdHZfYXRvbWljX2NoZWNrKHN0 cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gPiAtLSAKPiA+IDIuMTguMQo+ID4gCj4g PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+ID4gSW50 ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+ID4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+ ID4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1n ZngKCi0tIApWaWxsZSBTeXJqw6Rsw6QKSW50ZWwKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vZHJpLWRldmVsCg==