1 ////////////////////////////////////////////////////////////////////////////
2 //                           **** WAVPACK ****                            //
3 //                  Hybrid Lossless Wavefile Compressor                   //
4 //              Copyright (c) 1998 - 2013 Conifer Software.               //
5 //                          All Rights Reserved.                          //
6 //      Distributed under the BSD Software License (see license.txt)      //
7 ////////////////////////////////////////////////////////////////////////////
8 
9 // decorr_tables.h
10 
11 // These four tables specify the characteristics of the decorrelation filters
12 // for the four basic compression modes (fast, normal, high, and very high).
13 //
14 // The first entry in the table represents the "default" filter for the
15 // corresponding mode; subsequent entries represent filters that are tried
16 // in the "extra" modes 1-3 ("extra" modes 4-6 create filters from scratch).
17 //
18 // The first value indicates whether the filter is applied to joint stereo
19 // data (0=L/R, 1=M/S) and the second value represents the "delta" value of
20 // the adaptive filter. The rest of the values (2-16, depending on mode) are
21 // the "terms" of the filter.
22 //
23 // Each term represents one layer of the sequential filter, where positive
24 // values indicate the relative sample involved from the same channel (1=prev),
25 // 17 & 18 are special functions using the previous 2 samples, and negative
26 // values indicate cross channel decorrelation (in stereo only).
27 //
28 // It would be ideal if this was the only source for the decorrelation tables,
29 // but unfortunately the defaults (first entry) are duplicated in the assembly
30 // code for the function pack_decorr_mono_buffer() and there is no check in
31 // that code to make sure the correct filter is being passed in. SO, IF A
32 // CHANGE IS MADE HERE TO ONE OF THE DEFAULT FILTERS, THEN THE CORRESPONDING
33 // ASSEMBLY CODE MUST BE CHANGED ALSO, OR VERY CORRUPT FILES WILL RESULT!!
34 //
35 // Since this include file contains that actual tables as static const data,
36 // it should only be included from ONE source file (currently pack.c)!
37 
38 static const WavpackDecorrSpec fast_specs [] = {
39         { 1, 2, {18,17} },  // 0
40         { 1, 1, {17,17} },  // 1
41         { 0, 2, {18,17} },  // 2
42         { 0, 1, {17,17} },  // 3
43         { 1, 3, { 1,18} },  // 4
44         { 1, 1, {17, 1} },  // 5
45         { 0, 1, { 1,17} },  // 6
46         { 0, 1, {-2,17} },  // 7
47         { 0, 2, {-1,17} },  // 8
48         { 1, 1, {17, 2} },  // 9
49         { 0, 3, {18,18} },  // 10
50         { 0, 1, {17, 1} },  // 11
51         { 1, 6, { 1, 2} },  // 12
52         { 1, 1, {17, 3} },  // 13
53         { 0, 1, {-2, 3} },  // 14
54         { 0, 1, { 2,17} },  // 15
55         { 0, 1, {18,-2} },  // 16
56         { 0, 1, {-1,17} },  // 17
57         { 0, 1, {18,17} },  // 18
58         { 0, 1, {17, 2} },  // 19
59         { 1, 2, {18,-2} },  // 20
60         { 1, 1, { 1,17} },  // 21
61         { 0, 3, {18, 2} },  // 22
62         { 0, 1, {17,-2} },  // 23
63         { 0, 1, {18,-2} },  // 24
64         { 1, 2, {17,-3} },  // 25
65         { 0, 1, {18, 3} },  // 26
66         { 0, 1, {18,18} },  // 27
67         { 1, 1, { 1, 3} },  // 28
68         { 1, 1, {18, 3} },  // 29
69         { 1, 1, { 1, 3} },  // 30
70         { 0, 2, {18,17} },  // 31
71         { 1, 1, { 1,17} },  // 32
72         { 1, 1, {17, 3} },  // 33
73         { 0, 3, {18,17} },  // 34
74         { 0, 1, {18,18} },  // 35
75         { 1, 1, { 1, 3} },  // 36
76         { 1, 1, { 1,18} },  // 37
77         { 0, 1, {18,-2} },  // 38
78         { 0, 2, {18,17} },  // 39
79         { 0, 1, {-1,18} },  // 40
80         { 1, 1, {17, 3} },  // 41
81         { 0, 1, {17, 2} },  // 42
82         { 0, 1, {17, 3} },  // 43
83         { 1, 1, {18, 2} },  // 44
84         { 1, 1, {17,-2} },  // 45
85         { 0, 1, { 1,-2} },  // 46
86         { 0, 2, {18,17} },  // 47
87         { 0, 1, {17,-2} },  // 48
88         { 1, 1, {17,-2} },  // 49
89         { 0, 1, {18, 3} },  // 50
90         { 0, 1, { 2,17} },  // 51
91         { 1, 2, {18,-3} },  // 52
92         { 1, 2, { 1,18} },  // 53
93         { 1, 2, {18, 2} },  // 54
94         { 0, 1, {17,-1} },  // 55
95         { 0, 1, {17,-2} },  // 56
96         { 1, 1, {17,-2} },  // 57
97         { 1, 1, { 1, 3} },  // 58
98         { 0, 1, { 1,17} },  // 59
99         { 1, 2, {18,-2} },  // 60
100         { 1, 2, {17,-3} },  // 61
101         { 0, 2, {18,17} },  // 62
102         { 0, 2, {18,17} },  // 63
103         { 1, 1, {17, 2} },  // 64
104         { 1, 2, {18,18} },  // 65
105         { 0, 1, {17, 2} },  // 66
106         { 0, 1, {18,17} },  // 67
107         { 1, 1, { 1,17} },  // 68
108         { 1, 1, {17, 2} },  // 69
109         { 0, 2, {18,18} },  // 70
110         { 0, 2, {18,17} },  // 71
111         { 1, 2, {17,-3} },  // 72
112         { 1, 6, { 1, 2} },  // 73
113         { 0, 3, {17,17} },  // 74
114         { 0, 1, { 1,18} },  // 75
115         { 0, 1, { 1,-2} },  // 76
116         { 1, 1, {17, 2} },  // 77
117         { 0, 2, {18,17} },  // 78
118         { 0, 2, {18,17} },  // 79
119         { 1, 1, {18, 3} },  // 80
120         { 1, 2, {17,-3} },  // 81
121         { 0, 1, {17, 2} },  // 82
122         { 0, 1, {17, 3} },  // 83
123         { 0, 1, {18,-2} },  // 84
124         { 1, 1, {18,18} },  // 85
125         { 1, 6, { 1, 2} },  // 86
126         { 0, 2, {18,17} },  // 87
127         { 0, 2, {18,17} },  // 88
128         { 0, 1, {-1,17} },  // 89
129         { 1, 1, {18, 3} },  // 90
130         { 0, 1, {17,18} },  // 91
131         { 1, 1, {17, 3} },  // 92
132         { 0, 1, {18, 3} },  // 93
133         { 0, 2, {18,17} },  // 94
134         { 0, 2, {18,17} },  // 95
135         { 1, 2, {18, 2} },  // 96
136         { 0, 1, {-2, 3} },  // 97
137         { 0, 4, {18,-1} },  // 98
138         { 0, 2, {18,18} },  // 99
139         { 0, 1, {-2, 3} },  // 100
140         { 1, 1, {17,-2} },  // 101
141         { 0, 1, {17, 3} },  // 102
142         { 0, 2, {18,17} },  // 103
143         { 0, 2, {-1,18} },  // 104
144         { 1, 1, { 2,17} },  // 105
145         { 0, 2, {17,-2} },  // 106
146         { 0, 1, {17, 2} },  // 107
147         { 1, 2, {18,-3} },  // 108
148         { 0, 1, {17,-2} },  // 109
149         { 0, 2, {18,17} },  // 110
150         { 0, 2, {18,17} },  // 111
151         { 1, 1, {17,-2} },  // 112
152         { 1, 2, {17,-3} },  // 113
153         { 1, 1, { 1, 3} },  // 114
154         { 1, 1, { 2,17} },  // 115
155         { 1, 2, {18, 2} },  // 116
156         { 1, 1, { 2,17} },  // 117
157         { 1, 1, {18, 2} },  // 118
158         { 0, 2, {18,17} },  // 119
159         { 0, 2, {18,17} },  // 120
160         { 0, 1, {17,-2} },  // 121
161         { 0, 2, {18,17} },  // 122
162         { 0, 2, {17,-1} },  // 123
163         { 0, 2, {18,-2} },  // 124
164         { 0, 2, {18,17} },  // 125
165         { 0, 2, {18,17} },  // 126
166         { 0, 2, {18,17} },  // 127
167         { 1, 1, { 1, 3} },  // 128
168         { 0, 2, {-2,17} },  // 129
169         { 0, 2, {18,-2} },  // 130
170         { 0, 2, {17,-2} },  // 131
171         { 1, 1, { 2,17} },  // 132
172         { 1, 1, { 1, 3} },  // 133
173         { 0, 1, { 2,17} },  // 134
174         { 0, 2, {18,17} },  // 135
175         { 0, 3, {-1,17} },  // 136
176         { 1, 1, { 2,17} },  // 137
177         { 0, 2, {18,18} },  // 138
178         { 0, 1, {17, 2} },  // 139
179         { 1, 4, {18,-3} },  // 140
180         { 1, 1, {18, 1} },  // 141
181         { 0, 2, {18,17} },  // 142
182         { 0, 2, {18,17} },  // 143
183         { 1, 2, {18,-1} },  // 144
184         { 0, 1, {-1,18} },  // 145
185         { 1, 6, { 1, 2} },  // 146
186         { 1, 1, {17, 2} },  // 147
187         { 1, 4, {18, 3} },  // 148
188         { 0, 1, { 1,17} },  // 149
189         { 0, 1, {18, 2} },  // 150
190         { 0, 2, {18,17} },  // 151
191         { 0, 2, {18,17} },  // 152
192         { 1, 2, {17, 2} },  // 153
193         { 0, 2, {18,-2} },  // 154
194         { 0, 1, { 1,18} },  // 155
195         { 1, 2, {18,-3} },  // 156
196         { 0, 2, {18,17} },  // 157
197         { 0, 2, {18,17} },  // 158
198         { 0, 2, {18,17} },  // 159
199         { 1, 2, {18,18} },  // 160
200         { 1, 3, {17,17} },  // 161
201         { 0, 1, {-2,17} },  // 162
202         { 0, 1, {17,18} },  // 163
203         { 0, 1, {-1, 3} },  // 164
204         { 1, 1, { 2,17} },  // 165
205         { 0, 2, {18,-1} },  // 166
206         { 0, 2, {18,17} },  // 167
207         { 0, 2, {18,17} },  // 168
208         { 1, 1, {17,-2} },  // 169
209         { 1, 2, {17, 2} },  // 170
210         { 1, 1, {18, 3} },  // 171
211         { 0, 1, {18, 2} },  // 172
212         { 1, 2, {17,-3} },  // 173
213         { 0, 2, {18,17} },  // 174
214         { 0, 2, {18,17} },  // 175
215         { 0, 1, {-2,17} },  // 176
216         { 0, 1, {17,-1} },  // 177
217         { 0, 1, {18,-1} },  // 178
218         { 0, 2, {18,17} },  // 179
219         { 1, 2, {17,-3} },  // 180
220         { 1, 1, { 1,18} },  // 181
221         { 1, 3, {18, 2} },  // 182
222         { 0, 2, {18,17} },  // 183
223         { 0, 2, {18,17} },  // 184
224         { 0, 2, {18,17} },  // 185
225         { 0, 2, {18,17} },  // 186
226         { 0, 3, {18,18} },  // 187
227         { 0, 1, { 1,-2} },  // 188
228         { 0, 2, {18,17} },  // 189
229         { 0, 2, {18,17} },  // 190
230         { 0, 2, {18,17} },  // 191
231         { 1, 2, {17,-3} },  // 192
232         { 1, 1, {18,18} },  // 193
233         { 0, 2, {18, 2} },  // 194
234         { 0, 1, {17,18} },  // 195
235         { 1, 2, {18, 2} },  // 196
236         { 1, 1, {17,-2} },  // 197
237         { 0, 2, {17,-1} },  // 198
238         { 0, 2, {18,17} },  // 199
239         { 0, 2, {18,17} },  // 200
240         { 0, 2, {18,17} },  // 201
241         { 0, 1, { 1,-2} },  // 202
242         { 0, 1, {18, 1} },  // 203
243         { 1, 2, {18,-2} },  // 204
244         { 0, 1, {17, 2} },  // 205
245         { 0, 2, {18,17} },  // 206
246         { 0, 2, {18,17} },  // 207
247         { 1, 1, {17, 3} },  // 208
248         { 0, 1, {17,-1} },  // 209
249         { 0, 1, {18, 2} },  // 210
250         { 1, 1, {17, 3} },  // 211
251         { 1, 1, {17,-2} },  // 212
252         { 0, 1, {18,18} },  // 213
253         { 0, 2, {18,17} },  // 214
254         { 0, 2, {18,17} },  // 215
255         { 0, 2, {18,17} },  // 216
256         { 0, 2, {18,17} },  // 217
257         { 0, 2, {18,17} },  // 218
258         { 1, 1, {17,18} },  // 219
259         { 0, 1, {-2, 3} },  // 220
260         { 0, 2, {18,17} },  // 221
261         { 0, 2, {18,17} },  // 222
262         { 0, 2, {18,17} },  // 223
263         { 1, 2, {18,-3} },  // 224
264         { 0, 2, {18,17} },  // 225
265         { 0, 3, {18, 2} },  // 226
266         { 0, 1, { 1,18} },  // 227
267         { 0, 2, {18,17} },  // 228
268         { 0, 1, {17,-1} },  // 229
269         { 0, 2, {18,17} },  // 230
270         { 0, 2, {18,17} },  // 231
271         { 0, 2, {18,17} },  // 232
272         { 0, 1, {-2, 3} },  // 233
273         { 0, 3, {17,17} },  // 234
274         { 0, 2, {18,17} },  // 235
275         { 0, 2, {18,17} },  // 236
276         { 1, 1, {17, 2} },  // 237
277         { 0, 2, {18,17} },  // 238
278         { 0, 2, {18,17} },  // 239
279         { 1, 1, {17, 2} },  // 240
280         { 0, 2, {18,17} },  // 241
281         { 0, 2, {18,17} },  // 242
282         { 0, 2, {18,17} },  // 243
283         { 0, 2, {18, 2} },  // 244
284         { 0, 2, {18,17} },  // 245
285         { 0, 2, {18,17} },  // 246
286         { 0, 2, {18,17} },  // 247
287         { 0, 2, {18,17} },  // 248
288         { 0, 2, {18,17} },  // 249
289         { 0, 2, {18,17} },  // 250
290         { 0, 2, {18,17} },  // 251
291         { 0, 2, {18,17} },  // 252
292         { 0, 2, {18,17} },  // 253
293         { 0, 2, {18,17} },  // 254
294         { 0, 2, {18,17} },  // 255
295 };
296 
297 static const WavpackDecorrSpec default_specs [] = {
298         { 1, 2, {18,18, 2,17, 3} },         // 0
299         { 0, 2, {18,17,-1, 3, 2} },         // 1
300         { 1, 1, {17,18,18,-2, 2} },         // 2
301         { 0, 2, {18,17, 3,-2,17} },         // 3
302         { 1, 2, {18,17, 2,17, 3} },         // 4
303         { 0, 1, {18,18,-1, 2,17} },         // 5
304         { 0, 1, {17,17,-2, 2, 3} },         // 6
305         { 0, 1, {18,-2,18, 2,17} },         // 7
306         { 1, 2, {18,18,-1, 2, 3} },         // 8
307         { 0, 2, {18,17, 3, 2, 5} },         // 9
308         { 1, 1, {18,17,18, 2, 5} },         // 10
309         { 0, 1, {17,17,-2, 2, 3} },         // 11
310         { 0, 1, {18,-2,18, 2, 5} },         // 12
311         { 0, 1, {17,-2,17, 2,-3} },         // 13
312         { 1, 1, {17,-2,17, 1, 2} },         // 14
313         { 0, 1, {17,17,-2, 2, 3} },         // 15
314         { 1, 1, {18, 3, 1, 5, 4} },         // 16
315         { 1, 4, {18,18, 2, 3,-2} },         // 17
316         { 0, 1, { 1,-1,-1, 2,17} },         // 18
317         { 0, 2, {18,17, 3, 2, 5} },         // 19
318         { 0, 1, {18,18,18, 2,17} },         // 20
319         { 0, 1, {18,17,-1, 2,18} },         // 21
320         { 1, 1, {17, 3, 2, 1, 7} },         // 22
321         { 0, 2, {18,-2,18, 2, 3} },         // 23
322         { 1, 3, {18,-3,18, 2, 3} },         // 24
323         { 0, 3, {18,17, 2, 3,17} },         // 25
324         { 1, 1, {17,17, 2, 1, 4} },         // 26
325         { 0, 1, {17,18,-2, 2,17} },         // 27
326         { 1, 1, {18,18, 3, 5, 2} },         // 28
327         { 0, 1, {17,17, 2,18, 4} },         // 29
328         { 0, 1, {18,17, 1, 4, 6} },         // 30
329         { 1, 1, { 3,17,18, 2,17} },         // 31
330         { 1, 1, {17, 3, 2, 1, 7} },         // 32
331         { 0, 1, {18,17,-1, 2, 3} },         // 33
332         { 1, 1, {17,17, 2, 1, 4} },         // 34
333         { 1, 2, {18,17,-1,17, 3} },         // 35
334         { 1, 2, {18,17, 2, 3,-1} },         // 36
335         { 0, 2, {18,18,-2, 2,17} },         // 37
336         { 0, 1, {17,17, 2,18, 4} },         // 38
337         { 0, 5, {-2,18,18,18, 2} },         // 39
338         { 1, 1, {18,18,-1, 6, 3} },         // 40
339         { 0, 1, {17,17,-2, 2, 3} },         // 41
340         { 1, 1, {18,17,18, 2,17} },         // 42
341         { 0, 1, {18,17, 4, 3, 1} },         // 43
342         { 0, 1, {-2,18, 2, 2,18} },         // 44
343         { 1, 2, {18,18,-2, 2,-1} },         // 45
344         { 1, 1, {17,17, 2, 1, 4} },         // 46
345         { 0, 1, {17,18,-2, 2,17} },         // 47
346         { 1, 1, {17, 3, 2, 1, 7} },         // 48
347         { 1, 3, {18,-3,18, 2, 3} },         // 49
348         { 1, 2, {18,18,-2, 2,-1} },         // 50
349         { 1, 1, {18,18, 3, 5, 2} },         // 51
350         { 0, 2, {18,18,-1, 2,17} },         // 52
351         { 0, 1, {18,-1,17,18, 2} },         // 53
352         { 0, 1, {17,-1, 2, 3, 6} },         // 54
353         { 0, 1, {18,-2,18, 2, 5} },         // 55
354         { 1, 2, {18,18,-2, 2,-1} },         // 56
355         { 0, 3, {18,18, 2, 3,17} },         // 57
356         { 0, 1, {17,17, 2,18, 4} },         // 58
357         { 1, 1, {17,-2,17, 1, 2} },         // 59
358         { 0, 1, {-1, 3, 5, 4, 7} },         // 60
359         { 0, 3, {18,18, 3, 2, 5} },         // 61
360         { 0, 1, {17,17, 2,18, 4} },         // 62
361         { 0, 1, {18,17,-2,18, 3} },         // 63
362         { 0, 2, {18,18,-2, 2,17} },         // 64
363         { 0, 3, {18,17,-2, 2, 3} },         // 65
364         { 1, 1, {18,18,-2, 2,17} },         // 66
365         { 0, 1, {18,17, 4, 3, 1} },         // 67
366         { 1, 2, { 3,18,17, 2,17} },         // 68
367         { 1, 2, {18,18, 2,-2,18} },         // 69
368         { 1, 2, {18,18,-1,18, 2} },         // 70
369         { 0, 2, {18,18,-2, 2,17} },         // 71
370         { 1, 3, {18,18, 2, 3,-2} },         // 72
371         { 0, 3, {18,18, 3, 2, 5} },         // 73
372         { 0, 1, {18,-2,18, 2, 5} },         // 74
373         { 1, 1, {17, 3, 2, 1, 7} },         // 75
374         { 1, 3, {18,18,-2, 2,18} },         // 76
375         { 1, 1, {17,18,18,-2, 2} },         // 77
376         { 0, 1, {18,-2,18, 2, 5} },         // 78
377         { 0, 2, {18,-2,18, 2, 3} },         // 79
378         { 0, 1, {-1, 3, 4, 5, 7} },         // 80
379         { 1, 1, {17,17, 2,-1, 7} },         // 81
380         { 0, 1, {18,-1,-1, 2,-2} },         // 82
381         { 0, 2, {18,17, 2, 3,17} },         // 83
382         { 0, 1, {18,17, 2,18, 2} },         // 84
383         { 0, 2, {18,17,-1, 2,17} },         // 85
384         { 0, 1, { 1,18, 3, 2, 5} },         // 86
385         { 0, 2, {18,-2, 4,18, 2} },         // 87
386         { 1, 1, {18, 3, 1, 5, 4} },         // 88
387         { 0, 1, {18,17,18, 2, 5} },         // 89
388         { 1, 1, {18, 3, 1, 5, 4} },         // 90
389         { 0, 4, {18,18,-2, 2,18} },         // 91
390         { 1, 1, {18,18, 3, 2, 5} },         // 92
391         { 1, 1, {17,17, 2, 1, 4} },         // 93
392         { 0, 2, {18,18,-2,18, 2} },         // 94
393         { 0, 2, {18,18,-2,18, 2} },         // 95
394         { 1, 1, {18,18, 2, 1, 3} },         // 96
395         { 1, 1, {17,17, 2, 1, 4} },         // 97
396         { 1, 2, {17,17, 2,18, 3} },         // 98
397         { 0, 1, {18,17, 1, 4, 6} },         // 99
398         { 1, 2, {18,18,-2, 2,-1} },         // 100
399         { 0, 1, {18,-2,18, 2, 5} },         // 101
400         { 1, 1, {17, 2,18, 2,17} },         // 102
401         { 0, 2, {18,18,-2,18, 2} },         // 103
402         { 0, 1, {18,18, 3, 6,-1} },         // 104
403         { 0, 1, {18,17, 2,18, 3} },         // 105
404         { 0, 1, {18,17,-2, 2,17} },         // 106
405         { 1, 1, { 3,17,18, 2,17} },         // 107
406         { 1, 3, {18,-3,18, 2, 3} },         // 108
407         { 1, 3, {18,18,-3,18, 2} },         // 109
408         { 1, 1, {18, 3, 1, 5, 4} },         // 110
409         { 0, 1, {17,-2,17, 2,-3} },         // 111
410         { 1, 1, {18,18, 3, 5, 2} },         // 112
411         { 1, 2, {18,18,-2, 2,-1} },         // 113
412         { 0, 1, {18,-1,-1, 2,-2} },         // 114
413         { 1, 1, {18, 3, 1, 5, 4} },         // 115
414         { 0, 3, {18,17,-1, 2,17} },         // 116
415         { 1, 3, {18,17, 2,18,-2} },         // 117
416         { 0, 2, {18,18,-2,18, 2} },         // 118
417         { 1, 2, {18,18,-2, 2,-1} },         // 119
418         { 1, 1, {18, 3, 1, 5, 4} },         // 120
419         { 0, 4, { 3,18,18, 2,17} },         // 121
420         { 0, 2, {18,18,-2,18, 2} },         // 122
421         { 1, 1, {18,17,-1,18, 2} },         // 123
422         { 0, 2, {18,18,-2,18, 2} },         // 124
423         { 0, 2, {18,18,-2,18, 2} },         // 125
424         { 0, 2, {18,18,-2,18, 2} },         // 126
425         { 0, 2, {18,18,-2,18, 2} },         // 127
426         { 1, 1, {18,18,18, 3, 2} },         // 128
427         { 0, 1, {17,-1, 2, 3, 6} },         // 129
428         { 0, 1, {17,-1, 2, 3, 6} },         // 130
429         { 0, 2, {18,17,-2, 3, 2} },         // 131
430         { 1, 3, {18,17, 2,-2,18} },         // 132
431         { 0, 2, {18,18, 2,17, 3} },         // 133
432         { 0, 1, {18,18, 2,18,-2} },         // 134
433         { 0, 2, {18,-2, 4,18, 2} },         // 135
434         { 0, 1, {-2,18, 2, 2,18} },         // 136
435         { 0, 2, {18,17, 3, 6, 2} },         // 137
436         { 0, 1, {18,17,18, 2, 5} },         // 138
437         { 0, 3, {18,18,-2, 3, 2} },         // 139
438         { 1, 1, {18,18, 2,18, 5} },         // 140
439         { 0, 1, {17,-1, 2, 3, 6} },         // 141
440         { 1, 4, {18,18, 2, 3,-2} },         // 142
441         { 0, 2, {18,17,18, 2,-2} },         // 143
442         { 0, 1, { 1,18, 3, 2, 5} },         // 144
443         { 1, 4, {18,-2,18, 2, 3} },         // 145
444         { 1, 2, {18, 2,18, 3,-2} },         // 146
445         { 0, 2, {18,18,18, 2, 4} },         // 147
446         { 0, 2, { 3,17,18, 2,17} },         // 148
447         { 1, 1, {18,-1,18, 2,17} },         // 149
448         { 1, 2, {17,17, 2,18, 3} },         // 150
449         { 0, 2, {18,17,-2, 3, 2} },         // 151
450         { 0, 1, { 1,-1,-1, 2,17} },         // 152
451         { 0, 3, { 3,18,18, 2,17} },         // 153
452         { 0, 1, {18,-1,17,18, 2} },         // 154
453         { 0, 1, {18,17, 2,18, 3} },         // 155
454         { 0, 2, {18,18,-2,18, 2} },         // 156
455         { 0, 1, {18,17, 2,18, 2} },         // 157
456         { 0, 2, {18,18,-2,18, 2} },         // 158
457         { 0, 2, {18,18,-2,18, 2} },         // 159
458         { 1, 2, {17,17, 2,18, 3} },         // 160
459         { 0, 1, {18,17,-2, 2, 3} },         // 161
460         { 0, 1, {18,-2,18, 2, 5} },         // 162
461         { 1, 4, {18,-2,18, 2, 3} },         // 163
462         { 1, 3, {18,17, 2, 3, 6} },         // 164
463         { 0, 2, {18,18, 2,17, 3} },         // 165
464         { 0, 2, {18,17, 2,18, 2} },         // 166
465         { 0, 2, {18,18,-2,18, 2} },         // 167
466         { 1, 1, {18,18, 3, 5, 2} },         // 168
467         { 0, 2, {18,18,-2, 2, 3} },         // 169
468         { 1, 2, {18,17, 2,17, 3} },         // 170
469         { 0, 1, {18,17, 2, 3,18} },         // 171
470         { 0, 2, {18,18,-2,18, 2} },         // 172
471         { 1, 4, {18,18, 2, 3,-2} },         // 173
472         { 0, 1, {17,-2,17, 2,-3} },         // 174
473         { 0, 1, {17,17, 2,18, 4} },         // 175
474         { 1, 1, {18,18,18, 2, 4} },         // 176
475         { 1, 2, {18, 2,18, 3,-2} },         // 177
476         { 1, 1, {18,18,-2, 2,17} },         // 178
477         { 0, 2, {18,18,-2,18, 2} },         // 179
478         { 0, 2, {18,18, 2,17, 3} },         // 180
479         { 0, 2, {18,18,18, 2, 4} },         // 181
480         { 0, 2, {18,18,-2,18, 2} },         // 182
481         { 0, 2, {18,17,-2, 3, 2} },         // 183
482         { 0, 1, { 1,-1,-1, 2,17} },         // 184
483         { 1, 4, {18,18, 2, 3,-2} },         // 185
484         { 0, 2, {18,18,-2,18, 2} },         // 186
485         { 0, 1, {18,-2,18, 3, 2} },         // 187
486         { 0, 2, {18,18,-2,18, 2} },         // 188
487         { 0, 2, {18,18,-2,18, 2} },         // 189
488         { 0, 2, {18,18,-2,18, 2} },         // 190
489         { 0, 2, {18,18,-2,18, 2} },         // 191
490         { 0, 1, {18,18,-2, 2,17} },         // 192
491         { 0, 3, {18,17, 2, 3,17} },         // 193
492         { 1, 2, {18,18, 2,-2,18} },         // 194
493         { 0, 1, {-1, 3, 5, 4, 7} },         // 195
494         { 1, 1, {18, 3, 1, 5, 4} },         // 196
495         { 1, 1, {18,18,-2,18, 3} },         // 197
496         { 0, 2, {18,17,18, 2,-2} },         // 198
497         { 0, 2, {18,18, 2,17, 3} },         // 199
498         { 1, 2, {18, 2,18, 3,-2} },         // 200
499         { 1, 4, {18,18, 2, 3,-2} },         // 201
500         { 1, 3, {18,17, 2, 3, 6} },         // 202
501         { 0, 2, {18,18,-2,18, 2} },         // 203
502         { 1, 2, {18,17,-2,-1,17} },         // 204
503         { 0, 1, {17,-1, 2, 3, 6} },         // 205
504         { 0, 2, {18,18,-2,18, 2} },         // 206
505         { 0, 2, {18,18,-2, 2, 3} },         // 207
506         { 1, 1, {18,18,18, 2, 5} },         // 208
507         { 0, 1, {17,17,-2, 2, 3} },         // 209
508         { 0, 2, {18,18,-2,18, 2} },         // 210
509         { 0, 2, {18,17, 3, 6, 2} },         // 211
510         { 0, 2, {18,17,18, 2, 3} },         // 212
511         { 0, 3, {18,17,-3,18, 2} },         // 213
512         { 0, 1, {18,18,18, 2, 3} },         // 214
513         { 0, 1, {18,-2,-3, 2, 6} },         // 215
514         { 0, 2, {18,18,-2,18, 2} },         // 216
515         { 1, 1, {18,17,18, 2, 5} },         // 217
516         { 0, 2, {18,18,-2,18, 2} },         // 218
517         { 0, 2, {18,18,-2,18, 2} },         // 219
518         { 1, 1, {18,17,18, 2, 5} },         // 220
519         { 0, 2, {18,18,-2,18, 2} },         // 221
520         { 0, 2, {18,18,-2,18, 2} },         // 222
521         { 0, 2, {18,18,-2,18, 2} },         // 223
522         { 0, 1, {18,18,18, 2, 3} },         // 224
523         { 1, 1, {17,-2,17, 1, 2} },         // 225
524         { 1, 1, {17,17, 2,-1, 7} },         // 226
525         { 0, 1, {18,17, 4, 3, 1} },         // 227
526         { 1, 3, {18,-3,18, 2, 3} },         // 228
527         { 0, 1, { 1,18, 3, 2, 5} },         // 229
528         { 0, 2, {18,18,-2,18, 2} },         // 230
529         { 0, 2, {18,18,-2,18, 2} },         // 231
530         { 0, 1, {18,18, 3, 6, 2} },         // 232
531         { 0, 1, {17,17, 2,18, 4} },         // 233
532         { 0, 1, {17,17, 2,18, 4} },         // 234
533         { 0, 2, {18,18,-2,18, 2} },         // 235
534         { 0, 2, {18,18,-2,18, 2} },         // 236
535         { 0, 2, {18,18,-2,18, 2} },         // 237
536         { 1, 2, {18,-2,18, 3, 2} },         // 238
537         { 1, 1, {17,-2,17, 1, 2} },         // 239
538         { 1, 1, {18,18, 3, 2, 5} },         // 240
539         { 0, 1, {18,18,-1, 2, 3} },         // 241
540         { 0, 2, {18,18,-2,18, 2} },         // 242
541         { 0, 2, {18,18,-2,18, 2} },         // 243
542         { 0, 1, {18,17,18, 2, 5} },         // 244
543         { 0, 2, {18,18,-2,18, 2} },         // 245
544         { 0, 2, {18,18,-2,18, 2} },         // 246
545         { 0, 2, {18,18,-2,18, 2} },         // 247
546         { 0, 2, {18,18,-2,18, 2} },         // 248
547         { 0, 1, { 3,18,18, 2,17} },         // 249
548         { 0, 2, {18,18,-2,18, 2} },         // 250
549         { 0, 2, {18,18,-2,18, 2} },         // 251
550         { 0, 2, {18,18,-2,18, 2} },         // 252
551         { 0, 2, {18,18,-2,18, 2} },         // 253
552         { 0, 2, {18,18,-2,18, 2} },         // 254
553         { 0, 2, {18,18,-2,18, 2} },         // 255
554 };
555 
556 static const WavpackDecorrSpec high_specs [] = {
557         { 1, 2, {18,18,18,-2, 2, 3, 5,-1,17, 4} },  // 0
558         { 0, 1, {18,17,-2, 2,18, 3, 7, 2, 5, 4} },  // 1
559         { 1, 2, { 1,18, 3, 6,-2,18, 2, 3, 4, 5} },  // 2
560         { 0, 2, {18,18,-2, 2,18, 3, 6, 2,17, 4} },  // 3
561         { 1, 2, {18,18, 2,18, 3, 2,-1, 4,18, 5} },  // 4
562         { 1, 1, { 7, 6, 5, 3, 4, 2, 5, 4, 3, 7} },  // 5
563         { 1, 1, {17, 3,18, 7, 2, 6, 1, 4, 3, 5} },  // 6
564         { 1, 1, {-2,18,18,18, 3,-2, 6, 5, 2, 1} },  // 7
565         { 1, 2, {18,18,-1,18, 2, 3, 6,-2,17, 5} },  // 8
566         { 0, 1, {17,17,18, 3, 6, 4, 5, 2,18,-2} },  // 9
567         { 1, 2, { 1,18,-2, 3, 5, 2, 4,-1, 6, 1} },  // 10
568         { 0, 2, {18,18, 3, 6,18, 2, 4, 8, 5, 3} },  // 11
569         { 0, 1, {-2, 1,18, 2,-2, 7,18, 2,-1, 5} },  // 12
570         { 1, 1, { 4, 3, 8, 1, 5, 2, 5, 6, 2, 8} },  // 13
571         { 1, 1, {17,18, 2, 6, 3, 4,-1, 1, 8, 6} },  // 14
572         { 0, 1, {18,18, 3, 6, 3,-2, 2, 5,-1, 1} },  // 15
573         { 0, 1, {18,18,17,-1, 2,-2,18, 3, 4, 5} },  // 16
574         { 1, 2, {18,17, 2,-2,18, 3, 5, 7, 2, 4} },  // 17
575         { 1, 2, {18,18, 3, 6,-2,18, 2, 5, 8, 3} },  // 18
576         { 0, 1, {18,17, 2,18,18, 2, 6, 5,17, 7} },  // 19
577         { 1, 2, {18,17, 2,18, 3, 2, 6,18,-1, 4} },  // 20
578         { 1, 1, { 5, 3, 6, 5, 3, 4, 1, 2, 4, 7} },  // 21
579         { 1, 1, { 5, 3, 6, 5, 3, 4, 1, 2, 4, 7} },  // 22
580         { 0, 1, {-2,18,18,18,-2, 3, 2, 4, 6, 5} },  // 23
581         { 1, 2, {18,17,-3, 3,-1,18, 2, 3, 6, 5} },  // 24
582         { 0, 1, {17,18, 7, 3,-2, 7, 1, 2, 4, 5} },  // 25
583         { 1, 1, { 2,18,18,-2, 2, 4,-1,18, 3, 6} },  // 26
584         { 0, 3, { 1,18, 4, 3, 5, 2, 4,18, 2, 3} },  // 27
585         { 0, 1, {-2,18, 2,18, 3, 7,18, 2, 6,-2} },  // 28
586         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 29
587         { 1, 1, {18,18, 5, 4, 6, 4, 5, 1, 4, 3} },  // 30
588         { 1, 1, {18, 3, 6, 5, 7, 8, 2, 3, 1,-1} },  // 31
589         { 1, 1, {18,18,18, 2,-2, 3, 5,18, 2, 8} },  // 32
590         { 0, 2, {18,17,-2, 2, 3,18,-3, 5, 2, 7} },  // 33
591         { 1, 1, { 1, 1,-1, 8,17, 3,-2, 2, 6,17} },  // 34
592         { 0, 2, {18,18,17, 2,-2, 3, 2, 4,18, 5} },  // 35
593         { 1, 1, {17,18, 2,-1, 5, 7,18, 3, 4, 6} },  // 36
594         { 1, 1, { 5, 4, 5,17, 3, 6, 3, 4, 7, 2} },  // 37
595         { 0, 1, {17, 3, 1, 7, 4, 2, 5,-2,18, 6} },  // 38
596         { 0, 1, {17,18, 2,18, 4, 3, 5, 7,-3, 6} },  // 39
597         { 1, 2, {17,17,-3,-2, 2, 8,18,-1, 3, 5} },  // 40
598         { 0, 1, {17,17,18, 2, 3, 6,-2, 8, 1, 7} },  // 41
599         { 1, 1, { 1, 2, 6,-2,18, 2, 5,-3, 7,-2} },  // 42
600         { 0, 1, {18,18, 3,18, 6, 8,-2, 2, 3, 5} },  // 43
601         { 0, 1, {18,17, 2,18,-2, 3, 7, 6, 2, 4} },  // 44
602         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 45
603         { 1, 1, {18,18, 2,-1, 3, 6, 1, 3, 4, 8} },  // 46
604         { 0, 1, {18,18, 3, 6, 5, 3,-2, 2,18,-1} },  // 47
605         { 0, 1, {18,17,-3,18, 2, 4,-2, 3, 6,17} },  // 48
606         { 1, 3, { 1, 2,17, 3,18, 7,-1, 5, 2, 4} },  // 49
607         { 1, 1, {18, 3,18, 6, 8,18,-2, 5, 7, 2} },  // 50
608         { 0, 1, {17, 2,18, 6, 3, 2, 5, 4, 8, 1} },  // 51
609         { 0, 1, {18,17,-1, 2, 3,18,18, 2, 3,17} },  // 52
610         { 1, 1, {18, 7, 6, 5, 5, 3, 1, 4, 2, 4} },  // 53
611         { 1, 1, { 6,17, 3, 8, 1, 5, 7,-1, 2, 1} },  // 54
612         { 1, 1, {18,-2,18, 3,-2, 2, 7, 4, 6,18} },  // 55
613         { 1, 3, {18,-3,18, 2, 3,18,-1, 7, 2, 5} },  // 56
614         { 0, 2, {18,-2, 7, 1, 3, 2, 4, 6,-3, 7} },  // 57
615         { 1, 1, {18,-2, 2,-3,18,-2,17,-1, 4, 2} },  // 58
616         { 0, 3, {17,17, 2, 5, 3, 7,18, 6, 4, 2} },  // 59
617         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 60
618         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 61
619         { 1, 1, {18,17, 4, 6, 6, 4, 5, 3, 4, 1} },  // 62
620         { 0, 1, {18, 5, 3, 6, 2, 3, 8, 1, 3, 7} },  // 63
621         { 1, 2, {18,17,-2, 2,18, 3, 5, 7,-1, 2} },  // 64
622         { 0, 1, { 1,18,18, 3, 6,-1, 4, 8, 5, 2} },  // 65
623         { 1, 1, { 1, 5, 3, 4, 1, 1, 3, 5, 7, 3} },  // 66
624         { 0, 1, { 3,18,18, 2,18,18,-1, 2, 3,18} },  // 67
625         { 1, 2, {18,18,-1,18, 2, 3, 4, 6,18, 5} },  // 68
626         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 69
627         { 1, 1, {18, 3, 1, 4, 5, 2, 7, 1, 3, 6} },  // 70
628         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 71
629         { 1, 2, {18,18,-1,18, 2, 3, 5,-2, 6, 8} },  // 72
630         { 1, 1, {17,18, 4, 8, 3, 2, 5, 2, 7, 6} },  // 73
631         { 1, 4, { 1, 2, 5,18,-2, 2, 3, 7,-1, 4} },  // 74
632         { 0, 2, {18,17,-1, 3, 6,18, 2, 3, 7, 5} },  // 75
633         { 0, 1, {-2,18, 2,-3, 6,18, 4, 3,-2, 5} },  // 76
634         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 77
635         { 0, 1, {17,17, 6, 2, 4, 8, 3, 5,-1,17} },  // 78
636         { 1, 1, {18, 3,18, 6, 8,18,-2, 5, 7, 2} },  // 79
637         { 1, 2, {17,17,-3, 2,18,-2, 8, 3, 6,-1} },  // 80
638         { 1, 1, {18,-2,17,18, 2, 3,-2, 6, 5, 4} },  // 81
639         { 1, 2, {18,17,-1, 3,18, 2, 5, 3, 6,-3} },  // 82
640         { 0, 1, {18,17, 2,18, 7,18, 2, 4, 3,17} },  // 83
641         { 1, 3, {18,18, 5, 6, 4, 3, 4,18, 6, 5} },  // 84
642         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 85
643         { 1, 1, { 7, 6, 5, 3, 4, 2, 5, 4, 3, 7} },  // 86
644         { 0, 1, {-2,18,18,18, 3, 6, 4, 2, 5, 2} },  // 87
645         { 0, 3, {18,17,-3,18, 3, 2, 5,-1,17, 3} },  // 88
646         { 1, 1, {17,18, 7, 3, 1, 7, 4, 2, 6, 5} },  // 89
647         { 1, 1, {18, 2,-2,-1,18, 5, 3,-2, 1, 2} },  // 90
648         { 0, 3, {18,18,-1, 3, 2, 7, 5,18, 4, 3} },  // 91
649         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 92
650         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 93
651         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 94
652         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 95
653         { 1, 1, {17,18, 2,-2, 4, 8,18, 3, 6, 5} },  // 96
654         { 0, 2, {18,17, 3, 5,-2, 7, 2,18, 3,-1} },  // 97
655         { 1, 1, {18, 2,-2,-1,18, 5, 3,-2, 1, 2} },  // 98
656         { 0, 2, { 3,17,18,18, 2, 5, 7, 6,18, 3} },  // 99
657         { 1, 1, {17,18,18, 4, 3, 2,18, 7, 8,-1} },  // 100
658         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 101
659         { 0, 1, {17, 1, 2, 3, 5, 6, 1, 4, 8,17} },  // 102
660         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 103
661         { 0, 2, {18,17,-1,18,-3, 2, 8, 3, 6,17} },  // 104
662         { 1, 1, {17,17, 1, 2, 4, 5,-1, 2, 1, 6} },  // 105
663         { 1, 1, { 1, 2, 6,-2,18, 2,-3, 3,-2, 5} },  // 106
664         { 0, 1, {18, 3,18, 6,18, 5, 2, 4,-1, 8} },  // 107
665         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 108
666         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 109
667         { 1, 1, {18,18,-1, 2,18, 3, 6, 4,-2, 7} },  // 110
668         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 111
669         { 0, 2, {-1,18,18,18, 2,-2, 4, 7, 2, 3} },  // 112
670         { 0, 3, { 3,17,-2, 5, 2, 7,18, 6, 4, 5} },  // 113
671         { 0, 1, {17, 6,18, 3, 8, 4, 5, 3, 8,18} },  // 114
672         { 0, 2, {18, 2, 6, 2,18, 3, 2, 4, 5, 8} },  // 115
673         { 0, 1, { 3,18,18, 2,18,-1, 2,18, 2,17} },  // 116
674         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 117
675         { 0, 1, { 3, 6,17,-2, 5, 1, 2, 7, 4, 8} },  // 118
676         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 119
677         { 1, 3, { 3,18,17, 5, 6, 2, 7,-2, 8,18} },  // 120
678         { 1, 1, {18,-1, 3, 1, 7, 2,-1, 4, 6,17} },  // 121
679         { 1, 1, {18, 2,-2,-1,18, 5, 3,-2, 1, 2} },  // 122
680         { 0, 2, {18, 1, 2,18, 3, 6, 5, 2, 4, 8} },  // 123
681         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 124
682         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 125
683         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 126
684         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 127
685         { 1, 1, {17,-2, 2,18,18, 8, 5, 3, 2, 6} },  // 128
686         { 0, 1, {18,17, 2,18, 3, 2, 7,-2,18, 4} },  // 129
687         { 1, 2, { 1,18, 2, 3,-1, 5, 6, 4, 7,17} },  // 130
688         { 0, 2, {18,17, 3, 6,-2, 2, 3, 8, 5,17} },  // 131
689         { 0, 2, {18,18, 3, 2,18,-1, 2, 4, 3,17} },  // 132
690         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 133
691         { 1, 2, {17,-1,18, 2, 3,-2, 5,18, 2, 7} },  // 134
692         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 135
693         { 1, 2, {18,-3,18, 2, 3,-2,18, 5, 6,-3} },  // 136
694         { 0, 2, {18,17, 3, 5,-2, 7, 2,18, 3,-1} },  // 137
695         { 1, 1, { 1,18,-1, 2, 3, 1,-2, 8, 2, 5} },  // 138
696         { 0, 1, {18,18, 3, 6,18, 2, 3, 4, 8, 5} },  // 139
697         { 0, 1, {-2, 1,18, 2,-2, 5, 7,18, 2,-1} },  // 140
698         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 141
699         { 1, 1, {17,18,-1, 2, 8, 3, 4, 5, 1, 7} },  // 142
700         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 143
701         { 0, 2, {18,18,-1, 2,18, 3,-2, 5, 4, 2} },  // 144
702         { 1, 1, {18,17, 2,18, 3, 8, 5, 2, 7,17} },  // 145
703         { 0, 1, {18,18, 3,18, 6, 8,-2, 2, 3, 5} },  // 146
704         { 0, 1, {18,18, 2,18, 2, 6,18, 2,17, 7} },  // 147
705         { 1, 3, {18,17,18, 2, 8,18, 5,-1, 3, 6} },  // 148
706         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 149
707         { 1, 1, {18, 7, 6, 5, 5, 3, 1, 4, 2, 4} },  // 150
708         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 151
709         { 1, 2, {18,17,-1, 3, 6,18, 2, 5, 8, 3} },  // 152
710         { 0, 1, {17,18,18, 4, 7, 2, 3,-2,18, 5} },  // 153
711         { 1, 2, {18, 1, 2, 6, 2, 5,18, 2, 4, 8} },  // 154
712         { 0, 4, {18, 4, 1, 2, 3, 5, 4, 1, 2, 6} },  // 155
713         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 156
714         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 157
715         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 158
716         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 159
717         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 160
718         { 0, 2, {18,17, 2,-1,18, 3,-3, 5, 2, 4} },  // 161
719         { 0, 1, {17,17, 3, 6, 3, 5,-2, 2,18,-1} },  // 162
720         { 0, 2, {18,18, 3,-2,18, 2,-3, 5, 3, 6} },  // 163
721         { 1, 1, {17,17, 2, 4, 1, 3, 5, 2, 6,-3} },  // 164
722         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 165
723         { 0, 1, {17, 1, 3, 2, 7, 1, 6, 3, 4, 8} },  // 166
724         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 167
725         { 0, 1, {17,-1,18, 2, 1, 5, 3, 8,-1,-2} },  // 168
726         { 1, 1, {17,18,-1, 8, 2, 5, 3, 4, 1, 6} },  // 169
727         { 1, 2, { 1,18, 3,-1, 5, 1, 2, 4, 7, 6} },  // 170
728         { 0, 1, {18,18, 3, 6, 5, 3,-2, 2,18,-1} },  // 171
729         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 172
730         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 173
731         { 0, 1, { 1,18,-1, 3, 8, 5, 6, 1, 2, 3} },  // 174
732         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 175
733         { 0, 2, {18,18, 2, 3, 6,18,-1, 4, 2, 3} },  // 176
734         { 1, 1, { 1, 3, 5,18, 2, 6, 7, 2, 3, 1} },  // 177
735         { 1, 1, { 1, 3, 8,18, 5, 2, 7, 1, 3,-2} },  // 178
736         { 0, 2, {17, 2,18, 3, 6, 2, 4, 5, 8, 3} },  // 179
737         { 0, 1, {18,17, 2,18, 3, 2, 7,-2,18, 4} },  // 180
738         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 181
739         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 182
740         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 183
741         { 1, 2, {18,-3,18,-1, 3,-2, 5, 7, 1, 2} },  // 184
742         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 185
743         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 186
744         { 0, 3, {18,18, 2, 6,18, 5,18, 2, 3,17} },  // 187
745         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 188
746         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 189
747         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 190
748         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 191
749         { 1, 3, { 1,-1, 1, 3,-2, 2, 5, 7,-3,18} },  // 192
750         { 1, 2, {18, 7, 3,-3, 2, 8, 2, 5, 4,17} },  // 193
751         { 1, 1, { 1, 4, 5, 1, 3, 4, 6, 7, 8, 3} },  // 194
752         { 0, 1, {18,17, 2,18,-1, 2, 3,18, 2, 4} },  // 195
753         { 0, 2, {18,18,-2,18, 2, 3, 4, 7, 5,17} },  // 196
754         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 197
755         { 1, 1, {17,18, 2, 1, 3, 2, 5, 1, 2, 3} },  // 198
756         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 199
757         { 0, 2, {18,18,-1, 2, 3, 5, 8, 6, 1,-2} },  // 200
758         { 0, 1, {17,18, 8, 3, 4, 6, 5, 2, 8, 7} },  // 201
759         { 1, 2, { 1, 3,-2,18, 2, 5, 1, 7,-1,-2} },  // 202
760         { 0, 3, {18,17,-1, 3,18, 2, 3, 6, 4,17} },  // 203
761         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 204
762         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 205
763         { 1, 2, {18,18, 4,18, 6, 7, 8, 3,18, 2} },  // 206
764         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 207
765         { 0, 2, {17,-3,17, 2,-2, 8, 3,18, 4,-3} },  // 208
766         { 1, 1, {18,17, 3, 5, 6, 2, 8, 1, 3, 7} },  // 209
767         { 0, 1, {18,18, 3, 6, 5, 3,-2, 2,18,-1} },  // 210
768         { 0, 3, {18,18, 2, 6,18, 5,18, 2, 3,17} },  // 211
769         { 1, 1, {18,18, 5, 4, 6, 4, 5, 1, 4, 3} },  // 212
770         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 213
771         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 214
772         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 215
773         { 0, 2, { 3,17,18,-3, 2, 5,18, 6,-1, 7} },  // 216
774         { 1, 1, {17,18, 3, 2, 5,-1, 6, 8, 4, 7} },  // 217
775         { 1, 1, {18, 1,-2, 3, 2, 1, 7, 6, 3, 4} },  // 218
776         { 0, 3, { 1, 2,17, 3,18, 2, 7, 5, 4,-1} },  // 219
777         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 220
778         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 221
779         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 222
780         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 223
781         { 1, 1, {17,-2, 2,18,18, 8, 5, 3, 2, 6} },  // 224
782         { 0, 2, {18, 5,18, 2, 3, 7,-2, 1, 6, 8} },  // 225
783         { 0, 1, { 2,-1,18,-1, 2, 4,-3, 5,18, 3} },  // 226
784         { 0, 1, { 3,17,18, 5, 2,18, 7, 3, 6, 5} },  // 227
785         { 1, 4, { 1, 2, 5,18,-2, 2, 3, 7,-1, 4} },  // 228
786         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 229
787         { 0, 1, { 1,18, 2, 1, 3, 4, 1, 5, 2, 7} },  // 230
788         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 231
789         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 232
790         { 0, 1, {17,17,18, 2, 4, 5,18,-2, 6, 3} },  // 233
791         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 234
792         { 0, 2, {18,18,-1, 3, 5, 6, 8,18, 2, 3} },  // 235
793         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 236
794         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 237
795         { 0, 1, {18,18, 4, 6, 8,18, 7, 3, 2, 5} },  // 238
796         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 239
797         { 0, 2, {-1,18,18,18, 2, 4,-2, 2, 3, 6} },  // 240
798         { 0, 2, {18,-2, 7, 1, 3, 2, 4, 6,-3, 7} },  // 241
799         { 1, 1, {17,18, 8, 3, 4, 6,-2, 5, 3, 8} },  // 242
800         { 0, 2, {18, 1, 2, 6, 2, 8, 3,18, 5, 4} },  // 243
801         { 1, 1, { 3,18,18, 2,18, 2,18, 3, 2,18} },  // 244
802         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 245
803         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 246
804         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 247
805         { 1, 1, { 3,17,18, 5, 2, 6, 7, 1, 4, 8} },  // 248
806         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 249
807         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 250
808         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 251
809         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 252
810         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 253
811         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 254
812         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2, 8} },  // 255
813 };
814 
815 static const WavpackDecorrSpec very_high_specs [] = {
816         { 1, 2, {18,18, 2, 3,-2,18, 2, 4, 7, 5, 3, 6, 8,-1,18, 2} },        // 0
817         { 0, 1, {18,18,-1,18, 2, 3, 4, 6, 5, 7,18,-3, 8, 2,-1, 3} },        // 1
818         { 1, 2, { 1,18,-2, 4,18, 2, 3, 6,-1, 7, 5,-2,18, 8, 2, 4} },        // 2
819         { 0, 1, {17,17, 2, 3, 4,18,-1, 5, 6, 7,18, 2, 8,17, 3,-2} },        // 3
820         { 1, 1, {18,18, 2,18, 3, 2,18, 4,-1, 3,18, 2, 6, 8,17, 5} },        // 4
821         { 0, 2, {18,17, 2, 3,-2, 5,18,-3, 2, 4, 7, 3, 6, 8, 5,17} },        // 5
822         { 1, 1, {18,-2, 2,-3,18, 5,-2,18, 2, 3, 6, 2,17, 4, 7,-1} },        // 6
823         { 1, 1, {17, 8,18, 3,-2, 2, 5, 4,18, 6, 3, 8, 7, 2, 5, 4} },        // 7
824         { 0, 2, {18,17,-2, 2,18, 3, 2, 5,-3, 4, 7,18, 3, 8, 6, 2} },        // 8
825         { 1, 1, { 3, 6, 5, 5, 1, 3, 7, 4, 2, 6, 4,18, 3, 7, 5, 6} },        // 9
826         { 1, 2, { 1,18, 3, 2,-2, 1, 5, 4, 6, 2, 7, 1, 8, 3,-1, 1} },        // 10
827         { 0, 1, {18,18, 2, 3, 6, 3, 5,-2, 2, 4,18, 3,-2,-1, 6, 7} },        // 11
828         { 0, 1, {-2,18, 2,18, 7, 2, 6,-2, 3, 4,18,18, 2,-3, 8, 5} },        // 12
829         { 0, 2, {18,18,18, 2, 4, 3,18, 5, 3, 6,-2, 2, 4,18, 8, 7} },        // 13
830         { 0, 1, {-2, 1,18, 2,-2,18,-1, 5, 7, 2, 3, 4,18, 2, 6, 2} },        // 14
831         { 1, 1, {17,18, 3, 2, 1, 7,-1, 2, 4, 3, 5, 6,-2,18, 7, 8} },        // 15
832         { 1, 1, {18,18, 2,18, 3, 4, 6,-2,18, 5, 8, 2, 3, 7, 4,-1} },        // 16
833         { 0, 1, {18,18,18,-1, 2, 3, 4, 6, 8,18, 3, 5, 2, 6, 7, 4} },        // 17
834         { 1, 1, {17,-2,18,18, 2, 5, 3, 8, 2,-1, 6, 1, 3, 4, 7, 5} },        // 18
835         { 0, 1, {17,17,18, 2, 3, 6,-2, 8, 1, 7, 5, 2, 3, 1, 4, 8} },        // 19
836         { 1, 1, {17,17, 3, 2, 7, 1, 4, 3, 6, 2, 5,-2, 8, 7,18, 6} },        // 20
837         { 0, 1, {18,17,-2, 2,18, 3,-3, 7, 6, 5, 2, 4,-1, 8, 3,17} },        // 21
838         { 1, 1, { 2,18,18,-2, 2, 4,-1, 5,18, 3, 8, 6, 2, 7,17, 4} },        // 22
839         { 0, 1, {17, 3, 6, 8, 5, 4, 3, 8, 1,18, 7, 2, 4, 5, 6, 3} },        // 23
840         { 1, 2, {17,18, 4, 8, 3, 2, 5, 7, 6, 8, 2, 7,-2,18, 3, 4} },        // 24
841         { 1, 1, { 6, 5, 5, 3, 4, 7, 3, 2, 4, 6, 3, 7, 1, 5, 2, 4} },        // 25
842         { 1, 1, { 1,18,-1, 2, 1, 3, 8,-2, 2, 5, 6, 3, 8, 7,18, 4} },        // 26
843         { 0, 1, { 1,17,-1,18, 3, 2, 5, 4, 6, 7, 8, 3, 4, 2, 1,-2} },        // 27
844         { 0, 1, {18, 2,18,18, 2,18, 6,-2,18, 7, 5, 4, 3, 2,18,-2} },        // 28
845         { 0, 3, { 1, 4,18, 3, 2, 4, 1, 5, 2, 3, 6,18, 8, 7, 2, 4} },        // 29
846         { 0, 1, {17,-2, 1,-3, 2,18, 3,-2, 4,18, 3, 6, 7,-3, 2, 8} },        // 30
847         { 1, 1, {17,18,18, 4, 2, 3, 7, 6,18, 8, 5,-1, 4, 2, 3,17} },        // 31
848         { 1, 2, {18,-1,17,18, 2, 3,-2,18, 5, 8, 2, 4, 3, 7, 6,-1} },        // 32
849         { 1, 1, {18,18,18,-2, 4, 2, 3,18, 5, 8, 2, 4, 6, 7,-2, 3} },        // 33
850         { 1, 2, {18,18,-2,18,-1, 3, 2, 5,18,-2, 7, 2, 3, 4, 6, 8} },        // 34
851         { 0, 1, {17,18,-1, 2, 4,18, 8, 3, 6, 5, 7,-3, 2, 4, 3,17} },        // 35
852         { 1, 1, {18,18,17, 2,-1,18, 3, 2,18, 6, 5, 4,18, 7, 2,-1} },        // 36
853         { 0, 2, { 1,18,-1,18, 3, 2, 4, 6,-3, 7,-1, 5, 1, 2, 3, 8} },        // 37
854         { 1, 1, { 1,17,-2, 2,-3, 6, 3, 5, 1, 2, 7, 6, 8,-2, 4, 1} },        // 38
855         { 0, 1, {17,-1, 5, 1, 4, 3, 6, 2,-2,18, 3, 2, 4, 5, 8,-1} },        // 39
856         { 0, 2, {18,18,17, 2, 3,-2, 5,18, 2, 4, 7, 8, 6,17, 3, 5} },        // 40
857         { 1, 1, { 1, 5, 1, 3, 4, 3, 7, 5, 1, 3, 6, 1, 2, 4, 3, 8} },        // 41
858         { 1, 2, { 1,-1, 3, 2,18, 7,-2, 5, 2, 6, 4, 3,-1,18, 8, 7} },        // 42
859         { 0, 2, {18,17, 3,18, 2, 5, 4, 3, 6, 2, 7, 8,18, 3, 4, 5} },        // 43
860         { 1, 1, { 3, 6,17, 8, 7, 5,18,-1, 1, 2, 3, 4, 2, 6, 8, 1} },        // 44
861         { 0, 2, {18,18, 3,-3,18, 2, 6, 5, 3, 7,18, 4,-2, 8, 2, 3} },        // 45
862         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2,18, 6, 8, 4, 5, 7,-1} },        // 46
863         { 1, 1, {17, 1, 7, 2, 3,18,-2, 3, 6, 4, 2, 7, 8, 5, 3,17} },        // 47
864         { 1, 1, { 3, 6, 5, 5, 1, 3, 7, 4, 2, 6, 4,18, 3, 7, 5, 6} },        // 48
865         { 0, 1, {18,18,18, 2, 4,-1,18, 8,-1, 2, 3, 4, 6,-2, 1, 7} },        // 49
866         { 1, 1, {18,-2,17,18, 2, 6, 3,-2, 5, 4, 7, 1,-3, 8, 2, 6} },        // 50
867         { 0, 1, {17,18,18, 4, 2, 7, 3, 6,-2,18, 8, 4, 5, 2, 7,17} },        // 51
868         { 1, 1, {18,18, 5, 4, 6, 4, 1, 5, 4, 3, 2, 5, 6, 1, 4, 5} },        // 52
869         { 0, 1, {18,18,-2,18, 2,-3, 3, 8, 5,18, 6, 4, 3,-1, 7, 2} },        // 53
870         { 1, 1, {18, 2,-2,-3,18, 5, 2, 3,-2, 4, 6, 1,-3, 2, 7, 8} },        // 54
871         { 0, 1, {18, 3, 5, 8, 2, 6, 7, 3, 1, 5, 2,-1, 8, 6, 7, 4} },        // 55
872         { 1, 1, { 4, 3, 8, 1, 5, 6, 2, 5, 8,-2, 2, 7, 3,18, 5, 4} },        // 56
873         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2,18, 6, 8, 4, 5, 7,-1} },        // 57
874         { 1, 1, {17, 3,18,18, 7, 2, 4,18, 6, 2, 3,-1, 8, 5,18,-3} },        // 58
875         { 0, 1, { 3,17,18, 2,18, 6, 7,-3,18, 2, 5, 6, 3, 8, 7,-1} },        // 59
876         { 1, 1, {18,18, 2,18,18, 2,-1, 7, 3,18, 5, 2, 6, 4,-1,18} },        // 60
877         { 0, 3, {18, 3, 4, 1, 5, 2,18, 4, 2, 3,18, 7, 6, 1, 2, 4} },        // 61
878         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2,18, 6, 8, 4, 5, 7,-1} },        // 62
879         { 1, 1, {17, 1,18, 2, 3, 6, 4, 5, 7,18, 3, 8, 2, 4,-2,17} },        // 63
880         { 1, 2, {18,17, 2, 3, 5,18, 6,-2, 7, 3, 2, 4,18, 8,-1, 5} },        // 64
881         { 0, 2, { 1,18,-1,18, 3, 2, 4, 6,-3, 7,-1, 5, 1, 2, 3, 8} },        // 65
882         { 1, 1, { 1,18,-1, 8, 2, 6, 3,-2, 1, 2, 5, 4,-3, 8, 6, 3} },        // 66
883         { 0, 1, {18,18, 2,18, 2,18, 7, 6,18, 2,-2, 3, 5, 4,18, 8} },        // 67
884         { 1, 2, {18,17, 2, 3,18,-1, 2, 3, 6,18, 5, 4, 3, 7, 2, 8} },        // 68
885         { 1, 2, {18,18, 3,-2, 4,18, 5, 7, 6, 2, 4,-3, 8, 5,18, 3} },        // 69
886         { 1, 1, {17,-2,18,18, 2, 5, 3, 8, 2,-1, 6, 1, 3, 4, 7, 5} },        // 70
887         { 1, 1, { 3,17,18, 5, 7, 2, 4, 6, 1, 8,-1, 3, 7, 4, 1, 2} },        // 71
888         { 0, 2, { 1,-2, 2,18, 3, 5, 2, 4, 7,-1, 2, 3, 5,18,-2, 4} },        // 72
889         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2,18, 6, 8, 4, 5, 7,-1} },        // 73
890         { 1, 1, { 1, 2,-2, 6,18,-3, 2, 7, 3,-2, 5, 6, 1, 8, 2, 4} },        // 74
891         { 0, 1, {18,18,18, 3,-2, 6,18, 2, 4, 3, 5, 8, 7, 6, 2,-2} },        // 75
892         { 1, 1, { 1, 5, 1, 3, 4, 3, 7, 5, 1, 3, 6, 1, 2, 4, 3, 8} },        // 76
893         { 0, 1, { 3,17,18, 2, 5,18, 6, 7, 5,-2, 2, 4,18, 3, 6, 8} },        // 77
894         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2,18, 6, 8, 4, 5, 7,-1} },        // 78
895         { 0, 2, {17,-1,18, 2, 4,-1, 8, 3,18, 7,-3, 4, 5, 1, 2,-2} },        // 79
896         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2,18, 8, 6, 4, 5, 7,-1} },        // 80
897         { 1, 1, {18,18, 3, 6, 4, 8,-2, 2, 5, 3, 7,18, 6, 8, 4, 2} },        // 81
898         { 1, 1, {17,18,18,-2, 5, 2, 3, 1, 4,-1, 8, 6, 5, 3, 2,18} },        // 82
899         { 1, 1, {17,17, 1, 2, 4, 5, 2, 6,-1, 3, 1, 1,-2, 4, 2, 7} },        // 83
900         { 1, 1, {17, 1, 7, 2, 3,18,-2, 3, 6, 4, 2, 7, 8, 5, 3,17} },        // 84
901         { 0, 1, {18,17,-2,-3, 1, 2, 3, 2, 5, 4, 7,-3, 6,-2, 2, 1} },        // 85
902         { 1, 1, { 1, 3, 5,18, 1, 2, 7, 3, 6, 2, 5, 8,-1, 1, 4, 7} },        // 86
903         { 1, 1, {17, 3, 6, 8, 1, 4, 5, 3,-2, 7, 2, 8, 5, 6,18, 3} },        // 87
904         { 1, 1, {17,18, 2, 4, 8,-2, 3, 1, 5, 6, 7, 1, 2, 3, 4, 7} },        // 88
905         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2,18, 6, 8, 4, 5, 7,-1} },        // 89
906         { 1, 1, { 3, 1, 8,18, 5, 2, 3,18, 6, 7,-2, 4, 3, 2, 8,18} },        // 90
907         { 0, 1, {18,17, 2,18, 3, 4,-1,18, 7, 6, 2, 8, 4,18,18, 5} },        // 91
908         { 0, 1, {18,18, 2,18,18, 2, 7,-2, 6, 5, 4, 3,18, 3, 2,17} },        // 92
909         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2,18, 6, 8, 4, 5, 7,-1} },        // 93
910         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2,18, 6, 8, 4, 5, 7,-1} },        // 94
911         { 1, 1, {17, 8,18, 3, 2, 1, 5, 4, 6,-1, 3,-3, 8,18, 7, 2} },        // 95
912         { 1, 2, {18,17,18, 2, 3, 5,-2,18, 6,-1, 2, 3, 7, 4, 8,17} },        // 96
913         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2,18, 8, 6, 4, 5, 7,-1} },        // 97
914         { 1, 2, {18,18,-2,17, 2,18, 3, 4,18, 8, 7,-1, 2, 4, 5,17} },        // 98
915         { 0, 2, {17,-3,17, 3, 2,-2,18, 8, 4,-3, 2,18, 5, 3,-2, 6} },        // 99
916         { 0, 1, {18,18, 2,18,18, 2, 7,-2, 6, 5, 4, 3,18, 3, 2,17} },        // 100
917         { 0, 2, { 1,18,-1, 3, 5, 2,-3,18, 7, 3,-1, 6, 4, 2,17, 5} },        // 101
918         { 1, 1, {17,-2,17, 2,-3, 1, 5,-1, 4, 6, 3, 2, 8, 7,-2, 5} },        // 102
919         { 1, 1, { 1,18, 1, 3, 5, 8, 6, 2, 3,-1, 7, 1, 4, 8, 5,-3} },        // 103
920         { 0, 2, { 3,18,18, 2,18,-2, 6, 5, 7, 2, 4,18, 3, 6,-3, 5} },        // 104
921         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2,18, 6, 8, 4, 5, 7,-1} },        // 105
922         { 1, 1, { 3, 6,17, 8, 7, 5,18,-1, 1, 2, 3, 4, 2, 6, 8, 1} },        // 106
923         { 0, 4, {18, 2,17, 3,18,-2, 2, 6,18, 2, 7, 3, 5, 4, 8,18} },        // 107
924         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2,18, 6, 8, 4, 5, 7,-1} },        // 108
925         { 0, 1, {18,18, 2, 3, 6, 3, 5,-2, 2, 4,18, 3,-2,-1, 6, 7} },        // 109
926         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2,18, 6, 8, 4, 5, 7,-1} },        // 110
927         { 1, 1, {17, 1, 2, 5, 3,-2, 1, 4, 3, 7, 6,-3, 2, 1, 1, 2} },        // 111
928         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2,18, 6, 8, 4, 5, 7,-1} },        // 112
929         { 1, 1, {18,18,-2,18,-2, 2, 3, 6,18, 4,-1, 2, 3, 8, 1, 4} },        // 113
930         { 1, 1, {17,-2,17, 2,-3, 1, 5,-1, 4, 6, 3, 2, 8, 7,-2, 5} },        // 114
931         { 0, 1, {17,17,18, 3, 2,18,18, 6, 8, 2,-2, 3, 5, 4,17,18} },        // 115
932         { 1, 1, { 1, 5, 1, 3, 4, 3, 7, 5, 1, 3, 6, 1, 2, 4, 3, 8} },        // 116
933         { 1, 1, { 1, 3,-3,18,18, 6, 5,18, 2,-1, 3, 8, 7,-3, 4,17} },        // 117
934         { 1, 1, {18, 1, 2, 1, 3, 8, 7, 4, 1, 5, 2,-1,-3,18, 6, 2} },        // 118
935         { 0, 1, {18, 3, 5, 2, 6, 8,18, 5, 7, 2, 3,-1, 6, 7, 8, 5} },        // 119
936         { 0, 2, {18, 3,-2, 7, 8, 2, 5, 4,-3, 8, 3, 2,18, 5, 4, 6} },        // 120
937         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2,18, 6, 8, 4, 5, 7,-1} },        // 121
938         { 1, 3, { 1, 1, 2, 5, 2, 7, 4, 3,-1,18,-2, 8, 2, 1, 6, 7} },        // 122
939         { 0, 1, { 3,17,18, 5, 2, 6, 7,18, 4, 5, 3, 6,18, 2, 7, 8} },        // 123
940         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2,18, 6, 8, 4, 5, 7,-1} },        // 124
941         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2,18, 6, 8, 4, 5, 7,-1} },        // 125
942         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2,18, 6, 8, 4, 5, 7,-1} },        // 126
943         { 0, 1, { 1,18, 1, 2, 3, 5, 1, 2, 6, 7, 4, 3, 8, 1,17, 5} },        // 127
944         { 1, 2, {17,-1,18,-2, 2, 3, 5,18, 2, 4, 6, 7, 3,-1, 5, 8} },        // 128
945         { 1, 1, {18,18,-3,18,-2, 2, 3,-2,18, 6, 4, 5, 8, 3,17,-3} },        // 129
946         { 1, 1, {18, 7, 6, 5, 5, 3, 1, 4, 2, 7, 3, 4,-3, 6,18, 8} },        // 130
947         { 0, 2, {18,18, 2, 3, 5,18, 2, 4, 3, 6,18, 7, 8,-1, 5, 2} },        // 131
948         { 0, 1, {18,17,-1, 2,18, 3, 2,18, 4, 3,18, 2, 6, 5, 8,17} },        // 132
949         { 0, 2, {18,17, 2, 3,18, 5,-1, 6, 7, 8, 2, 3, 4, 5,18, 6} },        // 133
950         { 1, 2, {18,-3,18, 2, 3,-2,-3, 5,18, 7, 6, 2, 4, 3, 8,-2} },        // 134
951         { 1, 1, {17,18,18,-2, 2, 3, 5, 4, 8,18,-1, 5, 3, 6,-2, 7} },        // 135
952         { 1, 2, {18,17, 2,-2,18, 3,-1, 4,18, 2, 7, 5, 3, 8, 6, 4} },        // 136
953         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2,18, 6, 8, 4, 5, 7,-1} },        // 137
954         { 1, 1, { 1, 5, 1, 3, 4, 3, 7, 5, 1, 3, 6, 1, 2, 4, 3, 8} },        // 138
955         { 0, 2, {18,18, 3, 3,-2, 2, 5,18, 6, 3,-1, 4, 7,-1, 1, 2} },        // 139
956         { 0, 1, {-2, 1,18, 2,-2, 5, 7,18, 3, 2, 6, 2,-1, 4,-2,17} },        // 140
957         { 0, 2, {18,18,18, 2, 3,-2,18, 5, 4, 2, 6, 8, 3,-2, 4,18} },        // 141
958         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2,18, 6, 8, 4, 5, 7,-1} },        // 142
959         { 1, 1, {17,18,-1, 3, 2, 5, 1, 3, 2, 8, 4, 7, 6, 2,-1, 5} },        // 143
960         { 1, 1, {17,18,18, 4, 2, 3, 7, 6,18, 8, 5,-1, 4, 2, 3,17} },        // 144
961         { 0, 1, {18,18,-2,18, 2, 3, 4, 5, 6,18, 8, 2, 3, 7,-2, 4} },        // 145
962         { 0, 1, {18,-2,18,18,-3,-2, 2, 3, 5, 8, 1, 2, 6, 4, 7,-1} },        // 146
963         { 0, 1, {18,17, 2,18, 3,-2, 2, 7, 6, 4,18, 3, 8, 7, 4, 2} },        // 147
964         { 1, 1, {17,18,18, 4, 2, 3, 7, 6,18, 8, 5,-1, 4, 2, 3,17} },        // 148
965         { 1, 1, {18,17,18, 2, 5, 3,-2,18, 6, 2, 3, 4, 8, 7, 5,-1} },        // 149
966         { 0, 1, { 2,-1,18,-1, 2, 4,-3,18, 5, 3, 6,18, 2, 4, 7, 8} },        // 150
967         { 1, 1, {17,18, 8, 3, 6, 4,-1, 5, 2, 7, 3, 8, 6, 5,18, 4} },        // 151
968         { 0, 2, {18, 3,-2, 7, 8, 2, 5, 4,-3, 8, 3, 2,18, 5, 4, 6} },        // 152
969         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2,18, 6, 8, 4, 5, 7,-1} },        // 153
970         { 1, 1, { 1,18,-1, 8, 2, 6, 3,-2, 1, 2, 5, 4,-3, 8, 6, 3} },        // 154
971         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2,18, 6, 8, 4, 5, 7,-1} },        // 155
972         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2,18, 6, 8, 4, 5, 7,-1} },        // 156
973         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2,18, 6, 8, 4, 5, 7,-1} },        // 157
974         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2,18, 6, 8, 4, 5, 7,-1} },        // 158
975         { 0, 1, {17,18,18, 4, 2, 7, 3, 6,-2,18, 8, 4, 5, 2, 7,17} },        // 159
976         { 1, 2, {18,-1,18, 3,-2,18, 2, 5, 3, 6, 7, 2,-1,18, 8, 4} },        // 160
977         { 1, 2, { 1,18,-2, 4,18, 2, 3, 6,-1, 7, 5,-2,18, 8, 2, 4} },        // 161
978         { 1, 2, { 1,18,-3, 2, 3,18,-1, 5, 6, 2, 8, 3, 4, 1,-2, 7} },        // 162
979         { 0, 1, { 1,17,-1,18, 3, 2, 5, 4, 6, 7, 8, 3, 4, 2, 1,-2} },        // 163
980         { 1, 1, {18,17,18, 4, 3, 5, 1, 2, 6, 3, 4, 7, 1, 8, 5, 2} },        // 164
981         { 0, 1, {18,-2, 7, 1, 3, 2,-3, 4, 6,-2, 7, 8, 1, 5, 4, 3} },        // 165
982         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2,18, 6, 8, 4, 5, 7,-1} },        // 166
983         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2,18, 6, 8, 4, 5, 7,-1} },        // 167
984         { 0, 2, {18,18,18,-2, 2, 5, 3, 7,18, 2, 4,-3, 5, 6, 3, 8} },        // 168
985         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2,18, 6, 8, 4, 5, 7,-1} },        // 169
986         { 0, 3, { 3,18,-1, 5, 2, 7,18, 6, 5, 2, 4, 3,-1, 7,18, 6} },        // 170
987         { 0, 2, {18,18,18, 4, 3, 2, 6, 4, 8,18, 5, 3, 2, 7,-2, 6} },        // 171
988         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2,18, 6, 8, 4, 5, 7,-1} },        // 172
989         { 0, 2, {18,18,18, 2, 3,-2,18, 5, 4, 2, 6, 8, 3,-2, 4,18} },        // 173
990         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2,18, 6, 8, 4, 5, 7,-1} },        // 174
991         { 1, 1, {17, 8,18, 3, 2, 1, 5, 4, 6,-1, 3,-3, 8,18, 7, 2} },        // 175
992         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2,18, 6, 8, 4, 5, 7,-1} },        // 176
993         { 0, 1, {-1,18,18,18, 2, 4, 6,-2, 2, 8, 3, 4,18, 7,-1, 6} },        // 177
994         { 0, 1, {18, 1,-2, 2, 4, 1, 3,-1, 2, 5, 7, 1, 6, 8,-2,17} },        // 178
995         { 0, 1, {17,17,18, 2, 5, 4,18, 3, 8, 7, 4, 6, 8, 1, 5, 2} },        // 179
996         { 1, 2, {18,18, 5, 4, 6, 3, 4,18, 8, 4,-1, 7, 5, 3, 6, 2} },        // 180
997         { 0, 1, {18,18,-3,18, 3, 6, 2, 5, 7,18, 3, 8,-1, 4, 5, 2} },        // 181
998         { 1, 1, {18, 2,-2,-3,18, 5, 2,-2, 4, 3, 6,18, 8,-1, 2, 7} },        // 182
999         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2,18, 6, 8, 4, 5, 7,-1} },        // 183
1000         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2,18, 6, 8, 4, 5, 7,-1} },        // 184
1001         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2,18, 6, 8, 4, 5, 7,-1} },        // 185
1002         { 1, 1, {17, 1, 7, 2, 3,18,-2, 3, 6, 4, 2, 7, 8, 5, 3,17} },        // 186
1003         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2,18, 6, 8, 4, 5, 7,-1} },        // 187
1004         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2,18, 6, 8, 4, 5, 7,-1} },        // 188
1005         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2,18, 6, 8, 4, 5, 7,-1} },        // 189
1006         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2,18, 6, 8, 4, 5, 7,-1} },        // 190
1007         { 0, 1, {17,18, 3,18, 2, 5, 4, 7,-3, 6, 3, 2,18, 4, 7, 3} },        // 191
1008         { 1, 1, { 1, 7, 4, 5, 3, 4, 5, 1, 3, 6, 3, 2, 4, 8,-2, 7} },        // 192
1009         { 0, 1, { 1,18,-1,-2,18, 3, 2,-1, 6, 7, 4, 5, 3,18, 2,-3} },        // 193
1010         { 1, 1, {18,18,-1, 3, 6,18, 5, 4, 8, 2, 3, 6,18, 7, 4,-2} },        // 194
1011         { 0, 2, {18,18, 2, 6,18, 2,18, 5, 3,18, 2, 4, 7, 8, 3,18} },        // 195
1012         { 1, 1, { 3,18,18, 5,18, 6, 2, 4, 7,-2,18, 5, 8, 6, 3, 2} },        // 196
1013         { 0, 1, {18,-2, 7, 1, 3, 2,-3, 4, 6,-2, 7, 8, 1, 5, 4, 3} },        // 197
1014         { 1, 1, {18,-2,18, 2, 5,18, 3,-2, 4, 7, 2,-1, 8, 6, 5, 1} },        // 198
1015         { 1, 1, {17,17, 5,18, 4, 1, 2, 8, 6, 4,-2, 3, 5,-1, 1, 8} },        // 199
1016         { 0, 2, { 1, 2,17, 3, 7,18, 2,-1, 4, 5,18, 2, 7, 3, 6, 8} },        // 200
1017         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2,18, 6, 8, 4, 5, 7,-1} },        // 201
1018         { 1, 1, { 3, 6,17, 8, 7, 5,18,-1, 1, 2, 3, 4, 2, 6, 8, 1} },        // 202
1019         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2,18, 6, 8, 4, 5, 7,-1} },        // 203
1020         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2,18, 6, 8, 4, 5, 7,-1} },        // 204
1021         { 0, 2, {18,18,18, 2,-2, 3, 6, 4, 8,18, 2, 5, 7, 4, 3, 6} },        // 205
1022         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2,18, 6, 8, 4, 5, 7,-1} },        // 206
1023         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2,18, 6, 8, 4, 5, 7,-1} },        // 207
1024         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2,18, 6, 8, 4, 5, 7,-1} },        // 208
1025         { 1, 1, {18, 1, 8, 3, 5, 6, 4,-1, 8, 3, 7,18, 2, 5, 8, 4} },        // 209
1026         { 1, 1, {17,18, 5, 2, 4, 3, 1, 6,-2, 1, 3, 2, 4, 5,-1,17} },        // 210
1027         { 1, 1, {18,17, 2,18, 3,-3, 7, 2, 6, 4, 3, 5,18, 8, 2,-2} },        // 211
1028         { 1, 1, {18,17,18, 4, 3, 5,-1,18, 2, 7, 8, 4, 6, 3,18, 5} },        // 212
1029         { 0, 1, {18,17,18,-2, 2,-3, 3, 4, 8, 5, 2,18, 6, 3, 7,-2} },        // 213
1030         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2,18, 6, 8, 4, 5, 7,-1} },        // 214
1031         { 1, 1, {17,18, 8, 3, 4, 6,18, 5,-2, 3, 8, 5, 2, 4, 7, 6} },        // 215
1032         { 0, 1, {18,-2, 3, 5, 1, 7, 3, 2, 6,-3, 4, 1, 5, 8, 3,-2} },        // 216
1033         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2,18, 6, 8, 4, 5, 7,-1} },        // 217
1034         { 1, 1, { 3,17,18, 5,-1,18, 2, 6, 7,18, 5, 3,-3,-1, 6, 2} },        // 218
1035         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2,18, 6, 8, 4, 5, 7,-1} },        // 219
1036         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2,18, 6, 8, 4, 5, 7,-1} },        // 220
1037         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2,18, 6, 8, 4, 5, 7,-1} },        // 221
1038         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2,18, 6, 8, 4, 5, 7,-1} },        // 222
1039         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2,18, 6, 8, 4, 5, 7,-1} },        // 223
1040         { 1, 3, {18,17,-2, 3,-1,18, 2, 5, 3, 7, 6, 2, 4, 8,18, 5} },        // 224
1041         { 0, 1, {18,-1,18, 2,18, 3, 5,18, 2, 8,18, 5, 4,-1, 6, 2} },        // 225
1042         { 1, 2, {18,-2,18,18, 2, 3, 4,-3, 2, 5,18, 7, 4, 3, 8, 6} },        // 226
1043         { 0, 2, {17,-1,18, 2,-1, 1, 7, 3, 8, 5,-2, 4, 1, 2,-3, 6} },        // 227
1044         { 0, 1, {18,17, 2,18, 2,18, 6, 7, 4, 3,18, 5, 2,-2,17, 8} },        // 228
1045         { 0, 3, {18,17, 2, 3,-3,-1,18, 2, 4, 5,18, 7, 3, 2,-3, 6} },        // 229
1046         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2,18, 6, 8, 4, 5, 7,-1} },        // 230
1047         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2,18, 6, 8, 4, 5, 7,-1} },        // 231
1048         { 0, 2, { 3,18,18,18, 2, 6, 5,18, 7, 2, 4, 6,18, 5, 3, 8} },        // 232
1049         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2,18, 6, 8, 4, 5, 7,-1} },        // 233
1050         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2,18, 6, 8, 4, 5, 7,-1} },        // 234
1051         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2,18, 6, 8, 4, 5, 7,-1} },        // 235
1052         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2,18, 6, 8, 4, 5, 7,-1} },        // 236
1053         { 0, 1, {18,18, 3, 6, 3,-2, 2,18, 5,-1, 7, 3, 4,-2, 2, 6} },        // 237
1054         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2,18, 6, 8, 4, 5, 7,-1} },        // 238
1055         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2,18, 6, 8, 4, 5, 7,-1} },        // 239
1056         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2,18, 6, 8, 4, 5, 7,-1} },        // 240
1057         { 1, 1, {18,17,18,18,-2, 2, 3,-3,18, 6, 4, 2,-2, 8, 3, 7} },        // 241
1058         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2,18, 6, 8, 4, 5, 7,-1} },        // 242
1059         { 0, 1, {18,18,18, 4, 2, 7, 8,18, 3, 2,-2, 4, 7, 6,17, 5} },        // 243
1060         { 1, 1, {18,18,-1,-2, 8, 3,18, 6, 3, 5, 8, 2, 4, 7, 1, 6} },        // 244
1061         { 1, 1, { 1,-3, 3,18,18, 2,-1, 3, 6, 5,18, 4, 7,-2, 8, 3} },        // 245
1062         { 1, 1, { 1,18, 4, 2, 5,18, 1, 3,-1, 6, 1, 4, 8, 2, 5, 1} },        // 246
1063         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2,18, 6, 8, 4, 5, 7,-1} },        // 247
1064         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2,18, 6, 8, 4, 5, 7,-1} },        // 248
1065         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2,18, 6, 8, 4, 5, 7,-1} },        // 249
1066         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2,18, 6, 8, 4, 5, 7,-1} },        // 250
1067         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2,18, 6, 8, 4, 5, 7,-1} },        // 251
1068         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2,18, 6, 8, 4, 5, 7,-1} },        // 252
1069         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2,18, 6, 8, 4, 5, 7,-1} },        // 253
1070         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2,18, 6, 8, 4, 5, 7,-1} },        // 254
1071         { 0, 1, {-1,18,18, 2,18, 3, 5,18, 2,18, 6, 8, 4, 5, 7,-1} },        // 255
1072 };
1073 
1074 #define NUM_FAST_SPECS (sizeof (fast_specs) / sizeof (fast_specs [0]))
1075 #define NUM_DEFAULT_SPECS (sizeof (default_specs) / sizeof (default_specs [0]))
1076 #define NUM_HIGH_SPECS (sizeof (high_specs) / sizeof (high_specs [0]))
1077 #define NUM_VERY_HIGH_SPECS (sizeof (very_high_specs) / sizeof (very_high_specs [0]))
1078