From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v2 05/11] drm: create hdmi output property Date: Tue, 30 May 2017 19:36:38 +0300 Message-ID: <20170530163638.GG12629@intel.com> References: <1496146430-11430-1-git-send-email-shashank.sharma@intel.com> <1496146430-11430-6-git-send-email-shashank.sharma@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: <1496146430-11430-6-git-send-email-shashank.sharma@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Shashank Sharma Cc: Daniel Vetter , intel-gfx@lists.freedesktop.org, Jose Abreu , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gVHVlLCBNYXkgMzAsIDIwMTcgYXQgMDU6NDM6NDRQTSArMDUzMCwgU2hhc2hhbmsgU2hhcm1h IHdyb3RlOgo+IEhETUkgZGlzcGxheXMgY2FuIHN1cHBvcnQgdmFyaW91cyBvdXRwdXQgdHlwZXMs IGJhc2VkIG9uCj4gdGhlIGNvbG9yIHNwYWNlIGFuZCBzdWJzYW1wbGluZyB0eXBlLiBUaGUgcG9z c2libGUKPiBvdXRwdXRzIGZyb20gYSBIRE1JIDIuMCBtb25pdG9yIGNvdWxkIGJlOgo+ICAtIFJH Qgo+ICAtIFlDQkNSIDQ0NAo+ICAtIFlDQkNSIDQyMgo+ICAtIFlDQkNSIDQyMAo+IAo+IFRoaXMg cGF0Y2ggYWRkcyBhIGRybSBwcm9wZXJ0eSwgdXNpbmcgd2hpY2gsIGEgdXNlcnNwYWNlCgpJIHRo aW5rIHdlIHNob3VsZCBhZGQgdGhlIDQ6MjowIG9ubHkgbW9kZSBzdXBwb3J0IGZpcnN0IHNpbmNl IHRoYXQKZG9lc24ndCByZXF1aXJlIG5ldyB1YXBpLiBUaGUgdWFwaSBzdHVmZiBwcm9iYWJseSBu ZWVkcyBtb3JlIGNhcmVmdWwKdGhvdWdodCBhcyB3ZSBtaWdodCB3YW50IHRvIGNvbnNpZGVyIGV4 cG9zaW5nIG1vcmUgb2YgdGhlCmNvbG9yaW1ldHJ5IHN0dWZmIHN1cHBvcnRlZCBieSB0aGUgSERN SSBpbmZvZnJhbWVzLCBhbmQgRFAgTVNBIE1JU0MKYW5kIFZTQyBTRFAuCgo+IGNhbiBzcGVjaWZ5 IGl0cyBwcmVmZXJlbmNlLCBmb3IgdGhlIEhETUkgb3V0cHV0IHR5cGUuCj4gVGhlIG91dHB1dCB0 eXBlIGVudW1zIGFyZSBzaW1pbGFyIHRvIHRoZSBtZW50aW9uZWQgb3V0cHV0cwo+IGFib3ZlLiBU byBoYW5kbGUgdmFyaW91cyBzdWJzYW1wbGluZyBvZiBZQ0JDUiBvdXRwdXQgdHlwZXMsCj4gdGhp cyBwcm9wZXJ0eSBhbGxvd3MgdHdvIHNwZWNpYWwgY2FzZXM6Cj4gIC0gRFJNX0hETUlfT1VUUFVU X1lDQkNSX0hRCj4gVGhpcyBpbmRpY2F0ZXMgcHJlZmVycmVkIG91dHB1dCBzaG91bGQgYmUgWUNC Q1Igb3V0cHV0LCB3aXRoIGhpZ2hlc3QKPiBzdWJzYW1wbGluZyByYXRlIGJ5IHRoZSBzb3VyY2Uv c2luaywgd2hpY2ggY2FuIGJlIHR5cGljYWxseToKPiAgLSB5Y2JjcjQ0NAo+ICAtIHljYmNyNDIy Cj4gIC0geWNiY3I0MjAKPiAgLSBEUk1fSERNSV9PVVRQVVRfWUNCQ1JfTFEKPiBUaGlzIGluZGlj YXRlcyBwcmVmZXJyZWQgb3V0cHV0IHNob3VsZCBiZSBZQ0JDUiBvdXRwdXQsIHdpdGggbG93ZXN0 Cj4gc3Vic2FtcGxpbmcgcmF0ZSBzdXBwb3J0ZWQgYnkgc291cmNlL3NpbmssIHdoaWNoIGNhbiBi ZToKPiAgLSB5Y2JjcjQyMAo+ICAtIHljYmNyNDIyCj4gIC0geWNiY3I0NDQKPiAKPiBEZWZhdWx0 IHZhbHVlIG9mIHRoZSBwcm9wZXJ0eSBpcyBzZXQgdG8gMCA9IFJHQiwgc28gbm8gY2hhbmdlcyBp ZiB5b3UKPiBkb250IHNldCB0aGUgcHJvcGVydHkuCj4gCj4gVjI6IEFkZGVkIGRlc2NyaXB0aW9u IGZvciB0aGUgbmV3IHZhcmlhYmxlIHRvIGFkZHJlc3MgYnVpbGQgd2FybmluZwo+IAo+IENjOiBW aWxsZSBTeXJqYWxhIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiBDYzogSm9zZSBB YnJldSA8am9hYnJldUBzeW5vcHN5cy5jb20+Cj4gQ2M6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52 ZXR0ZXJAaW50ZWwuY29tPgo+IFNpZ25lZC1vZmYtYnk6IFNoYXNoYW5rIFNoYXJtYSA8c2hhc2hh bmsuc2hhcm1hQGludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMu YyAgICAgICAgfCAgMiArKwo+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYyB8 ICA0ICsrKysKPiAgZHJpdmVycy9ncHUvZHJtL2RybV9jb25uZWN0b3IuYyAgICAgfCAzMiArKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ICBpbmNsdWRlL2RybS9kcm1fY29ubmVjdG9y LmggICAgICAgICB8IDE4ICsrKysrKysrKysrKysrKysrKwo+ICBpbmNsdWRlL2RybS9kcm1fbW9k ZV9jb25maWcuaCAgICAgICB8ICA1ICsrKysrCj4gIDUgZmlsZXMgY2hhbmdlZCwgNjEgaW5zZXJ0 aW9ucygrKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jIGIv ZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYwo+IGluZGV4IGUxNjM3MDEuLjhjNGUwNDAgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYwo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9kcm1fYXRvbWljLmMKPiBAQCAtMTE5Miw2ICsxMTkyLDggQEAgaW50IGRybV9hdG9t aWNfY29ubmVjdG9yX3NldF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9y LAo+ICAJCXN0YXRlLT5waWN0dXJlX2FzcGVjdF9yYXRpbyA9IHZhbDsKPiAgCX0gZWxzZSBpZiAo cHJvcGVydHkgPT0gY29ubmVjdG9yLT5zY2FsaW5nX21vZGVfcHJvcGVydHkpIHsKPiAgCQlzdGF0 ZS0+c2NhbGluZ19tb2RlID0gdmFsOwo+ICsJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBjb25maWct PmhkbWlfb3V0cHV0X3Byb3BlcnR5KSB7Cj4gKwkJc3RhdGUtPmhkbWlfb3V0cHV0ID0gdmFsOwo+ ICAJfSBlbHNlIGlmIChjb25uZWN0b3ItPmZ1bmNzLT5hdG9taWNfc2V0X3Byb3BlcnR5KSB7Cj4g IAkJcmV0dXJuIGNvbm5lY3Rvci0+ZnVuY3MtPmF0b21pY19zZXRfcHJvcGVydHkoY29ubmVjdG9y LAo+ICAJCQkJc3RhdGUsIHByb3BlcnR5LCB2YWwpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hl bHBlci5jCj4gaW5kZXggNjM2ZTU2MS4uODZiMTc4MCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRv bWljX2hlbHBlci5jCj4gQEAgLTU2Nyw2ICs1NjcsMTAgQEAgZHJtX2F0b21pY19oZWxwZXJfY2hl Y2tfbW9kZXNldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJCQlpZiAob2xkX2Nvbm5lY3Rv cl9zdGF0ZS0+bGlua19zdGF0dXMgIT0KPiAgCQkJICAgIG5ld19jb25uZWN0b3Jfc3RhdGUtPmxp bmtfc3RhdHVzKQo+ICAJCQkJbmV3X2NydGNfc3RhdGUtPmNvbm5lY3RvcnNfY2hhbmdlZCA9IHRy dWU7Cj4gKwo+ICsJCQlpZiAob2xkX2Nvbm5lY3Rvcl9zdGF0ZS0+aGRtaV9vdXRwdXQgIT0KPiAr CQkJICAgIG5ld19jb25uZWN0b3Jfc3RhdGUtPmhkbWlfb3V0cHV0KQo+ICsJCQkJbmV3X2NydGNf c3RhdGUtPmNvbm5lY3RvcnNfY2hhbmdlZCA9IHRydWU7Cj4gIAkJfQo+ICAKPiAgCQlpZiAoZnVu Y3MtPmF0b21pY19jaGVjaykKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9jb25u ZWN0b3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY29ubmVjdG9yLmMKPiBpbmRleCA1Y2Q2MWFm Li5mM2M1OTI4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY29ubmVjdG9yLmMK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2Nvbm5lY3Rvci5jCj4gQEAgLTIyNyw2ICsyMjcs MTEgQEAgaW50IGRybV9jb25uZWN0b3JfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJ CQkJCSAgICAgIGNvbmZpZy0+ZWRpZF9wcm9wZXJ0eSwKPiAgCQkJCQkgICAgICAwKTsKPiAgCj4g KwlpZiAoY29ubmVjdG9yX3R5cGUgIT0gRFJNX01PREVfQ09OTkVDVE9SX1ZJUlRVQUwpCj4gKwkJ ZHJtX29iamVjdF9hdHRhY2hfcHJvcGVydHkoJmNvbm5lY3Rvci0+YmFzZSwKPiArCQkJCQkgICBj b25maWctPmhkbWlfb3V0cHV0X3Byb3BlcnR5LAo+ICsJCQkJCSAgIDApOwo+ICsKPiAgCWRybV9v YmplY3RfYXR0YWNoX3Byb3BlcnR5KCZjb25uZWN0b3ItPmJhc2UsCj4gIAkJCQkgICAgICBjb25m aWctPmRwbXNfcHJvcGVydHksIDApOwo+ICAKPiBAQCAtNjE3LDYgKzYyMiwyNiBAQCBzdGF0aWMg Y29uc3Qgc3RydWN0IGRybV9wcm9wX2VudW1fbGlzdCBkcm1fbGlua19zdGF0dXNfZW51bV9saXN0 W10gPSB7Cj4gIH07Cj4gIERSTV9FTlVNX05BTUVfRk4oZHJtX2dldF9saW5rX3N0YXR1c19uYW1l LCBkcm1fbGlua19zdGF0dXNfZW51bV9saXN0KQo+ICAKPiArc3RhdGljIGNvbnN0IHN0cnVjdCBk cm1fcHJvcF9lbnVtX2xpc3QgZHJtX2hkbWlfb3V0cHV0X2VudW1fbGlzdFtdID0gewo+ICsJeyBE Uk1fSERNSV9PVVRQVVRfREVGQVVMVF9SR0IsICJvdXRwdXRfcmdiIiB9LAo+ICsJeyBEUk1fSERN SV9PVVRQVVRfWUNCQ1I0NDQsICJvdXRwdXRfeWNiY3I0NDQiIH0sCj4gKwl7IERSTV9IRE1JX09V VFBVVF9ZQ0JDUjQyMiwgIm91dHB1dF95Y2JjcjQyMiIgfSwKPiArCXsgRFJNX0hETUlfT1VUUFVU X1lDQkNSNDIwLCAib3V0cHV0X3ljYmNyNDIwIiB9LAo+ICsJeyBEUk1fSERNSV9PVVRQVVRfWUNC Q1JfSFEsICJvdXRwdXRfeWNiY3JfaGlnaF9zdWJzYW1wbGluZyIgfSwKPiArCXsgRFJNX0hETUlf T1VUUFVUX1lDQkNSX0xRLCAib3V0cHV0X3ljYmNyX2xvd19zdWJzYW1wbGluZyIgfSwKPiArCXsg RFJNX0hETUlfT1VUUFVUX0lOVkFMSUQsICJpbnZhbGlkX291dHB1dCIgfSwKPiArfTsKPiArCj4g Ky8qKgo+ICsgKiBkcm1fZ2V0X2hkbWlfb3V0cHV0X25hbWUgLSByZXR1cm4gYSBzdHJpbmcgZm9y IGEgZ2l2ZW4gaGRtaSBvdXRwdXQgZW51bQo+ICsgKiBAdHlwZTogZW51bSBvZiBvdXRwdXQgdHlw ZQo+ICsgKi8KPiArY29uc3QgY2hhciAqZHJtX2dldF9oZG1pX291dHB1dF9uYW1lKGVudW0gZHJt X2hkbWlfb3V0cHV0X3R5cGUgdHlwZSkKPiArewo+ICsJcmV0dXJuIGRybV9oZG1pX291dHB1dF9l bnVtX2xpc3RbdHlwZV0ubmFtZTsKPiArfQo+ICtFWFBPUlRfU1lNQk9MKGRybV9nZXRfaGRtaV9v dXRwdXRfbmFtZSk7Cj4gKwo+ICAvKioKPiAgICogZHJtX2Rpc3BsYXlfaW5mb19zZXRfYnVzX2Zv cm1hdHMgLSBzZXQgdGhlIHN1cHBvcnRlZCBidXMgZm9ybWF0cwo+ICAgKiBAaW5mbzogZGlzcGxh eSBpbmZvIHRvIHN0b3JlIGJ1cyBmb3JtYXRzIGluCj4gQEAgLTc4OSw2ICs4MTQsMTMgQEAgaW50 IGRybV9jb25uZWN0b3JfY3JlYXRlX3N0YW5kYXJkX3Byb3BlcnRpZXMoc3RydWN0IGRybV9kZXZp Y2UgKmRldikKPiAgCQlyZXR1cm4gLUVOT01FTTsKPiAgCWRldi0+bW9kZV9jb25maWcubGlua19z dGF0dXNfcHJvcGVydHkgPSBwcm9wOwo+ICAKPiArCXByb3AgPSBkcm1fcHJvcGVydHlfY3JlYXRl X2VudW0oZGV2LCAwLCAiaGRtaV9vdXRwdXRfZm9ybWF0IiwKPiArCQkJCQlkcm1faGRtaV9vdXRw dXRfZW51bV9saXN0LAo+ICsJCQkJCUFSUkFZX1NJWkUoZHJtX2hkbWlfb3V0cHV0X2VudW1fbGlz dCkpOwo+ICsJaWYgKCFwcm9wKQo+ICsJCXJldHVybiAtRU5PTUVNOwo+ICsJZGV2LT5tb2RlX2Nv bmZpZy5oZG1pX291dHB1dF9wcm9wZXJ0eSA9IHByb3A7Cj4gKwo+ICAJcmV0dXJuIDA7Cj4gIH0K PiAgCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9jb25uZWN0b3IuaCBiL2luY2x1ZGUv ZHJtL2RybV9jb25uZWN0b3IuaAo+IGluZGV4IDQ5Y2MzOGMuLmY3N2YyODMgMTAwNjQ0Cj4gLS0t IGEvaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oCj4gKysrIGIvaW5jbHVkZS9kcm0vZHJtX2Nv bm5lY3Rvci5oCj4gQEAgLTMxMyw2ICszMTMsMTcgQEAgc3RydWN0IGRybV90dl9jb25uZWN0b3Jf c3RhdGUgewo+ICAJdW5zaWduZWQgaW50IGh1ZTsKPiAgfTsKPiAgCj4gKy8qIEhETUkgb3V0cHV0 IHBpeGVsIGZvcm1hdCAqLwo+ICtlbnVtIGRybV9oZG1pX291dHB1dF90eXBlIHsKPiArCURSTV9I RE1JX09VVFBVVF9ERUZBVUxUX1JHQiwgLyogZGVmYXVsdCBSR0IgKi8KPiArCURSTV9IRE1JX09V VFBVVF9ZQ0JDUjQ0NCwgLyogWUNCQ1IgNDQ0ICovCj4gKwlEUk1fSERNSV9PVVRQVVRfWUNCQ1I0 MjIsIC8qIFlDQkNSIDQyMiAqLwo+ICsJRFJNX0hETUlfT1VUUFVUX1lDQkNSNDIwLCAvKiBZQ0JD UiA0MjAgKi8KPiArCURSTV9IRE1JX09VVFBVVF9ZQ0JDUl9IUSwgLyogSGlnaGVzdCBzdWJzYW1w bGVkIFlVViAqLwo+ICsJRFJNX0hETUlfT1VUUFVUX1lDQkNSX0xRLCAvKiBMb3dlc3Qgc3Vic2Ft cGxlZCBZVVYgKi8KPiArCURSTV9IRE1JX09VVFBVVF9JTlZBTElELCAvKiBHdWVzcyB3aGF0ID8g Ki8KPiArfTsKPiArCj4gIC8qKgo+ICAgKiBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAtIG11 dGFibGUgY29ubmVjdG9yIHN0YXRlCj4gICAqIEBjb25uZWN0b3I6IGJhY2twb2ludGVyIHRvIHRo ZSBjb25uZWN0b3IKPiBAQCAtMzU3LDYgKzM2OCwxMiBAQCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9z dGF0ZSB7Cj4gIAkgKiB1cHNjYWxpbmcsIG1vc3RseSB1c2VkIGZvciBidWlsdC1pbiBwYW5lbHMu Cj4gIAkgKi8KPiAgCXVuc2lnbmVkIGludCBzY2FsaW5nX21vZGU7Cj4gKwo+ICsJLyoqCj4gKwkg KiBAaGRtaV9vdXRwdXQ6IENvbm5lY3RvciBwcm9wZXJ0eSB0byBjb250cm9sIHRoZQo+ICsJICog SERNSSBvdXRwdXQgbW9kZSAoUkdCL1lDQkNSNDQ0LzQyMi80MjApLgo+ICsJICovCj4gKwllbnVt IGRybV9oZG1pX291dHB1dF90eXBlIGhkbWlfb3V0cHV0Owo+ICB9Owo+ICAKPiAgLyoqCj4gQEAg LTk3Niw2ICs5OTMsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZHJtX2Nvbm5lY3Rvcl91bnJlZmVy ZW5jZShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ICAKPiAgY29uc3QgY2hhciAq ZHJtX2dldF9jb25uZWN0b3Jfc3RhdHVzX25hbWUoZW51bSBkcm1fY29ubmVjdG9yX3N0YXR1cyBz dGF0dXMpOwo+ICBjb25zdCBjaGFyICpkcm1fZ2V0X3N1YnBpeGVsX29yZGVyX25hbWUoZW51bSBz dWJwaXhlbF9vcmRlciBvcmRlcik7Cj4gK2NvbnN0IGNoYXIgKmRybV9nZXRfaGRtaV9vdXRwdXRf bmFtZShlbnVtIGRybV9oZG1pX291dHB1dF90eXBlIHR5cGUpOwo+ICBjb25zdCBjaGFyICpkcm1f Z2V0X2RwbXNfbmFtZShpbnQgdmFsKTsKPiAgY29uc3QgY2hhciAqZHJtX2dldF9kdmlfaV9zdWJj b25uZWN0b3JfbmFtZShpbnQgdmFsKTsKPiAgY29uc3QgY2hhciAqZHJtX2dldF9kdmlfaV9zZWxl Y3RfbmFtZShpbnQgdmFsKTsKPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX21vZGVfY29u ZmlnLmggYi9pbmNsdWRlL2RybS9kcm1fbW9kZV9jb25maWcuaAo+IGluZGV4IDQyOTgxNzEuLjE4 ODcyNjEgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtX21vZGVfY29uZmlnLmgKPiArKysg Yi9pbmNsdWRlL2RybS9kcm1fbW9kZV9jb25maWcuaAo+IEBAIC03NDAsNiArNzQwLDExIEBAIHN0 cnVjdCBkcm1fbW9kZV9jb25maWcgewo+ICAJICogdGhlIHBvc2l0aW9uIG9mIHRoZSBvdXRwdXQg b24gdGhlIGhvc3QncyBzY3JlZW4uCj4gIAkgKi8KPiAgCXN0cnVjdCBkcm1fcHJvcGVydHkgKnN1 Z2dlc3RlZF95X3Byb3BlcnR5Owo+ICsJLyoqCj4gKwkgKiBAaGRtaV9vdXRwdXRfcHJvcGVydHk6 IG91dHB1dCBwaXhlbCBmb3JtYXQgZnJvbSBIRE1JIGRpc3BsYXkKPiArCSAqIERlZmF1bHQgaXMg c2V0IGZvciBSR0IKPiArCSAqLwo+ICsJc3RydWN0IGRybV9wcm9wZXJ0eSAqaGRtaV9vdXRwdXRf cHJvcGVydHk7Cj4gIAo+ICAJLyogZHVtYiBpb2N0bCBwYXJhbWV0ZXJzICovCj4gIAl1aW50MzJf dCBwcmVmZXJyZWRfZGVwdGgsIHByZWZlcl9zaGFkb3c7Cj4gLS0gCj4gMi43LjQKCi0tIApWaWxs ZSBTeXJqw6Rsw6QKSW50ZWwgT1RDCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2RyaS1kZXZlbAo=