From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alexandru-Cosmin Gheorghe Subject: Re: [PATCH hwc v2 05/18] drm_hwcomposer: Enable resource manager support Date: Tue, 17 Apr 2018 14:43:17 +0100 Message-ID: <20180417134317.GB25814@e114479-lin.cambridge.arm.com> References: <1523460149-1740-1-git-send-email-alexandru-cosmin.gheorghe@arm.com> <1523460149-1740-6-git-send-email-alexandru-cosmin.gheorghe@arm.com> <20180416195402.GT73214@art_vandelay> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from EUR01-VE1-obe.outbound.protection.outlook.com (mail-ve1eur01on060e.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe1f::60e]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5F4EB6E01D for ; Tue, 17 Apr 2018 13:43:24 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20180416195402.GT73214@art_vandelay> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Sean Paul Cc: nd@arm.com, ayan.halder@arm.com, liviu.dudau@arm.com, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org SGkgU2VhbiwKCk9uIE1vbiwgQXByIDE2LCAyMDE4IGF0IDAzOjU0OjAyUE0gLTA0MDAsIFNlYW4g UGF1bCB3cm90ZToKPiBPbiBXZWQsIEFwciAxMSwgMjAxOCBhdCAwNDoyMjoxNlBNICswMTAwLCBB bGV4YW5kcnUgR2hlb3JnaGUgd3JvdGU6Cj4gPiBVc2UgdGhlIG5ld2x5IGFkZGVkIFJlc291cmNl TWFuYWdlciBmb3IgY3JlYXRpbmcgYW5kIGRldGVjdGluZyBhbGwgdGhlCj4gPiBkcm0gZGV2aWNl cyBpbnN0ZWFkIG9mIGFzc3VtaW5nIHRoYXQgdGhlcmUgaXMgb25seSBvbmUgZGV2aWNlLgo+ID4g Cj4gPiBTaWduZWQtb2ZmLWJ5OiBBbGV4YW5kcnUgR2hlb3JnaGUgPGFsZXhhbmRydS1jb3NtaW4u Z2hlb3JnaGVAYXJtLmNvbT4KPiA+IC0tLQo+ID4gIGRybWh3Y3R3by5jcHAgICAgfCAzNCArKysr KysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiAgZHJtaHdjdHdvLmggICAgICB8ICA0 ICstLS0KPiA+ICBkcm1yZXNvdXJjZXMuY3BwIHwgMjUgKysrKysrKysrKysrKysrKysrLS0tLS0t LQo+ID4gIGRybXJlc291cmNlcy5oICAgfCAxNCArKysrKysrKysrKy0tLQo+ID4gIDQgZmlsZXMg Y2hhbmdlZCwgNDMgaW5zZXJ0aW9ucygrKSwgMzQgZGVsZXRpb25zKC0pCj4gPiAKPiA+IGRpZmYg LS1naXQgYS9kcm1od2N0d28uY3BwIGIvZHJtaHdjdHdvLmNwcAo+ID4gaW5kZXggZGZjYTFhNi4u Y2RkZDVkYSAxMDA2NDQKPiA+IC0tLSBhL2RybWh3Y3R3by5jcHAKPiA+ICsrKyBiL2RybWh3Y3R3 by5jcHAKPiA+IEBAIC01OCw0MCArNTgsMzIgQEAgRHJtSHdjVHdvOjpEcm1Id2NUd28oKSB7Cj4g PiAgfQo+ID4gIAo+ID4gIEhXQzI6OkVycm9yIERybUh3Y1R3bzo6SW5pdCgpIHsKPiA+IC0gIGlu dCByZXQgPSBkcm1fLkluaXQoKTsKPiA+ICsgIGludCByZXQgPSByZXNvdXJjZV9tYW5hZ2VyXy5J bml0KCk7Cj4gPiAgICBpZiAocmV0KSB7Cj4gPiAtICAgIEFMT0dFKCJDYW4ndCBpbml0aWFsaXpl IGRybSBvYmplY3QgJWQiLCByZXQpOwo+ID4gKyAgICBBTE9HRSgiQ2FuJ3QgaW5pdGlhbGl6ZSB0 aGUgcmVzb3VyY2UgbWFuYWdlciAlZCIsIHJldCk7Cj4gPiAgICAgIHJldHVybiBIV0MyOjpFcnJv cjo6Tm9SZXNvdXJjZXM7Cj4gPiAgICB9Cj4gPiAgCj4gPiAtICBpbXBvcnRlcl8ucmVzZXQoSW1w b3J0ZXI6OkNyZWF0ZUluc3RhbmNlKCZkcm1fKSk7Cj4gPiAtICBpZiAoIWltcG9ydGVyXykgewo+ ID4gLSAgICBBTE9HRSgiRmFpbGVkIHRvIGNyZWF0ZSBpbXBvcnRlciBpbnN0YW5jZSIpOwo+ID4g KyAgRHJtUmVzb3VyY2VzICpkcm0gPSByZXNvdXJjZV9tYW5hZ2VyXy5HZXREcm1SZXNvdXJjZXMo SFdDX0RJU1BMQVlfUFJJTUFSWSk7Cj4gPiArICBzdGQ6OnNoYXJlZF9wdHI8SW1wb3J0ZXI+IGlt cG9ydGVyID0KPiA+ICsgICAgICByZXNvdXJjZV9tYW5hZ2VyXy5HZXRJbXBvcnRlcihIV0NfRElT UExBWV9QUklNQVJZKTsKPiA+ICsgIGlmICghZHJtIHx8ICFpbXBvcnRlcikgewo+ID4gKyAgICBB TE9HRSgiRmFpbGVkIHRvIGdldCBhIHZhbGlkIGRybXJlc291cmNlIGFuZCBpbXBvcnRlciIpOwo+ ID4gICAgICByZXR1cm4gSFdDMjo6RXJyb3I6Ok5vUmVzb3VyY2VzOwo+ID4gICAgfQo+ID4gKyAg ZGlzcGxheXNfLmVtcGxhY2UoCj4gPiArICAgICAgc3RkOjpwaWVjZXdpc2VfY29uc3RydWN0LCBz dGQ6OmZvcndhcmRfYXNfdHVwbGUoSFdDX0RJU1BMQVlfUFJJTUFSWSksCj4gPiArICAgICAgc3Rk Ojpmb3J3YXJkX2FzX3R1cGxlKGRybSwgaW1wb3J0ZXIsIHJlc291cmNlX21hbmFnZXJfLkdldEdy YWxsb2MoKSwKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgSFdDX0RJU1BMQVlfUFJJ TUFSWSwgSFdDMjo6RGlzcGxheVR5cGU6OlBoeXNpY2FsKSk7Cj4gPiAgCj4gPiAtICByZXQgPSBo d19nZXRfbW9kdWxlKEdSQUxMT0NfSEFSRFdBUkVfTU9EVUxFX0lELAo+ID4gLSAgICAgICAgICAg ICAgICAgICAgICAoY29uc3QgaHdfbW9kdWxlX3QgKiopJmdyYWxsb2NfKTsKPiA+IC0gIGlmIChy ZXQpIHsKPiA+IC0gICAgQUxPR0UoIkZhaWxlZCB0byBvcGVuIGdyYWxsb2MgbW9kdWxlICVkIiwg cmV0KTsKPiA+IC0gICAgcmV0dXJuIEhXQzI6OkVycm9yOjpOb1Jlc291cmNlczsKPiA+IC0gIH0K PiA+IC0KPiA+IC0gIGRpc3BsYXlzXy5lbXBsYWNlKHN0ZDo6cGllY2V3aXNlX2NvbnN0cnVjdCwK PiA+IC0gICAgICAgICAgICAgICAgICAgIHN0ZDo6Zm9yd2FyZF9hc190dXBsZShIV0NfRElTUExB WV9QUklNQVJZKSwKPiA+IC0gICAgICAgICAgICAgICAgICAgIHN0ZDo6Zm9yd2FyZF9hc190dXBs ZSgmZHJtXywgaW1wb3J0ZXJfLCBncmFsbG9jXywKPiA+IC0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBIV0NfRElTUExBWV9QUklNQVJZLAo+ID4gLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhXQzI6OkRpc3BsYXlUeXBlOjpQaHlzaWNh bCkpOwo+ID4gLQo+ID4gLSAgRHJtQ3J0YyAqY3J0YyA9IGRybV8uR2V0Q3J0Y0ZvckRpc3BsYXko c3RhdGljX2Nhc3Q8aW50PihIV0NfRElTUExBWV9QUklNQVJZKSk7Cj4gPiArICBEcm1DcnRjICpj cnRjID0gZHJtLT5HZXRDcnRjRm9yRGlzcGxheShzdGF0aWNfY2FzdDxpbnQ+KEhXQ19ESVNQTEFZ X1BSSU1BUlkpKTsKPiA+ICAgIGlmICghY3J0Yykgewo+ID4gICAgICBBTE9HRSgiRmFpbGVkIHRv IGdldCBjcnRjIGZvciBkaXNwbGF5ICVkIiwKPiA+ICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50 PihIV0NfRElTUExBWV9QUklNQVJZKSk7Cj4gPiAgICAgIHJldHVybiBIV0MyOjpFcnJvcjo6QmFk RGlzcGxheTsKPiA+ICAgIH0KPiA+IC0KPiA+ICAgIHN0ZDo6dmVjdG9yPERybVBsYW5lICo+IGRp c3BsYXlfcGxhbmVzOwo+ID4gLSAgZm9yIChhdXRvICZwbGFuZSA6IGRybV8ucGxhbmVzKCkpIHsK PiA+ICsgIGZvciAoYXV0byAmcGxhbmUgOiBkcm0tPnBsYW5lcygpKSB7Cj4gPiAgICAgIGlmIChw bGFuZS0+R2V0Q3J0Y1N1cHBvcnRlZCgqY3J0YykpCj4gPiAgICAgICAgZGlzcGxheV9wbGFuZXMu cHVzaF9iYWNrKHBsYW5lLmdldCgpKTsKPiA+ICAgIH0KPiA+IGRpZmYgLS1naXQgYS9kcm1od2N0 d28uaCBiL2RybWh3Y3R3by5oCj4gPiBpbmRleCAwNDkwZTJhLi5iZWI1ZDJkIDEwMDY0NAo+ID4g LS0tIGEvZHJtaHdjdHdvLmgKPiA+ICsrKyBiL2RybWh3Y3R3by5oCj4gPiBAQCAtMjYyLDkgKzI2 Miw3IEBAIGNsYXNzIERybUh3Y1R3byA6IHB1YmxpYyBod2MyX2RldmljZV90IHsKPiA+ICAgIEhX QzI6OkVycm9yIFJlZ2lzdGVyQ2FsbGJhY2soaW50MzJfdCBkZXNjcmlwdG9yLCBod2MyX2NhbGxi YWNrX2RhdGFfdCBkYXRhLAo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBod2My X2Z1bmN0aW9uX3BvaW50ZXJfdCBmdW5jdGlvbik7Cj4gPiAgCj4gPiAtICBEcm1SZXNvdXJjZXMg ZHJtXzsKPiA+IC0gIHN0ZDo6c2hhcmVkX3B0cjxJbXBvcnRlcj4gaW1wb3J0ZXJfOyAgLy8gU2hh cmVkIHdpdGggSHdjRGlzcGxheQo+ID4gLSAgY29uc3QgZ3JhbGxvY19tb2R1bGVfdCAqZ3JhbGxv Y187Cj4gPiArICBSZXNvdXJjZU1hbmFnZXIgcmVzb3VyY2VfbWFuYWdlcl87Cj4gPiAgICBzdGQ6 Om1hcDxod2MyX2Rpc3BsYXlfdCwgSHdjRGlzcGxheT4gZGlzcGxheXNfOwo+ID4gICAgc3RkOjpt YXA8SFdDMjo6Q2FsbGJhY2ssIEh3Y0NhbGxiYWNrPiBjYWxsYmFja3NfOwo+ID4gIH07Cj4gPiBk aWZmIC0tZ2l0IGEvZHJtcmVzb3VyY2VzLmNwcCBiL2RybXJlc291cmNlcy5jcHAKPiA+IGluZGV4 IDMyZGQzNzYuLmE1ZGRkYTAgMTAwNjQ0Cj4gPiAtLS0gYS9kcm1yZXNvdXJjZXMuY3BwCj4gPiAr KysgYi9kcm1yZXNvdXJjZXMuY3BwCj4gPiBAQCAtNDIsMTAgKzQyLDkgQEAgRHJtUmVzb3VyY2Vz Ojp+RHJtUmVzb3VyY2VzKCkgewo+ID4gICAgZXZlbnRfbGlzdGVuZXJfLkV4aXQoKTsKPiA+ICB9 Cj4gPiAgCj4gPiAtaW50IERybVJlc291cmNlczo6SW5pdCgpIHsKPiA+IC0gIGNoYXIgcGF0aFtQ Uk9QRVJUWV9WQUxVRV9NQVhdOwo+ID4gLSAgcHJvcGVydHlfZ2V0KCJod2MuZHJtLmRldmljZSIs IHBhdGgsICIvZGV2L2RyaS9jYXJkMCIpOwo+ID4gLQo+ID4gK2ludCBEcm1SZXNvdXJjZXM6Oklu aXQoUmVzb3VyY2VNYW5hZ2VyICpyZXNvdXJjZV9tYW5hZ2VyLCBjaGFyICpwYXRoLAo+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgaW50IHN0YXJ0X2Rpc3BsYXlfaW5kZXgpIHsKPiA+ICsgIHJl c291cmNlX21hbmFnZXJfID0gcmVzb3VyY2VfbWFuYWdlcjsKPiAKPiBZb3UgY2FuIGF2b2lkIHRo ZSBiYWNrcG9pbnRlciBpZiB5b3UganVzdCBwYXNzIHRoZSBSTSB0byB0aGUgcmlnaHQgcGxhY2Vz IChsb29rcwo+IGxpa2UgY29tcG9zaXRvciArIGNvbXBvc2l0aW9uKS4gQm9udXMgcG9pbnRzIGlm IHlvdSBjYW4gcmVtb3ZlIGRybV8gZnJvbSB0aG9zZQo+IG9iamVjdHMgb25jZSB5b3UndmUgZG9u ZSB0aGF0LgoKVGhhdCdzIHRoZSB0aGluZyBDb21wb3NpdG9yL0NvbXBvc2l0aW9uIGFscmVhZHkg aGFkIGRybV8sIGhlbmNlIHRoZQpuZWVkIG9mIHRoZSBiYWNrcG9pbnRlci4gRGlkbid0IHdhbnQg dG8gdG91Y2ggdGhhdCBhcyB3ZWxsLiBJIHN1cHBvc2UKdGhlcmUgaXMgbm8gc3Ryb25nIHJlYXNv biB3aHkgYm90aCBDb21wb3NpdG9yICYgQ29tcG9zaXRpb24gc2hvdWxkbid0CmhhdmUganVzdCBh IFJlc291cmNlTWFuYWdlciBvYmplY3QuCgo+IAo+ID4gICAgLyogVE9ETzogVXNlIGRybU9wZW5D b250cm9sIGhlcmUgaW5zdGVhZCAqLwo+ID4gICAgZmRfLlNldChvcGVuKHBhdGgsIE9fUkRXUikp Owo+ID4gICAgaWYgKGZkKCkgPCAwKSB7Cj4gPiBAQCAtNzYsOCArNzUsOCBAQCBpbnQgRHJtUmVz b3VyY2VzOjpJbml0KCkgewo+ID4gICAgbWF4X3Jlc29sdXRpb25fID0KPiA+ICAgICAgICBzdGQ6 OnBhaXI8dWludDMyX3QsIHVpbnQzMl90PihyZXMtPm1heF93aWR0aCwgcmVzLT5tYXhfaGVpZ2h0 KTsKPiA+ICAKPiA+IC0gIGJvb2wgZm91bmRfcHJpbWFyeSA9IGZhbHNlOwo+ID4gLSAgaW50IGRp c3BsYXlfbnVtID0gMTsKPiA+ICsgIGJvb2wgZm91bmRfcHJpbWFyeSA9IHN0YXJ0X2Rpc3BsYXlf aW5kZXggIT0gMDsKPiA+ICsgIGludCBkaXNwbGF5X251bSA9IGZvdW5kX3ByaW1hcnkgPyBzdGFy dF9kaXNwbGF5X2luZGV4IDogMTsKPiAKPiBUaGlzIGNvdWxkIHVzZSBhIGNvbW1lbnQuIEFGQUlD VCwgeW91J3JlIGFzc3VtaW5nIHRoZSBwcmltYXJ5IGRpc3BsYXkgd2lsbAo+IGFsd2F5cyBiZSBp biB0aGUgZmlyc3QgZHJtIGRldmljZSwgd2hpY2ggaXMgZmluZSwgYnV0IHNob3VsZCBiZSBleHBs YWluZWQKPiBfc29tZXdoZXJlXy4KCldpbGwgZG8uCgo+IAo+ID4gIAo+ID4gICAgZm9yIChpbnQg aSA9IDA7ICFyZXQgJiYgaSA8IHJlcy0+Y291bnRfY3J0Y3M7ICsraSkgewo+ID4gICAgICBkcm1N b2RlQ3J0Y1B0ciBjID0gZHJtTW9kZUdldENydGMoZmQoKSwgcmVzLT5jcnRjc1tpXSk7Cj4gPiBA QCAtMTYxLDkgKzE2MCwxMSBAQCBpbnQgRHJtUmVzb3VyY2VzOjpJbml0KCkgewo+ID4gICAgZm9y IChhdXRvICZjb25uIDogY29ubmVjdG9yc18pIHsKPiA+ICAgICAgaWYgKGNvbm4tPmludGVybmFs KCkgJiYgIWZvdW5kX3ByaW1hcnkpIHsKPiA+ICAgICAgICBjb25uLT5zZXRfZGlzcGxheSgwKTsK PiA+ICsgICAgICBkaXNwbGF5c19bMF0gPSAwOwo+ID4gICAgICAgIGZvdW5kX3ByaW1hcnkgPSB0 cnVlOwo+ID4gICAgICB9IGVsc2Ugewo+ID4gICAgICAgIGNvbm4tPnNldF9kaXNwbGF5KGRpc3Bs YXlfbnVtKTsKPiA+ICsgICAgICBkaXNwbGF5c19bZGlzcGxheV9udW1dID0gZGlzcGxheV9udW07 Cj4gPiAgICAgICAgKytkaXNwbGF5X251bTsKPiA+ICAgICAgfQo+ID4gICAgfQo+ID4gQEAgLTE3 MSw3ICsxNzIsOSBAQCBpbnQgRHJtUmVzb3VyY2VzOjpJbml0KCkgewo+ID4gICAgLy8gVGhlbiBs b29rIGZvciBwcmltYXJ5IGFtb25nc3QgZXh0ZXJuYWwgY29ubmVjdG9ycwo+ID4gICAgZm9yIChh dXRvICZjb25uIDogY29ubmVjdG9yc18pIHsKPiA+ICAgICAgaWYgKGNvbm4tPmV4dGVybmFsKCkg JiYgIWZvdW5kX3ByaW1hcnkpIHsKPiA+ICsgICAgICBkaXNwbGF5c18uZXJhc2UoY29ubi0+ZGlz cGxheSgpKTsKPiA+ICAgICAgICBjb25uLT5zZXRfZGlzcGxheSgwKTsKPiA+ICsgICAgICBkaXNw bGF5c19bMF0gPSAwOwo+ID4gICAgICAgIGZvdW5kX3ByaW1hcnkgPSB0cnVlOwo+ID4gICAgICB9 Cj4gPiAgICB9Cj4gPiBAQCAtMjI2LDcgKzIyOSwxMSBAQCBpbnQgRHJtUmVzb3VyY2VzOjpJbml0 KCkgewo+ID4gICAgICAgIHJldHVybiByZXQ7Cj4gPiAgICAgIH0KPiA+ICAgIH0KPiA+IC0gIHJl dHVybiAwOwo+ID4gKyAgcmV0dXJuIGRpc3BsYXlzXy5zaXplKCkgPyBkaXNwbGF5c18ucmJlZ2lu KCktPmZpcnN0IDogLUVJTlZBTDsKPiAKPiBJJ2QgcmF0aGVyIG5vdCBjaGFuZ2UgdGhlIG1lYW5p bmcgb2YgdGhlIHJldHVybiB2YWx1ZSAoZXNwZWNpYWxseSB3aXRob3V0IGEKPiBjb21tZW50IHNv bWV3aGVyZSB0byBsZXQgcmVhZGVycyBrbm93IHRoaXMgZnVuY3Rpb24gZG9lc24ndCBmb2xsb3cg dGhlIDAgfHwKPiAtRVJSTk8gY29udmVudGlvbikuIENvbnNpZGVyIHJldHVybmluZyBhIHBhaXIg b2YgcmV0LGRpc3BsYXkuCgpJIGF2b2lkZWQgcGFpciBiZWNhdXNlIGl0IGxvb2tzIHNvIHVnbHks IGJ1dCBzdXBwb3NlIGl0J3MgYmV0dGVyIHRoYW4Kbm90IGtub3dpbmcgaWYgaXQncyBhbiBlcnJv ciBjb2RlIG9yIHNvbWV0aGluZyBlbHNlLiAKSSB3aWxsIHVwZGF0ZSBpdCB0byByZXR1cm4gYSBw YWlyLgoKPiAKPiA+ICt9Cj4gPiArCj4gPiArYm9vbCBEcm1SZXNvdXJjZXM6OkhhbmRsZXNEaXNw bGF5KGludCBkaXNwbGF5KSBjb25zdCB7Cj4gPiArICByZXR1cm4gZGlzcGxheXNfLmZpbmQoZGlz cGxheSkgIT0gZGlzcGxheXNfLmVuZCgpOwo+ID4gIH0KPiA+ICAKPiA+ICBEcm1Db25uZWN0b3Ig KkRybVJlc291cmNlczo6R2V0Q29ubmVjdG9yRm9yRGlzcGxheShpbnQgZGlzcGxheSkgY29uc3Qg ewo+ID4gQEAgLTM0OSw2ICszNTYsMTAgQEAgRHJtRXZlbnRMaXN0ZW5lciAqRHJtUmVzb3VyY2Vz OjpldmVudF9saXN0ZW5lcigpIHsKPiA+ICAgIHJldHVybiAmZXZlbnRfbGlzdGVuZXJfOwo+ID4g IH0KPiA+ICAKPiA+ICtSZXNvdXJjZU1hbmFnZXIgKkRybVJlc291cmNlczo6cmVzb3VyY2VfbWFu YWdlcigpIHsKPiA+ICsgIHJldHVybiByZXNvdXJjZV9tYW5hZ2VyXzsKPiA+ICt9Cj4gPiArCj4g PiAgaW50IERybVJlc291cmNlczo6R2V0UHJvcGVydHkodWludDMyX3Qgb2JqX2lkLCB1aW50MzJf dCBvYmpfdHlwZSwKPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFy ICpwcm9wX25hbWUsIERybVByb3BlcnR5ICpwcm9wZXJ0eSkgewo+ID4gICAgZHJtTW9kZU9iamVj dFByb3BlcnRpZXNQdHIgcHJvcHM7Cj4gPiBkaWZmIC0tZ2l0IGEvZHJtcmVzb3VyY2VzLmggYi9k cm1yZXNvdXJjZXMuaAo+ID4gaW5kZXggNGNjYTQ4Yy4uNGNkY2Q4NyAxMDA2NDQKPiA+IC0tLSBh L2RybXJlc291cmNlcy5oCj4gPiArKysgYi9kcm1yZXNvdXJjZXMuaAo+ID4gQEAgLTE3LDIyICsx NywyNiBAQAo+ID4gICNpZm5kZWYgQU5EUk9JRF9EUk1fSF8KPiA+ICAjZGVmaW5lIEFORFJPSURf RFJNX0hfCj4gPiAgCj4gPiArI2luY2x1ZGUgPHN0ZGludC5oPgo+ID4gICNpbmNsdWRlICJkcm1j b25uZWN0b3IuaCIKPiA+ICAjaW5jbHVkZSAiZHJtY3J0Yy5oIgo+ID4gICNpbmNsdWRlICJkcm1l bmNvZGVyLmgiCj4gPiAgI2luY2x1ZGUgImRybWV2ZW50bGlzdGVuZXIuaCIKPiA+ICAjaW5jbHVk ZSAiZHJtcGxhbmUuaCIKPiA+IC0KPiA+IC0jaW5jbHVkZSA8c3RkaW50Lmg+Cj4gCj4gV2h5IHRo aXMgY2hhbmdlPwoKSSBibGFtZSBjbGFuZy1mb3JtYXQtZGlmZi0zLjggLWkuIEkgc3VwcG9zZSBp dCBzaG91bGQgYmUgaW4gYSBkaWZmZXJlbnQKY29tbWl0Lgo+IAo+ID4gKyNpbmNsdWRlICJwbGF0 Zm9ybS5oIgo+ID4gKyNpbmNsdWRlICJyZXNvdXJjZW1hbmFnZXIuaCIKPiA+ICAKPiA+ICBuYW1l c3BhY2UgYW5kcm9pZCB7Cj4gPiAgCj4gPiArY2xhc3MgUmVzb3VyY2VNYW5hZ2VyOwo+ID4gKwo+ ID4gIGNsYXNzIERybVJlc291cmNlcyB7Cj4gPiAgIHB1YmxpYzoKPiA+ICAgIERybVJlc291cmNl cygpOwo+ID4gICAgfkRybVJlc291cmNlcygpOwo+ID4gIAo+ID4gLSAgaW50IEluaXQoKTsKPiA+ ICsgIGludCBJbml0KFJlc291cmNlTWFuYWdlciAqcmVzb3VyY2VfbWFuYWdlciwgY2hhciAqcGF0 aCwKPiA+ICsgICAgICAgICAgIGludCBzdGFydF9kaXNwbGF5X2luZGV4KTsKPiA+ICAKPiA+ICAg IGludCBmZCgpIGNvbnN0IHsKPiA+ICAgICAgcmV0dXJuIGZkXy5nZXQoKTsKPiA+IEBAIC01OCw2 ICs2Miw3IEBAIGNsYXNzIERybVJlc291cmNlcyB7Cj4gPiAgICBEcm1DcnRjICpHZXRDcnRjRm9y RGlzcGxheShpbnQgZGlzcGxheSkgY29uc3Q7Cj4gPiAgICBEcm1QbGFuZSAqR2V0UGxhbmUodWlu dDMyX3QgaWQpIGNvbnN0Owo+ID4gICAgRHJtRXZlbnRMaXN0ZW5lciAqZXZlbnRfbGlzdGVuZXIo KTsKPiA+ICsgIFJlc291cmNlTWFuYWdlciAqcmVzb3VyY2VfbWFuYWdlcigpOwo+ID4gIAo+ID4g ICAgaW50IEdldFBsYW5lUHJvcGVydHkoY29uc3QgRHJtUGxhbmUgJnBsYW5lLCBjb25zdCBjaGFy ICpwcm9wX25hbWUsCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICBEcm1Qcm9wZXJ0eSAqcHJv cGVydHkpOwo+ID4gQEAgLTcxLDYgKzc2LDcgQEAgY2xhc3MgRHJtUmVzb3VyY2VzIHsKPiA+ICAK PiA+ICAgIGludCBDcmVhdGVQcm9wZXJ0eUJsb2Iodm9pZCAqZGF0YSwgc2l6ZV90IGxlbmd0aCwg dWludDMyX3QgKmJsb2JfaWQpOwo+ID4gICAgaW50IERlc3Ryb3lQcm9wZXJ0eUJsb2IodWludDMy X3QgYmxvYl9pZCk7Cj4gPiArICBib29sIEhhbmRsZXNEaXNwbGF5KGludCBkaXNwbGF5KSBjb25z dDsKPiA+ICAKPiA+ICAgcHJpdmF0ZToKPiA+ICAgIGludCBUcnlFbmNvZGVyRm9yRGlzcGxheShp bnQgZGlzcGxheSwgRHJtRW5jb2RlciAqZW5jKTsKPiA+IEBAIC05MCw2ICs5Niw4IEBAIGNsYXNz IERybVJlc291cmNlcyB7Cj4gPiAgCj4gPiAgICBzdGQ6OnBhaXI8dWludDMyX3QsIHVpbnQzMl90 PiBtaW5fcmVzb2x1dGlvbl87Cj4gPiAgICBzdGQ6OnBhaXI8dWludDMyX3QsIHVpbnQzMl90PiBt YXhfcmVzb2x1dGlvbl87Cj4gPiArICBzdGQ6Om1hcDxpbnQsIGludD4gZGlzcGxheXNfOwo+ID4g KyAgUmVzb3VyY2VNYW5hZ2VyICpyZXNvdXJjZV9tYW5hZ2VyXzsKPiA+ICB9Owo+ID4gIH0KPiA+ ICAKPiA+IC0tIAo+ID4gMi43LjQKPiA+IAo+IAo+IC0tIAo+IFNlYW4gUGF1bCwgU29mdHdhcmUg RW5naW5lZXIsIEdvb2dsZSAvIENocm9taXVtIE9TCgotLSAKQ2hlZXJzLApBbGV4IEcKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxp bmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==