From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH] drm/fb_helper: Allow leaking fbdev smem_start Date: Sat, 22 Sep 2018 10:56:17 +0200 Message-ID: <20180922085617.GL11082@phenom.ffwll.local> References: <1537448652-17780-1-git-send-email-narmstrong@baylibre.com> <20180921140740.j7u7etiuqcih5t2m@flea> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wr1-x442.google.com (mail-wr1-x442.google.com [IPv6:2a00:1450:4864:20::442]) by gabe.freedesktop.org (Postfix) with ESMTPS id 63C666E0CB for ; Sat, 22 Sep 2018 08:56:22 +0000 (UTC) Received: by mail-wr1-x442.google.com with SMTP id j15-v6so10880691wrt.8 for ; Sat, 22 Sep 2018 01:56:22 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20180921140740.j7u7etiuqcih5t2m@flea> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Maxime Ripard Cc: Bartlomiej Zolnierkiewicz , Daniel Vetter , Neil Armstrong , dri-devel@lists.freedesktop.org, Christian =?iso-8859-1?Q?K=F6nig?= List-Id: dri-devel@lists.freedesktop.org T24gRnJpLCBTZXAgMjEsIDIwMTggYXQgMDQ6MDc6NDBQTSArMDIwMCwgTWF4aW1lIFJpcGFyZCB3 cm90ZToKPiBIaSwKPiAKPiBPbiBUaHUsIFNlcCAyMCwgMjAxOCBhdCAwMzowNDoxMlBNICswMjAw LCBOZWlsIEFybXN0cm9uZyB3cm90ZToKPiA+IFNpbmNlICJkcm0vZmI6IFN0b3AgbGVha2luZyBw aHlzaWNhbCBhZGRyZXNzIiwgdGhlIGRlZmF1bHQgYmVoYXZpb3VyIG9mCj4gPiB0aGUgRFJNIGZi ZGV2IGVtdWxhdGlvbiBpcyB0byBzZXQgdGhlIHNtZW1fYmFzZSB0byAwIGFuZCBwYXNzIHRoZSBu ZXcKPiA+IEZCSU5GT19ISURFX1NNRU1fU1RBUlQgZmxhZy4KPiA+IAo+ID4gVGhlIG1haW4gcmVh c29uIGlzIHRvIGF2b2lkIGxlYWtpbmcgcGh5c2ljYWwgYWRkcmVzc2UgdG8gdXNlci1zcGFjZSwg YW5kCj4gPiBpdCBmb2xsb3dzIGEgZ2VuZXJhbCBtb3ZlIG92ZXIgdGhlIGtlcm5lbCBjb2RlIHRv IGF2b2lkIHVzZXItc3BhY2UgdG8KPiA+IG1hbmlwdWxhdGUgcGh5c2ljYWwgYWRkcmVzc2VzIGFu ZCB0aGVuIHVzZSBzb21lIG90aGVyIG1lY2hhbmlzbXMgbGlrZQo+ID4gZG1hLWJ1ZiB0byB0cmFu c2ZlciBwaHlzaWNhbCBidWZmZXIgaGFuZGxlcyBvdmVyIG11bHRpcGxlIHN1YnN5c3RlbXMuCj4g PiAKPiA+IEJ1dCwgYSBsb3Qgb2YgZGV2aWNlcyBkZXBlbmRzIG9uIGNsb3NlZCBzb3VyY2VzIGJp bmFyaWVzIHRvIGVuYWJsZQo+ID4gT3BlbkdMIGhhcmR3YXJlIGFjY2VsZXJhdGlvbiB0aGF0IHVz ZXMgdGhpcyBzbWVtX3N0YXJ0IHZhbHVlIHRvCj4gPiBwYXNzIHBoeXNpY2FsIGFkZHJlc3NlcyB0 byBvdXQtb2YtdHJlZSBtb2R1bGVzIGluIG9yZGVyIHRvIHJlbmRlcgo+ID4gaW50byB0aGVzZSBw aHlzaWNhbCBhZHJlc3Nlcy4gVGhlc2Ugc2hvdWxkIHVzZSBkbWEtYnVmIGJ1ZmZlcnMgYWxsb2Nh dGVkCj4gPiBmcm9tIHRoZSBEUk0gZGlzcGxheSBkZXZpY2UgaW5zdGVhZCBhbmQgc3RvcCByZWx5 aW5nIG9uIGZiZGV2IG92ZXJhbGxvY2F0aW9uCj4gPiB0byBnYXRoZXIgRE1BIG1lbW9yeSAoc29t ZSBIVyB2ZW5kb3JzIGRlbGl2ZXJzIEdCTSBhbmQgV2F5bGFuZCBjYXBhYmxlCj4gPiBiaW5hcmll cywgYnV0IG9sZGVyIHVuc3VwcG9ydGVkIGRldmljZXMgd29uJ3QgaGF2ZSB0aGVzZSBuZXcgYmlu YXJpZXMKPiA+IGFuZCBhcmUgZG9vbWVkIHVudGlsIGFuIE9wZW4gU291cmNlIHNvbHV0aW9uIGxp a2UgTGltYSBmaW5hbGl6ZXMpLgo+ID4gCj4gPiBTaW5jZSB0aGVzZSBkZXZpY2VzIGhlYXZpbHkg ZGVwZW5kcyBvbiB0aGlzIGtpbmQgb2Ygc29mdHdhcmUgYW5kIGJlY2F1c2UKPiA+IHRoZSBzbWVt X3N0YXJ0IHBvcHVsYXRpb24gd2FzIGF2YWlsYWJsZSBmb3IgeWVhcnMsIGl0J3MgYSBicmVha2Fn ZSB0bwo+ID4gc3RvcCBsZWFraW5nIHNtZW1fc3RhcnQgd2l0aG91dCBhbnkgYWx0ZXJuYXRpdmUg c29sdXRpb25zLgo+ID4gCj4gPiBUaGlzIHBhdGNoIGFkZHMgYSBLY29uZmlnIGRlcGVuZGluZyBv biB0aGUgRVhQRVJUIGNvbmZpZyBhbmQgYW4gdW5zYWZlCj4gPiBrZXJuZWwgbW9kdWxlIHBhcmFt ZXRlciB0YWludGluZyB0aGUga2VybmVsIHdoZW4gZW5hYmxlZC4KPiA+IAo+ID4gQSBjbGVhciBj b21tZW50IGFuZCBLY29uZmlnIGhlbHAgdGV4dCB3YXMgYWRkZWQgdG8gY2xhcmlmeSB3aHkgYW5k IHdoZW4KPiA+IHRoaXMgcGF0Y2ggc2hvdWxkIGJlIHJldmVydGVkLCBidXQgaW4gdGhlIG1lYW50 aW1lIGl0J3MgYSBuZWNlc3NhcnkKPiA+IGZlYXR1cmUgdG8ga2VlcC4KPiA+IAo+ID4gQ2M6IERh dmUgQWlybGllIDxhaXJsaWVkQGdtYWlsLmNvbT4KPiA+IENjOiBEYW5pZWwgVmV0dGVyIDxkYW5p ZWwudmV0dGVyQGZmd2xsLmNoPgo+ID4gQ2M6IEJhcnRsb21pZWogWm9sbmllcmtpZXdpY3ogPGIu em9sbmllcmtpZUBzYW1zdW5nLmNvbT4KPiA+IENjOiBOb3JhbGYgVHLDuG5uZXMgPG5vcmFsZkB0 cm9ubmVzLm9yZz4KPiA+IENjOiBNYXhpbWUgUmlwYXJkIDxtYXhpbWUucmlwYXJkQGJvb3RsaW4u Y29tPgo+ID4gQ2M6IEVyaWMgQW5ob2x0IDxlcmljQGFuaG9sdC5uZXQ+Cj4gPiBDYzogTHVjYXMg U3RhY2ggPGwuc3RhY2hAcGVuZ3V0cm9uaXguZGU+Cj4gPiBDYzogUm9iIENsYXJrIDxyb2JkY2xh cmtAZ21haWwuY29tPgo+ID4gQ2M6IEJlbiBTa2VnZ3MgPHNrZWdnc2JAZ21haWwuY29tPgo+ID4g Q2M6IENocmlzdGlhbiBLw7ZuaWcgPGNocmlzdGlhbi5rb2VuaWdAYW1kLmNvbT4KPiA+IFNpZ25l ZC1vZmYtYnk6IE5laWwgQXJtc3Ryb25nIDxuYXJtc3Ryb25nQGJheWxpYnJlLmNvbT4KPiA+IC0t LQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9LY29uZmlnICAgICAgICAgfCAxNSArKysrKysrKysrKysr KysKPiA+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jIHwgMzMgKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKy0tCj4gPiAgMiBmaWxlcyBjaGFuZ2VkLCA0NiBpbnNlcnRpb25z KCspLCAyIGRlbGV0aW9ucygtKQo+ID4gCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L0tjb25maWcgYi9kcml2ZXJzL2dwdS9kcm0vS2NvbmZpZwo+ID4gaW5kZXggODg3MWIzZi4uYjA3 YzI5OCAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9LY29uZmlnCj4gPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vS2NvbmZpZwo+ID4gQEAgLTExMCw2ICsxMTAsMjEgQEAgY29uZmlnIERS TV9GQkRFVl9PVkVSQUxMT0MKPiA+ICAJICBpcyAxMDAuIFR5cGljYWwgdmFsdWVzIGZvciBkb3Vi bGUgYnVmZmVyaW5nIHdpbGwgYmUgMjAwLAo+ID4gIAkgIHRyaXBsZSBidWZmZXJpbmcgMzAwLgo+ ID4gIAo+ID4gK2NvbmZpZyBEUk1fRkJERVZfTEVBS19QSFlTX1NNRU0KPiA+ICsJYm9vbCAiU2hh bWVsZXNzbHkgYWxsb3cgbGVha2luZyBvZiBmYmRldiBwaHlzaWNhbCBhZGRyZXNzIChEQU5HRVJP VVMpIgo+ID4gKwlkZXBlbmRzIG9uIERSTV9GQkRFVl9FTVVMQVRJT04gJiYgRVhQRVJUCj4gPiAr CWRlZmF1bHQgbgo+ID4gKwloZWxwCj4gPiArCSAgSW4gb3JkZXIgdG8ga2VlcCB1c2VyLXNwYWNl IGNvbXBhdGliaWxpdHksIHdlIHdhbnQgaW4gY2VydGFpbgo+ID4gKwkgIHVzZS1jYXNlcyB0byBr ZWVwIGxlYWtpbmcgdGhlIGZiZGV2IHBoeXNpY2FsIGFkZHJlc3MgdG8gdGhlCj4gPiArCSAgdXNl ci1zcGFjZSBwcm9ncmFtIGhhbmRsaW5nIHRoZSBmYmRldiBidWZmZXIuCj4gPiArCSAgVGhpcyBv cHRpb24gaXMgYSBzaGFtZSBhbmQgc2hvdWxkIGJlIHJlbW92ZWQgYXMgc29vbiBhcyBwb3NzaWJs ZQo+ID4gKwkgIGFuZCBiZSBjb25zaWRlcmVkIGFzIGEgYnJva2VuIGFuZCBsZWdhY3kgYmVoYXZp b3VyIGZyb20gYSBtb2Rlcm4KPiA+ICsJICBmYmRldiBkZXZpY2UgZHJpdmVyLgoKcy9zaGFtZS9u b3Qgc3VwcG9ydGVkIGJ5IHVwc3RyZWFtIGRldmVsb3BlcnMvCgpBbmQgbWF5YmUgYWRkICJQbGVh c2Ugc2VuZCBhbnkgYnVnIHJlcG9ydHMgd2hlbiB1c2luZyB0aGlzIHRvIHlvdXIKcHJvcHJpZXRh cnkgc29mdHdhcmUgdmVuZG9yIHRoYXQgcmVxdWlyZXMgdGhpcy4iCgpJJ2QgYWxzbyBiZSBpbiBm YXZvdXIgb2YganVzdCBjYWxsaW5nIHRoaXMgdGhlIEFSTSBNYWxpIGJsb2Igb24KJGFmZmVjdGVk X2RldmljZXMuIE1ha2VzIGl0IGVhc2llciBmb3IgcGVvcGxlIHRvIGZpbmQgdGhlIG1hZ2ljIGtu b2IKdGhleSdyZSBsb29raW5nIGZvciwgaWYgdGhleSdyZSB1bmx1Y2t5IGVub3VnaCB0byBoYXZl IHN1Y2ggYSBzb2MuCgo+ID4gKwo+ID4gKwkgIElmIGluIGRvdWJ0LCBzYXkgIk4iIG9yIHNwcmVh ZCB0aGUgd29yZCB0byB5b3VyIGNsb3NlZCBzb3VyY2UKPiA+ICsJICBsaWJyYXJ5IHZlbmRvci4K PiA+ICsKPiA+ICBjb25maWcgRFJNX0xPQURfRURJRF9GSVJNV0FSRQo+ID4gIAlib29sICJBbGxv dyB0byBzcGVjaWZ5IGFuIEVESUQgZGF0YSBzZXQgaW5zdGVhZCBvZiBwcm9iaW5nIGZvciBpdCIK PiA+ICAJZGVwZW5kcyBvbiBEUk0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJt X2ZiX2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYwo+ID4gaW5kZXgg YmYyMTkwYy4uYTM1NDk0NCAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZmJf aGVscGVyLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMKPiA+IEBA IC01Niw2ICs1NiwyNSBAQCBNT0RVTEVfUEFSTV9ERVNDKGRybV9mYmRldl9vdmVyYWxsb2MsCj4g PiAgCQkgIk92ZXJhbGxvY2F0aW9uIG9mIHRoZSBmYmRldiBidWZmZXIgKCUpIFtkZWZhdWx0PSIK PiA+ICAJCSBfX01PRFVMRV9TVFJJTkcoQ09ORklHX0RSTV9GQkRFVl9PVkVSQUxMT0MpICJdIik7 Cj4gPiAgCj4gPiArLyoKPiA+ICsgKiBJbiBvcmRlciB0byBrZWVwIHVzZXItc3BhY2UgY29tcGF0 aWJpbGl0eSwgd2Ugd2FudCBpbiBjZXJ0YWluIHVzZS1jYXNlcwo+ID4gKyAqIHRvIGtlZXAgbGVh a2luZyB0aGUgZmJkZXYgcGh5c2ljYWwgYWRkcmVzcyB0byB0aGUgdXNlci1zcGFjZSBwcm9ncmFt Cj4gPiArICogaGFuZGxpbmcgdGhlIGZiZGV2IGJ1ZmZlci4KPiA+ICsgKiBUaGlzIGlzIGEgYmFk IGhhYml0IGVzc2VudGlhbGx5IGtlcHQgaW50byBjbG9zZWQgc291cmNlIG9wZW5nbCBkcml2ZXIK PiA+ICsgKiB0aGF0IHNob3VsZCByZWFsbHkgYmUgbW92ZWQgaW50byBvcGVuLXNvdXJjZSB1cHN0 cmVhbSBwcm9qZWN0cyBpbnN0ZWFkCj4gPiArICogb2YgdXNpbmcgbGVnYWN5IHBoeXNpY2FsIGFk ZHJlc3NlcyBpbiB1c2VyIHNwYWNlIHRvIGNvbW11bmljYXRlIHdpdGgKPiA+ICsgKiBvdGhlciBv dXQtb2YtdHJlZSBrZXJuZWwgbW9kdWxlcy4KPiA+ICsgKgo+ID4gKyAqIFRoaXMgbW9kdWxlX3Bh cmFtICpzaG91bGQqIGJlIHJlbW92ZWQgYXMgc29vbiBhcyBwb3NzaWJsZSBhbmQgYmUKPiA+ICsg KiBjb25zaWRlcmVkIGFzIGEgYnJva2VuIGFuZCBsZWdhY3kgYmVoYXZpb3VyIGZyb20gYSBtb2Rl cm4gZmJkZXYgZGV2aWNlLgo+ID4gKyAqLwo+ID4gKyNpZiBJU19FTkFCTEVEKENPTkZJR19EUk1f RkJERVZfTEVBS19QSFlTX1NNRU0pCj4gPiArc3RhdGljIGJvb2wgZHJtX2xlYWtfZmJkZXZfc21l bSA9IGZhbHNlOwo+ID4gK21vZHVsZV9wYXJhbV91bnNhZmUoZHJtX2xlYWtfZmJkZXZfc21lbSwg Ym9vbCwgMDYwMCk7Cj4gPiArTU9EVUxFX1BBUk1fREVTQyhmYmRldl9lbXVsYXRpb24sCj4gPiAr CQkgIkFsbG93IHVuc2FmZSBsZWFraW5nIGZiZGV2IHBoeXNpY2FsIHNtZW0gYWRkcmVzcyBbZGVm YXVsdD1mYWxzZV0iKTsKPiA+ICsjZW5kaWYKPiA+ICsKPiA+ICBzdGF0aWMgTElTVF9IRUFEKGtl cm5lbF9mYl9oZWxwZXJfbGlzdCk7Cj4gPiAgc3RhdGljIERFRklORV9NVVRFWChrZXJuZWxfZmJf aGVscGVyX2xvY2spOwo+ID4gIAo+ID4gQEAgLTI2NzMsOCArMjY5MiwxMiBAQCBfX2RybV9mYl9o ZWxwZXJfaW5pdGlhbF9jb25maWdfYW5kX3VubG9jayhzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJf aGVscGVyLAo+ID4gIAo+ID4gIAlpbmZvID0gZmJfaGVscGVyLT5mYmRldjsKPiA+ICAJaW5mby0+ dmFyLnBpeGNsb2NrID0gMDsKPiA+IC0JLyogZG9uJ3QgbGVhayBhbnkgcGh5c2ljYWwgYWRkcmVz c2VzIHRvIHVzZXJzcGFjZSAqLwo+ID4gLQlpbmZvLT5mbGFncyB8PSBGQklORk9fSElERV9TTUVN X1NUQVJUOwo+ID4gKwkvKiBTaGFtZWxlc3NseSBhbGxvdyBwaHlzaWNhbCBhZGRyZXNzIGxlYWtp bmcgdG8gdXNlcnNwYWNlICovCj4gPiArI2lmIElTX0VOQUJMRUQoQ09ORklHX0RSTV9GQkRFVl9M RUFLX1BIWVNfU01FTSkKPiA+ICsJaWYgKCFkcm1fbGVha19mYmRldl9zbWVtKQo+ID4gKyNlbmRp Zgo+IAo+IFlvdSBjYW4gdXNlIHRoZSBJU19FTkFCTEVEIGRpcmVjdHkgd2l0aGluIHRoZSBpZiBz dGF0ZW1lbnQuIEl0IHdvdWxkCj4gbWFrZSB0aGUgY29kZSBhIGJpdCBuaWNlci4KPiAKPiA+ICsJ CS8qIGRvbid0IGxlYWsgYW55IHBoeXNpY2FsIGFkZHJlc3NlcyB0byB1c2Vyc3BhY2UgKi8KPiA+ ICsJCWluZm8tPmZsYWdzIHw9IEZCSU5GT19ISURFX1NNRU1fU1RBUlQ7Cj4gPiAgCj4gPiAgCS8q IE5lZWQgdG8gZHJvcCBsb2NrcyB0byBhdm9pZCByZWN1cnNpdmUgZGVhZGxvY2sgaW4KPiA+ICAJ ICogcmVnaXN0ZXJfZnJhbWVidWZmZXIuIFRoaXMgaXMgb2sgYmVjYXVzZSB0aGUgb25seSB0aGlu ZyBsZWZ0IHRvIGRvIGlzCj4gPiBAQCAtMzA4Myw2ICszMTA2LDEyIEBAIGludCBkcm1fZmJfaGVs cGVyX2dlbmVyaWNfcHJvYmUoc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlciwKPiA+ICAJ ZmJpLT5mYm9wcyA9ICZkcm1fZmJkZXZfZmJfb3BzOwo+ID4gIAlmYmktPnNjcmVlbl9zaXplID0g ZmItPmhlaWdodCAqIGZiLT5waXRjaGVzWzBdOwo+ID4gIAlmYmktPmZpeC5zbWVtX2xlbiA9IGZi aS0+c2NyZWVuX3NpemU7Cj4gPiArCS8qIFNoYW1lbGVzc2x5IGxlYWsgdGhlIHBoeXNpY2FsIGFk ZHJlc3MgdG8gdXNlci1zcGFjZSAqLwo+ID4gKyNpZiBJU19FTkFCTEVEKENPTkZJR19EUk1fRkJE RVZfTEVBS19QSFlTX1NNRU0pCj4gPiArCWlmIChkcm1fbGVha19mYmRldl9zbWVtKQo+ID4gKwkJ ZmJpLT5maXguc21lbV9zdGFydCA9Cj4gPiArCQkJcGFnZV90b19waHlzKHZpcnRfdG9fcGFnZShm YmktPnNjcmVlbl9idWZmZXIpKTsKPiA+ICsjZW5kaWYKPiAKPiBmYmktPnNjcmVlbl9idWZmZXIg aXMgb25seSBzZXQuLgo+IAo+ID4gIAlmYmktPnNjcmVlbl9idWZmZXIgPSBidWZmZXItPnZhZGRy Owo+IAo+IC4uIGF0IHRoZSBuZXh0IGxpbmUuIE1vdmluZyB0aGF0IGxpbmUgYmVmb3JlIHRoZSBp ZiBzdGF0ZW1lbnQgd29ya3MuCj4gCj4gV2l0aCB0aGF0IGZpeGVkLCBhbmQgdGhlIElTX0VOQUJM RUQgaW4gdGhlIGlmCj4gCj4gUmV2aWV3ZWQtYnk6IE1heGltZSBSaXBhcmQgPG1heGltZS5yaXBh cmRAYm9vdGxpbi5jb20+Cj4gVGVzdGVkLWJ5OiBNYXhpbWUgUmlwYXJkIDxtYXhpbWUucmlwYXJk QGJvb3RsaW4uY29tPgoKSSB0aGluayBhbGwgdGhlIGhlbHAgdGV4dCBpcyBzdWZmaWNpZW50bHkg dG8gc2NhcmUgcGVvcGxlIGF3YXkgZnJvbSB1c2luZwp0aGlzIGJ5IGFjY2lkZW50LgoKQWNrZWQt Ynk6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+Cj4gCj4gVGhhbmtzIQo+ IE1heGltZQo+IAo+IC0tIAo+IE1heGltZSBSaXBhcmQsIEJvb3RsaW4KPiBFbWJlZGRlZCBMaW51 eCBhbmQgS2VybmVsIGVuZ2luZWVyaW5nCj4gaHR0cHM6Ly9ib290bGluLmNvbQoKCgotLSAKRGFu aWVsIFZldHRlcgpTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KaHR0cDovL2Js b2cuZmZ3bGwuY2gKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs Cg==