Re: [libre-riscv-dev] [OpenPOWER-HDL-Cores] system call (sc) LEV "reserved field"
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>
Thu, 23 Jul 2020 00:52:35 +0000 (10:52 +1000)
committerlibre-riscv-dev <libre-riscv-dev@lists.libre-riscv.org>
Tue, 28 Jul 2020 20:14:55 +0000 (21:14 +0100)
b5/eeb97e76ee3cc1b25e0d6ae4de4db0c4486422 [new file with mode: 0644]

diff --git a/b5/eeb97e76ee3cc1b25e0d6ae4de4db0c4486422 b/b5/eeb97e76ee3cc1b25e0d6ae4de4db0c4486422
new file mode 100644 (file)
index 0000000..aec2ede
--- /dev/null
@@ -0,0 +1,193 @@
+Return-path: <libre-riscv-dev-bounces@lists.libre-riscv.org>
+Envelope-to: publicinbox@libre-riscv.org
+Delivery-date: Tue, 28 Jul 2020 21:23:52 +0100
+Received: from localhost ([::1] helo=libre-riscv.org)
+       by libre-soc.org with esmtp (Exim 4.92)
+       (envelope-from <libre-riscv-dev-bounces@lists.libre-riscv.org>)
+       id 1k0Vzz-0001Dm-AY; Tue, 28 Jul 2020 21:14:55 +0100
+Received: from kernel.crashing.org ([76.164.61.194])
+ by libre-soc.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
+ (Exim 4.92) (envelope-from <benh@kernel.crashing.org>)
+ id 1jyPTb-0001D8-3p
+ for libre-riscv-dev@lists.libre-riscv.org; Thu, 23 Jul 2020 01:52:47 +0100
+Received: from localhost (gate.crashing.org [63.228.1.57])
+ (authenticated bits=0)
+ by kernel.crashing.org (8.14.7/8.14.7) with ESMTP id 06N0qahc029210
+ (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO);
+ Wed, 22 Jul 2020 19:52:42 -0500
+Message-ID: <bc0527a82b8a777486388ab6084ce364db4c278c.camel@kernel.crashing.org>
+From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+To: Luke Kenneth Casson Leighton <lkcl@lkcl.net>, Libre-RISCV General
+ Development <libre-riscv-dev@lists.libre-riscv.org>
+Date: Thu, 23 Jul 2020 10:52:35 +1000
+In-Reply-To: <CAPweEDxxJqcy4kAcL0+wDYQh9A0KtW3dSi9kMdQ-_YotuRSsQw@mail.gmail.com>
+References: <CAPweEDzJpX8mDE1QJO6=rPEQfz0jCt+Yi9sS48cE4bXcu8AwcQ@mail.gmail.com>
+ <20200722224713.GA213782@thinks.paulus.ozlabs.org>
+ <CAPweEDxxJqcy4kAcL0+wDYQh9A0KtW3dSi9kMdQ-_YotuRSsQw@mail.gmail.com>
+X-Mailer: Evolution 3.28.5-0ubuntu0.18.04.2 
+Mime-Version: 1.0
+X-Mailman-Approved-At: Tue, 28 Jul 2020 21:14:53 +0100
+Subject: Re: [libre-riscv-dev] [OpenPOWER-HDL-Cores] system call (sc) LEV
+ "reserved field"
+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>
+Cc: "openpower-hdl-cores@mailinglist.openpowerfoundation.org"
+ <openpower-hdl-cores@mailinglist.openpowerfoundation.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>
+
+T24gVGh1LCAyMDIwLTA3LTIzIGF0IDAwOjQxICswMTAwLCBMdWtlIEtlbm5ldGggQ2Fzc29uIExl
+aWdodG9uIHdyb3RlOgo+IAo+IGJlY2F1c2UgaSBkaWQgbm90IGV4cGVjdCB0aGF0IGJlaGF2aW91
+ciwgYmVjYXVzZSBkb2luZyBzbyAoaWdub3JpbmcKPiB0aGVtKSBtYWtlcyBpdCBpbXBvc3NpYmxl
+IHRvIHRyYXAgYW5kIGVtdWxhdGUuICAoaXQgYmVjb21lcyBuZWNlc3NhcnkKPiB0byB1c2UgSklU
+IGFuYWx5c2lzKQo+IAo+IHNvLCB3aGVuIHNvbWUgYml0IGlzIGFkZGVkIGluIHRoZSBmdXR1cmUs
+IGFuIG9sZGVyIHByb2Nlc3NvciAoYW5kIHRoZQo+IGRldmljZSBpdCBpcyBpbikgYmFzaWNhbGx5
+IGhhcyB0byBiZSB0aHJvd24gaW50byBsYW5kZmlsbC4KCkRlcGVuZHMsIGl0IGdvZXMgYm90aCB3
+YXlzLiBGb3IgZXhhbXBsZSwgdGhpcyBpcyB3aGF0IGFsbG93ZWQgdGhlCmFkZGl0aW9uIG9mIGx3
+c3luYyB3aXRob3V0IHRocm93aW5nIG9sZGVyIHByb2Nlc3NvcnMgaW50byB0aGUgbGFuZGZpbGwK
+YmVjYXVzZSBpdCB3b3VsZCBhdXRvbWF0aWNhbGx5ICJlc2NhbGF0ZSIgdG8gYSBmdWxsIHN5bmMg
+b24gcHJvY2Vzc29ycwp0aGF0IGRpZG4ndCBpbXBsZW1lbnQgaXQgKG9yIHNob3VsZCBoYXZlLi4u
+IEZTTCBkaWQgc2NyZXcgdGhhdCB1cCBvbgpzb21lIGNvcmVzKS4KIAo+IGlmIGhvd2V2ZXIgcmVz
+ZXJ2ZWQgYml0cyBiZWluZyBzZXQgY2F1c2UgYW4gZXhjZXB0aW9uLCB0aGUgIm9sZCIKPiBwcm9j
+ZXNzb3Igc3RhbmRzIGEgY2hhbmNlIG9mIGVtdWxhdGluZyB0aGUgbmV3IGJlaGF2aW91ciAoaW4K
+PiBzb2Z0d2FyZSwgZXZlbiBpZiB0aGF0J3Mgc2xvdyksIGdpdmluZyBpdCBhIGNoYW5jZSBvZiBr
+ZWVwaW5nIG91dCBvZgo+IGxhbmRmaWxsIGZvciBzbGlnaHRseSBsb25nZXIuCgpXaGljaCBpcyB3
+aHkgcG93ZXJwYyB0ZW5kcyBub3QgdG8gImFkZCBiaXRzIiB0byBpbnN0cnVjdGlvbnMgdW5sZXNz
+Cmlnbm9yaW5nIHRoZW0gaXMgYSBzYWZlIGZhbGxiYWNrLgoKPiBob3dldmVyIGl0IGlzIG5vdCBh
+cHByb3ByaWF0ZSBmb3IgYWxsIHN5c3RlbXMgdG8gcmFpc2UgZXhjZXB0aW9ucyBvbgo+IHJlc2Vy
+dmVkIGJpdHM6IHRoZSBjb3N0IG9mIGhhdmluZyB0aGUgZGV0ZWN0aW9uIGhhcmR3YXJlIChhIGZ1
+bGwKPiBQT1dFUjkgZGVjb2RlciBhbmQgYWxzbyBpbGxlZ2FsL3Vuc3VwcG9ydGVkL3Jlc2VydmVk
+IFNQUiBkZXRlY3Rpb24pCj4gY2FuIGJlIHZlcnkgaGlnaCBlc3BlY2lhbGx5IGZvciByZXNvdXJj
+ZSBhbmQgcG93ZXIgY29uc3RyYWluZWQKPiBzaWxpY29uIG9yIEZQR0FzLgo+IAo+IChleGFtcGxl
+OiBpIGtub3cgc29tZW9uZSAtIHllYSwgeW91IFNhbSAtIHdobyBpbXBsZW1lbnRlZCBSVjY0IHRv
+Cj4gY29tcGx5IHdpdGggdGhlIFVOSVggUklTQ1Ygc3BlYyByYXRoZXIgdGhhbiB0aGUgRW1iZWRk
+ZWQgUklTQ1Ygc3BlYzoKPiB0aGUgIkNTUiBkZXRlY3Rpb24iIGp1c3QgdG8gc3VwcG9ydCBhbGwg
+dGhlIHplcm9zIGFuZCBpbGxlZ2FsIENTUnMKPiB0b29rIGEgd2hvcHBpbmcgMTUlIG9mIGFuIElD
+RTQwIEZQR0EhKQo+IAo+IGluIFJJU0MtViB0aGV5IGdldCB0aGlzIHJpZ2h0LCBieSBoYXZpbmcg
+dHdvIHNlcGFyYXRlIFBsYXRmb3JtczoKPiAKPiAqIEVtYmVkZGVkIHdoaWNoIGlzIHBlcm1pdHRl
+ZCB0byBpZ25vcmUgcmVzZXJ2ZWQgYml0cyBlbnRpcmVseQo+IAo+ICogVU5JWCwgd2hpY2ggZGVm
+aW5pdGVseSBpcyBub3QuCj4gCj4gZm9yIEVtYmVkZGVkLCB0aGUgdmVuZG9yIGN1c3RvbWlzZXMg
+dGhlIGZpcm13YXJlIGVudGlyZWx5LCBhbmQgYmluYXJ5Cj4gaW50ZXJvcGVyYWJpbGl0eSBhcyB3
+ZWxsIGFzIGxlZ2FjeSBzb2Z0d2FyZSBzdXBwb3J0IGlzIGNvbXBsZXRlbHkKPiB1bmltcG9ydGFu
+dC4KPiAKPiBmb3IgVU5JWGVuLCBpbnRlcm9wZXJhYmlsaXR5IGFuZCBsb25ndGVybSBzdGFiaWxp
+dHkgd2Uga25vdyB2ZXJ5IHdlbGwKPiBpcyBjcml0aWNhbC4KPiAKPiBib3R0b20gbGluZSBpZiBp
+dCBpcyBjb3JyZWN0IHRoYXQgb24gdGhlIFBvd2VySVNBIFVOSVggUGxhdGZvcm0KPiByZXNlcnZl
+ZCBiaXRzIGNhbiBiZSBpZ25vcmVkIHRoYXQgaXMgY2F1c2UgZm9yIHNvbWUgY29uY2Vybiwgd2hl
+cmUKPiBmb3IgRW1iZWRkZWQgaXQgd291bGQgYmUgdGhlIG90aGVyIHdheSByb3VuZDogY2F1c2Ug
+Zm9yIGNvbmNlcm4gaWYKPiB0aGUgcmVzZXJ2ZWQgYml0cyBjb3VsZCAqbm90KiBiZSBpZ25vcmVk
+LgoKRG8geW91IGhhdmUgbW9yZSBzcGVjaWZpYyBjb25jZXJucyBoZXJlID8gSUUuIEFjdHVhbCBl
+eGFtcGxlcyB3aGVyZQp0aGlzIGhhcyBiZWVuIGNhdXNlIG9mIGJyZWFrYWdlIGluIHRoZSBwYXN0
+ID8KCj4gPiA+IGhvd2V2ZXIgdGhpcyBpcyBzbyB1bmNsZWFyIChiZWNhdXNlIG9mIHRoZSByZWZl
+cnJhbCBmcm9tIG9uZQo+ID4gc2VjdGlvbgo+ID4gPiB0byBhbm90aGVyKSB0aGF0IGkgYW0gc2Vl
+a2luZyBjb25maXJtYXRpb24uICBzaG91bGQgd2UgcmFpc2UgYW4KPiA+ID4gImlsbGVnYWwgaW5z
+dHJ1Y3Rpb24iIHdoZW4gIkxFViA+IDEiIG9uIHNjPwo+ID4gCj4gPiBTZWN0aW9uIDEuOC4yIChC
+b29rIEkpIHNheXMgImFueSBhdHRlbXB0IHRvIGV4ZWN1dGUgYW4gaW52YWxpZCBmb3JtCj4gPiBv
+Zgo+ID4gYW4gaW5zdHJ1Y3Rpb24gd2lsbCBlaXRoZXIgY2F1c2UgdGhlIHN5c3RlbSBpbGxlZ2Fs
+IGluc3RydWN0aW9uCj4gPiBoYW5kbGVyIHRvIGJlIGludm9rZWQgb3IgeWllbGQgYm91bmRlZGx5
+IHVuZGVmaW5lZCByZXN1bHRzIi4gCj4gPiBQdXR0aW5nCj4gPiBMRVY9MSBpbiBzYyB3b3VsZCBi
+ZSBhbiBleGFtcGxlIG9mIGFuIGludmFsaWQgZm9ybSAob24gYW4KPiA+IGltcGxlbWVudGF0aW9u
+IHdpdGhvdXQgaHlwZXJ2aXNvciBtb2RlKS4KPiAKPiBvayB0aGF0IGhlbHBzIGNsYXJpZnkgd2hh
+dCB0aGF0IG1lYW5zLCB0aGFuayB5b3UuCj4gIAo+ID4gICBBIGJvdW5kZWRseSB1bmRlZmluZWQg
+cmVzdWx0Cj4gPiBpcyBvbmUgd2hpY2ggY291bGQgYmUgb2J0YWluZWQgYnkgYSBzZXF1ZW5jZSBv
+ZiB2YWxpZCBpbnN0cnVjdGlvbnMsCj4gPiBzbyBpbiB0aGUgY2FzZSBvZiBzYyAxLCBtYWtpbmcg
+aXQgZG8gd2hhdCBzYyAwIGRvZXMgbWVldHMgdGhlCj4gPiBib3VuZGVkbHkgdW5kZWZpbmVkIHJl
+c3VsdHMgcmVxdWlyZW1lbnQuCj4gCj4gb2sgc28gdGhhdC4uLiBpZiBpIGFtIHVuZGVyc3RhbmRp
+bmcgY29ycmVjdGx5LCBtZWFucywgInlvdSBjYW4gaW4KPiBmYWN0IGRvIHNvbWV0aGluZyBkaWZm
+ZXJlbnQgYW5kIE9TIHNvZnR3YXJlIGhhcyB0byBkZXRlY3QgaXQgYW5kIHNvcnQKPiBpdCBvdXQg
+dG8geWllbGQgZXhwZWN0ZWQgYmVoYXZpb3VyIgo+ICAKPiB3aGljaCwgaWYgaSBhbSBiZWluZyBo
+b25lc3QsIG1ha2VzIG1lIG5lcnZvdXMgOikKPiAKPiA+ID4gc2Vjb25kbHksIHdlIG5vdGUgdGhh
+dCAiTEVWPTEiIGlzIGZvciBpbnZvY2F0aW9uIG9mIHRoZQo+ID4gaHlwZXJ2aXNvci4KPiA+ID4g
+d2hhdCdzIG5vdCBjbGVhciB0byB1cyBpcyAtIGdpdmVuIHRoYXQgd2UgYXJlIG5vdCBpbXBsZW1l
+bnRpbmcKPiA+ID4gaHlwZXJ2aXNvciAtIHNob3VsZCB0aGlzIGJlICphbHNvKiB0cmVhdGVkIGFz
+IGFuIGlsbGVnYWwKPiA+IGluc3RydWN0aW9uPwo+ID4gPiBvciwgc2hvdWxkIHdlIGp1c3QgbGVh
+dmUgaXQgdG8gZmFsbCB0aHJvdWdoIHRvIHRyYXAgQCBhZGRyCj4gPiAweDBjMDAsIGFuZAo+ID4g
+PiBleHBlY3QgdGhlIHRyYXAgKnRoZXJlKiB0byBub3RpY2UgYW5kIGRlYWwgd2l0aCB0aGUgc2l0
+dWF0aW9uPwo+ID4gCj4gPiBUaGF0IGlzIHdoYXQgSSB3b3VsZCBkby4KPiAKPiBvay4gIHdlIGNh
+biBkbyB0aGF0Lgo+ICAKPiA+IFRoZXJlIGlzIG9uZSBvZiB0aGUgdmFyaWFudHMgb2YgS1ZNIG9u
+IFBQQywgY2FsbGVkIEtWTS1QUiwgd2hpY2gKPiA+IHJ1bnMKPiA+IHRoZSBndWVzdCBlbnRpcmVs
+eSBpbiB1c2VyIG1vZGUgYW5kIHRyYXBzIGFuZCBlbXVsYXRlcyBhbGwKPiA+IHByaXZpbGVnZWQK
+PiA+IGluc3RydWN0aW9ucyAodGh1cyBpdCBkb2Vzbid0IG5lZWQgaHlwZXJ2aXNvciBtb2RlIGFu
+ZCBjYW4gcnVuCj4gPiBpbnNpZGUKPiA+IGEgZ3Vlc3Qgb2YgYW5vdGhlciBoeXBlcnZpc29yKS4g
+IElmIHlvdSBhcmUgcnVubmluZyBhIEtWTSBndWVzdAo+ID4gaW5zaWRlCj4gPiB0aGF0IGVudmly
+b25tZW50IGFuZCB0aGUgZ3Vlc3QgZG9lcyBzYyAxLCBLVk0tUFIgZXhwZWN0cyB0aGF0IHRvCj4g
+PiBlbmQKPiA+IHVwIGF0IHRoZSBrZXJuZWwncyAweGMwMCBoYW5kbGVyLiAgU28gdGhhdCBpcyBv
+bmUgcmVhc29uIHRvIHRyZWF0Cj4gPiBzYyAxCj4gPiBhcyBzYyAwLgo+IAo+IGFoaC4gIGkgZGlk
+IHdvbmRlciA6KQo+ICAKPiA+ID4gYWxzbzogaWYgd2Ugc2V0IHRoZSBIViBiaXQgaW4gTVNSICh3
+aGVuIExFVj0xKSBzZWN0aW9uIDYuNS4xNAo+ID4gcDEwNzcKPiA+ID4gd2hpY2ggcmVmZXJzIHVz
+IGJhY2sgdG8gZmlndXJlIDY1IG9uIHAxMDY0LCB3aWxsIHRoaXMgImJyZWFrIgo+ID4gdGhpbmdz
+Pwo+ID4gCj4gPiBQcm9iYWJseSBub3QuICBMaW51eCBkb2VzIGNoZWNrIHdoZXRoZXIgSFY9MSBh
+dCBib290IHRpbWUsIGJ1dCBJJ20KPiA+IHByZXR0eSBzdXJlIHRoYXQncyBvbmx5IG9uIGNlcnRh
+aW4gcHJvY2Vzc29ycyB3aGljaCBpdCBrbm93cyB0byBiZQo+ID4gSFYtY2FwYWJsZSAoZWl0aGVy
+IGJ5IGxvb2tpbmcgYXQgUFZSIG9yIHRoZSBkZXZpY2UgdHJlZSkuCj4gCj4gb2suICB0aGFuayB5
+b3UuCj4gIAo+ID4gPiBhbHNvOiBpbiBtaWNyb3dhdHQsIGknbSBub3Qgc2VlaW5nIHRoZSByZW1h
+aW5pbmcgYml0cyB3aGljaAo+ID4gYXBwZWFyIFt0bwo+ID4gPiBuZWVkIHRvXSBiZSBzZXQuCj4g
+PiA+IAo+ID4gPiAKPiA+IGh0dHBzOi8vZ2l0aHViLmNvbS9hbnRvbmJsYW5jaGFyZC9taWNyb3dh
+dHQvYmxvYi9tYXN0ZXIvZXhlY3V0ZTEudmhkbCNMNDc5Cj4gPiA+ICAgICAgICAgICAgIGN0cmxf
+dG1wLm1zcihNU1JfU0YpIDw9ICcxJzsKPiA+ID4gICAgICAgICAgICAgY3RybF90bXAubXNyKE1T
+Ul9FRSkgPD0gJzAnOwo+ID4gPiAgICAgICAgICAgICBjdHJsX3RtcC5tc3IoTVNSX1BSKSA8PSAn
+MCc7Cj4gPiA+ICAgICAgICAgICAgIGN0cmxfdG1wLm1zcihNU1JfSVIpIDw9ICcwJzsKPiA+ID4g
+ICAgICAgICAgICAgY3RybF90bXAubXNyKE1TUl9EUikgPD0gJzAnOwo+ID4gPiAgICAgICAgICAg
+ICBjdHJsX3RtcC5tc3IoTVNSX1JJKSA8PSAnMCc7Cj4gPiA+ICAgICAgICAgICAgIGN0cmxfdG1w
+Lm1zcihNU1JfTEUpIDw9ICcxJzsKPiA+ID4gCj4gPiA+IHRoZXNlIGFwcGVhciB0byBiZSBjb3Jy
+ZWN0IGFzIGRlZmluZWQgYWNjb3JkaW5nIHRvIGZpZ3VyZSA2NQo+ID4gKHAxMDYzKQo+ID4gPiAK
+PiA+ID4gaG93ZXZlciB0aGUgcmVtYWluaW5nIGFjdGlvbnMgZG8gbm90IHNlZW0gdG8gYmUgaW1w
+bGVtZW50ZWQKPiA+IChwMTA2NCk6Cj4gPiA+IAo+ID4gPiAgICAgIEJpdHMgYml0IDUsIFRNLCBW
+RUMsIFZTWCwgUFIsIEZQLCBhbmQgUE1NIGFyZSBzZXQgdG8gMC4KPiA+ID4gICAgICBUaGUgVEUg
+ZmllbGQgaXMgc2V0IHRvIDBiMDAuCj4gPiA+ICAgICAgVE0sIEZQLCBWRUMsIFZTWCwgYW5kIGJp
+dCA1IGFyZSBzZXQgdG8gMC4KPiA+IAo+ID4gUmlnaHQuICBXZSBoYXZlIGEgdG8tZG8gbGlzdCBm
+b3IgYXJjaGl0ZWN0dXJlIGNvbXBsaWFuY2UuICAoV2UKPiA+IGhhdmVuJ3QKPiA+IGltcGxlbWVu
+dGVkIDMyLWJpdCBtb2RlIG9yIEJFIG1vZGUsIGZvciBpbnN0YW5jZS4pCj4gCj4geWVhaGggYWx0
+aG91Z2ggd2UgaGF2ZSAzMiBiaXQgb3AgbW9kZXMgKHVzaW5nIG1pY3Jvd2F0dCAKPiBkZWNvZGUx
+LnZoZGwsIHR1cm5lZCBpbnRvIENTVikgd2UgaGF2ZSB5ZXQgdG8gc3VwcG9ydCB0aGUgTVNSIDMy
+Yml0Cj4gZ2xvYmFsIG1vZGUuCj4gCj4gTEUvQkUgYW1hemluZ2x5IHNlZW1zIHRvIHdvcmsgb24g
+TGlicmVTT0MsIGl0IHdhcyBxdWl0ZSBmdW5ueSBoYXZpbmcKPiB0aGUgdHJhcCBqdW1wIGludG8g
+MHg3MDAgd2hlbiB0ZXN0aW5nIGFnYWluc3QgcWVtdSAocnVubmluZwo+IHNpbmdsZXN0ZXAgdW5k
+ZXIgZ2RiKSwgb25seSB0byBmaW5kIHRoYXQgcWVtdSB0cmFwcyBjaGFuZ2UgdGhlIExFIGJpdAo+
+IGFuZCBvZiBjb3Vyc2UgaW4gcWVtdSBvbmNlIHRoYXQncyBjaGFuZ2VkIGdkYiBjYW4ndCByZWFk
+IHJlZ2lzdGVycwo+IGNvcnJlY3RseS4gc2lnaC4KCkl0IGNhbiBpZiB5b3UgbWFudWFsbHkgY2hh
+bmdlIGVuZGlhbiBpbiBnZGIgbm8gPwoKPiA+ID4gcXVlc3Rpb246IHdoYXQgZWZmZWN0IHdvdWxk
+IGl0IGhhdmUgLSBiZWFyIGluIG1pbmQgdGhhdCB3ZSBhcmUKPiA+ID4gZm9sbG93aW5nIG1pY3Jv
+d2F0dCAtIGlmIHdlIGltcGxlbWVudGVkIHRoZXNlIGNoYW5nZXMgdG8gTVNSPyAKPiA+IGJlYXIg
+aW4KPiA+ID4gbWluZCB0aGF0IHdlIGlnbm9yZSBtb3N0IG9mIHRoZW0gYXQgdGhlIG1vbWVudCAo
+TVNSLkxFIGJlaW5nIG9uZQo+ID4gPiBub3RhYmxlIGV4Y2VwdGlvbiksIHNvIHRoZSBxdWVzdGlv
+biBpcywgaW4gZWZmZWN0OiBkb2VzIHRoZSBMaW51eAo+ID4gPiBrZXJuZWwgKmFsc28qIGlnbm9y
+ZSB0aGVtPwo+ID4gCj4gPiBUaGUgTGludXgga2VybmVsIGNsZWFybHkgbmVlZHMgUFIgdG8gYmUg
+c2V0IHRvIHplcm8gYW5kIGl0IGFsc28KPiA+IGV4cGVjdHMgRlAsIFZFQywgVlNYLCBUTSB0byBi
+ZSBjbGVhcmVkLiAgU2V0dGluZyBURSB0byAwIGlzCj4gPiBuZWNlc3NhcnkKPiA+IG9uY2UgeW91
+IGltcGxlbWVudCB0aGUgdHJhY2UgaW50ZXJydXB0LCBvdGhlcndpc2UgeW91IGNvdWxkIGdldCBh
+Cj4gPiB0cmFjZSBpbnRlcnJ1cHQgaW5zaWRlIHlvdXIgZmlyc3QtbGV2ZWwgaW50ZXJydXB0IGhh
+bmRsZXJzLCB3aGljaAo+ID4gd291bGQgYmUgYmFkLgo+IAo+IGFoIDopCj4gIAo+ID4gIFNpbWls
+YXJseSBpZiB5b3UgaGF2ZSBmbG9hdGluZy1wb2ludCBhbmQgeW91IGRvbid0IHNldAo+ID4gRkUw
+IGFuZCBGRTEgdG8gMCBvbiBhbiBpbnRlcnJ1cHQsIHRoZXJlIGlzIHRoZSBjaGFuY2Ugb2YgdGFr
+aW5nIGEKPiA+IGZsb2F0aW5nLXBvaW50IHByb2dyYW0gaW50ZXJydXB0IGluc2lkZSBhIGZpcnN0
+LWxldmVsIGhhbmRsZXIuCj4gCj4gd2hvb3BzLiAgb2sgYXBwcmVjaWF0ZSB0aGUgd2FybmluZy4K
+PiAgCj4gPiBJJ20gbm90IHN1cmUgdGhhdCBhbGwgdGhpcyBjb3VudHMgYXMgdGhlIExpbnV4IGtl
+cm5lbCAiaWdub3JpbmciCj4gPiB0aGUKPiA+IGJpdHMsIGJ1dCBpbiBnZW5lcmFsIGlmIHlvdSBk
+byB3aGF0IHRoZSBhcmNoaXRlY3R1cmUgc2F5cywgdGhlCj4gPiBrZXJuZWwKPiA+IHdpbGwgYmUg
+aGFwcGllciB0aGFuIGlmIHlvdSBkb24ndC4KPiAKPiBoYSwgdGhhdCBtYWtlcyBzZW5zZS4KPiAK
+PiBpIGdlbmVyYWxseSBmb3VuZCB0aGlzIG91dCB3aGVuIG5ldHdvcmsgcmV2ZXJzZS1lbmdpbmVl
+cmluZywgZGVzcGl0ZQo+IG5vdCB1bmRlcnN0YW5kaW5nIGF0IGFsbCB3aGF0IGkgd2FzIHNlbmRp
+bmcgdG8gdGhlIGNsaWVudCBvciBzZXJ2ZXIKPiA6KQo+IAo+IHRoYW5rIHlvdSBQYXVsCj4gCj4g
+bC4KPiAKPiAKPiAKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
+X19fXwo+IE9wZW5QT1dFUi1IREwtQ29yZXMgbWFpbGluZyBsaXN0Cj4gT3BlblBPV0VSLUhETC1D
+b3Jlc0BtYWlsaW5nbGlzdC5vcGVucG93ZXJmb3VuZGF0aW9uLm9yZwo+IApodHRwOi8vbGlzdHMu
+bWFpbGluZ2xpc3Qub3BlbnBvd2VyZm91bmRhdGlvbi5vcmcvbWFpbG1hbi9saXN0aW5mby9vcGVu
+cG93ZXItaGRsLWNvcmVzCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
+X19fX19fX18KbGlicmUtcmlzY3YtZGV2IG1haWxpbmcgbGlzdApsaWJyZS1yaXNjdi1kZXZAbGlz
+dHMubGlicmUtcmlzY3Yub3JnCmh0dHA6Ly9saXN0cy5saWJyZS1yaXNjdi5vcmcvbWFpbG1hbi9s
+aXN0aW5mby9saWJyZS1yaXNjdi1kZXYK
+