From mboxrd@z Thu Jan 1 00:00:00 1970 From: Manasi Navare Subject: Re: [PATCH v8 10/19] drm/i915/dsc: Compute Rate Control parameters for DSC Date: Tue, 6 Nov 2018 08:52:41 -0800 Message-ID: <20181106165240.GC18274@intel.com> References: <20181102213138.301-1-manasi.d.navare@intel.com> <20181102213138.301-11-manasi.d.navare@intel.com> <20181106143338.GV9144@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20181106143338.GV9144@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Cc: intel-gfx@lists.freedesktop.org, Gaurav K Singh , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gVHVlLCBOb3YgMDYsIDIwMTggYXQgMDQ6MzM6MzhQTSArMDIwMCwgVmlsbGUgU3lyasOkbMOk IHdyb3RlOgo+IE9uIEZyaSwgTm92IDAyLCAyMDE4IGF0IDAyOjMxOjI5UE0gLTA3MDAsIE1hbmFz aSBOYXZhcmUgd3JvdGU6Cj4gPiBGcm9tOiBHYXVyYXYgSyBTaW5naCA8Z2F1cmF2Lmsuc2luZ2hA aW50ZWwuY29tPgo+ID4gCj4gPiBUaGlzIGNvbXB1dGF0aW9uIG9mIFJDIHBhcmFtcyBoYXBwZW5z IGluIHRoZSBhdG9taWMgY29tbWl0IHBoYXNlCj4gPiBkdXJpbmcgY29tcHV0ZV9jb25maWcoKSB0 byB2YWxpZGF0ZSBpZiBkaXNwbGF5IHN0cmVhbSBjb21wcmVzc2lvbgo+ID4gY2FuIGJlIGVuYWJs ZWQgZm9yIHRoZSByZXF1ZXN0ZWQgbW9kZS4KPiA+IAo+ID4gdjcgKEZyb20gTWFuYXNpKToKPiA+ ICogVXNlIERSTV9ERUJVRyBpbnN0ZWFkIG9mIERSTV9FUlJPUiAoVmlsbGUpCj4gPiAqIFVzZSBF cnJvciBudW1iZXJpbnN0ZWFkIG9mIC0xIChWaWxsZSkKPiA+IHY2IChGcm9tIE1hbmFzaSk6Cj4g PiAqIFVzZSA5IGluc3RlYWQgb2YgMHg5IGZvciBjb25zaXN0ZW5jeSAoQW51c2hhKQo+ID4gCj4g PiB2NSAoRnJvbSBNYW5hc2kpOgo+ID4gKiBGaXggZGltIGNoZWNrcGF0Y2ggd2FybmluZ3MvY2hl Y2tzCj4gPiB2NChGcm9tIEdhdXJhdik6Cj4gPiAqIE5vIGNoYW5nZS5SZWJhc2Ugb24gZHJtLXRp cAo+ID4gCj4gPiB2MyAoRnJvbSBHYXVyYXYpOgo+ID4gKiBSZWJhc2Ugb24gdG9wIG9mIE1hbmFz aSdzIGxhdGVzdCBzZXJpZXMKPiA+ICogUmV0dXJuIC12ZSB2YWx1ZSBpbiBjYXNlIG9mIGZhaWx1 cmUgc2NlbmFyaW9zIChNYW5hc2kpCj4gPiAKPiA+IEZpeCByZXZpZXcgY29tbWVudHMgZnJvbSBW aWxsZToKPiA+ICogUmVtb3ZlIHVubmVjZXNzYXJ5IGNvbW1lbnRzCj4gPiAqIFJlbW92ZSB1bm5l Y2Vzc2FyeSBwYXJhbnRoZXNpcwo+ID4gKiBBZGQgY29tbWVudHMgZm9yIGZldyBSQyBwYXJhbXMg Y2FsY3VsYXRpb25zCj4gPiAKPiA+IHYyIChGcm9tIE1hbmFzaSk6Cj4gPiAqIFJlYmFzZSBHYXVy YXYncyBwYXRjaCBmcm9tIGludGVsLWdmeCB0byBnZngtaW50ZXJuYWwKPiA+ICogVXNlIHN0cnVj dCBkcm1fZHNjX2NmZyBpbnN0ZWFkIG9mIHN0cnVjdCBpbnRlbF9kcAo+ID4gYXMgYSBwYXJhbWV0 ZXIKPiA+IAo+ID4gQ2M6IE1hbmFzaSBOYXZhcmUgPG1hbmFzaS5kLm5hdmFyZUBpbnRlbC5jb20+ Cj4gPiBDYzogSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGxpbnV4LmludGVsLmNvbT4KPiA+IENj OiBWaWxsZSBTeXJqYWxhIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiA+IFNpZ25l ZC1vZmYtYnk6IEdhdXJhdiBLIFNpbmdoIDxnYXVyYXYuay5zaW5naEBpbnRlbC5jb20+Cj4gPiBT aWduZWQtb2ZmLWJ5OiBNYW5hc2kgTmF2YXJlIDxtYW5hc2kuZC5uYXZhcmVAaW50ZWwuY29tPgo+ ID4gUmV2aWV3ZWQtYnk6IEFudXNoYSBTcml2YXRzYSA8YW51c2hhLnNyaXZhdHNhQGludGVsLmNv bT4KPiA+IC0tLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Zkc2MuYyB8IDEyNyAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiA+ICAxIGZpbGUgY2hhbmdlZCwgMTI3IGlu c2VydGlvbnMoKykKPiA+IAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3Zkc2MuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Zkc2MuYwo+ID4gaW5kZXgg MGExOTE4ZjJmNjQzLi5hNzZmNzhiOWMwZWUgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF92ZHNjLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3Zkc2MuYwo+ID4gQEAgLTMxNyw2ICszMTcsMTMwIEBAIHN0YXRpYyBpbnQgZ2V0X2NvbHVtbl9p bmRleF9mb3JfcmNfcGFyYW1zKHU4IGJpdHNfcGVyX2NvbXBvbmVudCkKPiA+ICAJfQo+ID4gIH0K PiA+ICAKPiA+ICtzdGF0aWMgaW50IGludGVsX2NvbXB1dGVfcmNfcGFyYW1ldGVycyhzdHJ1Y3Qg ZHJtX2RzY19jb25maWcgKnZkc2NfY2ZnKQo+ID4gK3sKPiA+ICsJdW5zaWduZWQgbG9uZyBncm91 cHNfcGVyX2xpbmUgPSAwOwo+ID4gKwl1bnNpZ25lZCBsb25nIGdyb3Vwc190b3RhbCA9IDA7Cj4g PiArCXVuc2lnbmVkIGxvbmcgbnVtX2V4dHJhX211eF9iaXRzID0gMDsKPiA+ICsJdW5zaWduZWQg bG9uZyBzbGljZV9iaXRzID0gMDsKPiA+ICsJdW5zaWduZWQgbG9uZyBocmRfZGVsYXkgPSAwOwo+ ID4gKwl1bnNpZ25lZCBsb25nIGZpbmFsX3NjYWxlID0gMDsKPiA+ICsJdW5zaWduZWQgbG9uZyBy YnNfbWluID0gMDsKPiA+ICsKPiA+ICsJLyogTnVtYmVyIG9mIGdyb3VwcyB1c2VkIHRvIGNvZGUg ZWFjaCBsaW5lIG9mIGEgc2xpY2UgKi8KPiA+ICsJZ3JvdXBzX3Blcl9saW5lID0gRElWX1JPVU5E X1VQKHZkc2NfY2ZnLT5zbGljZV93aWR0aCwKPiA+ICsJCQkJICAgICAgIERTQ19SQ19QSVhFTFNf UEVSX0dST1VQKTsKPiA+ICsKPiA+ICsJLyogY2h1bmtzaXplIGluIEJ5dGVzICovCj4gPiArCXZk c2NfY2ZnLT5zbGljZV9jaHVua19zaXplID0gRElWX1JPVU5EX1VQKHZkc2NfY2ZnLT5zbGljZV93 aWR0aCAqCj4gPiArCQkJCQkJICB2ZHNjX2NmZy0+Yml0c19wZXJfcGl4ZWwsCj4gPiArCQkJCQkJ ICAoOCAqIDE2KSk7Cj4gPiArCj4gPiArCWlmICh2ZHNjX2NmZy0+Y29udmVydF9yZ2IpCj4gPiAr CQludW1fZXh0cmFfbXV4X2JpdHMgPSAzICogKHZkc2NfY2ZnLT5tdXhfd29yZF9zaXplICsKPiA+ ICsJCQkJCSAgKDQgKiB2ZHNjX2NmZy0+Yml0c19wZXJfY29tcG9uZW50ICsgNCkKPiA+ICsJCQkJ CSAgLSAyKTsKPiA+ICsJZWxzZQo+ID4gKwkJbnVtX2V4dHJhX211eF9iaXRzID0gMyAqIHZkc2Nf Y2ZnLT5tdXhfd29yZF9zaXplICsKPiA+ICsJCQkoNCAqIHZkc2NfY2ZnLT5iaXRzX3Blcl9jb21w b25lbnQgKyA0KSArCj4gPiArCQkJMiAqICg0ICogdmRzY19jZmctPmJpdHNfcGVyX2NvbXBvbmVu dCkgLSAyOwo+ID4gKwkvKiBOdW1iZXIgb2YgYml0cyBpbiBvbmUgU2xpY2UgKi8KPiA+ICsJc2xp Y2VfYml0cyA9IDggKiB2ZHNjX2NmZy0+c2xpY2VfY2h1bmtfc2l6ZSAqIHZkc2NfY2ZnLT5zbGlj ZV9oZWlnaHQ7Cj4gPiArCj4gPiArCXdoaWxlICgobnVtX2V4dHJhX211eF9iaXRzID4gMCkgJiYK PiA+ICsJICAgICAgICgoc2xpY2VfYml0cyAtIG51bV9leHRyYV9tdXhfYml0cykgJSB2ZHNjX2Nm Zy0+bXV4X3dvcmRfc2l6ZSkpCj4gPiArCQludW1fZXh0cmFfbXV4X2JpdHMtLTsKPiA+ICsKPiA+ ICsJaWYgKGdyb3Vwc19wZXJfbGluZSA8IHZkc2NfY2ZnLT5pbml0aWFsX3NjYWxlX3ZhbHVlIC0g OCkKPiA+ICsJCXZkc2NfY2ZnLT5pbml0aWFsX3NjYWxlX3ZhbHVlID0gZ3JvdXBzX3Blcl9saW5l ICsgODsKPiA+ICsKPiA+ICsJLyogc2NhbGVfZGVjcmVtZW50X2ludGVydmFsIGNhbGN1bGF0aW9u IGFjY29yZGluZyB0byBEU0Mgc3BlYyAxLjExICovCj4gPiArCWlmICh2ZHNjX2NmZy0+aW5pdGlh bF9zY2FsZV92YWx1ZSA+IDgpCj4gPiArCQl2ZHNjX2NmZy0+c2NhbGVfZGVjcmVtZW50X2ludGVy dmFsID0gZ3JvdXBzX3Blcl9saW5lIC8KPiA+ICsJCQkodmRzY19jZmctPmluaXRpYWxfc2NhbGVf dmFsdWUgLSA4KTsKPiA+ICsJZWxzZQo+ID4gKwkJdmRzY19jZmctPnNjYWxlX2RlY3JlbWVudF9p bnRlcnZhbCA9IERTQ19TQ0FMRV9ERUNSRU1FTlRfSU5URVJWQUxfTUFYOwo+ID4gKwo+ID4gKwl2 ZHNjX2NmZy0+ZmluYWxfb2Zmc2V0ID0gdmRzY19jZmctPnJjX21vZGVsX3NpemUgLQo+ID4gKwkJ KHZkc2NfY2ZnLT5pbml0aWFsX3htaXRfZGVsYXkgKgo+ID4gKwkJIHZkc2NfY2ZnLT5iaXRzX3Bl cl9waXhlbCArIDgpIC8gMTYgKyBudW1fZXh0cmFfbXV4X2JpdHM7Cj4gPiArCj4gPiArCWlmICh2 ZHNjX2NmZy0+ZmluYWxfb2Zmc2V0ID49IHZkc2NfY2ZnLT5yY19tb2RlbF9zaXplKSB7Cj4gPiAr CQlEUk1fREVCVUdfS01TKCJGaW5hbE9mcyA8IFJjTW9kZWxTemUgZm9yIHRoaXMgSW5pdGlhbFht aXREZWxheVxuIik7Cj4gPiArCQlyZXR1cm4gLUVJTlZBTDsKPiA+ICsJfQo+ID4gKwo+ID4gKwlm aW5hbF9zY2FsZSA9ICh2ZHNjX2NmZy0+cmNfbW9kZWxfc2l6ZSAqIDgpIC8KPiA+ICsJCSh2ZHNj X2NmZy0+cmNfbW9kZWxfc2l6ZSAtIHZkc2NfY2ZnLT5maW5hbF9vZmZzZXQpOwo+ID4gKwlpZiAo dmRzY19jZmctPnNsaWNlX2hlaWdodCA+IDEpCj4gPiArCQkvKgo+ID4gKwkJICogTmZsQnBnT2Zm c2V0IGlzIDE2IGJpdCB2YWx1ZSB3aXRoIDExIGZyYWN0aW9uYWwgYml0cwo+ID4gKwkJICogaGVu Y2Ugd2UgbXVsdGlwbHkgYnkgMl4xMSBmb3IgcHJlc2VydmluZyB0aGUKPiA+ICsJCSAqIGZyYWN0 aW9uYWwgcGFydAo+ID4gKwkJICovCj4gPiArCQl2ZHNjX2NmZy0+bmZsX2JwZ19vZmZzZXQgPSBE SVZfUk9VTkRfVVAoKHZkc2NfY2ZnLT5maXJzdF9saW5lX2JwZ19vZmZzZXQgPDwgMTEpLAo+ID4g KwkJCQkJCQkodmRzY19jZmctPnNsaWNlX2hlaWdodCAtIDEpKTsKPiA+ICsJZWxzZQo+ID4gKwkJ dmRzY19jZmctPm5mbF9icGdfb2Zmc2V0ID0gMDsKPiA+ICsKPiA+ICsJLyogMl4xNiAtIDEgKi8K PiA+ICsJaWYgKHZkc2NfY2ZnLT5uZmxfYnBnX29mZnNldCA+IDY1NTM1KSB7Cj4gPiArCQlEUk1f REVCVUdfS01TKCJOZmxCcGdPZmZzZXQgaXMgdG9vIGxhcmdlIGZvciB0aGlzIHNsaWNlIGhlaWdo dFxuIik7Cj4gPiArCQlyZXR1cm4gLUVJTlZBTDsKPiA+ICsJfQo+ID4gKwo+ID4gKwkvKiBOdW1i ZXIgb2YgZ3JvdXBzIHVzZWQgdG8gY29kZSB0aGUgZW50aXJlIHNsaWNlICovCj4gPiArCWdyb3Vw c190b3RhbCA9IGdyb3Vwc19wZXJfbGluZSAqIHZkc2NfY2ZnLT5zbGljZV9oZWlnaHQ7Cj4gPiAr Cj4gPiArCS8qIHNsaWNlX2JwZ19vZmZzZXQgaXMgMTYgYml0IHZhbHVlIHdpdGggMTEgZnJhY3Rp b25hbCBiaXRzICovCj4gPiArCXZkc2NfY2ZnLT5zbGljZV9icGdfb2Zmc2V0ID0gRElWX1JPVU5E X1VQKCgodmRzY19jZmctPnJjX21vZGVsX3NpemUgLQo+ID4gKwkJCQkJCSAgICB2ZHNjX2NmZy0+ aW5pdGlhbF9vZmZzZXQgKwo+ID4gKwkJCQkJCSAgICBudW1fZXh0cmFfbXV4X2JpdHMpIDw8IDEx KSwKPiA+ICsJCQkJCQkgIGdyb3Vwc190b3RhbCk7Cj4gPiArCj4gPiArCWlmIChmaW5hbF9zY2Fs ZSA+IDkpIHsKPiA+ICsJCS8qCj4gPiArCQkgKiBTY2FsZUluY3JlbWVudEludGVydmFsID0KPiA+ ICsJCSAqIGZpbmFsb2Zmc2V0LygoTmZsQnBnT2Zmc2V0ICsgU2xpY2VCcGdPZmZzZXQpKjgoZmlu YWxzY2FsZSAtIDEuMTI1KSkKPiA+ICsJCSAqIGFzIChOZmxCcGdPZmZzZXQgKyBTbGljZUJwZ09m ZnNldCkgaGFzIDExIGJpdCBmcmFjdGlvbmFsIHZhbHVlLAo+ID4gKwkJICogd2UgbmVlZCBkaXZp ZGUgYnkgMl4xMSBmcm9tIHBzdERzY0NmZyB2YWx1ZXMKPiA+ICsJCSAqLwo+ID4gKwkJdmRzY19j ZmctPnNjYWxlX2luY3JlbWVudF9pbnRlcnZhbCA9Cj4gPiArCQkJCSh2ZHNjX2NmZy0+ZmluYWxf b2Zmc2V0ICogKDEgPDwgMTEpKSAvCj4gPiArCQkJCSgodmRzY19jZmctPm5mbF9icGdfb2Zmc2V0 ICsKPiA+ICsJCQkJdmRzY19jZmctPnNsaWNlX2JwZ19vZmZzZXQpKgo+ID4gKwkJCQkoZmluYWxf c2NhbGUgLSA5KSk7Cj4gPiArCX0gZWxzZSB7Cj4gPiArCQkvKgo+ID4gKwkJICogSWYgZmluYWxT Y2FsZVZhbHVlIGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byA5LCBhIHZhbHVlIG9mIDAgc2hvdWxk Cj4gPiArCQkgKiBiZSB1c2VkIHRvIGRpc2FibGUgdGhlIHNjYWxlIGluY3JlbWVudCBhdCB0aGUg ZW5kIG9mIHRoZSBzbGljZQo+ID4gKwkJICovCj4gPiArCQl2ZHNjX2NmZy0+c2NhbGVfaW5jcmVt ZW50X2ludGVydmFsID0gMDsKPiA+ICsJfQo+ID4gKwo+ID4gKwlpZiAodmRzY19jZmctPnNjYWxl X2luY3JlbWVudF9pbnRlcnZhbCA+IDY1NTM1KSB7Cj4gPiArCQlEUk1fREVCVUdfS01TKCJTY2Fs ZUluY3JlbWVudEludGVydmFsIGlzIGxhcmdlIGZvciBzbGljZSBoZWlnaHRcbiIpOwo+ID4gKwkJ cmV0dXJuIC1FSU5WQUw7Cj4gPiArCX0KPiA+ICsKPiA+ICsJLyoKPiA+ICsJICogRFNDIHNwZWMg bWVudGlvbnMgdGhhdCBiaXRzX3Blcl9waXhlbCBzcGVjaWZpZXMgdGhlIHRhcmdldAo+ID4gKwkg KiBiaXRzL3BpeGVsIChicHApIHJhdGUgdGhhdCBpcyB1c2VkIGJ5IHRoZSBlbmNvZGVyLAo+ID4g KwkgKiBpbiBzdGVwcyBvZiAxLzE2IG9mIGEgYml0IHBlciBwaXhlbAo+ID4gKwkgKi8KPiA+ICsJ cmJzX21pbiA9IHZkc2NfY2ZnLT5yY19tb2RlbF9zaXplIC0gdmRzY19jZmctPmluaXRpYWxfb2Zm c2V0ICsKPiA+ICsJCURJVl9ST1VORF9VUCh2ZHNjX2NmZy0+aW5pdGlhbF94bWl0X2RlbGF5ICoK PiA+ICsJCQkgICAgIHZkc2NfY2ZnLT5iaXRzX3Blcl9waXhlbCwgMTYpICsKPiA+ICsJCWdyb3Vw c19wZXJfbGluZSAqIHZkc2NfY2ZnLT5maXJzdF9saW5lX2JwZ19vZmZzZXQ7Cj4gPiArCj4gPiAr CWhyZF9kZWxheSA9IERJVl9ST1VORF9VUCgocmJzX21pbiAqIDE2KSwgdmRzY19jZmctPmJpdHNf cGVyX3BpeGVsKTsKPiA+ICsJdmRzY19jZmctPnJjX2JpdHMgPSAoaHJkX2RlbGF5ICogdmRzY19j ZmctPmJpdHNfcGVyX3BpeGVsKSAvIDE2Owo+ID4gKwl2ZHNjX2NmZy0+aW5pdGlhbF9kZWNfZGVs YXkgPSBocmRfZGVsYXkgLSB2ZHNjX2NmZy0+aW5pdGlhbF94bWl0X2RlbGF5Owo+ID4gKwo+ID4g KwlyZXR1cm4gMDsKPiA+ICt9Cj4gPiArCj4gPiArCj4gPiAgaW50IGludGVsX2RwX2NvbXB1dGVf ZHNjX3BhcmFtcyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ID4gIAkJCQlzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpCj4gPiAgewo+ID4gQEAgLTQ1MSw1ICs1NzUsOCBA QCBpbnQgaW50ZWxfZHBfY29tcHV0ZV9kc2NfcGFyYW1zKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxf ZHAsCj4gPiAgCXZkc2NfY2ZnLT5pbml0aWFsX3NjYWxlX3ZhbHVlID0gKHZkc2NfY2ZnLT5yY19t b2RlbF9zaXplIDw8IDMpIC8KPiA+ICAJCSh2ZHNjX2NmZy0+cmNfbW9kZWxfc2l6ZSAtIHZkc2Nf Y2ZnLT5pbml0aWFsX29mZnNldCk7Cj4gPiAgCj4gPiArCWlmIChpbnRlbF9jb21wdXRlX3JjX3Bh cmFtZXRlcnModmRzY19jZmcpIDwgMCkKPiA+ICsJCXJldHVybiAtRUlOVkFMOwo+IAo+IE9uZSBz aG91bGQgcHJldHR5IG11Y2ggYWx3YXlzIHBhc3Mgb24gdGhlIGVycm5vIHJhdGhlciB0aGFuIGlu dmVudGluZyBhCj4gbmV3IG9uZSBvbiB0aGUgc3BvdC4KCkJ1dCBjb21wdXRlX3JjX3BhcmFtZXRl cnMoKSBmdW5jdGlvbiByZXR1cm5zIEVJTlZBTCBldmVyeXdoZXJlIGZvciBlcnJvciBjYXNlcwoK TWFuYXNpCgo+IAo+ID4gKwo+ID4gIAlyZXR1cm4gMDsKPiA+ICB9Cj4gPiAtLSAKPiA+IDIuMTgu MAo+IAo+IC0tIAo+IFZpbGxlIFN5cmrDpGzDpAo+IEludGVsCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRl dmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=