From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH v7 3/5] dma-buf: Add ioctls to allow userspace to flush Date: Tue, 9 Feb 2016 11:52:23 +0100 Message-ID: <20160209105222.GU11240@phenom.ffwll.local> References: <1450820214-12509-1-git-send-email-tiago.vignatti@intel.com> <1450820214-12509-4-git-send-email-tiago.vignatti@intel.com> <20160209102020.GS11240@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-f68.google.com (mail-wm0-f68.google.com [74.125.82.68]) by gabe.freedesktop.org (Postfix) with ESMTPS id EDDD56E548 for ; Tue, 9 Feb 2016 02:52:00 -0800 (PST) Received: by mail-wm0-f68.google.com with SMTP id g62so2658683wme.2 for ; Tue, 09 Feb 2016 02:52:00 -0800 (PST) Content-Disposition: inline In-Reply-To: <20160209102020.GS11240@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: David Herrmann Cc: daniel.thompson@linaro.org, marcheu@google.com, Thomas Hellstrom , "dri-devel@lists.freedesktop.org" , Jerome Glisse , reveman@google.com, Daniel Vetter , Daniel Vetter List-Id: dri-devel@lists.freedesktop.org T24gVHVlLCBGZWIgMDksIDIwMTYgYXQgMTE6MjA6MjBBTSArMDEwMCwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiBPbiBUdWUsIEZlYiAwOSwgMjAxNiBhdCAxMDoyNjoyNUFNICswMTAwLCBEYXZpZCBI ZXJybWFubiB3cm90ZToKPiA+IEhpCj4gPiAKPiA+IE9uIFR1ZSwgRGVjIDIyLCAyMDE1IGF0IDEw OjM2IFBNLCBUaWFnbyBWaWduYXR0aQo+ID4gPHRpYWdvLnZpZ25hdHRpQGludGVsLmNvbT4gd3Jv dGU6Cj4gPiA+IEZyb206IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+Cj4g PiA+Cj4gPiA+IFRoZSB1c2Vyc3BhY2UgbWlnaHQgbmVlZCBzb21lIHNvcnQgb2YgY2FjaGUgY29o ZXJlbmN5IG1hbmFnZW1lbnQgZS5nLiB3aGVuIENQVQo+ID4gPiBhbmQgR1BVIGRvbWFpbnMgYXJl IGJlaW5nIGFjY2Vzc2VkIHRocm91Z2ggZG1hLWJ1ZiBhdCB0aGUgc2FtZSB0aW1lLiBUbwo+ID4g PiBjaXJjdW12ZW50IHRoaXMgcHJvYmxlbSB0aGVyZSBhcmUgYmVnaW4vZW5kIGNvaGVyZW5jeSBt YXJrZXJzLCB0aGF0IGZvcndhcmQKPiA+ID4gZGlyZWN0bHkgdG8gZXhpc3RpbmcgZG1hLWJ1ZiBk ZXZpY2UgZHJpdmVycyB2ZnVuYyBob29rcy4gVXNlcnNwYWNlIGNhbiBtYWtlIHVzZQo+ID4gPiBv ZiB0aG9zZSBtYXJrZXJzIHRocm91Z2ggdGhlIERNQV9CVUZfSU9DVExfU1lOQyBpb2N0bC4gVGhl IHNlcXVlbmNlIHdvdWxkIGJlCj4gPiA+IHVzZWQgbGlrZSBmb2xsb3dpbmc6Cj4gPiA+ICAgICAg LSBtbWFwIGRtYS1idWYgZmQKPiA+ID4gICAgICAtIGZvciBlYWNoIGRyYXdpbmcvdXBsb2FkIGN5 Y2xlIGluIENQVSAxLiBTWU5DX1NUQVJUIGlvY3RsLCAyLiByZWFkL3dyaXRlCj4gPiA+ICAgICAg ICB0byBtbWFwIGFyZWEgMy4gU1lOQ19FTkQgaW9jdGwuIFRoaXMgY2FuIGJlIHJlcGVhdGVkIGFz IG9mdGVuIGFzIHlvdQo+ID4gPiAgICAgICAgd2FudCAod2l0aCB0aGUgbmV3IGRhdGEgYmVpbmcg Y29uc3VtZWQgYnkgdGhlIEdQVSBvciBzYXkgc2Nhbm91dCBkZXZpY2UpCj4gPiA+ICAgICAgLSBt dW5tYXAgb25jZSB5b3UgZG9uJ3QgbmVlZCB0aGUgYnVmZmVyIGFueSBtb3JlCj4gPiA+Cj4gPiA+ IHYyIChUaWFnbyk6IEZpeCBoZWFkZXIgZmlsZSB0eXBlIG5hbWVzICh1NjQgLT4gX191NjQpCj4g PiA+IHYzIChUaWFnbyk6IEFkZCBkb2N1bWVudGF0aW9uLiBVc2UgZW51bSBkbWFfYnVmX3N5bmNf ZmxhZ3MgdG8gdGhlIGJlZ2luL2VuZAo+ID4gPiBkbWEtYnVmIGZ1bmN0aW9ucy4gQ2hlY2sgZm9y IG92ZXJmbG93cyBpbiBzdGFydC9sZW5ndGguCj4gPiA+IHY0IChUaWFnbyk6IHVzZSAyZCByZWdp b25zIGZvciBzeW5jLgo+ID4gPiB2NSAoVGlhZ28pOiBmb3JnZXQgYWJvdXQgMmQgcmVnaW9ucyAo djQpOyB1c2UgX0lPVyBpbiBETUFfQlVGX0lPQ1RMX1NZTkMgYW5kCj4gPiA+IHJlbW92ZSByYW5n ZSBpbmZvcm1hdGlvbiBmcm9tIHN0cnVjdCBkbWFfYnVmX3N5bmMuCj4gPiA+IHY2IChUaWFnbyk6 IHVzZSBfX3U2NCBzdHJ1Y3R1cmVkIHBhZGRlZCBmbGFncyBpbnN0ZWFkIGVudW0uIEFkanVzdAo+ ID4gPiBkb2N1bWVudGF0aW9uIGFib3V0IHRoZSByZWNvbW1lbmRhdGlvbiBvbiB1c2luZyBzeW5j IGlvY3Rscy4KPiA+ID4gdjcgKFRpYWdvKTogQWxleCcgbml0IG9uIGZsYWdzIGRlZmluaXRpb24g YW5kIGJlaW5nIGV2ZW4gbW9yZSB3b3JkaW5nIGluIHRoZQo+ID4gPiBkb2MgYWJvdXQgc3luYyB1 c2FnZS4KPiA+ID4KPiA+ID4gQ2M6IFN1bWl0IFNlbXdhbCA8c3VtaXQuc2Vtd2FsQGxpbmFyby5v cmc+Cj4gPiA+IFNpZ25lZC1vZmYtYnk6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAaW50 ZWwuY29tPgo+ID4gPiBTaWduZWQtb2ZmLWJ5OiBUaWFnbyBWaWduYXR0aSA8dGlhZ28udmlnbmF0 dGlAaW50ZWwuY29tPgo+ID4gPiAtLS0KPiA+ID4gIERvY3VtZW50YXRpb24vZG1hLWJ1Zi1zaGFy aW5nLnR4dCB8IDIxICsrKysrKysrKysrKysrKysrKy0KPiA+ID4gIGRyaXZlcnMvZG1hLWJ1Zi9k bWEtYnVmLmMgICAgICAgICB8IDQzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKwo+ID4gPiAgaW5jbHVkZS91YXBpL2xpbnV4L2RtYS1idWYuaCAgICAgIHwgMzggKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ID4gPiAgMyBmaWxlcyBjaGFuZ2VkLCAxMDEg aW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQo+ID4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGlu Y2x1ZGUvdWFwaS9saW51eC9kbWEtYnVmLmgKPiA+ID4KPiA+ID4gZGlmZiAtLWdpdCBhL0RvY3Vt ZW50YXRpb24vZG1hLWJ1Zi1zaGFyaW5nLnR4dCBiL0RvY3VtZW50YXRpb24vZG1hLWJ1Zi1zaGFy aW5nLnR4dAo+ID4gPiBpbmRleCA0ZjRhODRiLi4zMmFjMzJlIDEwMDY0NAo+ID4gPiAtLS0gYS9E b2N1bWVudGF0aW9uL2RtYS1idWYtc2hhcmluZy50eHQKPiA+ID4gKysrIGIvRG9jdW1lbnRhdGlv bi9kbWEtYnVmLXNoYXJpbmcudHh0Cj4gPiA+IEBAIC0zNTAsNyArMzUwLDI2IEBAIEJlaW5nIGFi bGUgdG8gbW1hcCBhbiBleHBvcnQgZG1hLWJ1ZiBidWZmZXIgb2JqZWN0IGhhcyAyIG1haW4gdXNl LWNhc2VzOgo+ID4gPiAgICAgaGFuZGxlcywgdG9vKS4gU28gaXQncyBiZW5lZmljaWFsIHRvIHN1 cHBvcnQgdGhpcyBpbiBhIHNpbWlsYXIgZmFzaGlvbiBvbgo+ID4gPiAgICAgZG1hLWJ1ZiB0byBo YXZlIGEgZ29vZCB0cmFuc2l0aW9uIHBhdGggZm9yIGV4aXN0aW5nIEFuZHJvaWQgdXNlcnNwYWNl Lgo+ID4gPgo+ID4gPiAtICAgTm8gc3BlY2lhbCBpbnRlcmZhY2VzLCB1c2Vyc3BhY2Ugc2ltcGx5 IGNhbGxzIG1tYXAgb24gdGhlIGRtYS1idWYgZmQuCj4gPiA+ICsgICBObyBzcGVjaWFsIGludGVy ZmFjZXMsIHVzZXJzcGFjZSBzaW1wbHkgY2FsbHMgbW1hcCBvbiB0aGUgZG1hLWJ1ZiBmZCwgbWFr aW5nCj4gPiA+ICsgICBzdXJlIHRoYXQgdGhlIGNhY2hlIHN5bmNocm9uaXphdGlvbiBpb2N0bCAo RE1BX0JVRl9JT0NUTF9TWU5DKSBpcyAqYWx3YXlzKgo+ID4gPiArICAgdXNlZCB3aGVuIHRoZSBh Y2Nlc3MgaGFwcGVucy4gVGhpcyBpcyBkaXNjdXNzZWQgbmV4dCBwYXJhZ3JhcGhzLgo+ID4gPiAr Cj4gPiA+ICsgICBTb21lIHN5c3RlbXMgbWlnaHQgbmVlZCBzb21lIHNvcnQgb2YgY2FjaGUgY29o ZXJlbmN5IG1hbmFnZW1lbnQgZS5nLiB3aGVuCj4gPiA+ICsgICBDUFUgYW5kIEdQVSBkb21haW5z IGFyZSBiZWluZyBhY2Nlc3NlZCB0aHJvdWdoIGRtYS1idWYgYXQgdGhlIHNhbWUgdGltZS4gVG8K PiA+ID4gKyAgIGNpcmN1bXZlbnQgdGhpcyBwcm9ibGVtIHRoZXJlIGFyZSBiZWdpbi9lbmQgY29o ZXJlbmN5IG1hcmtlcnMsIHRoYXQgZm9yd2FyZAo+ID4gPiArICAgZGlyZWN0bHkgdG8gZXhpc3Rp bmcgZG1hLWJ1ZiBkZXZpY2UgZHJpdmVycyB2ZnVuYyBob29rcy4gVXNlcnNwYWNlIGNhbiBtYWtl Cj4gPiA+ICsgICB1c2Ugb2YgdGhvc2UgbWFya2VycyB0aHJvdWdoIHRoZSBETUFfQlVGX0lPQ1RM X1NZTkMgaW9jdGwuIFRoZSBzZXF1ZW5jZQo+ID4gPiArICAgd291bGQgYmUgdXNlZCBsaWtlIGZv bGxvd2luZzoKPiA+ID4gKyAgICAgLSBtbWFwIGRtYS1idWYgZmQKPiA+ID4gKyAgICAgLSBmb3Ig ZWFjaCBkcmF3aW5nL3VwbG9hZCBjeWNsZSBpbiBDUFUgMS4gU1lOQ19TVEFSVCBpb2N0bCwgMi4g cmVhZC93cml0ZQo+ID4gPiArICAgICAgIHRvIG1tYXAgYXJlYSAzLiBTWU5DX0VORCBpb2N0bC4g VGhpcyBjYW4gYmUgcmVwZWF0ZWQgYXMgb2Z0ZW4gYXMgeW91Cj4gPiA+ICsgICAgICAgd2FudCAo d2l0aCB0aGUgbmV3IGRhdGEgYmVpbmcgY29uc3VtZWQgYnkgdGhlIEdQVSBvciBzYXkgc2Nhbm91 dCBkZXZpY2UpCj4gPiA+ICsgICAgIC0gbXVubWFwIG9uY2UgeW91IGRvbid0IG5lZWQgdGhlIGJ1 ZmZlciBhbnkgbW9yZQo+ID4gPiArCj4gPiA+ICsgICAgVGhlcmVmb3JlLCBmb3IgY29ycmVjdG5l c3MgYW5kIG9wdGltYWwgcGVyZm9ybWFuY2UsIHN5c3RlbXMgd2l0aCB0aGUgbWVtb3J5Cj4gPiA+ ICsgICAgY2FjaGUgc2hhcmVkIGJ5IHRoZSBHUFUgYW5kIENQVSBpLmUuIHRoZSAiY29oZXJlbnQi IGFuZCBhbHNvIHRoZQo+ID4gPiArICAgICJpbmNvaGVyZW50IiBhcmUgYWx3YXlzIHJlcXVpcmVk IHRvIHVzZSBTWU5DX1NUQVJUIGFuZCBTWU5DX0VORCBiZWZvcmUgYW5kCj4gPiA+ICsgICAgYWZ0 ZXIsIHJlc3BlY3RpdmVseSwgd2hlbiBhY2Nlc3NpbmcgdGhlIG1hcHBlZCBhZGRyZXNzLgo+ID4g Pgo+ID4gPiAgMi4gU3VwcG9ydGluZyBleGlzdGluZyBtbWFwIGludGVyZmFjZXMgaW4gaW1wb3J0 ZXJzCj4gPiA+Cj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jIGIv ZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYwo+ID4gPiBpbmRleCBiMmFjMTNiLi45YTI5OGJkIDEw MDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jCj4gPiA+ICsrKyBiL2Ry aXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmMKPiA+ID4gQEAgLTM0LDYgKzM0LDggQEAKPiA+ID4gICNp bmNsdWRlIDxsaW51eC9wb2xsLmg+Cj4gPiA+ICAjaW5jbHVkZSA8bGludXgvcmVzZXJ2YXRpb24u aD4KPiA+ID4KPiA+ID4gKyNpbmNsdWRlIDx1YXBpL2xpbnV4L2RtYS1idWYuaD4KPiA+ID4gKwo+ ID4gPiAgc3RhdGljIGlubGluZSBpbnQgaXNfZG1hX2J1Zl9maWxlKHN0cnVjdCBmaWxlICopOwo+ ID4gPgo+ID4gPiAgc3RydWN0IGRtYV9idWZfbGlzdCB7Cj4gPiA+IEBAIC0yNTEsMTEgKzI1Myw1 MiBAQCBvdXQ6Cj4gPiA+ICAgICAgICAgcmV0dXJuIGV2ZW50czsKPiA+ID4gIH0KPiA+ID4KPiA+ ID4gK3N0YXRpYyBsb25nIGRtYV9idWZfaW9jdGwoc3RydWN0IGZpbGUgKmZpbGUsCj4gPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBh cmcpCj4gPiA+ICt7Cj4gPiA+ICsgICAgICAgc3RydWN0IGRtYV9idWYgKmRtYWJ1ZjsKPiA+ID4g KyAgICAgICBzdHJ1Y3QgZG1hX2J1Zl9zeW5jIHN5bmM7Cj4gPiA+ICsgICAgICAgZW51bSBkbWFf ZGF0YV9kaXJlY3Rpb24gZGlyZWN0aW9uOwo+ID4gPiArCj4gPiA+ICsgICAgICAgZG1hYnVmID0g ZmlsZS0+cHJpdmF0ZV9kYXRhOwo+ID4gPiArCj4gPiA+ICsgICAgICAgaWYgKCFpc19kbWFfYnVm X2ZpbGUoZmlsZSkpCj4gPiA+ICsgICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKPiA+IAo+ ID4gV2h5PyBUaGlzIGNhbiBuZXZlciBoYXBwZW4sIGFuZCB5b3UgYmV0dGVyIG5vdCB1c2UgZG1h X2J1Zl9pb2N0bCgpCj4gPiBvdXRzaWRlIG9mIGRtYV9idWZfZm9wcy4uCj4gPiBJIGd1ZXNzIGl0 J3Mgc2ltcGx5IGNvcGllZCBmcm9tIHRoZSBvdGhlciBmb3AgY2FsbGJhY2tzLCBidXQgSSBkb24n dAo+ID4gc2VlIHdoeS4gZG1hX2J1Zl9wb2xsKCkgZG9lc24ndCBkbyBpdCwgbmVpdGhlciBzaG91 bGQgdGhpcywgb3Igb25lIG9mCj4gPiB0aGUgb3RoZXIgMyBjYWxsYmFja3MuCj4gPiAKPiA+ID4g Kwo+ID4gPiArICAgICAgIHN3aXRjaCAoY21kKSB7Cj4gPiA+ICsgICAgICAgY2FzZSBETUFfQlVG X0lPQ1RMX1NZTkM6Cj4gPiA+ICsgICAgICAgICAgICAgICBpZiAoY29weV9mcm9tX3VzZXIoJnN5 bmMsICh2b2lkIF9fdXNlciAqKSBhcmcsIHNpemVvZihzeW5jKSkpCj4gPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgIHJldHVybiAtRUZBVUxUOwo+ID4gPiArCj4gPiA+ICsgICAgICAgICAgICAg ICBpZiAoc3luYy5mbGFncyAmIERNQV9CVUZfU1lOQ19SVykKPiA+ID4gKyAgICAgICAgICAgICAg ICAgICAgICAgZGlyZWN0aW9uID0gRE1BX0JJRElSRUNUSU9OQUw7Cj4gPiA+ICsgICAgICAgICAg ICAgICBlbHNlIGlmIChzeW5jLmZsYWdzICYgRE1BX0JVRl9TWU5DX1JFQUQpCj4gPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbiA9IERNQV9GUk9NX0RFVklDRTsKPiA+ID4gKyAg ICAgICAgICAgICAgIGVsc2UgaWYgKHN5bmMuZmxhZ3MgJiBETUFfQlVGX1NZTkNfV1JJVEUpCj4g PiA+ICsgICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbiA9IERNQV9UT19ERVZJQ0U7Cj4g PiA+ICsgICAgICAgICAgICAgICBlbHNlCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIHJl dHVybiAtRUlOVkFMOwo+ID4gCj4gPiBUaGlzIGxvb2tzIGJvZ3VzLiBJdCBhbHdheXMgZW5kcyB1 cCBiZWluZyAiRE1BX0JJRElSRUNUSU9OQUwiIG9yCj4gPiBFSU5WQUwuIEkgcmVjb21tZW5kIGNo YW5naW5nIGl0IHRvOgo+ID4gCj4gPiBzd2l0Y2ggKHN5bmMuZmxhZ3MgJiBETUFfQlVGX1NZTkNf UlcpIHsKPiA+IGNhc2UgRE1BX0JVRl9TWU5DX1JFQUQ6Cj4gPiAgICAgICAgIGRpcmVjdGlvbiA9 IERNQV9GUk9NX0RFVklDRTsKPiA+ICAgICAgICAgYnJlYWs7Cj4gPiBjYXNlIERNQV9CVUZfU1lO Q19XUklURToKPiA+ICAgICAgICAgZGlyZWN0aW9uID0gRE1BX1RPX0RFVklDRTsKPiA+ICAgICAg ICAgYnJlYWs7Cj4gPiBjYXNlIERNQV9CVUZfU1lOQ19SRUFEOgo+ID4gICAgICAgICBkaXJlY3Rp b24gPSBETUFfQklESVJFQ1RJT05BTDsKPiA+ICAgICAgICAgYnJlYWs7Cj4gPiBkZWZhdWx0Ogo+ ID4gICAgICAgICByZXR1cm4gLUVJTlZBTDsKPiA+IH0KPiA+IAo+ID4gPiArCj4gPiA+ICsgICAg ICAgICAgICAgICBpZiAoc3luYy5mbGFncyAmIH5ETUFfQlVGX1NZTkNfVkFMSURfRkxBR1NfTUFT SykKPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7Cj4gPiAKPiA+ IFdoeSBpc24ndCB0aGlzIGRvbmUgaW1tZWRpYXRlbHkgYWZ0ZXIgY29weV9mcm9tX3VzZXIoKT8K PiA+IAo+ID4gPiArCj4gPiA+ICsgICAgICAgICAgICAgICBpZiAoc3luYy5mbGFncyAmIERNQV9C VUZfU1lOQ19FTkQpCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIGRtYV9idWZfZW5kX2Nw dV9hY2Nlc3MoZG1hYnVmLCBkaXJlY3Rpb24pOwo+ID4gPiArICAgICAgICAgICAgICAgZWxzZQo+ ID4gPiArICAgICAgICAgICAgICAgICAgICAgICBkbWFfYnVmX2JlZ2luX2NwdV9hY2Nlc3MoZG1h YnVmLCBkaXJlY3Rpb24pOwo+ID4gCj4gPiBXaHkgYXJlIFNZTkNfU1RBUlQgYW5kIFNZTkNfRU5E IGV4Y2x1c2l2ZT8gSXQgZmVlbHMgdmVyeSBuYXR1cmFsIHRvIG1lCj4gPiB0byBpbnZva2UgYm90 aCBhdCB0aGUgc2FtZSB0aW1lIChlc3BlY2lhbGx5IGlmIHR3byBvYmplY3RzIGFyZSBzdG9yZWQK PiA+IGluIHRoZSBzYW1lIGRtYS1idWYpLgo+ID4gCj4gPiA+ICsKPiA+ID4gKyAgICAgICAgICAg ICAgIHJldHVybiAwOwo+ID4gPiArICAgICAgIGRlZmF1bHQ6Cj4gPiA+ICsgICAgICAgICAgICAg ICByZXR1cm4gLUVOT1RUWTsKPiA+ID4gKyAgICAgICB9Cj4gPiA+ICt9Cj4gPiA+ICsKPiA+ID4g IHN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGRtYV9idWZfZm9wcyA9IHsKPiA+ ID4gICAgICAgICAucmVsZWFzZSAgICAgICAgPSBkbWFfYnVmX3JlbGVhc2UsCj4gPiA+ICAgICAg ICAgLm1tYXAgICAgICAgICAgID0gZG1hX2J1Zl9tbWFwX2ludGVybmFsLAo+ID4gPiAgICAgICAg IC5sbHNlZWsgICAgICAgICA9IGRtYV9idWZfbGxzZWVrLAo+ID4gPiAgICAgICAgIC5wb2xsICAg ICAgICAgICA9IGRtYV9idWZfcG9sbCwKPiA+ID4gKyAgICAgICAudW5sb2NrZWRfaW9jdGwgPSBk bWFfYnVmX2lvY3RsLAo+ID4gPiAgfTsKPiA+ID4KPiA+ID4gIC8qCj4gPiA+IGRpZmYgLS1naXQg YS9pbmNsdWRlL3VhcGkvbGludXgvZG1hLWJ1Zi5oIGIvaW5jbHVkZS91YXBpL2xpbnV4L2RtYS1i dWYuaAo+ID4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+ID4gPiBpbmRleCAwMDAwMDAwLi40YTli MzZiCj4gPiA+IC0tLSAvZGV2L251bGwKPiA+ID4gKysrIGIvaW5jbHVkZS91YXBpL2xpbnV4L2Rt YS1idWYuaAo+ID4gPiBAQCAtMCwwICsxLDM4IEBACj4gPiA+ICsvKgo+ID4gPiArICogRnJhbWV3 b3JrIGZvciBidWZmZXIgb2JqZWN0cyB0aGF0IGNhbiBiZSBzaGFyZWQgYWNyb3NzIGRldmljZXMv c3Vic3lzdGVtcy4KPiA+ID4gKyAqCj4gPiA+ICsgKiBDb3B5cmlnaHQoQykgMjAxNSBJbnRlbCBM dGQKPiA+ID4gKyAqCj4gPiA+ICsgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91 IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdAo+ID4gPiArICogdW5kZXIgdGhl IHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMgcHVi bGlzaGVkIGJ5Cj4gPiA+ICsgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgo+ID4gPiAr ICoKPiA+ID4gKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0 IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAo+ID4gPiArICogQU5ZIFdBUlJBTlRZOyB3 aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yCj4g PiA+ICsgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yCj4gPiA+ICsgKiBtb3JlIGRldGFpbHMuCj4gPiA+ICsg Kgo+ID4gPiArICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgYWxvbmcgd2l0aAo+ID4gPiArICogdGhpcyBwcm9ncmFtLiAg SWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+Lgo+ID4gPiArICovCj4g PiA+ICsKPiA+ID4gKyNpZm5kZWYgX0RNQV9CVUZfVUFQSV9IXwo+ID4gPiArI2RlZmluZSBfRE1B X0JVRl9VQVBJX0hfCj4gPiA+ICsKPiA+ID4gKy8qIGJlZ2luL2VuZCBkbWEtYnVmIGZ1bmN0aW9u cyB1c2VkIGZvciB1c2Vyc3BhY2UgbW1hcC4gKi8KPiA+ID4gK3N0cnVjdCBkbWFfYnVmX3N5bmMg ewo+ID4gPiArICAgICAgIF9fdTY0IGZsYWdzOwo+ID4gPiArfTsKPiA+IAo+ID4gUGxlYXNlIGFk ZCAnI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+Jywgb3RoZXJ3aXNlIHRoaXMgaGVhZGVyIGNhbm5v dCBiZQo+ID4gY29tcGlsZWQgb24gaXRzIG93biAobWlzc2luZyBfX3U2NCkuCj4gPiAKPiA+ID4g Kwo+ID4gPiArI2RlZmluZSBETUFfQlVGX1NZTkNfUkVBRCAgICAgICgxIDw8IDApCj4gPiA+ICsj ZGVmaW5lIERNQV9CVUZfU1lOQ19XUklURSAgICAgKDIgPDwgMCkKPiA+ID4gKyNkZWZpbmUgRE1B X0JVRl9TWU5DX1JXICAgICAgICAoRE1BX0JVRl9TWU5DX1JFQUQgfCBETUFfQlVGX1NZTkNfV1JJ VEUpCj4gPiA+ICsjZGVmaW5lIERNQV9CVUZfU1lOQ19TVEFSVCAgICAgKDAgPDwgMikKPiA+ID4g KyNkZWZpbmUgRE1BX0JVRl9TWU5DX0VORCAgICAgICAoMSA8PCAyKQo+ID4gPiArI2RlZmluZSBE TUFfQlVGX1NZTkNfVkFMSURfRkxBR1NfTUFTSyBcCj4gPiA+ICsgICAgICAgKERNQV9CVUZfU1lO Q19SVyB8IERNQV9CVUZfU1lOQ19FTkQpCj4gPiA+ICsKPiA+ID4gKyNkZWZpbmUgRE1BX0JVRl9C QVNFICAgICAgICAgICAnYicKPiA+ID4gKyNkZWZpbmUgRE1BX0JVRl9JT0NUTF9TWU5DICAgICBf SU9XKERNQV9CVUZfQkFTRSwgMCwgc3RydWN0IGRtYV9idWZfc3luYykKPiA+IAo+ID4gV2h5IF9J T1c/IEEgcmVhZC1vbmx5IGlvY3RsIHNob3VsZCBiZSBhYmxlIHRvIGNhbGwgRE1BX0JVRl9TWU5D X1JFQUQsIHJpZ2h0Pwo+IAo+IE9vcHMsIGxvb2tzIGxpa2UgbW9yZSB3b3JrIGlzIG5lZWRlZC4g VGhhbmtzIGZvciB5b3VyIHJldmlldy4KPiAKPiBJIGRyb3BwZWQgcGF0Y2hlcyAzLTUgYWdhaW4g bWVhbndoaWxlIGZyb20gZHJtLW1pc2MuCgpDb3JyZWN0aW9uOiBPbmx5IGRyb3BwZWQgdGhpcyBw YXRjaCwgc2luY2UgdGhlIGludGVybmFsIGludGVyZmFjZXMgc3RheWVkCnRoZSBzYW1lLgotRGFu aWVsCi0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlv bgpodHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9kcmktZGV2ZWwK