rename register_all_codecs to register_all_decoders
[nihav.git] / nihav-realmedia / src / codecs / ra144.rs
1 use nihav_core::formats::*;
2 use nihav_core::frame::*;
3 use nihav_core::codecs::*;
4 use nihav_core::io::bitreader::*;
5
6 const NBLOCKS: usize = 4;
7 const BLOCKSIZE: usize = 40;
8 const LPC_ORDER: usize = 10;
9 const BUFFERSIZE: usize = 146;
10 const FRAME_SIZE: usize = 20;
11
12 struct RA144Decoder {
13 chmap: NAChannelMap,
14 ainfo: NAAudioInfo,
15 info: NACodecInfoRef,
16
17 old_energy: u16,
18 lpc_data: [[i32; LPC_ORDER]; 2],
19 frame_no: usize,
20 lpc_refl_rms: [u32; 2],
21 audio: [i16; BLOCKSIZE + LPC_ORDER],
22 adapt_cb: [i16; BUFFERSIZE + 2],
23 }
24
25 impl RA144Decoder {
26 fn new() -> Self {
27 RA144Decoder {
28 chmap: NAChannelMap::new(),
29 ainfo: NAAudioInfo::new(0, 1, SND_S16_FORMAT, NBLOCKS * BLOCKSIZE),
30 info: NACodecInfo::new_dummy(),
31
32 old_energy: 0,
33 lpc_data: [[0; 10]; 2],
34 frame_no: 0,
35 lpc_refl_rms: [0; 2],
36 audio: [0; BLOCKSIZE + LPC_ORDER],
37 adapt_cb: [0; BUFFERSIZE + 2],
38 }
39 }
40
41 fn evaluate_coeffs(&mut self, lpc_refl: &[i32; LPC_ORDER]) {
42 let mut tmp: [i32; LPC_ORDER] = [0; LPC_ORDER];
43
44 for i in 0..LPC_ORDER {
45 let src;
46 let dst;
47 if (i & 1) == 0 {
48 src = &self.lpc_data[self.frame_no];
49 dst = &mut tmp;
50 } else {
51 src = &tmp;
52 dst = &mut self.lpc_data[self.frame_no];
53 }
54 dst[i] = lpc_refl[i] << 4;
55
56 for j in 0..i {
57 dst[j] = ((lpc_refl[i] * src[i - j - 1]) >> 12) + src[j];
58 }
59 }
60 for i in 0..LPC_ORDER {
61 self.lpc_data[self.frame_no][i] >>= 4;
62 }
63 }
64 fn interpolate(&mut self, coeffs: &mut [i16; LPC_ORDER], scale1: i32, copyold: bool, energy: u16) -> u32 {
65 let scale2 = (NBLOCKS as i32) - scale1;
66 {
67 let src1 = &self.lpc_data[self.frame_no];
68 let src2 = &self.lpc_data[self.frame_no ^ 1];
69 for i in 0..LPC_ORDER {
70 coeffs[i] = ((scale1 * src1[i] + scale2 * src2[i]) >> 2) as i16;
71 }
72 }
73 if let Some(rms) = eval_reflection(coeffs) {
74 rescale_rms(rms, energy)
75 } else {
76 let src = if copyold { &self.lpc_data[self.frame_no ^ 1] } else { &self.lpc_data[self.frame_no] };
77 for i in 0..LPC_ORDER {
78 coeffs[i] = src[i] as i16;
79 }
80 rescale_rms(self.lpc_refl_rms[if copyold { 1 } else { 0 }], energy)
81 }
82 }
83 fn process_subblock(&mut self, br: &mut BitReader, lpc_coeffs: &[i16; LPC_ORDER], rms: u32) -> DecoderResult<()> {
84 let cba_idx = br.read(7)? as usize;
85 let gain = br.read(8)? as usize;
86 let cb1_idx = br.read(7)? as usize;
87 let cb2_idx = br.read(7)? as usize;
88
89 let mut tmp_a: [i16; BLOCKSIZE] = [0; BLOCKSIZE];
90 let mut m: [u32; 3] = [0; 3];
91 if cba_idx != 0 {
92 let len = cba_idx + BLOCKSIZE/2 - 1;
93 let soff = BUFFERSIZE - len;
94 for i in 0..len.min(BLOCKSIZE) {
95 tmp_a[i] = self.adapt_cb[i + soff];
96 }
97 for i in len..BLOCKSIZE {
98 tmp_a[i] = self.adapt_cb[i + soff - len];
99 }
100 m[0] = (calc_irms(&tmp_a) * rms) >> 12;
101 } else {
102 m[0] = 0;
103 }
104 m[1] = ((RA144_CODEBOOK1[cb1_idx] as u32) * rms) >> 8;
105 m[2] = ((RA144_CODEBOOK2[cb2_idx] as u32) * rms) >> 8;
106 for i in 0..3 {
107 m[i] = (m[i] * (RA144_GAIN_VAL_TAB[gain][i] as u32)) >> RA144_GAIN_EXP_TAB[gain];
108 }
109
110 for i in 0..(BUFFERSIZE - BLOCKSIZE) {
111 self.adapt_cb[i] = self.adapt_cb[i + BLOCKSIZE];
112 }
113
114 let doff = BUFFERSIZE - BLOCKSIZE;
115 if m[0] != 0 {
116 for i in 0..BLOCKSIZE {
117 let sum = (m[0] as i32) * (tmp_a[i] as i32)
118 + (m[1] as i32) * (RA144_VECTORS1[cb1_idx][i] as i32)
119 + (m[2] as i32) * (RA144_VECTORS2[cb2_idx][i] as i32);
120 self.adapt_cb[i + doff] = (sum >> 12) as i16;
121 }
122 } else {
123 for i in 0..BLOCKSIZE {
124 let sum = (m[1] as i32) * (RA144_VECTORS1[cb1_idx][i] as i32)
125 + (m[2] as i32) * (RA144_VECTORS2[cb2_idx][i] as i32);
126 self.adapt_cb[i + doff] = (sum >> 12) as i16;
127 }
128 }
129
130 for i in 0..LPC_ORDER {
131 self.audio[i] = self.audio[i + BLOCKSIZE];
132 }
133 if celp_synth_filter(&mut self.audio, &self.adapt_cb, lpc_coeffs) {
134 self.audio = [0; BLOCKSIZE + LPC_ORDER];
135 }
136 Ok(())
137 }
138 }
139
140 const CHMAP_MONO: [NAChannelType; 1] = [NAChannelType::C];
141
142 fn celp_synth_filter(dst: &mut [i16], src: &[i16], filt: &[i16; LPC_ORDER]) -> bool { //1,0,0xfff
143 for i in 0..BLOCKSIZE {
144 let mut sum = -0xFFF;
145 for j in 0..LPC_ORDER {
146 sum += (filt[j] as i32) * (dst[LPC_ORDER + i - j - 1] as i32);
147 }
148 let sum1 = (-sum >> 12) + (src[BUFFERSIZE - BLOCKSIZE + i] as i32);
149 if ((sum1 >> 16) != 0) && ((sum1 >> 16) != -1) { // overflow
150 return true;
151 }
152 dst[LPC_ORDER + i] = sum1 as i16;
153 }
154 false
155 }
156
157 fn fixp_sqrt(mut val: u32) -> u32 {
158 let mut shift = 2;
159 while val >= (1 << 12) {
160 val >>= 2;
161 shift += 1;
162 }
163 (SQRT_TABLE[val as usize] as u32) << shift
164 }
165
166 fn calc_rms(coeffs: &[i32; LPC_ORDER]) -> u32 {
167 let mut res = 1 << 16;
168 let mut shift = 10;
169
170 for i in 0..LPC_ORDER {
171 res = ((((1 << 24) - ((coeffs[i] * coeffs[i]) as u32)) >> 12) * res) >> 12;
172 if res == 0 { return 0; }
173 while res < (1 << 14) {
174 res <<= 2;
175 shift += 1;
176 }
177 }
178 fixp_sqrt(res) >> shift
179 }
180
181 fn calc_irms(coeffs: &[i16; BLOCKSIZE]) -> u32 {
182 let mut sum = 0;
183 for i in 0..BLOCKSIZE {
184 sum += ((coeffs[i] as i32) * (coeffs[i] as i32)) as u32;
185 }
186 if sum != 0 {
187 (1 << 29) / (fixp_sqrt(sum) >> 8)
188 } else {
189 0
190 }
191 }
192
193 fn rescale_rms(rms: u32, energy: u16) -> u32 {
194 (rms * (energy as u32)) >> 10
195 }
196
197 fn eval_reflection(coeffs: &[i16; LPC_ORDER]) -> Option<u32> {
198 let mut tmp1: [i32; LPC_ORDER] = [0; LPC_ORDER];
199 let mut tmp2: [i32; LPC_ORDER] = [0; LPC_ORDER];
200 let mut tmp3: [i32; LPC_ORDER] = [0; LPC_ORDER];
201
202 for i in 0..LPC_ORDER {
203 tmp2[i] = coeffs[i] as i32;
204 }
205 tmp3[LPC_ORDER - 1] = tmp2[LPC_ORDER - 1];
206
207 if (tmp2[LPC_ORDER - 1] as u32).wrapping_add(0x1000) > 0x1FFF {
208 return None;
209 }
210
211 for i in (0..(LPC_ORDER - 1)).rev() {
212 let src;
213 let dst;
214 if (i & 1) == 0 {
215 src = &tmp2;
216 dst = &mut tmp1;
217 } else {
218 src = &tmp1;
219 dst = &mut tmp2;
220 }
221 let a = (1 << 12) - ((src[i + 1] * src[i + 1]) >> 12);
222 let scale = if a != 0 { (1 << 24) / a } else { (1 << 24) };
223 for j in 0..=i {
224 let result = (src[j] - ((tmp3[i + 1] * src[i - j]) >> 12)).checked_mul(scale);
225 if let Some(val) = result {
226 dst[j] = val >> 12;
227 } else {
228 return None;
229 }
230 }
231 if (dst[i] as u32).wrapping_add(0x1000) > 0x1FFF {
232 return None;
233 }
234 tmp3[i] = dst[i];
235 }
236
237 Some(calc_rms(&tmp3))
238 }
239
240 fn clip_out(sample: i16) -> i16 {
241 sample.max(-16384 >> 2).min(16383 >> 2)
242 }
243
244 impl NADecoder for RA144Decoder {
245 fn init(&mut self, _supp: &mut NADecoderSupport, info: NACodecInfoRef) -> DecoderResult<()> {
246 if let NACodecTypeInfo::Audio(ainfo) = info.get_properties() {
247 self.chmap.add_channels(&CHMAP_MONO);
248 self.ainfo = NAAudioInfo::new(ainfo.get_sample_rate(),
249 1,
250 SND_S16_FORMAT, NBLOCKS * BLOCKSIZE);
251 self.info = info.replace_info(NACodecTypeInfo::Audio(self.ainfo));
252 Ok(())
253 } else {
254 Err(DecoderError::InvalidData)
255 }
256 }
257 fn decode(&mut self, _supp: &mut NADecoderSupport, pkt: &NAPacket) -> DecoderResult<NAFrameRef> {
258 let info = pkt.get_stream().get_info();
259 validate!(info.get_properties().is_audio());
260 let pktbuf = pkt.get_buffer();
261 let nframes = pktbuf.len() / FRAME_SIZE;
262
263 let duration = NBLOCKS * BLOCKSIZE * nframes;
264
265 let abuf = alloc_audio_buffer(self.ainfo, duration, self.chmap.clone())?;
266 let mut adata = abuf.get_abuf_i16().unwrap();
267 let dst = adata.get_data_mut().unwrap();
268
269 for (input, output) in pktbuf.chunks(FRAME_SIZE).zip(dst.chunks_mut(NBLOCKS * BLOCKSIZE)) {
270 let mut br = BitReader::new(input, BitReaderMode::BE);
271
272 let mut lpc_refl: [i32; LPC_ORDER] = [0; LPC_ORDER];
273 for i in 0..LPC_ORDER {
274 lpc_refl[i] = RA144_LPC_REFL_CODEBOOK[i][br.read(RA144_LPC_SIZES[i])? as usize] as i32;
275 }
276
277 self.evaluate_coeffs(&lpc_refl);
278 self.lpc_refl_rms[0] = calc_rms(&lpc_refl);
279
280 let energy = RA144_ENERGY_TAB[br.read(5)? as usize];
281
282 let mut block_coeffs: [[i16; LPC_ORDER]; NBLOCKS] = [[0; LPC_ORDER]; NBLOCKS];
283 let mut refl_rms: [u32; NBLOCKS] = [0; NBLOCKS];
284
285 let old_energy = self.old_energy;
286 let interp_energy = (fixp_sqrt((energy as u32) * (old_energy as u32)) >> 12) as u16;
287 refl_rms[0] = self.interpolate(&mut block_coeffs[0], 1, true, old_energy);
288 refl_rms[1] = self.interpolate(&mut block_coeffs[1], 2, energy <= old_energy, interp_energy);
289 refl_rms[2] = self.interpolate(&mut block_coeffs[2], 3, false, energy);
290 refl_rms[3] = rescale_rms(self.lpc_refl_rms[0], energy);
291 for i in 0..LPC_ORDER { block_coeffs[3][i] = self.lpc_data[self.frame_no][i] as i16; }
292
293 for (i, block) in output.chunks_mut(BLOCKSIZE).enumerate() {
294
295 self.process_subblock(&mut br, &block_coeffs[i], refl_rms[i])?;
296 for j in 0..BLOCKSIZE {
297 block[j] = clip_out(self.audio[j + LPC_ORDER]) << 2;
298 }
299 }
300
301 self.old_energy = energy;
302 self.lpc_refl_rms[1] = self.lpc_refl_rms[0];
303 self.frame_no ^= 1;
304 }
305
306 let mut frm = NAFrame::new_from_pkt(pkt, self.info.clone(), abuf);
307 frm.set_keyframe(true);
308 Ok(frm.into_ref())
309 }
310 fn flush(&mut self) {
311 }
312 }
313
314 impl NAOptionHandler for RA144Decoder {
315 fn get_supported_options(&self) -> &[NAOptionDefinition] { &[] }
316 fn set_options(&mut self, _options: &[NAOption]) { }
317 fn query_option_value(&self, _name: &str) -> Option<NAValue> { None }
318 }
319
320 pub fn get_decoder() -> Box<dyn NADecoder + Send> {
321 Box::new(RA144Decoder::new())
322 }
323
324 #[cfg(test)]
325 mod test {
326 use nihav_core::codecs::RegisteredDecoders;
327 use nihav_core::demuxers::RegisteredDemuxers;
328 use nihav_codec_support::test::dec_video::*;
329 use crate::realmedia_register_all_decoders;
330 use crate::realmedia_register_all_demuxers;
331 #[test]
332 fn test_ra144() {
333 let mut dmx_reg = RegisteredDemuxers::new();
334 realmedia_register_all_demuxers(&mut dmx_reg);
335 let mut dec_reg = RegisteredDecoders::new();
336 realmedia_register_all_decoders(&mut dec_reg);
337
338 let file = "assets/RV/ra3_in_rm_file.rm";
339 test_decode_audio("realmedia", file, Some(5000), None/*Some("ra14.4")*/, &dmx_reg, &dec_reg);
340 }
341 }
342
343 const RA144_LPC_SIZES: [u8; LPC_ORDER] = [ 6, 5, 5, 4, 4, 3, 3, 3, 3, 2 ];
344 const RA144_LPC_REFL_CODEBOOK: [&[i16]; LPC_ORDER] = [
345 LPC_REFL_CB0, LPC_REFL_CB1, LPC_REFL_CB2, LPC_REFL_CB3, LPC_REFL_CB4,
346 LPC_REFL_CB5, LPC_REFL_CB6, LPC_REFL_CB7, LPC_REFL_CB8, LPC_REFL_CB9,
347 ];
348 const LPC_REFL_CB0: &[i16; 64] = &[
349 -4041, -4018, -3998, -3977, -3954, -3930, -3906, -3879,
350 -3852, -3825, -3795, -3764, -3731, -3699, -3666, -3631,
351 -3594, -3555, -3513, -3468, -3420, -3372, -3321, -3268,
352 -3212, -3153, -3090, -3021, -2944, -2863, -2772, -2676,
353 -2565, -2445, -2328, -2202, -2072, -1941, -1808, -1660,
354 -1508, -1348, -1185, -994, -798, -600, -374, -110,
355 152, 447, 720, 982, 1229, 1456, 1682, 1916,
356 2130, 2353, 2595, 2853, 3118, 3363, 3588, 3814
357 ];
358 const LPC_REFL_CB1: &[i16; 32] = &[
359 -3091, -2386, -1871, -1425, -1021, -649, -316, -20,
360 267, 544, 810, 1065, 1305, 1534, 1756, 1970,
361 2171, 2359, 2536, 2700, 2854, 2996, 3133, 3263,
362 3386, 3499, 3603, 3701, 3789, 3870, 3947, 4020
363 ];
364 const LPC_REFL_CB2: &[i16; 32] = &[
365 -3525, -3295, -3081, -2890, -2696, -2511, -2328, -2149,
366 -1979, -1817, -1658, -1498, -1341, -1188, -1032, -876,
367 -721, -561, -394, -228, -54, 119, 296, 484,
368 683, 895, 1123, 1373, 1651, 1965, 2360, 2854
369 ];
370 const LPC_REFL_CB3: &[i16; 16] = &[
371 -1845, -1057, -522, -77, 301, 647, 975, 1285,
372 1582, 1873, 2163, 2452, 2735, 3017, 3299, 3569
373 ];
374 const LPC_REFL_CB4: &[i16; 16] = &[
375 -2691, -2187, -1788, -1435, -1118, -837, -571, -316,
376 -59, 201, 470, 759, 1077, 1457, 1908, 2495
377 ];
378 const LPC_REFL_CB5: &[i16; 8] = &[
379 -1372, -474, 133, 632, 1100, 1571, 2075, 2672
380 ];
381 const LPC_REFL_CB6: &[i16; 8] = &[
382 -2389, -1787, -1231, -717, -239, 234, 770, 1474
383 ];
384 const LPC_REFL_CB7: &[i16; 8] = &[
385 -1569, -864, -296, 200, 670, 1151, 1709, 2385
386 ];
387 const LPC_REFL_CB8: &[i16; 8] = &[
388 -2200, -1608, -1062, -569, -120, 338, 863, 1621
389 ];
390 const LPC_REFL_CB9: &[i16; 4] = &[
391 -617, 190, 802, 1483
392 ];
393
394 const RA144_ENERGY_TAB: [u16; 32] = [
395 0, 16, 20, 25, 32, 41, 51, 65,
396 81, 103, 129, 163, 205, 259, 326, 410,
397 516, 650, 819, 1031, 1298, 1634, 2057, 2590,
398 3261, 4105, 5168, 6507, 8192, 10313, 12983, 16345
399 ];
400
401 const SQRT_TABLE: [u16; 4096] = [
402 0x0000,0x0400,0x05a8,0x06ed,0x0800,0x08f1,0x09cc,0x0a95,
403 0x0b50,0x0c00,0x0ca6,0x0d44,0x0ddb,0x0e6c,0x0ef7,0x0f7d,
404 0x1000,0x107e,0x10f8,0x116f,0x11e3,0x1254,0x12c2,0x132e,
405 0x1398,0x1400,0x1465,0x14c8,0x152a,0x158a,0x15e8,0x1645,
406 0x16a0,0x16fa,0x1752,0x17aa,0x1800,0x1854,0x18a8,0x18fa,
407 0x194c,0x199c,0x19ec,0x1a3a,0x1a88,0x1ad5,0x1b21,0x1b6c,
408 0x1bb6,0x1c00,0x1c48,0x1c90,0x1cd8,0x1d1e,0x1d64,0x1daa,
409 0x1dee,0x1e33,0x1e76,0x1eb9,0x1efb,0x1f3d,0x1f7e,0x1fbf,
410 0x2000,0x203f,0x207f,0x20bd,0x20fc,0x2139,0x2177,0x21b4,
411 0x21f0,0x222d,0x2268,0x22a4,0x22df,0x2319,0x2353,0x238d,
412 0x23c6,0x2400,0x2438,0x2471,0x24a9,0x24e0,0x2518,0x254f,
413 0x2585,0x25bc,0x25f2,0x2628,0x265d,0x2693,0x26c8,0x26fc,
414 0x2731,0x2765,0x2799,0x27cc,0x2800,0x2833,0x2865,0x2898,
415 0x28ca,0x28fc,0x292e,0x2960,0x2991,0x29c2,0x29f3,0x2a24,
416 0x2a54,0x2a85,0x2ab5,0x2ae5,0x2b14,0x2b44,0x2b73,0x2ba2,
417 0x2bd1,0x2c00,0x2c2e,0x2c5c,0x2c8a,0x2cb8,0x2ce6,0x2d13,
418 0x2d41,0x2d6e,0x2d9b,0x2dc8,0x2df4,0x2e21,0x2e4d,0x2e79,
419 0x2ea5,0x2ed1,0x2efd,0x2f28,0x2f54,0x2f7f,0x2faa,0x2fd5,
420 0x3000,0x302a,0x3055,0x307f,0x30a9,0x30d3,0x30fd,0x3127,
421 0x3150,0x317a,0x31a3,0x31cc,0x31f5,0x321e,0x3247,0x3270,
422 0x3298,0x32c1,0x32e9,0x3311,0x3339,0x3361,0x3389,0x33b0,
423 0x33d8,0x3400,0x3427,0x344e,0x3475,0x349c,0x34c3,0x34ea,
424 0x3510,0x3537,0x355d,0x3584,0x35aa,0x35d0,0x35f6,0x361c,
425 0x3642,0x3667,0x368d,0x36b2,0x36d8,0x36fd,0x3722,0x3747,
426 0x376c,0x3791,0x37b6,0x37db,0x3800,0x3824,0x3848,0x386d,
427 0x3891,0x38b5,0x38d9,0x38fd,0x3921,0x3945,0x3969,0x398c,
428 0x39b0,0x39d3,0x39f7,0x3a1a,0x3a3d,0x3a60,0x3a83,0x3aa6,
429 0x3ac9,0x3aec,0x3b0f,0x3b31,0x3b54,0x3b76,0x3b99,0x3bbb,
430 0x3bdd,0x3c00,0x3c22,0x3c44,0x3c66,0x3c87,0x3ca9,0x3ccb,
431 0x3ced,0x3d0e,0x3d30,0x3d51,0x3d72,0x3d94,0x3db5,0x3dd6,
432 0x3df7,0x3e18,0x3e39,0x3e5a,0x3e7b,0x3e9c,0x3ebc,0x3edd,
433 0x3efd,0x3f1e,0x3f3e,0x3f5f,0x3f7f,0x3f9f,0x3fbf,0x3fdf,
434 0x4000,0x401f,0x403f,0x405f,0x407f,0x409f,0x40be,0x40de,
435 0x40fe,0x411d,0x413c,0x415c,0x417b,0x419a,0x41ba,0x41d9,
436 0x41f8,0x4217,0x4236,0x4255,0x4273,0x4292,0x42b1,0x42d0,
437 0x42ee,0x430d,0x432b,0x434a,0x4368,0x4387,0x43a5,0x43c3,
438 0x43e1,0x4400,0x441e,0x443c,0x445a,0x4478,0x4495,0x44b3,
439 0x44d1,0x44ef,0x450c,0x452a,0x4548,0x4565,0x4583,0x45a0,
440 0x45be,0x45db,0x45f8,0x4615,0x4633,0x4650,0x466d,0x468a,
441 0x46a7,0x46c4,0x46e1,0x46fe,0x471b,0x4737,0x4754,0x4771,
442 0x478d,0x47aa,0x47c7,0x47e3,0x4800,0x481c,0x4838,0x4855,
443 0x4871,0x488d,0x48a9,0x48c6,0x48e2,0x48fe,0x491a,0x4936,
444 0x4952,0x496e,0x498a,0x49a5,0x49c1,0x49dd,0x49f9,0x4a14,
445 0x4a30,0x4a4b,0x4a67,0x4a83,0x4a9e,0x4ab9,0x4ad5,0x4af0,
446 0x4b0b,0x4b27,0x4b42,0x4b5d,0x4b78,0x4b93,0x4bae,0x4bca,
447 0x4be5,0x4c00,0x4c1a,0x4c35,0x4c50,0x4c6b,0x4c86,0x4ca1,
448 0x4cbb,0x4cd6,0x4cf1,0x4d0b,0x4d26,0x4d40,0x4d5b,0x4d75,
449 0x4d90,0x4daa,0x4dc4,0x4ddf,0x4df9,0x4e13,0x4e2d,0x4e48,
450 0x4e62,0x4e7c,0x4e96,0x4eb0,0x4eca,0x4ee4,0x4efe,0x4f18,
451 0x4f32,0x4f4c,0x4f65,0x4f7f,0x4f99,0x4fb3,0x4fcc,0x4fe6,
452 0x5000,0x5019,0x5033,0x504c,0x5066,0x507f,0x5099,0x50b2,
453 0x50cb,0x50e5,0x50fe,0x5117,0x5130,0x514a,0x5163,0x517c,
454 0x5195,0x51ae,0x51c7,0x51e0,0x51f9,0x5212,0x522b,0x5244,
455 0x525d,0x5276,0x528f,0x52a7,0x52c0,0x52d9,0x52f2,0x530a,
456 0x5323,0x533c,0x5354,0x536d,0x5385,0x539e,0x53b6,0x53cf,
457 0x53e7,0x5400,0x5418,0x5430,0x5449,0x5461,0x5479,0x5491,
458 0x54a9,0x54c2,0x54da,0x54f2,0x550a,0x5522,0x553a,0x5552,
459 0x556a,0x5582,0x559a,0x55b2,0x55ca,0x55e2,0x55fa,0x5611,
460 0x5629,0x5641,0x5659,0x5670,0x5688,0x56a0,0x56b7,0x56cf,
461 0x56e6,0x56fe,0x5716,0x572d,0x5745,0x575c,0x5773,0x578b,
462 0x57a2,0x57ba,0x57d1,0x57e8,0x5800,0x5817,0x582e,0x5845,
463 0x585c,0x5874,0x588b,0x58a2,0x58b9,0x58d0,0x58e7,0x58fe,
464 0x5915,0x592c,0x5943,0x595a,0x5971,0x5988,0x599f,0x59b5,
465 0x59cc,0x59e3,0x59fa,0x5a11,0x5a27,0x5a3e,0x5a55,0x5a6b,
466 0x5a82,0x5a99,0x5aaf,0x5ac6,0x5adc,0x5af3,0x5b09,0x5b20,
467 0x5b36,0x5b4d,0x5b63,0x5b7a,0x5b90,0x5ba6,0x5bbd,0x5bd3,
468 0x5be9,0x5c00,0x5c16,0x5c2c,0x5c42,0x5c58,0x5c6f,0x5c85,
469 0x5c9b,0x5cb1,0x5cc7,0x5cdd,0x5cf3,0x5d09,0x5d1f,0x5d35,
470 0x5d4b,0x5d61,0x5d77,0x5d8d,0x5da3,0x5db9,0x5dce,0x5de4,
471 0x5dfa,0x5e10,0x5e26,0x5e3b,0x5e51,0x5e67,0x5e7c,0x5e92,
472 0x5ea8,0x5ebd,0x5ed3,0x5ee9,0x5efe,0x5f14,0x5f29,0x5f3f,
473 0x5f54,0x5f6a,0x5f7f,0x5f95,0x5faa,0x5fbf,0x5fd5,0x5fea,
474 0x6000,0x6015,0x602a,0x603f,0x6055,0x606a,0x607f,0x6094,
475 0x60aa,0x60bf,0x60d4,0x60e9,0x60fe,0x6113,0x6128,0x613d,
476 0x6152,0x6168,0x617d,0x6192,0x61a7,0x61bb,0x61d0,0x61e5,
477 0x61fa,0x620f,0x6224,0x6239,0x624e,0x6263,0x6277,0x628c,
478 0x62a1,0x62b6,0x62ca,0x62df,0x62f4,0x6309,0x631d,0x6332,
479 0x6347,0x635b,0x6370,0x6384,0x6399,0x63ad,0x63c2,0x63d7,
480 0x63eb,0x6400,0x6414,0x6428,0x643d,0x6451,0x6466,0x647a,
481 0x648e,0x64a3,0x64b7,0x64cb,0x64e0,0x64f4,0x6508,0x651d,
482 0x6531,0x6545,0x6559,0x656e,0x6582,0x6596,0x65aa,0x65be,
483 0x65d2,0x65e6,0x65fa,0x660f,0x6623,0x6637,0x664b,0x665f,
484 0x6673,0x6687,0x669b,0x66af,0x66c3,0x66d6,0x66ea,0x66fe,
485 0x6712,0x6726,0x673a,0x674e,0x6761,0x6775,0x6789,0x679d,
486 0x67b1,0x67c4,0x67d8,0x67ec,0x6800,0x6813,0x6827,0x683b,
487 0x684e,0x6862,0x6875,0x6889,0x689d,0x68b0,0x68c4,0x68d7,
488 0x68eb,0x68fe,0x6912,0x6925,0x6939,0x694c,0x6960,0x6973,
489 0x6986,0x699a,0x69ad,0x69c1,0x69d4,0x69e7,0x69fb,0x6a0e,
490 0x6a21,0x6a35,0x6a48,0x6a5b,0x6a6e,0x6a82,0x6a95,0x6aa8,
491 0x6abb,0x6ace,0x6ae2,0x6af5,0x6b08,0x6b1b,0x6b2e,0x6b41,
492 0x6b54,0x6b67,0x6b7a,0x6b8d,0x6ba1,0x6bb4,0x6bc7,0x6bda,
493 0x6bed,0x6c00,0x6c12,0x6c25,0x6c38,0x6c4b,0x6c5e,0x6c71,
494 0x6c84,0x6c97,0x6caa,0x6cbc,0x6ccf,0x6ce2,0x6cf5,0x6d08,
495 0x6d1a,0x6d2d,0x6d40,0x6d53,0x6d65,0x6d78,0x6d8b,0x6d9e,
496 0x6db0,0x6dc3,0x6dd6,0x6de8,0x6dfb,0x6e0d,0x6e20,0x6e33,
497 0x6e45,0x6e58,0x6e6a,0x6e7d,0x6e8f,0x6ea2,0x6eb4,0x6ec7,
498 0x6ed9,0x6eec,0x6efe,0x6f11,0x6f23,0x6f36,0x6f48,0x6f5a,
499 0x6f6d,0x6f7f,0x6f92,0x6fa4,0x6fb6,0x6fc9,0x6fdb,0x6fed,
500 0x7000,0x7012,0x7024,0x7036,0x7049,0x705b,0x706d,0x707f,
501 0x7091,0x70a4,0x70b6,0x70c8,0x70da,0x70ec,0x70fe,0x7110,
502 0x7123,0x7135,0x7147,0x7159,0x716b,0x717d,0x718f,0x71a1,
503 0x71b3,0x71c5,0x71d7,0x71e9,0x71fb,0x720d,0x721f,0x7231,
504 0x7243,0x7255,0x7267,0x7279,0x728a,0x729c,0x72ae,0x72c0,
505 0x72d2,0x72e4,0x72f5,0x7307,0x7319,0x732b,0x733d,0x734e,
506 0x7360,0x7372,0x7384,0x7395,0x73a7,0x73b9,0x73ca,0x73dc,
507 0x73ee,0x7400,0x7411,0x7423,0x7434,0x7446,0x7458,0x7469,
508 0x747b,0x748c,0x749e,0x74b0,0x74c1,0x74d3,0x74e4,0x74f6,
509 0x7507,0x7519,0x752a,0x753c,0x754d,0x755f,0x7570,0x7581,
510 0x7593,0x75a4,0x75b6,0x75c7,0x75d8,0x75ea,0x75fb,0x760d,
511 0x761e,0x762f,0x7641,0x7652,0x7663,0x7674,0x7686,0x7697,
512 0x76a8,0x76ba,0x76cb,0x76dc,0x76ed,0x76fe,0x7710,0x7721,
513 0x7732,0x7743,0x7754,0x7766,0x7777,0x7788,0x7799,0x77aa,
514 0x77bb,0x77cc,0x77dd,0x77ee,0x7800,0x7811,0x7822,0x7833,
515 0x7844,0x7855,0x7866,0x7877,0x7888,0x7899,0x78aa,0x78bb,
516 0x78cc,0x78dd,0x78ee,0x78fe,0x790f,0x7920,0x7931,0x7942,
517 0x7953,0x7964,0x7975,0x7986,0x7996,0x79a7,0x79b8,0x79c9,
518 0x79da,0x79eb,0x79fb,0x7a0c,0x7a1d,0x7a2e,0x7a3e,0x7a4f,
519 0x7a60,0x7a71,0x7a81,0x7a92,0x7aa3,0x7ab3,0x7ac4,0x7ad5,
520 0x7ae5,0x7af6,0x7b07,0x7b17,0x7b28,0x7b39,0x7b49,0x7b5a,
521 0x7b6b,0x7b7b,0x7b8c,0x7b9c,0x7bad,0x7bbd,0x7bce,0x7bde,
522 0x7bef,0x7c00,0x7c10,0x7c21,0x7c31,0x7c41,0x7c52,0x7c62,
523 0x7c73,0x7c83,0x7c94,0x7ca4,0x7cb5,0x7cc5,0x7cd5,0x7ce6,
524 0x7cf6,0x7d07,0x7d17,0x7d27,0x7d38,0x7d48,0x7d58,0x7d69,
525 0x7d79,0x7d89,0x7d9a,0x7daa,0x7dba,0x7dcb,0x7ddb,0x7deb,
526 0x7dfb,0x7e0c,0x7e1c,0x7e2c,0x7e3c,0x7e4d,0x7e5d,0x7e6d,
527 0x7e7d,0x7e8d,0x7e9e,0x7eae,0x7ebe,0x7ece,0x7ede,0x7eee,
528 0x7efe,0x7f0f,0x7f1f,0x7f2f,0x7f3f,0x7f4f,0x7f5f,0x7f6f,
529 0x7f7f,0x7f8f,0x7f9f,0x7faf,0x7fbf,0x7fcf,0x7fdf,0x7fef,
530 0x8000,0x800f,0x801f,0x802f,0x803f,0x804f,0x805f,0x806f,
531 0x807f,0x808f,0x809f,0x80af,0x80bf,0x80cf,0x80df,0x80ef,
532 0x80ff,0x810e,0x811e,0x812e,0x813e,0x814e,0x815e,0x816d,
533 0x817d,0x818d,0x819d,0x81ad,0x81bc,0x81cc,0x81dc,0x81ec,
534 0x81fc,0x820b,0x821b,0x822b,0x823b,0x824a,0x825a,0x826a,
535 0x8279,0x8289,0x8299,0x82a8,0x82b8,0x82c8,0x82d7,0x82e7,
536 0x82f7,0x8306,0x8316,0x8326,0x8335,0x8345,0x8354,0x8364,
537 0x8374,0x8383,0x8393,0x83a2,0x83b2,0x83c1,0x83d1,0x83e0,
538 0x83f0,0x8400,0x840f,0x841f,0x842e,0x843e,0x844d,0x845c,
539 0x846c,0x847b,0x848b,0x849a,0x84aa,0x84b9,0x84c9,0x84d8,
540 0x84e7,0x84f7,0x8506,0x8516,0x8525,0x8534,0x8544,0x8553,
541 0x8562,0x8572,0x8581,0x8591,0x85a0,0x85af,0x85be,0x85ce,
542 0x85dd,0x85ec,0x85fc,0x860b,0x861a,0x862a,0x8639,0x8648,
543 0x8657,0x8667,0x8676,0x8685,0x8694,0x86a3,0x86b3,0x86c2,
544 0x86d1,0x86e0,0x86ef,0x86ff,0x870e,0x871d,0x872c,0x873b,
545 0x874a,0x8759,0x8769,0x8778,0x8787,0x8796,0x87a5,0x87b4,
546 0x87c3,0x87d2,0x87e1,0x87f0,0x8800,0x880f,0x881e,0x882d,
547 0x883c,0x884b,0x885a,0x8869,0x8878,0x8887,0x8896,0x88a5,
548 0x88b4,0x88c3,0x88d2,0x88e1,0x88f0,0x88ff,0x890e,0x891c,
549 0x892b,0x893a,0x8949,0x8958,0x8967,0x8976,0x8985,0x8994,
550 0x89a3,0x89b2,0x89c0,0x89cf,0x89de,0x89ed,0x89fc,0x8a0b,
551 0x8a19,0x8a28,0x8a37,0x8a46,0x8a55,0x8a64,0x8a72,0x8a81,
552 0x8a90,0x8a9f,0x8aad,0x8abc,0x8acb,0x8ada,0x8ae8,0x8af7,
553 0x8b06,0x8b15,0x8b23,0x8b32,0x8b41,0x8b50,0x8b5e,0x8b6d,
554 0x8b7c,0x8b8a,0x8b99,0x8ba8,0x8bb6,0x8bc5,0x8bd4,0x8be2,
555 0x8bf1,0x8c00,0x8c0e,0x8c1d,0x8c2b,0x8c3a,0x8c49,0x8c57,
556 0x8c66,0x8c74,0x8c83,0x8c91,0x8ca0,0x8caf,0x8cbd,0x8ccc,
557 0x8cda,0x8ce9,0x8cf7,0x8d06,0x8d14,0x8d23,0x8d31,0x8d40,
558 0x8d4e,0x8d5d,0x8d6b,0x8d7a,0x8d88,0x8d97,0x8da5,0x8db4,
559 0x8dc2,0x8dd1,0x8ddf,0x8ded,0x8dfc,0x8e0a,0x8e19,0x8e27,
560 0x8e36,0x8e44,0x8e52,0x8e61,0x8e6f,0x8e7d,0x8e8c,0x8e9a,
561 0x8ea9,0x8eb7,0x8ec5,0x8ed4,0x8ee2,0x8ef0,0x8eff,0x8f0d,
562 0x8f1b,0x8f2a,0x8f38,0x8f46,0x8f54,0x8f63,0x8f71,0x8f7f,
563 0x8f8e,0x8f9c,0x8faa,0x8fb8,0x8fc7,0x8fd5,0x8fe3,0x8ff1,
564 0x9000,0x900e,0x901c,0x902a,0x9038,0x9047,0x9055,0x9063,
565 0x9071,0x907f,0x908d,0x909c,0x90aa,0x90b8,0x90c6,0x90d4,
566 0x90e2,0x90f0,0x90ff,0x910d,0x911b,0x9129,0x9137,0x9145,
567 0x9153,0x9161,0x916f,0x917e,0x918c,0x919a,0x91a8,0x91b6,
568 0x91c4,0x91d2,0x91e0,0x91ee,0x91fc,0x920a,0x9218,0x9226,
569 0x9234,0x9242,0x9250,0x925e,0x926c,0x927a,0x9288,0x9296,
570 0x92a4,0x92b2,0x92c0,0x92ce,0x92dc,0x92ea,0x92f8,0x9306,
571 0x9314,0x9321,0x932f,0x933d,0x934b,0x9359,0x9367,0x9375,
572 0x9383,0x9391,0x939f,0x93ac,0x93ba,0x93c8,0x93d6,0x93e4,
573 0x93f2,0x9400,0x940d,0x941b,0x9429,0x9437,0x9445,0x9452,
574 0x9460,0x946e,0x947c,0x948a,0x9497,0x94a5,0x94b3,0x94c1,
575 0x94cf,0x94dc,0x94ea,0x94f8,0x9506,0x9513,0x9521,0x952f,
576 0x953c,0x954a,0x9558,0x9566,0x9573,0x9581,0x958f,0x959c,
577 0x95aa,0x95b8,0x95c5,0x95d3,0x95e1,0x95ee,0x95fc,0x960a,
578 0x9617,0x9625,0x9633,0x9640,0x964e,0x965c,0x9669,0x9677,
579 0x9684,0x9692,0x96a0,0x96ad,0x96bb,0x96c8,0x96d6,0x96e4,
580 0x96f1,0x96ff,0x970c,0x971a,0x9727,0x9735,0x9742,0x9750,
581 0x975d,0x976b,0x9779,0x9786,0x9794,0x97a1,0x97af,0x97bc,
582 0x97ca,0x97d7,0x97e5,0x97f2,0x9800,0x980d,0x981a,0x9828,
583 0x9835,0x9843,0x9850,0x985e,0x986b,0x9879,0x9886,0x9893,
584 0x98a1,0x98ae,0x98bc,0x98c9,0x98d6,0x98e4,0x98f1,0x98ff,
585 0x990c,0x9919,0x9927,0x9934,0x9942,0x994f,0x995c,0x996a,
586 0x9977,0x9984,0x9992,0x999f,0x99ac,0x99ba,0x99c7,0x99d4,
587 0x99e2,0x99ef,0x99fc,0x9a09,0x9a17,0x9a24,0x9a31,0x9a3f,
588 0x9a4c,0x9a59,0x9a66,0x9a74,0x9a81,0x9a8e,0x9a9b,0x9aa9,
589 0x9ab6,0x9ac3,0x9ad0,0x9ade,0x9aeb,0x9af8,0x9b05,0x9b12,
590 0x9b20,0x9b2d,0x9b3a,0x9b47,0x9b54,0x9b62,0x9b6f,0x9b7c,
591 0x9b89,0x9b96,0x9ba3,0x9bb1,0x9bbe,0x9bcb,0x9bd8,0x9be5,
592 0x9bf2,0x9c00,0x9c0d,0x9c1a,0x9c27,0x9c34,0x9c41,0x9c4e,
593 0x9c5b,0x9c68,0x9c75,0x9c83,0x9c90,0x9c9d,0x9caa,0x9cb7,
594 0x9cc4,0x9cd1,0x9cde,0x9ceb,0x9cf8,0x9d05,0x9d12,0x9d1f,
595 0x9d2c,0x9d39,0x9d46,0x9d53,0x9d60,0x9d6d,0x9d7a,0x9d87,
596 0x9d94,0x9da1,0x9dae,0x9dbb,0x9dc8,0x9dd5,0x9de2,0x9def,
597 0x9dfc,0x9e09,0x9e16,0x9e23,0x9e30,0x9e3d,0x9e4a,0x9e57,
598 0x9e64,0x9e71,0x9e7e,0x9e8b,0x9e98,0x9ea4,0x9eb1,0x9ebe,
599 0x9ecb,0x9ed8,0x9ee5,0x9ef2,0x9eff,0x9f0c,0x9f18,0x9f25,
600 0x9f32,0x9f3f,0x9f4c,0x9f59,0x9f66,0x9f72,0x9f7f,0x9f8c,
601 0x9f99,0x9fa6,0x9fb3,0x9fbf,0x9fcc,0x9fd9,0x9fe6,0x9ff3,
602 0xa000,0xa00c,0xa019,0xa026,0xa033,0xa03f,0xa04c,0xa059,
603 0xa066,0xa073,0xa07f,0xa08c,0xa099,0xa0a6,0xa0b2,0xa0bf,
604 0xa0cc,0xa0d9,0xa0e5,0xa0f2,0xa0ff,0xa10b,0xa118,0xa125,
605 0xa132,0xa13e,0xa14b,0xa158,0xa164,0xa171,0xa17e,0xa18a,
606 0xa197,0xa1a4,0xa1b0,0xa1bd,0xa1ca,0xa1d6,0xa1e3,0xa1f0,
607 0xa1fc,0xa209,0xa216,0xa222,0xa22f,0xa23c,0xa248,0xa255,
608 0xa261,0xa26e,0xa27b,0xa287,0xa294,0xa2a0,0xa2ad,0xa2ba,
609 0xa2c6,0xa2d3,0xa2df,0xa2ec,0xa2f8,0xa305,0xa312,0xa31e,
610 0xa32b,0xa337,0xa344,0xa350,0xa35d,0xa369,0xa376,0xa382,
611 0xa38f,0xa39b,0xa3a8,0xa3b5,0xa3c1,0xa3ce,0xa3da,0xa3e7,
612 0xa3f3,0xa400,0xa40c,0xa418,0xa425,0xa431,0xa43e,0xa44a,
613 0xa457,0xa463,0xa470,0xa47c,0xa489,0xa495,0xa4a2,0xa4ae,
614 0xa4ba,0xa4c7,0xa4d3,0xa4e0,0xa4ec,0xa4f9,0xa505,0xa511,
615 0xa51e,0xa52a,0xa537,0xa543,0xa54f,0xa55c,0xa568,0xa574,
616 0xa581,0xa58d,0xa59a,0xa5a6,0xa5b2,0xa5bf,0xa5cb,0xa5d7,
617 0xa5e4,0xa5f0,0xa5fc,0xa609,0xa615,0xa621,0xa62e,0xa63a,
618 0xa646,0xa653,0xa65f,0xa66b,0xa678,0xa684,0xa690,0xa69d,
619 0xa6a9,0xa6b5,0xa6c1,0xa6ce,0xa6da,0xa6e6,0xa6f2,0xa6ff,
620 0xa70b,0xa717,0xa724,0xa730,0xa73c,0xa748,0xa754,0xa761,
621 0xa76d,0xa779,0xa785,0xa792,0xa79e,0xa7aa,0xa7b6,0xa7c3,
622 0xa7cf,0xa7db,0xa7e7,0xa7f3,0xa800,0xa80c,0xa818,0xa824,
623 0xa830,0xa83c,0xa849,0xa855,0xa861,0xa86d,0xa879,0xa885,
624 0xa892,0xa89e,0xa8aa,0xa8b6,0xa8c2,0xa8ce,0xa8da,0xa8e6,
625 0xa8f3,0xa8ff,0xa90b,0xa917,0xa923,0xa92f,0xa93b,0xa947,
626 0xa953,0xa960,0xa96c,0xa978,0xa984,0xa990,0xa99c,0xa9a8,
627 0xa9b4,0xa9c0,0xa9cc,0xa9d8,0xa9e4,0xa9f0,0xa9fc,0xaa09,
628 0xaa15,0xaa21,0xaa2d,0xaa39,0xaa45,0xaa51,0xaa5d,0xaa69,
629 0xaa75,0xaa81,0xaa8d,0xaa99,0xaaa5,0xaab1,0xaabd,0xaac9,
630 0xaad5,0xaae1,0xaaed,0xaaf9,0xab05,0xab11,0xab1d,0xab29,
631 0xab35,0xab41,0xab4d,0xab58,0xab64,0xab70,0xab7c,0xab88,
632 0xab94,0xaba0,0xabac,0xabb8,0xabc4,0xabd0,0xabdc,0xabe8,
633 0xabf4,0xac00,0xac0b,0xac17,0xac23,0xac2f,0xac3b,0xac47,
634 0xac53,0xac5f,0xac6b,0xac76,0xac82,0xac8e,0xac9a,0xaca6,
635 0xacb2,0xacbe,0xacc9,0xacd5,0xace1,0xaced,0xacf9,0xad05,
636 0xad11,0xad1c,0xad28,0xad34,0xad40,0xad4c,0xad57,0xad63,
637 0xad6f,0xad7b,0xad87,0xad92,0xad9e,0xadaa,0xadb6,0xadc2,
638 0xadcd,0xadd9,0xade5,0xadf1,0xadfd,0xae08,0xae14,0xae20,
639 0xae2c,0xae37,0xae43,0xae4f,0xae5b,0xae66,0xae72,0xae7e,
640 0xae8a,0xae95,0xaea1,0xaead,0xaeb8,0xaec4,0xaed0,0xaedc,
641 0xaee7,0xaef3,0xaeff,0xaf0a,0xaf16,0xaf22,0xaf2e,0xaf39,
642 0xaf45,0xaf51,0xaf5c,0xaf68,0xaf74,0xaf7f,0xaf8b,0xaf97,
643 0xafa2,0xafae,0xafba,0xafc5,0xafd1,0xafdd,0xafe8,0xaff4,
644 0xb000,0xb00b,0xb017,0xb022,0xb02e,0xb03a,0xb045,0xb051,
645 0xb05c,0xb068,0xb074,0xb07f,0xb08b,0xb097,0xb0a2,0xb0ae,
646 0xb0b9,0xb0c5,0xb0d0,0xb0dc,0xb0e8,0xb0f3,0xb0ff,0xb10a,
647 0xb116,0xb121,0xb12d,0xb139,0xb144,0xb150,0xb15b,0xb167,
648 0xb172,0xb17e,0xb189,0xb195,0xb1a0,0xb1ac,0xb1b8,0xb1c3,
649 0xb1cf,0xb1da,0xb1e6,0xb1f1,0xb1fd,0xb208,0xb214,0xb21f,
650 0xb22b,0xb236,0xb242,0xb24d,0xb259,0xb264,0xb270,0xb27b,
651 0xb286,0xb292,0xb29d,0xb2a9,0xb2b4,0xb2c0,0xb2cb,0xb2d7,
652 0xb2e2,0xb2ee,0xb2f9,0xb305,0xb310,0xb31b,0xb327,0xb332,
653 0xb33e,0xb349,0xb355,0xb360,0xb36b,0xb377,0xb382,0xb38e,
654 0xb399,0xb3a4,0xb3b0,0xb3bb,0xb3c7,0xb3d2,0xb3dd,0xb3e9,
655 0xb3f4,0xb400,0xb40b,0xb416,0xb422,0xb42d,0xb438,0xb444,
656 0xb44f,0xb45a,0xb466,0xb471,0xb47c,0xb488,0xb493,0xb49f,
657 0xb4aa,0xb4b5,0xb4c1,0xb4cc,0xb4d7,0xb4e2,0xb4ee,0xb4f9,
658 0xb504,0xb510,0xb51b,0xb526,0xb532,0xb53d,0xb548,0xb554,
659 0xb55f,0xb56a,0xb575,0xb581,0xb58c,0xb597,0xb5a3,0xb5ae,
660 0xb5b9,0xb5c4,0xb5d0,0xb5db,0xb5e6,0xb5f1,0xb5fd,0xb608,
661 0xb613,0xb61e,0xb62a,0xb635,0xb640,0xb64b,0xb657,0xb662,
662 0xb66d,0xb678,0xb684,0xb68f,0xb69a,0xb6a5,0xb6b0,0xb6bc,
663 0xb6c7,0xb6d2,0xb6dd,0xb6e8,0xb6f4,0xb6ff,0xb70a,0xb715,
664 0xb720,0xb72c,0xb737,0xb742,0xb74d,0xb758,0xb763,0xb76f,
665 0xb77a,0xb785,0xb790,0xb79b,0xb7a6,0xb7b2,0xb7bd,0xb7c8,
666 0xb7d3,0xb7de,0xb7e9,0xb7f4,0xb800,0xb80b,0xb816,0xb821,
667 0xb82c,0xb837,0xb842,0xb84d,0xb858,0xb864,0xb86f,0xb87a,
668 0xb885,0xb890,0xb89b,0xb8a6,0xb8b1,0xb8bc,0xb8c7,0xb8d3,
669 0xb8de,0xb8e9,0xb8f4,0xb8ff,0xb90a,0xb915,0xb920,0xb92b,
670 0xb936,0xb941,0xb94c,0xb957,0xb962,0xb96d,0xb978,0xb983,
671 0xb98f,0xb99a,0xb9a5,0xb9b0,0xb9bb,0xb9c6,0xb9d1,0xb9dc,
672 0xb9e7,0xb9f2,0xb9fd,0xba08,0xba13,0xba1e,0xba29,0xba34,
673 0xba3f,0xba4a,0xba55,0xba60,0xba6b,0xba76,0xba81,0xba8c,
674 0xba97,0xbaa2,0xbaad,0xbab8,0xbac3,0xbace,0xbad8,0xbae3,
675 0xbaee,0xbaf9,0xbb04,0xbb0f,0xbb1a,0xbb25,0xbb30,0xbb3b,
676 0xbb46,0xbb51,0xbb5c,0xbb67,0xbb72,0xbb7d,0xbb88,0xbb92,
677 0xbb9d,0xbba8,0xbbb3,0xbbbe,0xbbc9,0xbbd4,0xbbdf,0xbbea,
678 0xbbf5,0xbc00,0xbc0a,0xbc15,0xbc20,0xbc2b,0xbc36,0xbc41,
679 0xbc4c,0xbc57,0xbc61,0xbc6c,0xbc77,0xbc82,0xbc8d,0xbc98,
680 0xbca3,0xbcad,0xbcb8,0xbcc3,0xbcce,0xbcd9,0xbce4,0xbcef,
681 0xbcf9,0xbd04,0xbd0f,0xbd1a,0xbd25,0xbd30,0xbd3a,0xbd45,
682 0xbd50,0xbd5b,0xbd66,0xbd70,0xbd7b,0xbd86,0xbd91,0xbd9c,
683 0xbda6,0xbdb1,0xbdbc,0xbdc7,0xbdd2,0xbddc,0xbde7,0xbdf2,
684 0xbdfd,0xbe08,0xbe12,0xbe1d,0xbe28,0xbe33,0xbe3d,0xbe48,
685 0xbe53,0xbe5e,0xbe68,0xbe73,0xbe7e,0xbe89,0xbe93,0xbe9e,
686 0xbea9,0xbeb4,0xbebe,0xbec9,0xbed4,0xbedf,0xbee9,0xbef4,
687 0xbeff,0xbf0a,0xbf14,0xbf1f,0xbf2a,0xbf34,0xbf3f,0xbf4a,
688 0xbf55,0xbf5f,0xbf6a,0xbf75,0xbf7f,0xbf8a,0xbf95,0xbf9f,
689 0xbfaa,0xbfb5,0xbfbf,0xbfca,0xbfd5,0xbfdf,0xbfea,0xbff5,
690 0xc000,0xc00a,0xc015,0xc01f,0xc02a,0xc035,0xc03f,0xc04a,
691 0xc055,0xc05f,0xc06a,0xc075,0xc07f,0xc08a,0xc095,0xc09f,
692 0xc0aa,0xc0b5,0xc0bf,0xc0ca,0xc0d4,0xc0df,0xc0ea,0xc0f4,
693 0xc0ff,0xc109,0xc114,0xc11f,0xc129,0xc134,0xc13e,0xc149,
694 0xc154,0xc15e,0xc169,0xc173,0xc17e,0xc189,0xc193,0xc19e,
695 0xc1a8,0xc1b3,0xc1bd,0xc1c8,0xc1d3,0xc1dd,0xc1e8,0xc1f2,
696 0xc1fd,0xc207,0xc212,0xc21d,0xc227,0xc232,0xc23c,0xc247,
697 0xc251,0xc25c,0xc266,0xc271,0xc27b,0xc286,0xc290,0xc29b,
698 0xc2a5,0xc2b0,0xc2bb,0xc2c5,0xc2d0,0xc2da,0xc2e5,0xc2ef,
699 0xc2fa,0xc304,0xc30f,0xc319,0xc324,0xc32e,0xc339,0xc343,
700 0xc34e,0xc358,0xc363,0xc36d,0xc377,0xc382,0xc38c,0xc397,
701 0xc3a1,0xc3ac,0xc3b6,0xc3c1,0xc3cb,0xc3d6,0xc3e0,0xc3eb,
702 0xc3f5,0xc400,0xc40a,0xc414,0xc41f,0xc429,0xc434,0xc43e,
703 0xc449,0xc453,0xc45d,0xc468,0xc472,0xc47d,0xc487,0xc492,
704 0xc49c,0xc4a6,0xc4b1,0xc4bb,0xc4c6,0xc4d0,0xc4da,0xc4e5,
705 0xc4ef,0xc4fa,0xc504,0xc50e,0xc519,0xc523,0xc52e,0xc538,
706 0xc542,0xc54d,0xc557,0xc562,0xc56c,0xc576,0xc581,0xc58b,
707 0xc595,0xc5a0,0xc5aa,0xc5b4,0xc5bf,0xc5c9,0xc5d4,0xc5de,
708 0xc5e8,0xc5f3,0xc5fd,0xc607,0xc612,0xc61c,0xc626,0xc631,
709 0xc63b,0xc645,0xc650,0xc65a,0xc664,0xc66f,0xc679,0xc683,
710 0xc68e,0xc698,0xc6a2,0xc6ac,0xc6b7,0xc6c1,0xc6cb,0xc6d6,
711 0xc6e0,0xc6ea,0xc6f5,0xc6ff,0xc709,0xc713,0xc71e,0xc728,
712 0xc732,0xc73d,0xc747,0xc751,0xc75b,0xc766,0xc770,0xc77a,
713 0xc784,0xc78f,0xc799,0xc7a3,0xc7ae,0xc7b8,0xc7c2,0xc7cc,
714 0xc7d7,0xc7e1,0xc7eb,0xc7f5,0xc800,0xc80a,0xc814,0xc81e,
715 0xc828,0xc833,0xc83d,0xc847,0xc851,0xc85c,0xc866,0xc870,
716 0xc87a,0xc884,0xc88f,0xc899,0xc8a3,0xc8ad,0xc8b7,0xc8c2,
717 0xc8cc,0xc8d6,0xc8e0,0xc8ea,0xc8f5,0xc8ff,0xc909,0xc913,
718 0xc91d,0xc928,0xc932,0xc93c,0xc946,0xc950,0xc95a,0xc965,
719 0xc96f,0xc979,0xc983,0xc98d,0xc997,0xc9a2,0xc9ac,0xc9b6,
720 0xc9c0,0xc9ca,0xc9d4,0xc9df,0xc9e9,0xc9f3,0xc9fd,0xca07,
721 0xca11,0xca1b,0xca26,0xca30,0xca3a,0xca44,0xca4e,0xca58,
722 0xca62,0xca6c,0xca76,0xca81,0xca8b,0xca95,0xca9f,0xcaa9,
723 0xcab3,0xcabd,0xcac7,0xcad1,0xcadc,0xcae6,0xcaf0,0xcafa,
724 0xcb04,0xcb0e,0xcb18,0xcb22,0xcb2c,0xcb36,0xcb40,0xcb4a,
725 0xcb55,0xcb5f,0xcb69,0xcb73,0xcb7d,0xcb87,0xcb91,0xcb9b,
726 0xcba5,0xcbaf,0xcbb9,0xcbc3,0xcbcd,0xcbd7,0xcbe1,0xcbeb,
727 0xcbf5,0xcc00,0xcc0a,0xcc14,0xcc1e,0xcc28,0xcc32,0xcc3c,
728 0xcc46,0xcc50,0xcc5a,0xcc64,0xcc6e,0xcc78,0xcc82,0xcc8c,
729 0xcc96,0xcca0,0xccaa,0xccb4,0xccbe,0xccc8,0xccd2,0xccdc,
730 0xcce6,0xccf0,0xccfa,0xcd04,0xcd0e,0xcd18,0xcd22,0xcd2c,
731 0xcd36,0xcd40,0xcd4a,0xcd54,0xcd5e,0xcd68,0xcd72,0xcd7c,
732 0xcd86,0xcd90,0xcd99,0xcda3,0xcdad,0xcdb7,0xcdc1,0xcdcb,
733 0xcdd5,0xcddf,0xcde9,0xcdf3,0xcdfd,0xce07,0xce11,0xce1b,
734 0xce25,0xce2f,0xce39,0xce43,0xce4c,0xce56,0xce60,0xce6a,
735 0xce74,0xce7e,0xce88,0xce92,0xce9c,0xcea6,0xceb0,0xceba,
736 0xcec3,0xcecd,0xced7,0xcee1,0xceeb,0xcef5,0xceff,0xcf09,
737 0xcf13,0xcf1d,0xcf26,0xcf30,0xcf3a,0xcf44,0xcf4e,0xcf58,
738 0xcf62,0xcf6c,0xcf75,0xcf7f,0xcf89,0xcf93,0xcf9d,0xcfa7,
739 0xcfb1,0xcfbb,0xcfc4,0xcfce,0xcfd8,0xcfe2,0xcfec,0xcff6,
740 0xd000,0xd009,0xd013,0xd01d,0xd027,0xd031,0xd03b,0xd044,
741 0xd04e,0xd058,0xd062,0xd06c,0xd076,0xd07f,0xd089,0xd093,
742 0xd09d,0xd0a7,0xd0b0,0xd0ba,0xd0c4,0xd0ce,0xd0d8,0xd0e1,
743 0xd0eb,0xd0f5,0xd0ff,0xd109,0xd112,0xd11c,0xd126,0xd130,
744 0xd13a,0xd143,0xd14d,0xd157,0xd161,0xd16b,0xd174,0xd17e,
745 0xd188,0xd192,0xd19b,0xd1a5,0xd1af,0xd1b9,0xd1c3,0xd1cc,
746 0xd1d6,0xd1e0,0xd1ea,0xd1f3,0xd1fd,0xd207,0xd211,0xd21a,
747 0xd224,0xd22e,0xd238,0xd241,0xd24b,0xd255,0xd25f,0xd268,
748 0xd272,0xd27c,0xd285,0xd28f,0xd299,0xd2a3,0xd2ac,0xd2b6,
749 0xd2c0,0xd2c9,0xd2d3,0xd2dd,0xd2e7,0xd2f0,0xd2fa,0xd304,
750 0xd30d,0xd317,0xd321,0xd32b,0xd334,0xd33e,0xd348,0xd351,
751 0xd35b,0xd365,0xd36e,0xd378,0xd382,0xd38b,0xd395,0xd39f,
752 0xd3a8,0xd3b2,0xd3bc,0xd3c6,0xd3cf,0xd3d9,0xd3e3,0xd3ec,
753 0xd3f6,0xd400,0xd409,0xd413,0xd41c,0xd426,0xd430,0xd439,
754 0xd443,0xd44d,0xd456,0xd460,0xd46a,0xd473,0xd47d,0xd487,
755 0xd490,0xd49a,0xd4a3,0xd4ad,0xd4b7,0xd4c0,0xd4ca,0xd4d4,
756 0xd4dd,0xd4e7,0xd4f0,0xd4fa,0xd504,0xd50d,0xd517,0xd521,
757 0xd52a,0xd534,0xd53d,0xd547,0xd551,0xd55a,0xd564,0xd56d,
758 0xd577,0xd581,0xd58a,0xd594,0xd59d,0xd5a7,0xd5b0,0xd5ba,
759 0xd5c4,0xd5cd,0xd5d7,0xd5e0,0xd5ea,0xd5f4,0xd5fd,0xd607,
760 0xd610,0xd61a,0xd623,0xd62d,0xd637,0xd640,0xd64a,0xd653,
761 0xd65d,0xd666,0xd670,0xd679,0xd683,0xd68c,0xd696,0xd6a0,
762 0xd6a9,0xd6b3,0xd6bc,0xd6c6,0xd6cf,0xd6d9,0xd6e2,0xd6ec,
763 0xd6f5,0xd6ff,0xd708,0xd712,0xd71b,0xd725,0xd72f,0xd738,
764 0xd742,0xd74b,0xd755,0xd75e,0xd768,0xd771,0xd77b,0xd784,
765 0xd78e,0xd797,0xd7a1,0xd7aa,0xd7b4,0xd7bd,0xd7c7,0xd7d0,
766 0xd7da,0xd7e3,0xd7ed,0xd7f6,0xd800,0xd809,0xd812,0xd81c,
767 0xd825,0xd82f,0xd838,0xd842,0xd84b,0xd855,0xd85e,0xd868,
768 0xd871,0xd87b,0xd884,0xd88e,0xd897,0xd8a0,0xd8aa,0xd8b3,
769 0xd8bd,0xd8c6,0xd8d0,0xd8d9,0xd8e3,0xd8ec,0xd8f5,0xd8ff,
770 0xd908,0xd912,0xd91b,0xd925,0xd92e,0xd938,0xd941,0xd94a,
771 0xd954,0xd95d,0xd967,0xd970,0xd979,0xd983,0xd98c,0xd996,
772 0xd99f,0xd9a9,0xd9b2,0xd9bb,0xd9c5,0xd9ce,0xd9d8,0xd9e1,
773 0xd9ea,0xd9f4,0xd9fd,0xda07,0xda10,0xda19,0xda23,0xda2c,
774 0xda35,0xda3f,0xda48,0xda52,0xda5b,0xda64,0xda6e,0xda77,
775 0xda81,0xda8a,0xda93,0xda9d,0xdaa6,0xdaaf,0xdab9,0xdac2,
776 0xdacb,0xdad5,0xdade,0xdae8,0xdaf1,0xdafa,0xdb04,0xdb0d,
777 0xdb16,0xdb20,0xdb29,0xdb32,0xdb3c,0xdb45,0xdb4e,0xdb58,
778 0xdb61,0xdb6a,0xdb74,0xdb7d,0xdb86,0xdb90,0xdb99,0xdba2,
779 0xdbac,0xdbb5,0xdbbe,0xdbc8,0xdbd1,0xdbda,0xdbe4,0xdbed,
780 0xdbf6,0xdc00,0xdc09,0xdc12,0xdc1b,0xdc25,0xdc2e,0xdc37,
781 0xdc41,0xdc4a,0xdc53,0xdc5d,0xdc66,0xdc6f,0xdc78,0xdc82,
782 0xdc8b,0xdc94,0xdc9e,0xdca7,0xdcb0,0xdcb9,0xdcc3,0xdccc,
783 0xdcd5,0xdcde,0xdce8,0xdcf1,0xdcfa,0xdd04,0xdd0d,0xdd16,
784 0xdd1f,0xdd29,0xdd32,0xdd3b,0xdd44,0xdd4e,0xdd57,0xdd60,
785 0xdd69,0xdd73,0xdd7c,0xdd85,0xdd8e,0xdd98,0xdda1,0xddaa,
786 0xddb3,0xddbd,0xddc6,0xddcf,0xddd8,0xdde2,0xddeb,0xddf4,
787 0xddfd,0xde06,0xde10,0xde19,0xde22,0xde2b,0xde35,0xde3e,
788 0xde47,0xde50,0xde59,0xde63,0xde6c,0xde75,0xde7e,0xde87,
789 0xde91,0xde9a,0xdea3,0xdeac,0xdeb5,0xdebf,0xdec8,0xded1,
790 0xdeda,0xdee3,0xdeed,0xdef6,0xdeff,0xdf08,0xdf11,0xdf1a,
791 0xdf24,0xdf2d,0xdf36,0xdf3f,0xdf48,0xdf52,0xdf5b,0xdf64,
792 0xdf6d,0xdf76,0xdf7f,0xdf89,0xdf92,0xdf9b,0xdfa4,0xdfad,
793 0xdfb6,0xdfbf,0xdfc9,0xdfd2,0xdfdb,0xdfe4,0xdfed,0xdff6,
794 0xe000,0xe009,0xe012,0xe01b,0xe024,0xe02d,0xe036,0xe03f,
795 0xe049,0xe052,0xe05b,0xe064,0xe06d,0xe076,0xe07f,0xe088,
796 0xe092,0xe09b,0xe0a4,0xe0ad,0xe0b6,0xe0bf,0xe0c8,0xe0d1,
797 0xe0db,0xe0e4,0xe0ed,0xe0f6,0xe0ff,0xe108,0xe111,0xe11a,
798 0xe123,0xe12c,0xe136,0xe13f,0xe148,0xe151,0xe15a,0xe163,
799 0xe16c,0xe175,0xe17e,0xe187,0xe190,0xe199,0xe1a3,0xe1ac,
800 0xe1b5,0xe1be,0xe1c7,0xe1d0,0xe1d9,0xe1e2,0xe1eb,0xe1f4,
801 0xe1fd,0xe206,0xe20f,0xe218,0xe221,0xe22b,0xe234,0xe23d,
802 0xe246,0xe24f,0xe258,0xe261,0xe26a,0xe273,0xe27c,0xe285,
803 0xe28e,0xe297,0xe2a0,0xe2a9,0xe2b2,0xe2bb,0xe2c4,0xe2cd,
804 0xe2d6,0xe2df,0xe2e8,0xe2f1,0xe2fa,0xe303,0xe30c,0xe315,
805 0xe31f,0xe328,0xe331,0xe33a,0xe343,0xe34c,0xe355,0xe35e,
806 0xe367,0xe370,0xe379,0xe382,0xe38b,0xe394,0xe39d,0xe3a6,
807 0xe3af,0xe3b8,0xe3c1,0xe3ca,0xe3d3,0xe3dc,0xe3e5,0xe3ee,
808 0xe3f7,0xe400,0xe408,0xe411,0xe41a,0xe423,0xe42c,0xe435,
809 0xe43e,0xe447,0xe450,0xe459,0xe462,0xe46b,0xe474,0xe47d,
810 0xe486,0xe48f,0xe498,0xe4a1,0xe4aa,0xe4b3,0xe4bc,0xe4c5,
811 0xe4ce,0xe4d7,0xe4e0,0xe4e9,0xe4f2,0xe4fa,0xe503,0xe50c,
812 0xe515,0xe51e,0xe527,0xe530,0xe539,0xe542,0xe54b,0xe554,
813 0xe55d,0xe566,0xe56f,0xe578,0xe580,0xe589,0xe592,0xe59b,
814 0xe5a4,0xe5ad,0xe5b6,0xe5bf,0xe5c8,0xe5d1,0xe5da,0xe5e3,
815 0xe5eb,0xe5f4,0xe5fd,0xe606,0xe60f,0xe618,0xe621,0xe62a,
816 0xe633,0xe63c,0xe644,0xe64d,0xe656,0xe65f,0xe668,0xe671,
817 0xe67a,0xe683,0xe68c,0xe694,0xe69d,0xe6a6,0xe6af,0xe6b8,
818 0xe6c1,0xe6ca,0xe6d3,0xe6db,0xe6e4,0xe6ed,0xe6f6,0xe6ff,
819 0xe708,0xe711,0xe71a,0xe722,0xe72b,0xe734,0xe73d,0xe746,
820 0xe74f,0xe758,0xe760,0xe769,0xe772,0xe77b,0xe784,0xe78d,
821 0xe795,0xe79e,0xe7a7,0xe7b0,0xe7b9,0xe7c2,0xe7cb,0xe7d3,
822 0xe7dc,0xe7e5,0xe7ee,0xe7f7,0xe800,0xe808,0xe811,0xe81a,
823 0xe823,0xe82c,0xe834,0xe83d,0xe846,0xe84f,0xe858,0xe861,
824 0xe869,0xe872,0xe87b,0xe884,0xe88d,0xe895,0xe89e,0xe8a7,
825 0xe8b0,0xe8b9,0xe8c1,0xe8ca,0xe8d3,0xe8dc,0xe8e5,0xe8ed,
826 0xe8f6,0xe8ff,0xe908,0xe911,0xe919,0xe922,0xe92b,0xe934,
827 0xe93c,0xe945,0xe94e,0xe957,0xe960,0xe968,0xe971,0xe97a,
828 0xe983,0xe98b,0xe994,0xe99d,0xe9a6,0xe9ae,0xe9b7,0xe9c0,
829 0xe9c9,0xe9d2,0xe9da,0xe9e3,0xe9ec,0xe9f5,0xe9fd,0xea06,
830 0xea0f,0xea18,0xea20,0xea29,0xea32,0xea3b,0xea43,0xea4c,
831 0xea55,0xea5e,0xea66,0xea6f,0xea78,0xea80,0xea89,0xea92,
832 0xea9b,0xeaa3,0xeaac,0xeab5,0xeabe,0xeac6,0xeacf,0xead8,
833 0xeae0,0xeae9,0xeaf2,0xeafb,0xeb03,0xeb0c,0xeb15,0xeb1d,
834 0xeb26,0xeb2f,0xeb38,0xeb40,0xeb49,0xeb52,0xeb5a,0xeb63,
835 0xeb6c,0xeb74,0xeb7d,0xeb86,0xeb8f,0xeb97,0xeba0,0xeba9,
836 0xebb1,0xebba,0xebc3,0xebcb,0xebd4,0xebdd,0xebe5,0xebee,
837 0xebf7,0xec00,0xec08,0xec11,0xec1a,0xec22,0xec2b,0xec34,
838 0xec3c,0xec45,0xec4e,0xec56,0xec5f,0xec68,0xec70,0xec79,
839 0xec82,0xec8a,0xec93,0xec9c,0xeca4,0xecad,0xecb5,0xecbe,
840 0xecc7,0xeccf,0xecd8,0xece1,0xece9,0xecf2,0xecfb,0xed03,
841 0xed0c,0xed15,0xed1d,0xed26,0xed2e,0xed37,0xed40,0xed48,
842 0xed51,0xed5a,0xed62,0xed6b,0xed74,0xed7c,0xed85,0xed8d,
843 0xed96,0xed9f,0xeda7,0xedb0,0xedb8,0xedc1,0xedca,0xedd2,
844 0xeddb,0xede4,0xedec,0xedf5,0xedfd,0xee06,0xee0f,0xee17,
845 0xee20,0xee28,0xee31,0xee3a,0xee42,0xee4b,0xee53,0xee5c,
846 0xee65,0xee6d,0xee76,0xee7e,0xee87,0xee8f,0xee98,0xeea1,
847 0xeea9,0xeeb2,0xeeba,0xeec3,0xeecc,0xeed4,0xeedd,0xeee5,
848 0xeeee,0xeef6,0xeeff,0xef08,0xef10,0xef19,0xef21,0xef2a,
849 0xef32,0xef3b,0xef43,0xef4c,0xef55,0xef5d,0xef66,0xef6e,
850 0xef77,0xef7f,0xef88,0xef90,0xef99,0xefa2,0xefaa,0xefb3,
851 0xefbb,0xefc4,0xefcc,0xefd5,0xefdd,0xefe6,0xefee,0xeff7,
852 0xf000,0xf008,0xf011,0xf019,0xf022,0xf02a,0xf033,0xf03b,
853 0xf044,0xf04c,0xf055,0xf05d,0xf066,0xf06e,0xf077,0xf07f,
854 0xf088,0xf090,0xf099,0xf0a1,0xf0aa,0xf0b2,0xf0bb,0xf0c3,
855 0xf0cc,0xf0d4,0xf0dd,0xf0e5,0xf0ee,0xf0f6,0xf0ff,0xf107,
856 0xf110,0xf118,0xf121,0xf129,0xf132,0xf13a,0xf143,0xf14b,
857 0xf154,0xf15c,0xf165,0xf16d,0xf176,0xf17e,0xf187,0xf18f,
858 0xf198,0xf1a0,0xf1a9,0xf1b1,0xf1ba,0xf1c2,0xf1cb,0xf1d3,
859 0xf1dc,0xf1e4,0xf1ec,0xf1f5,0xf1fd,0xf206,0xf20e,0xf217,
860 0xf21f,0xf228,0xf230,0xf239,0xf241,0xf24a,0xf252,0xf25a,
861 0xf263,0xf26b,0xf274,0xf27c,0xf285,0xf28d,0xf296,0xf29e,
862 0xf2a6,0xf2af,0xf2b7,0xf2c0,0xf2c8,0xf2d1,0xf2d9,0xf2e1,
863 0xf2ea,0xf2f2,0xf2fb,0xf303,0xf30c,0xf314,0xf31c,0xf325,
864 0xf32d,0xf336,0xf33e,0xf347,0xf34f,0xf357,0xf360,0xf368,
865 0xf371,0xf379,0xf381,0xf38a,0xf392,0xf39b,0xf3a3,0xf3ac,
866 0xf3b4,0xf3bc,0xf3c5,0xf3cd,0xf3d6,0xf3de,0xf3e6,0xf3ef,
867 0xf3f7,0xf400,0xf408,0xf410,0xf419,0xf421,0xf429,0xf432,
868 0xf43a,0xf443,0xf44b,0xf453,0xf45c,0xf464,0xf46d,0xf475,
869 0xf47d,0xf486,0xf48e,0xf496,0xf49f,0xf4a7,0xf4b0,0xf4b8,
870 0xf4c0,0xf4c9,0xf4d1,0xf4d9,0xf4e2,0xf4ea,0xf4f2,0xf4fb,
871 0xf503,0xf50c,0xf514,0xf51c,0xf525,0xf52d,0xf535,0xf53e,
872 0xf546,0xf54e,0xf557,0xf55f,0xf567,0xf570,0xf578,0xf580,
873 0xf589,0xf591,0xf599,0xf5a2,0xf5aa,0xf5b2,0xf5bb,0xf5c3,
874 0xf5cb,0xf5d4,0xf5dc,0xf5e4,0xf5ed,0xf5f5,0xf5fd,0xf606,
875 0xf60e,0xf616,0xf61f,0xf627,0xf62f,0xf638,0xf640,0xf648,
876 0xf651,0xf659,0xf661,0xf66a,0xf672,0xf67a,0xf682,0xf68b,
877 0xf693,0xf69b,0xf6a4,0xf6ac,0xf6b4,0xf6bd,0xf6c5,0xf6cd,
878 0xf6d6,0xf6de,0xf6e6,0xf6ee,0xf6f7,0xf6ff,0xf707,0xf710,
879 0xf718,0xf720,0xf728,0xf731,0xf739,0xf741,0xf74a,0xf752,
880 0xf75a,0xf762,0xf76b,0xf773,0xf77b,0xf784,0xf78c,0xf794,
881 0xf79c,0xf7a5,0xf7ad,0xf7b5,0xf7bd,0xf7c6,0xf7ce,0xf7d6,
882 0xf7de,0xf7e7,0xf7ef,0xf7f7,0xf800,0xf808,0xf810,0xf818,
883 0xf821,0xf829,0xf831,0xf839,0xf842,0xf84a,0xf852,0xf85a,
884 0xf863,0xf86b,0xf873,0xf87b,0xf883,0xf88c,0xf894,0xf89c,
885 0xf8a4,0xf8ad,0xf8b5,0xf8bd,0xf8c5,0xf8ce,0xf8d6,0xf8de,
886 0xf8e6,0xf8ef,0xf8f7,0xf8ff,0xf907,0xf90f,0xf918,0xf920,
887 0xf928,0xf930,0xf939,0xf941,0xf949,0xf951,0xf959,0xf962,
888 0xf96a,0xf972,0xf97a,0xf982,0xf98b,0xf993,0xf99b,0xf9a3,
889 0xf9ab,0xf9b4,0xf9bc,0xf9c4,0xf9cc,0xf9d4,0xf9dd,0xf9e5,
890 0xf9ed,0xf9f5,0xf9fd,0xfa06,0xfa0e,0xfa16,0xfa1e,0xfa26,
891 0xfa2f,0xfa37,0xfa3f,0xfa47,0xfa4f,0xfa58,0xfa60,0xfa68,
892 0xfa70,0xfa78,0xfa80,0xfa89,0xfa91,0xfa99,0xfaa1,0xfaa9,
893 0xfab1,0xfaba,0xfac2,0xfaca,0xfad2,0xfada,0xfae2,0xfaeb,
894 0xfaf3,0xfafb,0xfb03,0xfb0b,0xfb13,0xfb1c,0xfb24,0xfb2c,
895 0xfb34,0xfb3c,0xfb44,0xfb4c,0xfb55,0xfb5d,0xfb65,0xfb6d,
896 0xfb75,0xfb7d,0xfb85,0xfb8e,0xfb96,0xfb9e,0xfba6,0xfbae,
897 0xfbb6,0xfbbe,0xfbc7,0xfbcf,0xfbd7,0xfbdf,0xfbe7,0xfbef,
898 0xfbf7,0xfc00,0xfc08,0xfc10,0xfc18,0xfc20,0xfc28,0xfc30,
899 0xfc38,0xfc40,0xfc49,0xfc51,0xfc59,0xfc61,0xfc69,0xfc71,
900 0xfc79,0xfc81,0xfc8a,0xfc92,0xfc9a,0xfca2,0xfcaa,0xfcb2,
901 0xfcba,0xfcc2,0xfcca,0xfcd2,0xfcdb,0xfce3,0xfceb,0xfcf3,
902 0xfcfb,0xfd03,0xfd0b,0xfd13,0xfd1b,0xfd23,0xfd2c,0xfd34,
903 0xfd3c,0xfd44,0xfd4c,0xfd54,0xfd5c,0xfd64,0xfd6c,0xfd74,
904 0xfd7c,0xfd84,0xfd8d,0xfd95,0xfd9d,0xfda5,0xfdad,0xfdb5,
905 0xfdbd,0xfdc5,0xfdcd,0xfdd5,0xfddd,0xfde5,0xfded,0xfdf5,
906 0xfdfd,0xfe06,0xfe0e,0xfe16,0xfe1e,0xfe26,0xfe2e,0xfe36,
907 0xfe3e,0xfe46,0xfe4e,0xfe56,0xfe5e,0xfe66,0xfe6e,0xfe76,
908 0xfe7e,0xfe86,0xfe8e,0xfe97,0xfe9f,0xfea7,0xfeaf,0xfeb7,
909 0xfebf,0xfec7,0xfecf,0xfed7,0xfedf,0xfee7,0xfeef,0xfef7,
910 0xfeff,0xff07,0xff0f,0xff17,0xff1f,0xff27,0xff2f,0xff37,
911 0xff3f,0xff47,0xff4f,0xff57,0xff5f,0xff67,0xff6f,0xff77,
912 0xff7f,0xff87,0xff8f,0xff97,0xff9f,0xffa7,0xffaf,0xffb7,
913 0xffbf,0xffc7,0xffcf,0xffd7,0xffdf,0xffe7,0xffef,0xfff7
914 ];
915
916 const RA144_CODEBOOK1: [u16; 128] = [
917 19657, 18474, 18365, 17520, 21048, 18231, 18584, 16671,
918 20363, 19069, 19409, 18430, 21844, 18753, 19613, 17411,
919 20389, 21772, 20129, 21702, 20978, 20472, 19627, 19387,
920 21477, 23134, 21841, 23919, 22089, 21519, 21134, 20852,
921 19675, 17821, 19044, 17477, 19986, 16955, 18446, 16086,
922 21138, 18899, 20952, 18929, 21452, 17833, 20104, 17159,
923 19770, 20056, 20336, 20866, 19329, 18217, 18908, 18004,
924 21556, 21948, 23079, 23889, 20922, 19544, 20984, 19781,
925 19781, 20984, 19544, 20922, 23889, 23079, 21948, 21556,
926 18004, 18908, 18217, 19329, 20866, 20336, 20056, 19770,
927 17159, 20104, 17833, 21452, 18929, 20952, 18899, 21138,
928 16086, 18446, 16955, 19986, 17477, 19044, 17821, 19675,
929 20852, 21134, 21519, 22089, 23919, 21841, 23134, 21477,
930 19387, 19627, 20472, 20978, 21702, 20129, 21772, 20389,
931 17411, 19613, 18753, 21844, 18430, 19409, 19069, 20363,
932 16671, 18584, 18231, 21048, 17520, 18365, 18474, 19657,
933 ];
934 const RA144_VECTORS1: [[i8; BLOCKSIZE]; 128] = [
935 [
936 38, -4, 15, -4, 14, -13, 12, -11, -2, -6,
937 -6, -11, -45, -16, -11, -13, -7, 6, -12, 4,
938 -20, 3, -16, 12, -1, 12, 46, 24, 0, 33,
939 -3, 9, -12, -12, -8, -7, 17, -6, 0, -2,
940 ], [
941 60, -16, 3, -22, 10, -32, 0, -28, -17, -18,
942 -3, -25, -37, -23, -10, 3, 2, 3, 0, 3,
943 -14, 0, -14, -1, 0, 2, 32, 9, -1, 25,
944 7, 13, -5, 13, 8, 1, 2, 8, -10, 6,
945 ], [
946 27, -12, 28, -2, 6, -7, 15, 9, -11, 1,
947 -13, -11, -40, 4, -29, -14, -19, -5, -23, -8,
948 -30, -13, -17, 0, -14, 12, 34, 20, -2, 25,
949 2, -16, -4, -12, 15, 16, 29, 7, 24, 10,
950 ], [
951 49, -24, 16, -20, 2, -26, 2, -7, -25, -10,
952 -11, -25, -32, -3, -27, 2, -8, -8, -11, -9,
953 -24, -17, -16, -14, -13, 2, 20, 5, -4, 17,
954 14, -12, 3, 13, 33, 25, 14, 23, 15, 19,
955 ], [
956 46, -6, 21, 8, -2, -16, -5, -8, -11, 4,
957 8, 15, -24, 4, -2, -26, -3, -16, -16, -14,
958 -9, -2, -1, 4, 19, 7, 36, 17, 9, 13,
959 0, 31, -5, -12, 7, -8, 11, -15, -13, -4,
960 ], [
961 68, -18, 9, -9, -6, -35, -18, -25, -26, -7,
962 10, 1, -16, -3, -1, -9, 6, -19, -4, -15,
963 -4, -6, 0, -8, 20, -2, 23, 2, 7, 5,
964 12, 35, 1, 13, 24, 0, -3, 0, -22, 4,
965 ], [
966 35, -14, 34, 10, -10, -10, -1, 12, -20, 12,
967 0, 15, -18, 24, -20, -27, -14, -28, -27, -27,
968 -20, -19, -2, -8, 5, 7, 25, 13, 5, 5,
969 6, 5, 2, -12, 31, 15, 23, -1, 12, 8,
970 ], [
971 57, -26, 22, -7, -14, -28, -14, -3, -35, 0,
972 3, 1, -11, 16, -18, -10, -4, -31, -15, -28,
973 -14, -23, -1, -21, 7, -2, 11, -1, 3, -1,
974 18, 9, 10, 13, 49, 24, 8, 14, 2, 16,
975 ], [
976 25, 15, 22, 11, 18, 4, 15, -22, 8, -2,
977 -17, -9, -48, -20, -30, -17, -16, 11, -1, 16,
978 2, 10, -5, 26, -2, -4, 22, 0, 2, 10,
979 -6, 13, -14, 10, -23, 0, 10, -2, 1, 0,
980 ], [
981 47, 3, 11, -6, 15, -13, 2, -38, -6, -13,
982 -15, -22, -40, -28, -28, 0, -5, 8, 10, 15,
983 7, 7, -4, 13, -1, -14, 9, -14, 0, 2,
984 4, 18, -7, 36, -6, 8, -3, 13, -7, 8,
985 ], [
986 14, 7, 36, 13, 10, 10, 18, 0, 0, 5,
987 -25, -8, -43, 0, -48, -18, -27, 0, -12, 3,
988 -7, -6, -7, 13, -15, -5, 11, -3, 0, 2,
989 0, -12, -6, 10, 0, 23, 22, 11, 26, 12,
990 ], [
991 36, -5, 24, -4, 7, -7, 6, -17, -14, -5,
992 -22, -22, -35, -8, -46, -1, -17, -3, 0, 2,
993 -2, -10, -5, 0, -14, -15, -2, -18, -2, -4,
994 11, -7, 1, 36, 18, 32, 7, 27, 17, 20,
995 ], [
996 33, 13, 29, 24, 1, 1, -2, -18, 0, 9,
997 -3, 17, -27, 0, -21, -30, -12, -11, -5, -2,
998 12, 4, 9, 19, 18, -9, 13, -6, 11, -8,
999 -2, 35, -8, 10, -7, -1, 4, -11, -10, -2,
1000 ], [
1001 55, 1, 17, 6, -1, -16, -15, -35, -15, -2,
1002 0, 4, -19, -8, -20, -13, -1, -14, 7, -3,
1003 18, 0, 10, 5, 19, -19, 0, -21, 8, -16,
1004 9, 39, 0, 36, 10, 7, -9, 4, -20, 5,
1005 ], [
1006 22, 5, 42, 26, -6, 8, 1, 2, -9, 17,
1007 -10, 18, -21, 19, -39, -31, -23, -23, -16, -15,
1008 2, -12, 7, 6, 5, -9, 1, -10, 7, -16,
1009 4, 9, 0, 10, 17, 22, 16, 2, 14, 9,
1010 ], [
1011 44, -6, 30, 8, -9, -10, -11, -14, -23, 5,
1012 -8, 4, -14, 12, -37, -14, -12, -26, -4, -16,
1013 8, -16, 9, -7, 6, -19, -12, -25, 5, -24,
1014 15, 13, 8, 36, 34, 31, 1, 18, 4, 18,
1015 ], [
1016 -3, -5, -9, -7, 15, -1, 5, 13, 2, 12,
1017 5, 2, -21, -23, -2, -16, 0, 5, -6, 13,
1018 -23, 3, -32, 10, -15, 8, 44, 28, 9, 37,
1019 -2, 13, -9, -15, -12, -27, -7, -12, 0, -11,
1020 ], [
1021 18, -17, -21, -25, 11, -19, -6, -3, -11, 0,
1022 7, -11, -13, -31, -1, 0, 9, 1, 5, 12,
1023 -18, 0, -31, -2, -13, -1, 30, 14, 7, 29,
1024 9, 18, -1, 10, 4, -18, -22, 3, -10, -2,
1025 ], [
1026 -13, -13, 3, -5, 7, 4, 9, 34, -5, 20,
1027 -2, 3, -16, -3, -20, -17, -11, -7, -17, 0,
1028 -34, -13, -33, -2, -28, 8, 32, 24, 5, 29,
1029 3, -12, 0, -15, 11, -3, 3, 2, 24, 1,
1030 ], [
1031 8, -25, -8, -23, 3, -13, -3, 17, -20, 8,
1032 0, -10, -8, -11, -18, 0, -1, -10, -5, 0,
1033 -28, -17, -32, -15, -26, -1, 19, 9, 3, 21,
1034 15, -7, 6, 9, 29, 5, -10, 17, 15, 9,
1035 ], [
1036 4, -6, -3, 5, -1, -4, -11, 16, -6, 23,
1037 19, 29, 0, -3, 6, -30, 3, -17, -10, -5,
1038 -13, -2, -17, 3, 5, 3, 35, 21, 17, 17,
1039 2, 35, -2, -15, 3, -28, -13, -21, -13, -13,
1040 ], [
1041 26, -19, -15, -12, -5, -22, -24, 0, -21, 12,
1042 21, 15, 8, -11, 7, -12, 14, -20, 2, -6,
1043 -7, -6, -16, -9, 6, -5, 21, 7, 15, 10,
1044 13, 39, 5, 10, 20, -19, -28, -5, -22, -5,
1045 ], [
1046 -5, -15, 9, 7, -9, 2, -8, 37, -14, 31,
1047 11, 29, 5, 16, -11, -30, -7, -29, -21, -18,
1048 -23, -19, -18, -9, -7, 3, 23, 17, 14, 9,
1049 8, 9, 6, -15, 27, -4, -2, -6, 12, -1,
1050 ], [
1051 16, -27, -2, -10, -13, -16, -20, 20, -29, 20,
1052 14, 16, 13, 8, -9, -13, 2, -33, -9, -19,
1053 -17, -23, -17, -22, -6, -6, 9, 2, 12, 2,
1054 20, 13, 13, 10, 45, 4, -16, 8, 2, 7,
1055 ], [
1056 -16, 14, -2, 8, 20, 17, 9, 2, 14, 16,
1057 -6, 5, -24, -28, -21, -20, -8, 9, 4, 25,
1058 -1, 11, -22, 24, -15, -8, 21, 5, 11, 14,
1059 -5, 18, -11, 7, -27, -20, -14, -7, 1, -9,
1060 ], [
1061 6, 2, -14, -9, 16, -1, -3, -14, 0, 5,
1062 -3, -8, -16, -36, -19, -3, 1, 6, 17, 24,
1063 4, 7, -21, 11, -14, -18, 7, -9, 9, 7,
1064 6, 22, -3, 33, -10, -11, -28, 7, -7, 0,
1065 ], [
1066 -26, 6, 11, 10, 12, 23, 12, 23, 5, 24,
1067 -13, 5, -19, -8, -38, -21, -20, -2, -6, 12,
1068 -11, -5, -23, 11, -29, -9, 9, 0, 7, 6,
1069 1, -7, -2, 7, -3, 3, -2, 6, 27, 3,
1070 ], [
1071 -4, -6, 0, -7, 8, 4, 0, 6, -9, 13,
1072 -11, -7, -11, -15, -37, -4, -9, -5, 5, 11,
1073 -5, -9, -22, -1, -27, -18, -4, -14, 5, 0,
1074 12, -3, 4, 32, 14, 12, -17, 22, 17, 11,
1075 ], [
1076 -8, 12, 3, 21, 3, 14, -8, 5, 4, 28,
1077 7, 32, -2, -8, -12, -34, -4, -12, 1, 6,
1078 9, 4, -7, 17, 4, -13, 11, -1, 19, -4,
1079 0, 39, -4, 7, -11, -21, -20, -16, -10, -11,
1080 ], [
1081 13, 0, -8, 3, 0, -4, -21, -11, -9, 16,
1082 10, 18, 5, -16, -10, -16, 5, -15, 13, 5,
1083 15, 1, -6, 4, 6, -23, -2, -16, 17, -12,
1084 10, 44, 3, 33, 6, -12, -34, -1, -20, -3,
1085 ], [
1086 -18, 4, 17, 23, -4, 20, -4, 26, -3, 36,
1087 0, 32, 2, 12, -29, -34, -16, -24, -10, -6,
1088 0, -12, -8, 4, -8, -13, 0, -6, 16, -12,
1089 5, 13, 3, 7, 13, 3, -8, -2, 14, 0,
1090 ], [
1091 3, -7, 5, 5, -8, 2, -17, 9, -18, 24,
1092 2, 19, 10, 4, -28, -17, -5, -28, 2, -7,
1093 4, -15, -7, -8, -6, -23, -13, -21, 14, -20,
1094 17, 18, 11, 33, 30, 11, -23, 13, 5, 9,
1095 ], [
1096 60, 10, 7, -1, 9, -8, 6, -13, 2, -15,
1097 -1, -10, -13, -11, 15, 0, 6, 9, -1, 0,
1098 -13, 1, -11, -3, -13, 21, 13, 26, -7, 31,
1099 -10, -7, -16, -33, -31, -10, 22, -8, 1, -2,
1100 ], [
1101 82, -1, -4, -19, 6, -27, -6, -29, -12, -26,
1102 1, -24, -5, -18, 17, 17, 17, 6, 10, 0,
1103 -7, -2, -9, -16, -12, 11, 0, 11, -9, 23,
1104 0, -3, -8, -8, -13, -1, 8, 7, -7, 6,
1105 ], [
1106 49, 2, 21, 0, 1, -2, 9, 8, -6, -6,
1107 -8, -10, -8, 9, -2, 0, -4, -2, -13, -12,
1108 -23, -15, -12, -16, -26, 21, 2, 21, -11, 23,
1109 -4, -33, -7, -33, -6, 13, 34, 5, 27, 10,
1110 ], [
1111 71, -10, 9, -17, -1, -20, -3, -8, -21, -18,
1112 -6, -24, 0, 1, 0, 16, 6, -5, 0, -13,
1113 -17, -19, -11, -29, -25, 11, -11, 6, -13, 15,
1114 7, -29, 0, -8, 11, 22, 20, 21, 17, 18,
1115 ], [
1116 67, 8, 14, 11, -7, -11, -11, -9, -7, -3,
1117 13, 16, 8, 9, 24, -12, 10, -13, -5, -17,
1118 -2, -4, 3, -10, 6, 17, 4, 19, 0, 11,
1119 -6, 13, -9, -33, -14, -10, 16, -17, -10, -4,
1120 ], [
1121 90, -3, 2, -6, -10, -29, -24, -26, -21, -15,
1122 15, 2, 16, 1, 25, 4, 21, -16, 6, -18,
1123 3, -8, 5, -24, 8, 7, -9, 4, -1, 3,
1124 5, 18, -1, -7, 2, -1, 2, -1, -19, 3,
1125 ], [
1126 57, 0, 27, 13, -14, -5, -7, 11, -15, 4,
1127 5, 16, 13, 29, 6, -13, 0, -25, -16, -31,
1128 -12, -22, 2, -23, -6, 16, -7, 14, -2, 3,
1129 0, -12, 0, -33, 9, 13, 28, -3, 14, 7,
1130 ], [
1131 79, -11, 15, -4, -18, -23, -20, -5, -30, -7,
1132 7, 2, 21, 21, 8, 3, 10, -28, -4, -31,
1133 -6, -25, 3, -37, -4, 7, -20, 0, -4, -4,
1134 11, -7, 6, -8, 27, 22, 14, 12, 5, 16,
1135 ], [
1136 47, 30, 15, 14, 14, 9, 9, -23, 13, -10,
1137 -12, -7, -16, -15, -3, -3, -1, 14, 9, 12,
1138 9, 8, 0, 10, -14, 4, -9, 2, -5, 8,
1139 -13, -3, -18, -10, -45, -3, 16, -4, 4, 0,
1140 ], [
1141 69, 17, 3, -3, 10, -8, -3, -40, -1, -21,
1142 -10, -21, -8, -23, -1, 13, 8, 11, 21, 11,
1143 15, 4, 0, -2, -13, -5, -23, -12, -7, 0,
1144 -1, 0, -10, 14, -28, 5, 1, 11, -5, 7,
1145 ], [
1146 36, 21, 28, 16, 6, 16, 12, -2, 4, -2,
1147 -20, -7, -11, 4, -20, -4, -12, 2, -1, 0,
1148 0, -8, -2, -2, -27, 4, -21, -2, -9, 0,
1149 -6, -29, -9, -10, -21, 21, 28, 10, 29, 11,
1150 ], [
1151 58, 9, 16, -1, 2, -2, 0, -19, -10, -13,
1152 -17, -21, -3, -3, -19, 12, -2, 0, 10, -1,
1153 5, -12, 0, -15, -26, -5, -34, -16, -11, -7,
1154 4, -25, -2, 14, -3, 29, 13, 25, 20, 20,
1155 ], [
1156 55, 28, 21, 27, -2, 7, -8, -20, 4, 1,
1157 1, 18, 5, 4, 5, -16, 2, -8, 5, -5,
1158 19, 2, 14, 3, 6, 0, -18, -4, 2, -11,
1159 -8, 18, -11, -10, -29, -3, 10, -13, -8, -3,
1160 ], [
1161 77, 16, 9, 9, -6, -11, -21, -37, -10, -10,
1162 4, 5, 13, -3, 7, 0, 13, -11, 17, -6,
1163 25, -1, 15, -9, 7, -9, -32, -19, 0, -18,
1164 2, 22, -3, 15, -12, 5, -4, 2, -17, 5,
1165 ], [
1166 44, 20, 34, 29, -10, 13, -4, 0, -4, 9,
1167 -5, 19, 10, 24, -11, -17, -8, -20, -5, -19,
1168 9, -14, 12, -9, -6, 0, -30, -9, 0, -19,
1169 -2, -7, -2, -10, -5, 20, 21, 1, 17, 9,
1170 ], [
1171 66, 8, 23, 11, -14, -5, -17, -16, -19, -2,
1172 -3, 5, 18, 17, -10, 0, 1, -23, 6, -20,
1173 15, -18, 14, -22, -5, -10, -44, -23, -2, -26,
1174 9, -3, 4, 14, 12, 29, 7, 16, 7, 18,
1175 ], [
1176 18, 9, -17, -4, 11, 3, 0, 11, 7, 4,
1177 10, 3, 10, -18, 24, -3, 14, 7, 4, 10,
1178 -16, 1, -27, -4, -27, 17, 12, 30, 0, 35,
1179 -9, -3, -12, -36, -35, -30, -2, -13, 2, -11,
1180 ], [
1181 40, -2, -29, -22, 7, -14, -12, -5, -7, -7,
1182 12, -9, 18, -26, 26, 14, 24, 4, 16, 9,
1183 -10, -2, -26, -18, -26, 7, -1, 15, -1, 27,
1184 2, 0, -4, -11, -17, -21, -16, 1, -7, -3,
1185 ], [
1186 8, 1, -3, -2, 3, 10, 3, 32, -1, 12,
1187 2, 4, 15, 1, 7, -3, 2, -4, -6, -3,
1188 -26, -15, -29, -17, -40, 17, 0, 26, -2, 27,
1189 -2, -29, -4, -36, -10, -6, 9, 0, 27, 0,
1190 ], [
1191 30, -11, -15, -20, 0, -8, -9, 15, -15, 0,
1192 5, -9, 23, -6, 8, 13, 13, -7, 5, -3,
1193 -20, -19, -27, -31, -39, 7, -13, 11, -4, 19,
1194 8, -25, 3, -11, 7, 2, -4, 16, 18, 9,
1195 ], [
1196 26, 7, -11, 8, -5, 1, -17, 14, -1, 15,
1197 24, 30, 32, 1, 33, -16, 18, -14, 0, -8,
1198 -6, -4, -12, -12, -6, 13, 2, 23, 8, 15,
1199 -4, 17, -5, -36, -18, -30, -8, -22, -10, -14,
1200 ], [
1201 48, -4, -23, -9, -9, -17, -30, -2, -16, 3,
1202 26, 16, 40, -6, 35, 1, 28, -17, 12, -9,
1203 0, -8, -11, -25, -5, 3, -10, 8, 6, 7,
1204 6, 22, 1, -11, -1, -21, -22, -7, -19, -5,
1205 ], [
1206 15, 0, 2, 10, -13, 7, -14, 35, -10, 23,
1207 16, 31, 37, 21, 16, -17, 6, -26, -10, -21,
1208 -16, -21, -13, -25, -19, 13, -8, 19, 5, 7,
1209 1, -8, 2, -36, 5, -6, 3, -8, 15, -1,
1210 ], [
1211 37, -12, -9, -7, -17, -11, -26, 18, -25, 12,
1212 19, 17, 45, 14, 17, 0, 17, -30, 1, -22,
1213 -10, -25, -12, -38, -18, 3, -22, 4, 3, 0,
1214 13, -3, 10, -11, 23, 2, -10, 7, 5, 7,
1215 ], [
1216 5, 29, -9, 11, 15, 22, 3, 0, 18, 8,
1217 -1, 6, 7, -23, 6, -6, 5, 12, 15, 21,
1218 5, 8, -17, 9, -28, 0, -11, 6, 2, 12,
1219 -11, 0, -14, -13, -49, -22, -8, -9, 4, -9,
1220 ], [
1221 27, 16, -21, -6, 12, 3, -9, -16, 3, -2,
1222 1, -7, 15, -31, 7, 10, 16, 9, 27, 21,
1223 11, 5, -16, -3, -26, -9, -24, -7, 0, 4,
1224 0, 4, -6, 11, -32, -14, -23, 6, -5, -1,
1225 ], [
1226 -4, 20, 3, 13, 8, 28, 6, 21, 10, 16,
1227 -8, 7, 12, -3, -11, -7, -5, 0, 4, 8,
1228 -4, -8, -18, -3, -41, 0, -22, 2, 0, 4,
1229 -5, -25, -6, -14, -25, 1, 2, 4, 29, 2,
1230 ], [
1231 17, 8, -8, -4, 4, 10, -6, 5, -4, 5,
1232 -6, -6, 20, -10, -9, 9, 4, -2, 16, 7,
1233 1, -12, -17, -16, -39, -9, -36, -12, -2, -3,
1234 6, -21, 1, 11, -7, 10, -11, 20, 20, 11,
1235 ], [
1236 13, 27, -3, 24, -1, 19, -14, 3, 9, 20,
1237 12, 33, 29, -3, 15, -20, 9, -9, 11, 3,
1238 16, 2, -2, 2, -7, -3, -20, 0, 10, -7,
1239 -7, 22, -7, -13, -33, -23, -14, -18, -7, -12,
1240 ], [
1241 35, 15, -15, 6, -4, 1, -27, -12, -5, 8,
1242 15, 19, 37, -11, 16, -2, 20, -12, 23, 2,
1243 22, -1, -1, -11, -5, -13, -34, -14, 8, -14,
1244 4, 26, 0, 11, -16, -14, -29, -2, -17, -3,
1245 ], [
1246 3, 19, 9, 26, -8, 26, -10, 24, 0, 28,
1247 5, 33, 34, 17, -2, -20, -1, -22, 0, -10,
1248 6, -14, -3, -10, -20, -4, -32, -4, 7, -15,
1249 0, -3, 0, -13, -9, 0, -3, -4, 17, 0,
1250 ], [
1251 25, 7, -2, 8, -12, 7, -23, 8, -13, 16,
1252 7, 20, 42, 9, 0, -3, 9, -25, 12, -10,
1253 12, -18, -2, -24, -19, -13, -46, -19, 5, -22,
1254 10, 0, 8, 11, 8, 9, -17, 11, 7, 8,
1255 ], [
1256 -25, -7, 2, -8, 12, -7, 23, -8, 13, -16,
1257 -7, -20, -42, -9, 0, 3, -9, 25, -12, 10,
1258 -12, 18, 2, 24, 19, 13, 46, 19, -5, 22,
1259 -10, 0, -8, -11, -8, -9, 17, -11, -7, -8,
1260 ], [
1261 -3, -19, -9, -26, 8, -26, 10, -24, 0, -28,
1262 -5, -33, -34, -17, 2, 20, 1, 22, 0, 10,
1263 -6, 14, 3, 10, 20, 4, 32, 4, -7, 15,
1264 0, 3, 0, 13, 9, 0, 3, 4, -17, 0,
1265 ], [
1266 -35, -15, 15, -6, 4, -1, 27, 12, 5, -8,
1267 -15, -19, -37, 11, -16, 2, -20, 12, -23, -2,
1268 -22, 1, 1, 11, 5, 13, 34, 14, -8, 14,
1269 -4, -26, 0, -11, 16, 14, 29, 2, 17, 3,
1270 ], [
1271 -13, -27, 3, -24, 1, -19, 14, -3, -9, -20,
1272 -12, -33, -29, 3, -15, 20, -9, 9, -11, -3,
1273 -16, -2, 2, -2, 7, 3, 20, 0, -10, 7,
1274 7, -22, 7, 13, 33, 23, 14, 18, 7, 12,
1275 ], [
1276 -17, -8, 8, 4, -4, -10, 6, -5, 4, -5,
1277 6, 6, -20, 10, 9, -9, -4, 2, -16, -7,
1278 -1, 12, 17, 16, 39, 9, 36, 12, 2, 3,
1279 -6, 21, -1, -11, 7, -10, 11, -20, -20, -11,
1280 ], [
1281 4, -20, -3, -13, -8, -28, -6, -21, -10, -16,
1282 8, -7, -12, 3, 11, 7, 5, 0, -4, -8,
1283 4, 8, 18, 3, 41, 0, 22, -2, 0, -4,
1284 5, 25, 6, 14, 25, -1, -2, -4, -29, -2,
1285 ], [
1286 -27, -16, 21, 6, -12, -3, 9, 16, -3, 2,
1287 -1, 7, -15, 31, -7, -10, -16, -9, -27, -21,
1288 -11, -5, 16, 3, 26, 9, 24, 7, 0, -4,
1289 0, -4, 6, -11, 32, 14, 23, -6, 5, 1,
1290 ], [
1291 -5, -29, 9, -11, -15, -22, -3, 0, -18, -8,
1292 1, -6, -7, 23, -6, 6, -5, -12, -15, -21,
1293 -5, -8, 17, -9, 28, 0, 11, -6, -2, -12,
1294 11, 0, 14, 13, 49, 22, 8, 9, -4, 9,
1295 ], [
1296 -37, 12, 9, 7, 17, 11, 26, -18, 25, -12,
1297 -19, -17, -45, -14, -17, 0, -17, 30, -1, 22,
1298 10, 25, 12, 38, 18, -3, 22, -4, -3, 0,
1299 -13, 3, -10, 11, -23, -2, 10, -7, -5, -7,
1300 ], [
1301 -15, 0, -2, -10, 13, -7, 14, -35, 10, -23,
1302 -16, -31, -37, -21, -16, 17, -6, 26, 10, 21,
1303 16, 21, 13, 25, 19, -13, 8, -19, -5, -7,
1304 -1, 8, -2, 36, -5, 6, -3, 8, -15, 1,
1305 ], [
1306 -48, 4, 23, 9, 9, 17, 30, 2, 16, -3,
1307 -26, -16, -40, 6, -35, -1, -28, 17, -12, 9,
1308 0, 8, 11, 25, 5, -3, 10, -8, -6, -7,
1309 -6, -22, -1, 11, 1, 21, 22, 7, 19, 5,
1310 ], [
1311 -26, -7, 11, -8, 5, -1, 17, -14, 1, -15,
1312 -24, -30, -32, -1, -33, 16, -18, 14, 0, 8,
1313 6, 4, 12, 12, 6, -13, -2, -23, -8, -15,
1314 4, -17, 5, 36, 18, 30, 8, 22, 10, 14,
1315 ], [
1316 -30, 11, 15, 20, 0, 8, 9, -15, 15, 0,
1317 -5, 9, -23, 6, -8, -13, -13, 7, -5, 3,
1318 20, 19, 27, 31, 39, -7, 13, -11, 4, -19,
1319 -8, 25, -3, 11, -7, -2, 4, -16, -18, -9,
1320 ], [
1321 -8, -1, 3, 2, -3, -10, -3, -32, 1, -12,
1322 -2, -4, -15, -1, -7, 3, -2, 4, 6, 3,
1323 26, 15, 29, 17, 40, -17, 0, -26, 2, -27,
1324 2, 29, 4, 36, 10, 6, -9, 0, -27, 0,
1325 ], [
1326 -40, 2, 29, 22, -7, 14, 12, 5, 7, 7,
1327 -12, 9, -18, 26, -26, -14, -24, -4, -16, -9,
1328 10, 2, 26, 18, 26, -7, 1, -15, 1, -27,
1329 -2, 0, 4, 11, 17, 21, 16, -1, 7, 3,
1330 ], [
1331 -18, -9, 17, 4, -11, -3, 0, -11, -7, -4,
1332 -10, -3, -10, 18, -24, 3, -14, -7, -4, -10,
1333 16, -1, 27, 4, 27, -17, -12, -30, 0, -35,
1334 9, 3, 12, 36, 35, 30, 2, 13, -2, 11,
1335 ], [
1336 -66, -8, -23, -11, 14, 5, 17, 16, 19, 2,
1337 3, -5, -18, -17, 10, 0, -1, 23, -6, 20,
1338 -15, 18, -14, 22, 5, 10, 44, 23, 2, 26,
1339 -9, 3, -4, -14, -12, -29, -7, -16, -7, -18,
1340 ], [
1341 -44, -20, -34, -29, 10, -13, 4, 0, 4, -9,
1342 5, -19, -10, -24, 11, 17, 8, 20, 5, 19,
1343 -9, 14, -12, 9, 6, 0, 30, 9, 0, 19,
1344 2, 7, 2, 10, 5, -20, -21, -1, -17, -9,
1345 ], [
1346 -77, -16, -9, -9, 6, 11, 21, 37, 10, 10,
1347 -4, -5, -13, 3, -7, 0, -13, 11, -17, 6,
1348 -25, 1, -15, 9, -7, 9, 32, 19, 0, 18,
1349 -2, -22, 3, -15, 12, -5, 4, -2, 17, -5,
1350 ], [
1351 -55, -28, -21, -27, 2, -7, 8, 20, -4, -1,
1352 -1, -18, -5, -4, -5, 16, -2, 8, -5, 5,
1353 -19, -2, -14, -3, -6, 0, 18, 4, -2, 11,
1354 8, -18, 11, 10, 29, 3, -10, 13, 8, 3,
1355 ], [
1356 -58, -9, -16, 1, -2, 2, 0, 19, 10, 13,
1357 17, 21, 3, 3, 19, -12, 2, 0, -10, 1,
1358 -5, 12, 0, 15, 26, 5, 34, 16, 11, 7,
1359 -4, 25, 2, -14, 3, -29, -13, -25, -20, -20,
1360 ], [
1361 -36, -21, -28, -16, -6, -16, -12, 2, -4, 2,
1362 20, 7, 11, -4, 20, 4, 12, -2, 1, 0,
1363 0, 8, 2, 2, 27, -4, 21, 2, 9, 0,
1364 6, 29, 9, 10, 21, -21, -28, -10, -29, -11,
1365 ], [
1366 -69, -17, -3, 3, -10, 8, 3, 40, 1, 21,
1367 10, 21, 8, 23, 1, -13, -8, -11, -21, -11,
1368 -15, -4, 0, 2, 13, 5, 23, 12, 7, 0,
1369 1, 0, 10, -14, 28, -5, -1, -11, 5, -7,
1370 ], [
1371 -47, -30, -15, -14, -14, -9, -9, 23, -13, 10,
1372 12, 7, 16, 15, 3, 3, 1, -14, -9, -12,
1373 -9, -8, 0, -10, 14, -4, 9, -2, 5, -8,
1374 13, 3, 18, 10, 45, 3, -16, 4, -4, 0,
1375 ], [
1376 -79, 11, -15, 4, 18, 23, 20, 5, 30, 7,
1377 -7, -2, -21, -21, -8, -3, -10, 28, 4, 31,
1378 6, 25, -3, 37, 4, -7, 20, 0, 4, 4,
1379 -11, 7, -6, 8, -27, -22, -14, -12, -5, -16,
1380 ], [
1381 -57, 0, -27, -13, 14, 5, 7, -11, 15, -4,
1382 -5, -16, -13, -29, -6, 13, 0, 25, 16, 31,
1383 12, 22, -2, 23, 6, -16, 7, -14, 2, -3,
1384 0, 12, 0, 33, -9, -13, -28, 3, -14, -7,
1385 ], [
1386 -90, 3, -2, 6, 10, 29, 24, 26, 21, 15,
1387 -15, -2, -16, -1, -25, -4, -21, 16, -6, 18,
1388 -3, 8, -5, 24, -8, -7, 9, -4, 1, -3,
1389 -5, -18, 1, 7, -2, 1, -2, 1, 19, -3,
1390 ], [
1391 -67, -8, -14, -11, 7, 11, 11, 9, 7, 3,
1392 -13, -16, -8, -9, -24, 12, -10, 13, 5, 17,
1393 2, 4, -3, 10, -6, -17, -4, -19, 0, -11,
1394 6, -13, 9, 33, 14, 10, -16, 17, 10, 4,
1395 ], [
1396 -71, 10, -9, 17, 1, 20, 3, 8, 21, 18,
1397 6, 24, 0, -1, 0, -16, -6, 5, 0, 13,
1398 17, 19, 11, 29, 25, -11, 11, -6, 13, -15,
1399 -7, 29, 0, 8, -11, -22, -20, -21, -17, -18,
1400 ], [
1401 -49, -2, -21, 0, -1, 2, -9, -8, 6, 6,
1402 8, 10, 8, -9, 2, 0, 4, 2, 13, 12,
1403 23, 15, 12, 16, 26, -21, -2, -21, 11, -23,
1404 4, 33, 7, 33, 6, -13, -34, -5, -27, -10,
1405 ], [
1406 -82, 1, 4, 19, -6, 27, 6, 29, 12, 26,
1407 -1, 24, 5, 18, -17, -17, -17, -6, -10, 0,
1408 7, 2, 9, 16, 12, -11, 0, -11, 9, -23,
1409 0, 3, 8, 8, 13, 1, -8, -7, 7, -6,
1410 ], [
1411 -60, -10, -7, 1, -9, 8, -6, 13, -2, 15,
1412 1, 10, 13, 11, -15, 0, -6, -9, 1, 0,
1413 13, -1, 11, 3, 13, -21, -13, -26, 7, -31,
1414 10, 7, 16, 33, 31, 10, -22, 8, -1, 2,
1415 ], [
1416 -3, 7, -5, -5, 8, -2, 17, -9, 18, -24,
1417 -2, -19, -10, -4, 28, 17, 5, 28, -2, 7,
1418 -4, 15, 7, 8, 6, 23, 13, 21, -14, 20,
1419 -17, -18, -11, -33, -30, -11, 23, -13, -5, -9,
1420 ], [
1421 18, -4, -17, -23, 4, -20, 4, -26, 3, -36,
1422 0, -32, -2, -12, 29, 34, 16, 24, 10, 6,
1423 0, 12, 8, -4, 8, 13, 0, 6, -16, 12,
1424 -5, -13, -3, -7, -13, -3, 8, 2, -14, 0,
1425 ], [
1426 -13, 0, 8, -3, 0, 4, 21, 11, 9, -16,
1427 -10, -18, -5, 16, 10, 16, -5, 15, -13, -5,
1428 -15, -1, 6, -4, -6, 23, 2, 16, -17, 12,
1429 -10, -44, -3, -33, -6, 12, 34, 1, 20, 3,
1430 ], [
1431 8, -12, -3, -21, -3, -14, 8, -5, -4, -28,
1432 -7, -32, 2, 8, 12, 34, 4, 12, -1, -6,
1433 -9, -4, 7, -17, -4, 13, -11, 1, -19, 4,
1434 0, -39, 4, -7, 11, 21, 20, 16, 10, 11,
1435 ], [
1436 4, 6, 0, 7, -8, -4, 0, -6, 9, -13,
1437 11, 7, 11, 15, 37, 4, 9, 5, -5, -11,
1438 5, 9, 22, 1, 27, 18, 4, 14, -5, 0,
1439 -12, 3, -4, -32, -14, -12, 17, -22, -17, -11,
1440 ], [
1441 26, -6, -11, -10, -12, -23, -12, -23, -5, -24,
1442 13, -5, 19, 8, 38, 21, 20, 2, 6, -12,
1443 11, 5, 23, -11, 29, 9, -9, 0, -7, -6,
1444 -1, 7, 2, -7, 3, -3, 2, -6, -27, -3,
1445 ], [
1446 -6, -2, 14, 9, -16, 1, 3, 14, 0, -5,
1447 3, 8, 16, 36, 19, 3, -1, -6, -17, -24,
1448 -4, -7, 21, -11, 14, 18, -7, 9, -9, -7,
1449 -6, -22, 3, -33, 10, 11, 28, -7, 7, 0,
1450 ], [
1451 16, -14, 2, -8, -20, -17, -9, -2, -14, -16,
1452 6, -5, 24, 28, 21, 20, 8, -9, -4, -25,
1453 1, -11, 22, -24, 15, 8, -21, -5, -11, -14,
1454 5, -18, 11, -7, 27, 20, 14, 7, -1, 9,
1455 ], [
1456 -16, 27, 2, 10, 13, 16, 20, -20, 29, -20,
1457 -14, -16, -13, -8, 9, 13, -2, 33, 9, 19,
1458 17, 23, 17, 22, 6, 6, -9, -2, -12, -2,
1459 -20, -13, -13, -10, -45, -4, 16, -8, -2, -7,
1460 ], [
1461 5, 15, -9, -7, 9, -2, 8, -37, 14, -31,
1462 -11, -29, -5, -16, 11, 30, 7, 29, 21, 18,
1463 23, 19, 18, 9, 7, -3, -23, -17, -14, -9,
1464 -8, -9, -6, 15, -27, 4, 2, 6, -12, 1,
1465 ], [
1466 -26, 19, 15, 12, 5, 22, 24, 0, 21, -12,
1467 -21, -15, -8, 11, -7, 12, -14, 20, -2, 6,
1468 7, 6, 16, 9, -6, 5, -21, -7, -15, -10,
1469 -13, -39, -5, -10, -20, 19, 28, 5, 22, 5,
1470 ], [
1471 -4, 6, 3, -5, 1, 4, 11, -16, 6, -23,
1472 -19, -29, 0, 3, -6, 30, -3, 17, 10, 5,
1473 13, 2, 17, -3, -5, -3, -35, -21, -17, -17,
1474 -2, -35, 2, 15, -3, 28, 13, 21, 13, 13,
1475 ], [
1476 -8, 25, 8, 23, -3, 13, 3, -17, 20, -8,
1477 0, 10, 8, 11, 18, 0, 1, 10, 5, 0,
1478 28, 17, 32, 15, 26, 1, -19, -9, -3, -21,
1479 -15, 7, -6, -9, -29, -5, 10, -17, -15, -9,
1480 ], [
1481 13, 13, -3, 5, -7, -4, -9, -34, 5, -20,
1482 2, -3, 16, 3, 20, 17, 11, 7, 17, 0,
1483 34, 13, 33, 2, 28, -8, -32, -24, -5, -29,
1484 -3, 12, 0, 15, -11, 3, -3, -2, -24, -1,
1485 ], [
1486 -18, 17, 21, 25, -11, 19, 6, 3, 11, 0,
1487 -7, 11, 13, 31, 1, 0, -9, -1, -5, -12,
1488 18, 0, 31, 2, 13, 1, -30, -14, -7, -29,
1489 -9, -18, 1, -10, -4, 18, 22, -3, 10, 2,
1490 ], [
1491 3, 5, 9, 7, -15, 1, -5, -13, -2, -12,
1492 -5, -2, 21, 23, 2, 16, 0, -5, 6, -13,
1493 23, -3, 32, -10, 15, -8, -44, -28, -9, -37,
1494 2, -13, 9, 15, 12, 27, 7, 12, 0, 11,
1495 ], [
1496 -44, 6, -30, -8, 9, 10, 11, 14, 23, -5,
1497 8, -4, 14, -12, 37, 14, 12, 26, 4, 16,
1498 -8, 16, -9, 7, -6, 19, 12, 25, -5, 24,
1499 -15, -13, -8, -36, -34, -31, -1, -18, -4, -18,
1500 ], [
1501 -22, -5, -42, -26, 6, -8, -1, -2, 9, -17,
1502 10, -18, 21, -19, 39, 31, 23, 23, 16, 15,
1503 -2, 12, -7, -6, -5, 9, -1, 10, -7, 16,
1504 -4, -9, 0, -10, -17, -22, -16, -2, -14, -9,
1505 ], [
1506 -55, -1, -17, -6, 1, 16, 15, 35, 15, 2,
1507 0, -4, 19, 8, 20, 13, 1, 14, -7, 3,
1508 -18, 0, -10, -5, -19, 19, 0, 21, -8, 16,
1509 -9, -39, 0, -36, -10, -7, 9, -4, 20, -5,
1510 ], [
1511 -33, -13, -29, -24, -1, -1, 2, 18, 0, -9,
1512 3, -17, 27, 0, 21, 30, 12, 11, 5, 2,
1513 -12, -4, -9, -19, -18, 9, -13, 6, -11, 8,
1514 2, -35, 8, -10, 7, 1, -4, 11, 10, 2,
1515 ], [
1516 -36, 5, -24, 4, -7, 7, -6, 17, 14, 5,
1517 22, 22, 35, 8, 46, 1, 17, 3, 0, -2,
1518 2, 10, 5, 0, 14, 15, 2, 18, 2, 4,
1519 -11, 7, -1, -36, -18, -32, -7, -27, -17, -20,
1520 ], [
1521 -14, -7, -36, -13, -10, -10, -18, 0, 0, -5,
1522 25, 8, 43, 0, 48, 18, 27, 0, 12, -3,
1523 7, 6, 7, -13, 15, 5, -11, 3, 0, -2,
1524 0, 12, 6, -10, 0, -23, -22, -11, -26, -12,
1525 ], [
1526 -47, -3, -11, 6, -15, 13, -2, 38, 6, 13,
1527 15, 22, 40, 28, 28, 0, 5, -8, -10, -15,
1528 -7, -7, 4, -13, 1, 14, -9, 14, 0, -2,
1529 -4, -18, 7, -36, 6, -8, 3, -13, 7, -8,
1530 ], [
1531 -25, -15, -22, -11, -18, -4, -15, 22, -8, 2,
1532 17, 9, 48, 20, 30, 17, 16, -11, 1, -16,
1533 -2, -10, 5, -26, 2, 4, -22, 0, -2, -10,
1534 6, -13, 14, -10, 23, 0, -10, 2, -1, 0,
1535 ], [
1536 -57, 26, -22, 7, 14, 28, 14, 3, 35, 0,
1537 -3, -1, 11, -16, 18, 10, 4, 31, 15, 28,
1538 14, 23, 1, 21, -7, 2, -11, 1, -3, 1,
1539 -18, -9, -10, -13, -49, -24, -8, -14, -2, -16,
1540 ], [
1541 -35, 14, -34, -10, 10, 10, 1, -12, 20, -12,
1542 0, -15, 18, -24, 20, 27, 14, 28, 27, 27,
1543 20, 19, 2, 8, -5, -7, -25, -13, -5, -5,
1544 -6, -5, -2, 12, -31, -15, -23, 1, -12, -8,
1545 ], [
1546 -68, 18, -9, 9, 6, 35, 18, 25, 26, 7,
1547 -10, -1, 16, 3, 1, 9, -6, 19, 4, 15,
1548 4, 6, 0, 8, -20, 2, -23, -2, -7, -5,
1549 -12, -35, -1, -13, -24, 0, 3, 0, 22, -4,
1550 ], [
1551 -46, 6, -21, -8, 2, 16, 5, 8, 11, -4,
1552 -8, -15, 24, -4, 2, 26, 3, 16, 16, 14,
1553 9, 2, 1, -4, -19, -7, -36, -17, -9, -13,
1554 0, -31, 5, 12, -7, 8, -11, 15, 13, 4,
1555 ], [
1556 -49, 24, -16, 20, -2, 26, -2, 7, 25, 10,
1557 11, 25, 32, 3, 27, -2, 8, 8, 11, 9,
1558 24, 17, 16, 14, 13, -2, -20, -5, 4, -17,
1559 -14, 12, -3, -13, -33, -25, -14, -23, -15, -19,
1560 ], [
1561 -27, 12, -28, 2, -6, 7, -15, -9, 11, -1,
1562 13, 11, 40, -4, 29, 14, 19, 5, 23, 8,
1563 30, 13, 17, 0, 14, -12, -34, -20, 2, -25,
1564 -2, 16, 4, 12, -15, -16, -29, -7, -24, -10,
1565 ], [
1566 -60, 16, -3, 22, -10, 32, 0, 28, 17, 18,
1567 3, 25, 37, 23, 10, -3, -2, -3, 0, -3,
1568 14, 0, 14, 1, 0, -2, -32, -9, 1, -25,
1569 -7, -13, 5, -13, -8, -1, -2, -8, 10, -6,
1570 ], [
1571 -38, 4, -15, 4, -14, 13, -12, 11, 2, 6,
1572 6, 11, 45, 16, 11, 13, 7, -6, 12, -4,
1573 20, -3, 16, -12, 1, -12, -46, -24, 0, -33,
1574 3, -9, 12, 12, 8, 7, -17, 6, 0, 2
1575 ]
1576 ];
1577 const RA144_CODEBOOK2: [u16; 128] = [
1578 12174, 13380, 13879, 13832, 13170, 13227, 13204, 12053,
1579 12410, 13988, 14348, 14631, 13100, 13415, 13224, 12268,
1580 11982, 13825, 13499, 14210, 13877, 14788, 13811, 13109,
1581 11449, 13275, 12833, 13717, 12728, 13696, 12759, 12405,
1582 10230, 12185, 11628, 13161, 11762, 13458, 12312, 12818,
1583 10443, 12773, 12011, 14020, 11818, 13825, 12453, 13226,
1584 10446, 13162, 11881, 14300, 12859, 16288, 13490, 15053,
1585 10155, 12820, 11519, 13973, 12041, 15081, 12635, 14198,
1586 14198, 12635, 15081, 12041, 13973, 11519, 12820, 10155,
1587 15053, 13490, 16288, 12859, 14300, 11881, 13162, 10446,
1588 13226, 12453, 13825, 11818, 14020, 12011, 12773, 10443,
1589 12818, 12312, 13458, 11762, 13161, 11628, 12185, 10230,
1590 12405, 12759, 13696, 12728, 13717, 12833, 13275, 11449,
1591 13109, 13811, 14788, 13877, 14210, 13499, 13825, 11982,
1592 12268, 13224, 13415, 13100, 14631, 14348, 13988, 12410,
1593 12053, 13204, 13227, 13170, 13832, 13879, 13380, 12174,
1594 ];
1595 const RA144_VECTORS2: [[i8; BLOCKSIZE]; 128] = [
1596 [
1597 73, -32, -60, -15, -26, 59, 2, -33, 30, -10,
1598 -3, -17, 8, 30, -1, -26, -4, -22, 10, 16,
1599 -36, -5, -11, 56, 37, 6, -10, -5, -13, -3,
1600 6, -5, 11, 4, -19, -5, -16, 41, 24, 13,
1601 ], [
1602 4, -11, -37, 23, -5, 46, -2, -29, -5, -39,
1603 -21, -9, 0, 49, 12, -9, -16, -26, 22, 15,
1604 -45, -20, -5, 40, 22, 17, -26, 31, -14, 2,
1605 -14, 10, 30, 20, -27, -9, -39, 39, 18, 5,
1606 ], [
1607 34, -25, -48, -28, -11, 34, -2, -41, 9, -7,
1608 -17, 21, 20, 24, -17, -33, 0, -24, 10, 42,
1609 3, -5, 10, 42, 11, 8, -3, 3, 16, 9,
1610 22, -2, 0, -33, -10, 18, 7, 58, 10, 28,
1611 ], [
1612 -34, -4, -25, 10, 9, 21, -7, -36, -26, -36,
1613 -35, 28, 12, 42, -3, -16, -12, -28, 21, 42,
1614 -5, -21, 16, 26, -4, 19, -19, 39, 15, 15,
1615 1, 13, 19, -17, -17, 14, -15, 55, 4, 19,
1616 ], [
1617 28, -20, -51, -14, -6, 7, 0, -26, 27, -4,
1618 18, -40, -6, 16, -1, -15, 0, -55, -5, -16,
1619 -19, 14, -3, 49, 14, 1, -22, -30, -12, 0,
1620 24, 15, 9, -17, -45, -29, 4, 28, 51, 35,
1621 ], [
1622 -40, 0, -28, 24, 14, -5, -4, -21, -7, -33,
1623 0, -32, -15, 35, 12, 1, -11, -58, 5, -16,
1624 -28, 0, 1, 33, 0, 11, -39, 5, -14, 6,
1625 3, 31, 28, -1, -53, -33, -19, 25, 46, 26,
1626 ], [
1627 -11, -14, -39, -27, 9, -17, -4, -33, 6, 0,
1628 4, -1, 5, 10, -17, -22, 5, -57, -5, 9,
1629 20, 13, 18, 35, -11, 3, -16, -22, 17, 13,
1630 40, 19, -1, -55, -35, -5, 27, 44, 37, 49,
1631 ], [
1632 -80, 6, -16, 11, 30, -30, -9, -28, -28, -29,
1633 -13, 6, -2, 28, -3, -5, -7, -60, 5, 9,
1634 11, -1, 24, 19, -27, 13, -32, 13, 15, 19,
1635 19, 35, 17, -39, -43, -9, 4, 42, 32, 41,
1636 ], [
1637 78, -21, -43, 4, -38, 17, 17, -5, 55, 24,
1638 -15, -36, 14, 4, 24, -24, 12, 5, 17, 31,
1639 -54, -5, -2, 27, 43, -12, 2, 9, -9, -15,
1640 22, -3, 28, 21, -20, 3, 20, 28, 9, -5,
1641 ], [
1642 9, -1, -20, 43, -17, 3, 12, 0, 20, -4,
1643 -33, -29, 6, 22, 38, -7, 0, 1, 29, 30,
1644 -63, -21, 3, 11, 27, -1, -14, 45, -10, -9,
1645 1, 12, 47, 37, -28, 0, -2, 26, 4, -13,
1646 ], [
1647 39, -14, -30, -8, -22, -8, 12, -12, 34, 27,
1648 -29, 2, 26, -2, 8, -31, 16, 3, 17, 57,
1649 -14, -6, 19, 13, 16, -10, 8, 17, 20, -2,
1650 38, 0, 17, -16, -11, 27, 44, 45, -4, 8,
1651 ], [
1652 -29, 5, -7, 30, -1, -21, 7, -7, 0, 0,
1653 -47, 9, 18, 15, 22, -14, 4, 0, 28, 57,
1654 -23, -21, 25, -2, 1, 0, -7, 53, 19, 3,
1655 17, 15, 36, 0, -19, 24, 21, 43, -9, 0,
1656 ], [
1657 33, -10, -34, 5, -17, -35, 15, 1, 53, 30,
1658 6, -59, 0, -10, 24, -13, 17, -27, 1, -1,
1659 -37, 13, 4, 20, 20, -18, -10, -16, -8, -11,
1660 39, 18, 26, 0, -46, -20, 41, 15, 37, 15,
1661 ], [
1662 -35, 10, -11, 44, 3, -48, 10, 6, 17, 2,
1663 -11, -51, -8, 8, 38, 3, 4, -31, 12, -2,
1664 -46, -1, 10, 4, 5, -7, -26, 19, -10, -5,
1665 18, 34, 45, 15, -54, -24, 18, 13, 31, 7,
1666 ], [
1667 -5, -3, -21, -7, -2, -60, 10, -5, 32, 34,
1668 -7, -20, 11, -16, 8, -20, 21, -29, 1, 24,
1669 2, 13, 27, 6, -5, -15, -3, -8, 21, 1,
1670 55, 21, 15, -38, -37, 3, 65, 32, 23, 30,
1671 ], [
1672 -74, 17, 0, 31, 18, -73, 5, 0, -3, 5,
1673 -25, -12, 3, 1, 22, -3, 9, -33, 12, 24,
1674 -6, -2, 33, -9, -21, -5, -20, 27, 19, 7,
1675 34, 37, 34, -22, -44, 0, 41, 29, 17, 21,
1676 ], [
1677 76, -35, -31, -28, -49, 43, -40, 0, 29, -14,
1678 8, 5, 10, 18, -26, -46, 0, 7, 6, 3,
1679 -25, -7, -2, 40, 28, 14, 18, -3, -27, -28,
1680 -8, -45, -13, 34, -13, -27, -15, 31, 12, 3,
1681 ], [
1682 7, -15, -9, 9, -28, 29, -45, 5, -6, -43,
1683 -9, 12, 2, 36, -12, -30, -11, 3, 17, 3,
1684 -34, -22, 3, 24, 12, 24, 2, 32, -28, -22,
1685 -29, -29, 5, 50, -21, -31, -38, 29, 7, -5,
1686 ], [
1687 36, -29, -19, -41, -34, 18, -45, -6, 8, -10,
1688 -5, 43, 23, 11, -42, -53, 5, 5, 6, 30,
1689 14, -8, 20, 26, 1, 16, 25, 4, 3, -15,
1690 7, -41, -23, -3, -4, -3, 8, 48, -1, 17,
1691 ], [
1692 -32, -8, 3, -2, -13, 4, -50, -1, -27, -39,
1693 -23, 51, 15, 30, -27, -37, -7, 1, 17, 29,
1694 5, -23, 25, 10, -14, 26, 8, 41, 1, -9,
1695 -13, -26, -5, 12, -12, -7, -14, 45, -6, 9,
1696 ], [
1697 31, -24, -23, -27, -29, -9, -43, 8, 26, -7,
1698 30, -17, -4, 3, -26, -35, 5, -24, -10, -28,
1699 -9, 12, 5, 33, 5, 8, 5, -29, -26, -24,
1700 9, -23, -14, 12, -39, -52, 5, 18, 39, 24,
1701 ], [
1702 -37, -3, 0, 10, -7, -22, -48, 12, -8, -36,
1703 12, -9, -12, 22, -12, -19, -6, -28, 0, -29,
1704 -18, -3, 11, 17, -10, 18, -10, 7, -27, -18,
1705 -11, -7, 3, 28, -47, -55, -18, 15, 34, 16,
1706 ], [
1707 -8, -17, -10, -40, -13, -34, -47, 0, 5, -4,
1708 16, 21, 8, -2, -42, -43, 10, -26, -10, -2,
1709 31, 11, 27, 19, -21, 10, 12, -20, 3, -11,
1710 25, -20, -25, -25, -29, -28, 28, 34, 25, 38,
1711 ], [
1712 -77, 2, 11, -1, 7, -47, -52, 5, -29, -33,
1713 -1, 28, 0, 15, -28, -26, -2, -30, 0, -2,
1714 22, -4, 33, 3, -36, 21, -3, 15, 2, -5,
1715 4, -4, -6, -9, -37, -31, 5, 32, 20, 30,
1716 ], [
1717 81, -25, -14, -8, -61, 0, -25, 28, 54, 20,
1718 -3, -14, 17, -8, 0, -44, 16, 35, 13, 18,
1719 -43, -7, 6, 11, 33, -4, 30, 11, -22, -40,
1720 6, -43, 3, 50, -14, -18, 22, 18, -1, -16,
1721 ], [
1722 12, -4, 8, 29, -39, -12, -30, 33, 19, -8,
1723 -21, -6, 8, 9, 13, -28, 4, 31, 24, 18,
1724 -52, -23, 12, -4, 18, 5, 14, 47, -24, -34,
1725 -14, -27, 22, 66, -22, -22, -1, 16, -6, -24,
1726 ], [
1727 41, -18, -2, -21, -45, -24, -30, 21, 33, 24,
1728 -17, 24, 29, -15, -16, -51, 21, 33, 13, 45,
1729 -3, -8, 28, -2, 7, -2, 37, 19, 7, -27,
1730 22, -39, -7, 12, -5, 5, 45, 35, -15, -1,
1731 ], [
1732 -27, 1, 20, 17, -24, -38, -35, 26, -1, -4,
1733 -35, 32, 21, 3, -2, -35, 8, 29, 24, 44,
1734 -12, -24, 34, -18, -8, 7, 21, 55, 5, -21,
1735 2, -23, 11, 28, -13, 1, 22, 33, -21, -10,
1736 ], [
1737 36, -13, -5, -7, -40, -51, -28, 36, 52, 27,
1738 18, -36, 2, -22, 0, -33, 21, 2, -3, -13,
1739 -26, 11, 14, 4, 10, -10, 18, -14, -22, -36,
1740 24, -21, 1, 28, -40, -42, 42, 5, 25, 5,
1741 ], [
1742 -32, 6, 17, 31, -19, -65, -33, 41, 16, -1,
1743 0, -29, -6, -4, 13, -17, 9, -1, 8, -14,
1744 -35, -3, 19, -11, -4, 0, 1, 21, -23, -30,
1745 3, -5, 20, 44, -48, -46, 19, 3, 20, -3,
1746 ], [
1747 -3, -7, 6, -20, -25, -77, -32, 29, 31, 30,
1748 4, 2, 14, -29, -16, -40, 26, 0, -3, 12,
1749 13, 10, 36, -9, -15, -8, 24, -6, 7, -22,
1750 40, -17, -8, -9, -31, -18, 66, 22, 11, 19,
1751 ], [
1752 -72, 13, 29, 18, -4, -90, -37, 34, -4, 1,
1753 -13, 9, 6, -11, -2, -24, 13, -3, 7, 11,
1754 4, -4, 42, -25, -31, 1, 8, 29, 6, -17,
1755 19, -2, 10, 6, -38, -22, 42, 19, 6, 11,
1756 ], [
1757 116, -20, -68, -30, -28, 83, 28, -18, 32, -22,
1758 -13, -21, 5, 28, 5, -7, -24, -8, -22, 17,
1759 -23, 30, -25, 45, 15, -9, -11, -18, 22, -10,
1760 4, -2, 19, -12, 23, 3, -43, 2, 12, -4,
1761 ], [
1762 47, 0, -45, 7, -7, 69, 23, -13, -2, -51,
1763 -32, -14, -3, 47, 19, 8, -37, -11, -10, 16,
1764 -32, 15, -19, 29, 0, 1, -28, 18, 20, -4,
1765 -16, 13, 38, 3, 15, 0, -66, 0, 7, -13,
1766 ], [
1767 77, -13, -56, -43, -13, 57, 23, -26, 11, -19,
1768 -27, 16, 17, 22, -10, -15, -19, -10, -22, 43,
1769 16, 30, -2, 31, -11, -6, -5, -9, 52, 2,
1770 20, 0, 8, -50, 33, 27, -19, 19, -1, 9,
1771 ], [
1772 8, 6, -33, -4, 7, 44, 18, -21, -23, -48,
1773 -46, 24, 9, 40, 3, 1, -32, -13, -11, 43,
1774 7, 14, 3, 15, -26, 3, -21, 26, 50, 8,
1775 0, 16, 27, -34, 25, 23, -43, 17, -6, 1,
1776 ], [
1777 71, -9, -59, -29, -8, 30, 26, -11, 30, -16,
1778 8, -44, -9, 14, 5, 2, -19, -40, -38, -15,
1779 -7, 50, -17, 38, -7, -14, -24, -43, 22, -6,
1780 22, 19, 17, -34, -2, -20, -23, -10, 39, 16,
1781 ], [
1782 2, 11, -36, 9, 13, 17, 21, -6, -5, -45,
1783 -10, -36, -18, 33, 19, 19, -31, -44, -27, -15,
1784 -16, 34, -11, 22, -22, -4, -40, -7, 21, 0,
1785 1, 35, 36, -18, -10, -24, -46, -12, 34, 8,
1786 ], [
1787 32, -2, -47, -42, 7, 5, 21, -18, 9, -12,
1788 -5, -5, 2, 8, -10, -4, -14, -42, -38, 10,
1789 33, 49, 5, 24, -33, -12, -17, -35, 52, 6,
1790 38, 22, 7, -72, 7, 3, 0, 6, 25, 30,
1791 ], [
1792 -36, 18, -24, -3, 28, -7, 16, -13, -26, -41,
1793 -24, 1, -5, 26, 3, 12, -27, -46, -27, 10,
1794 24, 34, 10, 8, -49, -2, -34, 0, 51, 12,
1795 17, 38, 25, -56, 0, 0, -22, 3, 20, 22,
1796 ], [
1797 121, -9, -50, -10, -40, 40, 43, 9, 58, 12,
1798 -25, -41, 11, 2, 31, -5, -8, 19, -15, 32,
1799 -41, 30, -16, 16, 20, -28, 0, -3, 26, -22,
1800 19, 0, 36, 4, 22, 12, -6, -9, -1, -24,
1801 ], [
1802 52, 10, -27, 27, -18, 26, 38, 14, 23, -16,
1803 -44, -33, 3, 20, 45, 10, -20, 15, -3, 31,
1804 -50, 14, -10, 0, 5, -17, -15, 32, 24, -16,
1805 -1, 15, 55, 20, 14, 8, -29, -12, -7, -32,
1806 ], [
1807 82, -3, -38, -23, -24, 15, 38, 2, 37, 15,
1808 -39, -2, 23, -4, 15, -12, -3, 17, -15, 58,
1809 -1, 29, 6, 2, -5, -26, 7, 4, 56, -9,
1810 35, 3, 25, -33, 32, 36, 17, 7, -15, -9,
1811 ], [
1812 13, 17, -15, 15, -3, 1, 33, 7, 1, -12,
1813 -58, 5, 15, 13, 29, 3, -16, 13, -4, 57,
1814 -10, 13, 11, -13, -21, -15, -9, 40, 55, -3,
1815 14, 19, 44, -17, 24, 32, -5, 4, -21, -18,
1816 ], [
1817 76, 1, -41, -9, -19, -12, 41, 17, 55, 18,
1818 -3, -63, -3, -12, 30, 5, -3, -12, -31, 0,
1819 -24, 49, -8, 9, -1, -33, -12, -29, 27, -18,
1820 37, 21, 34, -17, -3, -11, 14, -23, 25, -2,
1821 ], [
1822 7, 22, -18, 29, 1, -25, 36, 21, 20, -9,
1823 -22, -56, -11, 6, 45, 21, -15, -16, -20, -1,
1824 -33, 34, -2, -6, -17, -23, -28, 6, 25, -12,
1825 16, 37, 53, -1, -11, -15, -8, -25, 20, -11,
1826 ], [
1827 37, 8, -29, -22, -4, -37, 36, 9, 34, 22,
1828 -17, -24, 8, -18, 15, -2, 1, -14, -31, 25,
1829 15, 48, 13, -4, -28, -31, -5, -21, 57, -4,
1830 53, 24, 23, -55, 6, 12, 37, -6, 11, 11,
1831 ], [
1832 -31, 28, -6, 16, 16, -50, 31, 14, 0, -6,
1833 -36, -17, 0, 0, 29, 14, -11, -18, -20, 25,
1834 6, 33, 19, -20, -43, -21, -21, 14, 55, 0,
1835 32, 40, 42, -39, -1, 8, 14, -8, 6, 3,
1836 ], [
1837 119, -24, -39, -44, -51, 66, -14, 15, 31, -26,
1838 -1, 0, 7, 16, -19, -28, -19, 22, -26, 4,
1839 -13, 28, -16, 29, 5, -1, 16, -16, 8, -35,
1840 -10, -42, -4, 17, 29, -19, -42, -7, 0, -15,
1841 ], [
1842 50, -3, -16, -5, -30, 53, -19, 20, -3, -55,
1843 -19, 8, 0, 34, -5, -11, -32, 18, -15, 4,
1844 -22, 13, -10, 13, -9, 8, 0, 19, 7, -29,
1845 -31, -26, 13, 33, 21, -22, -65, -9, -4, -23,
1846 ], [
1847 79, -17, -27, -56, -36, 41, -19, 8, 10, -22,
1848 -15, 39, 20, 9, -35, -35, -15, 20, -26, 31,
1849 26, 27, 6, 15, -20, 0, 23, -8, 38, -22,
1850 5, -38, -15, -20, 39, 4, -18, 9, -13, -1,
1851 ], [
1852 10, 3, -4, -18, -15, 27, -24, 13, -24, -51,
1853 -34, 47, 12, 28, -21, -19, -27, 16, -15, 30,
1854 17, 12, 12, 0, -36, 10, 7, 27, 37, -16,
1855 -15, -22, 3, -4, 31, 1, -42, 7, -18, -9,
1856 ], [
1857 74, -12, -30, -42, -30, 14, -16, 23, 29, -19,
1858 20, -21, -7, 1, -19, -17, -14, -10, -43, -27,
1859 3, 48, -8, 22, -16, -7, 4, -42, 9, -31,
1860 6, -20, -6, -4, 3, -43, -22, -20, 28, 5,
1861 ], [
1862 5, 7, -7, -4, -9, 0, -21, 28, -6, -48,
1863 2, -14, -15, 20, -5, 0, -27, -14, -32, -28,
1864 -5, 32, -2, 6, -32, 3, -12, -5, 8, -25,
1865 -14, -4, 12, 11, -4, -47, -45, -22, 22, -2,
1866 ], [
1867 34, -6, -18, -55, -15, -11, -21, 16, 8, -16,
1868 6, 16, 5, -4, -35, -24, -10, -12, -43, -1,
1869 43, 47, 14, 8, -43, -5, 10, -34, 39, -18,
1870 22, -16, -17, -42, 13, -19, 1, -3, 14, 20,
1871 ], [
1872 -34, 14, 4, -17, 5, -24, -26, 20, -27, -45,
1873 -12, 24, -2, 13, -21, -8, -22, -16, -32, -2,
1874 34, 31, 20, -7, -58, 5, -5, 2, 38, -12,
1875 2, -1, 1, -26, 5, -23, -21, -6, 8, 11,
1876 ], [
1877 124, -13, -21, -23, -62, 23, 0, 43, 57, 8,
1878 -13, -18, 14, -10, 6, -26, -3, 49, -19, 19,
1879 -31, 27, -7, 0, 11, -20, 29, -1, 12, -47,
1880 4, -39, 11, 34, 28, -9, -5, -19, -13, -34,
1881 ], [
1882 55, 6, 1, 14, -41, 10, -4, 48, 22, -20,
1883 -31, -10, 5, 7, 20, -9, -16, 45, -8, 19,
1884 -40, 12, -1, -15, -4, -10, 12, 34, 11, -41,
1885 -16, -24, 30, 49, 20, -13, -28, -22, -18, -43,
1886 ], [
1887 84, -6, -9, -36, -47, -1, -4, 36, 36, 12,
1888 -27, 20, 26, -17, -9, -33, 1, 47, -19, 46,
1889 9, 27, 15, -13, -15, -18, 35, 6, 42, -33,
1890 20, -36, 1, -4, 38, 14, 18, -2, -27, -20,
1891 ], [
1892 15, 13, 13, 1, -26, -14, -9, 41, 1, -16,
1893 -46, 27, 18, 1, 4, -16, -11, 43, -8, 45,
1894 0, 11, 21, -29, -30, -8, 19, 42, 41, -28,
1895 0, -20, 20, 11, 30, 10, -4, -5, -32, -28,
1896 ], [
1897 79, -2, -12, -22, -42, -28, -1, 51, 54, 15,
1898 8, -41, 0, -24, 6, -15, 1, 17, -36, -12,
1899 -14, 47, 0, -6, -11, -26, 16, -27, 13, -43,
1900 22, -18, 10, 12, 2, -34, 15, -33, 13, -13,
1901 ], [
1902 10, 18, 10, 15, -21, -41, -6, 56, 19, -13,
1903 -9, -33, -9, -6, 20, 1, -11, 13, -24, -13,
1904 -23, 32, 6, -22, -26, -15, 0, 8, 12, -37,
1905 1, -2, 28, 27, -5, -37, -7, -35, 8, -21,
1906 ], [
1907 39, 4, 0, -35, -27, -53, -6, 44, 33, 18,
1908 -5, -2, 11, -31, -9, -22, 6, 15, -36, 13,
1909 25, 46, 23, -20, -37, -24, 23, -19, 43, -29,
1910 38, -14, 0, -26, 12, -10, 38, -16, 0, 0,
1911 ], [
1912 -29, 25, 22, 2, -6, -67, -11, 49, -1, -10,
1913 -24, 5, 3, -13, 4, -5, -6, 11, -25, 12,
1914 16, 31, 28, -36, -53, -13, 6, 16, 42, -24,
1915 17, 1, 18, -10, 4, -13, 15, -18, -5, -7,
1916 ], [
1917 29, -25, -22, -2, 6, 67, 11, -49, 1, 10,
1918 24, -5, -3, 13, -4, 5, 6, -11, 25, -12,
1919 -16, -31, -28, 36, 53, 13, -6, -16, -42, 24,
1920 -17, -1, -18, 10, -4, 13, -15, 18, 5, 7,
1921 ], [
1922 -39, -4, 0, 35, 27, 53, 6, -44, -33, -18,
1923 5, 2, -11, 31, 9, 22, -6, -15, 36, -13,
1924 -25, -46, -23, 20, 37, 24, -23, 19, -43, 29,
1925 -38, 14, 0, 26, -12, 10, -38, 16, 0, 0,
1926 ], [
1927 -10, -18, -10, -15, 21, 41, 6, -56, -19, 13,
1928 9, 33, 9, 6, -20, -1, 11, -13, 24, 13,
1929 23, -32, -6, 22, 26, 15, 0, -8, -12, 37,
1930 -1, 2, -28, -27, 5, 37, 7, 35, -8, 21,
1931 ], [
1932 -79, 2, 12, 22, 42, 28, 1, -51, -54, -15,
1933 -8, 41, 0, 24, -6, 15, -1, -17, 36, 12,
1934 14, -47, 0, 6, 11, 26, -16, 27, -13, 43,
1935 -22, 18, -10, -12, -2, 34, -15, 33, -13, 13,
1936 ], [
1937 -15, -13, -13, -1, 26, 14, 9, -41, -1, 16,
1938 46, -27, -18, -1, -4, 16, 11, -43, 8, -45,
1939 0, -11, -21, 29, 30, 8, -19, -42, -41, 28,
1940 0, 20, -20, -11, -30, -10, 4, 5, 32, 28,
1941 ], [
1942 -84, 6, 9, 36, 47, 1, 4, -36, -36, -12,
1943 27, -20, -26, 17, 9, 33, -1, -47, 19, -46,
1944 -9, -27, -15, 13, 15, 18, -35, -6, -42, 33,
1945 -20, 36, -1, 4, -38, -14, -18, 2, 27, 20,
1946 ], [
1947 -55, -6, -1, -14, 41, -10, 4, -48, -22, 20,
1948 31, 10, -5, -7, -20, 9, 16, -45, 8, -19,
1949 40, -12, 1, 15, 4, 10, -12, -34, -11, 41,
1950 16, 24, -30, -49, -20, 13, 28, 22, 18, 43,
1951 ], [
1952 -124, 13, 21, 23, 62, -23, 0, -43, -57, -8,
1953 13, 18, -14, 10, -6, 26, 3, -49, 19, -19,
1954 31, -27, 7, 0, -11, 20, -29, 1, -12, 47,
1955 -4, 39, -11, -34, -28, 9, 5, 19, 13, 34,
1956 ], [
1957 34, -14, -4, 17, -5, 24, 26, -20, 27, 45,
1958 12, -24, 2, -13, 21, 8, 22, 16, 32, 2,
1959 -34, -31, -20, 7, 58, -5, 5, -2, -38, 12,
1960 -2, 1, -1, 26, -5, 23, 21, 6, -8, -11,
1961 ], [
1962 -34, 6, 18, 55, 15, 11, 21, -16, -8, 16,
1963 -6, -16, -5, 4, 35, 24, 10, 12, 43, 1,
1964 -43, -47, -14, -8, 43, 5, -10, 34, -39, 18,
1965 -22, 16, 17, 42, -13, 19, -1, 3, -14, -20,
1966 ], [
1967 -5, -7, 7, 4, 9, 0, 21, -28, 6, 48,
1968 -2, 14, 15, -20, 5, 0, 27, 14, 32, 28,
1969 5, -32, 2, -6, 32, -3, 12, 5, -8, 25,
1970 14, 4, -12, -11, 4, 47, 45, 22, -22, 2,
1971 ], [
1972 -74, 12, 30, 42, 30, -14, 16, -23, -29, 19,
1973 -20, 21, 7, -1, 19, 17, 14, 10, 43, 27,
1974 -3, -48, 8, -22, 16, 7, -4, 42, -9, 31,
1975 -6, 20, 6, 4, -3, 43, 22, 20, -28, -5,
1976 ], [
1977 -10, -3, 4, 18, 15, -27, 24, -13, 24, 51,
1978 34, -47, -12, -28, 21, 19, 27, -16, 15, -30,
1979 -17, -12, -12, 0, 36, -10, -7, -27, -37, 16,
1980 15, 22, -3, 4, -31, -1, 42, -7, 18, 9,
1981 ], [
1982 -79, 17, 27, 56, 36, -41, 19, -8, -10, 22,
1983 15, -39, -20, -9, 35, 35, 15, -20, 26, -31,
1984 -26, -27, -6, -15, 20, 0, -23, 8, -38, 22,
1985 -5, 38, 15, 20, -39, -4, 18, -9, 13, 1,
1986 ], [
1987 -50, 3, 16, 5, 30, -53, 19, -20, 3, 55,
1988 19, -8, 0, -34, 5, 11, 32, -18, 15, -4,
1989 22, -13, 10, -13, 9, -8, 0, -19, -7, 29,
1990 31, 26, -13, -33, -21, 22, 65, 9, 4, 23,
1991 ], [
1992 -119, 24, 39, 44, 51, -66, 14, -15, -31, 26,
1993 1, 0, -7, -16, 19, 28, 19, -22, 26, -4,
1994 13, -28, 16, -29, -5, 1, -16, 16, -8, 35,
1995 10, 42, 4, -17, -29, 19, 42, 7, 0, 15,
1996 ], [
1997 31, -28, 6, -16, -16, 50, -31, -14, 0, 6,
1998 36, 17, 0, 0, -29, -14, 11, 18, 20, -25,
1999 -6, -33, -19, 20, 43, 21, 21, -14, -55, 0,
2000 -32, -40, -42, 39, 1, -8, -14, 8, -6, -3,
2001 ], [
2002 -37, -8, 29, 22, 4, 37, -36, -9, -34, -22,
2003 17, 24, -8, 18, -15, 2, -1, 14, 31, -25,
2004 -15, -48, -13, 4, 28, 31, 5, 21, -57, 4,
2005 -53, -24, -23, 55, -6, -12, -37, 6, -11, -11,
2006 ], [
2007 -7, -22, 18, -29, -1, 25, -36, -21, -20, 9,
2008 22, 56, 11, -6, -45, -21, 15, 16, 20, 1,
2009 33, -34, 2, 6, 17, 23, 28, -6, -25, 12,
2010 -16, -37, -53, 1, 11, 15, 8, 25, -20, 11,
2011 ], [
2012 -76, -1, 41, 9, 19, 12, -41, -17, -55, -18,
2013 3, 63, 3, 12, -30, -5, 3, 12, 31, 0,
2014 24, -49, 8, -9, 1, 33, 12, 29, -27, 18,
2015 -37, -21, -34, 17, 3, 11, -14, 23, -25, 2,
2016 ], [
2017 -13, -17, 15, -15, 3, -1, -33, -7, -1, 12,
2018 58, -5, -15, -13, -29, -3, 16, -13, 4, -57,
2019 10, -13, -11, 13, 21, 15, 9, -40, -55, 3,
2020 -14, -19, -44, 17, -24, -32, 5, -4, 21, 18,
2021 ], [
2022 -82, 3, 38, 23, 24, -15, -38, -2, -37, -15,
2023 39, 2, -23, 4, -15, 12, 3, -17, 15, -58,
2024 1, -29, -6, -2, 5, 26, -7, -4, -56, 9,
2025 -35, -3, -25, 33, -32, -36, -17, -7, 15, 9,
2026 ], [
2027 -52, -10, 27, -27, 18, -26, -38, -14, -23, 16,
2028 44, 33, -3, -20, -45, -10, 20, -15, 3, -31,
2029 50, -14, 10, 0, -5, 17, 15, -32, -24, 16,
2030 1, -15, -55, -20, -14, -8, 29, 12, 7, 32,
2031 ], [
2032 -121, 9, 50, 10, 40, -40, -43, -9, -58, -12,
2033 25, 41, -11, -2, -31, 5, 8, -19, 15, -32,
2034 41, -30, 16, -16, -20, 28, 0, 3, -26, 22,
2035 -19, 0, -36, -4, -22, -12, 6, 9, 1, 24,
2036 ], [
2037 36, -18, 24, 3, -28, 7, -16, 13, 26, 41,
2038 24, -1, 5, -26, -3, -12, 27, 46, 27, -10,
2039 -24, -34, -10, -8, 49, 2, 34, 0, -51, -12,
2040 -17, -38, -25, 56, 0, 0, 22, -3, -20, -22,
2041 ], [
2042 -32, 2, 47, 42, -7, -5, -21, 18, -9, 12,
2043 5, 5, -2, -8, 10, 4, 14, 42, 38, -10,
2044 -33, -49, -5, -24, 33, 12, 17, 35, -52, -6,
2045 -38, -22, -7, 72, -7, -3, 0, -6, -25, -30,
2046 ], [
2047 -2, -11, 36, -9, -13, -17, -21, 6, 5, 45,
2048 10, 36, 18, -33, -19, -19, 31, 44, 27, 15,
2049 16, -34, 11, -22, 22, 4, 40, 7, -21, 0,
2050 -1, -35, -36, 18, 10, 24, 46, 12, -34, -8,
2051 ], [
2052 -71, 9, 59, 29, 8, -30, -26, 11, -30, 16,
2053 -8, 44, 9, -14, -5, -2, 19, 40, 38, 15,
2054 7, -50, 17, -38, 7, 14, 24, 43, -22, 6,
2055 -22, -19, -17, 34, 2, 20, 23, 10, -39, -16,
2056 ], [
2057 -8, -6, 33, 4, -7, -44, -18, 21, 23, 48,
2058 46, -24, -9, -40, -3, -1, 32, 13, 11, -43,
2059 -7, -14, -3, -15, 26, -3, 21, -26, -50, -8,
2060 0, -16, -27, 34, -25, -23, 43, -17, 6, -1,
2061 ], [
2062 -77, 13, 56, 43, 13, -57, -23, 26, -11, 19,
2063 27, -16, -17, -22, 10, 15, 19, 10, 22, -43,
2064 -16, -30, 2, -31, 11, 6, 5, 9, -52, -2,
2065 -20, 0, -8, 50, -33, -27, 19, -19, 1, -9,
2066 ], [
2067 -47, 0, 45, -7, 7, -69, -23, 13, 2, 51,
2068 32, 14, 3, -47, -19, -8, 37, 11, 10, -16,
2069 32, -15, 19, -29, 0, -1, 28, -18, -20, 4,
2070 16, -13, -38, -3, -15, 0, 66, 0, -7, 13,
2071 ], [
2072 -116, 20, 68, 30, 28, -83, -28, 18, -32, 22,
2073 13, 21, -5, -28, -5, 7, 24, 8, 22, -17,
2074 23, -30, 25, -45, -15, 9, 11, 18, -22, 10,
2075 -4, 2, -19, 12, -23, -3, 43, -2, -12, 4,
2076 ], [
2077 72, -13, -29, -18, 4, 90, 37, -34, 4, -1,
2078 13, -9, -6, 11, 2, 24, -13, 3, -7, -11,
2079 -4, 4, -42, 25, 31, -1, -8, -29, -6, 17,
2080 -19, 2, -10, -6, 38, 22, -42, -19, -6, -11,
2081 ], [
2082 3, 7, -6, 20, 25, 77, 32, -29, -31, -30,
2083 -4, -2, -14, 29, 16, 40, -26, 0, 3, -12,
2084 -13, -10, -36, 9, 15, 8, -24, 6, -7, 22,
2085 -40, 17, 8, 9, 31, 18, -66, -22, -11, -19,
2086 ], [
2087 32, -6, -17, -31, 19, 65, 33, -41, -16, 1,
2088 0, 29, 6, 4, -13, 17, -9, 1, -8, 14,
2089 35, 3, -19, 11, 4, 0, -1, -21, 23, 30,
2090 -3, 5, -20, -44, 48, 46, -19, -3, -20, 3,
2091 ], [
2092 -36, 13, 5, 7, 40, 51, 28, -36, -52, -27,
2093 -18, 36, -2, 22, 0, 33, -21, -2, 3, 13,
2094 26, -11, -14, -4, -10, 10, -18, 14, 22, 36,
2095 -24, 21, -1, -28, 40, 42, -42, -5, -25, -5,
2096 ], [
2097 27, -1, -20, -17, 24, 38, 35, -26, 1, 4,
2098 35, -32, -21, -3, 2, 35, -8, -29, -24, -44,
2099 12, 24, -34, 18, 8, -7, -21, -55, -5, 21,
2100 -2, 23, -11, -28, 13, -1, -22, -33, 21, 10,
2101 ], [
2102 -41, 18, 2, 21, 45, 24, 30, -21, -33, -24,
2103 17, -24, -29, 15, 16, 51, -21, -33, -13, -45,
2104 3, 8, -28, 2, -7, 2, -37, -19, -7, 27,
2105 -22, 39, 7, -12, 5, -5, -45, -35, 15, 1,
2106 ], [
2107 -12, 4, -8, -29, 39, 12, 30, -33, -19, 8,
2108 21, 6, -8, -9, -13, 28, -4, -31, -24, -18,
2109 52, 23, -12, 4, -18, -5, -14, -47, 24, 34,
2110 14, 27, -22, -66, 22, 22, 1, -16, 6, 24,
2111 ], [
2112 -81, 25, 14, 8, 61, 0, 25, -28, -54, -20,
2113 3, 14, -17, 8, 0, 44, -16, -35, -13, -18,
2114 43, 7, -6, -11, -33, 4, -30, -11, 22, 40,
2115 -6, 43, -3, -50, 14, 18, -22, -18, 1, 16,
2116 ], [
2117 77, -2, -11, 1, -7, 47, 52, -5, 29, 33,
2118 1, -28, 0, -15, 28, 26, 2, 30, 0, 2,
2119 -22, 4, -33, -3, 36, -21, 3, -15, -2, 5,
2120 -4, 4, 6, 9, 37, 31, -5, -32, -20, -30,
2121 ], [
2122 8, 17, 10, 40, 13, 34, 47, 0, -5, 4,
2123 -16, -21, -8, 2, 42, 43, -10, 26, 10, 2,
2124 -31, -11, -27, -19, 21, -10, -12, 20, -3, 11,
2125 -25, 20, 25, 25, 29, 28, -28, -34, -25, -38,
2126 ], [
2127 37, 3, 0, -10, 7, 22, 48, -12, 8, 36,
2128 -12, 9, 12, -22, 12, 19, 6, 28, 0, 29,
2129 18, 3, -11, -17, 10, -18, 10, -7, 27, 18,
2130 11, 7, -3, -28, 47, 55, 18, -15, -34, -16,
2131 ], [
2132 -31, 24, 23, 27, 29, 9, 43, -8, -26, 7,
2133 -30, 17, 4, -3, 26, 35, -5, 24, 10, 28,
2134 9, -12, -5, -33, -5, -8, -5, 29, 26, 24,
2135 -9, 23, 14, -12, 39, 52, -5, -18, -39, -24,
2136 ], [
2137 32, 8, -3, 2, 13, -4, 50, 1, 27, 39,
2138 23, -51, -15, -30, 27, 37, 7, -1, -17, -29,
2139 -5, 23, -25, -10, 14, -26, -8, -41, -1, 9,
2140 13, 26, 5, -12, 12, 7, 14, -45, 6, -9,
2141 ], [
2142 -36, 29, 19, 41, 34, -18, 45, 6, -8, 10,
2143 5, -43, -23, -11, 42, 53, -5, -5, -6, -30,
2144 -14, 8, -20, -26, -1, -16, -25, -4, -3, 15,
2145 -7, 41, 23, 3, 4, 3, -8, -48, 1, -17,
2146 ], [
2147 -7, 15, 9, -9, 28, -29, 45, -5, 6, 43,
2148 9, -12, -2, -36, 12, 30, 11, -3, -17, -3,
2149 34, 22, -3, -24, -12, -24, -2, -32, 28, 22,
2150 29, 29, -5, -50, 21, 31, 38, -29, -7, 5,
2151 ], [
2152 -76, 35, 31, 28, 49, -43, 40, 0, -29, 14,
2153 -8, -5, -10, -18, 26, 46, 0, -7, -6, -3,
2154 25, 7, 2, -40, -28, -14, -18, 3, 27, 28,
2155 8, 45, 13, -34, 13, 27, 15, -31, -12, -3,
2156 ], [
2157 74, -17, 0, -31, -18, 73, -5, 0, 3, -5,
2158 25, 12, -3, -1, -22, 3, -9, 33, -12, -24,
2159 6, 2, -33, 9, 21, 5, 20, -27, -19, -7,
2160 -34, -37, -34, 22, 44, 0, -41, -29, -17, -21,
2161 ], [
2162 5, 3, 21, 7, 2, 60, -10, 5, -32, -34,
2163 7, 20, -11, 16, -8, 20, -21, 29, -1, -24,
2164 -2, -13, -27, -6, 5, 15, 3, 8, -21, -1,
2165 -55, -21, -15, 38, 37, -3, -65, -32, -23, -30,
2166 ], [
2167 35, -10, 11, -44, -3, 48, -10, -6, -17, -2,
2168 11, 51, 8, -8, -38, -3, -4, 31, -12, 2,
2169 46, 1, -10, -4, -5, 7, 26, -19, 10, 5,
2170 -18, -34, -45, -15, 54, 24, -18, -13, -31, -7,
2171 ], [
2172 -33, 10, 34, -5, 17, 35, -15, -1, -53, -30,
2173 -6, 59, 0, 10, -24, 13, -17, 27, -1, 1,
2174 37, -13, -4, -20, -20, 18, 10, 16, 8, 11,
2175 -39, -18, -26, 0, 46, 20, -41, -15, -37, -15,
2176 ], [
2177 29, -5, 7, -30, 1, 21, -7, 7, 0, 0,
2178 47, -9, -18, -15, -22, 14, -4, 0, -28, -57,
2179 23, 21, -25, 2, -1, 0, 7, -53, -19, -3,
2180 -17, -15, -36, 0, 19, -24, -21, -43, 9, 0,
2181 ], [
2182 -39, 14, 30, 8, 22, 8, -12, 12, -34, -27,
2183 29, -2, -26, 2, -8, 31, -16, -3, -17, -57,
2184 14, 6, -19, -13, -16, 10, -8, -17, -20, 2,
2185 -38, 0, -17, 16, 11, -27, -44, -45, 4, -8,
2186 ], [
2187 -9, 1, 20, -43, 17, -3, -12, 0, -20, 4,
2188 33, 29, -6, -22, -38, 7, 0, -1, -29, -30,
2189 63, 21, -3, -11, -27, 1, 14, -45, 10, 9,
2190 -1, -12, -47, -37, 28, 0, 2, -26, -4, 13,
2191 ], [
2192 -78, 21, 43, -4, 38, -17, -17, 5, -55, -24,
2193 15, 36, -14, -4, -24, 24, -12, -5, -17, -31,
2194 54, 5, 2, -27, -43, 12, -2, -9, 9, 15,
2195 -22, 3, -28, -21, 20, -3, -20, -28, -9, 5,
2196 ], [
2197 80, -6, 16, -11, -30, 30, 9, 28, 28, 29,
2198 13, -6, 2, -28, 3, 5, 7, 60, -5, -9,
2199 -11, 1, -24, -19, 27, -13, 32, -13, -15, -19,
2200 -19, -35, -17, 39, 43, 9, -4, -42, -32, -41,
2201 ], [
2202 11, 14, 39, 27, -9, 17, 4, 33, -6, 0,
2203 -4, 1, -5, -10, 17, 22, -5, 57, 5, -9,
2204 -20, -13, -18, -35, 11, -3, 16, 22, -17, -13,
2205 -40, -19, 1, 55, 35, 5, -27, -44, -37, -49,
2206 ], [
2207 40, 0, 28, -24, -14, 5, 4, 21, 7, 33,
2208 0, 32, 15, -35, -12, -1, 11, 58, -5, 16,
2209 28, 0, -1, -33, 0, -11, 39, -5, 14, -6,
2210 -3, -31, -28, 1, 53, 33, 19, -25, -46, -26,
2211 ], [
2212 -28, 20, 51, 14, 6, -7, 0, 26, -27, 4,
2213 -18, 40, 6, -16, 1, 15, 0, 55, 5, 16,
2214 19, -14, 3, -49, -14, -1, 22, 30, 12, 0,
2215 -24, -15, -9, 17, 45, 29, -4, -28, -51, -35,
2216 ], [
2217 34, 4, 25, -10, -9, -21, 7, 36, 26, 36,
2218 35, -28, -12, -42, 3, 16, 12, 28, -21, -42,
2219 5, 21, -16, -26, 4, -19, 19, -39, -15, -15,
2220 -1, -13, -19, 17, 17, -14, 15, -55, -4, -19,
2221 ], [
2222 -34, 25, 48, 28, 11, -34, 2, 41, -9, 7,
2223 17, -21, -20, -24, 17, 33, 0, 24, -10, -42,
2224 -3, 5, -10, -42, -11, -8, 3, -3, -16, -9,
2225 -22, 2, 0, 33, 10, -18, -7, -58, -10, -28,
2226 ], [
2227 -4, 11, 37, -23, 5, -46, 2, 29, 5, 39,
2228 21, 9, 0, -49, -12, 9, 16, 26, -22, -15,
2229 45, 20, 5, -40, -22, -17, 26, -31, 14, -2,
2230 14, -10, -30, -20, 27, 9, 39, -39, -18, -5,
2231 ], [
2232 -73, 32, 60, 15, 26, -59, -2, 33, -30, 10,
2233 3, 17, -8, -30, 1, 26, 4, 22, -10, -16,
2234 36, 5, 11, -56, -37, -6, 10, 5, 13, 3,
2235 -6, 5, -11, -4, 19, 5, 16, -41, -24, -13
2236 ]
2237 ];
2238
2239 const RA144_GAIN_VAL_TAB: [[u16; 3]; 256] = [
2240 [ 541, 956, 768], [ 877, 581, 568], [ 675,1574, 635], [1248,1464, 668],
2241 [1246, 839, 1394], [2560,1386, 991], [ 925, 687, 608], [2208, 797, 1144],
2242 [ 535, 832, 799], [ 762, 605, 1154], [ 832,1122, 1003], [1180, 687, 1176],
2243 [1292, 901, 732], [1656, 689, 896], [1750,1248, 848], [2284, 942, 1022],
2244 [ 824,1472, 643], [ 517, 765, 512], [ 562,1816, 1522], [ 694,1826, 2700],
2245 [ 704, 524, 672], [1442, 757, 2232], [ 884, 551, 1266], [2232,1007, 1692],
2246 [ 932, 746, 777], [1132, 822, 926], [1226, 771, 611], [2948,1342, 1008],
2247 [1302, 594, 1158], [1602, 636, 1128], [3408, 910, 1438], [1996, 614, 575],
2248 [ 665, 935, 628], [ 631,1192, 829], [ 644, 926, 1052], [ 879, 988, 1226],
2249 [ 941,2768, 2772], [ 565,1344, 2304], [ 547, 628, 740], [ 639, 532, 1074],
2250 [ 955,1208, 598], [1124,1160, 900], [1206, 899, 1242], [ 746, 533, 624],
2251 [1458,1028, 735], [1706,1102, 692], [1898,1018, 1004], [2176, 988, 735],
2252 [1578, 782, 1642], [ 897, 516, 754], [2068, 702, 1656], [2344, 818, 1526],
2253 [ 907, 652, 592], [1056, 652, 642], [2124,1416, 780], [2664,1250, 727],
2254 [1894, 727, 1108], [2196, 657, 981], [4840, 920, 1704], [4992,1238, 983],
2255 [2420, 909, 1094], [2760, 935, 1032], [2800, 612, 853], [3068, 832, 574],
2256 [ 523,1796, 923], [ 722,1916, 1382], [1226,1542, 928], [ 758, 757, 584],
2257 [ 512,1134, 577], [ 615,1276, 698], [ 574,2568, 2356], [ 993,2728, 3512],
2258 [ 539, 890, 913], [ 694, 928, 1088], [ 805, 600, 1360], [2160, 951, 3128],
2259 [ 816, 950, 590], [ 955, 847, 811], [1094, 883, 556], [1304, 888, 604],
2260 [ 863,1170, 855], [1023, 997, 1032], [ 932,1228, 1280], [ 627, 564, 573],
2261 [ 876, 900, 1448], [1030, 857, 1792], [1294, 953, 1758], [1612, 854, 1714],
2262 [1090,1166, 631], [1314,1202, 751], [1480, 905, 795], [1682,1016, 568],
2263 [1494,1178, 983], [ 878, 613, 526], [1728,1446, 779], [2136,1348, 774],
2264 [ 950, 649, 939], [1180, 703, 899], [1236, 527, 1158], [1450, 647, 972],
2265 [1282, 647, 707], [1460, 663, 644], [1614, 572, 578], [3516,1222, 821],
2266 [2668, 729, 1682], [3128, 585, 1502], [3208, 733, 976], [6800, 871, 1416],
2267 [3480, 743, 1408], [3764, 899, 1170], [3772, 632, 875], [4092, 732, 638],
2268 [3112, 753, 2620], [3372, 945, 1890], [3768, 969, 2288], [2016, 559, 854],
2269 [1736, 729, 787], [1940, 686, 547], [2140, 635, 674], [4480,1272, 828],
2270 [3976, 592, 1666], [4384, 621, 1388], [4400, 801, 955], [4656, 522, 646],
2271 [4848, 625, 1636], [4984, 591, 874], [5352, 535, 1001], [11216,938, 1184],
2272 [ 925,3280, 1476], [ 735,1580, 1088], [1150,1576, 674], [ 655, 783, 528],
2273 [ 527,2052, 1354], [ 782,1704, 1880], [ 578, 910, 1026], [ 692, 882, 1468],
2274 [ 586, 683, 715], [ 739, 609, 717], [ 778, 773, 697], [ 922, 785, 813],
2275 [ 766, 651, 984], [ 978, 596, 1030], [1070, 757, 1080], [1324, 687, 1178],
2276 [1108,2144, 979], [ 723, 982, 690], [ 936, 956, 527], [1180,1002, 547],
2277 [ 517,1306, 825], [ 832,1184, 974], [1024, 957, 903], [1262,1090, 906],
2278 [1028, 720, 649], [1192, 679, 694], [2468,1480, 979], [2844,1370, 877],
2279 [1310, 835, 848], [1508, 839, 698], [1742,1030, 769], [1910, 852, 573],
2280 [1280, 859, 1174], [1584, 863, 1108], [1686, 708, 1364], [1942, 768, 1104],
2281 [ 891, 536, 690], [1016, 560, 663], [2172, 870, 1348], [2404, 999, 1170],
2282 [1890, 966, 889], [2116, 912, 777], [2296,1020, 714], [4872,1844, 932],
2283 [2392, 778, 929], [2604, 772, 744], [2764, 957, 722], [5832,1532, 984],
2284 [2188, 519, 1264], [2332, 532, 922], [5064, 995, 2412], [2708, 571, 874],
2285 [2408, 545, 666], [5016,1084, 875], [5376, 983, 1196], [5536, 979, 730],
2286 [5344, 634, 1744], [5688, 706, 1348], [5912, 977, 1190], [6072, 905, 763],
2287 [6048, 582, 1526], [11968,1013,1816], [12864,937, 1900], [12560,1086, 998],
2288 [1998, 684, 1884], [2504, 633, 1992], [1252, 567, 835], [1478, 571, 973],
2289 [2620, 769, 1414], [2808, 952, 1142], [2908, 712, 1028], [2976, 686, 741],
2290 [1462, 552, 714], [3296, 991, 1452], [1590, 615, 544], [3480,1150, 824],
2291 [3212, 832, 923], [3276, 839, 531], [3548, 786, 852], [3732, 764, 570],
2292 [5728, 906, 2616], [6272, 804, 2252], [3096, 535, 876], [3228, 598, 649],
2293 [6536, 759, 1436], [6648, 993, 846], [6864, 567, 1210],[14016,1012, 1302],
2294 [3408, 548, 1098], [7160,1008, 1742], [7136,1000, 1182], [7480,1032, 836],
2295 [7448, 612, 1552], [7744, 614, 816], [8384, 777, 1438], [8784, 694, 786],
2296 [ 882,1508, 1068], [ 597, 837, 766], [1270, 954, 1408], [ 803, 550, 798],
2297 [1398,1308, 798], [1848,1534, 738], [ 970, 675, 608], [1264, 706, 684],
2298 [1716, 767, 1126], [2108, 765, 1404], [2236, 924, 1003], [2472,1048, 611],
2299 [ 999, 942, 963], [1094, 857, 935], [2936, 926, 1138], [1934, 746, 551],
2300 [3336, 633, 1762], [3764, 701, 1454], [1890, 564, 636], [4096,1126, 793],
2301 [3936, 556, 1140], [3936, 540, 740], [4216, 764, 874], [8480,1328, 1014],
2302 [2184, 515, 1042], [4432, 934, 1344], [4784, 945, 1112], [5016,1062, 733],
2303 [9216,1020, 2028], [9968, 924, 1188], [5424, 909, 1206], [6512, 744, 1086]
2304 ];
2305 const RA144_GAIN_EXP_TAB: [u8; 256] = [
2306 15, 15, 15, 15, 15, 16, 14, 15, 14, 14, 14, 14, 14, 14, 14, 14,
2307 14, 13, 14, 14, 13, 14, 13, 14, 13, 13, 13, 14, 13, 13, 14, 13,
2308 13, 13, 13, 13, 14, 13, 12, 12, 13, 13, 13, 12, 13, 13, 13, 13,
2309 13, 12, 13, 13, 12, 12, 13, 13, 13, 13, 14, 14, 13, 13, 13, 13,
2310 13, 13, 13, 12, 12, 12, 13, 13, 12, 12, 12, 13, 12, 12, 12, 12,
2311 12, 12, 12, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 11, 12, 12,
2312 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 14, 13, 13, 13, 13,
2313 13, 13, 13, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 14,
2314 13, 12, 12, 11, 12, 12, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
2315 12, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 11, 11, 11, 11,
2316 12, 12, 12, 12, 11, 11, 12, 12, 12, 12, 12, 13, 12, 12, 12, 13,
2317 12, 12, 13, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14,
2318 12, 12, 11, 11, 12, 12, 12, 12, 11, 12, 11, 12, 12, 12, 12, 12,
2319 13, 13, 12, 12, 13, 13, 13, 14, 12, 13, 13, 13, 13, 13, 13, 13,
2320 11, 10, 11, 10, 11, 11, 10, 10, 11, 11, 11, 11, 10, 9, 11, 10,
2321 12, 12, 11, 12, 12, 12, 12, 13, 11, 12, 12, 12, 13, 13, 12, 12
2322 ];