[libre-riscv-dev] Some recent documenting of work performed for tape-out
[libre-riscv-dev.git] / d6 / c7e949db5a5830349da1f80af5ae5b2399eb13
1 Return-path: <libre-riscv-dev-bounces@lists.libre-riscv.org>
2 Envelope-to: publicinbox@libre-riscv.org
3 Delivery-date: Wed, 13 May 2020 10:12:20 +0100
4 Received: from localhost ([::1] helo=libre-riscv.org)
5 by libre-soc.org with esmtp (Exim 4.89)
6 (envelope-from <libre-riscv-dev-bounces@lists.libre-riscv.org>)
7 id 1jYnR5-0006ZW-NN; Wed, 13 May 2020 10:12:19 +0100
8 Received: from lkcl.net ([217.147.94.29])
9 by libre-soc.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
10 (Exim 4.89) (envelope-from <lkcl@lkcl.net>) id 1jYnR3-0006ZL-Tc
11 for libre-riscv-dev@lists.libre-riscv.org; Wed, 13 May 2020 10:12:17 +0100
12 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lkcl.net;
13 s=201607131;
14 h=Content-Type:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version;
15 bh=asmlH9bYOyuBeNI3WTQESEGGOM+N6vt4F8m6RZyMLEo=;
16 b=ipgakK3eOKBl45zdc21Y7K4wtAqRSVyIEHq1cO5Sgu6Petvh2LsJYzt6qP8T612/fCDCtW6I5Wf4rjUUD07s3m0GrCiJfjt1crbKtQXV0AcTM/Ewc7SVgEN2IEA9u4YqDjbqsdFPIsW1Nz2Vpq7qCFqpRIAJCbdD0sOY/2dCaBo=;
17 Received: from mail-lf1-f42.google.com ([209.85.167.42])
18 by lkcl.net with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
19 (Exim 4.84_2) (envelope-from <lkcl@lkcl.net>) id 1jYnR3-00075L-AA
20 for libre-riscv-dev@lists.libre-riscv.org; Wed, 13 May 2020 09:12:17 +0000
21 Received: by mail-lf1-f42.google.com with SMTP id v5so8892659lfp.13
22 for <libre-riscv-dev@lists.libre-riscv.org>;
23 Wed, 13 May 2020 02:12:02 -0700 (PDT)
24 X-Gm-Message-State: AOAM530U+FHkW2yKM+LLPjUp62TwKo61E+++tp5ENARi1JBtU7t/qqwX
25 s9Eo8oLx6uSiDpDZrXEXljZqf1yyzQvA/x0MDRc=
26 X-Google-Smtp-Source: ABdhPJxoYcOvgZ1IrZ6HHeXmQnJnZwjqp/Q+UjYwYMuMWies5kTmZKp/XxW0Y42d3AbdOBI9oYbQue8MAFBT3eMUy50=
27 X-Received: by 2002:a19:e52:: with SMTP id 79mr17557689lfo.32.1589361116391;
28 Wed, 13 May 2020 02:11:56 -0700 (PDT)
29 MIME-Version: 1.0
30 References: <CAC2bXD6LVtrMh7RT=11ZVypujcJRaMokG7XuBwF87veBiMMDLQ@mail.gmail.com>
31 <ec667579-06e2-ff44-4604-b160149feaa3@blemings.org>
32 <ba6dfcfcac4cb37dab95ba1669f68f57f01347d1.camel@ozlabs.org>
33 In-Reply-To: <ba6dfcfcac4cb37dab95ba1669f68f57f01347d1.camel@ozlabs.org>
34 From: Luke Kenneth Casson Leighton <lkcl@lkcl.net>
35 Date: Wed, 13 May 2020 10:11:44 +0100
36 X-Gmail-Original-Message-ID: <CAPweEDxRW3EsvLjn1fUZzriBx34YFDFBLPYuGrO6h8-nJVWKvg@mail.gmail.com>
37 Message-ID: <CAPweEDxRW3EsvLjn1fUZzriBx34YFDFBLPYuGrO6h8-nJVWKvg@mail.gmail.com>
38 To: Benjamin Herrenschmidt <benh@ozlabs.org>
39 Subject: Re: [libre-riscv-dev] [OpenPOWER-HDL-Cores] little-endian only
40 power cores and spec compliance
41 X-BeenThere: libre-riscv-dev@lists.libre-riscv.org
42 X-Mailman-Version: 2.1.23
43 Precedence: list
44 List-Id: Libre-RISCV General Development
45 <libre-riscv-dev.lists.libre-riscv.org>
46 List-Unsubscribe: <http://lists.libre-riscv.org/mailman/options/libre-riscv-dev>,
47 <mailto:libre-riscv-dev-request@lists.libre-riscv.org?subject=unsubscribe>
48 List-Archive: <http://lists.libre-riscv.org/pipermail/libre-riscv-dev/>
49 List-Post: <mailto:libre-riscv-dev@lists.libre-riscv.org>
50 List-Help: <mailto:libre-riscv-dev-request@lists.libre-riscv.org?subject=help>
51 List-Subscribe: <http://lists.libre-riscv.org/mailman/listinfo/libre-riscv-dev>,
52 <mailto:libre-riscv-dev-request@lists.libre-riscv.org?subject=subscribe>
53 Reply-To: Libre-RISCV General Development
54 <libre-riscv-dev@lists.libre-riscv.org>
55 Cc: openpower-hdl-cores@mailinglist.openpowerfoundation.org,
56 Libre-RISCV General Development <libre-riscv-dev@lists.libre-riscv.org>
57 Content-Type: text/plain; charset="utf-8"
58 Content-Transfer-Encoding: base64
59 Errors-To: libre-riscv-dev-bounces@lists.libre-riscv.org
60 Sender: "libre-riscv-dev" <libre-riscv-dev-bounces@lists.libre-riscv.org>
61
62 LS0tCmNyb3dkLWZ1bmRlZCBlY28tY29uc2Npb3VzIGhhcmR3YXJlOiBodHRwczovL3d3dy5jcm93
63 ZHN1cHBseS5jb20vZW9tYTY4CgpPbiBXZWQsIE1heSAxMywgMjAyMCBhdCA3OjAxIEFNIEJlbmph
64 bWluIEhlcnJlbnNjaG1pZHQgPGJlbmhAb3psYWJzLm9yZz4gd3JvdGU6Cj4KPiBPbiBXZWQsIDIw
65 MjAtMDUtMTMgYXQgMTE6MjIgKzEwMDAsIEh1Z2ggQmxlbWluZ3Mgd3JvdGU6Cj4gPiBIaSBBbGws
66 Cj4gPiBJJ20gYmFyZWx5IHF1YWxpZmllZCB0byBhZGQgbXVjaCBtb3JlIHRoYW4gJDAuMjAgdG8g
67 dGhpcyB0aHJlYWQsIGJ1dAo+ID4gd2lsbCBnaXZlIGl0IGEgd2hpcmwuLi4KPiA+IEkndmUgbm90
68 IGhhZCBhIGNoYW5jZSB0byBkaWcgaW50byB0aGUgdjMuMSBzcGVjIGFzIHlldCBidXQgY2FuIG9m
69 ZmVyCj4gPiB0aGUgb2JzZXJ2YXRpb24gdGhhdCB0aGUgaW50ZW50IChhcyBkZW1vbnN0cmF0ZWQg
70 aW4gdGhlIE1pY3Jvd2F0dAo+ID4gaW1wbGVtZW50YXRpb24gZm9yIGV4YW1wbGUpIHdhcyB0aGF0
71 IHRoZSBzaW1wbGVyL3NpbXBsZXN0Cj4gPiBpbXBsZW1lbnRhdGlvbnMgd291bGQgYmUgTEUgd2l0
72 aCBCRSBvcHRpb25hbC4KCnllcy4gIHRoaXMgd2FzIHRoZSB0YWtlLWF3YXkgaSBnb3QgZnJvbSBy
73 ZWFkaW5nIGl0LiAgdGhlIHN1bW1hcmllcwp3ZXJlIGFzIGZvbGxvd3M6CgoqIEFJWCBQbGF0Zm9y
74 bSAtIFBPV0VSOSBhbmQgYWJvdmUKCiAgIG11c3Qgc3VwcG9ydCA2NCBhbmQgMzIgYml0CiAgIG11
75 c3Qgc3VwcG9ydCBMRSBhbmQgQkUKCiogVU5JWCBQbGF0Zm9ybSAtIChpIGNhbGwgaXQgVU5JWCBi
76 ZWNhdXNlIFJUT1NlcyBhbmQgTDRLYSBhcmUgbm90CiJMaW51eCIpIC0gKmFsc28gUE9XRVI5IGFu
77 ZCBhYm92ZSoKCiAgIG11c3Qgc3VwcG9ydCA2NCBiaXQgKDMyLWJpdCBwcm9iYWJseSBvcHRpb25h
78 bCwgbm90IGV4cGxpY2l0eSBzdGF0ZWQpCiAgIG11c3Qgc3VwcG9ydCBMRSAoQkUgZXhwbGljaXR5
79 IHN0YXRlZCBhcyBvcHRpb25hbCkKCiogU0ZGUyAtIGJhc2ljYWxseSB0aGlzIHJlY29nbmlzZXMg
80 YW5kIGdpdmVzIHNwYWNlIHRvIHRoZSBOWFAgUXVvcmxRCnNlcmllcyAod2hpY2ggaXMgVjIuMDdC
81 KD8pIGNvbXBsaWFudCkKCiAgbXVzdCBzdXBwb3J0IDMyLWJpdCAoNjQtYml0IG9wdGlvbmFsLCBl
82 eHBsaWNpdGx5IHN0YXRlZCkKICBtdXN0IHN1cHBvcnQgQkUgKExFIGV4cGxpY2l0eSBzdGF0ZWQg
83 YXMgb3B0aW9uYWwpCgoqIFNGUyAtIGJhc2ljYWxseSB0aGlzIHJlY29nbmlzZXMgYW5kIGdpdmVz
84 IHNwYWNlIHRvIHRoZSBOWFAgTUM1eHh4CjMyLWJpdCBlbWJlZGRlZCBzZXJpZXMKCiAgbXVzdCBz
85 dXBwb3J0IDMyLWJpdCAoNjQtYml0IG9wdGlvbmFsLCBleHBsaWNpdGx5IHN0YXRlZCkKICBtdXN0
86 IHN1cHBvcnQgQkUgKExFIGV4cGxpY2l0eSBzdGF0ZWQgYXMgb3B0aW9uYWwpCgoKbm90ZSB0aGF0
87 ICpvbmx5IFBPV0VSOSogbWVldHMgdGhlIHJlcXVpcmVtZW50cyBvZiB0aGUgQUlYIGFuZCBVTklY
88 CnBsYXRmb3Jtcy4gIG1pY3Jvd2F0dCwgYnkgYmVpbmcgYSBMRS1vbmx5IGFuZCBub24tVk1YL1ZT
89 WCBwcm9jZXNzb3IsCmRvZXMgbm90IGZhbGwgaW50byAqYW55KiBDb21wbGlhbmNlIENhdGVnb3J5
90 LgoKdGhpcyBwdXRzIG1pY3Jvd2F0dCBmaXJtbHkgaW50byAiY3VzdG9tLWJ1aWx0IGRpc3RybyIg
91 dGVycml0b3J5LiAgb3VyCmRlc2lnbiBsaWtld2lzZSAtIGV2ZW4gdGhvdWdoIGl0IHdpbGwgaGF2
92 ZSAzRCBhbmQgVlBVIFZlY3RvcgpjYXBhYmlsaXR5IC0gd2lsbCAqc3RpbGwqIGJlIGluICJjdXN0
93 b20gZGlzdHJvIiB0ZXJyaXRvcnksIHdoaWNoIGlzIGEKbWFzc2l2ZSBidXJkZW4gb24gY3VzdG9t
94 ZXJzIGFuZCBlbmQtdXNlcnMuCgp3aXRoIHRoZSBwcm9kdWN0IGludGVuZGVkIGZvciBtYXNzLXBy
95 b2R1Y3Rpb24sIHRoYXQgbWVhbnMgaXQnbGwgZW5kIHVwCndpdGggIlJhc2JpYW4iIGNvbW11bml0
96 eS1kcml2ZW4gZGlzdHJvcyBiZWluZyBjcmVhdGVkLiAoUmFzYmlhbiB3YXMgLQphbmQgaXMgLSBh
97 IGRhbW4gbnVpc2FuY2UuICB0aGUgb3JpZ2luYWwgQnJvYWRjb20gcHJvY2Vzc29yIHVzZWQgaW4g
98 dGhlClBpIHYxIHdhcyBuZWl0aGVyIGFybWVsIG5vciBhcm12NzogY29uc2VxdWVudGx5IGl0IGhh
99 ZCB0byBoYXZlIGl0cyBvd24KY29tcGxldGUgYW5kIHRvdGFsIHJlY29tcGlsZWQgRGViaWFuIGRp
100 c3RybywgYW5ub3lpbmcgdGhlIGhlbGwgb3V0IG9mCnRoZSBEZWJpYW4gQ29tbXVuaXR5IGR1ZSB0
101 byB0aGUgbWlzLWZpbGVkIGJ1Z3JlcG9ydHMgYW5kCm1pc2NhdGVnb3Jpc2VkIC0gdW5wYWlkIC0g
102 ZW5kLXVzZXIgc3VwcG9ydCByZXF1ZXN0cykKCm5vdywgZm9yIEFuZHJvaWQtYmFzZWQgcHJvZHVj
103 dHMgYW5kIENocm9tZWJvb2stYmFzZWQgcHJvZHVjdHMgKnRoaXMgaXMKbm90IGEgcHJvYmxlbSou
104 ICBBbmRyb2lkIGFuZCBjaHJvbWVib29rIHByb2R1Y3RzIGFsd2F5cwpjdXN0b20tcmVjb21waWxl
105 IHRoZSBlbnRpcmUgYmluYXJpZXMgZnJvbSBzb3VyY2UgYW55d2F5LgoKYnV0IGZvciBkaXN0cm9z
106 PyBkZWJpYW4/IGZlZG9yYT8gIGFzIHRoaW5ncyBzdGFuZCwgd2UncmUgZXhjbHVkZWQgLQphbmQg
107 c28gaXMgbWljcm93YXR0LiAgbWljcm93YXR0IGFzIGl0IHN0YW5kcyBjYW5ub3QgcnVuICplaXRo
108 ZXIqIHRoZQpwcGMzMiBkZWJpYW4gZGlzdHJvICpvciogcHBjNjRsZSBkaXN0cm8gYmluYXJpZXMu
109 Cgp0aGF0IGV4Y2x1c2lvbiAtIGJlaW5nIHVuYWJsZSB0byBydW4gc3RhbmRhcmQgZGViaWFuIG9y
110 IGZlZG9yYSBkaXN0cm9zCi0gaW4gdHVybiBtYWtlcyBjb21tdW5pdHkgZ3Jhc3Mtcm9vdHMgZGV2
111 ZWxvcG1lbnQgYWxtb3N0IGltcG9zc2libGUgdG8Ka2ljay1zdGFydCBhIHRocml2aW5nIGNvbW11
112 bml0eSBhbmQga25vd2xlZGdlYWJsZSB1c2VyLWJhc2UuCgoKPiA+ICBTSU1EIGFsc28gb3B0aW9u
113 YWwgaW4gdGhlc2UgYXMgd2VsbC4KCnVuZm9ydHVuYXRlbHkgdGhhdCB3YXMgbGVmdCBvdXQ6IG9u
114 bHkgdGhlIFNGRlMgYW5kIFNGUyBzdWJzZXRzCihpbnRlbmRlZCBwcmltYXJpbHkgdG8gYmUgMzIt
115 Yml0IEJFKSBhcmUgcGVybWl0dGVkIHRvIGhhdmUgU0lNRCAoVk1YCmFuZCBWU1gpIG9wdGlvbmFs
116 LgoKaXQgbWVhbnMgdGhhdCB3ZSAoYW5kIG1pY3Jvd2F0dCwgYW5kIGFueSBvdGhlciBuZXcgcHJv
117 Y2Vzc29yIGRlc2lnbmVyKQpoYXZlIGEgd2hvcHBpbmcgNjAwIGFkZGl0aW9uYWwgaW5zdHJ1Y3Rp
118 b25zIHRvIGFkZCAoaW4gYWRkaXRpb24gdG8gdGhlCmFwcHgtMzgwKSwgd2l0aCBhIGZ1bGwgVmVj
119 dG9yIEVuZ2luZSBpZiB0aGV5ICh3ZSkgd291bGQgbGlrZSB0aGVpcgpwcm9kdWN0IHRvIHRha2Ug
120 YWR2YW50YWdlIG9mIHRoZSB0aW1lIGFuZCBlZmZvcnQgc2F2ZWQgYnkgYXZhaWxhYmlsaXR5Cm9m
121 IGRpc3RybyBwcmUtY29tcGlsZWQgYmluYXJpZXMgKEZlZG9yYSwgRGViaWFuKS4KCnRoaXMgaXMg
122 YSB2ZXJ5IGhpZ2ggdGhyZXNob2xkLCB3aGljaCwgd29ya2luZyB0aHJvdWdoIHRoZQppbXBsaWNh
123 dGlvbnMsIHdvdWxkIHNpbXBseSBoYXZlIHF1aXRlIGEgc2lnbmlmaWNhbnQgbnVtYmVyIG9mCm90
124 aGVyd2lzZSBpbnRlcmVzdGVkIHBhcnRpZXMgaW4gUE9XRVIgZnJvbSBwdXJzdWluZyBvdGhlciBv
125 cHRpb25zLgp0aGUgZXh0cmEgcmVnaXN0ZXIgZmlsZSAoVmVjdG9yIFJlZ2ZpbGUgaXMgc2VwYXJh
126 dGUpIGFsb25lIHdpbGwgYmUKZW5vdWdoIHRvIG1ha2UgdGhlbSB0aGluayB0d2ljZS4KCmlmIHlv
127 dSBhbHJlYWR5ICpoYXZlKiBWU1ggYW5kIFZNWCBpbXBsZW1lbnRlZCwgaXQgaXMgcGVyZmVjdGx5
128 CnJlYXNvbmFibGUgdG8gaGF2ZSBpdCBvbiB0aGUgQUlYIGFuZCBVTklYIFBsYXRmb3Jtcy4gIGhv
129 d2V2ZXIgZm9yIGEKbmV3IGVudHJhbnQ/CgoKPiBUaGUgbWFpbiBkaWZmaWN1bHR5IGlzIHRoYXQg
130 aW4gcHJhY3RpY2UsIGEgcG93ZXJwYzY0bGUgdG9vbGNoYWluIHdpbGwKPiBnZW5lcmF0ZSBjb2Rl
131 IHdpdGggYm90aCBGUCBhbmQgU0lNRCBpbnN0cnVjdGlvbnMuIEkgZG9uJ3QgdGhpbmsgaXQncwo+
132 IHBvc3NpYmxlIHRvIGdlbmVyYXRlIGEgZnVsbHkgc29mdC1mbG9hdCBvbmUgYW5kIGV2ZW4gaWYg
133 eW91IG1hbmFnZWQKPiB3aXRoIGdjYywgZ2xpYmMgc29tZXdoYXQgYXNzdW1lcyBpdCB0b28uIEF0
134 IGxlYXN0IGZyb20gbWVtb3J5LgoKYSBzb2x1dGlvbiBleGlzdHMgKGl0IGludm9sdmVzIG1vZGlm
135 aWNhdGlvbnMgdG8gZ2NjLCBiaW51dGlscyBhbmQgZ2xpYmMpLgoKdGhlIFJJU0MtViBGb3VuZGF0
136 aW9uIG1lbWJlcnMgaGF2ZSBiZWVuIHdvcmtpbmcgb24gc3VwcG9ydCBmb3IKbXVsdGlwbGUtY29t
137 cGlsYXRpb25zIG9mIGZ1bmN0aW9ucyAtIHRoZSBleGFjdCBzYW1lIGZ1bmN0aW9uIC0KY29tcGls
138 ZWQgbXVsdGlwbGUgdGltZXMgYW5kIHRoZSByZXN1bHRhbnQgYXNzZW1ibHkgY29kZSBpbnNlcnRl
139 ZCB1bmRlcgp0aGUgKnNhbWUgZnVuY3Rpb24gbmFtZSogaW50byB0aGUgb2JqZWN0IGZpbGUsIHdp
140 dGggc3VmZmljaWVudAptZXRhZGF0YSB0byBiZSBhYmxlIHRvIGRpc2Nlcm4gaXQgZnJvbSAiZnVu
141 Y3Rpb25zLXdpdGgtdGhlLXNhbWUtbmFtZSIuCgoodGhpcyBpIHNwZWNpZmljYWxseSBtZW50aW9u
142 IGJlY2F1c2UgaXQgaXMgbm90IGEgbmV3IGZvcm0gb2YgYysrCm5hbWUtbWFuZ2xpbmcgYmVpbmcg
143 ZGVwbG95ZWQsIGhlcmUpCgp3aGF0IHRoZW4gaGFwcGVucyBhdCBkeW5hbWljIGxpbmsgdGltZSBp
144 cyB0aGlzOgoKKiB0aGUgY2FwYWJpbGl0aWVzIG9mIHRoZSBwcm9jZXNzb3IgYXJlIGRldGVjdGVk
145 CiogdGhlIGV4aXN0ZW5jZSBvZiB0d28gKG9yIG1vcmUpIHZlcnNpb25zIG9mIHRoZSBzYW1lIGR5
146 bmFtaWMtbGlua2VkCmZ1bmN0aW9uIGlzIG5vdGVkCiogdGhlICpDT1JSRUNUIEFORCBSRVFVSVJF
147 RCogdmVyc2lvbiBvZiB0aGF0IGZ1bmN0aW9uIGFjY29yZGluZyB0byB0aGUKKmhhcmR3YXJlKiBj
148 YXBhYmlsaXRpZXMgaXMgc2VsZWN0ZWQgKmR5bmFtaWNhbGx5Ki4KCnRoaXMgaW5jbHVkZXMgZGVm
149 aW5pbmcgKm5ldyBBQklzKiBzdWl0YWJsZSBmb3IgZWFjaCB0eXBlIG9mICJoYXJkd2FyZQpjYXBh
150 YmlsaXR5Ii4gIHNvIGZvciBleGFtcGxlIGZvciBSSVNDLVYgVmVjdG9ycywgdGhleSBhcmUgZGVm
151 aW5pbmcgYQpuZXcgZ2xpYmM2IEFCSSBmb3IgdmVjdG9ycy4uLgoKLi4uICphbmQgY29tcGlsaW5n
152 IGZ1bmN0aW9ucyB0d2ljZSAtIG9uY2UgdG8gY29uZm9ybSB0byB0aGUgVmVjdG9yIEFCSQphbmQg
153 b25jZSB0byBjb25mb3JtIHRvIHRoZSBzdGFuZGFyZCBzY2FsYXIgQUJJKi4KCnRodXMgd2hlbiBp
154 dCBjb21lcyB0byAid2hvIG11c3Qgd2luIiB0aGlzIGlzIG5vdyBlbnRpcmVseSBtb290OgpldmVy
155 eW9uZSBjYW4gYmUgaGFwcHkuCgpRdWVzdGlvbnM6CgoxKSBkb2VzIHRoZSBleGVjdXRhYmxlIHNp
156 emUgaW5jcmVhc2U/ICB5ZXMgb2YgY291cnNlLgoKMikgaXMgaXQgdGhlIHNhbWUgYXMgbXVsdGls
157 aWI/ICBob25lc3RseSBpIGFtIG5vdCBzdXJlIHRoYXQgaXQgaXMuCm9yLCBpZiBpdCBpcywgaXQn
158 cyB0aGUgbWVjaGFuaXNtICpiZWhpbmQqIG11bHRpbGliLgoKCj4gSWYgT3BlblBvd2VyIHdhbnRz
159 IHRvIGdvIGRvd24gYSBwYXRoIG1vcmUgc2ltaWxhciB0byBSaXNjViBoZXJlIGFuZAo+IHN1cHBv
160 cnQgc21hbGwoZXIpIGltcGxlbWVudGF0aW9ucywgaXQncyBuZWNlc3NhcnkgdG8gc3RvcCBoYXZp
161 bmcgdGhlCj4gdG9vbGNoYWluIGVuZ2luZWVycyBwdXNoIGZvciBvbmx5IHN1cHBvcnRpbmcgdGhl
162 IGxhdGVzdC9ncmVhdGVzdCBJQk0KPiBzZXJ2ZXIgQ1BVcyA6LSkKCmkgY2FuIHVuZGVyc3RhbmQg
163 d2h5IHRoZXkgd291bGQgd2FudCB0byBhZHZvY2F0ZSB0aGF0IDopCnVuZm9ydHVuYXRlbHksIGFz
164 IHlvdSBwb2ludCBvdXQsIGl0IGV4Y2x1ZGVzICJzaW1wbGVyIiBlbnRyYW50cywgYW5kLAp3b3Jz
165 ZSwgZXhjbHVkZXMgZW50cmFudHMgdG8gbWFya2V0cyB0aGF0ICpQT1dFUjkgaXMgbmV2ZXIgZ29p
166 bmcgdG8gYmUKYWJsZSB0byBlbnRlciBhbnl3YXkqIGR1ZSB0byBpdHMgbWFzc2l2ZSBzaXplIGFu
167 ZCBodWdlIHBvd2VyCnJlcXVpcmVtZW50cy4KCmhvd2V2ZXIgd2l0aCB0aGUgYWJvdmUgc2NoZW1l
168 LCByZWNlbnRseSBpbnRyb2R1Y2VkIHNvbWV3aGVyZSBpbi4uLiB0aGUKcGFzdCAxOCsgbW9udGhz
169 KD8pIGl0IGlzIG5vIGxvbmdlciBuZWNlc3NhcnkgdG8gZmlnaHQgb3ZlciB0aGUgc3BhY2UuCgpv
170 ZiBjb3Vyc2UsIEpJVC1jb21waWxhdGlvbiBieSB1c2luZyBMTFZNLUlSICphbHNvKiBzb2x2ZXMg
171 dGhpcyBwcm9ibGVtCm5pY2VseS4gIGhvd2V2ZXIsIExMVk0gaXMgbm90IHRoZSBkZWZhdWx0LCBk
172 ZS1mYWN0byBhbmQgc29sZSBleGNsdXNpdmUKY29tcGlsZXIgdXNlZCBpbiB0aGUgd29ybGQuCgoK
173 PiBUaGUgTWljcm93YXR0IGNvcmUgaXMgbm93IHN0YXJ0aW5nIHRvIGJvb3QgTGludXggYXMgd2Vs
174 bCAobm90IG1lcmdlZAo+IHlldCkKCndlIHNhdyB0aGUgcHBjZGV2IHBhdGNoZXMuICBuaWNlIHdv
175 cmsgOikKCj4gYnV0IGF0IHRoZSBtb21lbnQgdGhpcyByZXF1aXJlcyBzb21lIGtlcm5lbCBoYWNr
176 cyB0byB3b3JrIGFyb3VuZAo+IHRoZSBhYm92ZSwgc3VjaCBhcyBwbHVtYmluZyBpbiBGUFUgZW11
177 bGF0aW9uLCBhbmQgSSBrbm93IFBhdWwgaGFzCj4gaXNzdWVzIGdlbmVyYXRpbmcgYSB1c2FibGUg
178 dXNlcnNwYWNlLi4uCgp0aGUgcG93ZXJwYyBnZW01IGV4cGVyaW1lbnQgYWxyZWFkeSBoYXMgb25l
179 IHByZS1jb21waWxlZCAoYW4KaW5pdHJhbWZzKSB3aXRoIGEgImhlbGxvIHdvcmxkIiBidWlsZHJv
180 b3Qgb2Ygc29tZSBraW5kIChidXN5Ym94KS4gIGFuZAphc3NvY2lhdGVkIG1vZGlmaWNhdGlvbnMg
181 dG8gc2tpYm9vdD8KCmh0dHBzOi8vZ2l0aHViLmNvbS9wb3dlci1nZW01L2dlbTUKW2JyYW5jaCAi
182 Z2VtNS1leHBlcmltZW50YWwiXQoKYW5kIHRoZSBvdGhlciBzdXBwb3J0IHJlcG9zIGFyZSBhdApo
183 dHRwczovL2dpdGh1Yi5jb20vcG93ZXItZ2VtNS8KCmwuCgpfX19fX19fX19fX19fX19fX19fX19f
184 X19fX19fX19fX19fX19fX19fX19fX19fXwpsaWJyZS1yaXNjdi1kZXYgbWFpbGluZyBsaXN0Cmxp
185 YnJlLXJpc2N2LWRldkBsaXN0cy5saWJyZS1yaXNjdi5vcmcKaHR0cDovL2xpc3RzLmxpYnJlLXJp
186 c2N2Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpYnJlLXJpc2N2LWRldgo=
187