From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Gheorghe, Alexandru" Subject: Re: [PATCH 2/2] drm: rcar-du: Add support for colorkey alpha blending Date: Sun, 7 May 2017 10:07:39 +0000 Message-ID: <1494151659494.51736@mentor.com> References: <1493895213-12573-1-git-send-email-Alexandru_Gheorghe@mentor.com> <1493895213-12573-3-git-send-email-Alexandru_Gheorghe@mentor.com>, <6918649.iXqMEK0pQv@avalon> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from relay1.mentorg.com (relay1.mentorg.com [192.94.38.131]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6BB476E0BE for ; Sun, 7 May 2017 10:07:45 +0000 (UTC) In-Reply-To: <6918649.iXqMEK0pQv@avalon> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Laurent Pinchart Cc: "linux-renesas-soc@vger.kernel.org" , "dri-devel@lists.freedesktop.org" , "linux-media@vger.kernel.org" List-Id: dri-devel@lists.freedesktop.org SGkgTGF1cmVudCwKCk9uIFRodXJzZGF5LCBNYXkgNCwgMjAxNyAzOjQ0IFBNIExhdXJlbnQgUGlu Y2hhcnQgd3JvdGU6IAo+IEhpIEFsZXhhbmRydSwKPgo+IE9uIFRodXJzZGF5IDA0IE1heSAyMDE3 IDEzOjUzOjMzIGFnaGVvcmdoZSB3cm90ZToKPj4gQWRkIHR3byBuZXcgcGxhbmUgcHJvcGVydGll cyBjb2xvcmtleSBhbmQgY29sb3JrZXlfYWxwaGEgZm9yIHJjYXIgZ2VuMy4KPj4gKiBjb2xvcmtl eToKPj4gICAgICAgLSB1c2VkIGZvciBzcGVjaWZ5aW5nIHRoZSBjb2xvciBvbiB3aGljaCB0aGUg ZmlsdGVyaW5nIGlzIGRvbmUuCj4+ICAgICAgIC0gYml0cyAwIHRvIDIzIGFyZSBpbnRlcnByZXRl ZCBhcyBSR0I4ODggZm9ybWF0LCBpbiBjYXNlIHdlIGFyZQo+PiAgICAgICAgIGRlYWxpbmcgd2l0 aCBhbiBZQ2JDciBmb3JtYXQsIG9ubHkgdGhlIFkgY29tcG9uZW5ldCBpcwo+PiAgICAgICAgIGNv bXBhcmVkIGFuZCBpdCBpcyByZXByZXNlbnRlZCBieSB0aGUgRyBiaXRzIGZyb20gUkdCODg4Cj4+ ICAgICAgICAgZm9ybWF0Lgo+PiAgICAgICAtIGJpdCAyNCB0ZWxscyBpZiBpdCBpcyBlbmFibGVk IG9yIG5vdC4KPj4gKiBjb2xvcmtleV9hbHBoYToKPj4gICAgICAgLSB0aGUgYWxwaGEgdG8gYmUg c2V0IGZvciBtYXRjaGluZyBwaXhlbHMsIGluIGNhc2UgaXQgaXMKPj4gICAgICAgICBtaXNzaW5n IHRoZSBwaXhlbHMgd2lsbCBiZSBtYWRlIHRyYW5zcGFyZW50Cj4KPiBDb2xvdXIga2V5aW5nIGlz IGEgZmVhdHVyZSBmb3VuZCBpbiBtb3N0IGRpc3BsYXkgZW5naW5lcywgYW5kIHdvdWxkIHRodXMK PiBiZW5lZml0IGZyb20gc3RhbmRhcmRpemluZyB0aGUgcHJvcGVydGllcy4gSW5zdGVhZCBvZiBh ZGRpbmcgYW5vdGhlciBjb2xvcmtleQo+IHByb3BlcnR5IHNwZWNpZmljIHRvIHJjYXItZHUsIGNv dWxkIHlvdSBtYWtlIGEgcHJvcG9zYWwgdG8gc3RhbmRhcmRpemUgaXQgPwoKWWVhaCBzdXJlLCBJ IGNvdWxkIGdpdmUgaXQgYSB0cnkgYW5kIGNvbWViYWNrIHdpdGggYSBSRkMuIEJ5IHN0YW5kYXJk aXppbmcgaXQKSSdtIGFzc3VtaW5nIHlvdSBtZWFuIHNvbWV0aGluZyBzaW1pbGFyIHdpdGggd2hh dCB3ZSBoYXZlIG5vdyBpbiBkcm1fYmxlbmQsCndpdGggenBvcyBhbmQgcm90YXRlIHByb3BlcnRp ZXMsIHJpZ2h0PyBPciBkbyB5b3UgdGhpbmsgaXQgc2hvdWxkIGdldCBpdHMgb3duIElPQ1RMPyAK Cj4+IFNpZ25lZC1vZmYtYnk6IGFnaGVvcmdoZSA8QWxleGFuZHJ1X0doZW9yZ2hlQG1lbnRvci5j b20+Cj4+IC0tLQo+PiAgZHJpdmVycy9ncHUvZHJtL3JjYXItZHUvcmNhcl9kdV9kcnYuaCAgIHwg IDEgKwo+PiAgZHJpdmVycy9ncHUvZHJtL3JjYXItZHUvcmNhcl9kdV9rbXMuYyAgIHwgIDggKysr KysrKysKPj4gIGRyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJfZHVfcGxhbmUuYyB8ICAzIC0t LQo+PiAgZHJpdmVycy9ncHUvZHJtL3JjYXItZHUvcmNhcl9kdV9wbGFuZS5oIHwgIDYgKysrKysr Cj4+ICBkcml2ZXJzL2dwdS9kcm0vcmNhci1kdS9yY2FyX2R1X3ZzcC5jICAgfCAyMiArKysrKysr KysrKysrKysrKysrKysrCj4+ICBkcml2ZXJzL2dwdS9kcm0vcmNhci1kdS9yY2FyX2R1X3ZzcC5o ICAgfCAgNSArKysrKwo+PiAgNiBmaWxlcyBjaGFuZ2VkLCA0MiBpbnNlcnRpb25zKCspLCAzIGRl bGV0aW9ucygtKQo+Pgo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JjYXItZHUvcmNh cl9kdV9kcnYuaAo+PiBiL2RyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJfZHVfZHJ2LmggaW5k ZXggOTFlOGZjNS4uMWNiOTJlMyAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JjYXIt ZHUvcmNhcl9kdV9kcnYuaAo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcmNhci1kdS9yY2FyX2R1 X2Rydi5oCj4+IEBAIC05OCw2ICs5OCw3IEBAIHN0cnVjdCByY2FyX2R1X2RldmljZSB7Cj4+ICAg ICAgIHN0cnVjdCB7Cj4+ICAgICAgICAgICAgICAgc3RydWN0IGRybV9wcm9wZXJ0eSAqYWxwaGE7 Cj4+ICAgICAgICAgICAgICAgc3RydWN0IGRybV9wcm9wZXJ0eSAqY29sb3JrZXk7Cj4+ICsgICAg ICAgICAgICAgc3RydWN0IGRybV9wcm9wZXJ0eSAqY29sb3JrZXlfYWxwaGE7Cj4+ICAgICAgIH0g cHJvcHM7Cj4+Cj4+ICAgICAgIHVuc2lnbmVkIGludCBkcGFkMF9zb3VyY2U7Cj4+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vcmNhci1kdS9yY2FyX2R1X2ttcy5jCj4+IGIvZHJpdmVycy9n cHUvZHJtL3JjYXItZHUvcmNhcl9kdV9rbXMuYyBpbmRleCAxY2M4OGVkLi5hNzMzZmEyIDEwMDY0 NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmNhci1kdS9yY2FyX2R1X2ttcy5jCj4+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJfZHVfa21zLmMKPj4gQEAgLTYzMCw2ICs2MzAs MTQgQEAgc3RhdGljIGludCByY2FyX2R1X3Byb3BlcnRpZXNfaW5pdChzdHJ1Y3QKPj4gcmNhcl9k dV9kZXZpY2UgKnJjZHUpIGlmIChyY2R1LT5wcm9wcy5jb2xvcmtleSA9PSBOVUxMKQo+PiAgICAg ICAgICAgICAgIHJldHVybiAtRU5PTUVNOwo+Pgo+PiArICAgICBpZiAocmNkdS0+aW5mby0+Z2Vu ID09IDMpIHsKPj4gKyAgICAgICAgICAgICByY2R1LT5wcm9wcy5jb2xvcmtleV9hbHBoYSA9Cj4+ ICsgICAgICAgICAgICAgICAgICAgICBkcm1fcHJvcGVydHlfY3JlYXRlX3JhbmdlKHJjZHUtPmRk ZXYsIDAsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJjb2xvcmtleV9hbHBoYSIsIDAsIDI1NSk7Cj4+ICsgICAgICAgICAgICAgaWYgKCFyY2R1LT5w cm9wcy5jb2xvcmtleV9hbHBoYSkKPj4gKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtRU5P TUVNOwo+PiArICAgICB9Cj4+ICsKPj4gICAgICAgcmV0dXJuIDA7Cj4+ICB9Cj4+Cj4+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmNhci1kdS9yY2FyX2R1X3BsYW5lLmMKPj4gYi9kcml2 ZXJzL2dwdS9kcm0vcmNhci1kdS9yY2FyX2R1X3BsYW5lLmMgaW5kZXggZTQwOGFhMy4uZGY2ODlj NCAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JjYXItZHUvcmNhcl9kdV9wbGFuZS5j Cj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJfZHVfcGxhbmUuYwo+PiBAQCAt MzA3LDkgKzMwNyw2IEBAIGludCByY2FyX2R1X2F0b21pY19jaGVja19wbGFuZXMoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwKPj4gICAqIFBsYW5lIFNldHVwCj4+ICAgKi8KPj4KPj4gLSNkZWZpbmUg UkNBUl9EVV9DT0xPUktFWV9OT05FICAgICAgICAgICAgICAgICgwIDw8IDI0KQo+PiAtI2RlZmlu ZSBSQ0FSX0RVX0NPTE9SS0VZX1NPVVJDRSAgICAgICAgICAgICAgKDEgPDwgMjQpCj4+IC0jZGVm aW5lIFJDQVJfRFVfQ09MT1JLRVlfTUFTSyAgICAgICAgICAgICAgICAoMSA8PCAyNCkKPj4KPj4g IHN0YXRpYyB2b2lkIHJjYXJfZHVfcGxhbmVfd3JpdGUoc3RydWN0IHJjYXJfZHVfZ3JvdXAgKnJn cnAsCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBpbmRleCwg dTMyIHJlZywgdTMyIGRhdGEpCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmNhci1k dS9yY2FyX2R1X3BsYW5lLmgKPj4gYi9kcml2ZXJzL2dwdS9kcm0vcmNhci1kdS9yY2FyX2R1X3Bs YW5lLmggaW5kZXggYzFkZTMzOC4uOWU3YzNiNiAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL3JjYXItZHUvcmNhcl9kdV9wbGFuZS5oCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9yY2Fy LWR1L3JjYXJfZHVfcGxhbmUuaAo+PiBAQCAtNDksNiArNDksMTIgQEAgc3RhdGljIGlubGluZSBz dHJ1Y3QgcmNhcl9kdV9wbGFuZSAqdG9fcmNhcl9wbGFuZShzdHJ1Y3QKPj4gZHJtX3BsYW5lICpw bGFuZSkgcmV0dXJuIGNvbnRhaW5lcl9vZihwbGFuZSwgc3RydWN0IHJjYXJfZHVfcGxhbmUsIHBs YW5lKTsKPj4gIH0KPj4KPj4gKyNkZWZpbmUgUkNBUl9EVV9DT0xPUktFWV9OT05FICAgICAgICAg ICAgICAgICgwIDw8IDI0KQo+PiArI2RlZmluZSBSQ0FSX0RVX0NPTE9SS0VZX01BU0sgICAgICAg ICAgICAgICAgQklUKDI0KQo+PiArI2RlZmluZSBSQ0FSX0RVX0NPTE9SS0VZX0VOX01BU0sgICAg IFJDQVJfRFVfQ09MT1JLRVlfTUFTSwo+PiArI2RlZmluZSBSQ0FSX0RVX0NPTE9SS0VZX0NPTE9S X01BU0sgIDB4RkZGRkZGCj4+ICsjZGVmaW5lIFJDQVJfRFVfQ09MT1JLRVlfQUxQSEFfTUFTSyAg MHhGRgo+PiArCj4+ICAvKioKPj4gICAqIHN0cnVjdCByY2FyX2R1X3BsYW5lX3N0YXRlIC0gRHJp dmVyLXNwZWNpZmljIHBsYW5lIHN0YXRlCj4+ICAgKiBAc3RhdGU6IGJhc2UgRFJNIHBsYW5lIHN0 YXRlCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmNhci1kdS9yY2FyX2R1X3ZzcC5j Cj4+IGIvZHJpdmVycy9ncHUvZHJtL3JjYXItZHUvcmNhcl9kdV92c3AuYyBpbmRleCA0YjQ2MGQ0 Li5iMjIzYmUxIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmNhci1kdS9yY2FyX2R1 X3ZzcC5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJfZHVfdnNwLmMKPj4g QEAgLTE4MCw2ICsxODAsMTEgQEAgc3RhdGljIHZvaWQgcmNhcl9kdV92c3BfcGxhbmVfc2V0dXAo c3RydWN0Cj4+IHJjYXJfZHVfdnNwX3BsYW5lICpwbGFuZSkgLnBpdGNoID0gZmItPnBpdGNoZXNb MF0sCj4+ICAgICAgICAgICAgICAgLmFscGhhID0gc3RhdGUtPmFscGhhLAo+PiAgICAgICAgICAg ICAgIC56cG9zID0gc3RhdGUtPnN0YXRlLnpwb3MsCj4+ICsgICAgICAgICAgICAgLmNvbG9ya2V5 ID0gc3RhdGUtPmNvbG9ya2V5ICYgUkNBUl9EVV9DT0xPUktFWV9DT0xPUl9NQVNLLAo+PiArICAg ICAgICAgICAgIC5jb2xvcmtleV9lbiA9Cj4+ICsgICAgICAgICAgICAgICAgICAgICAoKHN0YXRl LT5jb2xvcmtleSAmIFJDQVJfRFVfQ09MT1JLRVlfRU5fTUFTSykgIT0gMCksCj4+ICsgICAgICAg ICAgICAgLmNvbG9ya2V5X2FscGhhID0KPj4gKyAgICAgICAgICAgICAgICAgICAgIChzdGF0ZS0+ Y29sb3JrZXlfYWxwaGEgJiBSQ0FSX0RVX0NPTE9SS0VZX0FMUEhBX01BU0spLAo+PiAgICAgICB9 Owo+PiAgICAgICB1bnNpZ25lZCBpbnQgaTsKPj4KPj4gQEAgLTM3OSw2ICszODQsOCBAQCBzdGF0 aWMgdm9pZCByY2FyX2R1X3ZzcF9wbGFuZV9yZXNldChzdHJ1Y3QgZHJtX3BsYW5lCj4+ICpwbGFu ZSkgcmV0dXJuOwo+Pgo+PiAgICAgICBzdGF0ZS0+YWxwaGEgPSAyNTU7Cj4+ICsgICAgIHN0YXRl LT5jb2xvcmtleSA9IFJDQVJfRFVfQ09MT1JLRVlfTk9ORTsKPj4gKyAgICAgc3RhdGUtPmNvbG9y a2V5X2FscGhhID0gMDsKPj4gICAgICAgc3RhdGUtPnN0YXRlLnpwb3MgPSBwbGFuZS0+dHlwZSA9 PSBEUk1fUExBTkVfVFlQRV9QUklNQVJZID8gMCA6IDE7Cj4+Cj4+ICAgICAgIHBsYW5lLT5zdGF0 ZSA9ICZzdGF0ZS0+c3RhdGU7Cj4+IEBAIC0zOTQsNiArNDAxLDEwIEBAIHN0YXRpYyBpbnQgcmNh cl9kdV92c3BfcGxhbmVfYXRvbWljX3NldF9wcm9wZXJ0eShzdHJ1Y3QKPj4gZHJtX3BsYW5lICpw bGFuZSwKPj4KPj4gICAgICAgaWYgKHByb3BlcnR5ID09IHJjZHUtPnByb3BzLmFscGhhKQo+PiAg ICAgICAgICAgICAgIHJzdGF0ZS0+YWxwaGEgPSB2YWw7Cj4+ICsgICAgIGVsc2UgaWYgKHByb3Bl cnR5ID09IHJjZHUtPnByb3BzLmNvbG9ya2V5KQo+PiArICAgICAgICAgICAgIHJzdGF0ZS0+Y29s b3JrZXkgPSB2YWw7Cj4+ICsgICAgIGVsc2UgaWYgKHByb3BlcnR5ID09IHJjZHUtPnByb3BzLmNv bG9ya2V5X2FscGhhKQo+PiArICAgICAgICAgICAgIHJzdGF0ZS0+Y29sb3JrZXlfYWxwaGEgPSB2 YWw7Cj4+ICAgICAgIGVsc2UKPj4gICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKPj4KPj4g QEAgLTQxMCw2ICs0MjEsMTAgQEAgc3RhdGljIGludCByY2FyX2R1X3ZzcF9wbGFuZV9hdG9taWNf Z2V0X3Byb3BlcnR5KHN0cnVjdAo+PiBkcm1fcGxhbmUgKnBsYW5lLAo+Pgo+PiAgICAgICBpZiAo cHJvcGVydHkgPT0gcmNkdS0+cHJvcHMuYWxwaGEpCj4+ICAgICAgICAgICAgICAgKnZhbCA9IHJz dGF0ZS0+YWxwaGE7Cj4+ICsgICAgIGVsc2UgaWYgKHByb3BlcnR5ID09IHJjZHUtPnByb3BzLmNv bG9ya2V5KQo+PiArICAgICAgICAgICAgICp2YWwgPSByc3RhdGUtPmNvbG9ya2V5Owo+PiArICAg ICBlbHNlIGlmIChwcm9wZXJ0eSA9PSByY2R1LT5wcm9wcy5jb2xvcmtleV9hbHBoYSkKPj4gKyAg ICAgICAgICAgICAqdmFsID0gcnN0YXRlLT5jb2xvcmtleV9hbHBoYTsKPj4gICAgICAgZWxzZQo+ PiAgICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOwo+Pgo+PiBAQCAtNjMzLDYgKzY0OCwxMyBA QCBpbnQgcmNhcl9kdV92c3BfaW5pdChzdHJ1Y3QgcmNhcl9kdV92c3AgKnZzcCkKPj4KPj4gICAg ICAgICAgICAgICBkcm1fb2JqZWN0X2F0dGFjaF9wcm9wZXJ0eSgmcGxhbmUtPnBsYW5lLmJhc2Us Cj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmNkdS0+cHJvcHMu YWxwaGEsIDI1NSk7Cj4+ICsgICAgICAgICAgICAgZHJtX29iamVjdF9hdHRhY2hfcHJvcGVydHko JnBsYW5lLT5wbGFuZS5iYXNlLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHJjZHUtPnByb3BzLmNvbG9ya2V5LAo+PiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFJDQVJfRFVfQ09MT1JLRVlfTk9ORSk7Cj4+ICsgICAgICAgICAgICAg aWYgKHJjZHUtPnByb3BzLmNvbG9ya2V5X2FscGhhKQo+PiArICAgICAgICAgICAgICAgICAgICAg ZHJtX29iamVjdF9hdHRhY2hfcHJvcGVydHkoJnBsYW5lLT5wbGFuZS5iYXNlLAo+PiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmNkdS0+cHJvcHMuY29s b3JrZXlfYWxwaGEsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAwKTsKPj4gICAgICAgICAgICAgICBkcm1fcGxhbmVfY3JlYXRlX3pwb3NfcHJvcGVy dHkoJnBsYW5lLT5wbGFuZSwgMSwgMSwKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdnNwLT5udW1fcGxhbmVzIC0gMSk7Cj4+ICAgICAgIH0KPj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJfZHVfdnNwLmgKPj4gYi9kcml2ZXJz L2dwdS9kcm0vcmNhci1kdS9yY2FyX2R1X3ZzcC5oIGluZGV4IDNmZDljZWYuLjE1NDM1MDMgMTAw NjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJfZHVfdnNwLmgKPj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL3JjYXItZHUvcmNhcl9kdV92c3AuaAo+PiBAQCAtNDcsNiArNDcs OSBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCByY2FyX2R1X3ZzcF9wbGFuZQo+PiAqdG9fcmNhcl92 c3BfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcCkgKiBAc2dfdGFibGVzOiBzY2F0dGVyLWdhdGhl ciB0YWJsZXMKPj4gZm9yIHRoZSBmcmFtZSBidWZmZXIgbWVtb3J5Cj4+ICAgKiBAYWxwaGE6IHZh bHVlIG9mIHRoZSBwbGFuZSBhbHBoYSBwcm9wZXJ0eQo+PiAgICogQHpwb3M6IHZhbHVlIG9mIHRo ZSBwbGFuZSB6cG9zIHByb3BlcnR5Cj4+ICsgKiBAY29sb3JrZXk6IHZhbHVlIG9mIHRoZSBjb2xv ciBmb3Igd2hpY2ggdG8gYXBwbHkgY29sb3JrZXlfYWxwaGEsIGJpdCAyNAo+PiArICogdGVsbHMg aWYgaXQgaXMgZW5hYmxlZCBvciBub3QKPj4gKyAqIEBjb2xvcmtleV9hbHBoYTogYWxwaGEgdG8g YmUgdXNlZCBmb3IgcGl4ZWxzIHdpdGggY29sb3IgZXF1YWwgdG8KPj4gY29sb3JrZXkgKi8KPj4g IHN0cnVjdCByY2FyX2R1X3ZzcF9wbGFuZV9zdGF0ZSB7Cj4+ICAgICAgIHN0cnVjdCBkcm1fcGxh bmVfc3RhdGUgc3RhdGU7Cj4+IEBAIC01Niw2ICs1OSw4IEBAIHN0cnVjdCByY2FyX2R1X3ZzcF9w bGFuZV9zdGF0ZSB7Cj4+Cj4+ICAgICAgIHVuc2lnbmVkIGludCBhbHBoYTsKPj4gICAgICAgdW5z aWduZWQgaW50IHpwb3M7Cj4+ICsgICAgIHUzMiBjb2xvcmtleTsKPj4gKyAgICAgdTMyIGNvbG9y a2V5X2FscGhhOwo+PiAgfTsKPj4KPj4gIHN0YXRpYyBpbmxpbmUgc3RydWN0IHJjYXJfZHVfdnNw X3BsYW5lX3N0YXRlICoKPgo+IC0tCj4gUmVnYXJkcywKPgo+IExhdXJlbnQgUGluY2hhcnQKCkJl c3QgUmVnYXJkcywKQWxleCBHaGVvcmdoZQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9kcmktZGV2ZWwK