From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 08/12] drm: Add lspcon (custom type2 dp->hdmi) support Date: Tue, 3 May 2016 18:59:37 +0300 Message-ID: <20160503155937.GG4329@intel.com> References: <1459771308-4405-1-git-send-email-shashank.sharma@intel.com> <1459771308-4405-8-git-send-email-shashank.sharma@intel.com> <20160502134911.GW4329@intel.com> <5728C7AC.4050304@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id A5D9D6E3B4 for ; Tue, 3 May 2016 15:59:41 +0000 (UTC) Content-Disposition: inline In-Reply-To: <5728C7AC.4050304@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Sharma, Shashank" Cc: paulo.r.zanoni@intel.com, intel-gfx@lists.freedesktop.org, daniel.vetter@intel.com List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBNYXkgMDMsIDIwMTYgYXQgMDk6MTU6NDhQTSArMDUzMCwgU2hhcm1hLCBTaGFzaGFu ayB3cm90ZToKPiBSZWdhcmRzCj4gU2hhc2hhbmsKPiAKPiBPbiA1LzIvMjAxNiA3OjE5IFBNLCBW aWxsZSBTeXJqw6Rsw6Qgd3JvdGU6Cj4gPiBPbiBNb24sIEFwciAwNCwgMjAxNiBhdCAwNTozMTo0 NFBNICswNTMwLCBTaGFzaGFuayBTaGFybWEgd3JvdGU6Cj4gPj4gVGhpcyBwYXRjaCBhZGRzIHN1 cHBvcnQgZm9yIExTUENPTiBkZXZpY2VzIGluIGRwKysgYWRhcHRvcgo+ID4+IGhlbHBlciBsYXll ci4gTFNQQ09OIGlzIERQKysgdHlwZS0yIGFkYXB0b3Igd2l0aCBzb21lIGN1c3RvbWl6ZWQKPiA+ PiBmdW5jdGlvbmFsaXRpZXMsIHRvIHByb3ZpZGUgYWRkaXRpb25hbCBmZWF0dXJlcyBpbiBJbnRl bCBHZW45IEhXLgo+ID4+Cj4gPj4gTFNQQ09OIG5lZWRzIEkyQy1vdmVyLWF1eCBzdXBwb3J0IHRv IHJlYWQvd3JpdGUgY29udHJvbCBhbmQKPiA+PiBkYXRhIHJlZ2lzdGVycy4gVGhpcyBwYXRjaCBh ZGRzIGZvbGxvd2luZzoKPiA+PiAgICAtIEZ1bmN0aW9ucyBmb3IgSTJDIG92ZXIgYXV4IHJlYWQv d3JpdGUKPiA+PiAgICAtIEZ1bmN0aW9uIHRvIHJlYWQgRURJRCB1c2luZyBJMmMtb3Zlci1hdXgK PiA+PiAgICAtIEZ1bmN0aW9uIHRvIGlkZW50aWZ5IExTUENPTiBhbW9uZyB0eXBlLTIgRFAgYWRh cHRvcnMKPiA+Pgo+ID4+IFNpZ25lZC1vZmYtYnk6IFNoYXNoYW5rIFNoYXJtYSA8c2hhc2hhbmsu c2hhcm1hQGludGVsLmNvbT4KPiA+PiAtLS0KPiA+PiAgIGRyaXZlcnMvZ3B1L2RybS9kcm1fZHBf ZHVhbF9tb2RlX2hlbHBlci5jIHwgMTAwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ ID4+ICAgaW5jbHVkZS9kcm0vZHJtX2RwX2R1YWxfbW9kZV9oZWxwZXIuaCAgICAgfCAgMTAgKysr Cj4gPj4gICAyIGZpbGVzIGNoYW5nZWQsIDExMCBpbnNlcnRpb25zKCspCj4gPj4KPiA+PiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9kcF9kdWFsX21vZGVfaGVscGVyLmMgYi9kcml2 ZXJzL2dwdS9kcm0vZHJtX2RwX2R1YWxfbW9kZV9oZWxwZXIuYwo+ID4+IGluZGV4IGI3MmI3YmIu LmNlOGUxMWMgMTAwNjQ0Cj4gPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9kcF9kdWFsX21v ZGVfaGVscGVyLmMKPiA+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2RwX2R1YWxfbW9kZV9o ZWxwZXIuYwo+ID4+IEBAIC0xMzIsNiArMTMyLDk5IEBAIHNzaXplX3QgZHJtX2RwX2R1YWxfbW9k ZV93cml0ZShzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXB0ZXIsCj4gPj4gICB9Cj4gPj4gICBFWFBP UlRfU1lNQk9MKGRybV9kcF9kdWFsX21vZGVfd3JpdGUpOwo+ID4+Cj4gPj4gK2ludCBkcm1fZHBf ZHVhbF9tb2RlX2dldF9lZGlkKHZvaWQgKmRhdGEsCj4gPj4gKwl1OCAqYnVmLCB1bnNpZ25lZCBp bnQgYmxvY2ssIHNpemVfdCBsZW4pCj4gPj4gK3sKPiA+PiArCXN0cnVjdCBpMmNfYWRhcHRlciAq YWRhcHRlciA9IGRhdGE7Cj4gPj4gKwl1bnNpZ25lZCBjaGFyIHN0YXJ0ID0gYmxvY2sgKiBFRElE X0xFTkdUSDsKPiA+PiArCXVuc2lnbmVkIGNoYXIgc2VnbWVudCA9IGJsb2NrID4+IDE7Cj4gPj4g Kwl1bnNpZ25lZCBjaGFyIHhmZXJzID0gc2VnbWVudCA/IDMgOiAyOwo+ID4+ICsJaW50IHJldCwg cmV0cmllcyA9IDU7Cj4gPj4gKwo+ID4+ICsJZG8gewo+ID4+ICsJCXN0cnVjdCBpMmNfbXNnIG1z Z3NbXSA9IHsKPiA+PiArCQkJewo+ID4+ICsJCQkJLmFkZHIgICA9IERQX0RVQUxfTU9ERV9ERENf U0VHTUVOVF9BRERSLAo+ID4+ICsJCQkJLmZsYWdzICA9IDAsCj4gPj4gKwkJCQkubGVuICAgID0g MSwKPiA+PiArCQkJCS5idWYgICAgPSAmc2VnbWVudCwKPiA+PiArCQkJfSwgewo+ID4+ICsJCQkJ LmFkZHIgICA9IEREQ19BRERSLAo+ID4+ICsJCQkJLmZsYWdzICA9IDAsCj4gPj4gKwkJCQkubGVu ICAgID0gMSwKPiA+PiArCQkJCS5idWYgICAgPSAmc3RhcnQsCj4gPj4gKwkJCX0sIHsKPiA+PiAr CQkJCS5hZGRyICAgPSBERENfQUREUiwKPiA+PiArCQkJCS5mbGFncyAgPSBJMkNfTV9SRCwKPiA+ PiArCQkJCS5sZW4gICAgPSBsZW4sCj4gPj4gKwkJCQkuYnVmICAgID0gYnVmLAo+ID4+ICsJCQl9 Cj4gPj4gKwkJfTsKPiA+PiArCj4gPj4gKwkJcmV0ID0gYWRhcHRlci0+YWxnby0+bWFzdGVyX3hm ZXIoYWRhcHRlciwgJm1zZ3NbMyAtIHhmZXJzXSwKPiA+PiArCQkJCQkJeGZlcnMpOwo+ID4+ICsK PiA+PiArCQlpZiAocmV0ID09IC1FTlhJTykgewo+ID4+ICsJCQlEUk1fRVJST1IoIk5vbi1leGlz dGVudCBhZGFwdGVyICVzXG4iLAo+ID4+ICsJCQkJYWRhcHRlci0+bmFtZSk7Cj4gPj4gKwkJCWJy ZWFrOwo+ID4+ICsJCX0KPiA+PiArCX0gd2hpbGUgKHJldCAhPSB4ZmVycyAmJiAtLXJldHJpZXMp Owo+ID4+ICsKPiA+PiArCXJldHVybiByZXQgPT0geGZlcnMgPyAwIDogLTE7Cj4gPj4gK30KPiA+ PiArRVhQT1JUX1NZTUJPTChkcm1fZHBfZHVhbF9tb2RlX2dldF9lZGlkKTsKPiA+Cj4gPiBUaGlz IHNvcnQgb2Ygc3R1ZmYgc2hvdWxkbid0IGJlIG5lZWRlZC4gQWxsIHRoYXQgc2hvdWxkIGJlIG5l ZWRlZCBpcwo+ID4gcGFzc2luZyB0aGUgcmlnaHQgaTJjIGFkYXB0ZXIgdG8gZHJtX2dldF9lZGlk KCkgYW5kIHdoYXRub3QuCj4gPgo+IFllYWgsIGFncmVlLCB3ZSBjYW4gb3B0aW1pemUgdGhpcy4K PiA+PiArCj4gPj4gKy8qCj4gPj4gKyogZHJtX2RwX2R1YWxfbW9kZV9pb2FfeGZlcgo+ID4+ICsq IEZldyBkcC0+aGRtaSB0eXBlIDIgYWRhcHRvcnMgYWxsb3cgaTJjX292ZXJfYXV4IHJlYWQvd3Jp dGUKPiA+PiArKiB0byB0aGUgY29udHJvbCBhbmQgc3RhdHVzIHJlZ2lzdGVycy4gVGhlc2UgZnVu Y3Rpb25zIGhlbHAKPiA+PiArKiB0byByZWFkL3dyaXRlIGZyb20gdGhvc2UuCj4gPj4gKyovCj4g Pj4gK3N0YXRpYyBpbnQgZHJtX2RwX2R1YWxfbW9kZV9pb2FfeGZlcihzdHJ1Y3QgaTJjX2FkYXB0 ZXIgKmFkYXB0ZXIsCj4gPj4gKwkJdTggKmJ1ZmZlciwgdTggb2Zmc2V0LCB1OCBub19vZl9ieXRl cywgdTggcndfZmxhZykKPiA+PiArewo+ID4+ICsJaW50IGVyciA9IDA7Cj4gPj4gKwo+ID4+ICsJ c3RydWN0IGkyY19tc2cgbXNnc1tdID0gewo+ID4+ICsJCQl7Cj4gPj4gKwkJCQkuYWRkcgk9IERQ X0RVQUxfTU9ERV9TTEFWRV9BRERSRVNTLAo+ID4+ICsJCQkJLmZsYWdzCT0gMCwKPiA+PiArCQkJ CS5sZW4JPSAxLAo+ID4+ICsJCQkJLmJ1Zgk9ICZvZmZzZXQsCj4gPj4gKwkJCX0sIHsKPiA+PiAr CQkJCS5hZGRyCT0gRFBfRFVBTF9NT0RFX1NMQVZFX0FERFJFU1MsCj4gPj4gKwkJCQkuZmxhZ3MJ PSByd19mbGFnLAo+ID4+ICsJCQkJLmxlbgk9IG5vX29mX2J5dGVzLAo+ID4+ICsJCQkJLmJ1Zgk9 IGJ1ZmZlciwKPiA+PiArCQkJfQo+ID4+ICsJfTsKPiA+PiArCj4gPj4gKwkvKiBJMkMgb3ZlciBB VVggaGVyZSAqLwo+ID4+ICsJZXJyID0gYWRhcHRlci0+YWxnby0+bWFzdGVyX3hmZXIoYWRhcHRl ciwgbXNncywgMik7Cj4gPj4gKwlpZiAoZXJyIDwgMCkKPiA+PiArCQlEUk1fRVJST1IoIkxTUENP TjogRmFpbGVkIEkyQyBvdmVyIEF1eCByZWFkKGFkZHI9MHgleClcbiIsCj4gPj4gKwkJCQkodW5z aWduZWQgaW50KW9mZnNldCk7Cj4gPj4gKwo+ID4+ICsJcmV0dXJuIGVycjsKPiA+PiArfQo+ID4+ ICsKPiA+PiAraW50IGRybV9kcF9kdWFsX21vZGVfaW9hX3JlYWQoc3RydWN0IGkyY19hZGFwdGVy ICphZGFwdGVyLCB1OCAqYnVmZmVyLAo+ID4+ICsJCXU4IG9mZnNldCwgdTggbm9fb2ZfYnl0ZXMp Cj4gPj4gK3sKPiA+PiArCXJldHVybiBkcm1fZHBfZHVhbF9tb2RlX2lvYV94ZmVyKGFkYXB0ZXIs IGJ1ZmZlciwgb2Zmc2V0LAo+ID4+ICsJCW5vX29mX2J5dGVzLCBJMkNfTV9SRCk7Cj4gPj4gK30K PiA+PiArRVhQT1JUX1NZTUJPTChkcm1fZHBfZHVhbF9tb2RlX2lvYV9yZWFkKTsKPiA+PiArCj4g Pj4gK2ludCBkcm1fZHBfZHVhbF9tb2RlX2lvYV93cml0ZShzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFk YXB0ZXIsIHU4ICpidWZmZXIsCj4gPj4gKwkJdTggb2Zmc2V0LCB1OCBub19vZl9ieXRlcykKPiA+ PiArewo+ID4+ICsJcmV0dXJuIGRybV9kcF9kdWFsX21vZGVfaW9hX3hmZXIoYWRhcHRlciwgYnVm ZmVyLCBvZmZzZXQsCj4gPj4gKwkJbm9fb2ZfYnl0ZXMsIDApOwo+ID4+ICt9Cj4gPj4gK0VYUE9S VF9TWU1CT0woZHJtX2RwX2R1YWxfbW9kZV9pb2Ffd3JpdGUpOwo+ID4KPiA+IEFyZW4ndCB0aGVz ZSBqdXN0IGR1cGVzIG9mIHRoZSBkdWFsIG1vZGUgaGVscGVyIHJlYWQvd3JpdGUgZnVuY3Rpb25z Pwo+IE5vLCBJMkMgb3ZlciBhdXggcmVhZCB1c2VzIGFkYXB0ZXItPmFsZ28tPm1hc3Rlcl94ZmVy IGZ1bmN0aW9uLCB3aGljaCBpcyAKPiBkaWZmZXJlbnQgaW4gY2FzZSBvZiBhdXggY2hhbm5lbCBy ZWFkL3dyaXRlLiBkcF9kdWFsX21vZGUgdXNlcyBpMmNfeGZlci4KCi5tYXN0ZXJfeGZlcigpIGlz IGp1c3QgYW4gaW50ZXJuYWwgaW1wbGVtZW50YXRpb24gZGV0YWlsIG9mIHRoZSBpMmMKYnVzL2Fs Z28gZHJpdmVyLiBZb3UncmUgbm90IG1lYW50IGNhbGwgaXQgZGlyZWN0bHkuIGkyY190cmFuc2Zl cigpIGlzCndoYXQgeW91IGNhbGwsIGFuZCBpdCB3aWxsIGVuZCB1cCBjYWxsaW5nIC5tYXN0ZXJf eGZlcigpIGludGVybmFsbHkuCgo+ID4KPiA+PiArCj4gPj4gICBzdGF0aWMgYm9vbCBpc19oZG1p X2FkYXB0b3IoY29uc3QgY2hhciBoZG1pX2lkW0RQX0RVQUxfTU9ERV9IRE1JX0lEX0xFTl0pCj4g Pj4gICB7Cj4gPj4gICAJc3RhdGljIGNvbnN0IGNoYXIgZHBfZHVhbF9tb2RlX2hkbWlfaWRbRFBf RFVBTF9NT0RFX0hETUlfSURfTEVOXSA9Cj4gPj4gQEAgLTE0MSw2ICsyMzQsMTEgQEAgc3RhdGlj IGJvb2wgaXNfaGRtaV9hZGFwdG9yKGNvbnN0IGNoYXIgaGRtaV9pZFtEUF9EVUFMX01PREVfSERN SV9JRF9MRU5dKQo+ID4+ICAgCQkgICAgICBzaXplb2YoZHBfZHVhbF9tb2RlX2hkbWlfaWQpKSA9 PSAwOwo+ID4+ICAgfQo+ID4+Cj4gPj4gK2Jvb2wgaXNfbHNwY29uX2FkYXB0b3IoY29uc3QgdWlu dDhfdCBhZGFwdG9yX2lkKQo+ID4+ICt7Cj4gPj4gKwlyZXR1cm4gYWRhcHRvcl9pZCA9PSAweGE4 Owo+ID4+ICt9Cj4gPj4gKwo+ID4+ICAgLyoqCj4gPj4gICAgKiBkcm1fZHBfZHVhbF9tb2RlX2Rl dGVjdCAtIElkZW50eWZ5IHRoZSBEUCBkdWFsIG1vZGUgYWRhcHRvcgo+ID4+ICAgICogYWRhcHRl cjogSTJDIGFkYXB0ZXIgZm9yIHRoZSBEREMgYnVzCj4gPj4gQEAgLTE5Nyw2ICsyOTUsOCBAQCBl bnVtIGRybV9kcF9kdWFsX21vZGVfdHlwZSBkcm1fZHBfZHVhbF9tb2RlX2RldGVjdChzdHJ1Y3Qg aTJjX2FkYXB0ZXIgKmFkYXB0ZXIpCj4gPj4gICAJCQkJICAgICZhZGFwdG9yX2lkLCBzaXplb2Yo YWRhcHRvcl9pZCkpOwo+ID4+ICAgCWlmIChyZXQgfHwgKGFkYXB0b3JfaWQgIT0gKERQX0RVQUxf TU9ERV9UWVBFX1RZUEUyIHwKPiA+PiAgIAkJCQkgICBEUF9EVUFMX01PREVfUkVWX1RZUEUyKSkp IHsKPiA+PiArCQlpZiAoaXNfbHNwY29uX2FkYXB0b3IoYWRhcHRvcl9pZCkpCj4gPj4gKwkJCXJl dHVybiBEUk1fRFBfRFVBTF9NT0RFX1RZUEUyX0xTUENPTjsKPiA+Cj4gPiBXZSBzaG91bGQgcmVv cmdhbml6ZSB0aGlzIGEgYml0IEkgdGhpbmsuIFByb2JhYmx5IHNob3VsZCBlbmQgdXAgbG9va2lu Zwo+ID4gc29tZWh0aW5nIGxpa2U6Cj4gPgo+ID4gYm9vbCBpc190eXBlMl9hZGFwdG9yKCk7Cj4g PiBib29sIGlzX2xzcGNvbl9hZGFwdG9yKCk7Cj4gPgo+ID4gaWYgKHJldCA9PSAwKSB7Cj4gPiAJ aWYgKGlzX2xzcGNvbl9hZGFwdG9yKCkpCj4gPiAJCXJldHVybiBUWVBFMl9MU1BDT047Cj4gPiAJ ZWxzZSBpZiAoaXNfdHlwZTJfYWRhcHRvcigpICYmIGlzX2hkbWlfYWRhcHRvcikKPiA+IAkJcmV0 dXJuIFRZUEUyX0hETUk7Cj4gPiAJZWxzZSBpZiAoaXNfdHlwZTJfYWRhcHRvcigpKQo+ID4gCQly ZXR1cm4gVFlQRTJfRFZJOwo+ID4gfQo+ID4KPiA+IGlmIChpc19oZG1pLi4uKQo+ID4gCXJldHVy biBUWVBFMV9IRE1JOwo+ID4gZWxzZQo+ID4gCXJldHVybiBUWVBFMV9EVkk7Cj4gPgo+ID4KPiBZ ZXAsIHRoaXMgaXMgYSBnb29kIHN1Z2dlc3Rpb24uCgpJIGFscmVhZHkgcmVvZ3Jhbml6ZWQgdGhl IHR5cGUxLzIgZGV0ZWN0aW9uIHRvIG1hdGNoIHRoaXMgcGF0dGVybiBpbiBteQpyZXBvc3Qgb2Yg dGhlIGRwKysgc3R1ZmYsIHNvIHNob3VsZCBiZSBlYXN5IHRvIGRyb3AgdGhpcyBpbjoKaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvYXJjaGl2ZXMvZHJpLWRldmVsLzIwMTYtTWF5LzEwNjUz NS5odG1sCgo+ID4+ICAgCQlpZiAoaXNfaGRtaV9hZGFwdG9yKGhkbWlfaWQpKQo+ID4+ICAgCQkJ cmV0dXJuIERSTV9EUF9EVUFMX01PREVfVFlQRTFfSERNSTsKPiA+PiAgIAkJZWxzZQo+ID4+IGRp ZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fZHBfZHVhbF9tb2RlX2hlbHBlci5oIGIvaW5jbHVk ZS9kcm0vZHJtX2RwX2R1YWxfbW9kZV9oZWxwZXIuaAo+ID4+IGluZGV4IDhmOGE4ZGMuLjI2ZTNk ZDggMTAwNjQ0Cj4gPj4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2RwX2R1YWxfbW9kZV9oZWxwZXIu aAo+ID4+ICsrKyBiL2luY2x1ZGUvZHJtL2RybV9kcF9kdWFsX21vZGVfaGVscGVyLmgKPiA+PiBA QCAtMjQsNiArMjQsNyBAQAo+ID4+ICAgI2RlZmluZSBEUk1fRFBfRFVBTF9NT0RFX0hFTFBFUl9I Cj4gPj4KPiA+PiAgICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgo+ID4+ICsjaW5jbHVkZSA8ZHJt L2RybV9lZGlkLmg+Cj4gPj4KPiA+PiAgIC8qCj4gPj4gICAgKiBPcHRpb25hbCBmb3IgdHlwZSAx IERWSSBhZGFwdG9ycwo+ID4+IEBAIC01NSw2ICs1Niw3IEBACj4gPj4gICAjZGVmaW5lICBEUF9E VUFMX01PREVfQ0VDX0VOQUJMRSAweDAxCj4gPj4gICAjZGVmaW5lIERQX0RVQUxfTU9ERV9JMkNf U1BFRURfQ1RSTCAweDIyCj4gPj4gICAjZGVmaW5lIERQX0RVQUxfTU9ERV9MQVNUX1JFU0VSVkVE IDB4ZmYKPiA+PiArI2RlZmluZSBEUF9EVUFMX01PREVfRERDX1NFR01FTlRfQUREUiAweDMwCj4g Pj4KPiA+PiAgIHN0cnVjdCBpMmNfYWRhcHRlcjsKPiA+Pgo+ID4+IEBAIC02OSw2ICs3MSw3IEBA IGVudW0gZHJtX2RwX2R1YWxfbW9kZV90eXBlIHsKPiA+PiAgIAlEUk1fRFBfRFVBTF9NT0RFX1RZ UEUxX0hETUksCj4gPj4gICAJRFJNX0RQX0RVQUxfTU9ERV9UWVBFMl9EVkksCj4gPj4gICAJRFJN X0RQX0RVQUxfTU9ERV9UWVBFMl9IRE1JLAo+ID4+ICsJRFJNX0RQX0RVQUxfTU9ERV9UWVBFMl9M U1BDT04sCj4gPj4gICB9Owo+ID4+Cj4gPj4gICBlbnVtIGRybV9kcF9kdWFsX21vZGVfdHlwZSBk cm1fZHBfZHVhbF9tb2RlX2RldGVjdChzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXB0ZXIpOwo+ID4+ IEBAIC04MSw0ICs4NCwxMSBAQCBkcm1fZHBfZHVhbF9tb2RlX3NldF90bWRzX291dHB1dChzdHJ1 Y3QgaTJjX2FkYXB0ZXIgKmFkYXB0ZXIsIGJvb2wgZW5hYmxlKTsKPiA+PiAgIGNvbnN0IGNoYXIK PiA+PiAgICpkcm1fZHBfZ2V0X2R1YWxfbW9kZV90eXBlX25hbWUoZW51bSBkcm1fZHBfZHVhbF9t b2RlX3R5cGUgdHlwZSk7Cj4gPj4KPiA+PiAraW50IGRybV9kcF9kdWFsX21vZGVfaW9hX3JlYWQo c3RydWN0IGkyY19hZGFwdGVyICphZGFwdGVyLCB1OCAqYnVmZmVyLAo+ID4+ICsJCXU4IG9mZnNl dCwgdTggbm9fb2ZfYnl0ZXMpOwo+ID4+ICtpbnQgZHJtX2RwX2R1YWxfbW9kZV9pb2Ffd3JpdGUo c3RydWN0IGkyY19hZGFwdGVyICphZGFwdGVyLCB1OCAqYnVmZmVyLAo+ID4+ICsJCXU4IG9mZnNl dCwgdTggbm9fb2ZfYnl0ZXMpOwo+ID4+ICtpbnQgZHJtX2RwX2R1YWxfbW9kZV9nZXRfZWRpZCh2 b2lkICpkYXRhLAo+ID4+ICsJdTggKmJ1ZiwgdW5zaWduZWQgaW50IGJsb2NrLCBzaXplX3QgbGVu KTsKPiA+PiArCj4gPj4gICAjZW5kaWYKPiA+PiAtLQo+ID4+IDEuOS4xCj4gPgoKLS0gClZpbGxl IFN5cmrDpGzDpApJbnRlbCBPVEMKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v aW50ZWwtZ2Z4Cg==