From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v2 2/9] drm/i915: Send GCP infoframes for deep color HDMI sinks Date: Mon, 25 May 2015 16:14:54 +0300 Message-ID: <20150525131454.GG18908@intel.com> References: <1430834787-10255-1-git-send-email-ville.syrjala@linux.intel.com> <1430834787-10255-3-git-send-email-ville.syrjala@linux.intel.com> <1432557172.3590.4.camel@gmail.com> <20150525124454.GE18908@intel.com> <1432559397.3590.9.camel@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id 5230F6E461 for ; Mon, 25 May 2015 06:15:05 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1432559397.3590.9.camel@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Ander Conselvan De Oliveira Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBNYXkgMjUsIDIwMTUgYXQgMDQ6MDk6NTdQTSArMDMwMCwgQW5kZXIgQ29uc2VsdmFu IERlIE9saXZlaXJhIHdyb3RlOgo+IE9uIE1vbiwgMjAxNS0wNS0yNSBhdCAxNTo0NCArMDMwMCwg VmlsbGUgU3lyasOkbMOkIHdyb3RlOgo+ID4gT24gTW9uLCBNYXkgMjUsIDIwMTUgYXQgMDM6MzI6 NTJQTSArMDMwMCwgQW5kZXIgQ29uc2VsdmFuIERlIE9saXZlaXJhIHdyb3RlOgo+ID4gPiBPbiBU dWUsIDIwMTUtMDUtMDUgYXQgMTc6MDYgKzAzMDAsIHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwu Y29tIHdyb3RlOgo+ID4gPiA+IEZyb206IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBs aW51eC5pbnRlbC5jb20+Cj4gPiA+ID4gCj4gPiA+ID4gR0NQIGluZm9mcmFtZXMgYXJlIHJlcXVp cmVkIHRvIGluZm9ybSB0aGUgSERNSSBzaW5rIGFib3V0IHRoZSBjb2xvcgo+ID4gPiA+IGRlcHRo Lgo+ID4gPiA+IAo+ID4gPiA+IFNlbmQgdGhlIEdDUCBpbmZvZnJhbWUgd2hlbmV2ZXIgdGhlIHNp bmsgc3VwcG9ydHMgYW55IGRlZXAgY29sb3IgbW9kZXMKPiA+ID4gPiBzaW5jZSBzdWNoIHNpbmtz IG11c3QgYW55d2F5IGJlIGNhcGFibGUgb2YgcmVjZWl2aW5nIHRoZW0uIEZvciBzaW5rcwo+ID4g PiA+IHRoYXQgZG9uJ3Qgc3VwcG9ydCBkZWVwIGNvbG9yIGxldCdzIHNraXAgdGhlIEdDUCBpbiBj YXNlIGl0IG1pZ2h0Cj4gPiA+ID4gY29uZnVzZSB0aGUgc2luaywgYWx0aG91Z2ggSERNSSAxLjQg c3BlYyBkb2VzIHNheSBhbGwgc2lua3MgbXVzdCBiZQo+ID4gPiA+IGNhcGFibGUgb2YgcmVjaXZp bmcgdGhlbS4gSW4gdGhlb3J5IHdlIGNvdWxkIHNraXAgdGhlIEdDUCBpbmZvZnJhbWUKPiA+ID4g PiBmb3IgZGVlcCBjb2xvciBzaW5rcyBpbiA4YnBjIG1vZGUgYXMgd2VsbCBzaW5jZSBzaW5rcyBt dXN0IGZhbGwgYmFjayB0bwo+ID4gPiA+IDhicGMgd2hlbmV2ZXIgR0NQIGlzbid0IHJlY2VpdmVk IGZvciBzb21lIHRpbWUuCj4gPiA+ID4gCj4gPiA+ID4gQlNwZWMgc2F5cyB3ZSBzaG91bGQgZGlz YWJsZSBHQ1AgYWZ0ZXIgZGlzYWJsaW5nIHRoZSBwb3J0LCBzbyBkbyB0aGF0IGFzCj4gPiA+ID4g d2VsbC4KPiA+ID4gPiAKPiA+ID4gPiB2Mjogcy9pbnRlbF9zZXRfZ2NwX2luZm9mcmFtZS9pbnRl bF9oZG1pX3NldF9nY3BfaW5mb2ZyYW1lLwo+ID4gPiA+ICAgICBSZWJhc2VkIGR1ZSB0byBjcnRj LT5jb25maWcgY2hhbmdlcwo+ID4gPiA+IAo+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IFZpbGxlIFN5 cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gPiA+ID4gLS0tCj4gPiA+ ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggICB8ICAzICsrCj4gPiA+ID4gIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYyB8IDc0ICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKwo+ID4gPiA+ICAyIGZpbGVzIGNoYW5nZWQsIDc3IGluc2VydGlv bnMoKykKPiA+ID4gPiAKPiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9yZWcuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiA+ID4gPiBpbmRl eCBlNjE5ZTQxLi5kY2Q5M2I1IDEwMDY0NAo+ID4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfcmVnLmgKPiA+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3Jl Zy5oCj4gPiA+ID4gQEAgLTYwMTAsNiArNjAxMCw5IEBAIGVudW0gc2tsX2Rpc3BfcG93ZXJfd2Vs bHMgewo+ID4gPiA+ICAjZGVmaW5lIF9WSURFT19ESVBfQ1RMX0EgICAgICAgICAweGUwMjAwCj4g PiA+ID4gICNkZWZpbmUgX1ZJREVPX0RJUF9EQVRBX0EgICAgICAgIDB4ZTAyMDgKPiA+ID4gPiAg I2RlZmluZSBfVklERU9fRElQX0dDUF9BICAgICAgICAgMHhlMDIxMAo+ID4gPiA+ICsjZGVmaW5l ICBHQ1BfQ09MT1JfSU5ESUNBVElPTgkJKDEgPDwgMikKPiA+ID4gPiArI2RlZmluZSAgR0NQX0RF RkFVTFRfUEhBU0VfRU5BQkxFCSgxIDw8IDEpCj4gPiA+ID4gKyNkZWZpbmUgIEdDUF9BVl9NVVRF CQkJKDEgPDwgMCkKPiA+ID4gPiAgCj4gPiA+ID4gICNkZWZpbmUgX1ZJREVPX0RJUF9DVExfQiAg ICAgICAgIDB4ZTEyMDAKPiA+ID4gPiAgI2RlZmluZSBfVklERU9fRElQX0RBVEFfQiAgICAgICAg MHhlMTIwOAo+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9o ZG1pLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMKPiA+ID4gPiBpbmRleCA3 OWNmNDQ1Li44N2M0OTA1IDEwMDY0NAo+ID4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2hkbWkuYwo+ID4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hk bWkuYwo+ID4gPiA+IEBAIC01NDEsNiArNTQxLDY2IEBAIHN0YXRpYyB2b2lkIGc0eF9zZXRfaW5m b2ZyYW1lcyhzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCj4gPiA+ID4gIAlpbnRlbF9oZG1p X3NldF9oZG1pX2luZm9mcmFtZShlbmNvZGVyLCBhZGp1c3RlZF9tb2RlKTsKPiA+ID4gPiAgfQo+ ID4gPiA+ICAKPiA+ID4gPiArc3RhdGljIGJvb2wgaGRtaV9zaW5rX2lzX2RlZXBfY29sb3Ioc3Ry dWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQo+ID4gPiA+ICt7Cj4gPiA+ID4gKwlzdHJ1Y3QgZHJt X2RldmljZSAqZGV2ID0gZW5jb2Rlci0+ZGV2Owo+ID4gPiA+ICsJc3RydWN0IGRybV9jb25uZWN0 b3IgKmNvbm5lY3RvcjsKPiA+ID4gPiArCj4gPiA+ID4gKwlXQVJOX09OKCFkcm1fbW9kZXNldF9p c19sb2NrZWQoJmRldi0+bW9kZV9jb25maWcuY29ubmVjdGlvbl9tdXRleCkpOwo+ID4gPiA+ICsK PiA+ID4gPiArCS8qCj4gPiA+ID4gKwkgKiBIRE1JIGNsb25pbmcgaXMgb25seSBzdXBwb3J0ZWQg b24gZzR4IHdoaWNoIGRvZXNuJ3QKPiA+ID4gPiArCSAqIHN1cHBvcnQgZGVlcCBjb2xvciBvciBH Q1AgaW5mb2ZyYW1lcyBhbnl3YXkgc28gbm8KPiA+ID4gPiArCSAqIG5lZWQgdG8gd29ycnkgYWJv dXQgbXVsdGlwbGUgSERNSSBzaW5rcyBoZXJlLgo+ID4gPiA+ICsJICovCj4gPiA+ID4gKwlsaXN0 X2Zvcl9lYWNoX2VudHJ5KGNvbm5lY3RvciwgJmRldi0+bW9kZV9jb25maWcuY29ubmVjdG9yX2xp c3QsIGhlYWQpCj4gPiA+ID4gKwkJaWYgKGNvbm5lY3Rvci0+ZW5jb2RlciA9PSBlbmNvZGVyKQo+ ID4gPiA+ICsJCQlyZXR1cm4gY29ubmVjdG9yLT5kaXNwbGF5X2luZm8uYnBjID4gODsKPiA+ID4g PiArCj4gPiA+ID4gKwlyZXR1cm4gZmFsc2U7Cj4gPiA+ID4gK30KPiA+ID4gPiArCj4gPiA+ID4g K3N0YXRpYyBib29sIGludGVsX2hkbWlfc2V0X2djcF9pbmZvZnJhbWUoc3RydWN0IGRybV9lbmNv ZGVyICplbmNvZGVyKQo+ID4gPiA+ICt7Cj4gPiA+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSBlbmNvZGVyLT5kZXYtPmRldl9wcml2YXRlOwo+ID4gPiA+ICsJc3RydWN0 IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGVuY29kZXItPmNydGMpOwo+ID4gPiA+ ICsJdTMyIHJlZywgdmFsID0gMDsKPiA+ID4gPiArCj4gPiA+ID4gKwlpZiAoSEFTX0RESShkZXZf cHJpdikpCj4gPiA+ID4gKwkJcmVnID0gSFNXX1RWSURFT19ESVBfR0NQKGNydGMtPmNvbmZpZy0+ Y3B1X3RyYW5zY29kZXIpOwo+ID4gPiA+ICsJZWxzZSBpZiAoSVNfVkFMTEVZVklFVyhkZXZfcHJp dikpCj4gPiA+ID4gKwkJcmVnID0gVkxWX1RWSURFT19ESVBfR0NQKGNydGMtPnBpcGUpOwo+ID4g PiA+ICsJZWxzZSBpZiAoSEFTX1BDSF9TUExJVChkZXZfcHJpdi0+ZGV2KSkKPiA+ID4gPiArCQly ZWcgPSBUVklERU9fRElQX0dDUChjcnRjLT5waXBlKTsKPiA+ID4gPiArCWVsc2UKPiA+ID4gPiAr CQlyZXR1cm4gZmFsc2U7Cj4gPiA+ID4gKwo+ID4gPiA+ICsJLyogSW5kaWNhdGUgY29sb3IgZGVw dGggd2hlbmV2ZW4gdGhlIHNpbmsgc3VwcG9ydHMgZGVlcCBjb2xvciAqLwo+ID4gPiA+ICsJaWYg KGhkbWlfc2lua19pc19kZWVwX2NvbG9yKGVuY29kZXIpKQo+ID4gPiA+ICsJCXZhbCB8PSBHQ1Bf Q09MT1JfSU5ESUNBVElPTjsKPiA+ID4gPiArCj4gPiA+ID4gKwlJOTE1X1dSSVRFKHJlZywgdmFs KTsKPiA+ID4gPiArCj4gPiA+ID4gKwlyZXR1cm4gdmFsICE9IDA7Cj4gPiA+ID4gK30KPiA+ID4g PiArCj4gPiA+ID4gK3N0YXRpYyB2b2lkIGludGVsX2Rpc2FibGVfZ2NwX2luZm9mcmFtZShzdHJ1 Y3QgaW50ZWxfY3J0YyAqY3J0YykKPiA+ID4gPiArewo+ID4gPiA+ICsJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gY3J0Yy0+YmFzZS5kZXYtPmRldl9wcml2YXRlOwo+ID4gPiA+ ICsJdTMyIHJlZzsKPiA+ID4gPiArCj4gPiA+ID4gKwlpZiAoSEFTX0RESShkZXZfcHJpdikpCj4g PiA+ID4gKwkJcmVnID0gSFNXX1RWSURFT19ESVBfQ1RMKGNydGMtPmNvbmZpZy0+Y3B1X3RyYW5z Y29kZXIpOwo+ID4gPiA+ICsJZWxzZSBpZiAoSVNfVkFMTEVZVklFVyhkZXZfcHJpdikpCj4gPiA+ ID4gKwkJcmVnID0gVkxWX1RWSURFT19ESVBfQ1RMKGNydGMtPnBpcGUpOwo+ID4gPiA+ICsJZWxz ZSBpZiAoSEFTX1BDSF9TUExJVChkZXZfcHJpdi0+ZGV2KSkKPiA+ID4gPiArCQlyZWcgPSBUVklE RU9fRElQX0NUTChjcnRjLT5waXBlKTsKPiA+ID4gPiArCWVsc2UKPiA+ID4gPiArCQlyZXR1cm47 Cj4gPiA+ID4gKwo+ID4gPiA+ICsJSTkxNV9XUklURShyZWcsIEk5MTVfUkVBRChyZWcpICYgflZJ REVPX0RJUF9FTkFCTEVfR0NQKTsKPiA+ID4gPiArfQo+ID4gPiA+ICsKPiA+ID4gPiAgc3RhdGlj IHZvaWQgaWJ4X3NldF9pbmZvZnJhbWVzKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKPiA+ ID4gPiAgCQkJICAgICAgIGJvb2wgZW5hYmxlLAo+ID4gPiA+ICAJCQkgICAgICAgc3RydWN0IGRy bV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUpCj4gPiA+ID4gQEAgLTU4MSw2ICs2NDEsOSBA QCBzdGF0aWMgdm9pZCBpYnhfc2V0X2luZm9mcmFtZXMoc3RydWN0IGRybV9lbmNvZGVyICplbmNv ZGVyLAo+ID4gPiA+ICAJdmFsICY9IH4oVklERU9fRElQX0VOQUJMRV9WRU5ET1IgfCBWSURFT19E SVBfRU5BQkxFX0dBTVVUIHwKPiA+ID4gPiAgCQkgVklERU9fRElQX0VOQUJMRV9HQ1ApOwo+ID4g PiA+ICAKPiA+ID4gPiArCWlmIChpbnRlbF9oZG1pX3NldF9nY3BfaW5mb2ZyYW1lKGVuY29kZXIp KQo+ID4gPiA+ICsJCXZhbCB8PSBWSURFT19ESVBfRU5BQkxFX0dDUDsKPiA+ID4gPiArCj4gPiA+ ID4gIAlJOTE1X1dSSVRFKHJlZywgdmFsKTsKPiA+ID4gPiAgCVBPU1RJTkdfUkVBRChyZWcpOwo+ ID4gPiA+ICAKPiA+ID4gPiBAQCAtNjE4LDYgKzY4MSw5IEBAIHN0YXRpYyB2b2lkIGNwdF9zZXRf aW5mb2ZyYW1lcyhzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCj4gPiA+ID4gIAl2YWwgJj0g fihWSURFT19ESVBfRU5BQkxFX1ZFTkRPUiB8IFZJREVPX0RJUF9FTkFCTEVfR0FNVVQgfAo+ID4g PiA+ICAJCSBWSURFT19ESVBfRU5BQkxFX0dDUCk7Cj4gPiA+ID4gIAo+ID4gPiA+ICsJaWYgKGlu dGVsX2hkbWlfc2V0X2djcF9pbmZvZnJhbWUoZW5jb2RlcikpCj4gPiA+ID4gKwkJdmFsIHw9IFZJ REVPX0RJUF9FTkFCTEVfR0NQOwo+ID4gPiA+ICsKPiA+ID4gPiAgCUk5MTVfV1JJVEUocmVnLCB2 YWwpOwo+ID4gPiA+ICAJUE9TVElOR19SRUFEKHJlZyk7Cj4gPiA+ID4gIAo+ID4gPiA+IEBAIC02 NjYsNiArNzMyLDkgQEAgc3RhdGljIHZvaWQgdmx2X3NldF9pbmZvZnJhbWVzKHN0cnVjdCBkcm1f ZW5jb2RlciAqZW5jb2RlciwKPiA+ID4gPiAgCXZhbCAmPSB+KFZJREVPX0RJUF9FTkFCTEVfQVZJ IHwgVklERU9fRElQX0VOQUJMRV9WRU5ET1IgfAo+ID4gPiA+ICAJCSBWSURFT19ESVBfRU5BQkxF X0dBTVVUIHwgVklERU9fRElQX0VOQUJMRV9HQ1ApOwo+ID4gPiA+ICAKPiA+ID4gPiArCWlmIChp bnRlbF9oZG1pX3NldF9nY3BfaW5mb2ZyYW1lKGVuY29kZXIpKQo+ID4gPiA+ICsJCXZhbCB8PSBW SURFT19ESVBfRU5BQkxFX0dDUDsKPiA+ID4gPiArCj4gPiA+ID4gIAlJOTE1X1dSSVRFKHJlZywg dmFsKTsKPiA+ID4gPiAgCVBPU1RJTkdfUkVBRChyZWcpOwo+ID4gPiA+ICAKPiA+ID4gPiBAQCAt Njk1LDYgKzc2NCw5IEBAIHN0YXRpYyB2b2lkIGhzd19zZXRfaW5mb2ZyYW1lcyhzdHJ1Y3QgZHJt X2VuY29kZXIgKmVuY29kZXIsCj4gPiA+ID4gIAl2YWwgJj0gfihWSURFT19ESVBfRU5BQkxFX1ZT Q19IU1cgfCBWSURFT19ESVBfRU5BQkxFX0dDUF9IU1cgfAo+ID4gPiA+ICAJCSBWSURFT19ESVBf RU5BQkxFX1ZTX0hTVyB8IFZJREVPX0RJUF9FTkFCTEVfR01QX0hTVyk7Cj4gPiA+ID4gIAo+ID4g PiA+ICsJaWYgKGludGVsX2hkbWlfc2V0X2djcF9pbmZvZnJhbWUoZW5jb2RlcikpCj4gPiA+ID4g KwkJdmFsIHw9IFZJREVPX0RJUF9FTkFCTEVfR0NQX0hTVzsKPiA+ID4gPiArCj4gPiA+ID4gIAlJ OTE1X1dSSVRFKHJlZywgdmFsKTsKPiA+ID4gPiAgCVBPU1RJTkdfUkVBRChyZWcpOwo+ID4gPiA+ ICAKPiA+ID4gPiBAQCAtOTg2LDYgKzEwNTgsOCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kaXNhYmxl X2hkbWkoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4gPiA+ID4gIAo+ID4gPiA+ICAJ aWYgKElTX0NIRVJSWVZJRVcoZGV2KSkKPiA+ID4gPiAgCQljaHZfcG93ZXJnYXRlX3BoeV9sYW5l cyhlbmNvZGVyLCAweGYpOwo+ID4gPiA+ICsKPiA+ID4gPiArCWludGVsX2Rpc2FibGVfZ2NwX2lu Zm9mcmFtZSh0b19pbnRlbF9jcnRjKGVuY29kZXItPmJhc2UuY3J0YykpOwo+ID4gPiAKPiA+ID4g QlNwZWMgc2F5cyB0aGlzIHNob3VsZCBiZSBkaXNhYmxlZCBhZnRlciBkaXNhYmxpbmcgVFJBTlNf RERJX0ZVTkNfQ1RMLAo+ID4gPiBzbyBzaG91bGRuJ3QgdGhpcyBnbyBpbiBwb3N0X2Rpc2FibGU/ Cj4gPiAKPiA+IGludGVsX2Rpc2FibGVfaGRtaSgpIGlzbid0IHVzZWQgb24gRERJIHBsYXRmb3Jt cy4gSSd2ZSBub3QgbG9va2VkIGF0IHRoZQo+ID4gRERJIGNvZGUgdG9vIG11Y2gsIGJ1dCBJIGV4 cGVjdCBpdCBjb3VsZCBoYXZlIHNpbWlsYXIgaXNzdWVzIHdpdGggdGhlCj4gPiBkaXNhYmxlIHNl cXVlbmNlIGxpa2UgdGhlIGVhcmxpZXIgUENIIHBsYXRmb3JtcyBoYWQuCj4gCj4gQWgsIHJpZ2h0 LiBTbyBpZiB0aGUgR0NQIHdvdWxkIGJlIGRpc2FibGVkIHRoYXQgd291bGQgb25seSBiZSBkb25l IGluCj4gLT5zZXRfaW5mb2ZyYW1lcygpIGNhbGxlZCBmcm9tIC0+cHJlX2VuYWJsZSgpLCB0aGF0 IGlzIGNhbGxlZCB3aGlsZQo+IFRSQU5TX0RESV9GVU5DX0NUTCBpcyBkaXNhYmxlZC4gU28gbm8g aXNzdWUgdGhlcmUuCgpQZXJoYXBzLiBBcyBzdGF0ZWQgSSBkaWRuJ3QgcmVhbGx5IGxvb2sgYXQg RERJLiBJIGRvIHRoaW5rIHdlIHNob3VsZApjaGFuZ2UgaXQgZG8gdGhpbmdzIHRoZSBzYW1lIHdh eSBhcyBldmVyeW9uZSBlbHNlLCBidXQgZm9yIHRoZSB0aW1lCmJlaW5nIEkgaGF2ZSBlbm91Z2gg dGhpbmdzIG9uIG15IHBsYXRlIHNvIEknbGwgbm90IHRha2Ugb24gYW5vdGhlcgpwcm9qZWN0LgoK PiAKPiBSZXZpZXdlZC1ieTogQW5kZXIgQ29uc2VsdmFuIGRlIE9saXZlaXJhIDxjb25zZWx2YW4y QGdtYWlsLmNvbT4KPiAKPiAKCi0tIApWaWxsZSBTeXJqw6Rsw6QKSW50ZWwgT1RDCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5n IGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==