[libre-riscv-dev] [Bug 269] auto-conversion / parser of POWER ISA Spec v3.0B
[libre-riscv-dev.git] / cc / 2e584fb4af2800b45db649cfaf7ac2123920f1
1 Return-path: <libre-riscv-dev-bounces@lists.libre-riscv.org>
2 Envelope-to: publicinbox@libre-riscv.org
3 Delivery-date: Sat, 28 Mar 2020 08:09:47 +0000
4 Received: from localhost ([::1] helo=libre-riscv.org)
5 by libre-riscv.org with esmtp (Exim 4.89)
6 (envelope-from <libre-riscv-dev-bounces@lists.libre-riscv.org>)
7 id 1jI6XK-0000So-89; Sat, 28 Mar 2020 08:09:46 +0000
8 Received: from mail-lf1-f51.google.com ([209.85.167.51])
9 by libre-riscv.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
10 (Exim 4.89) (envelope-from <tanner.of.kha@gmail.com>)
11 id 1jI6XI-0000Si-Hq
12 for libre-riscv-dev@lists.libre-riscv.org; Sat, 28 Mar 2020 08:09:44 +0000
13 Received: by mail-lf1-f51.google.com with SMTP id j11so9783416lfg.4
14 for <libre-riscv-dev@lists.libre-riscv.org>;
15 Sat, 28 Mar 2020 01:09:44 -0700 (PDT)
16 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
17 h=message-id:subject:from:to:date:in-reply-to:references:user-agent
18 :mime-version:content-transfer-encoding;
19 bh=UtYEGa7CbtzjENS4dkheJq9E47QX8murl7QR7exvzf8=;
20 b=P6DLNiIPagzSvljMPoUxdbFE/l3yCYgipIkp3oFVxXZGxaGiMRw/FFomL1IA2F5WCl
21 PRNRJfwBRXpmul0nekCQwbNJxR9ryOG1NarB78QR4pLCG6k/suRdLdByKVU4SQqY8/Y3
22 cQgajHAqgZMbtldulsAgu/oiIC3+m7AGoezw3AfcacfqUFzv7/YVzUg0qZn1q2/J3bIi
23 gUBmO48iPbMWY0jBbpNU/FKFHdpp0ZrVTvhbgz4qDDpuxrQWv3uJ2twJUIBiFQ84cNPo
24 25vrfYoa3TQhZD/bjjNC9YSC7S6dyGpiorG4PP3O/jjH+EMSVt5wOtqMRz7iy9Yz94//
25 5dVg==
26 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
27 d=1e100.net; s=20161025;
28 h=x-gm-message-state:message-id:subject:from:to:date:in-reply-to
29 :references:user-agent:mime-version:content-transfer-encoding;
30 bh=UtYEGa7CbtzjENS4dkheJq9E47QX8murl7QR7exvzf8=;
31 b=cFMvHoG8c6Gprn38TqdyCCc2RVYBUYjR7jJRZET9NfpcRHgrnahlOpkn5pEHG7Uu6t
32 kb7dM4jFL/phapGYaBaFk3IPdRYhBLi8CgXQgv50iWy4p+PTsD5UdcSm4KPsL4+HeS6d
33 rx1rm13F9LaFVReGPXhL7szUFgbaBzlg56Yd8efWL0cEXELkuPnjsTzA+GnO6X5mXU/S
34 9AXvfnaFLC01kadMOX4RBbMjJEvJGJ7L3GP06Rz7hAr+TZvV747MOEiZCU49sj4o1+HF
35 gPVPELmBvoke7eF/JzcTb6+X/8mxZN4UGTaMWe3LAOlNBUxDb0YJdsialy52csgcHHDB
36 eLwA==
37 X-Gm-Message-State: AGi0Puao+3P/PSsAoM/6RiuavutiW78U2PCmr1x2M/hZEBTr3QStb0WQ
38 ygV+UZuqfyoC6F9gJApcEU8=
39 X-Google-Smtp-Source: APiQypIDiJIw/C/r8Z0wKGTBzrbJUi4mcT7++TcyXc8H54MNdBvlHxj9cBsRkNxDCjWAiUf9JAxLdA==
40 X-Received: by 2002:a05:6512:2e4:: with SMTP id
41 m4mr2135332lfq.202.1585382983623;
42 Sat, 28 Mar 2020 01:09:43 -0700 (PDT)
43 Received: from ibmpc ([92.37.232.87])
44 by smtp.gmail.com with ESMTPSA id j6sm4009312lfb.13.2020.03.28.01.09.41
45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
46 Sat, 28 Mar 2020 01:09:42 -0700 (PDT)
47 Message-ID: <8fb9dbcc812d3d7050c6e336dc9bf68f88536888.camel@gmail.com>
48 From: Jock Tanner <tanner.of.kha@gmail.com>
49 To: Luke Kenneth Casson Leighton <lkcl@lkcl.net>, Libre-RISCV General
50 Development <libre-riscv-dev@lists.libre-riscv.org>, "Immanuel, Yehowshua
51 U" <yimmanuel3@gatech.edu>, Michael Nolan <mtnolan2640@gmail.com>
52 Date: Sat, 28 Mar 2020 18:09:33 +1000
53 In-Reply-To: <CAPweEDw_h8VQ3JJFF3FXph7Eg0ucVknuvMk=Xc0jSp0WP13=UQ@mail.gmail.com>
54 References: <CAPweEDw_h8VQ3JJFF3FXph7Eg0ucVknuvMk=Xc0jSp0WP13=UQ@mail.gmail.com>
55 User-Agent: Evolution 3.34.4
56 MIME-Version: 1.0
57 Subject: Re: [libre-riscv-dev] extremely busy crowdsupply update started
58 X-BeenThere: libre-riscv-dev@lists.libre-riscv.org
59 X-Mailman-Version: 2.1.23
60 Precedence: list
61 List-Id: Libre-RISCV General Development
62 <libre-riscv-dev.lists.libre-riscv.org>
63 List-Unsubscribe: <http://lists.libre-riscv.org/mailman/options/libre-riscv-dev>,
64 <mailto:libre-riscv-dev-request@lists.libre-riscv.org?subject=unsubscribe>
65 List-Archive: <http://lists.libre-riscv.org/pipermail/libre-riscv-dev/>
66 List-Post: <mailto:libre-riscv-dev@lists.libre-riscv.org>
67 List-Help: <mailto:libre-riscv-dev-request@lists.libre-riscv.org?subject=help>
68 List-Subscribe: <http://lists.libre-riscv.org/mailman/listinfo/libre-riscv-dev>,
69 <mailto:libre-riscv-dev-request@lists.libre-riscv.org?subject=subscribe>
70 Reply-To: Libre-RISCV General Development
71 <libre-riscv-dev@lists.libre-riscv.org>
72 Content-Type: text/plain; charset="utf-8"
73 Content-Transfer-Encoding: base64
74 Errors-To: libre-riscv-dev-bounces@lists.libre-riscv.org
75 Sender: "libre-riscv-dev" <libre-riscv-dev-bounces@lists.libre-riscv.org>
76
77 SGkhCgpPbiBUaHUsIDIwMjAtMDMtMjYgYXQgMjE6MDMgKzAwMDAsIEx1a2UgS2VubmV0aCBDYXNz
78 b24gTGVpZ2h0b24gd3JvdGU6Cj4gKiBqb2NrIG9uIGhvdyB5b3UgZ290IG9uIHdpdGggdGhlIGNv
79 cmlvbGlzMiB0aGluZyAoZXZlbiBpZiBpdCdzICJpdAo+IHdhcyB0b3RhbCBjaGFvcyIpCgo+IGlm
80 IHlvdSBwcmVmZXIganVzdCByZXBseSB0byB0aGlzIG1lc3NhZ2Ugd2l0aCBhIHBhcmFncmFwaCBv
81 ciB0d28gYW5kCj4gaQoKSSBhbHNvIGNhbiBub3QgcHV0IG15IGZpcnN0IGltcHJlc3Npb25zIGlu
82 IGp1c3Qgb25lIG9yIHR3byBwYXJhZ3JhcGhzLApzbyBJIHdyb3RlIHR3byB2ZXJzaW9ucy4gTHVr
83 ZSwgcGxlYXNlIGNob29zZSB0aGUgbW9zdCBhcHByb3ByaWF0ZSBvbmUuCgpTaG9ydCB2ZXJzaW9u
84 IChUTC9EUikKPT09PT09PT09PT09PT09PT09PT09CgpBcyBhIGh1bWJsZSBQeXRob24gZGV2ZWxv
85 cGVyLCBJIHVuZGVyc3RhbmQgdGhlIHVuaXF1ZSBzdGF0dXMgYW5kCnNpZ25pZmljYW5jZSBvZiB0
86 aGUgQ29yaW9saXMgcHJvamVjdCwgbmV2ZXJ0aGVsZXNzIEkgY2Fubm90IGhlbHAgYnV0Cm5vdGlj
87 ZSB0aGF0IGl0IGhhcyBhIGh1Z2Ugcm9vbSBmb3IgaW1wcm92ZW1lbnQuIEkgZ2VudWluZWx5IGhv
88 cGUgdGhhdApteSBwYXJ0aWNpcGF0aW9uIGluIGxpYnJlLXJpc2N2IHdpbGwgYWxzbyBoZWxwIGlt
89 cHJvdmUgQ29yaW9saXMuCgpEZXRhaWxlZCB2ZXJzaW9uIChUaGUgUmFudCkKPT09PT09PT09PT09
90 PT09PT09PT09PT09PT09CgoxLiBJbnN0YWxsYXRpb24KCkNvcmlvbGlzIDIgY2FuIGJlIGJ1aWx0
91 IGFuZCBpbnN0YWxsZWQgdHdvIHdheXM6CgogIGEpIGluc2lkZSB0aGUgaG9tZSBkaXJlY3Rvcnkg
92 KOKAnEZpeGVkIGRpcmVjdG9yeSB0cmVl4oCdKSwgdXNpbmcgYSBoZWxwZXIKc2NyaXB0IFsxXSwK
93 ICBiKSBhcyBhIHBhY2thZ2UsIGVpdGhlciBSUE0gb3IgREVCIFsyXS4KCkkgZm9sbG93ZWQgdGhl
94 IChhKSByb3V0ZSwgYW5kIGl0IGFjdHVhbGx5IHdlbnQgd2VsbCBleGNlcHQgZm9yIGEgY291cGxl
95 Cm9mIHF1aXJrcywgdGhhdCBpcyBjb25zaWRlcmluZyB0aGUgbnVtYmVyIG9mIGRlcGVuZGVuY2ll
96 cy4gQXMgSQp1bmRlcnN0YW5kLCB0aGUgKGIpIHdheSBpcyBub3Qgd2VsbCBtYWludGFpbmVkIGZv
97 ciBub3cuCgpUaGUgbWV0aG9kIChhKSBjYW4gYmUgdXNlZCBwZXIgc2UsIGF0IGxlYXN0IG9uIERl
98 YmlhbiBHTlUvTGludXgsIG9yCndpdGhpbiBjaHJvb3Qgb3IgTFhDIGVudmlyb25tZW50cy4KClVu
99 Zm9ydHVuYXRlbHksIHRoZSBQeXRob24gZXh0ZW5zaW9ucyBhcmUgY291cGxlZCB3aXRoIHRoZSBy
100 ZXN0IG9mIHRoZQpDb3Jpb2xpcywgc28gaXQgaXMgaW1wb3NzaWJsZSB0byB1c2UgdGhlIGFkdmFu
101 dGFnZXMgb2YgJ3ZpcnR1YWxlbnYnIG9yCnNpbWlsYXIgZW52aXJvbm1lbnRzIHdpdGggQ29yaW9s
102 aXMuCgpUaHVzLCBlbnRlcmluZyB0aGUgZGV2ZWxvcG1lbnQgd2l0aCBDb3Jpb2xpcyBmb3IgcHl0
103 aG9uaXN0YXMgaXMKY29tcGxpY2F0ZWQgYnkgdGhlIGNvbWJpbmF0aW9uIG9mIHR3byBmYWN0b3Jz
104 OgoKLSBsYWNrIG9mIG5hdGl2ZSBwYWNrYWdlcyBmb3IgdGhlaXIgT1NlcywKLSBsYWNrIG9mIFB5
105 UEkgcGFja2FnZSBvciBwaXAvdmlydHVhbGVudiBzdXBwb3J0LgoKSSB1bmRlcnN0YW5kIHRoYXQg
106 Q29yaW9saXMgaXMgYSBuaWNoZSBwcm9kdWN0LCBzbyB3ZSBjYW4gbm90IHJlYWxseQpleHBlY3Qg
107 bXVjaCBpbiB0ZXJtcyBvZiBwYWNrYWdpbmcgZm9yIHBvcHVsYXIgT1Nlcy4gU28gaXQgbWF5IGJl
108 IGJldHRlcgpmb3IgQ29yaW9saXMgdG8gdGFrZSBhbm90aGVyIHJvdXRlOgoKLSBkZWNvdXBsZSBQ
109 eXRob24gZXh0ZW5zaW9ucyBmcm9tIHRoZSBtYWluIHByb2R1Y3QsCi0gcHJvdmlkZSBQeXRob24g
110 ZXh0ZW5zaW9ucyBhcyBhIHBpcCBwYWNrYWdlICh2aWEgUHlQSSBvciBnaXQpLAotIHN1cHBseSBh
111 IHNjcmlwdCBhbmQvb3IgaW5zdHJ1Y3Rpb25zIGZvciBidWlsZGluZyB0aGUgbWFpbiBwcm9kdWN0
112 CndpdGggdGhlIHBpcCBwYWNrYWdlLgoKVGhpcyBpcyBhY3R1YWxseSBub3QgYSB1bmlxdWUgYXBw
113 cm9hY2guIEZvciBleGFtcGxlLCB4YXBpYW4taGF5c3RhY2sKc2hpcHMgYSBzY3JpcHQgZm9yIGJ1
114 aWxkaW5nIGEgd2hvbGUgWGFwaWFuIHNlYXJjaCBlbmdpbmUgKEMrKykgaW4KUFlUSE9OUEFUSCBb
115 M10uCgoyLiBEb2N1bWVudGF0aW9uCi4KQWxsIHRoZSBiYXNpY3MgYXJlIGNvdmVyZWQgYnkgQ29y
116 aW9saXMgVXNlcidzIEd1aWRlIFs0XSAoZ2VuZXJhbAp3b3JrZmxvdyBhbmQgR1VJKSBhbmQgUHl0
117 aG9uIFR1dG9yaWFsIFs1XSwgdGhhdCBhcmUgYXZhaWxhYmxlIG9ubGluZQphbmQgb2ZmbGluZSwg
118 aW4gUERGIGFuZCBIVE1MIGZvcm1hdHMuCgpVbmZvcnR1bmF0ZWx5LCBDb3Jpb2xpcyBQeXRob24g
119 QVBJIGRvbid0IGhhdmUgaXRzIG93biByZWZlcmVuY2UgZ3VpZGUuClRoZXJlIGlzIGEgZ29vZCBy
120 ZWZlcmVuY2Ugb24gSHVycmljYW5lIEMrKyBBUEkgWzZdIHRob3VnaC4gU2luY2UgUHl0aG9uCkFQ
121 SSBqdXN0IGNvcGllcyB0aGUgQysrIEFQSSAod2hpY2ggaXMgYSB0ZXJyaWJsZSBkZXNpY2lvbiBi
122 eSBpdHNlbGYsCnNlZSB0aGUgZXhwbGFuYXRpb24gaW4gMy4yKSwgdGhpcyByZWZlcmVuY2UgYWxv
123 bmUgaGFzIHRoZSBncmVhdCBwYXJ0IG9mCmJvdGggQysrIGFuZCBQeXRob24gQVBJcyBjb3ZlcmVk
124 LiBCdXQgb3RoZXIgcGFydHMgb2YgdGhlIFB5dGhvbiBBUEkKKG1vc3QgaW1wb3J0YW50bHksIEV0
125 ZXNpYW4gYW5kIEthdGFuYSkgc3RheXMgdW5kb2N1bWVudGVkIGJleW9uZCB0aGUKYmFzaWNzLgoK
126 My4gQVBJCgozLjEuIFN1cHBvcnRlZCBQeXRob24gdmVyc2lvbnMKClRoZSBDb3Jpb2xpcyBQeXRo
127 b24gQVBJIGlzIGEgUHl0aG9uIDIgZXh0ZW5zaW9uLgoKUHl0aG9uIDIuNyB3YXMgcmVsZWFzZWQg
128 aW4gMjAxMCwgYW5kIGl0IHdhcyBtZWFudCB0byBiZSB0aGUgbGFzdCAyLngKcmVsZWFzZSBiYWNr
129 IHRoZW4uIEluIHRoZSBmb2xsb3dpbmcgeWVhcnMgUHl0aG9uIDIgaGFkIG5vIG5ldyBmZWF0dXJl
130 cwpvdGhlciB0aGFuIGJhY2twb3J0cyBmcm9tIFB5dGhvbiAzLiBBcyBvZiBKYW51YXJ5IDIwMjAg
131 UHl0aG9uIDIgaXMKY29uc2lkZXJlZCB1bnN1cHBvcnRlZCBieSBQU0YuIFs3XQoKU3RpbGwgY2xp
132 bmdpbmcgdG8gb3V0ZGF0ZWQgYW5kIGFiYW5kb25lZCBsYW5ndWFnZSBhbmQgbm90IGV2ZW4gaGF2
133 aW5nIGEKKHB1YmxpY2x5IGF2YWlsYWJsZSwgYXQgbGVhc3QpIHRyYW5zaXRpb24gcGxhbiBzZWVt
134 cyBhIGJpdCBzY2FyeSB0byBtZS4KCjMuMi4gQmVzdCBwcmFjdGljZXMgb2YgUHl0aG9uIEFQSXMK
135 ClRvIGhhdmUgYSBuZXcgQVBJIG1pbWljIHRoZSBvbGQgQVBJIHdyaXR0ZW4gaW4gYW5vdGhlciBw
136 cm9ncmFtbWluZwpsYW5ndWFnZSBzZWVtcyBsaWtlIGFuIGV4Y2VsbGVudCBpZGVhIGF0IGZpcnN0
137 LiBZb3UgZG9uJ3QgaGF2ZSB0bwpkZXNpZ24gYW55dGhpbmcuIERvbid0IGhhdmUgdG8gdGhpbmsg
138 b2YgbmFtaW5nLiBZb3UgY2FuIHJldXNlCmRvY3VtZW50YXRpb24gYW5kIHRlc3RzLiBUaGUgbmV3
139 IEFQSSBpcyBlYXN5IHRvIHVzZSwgaWYgeW91IGFscmVhZHkgZ290CnVzZWQgdG8gdGhlIG9sZCBv
140 bmUuIEV2ZXJ5Ym9keSdzIGhhcHB5LCByaWdodD8KCldlbGwsIGV2ZXJ5Ym9keSBleGNlcHQgdGhl
141 IGVuZCB1c2VycyB3aG9tIHRoZSBuZXcgQVBJIGlzIGNyZWF0ZWQgZm9yLgoKRWFjaCBwcm9ncmFt
142 bWluZyBsYW5ndWFnZSBoYXMgaXRzIG93biBiZXN0IHByYWN0aWNlcywgYW5kIG1vc3Qgb2YgdGhl
143 CnRpbWUgdGhleSBlaXRoZXIgY29udHJhZGljdCB0aGUgb25lcyBhY2NlcHRlZCBieSBhbm90aGVy
144 IGxhbmd1YWdlIHVzZXJzCm9yIGp1c3QgZG9uJ3QgaGF2ZSBhbmFsb2d1ZXMgaW4gdGhhdCBsYW5n
145 dWFnZS4gWW91ciBuZXcgdXNlcnMgd2lsbCBzZWUKeW91ciBBUEkgYXMgYWxpZW4sIGN1bWJlcnNv
146 bWUsIG9yIGp1c3QgcG9vcmx5IGRlc2lnbmVkLiBUaGV5IG1heSBoYXZlCnRvIGNyYW0gdGhlaXIg
147 d2F5IGFyb3VuZCB0aGUgbGVhc3QgZXhwZWN0ZWQgZmVhdHVyZXMuIFRoZXkgbWF5IGhhdmUgdG8K
148 d3JpdGUgd3JhcHBlcnMgYXJvdW5kIHlvdXIgQVBJIHRvIHJlZHVjZSB0aGUgYXN0b25pc2htZW50
149 IGZhY3RvciBbOF0KZm9yIHRoZSBvdGhlcnMuIEJ1dCBtb3N0IGxpa2VseSB0aGV5IHdpbGwgc2lt
150 cGx5IHdhbGsgYXdheS4KCkhlcmUgSSdsbCB0cnkgdG8gZ2l2ZSBhIHJ1bi1kb3duIG9mIENvcmlv
151 bGlzIEFQSSBmZWF0dXJlcyB0aGF0IHNjYXJlcwpQeXRob24gZGV2ZWxvcGVycyAo4oCcYmFk4oCd
152 KSBhbG9uZyB3aXRoIHRoZWlyIGF0dHJhY3RpdmUgYW5kIGNvbWZ5CmFsdGVybmF0aXZlcyAo4oCc
153 Z29vZOKAnSkuCgozLjIuMS4gU2luZ2xldG9ucwoKWW91IGRvbid0IG5lZWQgYSBzcGVjaWFsIG1l
154 dGhvZHMgdG8gY3JlYXRlIGFuZCBhY2Nlc3MgYSB1bmlxdWUgb2JqZWN0CmluIFB5dGhvbiwgc2lu
155 Y2UgeW91IGNhbiBqdXN0IGltcG9ydCBpdC4KCkJhZDogYWYgPSBDUkwuQWxsaWFuY2VGcmFtZXdv
156 cmsuZ2V0KCkKCkdvb2Q6IGZyb20gQ1JMIGltcG9ydCBhZgoKMy4yLjIuIEdldHRlcnMgYW5kIHNl
157 dHRlcnMKCkdldHRlcnMgYW5kIHNldHRlcnMgYXJlIGNvbnNpZGVyZWQgYW4gYW50aXBhdHRlcm4g
158 KG5vdCBvbmx5IGluIFB5dGhvbiksCnNvIHRoZXkgc2hvdWxkIGJlIHJlcGxhY2VkIGJ5IHByb3Bl
159 cnRpZXMgb3IgY29sbGVjdGlvbi1saWtlIGludGVyZmFjZXMuCgpCYWQ6CiAgZW52ID0gYWYuZ2V0
160 RW52aXJvbm1lbnQoKQogIGVudi5zZXRDTE9DSygnXmNrJHxtX2Nsb2NrfF5jbGskJykKCkdvb2Q6
161 CiAgYWYuZW52WydDTE9DSyddID0gJ15jayR8bV9jbG9ja3xeY2xrJCcKCjMuMi4zLiBEYXRhIHR5
162 cGVzCgpQeXRob24gdXNlIGR1Y2sgdHlwaW5nLCBzbyB5b3Ugc2hvdWxkIGF2b2lkIGFueSBkaXJl
163 Y3QgdHlwZSBpbmRpY2F0aW9uCm9yIHF1ZXJ5aW5nIGluIFB5dGhvbi4KCkJhZDogQ2ZnLmdldFBh
164 cmFtSW50KCdrYXRhbmEudlRyYWNrc1Jlc2VydmVkTG9jYWwnKS5zZXRJbnQoNikKCkdvb2Q6IENm
165 Z1sna2F0YW5hLnZUcmFja3NSZXNlcnZlZExvY2FsJ10gPSA2CgozLjIuNC4gU3ludGFjdGljIHN1
166 Z2FyCgpJdCdzIGVhc2llciB0byBhY2NvdW50IGZvciB0aGUgY2VydGFpbiB0aGluZ3MgdGhhdCBn
167 b2VzIGluIHBhaXJzCihvcGVuL2Nsb3NlLCBjcmVhdGUvZGVzdHJveSkgd2l0aCBjb250ZXh0IG1h
168 bmFnZXJzIG9yIGRlY29yYXRvcnMuCgpCYWQ6CiAgVXBkYXRlU2Vzc2lvbi5vcGVuKCkKICBkb19t
169 eV90aGluZygpCiAgVXBkYXRlU2Vzc2lvbi5jbG9zZSgpCgpHb29kOgogIHdpdGggVXBkYXRlU2Vz
170 c2lvbigpOgogICAgICBkb19teV90aGluZygpCgpBbHNvIGdvb2QgaW4gc29tZSBjYXNlczoKICBA
171 dXBkYXRlX3Nlc3Npb24KICBkZWYgZG9fbXlfdGhpbmcoKToKICAgICAgLi4uCgozLjIuNS4gU2Vs
172 Zi1kb2N1bWVudGluZwoKUHl0aG9uIGhhdmUgYSBidWlsdC1pbiAnaGVscCgpJyBmdW5jdGlvbiwg
173 dGhhdCByZXR1cm5zIGEgZG9jc3RyaW5nIGZvcgphIGdpdmVuIG9iamVjdC4gUHl0aG9uIEMgZXh0
174 ZW5zaW9ucyBjYW4gZW11bGF0ZSBhIGRvY3N0cmluZyBmb3IgdXNlCndpdGggJ2hlbHAoKScuIFN0
175 YXRpYyBzeW50YXggY2hlY2tlcnMgYW5kIElERXMgYWxzbyByZWx5IG9uIHRoaXMgQVBJLgoKSXQg
176 aXMgdmVyeSBpbXBvcnRhbnQgdGhhdCB0aGlzIGVtdWxhdGVkIGRvY3N0cmluZyBjb250YWlucyBu
177 b3Qgb25seSB0aGUKZGVzY3JpcHRpb24gb2YgdGhlIGZ1bmN0aW9uIG9yIG1ldGhvZCwgYnV0IGFs
178 c28gYSBzaWduYXR1cmUgKHBhcmFtZXRlcnMKYW5kIHJldHVybiB2YWx1ZSkgaW4gcmVTVCBmb3Jt
179 YXQsIGFzIHJlY29tbWVuZGVkIGJ5IFBFUDI4NyBbOV0sIG9yIGluCm9sZGVyIEVweXRleHQgZm9y
180 bWF0IGF0IHdvcnN0LiBUaGlzIHdpbGwgZ3JlYXRseSBmYWNpbGl0YXRlIHRoZSB1c2Ugb2YKUHl0
181 aG9uIEMgZXh0ZW5zaW9uIHdpdGggbW9kZXJuIElERXMuCgpUaGUgcnVsZXMgaGF2ZSBzbGlnaHRs
182 eSBjaGFuZ2VkIHNpbmNlIFB5dGhvbiAzLjQsIGJ1dCB0aGUgaWRlYSByZW1haW5zLgoKMy4yLjYu
183 IE5hbWluZyBjb252ZW50aW9ucwoKVGhlIFB5dGhvbiBBUEkgbXVzdCBhZGhlcmUgdG8gbmFtaW5n
184 IGNvbnZlbnRpb25zIGFjY2VwdGVkIGluIFB5dGhvbi4gSQpjYW4gbm90IHN0cmVzcyBlbm91Z2gg
185 dGhlIGltcG9ydGFuY2Ugb2YgdGhpcyBwb2ludCwgYnV0IGxldCB1cyBhZGRyZXNzCnRoZSBzdHls
186 aW5nIGlzc3VlcyBpbiBnZW5lcmFsIGluIDMuMy4KCjMuMy4gU3R5bGluZwoKSSBoYXZlIHRvIGFk
187 bWl0IHRoYXQgQ29yaW9saXMgUHl0aG9uIHN0eWxlIGlzIHF1aXRlIGNvbnNpc3RlbnQsIGJ1dCBp
188 dApsb29rcyBsaWtlIHRoZSBvbmx5IHB1cnBvc2Ugb2YgdGhpcyBjb25zaXN0ZW5jeSBpcyB0byBj
189 b250cmFkaWN0IHRoZQpQRVAgOCBbMTBdIGluIGFueSBwb3NzaWJsZSB3YXkuIFsxMV0KCllvdSBt
190 aWdodCB0aGluayB0aGF0IHN0eWxlIGlzIG5vdCB0aGF0IGltcG9ydGFudCwgYnV0IGFmdGVyIDE1
191 IG1pbnV0ZXMKc3BlbnQgaW4gc2VhcmNoIG9mIHRoZSAnQ2hpcFJvdXRlJyBjbGFzcyBkZWZpbml0
192 aW9uLCBkaWFnbm9zaW5nIGFuZApyZXN0YXJ0aW5nIElERSwgY2hlY2tpbmcgTW9vbiBwaGFzZSBh
193 bmQgd2hhdG5vdCwgZmluZCB0aGF0ICdDaGlwUm91dGUnIAppcyBub3QgYSBjbGFzcywgYnV0IGEg
194 bW9kdWxl4oCmIEhvdyB3ZWxsIHRoZSBlbmQgdXNlciBjb3VsZCBwZXJmb3JtIHdpdGgKdGhhdCBp
195 biBtaW5kPwoKQW5vdGhlciB0aGluZyBpcyB0aGF0IGl0J3MgbmVhcmx5IGltcG9zc2libGUgdG8g
196 bHVyZSBhIGp1bmlvciBkZXZlbG9wZXIKaW50byBhIHByb2plY3QgdGhhdCBuZWdsZWN0cyBzdHls
197 aW5nLiBJbiBtb2Rlcm4gZGV2ZWxvcG1lbnQsCnByb3ByaWV0YXJ5IGFuZCBvcGVuc291cmNlIGFs
198 aWtlLCBhbiBhYmlsaXR5IHRvIHdyaXRlIGEgY29uc2lzdGVudCwKcmVhZGFibGUsIHVuaWZvcm0g
199 Y29kZSBpcyB2ZXJ5IG11Y2ggYXBwcmVjaWF0ZWQsIGFuZCBqdW5pb3IgZGV2ZWxvcGVycwpleHBl
200 Y3QgdG8gYWNxdWlyZSBnb29kIHByb2Zlc3Npb25hbCBoYWJpdHMgaW4gdGhlaXIgZmlyc3QgcHJv
201 amVjdHMuIEFuZApzdHlsZSBpcyB0aGUgZmlyc3QgdGhpbmcgdGhleSBsZWFybiB0byBkaXN0aW5n
202 dWlzaCBpbiBzb21lb25lIGVsc2Uncwpjb2RlLgoKWzFdIGh0dHA6Ly9jb3Jpb2xpcy5saXA2LmZy
203 L3BhZ2VzL3VzZXJzLWd1aWRlLmh0bWwjaWQxNgpbMl0gaHR0cDovL2NvcmlvbGlzLmxpcDYuZnIv
204 cGFnZXMvdXNlcnMtZ3VpZGUuaHRtbCNpZDE5ClszXSBodHRwczovL2dpdGh1Yi5jb20vbm90YW51
205 bWJlci94YXBpYW4taGF5c3RhY2sKWzRdIGh0dHA6Ly9jb3Jpb2xpcy5saXA2LmZyL3BhZ2VzL3Vz
206 ZXJzLWd1aWRlLmh0bWwKWzVdIGh0dHA6Ly9jb3Jpb2xpcy5saXA2LmZyL3BhZ2VzL3B5dGhvbi10
207 dXRvcmlhbC5odG1sCls2XSBodHRwOi8vY29yaW9saXMubGlwNi5mci9kb2MvaHVycmljYW5lL2lu
208 ZGV4Lmh0bWwKWzddIGh0dHBzOi8vd3d3LnB5dGhvbi5vcmcvZGV2L3BlcHMvcGVwLTAzNzMvCls4
209 XSBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9QcmluY2lwbGVfb2ZfbGVhc3RfYXN0b25p
210 c2htZW50Cls5XSBodHRwczovL3d3dy5weXRob24ub3JnL2Rldi9wZXBzL3BlcC0wMjg3LwpbMTBd
211 IGh0dHBzOi8vd3d3LnB5dGhvbi5vcmcvZGV2L3BlcHMvcGVwLTAwMDgvClsxMV0gCmh0dHBzOi8v
212 d3d3Lm9wZW5zb3VyY2VzaGFrZXNwZWFyZS5vcmcvdmlld3MvcGxheXMvcGxheV92aWV3LnBocD9X
213 b3JrSUQ9aGFtbGV0JkFjdD0yJlNjZW5lPTImU2NvcGU9c2NlbmUmTGluZUhpZ2hsaWdodD0xMzA3
214 IzEzMDcKCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K
215 bGlicmUtcmlzY3YtZGV2IG1haWxpbmcgbGlzdApsaWJyZS1yaXNjdi1kZXZAbGlzdHMubGlicmUt
216 cmlzY3Yub3JnCmh0dHA6Ly9saXN0cy5saWJyZS1yaXNjdi5vcmcvbWFpbG1hbi9saXN0aW5mby9s
217 aWJyZS1yaXNjdi1kZXYK
218