From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v13 08/10] drm: Expose modes with aspect ratio, only if requested Date: Fri, 4 May 2018 23:19:45 +0300 Message-ID: <20180504201945.GC23723@intel.com> References: <1525243822-19308-1-git-send-email-ankit.k.nautiyal@intel.com> <1525243822-19308-9-git-send-email-ankit.k.nautiyal@intel.com> <20180503062625.GD12521@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20180503062625.GD12521@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Daniel Vetter Cc: "Nautiyal, Ankit K" , intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gVGh1LCBNYXkgMDMsIDIwMTggYXQgMDg6MjY6MjZBTSArMDIwMCwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiBPbiBXZWQsIE1heSAwMiwgMjAxOCBhdCAxMjoyMDoyMFBNICswNTMwLCBOYXV0aXlh bCwgQW5raXQgSyB3cm90ZToKPiA+IEZyb206IEFua2l0IE5hdXRpeWFsIDxhbmtpdC5rLm5hdXRp eWFsQGludGVsLmNvbT4KPiA+IAo+ID4gV2UgcGFyc2UgdGhlIEVESUQgYW5kIGFkZCBhbGwgdGhl IG1vZGVzIGluIHRoZSBjb25uZWN0b3IncyBtb2RlbGlzdC4KPiA+IFRoaXMgYWRkcyBDRUEgbW9k ZXMgd2l0aCBhc3BlY3QgcmF0aW8gaW5mb3JtYXRpb24gdG9vLCByZWdhcmRsZXNzIG9mCj4gPiB3 aGV0aGVyIHVzZXIgc3BhY2UgcmVxdWVzdGVkIHRoaXMgaW5mb3JtYXRpb24gb3Igbm90Lgo+ID4g Cj4gPiBUaGlzIHBhdGNoOgo+ID4gLXBydW5lcyB0aGUgbW9kZXMgd2l0aCBhc3BlY3QtcmF0aW8g aW5mb3JtYXRpb24sIGZyb20gYQo+ID4gIGNvbm5lY3RvcidzIG1vZGVsaXN0LCBpZiB0aGUgdXNl ci1zcGFjZSBoYXMgbm90IHNldCB0aGUgYXNwZWN0IHJhdGlvCj4gPiAgRFJNIGNsaWVudCBjYXAu IEhvd2V2ZXIgaWYgc3VjaCBhIG1vZGUgaXMgdW5pcXVlIGluIHRoZSBsaXN0LCBpdCBpcwo+ID4g IGtlcHQgaW4gdGhlIGxpc3QsIHdpdGggYXNwZWN0LXJhdGlvIGZsYWdzIHJlc2V0Lgo+ID4gLXBy ZXBhcmVzIGEgbGlzdCBvZiBleHBvc2VkIG1vZGVzLCB3aGljaCBpcyB1c2VkIHRvIGZpbmQgdW5p cXVlIG1vZGVzCj4gPiAgaWYgYXNwZWN0LXJhdGlvIGlzIG5vdCBhbGxvd2VkLgo+ID4gLWFkZHMg YSBuZXcgbGlzdF9oZWFkICdleHBvc2VkX2hlYWQnIGluIGRybV9tb2RlX2Rpc3BsYXksIHRvIHRy YXZlcnNlCj4gPiAgdGhlIGxpc3Qgb2YgZXhwb3NlZCBtb2Rlcy4KPiA+IAo+ID4gQ2M6IFZpbGxl IFN5cmphbGEgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+ID4gQ2M6IFNoYXNoYW5r IFNoYXJtYSA8c2hhc2hhbmsuc2hhcm1hQGludGVsLmNvbT4KPiA+IENjOiBKb3NlIEFicmV1IDxq b3NlLmFicmV1QHN5bm9wc3lzLmNvbT4KPiA+IAo+ID4gU2lnbmVkLW9mZi1ieTogQW5raXQgTmF1 dGl5YWwgPGFua2l0LmsubmF1dGl5YWxAaW50ZWwuY29tPgo+ID4gCj4gPiBWMzogQXMgc3VnZ2Vz dGVkIGJ5IFZpbGxlLCBtb2RpZmllZCB0aGUgbWVjaGFuaXNtIG9mIHBydW5pbmcgb2YgbW9kZXMK PiA+ICAgICB3aXRoIGFzcGVjdC1yYXRpbywgaWYgdGhlIGFzcGVjdC1yYXRpbyBpcyBub3Qgc3Vw cG9ydGVkLiBJbnN0ZWFkCj4gPiAgICAgb2Ygc3RyYWlnaHQgYXdheSBwcnVuaW5nIHN1Y2ggYSBt b2RlLCB0aGUgbW9kZSBpcyByZXRhaW5lZCB3aXRoCj4gPiAgICAgYXNwZWN0IHJhdGlvIGJpdHMg c2V0IHRvIHplcm8sIHByb3ZpZGVkIGl0IGlzIHVuaXF1ZS4KPiA+IFY0OiByZWJhc2UKPiA+IFY1 OiBBZGRyZXNzZWQgcmV2aWV3IGNvbW1lbnRzIGZyb20gVmlsbGU6Cj4gPiAgICAgLXVzZWQgYSBw b2ludGVyIHRvIHN0b3JlIGxhc3QgdmFsaWQgbW9kZS4KPiA+ICAgICAtYXZvaWRlZCwgbW9kaWZ5 aW5nIG9mIHBpY3R1cmVfYXNwZWN0X3JhdGlvIGluIGtlcm5lbCBtb2RlLAo+ID4gICAgICBpbnN0 ZWFkIG9ubHkgZmxhZ3MgYml0cyBvZiB1c2VyIG1vZGUgYXJlIHJlc2V0IChpZiBhc3BlY3QtcmF0 aW8KPiA+ICAgICAgaXMgbm90IHN1cHBvcnRlZCkuCj4gPiBWNjogQXMgc3VnZ2VzdGVkIGJ5IFZp bGxlLCBjb3JyZWN0ZWQgdGhlIG1vZGUgcHJ1bmluZyBsb2dpYyBhbmQKPiA+ICAgICBlbGFib3Jh dGVkIHRoZSBtb2RlIHBydW5pbmcgbG9naWMgYW5kIHRoZSBhc3N1bXB0aW9ucyB0YWtlbi4KPiA+ IFY3OiByZWJhc2UKPiA+IFY4OiByZWJhc2UKPiA+IFY5OiByZWJhc2UKPiA+IFYxMDogcmViYXNl Cj4gPiBWMTE6IEZpeGVkIHRoZSBpc3N1ZSBjYXVzZWQgaW4ga21zXzNkIHRlc3QsIGFuZCBlbmhh bmNlZCB0aGUgcHJ1bmluZwo+ID4gICAgICBsb2dpYyB0byBjb3JyZWN0bHkgaWRlbnRpZnkgYW5k IHBydW5lIG1vZGVzIHdpdGggYXNwZWN0LXJhdGlvLAo+ID4gICAgICBpZiBhc3BlY3QtcmF0aW8g Y2FwIGlzIG5vdCBzZXQuCj4gPiBWMTI6IEFzIHN1Z2dlc3RlZCBieSBWaWxsZSwgYWRkZWQgYW5v dGhlciBsaXN0X2hlYWQgaW4KPiA+ICAgICAgZHJtX21vZGVfZGlzcGxheSB0byB0cmF2ZXJzZSB0 aGUgbGlzdCBvZiBleHBvc2VkIG1vZGVzIGFuZAo+ID4gICAgICBhdm9pZGVkIGR1cGxpY2F0aW9u IG9mIG1vZGVzLgo+ID4gVjEzOiBNaW5vciBtb2RpZmljYXRpb25zLCBhcyBzdWdnZXN0ZWQgYnkg VmlsbGUuCj4gPiAtLS0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2Nvbm5lY3Rvci5jIHwgNDUg KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0KPiA+ICBpbmNsdWRlL2Ry bS9kcm1fbW9kZXMuaCAgICAgICAgIHwgMTMgKysrKysrKysrKysrCj4gPiAgMiBmaWxlcyBjaGFu Z2VkLCA1MSBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQo+ID4gCj4gPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2RybV9jb25uZWN0b3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1f Y29ubmVjdG9yLmMKPiA+IGluZGV4IGRmYzhjYTEuLjhjYTExNDkgMTAwNjQ0Cj4gPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vZHJtX2Nvbm5lY3Rvci5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v ZHJtX2Nvbm5lY3Rvci5jCj4gPiBAQCAtMTUzMSwxNSArMTUzMSwzNiBAQCBzdGF0aWMgc3RydWN0 IGRybV9lbmNvZGVyICpkcm1fY29ubmVjdG9yX2dldF9lbmNvZGVyKHN0cnVjdCBkcm1fY29ubmVj dG9yICpjb25uZQo+ID4gIAlyZXR1cm4gY29ubmVjdG9yLT5lbmNvZGVyOwo+ID4gIH0KPiA+ICAK PiA+IC1zdGF0aWMgYm9vbCBkcm1fbW9kZV9leHBvc2VfdG9fdXNlcnNwYWNlKGNvbnN0IHN0cnVj dCBkcm1fZGlzcGxheV9tb2RlICptb2RlLAo+ID4gLQkJCQkJIGNvbnN0IHN0cnVjdCBkcm1fZmls ZSAqZmlsZV9wcml2KQo+ID4gK3N0YXRpYyBib29sCj4gPiArZHJtX21vZGVfZXhwb3NlX3RvX3Vz ZXJzcGFjZShjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSwKPiA+ICsJCQkgICAg IGNvbnN0IHN0cnVjdCBsaXN0X2hlYWQgKmV4cG9ydF9saXN0LAo+ID4gKwkJCSAgICAgY29uc3Qg c3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCj4gPiAgewo+ID4gIAkvKgo+ID4gIAkgKiBJZiB1 c2VyLXNwYWNlIGhhc24ndCBjb25maWd1cmVkIHRoZSBkcml2ZXIgdG8gZXhwb3NlIHRoZSBzdGVy ZW8gM0QKPiA+ICAJICogbW9kZXMsIGRvbid0IGV4cG9zZSB0aGVtLgo+ID4gIAkgKi8KPiA+ICsK PiA+ICAJaWYgKCFmaWxlX3ByaXYtPnN0ZXJlb19hbGxvd2VkICYmIGRybV9tb2RlX2lzX3N0ZXJl byhtb2RlKSkKPiA+ICAJCXJldHVybiBmYWxzZTsKPiA+ICsJLyoKPiA+ICsJICogSWYgdXNlci1z cGFjZSBoYXNuJ3QgY29uZmlndXJlZCB0aGUgZHJpdmVyIHRvIGV4cG9zZSB0aGUgbW9kZXMKPiA+ ICsJICogd2l0aCBhc3BlY3QtcmF0aW8sIGRvbid0IGV4cG9zZSB0aGVtLiBIb3dldmVyIGlmIHN1 Y2ggYSBtb2RlCj4gPiArCSAqIGlzIHVuaXF1ZSwgbGV0IGl0IGJlIGV4cG9zZWQsIGJ1dCByZXNl dCB0aGUgYXNwZWN0LXJhdGlvIGZsYWdzCj4gPiArCSAqIHdoaWxlIHByZXBhcmluZyB0aGUgbGlz dCBvZiB1c2VyLW1vZGVzLgo+ID4gKwkgKi8KPiA+ICsJaWYgKCFmaWxlX3ByaXYtPmFzcGVjdF9y YXRpb19hbGxvd2VkICYmCj4gPiArCSAgICBtb2RlLT5waWN0dXJlX2FzcGVjdF9yYXRpbyAhPSBI RE1JX1BJQ1RVUkVfQVNQRUNUX05PTkUpIHsKPiA+ICsJCXN0cnVjdCBkcm1fZGlzcGxheV9tb2Rl ICptb2RlX2l0cjsKPiA+ICsKPiA+ICsJCWxpc3RfZm9yX2VhY2hfZW50cnkobW9kZV9pdHIsIGV4 cG9ydF9saXN0LCBleHBvcnRfaGVhZCkKPiAKPiBCeSB3YWxraW5nIHRoZSBsaXN0IG9mIG9ubHkg dGhlIG1vZGVzIGFscmVhZHkgYWRkZWQgdG8gdGhlIGV4cG9ydCBsaXN0IHdlCj4gcmVseSBvbiBB U1BFQ1RfTk9ORSBiZWluZyBmaXJzdCBpZiBwcmVzZW50LiBUaGF0IHNlZW1zIHRvIGJlIGEgYml0 Cj4gZnJhZ2lsZS4gSWYgd2UgaW5zdGVhZCB3YWxrIG92ZXIgYWxsIHByZXNlbnQgbW9kZXMgKGku ZS4gY29ubmVjdG9yLT5tb2RlcykKPiB0aGVuIEkgdGhpbmsgdGhhdCdzIGF2b2lkZWQuCgpJIGRv bid0IHRoaW5rIHRoYXQgd291bGQgd29yay4gSWYgd2UganVzdCB3YWxrIG92ZXIgYWxsIHRoZSBt b2RlcyB0aGVuCndvdWxkbid0IHdlIGFsd2F5cyBmaW5kIGEgZHVwbGljYXRlIHdoZW4gdGhlIHNh bWUgbW9kZSB3aXRoIHR3byBkaWZmZXJlbnQKYXNwZWN0IHJhdGlvcyBpcyBvbiB0aGUgbGlzdD8g QW5kIHRoZW4gd2UnZCBleHBvcnQgbmVpdGhlcj8gT3IgbWF5YmUgSQptaXN1bmRlcnN0b29kIHdo YXQgeW91IG1lYW4gaGVyZS4KClRvIG1lIGl0IHNlZW1zIGxpa2UgdGhlIGNvcnJlY3Qgb3B0aW9u IGlzIHRvIGNoZWNrIGFnYWluc3QgdGhlCmV4cG9ydF9saXN0IHVuY29uZGl0aW9uYWxseSwgbm8g bWF0dGVyIHdoZXRoZXIgdGhlIGN1cnJlbnQgbW9kZSBoYXMgdGhlCmFzcGVjdCByYXRpbyBzZXQg b3Igbm90LiBJZiBhbiBpZGVudGljYWwgbW9kZSBpcyBhbHJlYWR5IG9uIHRoZSBsaXN0CndlIGRv bid0IGV4cG9ydCBhZ2FpbiwgaWYgaXQncyBub3QgdGhlcmUgdGhlbiB3ZSBleHBvcnQuCgo+IFdp dGggdGhhdCBjaGFuZ2VkOgo+IAo+IFJldmlld2VkLWJ5OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwu dmV0dGVyQGZmd2xsLmNoPgo+IAo+ID4gKwkJCWlmIChkcm1fbW9kZV9tYXRjaChtb2RlX2l0ciwg bW9kZSwKPiA+ICsJCQkJCSAgIERSTV9NT0RFX01BVENIX1RJTUlOR1MgfAo+ID4gKwkJCQkJICAg RFJNX01PREVfTUFUQ0hfQ0xPQ0sgfAo+ID4gKwkJCQkJICAgRFJNX01PREVfTUFUQ0hfRkxBR1Mg fAo+ID4gKwkJCQkJICAgRFJNX01PREVfTUFUQ0hfM0RfRkxBR1MpKQo+ID4gKwkJCQlyZXR1cm4g ZmFsc2U7Cj4gPiArCX0KPiA+ICAKPiA+ICAJcmV0dXJuIHRydWU7Cj4gPiAgfQo+ID4gQEAgLTE1 NTksNiArMTU4MCw3IEBAIGludCBkcm1fbW9kZV9nZXRjb25uZWN0b3Ioc3RydWN0IGRybV9kZXZp Y2UgKmRldiwgdm9pZCAqZGF0YSwKPiA+ICAJc3RydWN0IGRybV9tb2RlX21vZGVpbmZvIHVfbW9k ZTsKPiA+ICAJc3RydWN0IGRybV9tb2RlX21vZGVpbmZvIF9fdXNlciAqbW9kZV9wdHI7Cj4gPiAg CXVpbnQzMl90IF9fdXNlciAqZW5jb2Rlcl9wdHI7Cj4gPiArCUxJU1RfSEVBRChleHBvcnRfbGlz dCk7Cj4gPiAgCj4gPiAgCWlmICghZHJtX2NvcmVfY2hlY2tfZmVhdHVyZShkZXYsIERSSVZFUl9N T0RFU0VUKSkKPiA+ICAJCXJldHVybiAtRUlOVkFMOwo+ID4gQEAgLTE2MDcsMjEgKzE2MjksMzAg QEAgaW50IGRybV9tb2RlX2dldGNvbm5lY3RvcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lk ICpkYXRhLAo+ID4gIAo+ID4gIAkvKiBkZWxheWVkIHNvIHdlIGdldCBtb2RlcyByZWdhcmRsZXNz IG9mIHByZS1maWxsX21vZGVzIHN0YXRlICovCj4gPiAgCWxpc3RfZm9yX2VhY2hfZW50cnkobW9k ZSwgJmNvbm5lY3Rvci0+bW9kZXMsIGhlYWQpCj4gPiAtCQlpZiAoZHJtX21vZGVfZXhwb3NlX3Rv X3VzZXJzcGFjZShtb2RlLCBmaWxlX3ByaXYpKQo+ID4gKwkJaWYgKGRybV9tb2RlX2V4cG9zZV90 b191c2Vyc3BhY2UobW9kZSwgJmV4cG9ydF9saXN0LAo+ID4gKwkJCQkJCSBmaWxlX3ByaXYpKSB7 Cj4gPiArCQkJbGlzdF9hZGRfdGFpbCgmbW9kZS0+ZXhwb3J0X2hlYWQsICZleHBvcnRfbGlzdCk7 Cj4gPiAgCQkJbW9kZV9jb3VudCsrOwo+ID4gKwkJfQo+ID4gIAo+ID4gIAkvKgo+ID4gIAkgKiBU aGlzIGlvY3RsIGlzIGNhbGxlZCB0d2ljZSwgb25jZSB0byBkZXRlcm1pbmUgaG93IG11Y2ggc3Bh Y2UgaXMKPiA+ICAJICogbmVlZGVkLCBhbmQgdGhlIDJuZCB0aW1lIHRvIGZpbGwgaXQuCj4gPiAr CSAqIFRoZSBtb2RlcyB0aGF0IG5lZWQgdG8gYmUgZXhwb3NlZCB0byB0aGUgdXNlciBhcmUgbWFp bnRhaW5lZCBpbiB0aGUKPiA+ICsJICogJ2V4cG9ydF9saXN0Jy4gV2hlbiB0aGUgaW9jdGwgaXMg Y2FsbGVkIGZpcnN0IHRpbWUgdG8gZGV0ZXJtaW5lIHRoZSwKPiA+ICsJICogc3BhY2UsIHRoZSBl eHBvcnRfbGlzdCBnZXRzIGZpbGxlZCwgdG8gZmluZCB0aGUgbm8ub2YgbW9kZXMuIEluIHRoZQo+ ID4gKwkgKiAybmQgdGltZSwgdGhlIHVzZXIgbW9kZXMgYXJlIGZpbGxlZCwgb25lIGJ5IG9uZSBm cm9tIHRoZSBleHBvcnRfbGlzdC4KPiA+ICAJICovCj4gPiAgCWlmICgob3V0X3Jlc3AtPmNvdW50 X21vZGVzID49IG1vZGVfY291bnQpICYmIG1vZGVfY291bnQpIHsKPiA+ICAJCWNvcGllZCA9IDA7 Cj4gPiAgCQltb2RlX3B0ciA9IChzdHJ1Y3QgZHJtX21vZGVfbW9kZWluZm8gX191c2VyICopKHVu c2lnbmVkIGxvbmcpb3V0X3Jlc3AtPm1vZGVzX3B0cjsKPiA+IC0JCWxpc3RfZm9yX2VhY2hfZW50 cnkobW9kZSwgJmNvbm5lY3Rvci0+bW9kZXMsIGhlYWQpIHsKPiA+IC0JCQlpZiAoIWRybV9tb2Rl X2V4cG9zZV90b191c2Vyc3BhY2UobW9kZSwgZmlsZV9wcml2KSkKPiA+IC0JCQkJY29udGludWU7 Cj4gPiAtCj4gPiArCQlsaXN0X2Zvcl9lYWNoX2VudHJ5KG1vZGUsICZleHBvcnRfbGlzdCwgZXhw b3J0X2hlYWQpIHsKPiA+ICAJCQlkcm1fbW9kZV9jb252ZXJ0X3RvX3Vtb2RlKCZ1X21vZGUsIG1v ZGUpOwo+ID4gKwkJCS8qCj4gPiArCQkJICogUmVzZXQgYXNwZWN0IHJhdGlvIGZsYWdzIG9mIHVz ZXItbW9kZSwgaWYgbW9kZXMgd2l0aAo+ID4gKwkJCSAqIGFzcGVjdC1yYXRpbyBhcmUgbm90IHN1 cHBvcnRlZC4KPiA+ICsJCQkgKi8KPiA+ICsJCQlkcm1fbW9kZV9maWx0ZXJfYXNwZWN0X3JhdGlv X2ZsYWdzKGZpbGVfcHJpdiwgJnVfbW9kZSk7Cj4gPiAgCQkJaWYgKGNvcHlfdG9fdXNlcihtb2Rl X3B0ciArIGNvcGllZCwKPiA+ICAJCQkJCSAmdV9tb2RlLCBzaXplb2YodV9tb2RlKSkpIHsKPiA+ ICAJCQkJcmV0ID0gLUVGQVVMVDsKPiA+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fbW9k ZXMuaCBiL2luY2x1ZGUvZHJtL2RybV9tb2Rlcy5oCj4gPiBpbmRleCAyZjc4YjdlLi5iMTU5ZmUw IDEwMDY0NAo+ID4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtX21vZGVzLmgKPiA+ICsrKyBiL2luY2x1 ZGUvZHJtL2RybV9tb2Rlcy5oCj4gPiBAQCAtNDExLDYgKzQxMSwxOSBAQCBzdHJ1Y3QgZHJtX2Rp c3BsYXlfbW9kZSB7Cj4gPiAgCSAqIEZpZWxkIGZvciBzZXR0aW5nIHRoZSBIRE1JIHBpY3R1cmUg YXNwZWN0IHJhdGlvIG9mIGEgbW9kZS4KPiA+ICAJICovCj4gPiAgCWVudW0gaGRtaV9waWN0dXJl X2FzcGVjdCBwaWN0dXJlX2FzcGVjdF9yYXRpbzsKPiA+ICsKPiA+ICsJLyoqCj4gPiArCSAqIEBl eHBvcnRfaGVhZDoKPiA+ICsJICoKPiA+ICsJICogc3RydWN0IGxpc3RfaGVhZCBmb3IgbW9kZXMg dG8gYmUgZXhwb3NlZCB0byB0aGUgdXNlcnNwYWNlLgo+ID4gKwkgKiBUaGlzIGlzIHRvIG1haW50 YWluIGEgbGlzdCBvZiBleHBvc2VkIG1vZGVzIHdoaWxlIHByZXBhcmluZwo+ID4gKwkgKiB1c2Vy LW1vZGUncyBsaXN0IGluIGRybV9tb2RlX2dldGNvbm5lY3RvciBpb2N0bC4gVGhlIHB1cnBvc2Ug b2YgdGhpcwo+ID4gKwkgKiBsaXN0X2hlYWQgb25seSBsaWVzIGluIHRoZSBpb2N0bCBmdW5jdGlv biwgYW5kIGlzIG5vdCBleHBlY3RlZCB0byBiZQo+ID4gKwkgKiB1c2VkIG91dHNpZGUgdGhlIGZ1 bmN0aW9uLgo+ID4gKwkgKiBPbmNlIHVzZWQsIHRoZSBzdGFsZSBwb2ludGVycyBhcmUgbm90IHJl c2V0LCBidXQgbGVmdCBhcyBpdCBpcywgdG8KPiA+ICsJICogYXZvaWQgb3ZlcmhlYWQgb2YgcHJv dGVjdGluZyBpdCBieSBtb2RlX2NvbmZpZy5tdXRleC4KPiA+ICsJICovCj4gPiArCXN0cnVjdCBs aXN0X2hlYWQgZXhwb3J0X2hlYWQ7Cj4gPiAgfTsKPiA+ICAKPiA+ICAvKioKPiA+IC0tIAo+ID4g Mi43LjQKPiA+IAo+ID4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KPiA+IGRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKPiA+IGRyaS1kZXZlbEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKPiA+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vZHJpLWRldmVsCj4gCj4gLS0gCj4gRGFuaWVsIFZldHRlcgo+IFNvZnR3YXJlIEVuZ2lu ZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgo+IGh0dHA6Ly9ibG9nLmZmd2xsLmNoCj4gX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBkcmktZGV2ZWwgbWFpbGlu ZyBsaXN0Cj4gZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCgotLSAKVmlsbGUgU3ly asOkbMOkCkludGVsCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdm eAo=