From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?B?TWFyZWsgT2zFocOhaw==?= Subject: Re: Question on UAPI for fences Date: Sun, 14 Sep 2014 02:32:27 +0200 Message-ID: References: <5412F3CA.9060306@amd.com> <20140912145048.GA4139@gmail.com> <20140912153346.GB4139@gmail.com> <54131481.4040905@amd.com> <20140912154831.GC4139@gmail.com> <54131811.4050509@amd.com> <20140912160349.GD4139@gmail.com> <54131A77.3030003@amd.com> <54132180.5050905@Intel.com> <541437B8.4010607@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-lb0-f177.google.com (mail-lb0-f177.google.com [209.85.217.177]) by gabe.freedesktop.org (Postfix) with ESMTP id 407EF6E02D for ; Sat, 13 Sep 2014 17:33:09 -0700 (PDT) Received: by mail-lb0-f177.google.com with SMTP id l4so2704789lbv.8 for ; Sat, 13 Sep 2014 17:33:07 -0700 (PDT) In-Reply-To: <541437B8.4010607@amd.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: =?UTF-8?Q?Christian_K=C3=B6nig?= Cc: Maarten Lankhorst , Zach Pfeffer , "dri-devel@lists.freedesktop.org" , "linaro-mm-sig@lists.linaro.org" , gpudriverdevsupport , John Harrison List-Id: dri-devel@lists.freedesktop.org QlRXLCB3ZSBjYW4gcmVjeWNsZSBmZW5jZXMgaW4gdXNlcnNwYWNlIGp1c3QgbGlrZSB3ZSByZWN5 Y2xlIGJ1ZmZlcnMuClRoYXQgc2hvdWxkIG1ha2UgdGhlIGNyZWF0ZS9jbG9zZSBvdmVyaGVhZCBu b24tZXhpc3RlbnQuCgpNYXJlawoKT24gU2F0LCBTZXAgMTMsIDIwMTQgYXQgMjoyNSBQTSwgQ2hy aXN0aWFuIEvDtm5pZwo8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPiB3cm90ZToKPj4gRG9pbmcg c3VjaCBjb21iaW5pbmcgYW5kIGNsZWFuaW5nIHVwIGZkcyBhcyBzb29uIGFzIHRoZXkgaGF2ZSBi ZWVuIHBhc3NlZAo+PiBvbiBzaG91bGQga2VlcCBlYWNoIGFwcGxpY2F0aW9uJ3MgZmQgdXNhZ2Ug ZmFpcmx5IHNtYWxsLgo+Cj4gWWVhaCwgYnV0IHRoaXMgaXMgZXhhY3RseSB3aGF0IHdlIHdhbnRl ZCB0byBhdm9pZCBpbnRlcm5hbGx5IGJlY2F1c2Ugb2YgdGhlCj4gSU9DVEwgb3ZlcmhlYWQuCj4K PiBBbmQgdGhpbmtpbmcgbW9yZSBhYm91dCBpdCBmb3Igb3VyIGRyaXZlciBpbnRlcm5hbCB1c2Ug d2Ugd2lsbCBkZWZpbml0ZWx5Cj4gaGl0IHNvbWUgbGltaXRhdGlvbnMgd2l0aCB0aGUgbnVtYmVy IG9mIEZEcyBpbiB1c2UgYW5kIHRoZSBvdmVyaGVhZCBmb3IKPiBjcmVhdGluZyBhbmQgY2xvc2lu ZyB0aGVtLiBXaXRoIHRoZSBleGVjdXRpb24gbW9kZWwgd2UgdGFyZ2V0IGZvciB0aGUgbG9uZwo+ IHRlcm0gd2Ugd2lsbCBuZWVkIHNvbWV0aGluZyBsaWtlIDEwayBmZW5jZXMgcGVyIHNlY29uZCBv ciBtb3JlLgo+Cj4gSG93IGFib3V0IHRoaXM6IFdlIHVzZSBhbiBpZGVudGlmaWVyIHBlciBjbGll bnQgZm9yIHRoZSBmZW5jZSBpbnRlcm5hbGx5IGFuZAo+IHdoZW4gd2UgbmVlZCB0byBzb21laG93 IGV4cG9zZSBpdCB0byBzb21lYm9keSBlbHNlIGV4cG9ydCBpdCBhcyBzeW5jIHBvaW50Cj4gZmQu IFZlcnkgc2ltaWxhciB0byBob3cgd2UgY3VycmVudGx5IGhhdmUgR0VNIGhhbmRsZXMgaW50ZXJu YWxseSBhbmQgd2hlbiB3ZQo+IG5lZWQgdG8gZXhwb3NlIHRoZW0gZXhwb3J0IGEgRE1BX2J1ZiBm ZC4KPgo+IFJlZ2FyZHMsCj4gQ2hyaXN0aWFuLgo+Cj4gQW0gMTIuMDkuMjAxNCB1bSAxODozOCBz Y2hyaWViIEpvaG4gSGFycmlzb246Cj4KPj4gT24gRnJpLCBTZXAgMTIsIDIwMTQgYXQgMDU6NTg6 MDlQTSArMDIwMCwgQ2hyaXN0aWFuIEvDtm5pZyB3cm90ZToKPj4gPiBwYXNzIGluIGEgbGlzdCBv ZiBmZW5jZXMgdG8gd2FpdCBmb3IgYmVmb3JlIGJlZ2lubmluZyBhIGNvbW1hbmQKPj4gPiBzdWJt aXNzaW9uLgo+Pgo+PiBUaGUgQW5kcm9pZCBpbXBsZW1lbnRhdGlvbiBoYXMgYSBtZWNoYW5pc20g Zm9yIGNvbWJpbmluZyBtdWx0aXBsZSBzeW5jCj4+IHBvaW50cyBpbnRvIGEgYnJhbmQgbmV3IHNp bmdsZSBzeW5jIHB0LiBUaHVzIEFQSXMgb25seSBldmVyIG5lZWQgdG8gdGFrZSBpbgo+PiBhIHNp bmdsZSBmZCBub3QgYSBsaXN0IG9mIHRoZW0uIElmIHRoZSB1c2VyIHdhbnRzIGFuIG9wZXJhdGlv biB0byB3YWl0IGZvcgo+PiBtdWx0aXBsZSBldmVudHMgdG8gb2NjdXIgdGhlbiBpdCBpcyB1cCB0 byB0aGVtIHRvIHJlcXVlc3QgdGhlIGNvbWJpbmVkCj4+IHZlcnNpb24gZmlyc3QuIFRoZXkgY2Fu IHRoZW4gaGFwcGlseSBjbG9zZSB0aGUgaW5kaXZpZHVhbCBmZHMgdGhhdCBoYXZlIGJlZW4KPj4g Y29tYmluZWQgYW5kIG9ubHkga2VlcCB0aGUgb25lIGJpZyBvbmUgYXJvdW5kLiBJbmRlZWQsIGV2 ZW4gdGhhdCBmZCBjYW4gYmUKPj4gY2xvc2VkIG9uY2UgaXQgaGFzIGJlZW4gcGFzc2VkIG9uIHRv IHNvbWUgb3RoZXIgQVBJLgo+Pgo+PiBEb2luZyBzdWNoIGNvbWJpbmluZyBhbmQgY2xlYW5pbmcg dXAgZmRzIGFzIHNvb24gYXMgdGhleSBoYXZlIGJlZW4gcGFzc2VkCj4+IG9uIHNob3VsZCBrZWVw IGVhY2ggYXBwbGljYXRpb24ncyBmZCB1c2FnZSBmYWlybHkgc21hbGwuCj4+Cj4+Cj4+IE9uIDEy LzA5LzIwMTQgMTc6MDgsIENocmlzdGlhbiBLw7ZuaWcgd3JvdGU6Cj4+Pj4KPj4+PiBBcyBEYW5p ZWwgc2FpZCB1c2luZyBmZCBpcyBtb3N0IGxpa2VseSB0aGUgd2F5IHdlIHdhbnQgdG8gZG8gaXQg YnV0IHRoaXMKPj4+PiByZW1haW5zIHZhZ3VlLgo+Pj4KPj4+IFNlcGFyYXRpbmcgdGhlIGRpc2N1 c3Npb24gaWYgaXQgc2hvdWxkIGJlIGFuIGZkIG9yIG5vdC4gVXNpbmcgYW4gZmQKPj4+IHNvdW5k cyBmaW5lIHRvIG1lIGluIGdlbmVyYWwsIGJ1dCBJIGhhdmUgc29tZSBjb25jZXJucyBhcyB3ZWxs Lgo+Pj4KPj4+IEZvciBleGFtcGxlIHdoYXQgd2FzIHRoZSBtYXhpbXVtIG51bWJlciBvZiBvcGVu ZWQgRkRzIHBlciBwcm9jZXNzIGFnYWluPwo+Pj4gQ291bGQgdGhhdCBiZWNvbWUgYSBwcm9ibGVt PyBldGMuLi4KPj4+Cj4+PiBQbGVhc2UgY29tbWVudCwKPj4+IENocmlzdGlhbi4KPj4+Cj4+PiBB bSAxMi4wOS4yMDE0IHVtIDE4OjAzIHNjaHJpZWIgSmVyb21lIEdsaXNzZToKPj4+Pgo+Pj4+IE9u IEZyaSwgU2VwIDEyLCAyMDE0IGF0IDA1OjU4OjA5UE0gKzAyMDAsIENocmlzdGlhbiBLw7ZuaWcg d3JvdGU6Cj4+Pj4+Cj4+Pj4+IEFtIDEyLjA5LjIwMTQgdW0gMTc6NDggc2NocmllYiBKZXJvbWUg R2xpc3NlOgo+Pj4+Pj4KPj4+Pj4+IE9uIEZyaSwgU2VwIDEyLCAyMDE0IGF0IDA1OjQyOjU3UE0g KzAyMDAsIENocmlzdGlhbiBLw7ZuaWcgd3JvdGU6Cj4+Pj4+Pj4KPj4+Pj4+PiBBbSAxMi4wOS4y MDE0IHVtIDE3OjMzIHNjaHJpZWIgSmVyb21lIEdsaXNzZToKPj4+Pj4+Pj4KPj4+Pj4+Pj4gT24g RnJpLCBTZXAgMTIsIDIwMTQgYXQgMTE6MjU6MTJBTSAtMDQwMCwgQWxleCBEZXVjaGVyIHdyb3Rl Ogo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IE9uIEZyaSwgU2VwIDEyLCAyMDE0IGF0IDEwOjUwIEFNLCBK ZXJvbWUgR2xpc3NlCj4+Pj4+Pj4+PiA8ai5nbGlzc2VAZ21haWwuY29tPiB3cm90ZToKPj4+Pj4+ Pj4+Pgo+Pj4+Pj4+Pj4+IE9uIEZyaSwgU2VwIDEyLCAyMDE0IGF0IDA0OjQzOjQ0UE0gKzAyMDAs IERhbmllbCBWZXR0ZXIgd3JvdGU6Cj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+IE9uIEZyaSwgU2Vw IDEyLCAyMDE0IGF0IDQ6MDkgUE0sIERhbmllbCBWZXR0ZXIgPGRhbmllbEBmZndsbC5jaD4KPj4+ Pj4+Pj4+Pj4gd3JvdGU6Cj4+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+Pj4gT24gRnJpLCBTZXAgMTIs IDIwMTQgYXQgMDM6MjM6MjJQTSArMDIwMCwgQ2hyaXN0aWFuIEvDtm5pZyB3cm90ZToKPj4+Pj4+ Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+Pj4+IEhlbGxvIGV2ZXJ5b25lLAo+Pj4+Pj4+Pj4+Pj4+Cj4+Pj4+ Pj4+Pj4+Pj4gdG8gYWxsb3cgY29uY3VycmVudCBidWZmZXIgYWNjZXNzIGJ5IGRpZmZlcmVudCBl bmdpbmVzIGJleW9uZAo+Pj4+Pj4+Pj4+Pj4+IHRoZSBtdWx0aXBsZQo+Pj4+Pj4+Pj4+Pj4+IHJl YWRlcnMvc2luZ2xlIHdyaXRlciBtb2RlbCB0aGF0IHdlIGN1cnJlbnRseSB1c2UgaW4gcmFkZW9u IGFuZAo+Pj4+Pj4+Pj4+Pj4+IG90aGVyCj4+Pj4+Pj4+Pj4+Pj4gZHJpdmVycyB3ZSBuZWVkIHNv bWUga2luZCBvZiBzeW5jaG9uaXphdGlvbiBvYmplY3QgZXhwb3NlZCB0bwo+Pj4+Pj4+Pj4+Pj4+ IHVzZXJzcGFjZS4KPj4+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+Pj4+IE15IGluaXRpYWwgcGF0Y2gg c2V0IGZvciB0aGlzIHVzZWQgKG9yIHJhdGhlciBhYnVzZWQpIHplcm8KPj4+Pj4+Pj4+Pj4+PiBz aXplZCBHRU0gYnVmZmVycwo+Pj4+Pj4+Pj4+Pj4+IGFzIGZlbmNlIGhhbmRsZXMuIFRoaXMgaXMg b2J2aW91c2x5IGlzbid0IHRoZSBiZXN0IHdheSBvZiBkb2luZwo+Pj4+Pj4+Pj4+Pj4+IHRoaXMg KHRvCj4+Pj4+Pj4+Pj4+Pj4gbXVjaCBvdmVyaGVhZCwgcmF0aGVyIHVnbHkgZXRjLi4uKSwgSmVy b21lIGNvbW1lbnRlZCBvbiB0aGlzCj4+Pj4+Pj4+Pj4+Pj4gYWNjb3JkaW5nbHkuCj4+Pj4+Pj4+ Pj4+Pj4KPj4+Pj4+Pj4+Pj4+PiBTbyB3aGF0IHNob3VsZCBhIGRyaXZlciBleHBvc2UgaW5zdGVh ZD8gQW5kcm9pZCBzeW5jIHBvaW50cz8KPj4+Pj4+Pj4+Pj4+PiBTb21ldGhpbmcgZWxzZT8KPj4+ Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+PiBJIHRoaW5rIGFjdHVhbGx5IGV4cG9zaW5nIHRoZSBzdHJ1 Y3QgZmVuY2Ugb2JqZWN0cyBhcyBhIGZkLAo+Pj4+Pj4+Pj4+Pj4gdXNpbmcgYW5kcm9pZAo+Pj4+ Pj4+Pj4+Pj4gc3luY3B0cyAob3IgYXQgbGVhc3Qgc29tZXRoaW5nIGNvbXBhdGlibGUgdG8gaXQp IGlzIHRoZSB3YXkgdG8KPj4+Pj4+Pj4+Pj4+IGdvLiBQcm9ibGVtCj4+Pj4+Pj4+Pj4+PiBpcyB0 aGF0IGl0J3Mgc3VwZXItaGFyZCB0byBnZXQgdGhlIGFuZHJvaWQgZ3V5cyBvdXQgb2YgaGlkaW5n Cj4+Pj4+Pj4+Pj4+PiBmb3IgdGhpcyA6KAo+Pj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4+IEFkZGlu ZyBhIGJ1bmNoIG9mIHBlb3BsZSBpbiB0aGUgaG9wZXMgdGhhdCBzb21ldGhpbmcgc3RpY2tzLgo+ Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+PiBNb3JlIHBlb3BsZS4KPj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+ IEp1c3QgdG8gcmUtaXRlcmF0ZSwgZXhwb3Npbmcgc3VjaCB0aGluZyB3aGlsZSBzdGlsbCB1c2lu ZyBjb21tYW5kCj4+Pj4+Pj4+Pj4gc3RyZWFtCj4+Pj4+Pj4+Pj4gaW9jdGwgdGhhdCB1c2UgaW1w bGljaXQgc3luY2hyb25pemF0aW9uIGlzIGEgd2FzdGUgYW5kIHlvdSBjYW4KPj4+Pj4+Pj4+PiBv bmx5IGdldAo+Pj4+Pj4+Pj4+IHRoZSBsb3dlc3QgY29tbW9uIGRlbm9taW5hdG9yIHdoaWNoIGlz IGltcGxpY2l0IHN5bmNocm9uaXphdGlvbi4KPj4+Pj4+Pj4+PiBTbyBpIGRvCj4+Pj4+Pj4+Pj4g bm90IHNlZSB0aGUgcG9pbnQgb2Ygc3VjaCBhcGkgaWYgeW91IGFyZSBub3QgYWxzbyBhZGRpbmcg YSBuZXcgY3MKPj4+Pj4+Pj4+PiBpb2N0bAo+Pj4+Pj4+Pj4+IHdpdGggZXhwbGljaXQgY29udHJh Y3QgdGhhdCBpdCBkb2VzIG5vdCBkbyBhbnkga2luZCBvZgo+Pj4+Pj4+Pj4+IHN5bmNocm9uaXph dGlvbgo+Pj4+Pj4+Pj4+IChpdCBjb3VsZCBiZSBhbG1vc3QgdGhlIGV4YWN0IHNhbWUgY29kZSBt b2R1bG8gdGhlIGRvIG5vdCB3YWl0IGZvcgo+Pj4+Pj4+Pj4+IHByZXZpb3VzIGNtZCB0byBjb21w bGV0ZSkuCj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gT3VyIHRoaW5raW5nIHdhcyB0byBhbGxvdyBleHBs aWNpdCBzeW5jIGZyb20gYSBzaW5nbGUgcHJvY2VzcywgYnV0Cj4+Pj4+Pj4+PiBpbXBsaWNpdGx5 IHN5bmMgYmV0d2VlbiBwcm9jZXNzZXMuCj4+Pj4+Pj4+Cj4+Pj4+Pj4+IFRoaXMgaXMgYSBCSUcg TkFLIGlmIHlvdSBhcmUgdXNpbmcgdGhlIHNhbWUgaW9jdGwgYXMgaXQgd291bGQgbWVhbgo+Pj4+ Pj4+PiB5b3UgYXJlCj4+Pj4+Pj4+IGNoYW5naW5nIHVzZXJzcGFjZSBBUEksIHdlbGwgYXQgbGVh c3QgdXNlcnNwYWNlIGV4cGVjdGF0aW9uLiBBZGRpbmcKPj4+Pj4+Pj4gYSBuZXcKPj4+Pj4+Pj4g Y3MgZmxhZyBtaWdodCBkbyB0aGUgdHJpY2sgYnV0IGl0IHNob3VsZCBub3QgYmUgYWJvdXQgaW50 ZXItcHJvY2VzcywKPj4+Pj4+Pj4gb3IgYW55Cj4+Pj4+Pj4+IHRoaW5nIHNwZWNpYWwsIGl0J3Mg anVzdCBpbXBsaWNpdCBzeW5jIG9yIG5vIHN5bmNocm9uaXphdGlvbi4KPj4+Pj4+Pj4gQ29udmVy dGluZwo+Pj4+Pj4+PiB1c2Vyc3BhY2UgaXMgbm90IHRoYXQgbXVjaCBvZiBhIGJpZyBkZWFsIGVp dGhlciwgaXQgY2FuIGJlIGJyb2tlbgo+Pj4+Pj4+PiBpbnRvCj4+Pj4+Pj4+IHNldmVyYWwgc3Rl cC4gTGlrZSBtZXNhIHVzZSBleHBsaWNpdCBzeW5jaHJvbml6YXRpb24gYWxsIHRpbWUgYnV0Cj4+ Pj4+Pj4+IGRkeCB1c2UKPj4+Pj4+Pj4gaW1wbGljaXQuCj4+Pj4+Pj4KPj4+Pj4+PiBUaGUgdGhp bmtpbmcgaGVyZSBpcyB0aGF0IHdlIG5lZWQgdG8gYmUgYmFja3dhcmQgY29tcGF0aWJsZSBmb3IK Pj4+Pj4+PiBEUkkyLzMgYW5kCj4+Pj4+Pj4gc3VwcG9ydCBhbGwga2luZCBvZiBkaWZmZXJlbnQg dXNlIGNhc2VzIGxpa2Ugb2xkIEREWCBhbmQgbmV3IE1lc2EsIG9yCj4+Pj4+Pj4gb2xkCj4+Pj4+ Pj4gTWVzYSBhbmQgbmV3IEREWCBldGMuLi4KPj4+Pj4+Pgo+Pj4+Pj4+IFNvIGZvciBteSBwcm90 b3R5cGUgaWYgdGhlIGtlcm5lbCBzZWVzIGFueSBhY2Nlc3Mgb2YgYSBCTyBmcm9tIHR3bwo+Pj4+ Pj4+IGRpZmZlcmVudAo+Pj4+Pj4+IGNsaWVudHMgaXQgZmFsbHMgYmFjayB0byB0aGUgb2xkIGJl aGF2aW9yIG9mIGltcGxpY2l0IHN5bmNocm9uaXphdGlvbgo+Pj4+Pj4+IG9mCj4+Pj4+Pj4gYWNj ZXNzIHRvIHRoZSBzYW1lIGJ1ZmZlciBvYmplY3QuIFRoYXQgbWlnaHQgbm90IGJlIHRoZSBmYXN0 ZXN0Cj4+Pj4+Pj4gYXBwcm9hY2gsCj4+Pj4+Pj4gYnV0IGlzIGFzIGZhciBhcyBJIGNhbiBzZWUg Y29uc2VydmF0aXZlIGFuZCBzbyBzaG91bGQgd29yayB1bmRlciBhbGwKPj4+Pj4+PiBjb25kaXRp b25zLgo+Pj4+Pj4+Cj4+Pj4+Pj4gQXBhcnQgZnJvbSB0aGF0IHRoZSBwbGFubmluZyBzbyBmYXIg d2FzIHRoYXQgd2UganVzdCBoaWRlIHRoaXMKPj4+Pj4+PiBmZWF0dXJlCj4+Pj4+Pj4gYmVoaW5k IGEgY291cGxlIG9mIGNvbW1hbmQgc3VibWlzc2lvbiBmbGFncyBhbmQgbmV3IGNodW5rcy4KPj4+ Pj4+Cj4+Pj4+PiBKdXN0IHRvIHJlcHJvZHVjZSBJUkMgZGlzY3Vzc2lvbiwgaSB0aGluayBpdCdz IGEgbG90IHNpbXBsZXIgYW5kIG5vdAo+Pj4+Pj4gdGhhdAo+Pj4+Pj4gY29tcGxleC4gRm9yIGV4 cGxpY2l0IGNzIGlvY3RsIHlvdSBkbyBub3Qgd2FpdCBmb3IgYW55IHByZXZpb3VzIGZlbmNlCj4+ Pj4+PiBvZgo+Pj4+Pj4gYW55IG9mIHRoZSBidWZmZXIgcmVmZXJlbmNlZCBpbiB0aGUgY3MgaW9j dGwsIGJ1dCB5b3Ugc3RpbGwgYXNzb2NpYXRlCj4+Pj4+PiBhCj4+Pj4+PiBuZXcgZmVuY2Ugd2l0 aCBhbGwgdGhlIGJ1ZmZlciBvYmplY3QgcmVmZXJlbmNlZCBpbiB0aGUgY3MgaW9jdGwuIFNvIGlm Cj4+Pj4+PiB0aGUKPj4+Pj4+IG5leHQgaW9jdGwgaXMgYW4gaW1wbGljaXQgc3luYyBpb2N0bCBp dCB3aWxsIHdhaXQgcHJvcGVybHkgYW5kCj4+Pj4+PiBzeW5jaHJvbml6ZQo+Pj4+Pj4gcHJvcGVy bHkgd2l0aCBwcmV2aW91cyBleHBsaWNpdCBjcyBpb2N0bC4gSGVuY2UgeW91IGNhbiBlYXNpbHkg aGF2ZSBhCj4+Pj4+PiBtaXgKPj4+Pj4+IGluIHVzZXJzcGFjZSB0aGluZyBpcyB5b3Ugb25seSBn ZXQgYmVuZWZpdCBvbmNlIGVub3VnaCBvZiB5b3VyCj4+Pj4+PiB1c2Vyc3BhY2UKPj4+Pj4+IGlz IHVzaW5nIGV4cGxpY2l0Lgo+Pj4+Pgo+Pj4+PiBZZXMsIHRoYXQncyBleGFjdGx5IHdoYXQgbXkg cGF0Y2hlcyBjdXJyZW50bHkgaW1wbGVtZW50Lgo+Pj4+Pgo+Pj4+PiBUaGUgb25seSBkaWZmZXJl bmNlIGlzIHRoYXQgYnkgY3VycmVudCBwbGFubmluZyBJIGltcGxlbWVudGVkIGl0IGFzIGEKPj4+ Pj4gcGVyIEJPCj4+Pj4+IGZsYWcgZm9yIHRoZSBjb21tYW5kIHN1Ym1pc3Npb24sIGJ1dCB0aGF0 IHdhcyBqdXN0IGZvciB0ZXN0aW5nLiBIYXZpbmcKPj4+Pj4gYQo+Pj4+PiBzaW5nbGUgZmxhZyB0 byBzd2l0Y2ggYmV0d2VlbiBpbXBsaWNpdCBhbmQgZXhwbGljaXQgc3luY2hyb25pemF0aW9uIGZv cgo+Pj4+PiB3aG9sZSBDUyBJT0NUTCB3b3VsZCBkbyBlcXVhbGx5IHdlbGwuCj4+Pj4KPj4+PiBE b2luZyBpdCBwZXIgQk8gc291bmRzIGJvZ3VzIHRvIG1lLiBCdXQgb3RoZXJ3aXNlIHllcyB3ZSBh cmUgaW4KPj4+PiBhZ3JlZW1lbnQuCj4+Pj4gQXMgRGFuaWVsIHNhaWQgdXNpbmcgZmQgaXMgbW9z dCBsaWtlbHkgdGhlIHdheSB3ZSB3YW50IHRvIGRvIGl0IGJ1dCB0aGlzCj4+Pj4gcmVtYWlucyB2 YWd1ZS4KPj4+Pgo+Pj4+Pj4gTm90ZSB0aGF0IHlvdSBzdGlsbCBuZWVkIGEgd2F5IHRvIGhhdmUg ZXhwbGljaXQgY3MgaW9jdGwgdG8gd2FpdCBvbiBhCj4+Pj4+PiBwcmV2aW9zICJleHBsaWNpdCIg ZmVuY2Ugc28geW91IG5lZWQgc29tZSBhcGkgdG8gZXhwb3NlIGZlbmNlIHBlciBjcwo+Pj4+Pj4g c3VibWlzc2lvbi4KPj4+Pj4KPj4+Pj4gRXhhY3RseSwgdGhhdCdzIHdoYXQgdGhpcyBtYWlsIHRo cmVhZCBpcyBhbGwgYWJvdXQuCj4+Pj4+Cj4+Pj4+IEFzIERhbmllbCBjb3JyZWN0bHkgbm90ZWQg eW91IG5lZWQgc29tZXRoaW5nIGxpa2UgYSBmdW5jdGlvbmFsaXR5IHRvCj4+Pj4+IGdldCBhCj4+ Pj4+IGZlbmNlIGFzIHRoZSByZXN1bHQgb2YgYSBjb21tYW5kIHN1Ym1pc3Npb24gYXMgd2VsbCBh cyBwYXNzIGluIGEgbGlzdAo+Pj4+PiBvZgo+Pj4+PiBmZW5jZXMgdG8gd2FpdCBmb3IgYmVmb3Jl IGJlZ2lubmluZyBhIGNvbW1hbmQgc3VibWlzc2lvbi4KPj4+Pj4KPj4+Pj4gQXQgbGVhc3QgaXQg bG9va3MgbGlrZSB3ZSBhcmUgYWxsIG9uIHRoZSBzYW1lIGdlbmVyYWwgbGluZSBoZXJlLCBpdHMK Pj4+Pj4ganVzdAo+Pj4+PiBub2JvZHkgaGFzIGEgZ29vZCBpZGVhIGhvdyB0aGUgZGV0YWlscyBz aG91bGQgbG9vayBsaWtlLgo+Pj4+Pgo+Pj4+PiBSZWdhcmRzLAo+Pj4+PiBDaHJpc3RpYW4uCj4+ Pj4+Cj4+Pj4+PiBDaGVlcnMsCj4+Pj4+PiBKw6lyw7RtZQo+Pj4+Pj4KPj4+Pj4+PiBSZWdhcmRz LAo+Pj4+Pj4+IENocmlzdGlhbi4KPj4+Pj4+Pgo+Pj4+Pj4+PiBDaGVlcnMsCj4+Pj4+Pj4+IErD qXLDtG1lCj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiBBbGV4Cj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+IEFsc28g b25lIHRoaW5nIHRoYXQgdGhlIEFuZHJvaWQgc3luYyBwb2ludCBkb2VzIG5vdCBoYXZlLCBBRkFJ Q1QsCj4+Pj4+Pj4+Pj4gaXMgYQo+Pj4+Pj4+Pj4+IHdheSB0byBzY2hlZHVsZSBzeW5jaHJvbml6 YXRpb24gYXMgcGFydCBvZiBhIGNzIGlvY3RsIHNvIGNwdSBuZXZlcgo+Pj4+Pj4+Pj4+IGhhdmUK Pj4+Pj4+Pj4+PiB0byBiZSBpbnZvbHZlIGZvciBjbWQgc3RyZWFtIHRoYXQgZGVhbCBvbmx5IG9u ZSBncHUgKGFzc3VtaW5nIHRoZQo+Pj4+Pj4+Pj4+IGRyaXZlcgo+Pj4+Pj4+Pj4+IGFuZCBodyBj YW4gZG8gc3VjaCB0cmljaykuCj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+PiBDaGVlcnMsCj4+Pj4+Pj4+ Pj4gSsOpcsO0bWUKPj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+PiAtRGFuaWVsCj4+Pj4+Pj4+Pj4+IC0t Cj4+Pj4+Pj4+Pj4+IERhbmllbCBWZXR0ZXIKPj4+Pj4+Pj4+Pj4gU29mdHdhcmUgRW5naW5lZXIs IEludGVsIENvcnBvcmF0aW9uCj4+Pj4+Pj4+Pj4+ICs0MSAoMCkgNzkgMzY1IDU3IDQ4IC0gaHR0 cDovL2Jsb2cuZmZ3bGwuY2gKPj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+IF9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4+Pj4+Pj4+Pj4gZHJpLWRldmVsIG1haWxp bmcgbGlzdAo+Pj4+Pj4+Pj4+IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPj4+Pj4+ Pj4+PiBodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRl dmVsCj4+Pgo+Pj4KPgo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCj4gZHJpLWRldmVsIG1haWxpbmcgbGlzdAo+IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKPiBodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v ZHJpLWRldmVsCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==