From: Paul Mackerras Date: Mon, 30 Mar 2020 03:30:02 +0000 (+1100) Subject: Re: [libre-riscv-dev] [OpenPOWER-HDL-Cores] microwatt tlb X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=ff3ab7235d2352e602222557b8c8adebcd73dd40;p=libre-riscv-dev.git Re: [libre-riscv-dev] [OpenPOWER-HDL-Cores] microwatt tlb --- diff --git a/5c/469eae634a871e7d88a35dbaa8f50210e864d4 b/5c/469eae634a871e7d88a35dbaa8f50210e864d4 new file mode 100644 index 0000000..eb41e97 --- /dev/null +++ b/5c/469eae634a871e7d88a35dbaa8f50210e864d4 @@ -0,0 +1,190 @@ +Return-path: +Envelope-to: publicinbox@libre-riscv.org +Delivery-date: Mon, 30 Mar 2020 10:35:51 +0100 +Received: from localhost ([::1] helo=libre-riscv.org) + by libre-riscv.org with esmtp (Exim 4.89) + (envelope-from ) + id 1jIqpj-00024t-Fc; Mon, 30 Mar 2020 10:35:51 +0100 +Received: from ozlabs.org ([203.11.71.1]) + by libre-riscv.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) + (Exim 4.89) (envelope-from ) id 1jIl7t-0004yT-NN + for libre-riscv-dev@lists.libre-riscv.org; Mon, 30 Mar 2020 04:30:14 +0100 +Received: by ozlabs.org (Postfix, from userid 1003) + id 48rHym3S9Wz9sPF; Mon, 30 Mar 2020 14:30:08 +1100 (AEDT) +DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ozlabs.org; s=201707; + t=1585539008; bh=SZ0YO1M/NlaQGcfd9YC7FG87YOvxu3p0mTzS7u5x4vw=; + h=Date:From:To:Cc:Subject:References:In-Reply-To:From; + b=DmW88xn4ZGXzxEyP3FId8fpkZLgW6hluNxqHboOgVDphprooYj0S0LiLqv8qPz+gx + 0X3MGYZymeZneCR+VbHI8obcgzS9G3RrZ4jmPSGy2U1HoenIMagUwt/R74FGdEdJ09 + rWJtWkIKX6x4IidQYZE+hP3Uzs+BztwXd4JiqMYCg0ULd8Wpsqv660fPCvcjCR2bXn + CGY11V44W58QeZBnqzkrgu+83OG4HPXR+CSjyTpb1bpTwHPjWCNLVbrmV5FNFgUWYr + ADpg/emSSUoVHt5Wu99wWo7i06iaSRFW6HtxwBQCI8WW0P2tfea2YFUh7w6N1yQRIA + IhbFGIr5ZrKmw== +Date: Mon, 30 Mar 2020 14:30:02 +1100 +From: Paul Mackerras +To: Luke Kenneth Casson Leighton +Message-ID: <20200330033002.GB15134@blackberry> +References: +MIME-Version: 1.0 +Content-Disposition: inline +In-Reply-To: +User-Agent: Mutt/1.5.24 (2015-08-30) +X-Mailman-Approved-At: Mon, 30 Mar 2020 10:35:49 +0100 +Subject: Re: [libre-riscv-dev] [OpenPOWER-HDL-Cores] microwatt tlb +X-BeenThere: libre-riscv-dev@lists.libre-riscv.org +X-Mailman-Version: 2.1.23 +Precedence: list +List-Id: Libre-RISCV General Development + +List-Unsubscribe: , + +List-Archive: +List-Post: +List-Help: +List-Subscribe: , + +Reply-To: Libre-RISCV General Development + +Cc: openpower-hdl-cores@mailinglist.openpowerfoundation.org, + Libre-RISCV General Development +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" + +T24gRnJpLCBNYXIgMjcsIDIwMjAgYXQgMDI6MTU6MDNBTSArMDAwMCwgTHVrZSBLZW5uZXRoIENh +c3NvbiBMZWlnaHRvbiB3cm90ZToKPiBoaSB0aGlzIGlzIGZvciBwYXVsIG1hY2tlcnJhcyB3aGVu +IHlvdSBzZWUgaXQuCj4gCj4gZ3JlYXQgdG8ga25vdyB5b3UncmUgd29ya2luZyBvbiBtaWNyb3dh +dHQuIGJlZW4gc3VjaCBhIGxvbmcgdGltZSwgYW5kCj4gcmVhbGx5IGdvb2QgdG8gZW5jb3VudGVy +IHlvdSBvdmVyIHRoZSB2aXJ0dWFsIGNvZmZlZSBjaGF0IGVhcmxpZXIgdG9kYXkuCj4gCj4gaGVy +ZSdzIHRoZSBsaW5rIHRvIHRoZSByYWRpeCB3YWxrIGRvYyBpIHdhcyB0YWxraW5nIGFib3V0Ogo+ +IGh0dHBzOi8vZ2l0aHViLmNvbS9wb3dlci1nZW01L2dlbTUvYmxvYi9nZW01LWV4cGVyaW1lbnRh +bC9zcmMvYXJjaC9wb3dlci9yYWRpeF93YWxrX2V4YW1wbGUudHh0Cj4gCj4gaXQgaXMgcmVhbGx5 +IGdvb2QuICBpbXBsZW1lbnRhdGlvbnMgYWxzbyBleGlzdCBpbiB0aGUgc2FtZSBjb2RlYmFzZSwg +dGhlCj4gZWFzaWVzdCB3YXkgdG8gdHJhY2sgdGhlbSBkb3duIGlzIHZpYSB0aGUgY29tbWl0IGxv +Z3MgaW4gdGhlCj4gZ2VtNS1leHBlcmltZW50YWwgYnJhbmNoLgo+IAo+IGZvciBsaWJyZXNvYyB3 +ZSByZWFsbHkgcmVhbGx5IG5lZWQgY2xlYXIgSERMIHRvICJ0cmFjayIgaWYgeW91IGtub3cgd2hh +dCBpCj4gbWVhbiwgYmVjYXVzZSBzb21lIG9mIHRoZXNlIGFsZ29yaXRobXMgYXJlIHZlcnkgdGlt +ZWNvbnN1bWluZyB0byBpbXBsZW1lbnQKPiBmcm9tIHNjcmF0Y2guCj4gCj4gcGF1bCwgY29udGlu +dWluZyB0aGUgKGJyaWVmKSBkaXNjdXNzaW9uIHNvbWV3aGF0LCBpbiBhIHJlbGF0ZWQgd2F5LCBp +Cj4gcmVhbGx5IHdhbnRlZCB0byBtYWtlIHlvdSBhd2FyZSBvZiB0aGUgaW1wbGljYXRpb25zIGZv +ciBtaWNyb3dhdHQgb2YgdHJ5aW5nCj4gdG8gbWFrZSBpdCBtdWx0aXN0YWdlIHBpcGVsaW5lZC4K +PiAKPiBpZiB5b3UgbG9vayB1cCBqb24gZGF3c29uJ3MgSUVFNzU0IEZQVSBjb2RlIHlvdSBmaW5k +IHRoYXQgaXQgaXMgZW50aXJlbHkKPiBGU00gYmFzZWQuICBhcyBzdWNoIGl0IGlzIHN1cGVyYiBm +b3IgZml0dGluZyBpbiBzbWFsbCBGUEdBcy4KPiAKPiBvdmVyIGEgNiBtb250aCBwZXJpb2QgaSBt +b3JwaGVkIGl0IGZyb20gaXRzIGh1bWJsZSBiZWdpbm5pbmdzIGludG8gYW4KPiBhYnNvbHV0ZSBi +ZWFzdCBvZiBhIGZsZXhpYmx5IHJlcHJvZ3JhbW1hYmxlIE9iamVjdCBPcmllbnRhdGVkIElFRUU3 +NTQgRlAKPiB0b29sa2l0LCBjYXBhYmxlIG9mIDE2LCAzMiBvciA2NCBiaXQgKGFuZCBhbnl0aGlu +ZyBlbHNlIHlvdSBjYXJlIHRvIGFkZCksCj4gYXJiaXRyYXJ5IHBpcGVsaW5lIGRlcHRoICpvciog +RlNNIHN0eWxlIGVuZ2luZXMsIFNJTUQgY2FwYWJpbGl0eSwgKmR5bmFtaWMqCj4gcGlwZWxpbmVz +LCB0aGUgd29ya3MuICBKYWNvYiBoZWxwZWQgYWRkIGEgZmFudGFzdGljIGh5YnJpZCBmcGRpdiwg +c3FydAo+ICphbmQqIHJzcXJ0IGVuZ2luZSBhbGwgaW4gdGhlIHNhbWUgcGlwZWxpbmUuICBpdCdz +IG5vdyB3ZWxsIG5vcnRoIG9mIDEwLDAwMAo+IGxpbmVzIG9mIHB5dGhvbiBjb2RlIGFuZCB0YWtl +cyBhIHdlZWsgdG8gcnVuIGFsbCB0aGUgdW5pdCB0ZXN0cy4KPiAKPiB3aGF0IGkgbGVhcm5lZCBh +bG9uZyB0aGUgd2F5IHdhcyB0aGF0IHRoZSBGU00gYmFzZWQgc3lzdGVtcyB2cyBwaXBlbGluZQo+ +IHN5c3RlbXMgdHJhZGUgbG93IGdhdGUgY291bnQgYW5kIHNpbXBsaWNpdHkgYW5kIGNvZGUgcmVh +ZGFiaWxpdHkgZm9yIHNwZWVkLAo+IG11Y2ggaGlnaGVyIGdhdGUgY291bnQsIGFuZCwgdW5sZXNz +ICphbmQgZXZlbiogaWYgT08gZGVzaWduIGlzIHVzZWQsIHR1cm4KPiBpbnRvIHRoZSBtb3N0IGF3 +ZnVsIHVucmVhZGFibGUgdW5tYWludGFpbmFibGUgdG90YWwgdHJhc2guCj4gCj4gcm9ja2V0Y2hp +cCB1bmZvcnR1bmF0ZWx5LCBmb3IgYWxsIHRoZSBjb21wYWN0bmVzcyBhbmQgb3RoZXIgYWR2YW50 +YWdlcywgaXMKPiBwYXJ0aWN1bGFybHkgYmFkLCAqYmVjYXVzZSogb2YgdGhlIE9PIChhbmQgdG90 +YWwgbGFjayBvZiBjb2RlIGNvbW1lbnRzKS4KPiB0aGUgT08gaGllcmFyY2h5IG1ha2VzIGl0IGZs +YXQtb3V0IGltcG9zc2libGUgZm9yIGFueW9uZSBidXQgaXRzIG9yaWdpbmFsCj4gY3JlYXRvcnMg +dG8gd29yayB3aXRoLiAgKHNvbWV0aGluZyB0byBhbGVydCB0aGUgY2hpc2Vsd2F0dCB0ZWFtIG9u +LCB0aGVyZSwKPiBhbHRob3VnaCBmcm9tIHdoYXQgaSBoYXZlIHNlZW4sIHRoZSBjb2RlIGNvbW1l +bnRzIGluIGNoaXNlbHdhdHQgYXJlIGRhbW4KPiBnb29kKS4KPiAKPiBhbmQgeWV0IGlmIHlvdSBl +dmVuIHJlbW90ZWx5IHRyeSBhbnl0aGluZyBsaWtlIG1vZGVybiBPTyBwcm9ncmFtbWluZyBkZXNp +Z24KPiBzdHJhdGVnaWVzIGFuZCB0ZWN1bmlxdWVzIHdpdGggdGhlc2UgMTk4MHMgZXJhIGxhbmd1 +YWdlcyAoSERMLCBWZXJpbG9nKSB5b3UKPiBpbW1lZGlhdGVseSBhbHNvIHJ1biBpbnRvIHNlcmlv +dXMgZGlmZmljdWx0aWVzIG9mIGEgZGlmZmVyZW50IGtpbmQsIHdoaWNoIGkKPiB3b24ndCBnbyBp +bnRvLCByaWdodCBub3cuCj4gCj4gdGhlIGJvdHRvbSBsaW5lIGlzOiBhZGRpbmcgZXh0cmEgcGlw +ZWxpbmUgc3RhZ2VzIHRvIG1pY3Jvd2F0dCBub3Qgb25seQo+IGNvbXBsaWNhdGVzIGl0IGFuZCBt +YWtlcyBpdCB1bnJlYWRhYmxlIGFuZCB1bm1haW50YWluYWJsZSwgaXQgaW5jcmVhc2VzIHRoZQo+ +IG51bWJlciBvZiBMVVRzIHJlcXVpcmVkIHRvIHRoZSBwb250IHdoZXJlIHlvdSB3aWxsIG5lZWQg +dG8gY2FsbCBpdCAid2F0dCIKPiBvciAibWVnYXdhdHQiCj4gCj4gOikKPiAKPiByZWdhcmRpbmcg +ZXhjZXB0aW9ucyBhbmQgdHJhcHM6IGZvciBpbi1vcmRlciBwaXBlbGluZWQgc3lzdGVtcyB0aGVz +ZSBhcmUgYQo+IGRhbW4gbnVpc2FuY2UuCj4gCj4gZXZlcnkgc29sdXRpb24gdG8gZXZlcnkgcHJv +YmxlbSBpbiBhbiBpbm9yZGVyIHN5c3RlbSBpczoKPiAKPiBzdGFsbC4KPiAKPiB0aGF0J3MgaXQu +Cj4gCj4gYWZ0ZXIgbGVhcm5pbmcgYWJvdXQgdGhlIENEQzY2MDAsIHdoaWNoIGlzIGEgZGVlcGx5 +IGltcHJlc3NpdmUgZGVzaWduIHRoYXQKPiB0YWtlcyBsaXRlcmFsbHkgbW9udGhzIHRvIGJlZ2lu +IHRvIGNvbXByZWhlbmQsIGkgZGlzbGlrZSBpbm9yZGVyIHN5c3RlbXMKPiBpbnRlbnNlbHkuCj4g +Cj4gdGhlIGtleSB0aGluZyB0aGF0IGkgbGVhcm5lZCBmcm9tIE1pdGNoIEFsc3VwIGFib3V0IGhv +dyB0byBoYW5kbGUKPiBleGNlcHRpb25zIGlzOiB5b3UgKm11c3QqIHByZXZlbnQgdGhlIEFMVSAo +b3Igd2hhdGV2ZXIpIGZyb20gImNvbW1pdHRpbmciCj4gaXRzIHJlc3VsdCB1bnRpbCBpdCBpcyBH +VUFSQU5URUVEIGtub3duIHRoYXQgdGhlIGV4Y2VwdGlvbiB3aWxsIG5vdCBvY2N1ci4KPiAKPiB0 +aGF0IGlzIHRoZSBhYnNvbHV0ZSBjb3JlIGNvbmNlcHQgb2YgZXhjZXB0aW9ucyAoYWthIGludGVy +cnVwdHMpLCB5b3UgTVVTVAo+IGFjaGlldmUsIGluIHNvbWUgZnVuZGFtZW50YWwgd2F5Lgo+IAo+ +IHRoaXMgaXMgZG9uZSBpbiBhbiBPb08gZGVzaWduIGJ5IG1hcmtpbmcgYW5kIHRyYWNraW5nIHRo +ZSBvcGVyYXRpb24gLSBhbGwKPiB0aGUgd2F5IGRvd24gdGhlIHBpcGVsaW5lIC0gd2l0aCAiY2Fu +Y2VsbGF0aW9uIG1hc2tzIiAoYSBnbG9iYWwgSUQgd2hpY2gKPiB0cmF2ZWxzICp3aXRoKiB0aGUg +cGFydGlhbCByZXN1bHQgZGF0YSwgZG93biBhIGdpdmVuIHBpcGVsaW5lKQo+IAo+IHRoaXMgaXMg +a25vd24gYXMgInNoYWRvd2luZyIsIGFuZCBpdCBpcyBub3Qgb25seSB0aGUgb3BlcmF0aW9uIHRo +YXQgKm1pZ2h0Kgo+IGJlIGNhbmNlbGxlZCB0aGF0IGhhcyB0byBiZSAic2hhZG93bWFya2VkIiwg +aXQgaXMgKmFsbCBmb2xsb3dpbmcKPiBpbnN0cnVjdGlvbnMgYXMgd2VsbCogKGhlbmNlIHRoZSB0 +ZXJtICJzaGFkb3ciKS4KPiAKPiBzaGFkb3dlZCBvcGVyYXRpb25zIGFyZSByZWFsIGVhc3kgdG8g +Y2FuY2VsOiBwdWxsIHRoZSAiY2FuY2VsIiB3aXJlIHVwLCBhbmUKPiBldmVyeXRoaW5nIHdpdGgg +dGhlIHJlcXVpc2l0ZSBtYXNrIElEIGdldHMgYSBnbG9iYWwgc2lnbmFsICJ3aG9vcHMgd2Ugbm8K +PiBsb25nZXIgbmVlZCB0byBwYXNzIHRoaXMgZG93biB0aGUgcGlwZWxpbmUsIGRyb3AgaXQgb24g +dGhlIGZsb29yIi4KPiAKPiB3aXRoIGFsbCAiZnV0dXJlIiBwYXJ0aWFsIChhbmQgY29tcGxldGVk +IGJ1dCBub25jb21taXR0ZWQpIHJlc3VsdHMgbm93Cj4ga2lsbGVkLCB0aGUgUEMgY2FuIHNhZmVs +eSBiZSByZWRpcmVjdGVkIGF0IHRoZSBleGNlcHRpb24sIGludGVycnVwdCwgb3IgdGhlCj4gYWx0 +ZXJuYXRpdmUgYnJhbmNoLCBvciB3aGF0ZXZlcjogdGhlc2UgYWxsIHVzZSAqZXhhY3RseSogdGhl +IHNhbWUgc2hhZG93aW5nCj4gdGVjaG5pcXVlLgo+IAo+IHlvdSBzdGFydCB0byBzZWUgd2h5IHRo +ZSBtYWpvcml0eSBvZiBpbm9yZGVyIHN5c3RlbXMgdXNlICJzdGFsbCBzdGFsbCBzdGFsbAo+IHN0 +YWxsIHN0YWxsIiBhcyB0aGUgYmUtYWxsIGFuZCBlbmQtYWxsICJvbm5uZSBhbmQgb25seSB0cnVl +IHNvbHV0aW9uIiwKPiBoZXJlPyBbIGhhbGxlbHVqYWgsIHByYWlzZSB0aGUgc3RhbGwuLi4gXSA6 +KQo+IAo+IGJhc2ljYWxseSBpZiBpIGhhdmUgZGlzY291cmFnZWQgeW91IGZyb20gcHVyc3Vpbmcg +dGhlIHBhdGggb2YgYWRkaW5nCj4gbXVsdGlwbGUgcGlwZWxpbmUgc3RhZ2VzIHRvIG1pY3Jvd2F0 +dCwgdGhlbiBpIGhhdmUgc3VjY2VlZGVkIGluIHdoYXQgaSBzZXQKPiBvdXQgdG8gZXhwbGFpbi4g +IGJlY2F1c2UgbWljcm93YXR0J3MgdmFsdWUgaXMgbm90IGp1c3QgaXRzIHNtYWxsIGNvZGUgc2l6 +ZSwKPiBpdHMgcmVhZGFiaWxpdHkgYW5kIGNvbXBhY3RuZXNzIG1ha2VzIGl0IGFuIGlkZWFsIHJl +ZmVyZW5jZSBpbXBsZW1lbnRhdGlvbgo+ICphbmQqLCBmdXJ0aGVybW9yZSwgaXRzIGNvbXBsZXRl +IGxhY2sgb2Ygb3B0aW1pc2F0aW9uIG5vcm1hbGx5IHNlZW4gaW4KPiAic2ltcGxlIiBwaXBlbGlu +ZWQgZGVzaWducyBhY3R1YWxseSBzYXZlcyBvbiBnYXRlcyAvIEZQR0EgcmVzb3VyY2VzLgo+IAo+ +IHRoZSBtb21lbnQgeW91IGFkZCBleHRyYSBzdGFnZXMsIGFsbCB0aGF0IGdvZXMgb3V0IHRoZSB3 +aW5kb3cuCj4gCj4gYW4gYXNzb2NpYXRlIGFuZCBjb250cmlidXRvciBvbiBvdXIgbGlzdCwgU2Ft +dWVsIEZhbHZvLCB0YXVnaHQgbWUgc29tZQo+IGF3ZXNvbWUgdHJpY2tzLgo+IAo+IGhpcyBDUFVz +IGFyZSBpbmNyZWRpYmxlLCBkZXNpZ25lZCBpbiB0aGUgbW9zdCBhbWF6aW5nIGVsZWdhbnQgYW5k +IHVudXN1YWwKPiB3YXlzLiAgaGUgd3JvdGUgaGlzIG93biBQTEEgc3R5bGUgImxhbmd1YWdlIiAo +d3JpdHRlbiBpbiBsaXNwKSB3aGljaCB0YWtlcwo+IHNwZWNpZmljYXRpb25zIChpbiBsaXNwIGxp +c3RzKSBmb3IgZnVuY3Rpb25hbGl0eSBhbmQgKmdlbmVyYXRlcyogVkhETAo+IGNvbWJpbmF0b3Jp +YWwgYmxvY2tzLgo+IAo+IGhlIHVzZWQgdGhpcyB0b29sIHRvIGNyZWF0ZSBhIDY1MDItbGlrZSBw +cm9jZXNzb3Igd2l0aCB2aXJ0dWFsbHkgbm8KPiBtYW51YWxseSB3cml0dGVuIGdsdWUgbG9naWMg +KGV2ZW4gdGhlIGRlY29kZXIgd2FzIHdyaXR0ZW4gaW4gdGhpcyBzaW1wbGUKPiBzcGVjaWZpY2F0 +aW9uKSwgdGhhdCBlYXNpbHkgZml0cyBpbnRvIGFuIHVsdHJhIGxvdyBjb3N0IElDRTQwIHlldCBo +YXMKPiBtYXNzaXZlIGFtb3VudHMgb2Ygcm9vbSB0byBzcGFyZSBmb3IgcGVyaXBoZXJhbHMuCj4g +Cj4gdGhlIGtleSB0byB0aGUgc3VjY2VzcyBvZiB0aGlzIGFwcHJvYWNoIHdhcyB0aGUgaGVhdnkg +dHJhZGVvZmYgb2YgKm5vdCoKPiB1c2luZyBwaXBlbGluZSBzdGFnZXMsIGJ1dCBlZmZlY3RpdmVs +eSBkb2luZyBhIEZTTSBzdHlsZSBlbnRpcmUgZXhlY3V0aW9uCj4gZGVzaWduLiAgYWN0dWFsbHkg +aXQgd2Fzbid0IGV2ZW4gYSBGU00sIGkgdGhpbmsgaGUgdXNlZCB0aGUgdGVybSAiUExBIi4gIGkK +PiBhbSBnYXJibGluZyBpdCwgaXQgd2FzIGEgeWVhciBhZ28sIHRoZXJlIGFyZSBzb21lIGtleXdv +cmRzIGkgaGF2ZSBtaXNzZWQKPiBvdXQsIHlvdSBnZXQgdGhlIGlkZWEgdGhvdWdoLgo+IAo+IHdo +YXQgaSBhbSByZWFsbHkgc2F5aW5nIGlzOiBwbGVhc2UgZG8gc2VyaW91c2x5IGNvbnNpZGVyIHNp +bXBseSBzdGFsbGluZyBvbgo+IGFueXRoaW5nIHRoYXQgY291bGQgaGF2ZSBhbiBleGNlcHRpb24g +dGhyb3duLiAgYXJyYW5nZSBmb3IgdGhlIGVudGlyZQo+IHBpcGVsaW5lIHRvIHNpbXBseSBncmlu +ZCB0byBhIGhhbHQsICpnbG9iYWxseSogZnJlZXppbmcgcmlnaHQgdGhlIHdheSBiYWNrCj4gdG8g +dGhlIGRlY29kZSBwaGFzZSwgb25seSBwcm9jZWVkaW5nIHdoZW4gaXQgaXMgZ3VhcmFudGVlZCBr +bm93biwgMTAwJSwKPiB0aGF0IHRoZSBleGNlcHRpb24gd2lsbCBOT1Qgb2NjdXIuCj4gCj4gdGhp +cyBpcywgYmVsaWV2ZSBpdCBvciBub3QsIGFuIGluZHVzdHJ5LXdpZGUgImFjY2VwdGFibGUiIHRl +Y2huaXF1ZSBpbiBBTEwKPiBpbi1vcmRlciBkZXNpZ25zLgo+IAo+IGxvb2sgdXAgIm1pbmVydmEg +cnYzMiIgb24gZ2l0aHViIChpdCBpcyB2ZXJ5IHJlYWRhYmxlIGNvZGUpIGFuZCBncmVwIGl0cwo+ +IHNvdXJjZSBmb3IgdGhlIHdvcmQgInN0YWxsIi4KPiAKPiB5b3Ugd2lsbCBmaW5kIGEgKmNvbWJp +bmF0b3JpYWwqIGdsb2JhbCBzaWduYWwgcHJvcGFnYXRlcyB0aHJvdWdob3V0ICpldmVyeSoKPiBw +aXBlbGluZSBzdGFnZSwgaW1wbGVtZW50aW5nIHRoaXMgInN0b3AgdGhlIHdvcmxkIGkgd2FudCB0 +byBnZXQgb2ZmISIKPiBpbmR1c3RyeS13aWRlICJzb2x1dGlvbiIuCj4gCj4gbGl0ZXJhbGx5IGV2 +ZXJ5IGVmZm9ydCB0aGF0IGkgaGF2ZSBzZWVuIHRoYXQgYXR0ZW1wdHMgKm5vdCogdG8gZm9sbG93 +IHRoYXQKPiAic29sdXRpb24iIGZvciBpbm9yZGVyIGRlc2lnbnMgaW52b2x2ZXMgdGhlIHdvcmQg +ImJ1dCIgYW5kIGl0IGdvZXMgZG93bmhpbGwKPiBmcm9tIHRoZXJlLgo+IAo+IHN1cnByaXNpbmcs +IGVobj8gOikKClRoYW5rcyBmb3IgdGhlIGNvbW1lbnRzIGFuZCB0aGUgcG9pbnRlcnMuICBXZSBk +byBhbHJlYWR5IGhhdmUgc3RhbGwKc2lnbmFscyBpbiBtaWNyb3dhdHQsIGJ1dCB0aGUgd2F5IGl0 +IHdvcmtzIGlzIHByZXR0eSBzaW1wbGUgc28gZmFyLgpUaGUgcGlwZWxpbmVkLCBpbi1vcmRlciBl +eGVjdXRpb24gc3RydWN0dXJlIGJhc2ljYWxseSBjb21lcyBmcm9tCkFudG9uJ3MgaW5pdGlhbCB3 +b3JrLCBzbyBJIGRvbid0IHRoaW5rIHdlJ2xsIGJlIHRocm93aW5nIHRoYXQgb3V0LgpXZSB3aWxs +IGNvbnRpbnVlIHRvIG1ha2UgcmVhZGFiaWxpdHkgYW5kIHVuZGVyc3RhbmRhYmlsaXR5IGEgZm9j +dXMsCmFuZCBJIGZvciBvbmUgd2lsbCB0cnkgdG8gYWRkIG1vcmUgY29kZSBjb21tZW50cyBhcyBJ +IHdvcmsgb24gaXQgdG8KbWFrZSBpdCBlYXNpZXIgdG8gZm9sbG93LgoKVGhhbmtzLApQYXVsLgoK +X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGlicmUtcmlz +Y3YtZGV2IG1haWxpbmcgbGlzdApsaWJyZS1yaXNjdi1kZXZAbGlzdHMubGlicmUtcmlzY3Yub3Jn +Cmh0dHA6Ly9saXN0cy5saWJyZS1yaXNjdi5vcmcvbWFpbG1hbi9saXN0aW5mby9saWJyZS1yaXNj +di1kZXYK +