h261: Signal freeze picture release for intra frames
[ffmpeg.git] / libavcodec / hq_hqadata.c
1 /*
2  * Canopus HQ/HQA decoder
3  *
4  * This file is part of Libav.
5  *
6  * Libav is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2.1 of the License, or (at your option) any later version.
10  *
11  * Libav is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public
17  * License along with Libav; if not, write to the Free Software
18  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19  */
20
21 #include "hq_hqa.h"
22
23 #define MAT_SIZE 64
24
25 static const uint8_t cbp_vlc_bits[16] = {
26     0x04, 0x1C, 0x1D, 0x09, 0x1E, 0x0B, 0x1B, 0x08,
27     0x1F, 0x1A, 0x0C, 0x07, 0x0A, 0x06, 0x05, 0x00,
28 };
29
30 static const uint8_t cbp_vlc_lens[16] = {
31     4, 5, 5, 4, 5, 4, 5, 4, 5, 5, 4, 4, 4, 4, 4, 2,
32 };
33
34 static const int32_t qmat00[MAT_SIZE] = {
35     0x0040000, 0x000B18B, 0x00058C5, 0x000B1B1, 0x00082D3, 0x000B1B1,
36     0x000A953, 0x000827B, 0x00104F7, 0x000A953, 0x0009000, 0x000EADD,
37     0x001037B, 0x000756E, 0x0009000, 0x000776D, 0x000696A, 0x000E987,
38     0x000E987, 0x000D2D4, 0x000776D, 0x0016BAF, 0x0014B4C, 0x001A21A,
39     0x001BA75, 0x001A21A, 0x000A5A6, 0x000B5D8, 0x000611E, 0x000811D,
40     0x00150B6, 0x00181B0, 0x00181B0, 0x00150B6, 0x0020474, 0x0018477,
41     0x0022710, 0x001FD1E, 0x001366C, 0x0015000, 0x001366C, 0x000FE8F,
42     0x00044E2, 0x0008A6D, 0x000EA30, 0x0010E47, 0x0010E47, 0x001D460,
43     0x00229B2, 0x001FCB2, 0x0019FA3, 0x000D94C, 0x000CFD2, 0x0007F2D,
44     0x000DEED, 0x0014D5E, 0x0029ABD, 0x0037BB5, 0x002D16B, 0x001FECE,
45     0x000B45B, 0x0011521, 0x0022A42, 0x0012B9C,
46 };
47
48 static const int32_t qmat01[MAT_SIZE] = {
49     0x0040000, 0x000B18B, 0x00058C5, 0x000B1B1, 0x00082D3, 0x000B1B1,
50     0x000EB2D, 0x000B53A, 0x0016A73, 0x000EB2D, 0x000D000, 0x0014632,
51     0x0016314, 0x000A319, 0x000D000, 0x000A36D, 0x0009041, 0x0014BDA,
52     0x0014BDA, 0x0012081, 0x000A36D, 0x0016BAF, 0x0014B4C, 0x001A21A,
53     0x001BA75, 0x001A21A, 0x000A5A6, 0x000B5D8, 0x000611E, 0x000811D,
54     0x00150B6, 0x00181B0, 0x00181B0, 0x00150B6, 0x0020474, 0x0018477,
55     0x0045A60, 0x004058C, 0x0026CD9, 0x002A000, 0x0026CD9, 0x00202C6,
56     0x0008B4C, 0x00114D9, 0x001D977, 0x0021C8F, 0x0021C8F, 0x003B2EF,
57     0x0045365, 0x007FD2A, 0x00675E5, 0x0036A1F, 0x0033AF3, 0x001FF4B,
58     0x001C010, 0x0029E24, 0x0053C47, 0x007003E, 0x005A9C7, 0x004024C,
59     0x0016A72, 0x0022A42, 0x0045485, 0x0025738,
60 };
61
62 static const int32_t qmat02[MAT_SIZE] = {
63     0x0040000, 0x0016315, 0x000B18B, 0x0016363, 0x00105A6, 0x0016363,
64     0x00152A7, 0x00104F7, 0x00209EE, 0x00152A7, 0x0012000, 0x001D5B9,
65     0x00206F6, 0x000EADD, 0x0012000, 0x000EEDA, 0x000D2D4, 0x001D30D,
66     0x001D30D, 0x001A5A9, 0x000EEDA, 0x002D75E, 0x0029698, 0x0034433,
67     0x00374EB, 0x0034433, 0x0014B4C, 0x0016BAF, 0x000C23C, 0x001023A,
68     0x002A16C, 0x0030360, 0x0030360, 0x002A16C, 0x00408E9, 0x00308EF,
69     0x0044E21, 0x003FA3C, 0x0026CD9, 0x002A000, 0x0026CD9, 0x001FD1E,
70     0x00089C4, 0x00114D9, 0x001D460, 0x0021C8F, 0x0021C8F, 0x003A8C0,
71     0x0045365, 0x003F964, 0x0033F47, 0x001B297, 0x0019FA3, 0x000FE59,
72     0x001BDDA, 0x0029ABD, 0x0053579, 0x006F76A, 0x005A2D7, 0x003FD9D,
73     0x00168B6, 0x0022A42, 0x0045485, 0x0025738,
74 };
75
76 static const int32_t qmat03[MAT_SIZE] = {
77     0x0040000, 0x0016315, 0x000B18B, 0x0016363, 0x00105A6, 0x0016363,
78     0x001D65A, 0x0016A73, 0x002D4E7, 0x001D65A, 0x001A000, 0x0028C65,
79     0x002C628, 0x0014632, 0x001A000, 0x00146D9, 0x0012081, 0x00297B5,
80     0x00297B5, 0x0024102, 0x00146D9, 0x002D75E, 0x0029698, 0x0034433,
81     0x00374EB, 0x0034433, 0x0014B4C, 0x0016BAF, 0x000C23C, 0x001023A,
82     0x002A16C, 0x0030360, 0x0030360, 0x002A16C, 0x00408E9, 0x00308EF,
83     0x008B4C0, 0x0080B18, 0x004D9B2, 0x0054000, 0x004D9B2, 0x004058C,
84     0x0011698, 0x00229B2, 0x003B2EF, 0x004391E, 0x004391E, 0x00765DD,
85     0x008A6CA, 0x00FFA54, 0x00CEBCA, 0x006D43E, 0x00675E5, 0x003FE95,
86     0x003801F, 0x0053C47, 0x00A788E, 0x00E007C, 0x00B538D, 0x0080498,
87     0x002D4E3, 0x0045485, 0x008A90A, 0x004AE71,
88 };
89
90 static const int32_t qmat04[MAT_SIZE] = {
91     0x0040000, 0x00214A0, 0x0010A50, 0x0021514, 0x0018879, 0x0021514,
92     0x001FBFA, 0x0018772, 0x0030EE5, 0x001FBFA, 0x001B000, 0x002C096,
93     0x0030A71, 0x001604B, 0x001B000, 0x0016647, 0x0013C3F, 0x002BC94,
94     0x002BC94, 0x002787D, 0x0016647, 0x004430D, 0x003E1E4, 0x004E64D,
95     0x0052F60, 0x004E64D, 0x001F0F2, 0x0022187, 0x001235A, 0x0018357,
96     0x003F223, 0x0048510, 0x0048510, 0x003F223, 0x0060D5D, 0x0048D66,
97     0x0067531, 0x005F75A, 0x003A345, 0x003F000, 0x003A345, 0x002FBAD,
98     0x000CEA6, 0x0019F46, 0x002BE90, 0x0032AD6, 0x0032AD6, 0x0057D20,
99     0x0067D17, 0x005F616, 0x004DEEA, 0x0028BE3, 0x0026F75, 0x0017D86,
100     0x0029CC8, 0x003E81B, 0x007D036, 0x00A731F, 0x0087442, 0x005FC6B,
101     0x0021D11, 0x0033F64, 0x0067EC7, 0x00382D5,
102 };
103
104 static const int32_t qmat05[MAT_SIZE] = {
105     0x0040000, 0x00214A0, 0x0010A50, 0x0021514, 0x0018879, 0x0021514,
106     0x002C186, 0x0021FAD, 0x0043F5A, 0x002C186, 0x0027000, 0x003D297,
107     0x004293C, 0x001E94C, 0x0027000, 0x001EA46, 0x001B0C2, 0x003E38F,
108     0x003E38F, 0x0036183, 0x001EA46, 0x004430D, 0x003E1E4, 0x004E64D,
109     0x0052F60, 0x004E64D, 0x001F0F2, 0x0022187, 0x001235A, 0x0018357,
110     0x003F223, 0x0048510, 0x0048510, 0x003F223, 0x0060D5D, 0x0048D66,
111     0x00D0F1F, 0x00C10A4, 0x007468B, 0x007E000, 0x007468B, 0x0060852,
112     0x001A1E4, 0x0033E8C, 0x0058C66, 0x00655AD, 0x00655AD, 0x00B18CC,
113     0x00CFA2F, 0x017F77F, 0x01361B0, 0x00A3E5C, 0x009B0D8, 0x005FDE0,
114     0x005402F, 0x007DA6B, 0x00FB4D5, 0x01500BA, 0x010FD54, 0x00C06E5,
115     0x0043F55, 0x0067EC7, 0x00CFD8F, 0x00705A9,
116 };
117
118 static const int32_t qmat06[MAT_SIZE] = {
119     0x0040000, 0x002C62A, 0x0016315, 0x002C6C5, 0x0020B4C, 0x002C6C5,
120     0x002A54E, 0x00209EE, 0x00413DC, 0x002A54E, 0x0024000, 0x003AB73,
121     0x0040DEC, 0x001D5B9, 0x0024000, 0x001DDB4, 0x001A5A9, 0x003A61B,
122     0x003A61B, 0x0034B52, 0x001DDB4, 0x005AEBC, 0x0052D2F, 0x0068867,
123     0x006E9D6, 0x0068867, 0x0029698, 0x002D75E, 0x0018477, 0x0020474,
124     0x00542D9, 0x00606C0, 0x00606C0, 0x00542D9, 0x00811D1, 0x00611DE,
125     0x0089C42, 0x007F478, 0x004D9B2, 0x0054000, 0x004D9B2, 0x003FA3C,
126     0x0011388, 0x00229B2, 0x003A8C0, 0x004391E, 0x004391E, 0x0075180,
127     0x008A6CA, 0x007F2C9, 0x0067E8E, 0x003652F, 0x0033F47, 0x001FCB2,
128     0x0037BB5, 0x0053579, 0x00A6AF3, 0x00DEED4, 0x00B45AE, 0x007FB39,
129     0x002D16B, 0x0045485, 0x008A90A, 0x004AE71,
130 };
131
132 static const int32_t qmat07[MAT_SIZE] = {
133     0x0040000, 0x002C62A, 0x0016315, 0x002C6C5, 0x0020B4C, 0x002C6C5,
134     0x003ACB3, 0x002D4E7, 0x005A9CE, 0x003ACB3, 0x0034000, 0x00518CA,
135     0x0058C50, 0x0028C65, 0x0034000, 0x0028DB3, 0x0024102, 0x0052F69,
136     0x0052F69, 0x0048204, 0x0028DB3, 0x005AEBC, 0x0052D2F, 0x0068867,
137     0x006E9D6, 0x0068867, 0x0029698, 0x002D75E, 0x0018477, 0x0020474,
138     0x00542D9, 0x00606C0, 0x00606C0, 0x00542D9, 0x00811D1, 0x00611DE,
139     0x011697F, 0x0101631, 0x009B363, 0x00A8000, 0x009B363, 0x0080B18,
140     0x0022D30, 0x0045365, 0x00765DD, 0x008723C, 0x008723C, 0x00ECBBB,
141     0x0114D94, 0x01FF4A9, 0x019D795, 0x00DA87B, 0x00CEBCA, 0x007FD2A,
142     0x007003E, 0x00A788E, 0x014F11C, 0x01C00F8, 0x016A71B, 0x0100931,
143     0x005A9C7, 0x008A90A, 0x0115214, 0x0095CE2,
144 };
145
146 static const int32_t qmat08[MAT_SIZE] = {
147     0x0040000, 0x00377B5, 0x001BBDA, 0x0037876, 0x0028E1E, 0x0037876,
148     0x0034EA1, 0x0028C69, 0x00518D3, 0x0034EA1, 0x002D000, 0x004964F,
149     0x0051167, 0x0024B28, 0x002D000, 0x0025521, 0x0020F13, 0x0048FA1,
150     0x0048FA1, 0x0041E26, 0x0025521, 0x0071A6B, 0x006787B, 0x0082A80,
151     0x008A44B, 0x0082A80, 0x0033C3E, 0x0038D36, 0x001E595, 0x0028591,
152     0x006938F, 0x0078870, 0x0078870, 0x006938F, 0x00A1646, 0x0079655,
153     0x00AC352, 0x009F196, 0x006101E, 0x0069000, 0x006101E, 0x004F8CB,
154     0x001586A, 0x002B41F, 0x00492F0, 0x0054765, 0x0054765, 0x00925E0,
155     0x00AD07C, 0x009EF7B, 0x0081E31, 0x0043E7A, 0x0040F19, 0x0027BDF,
156     0x0045AA2, 0x00682D8, 0x00D05B0, 0x0116A89, 0x00E1719, 0x009FA07,
157     0x00385C6, 0x00569A6, 0x00AD34C, 0x005DA0D,
158 };
159
160 static const int32_t qmat09[MAT_SIZE] = {
161     0x0040000, 0x00377B5, 0x001BBDA, 0x0037876, 0x0028E1E, 0x0037876,
162     0x00497E0, 0x0038A21, 0x0071441, 0x00497E0, 0x0041000, 0x0065EFC,
163     0x006EF64, 0x0032F7E, 0x0041000, 0x003311F, 0x002D143, 0x0067B44,
164     0x0067B44, 0x005A285, 0x003311F, 0x0071A6B, 0x006787B, 0x0082A80,
165     0x008A44B, 0x0082A80, 0x0033C3E, 0x0038D36, 0x001E595, 0x0028591,
166     0x006938F, 0x0078870, 0x0078870, 0x006938F, 0x00A1646, 0x0079655,
167     0x015C3DF, 0x0141BBD, 0x00C203C, 0x00D2000, 0x00C203C, 0x00A0DDE,
168     0x002B87C, 0x005683E, 0x0093F55, 0x00A8ECA, 0x00A8ECA, 0x0127EA9,
169     0x015A0F9, 0x027F1D3, 0x0204D7A, 0x011129A, 0x01026BD, 0x009FC75,
170     0x008C04E, 0x00D16B2, 0x01A2D64, 0x0230136, 0x01C50E1, 0x0140B7D,
171     0x0071438, 0x00AD34C, 0x015A699, 0x00BB41A,
172 };
173
174 static const int32_t qmat0A[MAT_SIZE] = {
175     0x0040000, 0x004293F, 0x00214A0, 0x0042A28, 0x00310F1, 0x0042A28,
176     0x003F7F5, 0x0030EE5, 0x0061DCA, 0x003F7F5, 0x0036000, 0x005812C,
177     0x00614E2, 0x002C096, 0x0036000, 0x002CC8E, 0x002787D, 0x0057928,
178     0x0057928, 0x004F0FB, 0x002CC8E, 0x008861A, 0x007C3C7, 0x009CC9A,
179     0x00A5EC1, 0x009CC9A, 0x003E1E4, 0x004430D, 0x00246B3, 0x00306AF,
180     0x007E445, 0x0090A20, 0x0090A20, 0x007E445, 0x00C1ABA, 0x0091ACC,
181     0x00CEA63, 0x00BEEB4, 0x007468B, 0x007E000, 0x007468B, 0x005F75A,
182     0x0019D4C, 0x0033E8C, 0x0057D20, 0x00655AD, 0x00655AD, 0x00AFA40,
183     0x00CFA2F, 0x00BEC2D, 0x009BDD5, 0x00517C6, 0x004DEEA, 0x002FB0B,
184     0x005398F, 0x007D036, 0x00FA06C, 0x014E63E, 0x010E885, 0x00BF8D6,
185     0x0043A21, 0x0067EC7, 0x00CFD8F, 0x00705A9,
186 };
187
188 static const int32_t qmat0B[MAT_SIZE] = {
189     0x0040000, 0x004293F, 0x00214A0, 0x0042A28, 0x00310F1, 0x0042A28,
190     0x005830D, 0x0043F5A, 0x0087EB5, 0x005830D, 0x004E000, 0x007A52F,
191     0x0085278, 0x003D297, 0x004E000, 0x003D48C, 0x0036183, 0x007C71E,
192     0x007C71E, 0x006C307, 0x003D48C, 0x008861A, 0x007C3C7, 0x009CC9A,
193     0x00A5EC1, 0x009CC9A, 0x003E1E4, 0x004430D, 0x00246B3, 0x00306AF,
194     0x007E445, 0x0090A20, 0x0090A20, 0x007E445, 0x00C1ABA, 0x0091ACC,
195     0x01A1E3F, 0x0182149, 0x00E8D15, 0x00FC000, 0x00E8D15, 0x00C10A4,
196     0x00343C8, 0x0067D17, 0x00B18CC, 0x00CAB59, 0x00CAB59, 0x0163198,
197     0x019F45E, 0x02FEEFD, 0x026C35F, 0x0147CB9, 0x01361B0, 0x00BFBBF,
198     0x00A805D, 0x00FB4D5, 0x01F69AB, 0x02A0174, 0x021FAA8, 0x0180DC9,
199     0x0087EAA, 0x00CFD8F, 0x019FB1E, 0x00E0B52,
200 };
201
202 static const int32_t qmat0C[MAT_SIZE] = {
203     0x0040000, 0x004DACA, 0x0026D65, 0x004DBD9, 0x00393C4, 0x004DBD9,
204     0x004A148, 0x0039160, 0x00722C1, 0x004A148, 0x003F000, 0x0066C09,
205     0x007185D, 0x0033604, 0x003F000, 0x00343FB, 0x002E1E8, 0x00662AF,
206     0x00662AF, 0x005C3CF, 0x00343FB, 0x009F1C9, 0x0090F13, 0x00B6EB3,
207     0x00C1936, 0x00B6EB3, 0x0048789, 0x004F8E5, 0x002A7D1, 0x00387CC,
208     0x00934FB, 0x00A8BCF, 0x00A8BCF, 0x00934FB, 0x00E1F2E, 0x00A9F44,
209     0x00F1173, 0x00DEBD1, 0x0087CF7, 0x0093000, 0x0087CF7, 0x006F5E9,
210     0x001E22E, 0x003C8F8, 0x0066750, 0x00763F4, 0x00763F4, 0x00CCEA0,
211     0x00F23E1, 0x00DE8DF, 0x00B5D78, 0x005F111, 0x005AEBC, 0x0037A38,
212     0x006187D, 0x0091D95, 0x0123B29, 0x01861F3, 0x013B9F0, 0x00DF7A4,
213     0x004EE7C, 0x00793E9, 0x00F27D1, 0x0083145,
214 };
215
216 static const int32_t qmat0D[MAT_SIZE] = {
217     0x0040000, 0x004DACA, 0x0026D65, 0x004DBD9, 0x00393C4, 0x004DBD9,
218     0x0066E3A, 0x004F494, 0x009E928, 0x0066E3A, 0x005B000, 0x008EB61,
219     0x009B58C, 0x00475B1, 0x005B000, 0x00477F9, 0x003F1C4, 0x00912F8,
220     0x00912F8, 0x007E388, 0x00477F9, 0x009F1C9, 0x0090F13, 0x00B6EB3,
221     0x00C1936, 0x00B6EB3, 0x0048789, 0x004F8E5, 0x002A7D1, 0x00387CC,
222     0x00934FB, 0x00A8BCF, 0x00A8BCF, 0x00934FB, 0x00E1F2E, 0x00A9F44,
223     0x01E789E, 0x01C26D5, 0x010F9EE, 0x0126000, 0x010F9EE, 0x00E136B,
224     0x003CF14, 0x00791F1, 0x00CF243, 0x00EC7E8, 0x00EC7E8, 0x019E487,
225     0x01E47C3, 0x037EC27, 0x02D3944, 0x017E6D8, 0x0169CA2, 0x00DFB0A,
226     0x00C406D, 0x01252F9, 0x024A5F2, 0x03101B2, 0x027A46F, 0x01C1016,
227     0x009E91C, 0x00F27D1, 0x01E4FA3, 0x010628B,
228 };
229
230 static const int32_t qmat0E[MAT_SIZE] = {
231     0x0040000, 0x0058C54, 0x002C62A, 0x0058D8A, 0x0041697, 0x0058D8A,
232     0x0054A9C, 0x00413DC, 0x00827B8, 0x0054A9C, 0x0048000, 0x00756E5,
233     0x0081BD8, 0x003AB73, 0x0048000, 0x003BB68, 0x0034B52, 0x0074C35,
234     0x0074C35, 0x00696A4, 0x003BB68, 0x00B5D78, 0x00A5A5F, 0x00D10CD,
235     0x00DD3AB, 0x00D10CD, 0x0052D2F, 0x005AEBC, 0x00308EF, 0x00408E9,
236     0x00A85B1, 0x00C0D7F, 0x00C0D7F, 0x00A85B1, 0x01023A3, 0x00C23BB,
237     0x0113883, 0x00FE8EF, 0x009B363, 0x00A8000, 0x009B363, 0x007F478,
238     0x0022710, 0x0045365, 0x0075180, 0x008723C, 0x008723C, 0x00EA300,
239     0x0114D94, 0x00FE591, 0x00CFD1C, 0x006CA5D, 0x0067E8E, 0x003F964,
240     0x006F76A, 0x00A6AF3, 0x014D5E6, 0x01BDDA8, 0x0168B5C, 0x00FF672,
241     0x005A2D7, 0x008A90A, 0x0115214, 0x0095CE2,
242 };
243
244 static const int32_t qmat0F[MAT_SIZE] = {
245     0x0040000, 0x0058C54, 0x002C62A, 0x0058D8A, 0x0041697, 0x0058D8A,
246     0x0075967, 0x005A9CE, 0x00B539C, 0x0075967, 0x0068000, 0x00A3194,
247     0x00B18A0, 0x00518CA, 0x0068000, 0x0051B65, 0x0048204, 0x00A5ED3,
248     0x00A5ED3, 0x0090409, 0x0051B65, 0x00B5D78, 0x00A5A5F, 0x00D10CD,
249     0x00DD3AB, 0x00D10CD, 0x0052D2F, 0x005AEBC, 0x00308EF, 0x00408E9,
250     0x00A85B1, 0x00C0D7F, 0x00C0D7F, 0x00A85B1, 0x01023A3, 0x00C23BB,
251     0x022D2FE, 0x0202C61, 0x01366C7, 0x0150000, 0x01366C7, 0x0101631,
252     0x0045A60, 0x008A6CA, 0x00ECBBB, 0x010E477, 0x010E477, 0x01D9776,
253     0x0229B27, 0x03FE951, 0x033AF2A, 0x01B50F6, 0x019D795, 0x00FFA54,
254     0x00E007C, 0x014F11C, 0x029E239, 0x03801F0, 0x02D4E36, 0x0201262,
255     0x00B538D, 0x0115214, 0x022A428, 0x012B9C3,
256 };
257
258 static const int32_t qmat10[MAT_SIZE] = {
259     0x0040000, 0x006EF69, 0x00377B5, 0x006F0ED, 0x0051C3D, 0x006F0ED,
260     0x0069D43, 0x00518D3, 0x00A31A6, 0x0069D43, 0x005A000, 0x0092C9F,
261     0x00A22CD, 0x004964F, 0x005A000, 0x004AA42, 0x0041E26, 0x0091F43,
262     0x0091F43, 0x0083C4D, 0x004AA42, 0x00E34D6, 0x00CF0F6, 0x0105500,
263     0x0114896, 0x0105500, 0x006787B, 0x0071A6B, 0x003CB2A, 0x0050B23,
264     0x00D271E, 0x00F10DF, 0x00F10DF, 0x00D271E, 0x0142C8B, 0x00F2CAA,
265     0x01586A4, 0x013E32B, 0x00C203C, 0x00D2000, 0x00C203C, 0x009F196,
266     0x002B0D5, 0x005683E, 0x00925E0, 0x00A8ECA, 0x00A8ECA, 0x0124BC0,
267     0x015A0F9, 0x013DEF5, 0x0103C63, 0x0087CF4, 0x0081E31, 0x004F7BD,
268     0x008B544, 0x00D05B0, 0x01A0B5F, 0x022D511, 0x01C2E32, 0x013F40F,
269     0x0070B8D, 0x00AD34C, 0x015A699, 0x00BB41A,
270 };
271
272 static const int32_t qmat11[MAT_SIZE] = {
273     0x0040000, 0x006EF69, 0x00377B5, 0x006F0ED, 0x0051C3D, 0x006F0ED,
274     0x0092FC0, 0x0071441, 0x00E2883, 0x0092FC0, 0x0082000, 0x00CBDF9,
275     0x00DDEC8, 0x0065EFC, 0x0082000, 0x006623F, 0x005A285, 0x00CF687,
276     0x00CF687, 0x00B450B, 0x006623F, 0x00E34D6, 0x00CF0F6, 0x0105500,
277     0x0114896, 0x0105500, 0x006787B, 0x0071A6B, 0x003CB2A, 0x0050B23,
278     0x00D271E, 0x00F10DF, 0x00F10DF, 0x00D271E, 0x0142C8B, 0x00F2CAA,
279     0x02B87BE, 0x028377A, 0x0184078, 0x01A4000, 0x0184078, 0x0141BBD,
280     0x00570F8, 0x00AD07C, 0x0127EA9, 0x0151D95, 0x0151D95, 0x024FD53,
281     0x02B41F1, 0x04FE3A6, 0x0409AF4, 0x0222534, 0x0204D7A, 0x013F8E9,
282     0x011809B, 0x01A2D64, 0x0345AC7, 0x046026C, 0x038A1C3, 0x02816FA,
283     0x00E2871, 0x015A699, 0x02B4D32, 0x0176834,
284 };
285
286 static const int32_t qmat12[MAT_SIZE] = {
287     0x0040000, 0x008527E, 0x004293F, 0x0085450, 0x00621E3, 0x0085450,
288     0x007EFEA, 0x0061DCA, 0x00C3B94, 0x007EFEA, 0x006C000, 0x00B0258,
289     0x00C29C3, 0x005812C, 0x006C000, 0x005991C, 0x004F0FB, 0x00AF250,
290     0x00AF250, 0x009E1F6, 0x005991C, 0x0110C35, 0x00F878E, 0x0139934,
291     0x014BD81, 0x0139934, 0x007C3C7, 0x008861A, 0x0048D66, 0x0060D5D,
292     0x00FC88A, 0x012143F, 0x012143F, 0x00FC88A, 0x0183574, 0x0123599,
293     0x019D4C5, 0x017DD67, 0x00E8D15, 0x00FC000, 0x00E8D15, 0x00BEEB4,
294     0x0033A99, 0x0067D17, 0x00AFA40, 0x00CAB59, 0x00CAB59, 0x015F480,
295     0x019F45E, 0x017D85A, 0x0137BAA, 0x00A2F8C, 0x009BDD5, 0x005F616,
296     0x00A731F, 0x00FA06C, 0x01F40D9, 0x029CC7B, 0x021D109, 0x017F1AB,
297     0x0087442, 0x00CFD8F, 0x019FB1E, 0x00E0B52,
298 };
299
300 static const int32_t qmat13[MAT_SIZE] = {
301     0x0040000, 0x008527E, 0x004293F, 0x0085450, 0x00621E3, 0x0085450,
302     0x00B061A, 0x0087EB5, 0x010FD69, 0x00B061A, 0x009C000, 0x00F4A5E,
303     0x010A4F0, 0x007A52F, 0x009C000, 0x007A918, 0x006C307, 0x00F8E3C,
304     0x00F8E3C, 0x00D860D, 0x007A918, 0x0110C35, 0x00F878E, 0x0139934,
305     0x014BD81, 0x0139934, 0x007C3C7, 0x008861A, 0x0048D66, 0x0060D5D,
306     0x00FC88A, 0x012143F, 0x012143F, 0x00FC88A, 0x0183574, 0x0123599,
307     0x0343C7D, 0x0304292, 0x01D1A2A, 0x01F8000, 0x01D1A2A, 0x0182149,
308     0x0068790, 0x00CFA2F, 0x0163198, 0x01956B3, 0x01956B3, 0x02C6330,
309     0x033E8BB, 0x05FDDFA, 0x04D86BE, 0x028F971, 0x026C35F, 0x017F77F,
310     0x01500BA, 0x01F69AB, 0x03ED355, 0x05402E9, 0x043F550, 0x0301B93,
311     0x010FD54, 0x019FB1E, 0x033F63C, 0x01C16A5,
312 };
313
314 static const int32_t qmat14[MAT_SIZE] = {
315     0x0040000, 0x009B593, 0x004DACA, 0x009B7B2, 0x0072789, 0x009B7B2,
316     0x0094291, 0x00722C1, 0x00E4582, 0x0094291, 0x007E000, 0x00CD812,
317     0x00E30B9, 0x0066C09, 0x007E000, 0x00687F5, 0x005C3CF, 0x00CC55D,
318     0x00CC55D, 0x00B879F, 0x00687F5, 0x013E393, 0x0121E26, 0x016DD67,
319     0x018326C, 0x016DD67, 0x0090F13, 0x009F1C9, 0x0054FA2, 0x0070F97,
320     0x01269F7, 0x015179F, 0x015179F, 0x01269F7, 0x01C3E5D, 0x0153E87,
321     0x01E22E6, 0x01BD7A3, 0x010F9EE, 0x0126000, 0x010F9EE, 0x00DEBD1,
322     0x003C45D, 0x00791F1, 0x00CCEA0, 0x00EC7E8, 0x00EC7E8, 0x0199D41,
323     0x01E47C3, 0x01BD1BE, 0x016BAF1, 0x00BE223, 0x00B5D78, 0x006F46F,
324     0x00C30F9, 0x0123B29, 0x0247652, 0x030C3E5, 0x02773E0, 0x01BEF48,
325     0x009DCF8, 0x00F27D1, 0x01E4FA3, 0x010628B,
326 };
327
328 static const int32_t qmat15[MAT_SIZE] = {
329     0x0040000, 0x009B593, 0x004DACA, 0x009B7B2, 0x0072789, 0x009B7B2,
330     0x00CDC74, 0x009E928, 0x013D250, 0x00CDC74, 0x00B6000, 0x011D6C3,
331     0x0136B18, 0x008EB61, 0x00B6000, 0x008EFF2, 0x007E388, 0x01225F0,
332     0x01225F0, 0x00FC70F, 0x008EFF2, 0x013E393, 0x0121E26, 0x016DD67,
333     0x018326C, 0x016DD67, 0x0090F13, 0x009F1C9, 0x0054FA2, 0x0070F97,
334     0x01269F7, 0x015179F, 0x015179F, 0x01269F7, 0x01C3E5D, 0x0153E87,
335     0x03CF13D, 0x0384DAA, 0x021F3DC, 0x024C000, 0x021F3DC, 0x01C26D5,
336     0x0079E28, 0x00F23E1, 0x019E487, 0x01D8FD0, 0x01D8FD0, 0x033C90E,
337     0x03C8F85, 0x06FD84F, 0x05A7289, 0x02FCDAF, 0x02D3944, 0x01BF614,
338     0x01880D9, 0x024A5F2, 0x0494BE4, 0x0620365, 0x04F48DE, 0x038202B,
339     0x013D237, 0x01E4FA3, 0x03C9F46, 0x020C516,
340 };
341
342 static const int32_t qmat16[MAT_SIZE] = {
343     0x0040000, 0x00B18A8, 0x0058C54, 0x00B1B15, 0x0082D2E, 0x00B1B15,
344     0x00A9538, 0x00827B8, 0x0104F6F, 0x00A9538, 0x0090000, 0x00EADCB,
345     0x01037AF, 0x00756E5, 0x0090000, 0x00776CF, 0x00696A4, 0x00E986B,
346     0x00E986B, 0x00D2D48, 0x00776CF, 0x016BAF1, 0x014B4BD, 0x01A219A,
347     0x01BA757, 0x01A219A, 0x00A5A5F, 0x00B5D78, 0x00611DE, 0x00811D1,
348     0x0150B63, 0x0181AFF, 0x0181AFF, 0x0150B63, 0x0204745, 0x0184776,
349     0x0227107, 0x01FD1DF, 0x01366C7, 0x0150000, 0x01366C7, 0x00FE8EF,
350     0x0044E21, 0x008A6CA, 0x00EA300, 0x010E477, 0x010E477, 0x01D4601,
351     0x0229B27, 0x01FCB22, 0x019FA38, 0x00D94BA, 0x00CFD1C, 0x007F2C9,
352     0x00DEED4, 0x014D5E6, 0x029ABCC, 0x037BB4F, 0x02D16B7, 0x01FECE4,
353     0x00B45AE, 0x0115214, 0x022A428, 0x012B9C3,
354 };
355
356 static const int32_t qmat17[MAT_SIZE] = {
357     0x0040000, 0x00B18A8, 0x0058C54, 0x00B1B15, 0x0082D2E, 0x00B1B15,
358     0x00EB2CD, 0x00B539C, 0x016A737, 0x00EB2CD, 0x00D0000, 0x0146328,
359     0x0163140, 0x00A3194, 0x00D0000, 0x00A36CB, 0x0090409, 0x014BDA5,
360     0x014BDA5, 0x0120812, 0x00A36CB, 0x016BAF1, 0x014B4BD, 0x01A219A,
361     0x01BA757, 0x01A219A, 0x00A5A5F, 0x00B5D78, 0x00611DE, 0x00811D1,
362     0x0150B63, 0x0181AFF, 0x0181AFF, 0x0150B63, 0x0204745, 0x0184776,
363     0x045A5FD, 0x04058C2, 0x026CD8D, 0x02A0000, 0x026CD8D, 0x0202C61,
364     0x008B4C0, 0x0114D94, 0x01D9776, 0x021C8EE, 0x021C8EE, 0x03B2EEB,
365     0x045364F, 0x07FD2A3, 0x0675E53, 0x036A1ED, 0x033AF2A, 0x01FF4A9,
366     0x01C00F8, 0x029E239, 0x053C472, 0x07003E1, 0x05A9C6B, 0x04024C4,
367     0x016A71B, 0x022A428, 0x0454850, 0x0257386,
368 };
369
370 static const int32_t qmat18[MAT_SIZE] = {
371     0x0040000, 0x00C7BBD, 0x0063DDF, 0x00C7E77, 0x00932D4, 0x00C7E77,
372     0x00BE7DF, 0x0092CAF, 0x012595D, 0x00BE7DF, 0x00A2000, 0x0108384,
373     0x0123EA5, 0x00841C2, 0x00A2000, 0x00865A9, 0x0076978, 0x0106B78,
374     0x0106B78, 0x00ED2F1, 0x00865A9, 0x019924F, 0x0174B55, 0x01D65CD,
375     0x01F1C42, 0x01D65CD, 0x00BA5AB, 0x00CC927, 0x006D419, 0x009140C,
376     0x017ACCF, 0x01B1E5F, 0x01B1E5F, 0x017ACCF, 0x024502E, 0x01B5065,
377     0x026BF28, 0x023CC1B, 0x015D3A0, 0x017A000, 0x015D3A0, 0x011E60D,
378     0x004D7E5, 0x009BBA3, 0x0107760, 0x0130106, 0x0130106, 0x020EEC1,
379     0x026EE8C, 0x023C486, 0x01D397F, 0x00F4751, 0x00E9CBF, 0x008F122,
380     0x00FACAE, 0x01770A2, 0x02EE145, 0x03EB2B9, 0x032B98E, 0x023EA81,
381     0x00CAE64, 0x0137C56, 0x026F8AD, 0x01510FC,
382 };
383
384 static const int32_t qmat19[MAT_SIZE] = {
385     0x0040000, 0x00C7BBD, 0x0063DDF, 0x00C7E77, 0x00932D4, 0x00C7E77,
386     0x0108927, 0x00CBE0F, 0x0197C1E, 0x0108927, 0x00EA000, 0x016EF8D,
387     0x018F768, 0x00B77C6, 0x00EA000, 0x00B7DA4, 0x00A248A, 0x017555A,
388     0x017555A, 0x0144914, 0x00B7DA4, 0x019924F, 0x0174B55, 0x01D65CD,
389     0x01F1C42, 0x01D65CD, 0x00BA5AB, 0x00CC927, 0x006D419, 0x009140C,
390     0x017ACCF, 0x01B1E5F, 0x01B1E5F, 0x017ACCF, 0x024502E, 0x01B5065,
391     0x04E5ABC, 0x04863DB, 0x02BA73F, 0x02F4000, 0x02BA73F, 0x02431ED,
392     0x009CB58, 0x0137746, 0x0214A64, 0x026020C, 0x026020C, 0x04294C8,
393     0x04DDD19, 0x08FCCF7, 0x0744A1D, 0x03D762A, 0x03A250F, 0x023F33E,
394     0x01F8117, 0x02F1E80, 0x05E3D00, 0x07E045D, 0x065EFF9, 0x048295C,
395     0x0197BFE, 0x026F8AD, 0x04DF15A, 0x02A21F7,
396 };
397
398 static const int32_t qmat1A[MAT_SIZE] = {
399     0x0040000, 0x00DDED2, 0x006EF69, 0x00DE1DA, 0x00A387A, 0x00DE1DA,
400     0x00D3A86, 0x00A31A6, 0x014634B, 0x00D3A86, 0x00B4000, 0x012593E,
401     0x014459B, 0x0092C9F, 0x00B4000, 0x0095483, 0x0083C4D, 0x0123E85,
402     0x0123E85, 0x010789A, 0x0095483, 0x01C69AD, 0x019E1ED, 0x020AA01,
403     0x022912D, 0x020AA01, 0x00CF0F6, 0x00E34D6, 0x0079655, 0x00A1646,
404     0x01A4E3C, 0x01E21BE, 0x01E21BE, 0x01A4E3C, 0x0285917, 0x01E5954,
405     0x02B0D48, 0x027C656, 0x0184078, 0x01A4000, 0x0184078, 0x013E32B,
406     0x00561A9, 0x00AD07C, 0x0124BC0, 0x0151D95, 0x0151D95, 0x0249781,
407     0x02B41F1, 0x027BDEB, 0x02078C6, 0x010F9E9, 0x0103C63, 0x009EF7B,
408     0x0116A89, 0x01A0B5F, 0x03416BE, 0x045AA23, 0x0385C65, 0x027E81E,
409     0x00E1719, 0x015A699, 0x02B4D32, 0x0176834,
410 };
411
412 static const int32_t qmat1B[MAT_SIZE] = {
413     0x0040000, 0x00DDED2, 0x006EF69, 0x00DE1DA, 0x00A387A, 0x00DE1DA,
414     0x0125F81, 0x00E2883, 0x01C5105, 0x0125F81, 0x0104000, 0x0197BF2,
415     0x01BBD90, 0x00CBDF9, 0x0104000, 0x00CC47E, 0x00B450B, 0x019ED0E,
416     0x019ED0E, 0x0168A16, 0x00CC47E, 0x01C69AD, 0x019E1ED, 0x020AA01,
417     0x022912D, 0x020AA01, 0x00CF0F6, 0x00E34D6, 0x0079655, 0x00A1646,
418     0x01A4E3C, 0x01E21BE, 0x01E21BE, 0x01A4E3C, 0x0285917, 0x01E5954,
419     0x0570F7C, 0x0506EF3, 0x03080F1, 0x0348000, 0x03080F1, 0x028377A,
420     0x00AE1EF, 0x015A0F9, 0x024FD53, 0x02A3B2A, 0x02A3B2A, 0x049FAA6,
421     0x05683E3, 0x09FC74C, 0x08135E8, 0x0444A68, 0x0409AF4, 0x027F1D3,
422     0x0230136, 0x0345AC7, 0x068B58E, 0x08C04D9, 0x0714386, 0x0502DF5,
423     0x01C50E1, 0x02B4D32, 0x0569A64, 0x02ED068,
424 };
425
426 static const int32_t qmat1C[MAT_SIZE] = {
427     0x0040000, 0x00F41E7, 0x007A0F4, 0x00F453D, 0x00B3E20, 0x00F453D,
428     0x00E8D2D, 0x00B369D, 0x0166D39, 0x00E8D2D, 0x00C6000, 0x0142EF7,
429     0x0164C91, 0x00A177B, 0x00C6000, 0x00A435D, 0x0090F21, 0x0141193,
430     0x0141193, 0x0121E43, 0x00A435D, 0x01F410B, 0x01C7884, 0x023EE34,
431     0x0260617, 0x023EE34, 0x00E3C42, 0x00FA086, 0x0085891, 0x00B1880,
432     0x01CEFA8, 0x021251E, 0x021251E, 0x01CEFA8, 0x02C6200, 0x0216242,
433     0x02F5B69, 0x02BC092, 0x01AAD51, 0x01CE000, 0x01AAD51, 0x015E049,
434     0x005EB6D, 0x00BE556, 0x0142020, 0x0173A24, 0x0173A24, 0x0284041,
435     0x02F9556, 0x02BB74F, 0x023B80D, 0x012AC80, 0x011DC06, 0x00AEDD4,
436     0x0132863, 0x01CA61C, 0x0394C38, 0x04CA18D, 0x03DFF3C, 0x02BE5BA,
437     0x00F7FCF, 0x017D0DB, 0x02FA1B7, 0x019BF6C,
438 };
439
440 static const int32_t qmat1D[MAT_SIZE] = {
441     0x0040000, 0x00F41E7, 0x007A0F4, 0x00F453D, 0x00B3E20, 0x00F453D,
442     0x01435DA, 0x00F92F6, 0x01F25EC, 0x01435DA, 0x011E000, 0x01C0857,
443     0x01E83B8, 0x00E042B, 0x011E000, 0x00E0B57, 0x00C658C, 0x01C84C3,
444     0x01C84C3, 0x018CB18, 0x00E0B57, 0x01F410B, 0x01C7884, 0x023EE34,
445     0x0260617, 0x023EE34, 0x00E3C42, 0x00FA086, 0x0085891, 0x00B1880,
446     0x01CEFA8, 0x021251E, 0x021251E, 0x01CEFA8, 0x02C6200, 0x0216242,
447     0x05FC43B, 0x0587A0B, 0x0355AA3, 0x039C000, 0x0355AA3, 0x02C3D06,
448     0x00BF887, 0x017CAAB, 0x028B042, 0x02E7447, 0x02E7447, 0x0516083,
449     0x05F2AAD, 0x0AFC1A0, 0x08E21B2, 0x04B1EA5, 0x04710D9, 0x02BF068,
450     0x0268155, 0x039970E, 0x0732E1D, 0x09A0555, 0x07C9713, 0x058328D,
451     0x01F25C5, 0x02FA1B7, 0x05F436E, 0x0337ED9,
452 };
453
454 static const int32_t qmat1E[MAT_SIZE] = {
455     0x0040000, 0x010A4FD, 0x008527E, 0x010A89F, 0x00C43C5, 0x010A89F,
456     0x00FDFD3, 0x00C3B94, 0x0187727, 0x00FDFD3, 0x00D8000, 0x01604B0,
457     0x0185387, 0x00B0258, 0x00D8000, 0x00B3237, 0x009E1F6, 0x015E4A0,
458     0x015E4A0, 0x013C3EC, 0x00B3237, 0x0221869, 0x01F0F1C, 0x0273267,
459     0x0297B02, 0x0273267, 0x00F878E, 0x0110C35, 0x0091ACC, 0x00C1ABA,
460     0x01F9114, 0x024287E, 0x024287E, 0x01F9114, 0x0306AE8, 0x0246B31,
461     0x033A98A, 0x02FBACE, 0x01D1A2A, 0x01F8000, 0x01D1A2A, 0x017DD67,
462     0x0067531, 0x00CFA2F, 0x015F480, 0x01956B3, 0x01956B3, 0x02BE901,
463     0x033E8BB, 0x02FB0B3, 0x026F754, 0x0145F17, 0x0137BAA, 0x00BEC2D,
464     0x014E63E, 0x01F40D9, 0x03E81B1, 0x05398F7, 0x043A213, 0x02FE357,
465     0x010E885, 0x019FB1E, 0x033F63C, 0x01C16A5,
466 };
467
468 static const int32_t qmat1F[MAT_SIZE] = {
469     0x0040000, 0x010A4FD, 0x008527E, 0x010A89F, 0x00C43C5, 0x010A89F,
470     0x0160C34, 0x010FD69, 0x021FAD3, 0x0160C34, 0x0138000, 0x01E94BC,
471     0x02149E1, 0x00F4A5E, 0x0138000, 0x00F5230, 0x00D860D, 0x01F1C78,
472     0x01F1C78, 0x01B0C1A, 0x00F5230, 0x0221869, 0x01F0F1C, 0x0273267,
473     0x0297B02, 0x0273267, 0x00F878E, 0x0110C35, 0x0091ACC, 0x00C1ABA,
474     0x01F9114, 0x024287E, 0x024287E, 0x01F9114, 0x0306AE8, 0x0246B31,
475     0x06878FB, 0x0608524, 0x03A3454, 0x03F0000, 0x03A3454, 0x0304292,
476     0x00D0F1F, 0x019F45E, 0x02C6330, 0x032AD65, 0x032AD65, 0x058C661,
477     0x067D176, 0x0BFBBF4, 0x09B0D7D, 0x051F2E3, 0x04D86BE, 0x02FEEFD,
478     0x02A0174, 0x03ED355, 0x07DA6AB, 0x0A805D1, 0x087EAA1, 0x0603726,
479     0x021FAA8, 0x033F63C, 0x067EC78, 0x0382D4A,
480 };
481
482 static const int32_t qmat20[MAT_SIZE] = {
483     0x0040000, 0x0136B27, 0x009B593, 0x0136F64, 0x00E4F11, 0x0136F64,
484     0x0128521, 0x00E4582, 0x01C8B03, 0x0128521, 0x00FC000, 0x019B023,
485     0x01C6172, 0x00CD812, 0x00FC000, 0x00D0FEB, 0x00B879F, 0x0198ABB,
486     0x0198ABB, 0x0170F3E, 0x00D0FEB, 0x027C725, 0x0243C4B, 0x02DBACE,
487     0x03064D8, 0x02DBACE, 0x0121E26, 0x013E393, 0x00A9F44, 0x00E1F2E,
488     0x024D3ED, 0x02A2F3E, 0x02A2F3E, 0x024D3ED, 0x0387CBA, 0x02A7D0F,
489     0x03C45CC, 0x037AF46, 0x021F3DC, 0x024C000, 0x021F3DC, 0x01BD7A3,
490     0x00788B9, 0x00F23E1, 0x0199D41, 0x01D8FD0, 0x01D8FD0, 0x0333A81,
491     0x03C8F85, 0x037A37C, 0x02D75E2, 0x017C446, 0x016BAF1, 0x00DE8DF,
492     0x01861F3, 0x0247652, 0x048ECA4, 0x06187CA, 0x04EE7C1, 0x037DE90,
493     0x013B9F0, 0x01E4FA3, 0x03C9F46, 0x020C516,
494 };
495
496 static const int32_t qmat21[MAT_SIZE] = {
497     0x0040000, 0x0136B27, 0x009B593, 0x0136F64, 0x00E4F11, 0x0136F64,
498     0x019B8E7, 0x013D250, 0x027A4A1, 0x019B8E7, 0x016C000, 0x023AD86,
499     0x026D631, 0x011D6C3, 0x016C000, 0x011DFE3, 0x00FC70F, 0x0244BE1,
500     0x0244BE1, 0x01F8E1F, 0x011DFE3, 0x027C725, 0x0243C4B, 0x02DBACE,
501     0x03064D8, 0x02DBACE, 0x0121E26, 0x013E393, 0x00A9F44, 0x00E1F2E,
502     0x024D3ED, 0x02A2F3E, 0x02A2F3E, 0x024D3ED, 0x0387CBA, 0x02A7D0F,
503     0x079E27A, 0x0709B54, 0x043E7B8, 0x0498000, 0x043E7B8, 0x0384DAA,
504     0x00F3C4F, 0x01E47C3, 0x033C90E, 0x03B1FA1, 0x03B1FA1, 0x067921B,
505     0x0791F0A, 0x0DFB09D, 0x0B4E511, 0x05F9B5E, 0x05A7289, 0x037EC27,
506     0x03101B2, 0x0494BE4, 0x09297C7, 0x0C406C9, 0x09E91BC, 0x0704057,
507     0x027A46F, 0x03C9F46, 0x0793E8C, 0x0418A2B,
508 };
509
510 static const int32_t qmat22[MAT_SIZE] = {
511     0x0040000, 0x0163151, 0x00B18A8, 0x0163629, 0x0105A5D, 0x0163629,
512     0x0152A6F, 0x0104F6F, 0x0209EDF, 0x0152A6F, 0x0120000, 0x01D5B96,
513     0x0206F5E, 0x00EADCB, 0x0120000, 0x00EED9F, 0x00D2D48, 0x01D30D5,
514     0x01D30D5, 0x01A5A90, 0x00EED9F, 0x02D75E2, 0x029697B, 0x0344334,
515     0x0374EAE, 0x0344334, 0x014B4BD, 0x016BAF1, 0x00C23BB, 0x01023A3,
516     0x02A16C6, 0x03035FE, 0x03035FE, 0x02A16C6, 0x0408E8B, 0x0308EEC,
517     0x044E20D, 0x03FA3BE, 0x026CD8D, 0x02A0000, 0x026CD8D, 0x01FD1DF,
518     0x0089C42, 0x0114D94, 0x01D4601, 0x021C8EE, 0x021C8EE, 0x03A8C01,
519     0x045364F, 0x03F9644, 0x033F46F, 0x01B2974, 0x019FA38, 0x00FE591,
520     0x01BDDA8, 0x029ABCC, 0x0535797, 0x06F769E, 0x05A2D6E, 0x03FD9C9,
521     0x0168B5C, 0x022A428, 0x0454850, 0x0257386,
522 };
523
524 static const int32_t qmat23[MAT_SIZE] = {
525     0x0040000, 0x0163151, 0x00B18A8, 0x0163629, 0x0105A5D, 0x0163629,
526     0x01D659B, 0x016A737, 0x02D4E6E, 0x01D659B, 0x01A0000, 0x028C650,
527     0x02C6281, 0x0146328, 0x01A0000, 0x0146D96, 0x0120812, 0x0297B4A,
528     0x0297B4A, 0x0241023, 0x0146D96, 0x02D75E2, 0x029697B, 0x0344334,
529     0x0374EAE, 0x0344334, 0x014B4BD, 0x016BAF1, 0x00C23BB, 0x01023A3,
530     0x02A16C6, 0x03035FE, 0x03035FE, 0x02A16C6, 0x0408E8B, 0x0308EEC,
531     0x08B4BF9, 0x080B185, 0x04D9B1B, 0x0540000, 0x04D9B1B, 0x04058C2,
532     0x011697F, 0x0229B27, 0x03B2EEB, 0x04391DC, 0x04391DC, 0x0765DD6,
533     0x08A6C9E, 0x0FFA546, 0x0CEBCA6, 0x06D43D9, 0x0675E53, 0x03FE951,
534     0x03801F0, 0x053C472, 0x0A788E4, 0x0E007C1, 0x0B538D6, 0x0804988,
535     0x02D4E36, 0x0454850, 0x08A90A0, 0x04AE70D,
536 };
537
538 static const int32_t qmat24[MAT_SIZE] = {
539     0x0040000, 0x018F77B, 0x00C7BBD, 0x018FCEF, 0x01265A8, 0x018FCEF,
540     0x017CFBD, 0x012595D, 0x024B2BB, 0x017CFBD, 0x0144000, 0x0210708,
541     0x0247D4A, 0x0108384, 0x0144000, 0x010CB53, 0x00ED2F1, 0x020D6F0,
542     0x020D6F0, 0x01DA5E2, 0x010CB53, 0x033249E, 0x02E96AA, 0x03ACB9B,
543     0x03E3883, 0x03ACB9B, 0x0174B55, 0x019924F, 0x00DA832, 0x0122817,
544     0x02F599F, 0x0363CBD, 0x0363CBD, 0x02F599F, 0x048A05C, 0x036A0CA,
545     0x04D7E4F, 0x0479835, 0x02BA73F, 0x02F4000, 0x02BA73F, 0x023CC1B,
546     0x009AFCA, 0x0137746, 0x020EEC1, 0x026020C, 0x026020C, 0x041DD81,
547     0x04DDD19, 0x047890D, 0x03A72FD, 0x01E8EA3, 0x01D397F, 0x011E243,
548     0x01F595C, 0x02EE145, 0x05DC28A, 0x07D6572, 0x065731C, 0x047D502,
549     0x0195CC7, 0x026F8AD, 0x04DF15A, 0x02A21F7,
550 };
551
552 static const int32_t qmat25[MAT_SIZE] = {
553     0x0040000, 0x018F77B, 0x00C7BBD, 0x018FCEF, 0x01265A8, 0x018FCEF,
554     0x021124E, 0x0197C1E, 0x032F83C, 0x021124E, 0x01D4000, 0x02DDF1A,
555     0x031EED1, 0x016EF8D, 0x01D4000, 0x016FB49, 0x0144914, 0x02EAAB3,
556     0x02EAAB3, 0x0289228, 0x016FB49, 0x033249E, 0x02E96AA, 0x03ACB9B,
557     0x03E3883, 0x03ACB9B, 0x0174B55, 0x019924F, 0x00DA832, 0x0122817,
558     0x02F599F, 0x0363CBD, 0x0363CBD, 0x02F599F, 0x048A05C, 0x036A0CA,
559     0x09CB578, 0x090C7B6, 0x0574E7E, 0x05E8000, 0x0574E7E, 0x04863DB,
560     0x01396AF, 0x026EE8C, 0x04294C8, 0x04C0418, 0x04C0418, 0x0852991,
561     0x09BBA32, 0x11F99EF, 0x0E8943B, 0x07AEC54, 0x0744A1D, 0x047E67C,
562     0x03F022E, 0x05E3D00, 0x0BC7A00, 0x0FC08BA, 0x0CBDFF1, 0x09052B9,
563     0x032F7FC, 0x04DF15A, 0x09BE2B4, 0x05443EE,
564 };
565
566 static const int32_t qmat26[MAT_SIZE] = {
567     0x0040000, 0x01BBDA5, 0x00DDED2, 0x01BC3B4, 0x01470F4, 0x01BC3B4,
568     0x01A750B, 0x014634B, 0x028C697, 0x01A750B, 0x0168000, 0x024B27B,
569     0x0288B36, 0x012593E, 0x0168000, 0x012A906, 0x010789A, 0x0247D0B,
570     0x0247D0B, 0x020F134, 0x012A906, 0x038D35A, 0x033C3D9, 0x0415402,
571     0x0452259, 0x0415402, 0x019E1ED, 0x01C69AD, 0x00F2CAA, 0x0142C8B,
572     0x0349C77, 0x03C437D, 0x03C437D, 0x0349C77, 0x050B22E, 0x03CB2A7,
573     0x0561A91, 0x04F8CAD, 0x03080F1, 0x0348000, 0x03080F1, 0x027C656,
574     0x00AC352, 0x015A0F9, 0x0249781, 0x02A3B2A, 0x02A3B2A, 0x0492F02,
575     0x05683E3, 0x04F7BD5, 0x040F18B, 0x021F3D1, 0x02078C6, 0x013DEF5,
576     0x022D511, 0x03416BE, 0x0682D7D, 0x08B5446, 0x070B8CA, 0x04FD03B,
577     0x01C2E32, 0x02B4D32, 0x0569A64, 0x02ED068,
578 };
579
580 static const int32_t qmat27[MAT_SIZE] = {
581     0x0040000, 0x01BBDA5, 0x00DDED2, 0x01BC3B4, 0x01470F4, 0x01BC3B4,
582     0x024BF01, 0x01C5105, 0x038A20A, 0x024BF01, 0x0208000, 0x032F7E4,
583     0x0377B21, 0x0197BF2, 0x0208000, 0x01988FB, 0x0168A16, 0x033DA1D,
584     0x033DA1D, 0x02D142C, 0x01988FB, 0x038D35A, 0x033C3D9, 0x0415402,
585     0x0452259, 0x0415402, 0x019E1ED, 0x01C69AD, 0x00F2CAA, 0x0142C8B,
586     0x0349C77, 0x03C437D, 0x03C437D, 0x0349C77, 0x050B22E, 0x03CB2A7,
587     0x0AE1EF7, 0x0A0DDE6, 0x06101E2, 0x0690000, 0x06101E2, 0x0506EF3,
588     0x015C3DF, 0x02B41F1, 0x049FAA6, 0x0547653, 0x0547653, 0x093F54C,
589     0x0AD07C5, 0x13F8E97, 0x1026BD0, 0x08894CF, 0x08135E8, 0x04FE3A6,
590     0x046026C, 0x068B58E, 0x0D16B1D, 0x11809B2, 0x0E2870C, 0x0A05BEA,
591     0x038A1C3, 0x0569A64, 0x0AD34C8, 0x05DA0D0,
592 };
593
594 static const int32_t qmat28[MAT_SIZE] = {
595     0x0040000, 0x01E83CF, 0x00F41E7, 0x01E8A79, 0x0167C3F, 0x01E8A79,
596     0x01D1A59, 0x0166D39, 0x02CDA72, 0x01D1A59, 0x018C000, 0x0285DEE,
597     0x02C9921, 0x0142EF7, 0x018C000, 0x01486BA, 0x0121E43, 0x0282325,
598     0x0282325, 0x0243C86, 0x01486BA, 0x03E8216, 0x038F109, 0x047DC68,
599     0x04C0C2F, 0x047DC68, 0x01C7884, 0x01F410B, 0x010B121, 0x0163100,
600     0x039DF50, 0x0424A3D, 0x0424A3D, 0x039DF50, 0x058C3FF, 0x042C485,
601     0x05EB6D3, 0x0578125, 0x0355AA3, 0x039C000, 0x0355AA3, 0x02BC092,
602     0x00BD6DA, 0x017CAAB, 0x0284041, 0x02E7447, 0x02E7447, 0x0508082,
603     0x05F2AAD, 0x0576E9E, 0x0477019, 0x0255900, 0x023B80D, 0x015DBA7,
604     0x02650C6, 0x0394C38, 0x0729870, 0x0994319, 0x07BFE78, 0x057CB74,
605     0x01EFF9E, 0x02FA1B7, 0x05F436E, 0x0337ED9,
606 };
607
608 static const int32_t qmat29[MAT_SIZE] = {
609     0x0040000, 0x01E83CF, 0x00F41E7, 0x01E8A79, 0x0167C3F, 0x01E8A79,
610     0x0286BB5, 0x01F25EC, 0x03E4BD8, 0x0286BB5, 0x023C000, 0x03810AE,
611     0x03D0771, 0x01C0857, 0x023C000, 0x01C16AE, 0x018CB18, 0x0390986,
612     0x0390986, 0x0319630, 0x01C16AE, 0x03E8216, 0x038F109, 0x047DC68,
613     0x04C0C2F, 0x047DC68, 0x01C7884, 0x01F410B, 0x010B121, 0x0163100,
614     0x039DF50, 0x0424A3D, 0x0424A3D, 0x039DF50, 0x058C3FF, 0x042C485,
615     0x0BF8876, 0x0B0F417, 0x06AB545, 0x0738000, 0x06AB545, 0x0587A0B,
616     0x017F10F, 0x02F9556, 0x0516083, 0x05CE88F, 0x05CE88F, 0x0A2C106,
617     0x0BE5559, 0x15F8340, 0x11C4364, 0x0963D4B, 0x08E21B2, 0x057E0D0,
618     0x04D02AB, 0x0732E1D, 0x0E65C39, 0x1340AAA, 0x0F92E27, 0x0B0651B,
619     0x03E4B8A, 0x05F436E, 0x0BE86DC, 0x066FDB2,
620 };
621
622 static const int32_t qmat2A[MAT_SIZE] = {
623     0x0040000, 0x02149F9, 0x010A4FD, 0x021513E, 0x018878B, 0x021513E,
624     0x01FBFA7, 0x0187727, 0x030EE4E, 0x01FBFA7, 0x01B0000, 0x02C0961,
625     0x030A70D, 0x01604B0, 0x01B0000, 0x016646E, 0x013C3EC, 0x02BC940,
626     0x02BC940, 0x02787D8, 0x016646E, 0x04430D2, 0x03E1E38, 0x04E64CF,
627     0x052F604, 0x04E64CF, 0x01F0F1C, 0x0221869, 0x0123599, 0x0183574,
628     0x03F2229, 0x04850FC, 0x04850FC, 0x03F2229, 0x060D5D0, 0x048D662,
629     0x0675314, 0x05F759C, 0x03A3454, 0x03F0000, 0x03A3454, 0x02FBACE,
630     0x00CEA63, 0x019F45E, 0x02BE901, 0x032AD65, 0x032AD65, 0x057D202,
631     0x067D176, 0x05F6166, 0x04DEEA7, 0x028BE2E, 0x026F754, 0x017D85A,
632     0x029CC7B, 0x03E81B1, 0x07D0363, 0x0A731ED, 0x0874425, 0x05FC6AD,
633     0x021D109, 0x033F63C, 0x067EC78, 0x0382D4A,
634 };
635
636 static const int32_t qmat2B[MAT_SIZE] = {
637     0x0040000, 0x02149F9, 0x010A4FD, 0x021513E, 0x018878B, 0x021513E,
638     0x02C1868, 0x021FAD3, 0x043F5A6, 0x02C1868, 0x0270000, 0x03D2978,
639     0x04293C1, 0x01E94BC, 0x0270000, 0x01EA461, 0x01B0C1A, 0x03E38EF,
640     0x03E38EF, 0x0361835, 0x01EA461, 0x04430D2, 0x03E1E38, 0x04E64CF,
641     0x052F604, 0x04E64CF, 0x01F0F1C, 0x0221869, 0x0123599, 0x0183574,
642     0x03F2229, 0x04850FC, 0x04850FC, 0x03F2229, 0x060D5D0, 0x048D662,
643     0x0D0F1F6, 0x0C10A47, 0x07468A8, 0x07E0000, 0x07468A8, 0x0608524,
644     0x01A1E3F, 0x033E8BB, 0x058C661, 0x0655ACA, 0x0655ACA, 0x0B18CC1,
645     0x0CFA2ED, 0x17F77E9, 0x1361AF9, 0x0A3E5C6, 0x09B0D7D, 0x05FDDFA,
646     0x05402E9, 0x07DA6AB, 0x0FB4D56, 0x1500BA2, 0x10FD541, 0x0C06E4C,
647     0x043F550, 0x067EC78, 0x0CFD8F0, 0x0705A93,
648 };
649
650 static const int32_t qmat2C[MAT_SIZE] = {
651     0x0040000, 0x0241023, 0x0120812, 0x0241803, 0x01A92D7, 0x0241803,
652     0x02264F5, 0x01A8115, 0x035022A, 0x02264F5, 0x01D4000, 0x02FB4D3,
653     0x034B4F9, 0x017DA6A, 0x01D4000, 0x0184222, 0x0156995, 0x02F6F5B,
654     0x02F6F5B, 0x02AD32A, 0x0184222, 0x049DF8E, 0x0434B67, 0x054ED35,
655     0x059DFDA, 0x054ED35, 0x021A5B4, 0x024EFC7, 0x013BA10, 0x01A39E8,
656     0x0446502, 0x04E57BC, 0x04E57BC, 0x0446502, 0x068E7A2, 0x04EE840,
657     0x06FEF56, 0x0676A14, 0x03F0E06, 0x0444000, 0x03F0E06, 0x033B50A,
658     0x00DFDEB, 0x01C1E10, 0x02F91C1, 0x036E683, 0x036E683, 0x05F2382,
659     0x0707840, 0x067542F, 0x0546D35, 0x02C235D, 0x02A369B, 0x019D50C,
660     0x02D4830, 0x043B72B, 0x0876E56, 0x0B520C1, 0x09289D3, 0x067C1E6,
661     0x024A275, 0x0384AC1, 0x0709582, 0x03CDBBA,
662 };
663
664 static const int32_t qmat2D[MAT_SIZE] = {
665     0x0040000, 0x0241023, 0x0120812, 0x0241803, 0x01A92D7, 0x0241803,
666     0x02FC51B, 0x024CFBA, 0x0499F73, 0x02FC51B, 0x02A4000, 0x0424242,
667     0x0482011, 0x0212121, 0x02A4000, 0x0213214, 0x01D4D1D, 0x0436858,
668     0x0436858, 0x03A9A39, 0x0213214, 0x049DF8E, 0x0434B67, 0x054ED35,
669     0x059DFDA, 0x054ED35, 0x021A5B4, 0x024EFC7, 0x013BA10, 0x01A39E8,
670     0x0446502, 0x04E57BC, 0x04E57BC, 0x0446502, 0x068E7A2, 0x04EE840,
671     0x0E25B75, 0x0D12078, 0x07E1C0C, 0x0888000, 0x07E1C0C, 0x068903C,
672     0x01C4B6F, 0x0383C20, 0x0602C3E, 0x06DCD06, 0x06DCD06, 0x0C0587C,
673     0x0E0F081, 0x19F6C92, 0x14FF28E, 0x0B18E41, 0x0A7F947, 0x067DB24,
674     0x05B0327, 0x0881F39, 0x1103E72, 0x16C0C9A, 0x1267C5C, 0x0D0777D,
675     0x0499F17, 0x0709582, 0x0E12B04, 0x079B775,
676 };
677
678 static const int32_t qmat2E[MAT_SIZE] = {
679     0x0040000, 0x026D64D, 0x0136B27, 0x026DEC9, 0x01C9E22, 0x026DEC9,
680     0x0250A43, 0x01C8B03, 0x0391606, 0x0250A43, 0x01F8000, 0x0336046,
681     0x038C2E5, 0x019B023, 0x01F8000, 0x01A1FD6, 0x0170F3E, 0x0331575,
682     0x0331575, 0x02E1E7C, 0x01A1FD6, 0x04F8E4B, 0x0487897, 0x05B759C,
683     0x060C9B0, 0x05B759C, 0x0243C4B, 0x027C725, 0x0153E87, 0x01C3E5D,
684     0x049A7DA, 0x0545E7C, 0x0545E7C, 0x049A7DA, 0x070F973, 0x054FA1D,
685     0x0788B98, 0x06F5E8C, 0x043E7B8, 0x0498000, 0x043E7B8, 0x037AF46,
686     0x00F1173, 0x01E47C3, 0x0333A81, 0x03B1FA1, 0x03B1FA1, 0x0667502,
687     0x0791F0A, 0x06F46F7, 0x05AEBC3, 0x02F888B, 0x02D75E2, 0x01BD1BE,
688     0x030C3E5, 0x048ECA4, 0x091D948, 0x0C30F95, 0x09DCF81, 0x06FBD20,
689     0x02773E0, 0x03C9F46, 0x0793E8C, 0x0418A2B,
690 };
691
692 static const int32_t qmat2F[MAT_SIZE] = {
693     0x0040000, 0x026D64D, 0x0136B27, 0x026DEC9, 0x01C9E22, 0x026DEC9,
694     0x03371CF, 0x027A4A1, 0x04F4941, 0x03371CF, 0x02D8000, 0x0475B0C,
695     0x04DAC61, 0x023AD86, 0x02D8000, 0x023BFC6, 0x01F8E1F, 0x04897C2,
696     0x04897C2, 0x03F1C3D, 0x023BFC6, 0x04F8E4B, 0x0487897, 0x05B759C,
697     0x060C9B0, 0x05B759C, 0x0243C4B, 0x027C725, 0x0153E87, 0x01C3E5D,
698     0x049A7DA, 0x0545E7C, 0x0545E7C, 0x049A7DA, 0x070F973, 0x054FA1D,
699     0x0F3C4F4, 0x0E136A9, 0x087CF6F, 0x0930000, 0x087CF6F, 0x0709B54,
700     0x01E789E, 0x03C8F85, 0x067921B, 0x0763F41, 0x0763F41, 0x0CF2437,
701     0x0F23E14, 0x1BF613A, 0x169CA23, 0x0BF36BC, 0x0B4E511, 0x06FD84F,
702     0x0620365, 0x09297C7, 0x1252F8F, 0x1880D93, 0x13D2377, 0x0E080AE,
703     0x04F48DE, 0x0793E8C, 0x0F27D18, 0x0831457,
704 };
705
706 static const int32_t qmat30[MAT_SIZE] = {
707     0x0040000, 0x02C62A1, 0x0163151, 0x02C6C53, 0x020B4B9, 0x02C6C53,
708     0x02A54DF, 0x0209EDF, 0x0413DBE, 0x02A54DF, 0x0240000, 0x03AB72B,
709     0x040DEBC, 0x01D5B96, 0x0240000, 0x01DDB3E, 0x01A5A90, 0x03A61AB,
710     0x03A61AB, 0x034B520, 0x01DDB3E, 0x05AEBC3, 0x052D2F5, 0x0688669,
711     0x06E9D5B, 0x0688669, 0x029697B, 0x02D75E2, 0x0184776, 0x0204745,
712     0x0542D8C, 0x0606BFB, 0x0606BFB, 0x0542D8C, 0x0811D16, 0x0611DD8,
713     0x089C41B, 0x07F477B, 0x04D9B1B, 0x0540000, 0x04D9B1B, 0x03FA3BE,
714     0x0113883, 0x0229B27, 0x03A8C01, 0x04391DC, 0x04391DC, 0x0751803,
715     0x08A6C9E, 0x07F2C88, 0x067E8DF, 0x03652E8, 0x033F46F, 0x01FCB22,
716     0x037BB4F, 0x0535797, 0x0A6AF2E, 0x0DEED3C, 0x0B45ADD, 0x07FB392,
717     0x02D16B7, 0x0454850, 0x08A90A0, 0x04AE70D,
718 };
719
720 static const int32_t qmat31[MAT_SIZE] = {
721     0x0040000, 0x02C62A1, 0x0163151, 0x02C6C53, 0x020B4B9, 0x02C6C53,
722     0x03ACB35, 0x02D4E6E, 0x05A9CDD, 0x03ACB35, 0x0340000, 0x0518CA0,
723     0x058C501, 0x028C650, 0x0340000, 0x028DB2C, 0x0241023, 0x052F694,
724     0x052F694, 0x0482046, 0x028DB2C, 0x05AEBC3, 0x052D2F5, 0x0688669,
725     0x06E9D5B, 0x0688669, 0x029697B, 0x02D75E2, 0x0184776, 0x0204745,
726     0x0542D8C, 0x0606BFB, 0x0606BFB, 0x0542D8C, 0x0811D16, 0x0611DD8,
727     0x11697F2, 0x101630A, 0x09B3636, 0x0A80000, 0x09B3636, 0x080B185,
728     0x022D2FE, 0x045364F, 0x0765DD6, 0x08723B8, 0x08723B8, 0x0ECBBAC,
729     0x114D93C, 0x1FF4A8C, 0x19D794C, 0x0DA87B2, 0x0CEBCA6, 0x07FD2A3,
730     0x07003E1, 0x0A788E4, 0x14F11C8, 0x1C00F83, 0x16A71AD, 0x1009310,
731     0x05A9C6B, 0x08A90A0, 0x1152140, 0x095CE1A,
732 };
733
734 static const int32_t qmat32[MAT_SIZE] = {
735     0x0040000, 0x031EEF6, 0x018F77B, 0x031F9DD, 0x024CB50, 0x031F9DD,
736     0x02F9F7A, 0x024B2BB, 0x0496575, 0x02F9F7A, 0x0288000, 0x0420E11,
737     0x048FA94, 0x0210708, 0x0288000, 0x02196A5, 0x01DA5E2, 0x041ADE0,
738     0x041ADE0, 0x03B4BC4, 0x02196A5, 0x066493B, 0x05D2D54, 0x0759736,
739     0x07C7107, 0x0759736, 0x02E96AA, 0x033249E, 0x01B5065, 0x024502E,
740     0x05EB33D, 0x06C797A, 0x06C797A, 0x05EB33D, 0x09140B9, 0x06D4193,
741     0x09AFC9E, 0x08F306A, 0x0574E7E, 0x05E8000, 0x0574E7E, 0x0479835,
742     0x0135F94, 0x026EE8C, 0x041DD81, 0x04C0418, 0x04C0418, 0x083BB03,
743     0x09BBA32, 0x08F1219, 0x074E5FB, 0x03D1D45, 0x03A72FD, 0x023C486,
744     0x03EB2B9, 0x05DC28A, 0x0BB8514, 0x0FACAE4, 0x0CAE638, 0x08FAA04,
745     0x032B98E, 0x04DF15A, 0x09BE2B4, 0x05443EE,
746 };
747
748 static const int32_t qmat33[MAT_SIZE] = {
749     0x0040000, 0x031EEF6, 0x018F77B, 0x031F9DD, 0x024CB50, 0x031F9DD,
750     0x042249C, 0x032F83C, 0x065F078, 0x042249C, 0x03A8000, 0x05BBE34,
751     0x063DDA2, 0x02DDF1A, 0x03A8000, 0x02DF691, 0x0289228, 0x05D5567,
752     0x05D5567, 0x051244F, 0x02DF691, 0x066493B, 0x05D2D54, 0x0759736,
753     0x07C7107, 0x0759736, 0x02E96AA, 0x033249E, 0x01B5065, 0x024502E,
754     0x05EB33D, 0x06C797A, 0x06C797A, 0x05EB33D, 0x09140B9, 0x06D4193,
755     0x1396AF0, 0x1218F6B, 0x0AE9CFD, 0x0BD0000, 0x0AE9CFD, 0x090C7B6,
756     0x0272D5E, 0x04DDD19, 0x0852991, 0x098082F, 0x098082F, 0x10A5322,
757     0x1377463, 0x23F33DD, 0x1D12876, 0x0F5D8A9, 0x0E8943B, 0x08FCCF7,
758     0x07E045D, 0x0BC7A00, 0x178F401, 0x1F81173, 0x197BFE2, 0x120A572,
759     0x065EFF9, 0x09BE2B4, 0x137C568, 0x0A887DD,
760 };
761
762 static const int32_t qmat34[MAT_SIZE] = {
763     0x0040000, 0x0377B4A, 0x01BBDA5, 0x0378768, 0x028E1E8, 0x0378768,
764     0x034EA16, 0x028C697, 0x0518D2D, 0x034EA16, 0x02D0000, 0x04964F6,
765     0x051166B, 0x024B27B, 0x02D0000, 0x025520D, 0x020F134, 0x048FA15,
766     0x048FA15, 0x041E268, 0x025520D, 0x071A6B4, 0x06787B3, 0x082A803,
767     0x08A44B2, 0x082A803, 0x033C3D9, 0x038D35A, 0x01E5954, 0x0285917,
768     0x06938EF, 0x07886FA, 0x07886FA, 0x06938EF, 0x0A1645B, 0x079654E,
769     0x0AC3522, 0x09F195A, 0x06101E2, 0x0690000, 0x06101E2, 0x04F8CAD,
770     0x01586A4, 0x02B41F1, 0x0492F02, 0x0547653, 0x0547653, 0x0925E03,
771     0x0AD07C5, 0x09EF7AA, 0x081E317, 0x043E7A2, 0x040F18B, 0x027BDEB,
772     0x045AA23, 0x0682D7D, 0x0D05AFA, 0x116A88B, 0x0E17194, 0x09FA076,
773     0x0385C65, 0x0569A64, 0x0AD34C8, 0x05DA0D0,
774 };
775
776 static const int32_t qmat35[MAT_SIZE] = {
777     0x0040000, 0x0377B4A, 0x01BBDA5, 0x0378768, 0x028E1E8, 0x0378768,
778     0x0497E02, 0x038A20A, 0x0714414, 0x0497E02, 0x0410000, 0x065EFC8,
779     0x06EF642, 0x032F7E4, 0x0410000, 0x03311F7, 0x02D142C, 0x067B439,
780     0x067B439, 0x05A2858, 0x03311F7, 0x071A6B4, 0x06787B3, 0x082A803,
781     0x08A44B2, 0x082A803, 0x033C3D9, 0x038D35A, 0x01E5954, 0x0285917,
782     0x06938EF, 0x07886FA, 0x07886FA, 0x06938EF, 0x0A1645B, 0x079654E,
783     0x15C3DEF, 0x141BBCC, 0x0C203C3, 0x0D20000, 0x0C203C3, 0x0A0DDE6,
784     0x02B87BE, 0x05683E3, 0x093F54C, 0x0A8ECA7, 0x0A8ECA7, 0x127EA97,
785     0x15A0F8B, 0x27F1D2F, 0x204D79F, 0x111299F, 0x1026BD0, 0x09FC74C,
786     0x08C04D9, 0x0D16B1D, 0x1A2D63A, 0x2301364, 0x1C50E18, 0x140B7D4,
787     0x0714386, 0x0AD34C8, 0x15A6990, 0x0BB41A0,
788 };
789
790 static const int32_t qmat36[MAT_SIZE] = {
791     0x0040000, 0x03D079E, 0x01E83CF, 0x03D14F2, 0x02CF87F, 0x03D14F2,
792     0x03A34B2, 0x02CDA72, 0x059B4E5, 0x03A34B2, 0x0318000, 0x050BBDC,
793     0x0593243, 0x0285DEE, 0x0318000, 0x0290D75, 0x0243C86, 0x050464B,
794     0x050464B, 0x048790C, 0x0290D75, 0x07D042C, 0x071E211, 0x08FB8D0,
795     0x098185E, 0x08FB8D0, 0x038F109, 0x03E8216, 0x0216242, 0x02C6200,
796     0x073BEA0, 0x0849479, 0x0849479, 0x073BEA0, 0x0B187FE, 0x0858909,
797     0x0BD6DA5, 0x0AF0249, 0x06AB545, 0x0738000, 0x06AB545, 0x0578125,
798     0x017ADB5, 0x02F9556, 0x0508082, 0x05CE88F, 0x05CE88F, 0x0A10104,
799     0x0BE5559, 0x0AEDD3B, 0x08EE032, 0x04AB1FF, 0x0477019, 0x02BB74F,
800     0x04CA18D, 0x0729870, 0x0E530E0, 0x1328633, 0x0F7FCEF, 0x0AF96E8,
801     0x03DFF3C, 0x05F436E, 0x0BE86DC, 0x066FDB2,
802 };
803
804 static const int32_t qmat37[MAT_SIZE] = {
805     0x0040000, 0x03D079E, 0x01E83CF, 0x03D14F2, 0x02CF87F, 0x03D14F2,
806     0x050D769, 0x03E4BD8, 0x07C97B0, 0x050D769, 0x0478000, 0x070215C,
807     0x07A0EE2, 0x03810AE, 0x0478000, 0x0382D5C, 0x0319630, 0x072130C,
808     0x072130C, 0x0632C61, 0x0382D5C, 0x07D042C, 0x071E211, 0x08FB8D0,
809     0x098185E, 0x08FB8D0, 0x038F109, 0x03E8216, 0x0216242, 0x02C6200,
810     0x073BEA0, 0x0849479, 0x0849479, 0x073BEA0, 0x0B187FE, 0x0858909,
811     0x17F10ED, 0x161E82D, 0x0D56A8A, 0x0E70000, 0x0D56A8A, 0x0B0F417,
812     0x02FE21E, 0x05F2AAD, 0x0A2C106, 0x0B9D11E, 0x0B9D11E, 0x145820D,
813     0x17CAAB2, 0x2BF0680, 0x23886C9, 0x12C7A95, 0x11C4364, 0x0AFC1A0,
814     0x09A0555, 0x0E65C39, 0x1CCB873, 0x2681554, 0x1F25C4D, 0x160CA36,
815     0x07C9713, 0x0BE86DC, 0x17D0DB8, 0x0CDFB63,
816 };
817
818 static const int32_t qmat38[MAT_SIZE] = {
819     0x0040000, 0x04293F2, 0x02149F9, 0x042A27C, 0x0310F16, 0x042A27C,
820     0x03F7F4E, 0x030EE4E, 0x061DC9D, 0x03F7F4E, 0x0360000, 0x05812C1,
821     0x0614E1A, 0x02C0961, 0x0360000, 0x02CC8DC, 0x02787D8, 0x0579280,
822     0x0579280, 0x04F0FAF, 0x02CC8DC, 0x08861A5, 0x07C3C70, 0x09CC99D,
823     0x0A5EC09, 0x09CC99D, 0x03E1E38, 0x04430D2, 0x0246B31, 0x0306AE8,
824     0x07E4452, 0x090A1F9, 0x090A1F9, 0x07E4452, 0x0C1ABA1, 0x091ACC4,
825     0x0CEA628, 0x0BEEB39, 0x07468A8, 0x07E0000, 0x07468A8, 0x05F759C,
826     0x019D4C5, 0x033E8BB, 0x057D202, 0x0655ACA, 0x0655ACA, 0x0AFA404,
827     0x0CFA2ED, 0x0BEC2CC, 0x09BDD4E, 0x0517C5D, 0x04DEEA7, 0x02FB0B3,
828     0x05398F7, 0x07D0363, 0x0FA06C5, 0x14E63DA, 0x10E884B, 0x0BF8D5B,
829     0x043A213, 0x067EC78, 0x0CFD8F0, 0x0705A93,
830 };
831
832 static const int32_t qmat39[MAT_SIZE] = {
833     0x0040000, 0x04293F2, 0x02149F9, 0x042A27C, 0x0310F16, 0x042A27C,
834     0x05830D0, 0x043F5A6, 0x087EB4B, 0x05830D0, 0x04E0000, 0x07A52F0,
835     0x0852782, 0x03D2978, 0x04E0000, 0x03D48C2, 0x0361835, 0x07C71DE,
836     0x07C71DE, 0x06C3069, 0x03D48C2, 0x08861A5, 0x07C3C70, 0x09CC99D,
837     0x0A5EC09, 0x09CC99D, 0x03E1E38, 0x04430D2, 0x0246B31, 0x0306AE8,
838     0x07E4452, 0x090A1F9, 0x090A1F9, 0x07E4452, 0x0C1ABA1, 0x091ACC4,
839     0x1A1E3EB, 0x182148F, 0x0E8D151, 0x0FC0000, 0x0E8D151, 0x0C10A47,
840     0x0343C7D, 0x067D176, 0x0B18CC1, 0x0CAB595, 0x0CAB595, 0x1631982,
841     0x19F45DA, 0x2FEEFD2, 0x26C35F2, 0x147CB8C, 0x1361AF9, 0x0BFBBF4,
842     0x0A805D1, 0x0FB4D56, 0x1F69AAC, 0x2A01744, 0x21FAA83, 0x180DC98,
843     0x087EAA1, 0x0CFD8F0, 0x19FB1E0, 0x0E0B527,
844 };
845
846 static const int32_t qmat3A[MAT_SIZE] = {
847     0x0040000, 0x0482046, 0x0241023, 0x0483007, 0x03525AD, 0x0483007,
848     0x044C9EA, 0x035022A, 0x06A0454, 0x044C9EA, 0x03A8000, 0x05F69A7,
849     0x06969F2, 0x02FB4D3, 0x03A8000, 0x0308444, 0x02AD32A, 0x05EDEB5,
850     0x05EDEB5, 0x055A653, 0x0308444, 0x093BF1D, 0x08696CF, 0x0A9DA6A,
851     0x0B3BFB4, 0x0A9DA6A, 0x0434B67, 0x049DF8E, 0x0277420, 0x03473D1,
852     0x088CA03, 0x09CAF78, 0x09CAF78, 0x088CA03, 0x0D1CF44, 0x09DD07F,
853     0x0DFDEAC, 0x0CED428, 0x07E1C0C, 0x0888000, 0x07E1C0C, 0x0676A14,
854     0x01BFBD5, 0x0383C20, 0x05F2382, 0x06DCD06, 0x06DCD06, 0x0BE4704,
855     0x0E0F081, 0x0CEA85D, 0x0A8DA6A, 0x05846BA, 0x0546D35, 0x033AA17,
856     0x05A9060, 0x0876E56, 0x10EDCAB, 0x16A4182, 0x12513A7, 0x0CF83CD,
857     0x04944EA, 0x0709582, 0x0E12B04, 0x079B775,
858 };
859
860 static const int32_t qmat3B[MAT_SIZE] = {
861     0x0040000, 0x0482046, 0x0241023, 0x0483007, 0x03525AD, 0x0483007,
862     0x05F8A36, 0x0499F73, 0x0933EE7, 0x05F8A36, 0x0548000, 0x0848484,
863     0x0904022, 0x0424242, 0x0548000, 0x0426427, 0x03A9A39, 0x086D0B1,
864     0x086D0B1, 0x0753472, 0x0426427, 0x093BF1D, 0x08696CF, 0x0A9DA6A,
865     0x0B3BFB4, 0x0A9DA6A, 0x0434B67, 0x049DF8E, 0x0277420, 0x03473D1,
866     0x088CA03, 0x09CAF78, 0x09CAF78, 0x088CA03, 0x0D1CF44, 0x09DD07F,
867     0x1C4B6EA, 0x1A240F0, 0x0FC3818, 0x1110000, 0x0FC3818, 0x0D12078,
868     0x03896DD, 0x0707840, 0x0C0587C, 0x0DB9A0C, 0x0DB9A0C, 0x180B0F8,
869     0x1C1E101, 0x33ED923, 0x29FE51C, 0x1631C82, 0x14FF28E, 0x0CFB649,
870     0x0B6064D, 0x1103E72, 0x2207CE5, 0x2D81935, 0x24CF8B9, 0x1A0EEFA,
871     0x0933E2E, 0x0E12B04, 0x1C25608, 0x0F36EEA,
872 };
873
874 static const int32_t qmat3C[MAT_SIZE] = {
875     0x0040000, 0x04DAC9A, 0x026D64D, 0x04DBD91, 0x0393C44, 0x04DBD91,
876     0x04A1486, 0x0391606, 0x0722C0C, 0x04A1486, 0x03F0000, 0x066C08C,
877     0x07185C9, 0x0336046, 0x03F0000, 0x0343FAC, 0x02E1E7C, 0x0662AEB,
878     0x0662AEB, 0x05C3CF7, 0x0343FAC, 0x09F1C95, 0x090F12D, 0x0B6EB37,
879     0x0C19360, 0x0B6EB37, 0x0487897, 0x04F8E4B, 0x02A7D0F, 0x0387CBA,
880     0x0934FB5, 0x0A8BCF7, 0x0A8BCF7, 0x0934FB5, 0x0E1F2E6, 0x0A9F43A,
881     0x0F1172F, 0x0DEBD17, 0x087CF6F, 0x0930000, 0x087CF6F, 0x06F5E8C,
882     0x01E22E6, 0x03C8F85, 0x0667502, 0x0763F41, 0x0763F41, 0x0CCEA05,
883     0x0F23E14, 0x0DE8DEE, 0x0B5D786, 0x05F1117, 0x05AEBC3, 0x037A37C,
884     0x06187CA, 0x091D948, 0x123B291, 0x1861F29, 0x13B9F02, 0x0DF7A3F,
885     0x04EE7C1, 0x0793E8C, 0x0F27D18, 0x0831457,
886 };
887
888 static const int32_t qmat3D[MAT_SIZE] = {
889     0x0040000, 0x04DAC9A, 0x026D64D, 0x04DBD91, 0x0393C44, 0x04DBD91,
890     0x066E39D, 0x04F4941, 0x09E9282, 0x066E39D, 0x05B0000, 0x08EB618,
891     0x09B58C2, 0x0475B0C, 0x05B0000, 0x0477F8D, 0x03F1C3D, 0x0912F83,
892     0x0912F83, 0x07E387B, 0x0477F8D, 0x09F1C95, 0x090F12D, 0x0B6EB37,
893     0x0C19360, 0x0B6EB37, 0x0487897, 0x04F8E4B, 0x02A7D0F, 0x0387CBA,
894     0x0934FB5, 0x0A8BCF7, 0x0A8BCF7, 0x0934FB5, 0x0E1F2E6, 0x0A9F43A,
895     0x1E789E8, 0x1C26D51, 0x10F9EDE, 0x1260000, 0x10F9EDE, 0x0E136A9,
896     0x03CF13D, 0x0791F0A, 0x0CF2437, 0x0EC7E83, 0x0EC7E83, 0x19E486D,
897     0x1E47C29, 0x37EC275, 0x2D39446, 0x17E6D78, 0x169CA23, 0x0DFB09D,
898     0x0C406C9, 0x1252F8F, 0x24A5F1E, 0x3101B25, 0x27A46EE, 0x1C1015C,
899     0x09E91BC, 0x0F27D18, 0x1E4FA30, 0x10628AD,
900 };
901
902 static const int32_t qmat3E[MAT_SIZE] = {
903     0x0040000, 0x058C543, 0x02C62A1, 0x058D8A6, 0x0416973, 0x058D8A6,
904     0x054A9BD, 0x0413DBE, 0x0827B7B, 0x054A9BD, 0x0480000, 0x0756E57,
905     0x081BD78, 0x03AB72B, 0x0480000, 0x03BB67B, 0x034B520, 0x074C355,
906     0x074C355, 0x0696A3F, 0x03BB67B, 0x0B5D786, 0x0A5A5EB, 0x0D10CD2,
907     0x0DD3AB7, 0x0D10CD2, 0x052D2F5, 0x05AEBC3, 0x0308EEC, 0x0408E8B,
908     0x0A85B18, 0x0C0D7F6, 0x0C0D7F6, 0x0A85B18, 0x1023A2C, 0x0C23BB1,
909     0x1138836, 0x0FE8EF6, 0x09B3636, 0x0A80000, 0x09B3636, 0x07F477B,
910     0x0227107, 0x045364F, 0x0751803, 0x08723B8, 0x08723B8, 0x0EA3005,
911     0x114D93C, 0x0FE5910, 0x0CFD1BE, 0x06CA5D1, 0x067E8DF, 0x03F9644,
912     0x06F769E, 0x0A6AF2E, 0x14D5E5C, 0x1BDDA78, 0x168B5B9, 0x0FF6724,
913     0x05A2D6E, 0x08A90A0, 0x1152140, 0x095CE1A,
914 };
915
916 static const int32_t qmat3F[MAT_SIZE] = {
917     0x0040000, 0x058C543, 0x02C62A1, 0x058D8A6, 0x0416973, 0x058D8A6,
918     0x075966A, 0x05A9CDD, 0x0B539BA, 0x075966A, 0x0680000, 0x0A31940,
919     0x0B18A03, 0x0518CA0, 0x0680000, 0x051B658, 0x0482046, 0x0A5ED28,
920     0x0A5ED28, 0x090408D, 0x051B658, 0x0B5D786, 0x0A5A5EB, 0x0D10CD2,
921     0x0DD3AB7, 0x0D10CD2, 0x052D2F5, 0x05AEBC3, 0x0308EEC, 0x0408E8B,
922     0x0A85B18, 0x0C0D7F6, 0x0C0D7F6, 0x0A85B18, 0x1023A2C, 0x0C23BB1,
923     0x22D2FE4, 0x202C614, 0x1366C6C, 0x1500000, 0x1366C6C, 0x101630A,
924     0x045A5FD, 0x08A6C9E, 0x0ECBBAC, 0x10E4771, 0x10E4771, 0x1D97758,
925     0x229B278, 0x3FE9518, 0x33AF299, 0x1B50F65, 0x19D794C, 0x0FFA546,
926     0x0E007C1, 0x14F11C8, 0x29E2390, 0x3801F06, 0x2D4E359, 0x2012620,
927     0x0B538D6, 0x1152140, 0x22A4280, 0x12B9C33,
928 };
929
930 static const int32_t qmat40[MAT_SIZE] = {
931     0x0040000, 0x063DDEB, 0x031EEF6, 0x063F3BB, 0x04996A1, 0x063F3BB,
932     0x05F3EF5, 0x0496575, 0x092CAEB, 0x05F3EF5, 0x0510000, 0x0841C22,
933     0x091F527, 0x0420E11, 0x0510000, 0x0432D4B, 0x03B4BC4, 0x0835BC0,
934     0x0835BC0, 0x0769787, 0x0432D4B, 0x0CC9277, 0x0BA5AA8, 0x0EB2E6C,
935     0x0F8E20D, 0x0EB2E6C, 0x05D2D54, 0x066493B, 0x036A0CA, 0x048A05C,
936     0x0BD667B, 0x0D8F2F5, 0x0D8F2F5, 0x0BD667B, 0x1228171, 0x0DA8327,
937     0x135F93D, 0x11E60D5, 0x0AE9CFD, 0x0BD0000, 0x0AE9CFD, 0x08F306A,
938     0x026BF28, 0x04DDD19, 0x083BB03, 0x098082F, 0x098082F, 0x1077606,
939     0x1377463, 0x11E2432, 0x0E9CBF6, 0x07A3A8B, 0x074E5FB, 0x047890D,
940     0x07D6572, 0x0BB8514, 0x1770A28, 0x1F595C7, 0x195CC70, 0x11F5408,
941     0x065731C, 0x09BE2B4, 0x137C568, 0x0A887DD,
942 };
943
944 static const int32_t qmat41[MAT_SIZE] = {
945     0x0040000, 0x063DDEB, 0x031EEF6, 0x063F3BB, 0x04996A1, 0x063F3BB,
946     0x0844938, 0x065F078, 0x0CBE0F1, 0x0844938, 0x0750000, 0x0B77C68,
947     0x0C7BB43, 0x05BBE34, 0x0750000, 0x05BED23, 0x051244F, 0x0BAAACD,
948     0x0BAAACD, 0x0A2489E, 0x05BED23, 0x0CC9277, 0x0BA5AA8, 0x0EB2E6C,
949     0x0F8E20D, 0x0EB2E6C, 0x05D2D54, 0x066493B, 0x036A0CA, 0x048A05C,
950     0x0BD667B, 0x0D8F2F5, 0x0D8F2F5, 0x0BD667B, 0x1228171, 0x0DA8327,
951     0x272D5E1, 0x2431ED6, 0x15D39F9, 0x17A0000, 0x15D39F9, 0x1218F6B,
952     0x04E5ABC, 0x09BBA32, 0x10A5322, 0x130105F, 0x130105F, 0x214A643,
953     0x26EE8C7, 0x47E67BB, 0x3A250EC, 0x1EBB151, 0x1D12876, 0x11F99EF,
954     0x0FC08BA, 0x178F401, 0x2F1E802, 0x3F022E7, 0x32F7FC4, 0x2414AE4,
955     0x0CBDFF1, 0x137C568, 0x26F8AD0, 0x1510FBA,
956 };
957
958 static const int32_t qmat42[MAT_SIZE] = {
959     0x0040000, 0x06EF693, 0x0377B4A, 0x06F0ECF, 0x051C3CF, 0x06F0ECF,
960     0x069D42D, 0x0518D2D, 0x0A31A5A, 0x069D42D, 0x05A0000, 0x092C9ED,
961     0x0A22CD6, 0x04964F6, 0x05A0000, 0x04AA41A, 0x041E268, 0x091F42B,
962     0x091F42B, 0x083C4CF, 0x04AA41A, 0x0E34D68, 0x0CF0F65, 0x1055006,
963     0x1148964, 0x1055006, 0x06787B3, 0x071A6B4, 0x03CB2A7, 0x050B22E,
964     0x0D271DE, 0x0F10DF4, 0x0F10DF4, 0x0D271DE, 0x142C8B7, 0x0F2CA9D,
965     0x1586A43, 0x13E32B4, 0x0C203C3, 0x0D20000, 0x0C203C3, 0x09F195A,
966     0x02B0D48, 0x05683E3, 0x0925E03, 0x0A8ECA7, 0x0A8ECA7, 0x124BC06,
967     0x15A0F8B, 0x13DEF54, 0x103C62D, 0x087CF45, 0x081E317, 0x04F7BD5,
968     0x08B5446, 0x0D05AFA, 0x1A0B5F3, 0x22D5116, 0x1C2E328, 0x13F40EC,
969     0x070B8CA, 0x0AD34C8, 0x15A6990, 0x0BB41A0,
970 };
971
972 static const int32_t qmat43[MAT_SIZE] = {
973     0x0040000, 0x06EF693, 0x0377B4A, 0x06F0ECF, 0x051C3CF, 0x06F0ECF,
974     0x092FC05, 0x0714414, 0x0E28828, 0x092FC05, 0x0820000, 0x0CBDF90,
975     0x0DDEC84, 0x065EFC8, 0x0820000, 0x06623EE, 0x05A2858, 0x0CF6872,
976     0x0CF6872, 0x0B450B0, 0x06623EE, 0x0E34D68, 0x0CF0F65, 0x1055006,
977     0x1148964, 0x1055006, 0x06787B3, 0x071A6B4, 0x03CB2A7, 0x050B22E,
978     0x0D271DE, 0x0F10DF4, 0x0F10DF4, 0x0D271DE, 0x142C8B7, 0x0F2CA9D,
979     0x2B87BDD, 0x2837799, 0x1840787, 0x1A40000, 0x1840787, 0x141BBCC,
980     0x0570F7C, 0x0AD07C5, 0x127EA97, 0x151D94D, 0x151D94D, 0x24FD52E,
981     0x2B41F16, 0x4FE3A5E, 0x409AF3F, 0x222533E, 0x204D79F, 0x13F8E97,
982     0x11809B2, 0x1A2D63A, 0x345AC74, 0x46026C7, 0x38A1C30, 0x2816FA7,
983     0x0E2870C, 0x15A6990, 0x2B4D320, 0x1768340,
984 };
985
986 static const int32_t qmat44[MAT_SIZE] = {
987     0x0040000, 0x07A0F3C, 0x03D079E, 0x07A29E4, 0x059F0FE, 0x07A29E4,
988     0x0746964, 0x059B4E5, 0x0B369CA, 0x0746964, 0x0630000, 0x0A177B8,
989     0x0B26485, 0x050BBDC, 0x0630000, 0x0521AE9, 0x048790C, 0x0A08C95,
990     0x0A08C95, 0x090F217, 0x0521AE9, 0x0FA0858, 0x0E3C423, 0x11F71A0,
991     0x13030BB, 0x11F71A0, 0x071E211, 0x07D042C, 0x042C485, 0x058C3FF,
992     0x0E77D40, 0x10928F2, 0x10928F2, 0x0E77D40, 0x1630FFC, 0x10B1213,
993     0x17ADB4A, 0x15E0492, 0x0D56A8A, 0x0E70000, 0x0D56A8A, 0x0AF0249,
994     0x02F5B69, 0x05F2AAD, 0x0A10104, 0x0B9D11E, 0x0B9D11E, 0x1420207,
995     0x17CAAB2, 0x15DBA76, 0x11DC065, 0x09563FF, 0x08EE032, 0x0576E9E,
996     0x0994319, 0x0E530E0, 0x1CA61BF, 0x2650C65, 0x1EFF9DF, 0x15F2DD1,
997     0x07BFE78, 0x0BE86DC, 0x17D0DB8, 0x0CDFB63,
998 };
999
1000 static const int32_t qmat45[MAT_SIZE] = {
1001     0x0040000, 0x07A0F3C, 0x03D079E, 0x07A29E4, 0x059F0FE, 0x07A29E4,
1002     0x0A1AED2, 0x07C97B0, 0x0F92F5F, 0x0A1AED2, 0x08F0000, 0x0E042B8,
1003     0x0F41DC4, 0x070215C, 0x08F0000, 0x0705AB9, 0x0632C61, 0x0E42617,
1004     0x0E42617, 0x0C658C1, 0x0705AB9, 0x0FA0858, 0x0E3C423, 0x11F71A0,
1005     0x13030BB, 0x11F71A0, 0x071E211, 0x07D042C, 0x042C485, 0x058C3FF,
1006     0x0E77D40, 0x10928F2, 0x10928F2, 0x0E77D40, 0x1630FFC, 0x10B1213,
1007     0x2FE21DA, 0x2C3D05B, 0x1AAD514, 0x1CE0000, 0x1AAD514, 0x161E82D,
1008     0x05FC43B, 0x0BE5559, 0x145820D, 0x173A23B, 0x173A23B, 0x28B0419,
1009     0x2F95565, 0x57E0D01, 0x4710D92, 0x258F52A, 0x23886C9, 0x15F8340,
1010     0x1340AAA, 0x1CCB873, 0x39970E6, 0x4D02AA8, 0x3E4B89B, 0x2C1946B,
1011     0x0F92E27, 0x17D0DB8, 0x2FA1B6F, 0x19BF6C7,
1012 };
1013
1014 static const int32_t qmat46[MAT_SIZE] = {
1015     0x0040000, 0x08527E4, 0x04293F2, 0x08544F9, 0x0621E2C, 0x08544F9,
1016     0x07EFE9C, 0x061DC9D, 0x0C3B939, 0x07EFE9C, 0x06C0000, 0x0B02582,
1017     0x0C29C34, 0x05812C1, 0x06C0000, 0x05991B9, 0x04F0FAF, 0x0AF2500,
1018     0x0AF2500, 0x09E1F5F, 0x05991B9, 0x110C349, 0x0F878E0, 0x139933B,
1019     0x14BD812, 0x139933B, 0x07C3C70, 0x08861A5, 0x048D662, 0x060D5D0,
1020     0x0FC88A3, 0x12143F1, 0x12143F1, 0x0FC88A3, 0x1835742, 0x1235989,
1021     0x19D4C51, 0x17DD671, 0x0E8D151, 0x0FC0000, 0x0E8D151, 0x0BEEB39,
1022     0x033A98A, 0x067D176, 0x0AFA404, 0x0CAB595, 0x0CAB595, 0x15F4808,
1023     0x19F45DA, 0x17D8598, 0x137BA9D, 0x0A2F8B9, 0x09BDD4E, 0x05F6166,
1024     0x0A731ED, 0x0FA06C5, 0x1F40D8B, 0x29CC7B4, 0x21D1096, 0x17F1AB5,
1025     0x0874425, 0x0CFD8F0, 0x19FB1E0, 0x0E0B527,
1026 };
1027
1028 static const int32_t qmat47[MAT_SIZE] = {
1029     0x0040000, 0x08527E4, 0x04293F2, 0x08544F9, 0x0621E2C, 0x08544F9,
1030     0x0B061A0, 0x087EB4B, 0x10FD696, 0x0B061A0, 0x09C0000, 0x0F4A5E0,
1031     0x10A4F04, 0x07A52F0, 0x09C0000, 0x07A9184, 0x06C3069, 0x0F8E3BC,
1032     0x0F8E3BC, 0x0D860D3, 0x07A9184, 0x110C349, 0x0F878E0, 0x139933B,
1033     0x14BD812, 0x139933B, 0x07C3C70, 0x08861A5, 0x048D662, 0x060D5D0,
1034     0x0FC88A3, 0x12143F1, 0x12143F1, 0x0FC88A3, 0x1835742, 0x1235989,
1035     0x343C7D6, 0x304291D, 0x1D1A2A2, 0x1F80000, 0x1D1A2A2, 0x182148F,
1036     0x06878FB, 0x0CFA2ED, 0x1631982, 0x1956B29, 0x1956B29, 0x2C63305,
1037     0x33E8BB4, 0x5FDDFA4, 0x4D86BE5, 0x28F9717, 0x26C35F2, 0x17F77E9,
1038     0x1500BA2, 0x1F69AAC, 0x3ED3558, 0x5402E89, 0x43F5506, 0x301B92F,
1039     0x10FD541, 0x19FB1E0, 0x33F63BF, 0x1C16A4D,
1040 };
1041
1042 static const int32_t qmat48[MAT_SIZE] = {
1043     0x0040000, 0x090408D, 0x0482046, 0x090600E, 0x06A4B5A, 0x090600E,
1044     0x08993D3, 0x06A0454, 0x0D408A9, 0x08993D3, 0x0750000, 0x0BED34D,
1045     0x0D2D3E3, 0x05F69A7, 0x0750000, 0x0610888, 0x055A653, 0x0BDBD6A,
1046     0x0BDBD6A, 0x0AB4CA7, 0x0610888, 0x1277E3A, 0x10D2D9D, 0x153B4D5,
1047     0x1677F69, 0x153B4D5, 0x08696CF, 0x093BF1D, 0x04EE840, 0x068E7A2,
1048     0x1119406, 0x1395EF0, 0x1395EF0, 0x1119406, 0x1A39E87, 0x13BA0FF,
1049     0x1BFBD57, 0x19DA850, 0x0FC3818, 0x1110000, 0x0FC3818, 0x0CED428,
1050     0x037F7AB, 0x0707840, 0x0BE4704, 0x0DB9A0C, 0x0DB9A0C, 0x17C8E08,
1051     0x1C1E101, 0x19D50BB, 0x151B4D4, 0x0B08D73, 0x0A8DA6A, 0x067542F,
1052     0x0B520C1, 0x10EDCAB, 0x21DB956, 0x2D48303, 0x24A274D, 0x19F079A,
1053     0x09289D3, 0x0E12B04, 0x1C25608, 0x0F36EEA,
1054 };
1055
1056 static const int32_t qmat49[MAT_SIZE] = {
1057     0x0040000, 0x090408D, 0x0482046, 0x090600E, 0x06A4B5A, 0x090600E,
1058     0x0BF146D, 0x0933EE7, 0x1267DCE, 0x0BF146D, 0x0A90000, 0x1090908,
1059     0x1208045, 0x0848484, 0x0A90000, 0x084C84F, 0x0753472, 0x10DA161,
1060     0x10DA161, 0x0EA68E4, 0x084C84F, 0x1277E3A, 0x10D2D9D, 0x153B4D5,
1061     0x1677F69, 0x153B4D5, 0x08696CF, 0x093BF1D, 0x04EE840, 0x068E7A2,
1062     0x1119406, 0x1395EF0, 0x1395EF0, 0x1119406, 0x1A39E87, 0x13BA0FF,
1063     0x3896DD3, 0x34481E0, 0x1F8702F, 0x2220000, 0x1F8702F, 0x1A240F0,
1064     0x0712DBA, 0x0E0F081, 0x180B0F8, 0x1B73417, 0x1B73417, 0x30161F0,
1065     0x383C203, 0x67DB247, 0x53FCA38, 0x2C63904, 0x29FE51C, 0x19F6C92,
1066     0x16C0C9A, 0x2207CE5, 0x440F9CA, 0x5B0326A, 0x499F171, 0x341DDF3,
1067     0x1267C5C, 0x1C25608, 0x384AC0F, 0x1E6DDD4,
1068 };
1069
1070 static const int32_t qmat4A[MAT_SIZE] = {
1071     0x0040000, 0x09B5935, 0x04DAC9A, 0x09B7B22, 0x0727888, 0x09B7B22,
1072     0x094290B, 0x0722C0C, 0x0E45818, 0x094290B, 0x07E0000, 0x0CD8118,
1073     0x0E30B92, 0x066C08C, 0x07E0000, 0x0687F58, 0x05C3CF7, 0x0CC55D5,
1074     0x0CC55D5, 0x0B879EF, 0x0687F58, 0x13E392B, 0x121E25B, 0x16DD66F,
1075     0x18326C0, 0x16DD66F, 0x090F12D, 0x09F1C95, 0x054FA1D, 0x070F973,
1076     0x1269F69, 0x15179EF, 0x15179EF, 0x1269F69, 0x1C3E5CD, 0x153E875,
1077     0x1E22E5E, 0x1BD7A2F, 0x10F9EDE, 0x1260000, 0x10F9EDE, 0x0DEBD17,
1078     0x03C45CC, 0x0791F0A, 0x0CCEA05, 0x0EC7E83, 0x0EC7E83, 0x199D409,
1079     0x1E47C29, 0x1BD1BDD, 0x16BAF0C, 0x0BE222D, 0x0B5D786, 0x06F46F7,
1080     0x0C30F95, 0x123B291, 0x2476522, 0x30C3E52, 0x2773E04, 0x1BEF47E,
1081     0x09DCF81, 0x0F27D18, 0x1E4FA30, 0x10628AD,
1082 };
1083
1084 static const int32_t qmat4B[MAT_SIZE] = {
1085     0x0040000, 0x09B5935, 0x04DAC9A, 0x09B7B22, 0x0727888, 0x09B7B22,
1086     0x0CDC73A, 0x09E9282, 0x13D2505, 0x0CDC73A, 0x0B60000, 0x11D6C30,
1087     0x136B185, 0x08EB618, 0x0B60000, 0x08EFF19, 0x07E387B, 0x1225F06,
1088     0x1225F06, 0x0FC70F6, 0x08EFF19, 0x13E392B, 0x121E25B, 0x16DD66F,
1089     0x18326C0, 0x16DD66F, 0x090F12D, 0x09F1C95, 0x054FA1D, 0x070F973,
1090     0x1269F69, 0x15179EF, 0x15179EF, 0x1269F69, 0x1C3E5CD, 0x153E875,
1091     0x3CF13D0, 0x384DAA2, 0x21F3DBD, 0x24C0000, 0x21F3DBD, 0x1C26D51,
1092     0x079E27A, 0x0F23E14, 0x19E486D, 0x1D8FD05, 0x1D8FD05, 0x33C90DB,
1093     0x3C8F852, 0x6FD84EA, 0x5A7288B, 0x2FCDAF0, 0x2D39446, 0x1BF613A,
1094     0x1880D93, 0x24A5F1E, 0x494BE3C, 0x620364A, 0x4F48DDC, 0x38202B7,
1095     0x13D2377, 0x1E4FA30, 0x3C9F45F, 0x20C515A,
1096 };
1097
1098 static const int32_t qmat4C[MAT_SIZE] = {
1099     0x0040000, 0x1208119, 0x090408D, 0x120C01B, 0x0D496B4, 0x120C01B,
1100     0x11327A7, 0x0D408A9, 0x1A81151, 0x11327A7, 0x0EA0000, 0x17DA69B,
1101     0x1A5A7C7, 0x0BED34D, 0x0EA0000, 0x0C21110, 0x0AB4CA7, 0x17B7AD5,
1102     0x17B7AD5, 0x156994E, 0x0C21110, 0x24EFC74, 0x21A5B3B, 0x2A769A9,
1103     0x2CEFED2, 0x2A769A9, 0x10D2D9D, 0x1277E3A, 0x09DD07F, 0x0D1CF44,
1104     0x223280D, 0x272BDE0, 0x272BDE0, 0x223280D, 0x3473D0E, 0x27741FE,
1105     0x37F7AAF, 0x33B50A0, 0x1F8702F, 0x2220000, 0x1F8702F, 0x19DA850,
1106     0x06FEF56, 0x0E0F081, 0x17C8E08, 0x1B73417, 0x1B73417, 0x2F91C11,
1107     0x383C203, 0x33AA175, 0x2A369A9, 0x1611AE6, 0x151B4D4, 0x0CEA85D,
1108     0x16A4182, 0x21DB956, 0x43B72AC, 0x5A90607, 0x4944E9A, 0x33E0F34,
1109     0x12513A7, 0x1C25608, 0x384AC0F, 0x1E6DDD4,
1110 };
1111
1112 static const int32_t qmat4D[MAT_SIZE] = {
1113     0x0040000, 0x1208119, 0x090408D, 0x120C01B, 0x0D496B4, 0x120C01B,
1114     0x17E28DA, 0x1267DCE, 0x24CFB9B, 0x17E28DA, 0x1520000, 0x2121210,
1115     0x2410089, 0x1090908, 0x1520000, 0x109909D, 0x0EA68E4, 0x21B42C3,
1116     0x21B42C3, 0x1D4D1C9, 0x109909D, 0x24EFC74, 0x21A5B3B, 0x2A769A9,
1117     0x2CEFED2, 0x2A769A9, 0x10D2D9D, 0x1277E3A, 0x09DD07F, 0x0D1CF44,
1118     0x223280D, 0x272BDE0, 0x272BDE0, 0x223280D, 0x3473D0E, 0x27741FE,
1119     0x712DBA6, 0x68903C0, 0x3F0E05F, 0x4440000, 0x3F0E05F, 0x34481E0,
1120     0x0E25B75, 0x1C1E101, 0x30161F0, 0x36E682F, 0x36E682F, 0x602C3DF,
1121     0x7078406, 0xCFB648E, 0xA7F9470, 0x58C7207, 0x53FCA38, 0x33ED923,
1122     0x2D81935, 0x440F9CA, 0x881F394, 0xB6064D3, 0x933E2E2, 0x683BBE7,
1123     0x24CF8B9, 0x384AC0F, 0x709581F, 0x3CDBBA7,
1124 };
1125
1126 const int32_t *const ff_hq_quants[NUM_HQ_QUANTS][2][4] = {
1127     { { qmat00, qmat02, qmat06, qmat0E }, { qmat01, qmat03, qmat07, qmat0F } },
1128     { { qmat02, qmat06, qmat0E, qmat16 }, { qmat03, qmat07, qmat0F, qmat17 } },
1129     { { qmat04, qmat0A, qmat12, qmat1E }, { qmat05, qmat0B, qmat13, qmat1F } },
1130     { { qmat06, qmat0E, qmat16, qmat22 }, { qmat07, qmat0F, qmat17, qmat23 } },
1131     { { qmat08, qmat10, qmat1A, qmat26 }, { qmat09, qmat11, qmat1B, qmat27 } },
1132     { { qmat0A, qmat12, qmat1E, qmat2A }, { qmat0B, qmat13, qmat1F, qmat2B } },
1133     { { qmat0C, qmat14, qmat20, qmat2E }, { qmat0D, qmat15, qmat21, qmat2F } },
1134     { { qmat0E, qmat16, qmat22, qmat30 }, { qmat0F, qmat17, qmat23, qmat31 } },
1135     { { qmat16, qmat22, qmat30, qmat3E }, { qmat17, qmat23, qmat31, qmat3F } },
1136     { { qmat18, qmat24, qmat32, qmat40 }, { qmat19, qmat25, qmat33, qmat41 } },
1137     { { qmat1A, qmat26, qmat34, qmat42 }, { qmat1B, qmat27, qmat35, qmat43 } },
1138     { { qmat1C, qmat28, qmat36, qmat44 }, { qmat1D, qmat29, qmat37, qmat45 } },
1139     { { qmat1E, qmat2A, qmat38, qmat46 }, { qmat1F, qmat2B, qmat39, qmat47 } },
1140     { { qmat20, qmat2E, qmat3C, qmat4A }, { qmat21, qmat2F, qmat3D, qmat4B } },
1141     { { qmat2C, qmat3A, qmat48, qmat4C }, { qmat2D, qmat3B, qmat49, qmat4D } },
1142     { { qmat3A, qmat48, qmat4C, qmat4C }, { qmat3B, qmat49, qmat4D, qmat4D } },
1143 };
1144
1145 const uint8_t ff_hq_ac_bits[NUM_HQ_AC_ENTRIES] = {
1146      3,  3,  4,  4,  4,  5,  5,  5,  5,  5,  5,  6,  6,  6,  6,  6,
1147      6,  6,  6,  7,  7,  7,  7,  7,  7,  7,  7,  8,  8,  8,  8,  8,
1148      8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  9,  9,  9,  9,  9,
1149      9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,
1150      9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9, 10, 10, 10, 10, 10,
1151     10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
1152     10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11,
1153     11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12,
1154     12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13,
1155     13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
1156     13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
1157     13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
1158     13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
1159     13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
1160     13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 16, 16, 16, 16, 16,
1161     16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
1162     16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
1163     16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
1164     16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
1165     16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
1166     16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
1167     16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
1168     16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
1169     16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
1170     16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
1171     16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
1172     16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
1173     16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
1174     16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
1175     16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
1176     16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
1177     16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
1178     16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
1179     16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
1180     16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
1181     16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
1182     16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
1183     16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
1184     16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
1185     16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
1186     16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
1187     16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
1188     16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
1189     16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
1190     16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
1191     16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
1192     16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
1193 };
1194
1195 const uint16_t ff_hq_ac_codes[NUM_HQ_AC_ENTRIES] = {
1196     0x0000, 0x0001, 0x0004, 0x0005, 0x0006, 0x000E, 0x000F, 0x0010,
1197     0x0011, 0x0012, 0x0013, 0x0028, 0x0029, 0x002A, 0x002B, 0x002C,
1198     0x002D, 0x002E, 0x002F, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064,
1199     0x0065, 0x0066, 0x0067, 0x00D0, 0x00D1, 0x00D2, 0x00D3, 0x00D4,
1200     0x00D5, 0x00D6, 0x00D7, 0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC,
1201     0x00DD, 0x00DE, 0x00DF, 0x01C0, 0x01C1, 0x01C2, 0x01C3, 0x01C4,
1202     0x01C5, 0x01C6, 0x01C7, 0x01C8, 0x01C9, 0x01CA, 0x01CB, 0x01CC,
1203     0x01CD, 0x01CE, 0x01CF, 0x01D0, 0x01D1, 0x01D2, 0x01D3, 0x01D4,
1204     0x01D5, 0x01D6, 0x01D7, 0x01D8, 0x01D9, 0x01DA, 0x01DB, 0x01DC,
1205     0x01DD, 0x01DE, 0x01DF, 0x03C0, 0x03C1, 0x03C2, 0x03C3, 0x03C4,
1206     0x03C5, 0x03C6, 0x03C7, 0x03C8, 0x03C9, 0x03CA, 0x03CB, 0x03CC,
1207     0x03CD, 0x03CE, 0x03CF, 0x03D0, 0x03D1, 0x03D2, 0x03D3, 0x03D4,
1208     0x03D5, 0x03D6, 0x03D7, 0x03D8, 0x03D9, 0x03DA, 0x03DB, 0x03DC,
1209     0x03DD, 0x03DE, 0x03DF, 0x07C0, 0x07C1, 0x07C2, 0x07C3, 0x07C4,
1210     0x07C5, 0x07C6, 0x07C7, 0x07C8, 0x07C9, 0x07CA, 0x07CB, 0x07CC,
1211     0x07CD, 0x07CE, 0x07CF, 0x0FA0, 0x0FA1, 0x0FA2, 0x0FA3, 0x0FA4,
1212     0x0FA5, 0x0FA6, 0x0FA7, 0x0FA8, 0x0FA9, 0x0FAA, 0x0FAB, 0x0FAC,
1213     0x0FAD, 0x0FAE, 0x0FAF, 0x1F60, 0x1F61, 0x1F62, 0x1F63, 0x1F64,
1214     0x1F65, 0x1F66, 0x1F67, 0x1F68, 0x1F69, 0x1F6A, 0x1F6B, 0x1F6C,
1215     0x1F6D, 0x1F6E, 0x1F6F, 0x1F70, 0x1F71, 0x1F72, 0x1F73, 0x1F74,
1216     0x1F75, 0x1F76, 0x1F77, 0x1F78, 0x1F79, 0x1F7A, 0x1F7B, 0x1F7C,
1217     0x1F7D, 0x1F7E, 0x1F7F, 0x1F80, 0x1F81, 0x1F82, 0x1F83, 0x1F84,
1218     0x1F85, 0x1F86, 0x1F87, 0x1F88, 0x1F89, 0x1F8A, 0x1F8B, 0x1F8C,
1219     0x1F8D, 0x1F8E, 0x1F8F, 0x1F90, 0x1F91, 0x1F92, 0x1F93, 0x1F94,
1220     0x1F95, 0x1F96, 0x1F97, 0x1F98, 0x1F99, 0x1F9A, 0x1F9B, 0x1F9C,
1221     0x1F9D, 0x1F9E, 0x1F9F, 0x1FA0, 0x1FA1, 0x1FA2, 0x1FA3, 0x1FA4,
1222     0x1FA5, 0x1FA6, 0x1FA7, 0x1FA8, 0x1FA9, 0x1FAA, 0x1FAB, 0x1FAC,
1223     0x1FAD, 0x1FAE, 0x1FAF, 0x1FB0, 0x1FB1, 0x1FB2, 0x1FB3, 0x1FB4,
1224     0x1FB5, 0x1FB6, 0x1FB7, 0x1FB8, 0x1FB9, 0x1FBA, 0x1FBB, 0x1FBC,
1225     0x1FBD, 0x1FBE, 0x1FBF, 0xFE00, 0xFE02, 0xFE03, 0xFE04, 0xFE05,
1226     0xFE06, 0xFE07, 0xFE08, 0xFE09, 0xFE0A, 0xFE0B, 0xFE0C, 0xFE0D,
1227     0xFE0E, 0xFE0F, 0xFE10, 0xFE11, 0xFE12, 0xFE13, 0xFE14, 0xFE15,
1228     0xFE16, 0xFE17, 0xFE18, 0xFE19, 0xFE1A, 0xFE1B, 0xFE1C, 0xFE1D,
1229     0xFE1E, 0xFE1F, 0xFE20, 0xFE21, 0xFE22, 0xFE23, 0xFE24, 0xFE25,
1230     0xFE26, 0xFE27, 0xFE28, 0xFE29, 0xFE2A, 0xFE2B, 0xFE2C, 0xFE2D,
1231     0xFE2E, 0xFE2F, 0xFE30, 0xFE31, 0xFE32, 0xFE33, 0xFE34, 0xFE35,
1232     0xFE36, 0xFE37, 0xFE38, 0xFE39, 0xFE3A, 0xFE3B, 0xFE3C, 0xFE3D,
1233     0xFE3E, 0xFE3F, 0xFE40, 0xFE41, 0xFE42, 0xFE43, 0xFE44, 0xFE45,
1234     0xFE46, 0xFE47, 0xFE48, 0xFE49, 0xFE4A, 0xFE4B, 0xFE4C, 0xFE4D,
1235     0xFE4E, 0xFE4F, 0xFE50, 0xFE51, 0xFE52, 0xFE53, 0xFE54, 0xFE55,
1236     0xFE56, 0xFE57, 0xFE58, 0xFE59, 0xFE5A, 0xFE5B, 0xFE5C, 0xFE5D,
1237     0xFE5E, 0xFE5F, 0xFE60, 0xFE61, 0xFE62, 0xFE63, 0xFE64, 0xFE65,
1238     0xFE66, 0xFE67, 0xFE68, 0xFE69, 0xFE6A, 0xFE6B, 0xFE6C, 0xFE6D,
1239     0xFE6E, 0xFE6F, 0xFE70, 0xFE71, 0xFE72, 0xFE73, 0xFE74, 0xFE75,
1240     0xFE76, 0xFE77, 0xFE78, 0xFE79, 0xFE7A, 0xFE7B, 0xFE7C, 0xFE7D,
1241     0xFE7E, 0xFE7F, 0xFE80, 0xFE81, 0xFE82, 0xFE83, 0xFE84, 0xFE85,
1242     0xFE86, 0xFE87, 0xFE88, 0xFE89, 0xFE8A, 0xFE8B, 0xFE8C, 0xFE8D,
1243     0xFE8E, 0xFE8F, 0xFE90, 0xFE91, 0xFE92, 0xFE93, 0xFE94, 0xFE95,
1244     0xFE96, 0xFE97, 0xFE98, 0xFE99, 0xFE9A, 0xFE9B, 0xFE9C, 0xFE9D,
1245     0xFE9E, 0xFE9F, 0xFEA0, 0xFEA1, 0xFEA2, 0xFEA3, 0xFEA4, 0xFEA5,
1246     0xFEA6, 0xFEA7, 0xFEA8, 0xFEA9, 0xFEAA, 0xFEAB, 0xFEAC, 0xFEAD,
1247     0xFEAE, 0xFEAF, 0xFEB0, 0xFEB1, 0xFEB2, 0xFEB3, 0xFEB4, 0xFEB5,
1248     0xFEB6, 0xFEB7, 0xFEB8, 0xFEB9, 0xFEBA, 0xFEBB, 0xFEBC, 0xFEBD,
1249     0xFEBE, 0xFEBF, 0xFEC0, 0xFEC1, 0xFEC2, 0xFEC3, 0xFEC4, 0xFEC5,
1250     0xFEC6, 0xFEC7, 0xFEC8, 0xFEC9, 0xFECA, 0xFECB, 0xFECC, 0xFECD,
1251     0xFECE, 0xFECF, 0xFED0, 0xFED1, 0xFED2, 0xFED3, 0xFED4, 0xFED5,
1252     0xFED6, 0xFED7, 0xFED8, 0xFED9, 0xFEDA, 0xFEDB, 0xFEDC, 0xFEDD,
1253     0xFEDE, 0xFEDF, 0xFEE0, 0xFEE1, 0xFEE2, 0xFEE3, 0xFEE4, 0xFEE5,
1254     0xFEE6, 0xFEE7, 0xFEE8, 0xFEE9, 0xFEEA, 0xFEEB, 0xFEEC, 0xFEED,
1255     0xFEEE, 0xFEEF, 0xFEF0, 0xFEF1, 0xFEF2, 0xFEF3, 0xFEF4, 0xFEF5,
1256     0xFEF6, 0xFEF7, 0xFEF8, 0xFEF9, 0xFEFA, 0xFEFB, 0xFEFC, 0xFEFD,
1257     0xFEFE, 0xFEFF, 0xFF00, 0xFF01, 0xFF02, 0xFF03, 0xFF04, 0xFF05,
1258     0xFF06, 0xFF07, 0xFF08, 0xFF09, 0xFF0A, 0xFF0B, 0xFF0C, 0xFF0D,
1259     0xFF0E, 0xFF0F, 0xFF10, 0xFF11, 0xFF12, 0xFF13, 0xFF14, 0xFF15,
1260     0xFF16, 0xFF17, 0xFF18, 0xFF19, 0xFF1A, 0xFF1B, 0xFF1C, 0xFF1D,
1261     0xFF1E, 0xFF1F, 0xFF20, 0xFF21, 0xFF22, 0xFF23, 0xFF24, 0xFF25,
1262     0xFF26, 0xFF27, 0xFF28, 0xFF29, 0xFF2A, 0xFF2B, 0xFF2C, 0xFF2D,
1263     0xFF2E, 0xFF2F, 0xFF30, 0xFF31, 0xFF32, 0xFF33, 0xFF34, 0xFF35,
1264     0xFF36, 0xFF37, 0xFF38, 0xFF39, 0xFF3A, 0xFF3B, 0xFF3C, 0xFF3D,
1265     0xFF3E, 0xFF3F, 0xFF40, 0xFF41, 0xFF42, 0xFF43, 0xFF44, 0xFF45,
1266     0xFF46, 0xFF47, 0xFF48, 0xFF49, 0xFF4A, 0xFF4B, 0xFF4C, 0xFF4D,
1267     0xFF4E, 0xFF4F, 0xFF50, 0xFF51, 0xFF52, 0xFF53, 0xFF54, 0xFF55,
1268     0xFF56, 0xFF57, 0xFF58, 0xFF59, 0xFF5A, 0xFF5B, 0xFF5C, 0xFF5D,
1269     0xFF5E, 0xFF5F, 0xFF60, 0xFF61, 0xFF62, 0xFF63, 0xFF64, 0xFF65,
1270     0xFF66, 0xFF67, 0xFF68, 0xFF69, 0xFF6A, 0xFF6B, 0xFF6C, 0xFF6D,
1271     0xFF6E, 0xFF6F, 0xFF70, 0xFF71, 0xFF72, 0xFF73, 0xFF74, 0xFF75,
1272     0xFF76, 0xFF77, 0xFF78, 0xFF79, 0xFF7A, 0xFF7B, 0xFF7C, 0xFF7D,
1273     0xFF7E, 0xFF7F, 0xFF80, 0xFF81, 0xFF82, 0xFF83, 0xFF84, 0xFF85,
1274     0xFF86, 0xFF87, 0xFF88, 0xFF89, 0xFF8A, 0xFF8B, 0xFF8C, 0xFF8D,
1275     0xFF8E, 0xFF8F, 0xFF90, 0xFF91, 0xFF92, 0xFF93, 0xFF94, 0xFF95,
1276     0xFF96, 0xFF97, 0xFF98, 0xFF99, 0xFF9A, 0xFF9B, 0xFF9C, 0xFF9D,
1277     0xFF9E, 0xFF9F, 0xFFA0, 0xFFA1, 0xFFA2, 0xFFA3, 0xFFA4, 0xFFA5,
1278     0xFFA6, 0xFFA7, 0xFFA8, 0xFFA9, 0xFFAA, 0xFFAB, 0xFFAC, 0xFFAD,
1279     0xFFAE, 0xFFAF, 0xFFB0, 0xFFB1, 0xFFB2, 0xFFB3, 0xFFB4, 0xFFB5,
1280     0xFFB6, 0xFFB7, 0xFFB8, 0xFFB9, 0xFFBA, 0xFFBB, 0xFFBC, 0xFFBD,
1281     0xFFBE, 0xFFBF, 0xFFC0, 0xFFC1, 0xFFC2, 0xFFC3, 0xFFC4, 0xFFC5,
1282     0xFFC6, 0xFFC7, 0xFFC8, 0xFFC9, 0xFFCA, 0xFFCB, 0xFFCC, 0xFFCD,
1283     0xFFCE, 0xFFCF, 0xFFD0, 0xFFD1, 0xFFD2, 0xFFD3, 0xFFD4, 0xFFD5,
1284     0xFFD6, 0xFFD7, 0xFFD8, 0xFFD9, 0xFFDA, 0xFFDB, 0xFFDC, 0xFFDD,
1285     0xFFDE, 0xFFDF, 0xFFE0, 0xFFE1, 0xFFE2, 0xFFE3, 0xFFE4, 0xFFE5,
1286     0xFFE6, 0xFFE7, 0xFFE8, 0xFFE9, 0xFFEA, 0xFFEB, 0xFFEC, 0xFFED,
1287     0xFFEE, 0xFFEF, 0xFFF0, 0xFFF1, 0xFFF2, 0xFFF3, 0xFFF4, 0xFFF5,
1288     0xFFF6, 0xFFF7, 0xFFF8, 0xFFF9, 0xFFFA, 0xFFFB, 0xFFFC, 0xFFFD,
1289     0xFFFE, 0xFFFF,
1290 };
1291
1292 const uint8_t ff_hq_ac_skips[NUM_HQ_AC_ENTRIES] = {
1293      0,  0,  0,  0, 64,  1,  1,  0,  0,  0,  0,  2,  2,  1,  1,  0,
1294      0,  0,  0,  3,  3,  4,  4,  0,  0,  0,  0,  5,  5,  6,  6,  2,
1295      2,  1,  1,  1,  1,  0,  0,  0,  0,  0,  0,  7,  7,  8,  8,  9,
1296      9, 10, 10,  3,  3,  4,  4,  2,  2,  1,  1,  1,  1,  1,  1,  0,
1297      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 11, 11, 12, 12, 13,
1298     13, 14, 14,  5,  5,  6,  6,  3,  3,  4,  4,  2,  2,  2,  2,  1,
1299      1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  5,  5,  3,  3,  3,
1300      3,  2,  2,  1,  1,  1,  1,  1,  1,  0,  1,  6,  6,  4,  4,  3,
1301      3,  1,  1,  1,  1,  1,  1,  2,  3,  4,  5,  7,  7,  8,  8,  9,
1302      9, 10, 10,  7,  7,  8,  8,  4,  4,  3,  3,  2,  2,  2,  2,  2,
1303      2,  2,  2,  2,  2,  1,  1,  1,  1,  1,  1,  0,  1,  2,  3,  4,
1304      5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
1305     21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1306     37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1307     53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,  0,  0,  0,  0,  0,
1308      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1309      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1310      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1311      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1312      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1313      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1314      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1315      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1316      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1317      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1318      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1319      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1320      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1321      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1322      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1323      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1324      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1325      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1326      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1327      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1328      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1329      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1330      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1331      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1332      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1333      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1334      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1335      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1336      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1337      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1338      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1339      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
1340 };
1341
1342 const int16_t ff_hq_ac_syms[NUM_HQ_AC_ENTRIES] = {
1343       1,   -1,   2,   -2,   0,    1,  -1,    3,
1344      -3,    4,  -4,    1,  -1,    2,  -2,    5,
1345      -5,    6,  -6,    1,  -1,    1,  -1,    7,
1346      -7,    8,  -8,    1,  -1,    1,  -1,    2,
1347      -2,    3,  -3,    4,  -4,    9,  -9,   10,
1348     -10,   11, -11,    1,  -1,    1,  -1,    1,
1349      -1,    1,  -1,    2,  -2,    2,  -2,    3,
1350      -3,    5,  -5,    6,  -6,    7,  -7,   12,
1351     -12,   13, -13,   14, -14,   15, -15,   16,
1352     -16,   17, -17,    1,  -1,    1,  -1,    1,
1353      -1,    1,  -1,    2,  -2,    2,  -2,    3,
1354      -3,    3,  -3,    4,  -4,    5,  -5,    8,
1355      -8,   18, -18,   19, -19,   20, -20,   21,
1356     -21,   22, -22,    3,  -3,    4,  -4,    5,
1357      -5,    6,  -6,    9,  -9,   10, -10,   11,
1358     -11,    0,   0,    3,  -3,    4,  -4,    6,
1359      -6,   12, -12,   13, -13,   14, -14,    0,
1360       0,    0,   0,    2,  -2,    2,  -2,    2,
1361      -2,    2,  -2,    3,  -3,    3,  -3,    5,
1362      -5,    7,  -7,    7,  -7,    8,  -8,    9,
1363      -9,   10, -10,   11, -11,   15, -15,   16,
1364     -16,   17, -17,    0,   0,    0,   0,    0,
1365       0,    0,   0,    0,   0,    0,   0,    0,
1366       0,    0,   0,    0,   0,    0,   0,    0,
1367       0,    0,   0,    0,   0,    0,   0,    0,
1368       0,    0,   0,    0,   0,    0,   0,    0,
1369       0,    0,   0,    0,   0,    0,   0,    0,
1370       0,    0,   0,    0,   0,    0,   0,    0,
1371       0,    0,   0,    0,   0,    0,   0,    0,
1372       0,    0,   0,    0,   1,   -1,   2,   -2,
1373       3,   -3,   4,   -4,   5,   -5,   6,   -6,
1374       7,   -7,   8,   -8,   9,   -9,  10,  -10,
1375      11,  -11,  12,  -12,  13,  -13,  14,  -14,
1376      15,  -15,  16,  -16,  17,  -17,  18,  -18,
1377      19,  -19,  20,  -20,  21,  -21,  22,  -22,
1378      23,  -23,  24,  -24,  25,  -25,  26,  -26,
1379      27,  -27,  28,  -28,  29,  -29,  30,  -30,
1380      31,  -31,  32,  -32,  33,  -33,  34,  -34,
1381      35,  -35,  36,  -36,  37,  -37,  38,  -38,
1382      39,  -39,  40,  -40,  41,  -41,  42,  -42,
1383      43,  -43,  44,  -44,  45,  -45,  46,  -46,
1384      47,  -47,  48,  -48,  49,  -49,  50,  -50,
1385      51,  -51,  52,  -52,  53,  -53,  54,  -54,
1386      55,  -55,  56,  -56,  57,  -57,  58,  -58,
1387      59,  -59,  60,  -60,  61,  -61,  62,  -62,
1388      63,  -63,  64,  -64,  65,  -65,  66,  -66,
1389      67,  -67,  68,  -68,  69,  -69,  70,  -70,
1390      71,  -71,  72,  -72,  73,  -73,  74,  -74,
1391      75,  -75,  76,  -76,  77,  -77,  78,  -78,
1392      79,  -79,  80,  -80,  81,  -81,  82,  -82,
1393      83,  -83,  84,  -84,  85,  -85,  86,  -86,
1394      87,  -87,  88,  -88,  89,  -89,  90,  -90,
1395      91,  -91,  92,  -92,  93,  -93,  94,  -94,
1396      95,  -95,  96,  -96,  97,  -97,  98,  -98,
1397      99,  -99, 100, -100, 101, -101, 102, -102,
1398     103, -103, 104, -104, 105, -105, 106, -106,
1399     107, -107, 108, -108, 109, -109, 110, -110,
1400     111, -111, 112, -112, 113, -113, 114, -114,
1401     115, -115, 116, -116, 117, -117, 118, -118,
1402     119, -119, 120, -120, 121, -121, 122, -122,
1403     123, -123, 124, -124, 125, -125, 126, -126,
1404     127, -127, 128, -128, 129, -129, 130, -130,
1405     131, -131, 132, -132, 133, -133, 134, -134,
1406     135, -135, 136, -136, 137, -137, 138, -138,
1407     139, -139, 140, -140, 141, -141, 142, -142,
1408     143, -143, 144, -144, 145, -145, 146, -146,
1409     147, -147, 148, -148, 149, -149, 150, -150,
1410     151, -151, 152, -152, 153, -153, 154, -154,
1411     155, -155, 156, -156, 157, -157, 158, -158,
1412     159, -159, 160, -160, 161, -161, 162, -162,
1413     163, -163, 164, -164, 165, -165, 166, -166,
1414     167, -167, 168, -168, 169, -169, 170, -170,
1415     171, -171, 172, -172, 173, -173, 174, -174,
1416     175, -175, 176, -176, 177, -177, 178, -178,
1417     179, -179, 180, -180, 181, -181, 182, -182,
1418     183, -183, 184, -184, 185, -185, 186, -186,
1419     187, -187, 188, -188, 189, -189, 190, -190,
1420     191, -191, 192, -192, 193, -193, 194, -194,
1421     195, -195, 196, -196, 197, -197, 198, -198,
1422     199, -199, 200, -200, 201, -201, 202, -202,
1423     203, -203, 204, -204, 205, -205, 206, -206,
1424     207, -207, 208, -208, 209, -209, 210, -210,
1425     211, -211, 212, -212, 213, -213, 214, -214,
1426     215, -215, 216, -216, 217, -217, 218, -218,
1427     219, -219, 220, -220, 221, -221, 222, -222,
1428     223, -223, 224, -224, 225, -225, 226, -226,
1429     227, -227, 228, -228, 229, -229, 230, -230,
1430     231, -231, 232, -232, 233, -233, 234, -234,
1431     235, -235, 236, -236, 237, -237, 238, -238,
1432     239, -239, 240, -240, 241, -241, 242, -242,
1433     243, -243, 244, -244, 245, -245, 246, -246,
1434     247, -247, 248, -248, 249, -249, 250, -250,
1435     251, -251, 252, -252, 253, -253, 254, -254,
1436     255, -255,
1437 };
1438
1439 /* tables section - one per supported profile */
1440 static const uint8_t hq_tab_01[] = {
1441      0,  0, 12,  3, 20,  0, 28,  3, 40,  0,  0, 10, 15,  6, 20,
1442     10, 35,  6, 40, 10,  7, 13, 15, 16, 23, 13, 35, 16, 39, 13,
1443      7, 23, 10, 19, 23, 23, 27, 20, 39, 23,  2, 26, 10, 29, 22,
1444     26, 27, 24, 42, 26,  1,  0, 11,  3, 21,  0, 27,  3, 41,  0,
1445      1, 10, 16,  6, 21, 10, 35,  7, 41, 10,  6, 13, 16, 16, 22,
1446     13, 35, 17, 38, 13,  6, 23,  9, 19, 22, 23, 28, 20, 38, 23,
1447      3, 26,  9, 29, 23, 26, 28, 24, 43, 26,  2,  0, 10,  3, 22,
1448      0, 27,  4, 42,  0,  2, 10, 17,  6, 22, 10, 34,  7, 42, 10,
1449      5, 13, 17, 16, 21, 13, 34, 17, 37, 13,  5, 23,  9, 20, 21,
1450     23, 29, 20, 37, 23,  4, 26,  9, 24, 24, 26, 29, 24, 44, 26,
1451      3,  0,  9,  3, 23,  0, 28,  4, 43,  0,  3, 10, 17,  7, 23,
1452     10, 33,  7, 43, 10,  4, 13, 17, 17, 20, 13, 33, 17, 36, 13,
1453      4, 23, 10, 20, 20, 23, 30, 20, 36, 23,  5, 26, 10, 24, 25,
1454     26, 30, 24, 44, 27,  4,  0,  9,  4, 24,  0, 29,  4, 44,  0,
1455      4, 10, 16,  7, 24, 10, 32,  7, 44, 10,  3, 13, 16, 17, 19,
1456     13, 32, 17, 36, 14,  3, 23, 11, 20, 19, 23, 31, 20, 36, 18,
1457      6, 26, 11, 24, 26, 26, 31, 24, 43, 27,  5,  0, 10,  4, 25,
1458      0, 30,  4, 44,  1,  5, 10, 15,  7, 25, 10, 31,  7, 44, 11,
1459      2, 13, 15, 17, 18, 13, 31, 17, 37, 14,  2, 23, 12, 20, 18,
1460     23, 32, 20, 37, 18,  7, 26, 12, 24, 26, 27, 32, 24, 42, 27,
1461      6,  0, 11,  4, 26,  0, 31,  4, 43,  1,  6, 10, 14,  7, 26,
1462     10, 30,  7, 43, 11,  1, 13, 14, 17, 18, 14, 30, 17, 38, 14,
1463      1, 23, 13, 20, 18, 18, 33, 20, 38, 18,  8, 26, 13, 24, 25,
1464     27, 33, 24, 41, 27,  7,  0, 12,  4, 26,  1, 32,  4, 42,  1,
1465      7, 10, 13,  7, 26, 11, 29,  7, 42, 11,  0, 13, 13, 17, 19,
1466     14, 29, 17, 39, 14,  0, 23, 14, 20, 19, 18, 34, 20, 39, 18,
1467      8, 27, 14, 24, 24, 27, 34, 24, 40, 27,  8,  0, 13,  4, 25,
1468      1, 33,  4, 41,  1,  8, 10, 12,  7, 25, 11, 28,  7, 41, 11,
1469      0, 14, 12, 17, 20, 14, 28, 17, 40, 14,  0, 18, 15, 20, 20,
1470     18, 35, 20, 40, 18,  7, 27, 15, 24, 23, 27, 35, 24, 39, 27,
1471      8,  1, 14,  4, 24,  1, 34,  4, 40,  1,  8, 11, 11,  7, 24,
1472     11, 27,  7, 40, 11,  1, 14, 11, 17, 21, 14, 27, 17, 41, 14,
1473      1, 18, 16, 20, 21, 18, 35, 21, 41, 18,  6, 27, 16, 24, 22,
1474     27, 35, 25, 38, 27,  7,  1, 15,  4, 23,  1, 35,  4, 39,  1,
1475      7, 11, 10,  7, 23, 11, 27,  8, 39, 11,  2, 14, 10, 17, 22,
1476     14, 27, 12, 42, 14,  2, 18, 17, 20, 22, 18, 34, 21, 42, 18,
1477      5, 27, 17, 24, 21, 27, 34, 25, 37, 27,  6,  1, 16,  4, 22,
1478      1, 35,  5, 38,  1,  6, 11,  9,  7, 22, 11, 28,  8, 38, 11,
1479      3, 14,  9, 17, 23, 14, 28, 12, 43, 14,  3, 18, 17, 21, 23,
1480     18, 33, 21, 43, 18,  4, 27, 17, 25, 20, 27, 33, 25, 36, 27,
1481      5,  1, 17,  4, 21,  1, 34,  5, 37,  1,  5, 11,  9,  8, 21,
1482     11, 29,  8, 37, 11,  4, 14,  9, 12, 24, 14, 29, 12, 44, 14,
1483      4, 18, 16, 21, 24, 18, 32, 21, 44, 18,  3, 27, 16, 25, 19,
1484     27, 32, 25, 36, 28,  4,  1, 17,  5, 20,  1, 33,  5, 36,  1,
1485      4, 11, 10,  8, 20, 11, 30,  8, 36, 11,  5, 14, 10, 12, 25,
1486     14, 30, 12, 44, 15,  5, 18, 15, 21, 25, 18, 31, 21, 44, 19,
1487      2, 27, 15, 25, 18, 27, 31, 25, 37, 28,  3,  1, 16,  5, 19,
1488      1, 32,  5, 36,  2,  3, 11, 11,  8, 19, 11, 31,  8, 36,  6,
1489      6, 14, 11, 12, 26, 14, 31, 12, 43, 15,  6, 18, 14, 21, 26,
1490     18, 30, 21, 43, 19,  1, 27, 14, 25, 18, 28, 30, 25, 38, 28,
1491      2,  1, 15,  5, 18,  1, 31,  5, 37,  2,  2, 11, 12,  8, 18,
1492     11, 32,  8, 37,  6,  7, 14, 12, 12, 26, 15, 32, 12, 42, 15,
1493      7, 18, 13, 21, 26, 19, 29, 21, 42, 19,  0, 27, 13, 25, 19,
1494     28, 29, 25, 39, 28,  1,  1, 14,  5, 18,  2, 30,  5, 38,  2,
1495      1, 11, 13,  8, 18,  6, 33,  8, 38,  6,  8, 14, 13, 12, 25,
1496     15, 33, 12, 41, 15,  8, 18, 12, 21, 25, 19, 28, 21, 41, 19,
1497      0, 28, 12, 25, 20, 28, 28, 25, 40, 28,  0,  1, 13,  5, 19,
1498      2, 29,  5, 39,  2,  0, 11, 14,  8, 19,  6, 34,  8, 39,  6,
1499      8, 15, 14, 12, 24, 15, 34, 12, 40, 15,  8, 19, 11, 21, 24,
1500     19, 27, 21, 40, 19,  1, 28, 11, 25, 21, 28, 27, 25, 41, 28,
1501      0,  2, 12,  5, 20,  2, 28,  5, 40,  2,  0,  6, 15,  8, 20,
1502      6, 35,  8, 40,  6,  7, 15, 15, 12, 23, 15, 35, 12, 39, 15,
1503      7, 19, 10, 21, 23, 19, 27, 22, 39, 19,  2, 28, 10, 25, 22,
1504     28, 27, 26, 42, 28,  1,  2, 11,  5, 21,  2, 27,  5, 41,  2,
1505      1,  6, 16,  8, 21,  6, 35,  9, 41,  6,  6, 15, 16, 12, 22,
1506     15, 35, 13, 38, 15,  6, 19,  9, 21, 22, 19, 28, 22, 38, 19,
1507      3, 28,  9, 25, 23, 28, 28, 26, 43, 28,  2,  2, 10,  5, 22,
1508      2, 27,  0, 42,  2,  2,  6, 17,  8, 22,  6, 34,  9, 42,  6,
1509      5, 15, 17, 12, 21, 15, 34, 13, 37, 15,  5, 19,  9, 22, 21,
1510     19, 29, 22, 37, 19,  4, 28,  9, 26, 24, 28, 29, 26, 44, 28,
1511      3,  2,  9,  5, 23,  2, 28,  0, 43,  2,  3,  6, 17,  9, 23,
1512      6, 33,  9, 43,  6,  4, 15, 17, 13, 20, 15, 33, 13, 36, 15,
1513      4, 19, 10, 22, 20, 19, 30, 22, 36, 19,  5, 28, 10, 26, 25,
1514     28, 30, 26, 44, 29,  4,  2,  9,  0, 24,  2, 29,  0, 44,  2,
1515      4,  6, 16,  9, 24,  6, 32,  9, 44,  6,  3, 15, 16, 13, 19,
1516     15, 32, 13, 36, 16,  3, 19, 11, 22, 19, 19, 31, 22, 36, 20,
1517      6, 28, 11, 26, 26, 28, 31, 26, 43, 29,  5,  2, 10,  0, 25,
1518      2, 30,  0, 44,  3,  5,  6, 15,  9, 25,  6, 31,  9, 44,  7,
1519      2, 15, 15, 13, 18, 15, 31, 13, 37, 16,  2, 19, 12, 22, 18,
1520     19, 32, 22, 37, 20,  7, 28, 12, 26, 26, 29, 32, 26, 42, 29,
1521      6,  2, 11,  0, 26,  2, 31,  0, 43,  3,  6,  6, 14,  9, 26,
1522      6, 30,  9, 43,  7,  1, 15, 14, 13, 18, 16, 30, 13, 38, 16,
1523      1, 19, 13, 22, 18, 20, 33, 22, 38, 20,  8, 28, 13, 26, 25,
1524     29, 33, 26, 41, 29,  7,  2, 12,  0, 26,  3, 32,  0, 42,  3,
1525      7,  6, 13,  9, 26,  7, 29,  9, 42,  7,  0, 15, 13, 13, 19,
1526     16, 29, 13, 39, 16,  0, 19, 14, 22, 19, 20, 34, 22, 39, 20,
1527      8, 29, 14, 26, 24, 29, 34, 26, 40, 29,  8,  2, 13,  0, 25,
1528      3, 33,  0, 41,  3,  8,  6, 12,  9, 25,  7, 28,  9, 41,  7,
1529      0, 16, 12, 13, 20, 16, 28, 13, 40, 16,  0, 20, 15, 22, 20,
1530     20, 35, 22, 40, 20,  7, 29, 15, 26, 23, 29, 35, 26, 39, 29,
1531      8,  3, 14,  0, 24,  3, 34,  0, 40,  3,  8,  7, 11,  9, 24,
1532      7, 27,  9, 40,  7,  1, 16, 11, 13, 21, 16, 27, 13, 41, 16,
1533      1, 20, 16, 22, 21, 20, 35, 23, 41, 20,  6, 29, 16, 26, 22,
1534     29, 35, 27, 38, 29,  7,  3, 15,  0, 23,  3, 35,  0, 39,  3,
1535      7,  7, 10,  9, 23,  7, 27, 10, 39,  7,  2, 16, 10, 13, 22,
1536     16, 27, 14, 42, 16,  2, 20, 17, 22, 22, 20, 34, 23, 42, 20,
1537      5, 29, 17, 26, 21, 29, 34, 27, 37, 29,  6,  3, 16,  0, 22,
1538      3, 35,  1, 38,  3,  6,  7,  9,  9, 22,  7, 28, 10, 38,  7,
1539      3, 16,  9, 13, 23, 16, 28, 14, 43, 16,  3, 20, 17, 23, 23,
1540     20, 33, 23, 43, 20,  4, 29, 17, 27, 20, 29, 33, 27, 36, 29,
1541      5,  3, 17,  0, 21,  3, 34,  1, 37,  3,  5,  7,  9, 10, 21,
1542      7, 29, 10, 37,  7,  4, 16,  9, 14, 24, 16, 29, 14, 44, 16,
1543      4, 20, 16, 23, 24, 20, 32, 23, 44, 20,  3, 29, 16, 27, 19,
1544     29, 32, 27, 36, 24,  4,  3, 17,  1, 20,  3, 33,  1, 36,  3,
1545      4,  7, 10, 10, 20,  7, 30, 10, 36,  7,  5, 16, 10, 14, 25,
1546     16, 30, 14, 44, 17,  5, 20, 15, 23, 25, 20, 31, 23, 44, 21,
1547      2, 29, 15, 27, 18, 29, 31, 27, 37, 24,  3,  3, 16,  1, 19,
1548      3, 32,  1, 36,  4,  3,  7, 11, 10, 19,  7, 31, 10, 36,  8,
1549      6, 16, 11, 14, 26, 16, 31, 14, 43, 17,  6, 20, 14, 23, 26,
1550     20, 30, 23, 43, 21,  1, 29, 14, 27, 18, 24, 30, 27, 38, 24,
1551      2,  3, 15,  1, 18,  3, 31,  1, 37,  4,  2,  7, 12, 10, 18,
1552      7, 32, 10, 37,  8,  7, 16, 12, 14, 26, 17, 32, 14, 42, 17,
1553      7, 20, 13, 23, 26, 21, 29, 23, 42, 21,  0, 29, 13, 27, 19,
1554     24, 29, 27, 39, 24,  1,  3, 14,  1, 18,  4, 30,  1, 38,  4,
1555      1,  7, 13, 10, 18,  8, 33, 10, 38,  8,  8, 16, 13, 14, 25,
1556     17, 33, 14, 41, 17,  8, 20, 12, 23, 25, 21, 28, 23, 41, 21,
1557      0, 24, 12, 27, 20, 24, 28, 27, 40, 24,  0,  3, 13,  1, 19,
1558      4, 29,  1, 39,  4,  0,  7, 14, 10, 19,  8, 34, 10, 39,  8,
1559      8, 17, 14, 14, 24, 17, 34, 14, 40, 17,  8, 21, 11, 23, 24,
1560     21, 27, 23, 40, 21,  1, 24, 11, 27, 21, 24, 27, 27, 41, 24,
1561      0,  4, 12,  1, 20,  4, 28,  1, 40,  4,  0,  8, 15, 10, 20,
1562      8, 35, 10, 40,  8,  7, 17, 15, 14, 23, 17, 35, 14, 39, 17,
1563      7, 21, 10, 23, 23, 21, 27, 18, 39, 21,  2, 24, 10, 27, 22,
1564     24, 27, 28, 42, 24,  1,  4, 11,  1, 21,  4, 27,  1, 41,  4,
1565      1,  8, 16, 10, 21,  8, 35, 11, 41,  8,  6, 17, 16, 14, 22,
1566     17, 35, 15, 38, 17,  6, 21,  9, 23, 22, 21, 28, 18, 38, 21,
1567      3, 24,  9, 27, 23, 24, 28, 28, 43, 24,  2,  4, 10,  1, 22,
1568      4, 27,  2, 42,  4,  2,  8, 17, 10, 22,  8, 34, 11, 42,  8,
1569      5, 17, 17, 14, 21, 17, 34, 15, 37, 17,  5, 21,  9, 18, 21,
1570     21, 29, 18, 37, 21,  4, 24,  9, 28, 24, 24, 29, 28, 44, 24,
1571      3,  4,  9,  1, 23,  4, 28,  2, 43,  4,  3,  8, 17, 11, 23,
1572      8, 33, 11, 43,  8,  4, 17, 17, 15, 20, 17, 33, 15, 36, 17,
1573      4, 21, 10, 18, 20, 21, 30, 18, 36, 21,  5, 24, 10, 28, 25,
1574     24, 30, 28, 44, 25,  4,  4,  9,  2, 24,  4, 29,  2, 44,  4,
1575      4,  8, 16, 11, 24,  8, 32, 11, 44,  8,  3, 17, 16, 15, 19,
1576     17, 32, 15, 36, 12,  3, 21, 11, 18, 19, 21, 31, 18, 36, 22,
1577      6, 24, 11, 28, 26, 24, 31, 28, 43, 25,  5,  4, 10,  2, 25,
1578      4, 30,  2, 44,  5,  5,  8, 15, 11, 25,  8, 31, 11, 44,  9,
1579      2, 17, 15, 15, 18, 17, 31, 15, 37, 12,  2, 21, 12, 18, 18,
1580     21, 32, 18, 37, 22,  7, 24, 12, 28, 26, 25, 32, 28, 42, 25,
1581      6,  4, 11,  2, 26,  4, 31,  2, 43,  5,  6,  8, 14, 11, 26,
1582      8, 30, 11, 43,  9,  1, 17, 14, 15, 18, 12, 30, 15, 38, 12,
1583      1, 21, 13, 18, 18, 22, 33, 18, 38, 22,  8, 24, 13, 28, 25,
1584     25, 33, 28, 41, 25,  7,  4, 12,  2, 26,  5, 32,  2, 42,  5,
1585      7,  8, 13, 11, 26,  9, 29, 11, 42,  9,  0, 17, 13, 15, 19,
1586     12, 29, 15, 39, 12,  0, 21, 14, 18, 19, 22, 34, 18, 39, 22,
1587      8, 25, 14, 28, 24, 25, 34, 28, 40, 25,  8,  4, 13,  2, 25,
1588      5, 33,  2, 41,  5,  8,  8, 12, 11, 25,  9, 28, 11, 41,  9,
1589      0, 12, 12, 15, 20, 12, 28, 15, 40, 12,  0, 22, 15, 18, 20,
1590     22, 35, 18, 40, 22,  7, 25, 15, 28, 23, 25, 35, 28, 39, 25,
1591      8,  5, 14,  2, 24,  5, 34,  2, 40,  5,  8,  9, 11, 11, 24,
1592      9, 27, 11, 40,  9,  1, 12, 11, 15, 21, 12, 27, 15, 41, 12,
1593      1, 22, 16, 18, 21, 22, 35, 19, 41, 22,  6, 25, 16, 28, 22,
1594     25, 35, 29, 38, 25,  7,  5, 15,  2, 23,  5, 35,  2, 39,  5,
1595      7,  9, 10, 11, 23,  9, 27,  6, 39,  9,  2, 12, 10, 15, 22,
1596     12, 27, 16, 42, 12,  2, 22, 17, 18, 22, 22, 34, 19, 42, 22,
1597      5, 25, 17, 28, 21, 25, 34, 29, 37, 25,  6,  5, 16,  2, 22,
1598      5, 35,  3, 38,  5,  6,  9,  9, 11, 22,  9, 28,  6, 38,  9,
1599      3, 12,  9, 15, 23, 12, 28, 16, 43, 12,  3, 22, 17, 19, 23,
1600     22, 33, 19, 43, 22,  4, 25, 17, 29, 20, 25, 33, 29, 36, 25,
1601      5,  5, 17,  2, 21,  5, 34,  3, 37,  5,  5,  9,  9,  6, 21,
1602      9, 29,  6, 37,  9,  4, 12,  9, 16, 24, 12, 29, 16, 44, 12,
1603      4, 22, 16, 19, 24, 22, 32, 19, 44, 22,  3, 25, 16, 29, 19,
1604     25, 32, 29, 36, 26,  4,  5, 17,  3, 20,  5, 33,  3, 36,  5,
1605      4,  9, 10,  6, 20,  9, 30,  6, 36,  9,  5, 12, 10, 16, 25,
1606     12, 30, 16, 44, 13,  5, 22, 15, 19, 25, 22, 31, 19, 44, 23,
1607      2, 25, 15, 29, 18, 25, 31, 29, 37, 26,  3,  5, 16,  3, 19,
1608      5, 32,  3, 36,  0,  3,  9, 11,  6, 19,  9, 31,  6, 36, 10,
1609      6, 12, 11, 16, 26, 12, 31, 16, 43, 13,  6, 22, 14, 19, 26,
1610     22, 30, 19, 43, 23,  1, 25, 14, 29, 18, 26, 30, 29, 38, 26,
1611      2,  5, 15,  3, 18,  5, 31,  3, 37,  0,  2,  9, 12,  6, 18,
1612      9, 32,  6, 37, 10,  7, 12, 12, 16, 26, 13, 32, 16, 42, 13,
1613      7, 22, 13, 19, 26, 23, 29, 19, 42, 23,  0, 25, 13, 29, 19,
1614     26, 29, 29, 39, 26,  1,  5, 14,  3, 18,  0, 30,  3, 38,  0,
1615      1,  9, 13,  6, 18, 10, 33,  6, 38, 10,  8, 12, 13, 16, 25,
1616     13, 33, 16, 41, 13,  8, 22, 12, 19, 25, 23, 28, 19, 41, 23,
1617      0, 26, 12, 29, 20, 26, 28, 29, 40, 26,  0,  5, 13,  3, 19,
1618      0, 29,  3, 39,  0,  0,  9, 14,  6, 19, 10, 34,  6, 39, 10,
1619      8, 13, 14, 16, 24, 13, 34, 16, 40, 13,  8, 23, 11, 19, 24,
1620     23, 27, 19, 40, 23,  1, 26, 11, 29, 21, 26, 27, 29, 41, 26,
1621 };
1622
1623 static const uint8_t hq_tab_02[] = {
1624      0,  0, 12,  5, 20,  0, 28,  5, 40,  0,  3, 16, 17, 11, 23,
1625     16, 33, 11, 43, 16,  1, 21, 14, 27, 18, 22, 30, 27, 38, 22,
1626      1,  0, 11,  5, 21,  0, 27,  5, 41,  0,  4, 16, 16, 11, 24,
1627     16, 32, 11, 44, 16,  0, 21, 13, 27, 19, 22, 29, 27, 39, 22,
1628      2,  0, 10,  5, 22,  0, 27,  6, 42,  0,  5, 16, 15, 11, 25,
1629     16, 31, 11, 44, 17,  0, 22, 12, 27, 20, 22, 28, 27, 40, 22,
1630      3,  0,  9,  5, 23,  0, 28,  6, 43,  0,  6, 16, 14, 11, 26,
1631     16, 30, 11, 43, 17,  1, 22, 11, 27, 21, 22, 27, 27, 41, 22,
1632      4,  0,  9,  6, 24,  0, 29,  6, 44,  0,  7, 16, 13, 11, 26,
1633     17, 29, 11, 42, 17,  2, 22, 10, 27, 22, 22, 27, 28, 42, 22,
1634      5,  0, 10,  6, 25,  0, 30,  6, 44,  1,  8, 16, 12, 11, 25,
1635     17, 28, 11, 41, 17,  3, 22,  9, 27, 23, 22, 28, 28, 43, 22,
1636      6,  0, 11,  6, 26,  0, 31,  6, 43,  1,  8, 17, 11, 11, 24,
1637     17, 27, 11, 40, 17,  4, 22,  9, 28, 24, 22, 29, 28, 44, 22,
1638      7,  0, 12,  6, 26,  1, 32,  6, 42,  1,  7, 17, 10, 11, 23,
1639     17, 27, 12, 39, 17,  5, 22, 10, 28, 25, 22, 30, 28, 44, 23,
1640      8,  0, 13,  6, 25,  1, 33,  6, 41,  1,  6, 17,  9, 11, 22,
1641     17, 28, 12, 38, 17,  6, 22, 11, 28, 26, 22, 31, 28, 43, 23,
1642      8,  1, 14,  6, 24,  1, 34,  6, 40,  1,  5, 17,  9, 12, 21,
1643     17, 29, 12, 37, 17,  7, 22, 12, 28, 26, 23, 32, 28, 42, 23,
1644      7,  1, 15,  6, 23,  1, 35,  6, 39,  1,  4, 17, 10, 12, 20,
1645     17, 30, 12, 36, 17,  8, 22, 13, 28, 25, 23, 33, 28, 41, 23,
1646      6,  1, 16,  6, 22,  1, 35,  7, 38,  1,  3, 17, 11, 12, 19,
1647     17, 31, 12, 36, 18,  8, 23, 14, 28, 24, 23, 34, 28, 40, 23,
1648      5,  1, 17,  6, 21,  1, 34,  7, 37,  1,  2, 17, 12, 12, 18,
1649     17, 32, 12, 37, 18,  7, 23, 15, 28, 23, 23, 35, 28, 39, 23,
1650      4,  1, 17,  7, 20,  1, 33,  7, 36,  1,  1, 17, 13, 12, 18,
1651     18, 33, 12, 38, 18,  6, 23, 16, 28, 22, 23, 35, 29, 38, 23,
1652      3,  1, 16,  7, 19,  1, 32,  7, 36,  2,  0, 17, 14, 12, 19,
1653     18, 34, 12, 39, 18,  5, 23, 17, 28, 21, 23, 34, 29, 37, 23,
1654      2,  1, 15,  7, 18,  1, 31,  7, 37,  2,  0, 18, 15, 12, 20,
1655     18, 35, 12, 40, 18,  4, 23, 17, 29, 20, 23, 33, 29, 36, 23,
1656      1,  1, 14,  7, 18,  2, 30,  7, 38,  2,  1, 18, 16, 12, 21,
1657     18, 35, 13, 41, 18,  3, 23, 16, 29, 19, 23, 32, 29, 36, 24,
1658      0,  1, 13,  7, 19,  2, 29,  7, 39,  2,  2, 18, 17, 12, 22,
1659     18, 34, 13, 42, 18,  2, 23, 15, 29, 18, 23, 31, 29, 37, 24,
1660      0,  2, 12,  7, 20,  2, 28,  7, 40,  2,  3, 18, 17, 13, 23,
1661     18, 33, 13, 43, 18,  1, 23, 14, 29, 18, 24, 30, 29, 38, 24,
1662      1,  2, 11,  7, 21,  2, 27,  7, 41,  2,  4, 18, 16, 13, 24,
1663     18, 32, 13, 44, 18,  0, 23, 13, 29, 19, 24, 29, 29, 39, 24,
1664      2,  2, 10,  7, 22,  2, 27,  8, 42,  2,  5, 18, 15, 13, 25,
1665     18, 31, 13, 44, 19,  0, 24, 12, 29, 20, 24, 28, 29, 40, 24,
1666      3,  2,  9,  7, 23,  2, 28,  8, 43,  2,  6, 18, 14, 13, 26,
1667     18, 30, 13, 43, 19,  1, 24, 11, 29, 21, 24, 27, 29, 41, 24,
1668      4,  2,  9,  8, 24,  2, 29,  8, 44,  2,  7, 18, 13, 13, 26,
1669     19, 29, 13, 42, 19,  2, 24, 10, 29, 22, 24, 27, 30, 42, 24,
1670      5,  2, 10,  8, 25,  2, 30,  8, 44,  3,  8, 18, 12, 13, 25,
1671     19, 28, 13, 41, 19,  3, 24,  9, 29, 23, 24, 28, 30, 43, 24,
1672      6,  2, 11,  8, 26,  2, 31,  8, 43,  3,  8, 19, 11, 13, 24,
1673     19, 27, 13, 40, 19,  4, 24,  9, 30, 24, 24, 29, 30, 44, 24,
1674      7,  2, 12,  8, 26,  3, 32,  8, 42,  3,  7, 19, 10, 13, 23,
1675     19, 27, 14, 39, 19,  5, 24, 10, 30, 25, 24, 30, 30, 44, 25,
1676      8,  2, 13,  8, 25,  3, 33,  8, 41,  3,  6, 19,  9, 13, 22,
1677     19, 28, 14, 38, 19,  6, 24, 11, 30, 26, 24, 31, 30, 43, 25,
1678      8,  3, 14,  8, 24,  3, 34,  8, 40,  3,  5, 19,  9, 14, 21,
1679     19, 29, 14, 37, 19,  7, 24, 12, 30, 26, 25, 32, 30, 42, 25,
1680      7,  3, 15,  8, 23,  3, 35,  8, 39,  3,  4, 19, 10, 14, 20,
1681     19, 30, 14, 36, 19,  8, 24, 13, 30, 25, 25, 33, 30, 41, 25,
1682      6,  3, 16,  8, 22,  3, 35,  9, 38,  3,  3, 19, 11, 14, 19,
1683     19, 31, 14, 36, 20,  8, 25, 14, 30, 24, 25, 34, 30, 40, 25,
1684      5,  3, 17,  8, 21,  3, 34,  9, 37,  3,  2, 19, 12, 14, 18,
1685     19, 32, 14, 37, 20,  7, 25, 15, 30, 23, 25, 35, 30, 39, 25,
1686      4,  3, 17,  9, 20,  3, 33,  9, 36,  3,  1, 19, 13, 14, 18,
1687     20, 33, 14, 38, 20,  6, 25, 16, 30, 22, 25, 33, 20, 38, 25,
1688      3,  3, 16,  9, 19,  3, 32,  9, 36,  4,  0, 19, 14, 14, 19,
1689     20, 34, 14, 39, 20,  5, 25, 17, 30, 21, 25, 34, 20, 37, 25,
1690      2,  3, 15,  9, 18,  3, 31,  9, 37,  4,  0, 20, 15, 14, 20,
1691     20, 35, 14, 40, 20,  4, 25, 15, 20, 20, 25, 35, 20, 36, 25,
1692      1,  3, 14,  9, 18,  4, 30,  9, 38,  4,  1, 20, 16, 14, 21,
1693     20, 35, 15, 41, 20,  3, 25, 16, 20, 19, 25, 35, 21, 36, 26,
1694      0,  3, 13,  9, 19,  4, 29,  9, 39,  4,  2, 20, 17, 14, 22,
1695     20, 34, 15, 39, 10,  2, 25, 17, 20, 18, 25, 34, 21, 37, 26,
1696      0,  4, 12,  9, 20,  4, 28,  9, 40,  4,  3, 20, 17, 15, 23,
1697     20, 33, 15, 40, 10,  1, 25, 17, 21, 18, 26, 33, 21, 38, 26,
1698      1,  4, 11,  9, 21,  4, 27,  9, 41,  4,  4, 20, 16, 15, 21,
1699     10, 32, 15, 41, 10,  0, 25, 16, 21, 19, 26, 32, 21, 39, 26,
1700      2,  4, 10,  9, 22,  4, 27, 10, 42,  4,  5, 20, 15, 15, 22,
1701     10, 31, 15, 42, 10,  0, 26, 15, 21, 20, 26, 31, 21, 40, 26,
1702      3,  4,  9,  9, 23,  4, 28, 10, 43,  4,  3, 10, 14, 15, 23,
1703     10, 30, 15, 43, 10,  1, 26, 14, 21, 21, 26, 30, 21, 41, 26,
1704      4,  4,  9, 10, 24,  4, 29, 10, 44,  4,  4, 10, 13, 15, 24,
1705     10, 29, 15, 44, 10,  2, 26, 13, 21, 22, 26, 29, 21, 42, 26,
1706      5,  4, 10, 10, 25,  4, 27,  0, 44,  5,  5, 10, 12, 15, 25,
1707     10, 28, 15, 44, 11,  3, 26, 12, 21, 23, 26, 28, 21, 43, 26,
1708      6,  4, 11, 10, 26,  4, 28,  0, 43,  5,  6, 10, 11, 15, 26,
1709     10, 27, 15, 43, 11,  4, 26, 11, 21, 24, 26, 27, 21, 44, 26,
1710      7,  4,  9,  0, 26,  5, 29,  0, 42,  5,  7, 10, 10, 15, 26,
1711     11, 27, 16, 42, 11,  5, 26, 10, 21, 25, 26, 27, 22, 44, 27,
1712      8,  4, 10,  0, 25,  5, 30,  0, 41,  5,  8, 10,  9, 15, 25,
1713     11, 28, 16, 41, 11,  6, 26,  9, 21, 26, 26, 28, 22, 43, 27,
1714      8,  5, 11,  0, 24,  5, 31,  0, 40,  5,  8, 11,  9, 16, 24,
1715     11, 29, 16, 40, 11,  7, 26,  9, 22, 26, 27, 29, 22, 42, 27,
1716      7,  5, 12,  0, 23,  5, 32,  0, 39,  5,  7, 11, 10, 16, 23,
1717     11, 30, 16, 39, 11,  8, 26, 10, 22, 25, 27, 30, 22, 41, 27,
1718      6,  5, 13,  0, 22,  5, 33,  0, 38,  5,  6, 11, 11, 16, 22,
1719     11, 31, 16, 38, 11,  8, 27, 11, 22, 24, 27, 31, 22, 40, 27,
1720      5,  5, 14,  0, 21,  5, 34,  0, 37,  5,  5, 11, 12, 16, 21,
1721     11, 32, 16, 37, 11,  7, 27, 12, 22, 23, 27, 32, 22, 39, 27,
1722      4,  5, 15,  0, 20,  5, 35,  0, 36,  5,  4, 11, 13, 16, 20,
1723     11, 33, 16, 36, 11,  6, 27, 13, 22, 22, 27, 33, 22, 38, 27,
1724      3,  5, 16,  0, 19,  5, 35,  1, 36,  6,  3, 11, 14, 16, 19,
1725     11, 34, 16, 36, 12,  5, 27, 14, 22, 21, 27, 34, 22, 37, 27,
1726      2,  5, 17,  0, 18,  5, 34,  1, 37,  6,  2, 11, 15, 16, 18,
1727     11, 35, 16, 37, 12,  4, 27, 15, 22, 20, 27, 35, 22, 36, 27,
1728      1,  5, 17,  1, 18,  6, 33,  1, 38,  6,  1, 11, 16, 16, 18,
1729     12, 35, 17, 38, 12,  3, 27, 16, 22, 19, 27, 35, 23, 36, 28,
1730      0,  5, 16,  1, 19,  6, 32,  1, 39,  6,  0, 11, 17, 16, 19,
1731     12, 34, 17, 39, 12,  2, 27, 17, 22, 18, 27, 34, 23, 37, 28,
1732      0,  6, 15,  1, 20,  6, 31,  1, 40,  6,  0, 12, 17, 17, 20,
1733     12, 33, 17, 40, 12,  1, 27, 17, 23, 18, 28, 33, 23, 38, 28,
1734      1,  6, 14,  1, 21,  6, 30,  1, 41,  6,  1, 12, 16, 17, 21,
1735     12, 32, 17, 41, 12,  0, 27, 16, 23, 19, 28, 32, 23, 39, 28,
1736      2,  6, 13,  1, 22,  6, 29,  1, 42,  6,  2, 12, 15, 17, 22,
1737     12, 31, 17, 42, 12,  0, 28, 15, 23, 20, 28, 31, 23, 40, 28,
1738      3,  6, 12,  1, 23,  6, 28,  1, 43,  6,  3, 12, 14, 17, 23,
1739     12, 30, 17, 43, 12,  1, 28, 14, 23, 21, 28, 30, 23, 41, 28,
1740      4,  6, 11,  1, 24,  6, 27,  1, 44,  6,  4, 12, 13, 17, 24,
1741     12, 29, 17, 44, 12,  2, 28, 13, 23, 22, 28, 29, 23, 42, 28,
1742      5,  6, 10,  1, 25,  6, 27,  2, 44,  7,  5, 12, 12, 17, 25,
1743     12, 28, 17, 44, 13,  3, 28, 12, 23, 23, 28, 28, 23, 43, 28,
1744      6,  6,  9,  1, 26,  6, 28,  2, 43,  7,  6, 12, 11, 17, 26,
1745     12, 27, 17, 43, 13,  4, 28, 11, 23, 24, 28, 27, 23, 44, 28,
1746      7,  6,  9,  2, 26,  7, 29,  2, 42,  7,  7, 12, 10, 17, 26,
1747     13, 27, 18, 42, 13,  5, 28, 10, 23, 25, 28, 27, 24, 44, 29,
1748      8,  6, 10,  2, 25,  7, 30,  2, 41,  7,  8, 12,  9, 17, 25,
1749     13, 28, 18, 41, 13,  6, 28,  9, 23, 26, 28, 28, 24, 43, 29,
1750      8,  7, 11,  2, 24,  7, 31,  2, 40,  7,  8, 13,  9, 18, 24,
1751     13, 29, 18, 40, 13,  7, 28,  9, 24, 26, 29, 29, 24, 42, 29,
1752      7,  7, 12,  2, 23,  7, 32,  2, 39,  7,  7, 13, 10, 18, 23,
1753     13, 30, 18, 39, 13,  8, 28, 10, 24, 25, 29, 30, 24, 41, 29,
1754      6,  7, 13,  2, 22,  7, 33,  2, 38,  7,  6, 13, 11, 18, 22,
1755     13, 31, 18, 38, 13,  8, 29, 11, 24, 24, 29, 31, 24, 40, 29,
1756      5,  7, 14,  2, 21,  7, 34,  2, 37,  7,  5, 13, 12, 18, 21,
1757     13, 32, 18, 37, 13,  7, 29, 12, 24, 23, 29, 32, 24, 39, 29,
1758      4,  7, 15,  2, 20,  7, 35,  2, 36,  7,  4, 13, 13, 18, 20,
1759     13, 33, 18, 36, 13,  6, 29, 13, 24, 22, 29, 33, 24, 38, 29,
1760      3,  7, 16,  2, 19,  7, 35,  3, 36,  8,  3, 13, 14, 18, 19,
1761     13, 34, 18, 36, 14,  5, 29, 14, 24, 21, 29, 34, 24, 37, 29,
1762      2,  7, 17,  2, 18,  7, 34,  3, 37,  8,  2, 13, 15, 18, 18,
1763     13, 35, 18, 37, 14,  4, 29, 15, 24, 20, 29, 35, 24, 36, 29,
1764      1,  7, 17,  3, 18,  8, 33,  3, 38,  8,  1, 13, 16, 18, 18,
1765     14, 35, 19, 38, 14,  3, 29, 16, 24, 19, 29, 35, 25, 36, 30,
1766      0,  7, 16,  3, 19,  8, 32,  3, 39,  8,  0, 13, 17, 18, 19,
1767     14, 34, 19, 39, 14,  2, 29, 17, 24, 18, 29, 34, 25, 37, 30,
1768      0,  8, 15,  3, 20,  8, 31,  3, 40,  8,  0, 14, 17, 19, 20,
1769     14, 33, 19, 40, 14,  1, 29, 17, 25, 18, 30, 33, 25, 38, 30,
1770      1,  8, 14,  3, 21,  8, 30,  3, 41,  8,  1, 14, 16, 19, 21,
1771     14, 32, 19, 41, 14,  0, 29, 16, 25, 19, 30, 32, 25, 39, 30,
1772      2,  8, 13,  3, 22,  8, 29,  3, 42,  8,  2, 14, 15, 19, 22,
1773     14, 31, 19, 42, 14,  0, 30, 15, 25, 20, 30, 31, 25, 40, 30,
1774      3,  8, 12,  3, 23,  8, 28,  3, 43,  8,  3, 14, 14, 19, 23,
1775     14, 30, 19, 43, 14,  1, 30, 14, 25, 21, 30, 30, 25, 41, 30,
1776      4,  8, 11,  3, 24,  8, 27,  3, 44,  8,  4, 14, 13, 19, 24,
1777     14, 29, 19, 44, 14,  2, 30, 13, 25, 22, 30, 29, 25, 42, 30,
1778      5,  8, 10,  3, 25,  8, 27,  4, 44,  9,  5, 14, 12, 19, 25,
1779     14, 28, 19, 44, 15,  3, 30, 12, 25, 23, 30, 28, 25, 43, 30,
1780      6,  8,  9,  3, 26,  8, 28,  4, 43,  9,  6, 14, 11, 19, 26,
1781     14, 27, 19, 43, 15,  4, 30, 11, 25, 24, 30, 27, 25, 44, 30,
1782      7,  8,  9,  4, 26,  9, 29,  4, 42,  9,  7, 14, 10, 19, 26,
1783     15, 27, 20, 42, 15,  5, 30, 10, 25, 25, 30, 27, 26, 42, 20,
1784      8,  8, 10,  4, 25,  9, 30,  4, 41,  9,  8, 14,  9, 19, 25,
1785     15, 28, 20, 41, 15,  6, 30,  9, 25, 26, 30, 28, 26, 43, 20,
1786      8,  9, 11,  4, 24,  9, 31,  4, 40,  9,  8, 15,  9, 20, 24,
1787     15, 29, 20, 40, 15,  7, 30,  9, 26, 24, 20, 29, 26, 44, 20,
1788      7,  9, 12,  4, 23,  9, 32,  4, 39,  9,  7, 15, 10, 20, 23,
1789     15, 30, 20, 39, 15,  8, 30, 10, 26, 25, 20, 30, 26, 44, 21,
1790      6,  9, 13,  4, 22,  9, 33,  4, 38,  9,  6, 15, 11, 20, 22,
1791     15, 31, 20, 38, 15,  6, 20, 11, 26, 26, 20, 31, 26, 43, 21,
1792      5,  9, 14,  4, 21,  9, 34,  4, 37,  9,  5, 15, 12, 20, 21,
1793     15, 32, 20, 37, 15,  7, 20, 12, 26, 26, 21, 32, 26, 42, 21,
1794      4,  9, 15,  4, 20,  9, 35,  4, 36,  9,  4, 15, 13, 20, 20,
1795     15, 30, 10, 36, 15,  8, 20, 13, 26, 25, 21, 33, 26, 41, 21,
1796      3,  9, 16,  4, 19,  9, 35,  5, 36, 10,  3, 15, 14, 20, 19,
1797     15, 31, 10, 36, 16,  8, 21, 14, 26, 24, 21, 34, 26, 40, 21,
1798      2,  9, 17,  4, 18,  9, 34,  5, 37, 10,  2, 15, 12, 10, 18,
1799     15, 32, 10, 37, 16,  7, 21, 15, 26, 23, 21, 35, 26, 39, 21,
1800      1,  9, 17,  5, 18, 10, 33,  5, 38, 10,  1, 15, 13, 10, 18,
1801     16, 33, 10, 38, 16,  6, 21, 16, 26, 22, 21, 35, 27, 38, 21,
1802      0,  9, 16,  5, 19, 10, 32,  5, 36,  0,  0, 15, 14, 10, 19,
1803     16, 34, 10, 39, 16,  5, 21, 17, 26, 21, 21, 34, 27, 37, 21,
1804      0, 10, 15,  5, 20, 10, 31,  5, 37,  0,  0, 16, 15, 10, 20,
1805     16, 35, 10, 40, 16,  4, 21, 17, 27, 20, 21, 33, 27, 36, 21,
1806      1, 10, 14,  5, 18,  0, 30,  5, 38,  0,  1, 16, 16, 10, 21,
1807     16, 35, 11, 41, 16,  3, 21, 16, 27, 19, 21, 32, 27, 36, 22,
1808      2, 10, 13,  5, 19,  0, 29,  5, 39,  0,  2, 16, 17, 10, 22,
1809     16, 34, 11, 42, 16,  2, 21, 15, 27, 18, 21, 31, 27, 37, 22,
1810      0,  0,
1811 };
1812
1813 static const uint8_t hq_tab_03[] = {
1814      0,  0, 14,  4, 20,  0, 34,  4, 40,  0,  8, 14, 15,  9, 24,
1815     14, 35,  9, 40, 14,  7, 19, 11, 23, 23, 19, 27, 23, 39, 19,
1816      1, 33, 10, 28, 21, 33, 27, 29, 41, 33,  1,  0, 15,  4, 21,
1817      0, 35,  4, 41,  0,  7, 14, 16,  9, 23, 14, 35, 10, 39, 14,
1818      6, 19, 10, 23, 22, 19, 27, 24, 38, 19,  2, 33,  9, 28, 22,
1819     33, 28, 29, 42, 33,  2,  0, 16,  4, 22,  0, 35,  5, 42,  0,
1820      6, 14, 17,  9, 22, 14, 34, 10, 38, 14,  5, 19,  9, 23, 21,
1821     19, 28, 24, 37, 19,  3, 33,  9, 29, 23, 33, 29, 29, 43, 33,
1822      3,  0, 17,  4, 23,  0, 34,  5, 43,  0,  5, 14, 17, 10, 21,
1823     14, 33, 10, 37, 14,  4, 19,  9, 24, 20, 19, 29, 24, 36, 19,
1824      4, 33, 10, 29, 24, 33, 30, 29, 44, 33,  4,  0, 17,  5, 24,
1825      0, 33,  5, 44,  0,  4, 14, 16, 10, 20, 14, 32, 10, 36, 14,
1826      3, 19, 10, 24, 19, 19, 30, 24, 36, 20,  5, 33, 11, 29, 25,
1827     33, 31, 29, 44, 34,  5,  0, 16,  5, 25,  0, 32,  5, 44,  1,
1828      3, 14, 15, 10, 19, 14, 31, 10, 36, 15,  2, 19, 11, 24, 18,
1829     19, 31, 24, 37, 20,  6, 33, 12, 29, 26, 33, 32, 29, 43, 34,
1830      6,  0, 15,  5, 26,  0, 31,  5, 43,  1,  2, 14, 14, 10, 18,
1831     14, 30, 10, 37, 15,  1, 19, 12, 24, 18, 20, 32, 24, 38, 20,
1832      7, 33, 13, 29, 26, 34, 33, 29, 42, 34,  7,  0, 14,  5, 26,
1833      1, 30,  5, 42,  1,  1, 14, 13, 10, 18, 15, 29, 10, 38, 15,
1834      0, 19, 13, 24, 19, 20, 33, 24, 39, 20,  8, 33, 14, 29, 25,
1835     34, 34, 29, 41, 34,  8,  0, 13,  5, 25,  1, 29,  5, 41,  1,
1836      0, 14, 12, 10, 19, 15, 28, 10, 39, 15,  0, 20, 14, 24, 20,
1837     20, 34, 24, 40, 20,  8, 34, 15, 29, 24, 34, 35, 29, 40, 34,
1838      8,  1, 12,  5, 24,  1, 28,  5, 40,  1,  0, 15, 11, 10, 20,
1839     15, 27, 10, 40, 15,  1, 20, 15, 24, 21, 20, 35, 24, 41, 20,
1840      7, 34, 16, 29, 23, 34, 35, 30, 39, 34,  7,  1, 11,  5, 23,
1841      1, 27,  5, 39,  1,  1, 15, 10, 10, 21, 15, 27, 11, 41, 15,
1842      2, 20, 16, 24, 22, 20, 35, 25, 42, 20,  6, 34, 17, 29, 22,
1843     34, 34, 30, 38, 34,  6,  1, 10,  5, 22,  1, 27,  6, 38,  1,
1844      2, 15,  9, 10, 22, 15, 28, 11, 42, 15,  3, 20, 17, 24, 23,
1845     20, 34, 25, 43, 20,  5, 34, 17, 30, 21, 34, 33, 30, 37, 34,
1846      5,  1,  9,  5, 21,  1, 28,  6, 37,  1,  3, 15,  9, 11, 23,
1847     15, 29, 11, 43, 15,  4, 20, 17, 25, 24, 20, 33, 25, 44, 20,
1848      4, 34, 16, 30, 20, 34, 32, 30, 36, 34,  4,  1,  9,  6, 20,
1849      1, 29,  6, 36,  1,  4, 15, 10, 11, 24, 15, 30, 11, 44, 15,
1850      5, 20, 16, 25, 25, 20, 32, 25, 44, 21,  3, 34, 15, 30, 19,
1851     34, 31, 30, 36, 35,  3,  1, 10,  6, 19,  1, 30,  6, 36,  2,
1852      5, 15, 11, 11, 25, 15, 31, 11, 44, 16,  6, 20, 15, 25, 26,
1853     20, 31, 25, 43, 21,  2, 34, 14, 30, 18, 34, 30, 30, 37, 35,
1854      2,  1, 11,  6, 18,  1, 31,  6, 37,  2,  6, 15, 12, 11, 26,
1855     15, 32, 11, 43, 16,  7, 20, 14, 25, 26, 21, 30, 25, 42, 21,
1856      1, 34, 13, 30, 18, 35, 29, 30, 38, 35,  1,  1, 12,  6, 18,
1857      2, 32,  6, 38,  2,  7, 15, 13, 11, 26, 16, 33, 11, 42, 16,
1858      8, 20, 13, 25, 25, 21, 29, 25, 41, 21,  0, 34, 12, 30, 19,
1859     35, 28, 30, 39, 35,  0,  1, 13,  6, 19,  2, 33,  6, 39,  2,
1860      8, 15, 14, 11, 25, 16, 34, 11, 41, 16,  8, 21, 12, 25, 24,
1861     21, 28, 25, 40, 21,  0, 35, 11, 30, 20, 35, 27, 30, 40, 35,
1862      0,  2, 14,  6, 20,  2, 34,  6, 40,  2,  8, 16, 15, 11, 24,
1863     16, 35, 11, 40, 16,  7, 21, 11, 25, 23, 21, 27, 25, 39, 21,
1864      1, 35, 10, 30, 21, 35, 27, 31, 41, 35,  1,  2, 15,  6, 21,
1865      2, 35,  6, 41,  2,  7, 16, 16, 11, 23, 16, 35, 12, 39, 16,
1866      6, 21, 10, 25, 22, 21, 27, 26, 38, 21,  2, 35,  9, 30, 22,
1867     35, 28, 31, 42, 35,  2,  2, 16,  6, 22,  2, 35,  7, 42,  2,
1868      6, 16, 17, 11, 22, 16, 34, 12, 38, 16,  5, 21,  9, 25, 21,
1869     21, 28, 26, 37, 21,  3, 35,  9, 31, 23, 35, 29, 31, 43, 35,
1870      3,  2, 17,  6, 23,  2, 34,  7, 43,  2,  5, 16, 17, 12, 21,
1871     16, 33, 12, 37, 16,  4, 21,  9, 26, 20, 21, 29, 26, 36, 21,
1872      4, 35, 10, 31, 24, 35, 30, 31, 44, 35,  4,  2, 17,  7, 24,
1873      2, 33,  7, 44,  2,  4, 16, 16, 12, 20, 16, 32, 12, 36, 16,
1874      3, 21, 10, 26, 19, 21, 30, 26, 36, 22,  5, 35, 11, 31, 25,
1875     35, 31, 31, 36, 27,  5,  2, 16,  7, 25,  2, 32,  7, 44,  3,
1876      3, 16, 15, 12, 19, 16, 31, 12, 36, 17,  2, 21, 11, 26, 18,
1877     21, 31, 26, 37, 22,  6, 35, 12, 31, 26, 35, 32, 31, 37, 27,
1878      6,  2, 15,  7, 26,  2, 31,  7, 43,  3,  2, 16, 14, 12, 18,
1879     16, 30, 12, 37, 17,  1, 21, 12, 26, 18, 22, 32, 26, 38, 22,
1880      7, 35, 13, 31, 18, 27, 33, 31, 38, 27,  7,  2, 14,  7, 26,
1881      3, 30,  7, 42,  3,  1, 16, 13, 12, 18, 17, 29, 12, 38, 17,
1882      0, 21, 13, 26, 19, 22, 33, 26, 39, 22,  8, 35, 14, 31, 19,
1883     27, 34, 31, 39, 27,  8,  2, 13,  7, 25,  3, 29,  7, 41,  3,
1884      0, 16, 12, 12, 19, 17, 28, 12, 39, 17,  0, 22, 14, 26, 20,
1885     22, 34, 26, 40, 22,  0, 27, 15, 31, 20, 27, 35, 31, 40, 27,
1886      8,  3, 12,  7, 24,  3, 28,  7, 40,  3,  0, 17, 11, 12, 20,
1887     17, 27, 12, 40, 17,  1, 22, 15, 26, 21, 22, 35, 26, 41, 22,
1888      1, 27, 16, 31, 21, 27, 35, 32, 41, 27,  7,  3, 11,  7, 23,
1889      3, 27,  7, 39,  3,  1, 17, 10, 12, 21, 17, 27, 13, 41, 17,
1890      2, 22, 16, 26, 22, 22, 27, 18, 42, 22,  2, 27, 17, 31, 22,
1891     27, 34, 32, 42, 27,  6,  3, 10,  7, 22,  3, 27,  8, 38,  3,
1892      2, 17,  9, 12, 22, 17, 28, 13, 42, 17,  3, 22, 17, 26, 23,
1893     22, 28, 18, 43, 22,  3, 27, 17, 32, 23, 27, 33, 32, 43, 27,
1894      5,  3,  9,  7, 21,  3, 28,  8, 37,  3,  3, 17,  9, 13, 23,
1895     17, 29, 13, 43, 17,  4, 22,  9, 18, 24, 22, 29, 18, 44, 22,
1896      4, 27, 16, 32, 24, 27, 32, 32, 44, 27,  4,  3,  9,  8, 20,
1897      3, 29,  8, 36,  3,  4, 17, 10, 13, 24, 17, 30, 13, 44, 17,
1898      5, 22, 10, 18, 25, 22, 30, 18, 44, 23,  5, 27, 15, 32, 25,
1899     27, 31, 32, 44, 28,  3,  3, 10,  8, 19,  3, 30,  8, 36,  4,
1900      5, 17, 11, 13, 25, 17, 31, 13, 36,  9,  6, 22, 11, 18, 26,
1901     22, 31, 18, 43, 23,  6, 27, 14, 32, 26, 27, 30, 32, 43, 28,
1902      2,  3, 11,  8, 18,  3, 31,  8, 37,  4,  6, 17, 12, 13, 26,
1903     17, 32, 13, 37,  9,  7, 22, 12, 18, 26, 23, 32, 18, 42, 23,
1904      7, 27, 13, 32, 26, 28, 29, 32, 42, 28,  1,  3, 12,  8, 18,
1905      4, 32,  8, 38,  4,  7, 17, 13, 13, 18,  9, 33, 13, 38,  9,
1906      8, 22, 13, 18, 25, 23, 33, 18, 41, 23,  8, 27, 12, 32, 25,
1907     28, 28, 32, 41, 28,  0,  3, 13,  8, 19,  4, 33,  8, 39,  4,
1908      8, 17, 14, 13, 19,  9, 34, 13, 39,  9,  8, 23, 14, 18, 24,
1909     23, 34, 18, 40, 23,  8, 28, 11, 32, 24, 28, 27, 32, 40, 28,
1910      0,  4, 14,  8, 20,  4, 34,  8, 40,  4,  0,  9, 15, 13, 20,
1911      9, 35, 13, 40,  9,  7, 23, 15, 18, 23, 23, 35, 18, 39, 23,
1912      7, 28, 10, 32, 23, 28, 27, 33, 39, 28,  1,  4, 15,  8, 21,
1913      4, 35,  8, 41,  4,  1,  9, 16, 13, 21,  9, 35, 14, 41,  9,
1914      6, 23, 16, 18, 22, 23, 35, 19, 38, 23,  6, 28,  9, 32, 22,
1915     28, 28, 33, 38, 28,  2,  4, 16,  8, 22,  4, 27,  0, 42,  4,
1916      2,  9, 17, 13, 22,  9, 34, 14, 42,  9,  5, 23, 17, 18, 21,
1917     23, 34, 19, 37, 23,  5, 28,  9, 33, 21, 28, 29, 33, 37, 28,
1918      3,  4, 17,  8, 23,  4, 28,  0, 43,  4,  3,  9, 17, 14, 23,
1919      9, 33, 14, 43,  9,  4, 23, 17, 19, 20, 23, 33, 19, 36, 23,
1920      4, 28, 10, 33, 20, 28, 30, 33, 36, 28,  4,  4,  9,  0, 24,
1921      4, 29,  0, 44,  4,  4,  9, 16, 14, 24,  9, 32, 14, 44,  9,
1922      3, 23, 16, 19, 19, 23, 32, 19, 36, 24,  3, 28, 11, 33, 19,
1923     28, 31, 33, 36, 29,  5,  4, 10,  0, 25,  4, 30,  0, 44,  5,
1924      5,  9, 15, 14, 25,  9, 31, 14, 44, 10,  2, 23, 15, 19, 18,
1925     23, 31, 19, 37, 24,  2, 28, 12, 33, 18, 28, 32, 33, 37, 29,
1926      6,  4, 11,  0, 26,  4, 31,  0, 43,  5,  6,  9, 14, 14, 26,
1927      9, 30, 14, 43, 10,  1, 23, 14, 19, 18, 24, 30, 19, 38, 24,
1928      1, 28, 13, 33, 18, 29, 33, 33, 38, 29,  7,  4, 12,  0, 26,
1929      5, 32,  0, 42,  5,  7,  9, 13, 14, 26, 10, 29, 14, 42, 10,
1930      0, 23, 13, 19, 19, 24, 29, 19, 39, 24,  0, 28, 14, 33, 19,
1931     29, 34, 33, 39, 29,  8,  4, 13,  0, 25,  5, 33,  0, 41,  5,
1932      8,  9, 12, 14, 25, 10, 28, 14, 41, 10,  0, 24, 12, 19, 20,
1933     24, 28, 19, 40, 24,  0, 29, 15, 33, 20, 29, 35, 33, 40, 29,
1934      8,  5, 14,  0, 24,  5, 34,  0, 40,  5,  8, 10, 11, 14, 24,
1935     10, 27, 14, 40, 10,  1, 24, 11, 19, 21, 24, 27, 19, 41, 24,
1936      1, 29, 16, 33, 21, 29, 35, 34, 41, 29,  7,  5, 15,  0, 23,
1937      5, 35,  0, 39,  5,  7, 10, 10, 14, 23, 10, 27, 15, 39, 10,
1938      2, 24, 10, 19, 22, 24, 27, 20, 42, 24,  2, 29, 17, 33, 22,
1939     29, 34, 34, 42, 29,  6,  5, 16,  0, 22,  5, 35,  1, 38,  5,
1940      6, 10,  9, 14, 22, 10, 28, 15, 38, 10,  3, 24,  9, 19, 23,
1941     24, 28, 20, 43, 24,  3, 29, 17, 34, 23, 29, 33, 34, 43, 29,
1942      5,  5, 17,  0, 21,  5, 34,  1, 37,  5,  5, 10,  9, 15, 21,
1943     10, 29, 15, 37, 10,  4, 24,  9, 20, 24, 24, 29, 20, 44, 24,
1944      4, 29, 16, 34, 24, 29, 32, 34, 44, 29,  4,  5, 17,  1, 20,
1945      5, 33,  1, 36,  5,  4, 10, 10, 15, 20, 10, 30, 15, 36, 10,
1946      5, 24, 10, 20, 25, 24, 30, 20, 44, 25,  5, 29, 15, 34, 25,
1947     29, 31, 34, 44, 30,  3,  5, 16,  1, 19,  5, 32,  1, 36,  6,
1948      3, 10, 11, 15, 19, 10, 31, 15, 36, 11,  6, 24, 11, 20, 26,
1949     24, 31, 20, 43, 25,  6, 29, 14, 34, 26, 29, 30, 34, 43, 30,
1950      2,  5, 15,  1, 18,  5, 31,  1, 37,  6,  2, 10, 12, 15, 18,
1951     10, 32, 15, 37, 11,  7, 24, 12, 20, 26, 25, 32, 20, 42, 25,
1952      7, 29, 13, 34, 26, 30, 29, 34, 42, 30,  1,  5, 14,  1, 18,
1953      6, 30,  1, 38,  6,  1, 10, 13, 15, 18, 11, 33, 15, 38, 11,
1954      8, 24, 13, 20, 25, 25, 33, 20, 41, 25,  8, 29, 12, 34, 25,
1955     30, 28, 34, 41, 30,  0,  5, 13,  1, 19,  6, 29,  1, 39,  6,
1956      0, 10, 14, 15, 19, 11, 34, 15, 39, 11,  8, 25, 14, 20, 24,
1957     25, 34, 20, 40, 25,  8, 30, 11, 34, 24, 30, 27, 34, 40, 30,
1958      0,  6, 12,  1, 20,  6, 28,  1, 40,  6,  0, 11, 15, 15, 20,
1959     11, 35, 15, 40, 11,  7, 25, 15, 20, 23, 25, 35, 20, 39, 25,
1960      7, 30, 10, 34, 23, 30, 27, 35, 39, 30,  1,  6, 11,  1, 21,
1961      6, 27,  1, 41,  6,  1, 11, 16, 15, 21, 11, 35, 16, 41, 11,
1962      6, 25, 16, 20, 22, 25, 35, 21, 38, 25,  6, 30,  9, 34, 22,
1963     30, 28, 35, 38, 30,  2,  6, 10,  1, 22,  6, 27,  2, 42,  6,
1964      2, 11, 17, 15, 22, 11, 34, 16, 42, 11,  5, 25, 17, 20, 21,
1965     25, 34, 21, 37, 25,  5, 30,  9, 35, 21, 30, 29, 35, 37, 30,
1966      3,  6,  9,  1, 23,  6, 28,  2, 43,  6,  3, 11, 17, 16, 23,
1967     11, 33, 16, 43, 11,  4, 25, 17, 21, 20, 25, 33, 21, 36, 25,
1968      4, 30, 10, 35, 20, 30, 30, 35, 36, 30,  4,  6,  9,  2, 24,
1969      6, 29,  2, 44,  6,  4, 11, 16, 16, 24, 11, 32, 16, 44, 11,
1970      3, 25, 16, 21, 19, 25, 32, 21, 36, 26,  3, 30, 11, 35, 19,
1971     30, 31, 35, 36, 31,  5,  6, 10,  2, 25,  6, 30,  2, 44,  7,
1972      5, 11, 15, 16, 25, 11, 31, 16, 44, 12,  2, 25, 15, 21, 18,
1973     25, 31, 21, 37, 26,  2, 30, 12, 35, 18, 30, 32, 35, 37, 31,
1974      6,  6, 11,  2, 26,  6, 31,  2, 43,  7,  6, 11, 14, 16, 26,
1975     11, 30, 16, 43, 12,  1, 25, 14, 21, 18, 26, 30, 21, 38, 26,
1976      1, 30, 13, 35, 18, 31, 33, 35, 38, 31,  7,  6, 12,  2, 26,
1977      7, 32,  2, 42,  7,  7, 11, 13, 16, 26, 12, 29, 16, 42, 12,
1978      0, 25, 13, 21, 19, 26, 29, 21, 39, 26,  0, 30, 14, 35, 19,
1979     31, 34, 35, 39, 31,  8,  6, 13,  2, 25,  7, 33,  2, 41,  7,
1980      8, 11, 12, 16, 25, 12, 28, 16, 41, 12,  0, 26, 12, 21, 20,
1981     26, 28, 21, 40, 26,  0, 31, 15, 35, 20, 31, 35, 35, 40, 31,
1982      8,  7, 14,  2, 24,  7, 34,  2, 40,  7,  8, 12, 11, 16, 24,
1983     12, 27, 16, 40, 12,  1, 26, 11, 21, 21, 26, 27, 21, 41, 26,
1984      1, 31, 16, 35, 21, 31, 27, 27, 41, 31,  7,  7, 15,  2, 23,
1985      7, 35,  2, 39,  7,  7, 12, 10, 16, 23, 12, 27, 17, 39, 12,
1986      2, 26, 10, 21, 22, 26, 27, 22, 42, 26,  2, 31, 17, 35, 22,
1987     31, 28, 27, 42, 31,  6,  7, 16,  2, 22,  7, 35,  3, 38,  7,
1988      6, 12,  9, 16, 22, 12, 28, 17, 38, 12,  3, 26,  9, 21, 23,
1989     26, 28, 22, 43, 26,  3, 31,  9, 27, 23, 31, 29, 27, 43, 31,
1990      5,  7, 17,  2, 21,  7, 34,  3, 37,  7,  5, 12,  9, 17, 21,
1991     12, 29, 17, 37, 12,  4, 26,  9, 22, 24, 26, 29, 22, 44, 26,
1992      4, 31, 10, 27, 24, 31, 30, 27, 44, 31,  4,  7, 17,  3, 20,
1993      7, 33,  3, 36,  7,  4, 12, 10, 17, 20, 12, 30, 17, 36, 12,
1994      5, 26, 10, 22, 25, 26, 30, 22, 36, 18,  5, 31, 11, 27, 25,
1995     31, 31, 27, 44, 32,  3,  7, 16,  3, 19,  7, 32,  3, 36,  8,
1996      3, 12, 11, 17, 19, 12, 31, 17, 36, 13,  6, 26, 11, 22, 26,
1997     26, 31, 22, 37, 18,  6, 31, 12, 27, 26, 31, 32, 27, 43, 32,
1998      2,  7, 15,  3, 18,  7, 31,  3, 37,  8,  2, 12, 12, 17, 18,
1999     12, 32, 17, 37, 13,  7, 26, 12, 22, 18, 18, 32, 22, 38, 18,
2000      7, 31, 13, 27, 26, 32, 33, 27, 42, 32,  1,  7, 14,  3, 18,
2001      8, 30,  3, 38,  8,  1, 12, 13, 17, 18, 13, 33, 17, 38, 13,
2002      8, 26, 13, 22, 19, 18, 33, 22, 39, 18,  8, 31, 14, 27, 25,
2003     32, 34, 27, 41, 32,  0,  7, 13,  3, 19,  8, 29,  3, 39,  8,
2004      0, 12, 14, 17, 19, 13, 34, 17, 39, 13,  0, 18, 14, 22, 20,
2005     18, 34, 22, 40, 18,  8, 32, 15, 27, 24, 32, 35, 27, 40, 32,
2006      0,  8, 12,  3, 20,  8, 28,  3, 40,  8,  0, 13, 15, 17, 20,
2007     13, 35, 17, 40, 13,  1, 18, 15, 22, 21, 18, 35, 22, 41, 18,
2008      7, 32, 16, 27, 23, 32, 35, 28, 39, 32,  1,  8, 11,  3, 21,
2009      8, 27,  3, 41,  8,  1, 13, 16, 17, 21, 13, 27,  9, 41, 13,
2010      2, 18, 16, 22, 22, 18, 35, 23, 42, 18,  6, 32, 17, 27, 22,
2011     32, 34, 28, 38, 32,  2,  8, 10,  3, 22,  8, 27,  4, 42,  8,
2012      2, 13, 17, 17, 22, 13, 28,  9, 42, 13,  3, 18, 17, 22, 23,
2013     18, 34, 23, 43, 18,  5, 32, 17, 28, 21, 32, 33, 28, 37, 32,
2014      3,  8,  9,  3, 23,  8, 28,  4, 43,  8,  3, 13,  9,  9, 23,
2015     13, 29,  9, 43, 13,  4, 18, 17, 23, 24, 18, 33, 23, 44, 18,
2016      4, 32, 16, 28, 20, 32, 32, 28, 36, 32,  4,  8,  9,  4, 24,
2017      8, 29,  4, 44,  8,  4, 13, 10,  9, 24, 13, 30,  9, 44, 13,
2018      5, 18, 16, 23, 25, 18, 32, 23, 44, 19,  3, 32, 15, 28, 19,
2019     32, 31, 28, 36, 33,  5,  8, 10,  4, 25,  8, 30,  4, 36,  0,
2020      5, 13, 11,  9, 25, 13, 31,  9, 44, 14,  6, 18, 15, 23, 26,
2021     18, 31, 23, 43, 19,  2, 32, 14, 28, 18, 32, 30, 28, 37, 33,
2022      6,  8, 11,  4, 26,  8, 31,  4, 37,  0,  6, 13, 12,  9, 26,
2023     13, 32,  9, 43, 14,  7, 18, 14, 23, 26, 19, 30, 23, 42, 19,
2024      1, 32, 13, 28, 18, 33, 29, 28, 38, 33,  7,  8, 12,  4, 18,
2025      0, 32,  4, 38,  0,  7, 13, 13,  9, 26, 14, 33,  9, 42, 14,
2026      8, 18, 13, 23, 25, 19, 29, 23, 41, 19,  0, 32, 12, 28, 19,
2027     33, 28, 28, 39, 33,  8,  8, 13,  4, 19,  0, 33,  4, 39,  0,
2028      8, 13, 14,  9, 25, 14, 34,  9, 41, 14,  8, 19, 12, 23, 24,
2029     19, 28, 23, 40, 19,  0, 33, 11, 28, 20, 33, 27, 28, 40, 33,
2030 };
2031
2032 static const uint8_t hq_tab_04[] = {
2033      0,  0, 19,  4, 26,  0, 45,  4, 52,  0, 11, 13, 18,  9, 34,
2034     14, 44,  9, 56, 14, 10, 18, 18, 23, 35, 19, 40, 23, 57, 19,
2035      2, 32, 19, 28, 24, 32, 41, 28, 49, 33,  3, 37, 15, 42, 25,
2036     37, 41, 42, 48, 38,  1,  0, 20,  4, 27,  0, 46,  4, 53,  0,
2037     11, 14, 19,  9, 33, 14, 45,  9, 55, 14, 11, 18, 17, 23, 34,
2038     19, 39, 23, 56, 19,  1, 32, 18, 28, 24, 33, 40, 28, 50, 33,
2039      2, 37, 16, 42, 24, 37, 42, 42, 49, 38,  2,  0, 21,  4, 28,
2040      0, 47,  4, 54,  0, 10, 14, 20,  9, 32, 14, 46,  9, 54, 14,
2041     11, 19, 16, 23, 33, 19, 38, 23, 55, 19,  0, 32, 17, 28, 25,
2042     33, 39, 28, 51, 33,  1, 37, 17, 42, 24, 38, 43, 42, 50, 38,
2043      3,  0, 22,  4, 29,  0, 47,  5, 55,  0,  9, 14, 21,  9, 31,
2044     14, 47,  9, 53, 14, 10, 19, 15, 23, 32, 19, 37, 23, 54, 19,
2045      0, 33, 16, 28, 26, 33, 38, 28, 52, 33,  0, 37, 18, 42, 25,
2046     38, 44, 42, 51, 38,  4,  0, 23,  4, 30,  0, 46,  5, 56,  0,
2047      8, 14, 22,  9, 30, 14, 47, 10, 52, 14,  9, 19, 14, 23, 31,
2048     19, 36, 23, 53, 19,  1, 33, 15, 28, 27, 33, 37, 28, 53, 33,
2049      0, 38, 19, 42, 26, 38, 45, 42, 52, 38,  5,  0, 23,  5, 31,
2050      0, 45,  5, 57,  0,  7, 14, 23,  9, 29, 14, 46, 10, 51, 14,
2051      8, 19, 13, 23, 30, 19, 36, 24, 52, 19,  2, 33, 14, 28, 28,
2052     33, 36, 28, 54, 33,  1, 38, 20, 42, 27, 38, 46, 42, 53, 38,
2053      6,  0, 22,  5, 32,  0, 44,  5, 58,  0,  6, 14, 23, 10, 28,
2054     14, 45, 10, 50, 14,  7, 19, 12, 23, 29, 19, 37, 24, 51, 19,
2055      3, 33, 13, 28, 29, 33, 36, 29, 55, 33,  2, 38, 21, 42, 28,
2056     38, 47, 42, 54, 38,  7,  0, 21,  5, 33,  0, 43,  5, 59,  0,
2057      5, 14, 22, 10, 27, 14, 44, 10, 49, 14,  6, 19, 12, 24, 28,
2058     19, 38, 24, 50, 19,  4, 33, 12, 28, 30, 33, 37, 29, 56, 33,
2059      3, 38, 22, 42, 29, 38, 47, 43, 55, 38,  8,  0, 20,  5, 34,
2060      0, 42,  5, 59,  1,  4, 14, 21, 10, 26, 14, 43, 10, 48, 14,
2061      5, 19, 13, 24, 27, 19, 39, 24, 49, 19,  5, 33, 12, 29, 31,
2062     33, 38, 29, 57, 33,  4, 38, 23, 42, 30, 38, 46, 43, 56, 38,
2063      9,  0, 19,  5, 35,  0, 41,  5, 58,  1,  3, 14, 20, 10, 25,
2064     14, 42, 10, 48, 15,  4, 19, 14, 24, 26, 19, 40, 24, 48, 19,
2065      6, 33, 13, 29, 32, 33, 39, 29, 58, 33,  5, 38, 23, 43, 31,
2066     38, 45, 43, 57, 38, 10,  0, 18,  5, 35,  1, 40,  5, 57,  1,
2067      2, 14, 19, 10, 24, 14, 41, 10, 49, 15,  3, 19, 15, 24, 25,
2068     19, 41, 24, 48, 20,  7, 33, 14, 29, 33, 33, 40, 29, 59, 33,
2069      6, 38, 22, 43, 32, 38, 44, 43, 58, 38, 11,  0, 17,  5, 34,
2070      1, 39,  5, 56,  1,  1, 14, 18, 10, 24, 15, 40, 10, 50, 15,
2071      2, 19, 16, 24, 24, 19, 42, 24, 49, 20,  8, 33, 15, 29, 34,
2072     33, 41, 29, 59, 34,  7, 38, 21, 43, 33, 38, 43, 43, 59, 38,
2073     11,  1, 16,  5, 33,  1, 38,  5, 55,  1,  0, 14, 17, 10, 25,
2074     15, 39, 10, 51, 15,  1, 19, 17, 24, 24, 20, 43, 24, 50, 20,
2075      9, 33, 16, 29, 35, 33, 42, 29, 58, 34,  8, 38, 20, 43, 34,
2076     38, 42, 43, 59, 39, 10,  1, 15,  5, 32,  1, 37,  5, 54,  1,
2077      0, 15, 16, 10, 26, 15, 38, 10, 52, 15,  0, 19, 18, 24, 25,
2078     20, 44, 24, 51, 20, 10, 33, 17, 29, 35, 34, 43, 29, 57, 34,
2079      9, 38, 19, 43, 35, 38, 41, 43, 58, 39,  9,  1, 14,  5, 31,
2080      1, 36,  5, 53,  1,  1, 15, 15, 10, 27, 15, 37, 10, 53, 15,
2081      0, 20, 19, 24, 26, 20, 45, 24, 52, 20, 11, 33, 18, 29, 34,
2082     34, 44, 29, 56, 34, 10, 38, 18, 43, 35, 39, 40, 43, 57, 39,
2083      8,  1, 13,  5, 30,  1, 36,  6, 52,  1,  2, 15, 14, 10, 28,
2084     15, 36, 10, 54, 15,  1, 20, 20, 24, 27, 20, 46, 24, 53, 20,
2085     11, 34, 19, 29, 33, 34, 45, 29, 55, 34, 11, 38, 17, 43, 34,
2086     39, 39, 43, 56, 39,  7,  1, 12,  5, 29,  1, 37,  6, 51,  1,
2087      3, 15, 13, 10, 29, 15, 36, 11, 55, 15,  2, 20, 21, 24, 28,
2088     20, 47, 24, 54, 20, 10, 34, 20, 29, 32, 34, 46, 29, 54, 34,
2089     11, 39, 16, 43, 33, 39, 38, 43, 55, 39,  6,  1, 12,  6, 28,
2090      1, 38,  6, 50,  1,  4, 15, 12, 10, 30, 15, 37, 11, 56, 15,
2091      3, 20, 22, 24, 29, 20, 47, 25, 55, 20,  9, 34, 21, 29, 31,
2092     34, 47, 29, 53, 34, 10, 39, 15, 43, 32, 39, 37, 43, 54, 39,
2093      5,  1, 13,  6, 27,  1, 39,  6, 49,  1,  5, 15, 12, 11, 31,
2094     15, 38, 11, 57, 15,  4, 20, 23, 24, 30, 20, 46, 25, 56, 20,
2095      8, 34, 22, 29, 30, 34, 47, 30, 52, 34,  9, 39, 14, 43, 31,
2096     39, 36, 43, 53, 39,  4,  1, 14,  6, 26,  1, 40,  6, 48,  1,
2097      6, 15, 13, 11, 32, 15, 39, 11, 58, 15,  5, 20, 23, 25, 31,
2098     20, 45, 25, 57, 20,  7, 34, 23, 29, 29, 34, 46, 30, 51, 34,
2099      8, 39, 13, 43, 30, 39, 36, 44, 52, 39,  3,  1, 15,  6, 25,
2100      1, 41,  6, 48,  2,  7, 15, 14, 11, 33, 15, 40, 11, 59, 15,
2101      6, 20, 22, 25, 32, 20, 44, 25, 58, 20,  6, 34, 23, 30, 28,
2102     34, 45, 30, 50, 34,  7, 39, 12, 43, 29, 39, 37, 44, 51, 39,
2103      2,  1, 16,  6, 24,  1, 42,  6, 49,  2,  8, 15, 15, 11, 34,
2104     15, 41, 11, 59, 16,  7, 20, 21, 25, 33, 20, 43, 25, 59, 20,
2105      5, 34, 22, 30, 27, 34, 44, 30, 49, 34,  6, 39, 12, 44, 28,
2106     39, 38, 44, 50, 39,  1,  1, 17,  6, 24,  2, 43,  6, 50,  2,
2107      9, 15, 16, 11, 35, 15, 42, 11, 58, 16,  8, 20, 20, 25, 34,
2108     20, 42, 25, 59, 21,  4, 34, 21, 30, 26, 34, 43, 30, 48, 34,
2109      5, 39, 13, 44, 27, 39, 39, 44, 49, 39,  0,  1, 18,  6, 25,
2110      2, 44,  6, 51,  2, 10, 15, 17, 11, 35, 16, 43, 11, 57, 16,
2111      9, 20, 19, 25, 35, 20, 41, 25, 58, 21,  3, 34, 20, 30, 25,
2112     34, 42, 30, 48, 35,  4, 39, 14, 44, 26, 39, 40, 44, 48, 39,
2113      0,  2, 19,  6, 26,  2, 45,  6, 52,  2, 11, 15, 18, 11, 34,
2114     16, 44, 11, 56, 16, 10, 20, 18, 25, 35, 21, 40, 25, 57, 21,
2115      2, 34, 19, 30, 24, 34, 41, 30, 49, 35,  3, 39, 15, 44, 25,
2116     39, 41, 44, 48, 40,  1,  2, 20,  6, 27,  2, 46,  6, 53,  2,
2117     11, 16, 19, 11, 33, 16, 45, 11, 55, 16, 11, 20, 17, 25, 34,
2118     21, 39, 25, 56, 21,  1, 34, 18, 30, 24, 35, 40, 30, 50, 35,
2119      2, 39, 16, 44, 24, 39, 42, 44, 49, 40,  2,  2, 21,  6, 28,
2120      2, 47,  6, 54,  2, 10, 16, 20, 11, 32, 16, 46, 11, 54, 16,
2121     11, 21, 16, 25, 33, 21, 38, 25, 55, 21,  0, 34, 17, 30, 25,
2122     35, 39, 30, 51, 35,  1, 39, 17, 44, 24, 40, 43, 44, 50, 40,
2123      3,  2, 22,  6, 29,  2, 47,  7, 55,  2,  9, 16, 21, 11, 31,
2124     16, 47, 11, 53, 16, 10, 21, 15, 25, 32, 21, 37, 25, 54, 21,
2125      0, 35, 16, 30, 26, 35, 38, 30, 52, 35,  0, 39, 18, 44, 25,
2126     40, 44, 44, 51, 40,  4,  2, 23,  6, 30,  2, 46,  7, 56,  2,
2127      8, 16, 22, 11, 30, 16, 47, 12, 52, 16,  9, 21, 14, 25, 31,
2128     21, 36, 25, 53, 21,  1, 35, 15, 30, 27, 35, 37, 30, 53, 35,
2129      0, 40, 19, 44, 26, 40, 45, 44, 52, 40,  5,  2, 23,  7, 31,
2130      2, 45,  7, 57,  2,  7, 16, 23, 11, 29, 16, 46, 12, 51, 16,
2131      8, 21, 13, 25, 30, 21, 36, 26, 52, 21,  2, 35, 14, 30, 28,
2132     35, 36, 30, 54, 35,  1, 40, 20, 44, 27, 40, 46, 44, 53, 40,
2133      6,  2, 22,  7, 32,  2, 44,  7, 58,  2,  6, 16, 23, 12, 28,
2134     16, 45, 12, 50, 16,  7, 21, 12, 25, 29, 21, 37, 26, 51, 21,
2135      3, 35, 13, 30, 29, 35, 36, 31, 55, 35,  2, 40, 21, 44, 28,
2136     40, 47, 44, 54, 40,  7,  2, 21,  7, 33,  2, 43,  7, 59,  2,
2137      5, 16, 22, 12, 27, 16, 44, 12, 49, 16,  6, 21, 12, 26, 28,
2138     21, 38, 26, 50, 21,  4, 35, 12, 30, 30, 35, 37, 31, 56, 35,
2139      3, 40, 22, 44, 29, 40, 36, 36, 55, 40,  8,  2, 20,  7, 34,
2140      2, 42,  7, 59,  3,  4, 16, 21, 12, 26, 16, 43, 12, 48, 16,
2141      5, 21, 13, 26, 27, 21, 39, 26, 49, 21,  5, 35, 12, 31, 31,
2142     35, 38, 31, 57, 35,  4, 40, 23, 44, 30, 40, 37, 36, 56, 40,
2143      9,  2, 19,  7, 35,  2, 41,  7, 58,  3,  3, 16, 20, 12, 25,
2144     16, 42, 12, 48, 17,  4, 21, 14, 26, 26, 21, 40, 26, 48, 21,
2145      6, 35, 13, 31, 32, 35, 39, 31, 58, 35,  5, 40, 12, 36, 31,
2146     40, 38, 36, 57, 40, 10,  2, 18,  7, 35,  3, 40,  7, 57,  3,
2147      2, 16, 19, 12, 24, 16, 41, 12, 49, 17,  3, 21, 15, 26, 25,
2148     21, 41, 26, 48, 22,  7, 35, 14, 31, 33, 35, 40, 31, 59, 35,
2149      6, 40, 13, 36, 32, 40, 39, 36, 58, 40, 11,  2, 17,  7, 34,
2150      3, 39,  7, 56,  3,  1, 16, 18, 12, 24, 17, 40, 12, 50, 17,
2151      2, 21, 16, 26, 24, 21, 42, 26, 49, 22,  8, 35, 15, 31, 34,
2152     35, 41, 31, 48, 27,  7, 40, 14, 36, 33, 40, 40, 36, 59, 40,
2153     11,  3, 16,  7, 33,  3, 38,  7, 55,  3,  0, 16, 17, 12, 25,
2154     17, 39, 12, 51, 17,  1, 21, 17, 26, 24, 22, 43, 26, 50, 22,
2155      9, 35, 16, 31, 35, 35, 42, 31, 49, 27,  8, 40, 15, 36, 34,
2156     40, 41, 36, 59, 41, 10,  3, 15,  7, 32,  3, 37,  7, 54,  3,
2157      0, 17, 16, 12, 26, 17, 38, 12, 52, 17,  0, 21, 18, 26, 25,
2158     22, 44, 26, 51, 22, 10, 35, 17, 31, 24, 27, 43, 31, 50, 27,
2159      9, 40, 16, 36, 35, 40, 42, 36, 58, 41,  9,  3, 14,  7, 31,
2160      3, 36,  7, 53,  3,  1, 17, 15, 12, 27, 17, 37, 12, 53, 17,
2161      0, 22, 19, 26, 26, 22, 45, 26, 52, 22, 11, 35, 18, 31, 25,
2162     27, 44, 31, 51, 27, 10, 40, 17, 36, 35, 41, 43, 36, 57, 41,
2163      8,  3, 13,  7, 30,  3, 36,  8, 52,  3,  2, 17, 14, 12, 28,
2164     17, 36, 12, 54, 17,  1, 22, 20, 26, 27, 22, 46, 26, 53, 22,
2165      0, 27, 19, 31, 26, 27, 45, 31, 52, 27, 11, 40, 18, 36, 34,
2166     41, 44, 36, 56, 41,  7,  3, 12,  7, 29,  3, 37,  8, 51,  3,
2167      3, 17, 13, 12, 29, 17, 36, 13, 55, 17,  2, 22, 21, 26, 28,
2168     22, 47, 26, 54, 22,  1, 27, 20, 31, 27, 27, 46, 31, 53, 27,
2169     11, 41, 19, 36, 33, 41, 45, 36, 55, 41,  6,  3, 12,  8, 28,
2170      3, 38,  8, 50,  3,  4, 17, 12, 12, 30, 17, 37, 13, 56, 17,
2171      3, 22, 22, 26, 29, 22, 36, 18, 55, 22,  2, 27, 21, 31, 28,
2172     27, 47, 31, 54, 27, 10, 41, 20, 36, 32, 41, 46, 36, 54, 41,
2173      5,  3, 13,  8, 27,  3, 39,  8, 49,  3,  5, 17, 12, 13, 31,
2174     17, 38, 13, 57, 17,  4, 22, 23, 26, 30, 22, 37, 18, 56, 22,
2175      3, 27, 22, 31, 29, 27, 47, 32, 55, 27,  9, 41, 21, 36, 31,
2176     41, 47, 36, 53, 41,  4,  3, 14,  8, 26,  3, 40,  8, 48,  3,
2177      6, 17, 13, 13, 32, 17, 39, 13, 58, 17,  5, 22, 12, 18, 31,
2178     22, 38, 18, 57, 22,  4, 27, 23, 31, 30, 27, 46, 32, 56, 27,
2179      8, 41, 22, 36, 30, 41, 47, 37, 52, 41,  3,  3, 15,  8, 25,
2180      3, 41,  8, 48,  4,  7, 17, 14, 13, 33, 17, 40, 13, 59, 17,
2181      6, 22, 13, 18, 32, 22, 39, 18, 58, 22,  5, 27, 23, 32, 31,
2182     27, 45, 32, 57, 27,  7, 41, 23, 36, 29, 41, 46, 37, 51, 41,
2183      2,  3, 16,  8, 24,  3, 42,  8, 49,  4,  8, 17, 15, 13, 34,
2184     17, 41, 13, 48,  9,  7, 22, 14, 18, 33, 22, 40, 18, 59, 22,
2185      6, 27, 22, 32, 32, 27, 44, 32, 58, 27,  6, 41, 23, 37, 28,
2186     41, 45, 37, 50, 41,  1,  3, 17,  8, 24,  4, 43,  8, 50,  4,
2187      9, 17, 16, 13, 35, 17, 42, 13, 49,  9,  8, 22, 15, 18, 34,
2188     22, 41, 18, 59, 23,  7, 27, 21, 32, 33, 27, 43, 32, 59, 27,
2189      5, 41, 22, 37, 27, 41, 44, 37, 49, 41,  0,  3, 18,  8, 25,
2190      4, 44,  8, 51,  4, 10, 17, 17, 13, 24,  9, 43, 13, 50,  9,
2191      9, 22, 16, 18, 35, 22, 42, 18, 58, 23,  8, 27, 20, 32, 34,
2192     27, 42, 32, 59, 28,  4, 41, 21, 37, 26, 41, 43, 37, 48, 41,
2193      0,  4, 19,  8, 26,  4, 45,  8, 52,  4, 11, 17, 18, 13, 25,
2194      9, 44, 13, 51,  9, 10, 22, 17, 18, 35, 23, 43, 18, 57, 23,
2195      9, 27, 19, 32, 35, 27, 41, 32, 58, 28,  3, 41, 20, 37, 25,
2196     41, 42, 37, 48, 42,  1,  4, 20,  8, 27,  4, 46,  8, 53,  4,
2197      0,  9, 19, 13, 26,  9, 45, 13, 52,  9, 11, 22, 18, 18, 34,
2198     23, 44, 18, 56, 23, 10, 27, 18, 32, 35, 28, 40, 32, 57, 28,
2199      2, 41, 19, 37, 24, 41, 41, 37, 49, 42,  2,  4, 21,  8, 28,
2200      4, 47,  8, 54,  4,  1,  9, 20, 13, 27,  9, 46, 13, 53,  9,
2201     11, 23, 19, 18, 33, 23, 45, 18, 55, 23, 11, 27, 17, 32, 34,
2202     28, 39, 32, 56, 28,  1, 41, 18, 37, 24, 42, 40, 37, 50, 42,
2203      3,  4, 22,  8, 29,  4, 36,  0, 55,  4,  2,  9, 21, 13, 28,
2204      9, 47, 13, 54,  9, 10, 23, 20, 18, 32, 23, 46, 18, 54, 23,
2205     11, 28, 16, 32, 33, 28, 38, 32, 55, 28,  0, 41, 17, 37, 25,
2206     42, 39, 37, 51, 42,  4,  4, 23,  8, 30,  4, 37,  0, 56,  4,
2207      3,  9, 22, 13, 29,  9, 47, 14, 55,  9,  9, 23, 21, 18, 31,
2208     23, 47, 18, 53, 23, 10, 28, 15, 32, 32, 28, 37, 32, 54, 28,
2209      0, 42, 16, 37, 26, 42, 38, 37, 52, 42,  5,  4, 12,  0, 31,
2210      4, 38,  0, 57,  4,  4,  9, 23, 13, 30,  9, 46, 14, 56,  9,
2211      8, 23, 22, 18, 30, 23, 47, 19, 52, 23,  9, 28, 14, 32, 31,
2212     28, 36, 32, 53, 28,  1, 42, 15, 37, 27, 42, 37, 37, 53, 42,
2213      6,  4, 13,  0, 32,  4, 39,  0, 58,  4,  5,  9, 23, 14, 31,
2214      9, 45, 14, 57,  9,  7, 23, 23, 18, 29, 23, 46, 19, 51, 23,
2215      8, 28, 13, 32, 30, 28, 36, 33, 52, 28,  2, 42, 14, 37, 28,
2216     42, 36, 37, 54, 42,  7,  4, 14,  0, 33,  4, 40,  0, 59,  4,
2217      6,  9, 22, 14, 32,  9, 44, 14, 58,  9,  6, 23, 23, 19, 28,
2218     23, 45, 19, 50, 23,  7, 28, 12, 32, 29, 28, 37, 33, 51, 28,
2219      3, 42, 13, 37, 29, 42, 36, 38, 55, 42,  8,  4, 15,  0, 34,
2220      4, 41,  0, 59,  5,  7,  9, 21, 14, 33,  9, 43, 14, 59,  9,
2221      5, 23, 22, 19, 27, 23, 44, 19, 49, 23,  6, 28, 12, 33, 28,
2222     28, 38, 33, 50, 28,  4, 42, 12, 37, 30, 42, 37, 38, 56, 42,
2223      9,  4, 16,  0, 35,  4, 42,  0, 58,  5,  8,  9, 20, 14, 34,
2224      9, 42, 14, 59, 10,  4, 23, 21, 19, 26, 23, 43, 19, 48, 23,
2225      5, 28, 13, 33, 27, 28, 39, 33, 49, 28,  5, 42, 12, 38, 31,
2226     42, 38, 38, 57, 42, 10,  4, 17,  0, 35,  5, 43,  0, 57,  5,
2227      9,  9, 19, 14, 35,  9, 41, 14, 58, 10,  3, 23, 20, 19, 25,
2228     23, 42, 19, 48, 24,  4, 28, 14, 33, 26, 28, 40, 33, 48, 28,
2229      6, 42, 13, 38, 32, 42, 39, 38, 58, 42, 11,  4, 18,  0, 34,
2230      5, 44,  0, 56,  5, 10,  9, 18, 14, 35, 10, 40, 14, 57, 10,
2231      2, 23, 19, 19, 24, 23, 41, 19, 49, 24,  3, 28, 15, 33, 25,
2232     28, 41, 33, 48, 29,  7, 42, 14, 38, 33, 42, 40, 38, 59, 42,
2233     11,  5, 19,  0, 33,  5, 45,  0, 55,  5, 11,  9, 17, 14, 34,
2234     10, 39, 14, 56, 10,  1, 23, 18, 19, 24, 24, 40, 19, 50, 24,
2235      2, 28, 16, 33, 24, 28, 42, 33, 49, 29,  8, 42, 15, 38, 34,
2236     42, 41, 38, 59, 43, 10,  5, 20,  0, 32,  5, 46,  0, 54,  5,
2237     11, 10, 16, 14, 33, 10, 38, 14, 55, 10,  0, 23, 17, 19, 25,
2238     24, 39, 19, 51, 24,  1, 28, 17, 33, 24, 29, 43, 33, 50, 29,
2239      9, 42, 16, 38, 35, 42, 42, 38, 58, 43,  9,  5, 21,  0, 31,
2240      5, 47,  0, 53,  5, 10, 10, 15, 14, 32, 10, 37, 14, 54, 10,
2241      0, 24, 16, 19, 26, 24, 38, 19, 52, 24,  0, 28, 18, 33, 25,
2242     29, 44, 33, 51, 29, 10, 42, 17, 38, 35, 43, 43, 38, 57, 43,
2243      8,  5, 22,  0, 30,  5, 47,  1, 52,  5,  9, 10, 14, 14, 31,
2244     10, 36, 14, 53, 10,  1, 24, 15, 19, 27, 24, 37, 19, 53, 24,
2245      0, 29, 19, 33, 26, 29, 45, 33, 52, 29, 11, 42, 18, 38, 34,
2246     43, 44, 38, 56, 43,  7,  5, 23,  0, 29,  5, 46,  1, 51,  5,
2247      8, 10, 13, 14, 30, 10, 36, 15, 52, 10,  2, 24, 14, 19, 28,
2248     24, 36, 19, 54, 24,  1, 29, 20, 33, 27, 29, 46, 33, 53, 29,
2249     11, 43, 19, 38, 33, 43, 45, 38, 55, 43,  6,  5, 23,  1, 28,
2250      5, 45,  1, 50,  5,  7, 10, 12, 14, 29, 10, 37, 15, 51, 10,
2251      3, 24, 13, 19, 29, 24, 36, 20, 55, 24,  2, 29, 21, 33, 28,
2252     29, 47, 33, 54, 29, 10, 43, 20, 38, 32, 43, 46, 38, 54, 43,
2253      5,  5, 22,  1, 27,  5, 44,  1, 49,  5,  6, 10, 12, 15, 28,
2254     10, 38, 15, 50, 10,  4, 24, 12, 19, 30, 24, 37, 20, 56, 24,
2255      3, 29, 22, 33, 29, 29, 47, 34, 55, 29,  9, 43, 21, 38, 31,
2256     43, 47, 38, 53, 43,  4,  5, 21,  1, 26,  5, 43,  1, 48,  5,
2257      5, 10, 13, 15, 27, 10, 39, 15, 49, 10,  5, 24, 12, 20, 31,
2258     24, 38, 20, 57, 24,  4, 29, 23, 33, 30, 29, 46, 34, 56, 29,
2259      8, 43, 22, 38, 30, 43, 47, 39, 52, 43,  3,  5, 20,  1, 25,
2260      5, 42,  1, 48,  6,  4, 10, 14, 15, 26, 10, 40, 15, 48, 10,
2261      6, 24, 13, 20, 32, 24, 39, 20, 58, 24,  5, 29, 23, 34, 31,
2262     29, 45, 34, 57, 29,  7, 43, 23, 38, 29, 43, 46, 39, 51, 43,
2263      2,  5, 19,  1, 24,  5, 41,  1, 49,  6,  3, 10, 15, 15, 25,
2264     10, 41, 15, 48, 11,  7, 24, 14, 20, 33, 24, 40, 20, 59, 24,
2265      6, 29, 22, 34, 32, 29, 44, 34, 58, 29,  6, 43, 23, 39, 28,
2266     43, 45, 39, 50, 43,  1,  5, 18,  1, 24,  6, 40,  1, 50,  6,
2267      2, 10, 16, 15, 24, 10, 42, 15, 49, 11,  8, 24, 15, 20, 34,
2268     24, 41, 20, 59, 25,  7, 29, 21, 34, 33, 29, 43, 34, 59, 29,
2269      5, 43, 22, 39, 27, 43, 44, 39, 49, 43,  0,  5, 17,  1, 25,
2270      6, 39,  1, 51,  6,  1, 10, 17, 15, 24, 11, 43, 15, 50, 11,
2271      9, 24, 16, 20, 35, 24, 42, 20, 58, 25,  8, 29, 20, 34, 34,
2272     29, 42, 34, 59, 30,  4, 43, 21, 39, 26, 43, 43, 39, 48, 43,
2273      0,  6, 16,  1, 26,  6, 38,  1, 52,  6,  0, 10, 18, 15, 25,
2274     11, 44, 15, 51, 11, 10, 24, 17, 20, 35, 25, 43, 20, 57, 25,
2275      9, 29, 19, 34, 35, 29, 41, 34, 58, 30,  3, 43, 20, 39, 25,
2276     43, 42, 39, 48, 44,  1,  6, 15,  1, 27,  6, 37,  1, 53,  6,
2277      0, 11, 19, 15, 26, 11, 45, 15, 52, 11, 11, 24, 18, 20, 34,
2278     25, 44, 20, 56, 25, 10, 29, 18, 34, 35, 30, 40, 34, 57, 30,
2279      2, 43, 19, 39, 24, 43, 41, 39, 49, 44,  2,  6, 14,  1, 28,
2280      6, 36,  1, 54,  6,  1, 11, 20, 15, 27, 11, 46, 15, 53, 11,
2281     11, 25, 19, 20, 33, 25, 45, 20, 55, 25, 11, 29, 17, 34, 34,
2282     30, 39, 34, 56, 30,  1, 43, 18, 39, 24, 44, 40, 39, 50, 44,
2283      3,  6, 13,  1, 29,  6, 36,  2, 55,  6,  2, 11, 21, 15, 28,
2284     11, 47, 15, 54, 11, 10, 25, 20, 20, 32, 25, 46, 20, 54, 25,
2285     11, 30, 16, 34, 33, 30, 38, 34, 55, 30,  0, 43, 17, 39, 25,
2286     44, 39, 39, 51, 44,  4,  6, 12,  1, 30,  6, 37,  2, 56,  6,
2287      3, 11, 22, 15, 29, 11, 47, 16, 55, 11,  9, 25, 21, 20, 31,
2288     25, 47, 20, 53, 25, 10, 30, 15, 34, 32, 30, 37, 34, 54, 30,
2289      0, 44, 16, 39, 26, 44, 38, 39, 52, 44,  5,  6, 12,  2, 31,
2290      6, 38,  2, 57,  6,  4, 11, 23, 15, 30, 11, 46, 16, 56, 11,
2291      8, 25, 22, 20, 30, 25, 47, 21, 52, 25,  9, 30, 14, 34, 31,
2292     30, 36, 34, 53, 30,  1, 44, 15, 39, 27, 44, 37, 39, 53, 44,
2293      6,  6, 13,  2, 32,  6, 39,  2, 58,  6,  5, 11, 23, 16, 31,
2294     11, 45, 16, 57, 11,  7, 25, 23, 20, 29, 25, 46, 21, 51, 25,
2295      8, 30, 13, 34, 30, 30, 36, 35, 52, 30,  2, 44, 14, 39, 28,
2296     44, 36, 39, 54, 44,  7,  6, 14,  2, 33,  6, 40,  2, 59,  6,
2297      6, 11, 22, 16, 32, 11, 44, 16, 58, 11,  6, 25, 23, 21, 28,
2298     25, 45, 21, 50, 25,  7, 30, 12, 34, 29, 30, 37, 35, 51, 30,
2299      3, 44, 13, 39, 29, 44, 36, 40, 55, 44,  8,  6, 15,  2, 34,
2300      6, 41,  2, 59,  7,  7, 11, 21, 16, 33, 11, 43, 16, 59, 11,
2301      5, 25, 22, 21, 27, 25, 44, 21, 49, 25,  6, 30, 12, 35, 28,
2302     30, 38, 35, 50, 30,  4, 44, 12, 39, 30, 44, 37, 40, 56, 44,
2303      9,  6, 16,  2, 35,  6, 42,  2, 58,  7,  8, 11, 20, 16, 34,
2304     11, 42, 16, 59, 12,  4, 25, 21, 21, 26, 25, 43, 21, 48, 25,
2305      5, 30, 13, 35, 27, 30, 39, 35, 49, 30,  5, 44, 12, 40, 31,
2306     44, 38, 40, 57, 44, 10,  6, 17,  2, 35,  7, 43,  2, 57,  7,
2307      9, 11, 19, 16, 35, 11, 41, 16, 58, 12,  3, 25, 20, 21, 25,
2308     25, 42, 21, 48, 26,  4, 30, 14, 35, 26, 30, 40, 35, 48, 30,
2309      6, 44, 13, 40, 32, 44, 39, 40, 58, 44, 11,  6, 18,  2, 34,
2310      7, 44,  2, 56,  7, 10, 11, 18, 16, 35, 12, 40, 16, 57, 12,
2311      2, 25, 19, 21, 24, 25, 41, 21, 49, 26,  3, 30, 15, 35, 25,
2312     30, 41, 35, 48, 31,  7, 44, 14, 40, 33, 44, 40, 40, 59, 44,
2313     11,  7, 19,  2, 33,  7, 45,  2, 55,  7, 11, 11, 17, 16, 34,
2314     12, 39, 16, 56, 12,  1, 25, 18, 21, 24, 26, 40, 21, 50, 26,
2315      2, 30, 16, 35, 24, 30, 42, 35, 49, 31,  8, 44, 15, 40, 34,
2316     44, 41, 40, 48, 36, 10,  7, 20,  2, 32,  7, 46,  2, 54,  7,
2317     11, 12, 16, 16, 33, 12, 38, 16, 55, 12,  0, 25, 17, 21, 25,
2318     26, 39, 21, 51, 26,  1, 30, 17, 35, 24, 31, 43, 35, 50, 31,
2319      9, 44, 16, 40, 35, 44, 42, 40, 49, 36,  9,  7, 21,  2, 31,
2320      7, 47,  2, 53,  7, 10, 12, 15, 16, 32, 12, 37, 16, 54, 12,
2321      0, 26, 16, 21, 26, 26, 38, 21, 52, 26,  0, 30, 18, 35, 25,
2322     31, 44, 35, 51, 31, 10, 44, 17, 40, 24, 36, 43, 40, 50, 36,
2323      8,  7, 22,  2, 30,  7, 47,  3, 52,  7,  9, 12, 14, 16, 31,
2324     12, 36, 16, 53, 12,  1, 26, 15, 21, 27, 26, 37, 21, 53, 26,
2325      0, 31, 19, 35, 26, 31, 45, 35, 52, 31, 11, 44, 18, 40, 25,
2326     36, 44, 40, 51, 36,  7,  7, 23,  2, 29,  7, 46,  3, 51,  7,
2327      8, 12, 13, 16, 30, 12, 36, 17, 52, 12,  2, 26, 14, 21, 28,
2328     26, 36, 21, 54, 26,  1, 31, 20, 35, 27, 31, 46, 35, 53, 31,
2329      0, 36, 19, 40, 26, 36, 45, 40, 52, 36,  6,  7, 23,  3, 28,
2330      7, 45,  3, 50,  7,  7, 12, 12, 16, 29, 12, 37, 17, 51, 12,
2331      3, 26, 13, 21, 29, 26, 36, 22, 55, 26,  2, 31, 21, 35, 28,
2332     31, 47, 35, 54, 31,  1, 36, 20, 40, 27, 36, 46, 40, 53, 36,
2333      5,  7, 22,  3, 27,  7, 44,  3, 49,  7,  6, 12, 12, 17, 28,
2334     12, 38, 17, 50, 12,  4, 26, 12, 21, 30, 26, 37, 22, 56, 26,
2335      3, 31, 22, 35, 29, 31, 36, 27, 55, 31,  2, 36, 21, 40, 28,
2336     36, 47, 40, 54, 36,  4,  7, 21,  3, 26,  7, 43,  3, 48,  7,
2337      5, 12, 13, 17, 27, 12, 39, 17, 49, 12,  5, 26, 12, 22, 31,
2338     26, 38, 22, 57, 26,  4, 31, 23, 35, 30, 31, 37, 27, 56, 31,
2339      3, 36, 22, 40, 29, 36, 47, 41, 55, 36,  3,  7, 20,  3, 25,
2340      7, 42,  3, 48,  8,  4, 12, 14, 17, 26, 12, 40, 17, 48, 12,
2341      6, 26, 13, 22, 32, 26, 39, 22, 58, 26,  5, 31, 12, 27, 31,
2342     31, 38, 27, 57, 31,  4, 36, 23, 40, 30, 36, 46, 41, 56, 36,
2343      2,  7, 19,  3, 24,  7, 41,  3, 49,  8,  3, 12, 15, 17, 25,
2344     12, 41, 17, 48, 13,  7, 26, 14, 22, 33, 26, 40, 22, 59, 26,
2345      6, 31, 13, 27, 32, 31, 39, 27, 58, 31,  5, 36, 23, 41, 31,
2346     36, 45, 41, 57, 36,  1,  7, 18,  3, 24,  8, 40,  3, 50,  8,
2347      2, 12, 16, 17, 24, 12, 42, 17, 49, 13,  8, 26, 15, 22, 34,
2348     26, 41, 22, 48, 18,  7, 31, 14, 27, 33, 31, 40, 27, 59, 31,
2349      6, 36, 22, 41, 32, 36, 44, 41, 58, 36,  0,  7, 17,  3, 25,
2350      8, 39,  3, 51,  8,  1, 12, 17, 17, 24, 13, 43, 17, 50, 13,
2351      9, 26, 16, 22, 35, 26, 42, 22, 49, 18,  8, 31, 15, 27, 34,
2352     31, 41, 27, 59, 32,  7, 36, 21, 41, 33, 36, 43, 41, 59, 36,
2353      0,  8, 16,  3, 26,  8, 38,  3, 52,  8,  0, 12, 18, 17, 25,
2354     13, 44, 17, 51, 13, 10, 26, 17, 22, 24, 18, 43, 22, 50, 18,
2355      9, 31, 16, 27, 35, 31, 42, 27, 58, 32,  8, 36, 20, 41, 34,
2356     36, 42, 41, 59, 37,  1,  8, 15,  3, 27,  8, 37,  3, 53,  8,
2357      0, 13, 19, 17, 26, 13, 45, 17, 52, 13, 11, 26, 18, 22, 25,
2358     18, 44, 22, 51, 18, 10, 31, 17, 27, 35, 32, 43, 27, 57, 32,
2359      9, 36, 19, 41, 35, 36, 41, 41, 58, 37,  2,  8, 14,  3, 28,
2360      8, 36,  3, 54,  8,  1, 13, 20, 17, 27, 13, 46, 17, 53, 13,
2361      0, 18, 19, 22, 26, 18, 45, 22, 52, 18, 11, 31, 18, 27, 34,
2362     32, 44, 27, 56, 32, 10, 36, 18, 41, 35, 37, 40, 41, 57, 37,
2363      3,  8, 13,  3, 29,  8, 36,  4, 55,  8,  2, 13, 21, 17, 28,
2364     13, 47, 17, 54, 13,  1, 18, 20, 22, 27, 18, 46, 22, 53, 18,
2365     11, 32, 19, 27, 33, 32, 45, 27, 55, 32, 11, 36, 17, 41, 34,
2366     37, 39, 41, 56, 37,  4,  8, 12,  3, 30,  8, 37,  4, 56,  8,
2367      3, 13, 22, 17, 29, 13, 36,  9, 55, 13,  2, 18, 21, 22, 28,
2368     18, 47, 22, 54, 18, 10, 32, 20, 27, 32, 32, 46, 27, 54, 32,
2369     11, 37, 16, 41, 33, 37, 38, 41, 55, 37,  5,  8, 12,  4, 31,
2370      8, 38,  4, 57,  8,  4, 13, 23, 17, 30, 13, 37,  9, 56, 13,
2371      3, 18, 22, 22, 29, 18, 47, 23, 55, 18,  9, 32, 21, 27, 31,
2372     32, 47, 27, 53, 32, 10, 37, 15, 41, 32, 37, 37, 41, 54, 37,
2373      6,  8, 13,  4, 32,  8, 39,  4, 58,  8,  5, 13, 12,  9, 31,
2374     13, 38,  9, 57, 13,  4, 18, 23, 22, 30, 18, 46, 23, 56, 18,
2375      8, 32, 22, 27, 30, 32, 47, 28, 52, 32,  9, 37, 14, 41, 31,
2376     37, 36, 41, 53, 37,  7,  8, 14,  4, 33,  8, 40,  4, 59,  8,
2377      6, 13, 13,  9, 32, 13, 39,  9, 58, 13,  5, 18, 23, 23, 31,
2378     18, 45, 23, 57, 18,  7, 32, 23, 27, 29, 32, 46, 28, 51, 32,
2379      8, 37, 13, 41, 30, 37, 36, 42, 52, 37,  8,  8, 15,  4, 34,
2380      8, 41,  4, 48,  0,  7, 13, 14,  9, 33, 13, 40,  9, 59, 13,
2381      6, 18, 22, 23, 32, 18, 44, 23, 58, 18,  6, 32, 23, 28, 28,
2382     32, 45, 28, 50, 32,  7, 37, 12, 41, 29, 37, 37, 42, 51, 37,
2383      9,  8, 16,  4, 35,  8, 42,  4, 49,  0,  8, 13, 15,  9, 34,
2384     13, 41,  9, 59, 14,  7, 18, 21, 23, 33, 18, 43, 23, 59, 18,
2385      5, 32, 22, 28, 27, 32, 44, 28, 49, 32,  6, 37, 12, 42, 28,
2386     37, 38, 42, 50, 37, 10,  8, 17,  4, 24,  0, 43,  4, 50,  0,
2387      9, 13, 16,  9, 35, 13, 42,  9, 58, 14,  8, 18, 20, 23, 34,
2388     18, 42, 23, 59, 19,  4, 32, 21, 28, 26, 32, 43, 28, 48, 32,
2389      5, 37, 13, 42, 27, 37, 39, 42, 49, 37, 11,  8, 18,  4, 25,
2390      0, 44,  4, 51,  0, 10, 13, 17,  9, 35, 14, 43,  9, 57, 14,
2391      9, 18, 19, 23, 35, 18, 41, 23, 58, 19,  3, 32, 20, 28, 25,
2392     32, 42, 28, 48, 33,  4, 37, 14, 42, 26, 37, 40, 42, 48, 37,
2393 };
2394
2395 static const uint8_t hq_tab_05[] = {
2396      0,  0, 25,  4, 34,  0, 59,  4, 68,  0, 13, 13, 22,  9, 47,
2397     13, 56,  9, 78, 14, 10, 18, 28, 23, 44, 18, 58, 23, 78, 18,
2398      8, 32, 31, 28, 38, 32, 61, 28, 68, 32, 11, 37, 18, 41, 41,
2399     37, 48, 41, 71, 37,  1,  0, 26,  4, 35,  0, 60,  4, 69,  0,
2400     14, 13, 23,  9, 47, 14, 57,  9, 77, 14, 11, 18, 27, 23, 45,
2401     18, 57, 23, 79, 18,  7, 32, 30, 28, 37, 32, 60, 28, 67, 32,
2402     10, 37, 17, 41, 40, 37, 48, 42, 70, 37,  2,  0, 27,  4, 36,
2403      0, 61,  4, 70,  0, 15, 13, 24,  9, 46, 14, 58,  9, 76, 14,
2404     12, 18, 26, 23, 46, 18, 56, 23, 79, 19,  6, 32, 29, 28, 36,
2405     32, 59, 28, 66, 32,  9, 37, 16, 41, 39, 37, 49, 42, 69, 37,
2406      3,  0, 28,  4, 37,  0, 62,  4, 71,  0, 15, 14, 25,  9, 45,
2407     14, 59,  9, 75, 14, 13, 18, 25, 23, 47, 18, 55, 23, 78, 19,
2408      5, 32, 28, 28, 35, 32, 58, 28, 65, 32,  8, 37, 16, 42, 38,
2409     37, 50, 42, 68, 37,  4,  0, 29,  4, 38,  0, 63,  4, 72,  0,
2410     14, 14, 26,  9, 44, 14, 60,  9, 74, 14, 14, 18, 24, 23, 47,
2411     19, 54, 23, 77, 19,  4, 32, 27, 28, 34, 32, 57, 28, 64, 32,
2412      7, 37, 17, 42, 37, 37, 51, 42, 67, 37,  5,  0, 30,  4, 39,
2413      0, 63,  5, 73,  0, 13, 14, 27,  9, 43, 14, 61,  9, 73, 14,
2414     15, 18, 23, 23, 46, 19, 53, 23, 76, 19,  3, 32, 26, 28, 33,
2415     32, 56, 28, 64, 33,  6, 37, 18, 42, 36, 37, 52, 42, 66, 37,
2416      6,  0, 31,  4, 40,  0, 62,  5, 74,  0, 12, 14, 28,  9, 42,
2417     14, 62,  9, 72, 14, 15, 19, 22, 23, 45, 19, 52, 23, 75, 19,
2418      2, 32, 25, 28, 32, 32, 55, 28, 65, 33,  5, 37, 19, 42, 35,
2419     37, 53, 42, 65, 37,  7,  0, 31,  5, 41,  0, 61,  5, 75,  0,
2420     11, 14, 29,  9, 41, 14, 63,  9, 71, 14, 14, 19, 21, 23, 44,
2421     19, 51, 23, 74, 19,  1, 32, 24, 28, 32, 33, 54, 28, 66, 33,
2422      4, 37, 20, 42, 34, 37, 54, 42, 64, 37,  8,  0, 30,  5, 42,
2423      0, 60,  5, 76,  0, 10, 14, 30,  9, 40, 14, 63, 10, 70, 14,
2424     13, 19, 20, 23, 43, 19, 50, 23, 73, 19,  0, 32, 23, 28, 33,
2425     33, 53, 28, 67, 33,  3, 37, 21, 42, 33, 37, 55, 42, 64, 38,
2426      9,  0, 29,  5, 43,  0, 59,  5, 77,  0,  9, 14, 31,  9, 39,
2427     14, 62, 10, 69, 14, 12, 19, 19, 23, 42, 19, 49, 23, 72, 19,
2428      0, 33, 22, 28, 34, 33, 52, 28, 68, 33,  2, 37, 22, 42, 32,
2429     37, 56, 42, 65, 38, 10,  0, 28,  5, 44,  0, 58,  5, 78,  0,
2430      8, 14, 31, 10, 38, 14, 61, 10, 68, 14, 11, 19, 18, 23, 41,
2431     19, 48, 23, 71, 19,  1, 33, 21, 28, 35, 33, 51, 28, 69, 33,
2432      1, 37, 23, 42, 32, 38, 57, 42, 66, 38, 11,  0, 27,  5, 45,
2433      0, 57,  5, 79,  0,  7, 14, 30, 10, 37, 14, 60, 10, 67, 14,
2434     10, 19, 17, 23, 40, 19, 48, 24, 70, 19,  2, 33, 20, 28, 36,
2435     33, 50, 28, 70, 33,  0, 37, 24, 42, 33, 38, 58, 42, 67, 38,
2436     12,  0, 26,  5, 46,  0, 56,  5, 79,  1,  6, 14, 29, 10, 36,
2437     14, 59, 10, 66, 14,  9, 19, 16, 23, 39, 19, 49, 24, 69, 19,
2438      3, 33, 19, 28, 37, 33, 49, 28, 71, 33,  0, 38, 25, 42, 34,
2439     38, 59, 42, 68, 38, 13,  0, 25,  5, 47,  0, 55,  5, 78,  1,
2440      5, 14, 28, 10, 35, 14, 58, 10, 65, 14,  8, 19, 16, 24, 38,
2441     19, 50, 24, 68, 19,  4, 33, 18, 28, 38, 33, 48, 28, 72, 33,
2442      1, 38, 26, 42, 35, 38, 60, 42, 69, 38, 14,  0, 24,  5, 47,
2443      1, 54,  5, 77,  1,  4, 14, 27, 10, 34, 14, 57, 10, 64, 14,
2444      7, 19, 17, 24, 37, 19, 51, 24, 67, 19,  5, 33, 17, 28, 39,
2445     33, 48, 29, 73, 33,  2, 38, 27, 42, 36, 38, 61, 42, 70, 38,
2446     15,  0, 23,  5, 46,  1, 53,  5, 76,  1,  3, 14, 26, 10, 33,
2447     14, 56, 10, 64, 15,  6, 19, 18, 24, 36, 19, 52, 24, 66, 19,
2448      6, 33, 16, 28, 40, 33, 49, 29, 74, 33,  3, 38, 28, 42, 37,
2449     38, 62, 42, 71, 38, 15,  1, 22,  5, 45,  1, 52,  5, 75,  1,
2450      2, 14, 25, 10, 32, 14, 55, 10, 65, 15,  5, 19, 19, 24, 35,
2451     19, 53, 24, 65, 19,  7, 33, 16, 29, 41, 33, 50, 29, 75, 33,
2452      4, 38, 29, 42, 38, 38, 63, 42, 72, 38, 14,  1, 21,  5, 44,
2453      1, 51,  5, 74,  1,  1, 14, 24, 10, 32, 15, 54, 10, 66, 15,
2454      4, 19, 20, 24, 34, 19, 54, 24, 64, 19,  8, 33, 17, 29, 42,
2455     33, 51, 29, 76, 33,  5, 38, 30, 42, 39, 38, 63, 43, 73, 38,
2456     13,  1, 20,  5, 43,  1, 50,  5, 73,  1,  0, 14, 23, 10, 33,
2457     15, 53, 10, 67, 15,  3, 19, 21, 24, 33, 19, 55, 24, 64, 20,
2458      9, 33, 18, 29, 43, 33, 52, 29, 77, 33,  6, 38, 31, 42, 40,
2459     38, 62, 43, 74, 38, 12,  1, 19,  5, 42,  1, 49,  5, 72,  1,
2460      0, 15, 22, 10, 34, 15, 52, 10, 68, 15,  2, 19, 22, 24, 32,
2461     19, 56, 24, 65, 20, 10, 33, 19, 29, 44, 33, 53, 29, 78, 33,
2462      7, 38, 31, 43, 41, 38, 61, 43, 75, 38, 11,  1, 18,  5, 41,
2463      1, 48,  5, 71,  1,  1, 15, 21, 10, 35, 15, 51, 10, 69, 15,
2464      1, 19, 23, 24, 32, 20, 57, 24, 66, 20, 11, 33, 20, 29, 45,
2465     33, 54, 29, 79, 33,  8, 38, 30, 43, 42, 38, 60, 43, 76, 38,
2466     10,  1, 17,  5, 40,  1, 48,  6, 70,  1,  2, 15, 20, 10, 36,
2467     15, 50, 10, 70, 15,  0, 19, 24, 24, 33, 20, 58, 24, 67, 20,
2468     12, 33, 21, 29, 46, 33, 55, 29, 79, 34,  9, 38, 29, 43, 43,
2469     38, 59, 43, 77, 38,  9,  1, 16,  5, 39,  1, 49,  6, 69,  1,
2470      3, 15, 19, 10, 37, 15, 49, 10, 71, 15,  0, 20, 25, 24, 34,
2471     20, 59, 24, 68, 20, 13, 33, 22, 29, 47, 33, 56, 29, 78, 34,
2472     10, 38, 28, 43, 44, 38, 58, 43, 78, 38,  8,  1, 16,  6, 38,
2473      1, 50,  6, 68,  1,  4, 15, 18, 10, 38, 15, 48, 10, 72, 15,
2474      1, 20, 26, 24, 35, 20, 60, 24, 69, 20, 14, 33, 23, 29, 47,
2475     34, 57, 29, 77, 34, 11, 38, 27, 43, 45, 38, 57, 43, 79, 38,
2476      7,  1, 17,  6, 37,  1, 51,  6, 67,  1,  5, 15, 17, 10, 39,
2477     15, 48, 11, 73, 15,  2, 20, 27, 24, 36, 20, 61, 24, 70, 20,
2478     15, 33, 24, 29, 46, 34, 58, 29, 76, 34, 12, 38, 26, 43, 46,
2479     38, 56, 43, 79, 39,  6,  1, 18,  6, 36,  1, 52,  6, 66,  1,
2480      6, 15, 16, 10, 40, 15, 49, 11, 74, 15,  3, 20, 28, 24, 37,
2481     20, 62, 24, 71, 20, 15, 34, 25, 29, 45, 34, 59, 29, 75, 34,
2482     13, 38, 25, 43, 47, 38, 55, 43, 78, 39,  5,  1, 19,  6, 35,
2483      1, 53,  6, 65,  1,  7, 15, 16, 11, 41, 15, 50, 11, 75, 15,
2484      4, 20, 29, 24, 38, 20, 63, 24, 72, 20, 14, 34, 26, 29, 44,
2485     34, 60, 29, 74, 34, 14, 38, 24, 43, 47, 39, 54, 43, 77, 39,
2486      4,  1, 20,  6, 34,  1, 54,  6, 64,  1,  8, 15, 17, 11, 42,
2487     15, 51, 11, 76, 15,  5, 20, 30, 24, 39, 20, 63, 25, 73, 20,
2488     13, 34, 27, 29, 43, 34, 61, 29, 73, 34, 15, 38, 23, 43, 46,
2489     39, 53, 43, 76, 39,  3,  1, 21,  6, 33,  1, 55,  6, 64,  2,
2490      9, 15, 18, 11, 43, 15, 52, 11, 77, 15,  6, 20, 31, 24, 40,
2491     20, 62, 25, 74, 20, 12, 34, 28, 29, 42, 34, 62, 29, 72, 34,
2492     15, 39, 22, 43, 45, 39, 52, 43, 75, 39,  2,  1, 22,  6, 32,
2493      1, 56,  6, 65,  2, 10, 15, 19, 11, 44, 15, 53, 11, 78, 15,
2494      7, 20, 31, 25, 41, 20, 61, 25, 75, 20, 11, 34, 29, 29, 41,
2495     34, 63, 29, 71, 34, 14, 39, 21, 43, 44, 39, 51, 43, 74, 39,
2496      1,  1, 23,  6, 32,  2, 57,  6, 66,  2, 11, 15, 20, 11, 45,
2497     15, 54, 11, 79, 15,  8, 20, 30, 25, 42, 20, 60, 25, 76, 20,
2498     10, 34, 30, 29, 40, 34, 63, 30, 70, 34, 13, 39, 20, 43, 43,
2499     39, 50, 43, 73, 39,  0,  1, 24,  6, 33,  2, 58,  6, 67,  2,
2500     12, 15, 21, 11, 46, 15, 55, 11, 79, 16,  9, 20, 29, 25, 43,
2501     20, 59, 25, 77, 20,  9, 34, 31, 29, 39, 34, 62, 30, 69, 34,
2502     12, 39, 19, 43, 42, 39, 49, 43, 72, 39,  0,  2, 25,  6, 34,
2503      2, 59,  6, 68,  2, 13, 15, 22, 11, 47, 15, 56, 11, 78, 16,
2504     10, 20, 28, 25, 44, 20, 58, 25, 78, 20,  8, 34, 31, 30, 38,
2505     34, 61, 30, 68, 34, 11, 39, 18, 43, 41, 39, 48, 43, 71, 39,
2506      1,  2, 26,  6, 35,  2, 60,  6, 69,  2, 14, 15, 23, 11, 47,
2507     16, 57, 11, 77, 16, 11, 20, 27, 25, 45, 20, 57, 25, 79, 20,
2508      7, 34, 30, 30, 37, 34, 60, 30, 67, 34, 10, 39, 17, 43, 40,
2509     39, 48, 44, 70, 39,  2,  2, 27,  6, 36,  2, 61,  6, 70,  2,
2510     15, 15, 24, 11, 46, 16, 58, 11, 76, 16, 12, 20, 26, 25, 46,
2511     20, 56, 25, 79, 21,  6, 34, 29, 30, 36, 34, 59, 30, 66, 34,
2512      9, 39, 16, 43, 39, 39, 49, 44, 69, 39,  3,  2, 28,  6, 37,
2513      2, 62,  6, 71,  2, 15, 16, 25, 11, 45, 16, 59, 11, 75, 16,
2514     13, 20, 25, 25, 47, 20, 55, 25, 78, 21,  5, 34, 28, 30, 35,
2515     34, 58, 30, 65, 34,  8, 39, 16, 44, 38, 39, 50, 44, 68, 39,
2516      4,  2, 29,  6, 38,  2, 63,  6, 72,  2, 14, 16, 26, 11, 44,
2517     16, 60, 11, 74, 16, 14, 20, 24, 25, 47, 21, 54, 25, 77, 21,
2518      4, 34, 27, 30, 34, 34, 57, 30, 64, 34,  7, 39, 17, 44, 37,
2519     39, 51, 44, 67, 39,  5,  2, 30,  6, 39,  2, 63,  7, 73,  2,
2520     13, 16, 27, 11, 43, 16, 61, 11, 73, 16, 15, 20, 23, 25, 46,
2521     21, 53, 25, 76, 21,  3, 34, 26, 30, 33, 34, 56, 30, 64, 35,
2522      6, 39, 18, 44, 36, 39, 52, 44, 66, 39,  6,  2, 31,  6, 40,
2523      2, 62,  7, 74,  2, 12, 16, 28, 11, 42, 16, 62, 11, 72, 16,
2524     15, 21, 22, 25, 45, 21, 52, 25, 75, 21,  2, 34, 25, 30, 32,
2525     34, 55, 30, 65, 35,  5, 39, 19, 44, 35, 39, 53, 44, 65, 39,
2526      7,  2, 31,  7, 41,  2, 61,  7, 75,  2, 11, 16, 29, 11, 41,
2527     16, 63, 11, 71, 16, 14, 21, 21, 25, 44, 21, 51, 25, 74, 21,
2528      1, 34, 24, 30, 32, 35, 54, 30, 66, 35,  4, 39, 20, 44, 34,
2529     39, 54, 44, 64, 39,  8,  2, 30,  7, 42,  2, 60,  7, 76,  2,
2530     10, 16, 30, 11, 40, 16, 63, 12, 70, 16, 13, 21, 20, 25, 43,
2531     21, 50, 25, 73, 21,  0, 34, 23, 30, 33, 35, 53, 30, 67, 35,
2532      3, 39, 21, 44, 33, 39, 55, 44, 64, 40,  9,  2, 29,  7, 43,
2533      2, 59,  7, 77,  2,  9, 16, 31, 11, 39, 16, 62, 12, 69, 16,
2534     12, 21, 19, 25, 42, 21, 49, 25, 72, 21,  0, 35, 22, 30, 34,
2535     35, 52, 30, 68, 35,  2, 39, 22, 44, 32, 39, 56, 44, 65, 40,
2536     10,  2, 28,  7, 44,  2, 58,  7, 78,  2,  8, 16, 31, 12, 38,
2537     16, 61, 12, 68, 16, 11, 21, 18, 25, 41, 21, 48, 25, 71, 21,
2538      1, 35, 21, 30, 35, 35, 51, 30, 69, 35,  1, 39, 23, 44, 32,
2539     40, 57, 44, 66, 40, 11,  2, 27,  7, 45,  2, 57,  7, 79,  2,
2540      7, 16, 30, 12, 37, 16, 60, 12, 67, 16, 10, 21, 17, 25, 40,
2541     21, 48, 26, 70, 21,  2, 35, 20, 30, 36, 35, 50, 30, 70, 35,
2542      0, 39, 24, 44, 33, 40, 58, 44, 67, 40, 12,  2, 26,  7, 46,
2543      2, 56,  7, 79,  3,  6, 16, 29, 12, 36, 16, 59, 12, 66, 16,
2544      9, 21, 16, 25, 39, 21, 49, 26, 69, 21,  3, 35, 19, 30, 37,
2545     35, 49, 30, 71, 35,  0, 40, 25, 44, 34, 40, 59, 44, 68, 40,
2546     13,  2, 25,  7, 47,  2, 55,  7, 78,  3,  5, 16, 28, 12, 35,
2547     16, 58, 12, 65, 16,  8, 21, 16, 26, 38, 21, 50, 26, 68, 21,
2548      4, 35, 18, 30, 38, 35, 48, 30, 72, 35,  1, 40, 26, 44, 35,
2549     40, 60, 44, 69, 40, 14,  2, 24,  7, 47,  3, 54,  7, 77,  3,
2550      4, 16, 27, 12, 34, 16, 57, 12, 64, 16,  7, 21, 17, 26, 37,
2551     21, 51, 26, 67, 21,  5, 35, 17, 30, 39, 35, 48, 31, 73, 35,
2552      2, 40, 27, 44, 36, 40, 61, 44, 70, 40, 15,  2, 23,  7, 46,
2553      3, 53,  7, 76,  3,  3, 16, 26, 12, 33, 16, 56, 12, 64, 17,
2554      6, 21, 18, 26, 36, 21, 52, 26, 66, 21,  6, 35, 16, 30, 40,
2555     35, 49, 31, 74, 35,  3, 40, 28, 44, 37, 40, 62, 44, 71, 40,
2556     15,  3, 22,  7, 45,  3, 52,  7, 75,  3,  2, 16, 25, 12, 32,
2557     16, 55, 12, 65, 17,  5, 21, 19, 26, 35, 21, 53, 26, 65, 21,
2558      7, 35, 16, 31, 41, 35, 50, 31, 75, 35,  4, 40, 29, 44, 38,
2559     40, 63, 44, 72, 40, 14,  3, 21,  7, 44,  3, 51,  7, 74,  3,
2560      1, 16, 24, 12, 32, 17, 54, 12, 66, 17,  4, 21, 20, 26, 34,
2561     21, 54, 26, 64, 21,  8, 35, 17, 31, 42, 35, 51, 31, 76, 35,
2562      5, 40, 30, 44, 39, 40, 48, 36, 73, 40, 13,  3, 20,  7, 43,
2563      3, 50,  7, 73,  3,  0, 16, 23, 12, 33, 17, 53, 12, 67, 17,
2564      3, 21, 21, 26, 33, 21, 55, 26, 64, 22,  9, 35, 18, 31, 43,
2565     35, 52, 31, 77, 35,  6, 40, 31, 44, 40, 40, 49, 36, 74, 40,
2566     12,  3, 19,  7, 42,  3, 49,  7, 72,  3,  0, 17, 22, 12, 34,
2567     17, 52, 12, 68, 17,  2, 21, 22, 26, 32, 21, 56, 26, 65, 22,
2568     10, 35, 19, 31, 44, 35, 53, 31, 78, 35,  7, 40, 16, 36, 41,
2569     40, 50, 36, 75, 40, 11,  3, 18,  7, 41,  3, 48,  7, 71,  3,
2570      1, 17, 21, 12, 35, 17, 51, 12, 69, 17,  1, 21, 23, 26, 32,
2571     22, 57, 26, 66, 22, 11, 35, 20, 31, 45, 35, 54, 31, 79, 35,
2572      8, 40, 17, 36, 42, 40, 51, 36, 76, 40, 10,  3, 17,  7, 40,
2573      3, 48,  8, 70,  3,  2, 17, 20, 12, 36, 17, 50, 12, 70, 17,
2574      0, 21, 24, 26, 33, 22, 58, 26, 67, 22, 12, 35, 21, 31, 46,
2575     35, 55, 31, 64, 27,  9, 40, 18, 36, 43, 40, 52, 36, 77, 40,
2576      9,  3, 16,  7, 39,  3, 49,  8, 69,  3,  3, 17, 19, 12, 37,
2577     17, 49, 12, 71, 17,  0, 22, 25, 26, 34, 22, 59, 26, 68, 22,
2578     13, 35, 22, 31, 47, 35, 56, 31, 65, 27, 10, 40, 19, 36, 44,
2579     40, 53, 36, 78, 40,  8,  3, 16,  8, 38,  3, 50,  8, 68,  3,
2580      4, 17, 18, 12, 38, 17, 48, 12, 72, 17,  1, 22, 26, 26, 35,
2581     22, 60, 26, 69, 22, 14, 35, 23, 31, 32, 27, 57, 31, 66, 27,
2582     11, 40, 20, 36, 45, 40, 54, 36, 79, 40,  7,  3, 17,  8, 37,
2583      3, 51,  8, 67,  3,  5, 17, 17, 12, 39, 17, 48, 13, 73, 17,
2584      2, 22, 27, 26, 36, 22, 61, 26, 70, 22, 15, 35, 24, 31, 33,
2585     27, 58, 31, 67, 27, 12, 40, 21, 36, 46, 40, 55, 36, 79, 41,
2586      6,  3, 18,  8, 36,  3, 52,  8, 66,  3,  6, 17, 16, 12, 40,
2587     17, 49, 13, 74, 17,  3, 22, 28, 26, 37, 22, 62, 26, 71, 22,
2588      0, 27, 25, 31, 34, 27, 59, 31, 68, 27, 13, 40, 22, 36, 47,
2589     40, 56, 36, 78, 41,  5,  3, 19,  8, 35,  3, 53,  8, 65,  3,
2590      7, 17, 16, 13, 41, 17, 50, 13, 75, 17,  4, 22, 29, 26, 38,
2591     22, 63, 26, 72, 22,  1, 27, 26, 31, 35, 27, 60, 31, 69, 27,
2592     14, 40, 23, 36, 47, 41, 57, 36, 77, 41,  4,  3, 20,  8, 34,
2593      3, 54,  8, 64,  3,  8, 17, 17, 13, 42, 17, 51, 13, 76, 17,
2594      5, 22, 30, 26, 39, 22, 48, 18, 73, 22,  2, 27, 27, 31, 36,
2595     27, 61, 31, 70, 27, 15, 40, 24, 36, 46, 41, 58, 36, 76, 41,
2596      3,  3, 21,  8, 33,  3, 55,  8, 64,  4,  9, 17, 18, 13, 43,
2597     17, 52, 13, 77, 17,  6, 22, 31, 26, 40, 22, 49, 18, 74, 22,
2598      3, 27, 28, 31, 37, 27, 62, 31, 71, 27, 15, 41, 25, 36, 45,
2599     41, 59, 36, 75, 41,  2,  3, 22,  8, 32,  3, 56,  8, 65,  4,
2600     10, 17, 19, 13, 44, 17, 53, 13, 78, 17,  7, 22, 16, 18, 41,
2601     22, 50, 18, 75, 22,  4, 27, 29, 31, 38, 27, 63, 31, 72, 27,
2602     14, 41, 26, 36, 44, 41, 60, 36, 74, 41,  1,  3, 23,  8, 32,
2603      4, 57,  8, 66,  4, 11, 17, 20, 13, 45, 17, 54, 13, 79, 17,
2604      8, 22, 17, 18, 42, 22, 51, 18, 76, 22,  5, 27, 30, 31, 39,
2605     27, 63, 32, 73, 27, 13, 41, 27, 36, 43, 41, 61, 36, 73, 41,
2606      0,  3, 24,  8, 33,  4, 58,  8, 67,  4, 12, 17, 21, 13, 46,
2607     17, 55, 13, 64,  9,  9, 22, 18, 18, 43, 22, 52, 18, 77, 22,
2608      6, 27, 31, 31, 40, 27, 62, 32, 74, 27, 12, 41, 28, 36, 42,
2609     41, 62, 36, 72, 41,  0,  4, 25,  8, 34,  4, 59,  8, 68,  4,
2610     13, 17, 22, 13, 47, 17, 56, 13, 65,  9, 10, 22, 19, 18, 44,
2611     22, 53, 18, 78, 22,  7, 27, 31, 32, 41, 27, 61, 32, 75, 27,
2612     11, 41, 29, 36, 41, 41, 63, 36, 71, 41,  1,  4, 26,  8, 35,
2613      4, 60,  8, 69,  4, 14, 17, 23, 13, 32,  9, 57, 13, 66,  9,
2614     11, 22, 20, 18, 45, 22, 54, 18, 79, 22,  8, 27, 30, 32, 42,
2615     27, 60, 32, 76, 27, 10, 41, 30, 36, 40, 41, 63, 37, 70, 41,
2616      2,  4, 27,  8, 36,  4, 61,  8, 70,  4, 15, 17, 24, 13, 33,
2617      9, 58, 13, 67,  9, 12, 22, 21, 18, 46, 22, 55, 18, 79, 23,
2618      9, 27, 29, 32, 43, 27, 59, 32, 77, 27,  9, 41, 31, 36, 39,
2619     41, 62, 37, 69, 41,  3,  4, 28,  8, 37,  4, 62,  8, 71,  4,
2620      0,  9, 25, 13, 34,  9, 59, 13, 68,  9, 13, 22, 22, 18, 47,
2621     22, 56, 18, 78, 23, 10, 27, 28, 32, 44, 27, 58, 32, 78, 27,
2622      8, 41, 31, 37, 38, 41, 61, 37, 68, 41,  4,  4, 29,  8, 38,
2623      4, 63,  8, 72,  4,  1,  9, 26, 13, 35,  9, 60, 13, 69,  9,
2624     14, 22, 23, 18, 47, 23, 57, 18, 77, 23, 11, 27, 27, 32, 45,
2625     27, 57, 32, 79, 27,  7, 41, 30, 37, 37, 41, 60, 37, 67, 41,
2626      5,  4, 30,  8, 39,  4, 48,  0, 73,  4,  2,  9, 27, 13, 36,
2627      9, 61, 13, 70,  9, 15, 22, 24, 18, 46, 23, 58, 18, 76, 23,
2628     12, 27, 26, 32, 46, 27, 56, 32, 79, 28,  6, 41, 29, 37, 36,
2629     41, 59, 37, 66, 41,  6,  4, 31,  8, 40,  4, 49,  0, 74,  4,
2630      3,  9, 28, 13, 37,  9, 62, 13, 71,  9, 15, 23, 25, 18, 45,
2631     23, 59, 18, 75, 23, 13, 27, 25, 32, 47, 27, 55, 32, 78, 28,
2632      5, 41, 28, 37, 35, 41, 58, 37, 65, 41,  7,  4, 16,  0, 41,
2633      4, 50,  0, 75,  4,  4,  9, 29, 13, 38,  9, 63, 13, 72,  9,
2634     14, 23, 26, 18, 44, 23, 60, 18, 74, 23, 14, 27, 24, 32, 47,
2635     28, 54, 32, 77, 28,  4, 41, 27, 37, 34, 41, 57, 37, 64, 41,
2636      8,  4, 17,  0, 42,  4, 51,  0, 76,  4,  5,  9, 30, 13, 39,
2637      9, 63, 14, 73,  9, 13, 23, 27, 18, 43, 23, 61, 18, 73, 23,
2638     15, 27, 23, 32, 46, 28, 53, 32, 76, 28,  3, 41, 26, 37, 33,
2639     41, 56, 37, 64, 42,  9,  4, 18,  0, 43,  4, 52,  0, 77,  4,
2640      6,  9, 31, 13, 40,  9, 62, 14, 74,  9, 12, 23, 28, 18, 42,
2641     23, 62, 18, 72, 23, 15, 28, 22, 32, 45, 28, 52, 32, 75, 28,
2642      2, 41, 25, 37, 32, 41, 55, 37, 65, 42, 10,  4, 19,  0, 44,
2643      4, 53,  0, 78,  4,  7,  9, 31, 14, 41,  9, 61, 14, 75,  9,
2644     11, 23, 29, 18, 41, 23, 63, 18, 71, 23, 14, 28, 21, 32, 44,
2645     28, 51, 32, 74, 28,  1, 41, 24, 37, 32, 42, 54, 37, 66, 42,
2646     11,  4, 20,  0, 45,  4, 54,  0, 79,  4,  8,  9, 30, 14, 42,
2647      9, 60, 14, 76,  9, 10, 23, 30, 18, 40, 23, 63, 19, 70, 23,
2648     13, 28, 20, 32, 43, 28, 50, 32, 73, 28,  0, 41, 23, 37, 33,
2649     42, 53, 37, 67, 42, 12,  4, 21,  0, 46,  4, 55,  0, 79,  5,
2650      9,  9, 29, 14, 43,  9, 59, 14, 77,  9,  9, 23, 31, 18, 39,
2651     23, 62, 19, 69, 23, 12, 28, 19, 32, 42, 28, 49, 32, 72, 28,
2652      0, 42, 22, 37, 34, 42, 52, 37, 68, 42, 13,  4, 22,  0, 47,
2653      4, 56,  0, 78,  5, 10,  9, 28, 14, 44,  9, 58, 14, 78,  9,
2654      8, 23, 31, 19, 38, 23, 61, 19, 68, 23, 11, 28, 18, 32, 41,
2655     28, 48, 32, 71, 28,  1, 42, 21, 37, 35, 42, 51, 37, 69, 42,
2656     14,  4, 23,  0, 47,  5, 57,  0, 77,  5, 11,  9, 27, 14, 45,
2657      9, 57, 14, 79,  9,  7, 23, 30, 19, 37, 23, 60, 19, 67, 23,
2658     10, 28, 17, 32, 40, 28, 48, 33, 70, 28,  2, 42, 20, 37, 36,
2659     42, 50, 37, 70, 42, 15,  4, 24,  0, 46,  5, 58,  0, 76,  5,
2660     12,  9, 26, 14, 46,  9, 56, 14, 79, 10,  6, 23, 29, 19, 36,
2661     23, 59, 19, 66, 23,  9, 28, 16, 32, 39, 28, 49, 33, 69, 28,
2662      3, 42, 19, 37, 37, 42, 49, 37, 71, 42, 15,  5, 25,  0, 45,
2663      5, 59,  0, 75,  5, 13,  9, 25, 14, 47,  9, 55, 14, 78, 10,
2664      5, 23, 28, 19, 35, 23, 58, 19, 65, 23,  8, 28, 16, 33, 38,
2665     28, 50, 33, 68, 28,  4, 42, 18, 37, 38, 42, 48, 37, 72, 42,
2666     14,  5, 26,  0, 44,  5, 60,  0, 74,  5, 14,  9, 24, 14, 47,
2667     10, 54, 14, 77, 10,  4, 23, 27, 19, 34, 23, 57, 19, 64, 23,
2668      7, 28, 17, 33, 37, 28, 51, 33, 67, 28,  5, 42, 17, 37, 39,
2669     42, 48, 38, 73, 42, 13,  5, 27,  0, 43,  5, 61,  0, 73,  5,
2670     15,  9, 23, 14, 46, 10, 53, 14, 76, 10,  3, 23, 26, 19, 33,
2671     23, 56, 19, 64, 24,  6, 28, 18, 33, 36, 28, 52, 33, 66, 28,
2672      6, 42, 16, 37, 40, 42, 49, 38, 74, 42, 12,  5, 28,  0, 42,
2673      5, 62,  0, 72,  5, 15, 10, 22, 14, 45, 10, 52, 14, 75, 10,
2674      2, 23, 25, 19, 32, 23, 55, 19, 65, 24,  5, 28, 19, 33, 35,
2675     28, 53, 33, 65, 28,  7, 42, 16, 38, 41, 42, 50, 38, 75, 42,
2676     11,  5, 29,  0, 41,  5, 63,  0, 71,  5, 14, 10, 21, 14, 44,
2677     10, 51, 14, 74, 10,  1, 23, 24, 19, 32, 24, 54, 19, 66, 24,
2678      4, 28, 20, 33, 34, 28, 54, 33, 64, 28,  8, 42, 17, 38, 42,
2679     42, 51, 38, 76, 42, 10,  5, 30,  0, 40,  5, 63,  1, 70,  5,
2680     13, 10, 20, 14, 43, 10, 50, 14, 73, 10,  0, 23, 23, 19, 33,
2681     24, 53, 19, 67, 24,  3, 28, 21, 33, 33, 28, 55, 33, 64, 29,
2682      9, 42, 18, 38, 43, 42, 52, 38, 77, 42,  9,  5, 31,  0, 39,
2683      5, 62,  1, 69,  5, 12, 10, 19, 14, 42, 10, 49, 14, 72, 10,
2684      0, 24, 22, 19, 34, 24, 52, 19, 68, 24,  2, 28, 22, 33, 32,
2685     28, 56, 33, 65, 29, 10, 42, 19, 38, 44, 42, 53, 38, 78, 42,
2686      8,  5, 31,  1, 38,  5, 61,  1, 68,  5, 11, 10, 18, 14, 41,
2687     10, 48, 14, 71, 10,  1, 24, 21, 19, 35, 24, 51, 19, 69, 24,
2688      1, 28, 23, 33, 32, 29, 57, 33, 66, 29, 11, 42, 20, 38, 45,
2689     42, 54, 38, 79, 42,  7,  5, 30,  1, 37,  5, 60,  1, 67,  5,
2690     10, 10, 17, 14, 40, 10, 48, 15, 70, 10,  2, 24, 20, 19, 36,
2691     24, 50, 19, 70, 24,  0, 28, 24, 33, 33, 29, 58, 33, 67, 29,
2692     12, 42, 21, 38, 46, 42, 55, 38, 79, 43,  6,  5, 29,  1, 36,
2693      5, 59,  1, 66,  5,  9, 10, 16, 14, 39, 10, 49, 15, 69, 10,
2694      3, 24, 19, 19, 37, 24, 49, 19, 71, 24,  0, 29, 25, 33, 34,
2695     29, 59, 33, 68, 29, 13, 42, 22, 38, 47, 42, 56, 38, 78, 43,
2696      5,  5, 28,  1, 35,  5, 58,  1, 65,  5,  8, 10, 16, 15, 38,
2697     10, 50, 15, 68, 10,  4, 24, 18, 19, 38, 24, 48, 19, 72, 24,
2698      1, 29, 26, 33, 35, 29, 60, 33, 69, 29, 14, 42, 23, 38, 47,
2699     43, 57, 38, 77, 43,  4,  5, 27,  1, 34,  5, 57,  1, 64,  5,
2700      7, 10, 17, 15, 37, 10, 51, 15, 67, 10,  5, 24, 17, 19, 39,
2701     24, 48, 20, 73, 24,  2, 29, 27, 33, 36, 29, 61, 33, 70, 29,
2702     15, 42, 24, 38, 46, 43, 58, 38, 76, 43,  3,  5, 26,  1, 33,
2703      5, 56,  1, 64,  6,  6, 10, 18, 15, 36, 10, 52, 15, 66, 10,
2704      6, 24, 16, 19, 40, 24, 49, 20, 74, 24,  3, 29, 28, 33, 37,
2705     29, 62, 33, 71, 29, 15, 43, 25, 38, 45, 43, 59, 38, 75, 43,
2706      2,  5, 25,  1, 32,  5, 55,  1, 65,  6,  5, 10, 19, 15, 35,
2707     10, 53, 15, 65, 10,  7, 24, 16, 20, 41, 24, 50, 20, 75, 24,
2708      4, 29, 29, 33, 38, 29, 63, 33, 72, 29, 14, 43, 26, 38, 44,
2709     43, 60, 38, 74, 43,  1,  5, 24,  1, 32,  6, 54,  1, 66,  6,
2710      4, 10, 20, 15, 34, 10, 54, 15, 64, 10,  8, 24, 17, 20, 42,
2711     24, 51, 20, 76, 24,  5, 29, 30, 33, 39, 29, 63, 34, 73, 29,
2712     13, 43, 27, 38, 43, 43, 61, 38, 73, 43,  0,  5, 23,  1, 33,
2713      6, 53,  1, 67,  6,  3, 10, 21, 15, 33, 10, 55, 15, 64, 11,
2714      9, 24, 18, 20, 43, 24, 52, 20, 77, 24,  6, 29, 31, 33, 40,
2715     29, 62, 34, 74, 29, 12, 43, 28, 38, 42, 43, 62, 38, 72, 43,
2716      0,  6, 22,  1, 34,  6, 52,  1, 68,  6,  2, 10, 22, 15, 32,
2717     10, 56, 15, 65, 11, 10, 24, 19, 20, 44, 24, 53, 20, 78, 24,
2718      7, 29, 31, 34, 41, 29, 61, 34, 75, 29, 11, 43, 29, 38, 41,
2719     43, 63, 38, 71, 43,  1,  6, 21,  1, 35,  6, 51,  1, 69,  6,
2720      1, 10, 23, 15, 32, 11, 57, 15, 66, 11, 11, 24, 20, 20, 45,
2721     24, 54, 20, 79, 24,  8, 29, 30, 34, 42, 29, 60, 34, 76, 29,
2722     10, 43, 30, 38, 40, 43, 63, 39, 70, 43,  2,  6, 20,  1, 36,
2723      6, 50,  1, 70,  6,  0, 10, 24, 15, 33, 11, 58, 15, 67, 11,
2724     12, 24, 21, 20, 46, 24, 55, 20, 79, 25,  9, 29, 29, 34, 43,
2725     29, 59, 34, 77, 29,  9, 43, 31, 38, 39, 43, 62, 39, 69, 43,
2726      3,  6, 19,  1, 37,  6, 49,  1, 71,  6,  0, 11, 25, 15, 34,
2727     11, 59, 15, 68, 11, 13, 24, 22, 20, 47, 24, 56, 20, 78, 25,
2728     10, 29, 28, 34, 44, 29, 58, 34, 78, 29,  8, 43, 31, 39, 38,
2729     43, 61, 39, 68, 43,  4,  6, 18,  1, 38,  6, 48,  1, 72,  6,
2730      1, 11, 26, 15, 35, 11, 60, 15, 69, 11, 14, 24, 23, 20, 47,
2731     25, 57, 20, 77, 25, 11, 29, 27, 34, 45, 29, 57, 34, 79, 29,
2732      7, 43, 30, 39, 37, 43, 60, 39, 67, 43,  5,  6, 17,  1, 39,
2733      6, 48,  2, 73,  6,  2, 11, 27, 15, 36, 11, 61, 15, 70, 11,
2734     15, 24, 24, 20, 46, 25, 58, 20, 76, 25, 12, 29, 26, 34, 46,
2735     29, 56, 34, 79, 30,  6, 43, 29, 39, 36, 43, 59, 39, 66, 43,
2736      6,  6, 16,  1, 40,  6, 49,  2, 74,  6,  3, 11, 28, 15, 37,
2737     11, 62, 15, 71, 11, 15, 25, 25, 20, 45, 25, 59, 20, 75, 25,
2738     13, 29, 25, 34, 47, 29, 55, 34, 78, 30,  5, 43, 28, 39, 35,
2739     43, 58, 39, 65, 43,  7,  6, 16,  2, 41,  6, 50,  2, 75,  6,
2740      4, 11, 29, 15, 38, 11, 63, 15, 72, 11, 14, 25, 26, 20, 44,
2741     25, 60, 20, 74, 25, 14, 29, 24, 34, 47, 30, 54, 34, 77, 30,
2742      4, 43, 27, 39, 34, 43, 57, 39, 64, 43,  8,  6, 17,  2, 42,
2743      6, 51,  2, 76,  6,  5, 11, 30, 15, 39, 11, 63, 16, 73, 11,
2744     13, 25, 27, 20, 43, 25, 61, 20, 73, 25, 15, 29, 23, 34, 46,
2745     30, 53, 34, 76, 30,  3, 43, 26, 39, 33, 43, 56, 39, 64, 44,
2746      9,  6, 18,  2, 43,  6, 52,  2, 77,  6,  6, 11, 31, 15, 40,
2747     11, 62, 16, 74, 11, 12, 25, 28, 20, 42, 25, 62, 20, 72, 25,
2748     15, 30, 22, 34, 45, 30, 52, 34, 75, 30,  2, 43, 25, 39, 32,
2749     43, 55, 39, 65, 44, 10,  6, 19,  2, 44,  6, 53,  2, 78,  6,
2750      7, 11, 31, 16, 41, 11, 61, 16, 75, 11, 11, 25, 29, 20, 41,
2751     25, 63, 20, 71, 25, 14, 30, 21, 34, 44, 30, 51, 34, 74, 30,
2752      1, 43, 24, 39, 32, 44, 54, 39, 66, 44, 11,  6, 20,  2, 45,
2753      6, 54,  2, 79,  6,  8, 11, 30, 16, 42, 11, 60, 16, 76, 11,
2754     10, 25, 30, 20, 40, 25, 63, 21, 70, 25, 13, 30, 20, 34, 43,
2755     30, 50, 34, 73, 30,  0, 43, 23, 39, 33, 44, 53, 39, 67, 44,
2756     12,  6, 21,  2, 46,  6, 55,  2, 79,  7,  9, 11, 29, 16, 43,
2757     11, 59, 16, 77, 11,  9, 25, 31, 20, 39, 25, 62, 21, 69, 25,
2758     12, 30, 19, 34, 42, 30, 49, 34, 72, 30,  0, 44, 22, 39, 34,
2759     44, 52, 39, 68, 44, 13,  6, 22,  2, 47,  6, 56,  2, 78,  7,
2760     10, 11, 28, 16, 44, 11, 58, 16, 78, 11,  8, 25, 31, 21, 38,
2761     25, 61, 21, 68, 25, 11, 30, 18, 34, 41, 30, 48, 34, 71, 30,
2762      1, 44, 21, 39, 35, 44, 51, 39, 69, 44, 14,  6, 23,  2, 47,
2763      7, 57,  2, 77,  7, 11, 11, 27, 16, 45, 11, 57, 16, 79, 11,
2764      7, 25, 30, 21, 37, 25, 60, 21, 67, 25, 10, 30, 17, 34, 40,
2765     30, 48, 35, 70, 30,  2, 44, 20, 39, 36, 44, 50, 39, 70, 44,
2766     15,  6, 24,  2, 46,  7, 58,  2, 76,  7, 12, 11, 26, 16, 46,
2767     11, 56, 16, 79, 12,  6, 25, 29, 21, 36, 25, 59, 21, 66, 25,
2768      9, 30, 16, 34, 39, 30, 49, 35, 69, 30,  3, 44, 19, 39, 37,
2769     44, 49, 39, 71, 44, 15,  7, 25,  2, 45,  7, 59,  2, 75,  7,
2770     13, 11, 25, 16, 47, 11, 55, 16, 78, 12,  5, 25, 28, 21, 35,
2771     25, 58, 21, 65, 25,  8, 30, 16, 35, 38, 30, 50, 35, 68, 30,
2772      4, 44, 18, 39, 38, 44, 48, 39, 72, 44, 14,  7, 26,  2, 44,
2773      7, 60,  2, 74,  7, 14, 11, 24, 16, 47, 12, 54, 16, 77, 12,
2774      4, 25, 27, 21, 34, 25, 57, 21, 64, 25,  7, 30, 17, 35, 37,
2775     30, 51, 35, 67, 30,  5, 44, 17, 39, 39, 44, 48, 40, 73, 44,
2776     13,  7, 27,  2, 43,  7, 61,  2, 73,  7, 15, 11, 23, 16, 46,
2777     12, 53, 16, 76, 12,  3, 25, 26, 21, 33, 25, 56, 21, 64, 26,
2778      6, 30, 18, 35, 36, 30, 52, 35, 66, 30,  6, 44, 16, 39, 40,
2779     44, 49, 40, 74, 44, 12,  7, 28,  2, 42,  7, 62,  2, 72,  7,
2780     15, 12, 22, 16, 45, 12, 52, 16, 75, 12,  2, 25, 25, 21, 32,
2781     25, 55, 21, 65, 26,  5, 30, 19, 35, 35, 30, 53, 35, 65, 30,
2782      7, 44, 16, 40, 41, 44, 50, 40, 75, 44, 11,  7, 29,  2, 41,
2783      7, 63,  2, 71,  7, 14, 12, 21, 16, 44, 12, 51, 16, 74, 12,
2784      1, 25, 24, 21, 32, 26, 54, 21, 66, 26,  4, 30, 20, 35, 34,
2785     30, 54, 35, 64, 30,  8, 44, 17, 40, 42, 44, 51, 40, 76, 44,
2786     10,  7, 30,  2, 40,  7, 63,  3, 70,  7, 13, 12, 20, 16, 43,
2787     12, 50, 16, 73, 12,  0, 25, 23, 21, 33, 26, 53, 21, 67, 26,
2788      3, 30, 21, 35, 33, 30, 55, 35, 64, 31,  9, 44, 18, 40, 43,
2789     44, 52, 40, 77, 44,  9,  7, 31,  2, 39,  7, 62,  3, 69,  7,
2790     12, 12, 19, 16, 42, 12, 49, 16, 72, 12,  0, 26, 22, 21, 34,
2791     26, 52, 21, 68, 26,  2, 30, 22, 35, 32, 30, 56, 35, 65, 31,
2792     10, 44, 19, 40, 44, 44, 53, 40, 78, 44,  8,  7, 31,  3, 38,
2793      7, 61,  3, 68,  7, 11, 12, 18, 16, 41, 12, 48, 16, 71, 12,
2794      1, 26, 21, 21, 35, 26, 51, 21, 69, 26,  1, 30, 23, 35, 32,
2795     31, 57, 35, 66, 31, 11, 44, 20, 40, 45, 44, 54, 40, 79, 44,
2796      7,  7, 30,  3, 37,  7, 60,  3, 67,  7, 10, 12, 17, 16, 40,
2797     12, 48, 17, 70, 12,  2, 26, 20, 21, 36, 26, 50, 21, 70, 26,
2798      0, 30, 24, 35, 33, 31, 58, 35, 67, 31, 12, 44, 21, 40, 46,
2799     44, 55, 40, 64, 36,  6,  7, 29,  3, 36,  7, 59,  3, 66,  7,
2800      9, 12, 16, 16, 39, 12, 49, 17, 69, 12,  3, 26, 19, 21, 37,
2801     26, 49, 21, 71, 26,  0, 31, 25, 35, 34, 31, 59, 35, 68, 31,
2802     13, 44, 22, 40, 47, 44, 56, 40, 65, 36,  5,  7, 28,  3, 35,
2803      7, 58,  3, 65,  7,  8, 12, 16, 17, 38, 12, 50, 17, 68, 12,
2804      4, 26, 18, 21, 38, 26, 48, 21, 72, 26,  1, 31, 26, 35, 35,
2805     31, 60, 35, 69, 31, 14, 44, 23, 40, 32, 36, 57, 40, 66, 36,
2806      4,  7, 27,  3, 34,  7, 57,  3, 64,  7,  7, 12, 17, 17, 37,
2807     12, 51, 17, 67, 12,  5, 26, 17, 21, 39, 26, 48, 22, 73, 26,
2808      2, 31, 27, 35, 36, 31, 61, 35, 70, 31, 15, 44, 24, 40, 33,
2809     36, 58, 40, 67, 36,  3,  7, 26,  3, 33,  7, 56,  3, 64,  8,
2810      6, 12, 18, 17, 36, 12, 52, 17, 66, 12,  6, 26, 16, 21, 40,
2811     26, 49, 22, 74, 26,  3, 31, 28, 35, 37, 31, 62, 35, 71, 31,
2812      0, 36, 25, 40, 34, 36, 59, 40, 68, 36,  2,  7, 25,  3, 32,
2813      7, 55,  3, 65,  8,  5, 12, 19, 17, 35, 12, 53, 17, 65, 12,
2814      7, 26, 16, 22, 41, 26, 50, 22, 75, 26,  4, 31, 29, 35, 38,
2815     31, 63, 35, 72, 31,  1, 36, 26, 40, 35, 36, 60, 40, 69, 36,
2816      1,  7, 24,  3, 32,  8, 54,  3, 66,  8,  4, 12, 20, 17, 34,
2817     12, 54, 17, 64, 12,  8, 26, 17, 22, 42, 26, 51, 22, 76, 26,
2818      5, 31, 30, 35, 39, 31, 48, 27, 73, 31,  2, 36, 27, 40, 36,
2819     36, 61, 40, 70, 36,  0,  7, 23,  3, 33,  8, 53,  3, 67,  8,
2820      3, 12, 21, 17, 33, 12, 55, 17, 64, 13,  9, 26, 18, 22, 43,
2821     26, 52, 22, 77, 26,  6, 31, 31, 35, 40, 31, 49, 27, 74, 31,
2822      3, 36, 28, 40, 37, 36, 62, 40, 71, 36,  0,  8, 22,  3, 34,
2823      8, 52,  3, 68,  8,  2, 12, 22, 17, 32, 12, 56, 17, 65, 13,
2824     10, 26, 19, 22, 44, 26, 53, 22, 78, 26,  7, 31, 16, 27, 41,
2825     31, 50, 27, 75, 31,  4, 36, 29, 40, 38, 36, 63, 40, 72, 36,
2826      1,  8, 21,  3, 35,  8, 51,  3, 69,  8,  1, 12, 23, 17, 32,
2827     13, 57, 17, 66, 13, 11, 26, 20, 22, 45, 26, 54, 22, 79, 26,
2828      8, 31, 17, 27, 42, 31, 51, 27, 76, 31,  5, 36, 30, 40, 39,
2829     36, 63, 41, 73, 36,  2,  8, 20,  3, 36,  8, 50,  3, 70,  8,
2830      0, 12, 24, 17, 33, 13, 58, 17, 67, 13, 12, 26, 21, 22, 46,
2831     26, 55, 22, 64, 18,  9, 31, 18, 27, 43, 31, 52, 27, 77, 31,
2832      6, 36, 31, 40, 40, 36, 62, 41, 74, 36,  3,  8, 19,  3, 37,
2833      8, 49,  3, 71,  8,  0, 13, 25, 17, 34, 13, 59, 17, 68, 13,
2834     13, 26, 22, 22, 47, 26, 56, 22, 65, 18, 10, 31, 19, 27, 44,
2835     31, 53, 27, 78, 31,  7, 36, 31, 41, 41, 36, 61, 41, 75, 36,
2836      4,  8, 18,  3, 38,  8, 48,  3, 72,  8,  1, 13, 26, 17, 35,
2837     13, 60, 17, 69, 13, 14, 26, 23, 22, 32, 18, 57, 22, 66, 18,
2838     11, 31, 20, 27, 45, 31, 54, 27, 79, 31,  8, 36, 30, 41, 42,
2839     36, 60, 41, 76, 36,  5,  8, 17,  3, 39,  8, 48,  4, 73,  8,
2840      2, 13, 27, 17, 36, 13, 61, 17, 70, 13, 15, 26, 24, 22, 33,
2841     18, 58, 22, 67, 18, 12, 31, 21, 27, 46, 31, 55, 27, 79, 32,
2842      9, 36, 29, 41, 43, 36, 59, 41, 77, 36,  6,  8, 16,  3, 40,
2843      8, 49,  4, 74,  8,  3, 13, 28, 17, 37, 13, 62, 17, 71, 13,
2844      0, 18, 25, 22, 34, 18, 59, 22, 68, 18, 13, 31, 22, 27, 47,
2845     31, 56, 27, 78, 32, 10, 36, 28, 41, 44, 36, 58, 41, 78, 36,
2846      7,  8, 16,  4, 41,  8, 50,  4, 75,  8,  4, 13, 29, 17, 38,
2847     13, 63, 17, 72, 13,  1, 18, 26, 22, 35, 18, 60, 22, 69, 18,
2848     14, 31, 23, 27, 47, 32, 57, 27, 77, 32, 11, 36, 27, 41, 45,
2849     36, 57, 41, 79, 36,  8,  8, 17,  4, 42,  8, 51,  4, 76,  8,
2850      5, 13, 30, 17, 39, 13, 48,  9, 73, 13,  2, 18, 27, 22, 36,
2851     18, 61, 22, 70, 18, 15, 31, 24, 27, 46, 32, 58, 27, 76, 32,
2852     12, 36, 26, 41, 46, 36, 56, 41, 79, 37,  9,  8, 18,  4, 43,
2853      8, 52,  4, 77,  8,  6, 13, 31, 17, 40, 13, 49,  9, 74, 13,
2854      3, 18, 28, 22, 37, 18, 62, 22, 71, 18, 15, 32, 25, 27, 45,
2855     32, 59, 27, 75, 32, 13, 36, 25, 41, 47, 36, 55, 41, 78, 37,
2856     10,  8, 19,  4, 44,  8, 53,  4, 78,  8,  7, 13, 16,  9, 41,
2857     13, 50,  9, 75, 13,  4, 18, 29, 22, 38, 18, 63, 22, 72, 18,
2858     14, 32, 26, 27, 44, 32, 60, 27, 74, 32, 14, 36, 24, 41, 47,
2859     37, 54, 41, 77, 37, 11,  8, 20,  4, 45,  8, 54,  4, 79,  8,
2860      8, 13, 17,  9, 42, 13, 51,  9, 76, 13,  5, 18, 30, 22, 39,
2861     18, 63, 23, 73, 18, 13, 32, 27, 27, 43, 32, 61, 27, 73, 32,
2862     15, 36, 23, 41, 46, 37, 53, 41, 76, 37, 12,  8, 21,  4, 46,
2863      8, 55,  4, 64,  0,  9, 13, 18,  9, 43, 13, 52,  9, 77, 13,
2864      6, 18, 31, 22, 40, 18, 62, 23, 74, 18, 12, 32, 28, 27, 42,
2865     32, 62, 27, 72, 32, 15, 37, 22, 41, 45, 37, 52, 41, 75, 37,
2866     13,  8, 22,  4, 47,  8, 56,  4, 65,  0, 10, 13, 19,  9, 44,
2867     13, 53,  9, 78, 13,  7, 18, 31, 23, 41, 18, 61, 23, 75, 18,
2868     11, 32, 29, 27, 41, 32, 63, 27, 71, 32, 14, 37, 21, 41, 44,
2869     37, 51, 41, 74, 37, 14,  8, 23,  4, 32,  0, 57,  4, 66,  0,
2870     11, 13, 20,  9, 45, 13, 54,  9, 79, 13,  8, 18, 30, 23, 42,
2871     18, 60, 23, 76, 18, 10, 32, 30, 27, 40, 32, 63, 28, 70, 32,
2872     13, 37, 20, 41, 43, 37, 50, 41, 73, 37, 15,  8, 24,  4, 33,
2873      0, 58,  4, 67,  0, 12, 13, 21,  9, 46, 13, 55,  9, 79, 14,
2874      9, 18, 29, 23, 43, 18, 59, 23, 77, 18,  9, 32, 31, 27, 39,
2875     32, 62, 28, 69, 32, 12, 37, 19, 41, 42, 37, 49, 41, 72, 37,
2876 };
2877
2878 static const uint8_t hq_tab_06[] = {
2879      0,  0, 25,  8, 34,  0, 59,  8, 68,  0, 13, 25, 22, 17, 47,
2880     25, 56, 17, 78, 26, 10, 34, 28, 43, 44, 34, 58, 43, 78, 34,
2881      8, 60, 31, 52, 38, 60, 61, 52, 68, 60,  1,  0, 26,  8, 35,
2882      0, 60,  8, 69,  0, 14, 25, 23, 17, 47, 26, 57, 17, 77, 26,
2883     11, 34, 27, 43, 45, 34, 57, 43, 79, 34,  7, 60, 30, 52, 37,
2884     60, 60, 52, 67, 60,  2,  0, 27,  8, 36,  0, 61,  8, 70,  0,
2885     15, 25, 24, 17, 46, 26, 58, 17, 76, 26, 12, 34, 26, 43, 46,
2886     34, 56, 43, 79, 35,  6, 60, 29, 52, 36, 60, 59, 52, 66, 60,
2887      3,  0, 28,  8, 37,  0, 62,  8, 71,  0, 15, 26, 25, 17, 45,
2888     26, 59, 17, 75, 26, 13, 34, 25, 43, 47, 34, 55, 43, 78, 35,
2889      5, 60, 28, 52, 35, 60, 58, 52, 65, 60,  4,  0, 29,  8, 38,
2890      0, 63,  8, 72,  0, 14, 26, 26, 17, 44, 26, 60, 17, 74, 26,
2891     14, 34, 24, 43, 47, 35, 54, 43, 77, 35,  4, 60, 27, 52, 34,
2892     60, 57, 52, 64, 60,  5,  0, 30,  8, 39,  0, 63,  9, 73,  0,
2893     13, 26, 27, 17, 43, 26, 61, 17, 73, 26, 15, 34, 23, 43, 46,
2894     35, 53, 43, 76, 35,  3, 60, 26, 52, 33, 60, 56, 52, 64, 61,
2895      6,  0, 31,  8, 40,  0, 62,  9, 74,  0, 12, 26, 28, 17, 42,
2896     26, 62, 17, 72, 26, 15, 35, 22, 43, 45, 35, 52, 43, 75, 35,
2897      2, 60, 25, 52, 32, 60, 55, 52, 65, 61,  7,  0, 31,  9, 41,
2898      0, 61,  9, 75,  0, 11, 26, 29, 17, 41, 26, 63, 17, 71, 26,
2899     14, 35, 21, 43, 44, 35, 51, 43, 74, 35,  1, 60, 24, 52, 32,
2900     61, 54, 52, 66, 61,  8,  0, 30,  9, 42,  0, 60,  9, 76,  0,
2901     10, 26, 30, 17, 40, 26, 63, 18, 70, 26, 13, 35, 20, 43, 43,
2902     35, 50, 43, 73, 35,  0, 60, 23, 52, 33, 61, 53, 52, 67, 61,
2903      9,  0, 29,  9, 43,  0, 59,  9, 77,  0,  9, 26, 31, 17, 39,
2904     26, 62, 18, 69, 26, 12, 35, 19, 43, 42, 35, 49, 43, 72, 35,
2905      0, 61, 22, 52, 34, 61, 52, 52, 68, 61, 10,  0, 28,  9, 44,
2906      0, 58,  9, 78,  0,  8, 26, 31, 18, 38, 26, 61, 18, 68, 26,
2907     11, 35, 18, 43, 41, 35, 48, 43, 71, 35,  1, 61, 21, 52, 35,
2908     61, 51, 52, 69, 61, 11,  0, 27,  9, 45,  0, 57,  9, 79,  0,
2909      7, 26, 30, 18, 37, 26, 60, 18, 67, 26, 10, 35, 17, 43, 40,
2910     35, 48, 44, 70, 35,  2, 61, 20, 52, 36, 61, 50, 52, 70, 61,
2911     12,  0, 26,  9, 46,  0, 56,  9, 79,  1,  6, 26, 29, 18, 36,
2912     26, 59, 18, 66, 26,  9, 35, 16, 43, 39, 35, 49, 44, 69, 35,
2913      3, 61, 19, 52, 37, 61, 49, 52, 71, 61, 13,  0, 25,  9, 47,
2914      0, 55,  9, 78,  1,  5, 26, 28, 18, 35, 26, 58, 18, 65, 26,
2915      8, 35, 16, 44, 38, 35, 50, 44, 68, 35,  4, 61, 18, 52, 38,
2916     61, 48, 52, 72, 61, 14,  0, 24,  9, 47,  1, 54,  9, 77,  1,
2917      4, 26, 27, 18, 34, 26, 57, 18, 64, 26,  7, 35, 17, 44, 37,
2918     35, 51, 44, 67, 35,  5, 61, 17, 52, 39, 61, 48, 53, 73, 61,
2919     15,  0, 23,  9, 46,  1, 53,  9, 76,  1,  3, 26, 26, 18, 33,
2920     26, 56, 18, 64, 27,  6, 35, 18, 44, 36, 35, 52, 44, 66, 35,
2921      6, 61, 16, 52, 40, 61, 49, 53, 74, 61, 15,  1, 22,  9, 45,
2922      1, 52,  9, 75,  1,  2, 26, 25, 18, 32, 26, 55, 18, 65, 27,
2923      5, 35, 19, 44, 35, 35, 53, 44, 65, 35,  7, 61, 16, 53, 41,
2924     61, 50, 53, 75, 61, 14,  1, 21,  9, 44,  1, 51,  9, 74,  1,
2925      1, 26, 24, 18, 32, 27, 54, 18, 66, 27,  4, 35, 20, 44, 34,
2926     35, 54, 44, 64, 35,  8, 61, 17, 53, 42, 61, 51, 53, 76, 61,
2927     13,  1, 20,  9, 43,  1, 50,  9, 73,  1,  0, 26, 23, 18, 33,
2928     27, 53, 18, 67, 27,  3, 35, 21, 44, 33, 35, 55, 44, 64, 36,
2929      9, 61, 18, 53, 43, 61, 52, 53, 77, 61, 12,  1, 19,  9, 42,
2930      1, 49,  9, 72,  1,  0, 27, 22, 18, 34, 27, 52, 18, 68, 27,
2931      2, 35, 22, 44, 32, 35, 56, 44, 65, 36, 10, 61, 19, 53, 44,
2932     61, 53, 53, 78, 61, 11,  1, 18,  9, 41,  1, 48,  9, 71,  1,
2933      1, 27, 21, 18, 35, 27, 51, 18, 69, 27,  1, 35, 23, 44, 32,
2934     36, 57, 44, 66, 36, 11, 61, 20, 53, 45, 61, 54, 53, 79, 61,
2935     10,  1, 17,  9, 40,  1, 48, 10, 70,  1,  2, 27, 20, 18, 36,
2936     27, 50, 18, 70, 27,  0, 35, 24, 44, 33, 36, 58, 44, 67, 36,
2937     12, 61, 21, 53, 46, 61, 55, 53, 79, 62,  9,  1, 16,  9, 39,
2938      1, 49, 10, 69,  1,  3, 27, 19, 18, 37, 27, 49, 18, 71, 27,
2939      0, 36, 25, 44, 34, 36, 59, 44, 68, 36, 13, 61, 22, 53, 47,
2940     61, 56, 53, 78, 62,  8,  1, 16, 10, 38,  1, 50, 10, 68,  1,
2941      4, 27, 18, 18, 38, 27, 48, 18, 72, 27,  1, 36, 26, 44, 35,
2942     36, 60, 44, 69, 36, 14, 61, 23, 53, 47, 62, 57, 53, 77, 62,
2943      7,  1, 17, 10, 37,  1, 51, 10, 67,  1,  5, 27, 17, 18, 39,
2944     27, 48, 19, 73, 27,  2, 36, 27, 44, 36, 36, 61, 44, 70, 36,
2945     15, 61, 24, 53, 46, 62, 58, 53, 76, 62,  6,  1, 18, 10, 36,
2946      1, 52, 10, 66,  1,  6, 27, 16, 18, 40, 27, 49, 19, 74, 27,
2947      3, 36, 28, 44, 37, 36, 62, 44, 71, 36, 15, 62, 25, 53, 45,
2948     62, 59, 53, 75, 62,  5,  1, 19, 10, 35,  1, 53, 10, 65,  1,
2949      7, 27, 16, 19, 41, 27, 50, 19, 75, 27,  4, 36, 29, 44, 38,
2950     36, 63, 44, 72, 36, 14, 62, 26, 53, 44, 62, 60, 53, 74, 62,
2951      4,  1, 20, 10, 34,  1, 54, 10, 64,  1,  8, 27, 17, 19, 42,
2952     27, 51, 19, 76, 27,  5, 36, 30, 44, 39, 36, 63, 45, 73, 36,
2953     13, 62, 27, 53, 43, 62, 61, 53, 73, 62,  3,  1, 21, 10, 33,
2954      1, 55, 10, 64,  2,  9, 27, 18, 19, 43, 27, 52, 19, 77, 27,
2955      6, 36, 31, 44, 40, 36, 62, 45, 74, 36, 12, 62, 28, 53, 42,
2956     62, 62, 53, 72, 62,  2,  1, 22, 10, 32,  1, 56, 10, 65,  2,
2957     10, 27, 19, 19, 44, 27, 53, 19, 78, 27,  7, 36, 31, 45, 41,
2958     36, 61, 45, 75, 36, 11, 62, 29, 53, 41, 62, 63, 53, 71, 62,
2959      1,  1, 23, 10, 32,  2, 57, 10, 66,  2, 11, 27, 20, 19, 45,
2960     27, 54, 19, 79, 27,  8, 36, 30, 45, 42, 36, 60, 45, 76, 36,
2961     10, 62, 30, 53, 40, 62, 63, 54, 70, 62,  0,  1, 24, 10, 33,
2962      2, 58, 10, 67,  2, 12, 27, 21, 19, 46, 27, 55, 19, 79, 28,
2963      9, 36, 29, 45, 43, 36, 59, 45, 77, 36,  9, 62, 31, 53, 39,
2964     62, 62, 54, 69, 62,  0,  2, 25, 10, 34,  2, 59, 10, 68,  2,
2965     13, 27, 22, 19, 47, 27, 56, 19, 78, 28, 10, 36, 28, 45, 44,
2966     36, 58, 45, 78, 36,  8, 62, 31, 54, 38, 62, 61, 54, 68, 62,
2967      1,  2, 26, 10, 35,  2, 60, 10, 69,  2, 14, 27, 23, 19, 47,
2968     28, 57, 19, 77, 28, 11, 36, 27, 45, 45, 36, 57, 45, 79, 36,
2969      7, 62, 30, 54, 37, 62, 60, 54, 67, 62,  2,  2, 27, 10, 36,
2970      2, 61, 10, 70,  2, 15, 27, 24, 19, 46, 28, 58, 19, 76, 28,
2971     12, 36, 26, 45, 46, 36, 56, 45, 79, 37,  6, 62, 29, 54, 36,
2972     62, 59, 54, 66, 62,  3,  2, 28, 10, 37,  2, 62, 10, 71,  2,
2973     15, 28, 25, 19, 45, 28, 59, 19, 75, 28, 13, 36, 25, 45, 47,
2974     36, 55, 45, 78, 37,  5, 62, 28, 54, 35, 62, 58, 54, 65, 62,
2975      4,  2, 29, 10, 38,  2, 63, 10, 72,  2, 14, 28, 26, 19, 44,
2976     28, 60, 19, 74, 28, 14, 36, 24, 45, 47, 37, 54, 45, 77, 37,
2977      4, 62, 27, 54, 34, 62, 57, 54, 64, 62,  5,  2, 30, 10, 39,
2978      2, 63, 11, 73,  2, 13, 28, 27, 19, 43, 28, 61, 19, 73, 28,
2979     15, 36, 23, 45, 46, 37, 53, 45, 76, 37,  3, 62, 26, 54, 33,
2980     62, 56, 54, 64, 63,  6,  2, 31, 10, 40,  2, 62, 11, 74,  2,
2981     12, 28, 28, 19, 42, 28, 62, 19, 72, 28, 15, 37, 22, 45, 45,
2982     37, 52, 45, 75, 37,  2, 62, 25, 54, 32, 62, 55, 54, 65, 63,
2983      7,  2, 31, 11, 41,  2, 61, 11, 75,  2, 11, 28, 29, 19, 41,
2984     28, 63, 19, 71, 28, 14, 37, 21, 45, 44, 37, 51, 45, 74, 37,
2985      1, 62, 24, 54, 32, 63, 54, 54, 66, 63,  8,  2, 30, 11, 42,
2986      2, 60, 11, 76,  2, 10, 28, 30, 19, 40, 28, 63, 20, 70, 28,
2987     13, 37, 20, 45, 43, 37, 50, 45, 73, 37,  0, 62, 23, 54, 33,
2988     63, 53, 54, 67, 63,  9,  2, 29, 11, 43,  2, 59, 11, 77,  2,
2989      9, 28, 31, 19, 39, 28, 62, 20, 69, 28, 12, 37, 19, 45, 42,
2990     37, 49, 45, 72, 37,  0, 63, 22, 54, 34, 63, 52, 54, 68, 63,
2991     10,  2, 28, 11, 44,  2, 58, 11, 78,  2,  8, 28, 31, 20, 38,
2992     28, 61, 20, 68, 28, 11, 37, 18, 45, 41, 37, 48, 45, 71, 37,
2993      1, 63, 21, 54, 35, 63, 51, 54, 69, 63, 11,  2, 27, 11, 45,
2994      2, 57, 11, 79,  2,  7, 28, 30, 20, 37, 28, 60, 20, 67, 28,
2995     10, 37, 17, 45, 40, 37, 48, 46, 70, 37,  2, 63, 20, 54, 36,
2996     63, 50, 54, 70, 63, 12,  2, 26, 11, 46,  2, 56, 11, 79,  3,
2997      6, 28, 29, 20, 36, 28, 59, 20, 66, 28,  9, 37, 16, 45, 39,
2998     37, 49, 46, 69, 37,  3, 63, 19, 54, 37, 63, 49, 54, 71, 63,
2999     13,  2, 25, 11, 47,  2, 55, 11, 78,  3,  5, 28, 28, 20, 35,
3000     28, 58, 20, 65, 28,  8, 37, 16, 46, 38, 37, 50, 46, 68, 37,
3001      4, 63, 18, 54, 38, 63, 48, 54, 72, 63, 14,  2, 24, 11, 47,
3002      3, 54, 11, 77,  3,  4, 28, 27, 20, 34, 28, 57, 20, 64, 28,
3003      7, 37, 17, 46, 37, 37, 51, 46, 67, 37,  5, 63, 17, 54, 39,
3004     63, 48, 55, 73, 63, 15,  2, 23, 11, 46,  3, 53, 11, 76,  3,
3005      3, 28, 26, 20, 33, 28, 56, 20, 64, 29,  6, 37, 18, 46, 36,
3006     37, 52, 46, 66, 37,  6, 63, 16, 54, 40, 63, 49, 55, 74, 63,
3007     15,  3, 22, 11, 45,  3, 52, 11, 75,  3,  2, 28, 25, 20, 32,
3008     28, 55, 20, 65, 29,  5, 37, 19, 46, 35, 37, 53, 46, 65, 37,
3009      7, 63, 16, 55, 41, 63, 50, 55, 75, 63, 14,  3, 21, 11, 44,
3010      3, 51, 11, 74,  3,  1, 28, 24, 20, 32, 29, 54, 20, 66, 29,
3011      4, 37, 20, 46, 34, 37, 54, 46, 64, 37,  8, 63, 17, 55, 42,
3012     63, 51, 55, 76, 63, 13,  3, 20, 11, 43,  3, 50, 11, 73,  3,
3013      0, 28, 23, 20, 33, 29, 53, 20, 67, 29,  3, 37, 21, 46, 33,
3014     37, 55, 46, 64, 38,  9, 63, 18, 55, 43, 63, 52, 55, 77, 63,
3015     12,  3, 19, 11, 42,  3, 49, 11, 72,  3,  0, 29, 22, 20, 34,
3016     29, 52, 20, 68, 29,  2, 37, 22, 46, 32, 37, 56, 46, 65, 38,
3017     10, 63, 19, 55, 44, 63, 53, 55, 78, 63, 11,  3, 18, 11, 41,
3018