From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [RFC] drm/i915: Add sync framework support to execbuff IOCTL Date: Mon, 6 Jul 2015 17:37:57 +0200 Message-ID: <20150706153757.GA7568@phenom.ffwll.local> References: <55955C10.5000306@Intel.com> <20150702155554.GE21398@nuc-i3427.alporthouse.com> <55966F4D.7000500@linux.intel.com> <20150706092958.GN2156@phenom.ffwll.local> <559A7B71.8030708@Intel.com> <20150706135930.GD2156@phenom.ffwll.local> <559A9004.50606@Intel.com> <559A94D9.1030705@linux.intel.com> <20150706151202.GS2156@phenom.ffwll.local> <559A9CF8.9010601@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wg0-f53.google.com (mail-wg0-f53.google.com [74.125.82.53]) by gabe.freedesktop.org (Postfix) with ESMTPS id CB6326E8BA for ; Mon, 6 Jul 2015 08:41:21 -0700 (PDT) Received: by wguu7 with SMTP id u7so144136835wgu.3 for ; Mon, 06 Jul 2015 08:41:20 -0700 (PDT) Content-Disposition: inline In-Reply-To: <559A9CF8.9010601@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Tvrtko Ursulin Cc: Intel-GFX@Lists.FreeDesktop.Org List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBKdWwgMDYsIDIwMTUgYXQgMDQ6MjE6MjhQTSArMDEwMCwgVHZydGtvIFVyc3VsaW4g d3JvdGU6Cj4gCj4gT24gMDcvMDYvMjAxNSAwNDoxMiBQTSwgRGFuaWVsIFZldHRlciB3cm90ZToK PiA+T24gTW9uLCBKdWwgMDYsIDIwMTUgYXQgMDM6NDY6NDlQTSArMDEwMCwgVHZydGtvIFVyc3Vs aW4gd3JvdGU6Cj4gPj5PbiAwNy8wNi8yMDE1IDAzOjI2IFBNLCBKb2huIEhhcnJpc29uIHdyb3Rl Ogo+ID4+Pk9uIDA2LzA3LzIwMTUgMTQ6NTksIERhbmllbCBWZXR0ZXIgd3JvdGU6Cj4gPj4+Pk9u IE1vbiwgSnVsIDA2LCAyMDE1IGF0IDAxOjU4OjI1UE0gKzAxMDAsIEpvaG4gSGFycmlzb24gd3Jv dGU6Cj4gPj4+Pj5PbiAwNi8wNy8yMDE1IDEwOjI5LCBEYW5pZWwgVmV0dGVyIHdyb3RlOgo+ID4+ Pj4+Pk9uIEZyaSwgSnVsIDAzLCAyMDE1IGF0IDEyOjE3OjMzUE0gKzAxMDAsIFR2cnRrbyBVcnN1 bGluIHdyb3RlOgo+ID4+Pj4+Pj5PbiAwNy8wMi8yMDE1IDA0OjU1IFBNLCBDaHJpcyBXaWxzb24g d3JvdGU6Cj4gPj4+Pj4+Pj5JdCB3b3VsZCBiZSBuaWNlIGlmIHdlIGNvdWxkIHJldXNlIG9uZSBz ZXFubyBib3RoIGZvcgo+ID4+Pj4+Pj4+aW50ZXJuYWwvZXh0ZXJuYWwKPiA+Pj4+Pj4+PmZlbmNl cy4gSWYgeW91IG5lZWQgdG8gZXhwb3NlIGEgZmVuY2Ugb3JkZXJpbmcgd2l0aGluIGEgdGltZWxp bmUKPiA+Pj4+Pj4+PnRoYXQgaXMKPiA+Pj4+Pj4+PmJhc2VkIG9uIHRoZSBjcmVhdGlvbiBzdGFt cCByYXRoZXIgdGhhbiBleGVjdXRpb24gc3RhbXAsIGl0IHNlZW1zCj4gPj4+Pj4+Pj5saWtlCj4g Pj4+Pj4+Pj53ZSBjb3VsZCBqdXN0IGFkZCBzdWNoIGEgc3RhbXAgd2hlbiBjcmVhdGluZyB0aGUg c3luY19wdCBhbmQgbm90Cj4gPj4+Pj4+Pj53b3JyeQo+ID4+Pj4+Pj4+YWJvdXQgaXRzIHJlbGF0 aW9uc2hpcCB0byB0aGUgZXhlY3V0aW9uIHNlcW5vLgo+ID4+Pj4+Pj4+Cj4gPj4+Pj4+Pj5Eb2lu ZyBzbyBkb2VzIGV4cG9zZSB0aGF0IHJlcXVlc3RzIGFyZSByZW9yZGVyZWQgdG8gdXNlcnNwYWNl Cj4gPj4+Pj4+Pj5zaW5jZSB0aGUKPiA+Pj4+Pj4+PnNpZ25hbGxpbmcgdGltZWxpbmUgaXMgbm90 IHRoZSBzYW1lIGFzIHVzZXJzcGFjZSdzIG9yZGVyZWQKPiA+Pj4+Pj4+PnRpbWVsaW5lLiBOb3QK PiA+Pj4+Pj4+PnN1cmUgaWYgdGhhdCBpcyBhIHByb2JsZW0gb3Igbm90Lgo+ID4+Pj4+Pj4+Cj4g Pj4+Pj4+Pj5BZmFpY3QgdGhlIHN5bmMgdWFwaSBpcyBiYXNlZCBvbiB3YWl0aW5nIGZvciBhbGwg b2YgYSBzZXQgb2YKPiA+Pj4+Pj4+PmZlbmNlcyB0bwo+ID4+Pj4+Pj4+cmV0aXJlLiBJdCBkb2Vz bid0IHNlZW0gdG8gcmVseSBvbiBmZW5jZSBvcmRlcmluZyAodGhhdCBpcyBrbm93aW5nCj4gPj4+ Pj4+Pj50aGF0Cj4gPj4+Pj4+Pj5mZW5jZSBBIHdpbGwgc2lnbmFsIGJlZm9yZSBmZW5jZSBCIHNv IGl0IG5lZWQgb25seSB3YWl0IG9uIGZlbmNlIEIpLgo+ID4+Pj4+Pj4+Cj4gPj4+Pj4+Pj5IZXJl J3MgaG9waW5nIHRoYXQgd2UgY2FuIGhhdmUgYm90aCBzaW1wbGljaXR5IGFuZCBlZmZpY2llbmN5 Li4uCj4gPj4+Pj4+Pkp1bXBpbmcgaW4gd2l0aCBub3QgZXZlbiBwZXJmZWN0IHVuZGVyc3RhbmRp bmcgb2YgZXZlcnl0aGluZyBoZXJlIC0KPiA+Pj4+Pj4+YnV0Cj4gPj4+Pj4+PnRpbWVsaW5lIGJ1 c2luZXNzIGhhcyBhbHdheXMgYmVlbiBjb25mdXNpbmcgbWUuIFRoZXJlIGlzIG5vdGhpbmcgaW4K PiA+Pj4+Pj4+dGhlCj4gPj4+Pj4+PnVhcGkgd2hpY2ggbmVlZHMgaXQgYWZhaWNzIGFuZCBpaXJj IHRoZXJlIHdhcyBzb21lIGRpc2N1c3Npb24gYXQKPiA+Pj4+Pj4+dGhlIHRpbWUKPiA+Pj4+Pj4+ SmVzc2UgZmxvYXRlZCBoaXMgcGF0Y2hlcyB0aGF0IGl0IGNhbiBiZSByZW1vdmVkLiBCYXNlZCBv biB0aGF0IHdoZW4gSQo+ID4+Pj4+Pj5zcXVhc2hlZCBoaXMgcGF0Y2hlcyBhbmQgcG9ydGVkIHRo ZW0gb24gdG9wIG9mIEpvaG4ncyByZXF1ZXN0IHRvIGZlbmNlCj4gPj4+Pj4+PmNvbnZlcnNpb24g aXQgZW5kZWQgdXAgc29tZXRoaW5nIGxpa2UgdGhlIGJlbG93IChtYW51YWxseSBlZGl0ZWQgYQo+ ID4+Pj4+Pj5iaXQgdG8KPiA+Pj4+Pj4+YmUgbGVzcyBub2lzeSBhbmQgc29tZSBwcmVwIHBhdGNo ZXMgb21pdHRlZCk6Cj4gPj4+Pj4+Pgo+ID4+Pj4+Pj5UaGlzIGltcGxlbWVudHMgdGhlIGlvY3Rs IGJhc2VkIHVhcGkgYW5kIGluZGVlZCBzZXFub3MgYXJlIG5vdAo+ID4+Pj4+Pj5hY3R1YWxseQo+ ID4+Pj4+Pj51c2VkIGluIHdhaXRzLiBTbyBpcyB0aGlzIGluc3VmZmljaWVudCBmb3Igc29tZSBy ZWFzb24/IChPdGhlciB0aGF0IGl0Cj4gPj4+Pj4+PmRvZXMgbm90IGltcGxlbWVudCB0aGUgaW5w dXQgZmVuY2Ugc2lkZSBvZiB0aGluZ3MuKQo+ID4+Pj4+PlllYWggYW5kcm9pZCBzeW5jcHQgb24g dG9wIG9mIHN0cnVjdCBmZW5jZSBlbWJlZGRlZCBpbnQgaTkxNSByZXF1ZXN0IGlzCj4gPj4+Pj4+ d2hhdCBJJ2QgaGF2ZSBleHBlY3RlZC4KPiA+Pj4+PlRoZSB0aGluZyBJJ20gbm90IGhhcHB5IHdp dGggaW4gdGhhdCBwbGFuIGlzIHRoYXQgaXQgbGVhdmVzIHRoZSBrZXJuZWwKPiA+Pj4+PmRyaXZl ciBhdCB0aGUgbWVyY3kgb2YgdXNlciBsYW5kIGFwcGxpY2F0aW9ucy4gSWYgd2UgcmV0dXJuIGEg ZmVuY2UKPiA+Pj4+Pm9iamVjdAo+ID4+Pj4+dG8gdXNlciBsYW5kIHZpYSBhIGZpbGUgZGVzY3Jp cHRvciAob3IgaW5kZWVkIGFueSBvdGhlciBtZWNoYW5pc20pCj4gPj4+Pj50aGVuIHRoYXQKPiA+ Pj4+PmZlbmNlIG9iamVjdCBtdXN0IGJlIGxvY2tlZCB1bnRpbCB1c2VyIGxhbmQgY2xvc2VzIHRo ZSBmaWxlLiBJZiB0aGUKPiA+Pj4+PmZlbmNlCj4gPj4+Pj5vYmplY3QgaXMgdGhlIG9uZSBlbWJl ZGRlZCB3aXRoaW4gb3VyIHJlcXVlc3Qgc3RydWN0dXJlIHRoZW4gdGhhdAo+ID4+Pj4+bWVhbnMg dXNlcgo+ID4+Pj4+bGFuZCBpcyBlZmZlY3RpdmVseSBsb2NraW5nIG91ciByZXF1ZXN0IHN0cnVj dHVyZS4gR2l2ZW4gdGhhdCBtb3JlCj4gPj4+Pj5hbmQgbW9yZQo+ID4+Pj4+c3R1ZmYgaXMgYmVp bmcgYXR0YWNoZWQgdG8gdGhlIHJlcXVlc3QsIHRoYXQgY291bGQgYmUgYSBmYWlyIGJpdCBvZgo+ ID4+Pj4+bWVtb3J5Cj4gPj4+Pj50aWVkIHVwIHRoYXQgd2UgY2FuIGRvIG5vdGhpbmcgYWJvdXQu IEUuZy4gaWYgYSByb2d1ZS9idWdneSBhcHBsaWNhdGlvbgo+ID4+Pj4+cmVxdWVzdHMgYSBmZW5j ZSBiZSByZXR1cm5lZCBmb3IgZXZlcnkgYmF0Y2ggYnVmZmVyIHN1Ym1pdHRlZCBidXQgbmV2ZXIK PiA+Pj4+PmNsb3NlcyB0aGVtLiBXaGVyZWFzLCBpZiB3ZSBnbyB0aGUgcm91dGUgb2YgYSBzZXBh cmF0ZSBmZW5jZSBvYmplY3QKPiA+Pj4+PnNwZWNpZmljYWxseSBmb3IgdXNlciBsYW5kIHRoZW4g dGhleSBjYW4gbGVhayB0aGVtIGxpa2UgYSBzaWV2ZSBhbmQKPiA+Pj4+PndlIHdvbid0Cj4gPj4+ Pj5yZWFsbHkgY2FyZSBzbyBtdWNoLgo+ID4+Pj5Vc2Vyc3BhY2UgY2FuIGV4aGF1c3Qga2VybmVs IGFsbG9jYXRpb25zLCB0aGF0J3Mgbm90aGluZyBuZXcuIEFuZCBpZiB3ZQo+ID4+Pj5rZWVwIGl0 IHVzZXJzcGFjZSBzaW1wbHkgbmVlZHMgdG8gbGVhayBhIGZldyBtb3JlIGZlbmNlIGZkcyB0aGFu IGlmCj4gPj4+PnRoZXJlJ3MgYSBiaXQgbW9yZSBkYXRhIGF0dGFjaGVkIHRvIGl0Lgo+ID4+Pj4K PiA+Pj4+VGhlIHNvbHV0aW9uIHRvIHRoaXMgcHJvYmxlbSBpcyB0byBoYXZlIGEgbWVtIGNncm91 cCBsaW1pdCBzZXQuIE5vCj4gPj4+Pm5lZWQgdG8KPiA+Pj4+Y29tcGxpY2F0ZSBvdXIga2VybmVs IGNvZGUuCj4gPj4+Cj4gPj4+VGhlcmUgaXMgc3RpbGwgdGhlIGV4dHJhIGNvbXBsaWNhdGlvbiB0 aGF0IHJlcXVlc3QgdW5yZWZlcmVuY2luZyBjYW5ub3QKPiA+Pj5yZXF1aXJlIGFueSBraW5kIG9m IG11dGV4IGxvY2sgaWYgd2UgYXJlIGFsbG93aW5nIGl0IHRvIGhhcHBlbiBmcm9tCj4gPj4+b3V0 c2lkZSBvZiB0aGUgZHJpdmVyLiBUaGF0IG1lYW5zIHRoZSB1bnJlZmVyZW5jZSBjYWxsYmFjayBt dXN0IG1vdmUgdGhlCj4gPj4+cmVxdWVzdCB0byBhICdwbGVhc2UgY2xlYW4gbWUgbGF0ZXInIGxp c3QsIHNjaGVkdWxlIGEgd29ya2VyIHRocmVhZCB0bwo+ID4+PnJ1biwgYW5kIHRodXMgZG8gdGhl IGNsZWFuIHVwIGFzeW5jaHJvbm91c2x5Lgo+ID4+Cj4gPj5Gb3IgdGhpcyBwYXJ0aWN1bGFyIGlz c3VlIG15IHNvbHV0aW9uIHdhcyB0byBleHRlbmQgdGhlIHN5bmNfZmVuY2UKPiA+PmNvbnN0cnVj dG9yIHRvIHRha2UgYSBtdXRleCBhbmQgc3RvcmUgaXQgaW5zaWRlIHRoZSBvYmplY3QuIFRoZW4g YXQKPiA+PmRlc3RydWN0aW9uIHRpbWUsIHdoaWNoIGhhcHBlbnMgYXQgc3luY19mZC0+Zl9vcHMt PnJlbGVhc2UoKSB0aW1lLCBpdCBpcwo+ID4+anVzdCBhIG1hdHRlciBvZiBjYWxsaW5nIGtyZWZf cHV0X211dGV4IGluc3RlYWQgb2Yga3JlZl9wdXQuCj4gPj4KPiA+PlNlZW1lZCB0byB3b3JrIHVu ZGVyIHNvbWUgcXVpY2sgdGVzdGluZyBidXQgdGhhdCBpcyBhcyBtdWNoIGFzIEkgZGlkIGJhY2sK PiA+PnRoZW4uCj4gPgo+ID5UaGUgcHJvYmxlbSBpcyB0aGF0IGl0IGRvZXNuJ3Qgc2NhbGUgc2lu Y2UgZXZlcnlvbmUgd2FudHMgc29tZSBvdGhlciBraW5kCj4gPm9mIG11dGV4IHRvIHNlcmlhbGl6 ZSB0aGUgZmluYWwga3JlZl9wdXQuIElmIHNvbWV0aGluZyBpcyBzdXBwb3NlZCB0byBiZQo+ID5j cm9zcy1zdWJzeXN0ZW0vZHJpdmVyICh3aGljaCBpcyB0aGUgY2FzZSBmb3IgZmVuY2VzKSB0aGVu IHdlIHJlYWxseSBjYW4ndAo+ID5kbyB0aGF0IGtpbmQgb2YgbGVha3kgbG9ja2luZyBkZXNpZ24u IEltbyB3ZSBzaG91bGQgaGF2ZSBhIGtyZWZfcHV0X211dGV4Cj4gPmNvbnNpZGVyZWQgaGFybWZ1 bCBzaWduIHNvbWV3aGVyZSAuLi4KPiAKPiBJIGdldCB0aGUgYXJndW1lbnQgYWJvdXQgZXZlcnl0 aGluZyB3YW50aW5nIHRvIGFkZCB0aGVpciBvd24gbm90IHNjYWxpbmcsCj4gYnV0IGRvbid0IHRp ZSB3aXRoIHRoZSBsZWFreSBjb21tZW50PyBBbHNvIG11dGV4IGlzIGEgcHJldHR5IHN0YW5kYXJk IHRoaW5nLAo+IGVzcGVjaWFsbHkgc2luY2Uga3JlZl9wdXRfbXV0ZXguIDpEIElmIHlvdSBsb29r IGF0IGl0IGZyb20gdGhhdCBhbmdsZSBpdAo+IGtpbmQgb2YganVzdCBleHBvc2VzIHRvIHRoZSBz dXBlciBjbGFzcyB3aGF0IHRoZSBiYXNlIGNsYXNzIGNhbiBkby4KCmxlYWt5IG5vdCBhcyBpbiBs ZWFraW5nIG1lbW9yeSwgYnV0IGxlYWt5IGFic3RyYWN0aW9uIC0gd2UgaW1wb3NlIGxvY2tpbmcK aW50ZXJuYWxzIGZvciBpOTE1IG9udG8gdXNlcnMgb2YgdGhlIGZlbmNlIGludGVyZmFjZSAoc29t ZXdoYXQgYXQgbGVhc3QpLgo+IAo+ID5JZiB5b3UgaGF2ZSB3ZWFrIHJlZmVyZW5jZXMgc29tZXdo ZXJlIGFuZCBuZWVkIHRvIHByZXZlbnQgdGhlIG9iamVjdCBmcm9tCj4gPmRpc2FwcGVhcmluZyB1 bnRpbWVseSB3aGlsZSBjaGFzaW5nIHRoYXQgd2VhayByZWZlcmVuY2UgdGhlbiBpbW8gdGhlCj4g PmJldHRlciBkZXNpZ24gcGF0dGVybiBpcyB0byB1c2Uga3JlZl9nZXRfdW5sZXNzX3plcm8uIElm IHlvdSBuZWVkIHRoZQo+ID5zZXJpYWxpemF0aW9uIHRoZSBtdXRleCBwcm92aWRlcyBmb3Igc29t ZSBvdGhlciByZWFzb24gKHNvbWVvbmUgaXMgb25seQo+ID5ob2RsaW5nIHRoZSBtdXRleCBpbnN0 ZWFkIG9mIGdyYWJiaW5nIGEgcHJvcGVyIHJlZmVybmNlIHdoZW4gdGhleSByZWFsbHkKPiA+c2hv dWxkIGdyYWIgb25lKSB0aGVuIHlvdXIgcmVmY291bnRpbmcgc2NoZW1lIHByb2JhYmx5IG5lZWRz IGFub3RoZXIga2luZAo+ID5vZiBmaXh1cCBwYXRjaC4KPiAKPiBJIGRvbid0IHNlZSBob3cgd2Vh ayByZWZlcmVuY2VzIGNhbiB3b3JrIHNpbmNlIGlmIHRoZSByZXF1ZXN0IGdvZXMKPiBpbmZvcm1h dGlvbiBpcyBsb3N0LCB1bmxlc3Mgc3RvcmVkIHNvbWV3aGVyZSBlbHNlLgoKU28gd2VhayByZWZl cm5jZSBpcyBhIHBvaW50ZXIgd2hpY2ggZG9lc24ndCBob2xkIGEgcmVmZXJlbmNlIHRvIHRoZSBv YmplY3QKY29udHJvbGxlZCB3aXRoIGtyZWYsIGJ1dCBwcm90ZWN0ZWQgYnkgc29tZSBsb2NrLiBM YXRlc3Qgd2hlbiB0aGUgb2JqZWN0CmlzIGRlc3Ryb3llZCB3ZSBuZWVkIHRvIGNsZWFyIHRoYXQg cG9pbnRlciBpbiB0aGUgZnJlZSBjYWxsYmFjayBvZgprcmVmX3B1dCAoYW5kIHNvIGFsc28gZ3Jh YiB0aGUgbG9jayB0aGF0IHByb3RlY3RzIHRoYXQgcG9pbnRlcikuIFRoZQpwcm9ibGVtIGlzIHRo YXQgYW55b25lIGVsc2UgY2hhc2luZyB0aGF0IHdlYWsgcmVmZXJlbmNlIG1pZ2h0IHJhY2Ugd2l0 aAp0aGUgZmluYWwga3JlZl9wdXQgYW5kIGluY3JlYXNlIHRoZSByZWZjb3VudCBmcm9tIDAgdG8g MSwgd2hpY2ggaXNuJ3QKZ29vZC4KClRoZXJlJ3MgdHdvIHdheXMgdG8gZG8gdGhhdDoKLSBrcmVm X3B1dF9tdXRleCBvbiB0aGUgcmVsZWFzZSBzaWRlLgotIGluIHRoZSBhY3F1aXJlIHNpZGUgZG8g YSBrcmVmX2dldF91bmxlc3NfemVybyBfd2hpbGVfIGhvbGRpbmcgdGhhdCBsb2NrLgoKVHdvIHVw c2lkZXMgb2YgdGhlIGxhdGVyIGFwcHJvYWNoOgotIFlvdSBjYW4gaGF2ZSBhbiB1bnJlc3RyaWN0 ZWQgYW1vdW50IG9mIHdlYWsgcmVmZXJlbmNlcywgZWFjaCBwcm90ZWN0ZWQKICB3aXRoIHRoZWly IG93biBsb2NrLiBrcmVmX3B1dF9tdXRleCBvbmx5IHdvcmtzIHVwIHRvIG9uZS4KLSBJdCBkb2Vz bid0IHNlcmlhbGl6ZSB0aGUgZmluYWwga3JlZl9wdXQgd2l0aCB0aGUgbG9jayAtIGRvaW5nIHRo YXQKICBhbGxvd3MgZm9sa3MgdG8gcmVseSBvbiB0aGUgbXV0ZXggaW5zdGVhZCBvZiBhIHByb3Bl ciByZWZjb3VudCB0byBtYWtlCiAgdGhlIG9iaiBzdGljayBhcm91bmQsIHdoaWNoIGlzIGltbyBh IGRlc2lnbiBhbnRpcGF0dGVybiB0aGF0IEkgc3VmZmVyZWQKICB0aHJvdWdoIHRyeWluZyB0byBj bGVhbmluZyBpdCB1cCBhZ2lhbiBhIGxvdC4KCkJ1dCB0aGF0J3MgcmVhbGx5IGEgdGFuZ2VudCB0 byB0aGUgZGlzY3Vzc2lvbiBoZXJlLCBJIGhhdmUgbm8gaWRlYSB3aGV0aGVyCnRoaXMgYXBwbGll cyBoZXJlIHNpbmNlIEkgZGlkbid0IHJlYWQgeW91ciBwYXRjaCBpbiBkZXRhaWwuCi1EYW5pZWwK LS0gCkRhbmllbCBWZXR0ZXIKU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9uCmh0 dHA6Ly9ibG9nLmZmd2xsLmNoCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50 ZWwtZ2Z4Cg==