]> rtime.felk.cvut.cz Git - frescor/ffmpeg.git/blob - libavcodec/ac3dec_data.c
eac3dec: revert commit r18860. keep the AHT IDCT 24-bit. will make AHT GAQ
[frescor/ffmpeg.git] / libavcodec / ac3dec_data.c
1 /*
2  * AC-3 and E-AC-3 decoder tables
3  * Copyright (c) 2007 Bartlomiej Wolowiec <bartek.wolowiec@gmail.com>
4  *
5  * This file is part of FFmpeg.
6  *
7  * FFmpeg is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU Lesser General Public
9  * License as published by the Free Software Foundation; either
10  * version 2.1 of the License, or (at your option) any later version.
11  *
12  * FFmpeg is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15  * Lesser General Public License for more details.
16  *
17  * You should have received a copy of the GNU Lesser General Public
18  * License along with FFmpeg; if not, write to the Free Software
19  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20  */
21
22 /**
23  * @file libavcodec/ac3dec_data.c
24  * tables taken directly from the AC-3 spec.
25  */
26
27 #include "ac3dec_data.h"
28 #include "ac3.h"
29
30 /**
31  * table used to ungroup 3 values stored in 5 bits.
32  * used by bap=1 mantissas and GAQ.
33  * ff_ac3_ungroup_3_in_5_bits_tab[i] = { i/9, (i%9)/3, (i%9)%3 }
34  */
35 const uint8_t ff_ac3_ungroup_3_in_5_bits_tab[32][3] = {
36     { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 2 }, { 0, 1, 0 },
37     { 0, 1, 1 }, { 0, 1, 2 }, { 0, 2, 0 }, { 0, 2, 1 },
38     { 0, 2, 2 }, { 1, 0, 0 }, { 1, 0, 1 }, { 1, 0, 2 },
39     { 1, 1, 0 }, { 1, 1, 1 }, { 1, 1, 2 }, { 1, 2, 0 },
40     { 1, 2, 1 }, { 1, 2, 2 }, { 2, 0, 0 }, { 2, 0, 1 },
41     { 2, 0, 2 }, { 2, 1, 0 }, { 2, 1, 1 }, { 2, 1, 2 },
42     { 2, 2, 0 }, { 2, 2, 1 }, { 2, 2, 2 }, { 3, 0, 0 },
43     { 3, 0, 1 }, { 3, 0, 2 }, { 3, 1, 0 }, { 3, 1, 1 }
44 };
45
46 const uint8_t ff_eac3_hebap_tab[64] = {
47     0, 1, 2, 3, 4, 5, 6, 7, 8, 8,
48     8, 8, 9, 9, 9, 10, 10, 10, 10, 11,
49     11, 11, 11, 12, 12, 12, 12, 13, 13, 13,
50     13, 14, 14, 14, 14, 15, 15, 15, 15, 16,
51     16, 16, 16, 17, 17, 17, 17, 18, 18, 18,
52     18, 18, 18, 18, 18, 19, 19, 19, 19, 19,
53     19, 19, 19, 19,
54 };
55
56 const uint8_t ff_eac3_bits_vs_hebap[20] = {
57     0,  2,  3,  4,  5,  7,  8,  9,  3,  4,
58     5,  6,  7,  8,  9, 10, 11, 12, 14, 16,
59 };
60
61 /**
62  * Table E3.6, Gk=1
63  * No gain (Gk=1) inverse quantization, remapping scale factors
64  * ff_eac3_gaq_remap[hebap+8]
65  */
66 const int16_t ff_eac3_gaq_remap_1[12] = {
67     4681, 2185, 1057, 520, 258, 129, 64, 32, 16, 8, 2, 0
68 };
69
70 /**
71  * Table E3.6, Gk=2 & Gk=4, A
72  * Large mantissa inverse quantization, remapping scale factors
73  * ff_eac3_gaq_remap_2_4_a[hebap-8][Gk=2,4]
74  */
75 const int16_t ff_eac3_gaq_remap_2_4_a[9][2] = {
76     { -10923, -4681 },
77     { -14043, -6554 },
78     { -15292, -7399 },
79     { -15855, -7802 },
80     { -16124, -7998 },
81     { -16255, -8096 },
82     { -16320, -8144 },
83     { -16352, -8168 },
84     { -16368, -8180 }
85 };
86
87 /**
88  * Table E3.6, Gk=2 & Gk=4, B
89  * Large mantissa inverse quantization, negative mantissa remapping offsets
90  * Table values from the spec are right-shifted by 8 to simplify calculations.
91  * ff_eac3_gaq_remap_3_4_b[hebap-8][Gk=2,4]
92  */
93 const int8_t ff_eac3_gaq_remap_2_4_b[9][2] = {
94     { -22,  -5 },
95     { -46, -20 },
96     { -56, -26 },
97     { -60, -29 },
98     { -62, -31 },
99     { -63, -32 },
100     { -64, -32 },
101     { -64, -32 },
102     { -64, -32 },
103 };
104
105 static const int16_t vq_hebap1[4][6] = {
106 {   7167,    4739,    1106,    4269,   10412,    4820},
107 {  -5702,   -3187,  -14483,   -1392,   -2027,     849},
108 {    633,    6199,    7009,  -12779,   -2306,   -2636},
109 {  -1468,   -7031,    7592,   10617,   -5946,   -3062},
110 };
111 static const int16_t vq_hebap2[8][6] = {
112 { -12073,     608,   -7019,     590,    4000,     869},
113 {   6692,   15689,   -6178,   -9239,     -74,     133},
114 {   1855,    -989,   20596,   -2920,   -4475,     225},
115 {  -1194,   -3901,    -821,   -6566,    -875,  -20298},
116 {  -2762,   -3181,   -4094,   -5623,  -16945,    9765},
117 {   1547,    6839,    1980,   20233,   -1071,   -4986},
118 {   6221,  -17915,   -5516,    6266,     358,    1162},
119 {   3753,   -1066,    4283,   -3227,   15928,   10186},
120 };
121 static const int16_t vq_hebap3[16][6] = {
122 { -10028,   20779,   10982,   -4560,     798,     -68},
123 {  11050,   20490,   -6617,   -5342,   -1797,   -1631},
124 {   3977,    -542,    7118,   -1166,   18844,   14678},
125 {  -4320,     -96,   -7295,    -492,  -22050,   -4277},
126 {   2692,    5856,    5530,   21862,   -7212,   -5325},
127 {   -135,  -23391,     962,    8115,    -644,     382},
128 {  -1563,    3400,   -3299,    4693,   -6892,   22398},
129 {   3535,    3030,    7296,    6214,   20476,  -12099},
130 {     57,   -6823,    1848,  -22349,   -5919,    6823},
131 {   -821,   -3655,    -387,   -6253,   -1735,  -22373},
132 {  -6046,    1586,  -18890,  -14392,    9214,     705},
133 {  -5716,     264,  -17964,   14618,    7921,    -337},
134 {   -110,     108,       8,      74,     -89,     -50},
135 {   6612,   -1517,   21687,   -1658,   -7949,    -246},
136 {  21667,   -6335,   -8290,    -101,   -1349,     -22},
137 { -22003,   -6476,    7974,     648,    2054,    -331},
138 };
139 static const int16_t vq_hebap4[32][6] = {
140 {   6636,   -4593,   14173,  -17297,  -16523,     864},
141 {   3658,   22540,     104,   -1763,     -84,       6},
142 {  21580,  -17815,   -7282,   -1575,   -2078,    -320},
143 {  -2233,   10017,   -2728,   14938,  -13640,  -17659},
144 {  -1564,  -17738,  -19161,   13735,    2757,    2951},
145 {   4520,    5510,    7393,   10799,   19231,  -13770},
146 {    399,    2976,   -1099,    5013,   -1159,   22095},
147 {   3624,   -2359,    4680,   -2238,   22702,    3765},
148 {  -4201,   -8285,   -6810,  -12390,  -18414,   15382},
149 {  -5198,   -6869,  -10047,   -8364,  -16022,  -20562},
150 {   -142,  -22671,    -368,    4391,    -464,     -13},
151 {    814,   -1118,   -1089,  -22019,      74,    1553},
152 {  -1618,   19222,  -17642,  -13490,     842,   -2309},
153 {   4689,   16490,   20813,  -15387,   -4164,   -3968},
154 {  -3308,   11214,  -13542,   13599,  -19473,   13770},
155 {   1817,     854,   21225,    -966,   -1643,    -268},
156 {  -2587,    -107,  -20154,     376,    1174,    -304},
157 {  -2919,     453,   -5390,     750,  -22034,    -978},
158 { -19012,   16839,   10000,   -3580,    2211,    1459},
159 {   1363,   -2658,     -33,   -4067,    1165,  -21985},
160 {  -8592,   -2760,  -17520,  -15985,   14897,    1323},
161 {    652,   -9331,    3253,  -14622,   12181,   19692},
162 {  -6361,    5773,  -15395,   17291,   16590,   -2922},
163 {   -661,    -601,    1609,   22610,     992,   -1045},
164 {   4961,    9107,   11225,    7829,   16320,   18627},
165 { -21872,   -1433,     138,    1470,   -1891,    -196},
166 { -19499,  -18203,   11056,    -516,    2543,   -2249},
167 {  -1196,  -17574,   20150,   11462,    -401,    2619},
168 {   4638,   -8154,   11891,  -15759,   17615,  -14955},
169 {    -83,     278,     323,      55,    -154,     232},
170 {   7788,    1462,   18395,   15296,  -15763,   -1131},
171 };
172 static const int16_t vq_hebap5[128][6] = {
173 {  -3394,  -19730,    2963,    9590,    4660,   19673},
174 { -15665,   -6405,   17671,    3860,   -8232,  -19429},
175 {   4467,     412,  -17873,   -8037,     691,  -17307},
176 {   3580,    2363,    6886,    3763,    6379,  -20522},
177 { -17230,  -14133,   -1396,  -23939,    8373,  -12537},
178 {  -8073,  -21469,  -15638,    3214,    8105,   -5965},
179 {   4343,    5169,    2683,  -16822,   -5146,  -16558},
180 {   6348,  -10668,   12995,  -25500,  -22090,    4091},
181 {  -2880,   -8366,   -5968,  -17158,   -2638,   23132},
182 {  -5095,  -14281,  -22371,   21741,    3689,    2961},
183 {  -2443,  -17739,   25155,    2707,    1594,       7},
184 { -18379,    9010,    4270,     731,    -426,    -640},
185 { -23695,   24732,    5642,     612,    -308,    -964},
186 {   -767,    1268,     225,    1635,     173,     916},
187 {   5455,    6493,    4902,   10560,   23041,  -17140},
188 {  17219,  -21054,  -18716,    4936,   -3420,    3357},
189 {  -1390,   15488,  -21946,  -14611,    1339,     542},
190 {  -6866,   -2254,  -12070,   -3075,  -19981,  -20622},
191 {  -1803,   11775,    1343,    8917,     693,   24497},
192 { -21610,    9462,    4681,    9254,   -7815,   15904},
193 {  -5559,   -3018,   -9169,   -1347,  -22547,   12868},
194 {   -366,    5076,   -1727,   20427,    -283,   -2923},
195 {  -1886,   -6313,    -939,   -2081,   -1399,    3513},
196 {  -3161,    -537,   -5075,   11268,   19396,     989},
197 {   2345,    4153,    5769,   -4273,     233,    -399},
198 { -21894,   -1138,  -16474,    5902,    5488,   -3211},
199 {  10007,  -12530,   18829,   20932,   -1158,    1790},
200 {  -1165,    5014,   -1199,    6415,   -8418,  -21038},
201 {   1892,   -3534,    3815,   -5846,   16427,   20288},
202 {  -2664,  -11627,   -4147,  -18311,  -22710,   14848},
203 {  17256,   10419,    7764,   12040,   18956,    2525},
204 { -21419,  -18685,  -10897,    4368,   -7051,    4539},
205 {  -1574,    2050,    5760,   24756,   15983,   17678},
206 {   -538,  -22867,   11067,   10301,     385,     528},
207 {  -8465,   -3025,  -16357,  -23237,   16491,    3654},
208 {   5840,     575,   11890,    1947,   25157,    6653},
209 {   6625,   -3516,   -1964,    3850,    -390,    -116},
210 {  18005,   20900,   14323,   -7621,  -10922,   11802},
211 {  -4857,   -2932,  -13334,   -7815,   21622,    2267},
212 {   -579,   -9431,    -748,  -21321,   12367,    8265},
213 {  -8317,    1375,  -17847,    2921,    9062,   22046},
214 {  18398,    8635,   -1503,   -2418,  -18295,  -14734},
215 {  -2987,   15129,   -3331,   22300,   13878,  -13639},
216 {   5874,  -19026,   15587,   11350,  -20738,    1971},
217 {   1581,   -6955,  -21440,    2455,      65,     414},
218 {    515,   -4468,    -665,   -4672,     125,  -19222},
219 {  21495,  -20301,   -1872,   -1926,    -211,   -1022},
220 {   5189,  -12250,   -1775,  -23550,   -4546,    5813},
221 {    321,   -6331,   14646,    6975,   -1773,     867},
222 { -13814,    3180,    7927,     444,   19552,    3146},
223 {  -6660,   12252,   -1972,   17408,  -24280,  -12956},
224 {   -745,   14356,   -1107,   23742,   -9631,  -18344},
225 {  18284,   -7909,   -7531,   19118,    7721,  -12659},
226 {   1926,   15101,  -12848,    2153,   21631,    1864},
227 {  -2130,   23416,   17056,  -15597,   -1544,      87},
228 {   8314,  -11824,   14581,  -20591,    7891,   -2099},
229 {  19600,   22814,  -17304,   -2040,     285,   -3863},
230 {  -8214,  -18322,   10724,  -13744,  -13469,   -1666},
231 {  14351,    4880,  -20034,     964,   -4221,    -180},
232 { -24598,  -16635,   19724,    5925,    4777,    4414},
233 {  -2495,   23493,  -16141,    2918,   -1038,   -2010},
234 {  18974,   -2540,   13343,    1405,   -6194,   -1136},
235 {   2489,   13670,   22638,   -7311,    -129,   -2792},
236 { -13962,   16775,   23012,     728,    3397,     162},
237 {   3038,     993,    8774,  -21969,   -6609,     910},
238 { -12444,  -22386,   -2626,   -5295,   19520,    9872},
239 {  -1911,  -18274,  -18506,  -14962,    4760,    7119},
240 {   8298,   -2978,   25886,    7660,   -7897,    1020},
241 {   6132,   15127,   18757,  -24370,   -6529,   -6627},
242 {   7924,   12125,   -9459,  -23962,    5502,     937},
243 { -17056,   -5373,    2522,     327,    1129,    -390},
244 {  15774,   19955,  -10380,   11172,   -3107,   14853},
245 { -11904,   -8091,  -17928,  -22287,  -17237,   -6803},
246 { -12862,   -2172,   -6509,    5927,   12458,  -22355},
247 {   -497,     322,    1038,   -6643,   -5404,   20311},
248 {   1083,  -22984,   -8494,   12130,    -762,    2623},
249 {   5067,   19712,   -1901,     -30,    -325,      85},
250 {    987,   -5830,    4212,   -9030,    9121,  -25038},
251 {  -7868,    7284,  -12292,   12914,  -21592,   20941},
252 {  -1630,   -7694,   -2187,   -8525,   -5604,  -25196},
253 {  -6668,     388,  -22535,    1526,    9082,     193},
254 {  -7867,  -22308,    5163,     362,     944,    -259},
255 {   3824,  -11850,    7591,  -23176,   25342,   23771},
256 { -10504,    4123,  -21111,   21173,   22439,    -838},
257 {  -4723,   21795,    6184,    -122,    1642,    -717},
258 {  24504,   19887,   -2043,     986,       7,     -55},
259 { -27313,    -135,    2437,     259,      89,     307},
260 {  24446,   -3873,   -5391,    -820,   -2387,     361},
261 {   5529,    5784,   18682,     242,  -21896,   -4003},
262 {  22304,    4483,     722,  -12242,    7570,   15448},
263 {   8673,    3009,   20437,   21108,  -21100,   -3080},
264 {  -1132,    2705,   -1825,    5420,    -785,   18532},
265 {  16932,  -13517,  -16509,  -14858,  -20327,  -14221},
266 {   2219,    1380,   21474,   -1128,     327,      83},
267 {  -2177,   21517,   -3856,  -14180,    -204,   -2191},
268 {    953,   -9426,   15874,  -10710,   -3231,   21030},
269 {   -421,   -1377,     640,   -8239,  -20976,    2174},
270 {   4309,   18514,   -9100,  -18319,  -15518,    3704},
271 {  -5943,     449,   -8387,    1075,  -22210,   -4992},
272 {   2953,   12788,   18285,    1430,   14937,   21731},
273 {  -2913,     401,   -4739,  -20105,    1699,   -1147},
274 {   3449,    5241,    8853,   22134,   -7547,    1451},
275 {  -2154,    8584,   18120,  -15614,   19319,   -5991},
276 {   3501,    2841,    5897,    6397,    8630,   23018},
277 {   2467,    2956,     379,    5703,  -22047,   -2189},
278 { -16963,    -594,   18822,   -5295,    1640,     774},
279 {   2896,   -1424,    3586,   -2292,   19910,   -1822},
280 { -18575,   21219,  -14001,  -12573,   16466,     635},
281 {  -1998,  -19314,  -16527,   12208,  -16576,   -7854},
282 {  -9674,    1012,  -21645,    2883,  -12712,    2321},
283 {  -1005,     471,   -3629,    8045,  -11087,   25533},
284 {   4141,  -21472,   -2673,     756,    -663,    -523},
285 {   6490,    8531,   19289,   18949,    6092,   -9347},
286 {  16965,   24599,   14024,   10072,    -536,  -10438},
287 {  -8147,    2145,  -23028,  -17073,    5451,   -4401},
288 { -14873,   20520,  -18303,   -9717,  -11885,  -17831},
289 {  -2290,  -14120,    2070,   22467,    1671,     725},
290 {  -8538,   14629,    3521,  -20577,    6673,    8200},
291 {  20248,    4410,   -1366,    -585,    1229,   -2449},
292 {   7467,   -7148,   13667,   -8246,   22392,  -17320},
293 {  -1932,    3875,   -9064,   -3812,     958,     265},
294 {  -4399,    2959,  -15911,   19598,    4954,   -1105},
295 {  18009,   -9923,  -18137,   -3862,   11178,    5821},
296 { -14596,   -1227,    9660,   21619,   11228,  -11721},
297 {   -721,   -1700,     109,   -2142,      61,   -6772},
298 { -24619,  -22520,    5608,   -1957,   -1761,   -1012},
299 { -23728,   -4451,   -2688,  -14679,   -4266,    9919},
300 {   8495,    -894,   20438,  -13820,  -17267,     139},
301 };
302 static const int16_t vq_hebap6[256][6] = {
303 {  10154,    7365,   16861,   18681,  -22893,   -3636},
304 {  -2619,   -3788,   -5529,   -5192,   -9009,  -20298},
305 {  -5583,  -22800,   21297,    7012,     745,     720},
306 {    428,   -1459,     109,   -3082,     361,   -8403},
307 {   8161,   22401,     241,    1755,    -874,   -2824},
308 {   1140,   12643,    2306,   22263,  -25146,  -17557},
309 {  -2609,    3379,   10337,  -19730,  -15468,  -23944},
310 {  -4040,  -12796,  -25772,   13096,    3905,    1315},
311 {   4624,  -23799,   13608,   25317,   -1175,    2173},
312 {    -97,   13747,   -5122,   23255,    4214,  -22145},
313 {   6878,    -322,   18264,    -854,  -11916,    -733},
314 {  17280,  -12669,   -9693,   23563,  -16240,   -1309},
315 {   5802,   -4968,   19526,  -21194,  -24622,    -183},
316 {   5851,  -16137,   15229,   -9496,   -1538,     377},
317 {  14096,   25057,   13419,    8290,   23320,   16818},
318 {  -7261,     118,  -15867,   19097,    9781,    -277},
319 {  -4288,   21589,  -13288,  -16259,   16633,   -4862},
320 {   4909,  -19217,   23411,   14705,    -722,     125},
321 {  19462,   -4732,   -1928,  -11527,   20770,    5425},
322 { -27562,   -2881,   -4331,     384,   -2103,    1367},
323 {   -266,   -9175,    5441,   26333,   -1924,    4221},
324 {  -2970,  -20170,  -21816,    5450,   -7426,    5344},
325 {   -221,   -6696,     603,   -9140,    1308,  -27506},
326 {   9621,   -8380,   -1967,    9403,   -1651,   22817},
327 {   7566,   -5250,   -4165,    1385,    -990,     560},
328 {  -1262,   24738,  -19057,   10741,    7585,   -7098},
329 {    451,   20130,   -9949,   -6015,   -2188,   -1458},
330 {  22249,    9380,    9096,   10959,   -2365,   -3724},
331 {  18668,    -650,   -1234,   11092,    7678,    5969},
332 {  19207,   -1485,   -1076,    -731,    -684,      43},
333 {  -4973,   13430,   20139,      60,     476,    -935},
334 { -20029,    8710,    2499,    1016,   -1158,     335},
335 { -26413,   18598,   -2201,    -669,    3409,     793},
336 {  -4726,    8875,  -24607,   -9646,    3643,    -283},
337 {  13303,  -21404,   -3691,   -1184,   -1970,    1612},
338 {    173,      60,     919,    1229,    6942,    -665},
339 {  16377,   16991,    5341,  -14015,   -2304,  -20390},
340 {  25334,  -10609,   11947,   -7653,   -6363,   14058},
341 {  23929,  -13259,   -7226,    -937,     234,    -187},
342 {   6311,   -1877,   12506,   -1879,   18751,  -23341},
343 {    621,    6445,    3354,  -24274,    8406,    5315},
344 {  -3297,   -5034,   -4704,   -5080,  -25730,    5347},
345 {  -1275,  -13295,    -965,  -23318,    1214,   26259},
346 {  -6252,   10035,  -20105,   15301,  -16073,    5136},
347 {   9562,   -3911,  -19510,    4745,   22270,   -4171},
348 {   7978,  -19600,   14024,   -5745,  -20855,    8939},
349 {      7,   -4039,     991,   -6065,      52,  -19423},
350 {   3485,    2969,    7732,    7786,   25312,    6206},
351 {   -959,  -12812,   -1840,  -22743,    7324,   10830},
352 {  -4686,    1678,  -10172,   -5205,    4294,   -1271},
353 {   3889,    1302,    7450,     638,   20374,   -3133},
354 { -12496,   -9123,   18463,  -12343,   -7238,   18552},
355 {  -6185,    8649,   -6903,    -895,   17109,   16604},
356 {  -9896,   28579,    2845,    1640,    2925,    -298},
357 {  14968,  -25988,   14878,  -24012,    1815,   -6474},
358 {  26107,    5166,   21225,   15873,   21617,   14825},
359 { -21684,   16438,   20504,  -14346,   -7114,   -4162},
360 {  28647,      90,   -1572,     789,    -902,     -75},
361 {  -1479,    2471,   -4061,    3612,   -2240,   10914},
362 {   8616,   17491,   17255,  -17456,   17022,  -16357},
363 { -20722,  -18597,   25274,   17720,   -3573,    1695},
364 {   -997,    6129,   -6303,   11250,  -11359,  -19739},
365 {    -74,   -4001,   -1584,   13384,     162,    -144},
366 {   -529,   21068,    7923,  -11396,     422,     -26},
367 {   7102,  -13531,  -20055,    2629,    -178,    -429},
368 {   9201,    1368,  -22238,    2623,  -20499,   24889},
369 {   -432,    6675,    -266,    8723,      80,   28024},
370 {  19493,   -3108,   -9261,    1910,  -21777,    5345},
371 {  14079,  -11489,   12604,    6079,   19877,    1315},
372 {  10947,    9837,  -18612,   15742,    4792,     605},
373 {  -1777,    3758,   -4087,   21696,    6024,    -576},
374 {   3567,   -3578,   16379,    2680,   -1752,     716},
375 {  -5049,   -1399,   -4550,    -652,  -17721,   -3366},
376 {  -3635,   -4372,   -6522,  -22152,    7382,    1458},
377 {  12242,   19190,    5646,   -7815,  -20289,   21344},
378 {  -7508,   19952,   23542,   -9753,    5669,   -1990},
379 {  -2275,   15438,   10907,  -17879,    6497,   13582},
380 { -15894,  -15646,   -4716,    6019,   24250,   -6179},
381 {  -2049,   -6856,   -1208,     918,   17735,     -69},
382 {  -3721,    9099,  -16065,  -23621,    5981,   -2344},
383 {   7862,   -8918,   24033,   25508,  -11033,    -741},
384 { -12588,   19468,   14649,   15451,  -21226,    1171},
385 {   2102,    1147,    2789,    4096,    2179,    8750},
386 { -18214,  -17758,  -10366,   -5203,   -1066,   -3541},
387 {  -2819,  -19958,  -11921,    6032,    8315,   10374},
388 {  -9078,   -2100,   19431,     -17,     732,    -689},
389 { -14512,  -19224,   -7095,   18727,    1870,   22906},
390 {   3912,     659,   25597,   -4006,    9619,     877},
391 {   2616,   22695,   -5770,   17920,    3812,   20220},
392 {   2561,   26847,   -5245,  -10908,    2256,    -517},
393 {  -4974,     198,  -21983,   -3608,   22174,  -18924},
394 {  21308,   -1211,   19144,   16691,   -1588,   11390},
395 {  -1790,    3959,   -3488,    7003,   -7107,   20877},
396 {  -6108,  -17955,  -18722,   24763,   16508,    3211},
397 {  20462,  -24987,  -20361,    4484,   -5111,    -478},
398 {  -6378,   -1998,  -10229,    -561,  -22039,  -22339},
399 {   3047,  -18850,    7586,   14743,  -19862,    6351},
400 {  -5047,    1405,   -9672,    1055,  -21881,   11170},
401 {   3481,   -9699,    6526,  -16655,   22813,   21907},
402 { -18570,   17501,   14664,    1291,    5026,   19676},
403 {  16134,  -19810,  -16956,  -17939,  -16933,    5800},
404 {  -8224,    4908,    8935,    2272,   -1140,  -23217},
405 {   1572,    2753,   -1598,    2143,   -3346,  -21926},
406 {  -9832,   -1060,  -27818,    1214,    7289,     150},
407 {     98,    1538,     535,   17429,  -23198,    -901},
408 {  21340,  -20146,    3297,   -1744,   -8207,  -21462},
409 {  -4166,   -4633,  -17902,    5478,    1285,     136},
410 {  18713,   21003,   24818,   11421,    1282,   -4618},
411 {  -3535,    7636,    -265,    2141,    -829,   -2035},
412 {  -3184,   19713,    2775,      -2,    1090,     104},
413 {  -6771,  -20185,    2938,   -2125,     -36,    1268},
414 {   9560,    9430,    9586,   22100,   13827,    6296},
415 {   -535,  -20018,    4276,   -1868,    -448,  -17183},
416 { -24352,   14244,  -13647,  -21040,    2271,   11555},
417 {  -2646,   15437,   -4589,   18638,   -4299,    -622},
418 { -20064,    4169,   18115,   -1404,   13722,   -1825},
419 { -16359,    9080,     744,   22021,     125,   10794},
420 {   9644,  -14607,  -18479,  -14714,   11174,  -20754},
421 {   -326,  -23762,    6144,    7909,     602,    1540},
422 {  -6650,    6634,  -12683,   21396,   20785,   -6839},
423 {   4252,  -21043,    5628,   18687,   23860,    8328},
424 {  17986,    5704,   -5245,  -18093,    -555,    3219},
425 {   6091,   14232,   -5117,  -17456,  -19452,  -11649},
426 { -21586,   11302,   15434,   25590,    6777,  -26683},
427 {  21355,   -8244,    5877,   -3540,    6079,   -2567},
428 {   2603,   -2455,    5421,  -12286,  -19100,    5574},
429 {  -1721,  -26393,  -23664,   22904,    -349,    3787},
430 {   2189,   -1203,    5340,    3249,  -22617,     104},
431 {  -1664,  -11020,   -2857,  -20723,  -24049,   19900},
432 {  22873,   -7345,  -18481,  -14616,   -8400,  -12965},
433 {   3777,    3958,    8239,   20494,   -6991,   -1201},
434 {   -160,   -1613,    -793,   -8681,     573,     776},
435 {   4297,   -3786,   20373,    6082,   -5321,  -18400},
436 {  18745,    2463,   12546,   -7749,   -7734,   -2183},
437 {  11074,   -4720,   22119,    1825,  -24351,    4080},
438 {   1503,  -19178,   -1569,      13,    -313,     375},
439 {    318,    -575,    2544,     178,     102,      40},
440 { -15996,  -26897,    5008,    3320,     686,    1159},
441 {  25755,   26886,     574,   -5930,   -3916,    1407},
442 {  -9148,   -7665,   -2875,   -8384,  -18663,   26400},
443 {  -7445,  -18040,  -18396,    8802,   -2252,  -21886},
444 {   7851,   11773,   27485,  -12847,   -1410,   19590},
445 {   2240,    5947,   11247,   15980,   -6499,   24280},
446 {  21673,  -18515,    9771,    6550,   -2730,     334},
447 {  -4149,    1576,  -11010,      89,  -24429,   -5710},
448 {   7720,    1478,   21412,  -25025,   -8385,       9},
449 {  -2448,   10218,  -12756,  -16079,    1161,  -21284},
450 {  -8757,  -14429,  -22918,  -14812,    2629,   13844},
451 {  -7252,    2843,   -9639,    2882,  -14625,   24497},
452 {   -674,   -6530,     414,  -23333,  -21343,     454},
453 {   2104,   -6312,   10887,   18087,   -1199,     175},
454 {   -493,    -562,   -2739,     118,   -1074,      93},
455 { -10011,   -4075,  -28071,   22180,   15077,    -636},
456 {  -4637,  -16408,   -9003,  -20418,  -11608,  -20932},
457 {   4815,   15892,   24238,  -13634,   -3074,   -1059},
458 {  -6724,    4610,  -18772,  -15283,  -16685,   23988},
459 {  15349,    -674,   -3682,   21679,    4475,  -12088},
460 {   4756,    2593,    5354,    6001,   15063,   26490},
461 { -23815,  -17251,    6944,     378,     694,     670},
462 {  23392,   -8839,  -14713,    7544,    -876,   11088},
463 {   3640,    3336,   22593,   -3495,   -2328,    -113},
464 {    284,    6914,    3097,   10171,    6638,  -18621},
465 {   2472,    5976,   11054,  -11936,    -603,    -663},
466 {  16175,   16441,   13164,   -4043,    4667,    7431},
467 {  19338,   15534,   -6533,    1681,   -4857,   17048},
468 {  17027,     532,  -19064,   -1441,   -5130,    1085},
469 { -12617,  -17609,    2062,  -25332,   19009,  -16121},
470 {  10056,  -21000,  -13634,   -2949,   15367,   19934},
471 {   -648,   -1605,   10046,   -1592,   13296,   19808},
472 {  -1054,   10744,     538,   24938,    9630,   -9052},
473 { -10099,    3042,  -25076,  -24052,   13971,     100},
474 {   6547,    6907,    7031,   10348,   23775,  -17886},
475 { -22793,   -1984,   -1393,   -3330,    9267,   14317},
476 { -14346,   -3967,    3042,   16254,  -17303,    9646},
477 { -21393,   23628,   16773,     716,    2663,     114},
478 { -19016,   -3038,    1574,    -245,    1463,    -793},
479 {  22410,   23441,  -14637,    -530,   17310,   13617},
480 { -11582,    7935,  -13954,   23465,  -24628,   26550},
481 {  -1045,    3679,   -2218,   10572,   20999,   -3702},
482 { -15513,     197,   16718,  -24603,    4945,       5},
483 {  10781,    4335,   26790,   -9059,  -16152,   -2840},
484 {  16075,  -24100,   -3933,   -6833,   12645,   -7029},
485 {   2096,  -25572,   -8370,    6814,      11,    1178},
486 { -11848,    -583,   -8889,  -20543,  -10471,    -380},
487 {  -2487,   24777,  -21639,  -19341,    1660,    -732},
488 {   2313,   13679,    4085,   24549,   24691,  -21179},
489 {  -2366,    -504,   -4130,  -10570,   23668,    1961},
490 {  20379,   17809,   -9506,    3733,  -18954,   -6292},
491 {  -3856,   16802,    -929,  -20310,  -17739,    6797},
492 {  12431,    6078,  -11272,  -14450,    6913,   23476},
493 {   7636,   -1655,   23017,   10719,   -8292,     838},
494 {  -8559,   -1235,  -18096,    3897,   16093,    1490},
495 {  -3586,    8276,   15165,   -3791,  -21149,    1741},
496 {  -4497,   21739,    2366,    -278,   -4792,   15549},
497 { -23122,  -13708,    7668,   16232,   24120,   15025},
498 { -20043,   12821,  -20160,   16691,  -11655,  -16081},
499 { -12601,   20239,    3496,   -2549,   -6745,  -11850},
500 {   4441,    7812,   20783,   17080,   11523,   -9643},
501 {  24766,    8494,  -23298,   -3262,   11101,   -7120},
502 { -10107,   -7623,  -22152,  -18303,   26645,    9550},
503 { -25549,     477,    7874,   -1538,    1123,    -168},
504 {    470,    9834,    -347,   23945,  -10381,   -9467},
505 {  -4096,   -9702,   -6856,  -21544,   20845,    7174},
506 {   5370,    9748,  -23765,   -1190,     512,   -1538},
507 {  -1006,  -10046,  -12649,   19234,   -1790,    -890},
508 {  15108,   23620,  -15646,   -2522,   -1203,   -1325},
509 {  -7406,   -2605,    1095,    -247,    -473,     177},
510 {   8089,       4,   12424,  -22284,   10405,   -7728},
511 {  22196,   10775,   -5043,     690,     534,    -212},
512 {  -3153,   -1418,  -16835,   18426,   15821,   22956},
513 {   5681,   -2229,    3196,   -3414,  -21817,  -14807},
514 {     19,     787,    1032,     170,   -8295,    -645},
515 {   -882,   -2319,  -27105,     432,   -4392,    1499},
516 {  -1354,  -11819,     -76,  -20380,  -10293,   11328},
517 {    211,   -4753,   -4675,   -6933,  -13538,   14479},
518 {   6043,    5260,    -459,    -462,     143,     -65},
519 {  -2572,    7256,   -3317,    9212,  -23184,   -9990},
520 { -24882,   -9532,   18874,    6101,    2429,  -14482},
521 {   8314,    2277,   14192,    3512,   25881,   22000},
522 {    208,   20218,    -281,  -24778,     -63,   -1183},
523 {   1095,   -6034,    2706,  -21935,   -2655,     563},
524 {     23,   -5930,     243,   -8989,    5345,   20558},
525 { -15466,   12699,    4160,   11087,   20621,  -10416},
526 {  20995,     -85,   -8468,     194,    1003,   -9515},
527 { -19637,   -3335,  -14081,    3574,  -23381,    -667},
528 {  -2076,    3489,   -3192,  -19367,     539,   -1530},
529 {   7352,  -15213,   22596,   19369,    1043,   16627},
530 {  -1872,    -413,    1235,   -5276,   -3550,   21903},
531 {   7931,   -2008,   16968,   -6799,   29393,   -2475},
532 { -13589,    8389,  -23636,  -22091,  -14178,  -14297},
533 { -11575,  -20090,   16056,   -1848,   15721,    4500},
534 {   3849,  -16581,   20161,  -21155,    7778,   11864},
535 {  -6547,   -1273,  -18837,  -11218,   11636,    1044},
536 {   2528,   -6691,  -17917,  -11362,   -4894,   -1008},
537 {   1241,    4260,    2319,    6111,    3485,   20209},
538 {   3014,   -3048,    5316,   -4539,   20831,    8702},
539 {  -1790,  -14683,     278,   13956,  -10065,  -10547},
540 { -22732,   -7957,   -1154,   13821,   -1484,   -1247},
541 {  -7317,    -615,   13094,   18927,    9897,    1452},
542 {   2552,   -2338,    3424,   -4630,   11124,  -19584},
543 { -11125,  -20553,  -10855,  -10783,  -20767,    6833},
544 {    984,  -15095,    5775,   25125,    5377,  -19799},
545 {    517,   13272,   -7458,   -1711,   20612,   -6013},
546 { -21417,   13251,  -20795,   13449,   17281,   13104},
547 { -15811,  -16248,   23093,   -4037,   -8195,     871},
548 {    582,   12571,  -21129,  -14766,   -9187,    5685},
549 {   4318,   -1776,   11425,  -17763,   -9921,     577},
550 {   6013,   16830,   17655,  -25766,   -4400,   -3550},
551 { -13744,  -16541,    3636,   -3330,  -21091,  -15886},
552 {   6565,  -11147,    8649,  -13114,   23345,  -13565},
553 {  -2542,   -9046,   -7558,   29240,    3701,    -383},
554 { -10612,   24995,    1893,   -8210,   20920,  -16210},
555 {   5276,   16726,   10659,   19940,   -4799,  -19324},
556 {   -532,   -9300,   27856,    4965,    -241,     536},
557 {   -765,  -20706,   -3412,   18870,    2765,    1420},
558 {  -3059,    2708,  -19022,    -331,    3537,     116},
559 };
560 static const int16_t vq_hebap7[512][6] = {
561 { -21173,   21893,   10390,   13646,   10718,   -9177},
562 { -22519,   -8193,   18328,   -6629,   25518,  -10848},
563 {   6800,  -13758,  -13278,   22418,   14667,  -20938},
564 {   2347,   10516,    1125,   -3455,    5569,   27136},
565 {  -6617,   11851,  -24524,   22937,   20362,   -6019},
566 { -21768,   10681,  -19615,  -15021,   -8478,   -2081},
567 {  -2745,    8684,   -4895,   27739,    7554,  -11961},
568 {  -1020,    2460,    -954,    4754,    -627,  -16368},
569 { -19702,   23097,      75,  -13684,   -2644,    2108},
570 {   4049,   -2872,    5851,   -4459,   22150,   12560},
571 { -21304,  -17129,    -730,    7419,  -11658,  -10523},
572 {  11332,    1792,   26666,   23518,  -19561,    -491},
573 { -17827,  -16777,  -13606,  -14389,  -22029,   -2464},
574 {   1091,   -5967,   -7975,  -16977,  -20432,  -21931},
575 {  18388,   -1103,    1933,   13342,  -17463,   18114},
576 {  22646,   17345,   -9966,   17919,   18274,     698},
577 {   1484,   20297,   -5754,  -26515,    4941,  -22263},
578 {  -2603,    4587,   -5842,   18464,    8767,   -2568},
579 {  -2797,   -1602,   21713,    3099,  -25683,    3224},
580 { -19027,    4693,   -5007,    6060,    1972,  -15095},
581 {  -2189,    9516,    -530,   20669,   -4662,   -8301},
582 { -22325,   -8887,    2529,  -11352,    5476,     998},
583 {  22100,   -5052,    1651,   -2657,    4615,    2319},
584 {  20855,   -3078,   -3330,    4105,   13470,    3069},
585 {     85,   17289,   10264,  -14752,     214,      90},
586 { -26365,  -18849,  -19352,   19244,  -10218,    9909},
587 {  -9739,   20497,   -6579,   -6983,    2891,    -738},
588 {  20575,  -15860,  -22913,    6870,      76,     327},
589 {   8744,  -12877,  -22945,   -2372,  -19424,   -9771},
590 { -12886,   16183,   21084,    3821,     749,  -13792},
591 { -15995,   18399,    2391,  -17661,   19484,   -6018},
592 {   1423,   11734,    4051,   19290,    6857,  -19681},
593 {  -5200,    9766,   18246,    2463,   18764,   -4852},
594 {   -597,   19498,    1323,   -9096,    -308,   -1104},
595 {  -3099,  -25731,  -15665,   25332,    4634,    2635},
596 {  19623,   -2384,   -7913,   11796,   -9333,  -14084},
597 {   2642,   26453,  -21091,  -10354,   -1693,   -1711},
598 {  22031,   21625,   11580,  -22915,   -4141,     129},
599 {  -6122,    3542,     915,    -261,     -17,    -383},
600 {   1696,    6704,   -1425,   20838,     857,   -4416},
601 {   1423,  -15280,   -8550,   -9667,    5210,    5687},
602 {  -4520,    -613,  -11683,    5618,    4230,     619},
603 {    937,   -4963,  -14102,  -17104,   -6906,   -5952},
604 { -15068,    -481,   -7237,  -14894,   18876,   21673},
605 { -25658,    2910,    1143,    -327,    -458,    -995},
606 {  -9656,    -819,  -24900,    2804,   20225,    1083},
607 {  -1111,   -3682,   -1788,  -19492,     966,     821},
608 {   7293,  -21759,   10790,   -7059,  -23293,   -1723},
609 {   -282,  -11093,     170,  -20950,  -28926,   12615},
610 {  17938,    3713,   -1563,     885,       5,     564},
611 {   6116,   22696,    2242,   -6951,    9975,   -6132},
612 {   4338,   26808,   -3705,    1976,   -1079,   -2570},
613 {   -661,   -7901,   -2668,  -15194,   17722,    4375},
614 {  -4174,  -11053,     717,  -22506,    1562,   12252},
615 {  -6405,   18334,    6103,    6983,    5956,   18195},
616 {   9851,    5370,   23604,   -6861,   -6569,     -62},
617 {  21964,   13359,    -683,    3785,    2168,     209},
618 {  -3569,   -1127,  -19724,   -1544,    1308,    -803},
619 {  -3083,   16049,  -13791,   -3077,    4294,   23713},
620 {  -9999,    9943,  -15872,   12934,  -23631,   21699},
621 {   9722,   22837,   12192,   15091,    5533,    4837},
622 {   2243,    2099,    1243,    4089,    4748,   12956},
623 {   4007,   -2468,    3353,   -3092,    8843,   17024},
624 {   4330,    6127,    5549,    9249,   11226,   28592},
625 {  -9586,   -8825,     236,    1009,     455,    -964},
626 {   6829,   19290,   -1018,     200,    1821,     578},
627 {   5196,     957,   10372,    3330,  -12800,    -127},
628 {  -3022,   -8193,  -14557,   22061,    5920,    1053},
629 {  10982,   25942,  -24546,  -23278,  -11905,   -6789},
630 {  22667,  -11010,    5736,    2567,   23705,  -10253},
631 {  -3343,   -4233,   -5458,   20667,  -10843,   -3605},
632 {  -4131,   -3612,    4575,    -829,    -350,    -847},
633 {  -3303,    3451,   -7398,  -11604,    3023,     455},
634 {   3200,   -9547,    3202,  -22893,   11184,  -26466},
635 { -14093,   -4117,   15382,   14295,  -10915,  -20377},
636 {   3807,  -11016,   22052,   14370,  -15328,   -7733},
637 {  -6291,  -17719,   -1560,   12048,  -19805,    -443},
638 {  -6147,   -4234,    -160,    8363,   22638,   11911},
639 {  19197,    1175,    7422,   -9875,   -4136,    4704},
640 {    -72,   -7652,    -112,  -11955,   -3230,   27175},
641 {   3274,    5963,    7501,  -17019,     866,  -25452},
642 {    737,    1861,    1833,    2022,    2384,    4755},
643 {  -5217,    7512,    3323,    2715,    3065,   -1606},
644 {   4247,     565,    5629,    2497,   18019,   -4920},
645 {  -2833,  -17920,   -8062,   15738,   -1018,    2136},
646 {   3050,  -19483,   16930,   29835,  -10222,   15153},
647 { -11346,     118,  -25796,  -13761,   15320,    -468},
648 {  -4824,    4960,   -4263,    1575,  -10593,   19561},
649 {  -8203,   -1409,    -763,   -1139,    -607,    1408},
650 {  -2203,  -11415,    2021,   -6388,   -2600,     711},
651 {   -413,   -2511,    -216,   -3519,  -28267,    1719},
652 { -14446,   17050,   13917,   13499,  -25762,  -16121},
653 {  19228,    7341,  -12301,     682,   -3791,    -199},
654 {  -4193,   20746,  -15651,   11349,    5860,    -824},
655 { -21490,   -3546,      -3,   -1705,   -3959,    9213},
656 {  15445,   -1876,    2012,  -19627,   16228,   -4845},
657 {  -2867,   -3733,   -7354,    -175,  -20119,   11174},
658 {  -3571,  -24587,   19700,    6654,     979,    -654},
659 {  21820,   -7430,   -6639,  -10767,   -8362,   15543},
660 {  14827,   17977,   -7204,   -3409,    1906,  -17288},
661 {   3525,   -3947,   -1415,   -2798,   17648,    2082},
662 {  -6580,  -15255,  -17913,    1337,   15338,   21158},
663 {   6210,    9698,   15155,  -24666,  -22507,   -3999},
664 {  -1740,    -593,    1095,   -7779,   25058,    5601},
665 {  21415,    -432,   -1658,   -6898,   -1438,  -14454},
666 {  -6943,     700,  -12139,    -745,  -24187,   22466},
667 {   6287,    3283,   11006,    3844,   19184,   14781},
668 { -22502,   15274,    5443,   -2808,    -970,   -3343},
669 {   3257,   -3708,    4744,   -8301,   22814,  -10208},
670 {  24346,  -20970,   19846,     987,  -11958,   -6277},
671 {   3906,  -19701,   13060,   -1609,   18641,    7466},
672 { -26409,  -22549,   16305,    2014,   10975,   18032},
673 {  -7039,    4655,  -14818,   18739,   15789,    1296},
674 {   9310,   -1681,   14667,   -3326,   26535,  -11853},
675 {   5728,    5917,   13400,   10020,   -2236,  -24704},
676 {   1741,   -6727,   12695,  -22009,    4080,    5450},
677 {  -2621,    9393,   21143,  -25938,   -3162,   -2529},
678 {  20672,   18894,  -13939,    6990,   -8260,   15811},
679 { -23818,   11183,  -13639,   11868,   16045,    2630},
680 {  18361,  -10220,     829,     856,   -1010,     157},
681 {  14400,   -4678,    5153,  -13290,  -27434,  -11028},
682 {  21613,   11256,   17453,    7604,   13130,    -484},
683 {      7,    1236,     573,    4214,    5576,   -3081},
684 {    916,   -9092,    1285,   -8958,    1185,  -28699},
685 {  21587,   23695,   19116,   -2885,  -14282,   -8438},
686 {  23414,   -6161,   12978,    3061,   -9351,    2236},
687 {  -3070,   -7344,  -20140,    5788,     582,    -551},
688 {  -3993,     315,   -7773,    8224,  -28082,  -12465},
689 {  13766,  -15357,   19205,  -20624,   13043,  -19247},
690 {   3777,    -177,    8029,   -1001,   17812,    5162},
691 {  -7308,   -4327,  -18096,    -620,   -1350,   14932},
692 {  14756,   -1221,  -12819,  -14922,    -547,   27125},
693 {   2234,    1708,    2764,    5416,    7986,  -25163},
694 {   2873,    3636,    3992,    5344,   10142,   21259},
695 {   1158,    5379,     508,  -10514,     290,   -1615},
696 {   1114,   24789,   16575,  -25168,    -298,   -2832},
697 {  -1107,   -6144,   -1918,   -7791,   -2971,  -23276},
698 {   4016,   10793,   17317,   -4342,  -20982,   -3383},
699 {  -4494,    -207,   -9951,   -3575,    7947,    1154},
700 {  -7576,    8117,  -14047,   16982,  -26457,  -27540},
701 { -15164,   16096,  -16844,   -8886,  -23720,   15906},
702 {  24922,    5680,   -1874,     420,     132,     117},
703 {   -506,  -19310,    -198,     412,    -311,     752},
704 {  -1906,    3981,   -7688,   16566,  -19291,  -14722},
705 {   -399,    -729,   -3807,   -4196,  -12395,    7639},
706 {   3368,    2330,    9092,   23686,  -10290,   -1705},
707 {  -3148,    2596,   -7986,   14602,   -4807,   16627},
708 {   8057,    1481,      49,   17205,   24869,    7474},
709 { -19304,    -513,   11905,    2346,    5588,    3365},
710 {  -5063,  -21812,   11370,   10896,    4881,     261},
711 {   4794,   20577,    5109,   -6025,   -8049,   -1521},
712 {   8125,  -14756,   20639,  -14918,   23941,   -3650},
713 {  12451,    1381,    3613,    8687,  -24002,    4848},
714 {   6726,   10643,   10086,   25217,  -25159,   -1065},
715 {   6561,   13977,    2911,   21737,   16465,  -26050},
716 {  -1776,    2575,  -19606,  -16800,    3032,    6679},
717 {  15012,  -17910,   -8438,  -21554,  -27111,   11808},
718 {   3448,    -924,  -15913,   -1135,    5126,  -20613},
719 {   7720,    2226,   17463,    5434,   28942,   17552},
720 {   1246,   15614,  -11743,   24618,  -17539,    3272},
721 {   3215,   17950,    2783,    -722,  -22672,    5979},
722 {  -5678,   -3184,  -26087,   26034,    6583,    3302},
723 {  20310,   -3555,   -2715,    -444,   -1487,    1526},
724 { -20640,  -21970,  -12207,  -25793,    8863,   -1036},
725 {  17888,     570,  -16102,    8329,   -2553,   15275},
726 {  -2677,    9950,   -1879,   16477,  -12762,  -29007},
727 {   -120,   -2221,     219,      97,     365,      35},
728 {   1270,    -718,    1480,   -2689,    1930,   -7527},
729 {   1896,    8750,    1906,   18235,  -12692,   -6174},
730 {  -3733,   13713,   -9882,  -15960,   -1376,   -7146},
731 { -10600,    8496,   15967,   -8792,    7532,   20439},
732 {   3041,  -13457,    1032,  -26952,    5787,   24984},
733 {  -4590,   -8220,   -9322,   -6112,  -17243,   25745},
734 { -17808,    6970,    3752,     626,    -114,    2178},
735 {   4449,   -4862,    7054,   -5404,    4738,   -2827},
736 {   4922,    -651,   18939,   -9866,     848,    1886},
737 {   -336,   -5410,    7234,   20444,   -9583,    -600},
738 {    781,  -19474,  -12648,    6634,    1414,     450},
739 {  -3399,  -16770,   11107,   13200,   -5498,   21663},
740 {  -3265,    4859,   -5961,    7530,  -10837,   28086},
741 {  10350,  -12901,   25699,   25640,    -639,     351},
742 {   1163,   18763,   -5466,  -15087,    -145,   -1377},
743 { -14477,   27229,  -31383,  -32653,   21439,   -2894},
744 {  15420,   18823,   22128,   19398,   22583,   13587},
745 { -10674,   10710,    5089,   -4756,     909,  -20760},
746 { -12948,  -20660,    7410,    2722,    3427,   11585},
747 {  -1105,   18374,   19731,   -9650,   22442,   19634},
748 {   -296,   -6798,  -14677,   21603,   19796,   21399},
749 { -19350,   -7501,   25446,   13144,    8588,  -25298},
750 {   3092,  -10618,   20896,    9249,   -3326,    1796},
751 {   -811,    1449,    3106,    4748,   12073,  -14262},
752 { -20720,   14275,   -4332,  -25838,   -5781,  -21149},
753 {  -5132,   10554,  -14020,  -22150,    2840,    -554},
754 {  25533,   17648,   14886,  -21074,    2459,   25142},
755 {  -9370,   -1788,  -12862,   -5870,  -25811,  -11023},
756 {   6698,     819,   10313,     166,   27581,     523},
757 {    101,  -19388,    3413,    9638,      64,     806},
758 {  -2742,  -17931,   -2576,   22818,    8553,    1126},
759 {   2972,   15203,    1792,   25434,   -5728,  -17265},
760 {  -1419,    1604,    4398,   11452,    1731,   23787},
761 {  -5136,    4625,  -10653,   27981,    9897,   -2510},
762 { -10528,  -28033,    2999,   -1530,    -832,    -830},
763 { -11133,  -12511,   22206,   -7243,  -23578,  -21698},
764 {  16935,  -21892,    1861,   -9606,    9432,   19026},
765 {  10277,    9516,   26815,    2010,   -4943,   -9080},
766 {   5547,   -2210,   14270,  -15300,  -19316,    1822},
767 {  -4850,    -783,   -8959,   -3076,  -20056,   -3197},
768 {   8232,   -2794,  -17752,   13308,    3229,    -991},
769 { -12237,   -6581,   10315,   -9552,    2260,  -20648},
770 {  -7000,    5529,   -7553,   -7490,  -10342,  -10266},
771 {   3641,   19479,   -5972,  -19097,  -18570,   12805},
772 {   1283,   -4164,    4198,  -28473,   -2498,    1866},
773 {  16047,   26826,  -13053,   -6316,     985,   -1597},
774 {   -403,   13680,    6457,   25070,   27124,  -20710},
775 { -18070,   -1790,  -24986,    5953,    -954,   26600},
776 { -24224,  -15383,   24788,    1953,   -1136,     187},
777 {  -2289,   12505,  -20738,    -904,   18324,   21258},
778 {   2658,   -6140,   16179,   22276,    -556,    2154},
779 {  -6087,   13950,  -25682,  -27713,    4049,   -4795},
780 { -21452,   26473,   19435,   -9124,     895,     303},
781 { -22200,  -26177,   -6026,   24729,  -22926,   -9030},
782 { -14276,  -15982,   23732,  -22851,    9268,   -3841},
783 {  29482,   21923,   -6213,    1679,   -2059,   -1120},
784 {   -435,    9802,   -3891,   12359,   -4288,  -18971},
785 {  19768,     -86,    2467,    1990,   -1021,   -5354},
786 {  20986,   -8783,   -5329,  -23562,   -4730,    2673},
787 {  -5095,    5605,   -4629,   19150,   26037,  -12259},
788 {    972,    6858,    4551,   27949,   -4025,   -2272},
789 {   6075,   -3260,   -4989,    -373,   -1571,   -3730},
790 {  -7256,  -12992,   -8820,   -5109,   23054,    5054},
791 {    920,    2615,    7912,   -7353,   -4905,   20186},
792 {   -250,    5454,    3140,    6928,  -18723,   -2051},
793 { -10299,   -4372,   19608,    4879,    -661,   -1885},
794 {  14816,   -8603,  -19815,    6135,  -21210,   14108},
795 { -11945,   -2223,    5018,   11892,   22741,     406},
796 { -13184,   -2613,  -13256,  -22433,  -12482,   -8380},
797 {  17066,   25267,   -2273,    5056,    -342,     145},
798 {   8401,  -17683,   19112,   10615,  -19453,   17083},
799 {  20821,   -5700,   12298,  -25598,   10391,    7692},
800 {   4550,   15779,   17338,  -19379,   -4768,    1206},
801 {  -7723,   10836,  -27164,  -11439,    6835,   -1776},
802 {   2542,    3199,    4442,   17513,   -3711,    -914},
803 {  20960,  -16774,   -5814,   11087,     -70,   22961},
804 {   3305,    2919,    6256,   -4800,  -20966,   -3230},
805 {   5924,  -16547,    2183,    2733,    3446,  -23306},
806 {  -6061,    -194,  -13852,  -10971,   19488,    1029},
807 {   4467,   -5964,  -19004,    1519,    -359,     855},
808 {  -1581,   -7607,   22070,  -11580,  -10032,   17102},
809 { -12412,    2553,    4324,   22500,    5751,   12170},
810 { -25127,   17996,   -6384,    1180,    1182,    9622},
811 {  23462,   -8471,   -4392,   -2669,    7638,  -16835},
812 {  -5511,   -2887,  -10757,  -20883,    7246,    1053},
813 {   2703,  -20602,   -7554,    7516,   -7740,    5868},
814 {  20670,   21901,     457,   14969,  -17657,  -11921},
815 {   3603,   -1595,   -2177,    -157,     -43,     605},
816 {   2513,    8954,   10527,   22559,  -16100,  -16041},
817 {   6002,    4951,    6795,   -4862,  -22400,   18849},
818 {   7590,   -1693,  -24688,   -3404,   14169,    1214},
819 {  -4398,   -6663,   -6870,  -10083,  -24596,    9253},
820 {  10468,   17751,   -7748,     147,   -6314,    4419},
821 {  16187,  -16557,   -4119,    4302,    7625,    5409},
822 {   3303,    2735,    7458,  -19902,   -2254,   -3702},
823 {  -2077,   21609,   14870,   12545,   -6081,   -1764},
824 {   4678,   11740,    2859,    6953,    1919,   -3871},
825 {   3522,  -21853,   -2469,  -10453,   18893,  -10742},
826 {   3759,  -10191,   -4866,   -2659,  -17831,   -1242},
827 {  14991,    9351,   11870,   -1573,   -4848,   22549},
828 {   9509,  -27152,   10734,   20851,  -26185,  -17878},
829 {  -7170,   -1392,  -19495,   12746,    8198,   -1988},
830 {   1883,   28158,    -846,   -7235,     249,     233},
831 {  -7200,     669,    -371,   -2948,   23234,   -5635},
832 {   3141,     288,    3223,   -1258,     -98,  -27607},
833 {  17373,  -23235,    5110,  -11199,   -2574,  -11487},
834 {  -4928,    1518,   -5456,     670,  -18278,    1951},
835 {  10334,  -19865,   -4649,     361,    -160,    -923},
836 {  18732,   14264,   -3155,   -7485,   -3328,    5959},
837 {  -3614,   21077,    7276,    3536,    8121,   -1528},
838 {  -8422,     500,  -19182,   18929,   26392,   -1039},
839 {  15639,   25668,    8375,    1903,    1945,  -11979},
840 {  -2716,    3389,   26850,   -4587,    1803,      22},
841 {   1177,    -655,    1233,   -2128,    7844,    1767},
842 {   -761,    8209,  -19290,   -4593,    1923,    -343},
843 {   -689,   -3530,   -3267,   -3804,   -2753,   18566},
844 {  -2110,    1962,   -1353,   16643,    2765,  -23102},
845 {   -433,    4905,     302,   13016,   15933,   -5905},
846 {   3203,    4126,   11181,   -5496,   -2529,   -1160},
847 {  -1091,   -6469,   -1415,    5682,    -268,     583},
848 {  -9405,  -19572,    6216,    1658,     993,     -75},
849 {  -1695,   -4504,   -2289,   -4088,   -6556,  -16577},
850 {   4760,    -892,  -10902,    6516,   24199,   -6011},
851 {   -253,    1000,      63,     -81,    -115,    -382},
852 {  -1333,   24224,    -698,   -4667,   -2801,  -19144},
853 {   -876,  -28866,  -21873,   12677,   -6344,    3235},
854 {  16847,   21145,  -26172,   -3183,    -396,     230},
855 {  18296,   -7790,  -12857,    -679,   -1473,       5},
856 { -10488,   11429,   25805,   -1122,    1401,    -438},
857 {   3782,   -7429,   26720,   17567,   19257,   12542},
858 {   6332,    -746,   12789,    9316,  -22542,   -5354},
859 {   3418,  -22728,   26978,   18303,    1076,     956},
860 { -27315,   -2988,     920,     235,    2233,      81},
861 {   6199,    5296,   16093,   14768,   -8429,   -1112},
862 {  -6432,   19244,    9921,   -3253,    1278,    -954},
863 {  24213,    2049,  -22931,    2585,   -2410,   -4216},
864 {   9286,   14282,  -19735,   -3985,   -2344,    1028},
865 { -20128,   17993,   -9458,   23012,  -16983,    8625},
866 {  -6896,  -20730,    3762,   17415,   22341,   19024},
867 {    842,   24181,   25062,   -5839,     -78,     937},
868 {   -621,   19722,  -24204,   -1962,  -14854,     -56},
869 {  22766,   -5119,   17365,   23868,  -19480,   -6558},
870 {  -2158,   17490,  -21435,    3340,  -12819,  -20295},
871 {  -9621,   17325,     715,    2265,   -4123,    -492},
872 {   9156,   12947,   27303,  -21175,   -6072,   -9457},
873 { -13164,  -23269,  -14006,   -4184,    6978,       2},
874 {    938,  -13381,    3520,  -24297,   22902,   19589},
875 {  -4911,  -19774,   19764,   -9310,  -12650,    3819},
876 {  -5462,   -4249,   -6987,   -6260,  -13943,  -25150},
877 {   9341,   10369,  -13862,   -6704,   22556,    -519},
878 {   6651,   18768,   -4855,   12570,   14730,  -10209},
879 {   -823,   18119,     398,   -1582,    -116,    -363},
880 {  -6935,  -12694,  -28392,    8552,    6961,    -239},
881 {  -2602,   -4704,   -1021,    2015,    5129,   23670},
882 { -12559,   -8190,  -25028,   18544,   14179,    1663},
883 {   3813,   21036,   -9620,   -5051,   -1800,   -1087},
884 { -22057,   16675,   14960,    9459,    2786,   16991},
885 { -26040,  -19318,   -6414,    1104,    5798,  -18039},
886 {  -1737,   24825,   10417,  -11087,     896,   -5273},
887 {  -1855,   11661,   -2803,   24809,  -21435,  -19792},
888 { -23473,  -16729,   -5782,    5643,    2636,    4940},
889 {  -1724,    4388,  -26673,  -13695,   10570,  -25895},
890 {  15358,  -19496,   26242,  -18493,    1736,    8054},
891 {   5684,   20890,    4091,  -19100,  -14588,  -10468},
892 {  17260,  -16291,   14859,  -17711,  -19174,   12435},
893 { -27185,  -12573,    6743,    -562,     976,    -257},
894 {  12395,   -8618,  -22248,  -19843,   11013,    7762},
895 {   3799,   11853,  -27622,   -8473,    1089,   -1495},
896 {   4141,   -2182,  -26720,    -735,    -774,    1469},
897 {   3125,   13762,    4606,   29257,   18771,   -9958},
898 { -17465,   -9445,  -17562,   -2530,   -6435,   -3726},
899 {  -1742,    4351,   -6841,  -19773,    9627,  -10654},
900 {   7251,    3525,   10835,    5601,   25198,  -23348},
901 { -10300,  -17830,     631,   11640,    2044,  -20878},
902 {   -873,   -8502,   -1063,  -15674,  -10693,   14934},
903 { -15957,   28137,    5268,     477,   -1053,    1158},
904 {  -1495,   -8814,   -5764,  -24965,   25988,    7907},
905 {  -1038,    -114,   -2308,   -1319,   -6480,    1472},
906 {   4895,  -17897,  -25850,    5301,    -188,    1581},
907 {   3200,   17225,    4346,   22101,  -18543,   22028},
908 { -10250,     545,  -10932,    2276,  -28070,    8118},
909 {  15343,    2329,    9316,   20537,   14908,   21021},
910 {   6329,    6130,  -24508,     837,   -8637,   -5844},
911 {   7386,    -501,   10503,   20131,   11435,   -4755},
912 {  -2745,   24174,   -9274,   15273,   -8389,   -5835},
913 {   2992,   -2864,    6048,   -7473,   11687,  -19996},
914 {   -883,  -11954,   -9976,  -21829,   -4436,  -27178},
915 {   3458,   19626,    1280,    2597,   19849,    5255},
916 {  -5315,   19133,  -14518,   -8946,   13749,   -1352},
917 {  18642,   17655,   11001,    6817,  -18418,    6336},
918 {  -1697,    2244,   -4640,    3948,  -12890,   -5273},
919 {  20428,   10542,    4170,   -1012,   19439,   21691},
920 {  -2943,  -19735,   -4208,    1320,     909,   -8897},
921 {   9351,   -8066,   -2618,  -12933,   26582,    3507},
922 {   9705,  -22628,    8311,    8167,  -13293,    5608},
923 {   3222,    3749,   -1508,     165,     -52,    -196},
924 {    102,  -22744,   -8832,     903,  -11421,  -14662},
925 {   -120,    5998,   19765,   13401,    3628,    5197},
926 {   8528,    5827,   -1066,     774,     -39,    -166},
927 {   9411,   -9476,    9581,  -13004,   24456,   24900},
928 {  17878,    2235,  -21639,   20478,    4716,   -7190},
929 {  -2482,    9511,    1611,  -21943,   14230,   -1289},
930 {   9288,   -2291,   23215,   -3452,  -10842,      11},
931 {   9496,    3041,    5130,   -3890,  -21219,  -22589},
932 {  14262,   -9838,   20195,   14019,      91,  -17200},
933 { -18591,     980,      17,     821,     120,    -574},
934 {  12285,  -19269,   13742,   16373,    -161,    6025},
935 {  -3364,    1530,   -4005,    2454,  -10872,  -23839},
936 {    105,    5085,    -260,    5790,    -588,   19170},
937 {   4121,    4169,   13439,   14644,   20899,    7434},
938 {   -175,   13101,   -3704,   23233,    3907,   10106},
939 {  -6101,   23467,    5204,   -1341,    1599,   13174},
940 {  -3217,   -3494,   15117,   -8387,  -11762,   -4750},
941 {   1146,    4675,  -19378,   14917,   -5091,     249},
942 { -21506,   10136,  -16473,  -13305,   18382,   -8601},
943 {    628,    2447,    3344,    3130,   -5115,     119},
944 {  17900,  -22422,  -17633,   21967,  -16293,   -7676},
945 {  16863,   24214,    5612,   -3858,    -809,    3822},
946 {  -2291,   10091,   -2360,  -25109,   -1226,     312},
947 {   2957,   11256,   26745,  -13266,   -3455,   -1128},
948 { -19762,   -2708,    4604,    6355,    1638,   25501},
949 { -19593,   -7753,    3159,     -85,    -489,   -1855},
950 {    814,   12510,   19077,   -4681,   -2610,   -1474},
951 { -23408,  -19027,    8137,   19878,    7912,    -282},
952 {    839,  -19652,   11927,   27278,   -3211,    2266},
953 {   4020,   -1110,    8226,   -1274,   20922,   25060},
954 {  26576,     325,   -8693,    -232,   -2218,    -699},
955 { -11293,   -4200,    1805,   -6673,  -22940,   -1339},
956 {  -2005,  -15886,   -1047,  -27687,  -13235,   14370},
957 { -22073,    1949,   13175,  -15656,   -1846,    8055},
958 {   3039,   12025,    7132,  -24632,     413,   -2347},
959 { -24048,    -206,   12459,   -6654,    -417,  -10091},
960 {  18179,  -23688,  -20515,  -16396,    7230,     763},
961 {   5659,   -5085,   13878,  -23729,  -11077,  -19587},
962 {  11340,     501,   25040,    7616,  -19658,    1605},
963 { -26650,    8878,   10544,     417,    1299,     261},
964 {  14460,   11369,   -3263,    9990,    8194,   18111},
965 {   1355,  -20838,   -9196,  -16060,   -8559,    -730},
966 {  -1918,  -20937,  -18293,   -2461,   -2651,    4316},
967 {  -2810,   24521,  -10996,  -25721,     308,   -1234},
968 {  -9075,  -17280,   -1833,  -29342,  -24213,  -16631},
969 {  -2843,   10165,   -5339,   -2888,   21858,  -21340},
970 { -15832,   14849,  -23780,    5184,   10113,  -20639},
971 { -19535,  -11361,    8413,    1486,  -23658,   -5759},
972 {  -7512,    1027,  -20794,   13732,   19892,  -21934},
973 { -12132,   -7022,  -19175,   -8840,   22125,  -16490},
974 {   1937,    5210,   -6318,  -23788,   13141,   11082},
975 {   -205,    6036,    -380,    8658,    -233,   28020},
976 {  -5523,    7477,    7635,   23595,    9763,   -2590},
977 {  21658,  -28313,   -3086,    -300,   -1032,    1744},
978 { -22352,   16646,     208,    6665,  -17400,   -3028},
979 {  18482,    9336,   -2737,  -19372,     407,   -4389},
980 {  -4913,  -17370,   18819,  -17654,   13416,   15232},
981 {   7749,    6368,   23135,  -18174,    7584,   -4248},
982 {  -1489,   -6523,     586,  -10157,   14964,   25568},
983 {   3844,   -6156,    4897,  -13045,  -22526,    5647},
984 {  -8491,   -2105,  -24774,     905,   -9326,    1456},
985 {  -3040,   -1476,    1166,   -4428,   11236,    9204},
986 {   3397,   -1451,   13598,  -15841,   24540,    5819},
987 {   8483,   -2993,   21547,  -16916,    7741,   24018},
988 { -14932,  -23758,   -5332,   -6664,   -4497,   13267},
989 {  19379,   12916,   -2142,    -737,   21100,  -22101},
990 {   3393,   -4629,    5735,  -18913,   -6969,    2687},
991 {   1148,  -16147,  -21433,  -28095,    -630,  -14449},
992 {   7300,     672,   18530,  -17452,  -10149,     351},
993 {  11356,  -10974,   17212,    4624,     145,   17791},
994 {   -711,   -3479,   -2238,   15887,    2027,       0},
995 { -28048,    1794,    -593,   -2758,  -21852,   11535},
996 { -19683,    4937,   22004,   21523,   -3148,    1790},
997 {    813,    8231,    2633,   11981,   -3043,   22201},
998 {   8952,  -24760,    -690,   14873,   -2366,   -5372},
999 {   8406,   -5439,    -274,    -642,    -145,     778},
1000 {  -6605,    7258,   20780,  -23507,  -18625,   22782},
1001 { -22896,  -25488,   10020,   -1614,    1508,   -1393},
1002 {   7607,     407,  -24678,  -16385,   -1804,   -4699},
1003 { -10592,  -19139,   10462,   -3747,    8721,   -6919},
1004 {  13010,    5292,   -6230,   -4884,  -20904,   -1797},
1005 {  16891,  -13770,    -465,   19343,  -10741,  -12959},
1006 {  25193,  -14799,   -5681,    -521,    -321,   -1211},
1007 {   6917,   -3093,   20183,  -26903,  -12026,    1295},
1008 {    305,    1992,   19457,    -985,      25,    -521},
1009 {   6707,   -3698,    8365,   -8687,   21921,  -27166},
1010 {   4668,    5997,    7117,   11696,   24401,  -10794},
1011 {    744,   -9416,   19893,    1963,    7922,   -9824},
1012 {   3430,   21282,   -1736,   10844,    8821,   27015},
1013 {  -8813,    1521,  -24038,    1651,    7838,   -1208},
1014 {   3911,  -11221,    3273,  -12541,    7168,   18402},
1015 {  21642,    9117,  -11536,   -5256,    7077,    2382},
1016 {    100,    3817,   -6713,    1244,    1518,    -321},
1017 {   7946,  -18670,   10667,   -4866,     727,     776},
1018 { -15883,   -8150,   -2087,   22739,    1567,   -3482},
1019 {   4380,   -2735,    8469,   -7025,  -11424,    1317},
1020 {  26970,    4393,    7665,   17561,    -714,     650},
1021 { -16191,    -835,    8365,    1795,  -14314,   16297},
1022 {   4504,  -10048,    7662,  -26690,  -17428,    2580},
1023 {     48,   -3984,     564,   -5871,    2658,  -18658},
1024 {  12579,  -26016,  -15642,    2672,   -1347,    -887},
1025 {  -4950,    4208,   -6811,    2569,  -20621,   -8658},
1026 {  -1836,  -14818,   -5571,  -23322,  -14800,   25867},
1027 {   5434,  -28139,   -2357,   -2883,    -570,    2431},
1028 {  13096,   -2771,   24994,  -12496,  -24723,   -1025},
1029 {  -5676,   -4339,    1908,   18628,  -21323,   17366},
1030 {  27660,  -27897,  -15409,    1436,   -7112,   -2241},
1031 {   8019,    3847,   24568,    -469,    9674,   10683},
1032 {   -903,  -10149,    1801,  -21260,    4795,   -8751},
1033 {   1122,   -9582,    2625,   22791,     956,     882},
1034 {   7876,   19075,   -9900,  -24266,    7496,    9277},
1035 {    980,  -26764,   -5386,    5396,    1086,    1648},
1036 {  28838,   -1270,    -447,       5,    -429,     -20},
1037 { -15283,    6132,   22812,    1252,   -9963,     511},
1038 {    851,    7925,    -457,  -12210,    4261,    7579},
1039 {  -4530,    8452,   -1246,   14501,  -24951,   -5760},
1040 { -17814,  -10727,    9887,  -23929,  -13432,    1878},
1041 { -15049,   10165,   16491,  -14603,  -11712,  -21156},
1042 {  -3317,     840,   -5683,   22413,    1994,     586},
1043 {  23158,   -5788,  -15043,  -10372,   -9271,  -13523},
1044 {   -773,   -9509,   -3993,  -24264,    8463,    5804},
1045 {  -8545,    -703,  -12440,   -3985,  -25122,  -28147},
1046 { -16659,   16001,    2746,    1611,    5097,   -1043},
1047 {     41,   -7181,   19903,   31555,  -32237,   13927},
1048 {  -5658,     845,  -12774,    5705,   16695,     -86},
1049 {   5282,   14875,   27026,   21124,   15776,  -10477},
1050 {  14712,   19648,  -11487,  -13361,  -20196,  -15229},
1051 {   8597,   -9138,    -626,   10891,   -6015,    6346},
1052 {  -1488,   -1272,   -1479,   -1303,   -3704,   -5485},
1053 {  -3370,   17871,   -6604,   24930,   25886,   -3127},
1054 {   8416,   27783,   -1385,    5350,   -4260,   19993},
1055 {   5688,     362,   17246,    3809,   -3246,    1088},
1056 {   -105,  -29607,    2747,   15223,    -167,    3722},
1057 {   3502,   -3195,    8602,    7772,   -1566,    -915},
1058 {   -491,    3257,   -2423,    5522,   20606,    -100},
1059 { -13948,  -11368,  -15375,  -21866,   -8520,   12221},
1060 {   -616,    2424,   -2023,    4398,   -3805,    8108},
1061 {  -7204,   21043,   21211,   -9395,  -19391,     896},
1062 {  -5737,  -15160,  -21298,   17066,   -1006,    -366},
1063 {   6261,    3240,  -11937,  -16213,  -15820,    6581},
1064 {  -3155,   24796,    2733,   -1257,    -875,   -1597},
1065 { -20469,   11094,   24071,   -8987,   14136,    2220},
1066 { -14106,   11959,  -22495,    4135,   -1055,   -5420},
1067 {    801,   -2655,      60,   -5324,    -790,    5937},
1068 {  -7372,   -1764,  -22433,  -26060,   21707,    4178},
1069 {  -5715,   -6648,  -14908,    1325,  -24044,    1493},
1070 {  -6024,  -12488,   23930,    2950,    1601,    1173},
1071 {  19067,   17630,   17929,  -10654,   10928,   -4958},
1072 {   3231,   -3284,   27336,    4174,   -1683,     497},
1073 };
1074
1075 const int16_t (* const ff_eac3_mantissa_vq[8])[6] = {
1076     NULL,
1077     vq_hebap1,
1078     vq_hebap2,
1079     vq_hebap3,
1080     vq_hebap4,
1081     vq_hebap5,
1082     vq_hebap6,
1083     vq_hebap7,
1084 };
1085
1086 /**
1087  * Table E2.14 Frame Exponent Strategy Combinations
1088  */
1089 const uint8_t ff_eac3_frm_expstr[32][6] = {
1090 {    EXP_D15,  EXP_REUSE,  EXP_REUSE,  EXP_REUSE,  EXP_REUSE,  EXP_REUSE},
1091 {    EXP_D15,  EXP_REUSE,  EXP_REUSE,  EXP_REUSE,  EXP_REUSE,    EXP_D45},
1092 {    EXP_D15,  EXP_REUSE,  EXP_REUSE,  EXP_REUSE,    EXP_D25,  EXP_REUSE},
1093 {    EXP_D15,  EXP_REUSE,  EXP_REUSE,  EXP_REUSE,    EXP_D45,    EXP_D45},
1094 {    EXP_D25,  EXP_REUSE,  EXP_REUSE,    EXP_D25,  EXP_REUSE,  EXP_REUSE},
1095 {    EXP_D25,  EXP_REUSE,  EXP_REUSE,    EXP_D25,  EXP_REUSE,    EXP_D45},
1096 {    EXP_D25,  EXP_REUSE,  EXP_REUSE,    EXP_D45,    EXP_D25,  EXP_REUSE},
1097 {    EXP_D25,  EXP_REUSE,  EXP_REUSE,    EXP_D45,    EXP_D45,    EXP_D45},
1098 {    EXP_D25,  EXP_REUSE,    EXP_D15,  EXP_REUSE,  EXP_REUSE,  EXP_REUSE},
1099 {    EXP_D25,  EXP_REUSE,    EXP_D25,  EXP_REUSE,  EXP_REUSE,    EXP_D45},
1100 {    EXP_D25,  EXP_REUSE,    EXP_D25,  EXP_REUSE,    EXP_D25,  EXP_REUSE},
1101 {    EXP_D25,  EXP_REUSE,    EXP_D25,  EXP_REUSE,    EXP_D45,    EXP_D45},
1102 {    EXP_D25,  EXP_REUSE,    EXP_D45,    EXP_D25,  EXP_REUSE,  EXP_REUSE},
1103 {    EXP_D25,  EXP_REUSE,    EXP_D45,    EXP_D25,  EXP_REUSE,    EXP_D45},
1104 {    EXP_D25,  EXP_REUSE,    EXP_D45,    EXP_D45,    EXP_D25,  EXP_REUSE},
1105 {    EXP_D25,  EXP_REUSE,    EXP_D45,    EXP_D45,    EXP_D45,    EXP_D45},
1106 {    EXP_D45,    EXP_D15,  EXP_REUSE,  EXP_REUSE,  EXP_REUSE,  EXP_REUSE},
1107 {    EXP_D45,    EXP_D15,  EXP_REUSE,  EXP_REUSE,  EXP_REUSE,    EXP_D45},
1108 {    EXP_D45,    EXP_D25,  EXP_REUSE,  EXP_REUSE,    EXP_D25,  EXP_REUSE},
1109 {    EXP_D45,    EXP_D25,  EXP_REUSE,  EXP_REUSE,    EXP_D45,    EXP_D45},
1110 {    EXP_D45,    EXP_D25,  EXP_REUSE,    EXP_D25,  EXP_REUSE,  EXP_REUSE},
1111 {    EXP_D45,    EXP_D25,  EXP_REUSE,    EXP_D25,  EXP_REUSE,    EXP_D45},
1112 {    EXP_D45,    EXP_D25,  EXP_REUSE,    EXP_D45,    EXP_D25,  EXP_REUSE},
1113 {    EXP_D45,    EXP_D25,  EXP_REUSE,    EXP_D45,    EXP_D45,    EXP_D45},
1114 {    EXP_D45,    EXP_D45,    EXP_D15,  EXP_REUSE,  EXP_REUSE,  EXP_REUSE},
1115 {    EXP_D45,    EXP_D45,    EXP_D25,  EXP_REUSE,  EXP_REUSE,    EXP_D45},
1116 {    EXP_D45,    EXP_D45,    EXP_D25,  EXP_REUSE,    EXP_D25,  EXP_REUSE},
1117 {    EXP_D45,    EXP_D45,    EXP_D25,  EXP_REUSE,    EXP_D45,    EXP_D45},
1118 {    EXP_D45,    EXP_D45,    EXP_D45,    EXP_D25,  EXP_REUSE,  EXP_REUSE},
1119 {    EXP_D45,    EXP_D45,    EXP_D45,    EXP_D25,  EXP_REUSE,    EXP_D45},
1120 {    EXP_D45,    EXP_D45,    EXP_D45,    EXP_D45,    EXP_D25,  EXP_REUSE},
1121 {    EXP_D45,    EXP_D45,    EXP_D45,    EXP_D45,    EXP_D45,    EXP_D45},
1122 };
1123
1124 /**
1125  * Table E2.16 Default Coupling Banding Structure
1126  */
1127 const uint8_t ff_eac3_default_cpl_band_struct[18] =
1128 { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1 };
1129
1130 /**
1131  * Table of bin locations for rematrixing bands
1132  * reference: Section 7.5.2 Rematrixing : Frequency Band Definitions
1133  */
1134 const uint8_t ff_ac3_rematrix_band_tab[5] = { 13, 25, 37, 61, 253 };