From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Kazlauskas, Nicholas" Subject: Re: [v9 04/13] drm: Enable HDR infoframe support Date: Tue, 14 May 2019 12:36:25 +0000 Message-ID: <070c4187-42d5-8db1-973f-682ccc2f420b@amd.com> References: <1557340733-9629-1-git-send-email-uma.shankar@intel.com> <1557340733-9629-5-git-send-email-uma.shankar@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1557340733-9629-5-git-send-email-uma.shankar@intel.com> Content-Language: en-US Content-ID: <62B1027383C12B428199E71209983921@namprd12.prod.outlook.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Uma Shankar , "intel-gfx@lists.freedesktop.org" , "dri-devel@lists.freedesktop.org" Cc: "ville.syrjala@intel.com" , "jonas@kwiboo.se" , "emil.l.velikov@gmail.com" , "seanpaul@chromium.org" , "dcastagna@chromium.org" , "maarten.lankhorst@intel.com" List-Id: dri-devel@lists.freedesktop.org T24gNS84LzE5IDI6MzggUE0sIFVtYSBTaGFua2FyIHdyb3RlOg0KPiBbQ0FVVElPTjogRXh0ZXJu YWwgRW1haWxdDQo+IA0KPiBFbmFibGUgRHluYW1pYyBSYW5nZSBhbmQgTWFzdGVyaW5nIEluZm9m cmFtZSBmb3IgSERSDQo+IGNvbnRlbnQsIHdoaWNoIGlzIGRlZmluZWQgaW4gQ0VBIDg2MS4zIHNw ZWMuDQo+IA0KPiBUaGUgbWV0YWRhdGEgd2lsbCBiZSBjb21wdXRlZCBiYXNlZCBvbiBibGVuZGlu Zw0KPiBwb2xpY3kgaW4gdXNlcnNwYWNlIGNvbXBvc2l0b3JzIGFuZCBwYXNzZWQgYXMgYSBjb25u ZWN0b3INCj4gcHJvcGVydHkgYmxvYiB0byBkcml2ZXIuIFRoZSBzYW1lIHdpbGwgYmUgc2VudCBh cyBpbmZvZnJhbWUNCj4gdG8gcGFuZWwgd2hpY2ggc3VwcG9ydCBIRFIuDQo+IA0KPiBBZGRlZCB0 aGUgY29uc3QgdmVyc2lvbiBvZiBpbmZvZnJhbWUgZm9yIERSTSBtZXRhZGF0YQ0KPiBmb3IgSERS Lg0KPiANCj4gdjI6IFJlYmFzZSBhbmQgYWRkZWQgVmlsbGUncyBQT0MgY2hhbmdlcy4NCj4gDQo+ IHYzOiBObyBDaGFuZ2UNCj4gDQo+IHY0OiBBZGRyZXNzZWQgU2hhc2hhbmsncyByZXZpZXcgY29t bWVudHMgYW5kIG1lcmdlZCB0aGUNCj4gcGF0Y2ggbWFraW5nIGRybSBpbmZvZnJhbWUgZnVuY3Rp b24gYXJndW1lbnRzIGFzIGNvbnN0YW50Lg0KPiANCj4gdjU6IFJlYmFzZQ0KPiANCj4gdjY6IEZp eGVkIGNoZWNrcGF0Y2ggd2FybmluZ3Mgd2l0aCAtLXN0cmljdCBvcHRpb24uIEFkZHJlc3NlZA0K PiBTaGFzaGFuaydzIHJldmlldyBjb21tZW50cyBhbmQgYWRkZWQgaGlzIFJCLg0KPiANCj4gdjc6 IEFkZHJlc3NlZCBCcmlhbiBTdGFya2V5J3MgcmV2aWV3IGNvbW1lbnRzLiBNZXJnZWQgMiBwYXRj aGVzDQo+IGludG8gb25lLg0KPiANCj4gdjg6IEFkZHJlc3NlZCBKb25hcyBLYXJsbWFuIHJldmll dyBjb21tZW50cy4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IFVtYSBTaGFua2FyIDx1bWEuc2hhbmth ckBpbnRlbC5jb20+DQo+IFNpZ25lZC1vZmYtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3ly amFsYUBsaW51eC5pbnRlbC5jb20+DQo+IFJldmlld2VkLWJ5OiBTaGFzaGFuayBTaGFybWEgPHNo YXNoYW5rLnNoYXJtYUBpbnRlbC5jb20+DQo+IC0tLQ0KPiAgIGRyaXZlcnMvZ3B1L2RybS9kcm1f ZWRpZC5jIHwgIDQ4ICsrKysrKysrKysrKw0KPiAgIGRyaXZlcnMvdmlkZW8vaGRtaS5jICAgICAg IHwgMTg2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0KPiAg IGluY2x1ZGUvZHJtL2RybV9lZGlkLmggICAgIHwgICA1ICsrDQo+ICAgaW5jbHVkZS9saW51eC9o ZG1pLmggICAgICAgfCAgMjcgKysrKysrKw0KPiAgIDQgZmlsZXMgY2hhbmdlZCwgMjY2IGluc2Vy dGlvbnMoKykNCj4gDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2VkaWQuYyBi L2RyaXZlcnMvZ3B1L2RybS9kcm1fZWRpZC5jDQo+IGluZGV4IGZlMmMyOWIuLjVmNDg5NjUgMTAw NjQ0DQo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZWRpZC5jDQo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9kcm1fZWRpZC5jDQo+IEBAIC00OTA2LDYgKzQ5MDYsNTQgQEAgc3RhdGljIGJvb2wg aXNfaGRtaTJfc2luayhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQ0KPiAgIH0NCj4g DQo+ICAgLyoqDQo+ICsgKiBkcm1faGRtaV9pbmZvZnJhbWVfc2V0X2hkcl9tZXRhZGF0YSgpIC0g ZmlsbCBhbiBIRE1JIEFWSSBpbmZvZnJhbWUgd2l0aA0KPiArICogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEhEUiBtZXRhZGF0YSBmcm9tIHVzZXJzcGFjZQ0KPiArICog QGZyYW1lOiBIRE1JIEFWSSBpbmZvZnJhbWUNCj4gKyAqIEBoZHJfc291cmNlX21ldGFkYXRhOiBo ZHJfc291cmNlX21ldGFkYXRhIGluZm8gZnJvbSB1c2Vyc3BhY2UNCj4gKyAqDQo+ICsgKiBSZXR1 cm46IDAgb24gc3VjY2VzcyBvciBhIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4NCj4g KyAqLw0KPiAraW50DQo+ICtkcm1faGRtaV9pbmZvZnJhbWVfc2V0X2hkcl9tZXRhZGF0YShzdHJ1 Y3QgaGRtaV9kcm1faW5mb2ZyYW1lICpmcmFtZSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc3RydWN0IGhkcl9vdXRwdXRfbWV0YWRhdGEgKmhkcl9tZXRhZGF0YSkNCj4g K3sNCj4gKyAgICAgICBpbnQgZXJyOw0KPiArDQo+ICsgICAgICAgaWYgKCFmcmFtZSB8fCAhaGRy X21ldGFkYXRhKQ0KPiArICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7DQo+ICsNCj4gKyAgICAg ICBlcnIgPSBoZG1pX2RybV9pbmZvZnJhbWVfaW5pdChmcmFtZSk7DQo+ICsgICAgICAgaWYgKGVy ciA8IDApDQo+ICsgICAgICAgICAgICAgICByZXR1cm4gZXJyOw0KPiArDQo+ICsgICAgICAgRFJN X0RFQlVHX0tNUygidHlwZSA9ICV4XG4iLCBmcmFtZS0+dHlwZSk7DQo+ICsNCj4gKyAgICAgICBm cmFtZS0+bGVuZ3RoID0gc2l6ZW9mKHN0cnVjdCBoZHJfbWV0YWRhdGFfaW5mb2ZyYW1lKTsNCj4g Kw0KPiArICAgICAgIGZyYW1lLT5lb3RmID0gaGRyX21ldGFkYXRhLT5oZG1pX21ldGFkYXRhX3R5 cGUxLmVvdGY7DQo+ICsgICAgICAgZnJhbWUtPm1ldGFkYXRhX3R5cGUgPSBoZHJfbWV0YWRhdGEt PmhkbWlfbWV0YWRhdGFfdHlwZTEubWV0YWRhdGFfdHlwZTsNCj4gKw0KPiArICAgICAgIG1lbWNw eSgmZnJhbWUtPmRpc3BsYXlfcHJpbWFyaWVzLA0KPiArICAgICAgICAgICAgICAmaGRyX21ldGFk YXRhLT5oZG1pX21ldGFkYXRhX3R5cGUxLmRpc3BsYXlfcHJpbWFyaWVzLCAxMik7DQo+ICsNCj4g KyAgICAgICBtZW1jcHkoJmZyYW1lLT53aGl0ZV9wb2ludCwNCj4gKyAgICAgICAgICAgICAgJmhk cl9tZXRhZGF0YS0+aGRtaV9tZXRhZGF0YV90eXBlMS53aGl0ZV9wb2ludCwgNCk7DQo+ICsNCj4g KyAgICAgICBmcmFtZS0+bWF4X2Rpc3BsYXlfbWFzdGVyaW5nX2x1bWluYW5jZSA9DQo+ICsgICAg ICAgICAgICAgICBoZHJfbWV0YWRhdGEtPmhkbWlfbWV0YWRhdGFfdHlwZTEubWF4X2Rpc3BsYXlf bWFzdGVyaW5nX2x1bWluYW5jZTsNCj4gKyAgICAgICBmcmFtZS0+bWluX2Rpc3BsYXlfbWFzdGVy aW5nX2x1bWluYW5jZSA9DQo+ICsgICAgICAgICAgICAgICBoZHJfbWV0YWRhdGEtPmhkbWlfbWV0 YWRhdGFfdHlwZTEubWluX2Rpc3BsYXlfbWFzdGVyaW5nX2x1bWluYW5jZTsNCj4gKyAgICAgICBm cmFtZS0+bWF4X2ZhbGwgPSBoZHJfbWV0YWRhdGEtPmhkbWlfbWV0YWRhdGFfdHlwZTEubWF4X2Zh bGw7DQo+ICsgICAgICAgZnJhbWUtPm1heF9jbGwgPSBoZHJfbWV0YWRhdGEtPmhkbWlfbWV0YWRh dGFfdHlwZTEubWF4X2NsbDsNCj4gKw0KPiArICAgICAgIGhkbWlfaW5mb2ZyYW1lX2xvZyhLRVJO X0NSSVQsIE5VTEwsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICh1bmlvbiBoZG1pX2lu Zm9mcmFtZSAqKWZyYW1lKTsNCg0KVGhpcyBzaG91bGRuJ3QgcmVhbGx5IGJlIEtFUk5fQ1JJVCBm b3IgZGVidWcgb3V0cHV0LiBNYXliZSBLRVJOX0lORk8gb3IgDQpLRVJOX0RFQlVHIG9yIGp1c3Qg ZHJvcCB0aGUgbG9nIGFsdG9nZXRoZXIgc2luY2UgaXQgY2FuJ3QgYWN0dWFsbHkgdGFnIA0KaXQg dG8gRFJNIG9yIHRoZSBkcml2ZXIgaXRzZWxmIGluIHRoaXMgZnVuY3Rpb24uDQoNCk5pY2hvbGFz IEthemxhdXNrYXMNCg0KPiArDQo+ICsgICAgICAgcmV0dXJuIDA7DQo+ICt9DQo+ICtFWFBPUlRf U1lNQk9MKGRybV9oZG1pX2luZm9mcmFtZV9zZXRfaGRyX21ldGFkYXRhKTsNCj4gKw0KPiArLyoq DQo+ICAgICogZHJtX2hkbWlfYXZpX2luZm9mcmFtZV9mcm9tX2Rpc3BsYXlfbW9kZSgpIC0gZmls bCBhbiBIRE1JIEFWSSBpbmZvZnJhbWUgd2l0aA0KPiAgICAqICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEgZnJvbSBhIERSTSBkaXNwbGF5IG1vZGUNCj4g ICAgKiBAZnJhbWU6IEhETUkgQVZJIGluZm9mcmFtZQ0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy92 aWRlby9oZG1pLmMgYi9kcml2ZXJzL3ZpZGVvL2hkbWkuYw0KPiBpbmRleCA3OTlhZTQ5Li43MTdl ZDdmYiAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy92aWRlby9oZG1pLmMNCj4gKysrIGIvZHJpdmVy cy92aWRlby9oZG1pLmMNCj4gQEAgLTY1MCw2ICs2NTAsMTQ2IEBAIHNzaXplX3QgaGRtaV92ZW5k b3JfaW5mb2ZyYW1lX3BhY2soc3RydWN0IGhkbWlfdmVuZG9yX2luZm9mcmFtZSAqZnJhbWUsDQo+ ICAgICAgICAgIHJldHVybiAwOw0KPiAgIH0NCj4gDQo+ICsvKioNCj4gKyAqIGhkbWlfZHJtX2lu Zm9mcmFtZV9pbml0KCkgLSBpbml0aWFsaXplIGFuIEhETUkgRHluYW1pbmMgUmFuZ2UgYW5kDQo+ ICsgKiBtYXN0ZXJpbmcgaW5mb2ZyYW1lDQo+ICsgKiBAZnJhbWU6IEhETUkgRFJNIGluZm9mcmFt ZQ0KPiArICoNCj4gKyAqIFJldHVybnMgMCBvbiBzdWNjZXNzIG9yIGEgbmVnYXRpdmUgZXJyb3Ig Y29kZSBvbiBmYWlsdXJlLg0KPiArICovDQo+ICtpbnQgaGRtaV9kcm1faW5mb2ZyYW1lX2luaXQo c3RydWN0IGhkbWlfZHJtX2luZm9mcmFtZSAqZnJhbWUpDQo+ICt7DQo+ICsgICAgICAgbWVtc2V0 KGZyYW1lLCAwLCBzaXplb2YoKmZyYW1lKSk7DQo+ICsNCj4gKyAgICAgICBmcmFtZS0+dHlwZSA9 IEhETUlfSU5GT0ZSQU1FX1RZUEVfRFJNOw0KPiArICAgICAgIGZyYW1lLT52ZXJzaW9uID0gMTsN Cj4gKw0KPiArICAgICAgIHJldHVybiAwOw0KPiArfQ0KPiArRVhQT1JUX1NZTUJPTChoZG1pX2Ry bV9pbmZvZnJhbWVfaW5pdCk7DQo+ICsNCj4gK3N0YXRpYyBpbnQgaGRtaV9kcm1faW5mb2ZyYW1l X2NoZWNrX29ubHkoY29uc3Qgc3RydWN0IGhkbWlfZHJtX2luZm9mcmFtZSAqZnJhbWUpDQo+ICt7 DQo+ICsgICAgICAgaWYgKGZyYW1lLT50eXBlICE9IEhETUlfSU5GT0ZSQU1FX1RZUEVfRFJNIHx8 DQo+ICsgICAgICAgICAgIGZyYW1lLT52ZXJzaW9uICE9IDEpDQo+ICsgICAgICAgICAgICAgICBy ZXR1cm4gLUVJTlZBTDsNCj4gKw0KPiArICAgICAgIHJldHVybiAwOw0KPiArfQ0KPiArDQo+ICsv KioNCj4gKyAqIGhkbWlfZHJtX2luZm9mcmFtZV9jaGVjaygpIC0gY2hlY2sgYSBIRE1JIERSTSBp bmZvZnJhbWUNCj4gKyAqIEBmcmFtZTogSERNSSBEUk0gaW5mb2ZyYW1lDQo+ICsgKg0KPiArICog VmFsaWRhdGVzIHRoYXQgdGhlIGluZm9mcmFtZSBpcyBjb25zaXN0ZW50Lg0KPiArICogUmV0dXJu cyAwIG9uIHN1Y2Nlc3Mgb3IgYSBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuDQo+ICsg Ki8NCj4gK2ludCBoZG1pX2RybV9pbmZvZnJhbWVfY2hlY2soc3RydWN0IGhkbWlfZHJtX2luZm9m cmFtZSAqZnJhbWUpDQo+ICt7DQo+ICsgICAgICAgcmV0dXJuIGhkbWlfZHJtX2luZm9mcmFtZV9j aGVja19vbmx5KGZyYW1lKTsNCj4gK30NCj4gK0VYUE9SVF9TWU1CT0woaGRtaV9kcm1faW5mb2Zy YW1lX2NoZWNrKTsNCj4gKw0KPiArLyoqDQo+ICsgKiBoZG1pX2RybV9pbmZvZnJhbWVfcGFjaygp IC0gd3JpdGUgSERNSSBEUk0gaW5mb2ZyYW1lIHRvIGJpbmFyeSBidWZmZXINCj4gKyAqIEBmcmFt ZTogSERNSSBEUk0gaW5mb2ZyYW1lDQo+ICsgKiBAYnVmZmVyOiBkZXN0aW5hdGlvbiBidWZmZXIN Cj4gKyAqIEBzaXplOiBzaXplIG9mIGJ1ZmZlcg0KPiArICoNCj4gKyAqIFBhY2tzIHRoZSBpbmZv cm1hdGlvbiBjb250YWluZWQgaW4gdGhlIEBmcmFtZSBzdHJ1Y3R1cmUgaW50byBhIGJpbmFyeQ0K PiArICogcmVwcmVzZW50YXRpb24gdGhhdCBjYW4gYmUgd3JpdHRlbiBpbnRvIHRoZSBjb3JyZXNw b25kaW5nIGNvbnRyb2xsZXINCj4gKyAqIHJlZ2lzdGVycy4gQWxzbyBjb21wdXRlcyB0aGUgY2hl Y2tzdW0gYXMgcmVxdWlyZWQgYnkgc2VjdGlvbiA1LjMuNSBvZg0KPiArICogdGhlIEhETUkgMS40 IHNwZWNpZmljYXRpb24uDQo+ICsgKg0KPiArICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGJ5dGVz IHBhY2tlZCBpbnRvIHRoZSBiaW5hcnkgYnVmZmVyIG9yIGEgbmVnYXRpdmUNCj4gKyAqIGVycm9y IGNvZGUgb24gZmFpbHVyZS4NCj4gKyAqLw0KPiArc3NpemVfdCBoZG1pX2RybV9pbmZvZnJhbWVf cGFja19vbmx5KGNvbnN0IHN0cnVjdCBoZG1pX2RybV9pbmZvZnJhbWUgKmZyYW1lLA0KPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqYnVmZmVyLCBzaXplX3Qgc2l6 ZSkNCj4gK3sNCj4gKyAgICAgICB1OCAqcHRyID0gYnVmZmVyOw0KPiArICAgICAgIHNpemVfdCBs ZW5ndGg7DQo+ICsgICAgICAgaW50IGk7DQo+ICsNCj4gKyAgICAgICBsZW5ndGggPSBIRE1JX0lO Rk9GUkFNRV9IRUFERVJfU0laRSArIGZyYW1lLT5sZW5ndGg7DQo+ICsNCj4gKyAgICAgICBpZiAo c2l6ZSA8IGxlbmd0aCkNCj4gKyAgICAgICAgICAgICAgIHJldHVybiAtRU5PU1BDOw0KPiArDQo+ ICsgICAgICAgbWVtc2V0KGJ1ZmZlciwgMCwgc2l6ZSk7DQo+ICsNCj4gKyAgICAgICBwdHJbMF0g PSBmcmFtZS0+dHlwZTsNCj4gKyAgICAgICBwdHJbMV0gPSBmcmFtZS0+dmVyc2lvbjsNCj4gKyAg ICAgICBwdHJbMl0gPSBmcmFtZS0+bGVuZ3RoOw0KPiArICAgICAgIHB0clszXSA9IDA7IC8qIGNo ZWNrc3VtICovDQo+ICsNCj4gKyAgICAgICAvKiBzdGFydCBpbmZvZnJhbWUgcGF5bG9hZCAqLw0K PiArICAgICAgIHB0ciArPSBIRE1JX0lORk9GUkFNRV9IRUFERVJfU0laRTsNCj4gKw0KPiArICAg ICAgICpwdHIrKyA9IGZyYW1lLT5lb3RmOw0KPiArICAgICAgICpwdHIrKyA9IGZyYW1lLT5tZXRh ZGF0YV90eXBlOw0KPiArDQo+ICsgICAgICAgZm9yIChpID0gMDsgaSA8IDM7IGkrKykgew0KPiAr ICAgICAgICAgICAgICAgKnB0cisrID0gZnJhbWUtPmRpc3BsYXlfcHJpbWFyaWVzW2ldLng7DQo+ ICsgICAgICAgICAgICAgICAqcHRyKysgPSBmcmFtZS0+ZGlzcGxheV9wcmltYXJpZXNbaV0ueCA+ PiA4Ow0KPiArICAgICAgICAgICAgICAgKnB0cisrID0gZnJhbWUtPmRpc3BsYXlfcHJpbWFyaWVz W2ldLnk7DQo+ICsgICAgICAgICAgICAgICAqcHRyKysgPSBmcmFtZS0+ZGlzcGxheV9wcmltYXJp ZXNbaV0ueSA+PiA4Ow0KPiArICAgICAgIH0NCj4gKw0KPiArICAgICAgICpwdHIrKyA9IGZyYW1l LT53aGl0ZV9wb2ludC54Ow0KPiArICAgICAgICpwdHIrKyA9IGZyYW1lLT53aGl0ZV9wb2ludC54 ID4+IDg7DQo+ICsNCj4gKyAgICAgICAqcHRyKysgPSBmcmFtZS0+d2hpdGVfcG9pbnQueTsNCj4g KyAgICAgICAqcHRyKysgPSBmcmFtZS0+d2hpdGVfcG9pbnQueSA+PiA4Ow0KPiArDQo+ICsgICAg ICAgKnB0cisrID0gZnJhbWUtPm1heF9kaXNwbGF5X21hc3RlcmluZ19sdW1pbmFuY2U7DQo+ICsg ICAgICAgKnB0cisrID0gZnJhbWUtPm1heF9kaXNwbGF5X21hc3RlcmluZ19sdW1pbmFuY2UgPj4g ODsNCj4gKw0KPiArICAgICAgICpwdHIrKyA9IGZyYW1lLT5taW5fZGlzcGxheV9tYXN0ZXJpbmdf bHVtaW5hbmNlOw0KPiArICAgICAgICpwdHIrKyA9IGZyYW1lLT5taW5fZGlzcGxheV9tYXN0ZXJp bmdfbHVtaW5hbmNlID4+IDg7DQo+ICsNCj4gKyAgICAgICAqcHRyKysgPSBmcmFtZS0+bWF4X2Ns bDsNCj4gKyAgICAgICAqcHRyKysgPSBmcmFtZS0+bWF4X2NsbCA+PiA4Ow0KPiArDQo+ICsgICAg ICAgKnB0cisrID0gZnJhbWUtPm1heF9mYWxsOw0KPiArICAgICAgICpwdHIrKyA9IGZyYW1lLT5t YXhfZmFsbCA+PiA4Ow0KPiArDQo+ICsgICAgICAgaGRtaV9pbmZvZnJhbWVfc2V0X2NoZWNrc3Vt KGJ1ZmZlciwgbGVuZ3RoKTsNCj4gKw0KPiArICAgICAgIHJldHVybiBsZW5ndGg7DQo+ICt9DQo+ ICtFWFBPUlRfU1lNQk9MKGhkbWlfZHJtX2luZm9mcmFtZV9wYWNrX29ubHkpOw0KPiArDQo+ICsv KioNCj4gKyAqIGhkbWlfZHJtX2luZm9mcmFtZV9wYWNrKCkgLSBjaGVjayBhIEhETUkgRFJNIGlu Zm9mcmFtZSwNCj4gKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgd3JpdGUgaXQg dG8gYmluYXJ5IGJ1ZmZlcg0KPiArICogQGZyYW1lOiBIRE1JIERSTSBpbmZvZnJhbWUNCj4gKyAq IEBidWZmZXI6IGRlc3RpbmF0aW9uIGJ1ZmZlcg0KPiArICogQHNpemU6IHNpemUgb2YgYnVmZmVy DQo+ICsgKg0KPiArICogVmFsaWRhdGVzIHRoYXQgdGhlIGluZm9mcmFtZSBpcyBjb25zaXN0ZW50 IGFuZCB1cGRhdGVzIGRlcml2ZWQgZmllbGRzDQo+ICsgKiAoZWcuIGxlbmd0aCkgYmFzZWQgb24g b3RoZXIgZmllbGRzLCBhZnRlciB3aGljaCBpdCBwYWNrcyB0aGUgaW5mb3JtYXRpb24NCj4gKyAq IGNvbnRhaW5lZCBpbiB0aGUgQGZyYW1lIHN0cnVjdHVyZSBpbnRvIGEgYmluYXJ5IHJlcHJlc2Vu dGF0aW9uIHRoYXQNCj4gKyAqIGNhbiBiZSB3cml0dGVuIGludG8gdGhlIGNvcnJlc3BvbmRpbmcg Y29udHJvbGxlciByZWdpc3RlcnMuIFRoaXMgZnVuY3Rpb24NCj4gKyAqIGFsc28gY29tcHV0ZXMg dGhlIGNoZWNrc3VtIGFzIHJlcXVpcmVkIGJ5IHNlY3Rpb24gNS4zLjUgb2YgdGhlIEhETUkgMS40 DQo+ICsgKiBzcGVjaWZpY2F0aW9uLg0KPiArICoNCj4gKyAqIFJldHVybnMgdGhlIG51bWJlciBv ZiBieXRlcyBwYWNrZWQgaW50byB0aGUgYmluYXJ5IGJ1ZmZlciBvciBhIG5lZ2F0aXZlDQo+ICsg KiBlcnJvciBjb2RlIG9uIGZhaWx1cmUuDQo+ICsgKi8NCj4gK3NzaXplX3QgaGRtaV9kcm1faW5m b2ZyYW1lX3BhY2soc3RydWN0IGhkbWlfZHJtX2luZm9mcmFtZSAqZnJhbWUsDQo+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqYnVmZmVyLCBzaXplX3Qgc2l6ZSkNCj4gK3sN Cj4gKyAgICAgICBpbnQgcmV0Ow0KPiArDQo+ICsgICAgICAgcmV0ID0gaGRtaV9kcm1faW5mb2Zy YW1lX2NoZWNrKGZyYW1lKTsNCj4gKyAgICAgICBpZiAocmV0KQ0KPiArICAgICAgICAgICAgICAg cmV0dXJuIHJldDsNCj4gKw0KPiArICAgICAgIHJldHVybiBoZG1pX2RybV9pbmZvZnJhbWVfcGFj a19vbmx5KGZyYW1lLCBidWZmZXIsIHNpemUpOw0KPiArfQ0KPiArRVhQT1JUX1NZTUJPTChoZG1p X2RybV9pbmZvZnJhbWVfcGFjayk7DQo+ICsNCj4gICAvKg0KPiAgICAqIGhkbWlfdmVuZG9yX2Fu eV9pbmZvZnJhbWVfY2hlY2soKSAtIGNoZWNrIGEgdmVuZG9yIGluZm9mcmFtZQ0KPiAgICAqLw0K PiBAQCAtNzU4LDYgKzg5OCwxMCBAQCBzc2l6ZV90IGhkbWlfdmVuZG9yX2luZm9mcmFtZV9wYWNr KHN0cnVjdCBoZG1pX3ZlbmRvcl9pbmZvZnJhbWUgKmZyYW1lLA0KPiAgICAgICAgICAgICAgICAg IGxlbmd0aCA9IGhkbWlfYXZpX2luZm9mcmFtZV9wYWNrX29ubHkoJmZyYW1lLT5hdmksDQo+ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWZm ZXIsIHNpemUpOw0KPiAgICAgICAgICAgICAgICAgIGJyZWFrOw0KPiArICAgICAgIGNhc2UgSERN SV9JTkZPRlJBTUVfVFlQRV9EUk06DQo+ICsgICAgICAgICAgICAgICBsZW5ndGggPSBoZG1pX2Ry bV9pbmZvZnJhbWVfcGFja19vbmx5KCZmcmFtZS0+ZHJtLA0KPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXIsIHNpemUpOw0KPiArICAg ICAgICAgICAgICAgYnJlYWs7DQo+ICAgICAgICAgIGNhc2UgSERNSV9JTkZPRlJBTUVfVFlQRV9T UEQ6DQo+ICAgICAgICAgICAgICAgICAgbGVuZ3RoID0gaGRtaV9zcGRfaW5mb2ZyYW1lX3BhY2tf b25seSgmZnJhbWUtPnNwZCwNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGJ1ZmZlciwgc2l6ZSk7DQo+IEBAIC04MDYsNiArOTUwLDkgQEAg c3NpemVfdCBoZG1pX3ZlbmRvcl9pbmZvZnJhbWVfcGFjayhzdHJ1Y3QgaGRtaV92ZW5kb3JfaW5m b2ZyYW1lICpmcmFtZSwNCj4gICAgICAgICAgY2FzZSBIRE1JX0lORk9GUkFNRV9UWVBFX0FWSToN Cj4gICAgICAgICAgICAgICAgICBsZW5ndGggPSBoZG1pX2F2aV9pbmZvZnJhbWVfcGFjaygmZnJh bWUtPmF2aSwgYnVmZmVyLCBzaXplKTsNCj4gICAgICAgICAgICAgICAgICBicmVhazsNCj4gKyAg ICAgICBjYXNlIEhETUlfSU5GT0ZSQU1FX1RZUEVfRFJNOg0KPiArICAgICAgICAgICAgICAgbGVu Z3RoID0gaGRtaV9kcm1faW5mb2ZyYW1lX3BhY2soJmZyYW1lLT5kcm0sIGJ1ZmZlciwgc2l6ZSk7 DQo+ICsgICAgICAgICAgICAgICBicmVhazsNCj4gICAgICAgICAgY2FzZSBIRE1JX0lORk9GUkFN RV9UWVBFX1NQRDoNCj4gICAgICAgICAgICAgICAgICBsZW5ndGggPSBoZG1pX3NwZF9pbmZvZnJh bWVfcGFjaygmZnJhbWUtPnNwZCwgYnVmZmVyLCBzaXplKTsNCj4gICAgICAgICAgICAgICAgICBi cmVhazsNCj4gQEAgLTgzOCw2ICs5ODUsOCBAQCBzdGF0aWMgY29uc3QgY2hhciAqaGRtaV9pbmZv ZnJhbWVfdHlwZV9nZXRfbmFtZShlbnVtIGhkbWlfaW5mb2ZyYW1lX3R5cGUgdHlwZSkNCj4gICAg ICAgICAgICAgICAgICByZXR1cm4gIlNvdXJjZSBQcm9kdWN0IERlc2NyaXB0aW9uIChTUEQpIjsN Cj4gICAgICAgICAgY2FzZSBIRE1JX0lORk9GUkFNRV9UWVBFX0FVRElPOg0KPiAgICAgICAgICAg ICAgICAgIHJldHVybiAiQXVkaW8iOw0KPiArICAgICAgIGNhc2UgSERNSV9JTkZPRlJBTUVfVFlQ RV9EUk06DQo+ICsgICAgICAgICAgICAgICByZXR1cm4gIkR5bmFtaWMgUmFuZ2UgYW5kIE1hc3Rl cmluZyI7DQo+ICAgICAgICAgIH0NCj4gICAgICAgICAgcmV0dXJuICJSZXNlcnZlZCI7DQo+ICAg fQ0KPiBAQCAtMTI4NCw2ICsxNDMzLDQwIEBAIHN0YXRpYyB2b2lkIGhkbWlfYXVkaW9faW5mb2Zy YW1lX2xvZyhjb25zdCBjaGFyICpsZXZlbCwNCj4gICAgICAgICAgICAgICAgICAgICAgICAgIGZy YW1lLT5kb3dubWl4X2luaGliaXQgPyAiWWVzIiA6ICJObyIpOw0KPiAgIH0NCj4gDQo+ICsvKioN Cj4gKyAqIGhkbWlfZHJtX2luZm9mcmFtZV9sb2coKSAtIGxvZyBpbmZvIG9mIEhETUkgRFJNIGlu Zm9mcmFtZQ0KPiArICogQGxldmVsOiBsb2dnaW5nIGxldmVsDQo+ICsgKiBAZGV2OiBkZXZpY2UN Cj4gKyAqIEBmcmFtZTogSERNSSBEUk0gaW5mb2ZyYW1lDQo+ICsgKi8NCj4gK3N0YXRpYyB2b2lk IGhkbWlfZHJtX2luZm9mcmFtZV9sb2coY29uc3QgY2hhciAqbGV2ZWwsDQo+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGRldmljZSAqZGV2LA0KPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBoZG1pX2RybV9pbmZvZnJhbWUg KmZyYW1lKQ0KPiArew0KPiArICAgICAgIGludCBpOw0KPiArDQo+ICsgICAgICAgaGRtaV9pbmZv ZnJhbWVfbG9nX2hlYWRlcihsZXZlbCwgZGV2LA0KPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKHN0cnVjdCBoZG1pX2FueV9pbmZvZnJhbWUgKilmcmFtZSk7DQo+ICsgICAgICAg aGRtaV9sb2coImxlbmd0aDogJWRcbiIsIGZyYW1lLT5sZW5ndGgpOw0KPiArICAgICAgIGhkbWlf bG9nKCJtZXRhZGF0YSB0eXBlOiAlZFxuIiwgZnJhbWUtPm1ldGFkYXRhX3R5cGUpOw0KPiArICAg ICAgIGhkbWlfbG9nKCJlb3RmOiAlZFxuIiwgZnJhbWUtPmVvdGYpOw0KPiArICAgICAgIGZvciAo aSA9IDA7IGkgPCAzOyBpKyspIHsNCj4gKyAgICAgICAgICAgICAgIGhkbWlfbG9nKCJ4WyVkXTog JWRcbiIsIGksIGZyYW1lLT5kaXNwbGF5X3ByaW1hcmllc1tpXS54KTsNCj4gKyAgICAgICAgICAg ICAgIGhkbWlfbG9nKCJ5WyVkXTogJWRcbiIsIGksIGZyYW1lLT5kaXNwbGF5X3ByaW1hcmllc1tp XS55KTsNCj4gKyAgICAgICB9DQo+ICsNCj4gKyAgICAgICBoZG1pX2xvZygid2hpdGUgcG9pbnQg eDogJWRcbiIsIGZyYW1lLT53aGl0ZV9wb2ludC54KTsNCj4gKyAgICAgICBoZG1pX2xvZygid2hp dGUgcG9pbnQgeTogJWRcbiIsIGZyYW1lLT53aGl0ZV9wb2ludC55KTsNCj4gKw0KPiArICAgICAg IGhkbWlfbG9nKCJtYXhfZGlzcGxheV9tYXN0ZXJpbmdfbHVtaW5hbmNlOiAlZFxuIiwNCj4gKyAg ICAgICAgICAgICAgICBmcmFtZS0+bWF4X2Rpc3BsYXlfbWFzdGVyaW5nX2x1bWluYW5jZSk7DQo+ ICsgICAgICAgaGRtaV9sb2coIm1pbl9kaXNwbGF5X21hc3RlcmluZ19sdW1pbmFuY2U6ICVkXG4i LA0KPiArICAgICAgICAgICAgICAgIGZyYW1lLT5taW5fZGlzcGxheV9tYXN0ZXJpbmdfbHVtaW5h bmNlKTsNCj4gKw0KPiArICAgICAgIGhkbWlfbG9nKCJtYXhfY2xsOiAlZFxuIiwgZnJhbWUtPm1h eF9jbGwpOw0KPiArICAgICAgIGhkbWlfbG9nKCJtYXhfZmFsbDogJWRcbiIsIGZyYW1lLT5tYXhf ZmFsbCk7DQo+ICt9DQo+ICsNCj4gICBzdGF0aWMgY29uc3QgY2hhciAqDQo+ICAgaGRtaV8zZF9z dHJ1Y3R1cmVfZ2V0X25hbWUoZW51bSBoZG1pXzNkX3N0cnVjdHVyZSBzM2Rfc3RydWN0KQ0KPiAg IHsNCj4gQEAgLTEzNzIsNiArMTU1NSw5IEBAIHZvaWQgaGRtaV9pbmZvZnJhbWVfbG9nKGNvbnN0 IGNoYXIgKmxldmVsLA0KPiAgICAgICAgICBjYXNlIEhETUlfSU5GT0ZSQU1FX1RZUEVfVkVORE9S Og0KPiAgICAgICAgICAgICAgICAgIGhkbWlfdmVuZG9yX2FueV9pbmZvZnJhbWVfbG9nKGxldmVs LCBkZXYsICZmcmFtZS0+dmVuZG9yKTsNCj4gICAgICAgICAgICAgICAgICBicmVhazsNCj4gKyAg ICAgICBjYXNlIEhETUlfSU5GT0ZSQU1FX1RZUEVfRFJNOg0KPiArICAgICAgICAgICAgICAgaGRt aV9kcm1faW5mb2ZyYW1lX2xvZyhsZXZlbCwgZGV2LCAmZnJhbWUtPmRybSk7DQo+ICsgICAgICAg ICAgICAgICBicmVhazsNCj4gICAgICAgICAgfQ0KPiAgIH0NCj4gICBFWFBPUlRfU1lNQk9MKGhk bWlfaW5mb2ZyYW1lX2xvZyk7DQo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fZWRpZC5o IGIvaW5jbHVkZS9kcm0vZHJtX2VkaWQuaA0KPiBpbmRleCA5ZDNiNWI5Li5kODFjNWMyIDEwMDY0 NA0KPiAtLS0gYS9pbmNsdWRlL2RybS9kcm1fZWRpZC5oDQo+ICsrKyBiL2luY2x1ZGUvZHJtL2Ry bV9lZGlkLmgNCj4gQEAgLTI1LDYgKzI1LDcgQEANCj4gDQo+ICAgI2luY2x1ZGUgPGxpbnV4L3R5 cGVzLmg+DQo+ICAgI2luY2x1ZGUgPGxpbnV4L2hkbWkuaD4NCj4gKyNpbmNsdWRlIDxkcm0vZHJt X21vZGUuaD4NCj4gDQo+ICAgc3RydWN0IGRybV9kZXZpY2U7DQo+ICAgc3RydWN0IGkyY19hZGFw dGVyOw0KPiBAQCAtMzcwLDYgKzM3MSwxMCBAQCBpbnQgZHJtX2F2X3N5bmNfZGVsYXkoc3RydWN0 IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUsDQo+ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudW0gaGRtaV9xdWFudGl6YXRpb25fcmFuZ2Ug cmdiX3F1YW50X3JhbmdlKTsNCj4gDQo+ICtpbnQNCj4gK2RybV9oZG1pX2luZm9mcmFtZV9zZXRf aGRyX21ldGFkYXRhKHN0cnVjdCBoZG1pX2RybV9pbmZvZnJhbWUgKmZyYW1lLA0KPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaGRyX291dHB1dF9tZXRhZGF0YSAq aGRyX21ldGFkYXRhKTsNCj4gKw0KPiAgIC8qKg0KPiAgICAqIGRybV9lbGRfbW5sIC0gR2V0IEVM RCBtb25pdG9yIG5hbWUgbGVuZ3RoIGluIGJ5dGVzLg0KPiAgICAqIEBlbGQ6IHBvaW50ZXIgdG8g YW4gZWxkIG1lbW9yeSBzdHJ1Y3R1cmUgd2l0aCBtbmwgc2V0DQo+IGRpZmYgLS1naXQgYS9pbmNs dWRlL2xpbnV4L2hkbWkuaCBiL2luY2x1ZGUvbGludXgvaGRtaS5oDQo+IGluZGV4IDY3ODA0NzYu LjdlZGFmY2YgMTAwNjQ0DQo+IC0tLSBhL2luY2x1ZGUvbGludXgvaGRtaS5oDQo+ICsrKyBiL2lu Y2x1ZGUvbGludXgvaGRtaS5oDQo+IEBAIC00Nyw2ICs0Nyw3IEBAIGVudW0gaGRtaV9pbmZvZnJh bWVfdHlwZSB7DQo+ICAgICAgICAgIEhETUlfSU5GT0ZSQU1FX1RZUEVfQVZJID0gMHg4MiwNCj4g ICAgICAgICAgSERNSV9JTkZPRlJBTUVfVFlQRV9TUEQgPSAweDgzLA0KPiAgICAgICAgICBIRE1J X0lORk9GUkFNRV9UWVBFX0FVRElPID0gMHg4NCwNCj4gKyAgICAgICBIRE1JX0lORk9GUkFNRV9U WVBFX0RSTSA9IDB4ODcsDQo+ICAgfTsNCj4gDQo+ICAgI2RlZmluZSBIRE1JX0lFRUVfT1VJIDB4 MDAwYzAzDQo+IEBAIC0xODUsMTIgKzE4NiwzNyBAQCBzdHJ1Y3QgaGRtaV9hdmlfaW5mb2ZyYW1l IHsNCj4gICAgICAgICAgdW5zaWduZWQgc2hvcnQgcmlnaHRfYmFyOw0KPiAgIH07DQo+IA0KPiAr LyogRFJNIEluZm9mcmFtZSBhcyBwZXIgQ1RBIDg2MS5HIHNwZWMgKi8NCj4gK3N0cnVjdCBoZG1p X2RybV9pbmZvZnJhbWUgew0KPiArICAgICAgIGVudW0gaGRtaV9pbmZvZnJhbWVfdHlwZSB0eXBl Ow0KPiArICAgICAgIHVuc2lnbmVkIGNoYXIgdmVyc2lvbjsNCj4gKyAgICAgICB1bnNpZ25lZCBj aGFyIGxlbmd0aDsNCj4gKyAgICAgICBlbnVtIGhkbWlfZW90ZiBlb3RmOw0KPiArICAgICAgIGVu dW0gaGRtaV9tZXRhZGF0YV90eXBlIG1ldGFkYXRhX3R5cGU7DQo+ICsgICAgICAgc3RydWN0IHsN Cj4gKyAgICAgICAgICAgICAgIHUxNiB4LCB5Ow0KPiArICAgICAgIH0gZGlzcGxheV9wcmltYXJp ZXNbM107DQo+ICsgICAgICAgc3RydWN0IHsNCj4gKyAgICAgICAgICAgICAgIHUxNiB4LCB5Ow0K PiArICAgICAgIH0gd2hpdGVfcG9pbnQ7DQo+ICsgICAgICAgdTE2IG1heF9kaXNwbGF5X21hc3Rl cmluZ19sdW1pbmFuY2U7DQo+ICsgICAgICAgdTE2IG1pbl9kaXNwbGF5X21hc3RlcmluZ19sdW1p bmFuY2U7DQo+ICsgICAgICAgdTE2IG1heF9jbGw7DQo+ICsgICAgICAgdTE2IG1heF9mYWxsOw0K PiArfTsNCj4gKw0KPiAgIGludCBoZG1pX2F2aV9pbmZvZnJhbWVfaW5pdChzdHJ1Y3QgaGRtaV9h dmlfaW5mb2ZyYW1lICpmcmFtZSk7DQo+ICAgc3NpemVfdCBoZG1pX2F2aV9pbmZvZnJhbWVfcGFj ayhzdHJ1Y3QgaGRtaV9hdmlfaW5mb2ZyYW1lICpmcmFtZSwgdm9pZCAqYnVmZmVyLA0KPiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgc2l6ZSk7DQo+ICAgc3NpemVfdCBo ZG1pX2F2aV9pbmZvZnJhbWVfcGFja19vbmx5KGNvbnN0IHN0cnVjdCBoZG1pX2F2aV9pbmZvZnJh bWUgKmZyYW1lLA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQg KmJ1ZmZlciwgc2l6ZV90IHNpemUpOw0KPiAgIGludCBoZG1pX2F2aV9pbmZvZnJhbWVfY2hlY2so c3RydWN0IGhkbWlfYXZpX2luZm9mcmFtZSAqZnJhbWUpOw0KPiAraW50IGhkbWlfZHJtX2luZm9m cmFtZV9pbml0KHN0cnVjdCBoZG1pX2RybV9pbmZvZnJhbWUgKmZyYW1lKTsNCj4gK3NzaXplX3Qg aGRtaV9kcm1faW5mb2ZyYW1lX3BhY2soc3RydWN0IGhkbWlfZHJtX2luZm9mcmFtZSAqZnJhbWUs IHZvaWQgKmJ1ZmZlciwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qg c2l6ZSk7DQo+ICtzc2l6ZV90IGhkbWlfZHJtX2luZm9mcmFtZV9wYWNrX29ubHkoY29uc3Qgc3Ry dWN0IGhkbWlfZHJtX2luZm9mcmFtZSAqZnJhbWUsDQo+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB2b2lkICpidWZmZXIsIHNpemVfdCBzaXplKTsNCj4gK2ludCBoZG1pX2Ry bV9pbmZvZnJhbWVfY2hlY2soc3RydWN0IGhkbWlfZHJtX2luZm9mcmFtZSAqZnJhbWUpOw0KPiAN Cj4gICBlbnVtIGhkbWlfc3BkX3NkaSB7DQo+ICAgICAgICAgIEhETUlfU1BEX1NESV9VTktOT1dO LA0KPiBAQCAtMzgxLDYgKzQwNyw3IEBAIHNzaXplX3QgaGRtaV92ZW5kb3JfaW5mb2ZyYW1lX3Bh Y2tfb25seShjb25zdCBzdHJ1Y3QgaGRtaV92ZW5kb3JfaW5mb2ZyYW1lICpmcmFtDQo+ICAgICAg ICAgIHN0cnVjdCBoZG1pX3NwZF9pbmZvZnJhbWUgc3BkOw0KPiAgICAgICAgICB1bmlvbiBoZG1p X3ZlbmRvcl9hbnlfaW5mb2ZyYW1lIHZlbmRvcjsNCj4gICAgICAgICAgc3RydWN0IGhkbWlfYXVk aW9faW5mb2ZyYW1lIGF1ZGlvOw0KPiArICAgICAgIHN0cnVjdCBoZG1pX2RybV9pbmZvZnJhbWUg ZHJtOw0KPiAgIH07DQo+IA0KPiAgIHNzaXplX3QgaGRtaV9pbmZvZnJhbWVfcGFjayh1bmlvbiBo ZG1pX2luZm9mcmFtZSAqZnJhbWUsIHZvaWQgKmJ1ZmZlciwNCj4gLS0NCj4gMS45LjENCj4gDQo+ IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+IGRyaS1k ZXZlbCBtYWlsaW5nIGxpc3QNCj4gZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZw0KPiBo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbA0K PiANCg0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJp LWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBz Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs