Re: [libre-riscv-dev] cache SRAM organisation
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Wed, 25 Mar 2020 12:33:24 +0000 (12:33 +0000)
committerlibre-riscv-dev <libre-riscv-dev@lists.libre-riscv.org>
Wed, 25 Mar 2020 12:33:57 +0000 (12:33 +0000)
9a/b1ba6229d4be5f35993944c2bacb205527b2fc [new file with mode: 0644]

diff --git a/9a/b1ba6229d4be5f35993944c2bacb205527b2fc b/9a/b1ba6229d4be5f35993944c2bacb205527b2fc
new file mode 100644 (file)
index 0000000..425499c
--- /dev/null
@@ -0,0 +1,161 @@
+Return-path: <libre-riscv-dev-bounces@lists.libre-riscv.org>
+Envelope-to: publicinbox@libre-riscv.org
+Delivery-date: Wed, 25 Mar 2020 12:33:58 +0000
+Received: from localhost ([::1] helo=libre-riscv.org)
+       by libre-riscv.org with esmtp (Exim 4.89)
+       (envelope-from <libre-riscv-dev-bounces@lists.libre-riscv.org>)
+       id 1jH5EL-0007W7-Oa; Wed, 25 Mar 2020 12:33:57 +0000
+Received: from lkcl.net ([217.147.94.29])
+ by libre-riscv.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
+ (Exim 4.89) (envelope-from <lkcl@lkcl.net>) id 1jH5EK-0007W1-QT
+ for libre-riscv-dev@lists.libre-riscv.org; Wed, 25 Mar 2020 12:33:56 +0000
+DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lkcl.net;
+ s=201607131; 
+ h=Content-Type:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version;
+ bh=Ck7VcDMNlKmaZWVuZM5VaaE1vKNAMiYC6/hzq75vb6o=; 
+ b=ChCXXM7Doe1kuEsu/L9ytJpOBg9MOVUt9NBHUb8B1PTL+QeuAzv65RrsLx77jrF2m15ePt/wW0GXa9K8YEsqTmgN6SJGiR4KCRHVhOZ3OWG5ZWyJYLJKnQ8ek8KImujV2nYjZhFV7v60wENCtrVZcxfrZLWapk+wF7CPMXJumNQ=;
+Received: from mail-lj1-f174.google.com ([209.85.208.174])
+ by lkcl.net with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
+ (Exim 4.84_2) (envelope-from <lkcl@lkcl.net>) id 1jH5EK-0007om-Dw
+ for libre-riscv-dev@lists.libre-riscv.org; Wed, 25 Mar 2020 12:33:56 +0000
+Received: by mail-lj1-f174.google.com with SMTP id p10so2017701ljn.1
+ for <libre-riscv-dev@lists.libre-riscv.org>;
+ Wed, 25 Mar 2020 05:33:41 -0700 (PDT)
+X-Gm-Message-State: ANhLgQ3vAzUOzJSm7gNTdTWLavirRwxxf4+es2w1WKjdp5g8670s55+J
+ x7mgWsA6pgE1dclE4zMvYrrL8TbQhAV9JqwufH8=
+X-Google-Smtp-Source: APiQypKDtQA3WnnPoLZmhJieBsUk9se5UrYBJqb4j+JHJjsVPd8tlQr2hGgWn8BFtRQypzXRITa+pA16msocUeqCR1E=
+X-Received: by 2002:a05:651c:1068:: with SMTP id
+ y8mr1868835ljm.191.1585139615560; 
+ Wed, 25 Mar 2020 05:33:35 -0700 (PDT)
+MIME-Version: 1.0
+References: <CAPweEDx5QCCKxSr1gfuyuw_2D68Ld8fK85bEmmMTZi8S3w2E9g@mail.gmail.com>
+ <29b1a9ecedda151dc9c8da6516c3691dfede62ef.camel@fibraservi.eu>
+In-Reply-To: <29b1a9ecedda151dc9c8da6516c3691dfede62ef.camel@fibraservi.eu>
+From: Luke Kenneth Casson Leighton <lkcl@lkcl.net>
+Date: Wed, 25 Mar 2020 12:33:24 +0000
+X-Gmail-Original-Message-ID: <CAPweEDwfqMczPjg=5Fvt1J_S8nx1YK44XhyBY8H1abuTNF6=xg@mail.gmail.com>
+Message-ID: <CAPweEDwfqMczPjg=5Fvt1J_S8nx1YK44XhyBY8H1abuTNF6=xg@mail.gmail.com>
+To: Libre-RISCV General Development <libre-riscv-dev@lists.libre-riscv.org>
+X-Content-Filtered-By: Mailman/MimeDel 2.1.23
+Subject: Re: [libre-riscv-dev] cache SRAM organisation
+X-BeenThere: libre-riscv-dev@lists.libre-riscv.org
+X-Mailman-Version: 2.1.23
+Precedence: list
+List-Id: Libre-RISCV General Development
+ <libre-riscv-dev.lists.libre-riscv.org>
+List-Unsubscribe: <http://lists.libre-riscv.org/mailman/options/libre-riscv-dev>, 
+ <mailto:libre-riscv-dev-request@lists.libre-riscv.org?subject=unsubscribe>
+List-Archive: <http://lists.libre-riscv.org/pipermail/libre-riscv-dev/>
+List-Post: <mailto:libre-riscv-dev@lists.libre-riscv.org>
+List-Help: <mailto:libre-riscv-dev-request@lists.libre-riscv.org?subject=help>
+List-Subscribe: <http://lists.libre-riscv.org/mailman/listinfo/libre-riscv-dev>, 
+ <mailto:libre-riscv-dev-request@lists.libre-riscv.org?subject=subscribe>
+Reply-To: Libre-RISCV General Development
+ <libre-riscv-dev@lists.libre-riscv.org>
+Content-Type: text/plain; charset="utf-8"
+Content-Transfer-Encoding: base64
+Errors-To: libre-riscv-dev-bounces@lists.libre-riscv.org
+Sender: "libre-riscv-dev" <libre-riscv-dev-bounces@lists.libre-riscv.org>
+
+T24gV2VkbmVzZGF5LCBNYXJjaCAyNSwgMjAyMCwgU3RhZiBWZXJoYWVnZW4gPHN0YWZAZmlicmFz
+ZXJ2aS5ldT4gd3JvdGU6Cgo+IExpYnJlLVNPQyBkZXZlbG9wZXJzLAo+Cj4gVGhhdCBkaXNjdXNz
+aW9uIGlzIG1haW5seSBvbiBzeXN0ZW0gbGV2ZWwgYW5kIEkgZG9uJ3Qgd2FudCB0byBnZXQgdG9v
+IGRlZXAKPiBpbnRvIHRoaXMgYXMgSSBkb24ndCBoYXZlIHRpbWUgZm9yIHRoYXQuCj4KCmltcGxp
+Y2l0bHkgdW5kZXJzdG9vZCwgaXQncyB3aHkgaSBsaW5rZWQgdG8gdGhlICh0d28pIHJlbGV2YW50
+IGRpc2N1c3Npb25zCmluIHdoaWNoIE1pdGNoIG1lbnRpb25lZCBDYWNoZSBTUkFNIGRlc2lnbiwg
+YW5kIHN1bW1hcmlzZWQuCgppZiB5b3UgYXJlIGJ1c3ksIG5vIG5lZWQgdG8gcmVwbHkgYmVsb3cs
+IGl0IGlzIG1vc3RseSAiaW5mb3JtYXRpdmUiIGZvcgpvdGhlciByZWFkZXJzLgoKCj4gSSBhbSBw
+cm92aWRpbmcgdGhlIFNSQU0gYmxvY2tzIGFuZCB0aGVuIGl0IGlzIHVwIHRvIHRoZSBzeXN0ZW0g
+Z3V5cyB0byBzZWUKPiBob3cgdGhleSB1c2UgdGhlbS4gSW4gdGhpcyBjYXNlIHlvdSBndXlzIChs
+aWJyZS1zb2MgKyBMSVA2KSBhcmUgdGhlIHN5c3RlbQo+IGd1eXMuCj4KCmFwcHJlY2lhdGVkIGFu
+ZCBhY2NlcHRlZC4KCgo+IE9uIEFTSUNzIGNvbW1vbmx5IHRocmVlIHR5cGVzIG9mIFNSQU0gYXJl
+IHByb3ZpZGVkOiBhIHNpbmdsZSBwb3J0IFJBTSwgYQo+IDItcG9ydCBSQU0gYW5kIGEgZHVhbCBw
+b3J0IFJBTS4gQ3VycmVudGx5IGZvciBOTE5ldCBvbmx5IGEgc2luZ2xlIHBvcnQgU1JBTQo+IGlz
+IGZvcmVzZWVuIGFzIHRoaXMgaXMgdGhlIG1vc3QgY29tbW9uLCB0aGUgc21hbGxlc3QgaW4gYXJl
+YSBwZXIgYml0IGFuZAo+IHRoZSBmYXN0ZXN0Lgo+Cgp5ZXMuICBpIGRlZHVjZWQgdGhhdCBmcm9t
+IE1pdGNoJ3MgZGVzY3JpcHRpb246IGFwcHJlY2lhdGUgdGhlIHN1bW1hcnkuCgoKPiBBIHNpbmds
+ZSBwb3J0IFNSQU0gaGFzIG9uZSBwb3J0IHdoZXJlIHlvdSBjYW4gZG8gYSByZWFkIG9yIGEgd3Jp
+dGUgZWFjaAo+IGNsb2NrIGN5Y2xlLiBUaGUgMi1wb3J0IG9uZSBoYXMgb25lIHJlYWQgcG9ydCBh
+bmQgb25lIHdyaXRlIHBvcnQgc28geW91IGNhbgo+IGRvIGEgcmVhZCBhbmQgd3JpdGUgZWFjaCBj
+bG9jayBjeWNsZS4gVGhlIGR1YWwgcG9ydCBvbmUgbm93IGhhcyB0d28gcG9ydHMKPiB0aGF0IGVh
+Y2ggY2FuIGRvIGEgcmVhZCBvciB3cml0ZSBlYWNoIGNsb2NrIGN5Y2xlLiBTbyB5b3UgY2FuIGRv
+IHR3byByZWFkcywKPiB0d28gd3JpdGUgb3IgYSByZWFkK3dyaXRlIGVhY2ggY2xvY2sgY3ljbGUu
+Cj4gRm9yIGVhY2ggb2YgdGhlbSB5b3UgY2FuIGhhdmUgYSBzeW5jaHJvbm91cyBvciBhbiBhc3lu
+Y2hyb25vdXMgdmVyc2lvbi4gQQo+IHN5bmNocm9ub3VzIFJBTSBoYXMgYSBjbG9jayBpbnB1dCBh
+bmQgdGhlIGFkZHJlc3MgYW5kIGRhdGEgaW5wdXRzIGFyZQo+IGxhdGNoZWQgb24gdGhhdCBjbG9j
+ayBzaWduYWwuIEl0IHRodXMgbWVhbnMgdGhhdCB0aGUgRkZzIGFyZSBpbnRlZ3JhdGVkIGluCj4g
+dGhlIFNSQU0sIGUuZy4gdGh1cyB2ZXJ5IGNsb3NlIDopIC4gVGhlIFJBTSBjdXJyZW50bHkgYmVp
+bmcgZGV2ZWxvcGVkIGluIG15Cj4gTkxOZXQgcHJvamVjdCBpcyBhIHN5bmNocm9ub3VzIFNSQU0g
+YXMgdGhpcyBpcyBlYXNpZXIgZnJvbSB0aW1pbmcgcG9pbnQgb2YKPiB2aWV3IGJlY2F1c2UgYWxs
+IHRoZSB0aW1pbmcgY2FuIGJlIHJlbGF0ZWQgdG8gdGhlIGNsb2NrLiBBIHN5bmNocm9ub3VzIFJB
+TQo+IGFjdHVhbGx5IGZ1bmN0aW9ucyBhcyBhbiBhZGRyZXNzYWJsZSBidW5jaCBvZiBGRnMgYW5k
+IHRoZSBzeW50aGVzaXMgYW5kIFAmUgo+IHRvb2xzIGtub3cgaG93IHRvIGhhbmRsZSB0aGVtLgo+
+Cgpvay4gIGxhdGVyLCB3ZSB3aWxsIGRlZmluaXRlbHkgbmVlZCBhbiBheXN5bmNocm9ub3VzIHZl
+cnNpb24uCgp0aGlzIGJlY2F1c2UgaXQgdHVybnMgb3V0IHRoYXQgYXN5bmNocm9ub3VzIFNSQU0g
+Y2FuIGFjdCwgd2hlbiB1c2VkIGluIGEKUmVnaXN0ZXIgRmlsZSwgYXMgaWYgaXQgd2FzIGEgKHNl
+cGFyYXRlKSBSZWdpc3RlciBCeXBhc3MgLyBGb3J3YXJkaW5nClBvcnQuICB3aXRoIHRoZSBPdXQt
+b2YtT3JkZXIgRW5naW5lIGJlaW5nIGEgaHVnZSBjeWNsaWMgZmVlZGJhY2sgbG9vcApiZXR3ZWVu
+IEFMVXMgYW5kIFJlZ0ZpbGUsIGNsb2NrIGRlbGF5cyBhcmUgYW4gaW1wZWRpbWVudCwgYW5kIGhh
+dmluZwpjb21wbGV0ZWx5IHNlcGFyYXRlIChleHRyYSkgUmVnZmlsZSBCeXBhc3MgcG9ydHMgZHJh
+bWF0aWNhbGx5IGluY3JlYXNlcyB0aGUKbnVtYmVyIG9mIHdpcmVzIGFuZCBNdWx0aXBsZXhlcnMu
+CgooYWN0dWFsbHkgaXQgaXMgaGlnaGx5IGxpa2VseSB0aGF0IHdlIHdpbGwgbmVlZCB0byBkbyB0
+aGUgUmVnaXN0ZXIgRmlsZSBhcwpGRnMsIGluaXRpYWxseSwgYmVjYXVzZSB3ZSBuZWVkIGkgdGhp
+bmsgYSBtaW5pbXVtIDNSMVcsIHBsdXMgdGhlCmZvcndhcmRpbmcuICBhbHNvIHdlICptYXkqIGRv
+IHVuYXJ5IGFkZHJlc3NpbmcgLSBub3QgYmluYXJ5IGFkZHJlc3NpbmcgLQp3aGljaCBpIHVuZGVy
+c3RhbmQgaXQgaXMgcG9pbnRsZXNzIHRvIHVzZSBTUkFNIGNlbGxzIHdoZW4geW91IGhhdmUgdW5h
+cnkKaW5kaXZpZHVhbCByb3ctZW5hYmxlLCBhbHJlYWR5KS4KCgo+IEdpdmVuIHRoaXMgYnVpbGRp
+bmcgYmxvY2sgeW91IGNhbiBub3cgbWFrZSBibG9ja3MgdGhhdCBsb29rIHRvIHRoZSBvdXRzaWRl
+Cj4gd29ybGQgYXMgaGlnaGVyIG51bWJlciBwb3J0IGJsb2Nrcy4gWW91IGRvIHRoaXMgYnkgaW5z
+dGFudGlhdGluZyBtdWx0aXBsZQo+IFJBTSBibG9ja3MgYW5kIG1ha2Ugc3VyZSB0aGF0IHRoZSBj
+b250ZW50IGlzIG1pcnJvcmVkIGJldHdlZW4gYWxsIHRoZQo+IGJsb2Nrcy4gVGhpcyB3YXkgeW91
+IGNhbiByZWFkIGZyb20gdGhlIGRpZmZlcmVudCBibG9ja3MgaW4gcGFyYWxsZWwuCj4gV3JpdGlu
+ZyBpbiB0aGUgYmxvY2tzIHN0aWxsIGhhcyB0byBoYXBwZW4gdG8gYWxsIHRoZSBibG9ja3MgYXQg
+dGhlIHNhbWUKPiB0aW1lLgo+CgppJ3ZlIGhlYXJkIG9mIHRoaXMgdHJpY2sgYmVpbmcgdXNlZCBp
+biBGUEdBcywgdXN1YWxseSBjb21iaW5pbmcgcGFpcnMgb2YKMlIxVyB0byBnZXQgNFIxVy4KCgo+
+IFNvIGlmIHlvdSB0YWtlIGZvdXIgc2luZ2xlIHBvcnQgU1JBTSBibG9ja3MgeW91IGNhbiBtYWtl
+IGEgZm91ciBwb3J0IFNSQU0KPiBibG9jay4gRWFjaCBjeWNsZSB5b3UgY2FuIGRvIDEtNCByZWFk
+cyBvciAxIHdyaXRlIGJ1dCB5b3UgY2FuJ3QgcmVhZCBhbmQKPiB3cml0ZSBhdCB0aGUgc2FtZSB0
+aW1lLiBXaXRoIGZvdXIgMi1wb3J0IFJBTXMgeW91IGNhbiBkbyA0IHJlYWRzIGFuZCAxCj4gd3Jp
+dGUgZWFjaCBjbG9jayBjeWNsZS4gV2l0aCBmb3VyIGR1YWwgcG9ydCBSQU1zIHlvdSBjYW4gZG8g
+NCByZWFkcyBvciAzCj4gcmVhZHMgKyAxIHdyaXRlIG9yIDIgcmVhZHMgKyAyIHdyaXRlcyBlYWNo
+IGN5Y2xlLgo+CgpvayBpIGFsd2F5cyB3b25kZXJlZCBob3cgeW91J2QgZ2V0IDRSMlcuCgpvayBz
+byBhY3R1YWxseSB3ZSAqY291bGQqIGRvIDNSMVcgb3IgNFIxVyB3aXRoIHRoZSBzaW5nbGUtcG9y
+dCBTUkFNIGJsb2NrcywKZm9yIHRoZSBSZWdmaWxlLgoKSSB3aWxsIHByb3ZpZGUgdGhlIHNpbmds
+ZSBibG9jaywgdGhlIGNvbWJpbmluZyBvZiB0aGUgYmxvY2sgaGFzIHRvIGhhcHBlbgo+IGluIFJU
+TC9IREwuIEZvciBMaWJyZS1TT0MgdGhpcyBtZWFucyBpbiBubWlnZW4gYW5kIHVzaW5nIENvcmlv
+bGlzIGZvcgo+IHBsYWNlbWVudCBhbmQgY29ubmVjdGluZyB0aGUgc2luZ2xlIGJsb2Nrcy4KPgoK
+b2suICBvbmUgZm9yIEplYW4tUGF1bCB0byBoZWxwIGFkdmlzZSB3aXRoLCB3aGVuIHdlIGdldCB0
+byBpdC4KCgo+IEFsdGhvdWdoIHRoZSBTUkFNIGRvZXMgYW4gb3BlcmF0aW9uIGVhY2ggY2xvY2sg
+Y3ljbGUgdGhlIGNsb2NrIGZyZXF1ZW5jeQo+IGNvdWxkIGJlIGRpZmZlcmVudCBmcm9tIHRoZSBy
+ZXN0IG9mIHRoZSBsb2dpYy4gSWYgdGhlIFJBTSBpcyBmYXN0IGVub3VnaCBpdAo+IGNvdWxkIHJ1
+biBhdCBkb3VibGUgdGhlIGZyZXF1ZW5jeSBvZiB0aGUgY29yZSBzbyBiYXNpY2FsbHkgYSBzaW5n
+bGUgcG9ydAo+IFJBTSBjb3VsZCBsb29rIGxpa2UgYSBkdWFsIHBvcnQgUkFNIHRvIHRoZSByZXN0
+IG9mIHRoZSBsb2dpYyB3aGljaCBpcwo+IHJ1bm5pbmcgYXQgaGFsZiB0aGUgZnJlcXVlbmN5LiBJ
+ZiB0aGUgUkFNIGlzIG5vdCBmYXN0IGVub3VnaCB3YWl0ICBzdGF0ZXMKPiBuZWVkIHRvIGJlIGlt
+cGxlbWVudGVkIGZvciBlYWNoIG9wZXJhdGlvbi4gVGhlIG1heGltdW0gY2xvY2sgZnJlcXVlbmN5
+IHdpbGwKPiBnbyBkb3duIHdoZW4geW91IGluY3JlYXNlIHRoZSBzaXplIG9mIGEgUkFNIGJsb2Nr
+LiBTbyBvbiBDUFUgdHlwaWNhbGx5IEwxCj4gY2FjaGUgcnVucyBhdCB0aGUgc2FtZSBjbG9jayBm
+cmVxdWVuY3kgYXMgdGhlIGNvcmUgd2l0aG91dCBhbnkgd2FpdCBzdGF0ZXMKPiBhbmQgaGlnaGVy
+IGxldmVsIGNhY2hlcyBhcmUgYmlnZ2VyIGJ1dCBhbHNvIGludHJvZHVjZSBtb3JlIHdhaXQgc3Rh
+dGVzIGZvcgo+IGFjY2Vzc2luZyB0aGVtLgo+CgpobW1tLi4uCgoKPiBJZiB5b3UgYXJlIHRoaW5r
+aW5nIGFib3V0IGhhdmluZyBkaWZmZXJlbnQgY2xvY2sgZnJlcXVlbmNpZXMgaW4geW91cgo+IGRl
+c2lnbiB5b3UgaGF2ZSB0byBmaXJzdCBkaXNjdXNzIHRoaXMgd2l0aCBKZWFuLVBhdWwvTElQNiBh
+cyBkb2luZyBtdWx0aQo+IGNsb2NrIGRlc2lnbnMgaXMgb3BlbmluZyBpdCdzIG93biBjYW4gb2Yg
+d29ybXMgKGNyb3NzIGNsb2NrIGRvbWFpbiBwcm9ibGVtcwo+IGV0YykuCgoKeWVzLiAgbm8sIHdl
+J3JlIG5vdCBjcm9zc2luZyB0aGF0IGNoYXNtIGluIHRoZSBmaXJzdCBjaGlwLiAgaSBrbm93IG5t
+aWdlbgpjYW4gZG8gaXQ6IHdlICptYXkqIGJlIGZvcmNlZCB0byBkbyBpdCBmb3Igc29tZSBwZXJp
+cGhlcmFscywgYW5kIGkga25vdwpubWlnZW4gc3VwcG9ydHMgY2xvY2sgZG9tYWlucywgaG93ZXZl
+ciB0aGUgbWFpbiBjb3JlPyBubywgd2UgcmVhYWFsbHkgd2FudAp0byBhdm9pZCBpdC4KCkZvciB0
+aGUgT2N0b2JlciBwcm90b3R5cGUgSSBmZWVsIHdlIG5lZWQgdG8gc3RpY2sgd2l0aCB1c2Ugb2Yg
+c2luZ2xlIHBvcnQKPiBTUkFNIGJsb2NrIGFuZCBydW4gdGhlIHdob2xlIGNoaXAgZnJvbSB0aGUg
+c2FtZSBjbG9jay4gSU1PLCBvbiB0aGlzCj4gcHJvdG90eXBlIHlvdSBzaG91bGQgdGFrZSBhbnkg
+cGVyZm9ybWFuY2UgaW1wbGljYXRpb24gdGhpcyBoYXMuCj4KCnllcy4gIHdlIGhhdmUgZW5vdWdo
+IHRvIGRlYWwgd2l0aC4gIHRoZSBpbXBvcnRhbnQgdGhpbmcgZm9yIHRoZSAxODBubSBBU0lDCmlz
+IHRvIGNvdmVyIGFzIG11Y2ggZ3JvdW5kIGFzIGlzIHByYWN0aWNhbCwgYW5kIHByb3ZlIHNldmVy
+YWwgYXNwZWN0cyBvZgp0aGUgZGVzaWduIHdpdGhvdXQgdGFraW5nIG9uIHRvbyBtdWNoLgoKdGhh
+bmtzIGZvciBjbGFyaWZ5aW5nLCBTdGFmIC0gd2UnbGwgYWRhcHQgYWNjb3JkaW5nbHkuICB3aWxs
+IGxldCB5b3UgZ2V0IG9uLgoKbC4KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
+X19fX19fX19fX18KbGlicmUtcmlzY3YtZGV2IG1haWxpbmcgbGlzdApsaWJyZS1yaXNjdi1kZXZA
+bGlzdHMubGlicmUtcmlzY3Yub3JnCmh0dHA6Ly9saXN0cy5saWJyZS1yaXNjdi5vcmcvbWFpbG1h
+bi9saXN0aW5mby9saWJyZS1yaXNjdi1kZXYK
+