Re: [libre-riscv-dev] experimental code & monorepo
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Sun, 3 May 2020 11:02:11 +0000 (12:02 +0100)
committerlibre-riscv-dev <libre-riscv-dev@lists.libre-riscv.org>
Sun, 3 May 2020 11:02:46 +0000 (12:02 +0100)
8d/3d78ba60d49b798223f28cc65bd03c682cde14 [new file with mode: 0644]

diff --git a/8d/3d78ba60d49b798223f28cc65bd03c682cde14 b/8d/3d78ba60d49b798223f28cc65bd03c682cde14
new file mode 100644 (file)
index 0000000..75ea93c
--- /dev/null
@@ -0,0 +1,176 @@
+Return-path: <libre-riscv-dev-bounces@lists.libre-riscv.org>
+Envelope-to: publicinbox@libre-riscv.org
+Delivery-date: Sun, 03 May 2020 12:02:47 +0100
+Received: from localhost ([::1] helo=libre-riscv.org)
+       by libre-soc.org with esmtp (Exim 4.89)
+       (envelope-from <libre-riscv-dev-bounces@lists.libre-riscv.org>)
+       id 1jVCOU-0000Ao-4L; Sun, 03 May 2020 12:02:46 +0100
+Received: from lkcl.net ([217.147.94.29])
+ by libre-soc.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
+ (Exim 4.89) (envelope-from <lkcl@lkcl.net>) id 1jVCOS-0000Af-47
+ for libre-riscv-dev@lists.libre-riscv.org; Sun, 03 May 2020 12:02:44 +0100
+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=1pF9hyqep+icuZV5I7Hz3RwnoPdtARG6yHfYG0KgBp0=; 
+ b=JAXc0xBtMeSaZWtbF2KlRKS22o9oA3YoluVXUr45tQfl2LiQ6MRAB0K/oykBznXMwCC1OTzWJg+QdWF5wfSUgl+oQlPHfeCpqQrdDSyfxk14nnAGPJc+7ND6N0Kaj8xnznS3uS+X/BYoxN7L/dwE5Sp6ptdNcJ1vM2icAIvxBM0=;
+Received: from mail-lf1-f47.google.com ([209.85.167.47])
+ by lkcl.net with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
+ (Exim 4.84_2) (envelope-from <lkcl@lkcl.net>) id 1jVCOR-0003AB-QG
+ for libre-riscv-dev@lists.libre-riscv.org; Sun, 03 May 2020 11:02:43 +0000
+Received: by mail-lf1-f47.google.com with SMTP id a9so1849210lfb.8
+ for <libre-riscv-dev@lists.libre-riscv.org>;
+ Sun, 03 May 2020 04:02:28 -0700 (PDT)
+X-Gm-Message-State: AGi0Pubk1rSz2kkGsXhtmVHtJXHidXyDTg/mkQZ14tS2MePsUU9ahvcC
+ VFOz0x3es8zg5NvpoADLTpjCJCaK/eWNx2G6yhs=
+X-Google-Smtp-Source: APiQypImO4qSE/HYXF7nGMtZ76fVqdS/zofZp6S665ej2U6uB4ix0zn8WnJGPyBRPElIJ/rGIKtNZHTctx65e/HQ3b0=
+X-Received: by 2002:ac2:5684:: with SMTP id 4mr7986719lfr.88.1588503742670;
+ Sun, 03 May 2020 04:02:22 -0700 (PDT)
+MIME-Version: 1.0
+References: <A834A1B9-5B29-411C-8EFF-75562B46B596@gatech.edu>
+ <9458BF50-C9A6-44E5-AC7B-4A3891DE6CC1@gatech.edu>
+ <CAC2bXD7fw-mX9F_cNwfZg_dBpoRP-YHBB9vWqHzPLqC--WkUvQ@mail.gmail.com>
+In-Reply-To: <CAC2bXD7fw-mX9F_cNwfZg_dBpoRP-YHBB9vWqHzPLqC--WkUvQ@mail.gmail.com>
+From: Luke Kenneth Casson Leighton <lkcl@lkcl.net>
+Date: Sun, 3 May 2020 12:02:11 +0100
+X-Gmail-Original-Message-ID: <CAPweEDyvYgO0SUAQMuwuFPEpi7u4snbUJ1NxrKMuocBqmQeJEQ@mail.gmail.com>
+Message-ID: <CAPweEDyvYgO0SUAQMuwuFPEpi7u4snbUJ1NxrKMuocBqmQeJEQ@mail.gmail.com>
+To: Libre-RISCV General Development <libre-riscv-dev@lists.libre-riscv.org>
+Subject: Re: [libre-riscv-dev] experimental code & monorepo
+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>
+
+LS0tCmNyb3dkLWZ1bmRlZCBlY28tY29uc2Npb3VzIGhhcmR3YXJlOiBodHRwczovL3d3dy5jcm93
+ZHN1cHBseS5jb20vZW9tYTY4CgpPbiBTdW4sIE1heSAzLCAyMDIwIGF0IDU6NDkgQU0gSmFjb2Ig
+TGlmc2hheSA8cHJvZ3JhbW1lcmpha2VAZ21haWwuY29tPiB3cm90ZToKPgo+IE9uIFNhdCwgTWF5
+IDIsIDIwMjAsIDExOjQ3IFllaG93c2h1YSA8eWltbWFudWVsM0BnYXRlY2guZWR1PiB3cm90ZToK
+Pgo+ID4gQWxzbyAtIHdlIGhhdmUgc29tZSBleHBlcmltZW50YWwgZmlsZXMgaW4gdGhlIFNPQyBy
+ZXBvLgo+ID4gSSB0aGluayBpdCBpcyBhIGdvb2QgcHJhY3RpY2UgdG8gbWFrZSBhbiBleHBlcmlt
+ZW50YWwgYnJhbmNoIGluc3RlYWQuCj4KPgo+ID4gVGhvdWdodHM/Cj4gPgo+Cj4gV2UgcmVhbGx5
+IHNob3VsZCBtb3ZlIGFsbCBjb2RlIHRoYXQncyBub3QgYWN0dWFsbHkgdXNlZCBpbiB0aGUgZmlu
+YWwgc29jIHRvCj4gaXRzIG93biBmb2xkZXIgb3IgYnJhbmNoIC0tIGN1cnJlbnRseSwgdGhlcmUg
+aXMgbG90cyBvZiB1bnVzZWQgY29kZSB0aGF0Cj4gZWl0aGVyIHdhcyB1c2VkIGluIHRoZSBwYXN0
+IG9yIHdlIGludGVuZCB0byBldmVudHVhbGx5IHVzZSBvciBldmVuIG5ldmVyCj4gaW50ZW5kZWQg
+dG8gdXNlCgpzaWdoIHRoaXMgaXMgYmVjYXVzZSB3ZSB3ZXJlIHBsYW5uaW5nIHRvIHVzZSBSSVND
+LVYgYW5kIGNvbnNlcXVlbnRseSwKcGxhbm5pbmcgYWhlYWQsIGRldmVsb3BlZCBhbmQgZHJvcHBl
+ZGluIGEgdG9uIG9mIGNvZGUgKnNwZWNpZmljYWxseSoKaW50ZW5kZWQgdG8gbWVldCBSSVNDLVYg
+TU1VIHJlcXVpcmVtZW50cyBmb3IgU01QIGNhY2hlLWNvaGVyZW50CnN5c3RlbXMuCgppJ3ZlIG1v
+dmVkIHR3byBkaXJlY3RvcmllcyBpbnRvICJ1bnVzZWQiLiAgYSBiZXR0ZXIgbmFtZSBjYW4gYmUg
+Y2hvc2VuIGxhdGVyCgo+IChsb3RzIG9mIG1pbmVydmEKCmFsbCBvZiBtaW5lcnZhCgo+IGFuZCBz
+b21lIG9mIHRoZSBGUCBjb2RlKQoKdGhlcmUgZGVmaW5pdGVseSBzaG91bGQgbm90IGJlICphbnkq
+IEZQLXJlbGF0ZWQgY29kZSBpbiB0aGUgc29jIHJlcG8uCnRoaXMgaXMgZGVsaWJlcmF0ZSBhdCB0
+aGUgbW9tZW50CgoKPiBhbmQgd2FzIG9ubHkgZXZlciByZWZlcmVuY2UgY29kZSB0byBiYXNlIG91
+ciBuZXcgY29kZSBvbi4KCm5vLCB0aGUgcmVhc29uIGkgZHJvcHBlZCBtaW5lcnZhIGludG8gdGhl
+IHRyZWUgd2FzIHRvICp1c2UqIHRoYXQgY29kZSwKbm90IHRvICJiYXNlIiBvdXIgbmV3IGNvZGUg
+b24uICBkZWZpbml0ZWx5IG5vdCBhcyAicmVmZXJlbmNlIGNvZGUgdG8KbG9vayBhdCIuICBhY3R1
+YWxseSBtb3ZlIG9yIGNvcHkgdGhhdCBjb2RlICpvdXQqIG9mIHRoZSBtaW5lcnZhCnN1YmRpcmVj
+dG9yeSBhbmQgKmFkYXB0KiBpdC4KCnRvIHNhdmUgYSBodWdlIGFtb3VudCBvZiB0aW1lICh3aGlj
+aCB3ZSBkbyBub3QgaGF2ZSBzcGFyZSB0byB3cml0ZSBvdXIKb3duIGNvZGUpLCB0aGlzIGlzIHN0
+aWxsIHRoZSBwbGFuIGZvciB0aGUgZW50aXJlIEwxIGNhY2hlCmluZnJhc3RydWN0dXJlIGRvd24g
+dG8gdGhlIHdpc2hib25lIGludGVyZmFjZXMsIGFzIG91dGxpbmVkIGluIHRoZQpib3R0b20gaGFs
+ZiBvZiB0aGlzIGRpYWdyYW06CgpodHRwczovL2xpYnJlLXNvYy5vcmcvM2RfZ3B1LzE4MG5tX3Np
+bmdsZV9jb3JlX3Rlc3Rhc2ljX21lbWxheW91dC5qcGcKCgoqIG1vZGlmeWluZyB0aGUgTDEgY2Fj
+aGUgd2lkdGggdG8gMTI4IGJpdHMsCiogZG91YmxpbmcgdGhlbSB1cCAob2RkL2V2ZW4sIGFkZHJl
+c3NhYmxlIGJ5IGFkZHJbNF0pLAoqIHNwbGl0dGluZyB0byBkdWFsIDY0LWJpdCBpbnRlcmZhY2Vz
+IG9uIHRoZSBvdXRwdXQgKHRvIG1lZXQgV2lzaGJvbmUKcmVxdWlyZW1lbnRzKQoqIGFuZCBsb2Nh
+dGluZyBhIHN1aXRhYmxlIFdpc2hib25lIEFyYml0ZXIgZm9yIHRoZSBwdXJwb3NlIG9mIG1lcmdp
+bmcKdGhlICpmb3VyKiByZXN1bHRhbnQgNjQtYml0IGludGVyZmFjZXMgb250byB0aGUgb25lIDY0
+LWJpdCBXaXNoYm9uZQpCdXMuCgp0aGUgcmVhc29uIGZvciBkb2luZyB0aGlzIGlzIGFzIGkgc2Fp
+ZCBpIHRoaW5rIHllc3RlcmRheSwgaXMgdG8gc2F2ZSBhCmh1Z2UgYW1vdW50IG9mIHRpbWUgKHdo
+aWNoIHdlICpkbyBub3QgaGF2ZSBzcGFyZSopIGFuZCB0byBtYWtlIHVzZSBvZgp0aGUgTWluZXJ2
+YSBMMSBDYWNoZSBGb3JtYWwgQ29ycmVjdG5lc3MgUHJvb2YgKHdoaWNoIHdlIGxpa2V3aXNlIGRv
+Cm5vdCBoYXZlIHRoZSB0aW1lIHRvIHJlcGxpY2F0ZSkKCndpdGggbm8gdGltZSBsZWZ0IHRvIGFk
+ZCBkdWFsIFJJU0MtViBzdXBwb3J0LCBvdGhlciB0aGFuIHN1cHBvcnQKbW9kdWxlcyBmb3IgdGhl
+IEwxIGNhY2hlIGNvZGUgKHdpc2hib25lIHV0aWxzKSB0aGUgcmVzdCBvZiB0aGUgbWluZXJ2YQpj
+b2RlIGNhbiBiZSBkaXNjYXJkZWQuCgoKPiBBbGwgb2YgdGhhdCBtYWtlcyBpdCB2ZXJ5IGNvbmZ1
+c2luZwo+IHRvIG5ld2NvbWVycyBhbmQgcGFydGlhbGx5IGNvbmZ1c2luZyBmb3IgcGVvcGxlIHdo
+byBhcmVuJ3QgbmV3Y29tZXJzCj4gYW55bW9yZSAtLSBJIG15c2VsZiBjb3VsZG4ndCBwb2ludCBv
+dXQgd2l0aCBhbnkgZGVncmVlIG9mIGNlcnRhaW50eSBhbGwgdGhlCj4gY29kZSB0aGF0IHdlIGFj
+dHVhbGx5IGludGVuZCB0byB1c2UgZXZlbiB0aG91Z2ggSSd2ZSBiZWVuIGhlcmUgbG9uZ2VyIHRo
+YW4KPiBuZWFybHkgZXZlcnlvbmUgZWxzZS4KCnlvdSd2ZSBiZWVuIGZvY3Vzc2luZyBvbiBLYXph
+biwgd2hpY2ggaXMgZ3JlYXQuCgppIF9oYXZlXyBiZWVuIHNlbmRpbmcgbWVzc2FnZXMgdG8gdGhl
+IGxpc3QgKGFuZCBhbHNvIHRocm91Z2ggdGhlCmJ1Z3RyYWNrZXIpLCBkZXNjcmliaW5nIHdoYXQg
+aSdtIGRvaW5nIChhbmQgd2h5KSAtIGdlbmVyYWxseSBpIGRvIG5vdApyZWNlaXZlIGEgcmVzcG9u
+c2UuCgp0aGUgcmVhc29uIGZvciBzZW5kaW5nIHRob3NlIG1lc3NhZ2VzIHdhcyB0byBnaXZlIHBl
+b3BsZSBhbgpvcHBvcnR1bml0eSB0byByZXZpZXcgYW5kIGZvbGxvdyB0aGUgY29kZS4gIGlmIHBl
+b3BsZSBoYWQgcmVzcG9uZGVkCndpdGggcXVlc3Rpb25zLCB0aGVyZSB3b3VsZCBiZSBsZXNzIGNv
+bmZ1c2lvbiByaWdodCBub3cgYmVjYXVzZSBhbnkKaXNzdWVzIHdvdWxkIGhhdmUgYmVlbiBjbGVh
+cmVkIHVwIGF0IHRoZSB0aW1lLgoKdGhhdCBzYWlkLCBpIGFwcHJlY2lhdGUgdGhhdCBpdCdzIGNv
+bXBsZXggY29kZS4KCmluIGVmZmVjdCwgd2hhdCB3ZSBoYXZlIGhlcmUgaXM6IHdlJ3JlIG5vdCBy
+ZWFsbHkgd29ya2luZyB0b2dldGhlciBhcwphIHRlYW0uICB3ZSdyZSBub3QgY29sbGFib3JhdGlu
+Zzogd2UncmUgd29ya2luZyBpbiBpc29sYXRpb24gb24Kc2VwYXJhdGUgY29tcG9uZW50cywgdmVy
+eSByYXJlbHkgaW50ZXJhY3RpbmcuCgp3ZSdyZSBub3cgc2VyaW91c2x5IHVuZGVyIHRpbWUgcHJl
+c3N1cmU6IGkgY291bnQgYXBwcm94aW1hdGVseSAxNQp3ZWVrcyBiZWZvcmUgd2UgaGF2ZSB0byBi
+ZWdpbiB0aGUgY29yaW9saXMyIGxheW91dC4KCnRoYXQncyAxNSB3ZWVrcy4uLiAqaW4gd2hpY2gg
+dG8gY29tcGxldGUgdGhlIGVudGlyZSBkZXNpZ24qLCBieQphcHByb3hpbWF0ZWx5IG1pZC1hdWd1
+c3QuCgpzbyB3ZSAqaGF2ZSogdG8gc3RhcnQgd29ya2luZyB0b2dldGhlciwgbWFrZSBhcyBtdWNo
+IHVzZSBvZgpwcmUtZXhpc3RpbmcgY29kZSBhcyBwb3NzaWJsZSwgYW5kIGN1dCBzb21lIHNlcmlv
+dXMgZHJhY29uaWFuIGNvcm5lcnMKb24gd2hhdCBhY3R1YWxseSBnb2VzIGludG8gdGhlIHRlc3Qg
+Y2hpcC4KCmknZCB3ZWxjb21lIHNvbWUgZGlzY3Vzc2lvbiBvbiBob3cgdG8gcHJvY2VlZCBoZXJl
+LgoKCj4gQWRkaXRpb25hbGx5LCBJJ2QgYWR2b2NhdGUgZm9yIGFsbCBIREwgY29kZSAoYXQgbGVh
+c3Qgc29jLCBpZWVlNzU0ZnB1LCBhbmQKPiBubXV0aWwpIHRvIGJlIG1vdmVkIHRvIG9uZSByZXBv
+CgpzZWUgYmVsb3cKCj4gKGVzcGVjaWFsbHkgaW5jbHVkaW5nIHRoZSBkYXRhIGZpbGVzCj4gY3Vy
+cmVudGx5IGhvc3RlZCBvbiB0aGUgd2lraSAtLSBsaWJyZS1zb2Mub3JnIHNob3VsZG4ndCBuZWVk
+IHRvIGJlCj4gb25saW5lL2FjY2Vzc2libGUgdG8gYnVpbGQgaWYgc29tZW9uZSBnZXRzIHRoZSBn
+aXQgcmVwb3Mgc29tZSBvdGhlciB3YXkpCgp0aGF0J3MgYmVlbiBjaGFuZ2VkIChhcyBpbnRlbmRl
+ZCwgdGhhbmsgeW91IG1pY2hhZWwpIHRvIHVzZSB0aGUgZ2l0CnN1Ym1vZHVsZSB2ZXJzaW9uIHJh
+dGhlciB0aGFuIGh0dHAgZ2V0LiAgc3VibW9kdWxlcyBoYXMgYmVlbiBhCm51aXNhbmNlIChhbHJl
+YWR5KSBzbyBpJ20gaW5jbGluZWQgdG8gYWdyZWUgdGhhdCBub3QgdXNpbmcgdGhlbSBmb3IKdGhl
+IC5jc3YgKGFuZCBldmVuIHRoZSBwc2V1ZG9jb2RlIC5tZHduKSBpcyBhIGdvb2QgaWRlYS4KCndo
+YXQgdG8gcmVwbGFjZSBpdCB3aXRoOiB0aGVyZSdzIG5vIGdvb2Qgb3B0aW9ucyBoZXJlLgoKCj4g
+YW5kIHVzaW5nIHN1Ym1vZHVsZXMgZm9yIG9mdGVuIHVwZGF0ZWQgZXh0ZXJuYWwgZGVwZW5kZW5j
+aWVzIChubWlnZW4gYXQKPiBsZWFzdCksCgp0aGUgZXhwZXJpZW5jZSB3ZSd2ZSBoYWQgLSBhbHJl
+YWR5IC0gb2YgdXNpbmcgc3VibW9kdWxlcyBpcyBhIHJveWFsCnBhaW4gaW4gdGhlIG5lY2suICBj
+b21taXRzIHdoaWNoIGludm9sdmUgY2hhbmdpbmcgb2YgZmlsZXMgKmFuZCoKY2hhbmdpbmcgc3Vi
+bW9kdWxlcyBkbyAqbm90KiBtZXJnZSBwcm9wZXJseSwgYW5kIGkgYWN0dWFsbHkgaGFkIHRvIHVz
+ZQpyZWJhc2UgLS1za2lwIGZvciB0aGUgZmlyc3QgdGltZSAtIGV2ZXIgLSBpbiBvcmRlciB0byBy
+ZWNvdmVyIHRoZQpyZXBvc2l0b3J5LiAgdGhpcyBsb3N0IHNvbWUgd29yayBieSBtaWNoYWVsLgoK
+aSdtIGluY2xpbmVkIHRvIHN1Z2dlc3QgKGFzIHdlIGRpc2N1c3NlZCBvbiB0aGUgY29yaW9saXMy
+IGJ1ZywKYnJpZWZseSkgdGhhdCBhbiAqaW5kZXBlbmRlbnQqIHRvcC1sZXZlbCByZXBvIGJlIGNy
+ZWF0ZWQgdGhhdCAiam9pbnMiCiphbGwqIHNvdXJjZSBjb2RlIC0gYW5kIHRvb2xzIC0gdG9nZXRo
+ZXIuICB0aGlzIHRvICpuZXZlciosIHVuZGVyIGFueQpjaXJjdW1zdGFuY2VzLCBoYXZlIGFjdHVh
+bCBmaWxlcyBhZGRlZCB0byBpdCAod2l0aCB0aGUgZXhjZXB0aW9uIG9mIGEKUkVBRE1FLCBzYXlp
+bmcgInBsZWFzZSByZWFkIGRvY3VtZW50YXRpb24gYXQgbG9jYXRpb24gWCBhbmQgcGxlYXNlIGRv
+Cm5vdCBlZGl0IHRoaXMgZmlsZSBmdXJ0aGVyIikuCgo+IHNpbmNlIHRoYXQgaGVscHMgdGllIGFs
+bCB0aGUgY29kZSB0b2dldGhlciBzbyBvbmUgY29tbWl0IGlkIGlzCj4gc3VmZmljaWVudCB0byBk
+ZXNjcmliZSB0aGUgc3RhdGUgb2YgYWxsIHRoZSBjb2RlIHRoYXQncyB0aWdodGx5Cj4gaW50ZXJj
+b25uZWN0ZWQuIFNlZSBMTFZNIHN3aXRjaGluZyB0byBhIG1vbm9yZXBvIGZvciBhbiBleGFtcGxl
+IG9mIGhvdyB0aGlzCj4gaXMgYSBnb29kIGlkZWEuCgppZiB0aGUgSUVFRTc1NCBGUCBjb2RlIGhh
+ZCBub3QgYmVlbiBkZXNpZ25lZCAtIGZyb20gdGhlIHN0YXJ0IC0gdG8gYmUKYSBnZW5lcmFsLXB1
+cnBvc2UgaW5kZXBlbmRlbnQgbGlicmFyeSBhbmQgdG9vbGtpdCwgaSB3b3VsZCBhZ3JlZQppbW1l
+ZGlhdGVseSB3aXRoIHRoYXQuCgpob3dldmVyIGl0IHdhcyBuZXZlciBpbnRlbmRlZCAtIGV2ZXIg
+LSByaWdodCBmcm9tIHRoZSBzdGFydCAtIHRvIGJlIGEKc3BlY2lmaWMgaGFyZC1jb2RlZCBpc29s
+YXRlZCBvdXItdXNlLW9ubHkgRlAgbGlicmFyeS4gIGxpa2V3aXNlCm5tdXRpbCwgYnkgdmlydHVl
+IG9mIGl0IG1pcnJvcmluZyB0aGUgQ2hpc2VsIGxpYnJhcnkgZnJvbSB3aGljaCB3ZSBnb3QKdGhl
+IFF1ZXVlIGNsYXNzLgoKdGhpcyBoZWxwZWQgdXMgdG8gZ2V0IGFkZGl0aW9uYWwgZnVuZGluZyBh
+bmQgbWFrZSB0aGUgY2FzZSBmb3IgdGhlCnByb2plY3QgYmVpbmcgdmFsdWFibGUgKm91dHNpZGUq
+IG9mIHRoZSBzY29wZSBvZiB3aGF0IHdlIGFyZSBkb2luZywgdG8KYSB3aWRlciBjb21tdW5pdHks
+IGFuZCBoZWxwcyBzdHJlbmd0aGVuIE5MTmV0J3Mgcm9sZSBhcyBhIHZhbHVhYmxlCmJhY2tlciBv
+ZiBIYXJkd2FyZS9Tb2Z0d2FyZSBMaWJyZS4KCm5tdXRpbCB0aGVuIGZhbGxzIG5hdHVyYWxseSBp
+bnRvIHRoZSBjYXRlZ29yeSBvZiBiZWluZyB1c2VmdWwgYnkKKmJvdGgqIHJlcG9zaXRvcmllcywg
+YW5kIHRoYXQncyBleGFjdGx5IGFzIGl0J3Mgc3VwcG9zZWQgdG8gYmUuCgphbGwgdGhyZWUgYXJl
+IHRoZXJlZm9yZSBhY3R1YWxseSBpbmRlcGVuZGVudCBwcm9qZWN0cy4gIHB1dHRpbmcgdGhlaXIK
+c291cmNlIGludG8gYSBzaW5nbGUgcmVwb3NpdG9yeSBoYXMgZGV0cmltZW50YWwgaW1wbGljYXRp
+b25zLiAgaXQgYWxzbwpyZXN1bHRzIGluIGNvbmZ1c2lvbiBhYm91dCB3aGF0IHRoZSByb2xlcyBv
+ZiBlYWNoIG9mIHRob3NlIHRocmVlCmluZGVwZW5kZW50IHByb2plY3RzIGlzLgoKbC4KCl9fX19f
+X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpYnJlLXJpc2N2LWRl
+diBtYWlsaW5nIGxpc3QKbGlicmUtcmlzY3YtZGV2QGxpc3RzLmxpYnJlLXJpc2N2Lm9yZwpodHRw
+Oi8vbGlzdHMubGlicmUtcmlzY3Yub3JnL21haWxtYW4vbGlzdGluZm8vbGlicmUtcmlzY3YtZGV2
+Cg==
+