From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean Paul Subject: Re: [PATCH hwc v2 05/18] drm_hwcomposer: Enable resource manager support Date: Mon, 16 Apr 2018 15:54:02 -0400 Message-ID: <20180416195402.GT73214@art_vandelay> References: <1523460149-1740-1-git-send-email-alexandru-cosmin.gheorghe@arm.com> <1523460149-1740-6-git-send-email-alexandru-cosmin.gheorghe@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-yw0-x244.google.com (mail-yw0-x244.google.com [IPv6:2607:f8b0:4002:c05::244]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6AF806E03E for ; Mon, 16 Apr 2018 19:54:04 +0000 (UTC) Received: by mail-yw0-x244.google.com with SMTP id e63so2237540ywh.6 for ; Mon, 16 Apr 2018 12:54:04 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1523460149-1740-6-git-send-email-alexandru-cosmin.gheorghe@arm.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Alexandru Gheorghe Cc: ayan.halder@arm.com, liviu.dudau@arm.com, dri-devel@lists.freedesktop.org, nd@arm.com List-Id: dri-devel@lists.freedesktop.org T24gV2VkLCBBcHIgMTEsIDIwMTggYXQgMDQ6MjI6MTZQTSArMDEwMCwgQWxleGFuZHJ1IEdoZW9y Z2hlIHdyb3RlOgo+IFVzZSB0aGUgbmV3bHkgYWRkZWQgUmVzb3VyY2VNYW5hZ2VyIGZvciBjcmVh dGluZyBhbmQgZGV0ZWN0aW5nIGFsbCB0aGUKPiBkcm0gZGV2aWNlcyBpbnN0ZWFkIG9mIGFzc3Vt aW5nIHRoYXQgdGhlcmUgaXMgb25seSBvbmUgZGV2aWNlLgo+IAo+IFNpZ25lZC1vZmYtYnk6IEFs ZXhhbmRydSBHaGVvcmdoZSA8YWxleGFuZHJ1LWNvc21pbi5naGVvcmdoZUBhcm0uY29tPgo+IC0t LQo+ICBkcm1od2N0d28uY3BwICAgIHwgMzQgKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0t LS0tLQo+ICBkcm1od2N0d28uaCAgICAgIHwgIDQgKy0tLQo+ICBkcm1yZXNvdXJjZXMuY3BwIHwg MjUgKysrKysrKysrKysrKysrKysrLS0tLS0tLQo+ICBkcm1yZXNvdXJjZXMuaCAgIHwgMTQgKysr KysrKysrKystLS0KPiAgNCBmaWxlcyBjaGFuZ2VkLCA0MyBpbnNlcnRpb25zKCspLCAzNCBkZWxl dGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJtaHdjdHdvLmNwcCBiL2RybWh3Y3R3by5jcHAK PiBpbmRleCBkZmNhMWE2Li5jZGRkNWRhIDEwMDY0NAo+IC0tLSBhL2RybWh3Y3R3by5jcHAKPiAr KysgYi9kcm1od2N0d28uY3BwCj4gQEAgLTU4LDQwICs1OCwzMiBAQCBEcm1Id2NUd286OkRybUh3 Y1R3bygpIHsKPiAgfQo+ICAKPiAgSFdDMjo6RXJyb3IgRHJtSHdjVHdvOjpJbml0KCkgewo+IC0g IGludCByZXQgPSBkcm1fLkluaXQoKTsKPiArICBpbnQgcmV0ID0gcmVzb3VyY2VfbWFuYWdlcl8u SW5pdCgpOwo+ICAgIGlmIChyZXQpIHsKPiAtICAgIEFMT0dFKCJDYW4ndCBpbml0aWFsaXplIGRy bSBvYmplY3QgJWQiLCByZXQpOwo+ICsgICAgQUxPR0UoIkNhbid0IGluaXRpYWxpemUgdGhlIHJl c291cmNlIG1hbmFnZXIgJWQiLCByZXQpOwo+ICAgICAgcmV0dXJuIEhXQzI6OkVycm9yOjpOb1Jl c291cmNlczsKPiAgICB9Cj4gIAo+IC0gIGltcG9ydGVyXy5yZXNldChJbXBvcnRlcjo6Q3JlYXRl SW5zdGFuY2UoJmRybV8pKTsKPiAtICBpZiAoIWltcG9ydGVyXykgewo+IC0gICAgQUxPR0UoIkZh aWxlZCB0byBjcmVhdGUgaW1wb3J0ZXIgaW5zdGFuY2UiKTsKPiArICBEcm1SZXNvdXJjZXMgKmRy bSA9IHJlc291cmNlX21hbmFnZXJfLkdldERybVJlc291cmNlcyhIV0NfRElTUExBWV9QUklNQVJZ KTsKPiArICBzdGQ6OnNoYXJlZF9wdHI8SW1wb3J0ZXI+IGltcG9ydGVyID0KPiArICAgICAgcmVz b3VyY2VfbWFuYWdlcl8uR2V0SW1wb3J0ZXIoSFdDX0RJU1BMQVlfUFJJTUFSWSk7Cj4gKyAgaWYg KCFkcm0gfHwgIWltcG9ydGVyKSB7Cj4gKyAgICBBTE9HRSgiRmFpbGVkIHRvIGdldCBhIHZhbGlk IGRybXJlc291cmNlIGFuZCBpbXBvcnRlciIpOwo+ICAgICAgcmV0dXJuIEhXQzI6OkVycm9yOjpO b1Jlc291cmNlczsKPiAgICB9Cj4gKyAgZGlzcGxheXNfLmVtcGxhY2UoCj4gKyAgICAgIHN0ZDo6 cGllY2V3aXNlX2NvbnN0cnVjdCwgc3RkOjpmb3J3YXJkX2FzX3R1cGxlKEhXQ19ESVNQTEFZX1BS SU1BUlkpLAo+ICsgICAgICBzdGQ6OmZvcndhcmRfYXNfdHVwbGUoZHJtLCBpbXBvcnRlciwgcmVz b3VyY2VfbWFuYWdlcl8uR2V0R3JhbGxvYygpLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgSFdDX0RJU1BMQVlfUFJJTUFSWSwgSFdDMjo6RGlzcGxheVR5cGU6OlBoeXNpY2FsKSk7Cj4g IAo+IC0gIHJldCA9IGh3X2dldF9tb2R1bGUoR1JBTExPQ19IQVJEV0FSRV9NT0RVTEVfSUQsCj4g LSAgICAgICAgICAgICAgICAgICAgICAoY29uc3QgaHdfbW9kdWxlX3QgKiopJmdyYWxsb2NfKTsK PiAtICBpZiAocmV0KSB7Cj4gLSAgICBBTE9HRSgiRmFpbGVkIHRvIG9wZW4gZ3JhbGxvYyBtb2R1 bGUgJWQiLCByZXQpOwo+IC0gICAgcmV0dXJuIEhXQzI6OkVycm9yOjpOb1Jlc291cmNlczsKPiAt ICB9Cj4gLQo+IC0gIGRpc3BsYXlzXy5lbXBsYWNlKHN0ZDo6cGllY2V3aXNlX2NvbnN0cnVjdCwK PiAtICAgICAgICAgICAgICAgICAgICBzdGQ6OmZvcndhcmRfYXNfdHVwbGUoSFdDX0RJU1BMQVlf UFJJTUFSWSksCj4gLSAgICAgICAgICAgICAgICAgICAgc3RkOjpmb3J3YXJkX2FzX3R1cGxlKCZk cm1fLCBpbXBvcnRlcl8sIGdyYWxsb2NfLAo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBIV0NfRElTUExBWV9QUklNQVJZLAo+IC0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBIV0MyOjpEaXNwbGF5VHlwZTo6UGh5c2ljYWwpKTsKPiAt Cj4gLSAgRHJtQ3J0YyAqY3J0YyA9IGRybV8uR2V0Q3J0Y0ZvckRpc3BsYXkoc3RhdGljX2Nhc3Q8 aW50PihIV0NfRElTUExBWV9QUklNQVJZKSk7Cj4gKyAgRHJtQ3J0YyAqY3J0YyA9IGRybS0+R2V0 Q3J0Y0ZvckRpc3BsYXkoc3RhdGljX2Nhc3Q8aW50PihIV0NfRElTUExBWV9QUklNQVJZKSk7Cj4g ICAgaWYgKCFjcnRjKSB7Cj4gICAgICBBTE9HRSgiRmFpbGVkIHRvIGdldCBjcnRjIGZvciBkaXNw bGF5ICVkIiwKPiAgICAgICAgICAgIHN0YXRpY19jYXN0PGludD4oSFdDX0RJU1BMQVlfUFJJTUFS WSkpOwo+ICAgICAgcmV0dXJuIEhXQzI6OkVycm9yOjpCYWREaXNwbGF5Owo+ICAgIH0KPiAtCj4g ICAgc3RkOjp2ZWN0b3I8RHJtUGxhbmUgKj4gZGlzcGxheV9wbGFuZXM7Cj4gLSAgZm9yIChhdXRv ICZwbGFuZSA6IGRybV8ucGxhbmVzKCkpIHsKPiArICBmb3IgKGF1dG8gJnBsYW5lIDogZHJtLT5w bGFuZXMoKSkgewo+ICAgICAgaWYgKHBsYW5lLT5HZXRDcnRjU3VwcG9ydGVkKCpjcnRjKSkKPiAg ICAgICAgZGlzcGxheV9wbGFuZXMucHVzaF9iYWNrKHBsYW5lLmdldCgpKTsKPiAgICB9Cj4gZGlm ZiAtLWdpdCBhL2RybWh3Y3R3by5oIGIvZHJtaHdjdHdvLmgKPiBpbmRleCAwNDkwZTJhLi5iZWI1 ZDJkIDEwMDY0NAo+IC0tLSBhL2RybWh3Y3R3by5oCj4gKysrIGIvZHJtaHdjdHdvLmgKPiBAQCAt MjYyLDkgKzI2Miw3IEBAIGNsYXNzIERybUh3Y1R3byA6IHB1YmxpYyBod2MyX2RldmljZV90IHsK PiAgICBIV0MyOjpFcnJvciBSZWdpc3RlckNhbGxiYWNrKGludDMyX3QgZGVzY3JpcHRvciwgaHdj Ml9jYWxsYmFja19kYXRhX3QgZGF0YSwKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGh3YzJfZnVuY3Rpb25fcG9pbnRlcl90IGZ1bmN0aW9uKTsKPiAgCj4gLSAgRHJtUmVzb3VyY2Vz IGRybV87Cj4gLSAgc3RkOjpzaGFyZWRfcHRyPEltcG9ydGVyPiBpbXBvcnRlcl87ICAvLyBTaGFy ZWQgd2l0aCBId2NEaXNwbGF5Cj4gLSAgY29uc3QgZ3JhbGxvY19tb2R1bGVfdCAqZ3JhbGxvY187 Cj4gKyAgUmVzb3VyY2VNYW5hZ2VyIHJlc291cmNlX21hbmFnZXJfOwo+ICAgIHN0ZDo6bWFwPGh3 YzJfZGlzcGxheV90LCBId2NEaXNwbGF5PiBkaXNwbGF5c187Cj4gICAgc3RkOjptYXA8SFdDMjo6 Q2FsbGJhY2ssIEh3Y0NhbGxiYWNrPiBjYWxsYmFja3NfOwo+ICB9Owo+IGRpZmYgLS1naXQgYS9k cm1yZXNvdXJjZXMuY3BwIGIvZHJtcmVzb3VyY2VzLmNwcAo+IGluZGV4IDMyZGQzNzYuLmE1ZGRk YTAgMTAwNjQ0Cj4gLS0tIGEvZHJtcmVzb3VyY2VzLmNwcAo+ICsrKyBiL2RybXJlc291cmNlcy5j cHAKPiBAQCAtNDIsMTAgKzQyLDkgQEAgRHJtUmVzb3VyY2VzOjp+RHJtUmVzb3VyY2VzKCkgewo+ ICAgIGV2ZW50X2xpc3RlbmVyXy5FeGl0KCk7Cj4gIH0KPiAgCj4gLWludCBEcm1SZXNvdXJjZXM6 OkluaXQoKSB7Cj4gLSAgY2hhciBwYXRoW1BST1BFUlRZX1ZBTFVFX01BWF07Cj4gLSAgcHJvcGVy dHlfZ2V0KCJod2MuZHJtLmRldmljZSIsIHBhdGgsICIvZGV2L2RyaS9jYXJkMCIpOwo+IC0KPiAr aW50IERybVJlc291cmNlczo6SW5pdChSZXNvdXJjZU1hbmFnZXIgKnJlc291cmNlX21hbmFnZXIs IGNoYXIgKnBhdGgsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgaW50IHN0YXJ0X2Rpc3BsYXlf aW5kZXgpIHsKPiArICByZXNvdXJjZV9tYW5hZ2VyXyA9IHJlc291cmNlX21hbmFnZXI7CgpZb3Ug Y2FuIGF2b2lkIHRoZSBiYWNrcG9pbnRlciBpZiB5b3UganVzdCBwYXNzIHRoZSBSTSB0byB0aGUg cmlnaHQgcGxhY2VzIChsb29rcwpsaWtlIGNvbXBvc2l0b3IgKyBjb21wb3NpdGlvbikuIEJvbnVz IHBvaW50cyBpZiB5b3UgY2FuIHJlbW92ZSBkcm1fIGZyb20gdGhvc2UKb2JqZWN0cyBvbmNlIHlv dSd2ZSBkb25lIHRoYXQuCgo+ICAgIC8qIFRPRE86IFVzZSBkcm1PcGVuQ29udHJvbCBoZXJlIGlu c3RlYWQgKi8KPiAgICBmZF8uU2V0KG9wZW4ocGF0aCwgT19SRFdSKSk7Cj4gICAgaWYgKGZkKCkg PCAwKSB7Cj4gQEAgLTc2LDggKzc1LDggQEAgaW50IERybVJlc291cmNlczo6SW5pdCgpIHsKPiAg ICBtYXhfcmVzb2x1dGlvbl8gPQo+ICAgICAgICBzdGQ6OnBhaXI8dWludDMyX3QsIHVpbnQzMl90 PihyZXMtPm1heF93aWR0aCwgcmVzLT5tYXhfaGVpZ2h0KTsKPiAgCj4gLSAgYm9vbCBmb3VuZF9w cmltYXJ5ID0gZmFsc2U7Cj4gLSAgaW50IGRpc3BsYXlfbnVtID0gMTsKPiArICBib29sIGZvdW5k X3ByaW1hcnkgPSBzdGFydF9kaXNwbGF5X2luZGV4ICE9IDA7Cj4gKyAgaW50IGRpc3BsYXlfbnVt ID0gZm91bmRfcHJpbWFyeSA/IHN0YXJ0X2Rpc3BsYXlfaW5kZXggOiAxOwoKVGhpcyBjb3VsZCB1 c2UgYSBjb21tZW50LiBBRkFJQ1QsIHlvdSdyZSBhc3N1bWluZyB0aGUgcHJpbWFyeSBkaXNwbGF5 IHdpbGwKYWx3YXlzIGJlIGluIHRoZSBmaXJzdCBkcm0gZGV2aWNlLCB3aGljaCBpcyBmaW5lLCBi dXQgc2hvdWxkIGJlIGV4cGxhaW5lZApfc29tZXdoZXJlXy4KCj4gIAo+ICAgIGZvciAoaW50IGkg PSAwOyAhcmV0ICYmIGkgPCByZXMtPmNvdW50X2NydGNzOyArK2kpIHsKPiAgICAgIGRybU1vZGVD cnRjUHRyIGMgPSBkcm1Nb2RlR2V0Q3J0YyhmZCgpLCByZXMtPmNydGNzW2ldKTsKPiBAQCAtMTYx LDkgKzE2MCwxMSBAQCBpbnQgRHJtUmVzb3VyY2VzOjpJbml0KCkgewo+ICAgIGZvciAoYXV0byAm Y29ubiA6IGNvbm5lY3RvcnNfKSB7Cj4gICAgICBpZiAoY29ubi0+aW50ZXJuYWwoKSAmJiAhZm91 bmRfcHJpbWFyeSkgewo+ICAgICAgICBjb25uLT5zZXRfZGlzcGxheSgwKTsKPiArICAgICAgZGlz cGxheXNfWzBdID0gMDsKPiAgICAgICAgZm91bmRfcHJpbWFyeSA9IHRydWU7Cj4gICAgICB9IGVs c2Ugewo+ICAgICAgICBjb25uLT5zZXRfZGlzcGxheShkaXNwbGF5X251bSk7Cj4gKyAgICAgIGRp c3BsYXlzX1tkaXNwbGF5X251bV0gPSBkaXNwbGF5X251bTsKPiAgICAgICAgKytkaXNwbGF5X251 bTsKPiAgICAgIH0KPiAgICB9Cj4gQEAgLTE3MSw3ICsxNzIsOSBAQCBpbnQgRHJtUmVzb3VyY2Vz OjpJbml0KCkgewo+ICAgIC8vIFRoZW4gbG9vayBmb3IgcHJpbWFyeSBhbW9uZ3N0IGV4dGVybmFs IGNvbm5lY3RvcnMKPiAgICBmb3IgKGF1dG8gJmNvbm4gOiBjb25uZWN0b3JzXykgewo+ICAgICAg aWYgKGNvbm4tPmV4dGVybmFsKCkgJiYgIWZvdW5kX3ByaW1hcnkpIHsKPiArICAgICAgZGlzcGxh eXNfLmVyYXNlKGNvbm4tPmRpc3BsYXkoKSk7Cj4gICAgICAgIGNvbm4tPnNldF9kaXNwbGF5KDAp Owo+ICsgICAgICBkaXNwbGF5c19bMF0gPSAwOwo+ICAgICAgICBmb3VuZF9wcmltYXJ5ID0gdHJ1 ZTsKPiAgICAgIH0KPiAgICB9Cj4gQEAgLTIyNiw3ICsyMjksMTEgQEAgaW50IERybVJlc291cmNl czo6SW5pdCgpIHsKPiAgICAgICAgcmV0dXJuIHJldDsKPiAgICAgIH0KPiAgICB9Cj4gLSAgcmV0 dXJuIDA7Cj4gKyAgcmV0dXJuIGRpc3BsYXlzXy5zaXplKCkgPyBkaXNwbGF5c18ucmJlZ2luKCkt PmZpcnN0IDogLUVJTlZBTDsKCkknZCByYXRoZXIgbm90IGNoYW5nZSB0aGUgbWVhbmluZyBvZiB0 aGUgcmV0dXJuIHZhbHVlIChlc3BlY2lhbGx5IHdpdGhvdXQgYQpjb21tZW50IHNvbWV3aGVyZSB0 byBsZXQgcmVhZGVycyBrbm93IHRoaXMgZnVuY3Rpb24gZG9lc24ndCBmb2xsb3cgdGhlIDAgfHwK LUVSUk5PIGNvbnZlbnRpb24pLiBDb25zaWRlciByZXR1cm5pbmcgYSBwYWlyIG9mIHJldCxkaXNw bGF5LgoKPiArfQo+ICsKPiArYm9vbCBEcm1SZXNvdXJjZXM6OkhhbmRsZXNEaXNwbGF5KGludCBk aXNwbGF5KSBjb25zdCB7Cj4gKyAgcmV0dXJuIGRpc3BsYXlzXy5maW5kKGRpc3BsYXkpICE9IGRp c3BsYXlzXy5lbmQoKTsKPiAgfQo+ICAKPiAgRHJtQ29ubmVjdG9yICpEcm1SZXNvdXJjZXM6Okdl dENvbm5lY3RvckZvckRpc3BsYXkoaW50IGRpc3BsYXkpIGNvbnN0IHsKPiBAQCAtMzQ5LDYgKzM1 NiwxMCBAQCBEcm1FdmVudExpc3RlbmVyICpEcm1SZXNvdXJjZXM6OmV2ZW50X2xpc3RlbmVyKCkg ewo+ICAgIHJldHVybiAmZXZlbnRfbGlzdGVuZXJfOwo+ICB9Cj4gIAo+ICtSZXNvdXJjZU1hbmFn ZXIgKkRybVJlc291cmNlczo6cmVzb3VyY2VfbWFuYWdlcigpIHsKPiArICByZXR1cm4gcmVzb3Vy Y2VfbWFuYWdlcl87Cj4gK30KPiArCj4gIGludCBEcm1SZXNvdXJjZXM6OkdldFByb3BlcnR5KHVp bnQzMl90IG9ial9pZCwgdWludDMyX3Qgb2JqX3R5cGUsCj4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbnN0IGNoYXIgKnByb3BfbmFtZSwgRHJtUHJvcGVydHkgKnByb3BlcnR5KSB7 Cj4gICAgZHJtTW9kZU9iamVjdFByb3BlcnRpZXNQdHIgcHJvcHM7Cj4gZGlmZiAtLWdpdCBhL2Ry bXJlc291cmNlcy5oIGIvZHJtcmVzb3VyY2VzLmgKPiBpbmRleCA0Y2NhNDhjLi40Y2RjZDg3IDEw MDY0NAo+IC0tLSBhL2RybXJlc291cmNlcy5oCj4gKysrIGIvZHJtcmVzb3VyY2VzLmgKPiBAQCAt MTcsMjIgKzE3LDI2IEBACj4gICNpZm5kZWYgQU5EUk9JRF9EUk1fSF8KPiAgI2RlZmluZSBBTkRS T0lEX0RSTV9IXwo+ICAKPiArI2luY2x1ZGUgPHN0ZGludC5oPgo+ICAjaW5jbHVkZSAiZHJtY29u bmVjdG9yLmgiCj4gICNpbmNsdWRlICJkcm1jcnRjLmgiCj4gICNpbmNsdWRlICJkcm1lbmNvZGVy LmgiCj4gICNpbmNsdWRlICJkcm1ldmVudGxpc3RlbmVyLmgiCj4gICNpbmNsdWRlICJkcm1wbGFu ZS5oIgo+IC0KPiAtI2luY2x1ZGUgPHN0ZGludC5oPgoKV2h5IHRoaXMgY2hhbmdlPwoKPiArI2lu Y2x1ZGUgInBsYXRmb3JtLmgiCj4gKyNpbmNsdWRlICJyZXNvdXJjZW1hbmFnZXIuaCIKPiAgCj4g IG5hbWVzcGFjZSBhbmRyb2lkIHsKPiAgCj4gK2NsYXNzIFJlc291cmNlTWFuYWdlcjsKPiArCj4g IGNsYXNzIERybVJlc291cmNlcyB7Cj4gICBwdWJsaWM6Cj4gICAgRHJtUmVzb3VyY2VzKCk7Cj4g ICAgfkRybVJlc291cmNlcygpOwo+ICAKPiAtICBpbnQgSW5pdCgpOwo+ICsgIGludCBJbml0KFJl c291cmNlTWFuYWdlciAqcmVzb3VyY2VfbWFuYWdlciwgY2hhciAqcGF0aCwKPiArICAgICAgICAg ICBpbnQgc3RhcnRfZGlzcGxheV9pbmRleCk7Cj4gIAo+ICAgIGludCBmZCgpIGNvbnN0IHsKPiAg ICAgIHJldHVybiBmZF8uZ2V0KCk7Cj4gQEAgLTU4LDYgKzYyLDcgQEAgY2xhc3MgRHJtUmVzb3Vy Y2VzIHsKPiAgICBEcm1DcnRjICpHZXRDcnRjRm9yRGlzcGxheShpbnQgZGlzcGxheSkgY29uc3Q7 Cj4gICAgRHJtUGxhbmUgKkdldFBsYW5lKHVpbnQzMl90IGlkKSBjb25zdDsKPiAgICBEcm1FdmVu dExpc3RlbmVyICpldmVudF9saXN0ZW5lcigpOwo+ICsgIFJlc291cmNlTWFuYWdlciAqcmVzb3Vy Y2VfbWFuYWdlcigpOwo+ICAKPiAgICBpbnQgR2V0UGxhbmVQcm9wZXJ0eShjb25zdCBEcm1QbGFu ZSAmcGxhbmUsIGNvbnN0IGNoYXIgKnByb3BfbmFtZSwKPiAgICAgICAgICAgICAgICAgICAgICAg ICBEcm1Qcm9wZXJ0eSAqcHJvcGVydHkpOwo+IEBAIC03MSw2ICs3Niw3IEBAIGNsYXNzIERybVJl c291cmNlcyB7Cj4gIAo+ICAgIGludCBDcmVhdGVQcm9wZXJ0eUJsb2Iodm9pZCAqZGF0YSwgc2l6 ZV90IGxlbmd0aCwgdWludDMyX3QgKmJsb2JfaWQpOwo+ICAgIGludCBEZXN0cm95UHJvcGVydHlC bG9iKHVpbnQzMl90IGJsb2JfaWQpOwo+ICsgIGJvb2wgSGFuZGxlc0Rpc3BsYXkoaW50IGRpc3Bs YXkpIGNvbnN0Owo+ICAKPiAgIHByaXZhdGU6Cj4gICAgaW50IFRyeUVuY29kZXJGb3JEaXNwbGF5 KGludCBkaXNwbGF5LCBEcm1FbmNvZGVyICplbmMpOwo+IEBAIC05MCw2ICs5Niw4IEBAIGNsYXNz IERybVJlc291cmNlcyB7Cj4gIAo+ICAgIHN0ZDo6cGFpcjx1aW50MzJfdCwgdWludDMyX3Q+IG1p bl9yZXNvbHV0aW9uXzsKPiAgICBzdGQ6OnBhaXI8dWludDMyX3QsIHVpbnQzMl90PiBtYXhfcmVz b2x1dGlvbl87Cj4gKyAgc3RkOjptYXA8aW50LCBpbnQ+IGRpc3BsYXlzXzsKPiArICBSZXNvdXJj ZU1hbmFnZXIgKnJlc291cmNlX21hbmFnZXJfOwo+ICB9Owo+ICB9Cj4gIAo+IC0tIAo+IDIuNy40 Cj4gCgotLSAKU2VhbiBQYXVsLCBTb2Z0d2FyZSBFbmdpbmVlciwgR29vZ2xlIC8gQ2hyb21pdW0g T1MKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRl dmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==