31 0, 32, 32, 32, 33, 32, 32, 32,
32 32, 31, 32, 33, 33, 33, 33, 35,
33 36, 36, 34, 34, 36, 37, 37, 36,
34 36, 35, 36, 38, 39, 39, 37, 36,
35 37, 37, 39, 41, 42, 41, 39, 39,
36 40, 41, 42, 43, 42, 42, 41, 41,
37 41, 44, 47, 46, 46, 48, 51, 51,
38 50, 50, 53, 55, 55, 56, 60, 60,
43 0, 32, 33, 34, 34, 33, 34, 35,
44 37, 40, 43, 42, 39, 38, 39, 41,
45 43, 44, 47, 50, 55, 61, 63, 56,
46 48, 46, 49, 54, 59, 58, 55, 58,
47 63, 65, 67, 74, 84, 82, 75, 72,
48 70, 74, 84, 87, 87, 94, 93, 81,
49 75, 78, 83, 89, 91, 86, 82, 85,
50 90, 90, 85, 79, 73, 73, 73, 73,
55 0, 32, 33, 34, 34, 36, 37, 36,
56 36, 37, 38, 38, 38, 39, 41, 44,
57 43, 41, 40, 41, 46, 49, 47, 46,
58 47, 49, 51, 54, 60, 62, 59, 55,
59 54, 56, 58, 61, 65, 66, 64, 63,
60 66, 73, 78, 79, 80, 79, 78, 78,
61 82, 87, 89, 90, 93, 95, 96, 97,
62 97, 100, 104, 102, 98, 98, 99, 99,
67 0, 32, 36, 39, 39, 38, 39, 41,
68 45, 51, 57, 58, 53, 48, 47, 51,
69 55, 58, 66, 75, 81, 83, 82, 78,
70 73, 72, 74, 77, 83, 85, 83, 82,
71 89, 99, 96, 90, 94, 97, 99, 105,
72 109, 105, 95, 89, 92, 95, 94, 93,
73 92, 88, 89, 90, 93, 95, 96, 97,
74 97, 100, 104, 102, 98, 98, 99, 99,
79 0, 32, 32, 33, 34, 33, 33, 33,
80 33, 33, 33, 33, 33, 35, 37, 37,
81 36, 36, 35, 36, 38, 38, 36, 35,
82 36, 37, 38, 41, 42, 41, 39, 38,
83 38, 38, 39, 41, 42, 41, 39, 39,
84 40, 41, 43, 44, 44, 44, 44, 44,
85 45, 47, 47, 47, 49, 50, 51, 51,
86 51, 53, 55, 57, 58, 59, 57, 57,
91 0, 32, 35, 35, 35, 34, 34, 35,
92 39, 43, 45, 45, 41, 39, 40, 41,
93 42, 44, 48, 55, 59, 63, 65, 59,
94 53, 52, 52, 55, 61, 62, 58, 58,
95 63, 66, 66, 65, 70, 74, 70, 66,
96 65, 68, 75, 77, 74, 74, 77, 76,
97 73, 73, 73, 73, 76, 80, 89, 90,
98 82, 77, 80, 86, 84, 82, 82, 82,
103 0, 32, 33, 34, 34, 35, 36, 37,
104 36, 37, 38, 38, 38, 39, 39, 40,
105 40, 38, 38, 39, 38, 37, 39, 41,
106 41, 42, 43, 45, 45, 46, 47, 46,
107 45, 43, 39, 37, 37, 40, 44, 45,
108 45, 46, 46, 46, 47, 47, 46, 44,
109 42, 43, 45, 47, 48, 49, 50, 49,
110 48, 46, 47, 48, 48, 49, 49, 49,
115 0, 32, 36, 38, 37, 37, 40, 41,
116 40, 40, 42, 42, 41, 41, 41, 41,
117 42, 43, 44, 44, 45, 46, 46, 45,
118 44, 45, 45, 45, 45, 46, 47, 46,
119 45, 44, 42, 41, 43, 45, 45, 47,
120 48, 48, 48, 46, 47, 47, 46, 47,
121 46, 45, 45, 47, 48, 49, 50, 49,
122 48, 46, 48, 49, 48, 49, 49, 49,
126 0, 32, 33, 33, 34, 35, 36, 35,
127 33, 33, 35, 36, 37, 37, 38, 37,
128 37, 37, 36, 37, 37, 37, 38, 39,
129 37, 36, 37, 40, 42, 45, 46, 44,
130 41, 42, 44, 45, 47, 49, 50, 48,
131 46, 48, 49, 50, 52, 52, 50, 49,
132 47, 48, 50, 50, 51, 51, 50, 49,
133 49, 51, 52, 51, 49, 47, 47, 47,
137 0, 32, 37, 42, 45, 45, 45, 44,
138 38, 37, 40, 42, 44, 49, 51, 47,
139 41, 40, 43, 44, 46, 48, 51, 54,
140 51, 47, 47, 45, 47, 50, 51, 49,
141 46, 47, 49, 47, 50, 55, 55, 51,
142 48, 49, 51, 51, 52, 52, 54, 54,
143 49, 49, 52, 53, 54, 54, 53, 53,
144 55, 59, 63, 62, 60, 60, 60, 60,
148 0, 32, 32, 33, 33, 35, 35, 35,
149 35, 35, 35, 35, 34, 35, 38, 40,
150 39, 37, 37, 37, 36, 35, 36, 38,
151 40, 41, 42, 44, 45, 44, 42, 41,
152 40, 38, 36, 36, 37, 38, 40, 43,
153 44, 45, 45, 45, 45, 45, 45, 41,
154 39, 41, 45, 47, 47, 48, 48, 48,
155 46, 44, 45, 47, 47, 48, 47, 47,
159 0, 32, 36, 37, 36, 37, 39, 39,
160 41, 43, 43, 42, 41, 41, 41, 42,
161 43, 43, 43, 44, 44, 44, 46, 47,
162 46, 45, 45, 45, 45, 46, 44, 44,
163 45, 44, 42, 41, 43, 46, 45, 44,
164 45, 45, 45, 46, 46, 46, 45, 44,
165 45, 44, 45, 47, 47, 48, 49, 48,
166 46, 45, 46, 47, 47, 48, 47, 47,
170 0, 32, 32, 33, 34, 35, 35, 35,
171 34, 34, 35, 36, 36, 36, 36, 36,
172 37, 38, 38, 38, 38, 38, 39, 39,
173 38, 38, 39, 41, 43, 43, 42, 41,
174 40, 40, 39, 40, 41, 41, 39, 39,
175 40, 42, 47, 50, 47, 45, 46, 46,
176 44, 45, 46, 47, 49, 54, 58, 54,
177 48, 49, 54, 57, 60, 62, 63, 63,
181 0, 32, 35, 36, 36, 35, 36, 39,
182 41, 43, 45, 44, 41, 39, 40, 42,
183 43, 43, 45, 48, 49, 51, 52, 50,
184 50, 51, 51, 51, 51, 52, 53, 54,
185 51, 49, 51, 52, 52, 56, 57, 55,
186 54, 54, 55, 56, 55, 58, 58, 58,
187 60, 61, 62, 62, 59, 57, 58, 58,
188 61, 59, 59, 59, 60, 62, 63, 63,
192 0, 32, 32, 34, 34, 34, 34, 35,
193 35, 35, 36, 37, 36, 36, 35, 36,
194 38, 38, 38, 38, 38, 38, 38, 38,
195 38, 38, 39, 41, 44, 43, 41, 40,
196 40, 40, 40, 39, 40, 41, 40, 39,
197 40, 43, 46, 46, 44, 44, 44, 42,
198 41, 43, 46, 48, 50, 55, 58, 53,
199 48, 50, 55, 58, 61, 62, 62, 62,
203 0, 32, 35, 36, 36, 35, 36, 39,
204 41, 43, 45, 44, 41, 39, 40, 42,
205 43, 43, 45, 48, 48, 48, 50, 50,
206 50, 51, 51, 51, 51, 52, 53, 54,
207 51, 49, 51, 52, 52, 56, 57, 55,
208 54, 54, 55, 56, 55, 58, 58, 58,
209 60, 61, 62, 62, 59, 57, 58, 58,
210 61, 59, 59, 59, 61, 62, 62, 62,
215 0, 32, 34, 35, 36, 36, 36, 37,
216 36, 37, 39, 40, 41, 40, 40, 40,
217 41, 41, 42, 41, 41, 43, 44, 44,
218 45, 46, 48, 55, 60, 57, 52, 50,
219 49, 49, 52, 52, 53, 55, 58, 62,
220 65, 73, 82, 82, 80, 78, 73, 68,
221 71, 82, 90, 90, 88, 87, 90, 95,
222 100, 107, 103, 97, 95, 93, 99, 99,
227 0, 32, 35, 36, 37, 37, 38, 40,
228 42, 46, 49, 50, 50, 49, 49, 53,
229 56, 56, 57, 58, 60, 62, 64, 65,
230 63, 64, 64, 65, 66, 65, 67, 71,
231 72, 74, 74, 74, 74, 77, 81, 78,
232 72, 73, 82, 85, 89, 88, 84, 80,
233 90, 100, 90, 90, 88, 87, 90, 95,
234 114, 128, 125, 129, 134, 125, 116, 116,
238 0, 32, 33, 34, 36, 37, 37, 36,
239 34, 33, 34, 35, 37, 38, 40, 41,
240 40, 39, 38, 37, 34, 33, 34, 37,
241 40, 44, 48, 52, 53, 49, 47, 45,
242 42, 38, 36, 36, 38, 41, 43, 44,
243 46, 49, 52, 54, 54, 49, 44, 44,
244 44, 47, 51, 51, 52, 51, 48, 50,
245 52, 53, 53, 50, 50, 54, 54, 54,
249 0, 32, 34, 38, 42, 40, 38, 36,
250 35, 35, 38, 42, 43, 43, 42, 40,
251 38, 39, 43, 43, 42, 41, 43, 43,
252 42, 44, 46, 45, 45, 46, 47, 46,
253 44, 44, 45, 46, 46, 46, 50, 50,
254 47, 47, 49, 49, 49, 49, 51, 53,
255 51, 49, 53, 57, 56, 52, 50, 52,
256 56, 56, 53, 53, 53, 54, 58, 58,
261 10, 62, 11, 12, 13, 0, 1, 2, 3, 4, 14, 30, 126, 127,
266 4, 6, 4, 4, 4, 3, 3, 3, 3, 3, 4, 5, 7, 7,
271 0, 12, 13, 1, 2, 3, 4, 5, 14, 30, 62, 63,
276 3, 4, 4, 3, 3, 3, 3, 3, 4, 5, 6, 6,
281 0, 1, 4, 5, 12, 26, 27, 56,
282 57, 58, 59, 120, 121, 244, 245, 246,
283 247, 248, 498, 499, 500, 501, 502, 1006,
284 1007, 1008, 1009, 1010, 1011, 2024, 2025, 2026,
285 2027, 2028, 2029, 2030, 2031, 4064, 4065, 4066,
286 4067, 4068, 4069, 4070, 4071, 4072, 4073, 8148,
287 8149, 8150, 8151, 8152, 8153, 8154, 8155, 8156,
288 8157, 8158, 16318, 16319, 16320, 16321, 16322, 16323,
289 16324, 16325, 16326, 16327, 16328, 16329, 16330, 16331,
290 16332, 16333, 32668, 32669, 32670, 32671, 32672, 32673,
291 32674, 32675, 32676, 32677, 32678, 32679, 32680, 32681,
292 32682, 32683, 32684, 65370, 65371, 65372, 65373, 65374,
293 65375, 65376, 65377, 65378, 65379, 65380, 65381, 65382,
294 65383, 65384, 65385, 65386, 65387, 65388, 65389, 65390,
295 65391, 65392, 65393, 65394, 65395, 65396, 65397, 65398,
296 65399, 65400, 65401, 65402, 65403, 65404, 65405, 65406,
297 65407, 65408, 65409, 65410, 65411, 65412, 65413, 65414,
298 65415, 65416, 65417, 65418, 65419, 65420, 65421, 65422,
299 65423, 65424, 65425, 65426, 65427, 65428, 65429, 65430,
300 65431, 65432, 65433, 65434, 65435, 65436, 65437, 65438,
301 65439, 65440, 65441, 65442, 65443, 65444, 65445, 65446,
302 65447, 65448, 65449, 65450, 65451, 65452, 65453, 65454,
303 65455, 65456, 65457, 65458, 65459, 65460, 65461, 65462,
304 65463, 65464, 65465, 65466, 65467, 65468, 65469, 65470,
305 65471, 65472, 65473, 65474, 65475, 65476, 65477, 65478,
306 65479, 65480, 65481, 65482, 65483, 65484, 65485, 65486,
307 65487, 65488, 65489, 65490, 65491, 65492, 65493, 65494,
308 65495, 65496, 65497, 65498, 65499, 65500, 65501, 65502,
309 65503, 65504, 65505, 65506, 65507, 65508, 65509, 65510,
310 65511, 65512, 65513, 65514, 65515, 65516, 65517, 65518,
311 65519, 65520, 65521, 65522, 65523, 65524, 65525, 65526,
312 65527, 65528, 65529, 65530, 65531, 65532, 65533, 65534,
318 2, 2, 3, 3, 4, 5, 5, 6, 6, 6, 6, 7, 7, 8, 8, 8,
319 8, 8, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 11, 11, 11,
320 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13,
321 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14,
322 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15,
323 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16,
324 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
325 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
326 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
327 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
328 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
329 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
330 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
331 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
332 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
333 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
339 3, 0, 3, 2, 5, 0, 0, 0, 7, 0, 9, 0, 5, 2, 11, 0,
340 13, 0, 15, 0, 7, 2, 17, 0, 19, 0, 21, 0, 23, 0, 25, 0,
341 9, 2, 11, 2, 27, 0, 29, 0, 31, 0, 33, 0, 13, 2, 35, 0,
342 37, 0, 39, 0, 41, 0, 43, 0, 15, 2, 45, 0, 47, 0, 49, 0,
343 51, 0, 53, 0, 55, 0, 17, 2, 19, 2, 57, 0, 59, 0, 61, 0,
344 63, 0, 65, 0, 67, 0, 69, 0, 21, 2, 23, 2, 25, 2, 71, 0,
345 73, 0, 75, 0, 77, 0, 79, 0, 81, 0, 83, 0, 27, 2, 29, 2,
346 31, 2, 33, 2, 85, 0, 87, 0, 89, 0, 91, 0, 93, 0, 95, 0,
347 97, 0, 99, 0, 101, 0, 103, 0, 105, 0, 35, 2, 37, 2, 39, 2,
348 41, 2, 43, 2, 107, 0, 109, 0, 111, 0, 113, 0, 115, 0, 117, 0,
349 119, 0, 121, 0, 123, 0, 129, 0, 3, 1, 45, 2, 47, 2, 49, 2,
350 51, 2, 53, 2, 55, 2, 125, 0, 127, 0, 5, 1, 7, 1, 9, 1,
351 11, 1, 13, 1, 15, 1, 17, 1, 19, 1, 21, 1, 23, 1, 25, 1,
352 27, 1, 29, 1, 31, 1, 33, 1, 35, 1, 37, 1, 39, 1, 41, 1,
353 43, 1, 45, 1, 47, 1, 49, 1, 51, 1, 53, 1, 55, 1, 57, 1,
354 59, 1, 61, 1, 63, 1, 65, 1, 67, 1, 69, 1, 71, 1, 73, 1,
355 75, 1, 77, 1, 79, 1, 81, 1, 83, 1, 85, 1, 87, 1, 89, 1,
356 91, 1, 93, 1, 95, 1, 97, 1, 99, 1, 101, 1, 103, 1, 105, 1,
357 107, 1, 109, 1, 111, 1, 113, 1, 115, 1, 117, 1, 119, 1, 121, 1,
358 123, 1, 125, 1, 127, 1, 129, 1, 57, 2, 59, 2, 61, 2, 63, 2,
359 65, 2, 67, 2, 69, 2, 71, 2, 73, 2, 75, 2, 77, 2, 79, 2,
360 81, 2, 83, 2, 85, 2, 87, 2, 89, 2, 91, 2, 93, 2, 95, 2,
361 97, 2, 99, 2, 101, 2, 103, 2, 105, 2, 107, 2, 109, 2, 111, 2,
362 113, 2, 115, 2, 117, 2, 119, 2, 121, 2, 123, 2, 125, 2, 127, 2,
363 129, 2, 3, 3, 5, 3, 7, 3, 9, 3, 11, 3, 13, 3, 15, 3,
364 17, 3, 19, 3, 21, 3, 23, 3, 25, 3, 27, 3, 29, 3, 31, 3,
365 33, 3, 35, 3, 37, 3, 39, 3, 41, 3, 43, 3, 45, 3, 47, 3,
366 49, 3, 51, 3, 53, 3, 55, 3, 57, 3, 59, 3, 61, 3, 63, 3,
367 65, 3, 67, 3, 69, 3, 71, 3, 73, 3, 75, 3, 77, 3, 79, 3,
368 81, 3, 83, 3, 85, 3, 87, 3, 89, 3, 91, 3, 93, 3, 95, 3,
369 97, 3, 99, 3, 101, 3, 103, 3, 105, 3, 107, 3, 109, 3, 111, 3,
370 113, 3, 115, 3, 117, 3, 119, 3, 121, 3, 123, 3, 125, 3, 127, 3,
376 0, 1, 4, 10, 11, 24, 25, 26,
377 54, 55, 56, 57, 116, 117, 118, 119,
378 240, 241, 242, 243, 244, 245, 492, 493,
379 494, 495, 496, 497, 498, 499, 1000, 1001,
380 1002, 1003, 1004, 1005, 1006, 1007, 1008, 2018,
381 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026,
382 2027, 4056, 4057, 4058, 4059, 4060, 4061, 4062,
383 4063, 4064, 4065, 4066, 4067, 4068, 4069, 8140,
384 8141, 8142, 8143, 8144, 8145, 8146, 8147, 8148,
385 8149, 8150, 8151, 8152, 8153, 8154, 8155, 8156,
386 16314, 16315, 16316, 16317, 16318, 16319, 16320, 16321,
387 16322, 16323, 16324, 16325, 16326, 16327, 16328, 16329,
388 16330, 16331, 16332, 16333, 16334, 16335, 16336, 16337,
389 16338, 32678, 32679, 32680, 32681, 32682, 32683, 32684,
390 32685, 32686, 32687, 32688, 32689, 32690, 32691, 32692,
391 32693, 32694, 32695, 32696, 32697, 32698, 32699, 32700,
392 32701, 32702, 32703, 32704, 32705, 65412, 65413, 65414,
393 65415, 65416, 65417, 65418, 65419, 65420, 65421, 65422,
394 65423, 65424, 65425, 65426, 65427, 65428, 65429, 65430,
395 65431, 65432, 65433, 65434, 65435, 65436, 65437, 65438,
396 65439, 65440, 65441, 65442, 65443, 65444, 65445, 65446,
397 65447, 65448, 65449, 65450, 65451, 65452, 65453, 65454,
398 65455, 65456, 65457, 65458, 65459, 65460, 65461, 65462,
399 65463, 65464, 65465, 65466, 65467, 65468, 65469, 65470,
400 65471, 65472, 65473, 65474, 65475, 65476, 65477, 65478,
401 65479, 65480, 65481, 65482, 65483, 65484, 65485, 65486,
402 65487, 65488, 65489, 65490, 65491, 65492, 65493, 65494,
403 65495, 65496, 65497, 65498, 65499, 65500, 65501, 65502,
404 65503, 65504, 65505, 65506, 65507, 65508, 65509, 65510,
405 65511, 65512, 65513, 65514, 65515, 65516, 65517, 65518,
406 65519, 65520, 65521, 65522, 65523, 65524, 65525, 65526,
407 65527, 65528, 65529, 65530, 65531, 65532, 65533, 65534,
413 2, 2, 3, 4, 4, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7,
414 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10,
415 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11,
416 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13,
417 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
418 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
419 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15,
420 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
421 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
422 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
423 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
424 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
425 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
426 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
427 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
428 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
434 3, 0, 3, 2, 5, 0, 7, 0, 0, 0, 9, 0, 11, 0, 5, 2,
435 13, 0, 15, 0, 17, 0, 7, 2, 19, 0, 21, 0, 23, 0, 9, 2,
436 25, 0, 27, 0, 29, 0, 31, 0, 33, 0, 11, 2, 35, 0, 37, 0,
437 39, 0, 41, 0, 43, 0, 45, 0, 13, 2, 15, 2, 47, 0, 49, 0,
438 51, 0, 53, 0, 55, 0, 57, 0, 59, 0, 17, 2, 19, 2, 61, 0,
439 63, 0, 65, 0, 67, 0, 69, 0, 71, 0, 73, 0, 75, 0, 21, 2,
440 23, 2, 77, 0, 79, 0, 81, 0, 83, 0, 85, 0, 87, 0, 89, 0,
441 91, 0, 93, 0, 95, 0, 97, 0, 25, 2, 27, 2, 29, 2, 99, 0,
442 101, 0, 103, 0, 105, 0, 107, 0, 109, 0, 111, 0, 113, 0, 115, 0,
443 117, 0, 119, 0, 121, 0, 123, 0, 31, 2, 33, 2, 35, 2, 37, 2,
444 125, 0, 127, 0, 129, 0, 3, 1, 5, 1, 7, 1, 9, 1, 11, 1,
445 13, 1, 15, 1, 17, 1, 19, 1, 21, 1, 23, 1, 25, 1, 27, 1,
446 29, 1, 31, 1, 33, 1, 39, 2, 41, 2, 43, 2, 45, 2, 47, 2,
447 49, 2, 35, 1, 37, 1, 39, 1, 41, 1, 43, 1, 45, 1, 47, 1,
448 49, 1, 51, 1, 53, 1, 55, 1, 57, 1, 59, 1, 61, 1, 63, 1,
449 65, 1, 67, 1, 69, 1, 71, 1, 73, 1, 75, 1, 81, 1, 51, 2,
450 53, 2, 55, 2, 57, 2, 59, 2, 61, 2, 77, 1, 79, 1, 83, 1,
451 85, 1, 87, 1, 89, 1, 91, 1, 93, 1, 95, 1, 97, 1, 99, 1,
452 101, 1, 103, 1, 105, 1, 107, 1, 109, 1, 111, 1, 113, 1, 115, 1,
453 117, 1, 119, 1, 121, 1, 123, 1, 125, 1, 127, 1, 129, 1, 63, 2,
454 65, 2, 67, 2, 69, 2, 71, 2, 73, 2, 75, 2, 77, 2, 79, 2,
455 81, 2, 83, 2, 85, 2, 87, 2, 89, 2, 91, 2, 93, 2, 95, 2,
456 97, 2, 99, 2, 101, 2, 103, 2, 105, 2, 107, 2, 109, 2, 111, 2,
457 113, 2, 115, 2, 117, 2, 119, 2, 121, 2, 123, 2, 125, 2, 127, 2,
458 129, 2, 3, 3, 5, 3, 7, 3, 9, 3, 11, 3, 13, 3, 15, 3,
459 17, 3, 19, 3, 21, 3, 23, 3, 25, 3, 27, 3, 29, 3, 31, 3,
460 33, 3, 35, 3, 37, 3, 39, 3, 41, 3, 43, 3, 45, 3, 47, 3,
461 49, 3, 51, 3, 53, 3, 55, 3, 57, 3, 59, 3, 61, 3, 63, 3,
462 65, 3, 67, 3, 69, 3, 71, 3, 73, 3, 75, 3, 77, 3, 79, 3,
463 81, 3, 83, 3, 85, 3, 87, 3, 89, 3, 91, 3, 93, 3, 95, 3,
464 97, 3, 99, 3, 101, 3, 103, 3, 105, 3, 107, 3, 109, 3, 111, 3,
465 113, 3, 115, 3, 117, 3, 119, 3, 121, 3, 123, 3, 125, 3, 127, 3,
471 0, 1, 4, 10, 11, 24, 25, 26,
472 54, 55, 56, 57, 116, 117, 118, 119,
473 240, 241, 242, 243, 244, 245, 492, 493,
474 494, 495, 496, 497, 498, 998, 999, 1000,
475 1001, 1002, 1003, 1004, 1005, 1006, 1007, 2016,
476 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024,
477 2025, 2026, 4054, 4055, 4056, 4057, 4058, 4059,
478 4060, 4061, 4062, 4063, 4064, 4065, 4066, 4067,
479 4068, 4069, 8140, 8141, 8142, 8143, 8144, 8145,
480 8146, 8147, 8148, 8149, 8150, 8151, 8152, 8153,
481 8154, 8155, 8156, 8157, 16316, 16317, 16318, 16319,
482 16320, 16321, 16322, 16323, 16324, 16325, 16326, 16327,
483 16328, 16329, 16330, 16331, 16332, 16333, 16334, 16335,
484 16336, 16337, 32676, 32677, 32678, 32679, 32680, 32681,
485 32682, 32683, 32684, 32685, 32686, 32687, 32688, 32689,
486 32690, 32691, 32692, 32693, 32694, 32695, 32696, 32697,
487 32698, 32699, 32700, 32701, 32702, 32703, 32704, 32705,
488 32706, 32707, 32708, 65418, 65419, 65420, 65421, 65422,
489 65423, 65424, 65425, 65426, 65427, 65428, 65429, 65430,
490 65431, 65432, 65433, 65434, 65435, 65436, 65437, 65438,
491 65439, 65440, 65441, 65442, 65443, 65444, 65445, 65446,
492 65447, 65448, 65449, 65450, 65451, 65452, 65453, 65454,
493 65455, 65456, 65457, 65458, 65459, 65460, 65461, 65462,
494 65463, 65464, 65465, 65466, 65467, 65468, 65469, 65470,
495 65471, 65472, 65473, 65474, 65475, 65476, 65477, 65478,
496 65479, 65480, 65481, 65482, 65483, 65484, 65485, 65486,
497 65487, 65488, 65489, 65490, 65491, 65492, 65493, 65494,
498 65495, 65496, 65497, 65498, 65499, 65500, 65501, 65502,
499 65503, 65504, 65505, 65506, 65507, 65508, 65509, 65510,
500 65511, 65512, 65513, 65514, 65515, 65516, 65517, 65518,
501 65519, 65520, 65521, 65522, 65523, 65524, 65525, 65526,
502 65527, 65528, 65529, 65530, 65531, 65532, 65533, 65534,
508 2, 2, 3, 4, 4, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7,
509 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10,
510 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11,
511 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
512 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
513 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
514 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15,
515 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
516 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16,
517 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
518 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
519 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
520 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
521 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
522 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
523 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
529 3, 0, 3, 2, 5, 0, 7, 0, 0, 0, 9, 0, 11, 0, 5, 2,
530 13, 0, 15, 0, 17, 0, 7, 2, 19, 0, 21, 0, 23, 0, 9, 2,
531 25, 0, 27, 0, 29, 0, 31, 0, 33, 0, 11, 2, 35, 0, 37, 0,
532 39, 0, 41, 0, 43, 0, 13, 2, 15, 2, 45, 0, 47, 0, 49, 0,
533 51, 0, 53, 0, 55, 0, 57, 0, 59, 0, 17, 2, 19, 2, 61, 0,
534 63, 0, 65, 0, 67, 0, 69, 0, 71, 0, 73, 0, 75, 0, 77, 0,
535 21, 2, 23, 2, 79, 0, 81, 0, 83, 0, 85, 0, 87, 0, 89, 0,
536 91, 0, 93, 0, 95, 0, 97, 0, 99, 0, 101, 0, 25, 2, 27, 2,
537 29, 2, 31, 2, 103, 0, 105, 0, 107, 0, 109, 0, 111, 0, 113, 0,
538 115, 0, 117, 0, 119, 0, 121, 0, 123, 0, 125, 0, 127, 0, 3, 1,
539 33, 2, 35, 2, 37, 2, 39, 2, 129, 0, 5, 1, 7, 1, 9, 1,
540 11, 1, 13, 1, 15, 1, 17, 1, 19, 1, 21, 1, 23, 1, 25, 1,
541 27, 1, 29, 1, 31, 1, 33, 1, 35, 1, 41, 2, 43, 2, 45, 2,
542 47, 2, 49, 2, 37, 1, 39, 1, 41, 1, 43, 1, 45, 1, 47, 1,
543 49, 1, 51, 1, 53, 1, 55, 1, 57, 1, 59, 1, 61, 1, 63, 1,
544 65, 1, 67, 1, 69, 1, 71, 1, 73, 1, 75, 1, 77, 1, 79, 1,
545 81, 1, 83, 1, 85, 1, 51, 2, 53, 2, 55, 2, 57, 2, 59, 2,
546 61, 2, 63, 2, 65, 2, 87, 1, 89, 1, 91, 1, 93, 1, 95, 1,
547 97, 1, 99, 1, 101, 1, 103, 1, 105, 1, 107, 1, 109, 1, 111, 1,
548 113, 1, 115, 1, 117, 1, 119, 1, 121, 1, 123, 1, 125, 1, 127, 1,
549 129, 1, 67, 2, 69, 2, 71, 2, 73, 2, 75, 2, 77, 2, 79, 2,
550 81, 2, 83, 2, 85, 2, 87, 2, 89, 2, 91, 2, 93, 2, 95, 2,
551 97, 2, 99, 2, 101, 2, 103, 2, 105, 2, 107, 2, 109, 2, 111, 2,
552 113, 2, 115, 2, 117, 2, 119, 2, 121, 2, 123, 2, 125, 2, 127, 2,
553 129, 2, 3, 3, 5, 3, 7, 3, 9, 3, 11, 3, 13, 3, 15, 3,
554 17, 3, 19, 3, 21, 3, 23, 3, 25, 3, 27, 3, 29, 3, 31, 3,
555 33, 3, 35, 3, 37, 3, 39, 3, 41, 3, 43, 3, 45, 3, 47, 3,
556 49, 3, 51, 3, 53, 3, 55, 3, 57, 3, 59, 3, 61, 3, 63, 3,
557 65, 3, 67, 3, 69, 3, 71, 3, 73, 3, 75, 3, 77, 3, 79, 3,
558 81, 3, 83, 3, 85, 3, 87, 3, 89, 3, 91, 3, 93, 3, 95, 3,
559 97, 3, 99, 3, 101, 3, 103, 3, 105, 3, 107, 3, 109, 3, 111, 3,
560 113, 3, 115, 3, 117, 3, 119, 3, 121, 3, 123, 3, 125, 3, 127, 3,
565 0, 1, 4, 10, 11, 24, 25, 26,
566 54, 55, 56, 57, 116, 117, 118, 119,
567 240, 241, 242, 243, 244, 245, 492, 493,
568 494, 495, 496, 497, 498, 998, 999, 1000,
569 1001, 1002, 1003, 1004, 1005, 1006, 2014, 2015,
570 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023,
571 2024, 2025, 4052, 4053, 4054, 4055, 4056, 4057,
572 4058, 4059, 4060, 4061, 4062, 4063, 4064, 4065,
573 4066, 4067, 8136, 8137, 8138, 8139, 8140, 8141,
574 8142, 8143, 8144, 8145, 8146, 8147, 8148, 8149,
575 8150, 8151, 8152, 8153, 8154, 8155, 8156, 16314,
576 16315, 16316, 16317, 16318, 16319, 16320, 16321, 16322,
577 16323, 16324, 16325, 16326, 16327, 16328, 16329, 16330,
578 16331, 16332, 16333, 16334, 16335, 16336, 16337, 16338,
579 32678, 32679, 32680, 32681, 32682, 32683, 32684, 32685,
580 32686, 32687, 32688, 32689, 32690, 32691, 32692, 32693,
581 32694, 32695, 32696, 32697, 32698, 32699, 32700, 32701,
582 32702, 32703, 32704, 32705, 32706, 32707, 32708, 32709,
583 32710, 32711, 32712, 65426, 65427, 65428, 65429, 65430,
584 65431, 65432, 65433, 65434, 65435, 65436, 65437, 65438,
585 65439, 65440, 65441, 65442, 65443, 65444, 65445, 65446,
586 65447, 65448, 65449, 65450, 65451, 65452, 65453, 65454,
587 65455, 65456, 65457, 65458, 65459, 65460, 65461, 65462,
588 65463, 65464, 65465, 65466, 65467, 65468, 65469, 65470,
589 65471, 65472, 65473, 65474, 65475, 65476, 65477, 65478,
590 65479, 65480, 65481, 65482, 65483, 65484, 65485, 65486,
591 65487, 65488, 65489, 65490, 65491, 65492, 65493, 65494,
592 65495, 65496, 65497, 65498, 65499, 65500, 65501, 65502,
593 65503, 65504, 65505, 65506, 65507, 65508, 65509, 65510,
594 65511, 65512, 65513, 65514, 65515, 65516, 65517, 65518,
595 65519, 65520, 65521, 65522, 65523, 65524, 65525, 65526,
596 65527, 65528, 65529, 65530, 65531, 65532, 65533, 65534,
600 2, 2, 3, 4, 4, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7,
601 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10,
602 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
603 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
604 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
605 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14,
606 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
607 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
608 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
609 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
610 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
611 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
612 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
613 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
614 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
615 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
620 3, 0, 3, 2, 5, 0, 7, 0, 0, 0, 9, 0, 11, 0, 5, 2,
621 13, 0, 15, 0, 17, 0, 7, 2, 19, 0, 21, 0, 23, 0, 9, 2,
622 25, 0, 27, 0, 29, 0, 31, 0, 33, 0, 11, 2, 35, 0, 37, 0,
623 39, 0, 41, 0, 43, 0, 45, 0, 13, 2, 47, 0, 49, 0, 51, 0,
624 53, 0, 55, 0, 57, 0, 59, 0, 15, 2, 17, 2, 61, 0, 63, 0,
625 65, 0, 67, 0, 69, 0, 71, 0, 73, 0, 75, 0, 77, 0, 79, 0,
626 19, 2, 21, 2, 81, 0, 83, 0, 85, 0, 87, 0, 89, 0, 91, 0,
627 93, 0, 95, 0, 97, 0, 99, 0, 101, 0, 103, 0, 105, 0, 23, 2,
628 25, 2, 27, 2, 107, 0, 109, 0, 111, 0, 113, 0, 115, 0, 117, 0,
629 119, 0, 121, 0, 123, 0, 125, 0, 127, 0, 129, 0, 3, 1, 5, 1,
630 7, 1, 9, 1, 11, 1, 29, 2, 31, 2, 33, 2, 35, 2, 13, 1,
631 15, 1, 17, 1, 19, 1, 21, 1, 23, 1, 25, 1, 27, 1, 29, 1,
632 31, 1, 33, 1, 35, 1, 37, 1, 39, 1, 41, 1, 43, 1, 45, 1,
633 47, 1, 49, 1, 51, 1, 53, 1, 37, 2, 39, 2, 41, 2, 43, 2,
634 55, 1, 57, 1, 59, 1, 61, 1, 63, 1, 65, 1, 67, 1, 69, 1,
635 71, 1, 73, 1, 75, 1, 77, 1, 79, 1, 81, 1, 83, 1, 85, 1,
636 87, 1, 89, 1, 91, 1, 93, 1, 95, 1, 97, 1, 99, 1, 101, 1,
637 103, 1, 105, 1, 107, 1, 111, 1, 113, 1, 45, 2, 47, 2, 49, 2,
638 51, 2, 53, 2, 55, 2, 109, 1, 115, 1, 117, 1, 119, 1, 121, 1,
639 123, 1, 125, 1, 127, 1, 129, 1, 57, 2, 59, 2, 61, 2, 63, 2,
640 65, 2, 67, 2, 69, 2, 71, 2, 73, 2, 75, 2, 77, 2, 79, 2,
641 81, 2, 83, 2, 85, 2, 87, 2, 89, 2, 91, 2, 93, 2, 95, 2,
642 97, 2, 99, 2, 101, 2, 103, 2, 105, 2, 107, 2, 109, 2, 111, 2,
643 113, 2, 115, 2, 117, 2, 119, 2, 121, 2, 123, 2, 125, 2, 127, 2,
644 129, 2, 3, 3, 5, 3, 7, 3, 9, 3, 11, 3, 13, 3, 15, 3,
645 17, 3, 19, 3, 21, 3, 23, 3, 25, 3, 27, 3, 29, 3, 31, 3,
646 33, 3, 35, 3, 37, 3, 39, 3, 41, 3, 43, 3, 45, 3, 47, 3,
647 49, 3, 51, 3, 53, 3, 55, 3, 57, 3, 59, 3, 61, 3, 63, 3,
648 65, 3, 67, 3, 69, 3, 71, 3, 73, 3, 75, 3, 77, 3, 79, 3,
649 81, 3, 83, 3, 85, 3, 87, 3, 89, 3, 91, 3, 93, 3, 95, 3,
650 97, 3, 99, 3, 101, 3, 103, 3, 105, 3, 107, 3, 109, 3, 111, 3,
651 113, 3, 115, 3, 117, 3, 119, 3, 121, 3, 123, 3, 125, 3, 127, 3,
656 0, 1, 4, 10, 11, 24, 25, 26,
657 54, 55, 56, 57, 116, 117, 118, 119,
658 240, 241, 242, 243, 244, 245, 492, 493,
659 494, 495, 496, 497, 996, 997, 998, 999,
660 1000, 1001, 1002, 1003, 1004, 1005, 2012, 2013,
661 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021,
662 2022, 2023, 2024, 2025, 4052, 4053, 4054, 4055,
663 4056, 4057, 4058, 4059, 4060, 4061, 4062, 4063,
664 4064, 4065, 4066, 8134, 8135, 8136, 8137, 8138,
665 8139, 8140, 8141, 8142, 8143, 8144, 8145, 8146,
666 8147, 8148, 8149, 8150, 8151, 8152, 8153, 8154,
667 8155, 8156, 16314, 16315, 16316, 16317, 16318, 16319,
668 16320, 16321, 16322, 16323, 16324, 16325, 16326, 16327,
669 16328, 16329, 16330, 16331, 16332, 16333, 16334, 16335,
670 16336, 16337, 16338, 16339, 32680, 32681, 32682, 32683,
671 32684, 32685, 32686, 32687, 32688, 32689, 32690, 32691,
672 32692, 32693, 32694, 32695, 32696, 32697, 32698, 32699,
673 32700, 32701, 32702, 32703, 32704, 32705, 32706, 32707,
674 32708, 32709, 32710, 32711, 32712, 32713, 32714, 65430,
675 65431, 65432, 65433, 65434, 65435, 65436, 65437, 65438,
676 65439, 65440, 65441, 65442, 65443, 65444, 65445, 65446,
677 65447, 65448, 65449, 65450, 65451, 65452, 65453, 65454,
678 65455, 65456, 65457, 65458, 65459, 65460, 65461, 65462,
679 65463, 65464, 65465, 65466, 65467, 65468, 65469, 65470,
680 65471, 65472, 65473, 65474, 65475, 65476, 65477, 65478,
681 65479, 65480, 65481, 65482, 65483, 65484, 65485, 65486,
682 65487, 65488, 65489, 65490, 65491, 65492, 65493, 65494,
683 65495, 65496, 65497, 65498, 65499, 65500, 65501, 65502,
684 65503, 65504, 65505, 65506, 65507, 65508, 65509, 65510,
685 65511, 65512, 65513, 65514, 65515, 65516, 65517, 65518,
686 65519, 65520, 65521, 65522, 65523, 65524, 65525, 65526,
687 65527, 65528, 65529, 65530, 65531, 65532, 65533, 65534,
692 2, 2, 3, 4, 4, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7,
693 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10,
694 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
695 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
696 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
697 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14,
698 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
699 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
700 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
701 15, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16,
702 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
703 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
704 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
705 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
706 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
707 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
712 3, 0, 3, 2, 5, 0, 7, 0, 0, 0, 9, 0, 11, 0, 5, 2,
713 13, 0, 15, 0, 17, 0, 7, 2, 19, 0, 21, 0, 23, 0, 9, 2,
714 25, 0, 27, 0, 29, 0, 31, 0, 33, 0, 11, 2, 35, 0, 37, 0,
715 39, 0, 41, 0, 43, 0, 13, 2, 45, 0, 47, 0, 49, 0, 51, 0,
716 53, 0, 55, 0, 57, 0, 59, 0, 15, 2, 17, 2, 61, 0, 63, 0,
717 65, 0, 67, 0, 69, 0, 71, 0, 73, 0, 75, 0, 77, 0, 79, 0,
718 81, 0, 19, 2, 21, 2, 23, 2, 83, 0, 85, 0, 87, 0, 89, 0,
719 91, 0, 93, 0, 95, 0, 97, 0, 99, 0, 101, 0, 103, 0, 105, 0,
720 25, 2, 27, 2, 29, 2, 107, 0, 109, 0, 111, 0, 113, 0, 115, 0,
721 117, 0, 119, 0, 121, 0, 123, 0, 125, 0, 127, 0, 129, 0, 3, 1,
722 5, 1, 7, 1, 9, 1, 11, 1, 13, 1, 15, 1, 17, 1, 31, 2,
723 33, 2, 35, 2, 19, 1, 21, 1, 23, 1, 25, 1, 27, 1, 29, 1,
724 31, 1, 33, 1, 35, 1, 37, 1, 39, 1, 41, 1, 43, 1, 45, 1,
725 47, 1, 49, 1, 51, 1, 53, 1, 55, 1, 57, 1, 59, 1, 37, 2,
726 39, 2, 41, 2, 43, 2, 45, 2, 61, 1, 63, 1, 65, 1, 67, 1,
727 69, 1, 71, 1, 73, 1, 75, 1, 77, 1, 79, 1, 81, 1, 83, 1,
728 85, 1, 87, 1, 89, 1, 91, 1, 93, 1, 95, 1, 97, 1, 99, 1,
729 101, 1, 103, 1, 105, 1, 107, 1, 109, 1, 111, 1, 113, 1, 115, 1,
730 117, 1, 47, 2, 49, 2, 51, 2, 53, 2, 55, 2, 57, 2, 119, 1,
731 121, 1, 123, 1, 125, 1, 127, 1, 129, 1, 59, 2, 61, 2, 63, 2,
732 65, 2, 67, 2, 69, 2, 71, 2, 73, 2, 75, 2, 77, 2, 79, 2,
733 81, 2, 83, 2, 85, 2, 87, 2, 89, 2, 91, 2, 93, 2, 95, 2,
734 97, 2, 99, 2, 101, 2, 103, 2, 105, 2, 107, 2, 109, 2, 111, 2,
735 113, 2, 115, 2, 117, 2, 119, 2, 121, 2, 123, 2, 125, 2, 127, 2,
736 129, 2, 3, 3, 5, 3, 7, 3, 9, 3, 11, 3, 13, 3, 15, 3,
737 17, 3, 19, 3, 21, 3, 23, 3, 25, 3, 27, 3, 29, 3, 31, 3,
738 33, 3, 35, 3, 37, 3, 39, 3, 41, 3, 43, 3, 45, 3, 47, 3,
739 49, 3, 51, 3, 53, 3, 55, 3, 57, 3, 59, 3, 61, 3, 63, 3,
740 65, 3, 67, 3, 69, 3, 71, 3, 73, 3, 75, 3, 77, 3, 79, 3,
741 81, 3, 83, 3, 85, 3, 87, 3, 89, 3, 91, 3, 93, 3, 95, 3,
742 97, 3, 99, 3, 101, 3, 103, 3, 105, 3, 107, 3, 109, 3, 111, 3,
743 113, 3, 115, 3, 117, 3, 119, 3, 121, 3, 123, 3, 125, 3, 127, 3,
749 0, 1, 4, 10, 11, 12, 26, 27,
750 56, 57, 58, 118, 119, 120, 242, 243,
751 244, 245, 246, 247, 496, 497, 498, 499,
752 500, 1002, 1003, 1004, 1005, 1006, 1007, 1008,
753 1009, 2020, 2021, 2022, 2023, 2024, 2025, 2026,
754 2027, 2028, 2029, 4060, 4061, 4062, 4063, 4064,
755 4065, 4066, 4067, 4068, 4069, 4070, 4071, 8144,
756 8145, 8146, 8147, 8148, 8149, 8150, 8151, 8152,
757 8153, 8154, 8155, 8156, 8157, 8158, 16318, 16319,
758 16320, 16321, 16322, 16323, 16324, 16325, 16326, 16327,
759 16328, 16329, 16330, 16331, 16332, 16333, 16334, 16335,
760 32672, 32673, 32674, 32675, 32676, 32677, 32678, 32679,
761 32680, 32681, 32682, 32683, 32684, 32685, 32686, 32687,
762 32688, 32689, 32690, 32691, 32692, 32693, 32694, 65390,
763 65391, 65392, 65393, 65394, 65395, 65396, 65397, 65398,
764 65399, 65400, 65401, 65402, 65403, 65404, 65405, 65406,
765 65407, 65408, 65409, 65410, 65411, 65412, 65413, 65414,
766 65415, 65416, 65417, 65418, 65419, 65420, 65421, 65422,
767 65423, 65424, 65425, 65426, 65427, 65428, 65429, 65430,
768 65431, 65432, 65433, 65434, 65435, 65436, 65437, 65438,
769 65439, 65440, 65441, 65442, 65443, 65444, 65445, 65446,
770 65447, 65448, 65449, 65450, 65451, 65452, 65453, 65454,
771 65455, 65456, 65457, 65458, 65459, 65460, 65461, 65462,
772 65463, 65464, 65465, 65466, 65467, 65468, 65469, 65470,
773 65471, 65472, 65473, 65474, 65475, 65476, 65477, 65478,
774 65479, 65480, 65481, 65482, 65483, 65484, 65485, 65486,
775 65487, 65488, 65489, 65490, 65491, 65492, 65493, 65494,
776 65495, 65496, 65497, 65498, 65499, 65500, 65501, 65502,
777 65503, 65504, 65505, 65506, 65507, 65508, 65509, 65510,
778 65511, 65512, 65513, 65514, 65515, 65516, 65517, 65518,
779 65519, 65520, 65521, 65522, 65523, 65524, 65525, 65526,
780 65527, 65528, 65529, 65530, 65531, 65532, 65533, 65534,
786 2, 2, 3, 4, 4, 4, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8,
787 8, 8, 8, 8, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10,
788 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12,
789 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13,
790 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
791 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15,
792 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16,
793 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
794 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
795 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
796 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
797 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
798 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
799 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
800 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
801 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
807 3, 0, 3, 2, 5, 0, 7, 0, 5, 2, 0, 0, 9, 0, 11, 0,
808 13, 0, 15, 0, 7, 2, 17, 0, 19, 0, 21, 0, 23, 0, 25, 0,
809 27, 0, 29, 0, 9, 2, 11, 2, 31, 0, 33, 0, 35, 0, 37, 0,
810 13, 2, 39, 0, 41, 0, 43, 0, 45, 0, 47, 0, 49, 0, 15, 2,
811 17, 2, 51, 0, 53, 0, 55, 0, 57, 0, 59, 0, 61, 0, 63, 0,
812 65, 0, 19, 2, 21, 2, 67, 0, 69, 0, 71, 0, 73, 0, 75, 0,
813 77, 0, 79, 0, 81, 0, 83, 0, 23, 2, 25, 2, 27, 2, 85, 0,
814 87, 0, 89, 0, 91, 0, 93, 0, 95, 0, 97, 0, 99, 0, 101, 0,
815 103, 0, 105, 0, 107, 0, 29, 2, 31, 2, 33, 2, 109, 0, 111, 0,
816 113, 0, 115, 0, 117, 0, 119, 0, 121, 0, 123, 0, 125, 0, 127, 0,
817 129, 0, 3, 1, 5, 1, 7, 1, 35, 2, 37, 2, 39, 2, 41, 2,
818 9, 1, 11, 1, 13, 1, 15, 1, 17, 1, 19, 1, 21, 1, 23, 1,
819 25, 1, 27, 1, 29, 1, 31, 1, 33, 1, 35, 1, 37, 1, 39, 1,
820 41, 1, 43, 1, 43, 2, 45, 2, 47, 2, 49, 2, 51, 2, 45, 1,
821 47, 1, 49, 1, 51, 1, 53, 1, 55, 1, 57, 1, 59, 1, 61, 1,
822 63, 1, 65, 1, 67, 1, 69, 1, 71, 1, 73, 1, 75, 1, 77, 1,
823 79, 1, 81, 1, 83, 1, 85, 1, 87, 1, 89, 1, 91, 1, 93, 1,
824 95, 1, 97, 1, 99, 1, 101, 1, 103, 1, 105, 1, 107, 1, 109, 1,
825 111, 1, 113, 1, 115, 1, 117, 1, 119, 1, 121, 1, 123, 1, 125, 1,
826 127, 1, 129, 1, 53, 2, 55, 2, 57, 2, 59, 2, 61, 2, 63, 2,
827 65, 2, 67, 2, 69, 2, 71, 2, 73, 2, 75, 2, 77, 2, 79, 2,
828 81, 2, 83, 2, 85, 2, 87, 2, 89, 2, 91, 2, 93, 2, 95, 2,
829 97, 2, 99, 2, 101, 2, 103, 2, 105, 2, 107, 2, 109, 2, 111, 2,
830 113, 2, 115, 2, 117, 2, 119, 2, 121, 2, 123, 2, 125, 2, 127, 2,
831 129, 2, 3, 3, 5, 3, 7, 3, 9, 3, 11, 3, 13, 3, 15, 3,
832 17, 3, 19, 3, 21, 3, 23, 3, 25, 3, 27, 3, 29, 3, 31, 3,
833 33, 3, 35, 3, 37, 3, 39, 3, 41, 3, 43, 3, 45, 3, 47, 3,
834 49, 3, 51, 3, 53, 3, 55, 3, 57, 3, 59, 3, 61, 3, 63, 3,
835 65, 3, 67, 3, 69, 3, 71, 3, 73, 3, 75, 3, 77, 3, 79, 3,
836 81, 3, 83, 3, 85, 3, 87, 3, 89, 3, 91, 3, 93, 3, 95, 3,
837 97, 3, 99, 3, 101, 3, 103, 3, 105, 3, 107, 3, 109, 3, 111, 3,
838 113, 3, 115, 3, 117, 3, 119, 3, 121, 3, 123, 3, 125, 3, 127, 3,
844 0, 4, 10, 11, 24, 25, 26, 27,
845 56, 57, 58, 59, 120, 242, 486, 487,
846 488, 489, 980, 981, 982, 983, 984, 985,
847 986, 987, 988, 989, 990, 991, 992, 993,
848 994, 995, 996, 997, 998, 999, 1000, 1001,
849 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009,
850 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017,
851 1018, 1019, 1020, 1021, 1022, 1023,
856 1, 3, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 8, 9, 9,
857 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
858 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
859 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
864 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
865 18, 20, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
866 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
867 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
872 0, 4, 10, 11, 24, 25, 26, 54,
873 55, 56, 57, 58, 118, 119, 240, 482,
874 483, 484, 485, 486, 487, 488, 489, 490,
875 491, 492, 493, 494, 990, 991, 992, 993,
876 994, 995, 996, 997, 998, 999, 1000, 1001,
877 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009,
878 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017,
879 1018, 1019, 1020, 1021, 1022, 1023,
884 1, 3, 4, 4, 5, 5, 5, 6, 6, 6, 6, 6, 7, 7, 8, 9,
885 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10,
886 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
887 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
892 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
893 17, 18, 19, 20, 21, 53, 57, 58, 59, 60, 61, 62, 22, 23, 24, 25,
894 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
895 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 54, 55, 56,
900 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
901 20, 21, 17, 18, 19, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
902 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
903 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
908 0, 4, 5, 12, 26, 27, 28, 58,
909 118, 119, 120, 242, 486, 487, 976, 977,
910 978, 979, 980, 981, 982, 983, 984, 985,
911 986, 987, 988, 989, 990, 991, 992, 993,
912 994, 995, 996, 997, 998, 999, 1000, 1001,
913 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009,
914 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017,
915 1018, 1019, 1020, 1021, 1022, 1023,
920 1, 3, 3, 4, 5, 5, 5, 6, 7, 7, 7, 8, 9, 9, 10, 10,
921 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
922 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
923 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
928 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
929 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
930 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
931 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
935 { 1235, 1920, 1080, 917504, 917504,
941 { 175, 185, 365, 440 },
942 { { 24000, 1001 }, { 25, 1 }, { 50, 1 }, { 60000, 1001 } } },
943 { 1237, 1920, 1080, 606208, 606208,
949 { 115, 120, 145, 240, 290 },
950 { { 24000, 1001 }, { 25, 1 }, { 30000, 1001 }, { 50, 1 }, { 60000, 1001 } } },
951 { 1238, 1920, 1080, 917504, 917504,
957 { 175, 185, 220, 365, 440 },
958 { { 24000, 1001 }, { 25, 1 }, { 30000, 1001 }, { 50, 1 }, { 60000, 1001 } } },
959 { 1241, 1920, 1080, 917504, 458752,
966 { { 25, 1 }, { 30000, 1001 } } },
967 { 1242, 1920, 1080, 606208, 303104,
974 { { 25, 1 }, { 30000, 1001 } } },
975 { 1243, 1920, 1080, 917504, 458752,
982 { { 25, 1 }, { 30000, 1001 } } },
983 { 1250, 1280, 720, 458752, 458752,
989 { 90, 90, 180, 220 },
990 { { 24000, 1001 }, { 25, 1 }, { 50, 1 }, { 60000, 1001 } } },
991 { 1251, 1280, 720, 458752, 458752,
997 { 90, 90, 110, 180, 220 },
998 { { 24000, 1001 }, { 25, 1 }, { 30000, 1001 }, { 50, 1 }, { 60000, 1001 } } },
999 { 1252, 1280, 720, 303104, 303104,
1005 { 60, 60, 75, 120, 145 },
1006 { { 24000, 1001 }, { 25, 1 }, { 30000, 1001 }, { 50, 1 }, { 60000, 1001 } } },
1007 { 1253, 1920, 1080, 188416, 188416,
1013 { 36, 36, 45, 75, 90 },
1014 { { 24000, 1001 }, { 25, 1 }, { 30000, 1001 }, { 50, 1 }, { 60000, 1001 } } },
1015 { 1256, 1920, 1080, 1835008, 1835008,
1021 { 350, 390, 440, 730, 880 },
1022 { { 24000, 1001 }, { 25, 1 }, { 30000, 1001 }, { 50, 1 }, { 60000, 1001 } } },
1023 { 1258, 960, 720, 212992, 212992,
1029 { 42, 60, 75, 115 } },
1030 { 1259, 1440, 1080, 417792, 417792,
1036 { 63, 84, 100, 110 } },
1037 { 1260, 1440, 1080, 835584, 417792,
1043 { 80, 90, 100, 110 } },
1085 if (ff_dnxhd_cid_table[i].cid == cid)
1108 uint64_t prefix =
AV_RB32(buf);
1109 prefix = (prefix << 16) | buf[4] << 8;
1116 int mbs = avctx->
bit_rate / 1000000;
1120 const CIDEntry *cid = &ff_dnxhd_cid_table[i];
1143 const CIDEntry *cid = &ff_dnxhd_cid_table[i];
1148 av_log(avctx, loglevel,
"Frame size: %dx%d%c; bitrate: %dMbps; pixel format: %s; framerate: %d/%d\n",
#define FF_COMPLIANCE_EXPERIMENTAL
Allow nonstandardized experimental things.
static const uint8_t dnxhd_1237_run_bits[62]
static av_always_inline uint64_t ff_dnxhd_check_header_prefix(uint64_t prefix)
AVRational frame_rates[5]
static const uint8_t dnxhd_1238_chroma_weight[]
#define AV_CODEC_FLAG_INTERLACED_DCT
Use interlaced DCT.
#define AV_LOG_WARNING
Something somehow does not look correct.
int64_t bit_rate
the average bitrate
static const uint8_t dnxhd_1242_luma_weight[]
static const uint8_t dnxhd_1250_luma_weight[]
static const uint8_t dnxhd_1250_run_bits[62]
const CIDEntry ff_dnxhd_cid_table[]
int avpriv_dnxhd_get_interlaced(int cid)
static const uint8_t dnxhd_1242_chroma_weight[]
static const uint16_t dnxhd_1238_ac_codes[257]
static const uint8_t dnxhd_1237_run[62]
static const uint8_t dnxhd_1251_ac_bits[257]
static const uint8_t dnxhd_1243_chroma_weight[]
int ff_dnxhd_find_cid(AVCodecContext *avctx, int bit_depth)
static const uint8_t dnxhd_1250_ac_info[2 *257]
static const uint8_t dnxhd_1238_ac_info[2 *257]
uint64_t_TMPL AV_WL64 unsigned int_TMPL AV_WL32 unsigned int_TMPL AV_WL24 unsigned int_TMPL AV_WL16 uint64_t_TMPL AV_WB64 unsigned int_TMPL AV_RB32
int avpriv_dnxhd_get_frame_size(int cid)
static const uint8_t dnxhd_1252_ac_bits[257]
static const uint8_t dnxhd_1251_chroma_weight[]
static const uint16_t dnxhd_1251_ac_codes[257]
static const uint16_t dnxhd_1250_run_codes[62]
#define DNXHD_INTERLACED
Additional profile info flags.
int ff_dnxhd_get_cid_table(int cid)
static const uint8_t dnxhd_1238_ac_bits[257]
uint64_t avpriv_dnxhd_parse_header_prefix(const uint8_t *buf)
static const uint8_t dnxhd_1251_ac_info[2 *257]
static const uint16_t dnxhd_1237_run_codes[62]
int flags
AV_CODEC_FLAG_*.
static const uint8_t dnxhd_1241_chroma_weight[]
static const uint8_t dnxhd_1252_ac_info[2 *257]
static const uint16_t dnxhd_1250_ac_codes[257]
static const uint8_t dnxhd_1237_dc_codes[12]
static const uint8_t dnxhd_1237_luma_weight[]
static const uint8_t dnxhd_1237_dc_bits[12]
static const uint16_t dnxhd_1237_ac_codes[257]
int width
picture width / height.
static const uint16_t dnxhd_1252_ac_codes[257]
static const uint8_t dnxhd_1238_luma_weight[]
static const uint8_t dnxhd_1243_luma_weight[]
void ff_dnxhd_print_profiles(AVCodecContext *avctx, int loglevel)
static const uint8_t dnxhd_1250_chroma_weight[]
#define FF_ARRAY_ELEMS(a)
static const uint8_t dnxhd_1250_run[62]
static const uint8_t dnxhd_1235_run[62]
static const uint8_t dnxhd_1260_luma_weight[]
Libavcodec external API header.
main external API structure.
static const uint8_t dnxhd_1252_luma_weight[]
static const uint8_t dnxhd_1237_ac_info[2 *257]
static const uint16_t dnxhd_1235_ac_codes[257]
static const uint8_t dnxhd_1260_chroma_weight[]
static const uint8_t dnxhd_1235_dc_codes[14]
#define DNXHD_VARIABLE
Indicate that a CIDEntry value must be read in the bitstream.
static const uint8_t dnxhd_1235_ac_bits[257]
common internal and external API header
static const uint8_t dnxhd_1235_dc_bits[14]
static unsigned bit_depth(uint64_t mask)
static const uint8_t dnxhd_1237_ac_bits[257]
static const uint8_t dnxhd_1251_luma_weight[]
static const uint8_t dnxhd_1250_ac_bits[257]
int bit_rates[5]
Helper to choose variants, rounded to nearest 5Mb/s.
static const uint8_t dnxhd_1241_luma_weight[]
static const uint8_t dnxhd_1237_chroma_weight[]
static const uint8_t dnxhd_1235_chroma_weight[]
static const uint8_t dnxhd_1238_run[62]
static const uint8_t dnxhd_1235_run_bits[62]
static const uint8_t dnxhd_1252_chroma_weight[]
int strict_std_compliance
strictly follow the standard (MPEG4, ...).
static const uint8_t dnxhd_1235_ac_info[2 *257]
static const uint16_t dnxhd_1235_run_codes[62]
static const uint8_t dnxhd_1235_luma_weight[]