summaryrefslogtreecommitdiff
path: root/lib/rbcodec/codecs/libwmapro
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rbcodec/codecs/libwmapro')
-rw-r--r--lib/rbcodec/codecs/libwmapro/README.rockbox20
-rw-r--r--lib/rbcodec/codecs/libwmapro/SOURCES4
-rw-r--r--lib/rbcodec/codecs/libwmapro/libwmapro.make18
-rw-r--r--lib/rbcodec/codecs/libwmapro/mdct_tables.c3391
-rw-r--r--lib/rbcodec/codecs/libwmapro/mdct_tables.h10
-rw-r--r--lib/rbcodec/codecs/libwmapro/quant.h53
-rw-r--r--lib/rbcodec/codecs/libwmapro/wma.c164
-rw-r--r--lib/rbcodec/codecs/libwmapro/wma.h75
-rw-r--r--lib/rbcodec/codecs/libwmapro/wmapro_math.h250
-rw-r--r--lib/rbcodec/codecs/libwmapro/wmaprodata.h615
-rw-r--r--lib/rbcodec/codecs/libwmapro/wmaprodec.c1626
-rw-r--r--lib/rbcodec/codecs/libwmapro/wmaprodec.h44
12 files changed, 6270 insertions, 0 deletions
diff --git a/lib/rbcodec/codecs/libwmapro/README.rockbox b/lib/rbcodec/codecs/libwmapro/README.rockbox
new file mode 100644
index 0000000000..5d15bdd42c
--- /dev/null
+++ b/lib/rbcodec/codecs/libwmapro/README.rockbox
@@ -0,0 +1,20 @@
1Library: libwmapro
2Imported: 2010-04-30 by Mohamed Tarek
3
4This set of files form the files needed from ffmpeg's libavcodec and libavutil
5to build a standalone wma professional decoder.
6
7LICENSING INFORMATION
8
9ffmpeg is licensed under the Lesser GNU General Public License and the file
10wmaprodec.c is copyright (c) 2007 Baptiste Coudurier, Benjamin Larsson, Ulion
11and copyright (c) 2008 - 2009 Sascha Sommer, Benjamin Larsson.
12
13IMPORT DETAILS
14
15Based on ffmpeg svn r22886 dated 15 April 2010.
16
17The decoder is a heavily modified version of the original ffmpeg floating point
18implementation. It's been modified to use fixed point arithmetic and now plays
19and seeks on all the targets that Rockbox supports. Currently only supports mono
20and stereo streams, streams with more than 2 channels are not yet supported.
diff --git a/lib/rbcodec/codecs/libwmapro/SOURCES b/lib/rbcodec/codecs/libwmapro/SOURCES
new file mode 100644
index 0000000000..296f26ab7f
--- /dev/null
+++ b/lib/rbcodec/codecs/libwmapro/SOURCES
@@ -0,0 +1,4 @@
1wmaprodec.c
2wma.c
3mdct_tables.c
4../lib/ffmpeg_bitstream.c
diff --git a/lib/rbcodec/codecs/libwmapro/libwmapro.make b/lib/rbcodec/codecs/libwmapro/libwmapro.make
new file mode 100644
index 0000000000..3db9000b43
--- /dev/null
+++ b/lib/rbcodec/codecs/libwmapro/libwmapro.make
@@ -0,0 +1,18 @@
1# __________ __ ___.
2# Open \______ \ ____ ____ | | _\_ |__ _______ ___
3# Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
4# Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
5# Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
6# \/ \/ \/ \/ \/
7# $Id$
8#
9
10# libwmapro
11WMAPROLIB := $(CODECDIR)/libwmapro.a
12WMAPROLIB_SRC := $(call preprocess, $(RBCODECLIB_DIR)/codecs/libwmapro/SOURCES)
13WMAPROLIB_OBJ := $(call c2obj, $(WMAPROLIB_SRC))
14OTHER_SRC += $(WMAPROLIB_SRC)
15
16$(WMAPROLIB): $(WMAPROLIB_OBJ)
17 $(SILENT)$(shell rm -f $@)
18 $(call PRINTS,AR $(@F))$(AR) rcs $@ $^ >/dev/null
diff --git a/lib/rbcodec/codecs/libwmapro/mdct_tables.c b/lib/rbcodec/codecs/libwmapro/mdct_tables.c
new file mode 100644
index 0000000000..bec3c37ee7
--- /dev/null
+++ b/lib/rbcodec/codecs/libwmapro/mdct_tables.c
@@ -0,0 +1,3391 @@
1#include "wmaprodec.h"
2#include <inttypes.h>
3
4/* Tables for fixed-point trig tables for windowing and mdct */
5
6/* Windowing trig tables in s.31 format */
7const int32_t sine_4096[] = {
8 0xFFF9B782, 0xFFED2685, 0xFFE09587, 0xFFD4048A, 0xFFC7738D, 0xFFBAE291,
9 0xFFAE5196, 0xFFA1C09B, 0xFF952FA1, 0xFF889EA8, 0xFF7C0DB1, 0xFF6F7CBB,
10 0xFF62EBC5, 0xFF565AD3, 0xFF49C9E1, 0xFF3D38F0, 0xFF30A803, 0xFF241716,
11 0xFF17862C, 0xFF0AF545, 0xFEFE645F, 0xFEF1D37C, 0xFEE5429B, 0xFED8B1BD,
12 0xFECC20E4, 0xFEBF900C, 0xFEB2FF37, 0xFEA66E65, 0xFE99DD96, 0xFE8D4CCB,
13 0xFE80BC06, 0xFE742B42, 0xFE679A82, 0xFE5B09C6, 0xFE4E790E, 0xFE41E85A,
14 0xFE3557AD, 0xFE28C702, 0xFE1C365B, 0xFE0FA5B9, 0xFE03151C, 0xFDF68484,
15 0xFDE9F3F3, 0xFDDD6363, 0xFDD0D2DC, 0xFDC4425A, 0xFDB7B1DB, 0xFDAB2164,
16 0xFD9E90F0, 0xFD920085, 0xFD85701D, 0xFD78DFBE, 0xFD6C4F66, 0xFD5FBF10,
17 0xFD532EC5, 0xFD469E7C, 0xFD3A0E3E, 0xFD2D7E07, 0xFD20EDD2, 0xFD145DA9,
18 0xFD07CD83, 0xFCFB3D68, 0xFCEEAD51, 0xFCE21D46, 0xFCD58D42, 0xFCC8FD41,
19 0xFCBC6D4D, 0xFCAFDD5D, 0xFCA34D79, 0xFC96BD9D, 0xFC8A2DC6, 0xFC7D9DFB,
20 0xFC710E35, 0xFC647E7C, 0xFC57EEC8, 0xFC4B5F20, 0xFC3ECF82, 0xFC323FE9,
21 0xFC25B05D, 0xFC1920D7, 0xFC0C915F, 0xFC0001F0, 0xFBF37287, 0xFBE6E329,
22 0xFBDA53DC, 0xFBCDC491, 0xFBC13551, 0xFBB4A624, 0xFBA816F8, 0xFB9B87D8,
23 0xFB8EF8C3, 0xFB8269C0, 0xFB75DAC1, 0xFB694BCC, 0xFB5CBCEB, 0xFB502E0E,
24 0xFB439F3C, 0xFB371076, 0xFB2A81C3, 0xFB1DF315, 0xFB116472, 0xFB04D5E4,
25 0xFAF8475A, 0xFAEBB8DC, 0xFADF2A73, 0xFAD29C0F, 0xFAC60DB7, 0xFAB97F6C,
26 0xFAACF137, 0xFAA06306, 0xFA93D4E3, 0xFA8746D5, 0xFA7AB8CC, 0xFA6E2AD1,
27 0xFA619CE4, 0xFA550F0D, 0xFA48813C, 0xFA3BF379, 0xFA2F65CC, 0xFA22D825,
28 0xFA164A8D, 0xFA09BD04, 0xF9FD2F91, 0xF9F0A225, 0xF9E414C8, 0xF9D78782,
29 0xF9CAFA43, 0xF9BE6D14, 0xF9B1DFFC, 0xF9A552EB, 0xF998C5EB, 0xF98C38FA,
30 0xF97FAC21, 0xF9731F50, 0xF966928F, 0xF95A05E6, 0xF94D7946, 0xF940ECB6,
31 0xF9346037, 0xF927D3D1, 0xF91B4774, 0xF90EBB28, 0xF9022EF4, 0xF8F5A2CA,
32 0xF8E916B2, 0xF8DC8AAB, 0xF8CFFEBD, 0xF8C372DA, 0xF8B6E708, 0xF8AA5B50,
33 0xF89DCFA2, 0xF8914407, 0xF884B885, 0xF8782D0F, 0xF86BA1AA, 0xF85F1659,
34 0xF8528B22, 0xF845FFF6, 0xF83974DE, 0xF82CE9E0, 0xF8205EEE, 0xF813D40F,
35 0xF8074944, 0xF7FABE95, 0xF7EE33F1, 0xF7E1A961, 0xF7D51EE5, 0xF7C8947E,
36 0xF7BC0A3A, 0xF7AF7FFB, 0xF7A2F5D1, 0xF7966BBB, 0xF789E1BA, 0xF77D57CE,
37 0xF770CDF7, 0xF7644445, 0xF757BA98, 0xF74B3100, 0xF73EA77E, 0xF7321E12,
38 0xF72594BB, 0xF7190B7B, 0xF70C8260, 0xF6FFF94B, 0xF6F3704C, 0xF6E6E764,
39 0xF6DA5E92, 0xF6CDD5D7, 0xF6C14D43, 0xF6B4C4B5, 0xF6A83C3E, 0xF69BB3DE,
40 0xF68F2B96, 0xF682A365, 0xF6761B4B, 0xF6699358, 0xF65D0B6E, 0xF650839B,
41 0xF643FBE0, 0xF637743D, 0xF62AECB2, 0xF61E6540, 0xF611DDF5, 0xF60556B4,
42 0xF5F8CF8B, 0xF5EC487A, 0xF5DFC183, 0xF5D33AA4, 0xF5C6B3DF, 0xF5BA2D43,
43 0xF5ADA6B0, 0xF5A12037, 0xF59499D7, 0xF5881391, 0xF57B8D65, 0xF56F0753,
44 0xF562816B, 0xF555FB8D, 0xF54975C9, 0xF53CF020, 0xF5306A91, 0xF523E51D,
45 0xF5175FC4, 0xF50ADA96, 0xF4FE5572, 0xF4F1D06A, 0xF4E54B7D, 0xF4D8C6AC,
46 0xF4CC41F6, 0xF4BFBD5C, 0xF4B338ED, 0xF4A6B48B, 0xF49A3044, 0xF48DAC1A,
47 0xF481280B, 0xF474A41A, 0xF4682054, 0xF45B9C9B, 0xF44F18FF, 0xF4429580,
48 0xF436121E, 0xF4298ED9, 0xF41D0BB1, 0xF41088B6, 0xF40405C9, 0xF3F782F9,
49 0xF3EB0047, 0xF3DE7DB3, 0xF3D1FB3D, 0xF3C578E5, 0xF3B8F6BB, 0xF3AC749F,
50 0xF39FF2A2, 0xF39370C3, 0xF386EF03, 0xF37A6D62, 0xF36DEBE0, 0xF3616A8C,
51 0xF354E948, 0xF3486823, 0xF33BE71E, 0xF32F6638, 0xF322E571, 0xF31664CA,
52 0xF309E453, 0xF2FD63ED, 0xF2F0E3A6, 0xF2E4637F, 0xF2D7E379, 0xF2CB6393,
53 0xF2BEE3CE, 0xF2B2643A, 0xF2A5E4B6, 0xF2996553, 0xF28CE612, 0xF28066F1,
54 0xF273E7F2, 0xF2676924, 0xF25AEA68, 0xF24E6BCE, 0xF241ED55, 0xF2356EFE,
55 0xF228F0C9, 0xF21C72B7, 0xF20FF4D6, 0xF2037708, 0xF1F6F95D, 0xF1EA7BD4,
56 0xF1DDFE6E, 0xF1D1812B, 0xF1C5040B, 0xF1B8871D, 0xF1AC0A43, 0xF19F8D8D,
57 0xF19310FA, 0xF186948A, 0xF17A183F, 0xF16D9C17, 0xF1612023, 0xF154A443,
58 0xF1482887, 0xF13BACF0, 0xF12F317D, 0xF122B62F, 0xF1163B05, 0xF109C010,
59 0xF0FD4530, 0xF0F0CA75, 0xF0E44FDF, 0xF0D7D56F, 0xF0CB5B24, 0xF0BEE0FE,
60 0xF0B2670E, 0xF0A5ED34, 0xF0997380, 0xF08CF9F1, 0xF0808089, 0xF0740747,
61 0xF0678E2C, 0xF05B1546, 0xF04E9C78, 0xF04223D0, 0xF035AB4F, 0xF02932F5,
62 0xF01CBAC2, 0xF01042C6, 0xF003CAE2, 0xEFF75325, 0xEFEADB90, 0xEFDE6422,
63 0xEFD1ECDC, 0xEFC575BE, 0xEFB8FEC8, 0xEFAC87FB, 0xEFA01155, 0xEF939AD8,
64 0xEF8724A3, 0xEF7AAE77, 0xEF6E3874, 0xEF61C29A, 0xEF554CE9, 0xEF48D761,
65 0xEF3C6202, 0xEF2FECCC, 0xEF2377C0, 0xEF1702DE, 0xEF0A8E25, 0xEEFE1996,
66 0xEEF1A531, 0xEEE53116, 0xEED8BD06, 0xEECC491F, 0xEEBFD563, 0xEEB361D2,
67 0xEEA6EE6C, 0xEE9A7B30, 0xEE8E081F, 0xEE819539, 0xEE75227E, 0xEE68AFEF,
68 0xEE5C3D8B, 0xEE4FCB53, 0xEE435946, 0xEE36E784, 0xEE2A75CF, 0xEE1E0446,
69 0xEE1192E9, 0xEE0521B8, 0xEDF8B0B4, 0xEDEC3FDC, 0xEDDFCF31, 0xEDD35EB2,
70 0xEDC6EE60, 0xEDBA7E3C, 0xEDAE0E44, 0xEDA19E79, 0xED952EDC, 0xED88BF8C,
71 0xED7C504A, 0xED6FE135, 0xED63724F, 0xED570396, 0xED4A950B, 0xED3E26AF,
72 0xED31B880, 0xED254A80, 0xED18DCAF, 0xED0C6F0C, 0xED000198, 0xECF39453,
73 0xECE7273D, 0xECDABA76, 0xECCE4DBE, 0xECC1E136, 0xECB574DD, 0xECA908B4,
74 0xEC9C9CBA, 0xEC9030F0, 0xEC83C557, 0xEC7759ED, 0xEC6AEEB3, 0xEC5E83AA,
75 0xEC5218D1, 0xEC45AE29, 0xEC3943D1, 0xEC2CD98B, 0xEC206F75, 0xEC140590,
76 0xEC079BDD, 0xEBFB325A, 0xEBEEC909, 0xEBE25FEA, 0xEBD5F6FC, 0xEBC98E40,
77 0xEBBD25B6, 0xEBB0BD5E, 0xEBA45538, 0xEB97ED44, 0xEB8B85A2, 0xEB7F1E13,
78 0xEB72B6B7, 0xEB664F8D, 0xEB59E896, 0xEB4D81D2, 0xEB411B41, 0xEB34B4E4,
79 0xEB284EB9, 0xEB1BE8C2, 0xEB0F82FF, 0xEB031D6F, 0xEAF6B813, 0xEAEA52EB,
80 0xEADDEE17, 0xEAD18957, 0xEAC524CB, 0xEAB8C074, 0xEAAC5C51, 0xEA9FF863,
81 0xEA9394AA, 0xEA873126, 0xEA7ACDD6, 0xEA6E6ABC, 0xEA6207D6, 0xEA55A527,
82 0xEA4942AC, 0xEA3CE087, 0xEA307E78, 0xEA241C9E, 0xEA17BAFB, 0xEA0B598E,
83 0xE9FEF857, 0xE9F29756, 0xE9E6368B, 0xE9D9D5F7, 0xE9CD759A, 0xE9C11574,
84 0xE9B4B584, 0xE9A855CC, 0xE99BF64A, 0xE98F971F, 0xE983380D, 0xE976D931,
85 0xE96A7A8D, 0xE95E1C21, 0xE951BDED, 0xE9455FF1, 0xE939022D, 0xE92CA4A1,
86 0xE920474D, 0xE913EA32, 0xE9078D50, 0xE8FB30A6, 0xE8EED434, 0xE8E2781C,
87 0xE8D61C1C, 0xE8C9C056, 0xE8BD64CA, 0xE8B10976, 0xE8A4AE5C, 0xE898537C,
88 0xE88BF8D6, 0xE87F9E69, 0xE8734436, 0xE866EA3E, 0xE85A9080, 0xE84E36FC,
89 0xE841DDD2, 0xE83584C3, 0xE8292BEF, 0xE81CD355, 0xE8107AF7, 0xE80422D3,
90 0xE7F7CAEB, 0xE7EB733E, 0xE7DF1BCD, 0xE7D2C497, 0xE7C66D9C, 0xE7BA16DE,
91 0xE7ADC05B, 0xE7A16A15, 0xE795142A, 0xE788BE5B, 0xE77C68C9, 0xE7701374,
92 0xE763BE5B, 0xE757697F, 0xE74B14E0, 0xE73EC07E, 0xE7326C58, 0xE7261871,
93 0xE719C4C6, 0xE70D7159, 0xE7011E29, 0xE6F4CB37, 0xE6E878A2, 0xE6DC262C,
94 0xE6CFD3F4, 0xE6C381F9, 0xE6B7303E, 0xE6AADEC0, 0xE69E8D81, 0xE6923C81,
95 0xE685EBBF, 0xE6799B3D, 0xE66D4AF9, 0xE660FAF4, 0xE654AB2F, 0xE6485BA9,
96 0xE63C0C81, 0xE62FBD7A, 0xE6236EB3, 0xE617202B, 0xE60AD1E4, 0xE5FE83DC,
97 0xE5F23615, 0xE5E5E88E, 0xE5D99B47, 0xE5CD4E41, 0xE5C1017B, 0xE5B4B4F6,
98 0xE5A868B2, 0xE59C1CCF, 0xE58FD10D, 0xE583858C, 0xE5773A4D, 0xE56AEF4F,
99 0xE55EA493, 0xE5525A19, 0xE5460FE0, 0xE539C5EA, 0xE52D7C35, 0xE52132C2,
100 0xE514E992, 0xE508A0A5, 0xE4FC57F9, 0xE4F00FB0, 0xE4E3C78A, 0xE4D77FA8,
101 0xE4CB3808, 0xE4BEF0AB, 0xE4B2A992, 0xE4A662BB, 0xE49A1C29, 0xE48DD5DA,
102 0xE4818FCE, 0xE4754A07, 0xE4690483, 0xE45CBF44, 0xE4507A49, 0xE44435B1,
103 0xE437F13F, 0xE42BAD11, 0xE41F6927, 0xE4132583, 0xE406E223, 0xE3FA9F09,
104 0xE3EE5C33, 0xE3E219A3, 0xE3D5D758, 0xE3C99553, 0xE3BD5393, 0xE3B11219,
105 0xE3A4D104, 0xE3989016, 0xE38C4F6E, 0xE3800F0C, 0xE373CEF1, 0xE3678F1C,
106 0xE35B4F8D, 0xE34F1045, 0xE342D144, 0xE336928A, 0xE32A5417, 0xE31E15EB,
107 0xE311D806, 0xE3059A69, 0xE2F95D32, 0xE2ED2024, 0xE2E0E35D, 0xE2D4A6DF,
108 0xE2C86AA8, 0xE2BC2EB9, 0xE2AFF313, 0xE2A3B7B5, 0xE2977C9F, 0xE28B41D2,
109 0xE27F074E, 0xE272CD13, 0xE2669320, 0xE25A5976, 0xE24E2035, 0xE241E71E,
110 0xE235AE50, 0xE22975CC, 0xE21D3D91, 0xE21105A0, 0xE204CDF9, 0xE1F8969C,
111 0xE1EC5F89, 0xE1E028C0, 0xE1D3F242, 0xE1C7BC0E, 0xE1BB8624, 0xE1AF50A5,
112 0xE1A31B51, 0xE196E648, 0xE18AB18A, 0xE17E7D17, 0xE17248EF, 0xE1661513,
113 0xE159E182, 0xE14DAE3D, 0xE1417B44, 0xE1354896, 0xE1291635, 0xE11CE41F,
114 0xE110B256, 0xE10480F8, 0xE0F84FC8, 0xE0EC1EE4, 0xE0DFEE4D, 0xE0D3BE03,
115 0xE0C78E05, 0xE0BB5E55, 0xE0AF2EF1, 0xE0A2FFDB, 0xE096D113, 0xE08AA298,
116 0xE07E746A, 0xE072468A, 0xE06618F9, 0xE059EBD4, 0xE04DBEDE, 0xE0419236,
117 0xE03565DD, 0xE02939D2, 0xE01D0E16, 0xE010E2A8, 0xE004B789, 0xDFF88CB9,
118 0xDFEC6238, 0xDFE03807, 0xDFD40E24, 0xDFC7E491, 0xDFBBBB4D, 0xDFAF9259,
119 0xDFA369B5, 0xDF974161, 0xDF8B195C, 0xDF7EF1A8, 0xDF72CA44, 0xDF66A36E,
120 0xDF5A7CAB, 0xDF4E5638, 0xDF423015, 0xDF360A44, 0xDF29E4C4, 0xDF1DBF94,
121 0xDF119AB6, 0xDF057629, 0xDEF951ED, 0xDEED2E03, 0xDEE10A6A, 0xDED4E723,
122 0xDEC8C42E, 0xDEBCA18B, 0xDEB07F3A, 0xDEA45D3B, 0xDE983B8F, 0xDE8C1A35,
123 0xDE7FF92D, 0xDE73D878, 0xDE67B816, 0xDE5B9807, 0xDE4F784B, 0xDE4358E2,
124 0xDE3739CC, 0xDE2B1B09, 0xDE1EFC9A, 0xDE12DEBD, 0xDE06C0F5, 0xDDFAA381,
125 0xDDEE8661, 0xDDE26995, 0xDDD64D1D, 0xDDCA30FA, 0xDDBE152B, 0xDDB1F9B1,
126 0xDDA5DE8B, 0xDD99C3BA, 0xDD8DA93D, 0xDD818F16, 0xDD757544, 0xDD695BC7,
127 0xDD5D42A0, 0xDD5129CE, 0xDD451151, 0xDD38F92B, 0xDD2CE15A, 0xDD20C9DF,
128 0xDD14B2BA, 0xDD089BEB, 0xDCFC8572, 0xDCF06F50, 0xDCE45984, 0xDCD8440F,
129 0xDCCC2F2E, 0xDCC01A67, 0xDCB405F7, 0xDCA7F1DD, 0xDC9BDE1B, 0xDC8FCAB0,
130 0xDC83B79D, 0xDC77A4E1, 0xDC6B927D, 0xDC5F8070, 0xDC536EBC, 0xDC475D5F,
131 0xDC3B4C5B, 0xDC2F3BAF, 0xDC232B5B, 0xDC171B60, 0xDC0B0BBE, 0xDBFEFC74,
132 0xDBF2ED83, 0xDBE6DEEB, 0xDBDAD0AC, 0xDBCEC2C6, 0xDBC2B539, 0xDBB6A806,
133 0xDBAA9B2D, 0xDB9E8EAD, 0xDB928287, 0xDB8676BA, 0xDB7A6B85, 0xDB6E606D,
134 0xDB6255AF, 0xDB564B4C, 0xDB4A4143, 0xDB3E3794, 0xDB322E40, 0xDB262547,
135 0xDB1A1CA9, 0xDB0E1466, 0xDB020C7E, 0xDAF604F1, 0xDAE9FDC0, 0xDADDF6EA,
136 0xDAD1F070, 0xDAC5EA52, 0xDAB9E48F, 0xDAADDF29, 0xDAA1DA1E, 0xDA95D570,
137 0xDA89D11E, 0xDA7DCD29, 0xDA71C990, 0xDA65C653, 0xDA59C374, 0xDA4DC0F1,
138 0xDA41BECB, 0xDA35BD40, 0xDA29BBD5, 0xDA1DBAC7, 0xDA11BA17, 0xDA05B9C4,
139 0xD9F9B9CF, 0xD9EDBA37, 0xD9E1BAFE, 0xD9D5BC23, 0xD9C9BDA6, 0xD9BDBF87,
140 0xD9B1C1C6, 0xD9A5C464, 0xD999C761, 0xD98DCABC, 0xD981CE77, 0xD975D290,
141 0xD969D708, 0xD95DDBE0, 0xD951E117, 0xD945E6AD, 0xD939ECA3, 0xD92DF2F9,
142 0xD921F9AE, 0xD91600C3, 0xD90A0839, 0xD8FE100E, 0xD8F21881, 0xD8E62117,
143 0xD8DA2A0D, 0xD8CE3364, 0xD8C23D1C, 0xD8B64735, 0xD8AA51AE, 0xD89E5C89,
144 0xD89267C5, 0xD8867362, 0xD87A7F60, 0xD86E8BC0, 0xD8629882, 0xD856A5A5,
145 0xD84AB32A, 0xD83EC112, 0xD832CF5B, 0xD826DE06, 0xD81AED14, 0xD80EFC84,
146 0xD8030C57, 0xD7F71C8D, 0xD7EB2D25, 0xD7DF3E20, 0xD7D34F7E, 0xD7C76140,
147 0xD7BB7364, 0xD7AF85EC, 0xD7A39914, 0xD797AC63, 0xD78BC016, 0xD77FD42C,
148 0xD773E8A7, 0xD767FD85, 0xD75C12C8, 0xD750286F, 0xD7443E7A, 0xD73854EA,
149 0xD72C6BBE, 0xD72082F7, 0xD7149A95, 0xD708B298, 0xD6FCCB00, 0xD6F0E3CE,
150 0xD6E4FD00, 0xD6D91698, 0xD6CD3096, 0xD6C14AF9, 0xD6B565C2, 0xD6A980F0,
151 0xD69D9C85, 0xD691B880, 0xD685D4E1, 0xD679F1A9, 0xD66E0ED7, 0xD6622CA8,
152 0xD6564AA3, 0xD64A6905, 0xD63E87CE, 0xD632A6FE, 0xD626C695, 0xD61AE693,
153 0xD60F06F9, 0xD60327C6, 0xD5F748FB, 0xD5EB6A98, 0xD5DF8C9C, 0xD5D3AF08,
154 0xD5C7D1DD, 0xD5BBF519, 0xD5B018BE, 0xD5A43CCB, 0xD5986141, 0xD58C861F,
155 0xD580AB66, 0xD574D116, 0xD568F72F, 0xD55D1DB1, 0xD551449C, 0xD5456BF1,
156 0xD53993AF, 0xD52DBBD6, 0xD521E468, 0xD5160D9F, 0xD50A3704, 0xD4FE60D2,
157 0xD4F28B0B, 0xD4E6B5AF, 0xD4DAE0BC, 0xD4CF0C34, 0xD4C33817, 0xD4B76464,
158 0xD4AB911C, 0xD49FBE3F, 0xD493EBCD, 0xD48819C6, 0xD47C482A, 0xD47076FA,
159 0xD464A635, 0xD458D5DC, 0xD44D05EE, 0xD441366D, 0xD4356757, 0xD42998AD,
160 0xD41DCA70, 0xD411FC9E, 0xD4062F3A, 0xD3FA6241, 0xD3EE95B6, 0xD3E2C997,
161 0xD3D6FE21, 0xD3CB32DB, 0xD3BF6803, 0xD3B39D98, 0xD3A7D39B, 0xD39C0A0B,
162 0xD39040E8, 0xD3847833, 0xD378AFEC, 0xD36CE812, 0xD36120A7, 0xD35559A9,
163 0xD349931A, 0xD33DCCFA, 0xD3320747, 0xD3264203, 0xD31A7D2E, 0xD30EB8C8,
164 0xD302F4D0, 0xD2F73148, 0xD2EB6E2F, 0xD2DFAB85, 0xD2D3E94A, 0xD2C8277F,
165 0xD2BC6623, 0xD2B0A537, 0xD2A4E4BB, 0xD29924EA, 0xD28D654E, 0xD281A622,
166 0xD275E766, 0xD26A291A, 0xD25E6B3F, 0xD252ADD4, 0xD246F0DB, 0xD23B3452,
167 0xD22F783A, 0xD223BC93, 0xD218015D, 0xD20C4698, 0xD2008C45, 0xD1F4D263,
168 0xD1E918F3, 0xD1DD5FF5, 0xD1D1A768, 0xD1C5EF4E, 0xD1BA37A5, 0xD1AE806F,
169 0xD1A2C9AB, 0xD1971359, 0xD18B5D7A, 0xD17FA80E, 0xD173F314, 0xD1683E8D,
170 0xD15C8A79, 0xD150D714, 0xD14523E6, 0xD139712C, 0xD12DBEE5, 0xD1220D11,
171 0xD1165BB1, 0xD10AAAC5, 0xD0FEFA4D, 0xD0F34A49, 0xD0E79AB9, 0xD0DBEB9D,
172 0xD0D03CF5, 0xD0C48EC2, 0xD0B8E103, 0xD0AD33B9, 0xD0A186E4, 0xD095DA84,
173 0xD08A2E98, 0xD07E8322, 0xD072D821, 0xD0672D95, 0xD05B837F, 0xD04FD9DE,
174 0xD04430B3, 0xD03887FE, 0xD02CDFBF, 0xD02137F5, 0xD01590DD, 0xD009EA00,
175 0xCFFE439A, 0xCFF29DA9, 0xCFE6F830, 0xCFDB532D, 0xCFCFAEA1, 0xCFC40A8B,
176 0xCFB866ED, 0xCFACC3C6, 0xCFA12116, 0xCF957EDD, 0xCF89DD1C, 0xCF7E3BD3,
177 0xCF729B01, 0xCF66FAA7, 0xCF5B5AC5, 0xCF4FBB5A, 0xCF441C68, 0xCF387DEF,
178 0xCF2CDFED, 0xCF214264, 0xCF15A554, 0xCF0A08BC, 0xCEFE6C9E, 0xCEF2D0F8,
179 0xCEE735CB, 0xCEDB9B17, 0xCED00118, 0xCEC46757, 0xCEB8CE0F, 0xCEAD3541,
180 0xCEA19CED, 0xCE960512, 0xCE8A6DB1, 0xCE7ED6CB, 0xCE73405E, 0xCE67AA6C,
181 0xCE5C14F4, 0xCE507FF7, 0xCE44EB74, 0xCE39576C, 0xCE2DC3DF, 0xCE2230CD,
182 0xCE169E36, 0xCE0B0C1A, 0xCDFF7A79, 0xCDF3E953, 0xCDE858A9, 0xCDDCC87B,
183 0xCDD138C8, 0xCDC5A992, 0xCDBA1AD7, 0xCDAE8C98, 0xCDA2FED5, 0xCD9771C9,
184 0xCD8BE4FF, 0xCD8058B2, 0xCD74CCE1, 0xCD69418D, 0xCD5DB6B5, 0xCD522C5B,
185 0xCD46A27D, 0xCD3B191D, 0xCD2F903A, 0xCD2407D4, 0xCD187FEC, 0xCD0CF882,
186 0xCD017195, 0xCCF5EB26, 0xCCEA6535, 0xCCDEDFC2, 0xCCD35ACD, 0xCCC7D656,
187 0xCCBC525E, 0xCCB0CEE4, 0xCCA54BE9, 0xCC99C96D, 0xCC8E476F, 0xCC82C5F1,
188 0xCC7744F1, 0xCC6BC470, 0xCC6044AA, 0xCC54C528, 0xCC494626, 0xCC3DC7A3,
189 0xCC3249A0, 0xCC26CC1D, 0xCC1B4F19, 0xCC0FD296, 0xCC045693, 0xCBF8DB10,
190 0xCBED600E, 0xCBE1E58C, 0xCBD66B8B, 0xCBCAF20A, 0xCBBF790A, 0xCBB4008B,
191 0xCBA8888D, 0xCB9D1111, 0xCB919A15, 0xCB86239B, 0xCB7AADA2, 0xCB6F382B,
192 0xCB63C336, 0xCB584EC3, 0xCB4CDAD1, 0xCB416761, 0xCB35F474, 0xCB2A8209,
193 0xCB1F105A, 0xCB139EF4, 0xCB082E10, 0xCAFCBDAF, 0xCAF14DD1, 0xCAE5DE76,
194 0xCADA6F9D, 0xCACF0148, 0xCAC39376, 0xCAB82628, 0xCAACB95D, 0xCAA14D15,
195 0xCA95E151, 0xCA8A7611, 0xCA7F0B55, 0xCA73A11D, 0xCA683769, 0xCA5CCE39,
196 0xCA51658E, 0xCA45FD67, 0xCA3A95C4, 0xCA2F2EA7, 0xCA23C80E, 0xCA1861FA,
197 0xCA0CFC6B, 0xCA019761, 0xC9F632DC, 0xC9EACF17, 0xC9DF6B9D, 0xC9D408A8,
198 0xC9C8A63A, 0xC9BD4451, 0xC9B1E2EE, 0xC9A68211, 0xC99B21BA, 0xC98FC1E9,
199 0xC984629E, 0xC97903DA, 0xC96DA59D, 0xC96247E6, 0xC956EAB6, 0xC94B8E0D,
200 0xC94031EB, 0xC934D650, 0xC9297B3C, 0xC91E20AF, 0xC912C6AA, 0xC9076D2C,
201 0xC8FC1436, 0xC8F0BBC8, 0xC8E563E2, 0xC8DA0C83, 0xC8CEB5AD, 0xC8C35F5F,
202 0xC8B80999, 0xC8ACB495, 0xC8A15FE0, 0xC8960BB4, 0xC88AB810, 0xC87F64F5,
203 0xC8741263, 0xC868C05B, 0xC85D6EDB, 0xC8521DE5, 0xC846CD78, 0xC83B7D94,
204 0xC8302E3A, 0xC824DF6A, 0xC8199124, 0xC80E4367, 0xC802F635, 0xC7F7A98D,
205 0xC7EC5D6F, 0xC7E111DB, 0xC7D5C6D2, 0xC7CA7C53, 0xC7BF325F, 0xC7B3E8F6,
206 0xC7A8A018, 0xC79D57C5, 0xC7920FFD, 0xC786C8C0, 0xC77B8248, 0xC7703C22,
207 0xC764F688, 0xC759B179, 0xC74E6CF6, 0xC74328FF, 0xC737E594, 0xC72CA2B5,
208 0xC7216062, 0xC7161E9C, 0xC70ADD62, 0xC6FF9CB4, 0xC6F45C93, 0xC6E91CFF,
209 0xC6DDDDF8, 0xC6D29F7E, 0xC6C76190, 0xC6BC2430, 0xC6B0E75E, 0xC6A5AB18,
210 0xC69A6F61, 0xC68F3436, 0xC683F99A, 0xC678BF8B, 0xC66D860B, 0xC6624D18,
211 0xC65714B4, 0xC64BDD17, 0xC640A5CF, 0xC6356F16, 0xC62A38EB, 0xC61F034F,
212 0xC613CE42, 0xC60899C3, 0xC5FD65D4, 0xC5F23274, 0xC5E6FFA3, 0xC5DBCD62,
213 0xC5D09BB0, 0xC5C56A8D, 0xC5BA39FA, 0xC5AF09F7, 0xC5A3DA84, 0xC598ABA1,
214 0xC58D7D4E, 0xC5824F8B, 0xC5772258, 0xC56BF5B6, 0xC560C9A5, 0xC5559E24,
215 0xC54A7334, 0xC53F48D5, 0xC5341F06, 0xC528F5C9, 0xC51DCD1D, 0xC512A53B,
216 0xC5077DB2, 0xC4FC56BA, 0xC4F13053, 0xC4E60A7F, 0xC4DAE53C, 0xC4CFC08B,
217 0xC4C49C6D, 0xC4B978E0, 0xC4AE55E6, 0xC4A3337E, 0xC49811A8, 0xC48CF065,
218 0xC481CFB5, 0xC476AF98, 0xC46B900D, 0xC4607116, 0xC45552B1, 0xC44A34E0,
219 0xC43F17A2, 0xC433FAF8, 0xC428DEE1, 0xC41DC35E, 0xC412A86E, 0xC4078E12,
220 0xC3FC744B, 0xC3F15B17, 0xC3E642B0, 0xC3DB2AA5, 0xC3D0132F, 0xC3C4FC4C,
221 0xC3B9E5FF, 0xC3AED046, 0xC3A3BB22, 0xC398A693, 0xC38D9299, 0xC3827F34,
222 0xC3776C64, 0xC36C5A2A, 0xC3614885, 0xC3563776, 0xC34B26FC, 0xC3401719,
223 0xC33507CB, 0xC329F913, 0xC31EEAF1, 0xC313DD66, 0xC308D070, 0xC2FDC412,
224 0xC2F2B849, 0xC2E7AD18, 0xC2DCA27D, 0xC2D19879, 0xC2C68F0C, 0xC2BB8636,
225 0xC2B07E2F, 0xC2A57687, 0xC29A6F77, 0xC28F68FF, 0xC284631E, 0xC2795DD4,
226 0xC26E5923, 0xC2635509, 0xC2585187, 0xC24D4E9E, 0xC2424C4C, 0xC2374A94,
227 0xC22C4973, 0xC22148EB, 0xC21648FC, 0xC20B49A5, 0xC2004AE8, 0xC1F54CC3,
228 0xC1EA4F37, 0xC1DF5245, 0xC1D455EC, 0xC1C95A2C, 0xC1BE5F06, 0xC1B36479,
229 0xC1A86A87, 0xC19D712E, 0xC192786E, 0xC1878049, 0xC17C88BE, 0xC17191CE,
230 0xC1669B77, 0xC15BA5BC, 0xC150B09A, 0xC145BC14, 0xC13AC828, 0xC12FD4D7,
231 0xC124E221, 0xC119F006, 0xC10EFE86, 0xC1040DA2, 0xC0F91D59, 0xC0EE2E1B,
232 0xC0E33F09, 0xC0D85093, 0xC0CD62B8, 0xC0C2757A, 0xC0B788D8, 0xC0AC9CD1,
233 0xC0A1B167, 0xC096C69A, 0xC08BDC69, 0xC080F2D4, 0xC07609DC, 0xC06B2181,
234 0xC06039C3, 0xC05552A2, 0xC04A6C1D, 0xC03F8636, 0xC034A0ED, 0xC029BC40,
235 0xC01ED832, 0xC013F4C1, 0xC00911ED, 0xBFFE2FB8, 0xBFF34E20, 0xBFE86D26,
236 0xBFDD8CCB, 0xBFD2AD0E, 0xBFC7CDEF, 0xBFBCEF6E, 0xBFB2118C, 0xBFA73449,
237 0xBF9C57A5, 0xBF917B9F, 0xBF86A039, 0xBF7BC571, 0xBF70EB49, 0xBF6611C0,
238 0xBF5B38D6, 0xBF50608C, 0xBF4588E2, 0xBF3AB1D7, 0xBF2FDB6C, 0xBF2505A1,
239 0xBF1A3076, 0xBF0F5BEB, 0xBF048800, 0xBEF9B4B6, 0xBEEEE20C, 0xBEE41003,
240 0xBED93E9A, 0xBECE6DD2, 0xBEC39DAB, 0xBEB8CE25, 0xBEADFF40, 0xBEA330FC,
241 0xBE9863C8, 0xBE8D96C6, 0xBE82CA67, 0xBE77FEA9, 0xBE6D338C, 0xBE626911,
242 0xBE579F39, 0xBE4CD602, 0xBE420D6D, 0xBE37457B, 0xBE2C7E2B, 0xBE21B77D,
243 0xBE16F172, 0xBE0C2C09, 0xBE016744, 0xBDF6A321, 0xBDEBDFA1, 0xBDE11CC4,
244 0xBDD65A8A, 0xBDCB98F3, 0xBDC0D800, 0xBDB617B0, 0xBDAB5804, 0xBDA098FB,
245 0xBD95DA97, 0xBD8B1CD6, 0xBD805FB9, 0xBD75A340, 0xBD6AE76B, 0xBD602C3B,
246 0xBD5571AF, 0xBD4AB7C7, 0xBD3FFE84, 0xBD3545E6, 0xBD2A8DED, 0xBD1FD698,
247 0xBD151FE9, 0xBD0A69DE, 0xBCFFB479, 0xBCF4FFB9, 0xBCEA4B9F, 0xBCDF982A,
248 0xBCD4E55B, 0xBCCA3331, 0xBCBF81AE, 0xBCB4D0D0, 0xBCAA2098, 0xBC9F7107,
249 0xBC94C21B, 0xBC8A13D6, 0xBC7F6638, 0xBC74B940, 0xBC6A0CEE, 0xBC5F6144,
250 0xBC54B6AD, 0xBC4A0C50, 0xBC3F629B, 0xBC34B98C, 0xBC2A1125, 0xBC1F6965,
251 0xBC14C24D, 0xBC0A1BDC, 0xBBFF7613, 0xBBF4D0F1, 0xBBEA2C78, 0xBBDF88A7,
252 0xBBD4E57D, 0xBBCA42FC, 0xBBBFA123, 0xBBB4FFF3, 0xBBAA5F6B, 0xBB9FBF8C,
253 0xBB952055, 0xBB8A81C8, 0xBB7FE3E3, 0xBB7546A7, 0xBB6AAA14, 0xBB600E2B,
254 0xBB5572EB, 0xBB4AD854, 0xBB403E67, 0xBB35A523, 0xBB2B0C89, 0xBB207499,
255 0xBB15DD53, 0xBB0B46B7, 0xBB00B0C5, 0xBAF61B7E, 0xBAEB86E0, 0xBAE0F2EE,
256 0xBAD65FA5, 0xBACBCD08, 0xBAC13B15, 0xBAB6A9CD, 0xBAAC1930, 0xBAA1893E,
257 0xBA96F9F7, 0xBA8C6B5B, 0xBA81DD6B, 0xBA775026, 0xBA6CC38D, 0xBA6237A0,
258 0xBA57AC5E, 0xBA4D21C8, 0xBA4297DE, 0xBA380EA1, 0xBA2D860F, 0xBA22FE2A,
259 0xBA1876F1, 0xBA0DF0CF, 0xBA036AEF, 0xB9F8E5BC, 0xB9EE6136, 0xB9E3DD5C,
260 0xB9D95A30, 0xB9CED7B0, 0xB9C455DE, 0xB9B9D4B9, 0xB9AF5441, 0xB9A4D477,
261 0xB99A555B, 0xB98FD6EC, 0xB985592B, 0xB97ADC18, 0xB9705FB3, 0xB965E3FC,
262 0xB95B68F3, 0xB950EE99, 0xB94674EC, 0xB93BFBEF, 0xB93183A0, 0xB9270C00,
263 0xB91C950E, 0xB9121ECC, 0xB907A938, 0xB8FD3454, 0xB8F2C01F, 0xB8E84C99,
264 0xB8DDD9C2, 0xB8D3679B, 0xB8C8F624, 0xB8BE855C, 0xB8B41545, 0xB8A9A5DD,
265 0xB89F3725, 0xB894C91D, 0xB88A5BC6, 0xB87FEF1E, 0xB8758328, 0xB86B17E1,
266 0xB860AD4C, 0xB8564367, 0xB84BDA33, 0xB84171B0, 0xB83709DE, 0xB82CA2BD,
267 0xB8223C4D, 0xB817D68E, 0xB80D7181, 0xB8030D26, 0xB7F8A97C, 0xB7EE4684,
268 0xB7E3E43D, 0xB7D982A9, 0xB7CF2230, 0xB7C4C200, 0xB7BA6282, 0xB7B003B6,
269 0xB7A5A59D, 0xB79B4836, 0xB790EB82, 0xB7868F80, 0xB77C3432, 0xB771D996,
270 0xB7677FAD, 0xB75D2678, 0xB752CDF5, 0xB7487626, 0xB73E1F0B, 0xB733C8A3,
271 0xB72972EE, 0xB71F1DEE, 0xB714C9A1, 0xB70A7608, 0xB7002323, 0xB6F5D0F2,
272 0xB6EB7F75, 0xB6E12EAD, 0xB6D6DE99, 0xB6CC8F3A, 0xB6C2408F, 0xB6B7F299,
273 0xB6ADA558, 0xB6A358CB, 0xB6990CF4, 0xB68EC1D2, 0xB6847765, 0xB67A2DAD,
274 0xB66FE4AB, 0xB6659C5E, 0xB65B54C7, 0xB6510DE6, 0xB646C7BA, 0xB63C8245,
275 0xB6323D85, 0xB627F97B, 0xB61DB628, 0xB613738B, 0xB60931A4, 0xB5FEF074,
276 0xB5F4AFFA, 0xB5EA7038, 0xB5E0312C, 0xB5D5F2D6, 0xB5CBB538, 0xB5C17851,
277 0xB5B73C21, 0xB5AD00A9, 0xB5A2C5E7, 0xB5988C46, 0xB58E52F4, 0xB5841A59,
278 0xB579E276, 0xB56FAB4B, 0xB56574D9, 0xB55B3F1E, 0xB5510A1B, 0xB546D5D1,
279 0xB53CA23F, 0xB5326F65, 0xB5283D45, 0xB51E0BDC, 0xB513DB2D, 0xB509AB36,
280 0xB4FF7BF9, 0xB4F54D74, 0xB4EB1FA9, 0xB4E0F296, 0xB4D6C63E, 0xB4CC9A9E,
281 0xB4C26FB8, 0xB4B8458C, 0xB4AE1C1A, 0xB4A3F361, 0xB499CB63, 0xB48FA41E,
282 0xB4857D94, 0xB47B57C3, 0xB47132AE, 0xB4670E52, 0xB45CEAB1, 0xB452C7CB,
283 0xB448A59F, 0xB43E842F, 0xB4346379, 0xB42A437E, 0xB420243E, 0xB41605BA,
284 0xB40BE7F1, 0xB401CAE3, 0xB3F7AE91, 0xB3ED92FA, 0xB3E3781F, 0xB3D95E00,
285 0xB3CF449D, 0xB3C52BF6, 0xB3BB140A, 0xB3B0FCDB, 0xB3A6E669, 0xB39CD0B2,
286 0xB392BBB9, 0xB388A77B, 0xB37E93FB, 0xB3748137, 0xB36A6F97, 0xB3605E4D,
287 0xB3564DC0, 0xB34C3DF0, 0xB3422EDD, 0xB3382088, 0xB32E12F1, 0xB3240616,
288 0xB319F9FA, 0xB30FEE9B, 0xB305E3FA, 0xB2FBDA17, 0xB2F1D0F2, 0xB2E7C88B,
289 0xB2DDC0E3, 0xB2D3B9F8, 0xB2C9B3CC, 0xB2BFAE5F, 0xB2B5A9B0, 0xB2ABA5C0,
290 0xB2A1A28F, 0xB297A01D, 0xB28D9E69, 0xB2839D75, 0xB2799D40, 0xB26F9DCA,
291 0xB2659F14, 0xB25BA11D, 0xB251A3E5, 0xB247A76E, 0xB23DABB6, 0xB233B0BE,
292 0xB229B686, 0xB21FBD0E, 0xB215C456, 0xB20BCC5E, 0xB201D527, 0xB1F7DEB0,
293 0xB1EDE8FA, 0xB1E3F404, 0xB1D9FFCF, 0xB1D00C5B, 0xB1C619A8, 0xB1BC27B6,
294 0xB1B23685, 0xB1A84615, 0xB19E5666, 0xB1946779, 0xB18A794D, 0xB1808BE3,
295 0xB1769F3B, 0xB16CB354, 0xB162C830, 0xB158DDCD, 0xB14EF491, 0xB1450BB3,
296 0xB13B2396, 0xB1313C3C, 0xB12755A5, 0xB11D6FD0, 0xB1138ABE, 0xB109A66E,
297 0xB0FFC2E1, 0xB0F5E018, 0xB0EBFE11, 0xB0E21CCD, 0xB0D83C4D, 0xB0CE5C90,
298 0xB0C47D96, 0xB0BA9F60, 0xB0B0C1ED, 0xB0A6E53E, 0xB09D0953, 0xB0932E2C,
299 0xB08953C8, 0xB07F7A29, 0xB075A14E, 0xB06BC937, 0xB061F1E5, 0xB0581B57,
300 0xB04E458D, 0xB0447088, 0xB03A9C48, 0xB030C8CD, 0xB026F617, 0xB01D2425,
301 0xB01352F9, 0xB0098292, 0xAFFFB2F1, 0xAFF5E414, 0xAFEC15FD, 0xAFE248AC,
302 0xAFD87C21, 0xAFCEB05B, 0xAFC4E55B, 0xAFBB1B21, 0xAFB151AD, 0xAFA788FF,
303 0xAF9DC118, 0xAF93F9F7, 0xAF8A339C, 0xAF806E08, 0xAF76A93A, 0xAF6CE533,
304 0xAF6321F3, 0xAF595F7A, 0xAF4F9DC8, 0xAF45DCDD, 0xAF3C1CB9, 0xAF325DC0,
305 0xAF289F2B, 0xAF1EE15D, 0xAF152457, 0xAF0B6818, 0xAF01ACA2, 0xAEF7F1F3,
306 0xAEEE380C, 0xAEE47EED, 0xAEDAC696, 0xAED10F07, 0xAEC75841, 0xAEBDA243,
307 0xAEB3ED0E, 0xAEAA38A1, 0xAEA084FD, 0xAE96D221, 0xAE8D200F, 0xAE836EC5,
308 0xAE79BE45, 0xAE700E8E, 0xAE665FA0, 0xAE5CB17B, 0xAE530420, 0xAE49578E,
309 0xAE3FABC6, 0xAE3600C7, 0xAE2C5693, 0xAE22AD28, 0xAE190487, 0xAE0F5CB1,
310 0xAE05B5A4, 0xADFC0F62, 0xADF269EA, 0xADE8C53D, 0xADDF215A, 0xADD57E42,
311 0xADCBDBF5, 0xADC23A72, 0xADB899BB, 0xADAEF9CE, 0xADA55AAC, 0xAD9BBC56,
312 0xAD921ECB, 0xAD88820B, 0xAD7EE617, 0xAD754AEF, 0xAD6BB092, 0xAD621701,
313 0xAD587E3B, 0xAD4EE642, 0xAD454F15, 0xAD3BB8B3, 0xAD32231E, 0xAD288E56,
314 0xAD1EFABB, 0xAD15678B, 0xAD0BD528, 0xAD024392, 0xACF8B2C8, 0xACEF22CB,
315 0xACE5939B, 0xACDC0538, 0xACD277A2, 0xACC8EADA, 0xACBF5EDF, 0xACB5D3B1,
316 0xACAC4951, 0xACA2BFBE, 0xAC9936F9, 0xAC8FAF02, 0xAC8627D9, 0xAC7CA17D,
317 0xAC731BF0, 0xAC699731, 0xAC601340, 0xAC56901D, 0xAC4D0DC9, 0xAC438C44,
318 0xAC3A0B8D, 0xAC308BA5, 0xAC270C8B, 0xAC1D8E41, 0xAC1410C5, 0xAC0A9418,
319 0xAC01183B, 0xABF79D2D, 0xABEE22EE, 0xABE4A97F, 0xABDB30DF, 0xABD1B90F,
320 0xABC8420E, 0xABBECBDE, 0xABB5567D, 0xABABE1EC, 0xABA26E2B, 0xAB98FB3B,
321 0xAB8F891A, 0xAB8617CA, 0xAB7CA74B, 0xAB73379C, 0xAB69C8BE, 0xAB605AB0,
322 0xAB56ED73, 0xAB4D8107, 0xAB44156C, 0xAB3AAAA2, 0xAB3140A9, 0xAB27D782,
323 0xAB1E6F2C, 0xAB150807, 0xAB0BA153, 0xAB023B72, 0xAAF8D662, 0xAAEF7224,
324 0xAAE60EB8, 0xAADCAC1D, 0xAAD34A55, 0xAAC9E95F, 0xAAC0893C, 0xAAB729EA,
325 0xAAADCB6B, 0xAAA46DBF, 0xAA9B10E5, 0xAA91B4DE, 0xAA8859A9, 0xAA7EFF48,
326 0xAA75A5BA, 0xAA6C4CFE, 0xAA62F516, 0xAA599E01, 0xAA5047BF, 0xAA46F251,
327 0xAA3D9DB6, 0xAA3449EF, 0xAA2AF6FC, 0xAA21A4DC, 0xAA185390, 0xAA0F0318,
328 0xAA05B374, 0xA9FC64A5, 0xA9F316A9, 0xA9E9C982, 0xA9E07D30, 0xA9D731B2,
329 0xA9CDE708, 0xA9C49D33, 0xA9BB5433, 0xA9B20C08, 0xA9A8C4B1, 0xA99F7E30,
330 0xA9963884, 0xA98CF3AD, 0xA983AFAB, 0xA97A6C7F, 0xA9712A28, 0xA967E8A7,
331 0xA95EA7FC, 0xA9556826, 0xA94C2926, 0xA942EAFC, 0xA939ADA8, 0xA930712A,
332 0xA9273583, 0xA91DFAB1, 0xA914C114, 0xA90B87F0, 0xA9024FA2, 0xA8F9182A,
333 0xA8EFE18A, 0xA8E6ABC0, 0xA8DD76CD, 0xA8D442B1, 0xA8CB0F6C, 0xA8C1DCFF,
334 0xA8B8AB68, 0xA8AF7AA9, 0xA8A64AC2, 0xA89D1BB2, 0xA893ED79, 0xA88AC018,
335 0xA881938F, 0xA87867DE, 0xA86F3D05, 0xA8661304, 0xA85CE9DB, 0xA853C18B,
336 0xA84A9A13, 0xA8417373, 0xA8384DAB, 0xA82F28BC, 0xA82604A6, 0xA81CE169,
337 0xA813BF04, 0xA80A9D79, 0xA8017CC6, 0xA7F85CED, 0xA7EF3DED, 0xA7E61FC6,
338 0xA7DD0278, 0xA7D3E604, 0xA7CACA6A, 0xA7C1AFA9, 0xA7B895C2, 0xA7AF7CB4,
339 0xA7A66481, 0xA79D4D28, 0xA79436A8, 0xA78B2103, 0xA7820C38, 0xA778F848,
340 0xA76FE532, 0xA766D2F6, 0xA75DC195, 0xA754B10F, 0xA74BA163, 0xA7429293,
341 0xA739849D, 0xA7307782, 0xA7276B9F, 0xA71E603B, 0xA71555B2, 0xA70C4C04,
342 0xA7034332, 0xA6FA3B3C, 0xA6F13421, 0xA6E82DE2, 0xA6DF287E, 0xA6D623F7,
343 0xA6CD204B, 0xA6C41D7C, 0xA6BB1B89, 0xA6B21A72, 0xA6A91A38, 0xA6A01AD9,
344 0xA6971C58, 0xA68E1EB3, 0xA68521EB, 0xA67C25FF, 0xA6732AF1, 0xA66A30BF,
345 0xA661376A, 0xA6583EF3, 0xA64F4759, 0xA646509C, 0xA63D5ABC, 0xA63465BA,
346 0xA62B7196, 0xA6227E4F, 0xA6198BE6, 0xA6109A5A, 0xA607A9AD, 0xA5FEB9DE,
347 0xA5F5CAEC, 0xA5ECDCD9, 0xA5E3EFA4, 0xA5DB034E, 0xA5D217D5, 0xA5C92D3C,
348 0xA5C04381, 0xA5B75AA4, 0xA5AE72A7, 0xA5A58B88, 0xA59CA548, 0xA593BFE7,
349 0xA58ADB66, 0xA581F7C3, 0xA5791500, 0xA570331C, 0xA5675218, 0xA55E71F3,
350 0xA55592AE, 0xA54CB448, 0xA543D6C3, 0xA53AFA77, 0xA5321EB1, 0xA52943CB,
351 0xA52069C6, 0xA51790A0, 0xA50EB85B, 0xA505E0F6, 0xA4FD0A72, 0xA4F434CE,
352 0xA4EB600B, 0xA4E28C29, 0xA4D9B927, 0xA4D0E707, 0xA4C815C7, 0xA4BF4569,
353 0xA4B675EB, 0xA4ADA74F, 0xA4A4D994, 0xA49C0CBB, 0xA49340C3, 0xA48A75AC,
354 0xA481AB78, 0xA478E225, 0xA47019B4, 0xA4675225, 0xA45E8B77, 0xA455C5AC,
355 0xA44D00C3, 0xA4443CBD, 0xA43B7999, 0xA432B757, 0xA429F5F7, 0xA421357B,
356 0xA41875E1, 0xA40FB729, 0xA406F955, 0xA3FE3C63, 0xA3F58055, 0xA3ECC529,
357 0xA3E40AE1, 0xA3DB517C, 0xA3D298FB, 0xA3C9E15D, 0xA3C12AA2, 0xA3B874CB,
358 0xA3AFBFD8, 0xA3A70BC8, 0xA39E589C, 0xA395A655, 0xA38CF4F1, 0xA3844471,
359 0xA37B94D6, 0xA372E61F, 0xA36A384C, 0xA3618B5E, 0xA358DFAC, 0xA3503487,
360 0xA3478A47, 0xA33EE0EB, 0xA3363874, 0xA32D90E2, 0xA324EA35, 0xA31C446E,
361 0xA3139F8B, 0xA30AFB8E, 0xA3025876, 0xA2F9B643, 0xA2F114F6, 0xA2E8748F,
362 0xA2DFD50D, 0xA2D73671, 0xA2CE98BB, 0xA2C5FBEB, 0xA2BD6001, 0xA2B4C4FD,
363 0xA2AC2AE0, 0xA2A391A8, 0xA29AF957, 0xA29261ED, 0xA289CB68, 0xA28135CB,
364 0xA278A114, 0xA2700D44, 0xA2677A5B, 0xA25EE859, 0xA256573D, 0xA24DC709,
365 0xA24537BC, 0xA23CA957, 0xA2341BD8, 0xA22B8F42, 0xA2230392, 0xA21A78CA,
366 0xA211EEEA, 0xA20965F2, 0xA200DDE2, 0xA1F856B9, 0xA1EFD079, 0xA1E74B20,
367 0xA1DEC6B0, 0xA1D64328, 0xA1CDC088, 0xA1C53ED1, 0xA1BCBE02, 0xA1B43E1C,
368 0xA1ABBF1F, 0xA1A3410A, 0xA19AC3DE, 0xA192479B, 0xA189CC41, 0xA1815226,
369 0xA178D89F, 0xA1706000, 0xA167E84B, 0xA15F717F, 0xA156FB9D, 0xA14E86A4,
370 0xA1461295, 0xA13D9F6F, 0xA1352D34, 0xA12CBBE2, 0xA1244B7A, 0xA11BDBFD,
371 0xA1136D69, 0xA10AFFC0, 0xA1029301, 0xA0FA272C, 0xA0F1BC42, 0xA0E95242,
372 0xA0E0E92D, 0xA0D88103, 0xA0D019C3, 0xA0C7B36F, 0xA0BF4E05, 0xA0B6E986,
373 0xA0AE85F3, 0xA0A6234A, 0xA09DC18D, 0xA09560BC, 0xA08D00D5, 0xA084A1DA,
374 0xA07C43CB, 0xA073E6A8, 0xA06B8A70, 0xA0632F24, 0xA05AD4C4, 0xA0527B50,
375 0xA04A22C8, 0xA041CB2C, 0xA039747C, 0xA0311EB9, 0xA028C9E2, 0xA02075F8,
376 0xA01822FA, 0xA00FD0E9, 0xA0077FC4, 0x9FFF2F8D, 0x9FF6E042, 0x9FEE91E4,
377 0x9FE64473, 0x9FDDF7F0, 0x9FD5AC59, 0x9FCD61B0, 0x9FC517F4, 0x9FBCCF26,
378 0x9FB48799, 0x9FAC40A6, 0x9FA3FAA0, 0x9F9BB588, 0x9F93715E, 0x9F8B2E22,
379 0x9F82EBD4, 0x9F7AAA74, 0x9F726A02, 0x9F6A2A7F, 0x9F61EBE9, 0x9F59AE42,
380 0x9F51718A, 0x9F4935C0, 0x9F40FAE5, 0x9F38C0F8, 0x9F3087FA, 0x9F284FEC,
381 0x9F2018CC, 0x9F17E29B, 0x9F0FAD59, 0x9F077906, 0x9EFF45A3, 0x9EF7132F,
382 0x9EEEE1AA, 0x9EE6B115, 0x9EDE8170, 0x9ED652BA, 0x9ECE24F4, 0x9EC5F81E,
383 0x9EBDCC37, 0x9EB5A141, 0x9EAD773B, 0x9EA54E24, 0x9E9D25FE, 0x9E94FEC9,
384 0x9E8CD883, 0x9E84B32E, 0x9E7C8ECA, 0x9E746B56, 0x9E6C48D3, 0x9E642741,
385 0x9E5C06A0, 0x9E53E6EF, 0x9E4BC82F, 0x9E43AA61, 0x9E3B8D84, 0x9E337198,
386 0x9E2B569D, 0x9E233C94, 0x9E1B237C, 0x9E130B55, 0x9E0AF421, 0x9E02DDDE,
387 0x9DFAC88C, 0x9DF2B47F, 0x9DEAA112, 0x9DE28E96, 0x9DDA7D0D, 0x9DD26C76,
388 0x9DCA5CD1, 0x9DC24E1E, 0x9DBA405E, 0x9DB23390, 0x9DAA27B5, 0x9DA21CCC,
389 0x9D9A12D6, 0x9D9209D3, 0x9D8A01C3, 0x9D81FAA6, 0x9D79F47B, 0x9D71EF44,
390 0x9D69EB00, 0x9D61E7AF, 0x9D59E552, 0x9D51E3E8, 0x9D49E372, 0x9D41E3EF,
391 0x9D39E55F, 0x9D31E7C4, 0x9D29EB1C, 0x9D21EF68, 0x9D19F4A8, 0x9D11FADC,
392 0x9D0A0204, 0x9D020A21, 0x9CFA1331, 0x9CF21D36, 0x9CEA282F, 0x9CE2341D,
393 0x9CDA4100, 0x9CD24ED7, 0x9CCA5DA2, 0x9CC26D63, 0x9CBA7E18, 0x9CB28FC2,
394 0x9CAAA262, 0x9CA2B5F6, 0x9C9ACA80, 0x9C92DFFF, 0x9C8AF673, 0x9C830DDC,
395 0x9C7B263C, 0x9C733F90, 0x9C6B59DA, 0x9C63751A, 0x9C5B9150, 0x9C53AE7C,
396 0x9C4BCC9D, 0x9C43EC05, 0x9C3C0C13, 0x9C342D16, 0x9C2C4F10, 0x9C247201,
397 0x9C1C95E7, 0x9C14BAC5, 0x9C0CE098, 0x9C050763, 0x9BFD2F24, 0x9BF557DB,
398 0x9BED818A, 0x9BE5AC30, 0x9BDDD7CC, 0x9BD60460, 0x9BCE31EA, 0x9BC6606C,
399 0x9BBE8FE6, 0x9BB6C056, 0x9BAEF1BE, 0x9BA7241E, 0x9B9F5775, 0x9B978BC4,
400 0x9B8FC10B, 0x9B87F749, 0x9B802E80, 0x9B7866AE, 0x9B709FD4, 0x9B68D9F3,
401 0x9B61150A, 0x9B595119, 0x9B518E20, 0x9B49CC20, 0x9B420B18, 0x9B3A4B09,
402 0x9B328BF2, 0x9B2ACDD4, 0x9B2310AF, 0x9B1B5483, 0x9B139950, 0x9B0BDF16,
403 0x9B0425D5, 0x9AFC6D8D, 0x9AF4B63E, 0x9AECFFE9, 0x9AE54A8D, 0x9ADD962A,
404 0x9AD5E2C1, 0x9ACE3052, 0x9AC67EDC, 0x9ABECE61, 0x9AB71EDF, 0x9AAF7056,
405 0x9AA7C2C8, 0x9AA01634, 0x9A986AE8, 0x9A90C049, 0x9A8916A3, 0x9A816DF8,
406 0x9A79C647, 0x9A721F91, 0x9A6A79D5, 0x9A62D514, 0x9A5B314E, 0x9A538E83,
407 0x9A4BECB2, 0x9A444BDC, 0x9A3CAC02, 0x9A350D22, 0x9A2D6F3E, 0x9A25D255,
408 0x9A1E3667, 0x9A169B74, 0x9A0F017D, 0x9A076882, 0x99FFD082, 0x99F8397E,
409 0x99F0A375, 0x99E90E69, 0x99E17A58, 0x99D9E743, 0x99D2552B, 0x99CAC40E,
410 0x99C333EE, 0x99BBA4CA, 0x99B416A2, 0x99AC8976, 0x99A4FD48, 0x999D7215,
411 0x9995E7DF, 0x998E5EA6, 0x9986D66A, 0x997F4F2B, 0x9977C8E8, 0x997043A3,
412 0x9968BF5A, 0x99613C0F, 0x9959B9C1, 0x99523870, 0x994AB81D, 0x994338C7,
413 0x993BBA6E, 0x99343D13, 0x992CC0B6, 0x99254556, 0x991DCAF4, 0x99165190,
414 0x990ED92A, 0x990761C2, 0x98FFEB58, 0x98F87638, 0x98F101CB, 0x98E98E5B,
415 0x98E21BEA, 0x98DAAA78, 0x98D33A04, 0x98CBCA8E, 0x98C45C17, 0x98BCEE9F,
416 0x98B58226, 0x98AE16AB, 0x98A6AC30, 0x989F42B3, 0x9897DA36, 0x989072B7,
417 0x98890C38, 0x9881A6B9, 0x987A4238, 0x9872DEB7, 0x986B7C36, 0x98641AB4,
418 0x985CBA31, 0x98555AAF, 0x984DFC2C, 0x98469EA9, 0x983F4226, 0x9837E6A3,
419 0x98308C20, 0x9829329D, 0x9821DA1B, 0x981A8299, 0x98132C17, 0x980BD695,
420 0x98048214, 0x97FD2E94, 0x97F5DC14, 0x97EE8A95, 0x97E73A17, 0x97DFEA99,
421 0x97D89C1D, 0x97D14EA1, 0x97CA0226, 0x97C2B6AD, 0x97BB6C35, 0x97B422BE,
422 0x97ACDA49, 0x97A592D4, 0x979E4C62, 0x979706F1, 0x978FC281, 0x97887F13,
423 0x97813CA7, 0x9779FB3D, 0x9772BAD5, 0x976B7B6F, 0x97643D54, 0x975CFFF2,
424 0x9755C392, 0x974E8834, 0x97474DD9, 0x97401480, 0x9738DC29, 0x9731A4D5,
425 0x972A6E84, 0x97233935, 0x971C04E9, 0x9714D1A0, 0x970D9F59, 0x97066E16,
426 0x96FF3DD6, 0x96F80E98, 0x96F0E05E, 0x96E9B327, 0x96E286F4, 0x96DB5BC3,
427 0x96D43196, 0x96CD086D, 0x96C5E047, 0x96BEB925, 0x96B79307, 0x96B06DEC,
428 0x96A949D5, 0x96A226C3, 0x969B04B4, 0x9693E3A9, 0x968CC3A2, 0x9685A49F,
429 0x967E86A1, 0x967769A7, 0x96704DB2, 0x966932C1, 0x966218D4, 0x965AFFEC,
430 0x9653E809, 0x964CD12A, 0x9645BB51, 0x963EA67C, 0x963792AC, 0x96307FE1,
431 0x96296E1B, 0x96225D5A, 0x961B4D9F, 0x96143EE9, 0x960D3138, 0x9606248C,
432 0x95FF18E6, 0x95F80E46, 0x95F104AB, 0x95E9FC16, 0x95E2F487, 0x95DBEE45,
433 0x95D4E8C1, 0x95CDE444, 0x95C6E0CC, 0x95BFDE5A, 0x95B8DCEF, 0x95B1DC8A,
434 0x95AADD2B, 0x95A3DED2, 0x959CE180, 0x9595E535, 0x958EE9F0, 0x9587EFB1,
435 0x9580F67A, 0x9579FE49, 0x9573071F, 0x956C10FC, 0x95651BE0, 0x955E27CB,
436 0x955734BC, 0x955042B6, 0x954951B6, 0x954261BE, 0x953B72CD, 0x953484E3,
437 0x952D9801, 0x9526AC27, 0x951FC154, 0x9518D789, 0x9511EEC6, 0x950B070A,
438 0x95042057, 0x94FD3AAB, 0x94F65608, 0x94EF726C, 0x94E88FD9, 0x94E1AE4E,
439 0x94DACDCB, 0x94D3EE51, 0x94CD0FDF, 0x94C63276, 0x94BF5615, 0x94B87ABD,
440 0x94B1A06D, 0x94AAC727, 0x94A3EEE9, 0x949D17B4, 0x94964188, 0x948F6C65,
441 0x9488984B, 0x9481C53A, 0x947AF333, 0x94742235, 0x946D5240, 0x9466839A,
442 0x945FB5B8, 0x9458E8E0, 0x94521D11, 0x944B524C, 0x9444884B, 0x943DBF9A,
443 0x9436F7F2, 0x94303155, 0x94296BC1, 0x9422A738, 0x941BE3B8, 0x94152143,
444 0x940E5FD8, 0x94079F78, 0x9400E021, 0x93FA21D6, 0x93F36495, 0x93ECA85E,
445 0x93E5ED32, 0x93DF3311, 0x93D879FB, 0x93D1C1EF, 0x93CB0AEF, 0x93C454F9,
446 0x93BDA00F, 0x93B6EC2F, 0x93B0395B, 0x93A9881B, 0x93A2D75D, 0x939C27AB,
447 0x93957904, 0x938ECB68, 0x93881ED9, 0x93817354, 0x937AC8DC, 0x93741F6F,
448 0x936D770E, 0x9366CFB9, 0x93602970, 0x93598433, 0x9352E003, 0x934C3CDE,
449 0x93459AC5, 0x933EF9B9, 0x933859B9, 0x9331BAC6, 0x932B1CDE, 0x93248004,
450 0x931DE436, 0x93174975, 0x9310AFC0, 0x930A1718, 0x93037F7E, 0x92FCE8F0,
451 0x92F6536F, 0x92EFBEFB, 0x92E92B94, 0x92E2993A, 0x92DC07EE, 0x92D577AE,
452 0x92CEE87D, 0x92C85A58, 0x92C1CD41, 0x92BB4138, 0x92B4B63C, 0x92AE2C4E,
453 0x92A7A36E, 0x92A11B9B, 0x929A94D7, 0x92940F20, 0x928D8A77, 0x928706DC,
454 0x92808450, 0x927A02D1, 0x92738261, 0x926D02FF, 0x926684AC, 0x92600767,
455 0x92598B30, 0x92531008, 0x924C95EF, 0x92461CE4, 0x923FA4E8, 0x92392DFB,
456 0x9232B81C, 0x922C434D, 0x9225CF8D, 0x921F5CDB, 0x9218EB39, 0x92127AA6,
457 0x920C0B22, 0x92059CAD, 0x91FF2F48, 0x91F8C2F3, 0x91F257AC, 0x91EBED76,
458 0x91E5844E, 0x91DF1C37, 0x91D8B52F, 0x91D24F37, 0x91CBEA4F, 0x91C58677,
459 0x91BF23AF, 0x91B8C1F7, 0x91B2614F, 0x91AC01B7, 0x91A5A32F, 0x919F45B8,
460 0x9198E951, 0x91928DFA, 0x918C33B4, 0x9185DA7F, 0x917F825A, 0x91792B45,
461 0x9172D542, 0x916C804F, 0x91662C6D, 0x915FD99C, 0x915987DC, 0x9153372C,
462 0x914CE78E, 0x91469901, 0x91404B86, 0x9139FF1B, 0x9133B3C2, 0x912D697A,
463 0x91272044, 0x9120D81F, 0x911A910C, 0x91144B0B, 0x910E061B, 0x9107C23C,
464 0x91017F70, 0x90FB3DB6, 0x90F4FD0D, 0x90EEBD77, 0x90E87F71, 0x90E241FF,
465 0x90DC059E, 0x90D5CA50, 0x90CF9014, 0x90C956EB, 0x90C31ED4, 0x90BCE7CF,
466 0x90B6B1DD, 0x90B07CFE, 0x90AA4931, 0x90A41677, 0x909DE4D0, 0x9097B43B,
467 0x909184BA, 0x908B564B, 0x908528EF, 0x907EFCA7, 0x9078D171, 0x9072A74F,
468 0x906C7E40, 0x90665644, 0x90602F5C, 0x905A0987, 0x9053E4C5, 0x904DC118,
469 0x90479E7D, 0x90417CF7, 0x903B5C84, 0x90353D25, 0x902F1ED9, 0x902901A2,
470 0x9022E57E, 0x901CCA6F, 0x9016B074, 0x9010978C, 0x900A7FB9, 0x900468FA,
471 0x8FFE5350, 0x8FF83EBA, 0x8FF22B38, 0x8FEC18CB, 0x8FE60772, 0x8FDFF72E,
472 0x8FD9E7FF, 0x8FD3D9E4, 0x8FCDCCDE, 0x8FC7C0ED, 0x8FC1B611, 0x8FBBAC4A,
473 0x8FB5A397, 0x8FAF9BFA, 0x8FA99572, 0x8FA38FFF, 0x8F9D8BA2, 0x8F978859,
474 0x8F918626, 0x8F8B8509, 0x8F858501, 0x8F7F860E, 0x8F798831, 0x8F738B6A,
475 0x8F6D8FB8, 0x8F67951D, 0x8F619B96, 0x8F5BA326, 0x8F55ABCC, 0x8F4FB588,
476 0x8F49C05A, 0x8F43CC42, 0x8F3DD940, 0x8F37E754, 0x8F31F67F, 0x8F2C06C0,
477 0x8F261817, 0x8F202A85, 0x8F1A3E09, 0x8F1452A4, 0x8F0E6855, 0x8F087F1E,
478 0x8F0296FC, 0x8EFCAFF2, 0x8EF6C9FF, 0x8EF0E522, 0x8EEB015D, 0x8EE51EAE,
479 0x8EDF3D16, 0x8ED95C96, 0x8ED37D2D, 0x8ECD9EDB, 0x8EC7C1A0, 0x8EC1E57D,
480 0x8EBC0A71, 0x8EB6307D, 0x8EB057A0, 0x8EAA7FDB, 0x8EA4A92D, 0x8E9ED397,
481 0x8E98FF19, 0x8E932BB3, 0x8E8D5964, 0x8E87882E, 0x8E81B80F, 0x8E7BE909,
482 0x8E761B1A, 0x8E704E44, 0x8E6A8286, 0x8E64B7E0, 0x8E5EEE52, 0x8E5925DD,
483 0x8E535EF6, 0x8E4D98B2, 0x8E47D386, 0x8E420F73, 0x8E3C4C78, 0x8E368A96,
484 0x8E30C9CD, 0x8E2B0A1D, 0x8E254B86, 0x8E1F8E07, 0x8E19D1A2, 0x8E141655,
485 0x8E0E5C22, 0x8E08A308, 0x8E02EB06, 0x8DFD341F, 0x8DF77E50, 0x8DF1C99B,
486 0x8DEC15FF, 0x8DE6637D, 0x8DE0B215, 0x8DDB01C6, 0x8DD55290, 0x8DCFA474,
487 0x8DC9F772, 0x8DC44B8A, 0x8DBEA0BC, 0x8DB8F708, 0x8DB34E6D, 0x8DADA6ED,
488 0x8DA80086, 0x8DA25B3A, 0x8D9CB708, 0x8D9713F0, 0x8D9171F3, 0x8D8BD110,
489 0x8D863147, 0x8D809299, 0x8D7AF505, 0x8D75588C, 0x8D6FBD2D, 0x8D6A22EA,
490 0x8D6489C0, 0x8D5EF1B2, 0x8D595ABE, 0x8D53C4E6, 0x8D4E3028, 0x8D489C85,
491 0x8D4309FE, 0x8D3D7891, 0x8D37E840, 0x8D32590A, 0x8D2CCAEF, 0x8D273DEF,
492 0x8D21B20B, 0x8D1C2742, 0x8D169D95, 0x8D111503, 0x8D0B8D8D, 0x8D060733,
493 0x8D0081F4, 0x8CFAFDD1, 0x8CF57ACA, 0x8CEFF8DE, 0x8CEA780F, 0x8CE4F85B,
494 0x8CDF79C4, 0x8CD9FC48, 0x8CD47FE9, 0x8CCF04A6, 0x8CC98A7F, 0x8CC41174,
495 0x8CBE9986, 0x8CB922B4, 0x8CB3ACFE, 0x8CAE3865, 0x8CA8C4E9, 0x8CA35289,
496 0x8C9DE145, 0x8C98711F, 0x8C930215, 0x8C8D9428, 0x8C882758, 0x8C82BBA5,
497 0x8C7D510E, 0x8C77E795, 0x8C727F39, 0x8C6D17FA, 0x8C67B1D8, 0x8C624CD3,
498 0x8C5CE8EC, 0x8C578622, 0x8C522475, 0x8C4CC3E6, 0x8C476474, 0x8C42061F,
499 0x8C3CA8E9, 0x8C374CD0, 0x8C31F1D4, 0x8C2C97F7, 0x8C273F37, 0x8C21E795,
500 0x8C1C9111, 0x8C173BAA, 0x8C11E762, 0x8C0C9438, 0x8C07422C, 0x8C01F13E,
501 0x8BFCA16F, 0x8BF752BD, 0x8BF20596, 0x8BECB921, 0x8BE76DCB, 0x8BE22393,
502 0x8BDCDA79, 0x8BD7927E, 0x8BD24BA2, 0x8BCD05E4, 0x8BC7C145, 0x8BC27DC5,
503 0x8BBD3B64, 0x8BB7FA21, 0x8BB2B9FE, 0x8BAD7AF9, 0x8BA83D14, 0x8BA3004D,
504 0x8B9DC4A6, 0x8B988A1D, 0x8B9350B4, 0x8B8E186B, 0x8B88E140, 0x8B83AB35,
505 0x8B7E7649, 0x8B79427D, 0x8B740FD0, 0x8B6EDE43, 0x8B69ADD6, 0x8B647E88,
506 0x8B5F505A, 0x8B5A234C, 0x8B54F75D, 0x8B4FCC8E, 0x8B4AA2E0, 0x8B457A51,
507 0x8B4052E2, 0x8B3B2C93, 0x8B360765, 0x8B30E357, 0x8B2BC068, 0x8B269E9A,
508 0x8B217DED, 0x8B1C5E60, 0x8B173FF3, 0x8B1222A6, 0x8B0D067B, 0x8B07EB6F,
509 0x8B02D185, 0x8AFDB8BB, 0x8AF8A111, 0x8AF38A89, 0x8AEE7521, 0x8AE960DA,
510 0x8AE44DB4, 0x8ADF3BAF, 0x8ADA2ACB, 0x8AD51B08, 0x8AD00C66, 0x8ACAFEE6,
511 0x8AC5F286, 0x8AC0E748, 0x8ABBDD2B, 0x8AB6D42F, 0x8AB1CC55, 0x8AACC59C,
512 0x8AA7C005, 0x8AA2BB8F, 0x8A9DB83B, 0x8A98B609, 0x8A93B4F8, 0x8A8EB509,
513 0x8A89B63B, 0x8A84B890, 0x8A7FBC06, 0x8A7AC09E, 0x8A75C659, 0x8A70CD35,
514 0x8A6BD533, 0x8A66DE54, 0x8A61E896, 0x8A5CF3FB, 0x8A580082, 0x8A530E2C,
515 0x8A4E1CF7, 0x8A492CE5, 0x8A443DF6, 0x8A3F5029, 0x8A3A637F, 0x8A3577F7,
516 0x8A308D92, 0x8A2BA44F, 0x8A26BC30, 0x8A21D533, 0x8A1CEF59, 0x8A180AA2,
517 0x8A13270D, 0x8A0E449C, 0x8A09634E, 0x8A048322, 0x89FFA41A, 0x89FAC635,
518 0x89F5E974, 0x89F10DD5, 0x89EC335A, 0x89E75A02, 0x89E281CD, 0x89DDAABC,
519 0x89D8D4CF, 0x89D40005, 0x89CF2C5E, 0x89CA5A3E, 0x89C588DF, 0x89C0B8A3,
520 0x89BBE98B, 0x89B71B97, 0x89B24EC7, 0x89AD831B, 0x89A8B893, 0x89A3EF2F,
521 0x899F26EF, 0x899A5FD2, 0x899599DA, 0x8990D507, 0x898C1157, 0x89874ECC,
522 0x89828D65, 0x897DCD22, 0x89790E04, 0x8974500A, 0x896F9335, 0x896AD784,
523 0x89661CF8, 0x89616391, 0x895CAB4E, 0x8957F430, 0x89533E37, 0x894E8962,
524 0x8949D5B3, 0x89452328, 0x894071C2, 0x893BC182, 0x89371266, 0x8932646F,
525 0x892DB79E, 0x89290BF2, 0x8924616B, 0x891FB809, 0x891B0FCC, 0x891668B5,
526 0x8911C2C4, 0x890D1DF7, 0x89087A51, 0x8903D7D0, 0x88FF3674, 0x88FA963E,
527 0x88F5F72E, 0x88F15943, 0x88ECBC7E, 0x88E820DF, 0x88E38666, 0x88DEED13,
528 0x88DA54E6, 0x88D5BDDE, 0x88D127FD, 0x88CC9342, 0x88C7FFAD, 0x88C36D3E,
529 0x88BEDBF5, 0x88BA4BD2, 0x88B5BCD6, 0x88B12F00, 0x88ACA251, 0x88A816C8,
530 0x88A38C65, 0x889F0329, 0x889A7B14, 0x8895F425, 0x88916E5C, 0x888CE9BB,
531 0x88886640, 0x8883E3EC, 0x887F62BF, 0x887AE2B8, 0x887663D9, 0x8871E620,
532 0x886D698F, 0x8868EE24, 0x886473E1, 0x885FFAC5, 0x885B82CF, 0x88570C01,
533 0x8852965B, 0x884E21DB, 0x8849AE83, 0x88453C53, 0x8840CB49, 0x883C5B68,
534 0x8837ECAD, 0x88337F1B, 0x882F12AF, 0x882AA76C, 0x88263D50, 0x8821D45C,
535 0x881D6C90, 0x881905EB, 0x8814A06E, 0x88103C1A, 0x880BD8ED, 0x880776E8,
536 0x8803160B, 0x87FEB656, 0x87FA57CA, 0x87F5FA65, 0x87F19E29, 0x87ED4315,
537 0x87E8E929, 0x87E49065, 0x87E038CA, 0x87DBE257, 0x87D78D0D, 0x87D33943,
538 0x87CEE64A, 0x87CA9479, 0x87C643D0, 0x87C1F451, 0x87BDA5FA, 0x87B958CB,
539 0x87B50CC6, 0x87B0C1E9, 0x87AC7836, 0x87A82FAB, 0x87A3E849, 0x879FA210,
540 0x879B5D00, 0x87971919, 0x8792D65B, 0x878E94C6, 0x878A545B, 0x87861519,
541 0x8781D700, 0x877D9A10, 0x87795E4A, 0x877523AD, 0x8770EA39, 0x876CB1EF,
542 0x87687ACF, 0x876444D8, 0x8760100A, 0x875BDC66, 0x8757A9EC, 0x8753789C,
543 0x874F4875, 0x874B1978, 0x8746EBA5, 0x8742BEFC, 0x873E937D, 0x873A6928,
544 0x87363FFD, 0x873217FB, 0x872DF124, 0x8729CB77, 0x8725A6F4, 0x8721839B,
545 0x871D616D, 0x87194069, 0x8715208F, 0x871101DF, 0x870CE45A, 0x8708C800,
546 0x8704ACCF, 0x870092CA, 0x86FC79EE, 0x86F8623E, 0x86F44BB8, 0x86F0365D,
547 0x86EC222C, 0x86E80F26, 0x86E3FD4B, 0x86DFEC9B, 0x86DBDD16, 0x86D7CEBB,
548 0x86D3C18C, 0x86CFB587, 0x86CBAAAE, 0x86C7A0FF, 0x86C3987C, 0x86BF9124,
549 0x86BB8AF7, 0x86B785F5, 0x86B3821F, 0x86AF7F73, 0x86AB7DF4, 0x86A77D9F,
550 0x86A37E76, 0x869F8078, 0x869B83A6, 0x869787FF, 0x86938D84, 0x868F9435,
551 0x868B9C11, 0x8687A519, 0x8683AF4C, 0x867FBAAC, 0x867BC737, 0x8677D4EE,
552 0x8673E3D1, 0x866FF3DF, 0x866C051A, 0x86681781, 0x86642B13, 0x86603FD2,
553 0x865C55BD, 0x86586CD4, 0x86548517, 0x86509E86, 0x864CB922, 0x8648D4EA,
554 0x8644F1DE, 0x86410FFE, 0x863D2F4B, 0x86394FC5, 0x8635716B, 0x8631943D,
555 0x862DB83C, 0x8629DD67, 0x862603BF, 0x86222B44, 0x861E53F6, 0x861A7DD4,
556 0x8616A92D, 0x8612D565, 0x860F02C9, 0x860B315A, 0x86076119, 0x86039204,
557 0x85FFC41C, 0x85FBF762, 0x85F82BD4, 0x85F46173, 0x85F09840, 0x85ECD03A,
558 0x85E90961, 0x85E543B5, 0x85E17F36, 0x85DDBBE5, 0x85D9F9C2, 0x85D638CB,
559 0x85D27902, 0x85CEBA67, 0x85CAFCF8, 0x85C740B8, 0x85C385A5, 0x85BFCBC0,
560 0x85BC1308, 0x85B85B7E, 0x85B4A522, 0x85B0EFF3, 0x85AD3BF2, 0x85A98920,
561 0x85A5D77A, 0x85A22703, 0x859E77BA, 0x859AC99F, 0x85971CB1, 0x859370F2,
562 0x858FC661, 0x858C1CFE, 0x858874C9, 0x8584CDC2, 0x858127EA, 0x857D833F,
563 0x8579DFC3, 0x85763D76, 0x85729C56, 0x856EFC66, 0x856B5DA3, 0x8567C00F,
564 0x856423A9, 0x85608872, 0x855CEE6A, 0x85595590, 0x8555BDE5, 0x85522768,
565 0x854E921A, 0x854AFDFB, 0x85476B0B, 0x8543D949, 0x854048B6, 0x853CB952,
566 0x85392B1D, 0x85359E17, 0x85321240, 0x852E8798, 0x852AFE1F, 0x852775D5,
567 0x8523EEBA, 0x852068CF, 0x851CE412, 0x85196085, 0x8515DE27, 0x85125CF8,
568 0x850EDCF9, 0x850B5E29, 0x8507E088, 0x85046417, 0x8500E8D5, 0x84FD6EC3,
569 0x84F9F5E0, 0x84F67E2C, 0x84F307A9, 0x84EF9255, 0x84EC1E30, 0x84E8AB3C,
570 0x84E53976, 0x84E1C8E1, 0x84DE597C, 0x84DAEB46, 0x84D77E40, 0x84D4126A,
571 0x84D0A7C4, 0x84CD3E4E, 0x84C9D608, 0x84C66EF2, 0x84C3090C, 0x84BFA456,
572 0x84BC40D0, 0x84B8DE7A, 0x84B57D55, 0x84B21D60, 0x84AEBE9A, 0x84AB6106,
573 0x84A804A1, 0x84A4A96D, 0x84A14F69, 0x849DF696, 0x849A9EF3, 0x84974880,
574 0x8493F33E, 0x84909F2D, 0x848D4C90, 0x8489FADF, 0x8486AA60, 0x84835B11,
575 0x84800CF2, 0x847CC005, 0x84797448, 0x847629BC, 0x8472E060, 0x846F9836,
576 0x846C513C, 0x84690B74, 0x8465C6DC, 0x84628375, 0x845F4140, 0x845C003B,
577 0x8458C067, 0x845581C5, 0x84524453, 0x844F0813, 0x844BCD04, 0x84489327,
578 0x84455A7A, 0x844222FF, 0x843EECB5, 0x843BB79C, 0x843883B5, 0x84355100,
579 0x84321F7B, 0x842EEF28, 0x842BC007, 0x84289217, 0x84256559, 0x842239CD,
580 0x841F0F72, 0x841BE648, 0x8418BE51, 0x8415978B, 0x841271F7, 0x840F4D94,
581 0x840C2A64, 0x84090865, 0x8405E798, 0x8402C7FD, 0x83FFA994, 0x83FC8C5D,
582 0x83F97058, 0x83F65585, 0x83F33BE4, 0x83F02375, 0x83ED0C38, 0x83E9F62E,
583 0x83E6E155, 0x83E3CDAF, 0x83E0BB3B, 0x83DDA9F9, 0x83DA99EA, 0x83D78B0D,
584 0x83D47D62, 0x83D170E9, 0x83CE65A3, 0x83CB5B90, 0x83C852AF, 0x83C54B00,
585 0x83C24484, 0x83BF3F3A, 0x83BC3B23, 0x83B9383F, 0x83B6368D, 0x83B3360E,
586 0x83B036C2, 0x83AD38A8, 0x83AA3BC2, 0x83A7400E, 0x83A4458C, 0x83A14C3E,
587 0x839E5422, 0x839B5D3A, 0x83986784, 0x83957301, 0x83927FB2, 0x838F8D95,
588 0x838C9CAB, 0x8389ACF4, 0x8386BE71, 0x8383D121, 0x8380E503, 0x837DFA19,
589 0x837B1062, 0x837827DF, 0x8375408E, 0x83725A71, 0x836F7588, 0x836C91D1,
590 0x8369AF4E, 0x8366CDFF, 0x8363EDE3, 0x83610EFA, 0x835E3145, 0x835B54C3,
591 0x83587975, 0x83559F5A, 0x8352C674, 0x834FEEC0, 0x834D1841, 0x834A42F5,
592 0x83476EDC, 0x83449BF8, 0x8341CA47, 0x833EF9CA, 0x833C2ABA, 0x83395CA5,
593 0x83368FC3, 0x8333C416, 0x8330F99C, 0x832E3056, 0x832B6844, 0x8328A167,
594 0x8325DBBD, 0x83231747, 0x83205406, 0x831D91F8, 0x831AD11F, 0x8318117A,
595 0x83155309, 0x831295CC, 0x830FD9C4, 0x830D1EF0, 0x830A6550, 0x8307ACE4,
596 0x8304F5AD, 0x83023FAA, 0x82FF8ADC, 0x82FCD742, 0x82FA24DC, 0x82F773AB,
597 0x82F4C3AF, 0x82F214E7, 0x82EF6753, 0x82ECBAF4, 0x82EA0FCA, 0x82E765D4,
598 0x82E4BD13, 0x82E21587, 0x82DF6F30, 0x82DCCA0D, 0x82DA261F, 0x82D78365,
599 0x82D4E1E1, 0x82D24191, 0x82CFA277, 0x82CD0491, 0x82CA67E0, 0x82C7CC64,
600 0x82C5321D, 0x82C2990B, 0x82C0012E, 0x82BD6A86, 0x82BAD513, 0x82B840D5,
601 0x82B5ADCD, 0x82B31BF9, 0x82B08B5B, 0x82ADFBF2, 0x82AB6DBE, 0x82A8E0BF,
602 0x82A654F6, 0x82A3CA62, 0x82A14103, 0x829EB8D9, 0x829C31E5, 0x8299AC26,
603 0x8297279D, 0x8294A449, 0x8292222B, 0x828FA142, 0x828D218E, 0x828AA311,
604 0x828825C8, 0x8285A9B6, 0x82832ED8, 0x8280B531, 0x827E3CBF, 0x827BC583,
605 0x82794F7C, 0x8276DAAC, 0x82746711, 0x8271F4AB, 0x826F837C, 0x826D1382,
606 0x826AA4BF, 0x82683731, 0x8265CAD9, 0x82635FB6, 0x8260F5CA, 0x825E8D14,
607 0x825C2594, 0x8259BF4A, 0x82575A35, 0x8254F657, 0x825293AF, 0x8250323D,
608 0x824DD201, 0x824B72FC, 0x8249152C, 0x8246B893, 0x82445D30, 0x82420303,
609 0x823FAA0C, 0x823D524C, 0x823AFBC2, 0x8238A66E, 0x82365251, 0x8233FF6A,
610 0x8231ADB9, 0x822F5D3F, 0x822D0DFB, 0x822ABFEE, 0x82287317, 0x822627A5,
611 0x8223DD3C, 0x82219408, 0x821F4C0B, 0x821D0545, 0x821ABFB6, 0x82187B5D,
612 0x8216383B, 0x8213F64F, 0x8211B59A, 0x820F761C, 0x820D37D5, 0x820AFAC4,
613 0x8208BEEA, 0x82068447, 0x82044ADB, 0x820212A5, 0x81FFDBA7, 0x81FDA5DF,
614 0x81FB714F, 0x81F93DF5, 0x81F70BD2, 0x81F4DAE6, 0x81F2AB32, 0x81F07CB4,
615 0x81EE4F6D, 0x81EC235D, 0x81E9F885, 0x81E7CEE3, 0x81E5A679, 0x81E37F46,
616 0x81E1594A, 0x81DF3485, 0x81DD10F7, 0x81DAEEA1, 0x81D8CD82, 0x81D6AD9A,
617 0x81D48EE9, 0x81D27170, 0x81D0552E, 0x81CE3A24, 0x81CC2050, 0x81CA07B5,
618 0x81C7F050, 0x81C5DA23, 0x81C3C52E, 0x81C1B170, 0x81BF9EE9, 0x81BD8D9A,
619 0x81BB7D83, 0x81B96EA3, 0x81B760FA, 0x81B5548A, 0x81B34950, 0x81B13F4F,
620 0x81AF3685, 0x81AD2EF3, 0x81AB2898, 0x81A92376, 0x81A71F8A, 0x81A51CD7,
621 0x81A31B5C, 0x81A11B18, 0x819F1C0C, 0x819D1E38, 0x819B219C, 0x81992637,
622 0x81972C0B, 0x81953316, 0x81933B59, 0x819144D5, 0x818F4F88, 0x818D5B73,
623 0x818B6896, 0x818976F2, 0x81878685, 0x81859750, 0x8183A954, 0x8181BC8F,
624 0x817FD103, 0x817DE6AE, 0x817BFD92, 0x817A15AE, 0x81782F02, 0x8176498F,
625 0x81746554, 0x81728250, 0x8170A086, 0x816EBFF3, 0x816CE099, 0x816B0277,
626 0x8169258D, 0x816749DC, 0x81656F63, 0x81639622, 0x8161BE1A, 0x815FE74A,
627 0x815E11B3, 0x815C3D54, 0x815A6A2E, 0x81589840, 0x8156C78B, 0x8154F80E,
628 0x815329CA, 0x81515CBE, 0x814F90EB, 0x814DC650, 0x814BFCEE, 0x814A34C5,
629 0x81486DD4, 0x8146A840, 0x8144E3C1, 0x8143207A, 0x81415E6C, 0x813F9D97,
630 0x813DDDFA, 0x813C1F97, 0x813A626C, 0x8138A679, 0x8136EBC0, 0x81353240,
631 0x813379F8, 0x8131C2E9, 0x81300D13, 0x812E5876, 0x812CA512, 0x812AF2E7,
632 0x812941F5, 0x8127923B, 0x8125E3BB, 0x81243674, 0x81228A65, 0x8120DF90,
633 0x811F35F4, 0x811D8D91, 0x811BE667, 0x811A4076, 0x81189BBE, 0x8116F83F,
634 0x811555F9, 0x8113B4ED, 0x8112151A, 0x81107680, 0x810ED91F, 0x810D3CF7,
635 0x810BA209, 0x810A0853, 0x81086FD7, 0x8106D895, 0x8105428B, 0x8103ADBB,
636 0x81021A25, 0x810087C7, 0x80FEF6A3, 0x80FD66B9, 0x80FBD807, 0x80FA4A90,
637 0x80F8BE51, 0x80F7334C, 0x80F5A981, 0x80F420EE, 0x80F29996, 0x80F11377,
638 0x80EF8E91, 0x80EE0AE5, 0x80EC8872, 0x80EB0739, 0x80E9873A, 0x80E80874,
639 0x80E68AE8, 0x80E50E95, 0x80E3937C, 0x80E2199D, 0x80E0A0F7, 0x80DF298B,
640 0x80DDB358, 0x80DC3E5F, 0x80DACAA0, 0x80D9581B, 0x80D7E6D0, 0x80D676BE,
641 0x80D507E6, 0x80D39A47, 0x80D22DE3, 0x80D0C2B8, 0x80CF58C7, 0x80CDF010,
642 0x80CC8893, 0x80CB2250, 0x80C9BD46, 0x80C85977, 0x80C6F6E1, 0x80C59585,
643 0x80C43563, 0x80C2D67B, 0x80C178CD, 0x80C01C59, 0x80BEC11F, 0x80BD671F,
644 0x80BC0E59, 0x80BAB6CD, 0x80B9607B, 0x80B80B63, 0x80B6B785, 0x80B564E2,
645 0x80B41378, 0x80B2C348, 0x80B17453, 0x80B02697, 0x80AEDA16, 0x80AD8ECF,
646 0x80AC44C2, 0x80AAFBEF, 0x80A9B456, 0x80A86DF8, 0x80A728D4, 0x80A5E4EA,
647 0x80A4A23A, 0x80A360C4, 0x80A22089, 0x80A0E1A1, 0x809FA3DA, 0x809E674E,
648 0x809D2BFC, 0x809BF1E4, 0x809AB906, 0x80998163, 0x80984AFA, 0x809715CB,
649 0x8095E1D7, 0x8094AF1D, 0x80937D9E, 0x80924D59, 0x80911E4E, 0x808FF07E,
650 0x808EC3E8, 0x808D988D, 0x808C6E6C, 0x808B4586, 0x808A1DDA, 0x8088F769,
651 0x8087D232, 0x8086AE36, 0x80858B74, 0x808469ED, 0x808349A0, 0x80822A8E,
652 0x80810CB6, 0x807FF019, 0x807ED4B7, 0x807DBA8F, 0x807CA1A2, 0x807B89F0,
653 0x807A7378, 0x80795E3B, 0x80784A38, 0x80773770, 0x807625E3, 0x80751590,
654 0x80740679, 0x8072F89B, 0x8071EBF9, 0x8070E091, 0x806FD664, 0x806ECD72,
655 0x806DC5BB, 0x806CBF3E, 0x806BB9FC, 0x806AB5F5, 0x8069B329, 0x8068B198,
656 0x8067B141, 0x8066B225, 0x8065B444, 0x8064B79E, 0x8063BC33, 0x8062C202,
657 0x8061C90D, 0x8060D152, 0x805FDAD3, 0x805EE58E, 0x805DF184, 0x805CFEB5,
658 0x805C0D21, 0x805B1CC8, 0x805A2DA9, 0x80593FC6, 0x8058531E, 0x805767B1,
659 0x80567D7F, 0x80559487, 0x8054ACCB, 0x8053C64A, 0x8052E104, 0x8051FCF8,
660 0x80511A28, 0x80503893, 0x804F5839, 0x804E791A, 0x804D9B36, 0x804CBE8D,
661 0x804BE31F, 0x804B08ED, 0x804A2FF5, 0x80495839, 0x804881B8, 0x8047AC71,
662 0x8046D866, 0x80460596, 0x80453402, 0x804463A8, 0x8043948A, 0x8042C6A6,
663 0x8041F9FE, 0x80412E92, 0x80406460, 0x803F9B69, 0x803ED3AE, 0x803E0D2E,
664 0x803D47E9, 0x803C83E0, 0x803BC112, 0x803AFF7F, 0x803A3F27, 0x8039800A,
665 0x8038C229, 0x80380583, 0x80374A18, 0x80368FE9, 0x8035D704, 0x80351F4B,
666 0x803468CD, 0x8033B38B, 0x8032FF84, 0x80324CB9, 0x80319B28, 0x8030EAD4,
667 0x80303BBA, 0x802F8DDC, 0x802EE139, 0x802E35D2, 0x802D8BA6, 0x802CE2B5,
668 0x802C3B00, 0x802B9486, 0x802AEF48, 0x802A4B45, 0x8029A87D, 0x802906F1,
669 0x802866A0, 0x8027C78B, 0x802729B1, 0x80268D13, 0x8025F1B0, 0x80255789,
670 0x8024BE9D, 0x802426EC, 0x80239077, 0x8022FB3E, 0x80226740, 0x8021D47D,
671 0x802142F6, 0x8020B2AB, 0x8020239B, 0x801F95C6, 0x801F092D, 0x801E7DD0,
672 0x801DF3AE, 0x801D6AC7, 0x801CE31D, 0x801C5CAD, 0x801BD77A, 0x801B5381,
673 0x801AD0C5, 0x801A4F44, 0x8019CEFE, 0x80194FF5, 0x8018D226, 0x80185594,
674 0x8017DA3D, 0x80176021, 0x8016E741, 0x80166F9D, 0x8015F934, 0x80158407,
675 0x80151016, 0x80149D60, 0x80142BE6, 0x8013BBA7, 0x80134CA4, 0x8012DEDD,
676 0x80127252, 0x80120702, 0x80119CED, 0x80113415, 0x8010CC78, 0x80106616,
677 0x801000F1, 0x800F9D07, 0x800F3A58, 0x800ED8E6, 0x800E78AF, 0x800E19B4,
678 0x800DBBF4, 0x800D5F70, 0x800D0428, 0x800CAA1C, 0x800C514B, 0x800BF9B6,
679 0x800BA35D, 0x800B4E3F, 0x800AFA5D, 0x800AA7B7, 0x800A564D, 0x800A061E,
680 0x8009B72B, 0x80096974, 0x80091CF8, 0x8008D1B9, 0x800887B5, 0x80083EEC,
681 0x8007F760, 0x8007B10F, 0x80076BFA, 0x80072821, 0x8006E584, 0x8006A422,
682 0x800663FC, 0x80062512, 0x8005E763, 0x8005AAF1, 0x80056FBA, 0x800535BF,
683 0x8004FCFF, 0x8004C57C, 0x80048F34, 0x80045A28, 0x80042658, 0x8003F3C4,
684 0x8003C26F, 0x80039252, 0x80036371, 0x800335CC, 0x80030962, 0x8002DE35,
685 0x8002B443, 0x80028B8D, 0x80026412, 0x80023DD4, 0x800218D1, 0x8001F50A,
686 0x8001D27F, 0x8001B130, 0x8001911C, 0x80017245, 0x800154A9, 0x80013849,
687 0x80011D25, 0x8001033D, 0x8000EA90, 0x8000D31F, 0x8000BCEA, 0x8000A7F1,
688 0x80009434, 0x800081B3, 0x8000706D, 0x80006063, 0x80005195, 0x80004403,
689 0x800037AD, 0x80002C92, 0x800022B4, 0x80001A11, 0x800012AA, 0x80000C7F,
690 0x8000078F, 0x800003DC, 0x80000164, 0x80000028
691};
692
693const int32_t sine_2048[] ICONST_ATTR_WMAPRO_WIN_VS_TMP = {
694 0xFFF36F03, 0xFFDA4D09, 0xFFC12B0F, 0xFFA80918, 0xFF8EE725, 0xFF75C536,
695 0xFF5CA34B, 0xFF438168, 0xFF2A5F8C, 0xFF113DB7, 0xFEF81BEE, 0xFEDEFA2D,
696 0xFEC5D876, 0xFEACB6CE, 0xFE939531, 0xFE7A73A2, 0xFE615224, 0xFE4830B4,
697 0xFE2F0F55, 0xFE15EE0A, 0xFDFCCCD0, 0xFDE3ABAA, 0xFDCA8A98, 0xFDB1699D,
698 0xFD9848BC, 0xFD7F27EF, 0xFD66073A, 0xFD4CE69F, 0xFD33C61F, 0xFD1AA5BB,
699 0xFD018577, 0xFCE8654C, 0xFCCF4541, 0xFCB62554, 0xFC9D0588, 0xFC83E5DE,
700 0xFC6AC65A, 0xFC51A6F5, 0xFC3887B4, 0xFC1F6899, 0xFC0649A4, 0xFBED2AD7,
701 0xFBD40C35, 0xFBBAEDB5, 0xFBA1CF67, 0xFB88B144, 0xFB6F9345, 0xFB56757B,
702 0xFB3D57D7, 0xFB243A6A, 0xFB0B1D25, 0xFAF20019, 0xFAD8E33F, 0xFABFC690,
703 0xFAA6AA1D, 0xFA8D8DD6, 0xFA7471CD, 0xFA5B55FB, 0xFA423A59, 0xFA291EF7,
704 0xFA1003C7, 0xF9F6E8D9, 0xF9DDCE1F, 0xF9C4B3AA, 0xF9AB9972, 0xF9927F70,
705 0xF97965B6, 0xF9604C34, 0xF94732FC, 0xF92E1A06, 0xF915014C, 0xF8FBE8DD,
706 0xF8E2D0AC, 0xF8C9B8C9, 0xF8B0A126, 0xF89789D2, 0xF87E72C8, 0xF8655BFF,
707 0xF84C458A, 0xF8332F59, 0xF81A197C, 0xF80103EE, 0xF7E7EEA7, 0xF7CED9AF,
708 0xF7B5C518, 0xF79CB0C3, 0xF7839CC1, 0xF76A8923, 0xF75175C9, 0xF73862C5,
709 0xF71F5018, 0xF7063DD2, 0xF6ED2BD5, 0xF6D41A32, 0xF6BB08F9, 0xF6A1F80B,
710 0xF688E77A, 0xF66FD747, 0xF656C781, 0xF63DB80B, 0xF624A8F6, 0xF60B9A51,
711 0xF5F28BFF, 0xF5D97E11, 0xF5C07096, 0xF5A76370, 0xF58E56B1, 0xF5754A59,
712 0xF55C3E78, 0xF54332F1, 0xF52A27D4, 0xF5111D31, 0xF4F812EB, 0xF4DF0911,
713 0xF4C5FFA6, 0xF4ACF6B9, 0xF493EE2B, 0xF47AE60F, 0xF461DE74, 0xF448D73C,
714 0xF42FD078, 0xF416CA28, 0xF3FDC45D, 0xF3E4BEFA, 0xF3CBBA0D, 0xF3B2B5A9,
715 0xF399B1AF, 0xF380AE2F, 0xF367AB3A, 0xF34EA8B2, 0xF335A6A7, 0xF31CA51A,
716 0xF303A41C, 0xF2EAA38E, 0xF2D1A382, 0xF2B8A408, 0xF29FA500, 0xF286A67D,
717 0xF26DA87F, 0xF254AB17, 0xF23BAE25, 0xF222B1BC, 0xF209B5EB, 0xF1F0BA94,
718 0xF1D7BFC8, 0xF1BEC588, 0xF1A5CBE4, 0xF18CD2BE, 0xF173DA26, 0xF15AE22E,
719 0xF141EAB7, 0xF128F3D1, 0xF10FFD8E, 0xF0F707CE, 0xF0DE12A2, 0xF0C51E0C,
720 0xF0AC2A1C, 0xF09336B4, 0xF07A43E3, 0xF06151BC, 0xF048601F, 0xF02F6F1D,
721 0xF0167EB8, 0xEFFD8EFF, 0xEFE49FD4, 0xEFCBB148, 0xEFB2C35C, 0xEF99D612,
722 0xEF80E988, 0xEF67FD82, 0xEF4F121F, 0xEF362762, 0xEF1D3D4A, 0xEF0453D8,
723 0xEEEB6B0F, 0xEED2830D, 0xEEB99B95, 0xEEA0B4C8, 0xEE87CEA7, 0xEE6EE931,
724 0xEE560469, 0xEE3D2050, 0xEE243D05, 0xEE0B5A4B, 0xEDF27842, 0xEDD996EC,
725 0xEDC0B648, 0xEDA7D659, 0xED8EF73E, 0xED7618BA, 0xED5D3AED, 0xED445DD7,
726 0xED2B817B, 0xED12A5D8, 0xECF9CAF0, 0xECE0F0E3, 0xECC81774, 0xECAF3EC2,
727 0xEC9666CF, 0xEC7D8F9C, 0xEC64B929, 0xEC4BE377, 0xEC330EA8, 0xEC1A3A7C,
728 0xEC016715, 0xEBE89473, 0xEBCFC298, 0xEBB6F184, 0xEB9E2138, 0xEB8551D4,
729 0xEB6C831B, 0xEB53B52E, 0xEB3AE80C, 0xEB221BB7, 0xEB095031, 0xEAF08579,
730 0xEAD7BBB0, 0xEABEF299, 0xEAA62A54, 0xEA8D62E1, 0xEA749C42, 0xEA5BD678,
731 0xEA431183, 0xEA2A4D84, 0xEA118A3E, 0xE9F8C7CF, 0xE9E0063B, 0xE9C74580,
732 0xE9AE85A1, 0xE995C69E, 0xE97D0898, 0xE9644B50, 0xE94B8EE8, 0xE932D360,
733 0xE91A18B9, 0xE9015EF3, 0xE8E8A631, 0xE8CFEE32, 0xE8B73719, 0xE89E80E5,
734 0xE885CB98, 0xE86D1733, 0xE85463B6, 0xE83BB143, 0xE822FF9A, 0xE80A4EDE,
735 0xE7F19F0D, 0xE7D8F02A, 0xE7C04236, 0xE7A79530, 0xE78EE93B, 0xE7763E17,
736 0xE75D93E6, 0xE744EAA7, 0xE72C425D, 0xE7139B08, 0xE6FAF4A8, 0xE6E24F5F,
737 0xE6C9AAEF, 0xE6B10777, 0xE69864F9, 0xE67FC376, 0xE66722EF, 0xE64E8364,
738 0xE635E4F6, 0xE61D4767, 0xE604AAD8, 0xE5EC0F49, 0xE5D374BC, 0xE5BADB31,
739 0xE5A242A9, 0xE589AB45, 0xE57114C6, 0xE5587F4E, 0xE53FEADD, 0xE5275773,
740 0xE50EC513, 0xE4F633DC, 0xE4DDA391, 0xE4C51451, 0xE4AC861E, 0xE493F8F9,
741 0xE47B6CE2, 0xE462E1DB, 0xE44A5804, 0xE431CF1F, 0xE419474D, 0xE400C08D,
742 0xE3E83AE3, 0xE3CFB64D, 0xE3B732CE, 0xE39EB085, 0xE3862F34, 0xE36DAEFD,
743 0xE3552FE0, 0xE33CB1DE, 0xE32434F8, 0xE30BB92F, 0xE2F33EA2, 0xE2DAC515,
744 0xE2C24CA8, 0xE2A9D55B, 0xE2915F30, 0xE278EA27, 0xE2607642, 0xE24803A0,
745 0xE22F9205, 0xE217218F, 0xE1FEB241, 0xE1E6441B, 0xE1CDD71E, 0xE1B56B4C,
746 0xE19D00C3, 0xE1849747, 0xE16C2EF8, 0xE153C7D6, 0xE13B61E4, 0xE122FD21,
747 0xE10A998E, 0xE0F2374C, 0xE0D9D61E, 0xE0C17623, 0xE0A9175D, 0xE090B9CC,
748 0xE0785D71, 0xE060026C, 0xE047A880, 0xE02F4FCE, 0xE016F855, 0xDFFEA217,
749 0xDFE64D16, 0xDFCDF951, 0xDFB5A6C9, 0xDF9D5581, 0xDF850578, 0xDF6CB6B0,
750 0xDF546967, 0xDF3C1D23, 0xDF23D222, 0xDF0B8865, 0xDEF33FEE, 0xDEDAF8BD,
751 0xDEC2B2D2, 0xDEAA6E30, 0xDE922AD7, 0xDE79E8C8, 0xDE61A804, 0xDE49688C,
752 0xDE312A60, 0xDE18EDC0, 0xDE00B230, 0xDDE877F1, 0xDDD03F01, 0xDDB80763,
753 0xDD9FD118, 0xDD879C1F, 0xDD6F687B, 0xDD57362C, 0xDD3F0533, 0xDD26D591,
754 0xDD0EA747, 0xDCF67A56, 0xDCDE4EBF, 0xDCC624C0, 0xDCADFBDF, 0xDC95D45B,
755 0xDC7DAE34, 0xDC65896C, 0xDC4D6603, 0xDC3543FA, 0xDC1D2353, 0xDC05040E,
756 0xDBECE62C, 0xDBD4C9AE, 0xDBBCAE95, 0xDBA494E1, 0xDB8C7C95, 0xDB7465EE,
757 0xDB5C5072, 0xDB443C60, 0xDB2C29B8, 0xDB14187C, 0xDAFC08AC, 0xDAE3FA4A,
758 0xDACBED56, 0xDAB3E1D1, 0xDA9BD7BC, 0xDA83CF18, 0xDA6BC7E6, 0xDA53C227,
759 0xDA3BBDDC, 0xDA23BB42, 0xDA0BB9E1, 0xD9F3B9F7, 0xD9DBBB85, 0xD9C3BE8A,
760 0xD9ABC309, 0xD993C903, 0xD97BD077, 0xD963D968, 0xD94BE3D6, 0xD933EFC2,
761 0xD91BFD2D, 0xD9040C17, 0xD8EC1CC0, 0xD8D42EAD, 0xD8BC421C, 0xD8A4570F,
762 0xD88C6D87, 0xD8748584, 0xD85C9F07, 0xD844BA12, 0xD82CD6A4, 0xD814F4C0,
763 0xD7FD1466, 0xD7E53596, 0xD7CD5853, 0xD7B57C9C, 0xD79DA2AF, 0xD785CA15,
764 0xD76DF309, 0xD7561D8F, 0xD73E49A5, 0xD726774E, 0xD70EA68A, 0xD6F6D75A,
765 0xD6DF09BF, 0xD6C73DBA, 0xD6AF734C, 0xD697AA76, 0xD67FE338, 0xD6681D94,
766 0xD65059C7, 0xD6389759, 0xD620D687, 0xD6091753, 0xD5F159BC, 0xD5D99DC5,
767 0xD5C1E36E, 0xD5AA2AB7, 0xD59273A3, 0xD57ABE31, 0xD5630A63, 0xD54B5839,
768 0xD533A7B5, 0xD51BF914, 0xD5044BDE, 0xD4ECA050, 0xD4D4F66B, 0xD4BD4E30,
769 0xD4A5A7A0, 0xD48E02BC, 0xD4765F85, 0xD45EBDFB, 0xD4471E20, 0xD42F7FF5,
770 0xD417E37A, 0xD40048B0, 0xD3E8AF98, 0xD3D11870, 0xD3B982C0, 0xD3A1EEC5,
771 0xD38A5C80, 0xD372CBF1, 0xD35B3D1A, 0xD343AFFC, 0xD32C2497, 0xD3149AED,
772 0xD2FD12FE, 0xD2E58CCC, 0xD2CE0856, 0xD2B6859F, 0xD29F04A6, 0xD28785AA,
773 0xD2700832, 0xD2588C7C, 0xD2411288, 0xD2299A58, 0xD21223EC, 0xD1FAAF46,
774 0xD1E33C66, 0xD1CBCB4D, 0xD1B45BFC, 0xD19CEE74, 0xD18582B6, 0xD16E18C2,
775 0xD156B0D6, 0xD13F4A7A, 0xD127E5EC, 0xD110832D, 0xD0F9223C, 0xD0E1C31C,
776 0xD0CA65CD, 0xD0B30A50, 0xD09BB0A5, 0xD08458CF, 0xD06D02CD, 0xD055AEA0,
777 0xD03E5C4A, 0xD0270BCB, 0xD00FBD60, 0xCFF87093, 0xCFE1259F, 0xCFC9DC87,
778 0xCFB2954B, 0xCF9B4FEB, 0xCF840C68, 0xCF6CCAC5, 0xCF558B01, 0xCF3E4D1D,
779 0xCF27111A, 0xCF0FD6F9, 0xCEF89EBC, 0xCEE16862, 0xCECA3428, 0xCEB30199,
780 0xCE9BD0F0, 0xCE84A22F, 0xCE6D7556, 0xCE564A66, 0xCE3F2161, 0xCE27FA47,
781 0xCE10D518, 0xCDF9B1D7, 0xCDE29083, 0xCDCB711D, 0xCDB453A8, 0xCD9D3822,
782 0xCD861EC9, 0xCD6F0727, 0xCD57F178, 0xCD40DDBE, 0xCD29CBF8, 0xCD12BC27,
783 0xCCFBAE4E, 0xCCE4A26C, 0xCCCD9882, 0xCCB69091, 0xCC9F8A9B, 0xCC8886A0,
784 0xCC7184A1, 0xCC5A84D9, 0xCC4386D4, 0xCC2C8ACE, 0xCC1590C8, 0xCBFE98C2,
785 0xCBE7A2BD, 0xCBD0AEBA, 0xCBB9BCBB, 0xCBA2CCBF, 0xCB8BDEC8, 0xCB74F2D7,
786 0xCB5E08EC, 0xCB472109, 0xCB303B2E, 0xCB195797, 0xCB0275CF, 0xCAEB9613,
787 0xCAD4B862, 0xCABDDCBF, 0xCAA70328, 0xCA902BA1, 0xCA795628, 0xCA6282C0,
788 0xCA4BB16A, 0xCA34E225, 0xCA1E14F3, 0xCA0749D5, 0xC9F080CC, 0xC9D9BA12,
789 0xC9C2F534, 0xC9AC326E, 0xC99571C0, 0xC97EB32C, 0xC967F6B1, 0xC9513C51,
790 0xC93A840C, 0xC923CDE5, 0xC90D19DA, 0xC8F667EE, 0xC8DFB822, 0xC8C90A75,
791 0xC8B25F23, 0xC89BB5B9, 0xC8850E72, 0xC86E694E, 0xC857C64F, 0xC8412575,
792 0xC82A86C1, 0xC813EA34, 0xC7FD4FD0, 0xC7E6B794, 0xC7D02181, 0xC7B98D9A,
793 0xC7A2FBDD, 0xC78C6C4D, 0xC775DF24, 0xC75F53EF, 0xC748CAE9, 0xC7324413,
794 0xC71BBF6D, 0xC7053CF9, 0xC6EEBCB8, 0xC6D83EA9, 0xC6C1C2CF, 0xC6AB4929,
795 0xC694D1BA, 0xC67E5C81, 0xC667E980, 0xC65178B7, 0xC63B0A60, 0xC6249E0B,
796 0xC60E33F1, 0xC5F7CC12, 0xC5E16670, 0xC5CB030C, 0xC5B4A1E7, 0xC59E4300,
797 0xC587E65A, 0xC5718BF5, 0xC55B33D2, 0xC544DDF2, 0xC52E8A55, 0xC5183936,
798 0xC501EA23, 0xC4EB9D57, 0xC4D552D1, 0xC4BF0A94, 0xC4A8C49F, 0xC49280F4,
799 0xC47C3F94, 0xC466007F, 0xC44FC3B6, 0xC439893A, 0xC423510D, 0xC40D1B2E,
800 0xC3F6E79F, 0xC3E0B698, 0xC3CA87AB, 0xC3B45B10, 0xC39E30C8, 0xC38808D4,
801 0xC371E335, 0xC35BBFEB, 0xC3459EF8, 0xC32F805C, 0xC3196419, 0xC3034A2E,
802 0xC2ED329E, 0xC2D71D68, 0xC2C10A8E, 0xC2AAFA48, 0xC294EC28, 0xC27EE066,
803 0xC268D703, 0xC252CFFF, 0xC23CCB5D, 0xC226C91C, 0xC210C93D, 0xC1FACBC2,
804 0xC1E4D0AB, 0xC1CED7F9, 0xC1B8E1AD, 0xC1A2EDC7, 0xC18CFC49, 0xC1770D33,
805 0xC1612086, 0xC14B3644, 0xC1354E6C, 0xC11F6900, 0xC1098601, 0xC0F3A5DE,
806 0xC0DDC7BA, 0xC0C7EC06, 0xC0B212C1, 0xC09C3BED, 0xC086678B, 0xC070959B,
807 0xC05AC61F, 0xC044F916, 0xC02F2E83, 0xC0196665, 0xC003A0BF, 0xBFEDDD8F,
808 0xBFD81CD8, 0xBFC25E9B, 0xBFACA2D7, 0xBF96E98E, 0xBF8132C1, 0xBF6B7E71,
809 0xBF55CC9D, 0xBF401D48, 0xBF2A7072, 0xBF14C61C, 0xBEFF1E47, 0xBEE978F3,
810 0xBED3D622, 0xBEBE35D4, 0xBEA8980A, 0xBE92FD33, 0xBE7D6473, 0xBE67CE3B,
811 0xBE523A89, 0xBE3CA960, 0xBE271AC0, 0xBE118EA9, 0xBDFC051E, 0xBDE67E1E,
812 0xBDD0F9AA, 0xBDBB77C4, 0xBDA5F86B, 0xBD907BA2, 0xBD7B0168, 0xBD6589BE,
813 0xBD5014A6, 0xBD3AA221, 0xBD25322E, 0xBD0FC4CF, 0xBCFA5A05, 0xBCE4F1D0,
814 0xBCCF8C31, 0xBCBA292A, 0xBCA4C8BB, 0xBC8F6AE4, 0xBC7A0FA7, 0xBC64B704,
815 0xBC4F616A, 0xBC3A0DFE, 0xBC24BD30, 0xBC0F6EFF, 0xBBFA236D, 0xBBE4DA7A,
816 0xBBCF9428, 0xBBBA5076, 0xBBA50F66, 0xBB8FD0F9, 0xBB7A9530, 0xBB655C0A,
817 0xBB50258A, 0xBB3AF1B0, 0xBB25C07C, 0xBB1091F0, 0xBAFB660C, 0xBAE63CD2,
818 0xBAD11641, 0xBABBF25B, 0xBAA6D121, 0xBA91B294, 0xBA7C96B3, 0xBA677D81,
819 0xBA5266FE, 0xBA3D532A, 0xBA284207, 0xBA133395, 0xB9FE2840, 0xB9E91F33,
820 0xB9D418DA, 0xB9BF1536, 0xB9AA1447, 0xB995160E, 0xB9801A8C, 0xB96B21C2,
821 0xB9562BB0, 0xB9413858, 0xB92C47BA, 0xB91759D7, 0xB9026EB0, 0xB8ED8646,
822 0xB8D8A099, 0xB8C3BDAA, 0xB8AEDD7B, 0xB89A000B, 0xB885255C, 0xB8704D6F,
823 0xB85B7843, 0xB846A5DB, 0xB831D637, 0xB81D0957, 0xB8083F3D, 0xB7F377E9,
824 0xB7DEB35D, 0xB7C9F202, 0xB7B53306, 0xB7A076D3, 0xB78BBD6B, 0xB77706CD,
825 0xB76252FC, 0xB74DA1F7, 0xB738F3C0, 0xB7244857, 0xB70F9FBE, 0xB6FAF9F4,
826 0xB6E656FB, 0xB6D1B6D3, 0xB6BD197D, 0xB6A87EFB, 0xB693E74C, 0xB67F5273,
827 0xB66AC06E, 0xB6563140, 0xB641A4E9, 0xB62D1B69, 0xB61894C3, 0xB60410F5,
828 0xB5EF9002, 0xB5DB11EA, 0xB5C696AE, 0xB5B21E4E, 0xB59DA934, 0xB589368F,
829 0xB574C6CA, 0xB56059E4, 0xB54BEFDF, 0xB53788BB, 0xB5232479, 0xB50EC31A,
830 0xB4FA649F, 0xB4E60908, 0xB4D1B057, 0xB4BD5A8B, 0xB4A907A6, 0xB494B7A9,
831 0xB4806A94, 0xB46C2068, 0xB457D927, 0xB44394D0, 0xB42F5364, 0xB41B14E5,
832 0xB406D952, 0xB3F2A0AE, 0xB3DE6AF8, 0xB3CA3832, 0xB3B6085B, 0xB3A1DB76,
833 0xB38DB182, 0xB3798A81, 0xB36566DA, 0xB35145C0, 0xB33D279B, 0xB3290C6C,
834 0xB314F433, 0xB300DEF1, 0xB2ECCCA7, 0xB2D8BD56, 0xB2C4B0FE, 0xB2B0A7A0,
835 0xB29CA13E, 0xB2889DD7, 0xB2749D6D, 0xB260A000, 0xB24CA592, 0xB238AE22,
836 0xB224B9B2, 0xB210C842, 0xB1FCD9D3, 0xB1E8EE67, 0xB1D505FD, 0xB1C12097,
837 0xB1AD3E35, 0xB1995ED7, 0xB1858280, 0xB171A92F, 0xB15DD2E6, 0xB14A000A,
838 0xB1362FD1, 0xB12262A2, 0xB10E987D, 0xB0FAD164, 0xB0E70D57, 0xB0D34C56,
839 0xB0BF8E62, 0xB0ABD37D, 0xB0981BA7, 0xB08466E0, 0xB070B52A, 0xB05D0685,
840 0xB0495AF2, 0xB035B272, 0xB0220D05, 0xB00E6AAD, 0xAFFACB6A, 0xAFE72F3C,
841 0xAFD39625, 0xAFC00025, 0xAFAC6D3E, 0xAF98DD6F, 0xAF8550B9, 0xAF71C71E,
842 0xAF5E409E, 0xAF4ABD3A, 0xAF373CF2, 0xAF23C02B, 0xAF10461F, 0xAEFCCF31,
843 0xAEE95B63, 0xAED5EAB5, 0xAEC27D29, 0xAEAF12BE, 0xAE9BAB76, 0xAE884751,
844 0xAE74E650, 0xAE618874, 0xAE4E2DBE, 0xAE3AD62D, 0xAE2781C4, 0xAE143083,
845 0xAE00E26A, 0xADED977A, 0xADDA4FB5, 0xADC70B1A, 0xADB3C9AB, 0xADA08B68,
846 0xAD8D5052, 0xAD7A186A, 0xAD66E3B0, 0xAD53B225, 0xAD4083CB, 0xAD2D58A1,
847 0xAD1A310A, 0xAD070C43, 0xACF3EAB0, 0xACE0CC50, 0xACCDB124, 0xACBA992E,
848 0xACA7846E, 0xAC9472E4, 0xAC816491, 0xAC6E5977, 0xAC5B5195, 0xAC484CED,
849 0xAC354B7F, 0xAC224D4C, 0xAC0F5255, 0xABFC5A9A, 0xABE9661D, 0xABD674DD,
850 0xABC386DC, 0xABB09C1A, 0xAB9DB499, 0xAB8AD058, 0xAB77EF59, 0xAB65119D,
851 0xAB523723, 0xAB3F5FED, 0xAB2C8BFB, 0xAB19BBAF, 0xAB06EE48, 0xAAF42429,
852 0xAAE15D50, 0xAACE99C0, 0xAABBD979, 0xAAA91C7B, 0xAA9662C7, 0xAA83AC5E,
853 0xAA70F941, 0xAA5E4971, 0xAA4B9CEE, 0xAA38F3B8, 0xAA264DD1, 0xAA13AB3A,
854 0xAA010BF2, 0xA9EE6FFB, 0xA9DBD756, 0xA9C94203, 0xA9B6B003, 0xA9A42156,
855 0xA99195FE, 0xA97F0DFB, 0xA96C894D, 0xA95A07F6, 0xA94789F6, 0xA9350F4E,
856 0xA92297FF, 0xA9102467, 0xA8FDB3CB, 0xA8EB468A, 0xA8D8DCA4, 0xA8C6761A,
857 0xA8B412EE, 0xA8A1B31F, 0xA88F56AE, 0xA87CFD9C, 0xA86AA7EA, 0xA8585598,
858 0xA84606A8, 0xA833BB19, 0xA82172ED, 0xA80F2E24, 0xA7FCECBF, 0xA7EAAEBE,
859 0xA7D87423, 0xA7C63CEE, 0xA7B40920, 0xA7A1D8B9, 0xA78FABBB, 0xA77D8225,
860 0xA76B5BF9, 0xA7593937, 0xA74719E0, 0xA734FDF4, 0xA722E5D2, 0xA710D0C0,
861 0xA6FEBF1B, 0xA6ECB0E6, 0xA6DAA61F, 0xA6C89EC8, 0xA6B69AE2, 0xA6A49A6D,
862 0xA6929D6A, 0xA680A3D9, 0xA66EADBC, 0xA65CBB13, 0xA64ACBDF, 0xA638E020,
863 0xA626F7D7, 0xA6151304, 0xA60331AA, 0xA5F153C7, 0xA5DF795D, 0xA5CDA26D,
864 0xA5BBCEF7, 0xA5A9FEFC, 0xA598327C, 0xA5866979, 0xA574A3F2, 0xA562E1EA,
865 0xA551235F, 0xA53F6854, 0xA52DB122, 0xA51BFD17, 0xA50A4C8D, 0xA4F89F84,
866 0xA4E6F5FE, 0xA4D54FFB, 0xA4C3AD7C, 0xA4B20E81, 0xA4A0730B, 0xA48EDB1B,
867 0xA47D46B2, 0xA46BB5D0, 0xA45A2876, 0xA4489EA4, 0xA437185B, 0xA425959D,
868 0xA4141669, 0xA4029AC0, 0xA3F122A3, 0xA3DFAE12, 0xA3CE3D0F, 0xA3BCCF9A,
869 0xA3AB65B3, 0xA399FF5C, 0xA3889C95, 0xA3773D5E, 0xA365E1B8, 0xA35489FD,
870 0xA343357C, 0xA331E48F, 0xA3209735, 0xA30F4D70, 0xA2FE0740, 0xA2ECC4A6,
871 0xA2DB85A3, 0xA2CA4A37, 0xA2B91263, 0xA2A7DE27, 0xA296AD85, 0xA285807D,
872 0xA274570F, 0xA263313D, 0xA2520F06, 0xA240F06D, 0xA22FD570, 0xA21EBE11,
873 0xA20DAA51, 0xA1FC9A30, 0xA1EB8DAF, 0xA1DA84CF, 0xA1C97F90, 0xA1B87DF2,
874 0xA1A77FF7, 0xA196859F, 0xA1858F42, 0xA1749C32, 0xA163ACC8, 0xA152C103,
875 0xA141D8E5, 0xA130F46E, 0xA120139E, 0xA10F3677, 0xA0FE5CF9, 0xA0ED8725,
876 0xA0DCB4FB, 0xA0CBE67C, 0xA0BB1BA8, 0xA0AA5481, 0xA0999107, 0xA088D13A,
877 0xA078151C, 0xA0675CAC, 0xA056A7EC, 0xA045F6DC, 0xA035497D, 0xA0249FD0,
878 0xA013F9D4, 0xA003578B, 0x9FF2B8F5, 0x9FE21E14, 0x9FD186E7, 0x9FC0F36F,
879 0x9FB06402, 0x9F9FD7F7, 0x9F8F4FA3, 0x9F7ECB06, 0x9F6E4A23, 0x9F5DCCF8,
880 0x9F4D5387, 0x9F3CDDD1, 0x9F2C6BD5, 0x9F1BFD95, 0x9F0B9312, 0x9EFB2C4B,
881 0x9EEAC942, 0x9EDA69F7, 0x9ECA0E6B, 0x9EB9B69E, 0x9EA96291, 0x9E991245,
882 0x9E88C5BB, 0x9E787CF2, 0x9E6837EC, 0x9E57F6A9, 0x9E47B92A, 0x9E377F70,
883 0x9E27497A, 0x9E17174A, 0x9E06E8E1, 0x9DF6BE91, 0x9DE697B6, 0x9DD674A3,
884 0x9DC65559, 0x9DB639D8, 0x9DA62222, 0x9D960E36, 0x9D85FE16, 0x9D75F1C1,
885 0x9D65E939, 0x9D55E47F, 0x9D45E392, 0x9D35E673, 0x9D25ED23, 0x9D15F7A4,
886 0x9D0605F4, 0x9CF61815, 0x9CE62E08, 0x9CD647CC, 0x9CC66564, 0x9CB686CF,
887 0x9CA6AC0D, 0x9C96D521, 0x9C870209, 0x9C7732C7, 0x9C67675C, 0x9C579FC7,
888 0x9C47DC0A, 0x9C381C76, 0x9C28606A, 0x9C18A837, 0x9C08F3DF, 0x9BF94361,
889 0x9BE996BE, 0x9BD9EDF7, 0x9BCA490D, 0x9BBAA7FF, 0x9BAB0ACF, 0x9B9B717E,
890 0x9B8BDC0B, 0x9B7C4A78, 0x9B6CBCC5, 0x9B5D32F2, 0x9B4DAD01, 0x9B3E2AF1,
891 0x9B2EACC4, 0x9B1F327A, 0x9B0FBC14, 0x9B004992, 0x9AF0DAF4, 0x9AE1703C,
892 0x9AD2096B, 0x9AC2A67F, 0x9AB3477B, 0x9AA3EC5F, 0x9A949579, 0x9A85422E,
893 0x9A75F2CD, 0x9A66A755, 0x9A575FC9, 0x9A481C28, 0x9A38DC72, 0x9A29A0AA,
894 0x9A1A68CE, 0x9A0B34E0, 0x99FC04E0, 0x99ECD8D0, 0x99DDB0AE, 0x99CE8C7D,
895 0x99BF6C3C, 0x99B04FED, 0x99A1378F, 0x99922323, 0x998312AB, 0x99740626,
896 0x9964FD95, 0x9955F8F9, 0x9946F852, 0x9937FBA1, 0x992902E6, 0x991A0E23,
897 0x990B1D57, 0x98FC30CF, 0x98ED47F3, 0x98DE6311, 0x98CF8229, 0x98C0A53B,
898 0x98B1CC49, 0x98A2F752, 0x98942657, 0x98855959, 0x98769058, 0x9867CB55,
899 0x98590A50, 0x984A4D4B, 0x983B9445, 0x982CDF3F, 0x981E2E3A, 0x980F8136,
900 0x9800D834, 0x97F23334, 0x97E39238, 0x97D4F53F, 0x97C65C4A, 0x97B7C759,
901 0x97A9366E, 0x979AA989, 0x978C20AA, 0x977D9BD2, 0x976F1B02, 0x97609E83,
902 0x975225C3, 0x9743B10C, 0x9735405F, 0x9726D3BC, 0x97186B24, 0x970A0697,
903 0x96FBA617, 0x96ED49A2, 0x96DEF13B, 0x96D09CE1, 0x96C24C96, 0x96B40059,
904 0x96A5B82B, 0x9697740E, 0x96893400, 0x967AF804, 0x966CC019, 0x965E8C40,
905 0x96505C79, 0x964230C5, 0x96340926, 0x9625E59A, 0x9617C623, 0x9609AAC1,
906 0x95FB9375, 0x95ED8040, 0x95DF7169, 0x95D16662, 0x95C35F72, 0x95B55C9C,
907 0x95A75DDE, 0x9599633A, 0x958B6CB0, 0x957D7A41, 0x956F8BEC, 0x9561A1B4,
908 0x9553BB98, 0x9545D999, 0x9537FBB7, 0x952A21F3, 0x951C4C4E, 0x950E7AC7,
909 0x9500AD60, 0x94F2E419, 0x94E51EF3, 0x94D75DED, 0x94C9A10A, 0x94BBE848,
910 0x94AE33A9, 0x94A0832D, 0x9492D6D5, 0x94852EA2, 0x94778A93, 0x9469EAA9,
911 0x945C4F2B, 0x944EB78D, 0x94412416, 0x943394C7, 0x942609A0, 0x941882A1,
912 0x940AFFCB, 0x93FD811F, 0x93F0069D, 0x93E29045, 0x93D51E18, 0x93C7B017,
913 0x93BA4642, 0x93ACE09A, 0x939F7F1E, 0x939221D1, 0x9384C8B1, 0x937773C0,
914 0x936A22FF, 0x935CD66D, 0x934F8E0B, 0x934249DA, 0x933509DA, 0x9327CE0C,
915 0x931A9671, 0x930D6308, 0x930033D2, 0x92F308D0, 0x92E5E202, 0x92D8BF69,
916 0x92CBA106, 0x92BE86D8, 0x92B170E1, 0x92A45F20, 0x92975197, 0x928A4846,
917 0x927D432D, 0x9270424C, 0x926345A5, 0x92564D38, 0x92495906, 0x923C6991,
918 0x922F7DD5, 0x92229654, 0x9215B30F, 0x9208D407, 0x91FBF93D, 0x91EF22B0,
919 0x91E25062, 0x91D58252, 0x91C8B882, 0x91BBF2F2, 0x91AF31A2, 0x91A27492,
920 0x9195BBC4, 0x91890738, 0x917C56EE, 0x916FAAE7, 0x91630323, 0x91565FA2,
921 0x9149C066, 0x913D256E, 0x91308EBC, 0x9123FC50, 0x91176E29, 0x910AE449,
922 0x90FE5EB0, 0x90F1DD5F, 0x90E56056, 0x90D8E796, 0x90CC731E, 0x90C002F0,
923 0x90B3970C, 0x90A72F73, 0x909ACC24, 0x908E6D21, 0x9082126A, 0x9075BBFF,
924 0x906969E1, 0x905D1C10, 0x9050D28E, 0x90448D59, 0x90384C73, 0x902C0FDD,
925 0x901FD796, 0x9013A39F, 0x900773F9, 0x8FFB48A4, 0x8FEF21A1, 0x8FE2FEF0,
926 0x8FD6E091, 0x8FCAC685, 0x8FBEB0CD, 0x8FB29F69, 0x8FA69259, 0x8F9A899E,
927 0x8F8E85B2, 0x8F8285A2, 0x8F7689E8, 0x8F6A9285, 0x8F5E9F78, 0x8F52B0C4,
928 0x8F46C668, 0x8F3AE064, 0x8F2EFEB9, 0x8F232167, 0x8F174870, 0x8F0B73D3,
929 0x8EFFA391, 0x8EF3D7AA, 0x8EE8101E, 0x8EDC4CEF, 0x8ED08E1D, 0x8EC4D3A8,
930 0x8EB91D90, 0x8EAD6BD6, 0x8EA1BE7B, 0x8E96157E, 0x8E8A70E1, 0x8E7ED0A4,
931 0x8E7334C7, 0x8E679D4B, 0x8E5C0A30, 0x8E507B76, 0x8E44F11F, 0x8E396B2A,
932 0x8E2DE997, 0x8E226C69, 0x8E16F39E, 0x8E0B7F37, 0x8E000F35, 0x8DF4A398,
933 0x8DE93C61, 0x8DDDD990, 0x8DD27B25, 0x8DC72121, 0x8DBBCB85, 0x8DB07A50,
934 0x8DA52D83, 0x8D99E520, 0x8D8EA125, 0x8D836193, 0x8D78266C, 0x8D6CEFAF,
935 0x8D61BD5D, 0x8D568F76, 0x8D4B65FB, 0x8D4040EB, 0x8D352049, 0x8D2A0413,
936 0x8D1EECBC, 0x8D13D961, 0x8D08CA75, 0x8CFDBFF7, 0x8CF2B9E8, 0x8CE7B849,
937 0x8CDCBB1A, 0x8CD1C25B, 0x8CC6CE0D, 0x8CBBDE31, 0x8CB0F2C6, 0x8CA60BCC,
938 0x8C9B2946, 0x8C904B32, 0x8C857192, 0x8C7A9C65, 0x8C6FCBAD, 0x8C64FF69,
939 0x8C5A379A, 0x8C4F7440, 0x8C44B55D, 0x8C39FAEF, 0x8C2F44F8, 0x8C249378,
940 0x8C19E670, 0x8C0F3DE0, 0x8C0499C8, 0x8BF9FA28, 0x8BEF5F02, 0x8BE4C855,
941 0x8BDA3622, 0x8BCFA86A, 0x8BC51F2C, 0x8BBA9A69, 0x8BB01A22, 0x8BA59E57,
942 0x8B9B2708, 0x8B90B436, 0x8B8645E2, 0x8B7BDC0A, 0x8B7176B1, 0x8B6715D6,
943 0x8B5CB97A, 0x8B52619D, 0x8B480E40, 0x8B3DBF62, 0x8B337505, 0x8B292F29,
944 0x8B1EEDCE, 0x8B14B0F4, 0x8B0A789D, 0x8B0044C8, 0x8AF61575, 0x8AEBEAA6,
945 0x8AE1C45A, 0x8AD7A2F9, 0x8ACD85B5, 0x8AC36CF6, 0x8AB958BC, 0x8AAF4908,
946 0x8AA53DD9, 0x8A9B3731, 0x8A91350F, 0x8A873774, 0x8A7D3E61, 0x8A7349D5,
947 0x8A6959D2, 0x8A5F6E57, 0x8A558765, 0x8A4BA4FC, 0x8A41C71E, 0x8A37EDC9,
948 0x8A2E18FE, 0x8A2448BF, 0x8A1A7D0B, 0x8A10B5E2, 0x8A06F345, 0x89FD3535,
949 0x89F37BB1, 0x89E9C6BB, 0x89E01652, 0x89D66A77, 0x89CCC32A, 0x89C3206B,
950 0x89B9823C, 0x89AFE89C, 0x89A6538C, 0x899CC30B, 0x8993371B, 0x8989AFBC,
951 0x89802CEF, 0x8976AEB2, 0x896D3508, 0x8963BFF0, 0x895A4F6A, 0x8950E378,
952 0x89477C19, 0x893E194E, 0x8934BB16, 0x892B6174, 0x89220C66, 0x8918BBED,
953 0x890F700A, 0x890628BC, 0x88FCE605, 0x88F3A7E5, 0x88EA6E5B, 0x88E13969,
954 0x88D8090E, 0x88CEDD4C, 0x88C5B67F, 0x88BC93ED, 0x88B375F5, 0x88AA5C96,
955 0x88A147D1, 0x889837A5, 0x888F2C15, 0x8886251F, 0x887D22C5, 0x88742505,
956 0x886B2BE2, 0x8862375B, 0x88594771, 0x88505C24, 0x88477573, 0x883E9361,
957 0x8835B5EC, 0x882CDD16, 0x882408DE, 0x881B3945, 0x88126E4C, 0x8809A7F2,
958 0x8800E638, 0x87F8291F, 0x87EF70A6, 0x87E6BCCE, 0x87DE0D98, 0x87D56303,
959 0x87CCBD10, 0x87C41BC0, 0x87BB7F12, 0x87B2E707, 0x87AA539F, 0x87A1C4DC,
960 0x87993ABC, 0x8790B540, 0x87883469, 0x877FB837, 0x877740AB, 0x876ECDC4,
961 0x87665F83, 0x875DF5E8, 0x875590F4, 0x874D30A7, 0x8744D501, 0x873C7E03,
962 0x87342BAC, 0x872BDDFE, 0x872394F8, 0x871B509C, 0x871310E8, 0x870AD5DE,
963 0x87029F7D, 0x86FA6DC7, 0x86F240BB, 0x86EA18AD, 0x86E1F4F7, 0x86D9D5EC,
964 0x86D1BB8D, 0x86C9A5DA, 0x86C194D4, 0x86B9887A, 0x86B180CC, 0x86A97DCD,
965 0x86A17F7A, 0x869985D6, 0x869190E0, 0x8689A098, 0x8681B4FF, 0x8679CE15,
966 0x8671EBDB, 0x866A0E50, 0x86623575, 0x865A614B, 0x865291D1, 0x864AC708,
967 0x864300F0, 0x863B3F8A, 0x863382D5, 0x862BCAD3, 0x86241783, 0x861C68E6,
968 0x8614BEFC, 0x860D19C5, 0x86057942, 0x85FDDD73, 0x85F64657, 0x85EEB3F1,
969 0x85E7263F, 0x85DF9D42, 0x85D818FA, 0x85D09968, 0x85C91E8C, 0x85C1A867,
970 0x85BA36F7, 0x85B2CA3F, 0x85AB623E, 0x85A3FEF4, 0x859CA061, 0x85954687,
971 0x858DF164, 0x8586A0FB, 0x857F554A, 0x85780E52, 0x8570CC13, 0x85698E8E,
972 0x856255C3, 0x855B21B2, 0x8553F25C, 0x854CC7C0, 0x8545A228, 0x853E8103,
973 0x85376499, 0x85304CEA, 0x852939F8, 0x85222BC3, 0x851B224A, 0x85141D8D,
974 0x850D1D8E, 0x8506224D, 0x84FF2BC9, 0x84F83A03, 0x84F14CFC, 0x84EA64B3,
975 0x84E38129, 0x84DCA25E, 0x84D5C852, 0x84CEF306, 0x84C8227A, 0x84C156AD,
976 0x84BA8FA2, 0x84B3CD57, 0x84AD0FCC, 0x84A65703, 0x849FA2FC, 0x8498F3B6,
977 0x84924932, 0x848BA370, 0x84850270, 0x847E6634, 0x8477CEBA, 0x84713C04,
978 0x846AAE11, 0x846424E1, 0x845DA076, 0x845720CF, 0x8450A5EC, 0x844A2FCE,
979 0x8443BE75, 0x843D51E2, 0x8436EA14, 0x8430870B, 0x842A28C9, 0x8423CF4C,
980 0x841D7A97, 0x84172AA7, 0x8410DF7F, 0x840A991E, 0x84045785, 0x83FE1AB3,
981 0x83F7E2A9, 0x83F1AF67, 0x83EB80ED, 0x83E5573D, 0x83DF3293, 0x83D91274,
982 0x83D2F71E, 0x83CCE092, 0x83C6CED0, 0x83C0C1D8, 0x83BAB9AA, 0x83B4B646,
983 0x83AEB7AD, 0x83A8BDE0, 0x83A2C8DD, 0x839CD8A6, 0x8396ED3A, 0x8391069B,
984 0x838B24C7, 0x838547C0, 0x837F6F86, 0x83799C18, 0x8373CD77, 0x836E03A4,
985 0x83683E9D, 0x83627E65, 0x835CC2FB, 0x83570C5E, 0x83515A90, 0x834BAD91,
986 0x83460560, 0x834061FF, 0x833AC36C, 0x833529A9, 0x832F94B6, 0x832A0493,
987 0x8324793F, 0x831EF2BC, 0x8319710A, 0x8313F428, 0x830E7C17, 0x830908D8,
988 0x83039A69, 0x82FE30CD, 0x82F8CC02, 0x82F36C09, 0x82EE10E2, 0x82E8BA8D,
989 0x82E3690C, 0x82DE1C5D, 0x82D8D481, 0x82D39178, 0x82CE5343, 0x82C919E1,
990 0x82C3E553, 0x82BEB599, 0x82B98AB3, 0x82B464A2, 0x82AF4366, 0x82AA2732,
991 0x82A50F9F, 0x829FFCE1, 0x829AEEF9, 0x8295E5E6, 0x8290E1A9, 0x828BE242,
992 0x8286E7B1, 0x8281F1F7, 0x827D0113, 0x82781506, 0x82732DD0, 0x826E4B71,
993 0x82696DEA, 0x82649539, 0x825FC161, 0x825AF260, 0x82562838, 0x825162E8,
994 0x824CA270, 0x8247E6D1, 0x8243300A, 0x823E7E1D, 0x8239D109, 0x823528CE,
995 0x8230856D, 0x822BE6E5, 0x82274D37, 0x8222B864, 0x821E286A, 0x82199D4B,
996 0x82151707, 0x8210959D, 0x820C190F, 0x8207A15B, 0x82032E83, 0x81FEC086,
997 0x81FA5764, 0x81F5F31F, 0x81F193B6, 0x81ED3928, 0x81E8E377, 0x81E492A3,
998 0x81E046AB, 0x81DBFF8F, 0x81D7BD51, 0x81D37FF0, 0x81CF476C, 0x81CB13C6,
999 0x81C6E4FD, 0x81C2BB13, 0x81BE9606, 0x81BA75D7, 0x81B65A86, 0x81B24414,
1000 0x81AE32AA, 0x81AA25F5, 0x81A61E1E, 0x81A21B27, 0x819E1D0F, 0x819A23D7,
1001 0x81962F7D, 0x81924004, 0x818E556A, 0x818A6FB1, 0x81868ED7, 0x8182B2DE,
1002 0x817EDBC5, 0x817B098D, 0x81773C35, 0x817373BE, 0x816FB028, 0x816BF174,
1003 0x816837A0, 0x816482AE, 0x8160D29E, 0x815D276F, 0x81598123, 0x8155DFB8,
1004 0x8152432F, 0x814EAB89, 0x814B18C5, 0x81478AE3, 0x814401E5, 0x81407DC9,
1005 0x813CFE90, 0x8139843A, 0x81360EC7, 0x81329E38, 0x812F328C, 0x812BCBC4,
1006 0x812869E0, 0x81250CDF, 0x8121B4C3, 0x811E618A, 0x811B1336, 0x8117C9C7,
1007 0x8114853B, 0x81114595, 0x810E0AD3, 0x810AD4F6, 0x8107A3FF, 0x810477EC,
1008 0x810150BF, 0x80FE2E77, 0x80FB1114, 0x80F7F898, 0x80F4E501, 0x80F1D650,
1009 0x80EECC84, 0x80EBC7BE, 0x80E8C7BF, 0x80E5CCA6, 0x80E2D674, 0x80DFE528,
1010 0x80DCF8C3, 0x80DA1145, 0x80D72EAE, 0x80D450FE, 0x80D17835, 0x80CEA453,
1011 0x80CBD558, 0x80C90B45, 0x80C6461A, 0x80C385D6, 0x80C0CA7A, 0x80BE1406,
1012 0x80BB627A, 0x80B8B5D6, 0x80B60E1A, 0x80B36B46, 0x80B0CD5B, 0x80AE3458,
1013 0x80ABA03E, 0x80A9110D, 0x80A686C4, 0x80A40165, 0x80A180EE, 0x809F0560,
1014 0x809C8EBC, 0x809A1D01, 0x8097B02F, 0x80954847, 0x8092E548, 0x80908733,
1015 0x808E2E08, 0x808BD9C6, 0x80898A6F, 0x80874001, 0x8084FA7D, 0x8082B9E4,
1016 0x80807E35, 0x807E4771, 0x807C1596, 0x8079E8A7, 0x8077C0A2, 0x80759D87,
1017 0x80737F58, 0x80716613, 0x806F51B9, 0x806D424B, 0x806B37C7, 0x8069322F,
1018 0x80673182, 0x806535C0, 0x80633EFD, 0x80614D12, 0x805F6013, 0x805D77FF,
1019 0x805B94D6, 0x8059B69A, 0x8057DD49, 0x805608E5, 0x8054396C, 0x80526EE0,
1020 0x8050A93F, 0x804EE88B, 0x804D2CC3, 0x804B75E7, 0x8049C3F8, 0x804816F6,
1021 0x80466EDF, 0x8044CBB6, 0x80432D79, 0x80419429, 0x803FFFC5, 0x803E704F,
1022 0x803CE5C5, 0x803B6028, 0x8039DF79, 0x803863B6, 0x8036ECE1, 0x80357AF8,
1023 0x80340DFE, 0x8032A5F0, 0x803142D0, 0x802FE49D, 0x802E8B57, 0x802D36FF,
1024 0x802BE795, 0x802A9D18, 0x80295789, 0x802816E8, 0x8026DB35, 0x8025A46F,
1025 0x80247297, 0x802345AD, 0x80221DB1, 0x8020FAA3, 0x801FDC83, 0x801EC351,
1026 0x801DAF0E, 0x801C9FB8, 0x801B9551, 0x801A8FD8, 0x80198F4D, 0x801893B1,
1027 0x80179D02, 0x8016AB43, 0x8015BE7B, 0x8014D698, 0x8013F3A4, 0x8013159E,
1028 0x80123C86, 0x8011685E, 0x80109924, 0x800FCED8, 0x800F097C, 0x800E490E,
1029 0x800D8D8E, 0x800CD6FE, 0x800C255D, 0x800B78AA, 0x800AD0E6, 0x800A2E11,
1030 0x8009902B, 0x8008F734, 0x8008632C, 0x8007D413, 0x800749E9, 0x8006C4AE,
1031 0x80064462, 0x8005C905, 0x80055297, 0x8004E118, 0x80047489, 0x80040CE8,
1032 0x8003AA37, 0x80034C75, 0x8002F3A2, 0x80029FBE, 0x800250CA, 0x800206C5,
1033 0x8001C1AF, 0x80018188, 0x80014650, 0x80011008, 0x8000DEAF, 0x8000B246,
1034 0x80008ACB, 0x80006840, 0x80004AA4, 0x800031F8, 0x80001E3B, 0x80000F6D,
1035 0x8000058E, 0x8000009F
1036};
1037
1038const int32_t sine_1024[] = {
1039 0xFFE6DE06, 0xFFB49A13, 0xFF82562D, 0xFF501259, 0xFF1DCEA1, 0xFEEB8B0C,
1040 0xFEB947A0, 0xFE870468, 0xFE54C16A, 0xFE227EAD, 0xFDF03C3D, 0xFDBDFA1A,
1041 0xFD8BB850, 0xFD5976EC, 0xFD2735EC, 0xFCF4F55C, 0xFCC2B548, 0xFC9075B1,
1042 0xFC5E36A1, 0xFC2BF824, 0xFBF9BA3B, 0xFBC77CF0, 0xFB95404C, 0xFB630456,
1043 0xFB30C91F, 0xFAFE8E9D, 0xFACC54E1, 0xFA9A1BF3, 0xFA67E3D9, 0xFA35AC9C,
1044 0xFA03764C, 0xF9D140E1, 0xF99F0C69, 0xF96CD8ED, 0xF93AA675, 0xF9087508,
1045 0xF8D644B6, 0xF8A41577, 0xF871E75A, 0xF83FBA68, 0xF80D8EA7, 0xF7DB6421,
1046 0xF7A93AE4, 0xF77712E0, 0xF744EC3D, 0xF712C6F2, 0xF6E0A2F8, 0xF6AE8077,
1047 0xF67C5F55, 0xF64A3FBA, 0xF618218F, 0xF5E604FC, 0xF5B3E9F6, 0xF581D078,
1048 0xF54FB8A7, 0xF51DA26D, 0xF4EB8DF0, 0xF4B97B29, 0xF4876A0F, 0xF4555ACA,
1049 0xF4234D41, 0xF3F1419D, 0xF3BF37C4, 0xF38D2FE0, 0xF35B29E6, 0xF32925D0,
1050 0xF2F723C5, 0xF2C523AD, 0xF29325AE, 0xF26129C2, 0xF22F2FDF, 0xF1FD382E,
1051 0xF1CB4296, 0xF1994F3F, 0xF1675E10, 0xF1356F32, 0xF103829B, 0xF0D19845,
1052 0xF09FB055, 0xF06DCAB5, 0xF03BE78B, 0xF00A06CF, 0xEFD8287A, 0xEFA64CA3,
1053 0xEF747371, 0xEF429CAC, 0xEF10C87C, 0xEEDEF709, 0xEEAD2819, 0xEE7B5BD6,
1054 0xEE499247, 0xEE17CB92, 0xEDE60781, 0xEDB4463A, 0xED8287E5, 0xED50CC4B,
1055 0xED1F1392, 0xECED5DC2, 0xECBBAB03, 0xEC89FB1D, 0xEC584E38, 0xEC26A47A,
1056 0xEBF4FDAC, 0xEBC359F5, 0xEB91B97C, 0xEB601C0B, 0xEB2E81C8, 0xEAFCEABB,
1057 0xEACB570B, 0xEA99C680, 0xEA683942, 0xEA36AF79, 0xEA0528EB, 0xE9D3A5C2,
1058 0xE9A22604, 0xE970A9D8, 0xE93F3108, 0xE90DBBBA, 0xE8DC4A15, 0xE8AADBE2,
1059 0xE8797148, 0xE8480A50, 0xE816A71F, 0xE7E5477E, 0xE7B3EB95, 0xE782938B,
1060 0xE7513F28, 0xE71FEE94, 0xE6EEA1F4, 0xE6BD5914, 0xE68C1418, 0xE65AD30A,
1061 0xE629960F, 0xE5F85CF0, 0xE5C727D6, 0xE595F6E6, 0xE564C9E9, 0xE533A107,
1062 0xE5027C47, 0xE4D15BCF, 0xE4A03F6A, 0xE46F273D, 0xE43E136F, 0xE40D03CA,
1063 0xE3DBF875, 0xE3AAF177, 0xE379EEF6, 0xE348F0BC, 0xE317F6F0, 0xE2E701B8,
1064 0xE2B610DD, 0xE2852487, 0xE2543CDC, 0xE22359A5, 0xE1F27B09, 0xE1C1A110,
1065 0xE190CBDF, 0xE15FFB41, 0xE12F2F5C, 0xE0FE6857, 0xE0CDA5FA, 0xE09CE86D,
1066 0xE06C2FB8, 0xE03B7C00, 0xE00ACD0F, 0xDFDA230B, 0xDFA97DFD, 0xDF78DDEC,
1067 0xDF48431C, 0xDF17AD1B, 0xDEE71C2C, 0xDEB69058, 0xDE8609A7, 0xDE55881E,
1068 0xDE250BC7, 0xDDF494E6, 0xDDC42308, 0xDD93B671, 0xDD634F29, 0xDD32ED37,
1069 0xDD0290A4, 0xDCD23975, 0xDCA1E7F1, 0xDC719BA4, 0xDC4154D2, 0xDC111384,
1070 0xDBE0D7C0, 0xDBB0A18E, 0xDB807133, 0xDB50463C, 0xDB2020ED, 0xDAF0014D,
1071 0xDABFE765, 0xDA8FD33B, 0xDA5FC4D8, 0xDA2FBC7F, 0xD9FFB9BD, 0xD9CFBCD8,
1072 0xD99FC5D7, 0xD96FD4C0, 0xD93FE99C, 0xD9100472, 0xD8E02586, 0xD8B04C65,
1073 0xD8807955, 0xD850AC5C, 0xD820E581, 0xD7F124CD, 0xD7C16A46, 0xD791B630,
1074 0xD762081A, 0xD7326047, 0xD702BEC0, 0xD6D3238A, 0xD6A38EAE, 0xD6740033,
1075 0xD644785D, 0xD614F6B9, 0xD5E57B8D, 0xD5B606DE, 0xD58698B6, 0xD557311A,
1076 0xD527D012, 0xD4F875E2, 0xD4C92218, 0xD499D4F8, 0xD46A8E8A, 0xD43B4ED4,
1077 0xD40C15DE, 0xD3DCE3B0, 0xD3ADB88C, 0xD37E9401, 0xD34F7654, 0xD3205F8B,
1078 0xD2F14FAD, 0xD2C246C3, 0xD293450E, 0xD2644A1E, 0xD2355638, 0xD2066961,
1079 0xD1D783A0, 0xD1A8A4FF, 0xD179CD82, 0xD14AFD6E, 0xD11C3453, 0xD0ED7272,
1080 0xD0BEB7D4, 0xD090047F, 0xD061587C, 0xD032B3D0, 0xD00416BE, 0xCFD580D8,
1081 0xCFA6F25F, 0xCF786B5B, 0xCF49EBD2, 0xCF1B73CD, 0xCEED0352, 0xCEBE9AA4,
1082 0xCE903952, 0xCE61DFA1, 0xCE338D96, 0xCE05433A, 0xCDD70092, 0xCDA8C5A7,
1083 0xCD7A92BA, 0xCD4C675C, 0xCD1E43D1, 0xCCF0281E, 0xCCC2144A, 0xCC94085E,
1084 0xCC660460, 0xCC380891, 0xCC0A1485, 0xCBDC287B, 0xCBAE447C, 0xCB80688F,
1085 0xCB5294BA, 0xCB24C93F, 0xCAF705B0, 0xCAC94A4F, 0xCA9B9723, 0xCA6DEC32,
1086 0xCA404985, 0xCA12AF21, 0xC9E51D49, 0xC9B7938E, 0xC98A1233, 0xC95C993D,
1087 0xC92F28B5, 0xC901C0A0, 0xC8D46107, 0xC8A70A2A, 0xC879BB9B, 0xC84C759D,
1088 0xC81F3836, 0xC7F2036C, 0xC7C4D748, 0xC797B3D0, 0xC76A9944, 0xC73D8738,
1089 0xC7107DED, 0xC6E37D6A, 0xC6B685B5, 0xC68996D6, 0xC65CB0D4, 0xC62FD3EE,
1090 0xC602FFBA, 0xC5D63477, 0xC5A9722C, 0xC57CB8E0, 0xC550089A, 0xC5236161,
1091 0xC4F6C374, 0xC4CA2E6A, 0xC49DA281, 0xC4711FC0, 0xC444A62F, 0xC41835D3,
1092 0xC3EBCEB5, 0xC3BF7113, 0xC3931C83, 0xC366D145, 0xC33A8F5F, 0xC30E56D8,
1093 0xC2E227B7, 0xC2B6023C, 0xC289E5FB, 0xC25DD335, 0xC231C9F0, 0xC205CA33,
1094 0xC1D9D405, 0xC1ADE76D, 0xC1820471, 0xC1562B18, 0xC12A5B68, 0xC0FE956A,
1095 0xC0D2D992, 0xC0A72709, 0xC07B7E45, 0xC04FDF4C, 0xC0244A25, 0xBFF8BED8,
1096 0xBFCD3D6A, 0xBFA1C5E3, 0xBF765849, 0xBF4AF4A3, 0xBF1F9AF7, 0xBEF44B4D,
1097 0xBEC905AB, 0xBE9DCA85, 0xBE729906, 0xBE4771A3, 0xBE1C5463, 0xBDF1414C,
1098 0xBDC63865, 0xBD9B39B4, 0xBD704541, 0xBD455B11, 0xBD1A7B2C, 0xBCEFA597,
1099 0xBCC4DA5B, 0xBC9A197C, 0xBC6F6302, 0xBC44B760, 0xBC1A15C4, 0xBBEF7EA0,
1100 0xBBC4F1FB, 0xBB9A6FDB, 0xBB6FF848, 0xBB458B48, 0xBB1B28E1, 0xBAF0D11A,
1101 0xBAC683F9, 0xBA9C4185, 0xBA7209C4, 0xBA47DCBE, 0xBA1DBA78, 0xB9F3A363,
1102 0xB9C996B1, 0xB99F94D3, 0xB9759DD0, 0xB94BB1AD, 0xB921D071, 0xB8F7FA23,
1103 0xB8CE2ECA, 0xB8A46E6B, 0xB87AB90D, 0xB8510EB7, 0xB8276F6E, 0xB7FDDB3B,
1104 0xB7D45221, 0xB7AAD493, 0xB78161C3, 0xB757FA20, 0xB72E9DB2, 0xB7054C7F,
1105 0xB6DC068C, 0xB6B2CBE2, 0xB6899C85, 0xB660787C, 0xB6375FCE, 0xB60E5281,
1106 0xB5E5509B, 0xB5BC5A22, 0xB5936F86, 0xB56A8FFB, 0xB541BBF1, 0xB518F36D,
1107 0xB4F03677, 0xB4C78514, 0xB49EDF4B, 0xB4764521, 0xB44DB69E, 0xB42533C7,
1108 0xB3FCBCA2, 0xB3D45137, 0xB3ABF18B, 0xB3839DA3, 0xB35B55EF, 0xB33319A5,
1109 0xB30AE933, 0xB2E2C49F, 0xB2BAABF0, 0xB2929F2B, 0xB26A9E57, 0xB242A97A,
1110 0xB21AC09A, 0xB1F2E3BD, 0xB1CB12E9, 0xB1A34E25, 0xB17B9577, 0xB153E8E4,
1111 0xB12C48D8, 0xB104B48F, 0xB0DD2C75, 0xB0B5B08E, 0xB08E40E1, 0xB066DD75,
1112 0xB03F8650, 0xB0183B77, 0xAFF0FCF0, 0xAFC9CAC2, 0xAFA2A4F3, 0xAF7B8B88,
1113 0xAF547E88, 0xAF2D7E5C, 0xAF068A44, 0xAEDFA2A8, 0xAEB8C78F, 0xAE91F8FF,
1114 0xAE6B36FD, 0xAE448191, 0xAE1DD8BE, 0xADF73C8D, 0xADD0AD02, 0xADAA2A24,
1115 0xAD83B3F8, 0xAD5D4A85, 0xAD36EDCF, 0xAD109E40, 0xACEA5B19, 0xACC424C3,
1116 0xAC9DFB42, 0xAC77DE9D, 0xAC51CEDA, 0xAC2BCBFE, 0xAC05D610, 0xABDFED15,
1117 0xABBA1113, 0xAB944211, 0xAB6E8013, 0xAB48CB1F, 0xAB23233D, 0xAAFD88D0,
1118 0xAAD7FB1F, 0xAAB27A90, 0xAA8D0729, 0xAA67A0F0, 0xAA4247E9, 0xAA1CFC1B,
1119 0xA9F7BD8D, 0xA9D28C42, 0xA9AD6842, 0xA9885191, 0xA9634837, 0xA93E4C37,
1120 0xA9195DF7, 0xA8F47CBF, 0xA8CFA8F4, 0xA8AAE29A, 0xA88629B9, 0xA8617E55,
1121 0xA83CE074, 0xA818501C, 0xA7F3CD52, 0xA7CF581C, 0xA7AAF080, 0xA7869682,
1122 0xA7624A2A, 0xA73E0B7D, 0xA719DADB, 0xA6F5B793, 0xA6D1A206, 0xA6AD9A39,
1123 0xA689A033, 0xA665B3F9, 0xA641D590, 0xA61E04FF, 0xA5FA4249, 0xA5D68D76,
1124 0xA5B2E68A, 0xA58F4D8B, 0xA56BC27E, 0xA548456A, 0xA524D6AD, 0xA5017598,
1125 0xA4DE228C, 0xA4BADD8E, 0xA497A6A3, 0xA4747DD0, 0xA451631C, 0xA42E568B,
1126 0xA40B5823, 0xA3E867E9, 0xA3C585E3, 0xA3A2B216, 0xA37FEC87, 0xA35D353C,
1127 0xA33A8C93, 0xA317F1E0, 0xA2F56580, 0xA2D2E77A, 0xA2B077D2, 0xA28E168E,
1128 0xA26BC3B3, 0xA2497F46, 0xA227494D, 0xA20521CD, 0xA1E308CB, 0xA1C0FE4D,
1129 0xA19F0257, 0xA17D1545, 0xA15B3671, 0xA1396634, 0xA117A496, 0xA0F5F19A,
1130 0xA0D44D46, 0xA0B2B79F, 0xA09130AB, 0xA06FB86E, 0xA04E4EEE, 0xA02CF430,
1131 0xA00BA839, 0x9FEA6B0E, 0x9FC93CB4, 0x9FA81D85, 0x9F870CDE, 0x9F660B16,
1132 0x9F451835, 0x9F24343E, 0x9F035F37, 0x9EE29925, 0x9EC1E20C, 0x9EA139F3,
1133 0x9E80A0DE, 0x9E6016D2, 0x9E3F9BD4, 0x9E1F2FE9, 0x9DFED317, 0x9DDE85B3,
1134 0x9DBE471F, 0x9D9E17B3, 0x9D7DF772, 0x9D5DE662, 0x9D3DE489, 0x9D1DF1EA,
1135 0x9CFE0E8A, 0x9CDE3A70, 0x9CBE759F, 0x9C9EC01C, 0x9C7F19ED, 0x9C5F8316,
1136 0x9C3FFBED, 0x9C2083D5, 0x9C011B24, 0x9BE1C1DF, 0x9BC2780A, 0x9BA33DAB,
1137 0x9B8412C6, 0x9B64F75F, 0x9B45EB7D, 0x9B26EF23, 0x9B080256, 0x9AE9251C,
1138 0x9ACA5778, 0x9AAB9970, 0x9A8CEB57, 0x9A6E4C94, 0x9A4FBD7B, 0x9A313E10,
1139 0x9A12CE59, 0x99F46E5A, 0x99D61E17, 0x99B7DD96, 0x9999ACDB, 0x997B8BEA,
1140 0x995D7AC8, 0x993F797B, 0x99218806, 0x9903A66D, 0x98E5D503, 0x98C81333,
1141 0x98AA614E, 0x988CBF58, 0x986F2D56, 0x9851AB4D, 0x98343942, 0x9816D738,
1142 0x97F98534, 0x97DC433B, 0x97BF1151, 0x97A1EF7B, 0x9784DDBD, 0x9767DC66,
1143 0x974AEAE6, 0x972E098C, 0x9711385C, 0x96F4775B, 0x96D7C68C, 0x96BB25F6,
1144 0x969E959B, 0x96821580, 0x9665A5AA, 0x9649461D, 0x962CF6DD, 0x9610B7EF,
1145 0x95F48958, 0x95D86B62, 0x95BC5D84, 0x95A06009, 0x958472F5, 0x9568964D,
1146 0x954CCA15, 0x95310E51, 0x95156307, 0x94F9C839, 0x94DE3DEC, 0x94C2C424,
1147 0x94A75AE7, 0x948C0237, 0x9470BA19, 0x945582D7, 0x943A5BEA, 0x941F459B,
1148 0x94043FF0, 0x93E94AEB, 0x93CE6692, 0x93B392E8, 0x9398CFF2, 0x937E1DB3,
1149 0x93637C30, 0x9348EB6C, 0x932E6B6D, 0x9313FC36, 0x92F99DCA, 0x92DF502F,
1150 0x92C51368, 0x92AAE77A, 0x9290CC67, 0x9276C235, 0x925CC8E8, 0x9242E106,
1151 0x9229098D, 0x920F4304, 0x91F58D6F, 0x91DBE8D2, 0x91C25532, 0x91A8D292,
1152 0x918F60F6, 0x91760062, 0x915CB0DA, 0x91437262, 0x912A44FD, 0x911128B0,
1153 0x90F81D7F, 0x90DF236D, 0x90C63A7E, 0x90AD62B6, 0x90949C19, 0x907BE6AB,
1154 0x9063426F, 0x904AAF69, 0x90322D9E, 0x9019BD11, 0x90015DC5, 0x8FE90FBE,
1155 0x8FD0D301, 0x8FB8A790, 0x8FA08D71, 0x8F88851F, 0x8F708DAB, 0x8F58A793,
1156 0x8F40D2DB, 0x8F290F85, 0x8F115D96, 0x8EF9BD12, 0x8EE22DFB, 0x8ECAB057,
1157 0x8EB34427, 0x8E9BE971, 0x8E84A037, 0x8E6D687D, 0x8E564247, 0x8E3F2D98,
1158 0x8E282A74, 0x8E1138DE, 0x8DFA58DA, 0x8DE38A6C, 0x8DCCCD96, 0x8DB6225D,
1159 0x8D9F88C4, 0x8D8900CF, 0x8D728A80, 0x8D5C25DC, 0x8D45D2E6, 0x8D2F91A0,
1160 0x8D196281, 0x8D0344A8, 0x8CED388B, 0x8CD73E2D, 0x8CC15591, 0x8CAB7EBB,
1161 0x8C95B9AE, 0x8C80066D, 0x8C6A64FC, 0x8C54D55E, 0x8C3F5797, 0x8C29EBA9,
1162 0x8C149199, 0x8BFF4969, 0x8BEA131C, 0x8BD4EEB7, 0x8BBFDC3B, 0x8BAADBAD,
1163 0x8B95ED10, 0x8B811066, 0x8B6C45B4, 0x8B578CFC, 0x8B42E641, 0x8B2E5187,
1164 0x8B19CED1, 0x8B055E22, 0x8AF0FF7D, 0x8ADCB2E5, 0x8AC878C5, 0x8AB45051,
1165 0x8AA039F4, 0x8A8C35B1, 0x8A78438A, 0x8A646383, 0x8A50959F, 0x8A3CD9E2,
1166 0x8A29304D, 0x8A1598E5, 0x8A0213AC, 0x89EEA0A4, 0x89DB3FD2, 0x89C7F139,
1167 0x89B4B4DA, 0x89A18AB9, 0x898E72DA, 0x897B6D3E, 0x896879EA, 0x895598DF,
1168 0x8942CA21, 0x89300DB2, 0x891D6397, 0x890ACBD0, 0x88F84662, 0x88E5D34F,
1169 0x88D3729A, 0x88C124A3, 0x88AEE8B2, 0x889CBF28, 0x888AA807, 0x8878A352,
1170 0x8866B10B, 0x8854D137, 0x884303D6, 0x883148ED, 0x881FA07E, 0x880E0A8B,
1171 0x87FC8717, 0x87EB1626, 0x87D9B7B9, 0x87C86BD3, 0x87B73278, 0x87A60BA9,
1172 0x8794F769, 0x8783F5BC, 0x877306A3, 0x87622A21, 0x87516039, 0x8740A8ED,
1173 0x87300440, 0x871F7235, 0x870EF2CE, 0x86FE860D, 0x86EE2C49, 0x86DDE4DC,
1174 0x86CDB01E, 0x86BD8E11, 0x86AD7EB7, 0x869D8212, 0x868D9826, 0x867DC0F4,
1175 0x866DFC7F, 0x865E4ACA, 0x864EABD6, 0x863F1FA7, 0x862FA63E, 0x86203F9E,
1176 0x8610EBCA, 0x8601AAC4, 0x85F27C8E, 0x85E3612A, 0x85D4589B, 0x85C562E3,
1177 0x85B68004, 0x85A7B002, 0x8598F2DD, 0x858A4899, 0x857BB137, 0x856D2CBA,
1178 0x855EBB24, 0x85505C77, 0x854210FE, 0x8533D82A, 0x8525B246, 0x85179F54,
1179 0x85099F56, 0x84FBB24F, 0x84EDD840, 0x84E0112B, 0x84D25D14, 0x84C4BBFC,
1180 0x84B72DE4, 0x84A9B2D0, 0x849C4AC0, 0x848EF5B8, 0x8481B3BA, 0x847484C6,
1181 0x846768E0, 0x845A600A, 0x844D6A45, 0x84408793, 0x8433B7F7, 0x8426FB72,
1182 0x841A5206, 0x840DBBB6, 0x84013883, 0x83F4C86F, 0x83E86B7C, 0x83DC21EA,
1183 0x83CFEB3F, 0x83C3C7BB, 0x83B7B75F, 0x83ABBA2D, 0x839FD028, 0x8393F951,
1184 0x838835AA, 0x837C8535, 0x8370E7F4, 0x83655DE8, 0x8359E713, 0x834E8377,
1185 0x83433316, 0x8337F5F1, 0x832CCC0A, 0x8321B564, 0x8316B1FF, 0x830BC1DD,
1186 0x8300E501, 0x82F61B6B, 0x82EB651D, 0x82E0C21A, 0x82D63262, 0x82CBB5F7,
1187 0x82C14CDC, 0x82B6F710, 0x82ACB497, 0x82A285A5, 0x829869D5, 0x828E615B,
1188 0x82846C39, 0x827A8A72, 0x8270BC06, 0x826700F7, 0x825D5946, 0x8253C4F5,
1189 0x824A4405, 0x8240D679, 0x82377C50, 0x822E358E, 0x82250232, 0x821BE240,
1190 0x8212D5B7, 0x8209DC99, 0x8200F6E9, 0x81F824A6, 0x81EF65D3, 0x81E6BA71,
1191 0x81DE2281, 0x81D59E05, 0x81CD2CFE, 0x81C4CF6C, 0x81BC8552, 0x81B44EB1,
1192 0x81AC2BB3, 0x81A41C07, 0x819C1FD7, 0x81943725, 0x818C61F2, 0x8184A03E,
1193 0x817CF20D, 0x8175575D, 0x816DD032, 0x81665C8B, 0x815EFC6A, 0x8157AFD1,
1194 0x815076C0, 0x81495138, 0x81423F3A, 0x813B40C8, 0x813455E3, 0x812D7E8C,
1195 0x8126BAC3, 0x81200A8A, 0x81196DE2, 0x8112E4CC, 0x810C6F48, 0x81060D59,
1196 0x80FFBEFE, 0x80F98439, 0x80F35D0B, 0x80ED4994, 0x80E74996, 0x80E15D31,
1197 0x80DB8468, 0x80D5BF39, 0x80D00DA7, 0x80CA6FB2, 0x80C4E55B, 0x80BF6EA3,
1198 0x80BA0B8B, 0x80B4BC13, 0x80AF803D, 0x80AA5808, 0x80A54377, 0x80A0428A,
1199 0x809B5541, 0x80967B9E, 0x8091B5A0, 0x808D034A, 0x8088649A, 0x8083D994,
1200 0x807F6236, 0x807AFE81, 0x8076AE77, 0x80727218, 0x806E4965, 0x806A345E,
1201 0x80663303, 0x8062456A, 0x805E6B6B, 0x805AA51B, 0x8056F27A, 0x80535388,
1202 0x804FC848, 0x804C50B8, 0x8048ECD9, 0x80459CAD, 0x80426033, 0x803F376C,
1203 0x803C2259, 0x803920FA, 0x8036334F, 0x80335959, 0x80309318, 0x802DE08E,
1204 0x802B41B9, 0x8028B69B, 0x80263F34, 0x8023DB84, 0x80218B8C, 0x801F4F4D,
1205 0x801D26C5, 0x801B11F7, 0x801910E1, 0x80172385, 0x801549EC, 0x80138403,
1206 0x8011D1D4, 0x80103360, 0x800EA8A7, 0x800D31A8, 0x800BCE65, 0x800A7EDE,
1207 0x80094312, 0x80081B02, 0x800706AD, 0x80060616, 0x8005193A, 0x8004401B,
1208 0x80037AB8, 0x8002C912, 0x80022B29, 0x8001A0FD, 0x80012A8E, 0x8000C7DC,
1209 0x800078E8, 0x80003DB0, 0x80001636, 0x80000279
1210};
1211
1212const int32_t sine_512[] = {
1213 0xFFCDBC0C, 0xFF693440, 0xFF04ACD1, 0xFEA025FE, 0xFE3BA003, 0xFDD71B21,
1214 0xFD72978F, 0xFD0E1595, 0xFCA9956C, 0xFC45174E, 0xFBE09B85, 0xFB7C223F,
1215 0xFB17ABC2, 0xFAB33854, 0xFA4EC823, 0xF9EA5B74, 0xF985F28F, 0xF9218DA0,
1216 0xF8BD2CEF, 0xF858D0BF, 0xF7F47940, 0xF79026B8, 0xF72BD964, 0xF6C79182,
1217 0xF6634F60, 0xF5FF131C, 0xF59ADD04, 0xF536AD55, 0xF4D2844E, 0xF46E622B,
1218 0xF40A473C, 0xF3A6339D, 0xF342279C, 0xF2DE2378, 0xF27A276D, 0xF21633BA,
1219 0xF1B248AC, 0xF14E6661, 0xF0EA8D26, 0xF086BD38, 0xF022F6D7, 0xEFBF3A3E,
1220 0xEF5B87BC, 0xEEF7DF5E, 0xEE9441A2, 0xEE30AEA4, 0xEDCD2684, 0xED69A9BC,
1221 0xED06384C, 0xECA2D2B1, 0xEC3F78E7, 0xEBDC2B6D, 0xEB78EA5E, 0xEB15B5DA,
1222 0xEAB28E5C, 0xEA4F73E3, 0xE9EC66EA, 0xE989678F, 0xE92675F0, 0xE8C39289,
1223 0xE860BD57, 0xE7FDF6D8, 0xE79B3F08, 0xE7389663, 0xE6D5FD08, 0xE6737313,
1224 0xE610F900, 0xE5AE8ECC, 0xE54C34F4, 0xE4E9EB95, 0xE487B2CC, 0xE4258B13,
1225 0xE3C3746A, 0xE3616F4C, 0xE2FF7BB5, 0xE29D9A21, 0xE23BCAAE, 0xE1DA0D78,
1226 0xE17862F9, 0xE116CB31, 0xE0B54699, 0xE053D54F, 0xDFF2776F, 0xDF912D55,
1227 0xDF2FF77A, 0xDECED59F, 0xDE6DC83D, 0xDE0CCFCE, 0xDDABEC13, 0xDD4B1D85,
1228 0xDCEA645F, 0xDC89C11C, 0xDC29337A, 0xDBC8BBF4, 0xDB685B03, 0xDB081067,
1229 0xDAA7DC98, 0xDA47BFD3, 0xD9E7BA8F, 0xD987CC8E, 0xD927F647, 0xD8C83834,
1230 0xD8689215, 0xD8090462, 0xD7A98F92, 0xD74A3368, 0xD6EAF05A, 0xD68BC6A4,
1231 0xD62CB6BD, 0xD5CDC065, 0xD56EE416, 0xD5102244, 0xD4B17AB2, 0xD452EDD8,
1232 0xD3F47BEE, 0xD396256B, 0xD337EA13, 0xD2D9CA59, 0xD27BC6B6, 0xD21DDEEA,
1233 0xD1C0136B, 0xD1626475, 0xD104D27B, 0xD0A75D40, 0xD04A053A, 0xCFECCADE,
1234 0xCF8FADEE, 0xCF32AEDF, 0xCED5CE26, 0xCE790B85, 0xCE1C6772, 0xCDBFE225,
1235 0xCD637C11, 0xCD0734FC, 0xCCAB0D57, 0xCC4F0597, 0xCBF31D7F, 0xCB975583,
1236 0xCB3BADDB, 0xCAE026F9, 0xCA84C0A3, 0xCA297B4A, 0xC9CE5760, 0xC97354AB,
1237 0xC918739C, 0xC8BDB46B, 0xC863178A, 0xC8089CBD, 0xC7AE4476, 0xC7540F26,
1238 0xC6F9FC92, 0xC6A00D2B, 0xC6464161, 0xC5EC98FA, 0xC5931465, 0xC539B3DB,
1239 0xC4E077CB, 0xC4875FFB, 0xC42E6CDA, 0xC3D59ED7, 0xC37CF5B9, 0xC32471EF,
1240 0xC2CC13AF, 0xC273DB68, 0xC21BC8E0, 0xC1C3DC86, 0xC16C168F, 0xC1147733,
1241 0xC0BCFF15, 0xC065AD8E, 0xC00E8343, 0xBFB7806A, 0xBF60A537, 0xBF09F1E2,
1242 0xBEB3669E, 0xBE5D0411, 0xBE06C992, 0xBDB0B7C6, 0xBD5ACEE0, 0xBD050F17,
1243 0xBCAF789F, 0xBC5A0BAD, 0xBC04C8E2, 0xBBAFAF9A, 0xBB5AC075, 0xBB05FBA9,
1244 0xBAB16169, 0xBA5CF1E9, 0xBA08ADCA, 0xB9B49467, 0xB960A662, 0xB90CE3EC,
1245 0xB8B94D3B, 0xB865E281, 0xB812A3F2, 0xB7BF922B, 0xB76CAC8B, 0xB719F3B1,
1246 0xB6C767CE, 0xB6750916, 0xB622D7BB, 0xB5D0D3F0, 0xB57EFE51, 0xB52D563E,
1247 0xB4DBDC53, 0xB48A90C2, 0xB43973BC, 0xB3E88575, 0xB397C61E, 0xB347364F,
1248 0xB2F6D56D, 0xB2A6A410, 0xB256A269, 0xB206D0AB, 0xB1B72F05, 0xB167BDAA,
1249 0xB1187D2E, 0xB0C96CFA, 0xB07A8DA3, 0xB02BDF59, 0xAFDD624E, 0xAF8F16B1,
1250 0xAF40FCB2, 0xAEF314E6, 0xAEA55EB6, 0xAE57DAB4, 0xAE0A8911, 0xADBD69FD,
1251 0xAD707DA7, 0xAD23C43E, 0xACD73E54, 0xAC8AEB53, 0xAC3ECBCF, 0xABF2DFF4,
1252 0xABA727F2, 0xAB5BA3F7, 0xAB105493, 0xAAC53933, 0xAA7A5266, 0xAA2FA05B,
1253 0xA9E5233E, 0xA99ADB3F, 0xA950C88B, 0xA906EBAE, 0xA8BD4418, 0xA873D257,
1254 0xA82A9696, 0xA7E19104, 0xA798C1CD, 0xA750291E, 0xA707C780, 0xA6BF9C67,
1255 0xA677A85C, 0xA62FEB8C, 0xA5E86623, 0xA5A1184C, 0xA55A0235, 0xA5132462,
1256 0xA4CC7E4B, 0xA4861076, 0xA43FDB0E, 0xA3F9DE40, 0xA3B41A35, 0xA36E8F19,
1257 0xA3293D6F, 0xA2E424B1, 0xA29F4563, 0xA25A9FAE, 0xA21633BD, 0xA1D201BB,
1258 0xA18E09D1, 0xA14A4C7F, 0xA106C943, 0xA0C3809D, 0xA08072B5, 0xA03D9FB7,
1259 0x9FFB07CA, 0x9FB8AB6C, 0x9F768A1D, 0x9F34A45B, 0x9EF2FA4F, 0x9EB18C20,
1260 0x9E7059F7, 0x9E2F63FC, 0x9DEEAAAA, 0x9DAE2D84, 0x9D6DED04, 0x9D2DE951,
1261 0x9CEE2294, 0x9CAE98F3, 0x9C6F4C97, 0x9C303DF5, 0x9BF16C94, 0x9BB2D8EB,
1262 0x9B748322, 0x9B366B5E, 0x9AF891C6, 0x9ABAF680, 0x9A7D9A00, 0x9A407BD0,
1263 0x9A039C62, 0x99C6FBDE, 0x998A9A69, 0x994E7827, 0x9912953E, 0x98D6F21E,
1264 0x989B8E55, 0x98606A53, 0x9825863C, 0x97EAE236, 0x97B07E63, 0x97765AE9,
1265 0x973C7834, 0x9702D5D5, 0x96C9743A, 0x96905385, 0x965773DA, 0x961ED55C,
1266 0x95E6782E, 0x95AE5CBA, 0x95768293, 0x953EEA24, 0x95079390, 0x94D07EF7,
1267 0x9499AC7D, 0x94631C88, 0x942CCEAF, 0x93F6C359, 0x93C0FAA7, 0x938B74BB,
1268 0x935631B6, 0x932131B8, 0x92EC74E3, 0x92B7FB56, 0x9283C532, 0x924FD298,
1269 0x921C242A, 0x91E8B901, 0x91B591C2, 0x9182AE8B, 0x91500F7C, 0x911DB4B3,
1270 0x90EB9E52, 0x90B9CC75, 0x90883F3C, 0x9056F6C5, 0x9025F32F, 0x8FF53499,
1271 0x8FC4BB1F, 0x8F94875A, 0x8F649874, 0x8F34EF03, 0x8F058B26, 0x8ED66CFA,
1272 0x8EA7949D, 0x8E79022A, 0x8E4AB5BE, 0x8E1CAF77, 0x8DEEEF70, 0x8DC175C6,
1273 0x8D944295, 0x8D6755F9, 0x8D3AB00D, 0x8D0E515D, 0x8CE23924, 0x8CB667ED,
1274 0x8C8ADDD4, 0x8C5F9AF3, 0x8C349F65, 0x8C09EB45, 0x8BDF7EAC, 0x8BB559B6,
1275 0x8B8B7C7C, 0x8B61E718, 0x8B3899A4, 0x8B0F9438, 0x8AE6D6EF, 0x8ABE6249,
1276 0x8A96358F, 0x8A6E5142, 0x8A46B57C, 0x8A1F6253, 0x89F857E2, 0x89D1963E,
1277 0x89AB1D82, 0x8984EDC3, 0x895F071B, 0x8939699F, 0x89141569, 0x88EF0A8D,
1278 0x88CA4924, 0x88A5D1A0, 0x8881A35E, 0x885DBED3, 0x883A2413, 0x8816D335,
1279 0x87F3CC4E, 0x87D10F75, 0x87AE9CBF, 0x878C7440, 0x876A960F, 0x8749023F,
1280 0x8727B8E6, 0x8706BA18, 0x86E6063D, 0x86C59CC1, 0x86A57E0E, 0x8685AA35,
1281 0x8666214C, 0x8646E366, 0x8627F095, 0x860948ED, 0x85EAEC81, 0x85CCDB64,
1282 0x85AF15A7, 0x85919B5F, 0x85746C9B, 0x85578970, 0x853AF236, 0x851EA66F,
1283 0x8502A673, 0x84E6F256, 0x84CB8A28, 0x84B06DF9, 0x84959DDB, 0x847B19DE,
1284 0x8460E213, 0x8446F689, 0x842D5751, 0x8414047A, 0x83FAFE15, 0x83E24430,
1285 0x83C9D718, 0x83B1B660, 0x8399E257, 0x83825B09, 0x836B2087, 0x835432DE,
1286 0x833D921C, 0x83273E4F, 0x83113786, 0x82FB7DCD, 0x82E61132, 0x82D0F1C3,
1287 0x82BC1F8C, 0x82A79ACE, 0x8293632D, 0x827F78EA, 0x826BDC12, 0x82588CB1,
1288 0x82458AD3, 0x8232D682, 0x82206FCC, 0x820E56BB, 0x81FC8B5A, 0x81EB0DB4,
1289 0x81D9DDD5, 0x81C8FBC6, 0x81B86793, 0x81A8216E, 0x8198290E, 0x81887EA8,
1290 0x81792245, 0x816A13EE, 0x815B53AD, 0x814CE18A, 0x813EBD90, 0x8130E7C6,
1291 0x81236034, 0x811626E4, 0x81093BDE, 0x80FC9F29, 0x80F050CD, 0x80E450F0,
1292 0x80D89F5D, 0x80CD3C39, 0x80C2278B, 0x80B7615B, 0x80ACE9AE, 0x80A2C08C,
1293 0x8098E5FB, 0x808F5A00, 0x80861CA2, 0x807D2DE6, 0x80748DD2, 0x806C3C6C,
1294 0x806439CB, 0x805C85CD, 0x8055208B, 0x804E0A09, 0x8047424D, 0x8040C959,
1295 0x803A9F33, 0x8034C3DD, 0x802F375C, 0x8029F9B3, 0x80250AE5, 0x80206AF5,
1296 0x801C19E7, 0x801817BC, 0x80146480, 0x80110023, 0x800DEAB0, 0x800B242A,
1297 0x8008AC92, 0x800683EA, 0x8004AA33, 0x80031F6E, 0x8001E39C, 0x8000F6BE,
1298 0x800058D4, 0x800009DF
1299};
1300
1301const int32_t sine_256[] ICONST_ATTR_WMAPRO_WIN_VS_TMP = {
1302 0xFF9B781E, 0xFED26950, 0xFE095D6B, 0xFD40565E, 0xFC775617, 0xFBAE5E8D,
1303 0xFAE571A2, 0xFA1C9157, 0xF953BF94, 0xF88AFE40, 0xF7C24F61, 0xF6F9B4C9,
1304 0xF6313075, 0xF568C463, 0xF4A07264, 0xF3D83C74, 0xF3102493, 0xF2482C8D,
1305 0xF1805660, 0xF0B8A409, 0xEFF11756, 0xEF29B241, 0xEE6276B8, 0xED9B66A5,
1306 0xECD48414, 0xEC0DD0B0, 0xEB474E83, 0xEA80FF77, 0xE9BAE575, 0xE8F50266,
1307 0xE82F5851, 0xE769E8E0, 0xE6A4B619, 0xE5DFC1E2, 0xE51B0E22, 0xE4569CBE,
1308 0xE3926FB9, 0xE2CE88BA, 0xE20AE9C3, 0xE14794B7, 0xE0848B77, 0xDFC1CFE5,
1309 0xDEFF6401, 0xDE3D494C, 0xDD7B8223, 0xDCBA1024, 0xDBF8F4F0, 0xDB3832DF,
1310 0xDA77CB50, 0xD9B7C09B, 0xD8F8141D, 0xD838C82A, 0xD779DE5D, 0xD6BB5850,
1311 0xD5FD3854, 0xD53F7FC3, 0xD48230EB, 0xD3C54D62, 0xD308D6BE, 0xD24CCF4A,
1312 0xD191385B, 0xD0D6143A, 0xD01B643D, 0xCF612AA7, 0xCEA76907, 0xCDEE20EF,
1313 0xCD35549C, 0xCC7D0561, 0xCBC5357A, 0xCB0DE672, 0xCA5719D3, 0xC9A0D1D4,
1314 0xC8EB0FC4, 0xC835D5D6, 0xC7812556, 0xC6CD0075, 0xC61968B6, 0xC5665F9C,
1315 0xC4B3E751, 0xC402011C, 0xC350AF27, 0xC29FF2EC, 0xC1EFCDEA, 0xC140420A,
1316 0xC091516E, 0xBFE2FCE5, 0xBF35468E, 0xBE883082, 0xBDDBBB92, 0xBD2FE9D5,
1317 0xBC84BCF2, 0xBBDA36FD, 0xBB3058C1, 0xBA87244E, 0xB9DE9BB0, 0xB936BFB2,
1318 0xB88F925B, 0xB7E9154A, 0xB7434A82, 0xB69E32C9, 0xB5F9D020, 0xB5562485,
1319 0xB4B330BC, 0xB410F6BE, 0xB36F7882, 0xB2CEB6CB, 0xB22EB38A, 0xB18F704B,
1320 0xB0F0EEFC, 0xB0533059, 0xAFB6364E, 0xAF1A02C1, 0xAE7E966C, 0xADE3F332,
1321 0xAD4A1A92, 0xACB10E67, 0xAC18CF69, 0xAB815F71, 0xAAEAC054, 0xAA54F2C6,
1322 0xA9BFF898, 0xA92BD33C, 0xA898847A, 0xA8060D04, 0xA7746EA1, 0xA6E3AB14,
1323 0xA653C30A, 0xA5C4B842, 0xA5368C78, 0xA4A94055, 0xA41CD591, 0xA3914D86,
1324 0xA306A9E5, 0xA27CEB53, 0xA1F4137C, 0xA16C2408, 0xA0E51D9A, 0xA05F01D6,
1325 0x9FD9D207, 0x9F558FC8, 0x9ED23BB9, 0x9E4FD771, 0x9DCE6485, 0x9D4DE38E,
1326 0x9CCE561E, 0x9C4FBD6E, 0x9BD21B06, 0x9B556F7D, 0x9AD9BC57, 0x9A5F0312,
1327 0x99E54441, 0x996C815F, 0x98F4BBE2, 0x987DF458, 0x98082C35, 0x97936499,
1328 0x971F9EEF, 0x96ACDBC0, 0x963B1C73, 0x95CA6267, 0x955AAE23, 0x94EC0102,
1329 0x947E5C15, 0x9411C0B1, 0x93A62F56, 0x933BA954, 0x92D22FB1, 0x9269C372,
1330 0x9202661A, 0x919C17A3, 0x9136D98D, 0x90D2ACD1, 0x906F9266, 0x900D8B42,
1331 0x8FAC9856, 0x8F4CBB0B, 0x8EEDF358, 0x8E9042A4, 0x8E33A9D4, 0x8DD829CE,
1332 0x8D7DC372, 0x8D2477A1, 0x8CCC47A6, 0x8C75337A, 0x8C1F3C65, 0x8BCA633B,
1333 0x8B76A8CE, 0x8B240DEB, 0x8AD293C7, 0x8A823A59, 0x8A3302D2, 0x89E4EDF5,
1334 0x8997FC81, 0x894C2F36, 0x890186CE, 0x88B8045E, 0x886FA7E0, 0x88287266,
1335 0x87E2649F, 0x879D7F37, 0x8759C2D9, 0x8717302D, 0x86D5C827, 0x86958AC5,
1336 0x865678F8, 0x8618935B, 0x85DBDA87, 0x85A04F13, 0x8565F192, 0x852CC2DA,
1337 0x84F4C2E8, 0x84BDF28F, 0x84885258, 0x8453E2C5, 0x8420A459, 0x83EE9791,
1338 0x83BDBD27, 0x838E1518, 0x835FA016, 0x83325E96, 0x83065106, 0x82DB77D4,
1339 0x82B1D369, 0x8289645F, 0x82622AB2, 0x823C26F8, 0x8217598E, 0x81F3C2CF,
1340 0x81D16313, 0x81B03AAE, 0x81904A1B, 0x81719157, 0x815410D7, 0x8137C8E4,
1341 0x811CB9C4, 0x8102E3B9, 0x80EA4722, 0x80D2E3FC, 0x80BCBAA3, 0x80A7CB4B,
1342 0x8094162A, 0x80819B6F, 0x80705B49, 0x806055F5, 0x80518B72, 0x8043FBFA,
1343 0x8037A7AE, 0x802C8EAD, 0x8022B111, 0x801A0EF5, 0x8012A874, 0x800C7D90,
1344 0x80078E60, 0x8003DAF2, 0x8001634E, 0x8000277B
1345};
1346
1347const int32_t sine_128[] ICONST_ATTR = {
1348 0xFF36F079, 0xFDA4D929, 0xFC12D91C, 0xFA80FFCF, 0xF8EF5CBC, 0xF75DFF6C,
1349 0xF5CCF73F, 0xF43C53CB, 0xF2AC2474, 0xF11C7895, 0xEF8D5FC8, 0xEDFEE931,
1350 0xEC71244A, 0xEAE4208A, 0xE957ED00, 0xE7CC9912, 0xE642341D, 0xE4B8CD16,
1351 0xE3307348, 0xE1A935F1, 0xE02323EA, 0xDE9E4C5B, 0xDD1ABE41, 0xDB98888E,
1352 0xDA17BA63, 0xD898621B, 0xD71A8EBA, 0xD59E4EF9, 0xD423B181, 0xD2AAC4EB,
1353 0xD13397FA, 0xCFBE38AD, 0xCE4AB5A6, 0xCCD91D38, 0xCB697DA1, 0xC9FBE50E,
1354 0xC89061D1, 0xC727017A, 0xC5BFD232, 0xC45AE1D1, 0xC2F83E1B, 0xC197F4BB,
1355 0xC03A137E, 0xBEDEA73A, 0xBD85BE33, 0xBC2F6544, 0xBADBA934, 0xB98A97F6,
1356 0xB83C3DB0, 0xB6F0A81D, 0xB5A7E331, 0xB461FC6A, 0xB31EFFF0, 0xB1DEF9D2,
1357 0xB0A1F730, 0xAF68037B, 0xAE312B94, 0xACFD7B13, 0xABCCFD75, 0xAA9FBF37,
1358 0xA975CB39, 0xA84F2DB4, 0xA72BF147, 0xA60C21E8, 0xA4EFCA51, 0xA3D6F51F,
1359 0xA2C1ADDA, 0xA1AFFE80, 0xA0A1F24E, 0x9F979356, 0x9E90EB88, 0x9D8E05AD,
1360 0x9C8EEB1A, 0x9B93A649, 0x9A9C4048, 0x99A8C33F, 0x98B93843, 0x97CDA844,
1361 0x96E61CED, 0x96029E99, 0x9523369D, 0x9447ED4D, 0x9370CADA, 0x929DD7D5,
1362 0x91CF1CE2, 0x9104A0F4, 0x903E6C5C, 0x8F7C873A, 0x8EBEF810, 0x8E05C6AA,
1363 0x8D50FA2B, 0x8CA099FB, 0x8BF4AC06, 0x8B4D375E, 0x8AAA42E0, 0x8A0BD402,
1364 0x8971F14B, 0x88DCA0A9, 0x884BE838, 0x87BFCCD4, 0x87385443, 0x86B5840D,
1365 0x86376099, 0x85BDEF18, 0x85493481, 0x84D934C0, 0x846DF472, 0x840777B8,
1366 0x83A5C2C5, 0x8348D8DF, 0x82F0BDDB, 0x829D7552, 0x824F0211, 0x82056753,
1367 0x81C0A7F0, 0x8180C6B5, 0x8145C5C8, 0x810FA798, 0x80DE6E59, 0x80B21BB4,
1368 0x808AB17D, 0x8068313B, 0x804A9C52, 0x8031F3C2, 0x801E3892, 0x800F6B8C,
1369 0x80058D30, 0x80009DEA
1370};
1371
1372const int32_t *sine_windows[6] = {
1373 sine_128, sine_256, sine_512, sine_1024, sine_2048, sine_4096
1374};
1375
1376
1377/* mdct trig table.
1378 the table should be in s.31 format, but in wma pro, all the tables are scaled
1379 down to preserve energy in the signal, so this downscaling is equivalent to
1380 having the tables in ~s15.16 instead. */
1381/* rockbox: not used
1382const int32_t sincos_lookup_wmap[8064] = {
1383 0x0000011C, 0x00016A09, 0x000009FE, 0x000169E6,
1384 0x000012DF, 0x0001698B, 0x00001BBD, 0x000168F9,
1385 0x00002497, 0x0001682F, 0x00002D6B, 0x0001672D,
1386 0x00003638, 0x000165F4, 0x00003EFD, 0x00016484,
1387 0x000047B8, 0x000162DD, 0x00005068, 0x000160FF,
1388 0x0000590B, 0x00015EEA, 0x000061A1, 0x00015CA0,
1389 0x00006A28, 0x00015A20, 0x0000729E, 0x0001576A,
1390 0x00007B03, 0x0001547F, 0x00008354, 0x00015160,
1391 0x00008B92, 0x00014E0D, 0x000093BA, 0x00014A87,
1392 0x00009BCB, 0x000146CD, 0x0000A3C4, 0x000142E1,
1393 0x0000ABA4, 0x00013EC3, 0x0000B369, 0x00013A74,
1394 0x0000BB13, 0x000135F5, 0x0000C2A0, 0x00013146,
1395 0x0000CA0F, 0x00012C67, 0x0000D15F, 0x0001275B,
1396 0x0000D88E, 0x00012221, 0x0000DF9C, 0x00011CBA,
1397 0x0000E688, 0x00011727, 0x0000ED50, 0x00011169,
1398 0x0000F3F3, 0x00010B81, 0x0000FA71, 0x00010570,
1399 0x000100C8, 0x0000FF36, 0x000106F8, 0x0000F8D5,
1400 0x00010CFF, 0x0000F24E, 0x000112DC, 0x0000EBA1,
1401 0x00011890, 0x0000E4D0, 0x00011E18, 0x0000DDDC,
1402 0x00012373, 0x0000D6C5, 0x000128A2, 0x0000CF8E,
1403 0x00012DA3, 0x0000C836, 0x00013276, 0x0000C0C0,
1404 0x00013719, 0x0000B92B, 0x00013B8D, 0x0000B17B,
1405 0x00013FCF, 0x0000A9AE, 0x000143E1, 0x0000A1C8,
1406 0x000147C0, 0x000099C9, 0x00014B6D, 0x000091B2,
1407 0x00014EE7, 0x00008984, 0x0001522D, 0x00008142,
1408 0x0001553F, 0x000078EB, 0x0001581C, 0x00007082,
1409 0x00015AC5, 0x00006807, 0x00015D38, 0x00005F7D,
1410 0x00015F75, 0x000056E3, 0x0001617B, 0x00004E3D,
1411 0x0001634C, 0x0000458A, 0x000164E5, 0x00003CCC,
1412 0x00016648, 0x00003405, 0x00016773, 0x00002B36,
1413 0x00016867, 0x00002261, 0x00016923, 0x00001986,
1414 0x000169A7, 0x000010A7, 0x000169F4, 0x000007C6,
1415 0x00000064, 0x0000FFFF, 0x00000388, 0x0000FFF9,
1416 0x000006AC, 0x0000FFE9, 0x000009D0, 0x0000FFCF,
1417 0x00000CF4, 0x0000FFAC, 0x00001017, 0x0000FF7E,
1418 0x00001339, 0x0000FF46, 0x0000165A, 0x0000FF05,
1419 0x0000197B, 0x0000FEBA, 0x00001C9B, 0x0000FE65,
1420 0x00001FBA, 0x0000FE06, 0x000022D7, 0x0000FD9E,
1421 0x000025F3, 0x0000FD2B, 0x0000290E, 0x0000FCAF,
1422 0x00002C27, 0x0000FC29, 0x00002F3E, 0x0000FB9A,
1423 0x00003254, 0x0000FB01, 0x00003567, 0x0000FA5E,
1424 0x00003879, 0x0000F9B1, 0x00003B88, 0x0000F8FB,
1425 0x00003E95, 0x0000F83B, 0x000041A0, 0x0000F772,
1426 0x000044A8, 0x0000F69F, 0x000047AD, 0x0000F5C2,
1427 0x00004AB0, 0x0000F4DC, 0x00004DB0, 0x0000F3ED,
1428 0x000050AC, 0x0000F2F4, 0x000053A6, 0x0000F1F2,
1429 0x0000569D, 0x0000F0E7, 0x00005990, 0x0000EFD2,
1430 0x00005C7F, 0x0000EEB4, 0x00005F6B, 0x0000ED8D,
1431 0x00006254, 0x0000EC5C, 0x00006539, 0x0000EB23,
1432 0x00006819, 0x0000E9E0, 0x00006AF6, 0x0000E895,
1433 0x00006DCF, 0x0000E740, 0x000070A3, 0x0000E5E3,
1434 0x00007373, 0x0000E47D, 0x0000763F, 0x0000E30D,
1435 0x00007906, 0x0000E196, 0x00007BC8, 0x0000E015,
1436 0x00007E86, 0x0000DE8C, 0x0000813E, 0x0000DCFA,
1437 0x000083F2, 0x0000DB60, 0x000086A1, 0x0000D9BD,
1438 0x0000894A, 0x0000D812, 0x00008BEE, 0x0000D65F,
1439 0x00008E8D, 0x0000D4A3, 0x00009126, 0x0000D2DF,
1440 0x000093BA, 0x0000D113, 0x00009648, 0x0000CF3F,
1441 0x000098D0, 0x0000CD63, 0x00009B52, 0x0000CB7F,
1442 0x00009DCF, 0x0000C993, 0x0000A045, 0x0000C79F,
1443 0x0000A2B5, 0x0000C5A4, 0x0000A51F, 0x0000C3A1,
1444 0x0000A782, 0x0000C196, 0x0000A9DF, 0x0000BF84,
1445 0x0000AC35, 0x0000BD6B, 0x0000AE85, 0x0000BB4A,
1446 0x0000B0CE, 0x0000B922, 0x0000B310, 0x0000B6F3,
1447 0x0000B54B, 0x0000B4BD, 0x0000B780, 0x0000B280,
1448 0x0000B9AD, 0x0000B03C, 0x0000BBD3, 0x0000ADF2,
1449 0x0000BDF2, 0x0000ABA0, 0x0000C009, 0x0000A948,
1450 0x0000C21A, 0x0000A6EA, 0x0000C422, 0x0000A485,
1451 0x0000C623, 0x0000A219, 0x0000C81D, 0x00009FA8,
1452 0x0000CA0E, 0x00009D30, 0x0000CBF8, 0x00009AB2,
1453 0x0000CDDA, 0x0000982E, 0x0000CFB4, 0x000095A5,
1454 0x0000D187, 0x00009315, 0x0000D351, 0x00009080,
1455 0x0000D512, 0x00008DE6, 0x0000D6CC, 0x00008B46,
1456 0x0000D87E, 0x000088A0, 0x0000DA27, 0x000085F5,
1457 0x0000DBC7, 0x00008345, 0x0000DD5F, 0x00008090,
1458 0x0000DEEF, 0x00007DD7, 0x0000E076, 0x00007B18,
1459 0x0000E1F4, 0x00007854, 0x0000E36A, 0x0000758C,
1460 0x0000E4D7, 0x000072BF, 0x0000E63B, 0x00006FEE,
1461 0x0000E796, 0x00006D19, 0x0000E8E9, 0x00006A3F,
1462 0x0000EA32, 0x00006761, 0x0000EB72, 0x00006480,
1463 0x0000ECA9, 0x0000619A, 0x0000EDD7, 0x00005EB1,
1464 0x0000EEFC, 0x00005BC4, 0x0000F018, 0x000058D3,
1465 0x0000F12A, 0x000055DF, 0x0000F233, 0x000052E8,
1466 0x0000F333, 0x00004FED, 0x0000F42A, 0x00004CF0,
1467 0x0000F517, 0x000049EF, 0x0000F5FA, 0x000046EC,
1468 0x0000F6D4, 0x000043E6, 0x0000F7A5, 0x000040DD,
1469 0x0000F86C, 0x00003DD2, 0x0000F929, 0x00003AC4,
1470 0x0000F9DD, 0x000037B4, 0x0000FA87, 0x000034A2,
1471 0x0000FB28, 0x0000318E, 0x0000FBBF, 0x00002E78,
1472 0x0000FC4C, 0x00002B61, 0x0000FCCF, 0x00002847,
1473 0x0000FD49, 0x0000252C, 0x0000FDB9, 0x00002210,
1474 0x0000FE1F, 0x00001EF2, 0x0000FE7B, 0x00001BD3,
1475 0x0000FECE, 0x000018B3, 0x0000FF16, 0x00001592,
1476 0x0000FF55, 0x00001270, 0x0000FF8A, 0x00000F4E,
1477 0x0000FFB5, 0x00000C2B, 0x0000FFD7, 0x00000907,
1478 0x0000FFEE, 0x000005E3, 0x0000FFFC, 0x000002BF,
1479 0x00000023, 0x0000B504, 0x0000013F, 0x0000B503,
1480 0x0000025C, 0x0000B501, 0x00000378, 0x0000B4FC,
1481 0x00000494, 0x0000B4F6, 0x000005B1, 0x0000B4EE,
1482 0x000006CD, 0x0000B4E4, 0x000007E9, 0x0000B4D8,
1483 0x00000905, 0x0000B4CB, 0x00000A21, 0x0000B4BC,
1484 0x00000B3D, 0x0000B4AB, 0x00000C58, 0x0000B499,
1485 0x00000D74, 0x0000B484, 0x00000E8F, 0x0000B46E,
1486 0x00000FAB, 0x0000B457, 0x000010C6, 0x0000B43D,
1487 0x000011E1, 0x0000B422, 0x000012FC, 0x0000B405,
1488 0x00001417, 0x0000B3E6, 0x00001531, 0x0000B3C6,
1489 0x0000164B, 0x0000B3A4, 0x00001765, 0x0000B380,
1490 0x0000187F, 0x0000B35A, 0x00001999, 0x0000B333,
1491 0x00001AB2, 0x0000B30A, 0x00001BCB, 0x0000B2DF,
1492 0x00001CE4, 0x0000B2B2, 0x00001DFD, 0x0000B284,
1493 0x00001F15, 0x0000B254, 0x0000202D, 0x0000B222,
1494 0x00002145, 0x0000B1EF, 0x0000225C, 0x0000B1BA,
1495 0x00002373, 0x0000B183, 0x0000248A, 0x0000B14B,
1496 0x000025A0, 0x0000B110, 0x000026B6, 0x0000B0D4,
1497 0x000027CC, 0x0000B097, 0x000028E1, 0x0000B057,
1498 0x000029F6, 0x0000B016, 0x00002B0A, 0x0000AFD3,
1499 0x00002C1E, 0x0000AF8F, 0x00002D31, 0x0000AF49,
1500 0x00002E45, 0x0000AF01, 0x00002F57, 0x0000AEB8,
1501 0x00003069, 0x0000AE6C, 0x0000317B, 0x0000AE1F,
1502 0x0000328D, 0x0000ADD1, 0x0000339D, 0x0000AD81,
1503 0x000034AE, 0x0000AD2F, 0x000035BD, 0x0000ACDB,
1504 0x000036CD, 0x0000AC86, 0x000037DB, 0x0000AC2F,
1505 0x000038EA, 0x0000ABD6, 0x000039F7, 0x0000AB7C,
1506 0x00003B04, 0x0000AB20, 0x00003C11, 0x0000AAC3,
1507 0x00003D1D, 0x0000AA64, 0x00003E28, 0x0000AA03,
1508 0x00003F33, 0x0000A9A0, 0x0000403D, 0x0000A93C,
1509 0x00004147, 0x0000A8D6, 0x0000424F, 0x0000A86F,
1510 0x00004358, 0x0000A806, 0x0000445F, 0x0000A79C,
1511 0x00004566, 0x0000A72F, 0x0000466D, 0x0000A6C2,
1512 0x00004772, 0x0000A652, 0x00004877, 0x0000A5E1,
1513 0x0000497B, 0x0000A56E, 0x00004A7F, 0x0000A4FA,
1514 0x00004B82, 0x0000A484, 0x00004C84, 0x0000A40D,
1515 0x00004D85, 0x0000A394, 0x00004E86, 0x0000A319,
1516 0x00004F85, 0x0000A29D, 0x00005084, 0x0000A220,
1517 0x00005183, 0x0000A1A0, 0x00005280, 0x0000A120,
1518 0x0000537D, 0x0000A09D, 0x00005479, 0x0000A019,
1519 0x00005574, 0x00009F94, 0x0000566E, 0x00009F0D,
1520 0x00005767, 0x00009E84, 0x00005860, 0x00009DFA,
1521 0x00005958, 0x00009D6F, 0x00005A4F, 0x00009CE2,
1522 0x00005B45, 0x00009C53, 0x00005C3A, 0x00009BC3,
1523 0x00005D2E, 0x00009B31, 0x00005E21, 0x00009A9E,
1524 0x00005F14, 0x00009A09, 0x00006005, 0x00009973,
1525 0x000060F6, 0x000098DC, 0x000061E5, 0x00009843,
1526 0x000062D4, 0x000097A8, 0x000063C2, 0x0000970C,
1527 0x000064AF, 0x0000966F, 0x0000659B, 0x000095D0,
1528 0x00006685, 0x00009530, 0x0000676F, 0x0000948E,
1529 0x00006858, 0x000093EB, 0x00006940, 0x00009346,
1530 0x00006A27, 0x000092A0, 0x00006B0D, 0x000091F9,
1531 0x00006BF1, 0x00009150, 0x00006CD5, 0x000090A5,
1532 0x00006DB8, 0x00008FFA, 0x00006E99, 0x00008F4D,
1533 0x00006F7A, 0x00008E9E, 0x00007059, 0x00008DEF,
1534 0x00007138, 0x00008D3D, 0x00007215, 0x00008C8B,
1535 0x000072F1, 0x00008BD7, 0x000073CC, 0x00008B22,
1536 0x000074A6, 0x00008A6B, 0x0000757F, 0x000089B3,
1537 0x00007657, 0x000088FA, 0x0000772E, 0x00008840,
1538 0x00007803, 0x00008784, 0x000078D7, 0x000086C6,
1539 0x000079AB, 0x00008608, 0x00007A7C, 0x00008548,
1540 0x00007B4D, 0x00008487, 0x00007C1D, 0x000083C5,
1541 0x00007CEB, 0x00008301, 0x00007DB8, 0x0000823C,
1542 0x00007E84, 0x00008176, 0x00007F4F, 0x000080AF,
1543 0x00008019, 0x00007FE6, 0x000080E1, 0x00007F1D,
1544 0x000081A8, 0x00007E51, 0x0000826E, 0x00007D85,
1545 0x00008332, 0x00007CB8, 0x000083F6, 0x00007BE9,
1546 0x000084B8, 0x00007B19, 0x00008578, 0x00007A48,
1547 0x00008638, 0x00007976, 0x000086F6, 0x000078A2,
1548 0x000087B3, 0x000077CE, 0x0000886E, 0x000076F8,
1549 0x00008928, 0x00007621, 0x000089E1, 0x00007549,
1550 0x00008A99, 0x00007470, 0x00008B4F, 0x00007396,
1551 0x00008C04, 0x000072BA, 0x00008CB8, 0x000071DE,
1552 0x00008D6A, 0x00007100, 0x00008E1B, 0x00007022,
1553 0x00008ECA, 0x00006F42, 0x00008F78, 0x00006E61,
1554 0x00009025, 0x00006D7F, 0x000090D0, 0x00006C9C,
1555 0x0000917A, 0x00006BB8, 0x00009223, 0x00006AD3,
1556 0x000092CA, 0x000069ED, 0x0000936F, 0x00006906,
1557 0x00009414, 0x0000681E, 0x000094B6, 0x00006735,
1558 0x00009558, 0x0000664B, 0x000095F8, 0x00006560,
1559 0x00009696, 0x00006474, 0x00009733, 0x00006387,
1560 0x000097CF, 0x00006299, 0x00009869, 0x000061AA,
1561 0x00009902, 0x000060BA, 0x00009999, 0x00005FC9,
1562 0x00009A2F, 0x00005ED7, 0x00009AC3, 0x00005DE5,
1563 0x00009B56, 0x00005CF1, 0x00009BE7, 0x00005BFD,
1564 0x00009C77, 0x00005B07, 0x00009D05, 0x00005A11,
1565 0x00009D92, 0x0000591A, 0x00009E1D, 0x00005822,
1566 0x00009EA7, 0x00005729, 0x00009F2F, 0x00005630,
1567 0x00009FB5, 0x00005535, 0x0000A03A, 0x0000543A,
1568 0x0000A0BE, 0x0000533E, 0x0000A140, 0x00005241,
1569 0x0000A1C0, 0x00005143, 0x0000A23F, 0x00005045,
1570 0x0000A2BD, 0x00004F45, 0x0000A338, 0x00004E45,
1571 0x0000A3B2, 0x00004D45, 0x0000A42B, 0x00004C43,
1572 0x0000A4A2, 0x00004B41, 0x0000A517, 0x00004A3E,
1573 0x0000A58B, 0x0000493A, 0x0000A5FD, 0x00004836,
1574 0x0000A66E, 0x00004731, 0x0000A6DD, 0x0000462B,
1575 0x0000A74B, 0x00004525, 0x0000A7B6, 0x0000441D,
1576 0x0000A821, 0x00004316, 0x0000A889, 0x0000420D,
1577 0x0000A8F0, 0x00004104, 0x0000A955, 0x00003FFB,
1578 0x0000A9B9, 0x00003EF0, 0x0000AA1B, 0x00003DE5,
1579 0x0000AA7C, 0x00003CDA, 0x0000AADA, 0x00003BCE,
1580 0x0000AB37, 0x00003AC1, 0x0000AB93, 0x000039B4,
1581 0x0000ABED, 0x000038A6, 0x0000AC45, 0x00003798,
1582 0x0000AC9B, 0x00003689, 0x0000ACF0, 0x00003579,
1583 0x0000AD43, 0x0000346A, 0x0000AD95, 0x00003359,
1584 0x0000ADE5, 0x00003248, 0x0000AE33, 0x00003137,
1585 0x0000AE7F, 0x00003025, 0x0000AECA, 0x00002F13,
1586 0x0000AF13, 0x00002E00, 0x0000AF5B, 0x00002CED,
1587 0x0000AFA0, 0x00002BD9, 0x0000AFE4, 0x00002AC5,
1588 0x0000B027, 0x000029B0, 0x0000B067, 0x0000289B,
1589 0x0000B0A6, 0x00002786, 0x0000B0E3, 0x00002671,
1590 0x0000B11F, 0x0000255A, 0x0000B159, 0x00002444,
1591 0x0000B191, 0x0000232D, 0x0000B1C7, 0x00002216,
1592 0x0000B1FC, 0x000020FF, 0x0000B22F, 0x00001FE7,
1593 0x0000B260, 0x00001ECF, 0x0000B290, 0x00001DB7,
1594 0x0000B2BE, 0x00001C9E, 0x0000B2EA, 0x00001B85,
1595 0x0000B314, 0x00001A6C, 0x0000B33D, 0x00001953,
1596 0x0000B364, 0x00001839, 0x0000B389, 0x0000171F,
1597 0x0000B3AC, 0x00001605, 0x0000B3CE, 0x000014EB,
1598 0x0000B3EE, 0x000013D0, 0x0000B40C, 0x000012B5,
1599 0x0000B429, 0x0000119A, 0x0000B444, 0x0000107F,
1600 0x0000B45D, 0x00000F64, 0x0000B474, 0x00000E49,
1601 0x0000B489, 0x00000D2D, 0x0000B49D, 0x00000C11,
1602 0x0000B4AF, 0x00000AF6, 0x0000B4C0, 0x000009DA,
1603 0x0000B4CE, 0x000008BE, 0x0000B4DB, 0x000007A2,
1604 0x0000B4E6, 0x00000686, 0x0000B4F0, 0x00000569,
1605 0x0000B4F7, 0x0000044D, 0x0000B4FD, 0x00000331,
1606 0x0000B501, 0x00000215, 0x0000B504, 0x000000F8,
1607 0x0000000C, 0x00007FFF, 0x00000071, 0x00007FFF,
1608 0x000000D5, 0x00007FFF, 0x0000013A, 0x00007FFE,
1609 0x0000019E, 0x00007FFD, 0x00000203, 0x00007FFB,
1610 0x00000267, 0x00007FFA, 0x000002CC, 0x00007FF8,
1611 0x00000330, 0x00007FF5, 0x00000395, 0x00007FF3,
1612 0x000003F9, 0x00007FF0, 0x0000045E, 0x00007FEC,
1613 0x000004C2, 0x00007FE9, 0x00000527, 0x00007FE5,
1614 0x0000058B, 0x00007FE1, 0x000005EF, 0x00007FDC,
1615 0x00000654, 0x00007FD7, 0x000006B8, 0x00007FD2,
1616 0x0000071D, 0x00007FCD, 0x00000781, 0x00007FC7,
1617 0x000007E5, 0x00007FC1, 0x0000084A, 0x00007FBB,
1618 0x000008AE, 0x00007FB4, 0x00000912, 0x00007FAD,
1619 0x00000977, 0x00007FA6, 0x000009DB, 0x00007F9E,
1620 0x00000A3F, 0x00007F96, 0x00000AA3, 0x00007F8E,
1621 0x00000B07, 0x00007F86, 0x00000B6C, 0x00007F7D,
1622 0x00000BD0, 0x00007F74, 0x00000C34, 0x00007F6A,
1623 0x00000C98, 0x00007F60, 0x00000CFC, 0x00007F56,
1624 0x00000D60, 0x00007F4C, 0x00000DC4, 0x00007F41,
1625 0x00000E28, 0x00007F36, 0x00000E8C, 0x00007F2B,
1626 0x00000EF0, 0x00007F20, 0x00000F53, 0x00007F14,
1627 0x00000FB7, 0x00007F08, 0x0000101B, 0x00007EFB,
1628 0x0000107F, 0x00007EEE, 0x000010E2, 0x00007EE1,
1629 0x00001146, 0x00007ED4, 0x000011A9, 0x00007EC6,
1630 0x0000120D, 0x00007EB8, 0x00001271, 0x00007EAA,
1631 0x000012D4, 0x00007E9B, 0x00001337, 0x00007E8C,
1632 0x0000139B, 0x00007E7D, 0x000013FE, 0x00007E6D,
1633 0x00001461, 0x00007E5D, 0x000014C5, 0x00007E4D,
1634 0x00001528, 0x00007E3D, 0x0000158B, 0x00007E2C,
1635 0x000015EE, 0x00007E1B, 0x00001651, 0x00007E0A,
1636 0x000016B4, 0x00007DF8, 0x00001717, 0x00007DE6,
1637 0x0000177A, 0x00007DD4, 0x000017DD, 0x00007DC1,
1638 0x0000183F, 0x00007DAE, 0x000018A2, 0x00007D9B,
1639 0x00001905, 0x00007D87, 0x00001967, 0x00007D74,
1640 0x000019CA, 0x00007D60, 0x00001A2C, 0x00007D4B,
1641 0x00001A8E, 0x00007D36, 0x00001AF1, 0x00007D21,
1642 0x00001B53, 0x00007D0C, 0x00001BB5, 0x00007CF6,
1643 0x00001C17, 0x00007CE1, 0x00001C79, 0x00007CCA,
1644 0x00001CDB, 0x00007CB4, 0x00001D3D, 0x00007C9D,
1645 0x00001D9F, 0x00007C86, 0x00001E01, 0x00007C6E,
1646 0x00001E62, 0x00007C57, 0x00001EC4, 0x00007C3F,
1647 0x00001F26, 0x00007C26, 0x00001F87, 0x00007C0E,
1648 0x00001FE9, 0x00007BF5, 0x0000204A, 0x00007BDC,
1649 0x000020AB, 0x00007BC2, 0x0000210C, 0x00007BA8,
1650 0x0000216D, 0x00007B8E, 0x000021CE, 0x00007B74,
1651 0x0000222F, 0x00007B59, 0x00002290, 0x00007B3E,
1652 0x000022F1, 0x00007B23, 0x00002352, 0x00007B07,
1653 0x000023B2, 0x00007AEB, 0x00002413, 0x00007ACF,
1654 0x00002473, 0x00007AB3, 0x000024D3, 0x00007A96,
1655 0x00002534, 0x00007A79, 0x00002594, 0x00007A5C,
1656 0x000025F4, 0x00007A3E, 0x00002654, 0x00007A20,
1657 0x000026B4, 0x00007A02, 0x00002713, 0x000079E3,
1658 0x00002773, 0x000079C4, 0x000027D3, 0x000079A5,
1659 0x00002832, 0x00007986, 0x00002892, 0x00007966,
1660 0x000028F1, 0x00007946, 0x00002950, 0x00007926,
1661 0x000029AF, 0x00007905, 0x00002A0E, 0x000078E4,
1662 0x00002A6D, 0x000078C3, 0x00002ACC, 0x000078A2,
1663 0x00002B2B, 0x00007880, 0x00002B89, 0x0000785E,
1664 0x00002BE8, 0x0000783B, 0x00002C46, 0x00007819,
1665 0x00002CA4, 0x000077F6, 0x00002D02, 0x000077D3,
1666 0x00002D60, 0x000077AF, 0x00002DBE, 0x0000778B,
1667 0x00002E1C, 0x00007767, 0x00002E7A, 0x00007743,
1668 0x00002ED8, 0x0000771E, 0x00002F35, 0x000076F9,
1669 0x00002F92, 0x000076D4, 0x00002FF0, 0x000076AF,
1670 0x0000304D, 0x00007689, 0x000030AA, 0x00007663,
1671 0x00003107, 0x0000763C, 0x00003164, 0x00007616,
1672 0x000031C0, 0x000075EF, 0x0000321D, 0x000075C8,
1673 0x00003279, 0x000075A0, 0x000032D6, 0x00007578,
1674 0x00003332, 0x00007550, 0x0000338E, 0x00007528,
1675 0x000033EA, 0x000074FF, 0x00003446, 0x000074D6,
1676 0x000034A1, 0x000074AD, 0x000034FD, 0x00007484,
1677 0x00003558, 0x0000745A, 0x000035B4, 0x00007430,
1678 0x0000360F, 0x00007406, 0x0000366A, 0x000073DB,
1679 0x000036C5, 0x000073B0, 0x00003720, 0x00007385,
1680 0x0000377A, 0x00007359, 0x000037D5, 0x0000732E,
1681 0x0000382F, 0x00007302, 0x0000388A, 0x000072D5,
1682 0x000038E4, 0x000072A9, 0x0000393E, 0x0000727C,
1683 0x00003998, 0x0000724F, 0x000039F1, 0x00007222,
1684 0x00003A4B, 0x000071F4, 0x00003AA4, 0x000071C6,
1685 0x00003AFE, 0x00007198, 0x00003B57, 0x00007169,
1686 0x00003BB0, 0x0000713B, 0x00003C09, 0x0000710C,
1687 0x00003C61, 0x000070DC, 0x00003CBA, 0x000070AD,
1688 0x00003D12, 0x0000707D, 0x00003D6B, 0x0000704D,
1689 0x00003DC3, 0x0000701D, 0x00003E1B, 0x00006FEC,
1690 0x00003E73, 0x00006FBB, 0x00003ECA, 0x00006F8A,
1691 0x00003F22, 0x00006F58, 0x00003F79, 0x00006F27,
1692 0x00003FD0, 0x00006EF5, 0x00004027, 0x00006EC2,
1693 0x0000407E, 0x00006E90, 0x000040D5, 0x00006E5D,
1694 0x0000412C, 0x00006E2A, 0x00004182, 0x00006DF7,
1695 0x000041D8, 0x00006DC3, 0x0000422F, 0x00006D8F,
1696 0x00004284, 0x00006D5B, 0x000042DA, 0x00006D27,
1697 0x00004330, 0x00006CF2, 0x00004385, 0x00006CBD,
1698 0x000043DB, 0x00006C88, 0x00004430, 0x00006C53,
1699 0x00004485, 0x00006C1D, 0x000044DA, 0x00006BE7,
1700 0x0000452E, 0x00006BB1, 0x00004583, 0x00006B7A,
1701 0x000045D7, 0x00006B44, 0x0000462B, 0x00006B0D,
1702 0x0000467F, 0x00006AD5, 0x000046D3, 0x00006A9E,
1703 0x00004727, 0x00006A66, 0x0000477A, 0x00006A2E,
1704 0x000047CE, 0x000069F6, 0x00004821, 0x000069BD,
1705 0x00004874, 0x00006985, 0x000048C7, 0x0000694B,
1706 0x00004919, 0x00006912, 0x0000496C, 0x000068D9,
1707 0x000049BE, 0x0000689F, 0x00004A10, 0x00006865,
1708 0x00004A62, 0x0000682B, 0x00004AB4, 0x000067F0,
1709 0x00004B05, 0x000067B5, 0x00004B56, 0x0000677A,
1710 0x00004BA8, 0x0000673F, 0x00004BF9, 0x00006703,
1711 0x00004C49, 0x000066C8, 0x00004C9A, 0x0000668B,
1712 0x00004CEB, 0x0000664F, 0x00004D3B, 0x00006613,
1713 0x00004D8B, 0x000065D6, 0x00004DDB, 0x00006599,
1714 0x00004E2A, 0x0000655C, 0x00004E7A, 0x0000651E,
1715 0x00004EC9, 0x000064E0, 0x00004F18, 0x000064A2,
1716 0x00004F67, 0x00006464, 0x00004FB6, 0x00006426,
1717 0x00005005, 0x000063E7, 0x00005053, 0x000063A8,
1718 0x000050A1, 0x00006369, 0x000050EF, 0x00006329,
1719 0x0000513D, 0x000062EA, 0x0000518B, 0x000062AA,
1720 0x000051D8, 0x00006269, 0x00005225, 0x00006229,
1721 0x00005272, 0x000061E8, 0x000052BF, 0x000061A8,
1722 0x0000530C, 0x00006166, 0x00005358, 0x00006125,
1723 0x000053A4, 0x000060E4, 0x000053F0, 0x000060A2,
1724 0x0000543C, 0x00006060, 0x00005488, 0x0000601D,
1725 0x000054D3, 0x00005FDB, 0x0000551E, 0x00005F98,
1726 0x00005569, 0x00005F55, 0x000055B4, 0x00005F12,
1727 0x000055FE, 0x00005ECF, 0x00005649, 0x00005E8B,
1728 0x00005693, 0x00005E47, 0x000056DD, 0x00005E03,
1729 0x00005727, 0x00005DBF, 0x00005770, 0x00005D7A,
1730 0x000057B9, 0x00005D35, 0x00005803, 0x00005CF0,
1731 0x0000584B, 0x00005CAB, 0x00005894, 0x00005C66,
1732 0x000058DD, 0x00005C20, 0x00005925, 0x00005BDA,
1733 0x0000596D, 0x00005B94, 0x000059B5, 0x00005B4D,
1734 0x000059FC, 0x00005B07, 0x00005A44, 0x00005AC0,
1735 0x00005A8B, 0x00005A79, 0x00005AD2, 0x00005A32,
1736 0x00005B19, 0x000059EA, 0x00005B5F, 0x000059A3,
1737 0x00005BA5, 0x0000595B, 0x00005BEB, 0x00005913,
1738 0x00005C31, 0x000058CB, 0x00005C77, 0x00005882,
1739 0x00005CBC, 0x00005839, 0x00005D01, 0x000057F0,
1740 0x00005D46, 0x000057A7, 0x00005D8B, 0x0000575E,
1741 0x00005DD0, 0x00005714, 0x00005E14, 0x000056CA,
1742 0x00005E58, 0x00005680, 0x00005E9C, 0x00005636,
1743 0x00005EDF, 0x000055EC, 0x00005F23, 0x000055A1,
1744 0x00005F66, 0x00005556, 0x00005FA9, 0x0000550B,
1745 0x00005FEC, 0x000054C0, 0x0000602E, 0x00005475,
1746 0x00006070, 0x00005429, 0x000060B2, 0x000053DD,
1747 0x000060F4, 0x00005391, 0x00006135, 0x00005345,
1748 0x00006177, 0x000052F8, 0x000061B8, 0x000052AC,
1749 0x000061F9, 0x0000525F, 0x00006239, 0x00005212,
1750 0x0000627A, 0x000051C5, 0x000062BA, 0x00005177,
1751 0x000062F9, 0x0000512A, 0x00006339, 0x000050DC,
1752 0x00006378, 0x0000508E, 0x000063B8, 0x00005040,
1753 0x000063F7, 0x00004FF1, 0x00006435, 0x00004FA2,
1754 0x00006474, 0x00004F54, 0x000064B2, 0x00004F05,
1755 0x000064F0, 0x00004EB6, 0x0000652D, 0x00004E66,
1756 0x0000656B, 0x00004E17, 0x000065A8, 0x00004DC7,
1757 0x000065E5, 0x00004D77, 0x00006622, 0x00004D27,
1758 0x0000665E, 0x00004CD6, 0x0000669B, 0x00004C86,
1759 0x000066D6, 0x00004C35, 0x00006712, 0x00004BE4,
1760 0x0000674E, 0x00004B93, 0x00006789, 0x00004B42,
1761 0x000067C4, 0x00004AF1, 0x000067FF, 0x00004A9F,
1762 0x00006839, 0x00004A4D, 0x00006873, 0x000049FB,
1763 0x000068AD, 0x000049A9, 0x000068E7, 0x00004957,
1764 0x00006921, 0x00004905, 0x0000695A, 0x000048B2,
1765 0x00006993, 0x0000485F, 0x000069CB, 0x0000480C,
1766 0x00006A04, 0x000047B9, 0x00006A3C, 0x00004766,
1767 0x00006A74, 0x00004712, 0x00006AAC, 0x000046BE,
1768 0x00006AE3, 0x0000466A, 0x00006B1A, 0x00004616,
1769 0x00006B51, 0x000045C2, 0x00006B88, 0x0000456E,
1770 0x00006BBE, 0x00004519, 0x00006BF5, 0x000044C5,
1771 0x00006C2A, 0x00004470, 0x00006C60, 0x0000441B,
1772 0x00006C95, 0x000043C5, 0x00006CCA, 0x00004370,
1773 0x00006CFF, 0x0000431B, 0x00006D34, 0x000042C5,
1774 0x00006D68, 0x0000426F, 0x00006D9C, 0x00004219,
1775 0x00006DD0, 0x000041C3, 0x00006E04, 0x0000416D,
1776 0x00006E37, 0x00004116, 0x00006E6A, 0x000040BF,
1777 0x00006E9C, 0x00004069, 0x00006ECF, 0x00004012,
1778 0x00006F01, 0x00003FBB, 0x00006F33, 0x00003F63,
1779 0x00006F65, 0x00003F0C, 0x00006F96, 0x00003EB4,
1780 0x00006FC7, 0x00003E5D, 0x00006FF8, 0x00003E05,
1781 0x00007029, 0x00003DAD, 0x00007059, 0x00003D55,
1782 0x00007089, 0x00003CFC, 0x000070B9, 0x00003CA4,
1783 0x000070E8, 0x00003C4B, 0x00007117, 0x00003BF2,
1784 0x00007146, 0x00003B99, 0x00007175, 0x00003B40,
1785 0x000071A3, 0x00003AE7, 0x000071D2, 0x00003A8E,
1786 0x000071FF, 0x00003A34, 0x0000722D, 0x000039DB,
1787 0x0000725A, 0x00003981, 0x00007287, 0x00003927,
1788 0x000072B4, 0x000038CD, 0x000072E1, 0x00003873,
1789 0x0000730D, 0x00003819, 0x00007339, 0x000037BE,
1790 0x00007364, 0x00003764, 0x00007390, 0x00003709,
1791 0x000073BB, 0x000036AE, 0x000073E6, 0x00003653,
1792 0x00007410, 0x000035F8, 0x0000743A, 0x0000359D,
1793 0x00007464, 0x00003542, 0x0000748E, 0x000034E6,
1794 0x000074B7, 0x0000348B, 0x000074E1, 0x0000342F,
1795 0x00007509, 0x000033D3, 0x00007532, 0x00003377,
1796 0x0000755A, 0x0000331B, 0x00007582, 0x000032BF,
1797 0x000075AA, 0x00003262, 0x000075D1, 0x00003206,
1798 0x000075F9, 0x000031A9, 0x0000761F, 0x0000314C,
1799 0x00007646, 0x000030F0, 0x0000766C, 0x00003093,
1800 0x00007692, 0x00003036, 0x000076B8, 0x00002FD8,
1801 0x000076DD, 0x00002F7B, 0x00007703, 0x00002F1E,
1802 0x00007727, 0x00002EC0, 0x0000774C, 0x00002E63,
1803 0x00007770, 0x00002E05, 0x00007794, 0x00002DA7,
1804 0x000077B8, 0x00002D49, 0x000077DB, 0x00002CEB,
1805 0x000077FF, 0x00002C8D, 0x00007821, 0x00002C2E,
1806 0x00007844, 0x00002BD0, 0x00007866, 0x00002B71,
1807 0x00007888, 0x00002B13, 0x000078AA, 0x00002AB4,
1808 0x000078CB, 0x00002A55, 0x000078EC, 0x000029F6,
1809 0x0000790D, 0x00002997, 0x0000792E, 0x00002938,
1810 0x0000794E, 0x000028D9, 0x0000796E, 0x0000287A,
1811 0x0000798E, 0x0000281A, 0x000079AD, 0x000027BB,
1812 0x000079CC, 0x0000275B, 0x000079EB, 0x000026FB,
1813 0x00007A09, 0x0000269C, 0x00007A27, 0x0000263C,
1814 0x00007A45, 0x000025DC, 0x00007A63, 0x0000257C,
1815 0x00007A80, 0x0000251C, 0x00007A9D, 0x000024BB,
1816 0x00007ABA, 0x0000245B, 0x00007AD6, 0x000023FA,
1817 0x00007AF2, 0x0000239A, 0x00007B0E, 0x00002339,
1818 0x00007B2A, 0x000022D9, 0x00007B45, 0x00002278,
1819 0x00007B60, 0x00002217, 0x00007B7A, 0x000021B6,
1820 0x00007B95, 0x00002155, 0x00007BAF, 0x000020F4,
1821 0x00007BC9, 0x00002093, 0x00007BE2, 0x00002032,
1822 0x00007BFB, 0x00001FD0, 0x00007C14, 0x00001F6F,
1823 0x00007C2D, 0x00001F0D, 0x00007C45, 0x00001EAC,
1824 0x00007C5D, 0x00001E4A, 0x00007C74, 0x00001DE8,
1825 0x00007C8C, 0x00001D87, 0x00007CA3, 0x00001D25,
1826 0x00007CB9, 0x00001CC3, 0x00007CD0, 0x00001C61,
1827 0x00007CE6, 0x00001BFF, 0x00007CFC, 0x00001B9D,
1828 0x00007D11, 0x00001B3A, 0x00007D27, 0x00001AD8,
1829 0x00007D3C, 0x00001A76, 0x00007D50, 0x00001A13,
1830 0x00007D65, 0x000019B1, 0x00007D79, 0x0000194E,
1831 0x00007D8C, 0x000018EC, 0x00007DA0, 0x00001889,
1832 0x00007DB3, 0x00001827, 0x00007DC6, 0x000017C4,
1833 0x00007DD8, 0x00001761, 0x00007DEA, 0x000016FE,
1834 0x00007DFC, 0x0000169B, 0x00007E0E, 0x00001638,
1835 0x00007E1F, 0x000015D5, 0x00007E30, 0x00001572,
1836 0x00007E41, 0x0000150F, 0x00007E51, 0x000014AC,
1837 0x00007E61, 0x00001449, 0x00007E71, 0x000013E5,
1838 0x00007E81, 0x00001382, 0x00007E90, 0x0000131F,
1839 0x00007E9F, 0x000012BB, 0x00007EAD, 0x00001258,
1840 0x00007EBB, 0x000011F4, 0x00007EC9, 0x00001191,
1841 0x00007ED7, 0x0000112D, 0x00007EE4, 0x000010C9,
1842 0x00007EF1, 0x00001066, 0x00007EFE, 0x00001002,
1843 0x00007F0B, 0x00000F9E, 0x00007F17, 0x00000F3A,
1844 0x00007F23, 0x00000ED7, 0x00007F2E, 0x00000E73,
1845 0x00007F39, 0x00000E0F, 0x00007F44, 0x00000DAB,
1846 0x00007F4F, 0x00000D47, 0x00007F59, 0x00000CE3,
1847 0x00007F63, 0x00000C7F, 0x00007F6D, 0x00000C1B,
1848 0x00007F76, 0x00000BB7, 0x00007F7F, 0x00000B53,
1849 0x00007F88, 0x00000AEE, 0x00007F90, 0x00000A8A,
1850 0x00007F98, 0x00000A26, 0x00007FA0, 0x000009C2,
1851 0x00007FA8, 0x0000095E, 0x00007FAF, 0x000008F9,
1852 0x00007FB6, 0x00000895, 0x00007FBC, 0x00000831,
1853 0x00007FC3, 0x000007CC, 0x00007FC9, 0x00000768,
1854 0x00007FCE, 0x00000704, 0x00007FD4, 0x0000069F,
1855 0x00007FD9, 0x0000063B, 0x00007FDD, 0x000005D6,
1856 0x00007FE2, 0x00000572, 0x00007FE6, 0x0000050D,
1857 0x00007FEA, 0x000004A9, 0x00007FED, 0x00000445,
1858 0x00007FF0, 0x000003E0, 0x00007FF3, 0x0000037C,
1859 0x00007FF6, 0x00000317, 0x00007FF8, 0x000002B3,
1860 0x00007FFA, 0x0000024E, 0x00007FFC, 0x000001EA,
1861 0x00007FFD, 0x00000185, 0x00007FFE, 0x00000121,
1862 0x00007FFF, 0x000000BC, 0x00007FFF, 0x00000057,
1863 0x00000004, 0x00005A82, 0x00000027, 0x00005A82,
1864 0x0000004B, 0x00005A82, 0x0000006F, 0x00005A82,
1865 0x00000092, 0x00005A82, 0x000000B6, 0x00005A81,
1866 0x000000D9, 0x00005A81, 0x000000FD, 0x00005A81,
1867 0x00000120, 0x00005A80, 0x00000144, 0x00005A80,
1868 0x00000167, 0x00005A7F, 0x0000018B, 0x00005A7F,
1869 0x000001AE, 0x00005A7E, 0x000001D2, 0x00005A7D,
1870 0x000001F6, 0x00005A7D, 0x00000219, 0x00005A7C,
1871 0x0000023D, 0x00005A7B, 0x00000260, 0x00005A7A,
1872 0x00000284, 0x00005A79, 0x000002A7, 0x00005A78,
1873 0x000002CB, 0x00005A77, 0x000002EE, 0x00005A76,
1874 0x00000312, 0x00005A75, 0x00000335, 0x00005A73,
1875 0x00000359, 0x00005A72, 0x0000037C, 0x00005A71,
1876 0x000003A0, 0x00005A6F, 0x000003C3, 0x00005A6E,
1877 0x000003E7, 0x00005A6C, 0x0000040A, 0x00005A6B,
1878 0x0000042E, 0x00005A69, 0x00000451, 0x00005A68,
1879 0x00000475, 0x00005A66, 0x00000498, 0x00005A64,
1880 0x000004BC, 0x00005A62, 0x000004DF, 0x00005A60,
1881 0x00000503, 0x00005A5E, 0x00000526, 0x00005A5C,
1882 0x0000054A, 0x00005A5A, 0x0000056D, 0x00005A58,
1883 0x00000591, 0x00005A56, 0x000005B4, 0x00005A54,
1884 0x000005D8, 0x00005A52, 0x000005FB, 0x00005A4F,
1885 0x0000061F, 0x00005A4D, 0x00000642, 0x00005A4A,
1886 0x00000666, 0x00005A48, 0x00000689, 0x00005A45,
1887 0x000006AC, 0x00005A43, 0x000006D0, 0x00005A40,
1888 0x000006F3, 0x00005A3E, 0x00000717, 0x00005A3B,
1889 0x0000073A, 0x00005A38, 0x0000075E, 0x00005A35,
1890 0x00000781, 0x00005A32, 0x000007A4, 0x00005A2F,
1891 0x000007C8, 0x00005A2C, 0x000007EB, 0x00005A29,
1892 0x0000080F, 0x00005A26, 0x00000832, 0x00005A23,
1893 0x00000855, 0x00005A1F, 0x00000879, 0x00005A1C,
1894 0x0000089C, 0x00005A19, 0x000008C0, 0x00005A15,
1895 0x000008E3, 0x00005A12, 0x00000906, 0x00005A0E,
1896 0x0000092A, 0x00005A0B, 0x0000094D, 0x00005A07,
1897 0x00000970, 0x00005A04, 0x00000994, 0x00005A00,
1898 0x000009B7, 0x000059FC, 0x000009DA, 0x000059F8,
1899 0x000009FE, 0x000059F4, 0x00000A21, 0x000059F0,
1900 0x00000A44, 0x000059EC, 0x00000A68, 0x000059E8,
1901 0x00000A8B, 0x000059E4, 0x00000AAE, 0x000059E0,
1902 0x00000AD2, 0x000059DC, 0x00000AF5, 0x000059D8,
1903 0x00000B18, 0x000059D3, 0x00000B3B, 0x000059CF,
1904 0x00000B5F, 0x000059CA, 0x00000B82, 0x000059C6,
1905 0x00000BA5, 0x000059C1, 0x00000BC9, 0x000059BD,
1906 0x00000BEC, 0x000059B8, 0x00000C0F, 0x000059B3,
1907 0x00000C32, 0x000059AF, 0x00000C55, 0x000059AA,
1908 0x00000C79, 0x000059A5, 0x00000C9C, 0x000059A0,
1909 0x00000CBF, 0x0000599B, 0x00000CE2, 0x00005996,
1910 0x00000D05, 0x00005991, 0x00000D29, 0x0000598C,
1911 0x00000D4C, 0x00005987, 0x00000D6F, 0x00005981,
1912 0x00000D92, 0x0000597C, 0x00000DB5, 0x00005977,
1913 0x00000DD8, 0x00005971, 0x00000DFB, 0x0000596C,
1914 0x00000E1F, 0x00005966, 0x00000E42, 0x00005961,
1915 0x00000E65, 0x0000595B, 0x00000E88, 0x00005955,
1916 0x00000EAB, 0x00005950, 0x00000ECE, 0x0000594A,
1917 0x00000EF1, 0x00005944, 0x00000F14, 0x0000593E,
1918 0x00000F37, 0x00005938, 0x00000F5A, 0x00005932,
1919 0x00000F7D, 0x0000592C, 0x00000FA0, 0x00005926,
1920 0x00000FC3, 0x00005920, 0x00000FE6, 0x0000591A,
1921 0x00001009, 0x00005913, 0x0000102C, 0x0000590D,
1922 0x0000104F, 0x00005907, 0x00001072, 0x00005900,
1923 0x00001095, 0x000058FA, 0x000010B8, 0x000058F3,
1924 0x000010DB, 0x000058ED, 0x000010FE, 0x000058E6,
1925 0x00001121, 0x000058DF, 0x00001144, 0x000058D8,
1926 0x00001166, 0x000058D2, 0x00001189, 0x000058CB,
1927 0x000011AC, 0x000058C4, 0x000011CF, 0x000058BD,
1928 0x000011F2, 0x000058B6, 0x00001215, 0x000058AF,
1929 0x00001238, 0x000058A8, 0x0000125A, 0x000058A1,
1930 0x0000127D, 0x00005899, 0x000012A0, 0x00005892,
1931 0x000012C3, 0x0000588B, 0x000012E5, 0x00005883,
1932 0x00001308, 0x0000587C, 0x0000132B, 0x00005874,
1933 0x0000134E, 0x0000586D, 0x00001370, 0x00005865,
1934 0x00001393, 0x0000585D, 0x000013B6, 0x00005856,
1935 0x000013D9, 0x0000584E, 0x000013FB, 0x00005846,
1936 0x0000141E, 0x0000583E, 0x00001440, 0x00005836,
1937 0x00001463, 0x0000582E, 0x00001486, 0x00005826,
1938 0x000014A8, 0x0000581E, 0x000014CB, 0x00005816,
1939 0x000014EE, 0x0000580E, 0x00001510, 0x00005806,
1940 0x00001533, 0x000057FD, 0x00001555, 0x000057F5,
1941 0x00001578, 0x000057ED, 0x0000159A, 0x000057E4,
1942 0x000015BD, 0x000057DC, 0x000015DF, 0x000057D3,
1943 0x00001602, 0x000057CB, 0x00001624, 0x000057C2,
1944 0x00001647, 0x000057B9, 0x00001669, 0x000057B0,
1945 0x0000168C, 0x000057A8, 0x000016AE, 0x0000579F,
1946 0x000016D0, 0x00005796, 0x000016F3, 0x0000578D,
1947 0x00001715, 0x00005784, 0x00001738, 0x0000577B,
1948 0x0000175A, 0x00005771, 0x0000177C, 0x00005768,
1949 0x0000179F, 0x0000575F, 0x000017C1, 0x00005756,
1950 0x000017E3, 0x0000574C, 0x00001805, 0x00005743,
1951 0x00001828, 0x00005739, 0x0000184A, 0x00005730,
1952 0x0000186C, 0x00005726, 0x0000188E, 0x0000571D,
1953 0x000018B1, 0x00005713, 0x000018D3, 0x00005709,
1954 0x000018F5, 0x00005700, 0x00001917, 0x000056F6,
1955 0x00001939, 0x000056EC, 0x0000195B, 0x000056E2,
1956 0x0000197D, 0x000056D8, 0x000019A0, 0x000056CE,
1957 0x000019C2, 0x000056C4, 0x000019E4, 0x000056BA,
1958 0x00001A06, 0x000056B0, 0x00001A28, 0x000056A5,
1959 0x00001A4A, 0x0000569B, 0x00001A6C, 0x00005691,
1960 0x00001A8E, 0x00005686, 0x00001AB0, 0x0000567C,
1961 0x00001AD2, 0x00005671, 0x00001AF4, 0x00005667,
1962 0x00001B16, 0x0000565C, 0x00001B37, 0x00005651,
1963 0x00001B59, 0x00005647, 0x00001B7B, 0x0000563C,
1964 0x00001B9D, 0x00005631, 0x00001BBF, 0x00005626,
1965 0x00001BE1, 0x0000561B, 0x00001C03, 0x00005610,
1966 0x00001C24, 0x00005605, 0x00001C46, 0x000055FA,
1967 0x00001C68, 0x000055EF, 0x00001C8A, 0x000055E4,
1968 0x00001CAB, 0x000055D9, 0x00001CCD, 0x000055CD,
1969 0x00001CEF, 0x000055C2, 0x00001D10, 0x000055B7,
1970 0x00001D32, 0x000055AB, 0x00001D54, 0x000055A0,
1971 0x00001D75, 0x00005594, 0x00001D97, 0x00005589,
1972 0x00001DB8, 0x0000557D, 0x00001DDA, 0x00005571,
1973 0x00001DFC, 0x00005566, 0x00001E1D, 0x0000555A,
1974 0x00001E3F, 0x0000554E, 0x00001E60, 0x00005542,
1975 0x00001E82, 0x00005536, 0x00001EA3, 0x0000552A,
1976 0x00001EC4, 0x0000551E, 0x00001EE6, 0x00005512,
1977 0x00001F07, 0x00005506, 0x00001F29, 0x000054F9,
1978 0x00001F4A, 0x000054ED, 0x00001F6B, 0x000054E1,
1979 0x00001F8D, 0x000054D5, 0x00001FAE, 0x000054C8,
1980 0x00001FCF, 0x000054BC, 0x00001FF1, 0x000054AF,
1981 0x00002012, 0x000054A3, 0x00002033, 0x00005496,
1982 0x00002054, 0x00005489, 0x00002075, 0x0000547D,
1983 0x00002097, 0x00005470, 0x000020B8, 0x00005463,
1984 0x000020D9, 0x00005456, 0x000020FA, 0x00005449,
1985 0x0000211B, 0x0000543C, 0x0000213C, 0x0000542F,
1986 0x0000215D, 0x00005422, 0x0000217E, 0x00005415,
1987 0x0000219F, 0x00005408, 0x000021C0, 0x000053FB,
1988 0x000021E1, 0x000053ED, 0x00002202, 0x000053E0,
1989 0x00002223, 0x000053D3, 0x00002244, 0x000053C5,
1990 0x00002265, 0x000053B8, 0x00002286, 0x000053AA,
1991 0x000022A7, 0x0000539D, 0x000022C7, 0x0000538F,
1992 0x000022E8, 0x00005381, 0x00002309, 0x00005373,
1993 0x0000232A, 0x00005366, 0x0000234A, 0x00005358,
1994 0x0000236B, 0x0000534A, 0x0000238C, 0x0000533C,
1995 0x000023AD, 0x0000532E, 0x000023CD, 0x00005320,
1996 0x000023EE, 0x00005312, 0x0000240E, 0x00005304,
1997 0x0000242F, 0x000052F6, 0x00002450, 0x000052E7,
1998 0x00002470, 0x000052D9, 0x00002491, 0x000052CB,
1999 0x000024B1, 0x000052BC, 0x000024D2, 0x000052AE,
2000 0x000024F2, 0x0000529F, 0x00002513, 0x00005291,
2001 0x00002533, 0x00005282, 0x00002553, 0x00005274,
2002 0x00002574, 0x00005265, 0x00002594, 0x00005256,
2003 0x000025B4, 0x00005248, 0x000025D5, 0x00005239,
2004 0x000025F5, 0x0000522A, 0x00002615, 0x0000521B,
2005 0x00002635, 0x0000520C, 0x00002656, 0x000051FD,
2006 0x00002676, 0x000051EE, 0x00002696, 0x000051DF,
2007 0x000026B6, 0x000051CF, 0x000026D6, 0x000051C0,
2008 0x000026F6, 0x000051B1, 0x00002716, 0x000051A2,
2009 0x00002736, 0x00005192, 0x00002757, 0x00005183,
2010 0x00002777, 0x00005173, 0x00002796, 0x00005164,
2011 0x000027B6, 0x00005154, 0x000027D6, 0x00005145,
2012 0x000027F6, 0x00005135, 0x00002816, 0x00005125,
2013 0x00002836, 0x00005115, 0x00002856, 0x00005106,
2014 0x00002876, 0x000050F6, 0x00002895, 0x000050E6,
2015 0x000028B5, 0x000050D6, 0x000028D5, 0x000050C6,
2016 0x000028F5, 0x000050B6, 0x00002914, 0x000050A6,
2017 0x00002934, 0x00005096, 0x00002954, 0x00005085,
2018 0x00002973, 0x00005075, 0x00002993, 0x00005065,
2019 0x000029B2, 0x00005054, 0x000029D2, 0x00005044,
2020 0x000029F1, 0x00005034, 0x00002A11, 0x00005023,
2021 0x00002A30, 0x00005013, 0x00002A50, 0x00005002,
2022 0x00002A6F, 0x00004FF1, 0x00002A8F, 0x00004FE1,
2023 0x00002AAE, 0x00004FD0, 0x00002ACD, 0x00004FBF,
2024 0x00002AED, 0x00004FAE, 0x00002B0C, 0x00004F9D,
2025 0x00002B2B, 0x00004F8D, 0x00002B4A, 0x00004F7C,
2026 0x00002B69, 0x00004F6B, 0x00002B89, 0x00004F59,
2027 0x00002BA8, 0x00004F48, 0x00002BC7, 0x00004F37,
2028 0x00002BE6, 0x00004F26, 0x00002C05, 0x00004F15,
2029 0x00002C24, 0x00004F03, 0x00002C43, 0x00004EF2,
2030 0x00002C62, 0x00004EE1, 0x00002C81, 0x00004ECF,
2031 0x00002CA0, 0x00004EBE, 0x00002CBF, 0x00004EAC,
2032 0x00002CDE, 0x00004E9A, 0x00002CFD, 0x00004E89,
2033 0x00002D1C, 0x00004E77, 0x00002D3A, 0x00004E65,
2034 0x00002D59, 0x00004E54, 0x00002D78, 0x00004E42,
2035 0x00002D97, 0x00004E30, 0x00002DB5, 0x00004E1E,
2036 0x00002DD4, 0x00004E0C, 0x00002DF3, 0x00004DFA,
2037 0x00002E11, 0x00004DE8, 0x00002E30, 0x00004DD6,
2038 0x00002E4E, 0x00004DC4, 0x00002E6D, 0x00004DB1,
2039 0x00002E8B, 0x00004D9F, 0x00002EAA, 0x00004D8D,
2040 0x00002EC8, 0x00004D7B, 0x00002EE7, 0x00004D68,
2041 0x00002F05, 0x00004D56, 0x00002F23, 0x00004D43,
2042 0x00002F42, 0x00004D31, 0x00002F60, 0x00004D1E,
2043 0x00002F7E, 0x00004D0B, 0x00002F9D, 0x00004CF9,
2044 0x00002FBB, 0x00004CE6, 0x00002FD9, 0x00004CD3,
2045 0x00002FF7, 0x00004CC0, 0x00003015, 0x00004CAE,
2046 0x00003033, 0x00004C9B, 0x00003051, 0x00004C88,
2047 0x0000306F, 0x00004C75, 0x0000308D, 0x00004C62,
2048 0x000030AB, 0x00004C4F, 0x000030C9, 0x00004C3C,
2049 0x000030E7, 0x00004C28, 0x00003105, 0x00004C15,
2050 0x00003123, 0x00004C02, 0x00003141, 0x00004BEF,
2051 0x0000315F, 0x00004BDB, 0x0000317C, 0x00004BC8,
2052 0x0000319A, 0x00004BB4, 0x000031B8, 0x00004BA1,
2053 0x000031D6, 0x00004B8D, 0x000031F3, 0x00004B7A,
2054 0x00003211, 0x00004B66, 0x0000322E, 0x00004B52,
2055 0x0000324C, 0x00004B3F, 0x0000326A, 0x00004B2B,
2056 0x00003287, 0x00004B17, 0x000032A5, 0x00004B03,
2057 0x000032C2, 0x00004AEF, 0x000032DF, 0x00004ADB,
2058 0x000032FD, 0x00004AC7, 0x0000331A, 0x00004AB3,
2059 0x00003337, 0x00004A9F, 0x00003355, 0x00004A8B,
2060 0x00003372, 0x00004A77, 0x0000338F, 0x00004A63,
2061 0x000033AC, 0x00004A4E, 0x000033CA, 0x00004A3A,
2062 0x000033E7, 0x00004A26, 0x00003404, 0x00004A11,
2063 0x00003421, 0x000049FD, 0x0000343E, 0x000049E8,
2064 0x0000345B, 0x000049D4, 0x00003478, 0x000049BF,
2065 0x00003495, 0x000049AB, 0x000034B2, 0x00004996,
2066 0x000034CF, 0x00004981, 0x000034EB, 0x0000496C,
2067 0x00003508, 0x00004958, 0x00003525, 0x00004943,
2068 0x00003542, 0x0000492E, 0x0000355F, 0x00004919,
2069 0x0000357B, 0x00004904, 0x00003598, 0x000048EF,
2070 0x000035B5, 0x000048DA, 0x000035D1, 0x000048C5,
2071 0x000035EE, 0x000048B0, 0x0000360A, 0x0000489A,
2072 0x00003627, 0x00004885, 0x00003643, 0x00004870,
2073 0x00003660, 0x0000485A, 0x0000367C, 0x00004845,
2074 0x00003698, 0x00004830, 0x000036B5, 0x0000481A,
2075 0x000036D1, 0x00004805, 0x000036ED, 0x000047EF,
2076 0x0000370A, 0x000047DA, 0x00003726, 0x000047C4,
2077 0x00003742, 0x000047AE, 0x0000375E, 0x00004799,
2078 0x0000377A, 0x00004783, 0x00003796, 0x0000476D,
2079 0x000037B2, 0x00004757, 0x000037CE, 0x00004741,
2080 0x000037EA, 0x0000472B, 0x00003806, 0x00004715,
2081 0x00003822, 0x000046FF, 0x0000383E, 0x000046E9,
2082 0x0000385A, 0x000046D3, 0x00003875, 0x000046BD,
2083 0x00003891, 0x000046A7, 0x000038AD, 0x00004691,
2084 0x000038C9, 0x0000467A, 0x000038E4, 0x00004664,
2085 0x00003900, 0x0000464E, 0x0000391C, 0x00004637,
2086 0x00003937, 0x00004621, 0x00003953, 0x0000460A,
2087 0x0000396E, 0x000045F4, 0x0000398A, 0x000045DD,
2088 0x000039A5, 0x000045C7, 0x000039C0, 0x000045B0,
2089 0x000039DC, 0x00004599, 0x000039F7, 0x00004582,
2090 0x00003A12, 0x0000456C, 0x00003A2E, 0x00004555,
2091 0x00003A49, 0x0000453E, 0x00003A64, 0x00004527,
2092 0x00003A7F, 0x00004510, 0x00003A9A, 0x000044F9,
2093 0x00003AB5, 0x000044E2, 0x00003AD0, 0x000044CB,
2094 0x00003AEB, 0x000044B4, 0x00003B06, 0x0000449D,
2095 0x00003B21, 0x00004485, 0x00003B3C, 0x0000446E,
2096 0x00003B57, 0x00004457, 0x00003B72, 0x00004440,
2097 0x00003B8D, 0x00004428, 0x00003BA7, 0x00004411,
2098 0x00003BC2, 0x000043F9, 0x00003BDD, 0x000043E2,
2099 0x00003BF7, 0x000043CA, 0x00003C12, 0x000043B3,
2100 0x00003C2C, 0x0000439B, 0x00003C47, 0x00004384,
2101 0x00003C62, 0x0000436C, 0x00003C7C, 0x00004354,
2102 0x00003C96, 0x0000433C, 0x00003CB1, 0x00004325,
2103 0x00003CCB, 0x0000430D, 0x00003CE5, 0x000042F5,
2104 0x00003D00, 0x000042DD, 0x00003D1A, 0x000042C5,
2105 0x00003D34, 0x000042AD, 0x00003D4E, 0x00004295,
2106 0x00003D68, 0x0000427D, 0x00003D83, 0x00004265,
2107 0x00003D9D, 0x0000424C, 0x00003DB7, 0x00004234,
2108 0x00003DD1, 0x0000421C, 0x00003DEB, 0x00004204,
2109 0x00003E04, 0x000041EB, 0x00003E1E, 0x000041D3,
2110 0x00003E38, 0x000041BB, 0x00003E52, 0x000041A2,
2111 0x00003E6C, 0x0000418A, 0x00003E85, 0x00004171,
2112 0x00003E9F, 0x00004158, 0x00003EB9, 0x00004140,
2113 0x00003ED2, 0x00004127, 0x00003EEC, 0x0000410F,
2114 0x00003F05, 0x000040F6, 0x00003F1F, 0x000040DD,
2115 0x00003F38, 0x000040C4, 0x00003F52, 0x000040AB,
2116 0x00003F6B, 0x00004092, 0x00003F85, 0x0000407A,
2117 0x00003F9E, 0x00004061, 0x00003FB7, 0x00004048,
2118 0x00003FD0, 0x0000402F, 0x00003FE9, 0x00004015,
2119 0x00004003, 0x00003FFC, 0x0000401C, 0x00003FE3,
2120 0x00004035, 0x00003FCA, 0x0000404E, 0x00003FB1,
2121 0x00004067, 0x00003F98, 0x00004080, 0x00003F7E,
2122 0x00004099, 0x00003F65, 0x000040B2, 0x00003F4B,
2123 0x000040CA, 0x00003F32, 0x000040E3, 0x00003F19,
2124 0x000040FC, 0x00003EFF, 0x00004115, 0x00003EE6,
2125 0x0000412D, 0x00003ECC, 0x00004146, 0x00003EB2,
2126 0x0000415F, 0x00003E99, 0x00004177, 0x00003E7F,
2127 0x00004190, 0x00003E65, 0x000041A8, 0x00003E4B,
2128 0x000041C1, 0x00003E32, 0x000041D9, 0x00003E18,
2129 0x000041F1, 0x00003DFE, 0x0000420A, 0x00003DE4,
2130 0x00004222, 0x00003DCA, 0x0000423A, 0x00003DB0,
2131 0x00004252, 0x00003D96, 0x0000426B, 0x00003D7C,
2132 0x00004283, 0x00003D62, 0x0000429B, 0x00003D48,
2133 0x000042B3, 0x00003D2E, 0x000042CB, 0x00003D13,
2134 0x000042E3, 0x00003CF9, 0x000042FB, 0x00003CDF,
2135 0x00004313, 0x00003CC5, 0x0000432B, 0x00003CAA,
2136 0x00004342, 0x00003C90, 0x0000435A, 0x00003C75,
2137 0x00004372, 0x00003C5B, 0x00004389, 0x00003C40,
2138 0x000043A1, 0x00003C26, 0x000043B9, 0x00003C0B,
2139 0x000043D0, 0x00003BF1, 0x000043E8, 0x00003BD6,
2140 0x000043FF, 0x00003BBB, 0x00004417, 0x00003BA1,
2141 0x0000442E, 0x00003B86, 0x00004445, 0x00003B6B,
2142 0x0000445D, 0x00003B50, 0x00004474, 0x00003B35,
2143 0x0000448B, 0x00003B1A, 0x000044A2, 0x00003B00,
2144 0x000044BA, 0x00003AE5, 0x000044D1, 0x00003ACA,
2145 0x000044E8, 0x00003AAF, 0x000044FF, 0x00003A93,
2146 0x00004516, 0x00003A78, 0x0000452D, 0x00003A5D,
2147 0x00004544, 0x00003A42, 0x0000455B, 0x00003A27,
2148 0x00004571, 0x00003A0C, 0x00004588, 0x000039F0,
2149 0x0000459F, 0x000039D5, 0x000045B6, 0x000039BA,
2150 0x000045CC, 0x0000399E, 0x000045E3, 0x00003983,
2151 0x000045F9, 0x00003967, 0x00004610, 0x0000394C,
2152 0x00004626, 0x00003930, 0x0000463D, 0x00003915,
2153 0x00004653, 0x000038F9, 0x0000466A, 0x000038DD,
2154 0x00004680, 0x000038C2, 0x00004696, 0x000038A6,
2155 0x000046AC, 0x0000388A, 0x000046C3, 0x0000386F,
2156 0x000046D9, 0x00003853, 0x000046EF, 0x00003837,
2157 0x00004705, 0x0000381B, 0x0000471B, 0x000037FF,
2158 0x00004731, 0x000037E3, 0x00004747, 0x000037C7,
2159 0x0000475D, 0x000037AB, 0x00004772, 0x0000378F,
2160 0x00004788, 0x00003773, 0x0000479E, 0x00003757,
2161 0x000047B4, 0x0000373B, 0x000047C9, 0x0000371F,
2162 0x000047DF, 0x00003702, 0x000047F5, 0x000036E6,
2163 0x0000480A, 0x000036CA, 0x00004820, 0x000036AE,
2164 0x00004835, 0x00003691, 0x0000484A, 0x00003675,
2165 0x00004860, 0x00003659, 0x00004875, 0x0000363C,
2166 0x0000488A, 0x00003620, 0x000048A0, 0x00003603,
2167 0x000048B5, 0x000035E7, 0x000048CA, 0x000035CA,
2168 0x000048DF, 0x000035AD, 0x000048F4, 0x00003591,
2169 0x00004909, 0x00003574, 0x0000491E, 0x00003557,
2170 0x00004933, 0x0000353B, 0x00004948, 0x0000351E,
2171 0x0000495D, 0x00003501, 0x00004972, 0x000034E4,
2172 0x00004986, 0x000034C7, 0x0000499B, 0x000034AB,
2173 0x000049B0, 0x0000348E, 0x000049C4, 0x00003471,
2174 0x000049D9, 0x00003454, 0x000049ED, 0x00003437,
2175 0x00004A02, 0x0000341A, 0x00004A16, 0x000033FD,
2176 0x00004A2B, 0x000033DF, 0x00004A3F, 0x000033C2,
2177 0x00004A53, 0x000033A5, 0x00004A68, 0x00003388,
2178 0x00004A7C, 0x0000336B, 0x00004A90, 0x0000334D,
2179 0x00004AA4, 0x00003330, 0x00004AB8, 0x00003313,
2180 0x00004ACC, 0x000032F5, 0x00004AE0, 0x000032D8,
2181 0x00004AF4, 0x000032BB, 0x00004B08, 0x0000329D,
2182 0x00004B1C, 0x00003280, 0x00004B30, 0x00003262,
2183 0x00004B44, 0x00003245, 0x00004B57, 0x00003227,
2184 0x00004B6B, 0x00003209, 0x00004B7F, 0x000031EC,
2185 0x00004B92, 0x000031CE, 0x00004BA6, 0x000031B0,
2186 0x00004BB9, 0x00003193, 0x00004BCD, 0x00003175,
2187 0x00004BE0, 0x00003157, 0x00004BF3, 0x00003139,
2188 0x00004C07, 0x0000311C, 0x00004C1A, 0x000030FE,
2189 0x00004C2D, 0x000030E0, 0x00004C40, 0x000030C2,
2190 0x00004C53, 0x000030A4, 0x00004C67, 0x00003086,
2191 0x00004C7A, 0x00003068, 0x00004C8D, 0x0000304A,
2192 0x00004C9F, 0x0000302C, 0x00004CB2, 0x0000300E,
2193 0x00004CC5, 0x00002FF0, 0x00004CD8, 0x00002FD1,
2194 0x00004CEB, 0x00002FB3, 0x00004CFD, 0x00002F95,
2195 0x00004D10, 0x00002F77, 0x00004D23, 0x00002F58,
2196 0x00004D35, 0x00002F3A, 0x00004D48, 0x00002F1C,
2197 0x00004D5A, 0x00002EFD, 0x00004D6D, 0x00002EDF,
2198 0x00004D7F, 0x00002EC1, 0x00004D91, 0x00002EA2,
2199 0x00004DA4, 0x00002E84, 0x00004DB6, 0x00002E65,
2200 0x00004DC8, 0x00002E47, 0x00004DDA, 0x00002E28,
2201 0x00004DEC, 0x00002E0A, 0x00004DFF, 0x00002DEB,
2202 0x00004E11, 0x00002DCC, 0x00004E22, 0x00002DAE,
2203 0x00004E34, 0x00002D8F, 0x00004E46, 0x00002D70,
2204 0x00004E58, 0x00002D51, 0x00004E6A, 0x00002D33,
2205 0x00004E7C, 0x00002D14, 0x00004E8D, 0x00002CF5,
2206 0x00004E9F, 0x00002CD6, 0x00004EB0, 0x00002CB7,
2207 0x00004EC2, 0x00002C98, 0x00004ED4, 0x00002C79,
2208 0x00004EE5, 0x00002C5A, 0x00004EF6, 0x00002C3B,
2209 0x00004F08, 0x00002C1C, 0x00004F19, 0x00002BFD,
2210 0x00004F2A, 0x00002BDE, 0x00004F3B, 0x00002BBF,
2211 0x00004F4D, 0x00002BA0, 0x00004F5E, 0x00002B81,
2212 0x00004F6F, 0x00002B62, 0x00004F80, 0x00002B42,
2213 0x00004F91, 0x00002B23, 0x00004FA2, 0x00002B04,
2214 0x00004FB3, 0x00002AE5, 0x00004FC3, 0x00002AC5,
2215 0x00004FD4, 0x00002AA6, 0x00004FE5, 0x00002A87,
2216 0x00004FF6, 0x00002A67, 0x00005006, 0x00002A48,
2217 0x00005017, 0x00002A28, 0x00005027, 0x00002A09,
2218 0x00005038, 0x000029EA, 0x00005048, 0x000029CA,
2219 0x00005059, 0x000029AA, 0x00005069, 0x0000298B,
2220 0x00005079, 0x0000296B, 0x00005089, 0x0000294C,
2221 0x0000509A, 0x0000292C, 0x000050AA, 0x0000290C,
2222 0x000050BA, 0x000028ED, 0x000050CA, 0x000028CD,
2223 0x000050DA, 0x000028AD, 0x000050EA, 0x0000288D,
2224 0x000050FA, 0x0000286E, 0x0000510A, 0x0000284E,
2225 0x00005119, 0x0000282E, 0x00005129, 0x0000280E,
2226 0x00005139, 0x000027EE, 0x00005149, 0x000027CE,
2227 0x00005158, 0x000027AE, 0x00005168, 0x0000278E,
2228 0x00005177, 0x0000276F, 0x00005187, 0x0000274F,
2229 0x00005196, 0x0000272E, 0x000051A5, 0x0000270E,
2230 0x000051B5, 0x000026EE, 0x000051C4, 0x000026CE,
2231 0x000051D3, 0x000026AE, 0x000051E2, 0x0000268E,
2232 0x000051F2, 0x0000266E, 0x00005201, 0x0000264E,
2233 0x00005210, 0x0000262D, 0x0000521F, 0x0000260D,
2234 0x0000522E, 0x000025ED, 0x0000523C, 0x000025CD,
2235 0x0000524B, 0x000025AC, 0x0000525A, 0x0000258C,
2236 0x00005269, 0x0000256C, 0x00005277, 0x0000254B,
2237 0x00005286, 0x0000252B, 0x00005295, 0x0000250A,
2238 0x000052A3, 0x000024EA, 0x000052B2, 0x000024CA,
2239 0x000052C0, 0x000024A9, 0x000052CE, 0x00002489,
2240 0x000052DD, 0x00002468, 0x000052EB, 0x00002447,
2241 0x000052F9, 0x00002427, 0x00005307, 0x00002406,
2242 0x00005315, 0x000023E6, 0x00005324, 0x000023C5,
2243 0x00005332, 0x000023A4, 0x00005340, 0x00002384,
2244 0x0000534D, 0x00002363, 0x0000535B, 0x00002342,
2245 0x00005369, 0x00002322, 0x00005377, 0x00002301,
2246 0x00005385, 0x000022E0, 0x00005392, 0x000022BF,
2247 0x000053A0, 0x0000229E, 0x000053AD, 0x0000227E,
2248 0x000053BB, 0x0000225D, 0x000053C8, 0x0000223C,
2249 0x000053D6, 0x0000221B, 0x000053E3, 0x000021FA,
2250 0x000053F1, 0x000021D9, 0x000053FE, 0x000021B8,
2251 0x0000540B, 0x00002197, 0x00005418, 0x00002176,
2252 0x00005425, 0x00002155, 0x00005432, 0x00002134,
2253 0x0000543F, 0x00002113, 0x0000544C, 0x000020F2,
2254 0x00005459, 0x000020D1, 0x00005466, 0x000020AF,
2255 0x00005473, 0x0000208E, 0x00005480, 0x0000206D,
2256 0x0000548C, 0x0000204C, 0x00005499, 0x0000202B,
2257 0x000054A6, 0x00002009, 0x000054B2, 0x00001FE8,
2258 0x000054BF, 0x00001FC7, 0x000054CB, 0x00001FA6,
2259 0x000054D8, 0x00001F84, 0x000054E4, 0x00001F63,
2260 0x000054F0, 0x00001F42, 0x000054FD, 0x00001F20,
2261 0x00005509, 0x00001EFF, 0x00005515, 0x00001EDE,
2262 0x00005521, 0x00001EBC, 0x0000552D, 0x00001E9B,
2263 0x00005539, 0x00001E79, 0x00005545, 0x00001E58,
2264 0x00005551, 0x00001E36, 0x0000555D, 0x00001E15,
2265 0x00005568, 0x00001DF3, 0x00005574, 0x00001DD2,
2266 0x00005580, 0x00001DB0, 0x0000558C, 0x00001D8E,
2267 0x00005597, 0x00001D6D, 0x000055A3, 0x00001D4B,
2268 0x000055AE, 0x00001D2A, 0x000055BA, 0x00001D08,
2269 0x000055C5, 0x00001CE6, 0x000055D0, 0x00001CC5,
2270 0x000055DC, 0x00001CA3, 0x000055E7, 0x00001C81,
2271 0x000055F2, 0x00001C5F, 0x000055FD, 0x00001C3E,
2272 0x00005608, 0x00001C1C, 0x00005613, 0x00001BFA,
2273 0x0000561E, 0x00001BD8, 0x00005629, 0x00001BB6,
2274 0x00005634, 0x00001B95, 0x0000563F, 0x00001B73,
2275 0x00005649, 0x00001B51, 0x00005654, 0x00001B2F,
2276 0x0000565F, 0x00001B0D, 0x00005669, 0x00001AEB,
2277 0x00005674, 0x00001AC9, 0x0000567E, 0x00001AA7,
2278 0x00005689, 0x00001A85, 0x00005693, 0x00001A63,
2279 0x0000569E, 0x00001A41, 0x000056A8, 0x00001A1F,
2280 0x000056B2, 0x000019FD, 0x000056BC, 0x000019DB,
2281 0x000056C6, 0x000019B9, 0x000056D0, 0x00001997,
2282 0x000056DA, 0x00001975, 0x000056E4, 0x00001953,
2283 0x000056EE, 0x00001931, 0x000056F8, 0x0000190F,
2284 0x00005702, 0x000018EC, 0x0000570C, 0x000018CA,
2285 0x00005716, 0x000018A8, 0x0000571F, 0x00001886,
2286 0x00005729, 0x00001864, 0x00005732, 0x00001841,
2287 0x0000573C, 0x0000181F, 0x00005745, 0x000017FD,
2288 0x0000574F, 0x000017DB, 0x00005758, 0x000017B8,
2289 0x00005761, 0x00001796, 0x0000576B, 0x00001774,
2290 0x00005774, 0x00001751, 0x0000577D, 0x0000172F,
2291 0x00005786, 0x0000170D, 0x0000578F, 0x000016EA,
2292 0x00005798, 0x000016C8, 0x000057A1, 0x000016A5,
2293 0x000057AA, 0x00001683, 0x000057B3, 0x00001661,
2294 0x000057BB, 0x0000163E, 0x000057C4, 0x0000161C,
2295 0x000057CD, 0x000015F9, 0x000057D5, 0x000015D7,
2296 0x000057DE, 0x000015B4, 0x000057E6, 0x00001592,
2297 0x000057EF, 0x0000156F, 0x000057F7, 0x0000154D,
2298 0x000057FF, 0x0000152A, 0x00005808, 0x00001507,
2299 0x00005810, 0x000014E5, 0x00005818, 0x000014C2,
2300 0x00005820, 0x000014A0, 0x00005828, 0x0000147D,
2301 0x00005830, 0x0000145A, 0x00005838, 0x00001438,
2302 0x00005840, 0x00001415, 0x00005848, 0x000013F3,
2303 0x00005850, 0x000013D0, 0x00005858, 0x000013AD,
2304 0x0000585F, 0x0000138A, 0x00005867, 0x00001368,
2305 0x0000586F, 0x00001345, 0x00005876, 0x00001322,
2306 0x0000587E, 0x00001300, 0x00005885, 0x000012DD,
2307 0x0000588C, 0x000012BA, 0x00005894, 0x00001297,
2308 0x0000589B, 0x00001274, 0x000058A2, 0x00001252,
2309 0x000058A9, 0x0000122F, 0x000058B1, 0x0000120C,
2310 0x000058B8, 0x000011E9, 0x000058BF, 0x000011C6,
2311 0x000058C6, 0x000011A3, 0x000058CD, 0x00001181,
2312 0x000058D3, 0x0000115E, 0x000058DA, 0x0000113B,
2313 0x000058E1, 0x00001118, 0x000058E8, 0x000010F5,
2314 0x000058EE, 0x000010D2, 0x000058F5, 0x000010AF,
2315 0x000058FB, 0x0000108C, 0x00005902, 0x00001069,
2316 0x00005908, 0x00001046, 0x0000590F, 0x00001023,
2317 0x00005915, 0x00001000, 0x0000591B, 0x00000FDD,
2318 0x00005921, 0x00000FBA, 0x00005928, 0x00000F97,
2319 0x0000592E, 0x00000F74, 0x00005934, 0x00000F51,
2320 0x0000593A, 0x00000F2E, 0x00005940, 0x00000F0B,
2321 0x00005945, 0x00000EE8, 0x0000594B, 0x00000EC5,
2322 0x00005951, 0x00000EA2, 0x00005957, 0x00000E7F,
2323 0x0000595C, 0x00000E5C, 0x00005962, 0x00000E39,
2324 0x00005968, 0x00000E16, 0x0000596D, 0x00000DF3,
2325 0x00005973, 0x00000DCF, 0x00005978, 0x00000DAC,
2326 0x0000597D, 0x00000D89, 0x00005983, 0x00000D66,
2327 0x00005988, 0x00000D43, 0x0000598D, 0x00000D20,
2328 0x00005992, 0x00000CFD, 0x00005997, 0x00000CD9,
2329 0x0000599C, 0x00000CB6, 0x000059A1, 0x00000C93,
2330 0x000059A6, 0x00000C70, 0x000059AB, 0x00000C4D,
2331 0x000059B0, 0x00000C29, 0x000059B5, 0x00000C06,
2332 0x000059B9, 0x00000BE3, 0x000059BE, 0x00000BC0,
2333 0x000059C2, 0x00000B9C, 0x000059C7, 0x00000B79,
2334 0x000059CB, 0x00000B56, 0x000059D0, 0x00000B33,
2335 0x000059D4, 0x00000B0F, 0x000059D9, 0x00000AEC,
2336 0x000059DD, 0x00000AC9, 0x000059E1, 0x00000AA6,
2337 0x000059E5, 0x00000A82, 0x000059E9, 0x00000A5F,
2338 0x000059ED, 0x00000A3C, 0x000059F1, 0x00000A18,
2339 0x000059F5, 0x000009F5, 0x000059F9, 0x000009D2,
2340 0x000059FD, 0x000009AE, 0x00005A01, 0x0000098B,
2341 0x00005A04, 0x00000968, 0x00005A08, 0x00000944,
2342 0x00005A0C, 0x00000921, 0x00005A0F, 0x000008FE,
2343 0x00005A13, 0x000008DA, 0x00005A16, 0x000008B7,
2344 0x00005A1A, 0x00000893, 0x00005A1D, 0x00000870,
2345 0x00005A20, 0x0000084D, 0x00005A24, 0x00000829,
2346 0x00005A27, 0x00000806, 0x00005A2A, 0x000007E2,
2347 0x00005A2D, 0x000007BF, 0x00005A30, 0x0000079C,
2348 0x00005A33, 0x00000778, 0x00005A36, 0x00000755,
2349 0x00005A39, 0x00000731, 0x00005A3B, 0x0000070E,
2350 0x00005A3E, 0x000006EA, 0x00005A41, 0x000006C7,
2351 0x00005A44, 0x000006A4, 0x00005A46, 0x00000680,
2352 0x00005A49, 0x0000065D, 0x00005A4B, 0x00000639,
2353 0x00005A4E, 0x00000616, 0x00005A50, 0x000005F2,
2354 0x00005A52, 0x000005CF, 0x00005A54, 0x000005AB,
2355 0x00005A57, 0x00000588, 0x00005A59, 0x00000564,
2356 0x00005A5B, 0x00000541, 0x00005A5D, 0x0000051D,
2357 0x00005A5F, 0x000004FA, 0x00005A61, 0x000004D6,
2358 0x00005A63, 0x000004B3, 0x00005A65, 0x0000048F,
2359 0x00005A66, 0x0000046C, 0x00005A68, 0x00000448,
2360 0x00005A6A, 0x00000425, 0x00005A6B, 0x00000401,
2361 0x00005A6D, 0x000003DE, 0x00005A6E, 0x000003BA,
2362 0x00005A70, 0x00000397, 0x00005A71, 0x00000373,
2363 0x00005A72, 0x00000350, 0x00005A74, 0x0000032C,
2364 0x00005A75, 0x00000309, 0x00005A76, 0x000002E5,
2365 0x00005A77, 0x000002C2, 0x00005A78, 0x0000029E,
2366 0x00005A79, 0x0000027B, 0x00005A7A, 0x00000257,
2367 0x00005A7B, 0x00000234, 0x00005A7C, 0x00000210,
2368 0x00005A7D, 0x000001ED, 0x00005A7D, 0x000001C9,
2369 0x00005A7E, 0x000001A6, 0x00005A7F, 0x00000182,
2370 0x00005A7F, 0x0000015E, 0x00005A80, 0x0000013B,
2371 0x00005A80, 0x00000117, 0x00005A81, 0x000000F4,
2372 0x00005A81, 0x000000D0, 0x00005A81, 0x000000AD,
2373 0x00005A82, 0x00000089, 0x00005A82, 0x00000066,
2374 0x00005A82, 0x00000042, 0x00005A82, 0x0000001F,
2375 0x00000001, 0x00004000, 0x0000000E, 0x00003FFF,
2376 0x0000001A, 0x00003FFF, 0x00000027, 0x00003FFF,
2377 0x00000033, 0x00003FFF, 0x00000040, 0x00003FFF,
2378 0x0000004C, 0x00003FFF, 0x00000059, 0x00003FFF,
2379 0x00000066, 0x00003FFF, 0x00000072, 0x00003FFF,
2380 0x0000007F, 0x00003FFF, 0x0000008B, 0x00003FFF,
2381 0x00000098, 0x00003FFF, 0x000000A4, 0x00003FFF,
2382 0x000000B1, 0x00003FFF, 0x000000BE, 0x00003FFE,
2383 0x000000CA, 0x00003FFE, 0x000000D7, 0x00003FFE,
2384 0x000000E3, 0x00003FFE, 0x000000F0, 0x00003FFE,
2385 0x000000FC, 0x00003FFE, 0x00000109, 0x00003FFD,
2386 0x00000116, 0x00003FFD, 0x00000122, 0x00003FFD,
2387 0x0000012F, 0x00003FFD, 0x0000013B, 0x00003FFC,
2388 0x00000148, 0x00003FFC, 0x00000154, 0x00003FFC,
2389 0x00000161, 0x00003FFC, 0x0000016D, 0x00003FFB,
2390 0x0000017A, 0x00003FFB, 0x00000187, 0x00003FFB,
2391 0x00000193, 0x00003FFB, 0x000001A0, 0x00003FFA,
2392 0x000001AC, 0x00003FFA, 0x000001B9, 0x00003FFA,
2393 0x000001C5, 0x00003FF9, 0x000001D2, 0x00003FF9,
2394 0x000001DF, 0x00003FF8, 0x000001EB, 0x00003FF8,
2395 0x000001F8, 0x00003FF8, 0x00000204, 0x00003FF7,
2396 0x00000211, 0x00003FF7, 0x0000021D, 0x00003FF7,
2397 0x0000022A, 0x00003FF6, 0x00000236, 0x00003FF6,
2398 0x00000243, 0x00003FF5, 0x00000250, 0x00003FF5,
2399 0x0000025C, 0x00003FF4, 0x00000269, 0x00003FF4,
2400 0x00000275, 0x00003FF3, 0x00000282, 0x00003FF3,
2401 0x0000028E, 0x00003FF2, 0x0000029B, 0x00003FF2,
2402 0x000002A7, 0x00003FF1, 0x000002B4, 0x00003FF1,
2403 0x000002C1, 0x00003FF0, 0x000002CD, 0x00003FF0,
2404 0x000002DA, 0x00003FEF, 0x000002E6, 0x00003FEF,
2405 0x000002F3, 0x00003FEE, 0x000002FF, 0x00003FED,
2406 0x0000030C, 0x00003FED, 0x00000318, 0x00003FEC,
2407 0x00000325, 0x00003FEC, 0x00000332, 0x00003FEB,
2408 0x0000033E, 0x00003FEA, 0x0000034B, 0x00003FEA,
2409 0x00000357, 0x00003FE9, 0x00000364, 0x00003FE8,
2410 0x00000370, 0x00003FE8, 0x0000037D, 0x00003FE7,
2411 0x00000389, 0x00003FE6, 0x00000396, 0x00003FE6,
2412 0x000003A2, 0x00003FE5, 0x000003AF, 0x00003FE4,
2413 0x000003BC, 0x00003FE4, 0x000003C8, 0x00003FE3,
2414 0x000003D5, 0x00003FE2, 0x000003E1, 0x00003FE1,
2415 0x000003EE, 0x00003FE1, 0x000003FA, 0x00003FE0,
2416 0x00000407, 0x00003FDF, 0x00000413, 0x00003FDE,
2417 0x00000420, 0x00003FDD, 0x0000042C, 0x00003FDD,
2418 0x00000439, 0x00003FDC, 0x00000446, 0x00003FDB,
2419 0x00000452, 0x00003FDA, 0x0000045F, 0x00003FD9,
2420 0x0000046B, 0x00003FD8, 0x00000478, 0x00003FD7,
2421 0x00000484, 0x00003FD7, 0x00000491, 0x00003FD6,
2422 0x0000049D, 0x00003FD5, 0x000004AA, 0x00003FD4,
2423 0x000004B6, 0x00003FD3, 0x000004C3, 0x00003FD2,
2424 0x000004CF, 0x00003FD1, 0x000004DC, 0x00003FD0,
2425 0x000004E8, 0x00003FCF, 0x000004F5, 0x00003FCE,
2426 0x00000502, 0x00003FCD, 0x0000050E, 0x00003FCC,
2427 0x0000051B, 0x00003FCB, 0x00000527, 0x00003FCA,
2428 0x00000534, 0x00003FC9, 0x00000540, 0x00003FC8,
2429 0x0000054D, 0x00003FC7, 0x00000559, 0x00003FC6,
2430 0x00000566, 0x00003FC5, 0x00000572, 0x00003FC4,
2431 0x0000057F, 0x00003FC3, 0x0000058B, 0x00003FC2,
2432 0x00000598, 0x00003FC1, 0x000005A4, 0x00003FC0,
2433 0x000005B1, 0x00003FBF, 0x000005BD, 0x00003FBD,
2434 0x000005CA, 0x00003FBC, 0x000005D6, 0x00003FBB,
2435 0x000005E3, 0x00003FBA, 0x000005EF, 0x00003FB9,
2436 0x000005FC, 0x00003FB8, 0x00000608, 0x00003FB6,
2437 0x00000615, 0x00003FB5, 0x00000621, 0x00003FB4,
2438 0x0000062E, 0x00003FB3, 0x0000063A, 0x00003FB2,
2439 0x00000647, 0x00003FB0, 0x00000653, 0x00003FAF,
2440 0x00000660, 0x00003FAE, 0x0000066C, 0x00003FAD,
2441 0x00000679, 0x00003FAB, 0x00000685, 0x00003FAA,
2442 0x00000692, 0x00003FA9, 0x0000069E, 0x00003FA8,
2443 0x000006AB, 0x00003FA6, 0x000006B7, 0x00003FA5,
2444 0x000006C4, 0x00003FA4, 0x000006D0, 0x00003FA2,
2445 0x000006DD, 0x00003FA1, 0x000006E9, 0x00003FA0,
2446 0x000006F6, 0x00003F9E, 0x00000702, 0x00003F9D,
2447 0x0000070F, 0x00003F9B, 0x0000071B, 0x00003F9A,
2448 0x00000728, 0x00003F99, 0x00000734, 0x00003F97,
2449 0x00000741, 0x00003F96, 0x0000074D, 0x00003F94,
2450 0x0000075A, 0x00003F93, 0x00000766, 0x00003F92,
2451 0x00000773, 0x00003F90, 0x0000077F, 0x00003F8F,
2452 0x0000078C, 0x00003F8D, 0x00000798, 0x00003F8C,
2453 0x000007A5, 0x00003F8A, 0x000007B1, 0x00003F89,
2454 0x000007BE, 0x00003F87, 0x000007CA, 0x00003F86,
2455 0x000007D7, 0x00003F84, 0x000007E3, 0x00003F83,
2456 0x000007F0, 0x00003F81, 0x000007FC, 0x00003F7F,
2457 0x00000809, 0x00003F7E, 0x00000815, 0x00003F7C,
2458 0x00000821, 0x00003F7B, 0x0000082E, 0x00003F79,
2459 0x0000083A, 0x00003F77, 0x00000847, 0x00003F76,
2460 0x00000853, 0x00003F74, 0x00000860, 0x00003F73,
2461 0x0000086C, 0x00003F71, 0x00000879, 0x00003F6F,
2462 0x00000885, 0x00003F6E, 0x00000892, 0x00003F6C,
2463 0x0000089E, 0x00003F6A, 0x000008AA, 0x00003F69,
2464 0x000008B7, 0x00003F67, 0x000008C3, 0x00003F65,
2465 0x000008D0, 0x00003F63, 0x000008DC, 0x00003F62,
2466 0x000008E9, 0x00003F60, 0x000008F5, 0x00003F5E,
2467 0x00000902, 0x00003F5C, 0x0000090E, 0x00003F5B,
2468 0x0000091A, 0x00003F59, 0x00000927, 0x00003F57,
2469 0x00000933, 0x00003F55, 0x00000940, 0x00003F53,
2470 0x0000094C, 0x00003F52, 0x00000959, 0x00003F50,
2471 0x00000965, 0x00003F4E, 0x00000972, 0x00003F4C,
2472 0x0000097E, 0x00003F4A, 0x0000098A, 0x00003F48,
2473 0x00000997, 0x00003F46, 0x000009A3, 0x00003F45,
2474 0x000009B0, 0x00003F43, 0x000009BC, 0x00003F41,
2475 0x000009C8, 0x00003F3F, 0x000009D5, 0x00003F3D,
2476 0x000009E1, 0x00003F3B, 0x000009EE, 0x00003F39,
2477 0x000009FA, 0x00003F37, 0x00000A07, 0x00003F35,
2478 0x00000A13, 0x00003F33, 0x00000A1F, 0x00003F31,
2479 0x00000A2C, 0x00003F2F, 0x00000A38, 0x00003F2D,
2480 0x00000A45, 0x00003F2B, 0x00000A51, 0x00003F29,
2481 0x00000A5D, 0x00003F27, 0x00000A6A, 0x00003F25,
2482 0x00000A76, 0x00003F23, 0x00000A83, 0x00003F21,
2483 0x00000A8F, 0x00003F1F, 0x00000A9B, 0x00003F1D,
2484 0x00000AA8, 0x00003F1B, 0x00000AB4, 0x00003F19,
2485 0x00000AC1, 0x00003F17, 0x00000ACD, 0x00003F14,
2486 0x00000AD9, 0x00003F12, 0x00000AE6, 0x00003F10,
2487 0x00000AF2, 0x00003F0E, 0x00000AFE, 0x00003F0C,
2488 0x00000B0B, 0x00003F0A, 0x00000B17, 0x00003F08,
2489 0x00000B24, 0x00003F05, 0x00000B30, 0x00003F03,
2490 0x00000B3C, 0x00003F01, 0x00000B49, 0x00003EFF,
2491 0x00000B55, 0x00003EFD, 0x00000B61, 0x00003EFA,
2492 0x00000B6E, 0x00003EF8, 0x00000B7A, 0x00003EF6,
2493 0x00000B87, 0x00003EF4, 0x00000B93, 0x00003EF1,
2494 0x00000B9F, 0x00003EEF, 0x00000BAC, 0x00003EED,
2495 0x00000BB8, 0x00003EEA, 0x00000BC4, 0x00003EE8,
2496 0x00000BD1, 0x00003EE6, 0x00000BDD, 0x00003EE3,
2497 0x00000BE9, 0x00003EE1, 0x00000BF6, 0x00003EDF,
2498 0x00000C02, 0x00003EDC, 0x00000C0E, 0x00003EDA,
2499 0x00000C1B, 0x00003ED8, 0x00000C27, 0x00003ED5,
2500 0x00000C33, 0x00003ED3, 0x00000C40, 0x00003ED1,
2501 0x00000C4C, 0x00003ECE, 0x00000C58, 0x00003ECC,
2502 0x00000C65, 0x00003EC9, 0x00000C71, 0x00003EC7,
2503 0x00000C7D, 0x00003EC4, 0x00000C8A, 0x00003EC2,
2504 0x00000C96, 0x00003EBF, 0x00000CA2, 0x00003EBD,
2505 0x00000CAF, 0x00003EBA, 0x00000CBB, 0x00003EB8,
2506 0x00000CC7, 0x00003EB5, 0x00000CD4, 0x00003EB3,
2507 0x00000CE0, 0x00003EB0, 0x00000CEC, 0x00003EAE,
2508 0x00000CF9, 0x00003EAB, 0x00000D05, 0x00003EA9,
2509 0x00000D11, 0x00003EA6, 0x00000D1D, 0x00003EA4,
2510 0x00000D2A, 0x00003EA1, 0x00000D36, 0x00003E9F,
2511 0x00000D42, 0x00003E9C, 0x00000D4F, 0x00003E99,
2512 0x00000D5B, 0x00003E97, 0x00000D67, 0x00003E94,
2513 0x00000D74, 0x00003E91, 0x00000D80, 0x00003E8F,
2514 0x00000D8C, 0x00003E8C, 0x00000D98, 0x00003E89,
2515 0x00000DA5, 0x00003E87, 0x00000DB1, 0x00003E84,
2516 0x00000DBD, 0x00003E81, 0x00000DC9, 0x00003E7F,
2517 0x00000DD6, 0x00003E7C, 0x00000DE2, 0x00003E79,
2518 0x00000DEE, 0x00003E77, 0x00000DFB, 0x00003E74,
2519 0x00000E07, 0x00003E71, 0x00000E13, 0x00003E6E,
2520 0x00000E1F, 0x00003E6C, 0x00000E2C, 0x00003E69,
2521 0x00000E38, 0x00003E66, 0x00000E44, 0x00003E63,
2522 0x00000E50, 0x00003E60, 0x00000E5D, 0x00003E5E,
2523 0x00000E69, 0x00003E5B, 0x00000E75, 0x00003E58,
2524 0x00000E81, 0x00003E55, 0x00000E8E, 0x00003E52,
2525 0x00000E9A, 0x00003E4F, 0x00000EA6, 0x00003E4C,
2526 0x00000EB2, 0x00003E4A, 0x00000EBE, 0x00003E47,
2527 0x00000ECB, 0x00003E44, 0x00000ED7, 0x00003E41,
2528 0x00000EE3, 0x00003E3E, 0x00000EEF, 0x00003E3B,
2529 0x00000EFC, 0x00003E38, 0x00000F08, 0x00003E35,
2530 0x00000F14, 0x00003E32, 0x00000F20, 0x00003E2F,
2531 0x00000F2C, 0x00003E2C, 0x00000F39, 0x00003E29,
2532 0x00000F45, 0x00003E26, 0x00000F51, 0x00003E23,
2533 0x00000F5D, 0x00003E20, 0x00000F69, 0x00003E1D,
2534 0x00000F76, 0x00003E1A, 0x00000F82, 0x00003E17,
2535 0x00000F8E, 0x00003E14, 0x00000F9A, 0x00003E11,
2536 0x00000FA6, 0x00003E0E, 0x00000FB3, 0x00003E0B,
2537 0x00000FBF, 0x00003E08, 0x00000FCB, 0x00003E05,
2538 0x00000FD7, 0x00003E02, 0x00000FE3, 0x00003DFF,
2539 0x00000FEF, 0x00003DFB, 0x00000FFC, 0x00003DF8,
2540 0x00001008, 0x00003DF5, 0x00001014, 0x00003DF2,
2541 0x00001020, 0x00003DEF, 0x0000102C, 0x00003DEC,
2542 0x00001038, 0x00003DE8, 0x00001045, 0x00003DE5,
2543 0x00001051, 0x00003DE2, 0x0000105D, 0x00003DDF,
2544 0x00001069, 0x00003DDC, 0x00001075, 0x00003DD8,
2545 0x00001081, 0x00003DD5, 0x0000108D, 0x00003DD2,
2546 0x0000109A, 0x00003DCF, 0x000010A6, 0x00003DCB,
2547 0x000010B2, 0x00003DC8, 0x000010BE, 0x00003DC5,
2548 0x000010CA, 0x00003DC2, 0x000010D6, 0x00003DBE,
2549 0x000010E2, 0x00003DBB, 0x000010EE, 0x00003DB8,
2550 0x000010FB, 0x00003DB4, 0x00001107, 0x00003DB1,
2551 0x00001113, 0x00003DAE, 0x0000111F, 0x00003DAA,
2552 0x0000112B, 0x00003DA7, 0x00001137, 0x00003DA3,
2553 0x00001143, 0x00003DA0, 0x0000114F, 0x00003D9D,
2554 0x0000115B, 0x00003D99, 0x00001168, 0x00003D96,
2555 0x00001174, 0x00003D92, 0x00001180, 0x00003D8F,
2556 0x0000118C, 0x00003D8C, 0x00001198, 0x00003D88,
2557 0x000011A4, 0x00003D85, 0x000011B0, 0x00003D81,
2558 0x000011BC, 0x00003D7E, 0x000011C8, 0x00003D7A,
2559 0x000011D4, 0x00003D77, 0x000011E0, 0x00003D73,
2560 0x000011EC, 0x00003D70, 0x000011F8, 0x00003D6C,
2561 0x00001205, 0x00003D69, 0x00001211, 0x00003D65,
2562 0x0000121D, 0x00003D62, 0x00001229, 0x00003D5E,
2563 0x00001235, 0x00003D5A, 0x00001241, 0x00003D57,
2564 0x0000124D, 0x00003D53, 0x00001259, 0x00003D50,
2565 0x00001265, 0x00003D4C, 0x00001271, 0x00003D48,
2566 0x0000127D, 0x00003D45, 0x00001289, 0x00003D41,
2567 0x00001295, 0x00003D3E, 0x000012A1, 0x00003D3A,
2568 0x000012AD, 0x00003D36, 0x000012B9, 0x00003D33,
2569 0x000012C5, 0x00003D2F, 0x000012D1, 0x00003D2B,
2570 0x000012DD, 0x00003D27, 0x000012E9, 0x00003D24,
2571 0x000012F5, 0x00003D20, 0x00001301, 0x00003D1C,
2572 0x0000130D, 0x00003D19, 0x00001319, 0x00003D15,
2573 0x00001325, 0x00003D11, 0x00001331, 0x00003D0D,
2574 0x0000133D, 0x00003D0A, 0x00001349, 0x00003D06,
2575 0x00001355, 0x00003D02, 0x00001361, 0x00003CFE,
2576 0x0000136D, 0x00003CFA, 0x00001379, 0x00003CF7,
2577 0x00001385, 0x00003CF3, 0x00001391, 0x00003CEF,
2578 0x0000139D, 0x00003CEB, 0x000013A9, 0x00003CE7,
2579 0x000013B5, 0x00003CE3, 0x000013C1, 0x00003CDF,
2580 0x000013CD, 0x00003CDC, 0x000013D9, 0x00003CD8,
2581 0x000013E5, 0x00003CD4, 0x000013F1, 0x00003CD0,
2582 0x000013FC, 0x00003CCC, 0x00001408, 0x00003CC8,
2583 0x00001414, 0x00003CC4, 0x00001420, 0x00003CC0,
2584 0x0000142C, 0x00003CBC, 0x00001438, 0x00003CB8,
2585 0x00001444, 0x00003CB4, 0x00001450, 0x00003CB0,
2586 0x0000145C, 0x00003CAC, 0x00001468, 0x00003CA8,
2587 0x00001474, 0x00003CA4, 0x00001480, 0x00003CA0,
2588 0x0000148C, 0x00003C9C, 0x00001497, 0x00003C98,
2589 0x000014A3, 0x00003C94, 0x000014AF, 0x00003C90,
2590 0x000014BB, 0x00003C8C, 0x000014C7, 0x00003C88,
2591 0x000014D3, 0x00003C84, 0x000014DF, 0x00003C80,
2592 0x000014EB, 0x00003C7C, 0x000014F7, 0x00003C78,
2593 0x00001502, 0x00003C73, 0x0000150E, 0x00003C6F,
2594 0x0000151A, 0x00003C6B, 0x00001526, 0x00003C67,
2595 0x00001532, 0x00003C63, 0x0000153E, 0x00003C5F,
2596 0x0000154A, 0x00003C5A, 0x00001555, 0x00003C56,
2597 0x00001561, 0x00003C52, 0x0000156D, 0x00003C4E,
2598 0x00001579, 0x00003C4A, 0x00001585, 0x00003C45,
2599 0x00001591, 0x00003C41, 0x0000159C, 0x00003C3D,
2600 0x000015A8, 0x00003C39, 0x000015B4, 0x00003C34,
2601 0x000015C0, 0x00003C30, 0x000015CC, 0x00003C2C,
2602 0x000015D8, 0x00003C28, 0x000015E3, 0x00003C23,
2603 0x000015EF, 0x00003C1F, 0x000015FB, 0x00003C1B,
2604 0x00001607, 0x00003C16, 0x00001613, 0x00003C12,
2605 0x0000161E, 0x00003C0E, 0x0000162A, 0x00003C09,
2606 0x00001636, 0x00003C05, 0x00001642, 0x00003C01,
2607 0x0000164D, 0x00003BFC, 0x00001659, 0x00003BF8,
2608 0x00001665, 0x00003BF4, 0x00001671, 0x00003BEF,
2609 0x0000167D, 0x00003BEB, 0x00001688, 0x00003BE6,
2610 0x00001694, 0x00003BE2, 0x000016A0, 0x00003BDD,
2611 0x000016AC, 0x00003BD9, 0x000016B7, 0x00003BD5,
2612 0x000016C3, 0x00003BD0, 0x000016CF, 0x00003BCC,
2613 0x000016DB, 0x00003BC7, 0x000016E6, 0x00003BC3,
2614 0x000016F2, 0x00003BBE, 0x000016FE, 0x00003BBA,
2615 0x00001709, 0x00003BB5, 0x00001715, 0x00003BB1,
2616 0x00001721, 0x00003BAC, 0x0000172D, 0x00003BA7,
2617 0x00001738, 0x00003BA3, 0x00001744, 0x00003B9E,
2618 0x00001750, 0x00003B9A, 0x0000175B, 0x00003B95,
2619 0x00001767, 0x00003B91, 0x00001773, 0x00003B8C,
2620 0x0000177F, 0x00003B87, 0x0000178A, 0x00003B83,
2621 0x00001796, 0x00003B7E, 0x000017A2, 0x00003B7A,
2622 0x000017AD, 0x00003B75, 0x000017B9, 0x00003B70,
2623 0x000017C5, 0x00003B6C, 0x000017D0, 0x00003B67,
2624 0x000017DC, 0x00003B62, 0x000017E8, 0x00003B5E,
2625 0x000017F3, 0x00003B59, 0x000017FF, 0x00003B54,
2626 0x0000180B, 0x00003B4F, 0x00001816, 0x00003B4B,
2627 0x00001822, 0x00003B46, 0x0000182D, 0x00003B41,
2628 0x00001839, 0x00003B3C, 0x00001845, 0x00003B38,
2629 0x00001850, 0x00003B33, 0x0000185C, 0x00003B2E,
2630 0x00001868, 0x00003B29, 0x00001873, 0x00003B25,
2631 0x0000187F, 0x00003B20, 0x0000188A, 0x00003B1B,
2632 0x00001896, 0x00003B16, 0x000018A2, 0x00003B11,
2633 0x000018AD, 0x00003B0C, 0x000018B9, 0x00003B08,
2634 0x000018C4, 0x00003B03, 0x000018D0, 0x00003AFE,
2635 0x000018DC, 0x00003AF9, 0x000018E7, 0x00003AF4,
2636 0x000018F3, 0x00003AEF, 0x000018FE, 0x00003AEA,
2637 0x0000190A, 0x00003AE5, 0x00001915, 0x00003AE0,
2638 0x00001921, 0x00003ADC, 0x0000192D, 0x00003AD7,
2639 0x00001938, 0x00003AD2, 0x00001944, 0x00003ACD,
2640 0x0000194F, 0x00003AC8, 0x0000195B, 0x00003AC3,
2641 0x00001966, 0x00003ABE, 0x00001972, 0x00003AB9,
2642 0x0000197D, 0x00003AB4, 0x00001989, 0x00003AAF,
2643 0x00001994, 0x00003AAA, 0x000019A0, 0x00003AA5,
2644 0x000019AB, 0x00003AA0, 0x000019B7, 0x00003A9B,
2645 0x000019C2, 0x00003A96, 0x000019CE, 0x00003A91,
2646 0x000019D9, 0x00003A8B, 0x000019E5, 0x00003A86,
2647 0x000019F0, 0x00003A81, 0x000019FC, 0x00003A7C,
2648 0x00001A07, 0x00003A77, 0x00001A13, 0x00003A72,
2649 0x00001A1E, 0x00003A6D, 0x00001A2A, 0x00003A68,
2650 0x00001A35, 0x00003A63, 0x00001A41, 0x00003A5D,
2651 0x00001A4C, 0x00003A58, 0x00001A58, 0x00003A53,
2652 0x00001A63, 0x00003A4E, 0x00001A6F, 0x00003A49,
2653 0x00001A7A, 0x00003A44, 0x00001A85, 0x00003A3E,
2654 0x00001A91, 0x00003A39, 0x00001A9C, 0x00003A34,
2655 0x00001AA8, 0x00003A2F, 0x00001AB3, 0x00003A29,
2656 0x00001ABF, 0x00003A24, 0x00001ACA, 0x00003A1F,
2657 0x00001AD5, 0x00003A1A, 0x00001AE1, 0x00003A14,
2658 0x00001AEC, 0x00003A0F, 0x00001AF8, 0x00003A0A,
2659 0x00001B03, 0x00003A05, 0x00001B0E, 0x000039FF,
2660 0x00001B1A, 0x000039FA, 0x00001B25, 0x000039F5,
2661 0x00001B31, 0x000039EF, 0x00001B3C, 0x000039EA,
2662 0x00001B47, 0x000039E5, 0x00001B53, 0x000039DF,
2663 0x00001B5E, 0x000039DA, 0x00001B69, 0x000039D4,
2664 0x00001B75, 0x000039CF, 0x00001B80, 0x000039CA,
2665 0x00001B8B, 0x000039C4, 0x00001B97, 0x000039BF,
2666 0x00001BA2, 0x000039B9, 0x00001BAD, 0x000039B4,
2667 0x00001BB9, 0x000039AF, 0x00001BC4, 0x000039A9,
2668 0x00001BCF, 0x000039A4, 0x00001BDB, 0x0000399E,
2669 0x00001BE6, 0x00003999, 0x00001BF1, 0x00003993,
2670 0x00001BFD, 0x0000398E, 0x00001C08, 0x00003988,
2671 0x00001C13, 0x00003983, 0x00001C1E, 0x0000397D,
2672 0x00001C2A, 0x00003978, 0x00001C35, 0x00003972,
2673 0x00001C40, 0x0000396D, 0x00001C4C, 0x00003967,
2674 0x00001C57, 0x00003961, 0x00001C62, 0x0000395C,
2675 0x00001C6D, 0x00003956, 0x00001C79, 0x00003951,
2676 0x00001C84, 0x0000394B, 0x00001C8F, 0x00003946,
2677 0x00001C9A, 0x00003940, 0x00001CA6, 0x0000393A,
2678 0x00001CB1, 0x00003935, 0x00001CBC, 0x0000392F,
2679 0x00001CC7, 0x00003929, 0x00001CD3, 0x00003924,
2680 0x00001CDE, 0x0000391E, 0x00001CE9, 0x00003918,
2681 0x00001CF4, 0x00003913, 0x00001CFF, 0x0000390D,
2682 0x00001D0B, 0x00003907, 0x00001D16, 0x00003902,
2683 0x00001D21, 0x000038FC, 0x00001D2C, 0x000038F6,
2684 0x00001D37, 0x000038F0, 0x00001D43, 0x000038EB,
2685 0x00001D4E, 0x000038E5, 0x00001D59, 0x000038DF,
2686 0x00001D64, 0x000038D9, 0x00001D6F, 0x000038D4,
2687 0x00001D7A, 0x000038CE, 0x00001D86, 0x000038C8,
2688 0x00001D91, 0x000038C2, 0x00001D9C, 0x000038BC,
2689 0x00001DA7, 0x000038B7, 0x00001DB2, 0x000038B1,
2690 0x00001DBD, 0x000038AB, 0x00001DC8, 0x000038A5,
2691 0x00001DD3, 0x0000389F, 0x00001DDF, 0x00003899,
2692 0x00001DEA, 0x00003894, 0x00001DF5, 0x0000388E,
2693 0x00001E00, 0x00003888, 0x00001E0B, 0x00003882,
2694 0x00001E16, 0x0000387C, 0x00001E21, 0x00003876,
2695 0x00001E2C, 0x00003870, 0x00001E37, 0x0000386A,
2696 0x00001E42, 0x00003864, 0x00001E4D, 0x0000385E,
2697 0x00001E59, 0x00003858, 0x00001E64, 0x00003852,
2698 0x00001E6F, 0x0000384C, 0x00001E7A, 0x00003846,
2699 0x00001E85, 0x00003840, 0x00001E90, 0x0000383A,
2700 0x00001E9B, 0x00003834, 0x00001EA6, 0x0000382E,
2701 0x00001EB1, 0x00003828, 0x00001EBC, 0x00003822,
2702 0x00001EC7, 0x0000381C, 0x00001ED2, 0x00003816,
2703 0x00001EDD, 0x00003810, 0x00001EE8, 0x0000380A,
2704 0x00001EF3, 0x00003804, 0x00001EFE, 0x000037FE,
2705 0x00001F09, 0x000037F8, 0x00001F14, 0x000037F2,
2706 0x00001F1F, 0x000037EC, 0x00001F2A, 0x000037E6,
2707 0x00001F35, 0x000037E0, 0x00001F40, 0x000037D9,
2708 0x00001F4B, 0x000037D3, 0x00001F56, 0x000037CD,
2709 0x00001F61, 0x000037C7, 0x00001F6C, 0x000037C1,
2710 0x00001F77, 0x000037BB, 0x00001F82, 0x000037B4,
2711 0x00001F8D, 0x000037AE, 0x00001F97, 0x000037A8,
2712 0x00001FA2, 0x000037A2, 0x00001FAD, 0x0000379C,
2713 0x00001FB8, 0x00003795, 0x00001FC3, 0x0000378F,
2714 0x00001FCE, 0x00003789, 0x00001FD9, 0x00003783,
2715 0x00001FE4, 0x0000377C, 0x00001FEF, 0x00003776,
2716 0x00001FFA, 0x00003770, 0x00002004, 0x0000376A,
2717 0x0000200F, 0x00003763, 0x0000201A, 0x0000375D,
2718 0x00002025, 0x00003757, 0x00002030, 0x00003750,
2719 0x0000203B, 0x0000374A, 0x00002046, 0x00003744,
2720 0x00002051, 0x0000373D, 0x0000205B, 0x00003737,
2721 0x00002066, 0x00003731, 0x00002071, 0x0000372A,
2722 0x0000207C, 0x00003724, 0x00002087, 0x0000371E,
2723 0x00002092, 0x00003717, 0x0000209C, 0x00003711,
2724 0x000020A7, 0x0000370A, 0x000020B2, 0x00003704,
2725 0x000020BD, 0x000036FD, 0x000020C8, 0x000036F7,
2726 0x000020D2, 0x000036F1, 0x000020DD, 0x000036EA,
2727 0x000020E8, 0x000036E4, 0x000020F3, 0x000036DD,
2728 0x000020FD, 0x000036D7, 0x00002108, 0x000036D0,
2729 0x00002113, 0x000036CA, 0x0000211E, 0x000036C3,
2730 0x00002128, 0x000036BD, 0x00002133, 0x000036B6,
2731 0x0000213E, 0x000036B0, 0x00002149, 0x000036A9,
2732 0x00002153, 0x000036A3, 0x0000215E, 0x0000369C,
2733 0x00002169, 0x00003696, 0x00002174, 0x0000368F,
2734 0x0000217E, 0x00003688, 0x00002189, 0x00003682,
2735 0x00002194, 0x0000367B, 0x0000219E, 0x00003675,
2736 0x000021A9, 0x0000366E, 0x000021B4, 0x00003667,
2737 0x000021BE, 0x00003661, 0x000021C9, 0x0000365A,
2738 0x000021D4, 0x00003654, 0x000021DE, 0x0000364D,
2739 0x000021E9, 0x00003646, 0x000021F4, 0x00003640,
2740 0x000021FE, 0x00003639, 0x00002209, 0x00003632,
2741 0x00002214, 0x0000362C, 0x0000221E, 0x00003625,
2742 0x00002229, 0x0000361E, 0x00002234, 0x00003617,
2743 0x0000223E, 0x00003611, 0x00002249, 0x0000360A,
2744 0x00002253, 0x00003603, 0x0000225E, 0x000035FD,
2745 0x00002269, 0x000035F6, 0x00002273, 0x000035EF,
2746 0x0000227E, 0x000035E8, 0x00002288, 0x000035E1,
2747 0x00002293, 0x000035DB, 0x0000229E, 0x000035D4,
2748 0x000022A8, 0x000035CD, 0x000022B3, 0x000035C6,
2749 0x000022BD, 0x000035BF, 0x000022C8, 0x000035B9,
2750 0x000022D2, 0x000035B2, 0x000022DD, 0x000035AB,
2751 0x000022E7, 0x000035A4, 0x000022F2, 0x0000359D,
2752 0x000022FC, 0x00003596, 0x00002307, 0x00003590,
2753 0x00002312, 0x00003589, 0x0000231C, 0x00003582,
2754 0x00002327, 0x0000357B, 0x00002331, 0x00003574,
2755 0x0000233C, 0x0000356D, 0x00002346, 0x00003566,
2756 0x00002350, 0x0000355F, 0x0000235B, 0x00003558,
2757 0x00002365, 0x00003551, 0x00002370, 0x0000354A,
2758 0x0000237A, 0x00003543, 0x00002385, 0x0000353C,
2759 0x0000238F, 0x00003535, 0x0000239A, 0x0000352E,
2760 0x000023A4, 0x00003527, 0x000023AF, 0x00003520,
2761 0x000023B9, 0x00003519, 0x000023C3, 0x00003512,
2762 0x000023CE, 0x0000350B, 0x000023D8, 0x00003504,
2763 0x000023E3, 0x000034FD, 0x000023ED, 0x000034F6,
2764 0x000023F7, 0x000034EF, 0x00002402, 0x000034E8,
2765 0x0000240C, 0x000034E1, 0x00002417, 0x000034DA,
2766 0x00002421, 0x000034D3, 0x0000242B, 0x000034CC,
2767 0x00002436, 0x000034C5, 0x00002440, 0x000034BE,
2768 0x0000244A, 0x000034B6, 0x00002455, 0x000034AF,
2769 0x0000245F, 0x000034A8, 0x00002469, 0x000034A1,
2770 0x00002474, 0x0000349A, 0x0000247E, 0x00003493,
2771 0x00002488, 0x0000348C, 0x00002493, 0x00003484,
2772 0x0000249D, 0x0000347D, 0x000024A7, 0x00003476,
2773 0x000024B2, 0x0000346F, 0x000024BC, 0x00003468,
2774 0x000024C6, 0x00003460, 0x000024D1, 0x00003459,
2775 0x000024DB, 0x00003452, 0x000024E5, 0x0000344B,
2776 0x000024EF, 0x00003443, 0x000024FA, 0x0000343C,
2777 0x00002504, 0x00003435, 0x0000250E, 0x0000342E,
2778 0x00002518, 0x00003426, 0x00002523, 0x0000341F,
2779 0x0000252D, 0x00003418, 0x00002537, 0x00003410,
2780 0x00002541, 0x00003409, 0x0000254B, 0x00003402,
2781 0x00002556, 0x000033FA, 0x00002560, 0x000033F3,
2782 0x0000256A, 0x000033EC, 0x00002574, 0x000033E4,
2783 0x0000257E, 0x000033DD, 0x00002589, 0x000033D6,
2784 0x00002593, 0x000033CE, 0x0000259D, 0x000033C7,
2785 0x000025A7, 0x000033C0, 0x000025B1, 0x000033B8,
2786 0x000025BB, 0x000033B1, 0x000025C6, 0x000033A9,
2787 0x000025D0, 0x000033A2, 0x000025DA, 0x0000339B,
2788 0x000025E4, 0x00003393, 0x000025EE, 0x0000338C,
2789 0x000025F8, 0x00003384, 0x00002602, 0x0000337D,
2790 0x0000260D, 0x00003375, 0x00002617, 0x0000336E,
2791 0x00002621, 0x00003366, 0x0000262B, 0x0000335F,
2792 0x00002635, 0x00003357, 0x0000263F, 0x00003350,
2793 0x00002649, 0x00003348, 0x00002653, 0x00003341,
2794 0x0000265D, 0x00003339, 0x00002667, 0x00003332,
2795 0x00002671, 0x0000332A, 0x0000267B, 0x00003323,
2796 0x00002685, 0x0000331B, 0x0000268F, 0x00003313,
2797 0x00002699, 0x0000330C, 0x000026A3, 0x00003304,
2798 0x000026AD, 0x000032FD, 0x000026B7, 0x000032F5,
2799 0x000026C1, 0x000032EE, 0x000026CB, 0x000032E6,
2800 0x000026D5, 0x000032DE, 0x000026DF, 0x000032D7,
2801 0x000026E9, 0x000032CF, 0x000026F3, 0x000032C7,
2802 0x000026FD, 0x000032C0, 0x00002707, 0x000032B8,
2803 0x00002711, 0x000032B0, 0x0000271B, 0x000032A9,
2804 0x00002725, 0x000032A1, 0x0000272F, 0x00003299,
2805 0x00002739, 0x00003292, 0x00002743, 0x0000328A,
2806 0x0000274D, 0x00003282, 0x00002757, 0x0000327B,
2807 0x00002761, 0x00003273, 0x0000276B, 0x0000326B,
2808 0x00002774, 0x00003263, 0x0000277E, 0x0000325C,
2809 0x00002788, 0x00003254, 0x00002792, 0x0000324C,
2810 0x0000279C, 0x00003244, 0x000027A6, 0x0000323C,
2811 0x000027B0, 0x00003235, 0x000027BA, 0x0000322D,
2812 0x000027C3, 0x00003225, 0x000027CD, 0x0000321D,
2813 0x000027D7, 0x00003215, 0x000027E1, 0x0000320E,
2814 0x000027EB, 0x00003206, 0x000027F5, 0x000031FE,
2815 0x000027FE, 0x000031F6, 0x00002808, 0x000031EE,
2816 0x00002812, 0x000031E6, 0x0000281C, 0x000031DF,
2817 0x00002826, 0x000031D7, 0x0000282F, 0x000031CF,
2818 0x00002839, 0x000031C7, 0x00002843, 0x000031BF,
2819 0x0000284D, 0x000031B7, 0x00002856, 0x000031AF,
2820 0x00002860, 0x000031A7, 0x0000286A, 0x0000319F,
2821 0x00002874, 0x00003197, 0x0000287D, 0x0000318F,
2822 0x00002887, 0x00003187, 0x00002891, 0x0000317F,
2823 0x0000289B, 0x00003178, 0x000028A4, 0x00003170,
2824 0x000028AE, 0x00003168, 0x000028B8, 0x00003160,
2825 0x000028C1, 0x00003158, 0x000028CB, 0x00003150,
2826 0x000028D5, 0x00003148, 0x000028DE, 0x00003140,
2827 0x000028E8, 0x00003137, 0x000028F2, 0x0000312F,
2828 0x000028FB, 0x00003127, 0x00002905, 0x0000311F,
2829 0x0000290F, 0x00003117, 0x00002918, 0x0000310F,
2830 0x00002922, 0x00003107, 0x0000292C, 0x000030FF,
2831 0x00002935, 0x000030F7, 0x0000293F, 0x000030EF,
2832 0x00002948, 0x000030E7, 0x00002952, 0x000030DF,
2833 0x0000295C, 0x000030D7, 0x00002965, 0x000030CE,
2834 0x0000296F, 0x000030C6, 0x00002978, 0x000030BE,
2835 0x00002982, 0x000030B6, 0x0000298C, 0x000030AE,
2836 0x00002995, 0x000030A6, 0x0000299F, 0x0000309E,
2837 0x000029A8, 0x00003095, 0x000029B2, 0x0000308D,
2838 0x000029BB, 0x00003085, 0x000029C5, 0x0000307D,
2839 0x000029CE, 0x00003075, 0x000029D8, 0x0000306C,
2840 0x000029E1, 0x00003064, 0x000029EB, 0x0000305C,
2841 0x000029F4, 0x00003054, 0x000029FE, 0x0000304B,
2842 0x00002A07, 0x00003043, 0x00002A11, 0x0000303B,
2843 0x00002A1A, 0x00003033, 0x00002A24, 0x0000302A,
2844 0x00002A2D, 0x00003022, 0x00002A37, 0x0000301A,
2845 0x00002A40, 0x00003012, 0x00002A49, 0x00003009,
2846 0x00002A53, 0x00003001, 0x00002A5C, 0x00002FF9,
2847 0x00002A66, 0x00002FF0, 0x00002A6F, 0x00002FE8,
2848 0x00002A79, 0x00002FE0, 0x00002A82, 0x00002FD7,
2849 0x00002A8B, 0x00002FCF, 0x00002A95, 0x00002FC7,
2850 0x00002A9E, 0x00002FBE, 0x00002AA7, 0x00002FB6,
2851 0x00002AB1, 0x00002FAD, 0x00002ABA, 0x00002FA5,
2852 0x00002AC4, 0x00002F9D, 0x00002ACD, 0x00002F94,
2853 0x00002AD6, 0x00002F8C, 0x00002AE0, 0x00002F83,
2854 0x00002AE9, 0x00002F7B, 0x00002AF2, 0x00002F73,
2855 0x00002AFB, 0x00002F6A, 0x00002B05, 0x00002F62,
2856 0x00002B0E, 0x00002F59, 0x00002B17, 0x00002F51,
2857 0x00002B21, 0x00002F48, 0x00002B2A, 0x00002F40,
2858 0x00002B33, 0x00002F37, 0x00002B3C, 0x00002F2F,
2859 0x00002B46, 0x00002F26, 0x00002B4F, 0x00002F1E,
2860 0x00002B58, 0x00002F15, 0x00002B62, 0x00002F0D,
2861 0x00002B6B, 0x00002F04, 0x00002B74, 0x00002EFC,
2862 0x00002B7D, 0x00002EF3, 0x00002B86, 0x00002EEB,
2863 0x00002B90, 0x00002EE2, 0x00002B99, 0x00002EDA,
2864 0x00002BA2, 0x00002ED1, 0x00002BAB, 0x00002EC9,
2865 0x00002BB4, 0x00002EC0, 0x00002BBE, 0x00002EB7,
2866 0x00002BC7, 0x00002EAF, 0x00002BD0, 0x00002EA6,
2867 0x00002BD9, 0x00002E9E, 0x00002BE2, 0x00002E95,
2868 0x00002BEB, 0x00002E8C, 0x00002BF4, 0x00002E84,
2869 0x00002BFE, 0x00002E7B, 0x00002C07, 0x00002E72,
2870 0x00002C10, 0x00002E6A, 0x00002C19, 0x00002E61,
2871 0x00002C22, 0x00002E58, 0x00002C2B, 0x00002E50,
2872 0x00002C34, 0x00002E47, 0x00002C3D, 0x00002E3E,
2873 0x00002C46, 0x00002E36, 0x00002C4F, 0x00002E2D,
2874 0x00002C59, 0x00002E24, 0x00002C62, 0x00002E1C,
2875 0x00002C6B, 0x00002E13, 0x00002C74, 0x00002E0A,
2876 0x00002C7D, 0x00002E01, 0x00002C86, 0x00002DF9,
2877 0x00002C8F, 0x00002DF0, 0x00002C98, 0x00002DE7,
2878 0x00002CA1, 0x00002DDE, 0x00002CAA, 0x00002DD6,
2879 0x00002CB3, 0x00002DCD, 0x00002CBC, 0x00002DC4,
2880 0x00002CC5, 0x00002DBB, 0x00002CCE, 0x00002DB3,
2881 0x00002CD7, 0x00002DAA, 0x00002CE0, 0x00002DA1,
2882 0x00002CE9, 0x00002D98, 0x00002CF2, 0x00002D8F,
2883 0x00002CFB, 0x00002D87, 0x00002D03, 0x00002D7E,
2884 0x00002D0C, 0x00002D75, 0x00002D15, 0x00002D6C,
2885 0x00002D1E, 0x00002D63, 0x00002D27, 0x00002D5A,
2886 0x00002D30, 0x00002D51, 0x00002D39, 0x00002D49,
2887 0x00002D42, 0x00002D40, 0x00002D4B, 0x00002D37,
2888 0x00002D54, 0x00002D2E, 0x00002D5C, 0x00002D25,
2889 0x00002D65, 0x00002D1C, 0x00002D6E, 0x00002D13,
2890 0x00002D77, 0x00002D0A, 0x00002D80, 0x00002D01,
2891 0x00002D89, 0x00002CF8, 0x00002D92, 0x00002CEF,
2892 0x00002D9A, 0x00002CE6, 0x00002DA3, 0x00002CDD,
2893 0x00002DAC, 0x00002CD4, 0x00002DB5, 0x00002CCC,
2894 0x00002DBE, 0x00002CC3, 0x00002DC6, 0x00002CBA,
2895 0x00002DCF, 0x00002CB1, 0x00002DD8, 0x00002CA8,
2896 0x00002DE1, 0x00002C9F, 0x00002DE9, 0x00002C96,
2897 0x00002DF2, 0x00002C8D, 0x00002DFB, 0x00002C84,
2898 0x00002E04, 0x00002C7A, 0x00002E0C, 0x00002C71,
2899 0x00002E15, 0x00002C68, 0x00002E1E, 0x00002C5F,
2900 0x00002E27, 0x00002C56, 0x00002E2F, 0x00002C4D,
2901 0x00002E38, 0x00002C44, 0x00002E41, 0x00002C3B,
2902 0x00002E49, 0x00002C32, 0x00002E52, 0x00002C29,
2903 0x00002E5B, 0x00002C20, 0x00002E63, 0x00002C17,
2904 0x00002E6C, 0x00002C0E, 0x00002E75, 0x00002C04,
2905 0x00002E7D, 0x00002BFB, 0x00002E86, 0x00002BF2,
2906 0x00002E8F, 0x00002BE9, 0x00002E97, 0x00002BE0,
2907 0x00002EA0, 0x00002BD7, 0x00002EA8, 0x00002BCE,
2908 0x00002EB1, 0x00002BC4, 0x00002EBA, 0x00002BBB,
2909 0x00002EC2, 0x00002BB2, 0x00002ECB, 0x00002BA9,
2910 0x00002ED3, 0x00002BA0, 0x00002EDC, 0x00002B97,
2911 0x00002EE4, 0x00002B8D, 0x00002EED, 0x00002B84,
2912 0x00002EF5, 0x00002B7B, 0x00002EFE, 0x00002B72,
2913 0x00002F07, 0x00002B68, 0x00002F0F, 0x00002B5F,
2914 0x00002F18, 0x00002B56, 0x00002F20, 0x00002B4D,
2915 0x00002F29, 0x00002B43, 0x00002F31, 0x00002B3A,
2916 0x00002F3A, 0x00002B31, 0x00002F42, 0x00002B28,
2917 0x00002F4A, 0x00002B1E, 0x00002F53, 0x00002B15,
2918 0x00002F5B, 0x00002B0C, 0x00002F64, 0x00002B02,
2919 0x00002F6C, 0x00002AF9, 0x00002F75, 0x00002AF0,
2920 0x00002F7D, 0x00002AE7, 0x00002F86, 0x00002ADD,
2921 0x00002F8E, 0x00002AD4, 0x00002F96, 0x00002ACB,
2922 0x00002F9F, 0x00002AC1, 0x00002FA7, 0x00002AB8,
2923 0x00002FB0, 0x00002AAE, 0x00002FB8, 0x00002AA5,
2924 0x00002FC0, 0x00002A9C, 0x00002FC9, 0x00002A92,
2925 0x00002FD1, 0x00002A89, 0x00002FD9, 0x00002A80,
2926 0x00002FE2, 0x00002A76, 0x00002FEA, 0x00002A6D,
2927 0x00002FF2, 0x00002A63, 0x00002FFB, 0x00002A5A,
2928 0x00003003, 0x00002A51, 0x0000300B, 0x00002A47,
2929 0x00003014, 0x00002A3E, 0x0000301C, 0x00002A34,
2930 0x00003024, 0x00002A2B, 0x0000302C, 0x00002A21,
2931 0x00003035, 0x00002A18, 0x0000303D, 0x00002A0E,
2932 0x00003045, 0x00002A05, 0x0000304E, 0x000029FB,
2933 0x00003056, 0x000029F2, 0x0000305E, 0x000029E8,
2934 0x00003066, 0x000029DF, 0x0000306E, 0x000029D5,
2935 0x00003077, 0x000029CC, 0x0000307F, 0x000029C2,
2936 0x00003087, 0x000029B9, 0x0000308F, 0x000029AF,
2937 0x00003097, 0x000029A6, 0x000030A0, 0x0000299C,
2938 0x000030A8, 0x00002993, 0x000030B0, 0x00002989,
2939 0x000030B8, 0x00002980, 0x000030C0, 0x00002976,
2940 0x000030C8, 0x0000296C, 0x000030D0, 0x00002963,
2941 0x000030D9, 0x00002959, 0x000030E1, 0x00002950,
2942 0x000030E9, 0x00002946, 0x000030F1, 0x0000293C,
2943 0x000030F9, 0x00002933, 0x00003101, 0x00002929,
2944 0x00003109, 0x00002920, 0x00003111, 0x00002916,
2945 0x00003119, 0x0000290C, 0x00003121, 0x00002903,
2946 0x00003129, 0x000028F9, 0x00003131, 0x000028EF,
2947 0x00003139, 0x000028E6, 0x00003142, 0x000028DC,
2948 0x0000314A, 0x000028D2, 0x00003152, 0x000028C9,
2949 0x0000315A, 0x000028BF, 0x00003162, 0x000028B5,
2950 0x0000316A, 0x000028AC, 0x00003172, 0x000028A2,
2951 0x0000317A, 0x00002898, 0x00003181, 0x0000288E,
2952 0x00003189, 0x00002885, 0x00003191, 0x0000287B,
2953 0x00003199, 0x00002871, 0x000031A1, 0x00002868,
2954 0x000031A9, 0x0000285E, 0x000031B1, 0x00002854,
2955 0x000031B9, 0x0000284A, 0x000031C1, 0x00002841,
2956 0x000031C9, 0x00002837, 0x000031D1, 0x0000282D,
2957 0x000031D9, 0x00002823, 0x000031E0, 0x00002819,
2958 0x000031E8, 0x00002810, 0x000031F0, 0x00002806,
2959 0x000031F8, 0x000027FC, 0x00003200, 0x000027F2,
2960 0x00003208, 0x000027E8, 0x00003210, 0x000027DF,
2961 0x00003217, 0x000027D5, 0x0000321F, 0x000027CB,
2962 0x00003227, 0x000027C1, 0x0000322F, 0x000027B7,
2963 0x00003237, 0x000027AD, 0x0000323E, 0x000027A3,
2964 0x00003246, 0x0000279A, 0x0000324E, 0x00002790,
2965 0x00003256, 0x00002786, 0x0000325E, 0x0000277C,
2966 0x00003265, 0x00002772, 0x0000326D, 0x00002768,
2967 0x00003275, 0x0000275E, 0x0000327C, 0x00002754,
2968 0x00003284, 0x0000274A, 0x0000328C, 0x00002740,
2969 0x00003294, 0x00002737, 0x0000329B, 0x0000272D,
2970 0x000032A3, 0x00002723, 0x000032AB, 0x00002719,
2971 0x000032B2, 0x0000270F, 0x000032BA, 0x00002705,
2972 0x000032C2, 0x000026FB, 0x000032C9, 0x000026F1,
2973 0x000032D1, 0x000026E7, 0x000032D9, 0x000026DD,
2974 0x000032E0, 0x000026D3, 0x000032E8, 0x000026C9,
2975 0x000032EF, 0x000026BF, 0x000032F7, 0x000026B5,
2976 0x000032FF, 0x000026AB, 0x00003306, 0x000026A1,
2977 0x0000330E, 0x00002697, 0x00003315, 0x0000268D,
2978 0x0000331D, 0x00002683, 0x00003325, 0x00002679,
2979 0x0000332C, 0x0000266F, 0x00003334, 0x00002665,
2980 0x0000333B, 0x0000265B, 0x00003343, 0x00002651,
2981 0x0000334A, 0x00002647, 0x00003352, 0x0000263C,
2982 0x00003359, 0x00002632, 0x00003361, 0x00002628,
2983 0x00003368, 0x0000261E, 0x00003370, 0x00002614,
2984 0x00003377, 0x0000260A, 0x0000337F, 0x00002600,
2985 0x00003386, 0x000025F6, 0x0000338E, 0x000025EC,
2986 0x00003395, 0x000025E2, 0x0000339C, 0x000025D7,
2987 0x000033A4, 0x000025CD, 0x000033AB, 0x000025C3,
2988 0x000033B3, 0x000025B9, 0x000033BA, 0x000025AF,
2989 0x000033C1, 0x000025A5, 0x000033C9, 0x0000259A,
2990 0x000033D0, 0x00002590, 0x000033D8, 0x00002586,
2991 0x000033DF, 0x0000257C, 0x000033E6, 0x00002572,
2992 0x000033EE, 0x00002568, 0x000033F5, 0x0000255D,
2993 0x000033FC, 0x00002553, 0x00003404, 0x00002549,
2994 0x0000340B, 0x0000253F, 0x00003412, 0x00002535,
2995 0x0000341A, 0x0000252A, 0x00003421, 0x00002520,
2996 0x00003428, 0x00002516, 0x0000342F, 0x0000250C,
2997 0x00003437, 0x00002501, 0x0000343E, 0x000024F7,
2998 0x00003445, 0x000024ED, 0x0000344C, 0x000024E3,
2999 0x00003454, 0x000024D8, 0x0000345B, 0x000024CE,
3000 0x00003462, 0x000024C4, 0x00003469, 0x000024B9,
3001 0x00003471, 0x000024AF, 0x00003478, 0x000024A5,
3002 0x0000347F, 0x0000249B, 0x00003486, 0x00002490,
3003 0x0000348D, 0x00002486, 0x00003495, 0x0000247C,
3004 0x0000349C, 0x00002471, 0x000034A3, 0x00002467,
3005 0x000034AA, 0x0000245D, 0x000034B1, 0x00002452,
3006 0x000034B8, 0x00002448, 0x000034BF, 0x0000243E,
3007 0x000034C6, 0x00002433, 0x000034CE, 0x00002429,
3008 0x000034D5, 0x0000241E, 0x000034DC, 0x00002414,
3009 0x000034E3, 0x0000240A, 0x000034EA, 0x000023FF,
3010 0x000034F1, 0x000023F5, 0x000034F8, 0x000023EA,
3011 0x000034FF, 0x000023E0, 0x00003506, 0x000023D6,
3012 0x0000350D, 0x000023CB, 0x00003514, 0x000023C1,
3013 0x0000351B, 0x000023B6, 0x00003522, 0x000023AC,
3014 0x00003529, 0x000023A2, 0x00003530, 0x00002397,
3015 0x00003537, 0x0000238D, 0x0000353E, 0x00002382,
3016 0x00003545, 0x00002378, 0x0000354C, 0x0000236D,
3017 0x00003553, 0x00002363, 0x0000355A, 0x00002358,
3018 0x00003561, 0x0000234E, 0x00003568, 0x00002343,
3019 0x0000356F, 0x00002339, 0x00003576, 0x0000232E,
3020 0x0000357D, 0x00002324, 0x00003583, 0x00002319,
3021 0x0000358A, 0x0000230F, 0x00003591, 0x00002304,
3022 0x00003598, 0x000022FA, 0x0000359F, 0x000022EF,
3023 0x000035A6, 0x000022E5, 0x000035AD, 0x000022DA,
3024 0x000035B4, 0x000022D0, 0x000035BA, 0x000022C5,
3025 0x000035C1, 0x000022BB, 0x000035C8, 0x000022B0,
3026 0x000035CF, 0x000022A5, 0x000035D6, 0x0000229B,
3027 0x000035DC, 0x00002290, 0x000035E3, 0x00002286,
3028 0x000035EA, 0x0000227B, 0x000035F1, 0x00002271,
3029 0x000035F7, 0x00002266, 0x000035FE, 0x0000225B,
3030 0x00003605, 0x00002251, 0x0000360C, 0x00002246,
3031 0x00003612, 0x0000223C, 0x00003619, 0x00002231,
3032 0x00003620, 0x00002226, 0x00003627, 0x0000221C,
3033 0x0000362D, 0x00002211, 0x00003634, 0x00002206,
3034 0x0000363B, 0x000021FC, 0x00003641, 0x000021F1,
3035 0x00003648, 0x000021E6, 0x0000364F, 0x000021DC,
3036 0x00003655, 0x000021D1, 0x0000365C, 0x000021C6,
3037 0x00003662, 0x000021BC, 0x00003669, 0x000021B1,
3038 0x00003670, 0x000021A6, 0x00003676, 0x0000219C,
3039 0x0000367D, 0x00002191, 0x00003684, 0x00002186,
3040 0x0000368A, 0x0000217C, 0x00003691, 0x00002171,
3041 0x00003697, 0x00002166, 0x0000369E, 0x0000215B,
3042 0x000036A4, 0x00002151, 0x000036AB, 0x00002146,
3043 0x000036B1, 0x0000213B, 0x000036B8, 0x00002131,
3044 0x000036BE, 0x00002126, 0x000036C5, 0x0000211B,
3045 0x000036CB, 0x00002110, 0x000036D2, 0x00002106,
3046 0x000036D8, 0x000020FB, 0x000036DF, 0x000020F0,
3047 0x000036E5, 0x000020E5, 0x000036EC, 0x000020DA,
3048 0x000036F2, 0x000020D0, 0x000036F9, 0x000020C5,
3049 0x000036FF, 0x000020BA, 0x00003706, 0x000020AF,
3050 0x0000370C, 0x000020A4, 0x00003712, 0x0000209A,
3051 0x00003719, 0x0000208F, 0x0000371F, 0x00002084,
3052 0x00003726, 0x00002079, 0x0000372C, 0x0000206E,
3053 0x00003732, 0x00002064, 0x00003739, 0x00002059,
3054 0x0000373F, 0x0000204E, 0x00003745, 0x00002043,
3055 0x0000374C, 0x00002038, 0x00003752, 0x0000202D,
3056 0x00003758, 0x00002022, 0x0000375F, 0x00002018,
3057 0x00003765, 0x0000200D, 0x0000376B, 0x00002002,
3058 0x00003771, 0x00001FF7, 0x00003778, 0x00001FEC,
3059 0x0000377E, 0x00001FE1, 0x00003784, 0x00001FD6,
3060 0x0000378A, 0x00001FCB, 0x00003791, 0x00001FC0,
3061 0x00003797, 0x00001FB5, 0x0000379D, 0x00001FAB,
3062 0x000037A3, 0x00001FA0, 0x000037AA, 0x00001F95,
3063 0x000037B0, 0x00001F8A, 0x000037B6, 0x00001F7F,
3064 0x000037BC, 0x00001F74, 0x000037C2, 0x00001F69,
3065 0x000037C8, 0x00001F5E, 0x000037CF, 0x00001F53,
3066 0x000037D5, 0x00001F48, 0x000037DB, 0x00001F3D,
3067 0x000037E1, 0x00001F32, 0x000037E7, 0x00001F27,
3068 0x000037ED, 0x00001F1C, 0x000037F3, 0x00001F11,
3069 0x000037F9, 0x00001F06, 0x00003800, 0x00001EFB,
3070 0x00003806, 0x00001EF0, 0x0000380C, 0x00001EE5,
3071 0x00003812, 0x00001EDA, 0x00003818, 0x00001ECF,
3072 0x0000381E, 0x00001EC4, 0x00003824, 0x00001EB9,
3073 0x0000382A, 0x00001EAE, 0x00003830, 0x00001EA3,
3074 0x00003836, 0x00001E98, 0x0000383C, 0x00001E8D,
3075 0x00003842, 0x00001E82, 0x00003848, 0x00001E77,
3076 0x0000384E, 0x00001E6C, 0x00003854, 0x00001E61,
3077 0x0000385A, 0x00001E56, 0x00003860, 0x00001E4B,
3078 0x00003866, 0x00001E40, 0x0000386C, 0x00001E35,
3079 0x00003872, 0x00001E29, 0x00003878, 0x00001E1E,
3080 0x0000387D, 0x00001E13, 0x00003883, 0x00001E08,
3081 0x00003889, 0x00001DFD, 0x0000388F, 0x00001DF2,
3082 0x00003895, 0x00001DE7, 0x0000389B, 0x00001DDC,
3083 0x000038A1, 0x00001DD1, 0x000038A7, 0x00001DC6,
3084 0x000038AC, 0x00001DBA, 0x000038B2, 0x00001DAF,
3085 0x000038B8, 0x00001DA4, 0x000038BE, 0x00001D99,
3086 0x000038C4, 0x00001D8E, 0x000038CA, 0x00001D83,
3087 0x000038CF, 0x00001D78, 0x000038D5, 0x00001D6C,
3088 0x000038DB, 0x00001D61, 0x000038E1, 0x00001D56,
3089 0x000038E6, 0x00001D4B, 0x000038EC, 0x00001D40,
3090 0x000038F2, 0x00001D35, 0x000038F8, 0x00001D29,
3091 0x000038FD, 0x00001D1E, 0x00003903, 0x00001D13,
3092 0x00003909, 0x00001D08, 0x0000390E, 0x00001CFD,
3093 0x00003914, 0x00001CF1, 0x0000391A, 0x00001CE6,
3094 0x0000391F, 0x00001CDB, 0x00003925, 0x00001CD0,
3095 0x0000392B, 0x00001CC5, 0x00003930, 0x00001CB9,
3096 0x00003936, 0x00001CAE, 0x0000393C, 0x00001CA3,
3097 0x00003941, 0x00001C98, 0x00003947, 0x00001C8C,
3098 0x0000394D, 0x00001C81, 0x00003952, 0x00001C76,
3099 0x00003958, 0x00001C6B, 0x0000395D, 0x00001C5F,
3100 0x00003963, 0x00001C54, 0x00003968, 0x00001C49,
3101 0x0000396E, 0x00001C3E, 0x00003974, 0x00001C32,
3102 0x00003979, 0x00001C27, 0x0000397F, 0x00001C1C,
3103 0x00003984, 0x00001C10, 0x0000398A, 0x00001C05,
3104 0x0000398F, 0x00001BFA, 0x00003995, 0x00001BEE,
3105 0x0000399A, 0x00001BE3, 0x000039A0, 0x00001BD8,
3106 0x000039A5, 0x00001BCD, 0x000039AA, 0x00001BC1,
3107 0x000039B0, 0x00001BB6, 0x000039B5, 0x00001BAB,
3108 0x000039BB, 0x00001B9F, 0x000039C0, 0x00001B94,
3109 0x000039C6, 0x00001B89, 0x000039CB, 0x00001B7D,
3110 0x000039D0, 0x00001B72, 0x000039D6, 0x00001B67,
3111 0x000039DB, 0x00001B5B, 0x000039E0, 0x00001B50,
3112 0x000039E6, 0x00001B44, 0x000039EB, 0x00001B39,
3113 0x000039F1, 0x00001B2E, 0x000039F6, 0x00001B22,
3114 0x000039FB, 0x00001B17, 0x00003A01, 0x00001B0C,
3115 0x00003A06, 0x00001B00, 0x00003A0B, 0x00001AF5,
3116 0x00003A10, 0x00001AE9, 0x00003A16, 0x00001ADE,
3117 0x00003A1B, 0x00001AD3, 0x00003A20, 0x00001AC7,
3118 0x00003A25, 0x00001ABC, 0x00003A2B, 0x00001AB0,
3119 0x00003A30, 0x00001AA5, 0x00003A35, 0x00001A99,
3120 0x00003A3A, 0x00001A8E, 0x00003A40, 0x00001A83,
3121 0x00003A45, 0x00001A77, 0x00003A4A, 0x00001A6C,
3122 0x00003A4F, 0x00001A60, 0x00003A54, 0x00001A55,
3123 0x00003A5A, 0x00001A49, 0x00003A5F, 0x00001A3E,
3124 0x00003A64, 0x00001A32, 0x00003A69, 0x00001A27,
3125 0x00003A6E, 0x00001A1B, 0x00003A73, 0x00001A10,
3126 0x00003A78, 0x00001A05, 0x00003A7D, 0x000019F9,
3127 0x00003A83, 0x000019EE, 0x00003A88, 0x000019E2,
3128 0x00003A8D, 0x000019D7, 0x00003A92, 0x000019CB,
3129 0x00003A97, 0x000019C0, 0x00003A9C, 0x000019B4,
3130 0x00003AA1, 0x000019A9, 0x00003AA6, 0x0000199D,
3131 0x00003AAB, 0x00001992, 0x00003AB0, 0x00001986,
3132 0x00003AB5, 0x0000197A, 0x00003ABA, 0x0000196F,
3133 0x00003ABF, 0x00001963, 0x00003AC4, 0x00001958,
3134 0x00003AC9, 0x0000194C, 0x00003ACE, 0x00001941,
3135 0x00003AD3, 0x00001935, 0x00003AD8, 0x0000192A,
3136 0x00003ADD, 0x0000191E, 0x00003AE2, 0x00001913,
3137 0x00003AE7, 0x00001907, 0x00003AEC, 0x000018FB,
3138 0x00003AF0, 0x000018F0, 0x00003AF5, 0x000018E4,
3139 0x00003AFA, 0x000018D9, 0x00003AFF, 0x000018CD,
3140 0x00003B04, 0x000018C2, 0x00003B09, 0x000018B6,
3141 0x00003B0E, 0x000018AA, 0x00003B12, 0x0000189F,
3142 0x00003B17, 0x00001893, 0x00003B1C, 0x00001888,
3143 0x00003B21, 0x0000187C, 0x00003B26, 0x00001870,
3144 0x00003B2B, 0x00001865, 0x00003B2F, 0x00001859,
3145 0x00003B34, 0x0000184D, 0x00003B39, 0x00001842,
3146 0x00003B3E, 0x00001836, 0x00003B42, 0x0000182B,
3147 0x00003B47, 0x0000181F, 0x00003B4C, 0x00001813,
3148 0x00003B51, 0x00001808, 0x00003B55, 0x000017FC,
3149 0x00003B5A, 0x000017F0, 0x00003B5F, 0x000017E5,
3150 0x00003B63, 0x000017D9, 0x00003B68, 0x000017CD,
3151 0x00003B6D, 0x000017C2, 0x00003B71, 0x000017B6,
3152 0x00003B76, 0x000017AA, 0x00003B7B, 0x0000179F,
3153 0x00003B7F, 0x00001793, 0x00003B84, 0x00001787,
3154 0x00003B89, 0x0000177C, 0x00003B8D, 0x00001770,
3155 0x00003B92, 0x00001764, 0x00003B96, 0x00001759,
3156 0x00003B9B, 0x0000174D, 0x00003BA0, 0x00001741,
3157 0x00003BA4, 0x00001735, 0x00003BA9, 0x0000172A,
3158 0x00003BAD, 0x0000171E, 0x00003BB2, 0x00001712,
3159 0x00003BB6, 0x00001707, 0x00003BBB, 0x000016FB,
3160 0x00003BBF, 0x000016EF, 0x00003BC4, 0x000016E3,
3161 0x00003BC8, 0x000016D8, 0x00003BCD, 0x000016CC,
3162 0x00003BD1, 0x000016C0, 0x00003BD6, 0x000016B4,
3163 0x00003BDA, 0x000016A9, 0x00003BDF, 0x0000169D,
3164 0x00003BE3, 0x00001691, 0x00003BE7, 0x00001685,
3165 0x00003BEC, 0x0000167A, 0x00003BF0, 0x0000166E,
3166 0x00003BF5, 0x00001662, 0x00003BF9, 0x00001656,
3167 0x00003BFD, 0x0000164B, 0x00003C02, 0x0000163F,
3168 0x00003C06, 0x00001633, 0x00003C0B, 0x00001627,
3169 0x00003C0F, 0x0000161B, 0x00003C13, 0x00001610,
3170 0x00003C18, 0x00001604, 0x00003C1C, 0x000015F8,
3171 0x00003C20, 0x000015EC, 0x00003C24, 0x000015E0,
3172 0x00003C29, 0x000015D5, 0x00003C2D, 0x000015C9,
3173 0x00003C31, 0x000015BD, 0x00003C36, 0x000015B1,
3174 0x00003C3A, 0x000015A5, 0x00003C3E, 0x00001599,
3175 0x00003C42, 0x0000158E, 0x00003C47, 0x00001582,
3176 0x00003C4B, 0x00001576, 0x00003C4F, 0x0000156A,
3177 0x00003C53, 0x0000155E, 0x00003C57, 0x00001552,
3178 0x00003C5C, 0x00001547, 0x00003C60, 0x0000153B,
3179 0x00003C64, 0x0000152F, 0x00003C68, 0x00001523,
3180 0x00003C6C, 0x00001517, 0x00003C70, 0x0000150B,
3181 0x00003C74, 0x000014FF, 0x00003C79, 0x000014F4,
3182 0x00003C7D, 0x000014E8, 0x00003C81, 0x000014DC,
3183 0x00003C85, 0x000014D0, 0x00003C89, 0x000014C4,
3184 0x00003C8D, 0x000014B8, 0x00003C91, 0x000014AC,
3185 0x00003C95, 0x000014A0, 0x00003C99, 0x00001494,
3186 0x00003C9D, 0x00001489, 0x00003CA1, 0x0000147D,
3187 0x00003CA5, 0x00001471, 0x00003CA9, 0x00001465,
3188 0x00003CAD, 0x00001459, 0x00003CB1, 0x0000144D,
3189 0x00003CB5, 0x00001441, 0x00003CB9, 0x00001435,
3190 0x00003CBD, 0x00001429, 0x00003CC1, 0x0000141D,
3191 0x00003CC5, 0x00001411, 0x00003CC9, 0x00001405,
3192 0x00003CCD, 0x000013F9, 0x00003CD1, 0x000013EE,
3193 0x00003CD5, 0x000013E2, 0x00003CD9, 0x000013D6,
3194 0x00003CDD, 0x000013CA, 0x00003CE0, 0x000013BE,
3195 0x00003CE4, 0x000013B2, 0x00003CE8, 0x000013A6,
3196 0x00003CEC, 0x0000139A, 0x00003CF0, 0x0000138E,
3197 0x00003CF4, 0x00001382, 0x00003CF8, 0x00001376,
3198 0x00003CFB, 0x0000136A, 0x00003CFF, 0x0000135E,
3199 0x00003D03, 0x00001352, 0x00003D07, 0x00001346,
3200 0x00003D0B, 0x0000133A, 0x00003D0E, 0x0000132E,
3201 0x00003D12, 0x00001322, 0x00003D16, 0x00001316,
3202 0x00003D1A, 0x0000130A, 0x00003D1D, 0x000012FE,
3203 0x00003D21, 0x000012F2, 0x00003D25, 0x000012E6,
3204 0x00003D28, 0x000012DA, 0x00003D2C, 0x000012CE,
3205 0x00003D30, 0x000012C2, 0x00003D33, 0x000012B6,
3206 0x00003D37, 0x000012AA, 0x00003D3B, 0x0000129E,
3207 0x00003D3E, 0x00001292, 0x00003D42, 0x00001286,
3208 0x00003D46, 0x0000127A, 0x00003D49, 0x0000126E,
3209 0x00003D4D, 0x00001262, 0x00003D51, 0x00001256,
3210 0x00003D54, 0x0000124A, 0x00003D58, 0x0000123E,
3211 0x00003D5B, 0x00001232, 0x00003D5F, 0x00001226,
3212 0x00003D62, 0x0000121A, 0x00003D66, 0x0000120E,
3213 0x00003D6A, 0x00001202, 0x00003D6D, 0x000011F5,
3214 0x00003D71, 0x000011E9, 0x00003D74, 0x000011DD,
3215 0x00003D78, 0x000011D1, 0x00003D7B, 0x000011C5,
3216 0x00003D7F, 0x000011B9, 0x00003D82, 0x000011AD,
3217 0x00003D86, 0x000011A1, 0x00003D89, 0x00001195,
3218 0x00003D8C, 0x00001189, 0x00003D90, 0x0000117D,
3219 0x00003D93, 0x00001171, 0x00003D97, 0x00001165,
3220 0x00003D9A, 0x00001158, 0x00003D9E, 0x0000114C,
3221 0x00003DA1, 0x00001140, 0x00003DA4, 0x00001134,
3222 0x00003DA8, 0x00001128, 0x00003DAB, 0x0000111C,
3223 0x00003DAE, 0x00001110, 0x00003DB2, 0x00001104,
3224 0x00003DB5, 0x000010F8, 0x00003DB8, 0x000010EB,
3225 0x00003DBC, 0x000010DF, 0x00003DBF, 0x000010D3,
3226 0x00003DC2, 0x000010C7, 0x00003DC6, 0x000010BB,
3227 0x00003DC9, 0x000010AF, 0x00003DCC, 0x000010A3,
3228 0x00003DCF, 0x00001097, 0x00003DD3, 0x0000108A,
3229 0x00003DD6, 0x0000107E, 0x00003DD9, 0x00001072,
3230 0x00003DDC, 0x00001066, 0x00003DE0, 0x0000105A,
3231 0x00003DE3, 0x0000104E, 0x00003DE6, 0x00001042,
3232 0x00003DE9, 0x00001035, 0x00003DEC, 0x00001029,
3233 0x00003DF0, 0x0000101D, 0x00003DF3, 0x00001011,
3234 0x00003DF6, 0x00001005, 0x00003DF9, 0x00000FF9,
3235 0x00003DFC, 0x00000FEC, 0x00003DFF, 0x00000FE0,
3236 0x00003E02, 0x00000FD4, 0x00003E05, 0x00000FC8,
3237 0x00003E09, 0x00000FBC, 0x00003E0C, 0x00000FB0,
3238 0x00003E0F, 0x00000FA3, 0x00003E12, 0x00000F97,
3239 0x00003E15, 0x00000F8B, 0x00003E18, 0x00000F7F,
3240 0x00003E1B, 0x00000F73, 0x00003E1E, 0x00000F66,
3241 0x00003E21, 0x00000F5A, 0x00003E24, 0x00000F4E,
3242 0x00003E27, 0x00000F42, 0x00003E2A, 0x00000F36,
3243 0x00003E2D, 0x00000F29, 0x00003E30, 0x00000F1D,
3244 0x00003E33, 0x00000F11, 0x00003E36, 0x00000F05,
3245 0x00003E39, 0x00000EF9, 0x00003E3C, 0x00000EEC,
3246 0x00003E3F, 0x00000EE0, 0x00003E42, 0x00000ED4,
3247 0x00003E45, 0x00000EC8, 0x00003E47, 0x00000EBB,
3248 0x00003E4A, 0x00000EAF, 0x00003E4D, 0x00000EA3,
3249 0x00003E50, 0x00000E97, 0x00003E53, 0x00000E8A,
3250 0x00003E56, 0x00000E7E, 0x00003E59, 0x00000E72,
3251 0x00003E5B, 0x00000E66, 0x00003E5E, 0x00000E59,
3252 0x00003E61, 0x00000E4D, 0x00003E64, 0x00000E41,
3253 0x00003E67, 0x00000E35, 0x00003E69, 0x00000E28,
3254 0x00003E6C, 0x00000E1C, 0x00003E6F, 0x00000E10,
3255 0x00003E72, 0x00000E04, 0x00003E74, 0x00000DF7,
3256 0x00003E77, 0x00000DEB, 0x00003E7A, 0x00000DDF,
3257 0x00003E7D, 0x00000DD3, 0x00003E7F, 0x00000DC6,
3258 0x00003E82, 0x00000DBA, 0x00003E85, 0x00000DAE,
3259 0x00003E87, 0x00000DA2, 0x00003E8A, 0x00000D95,
3260 0x00003E8D, 0x00000D89, 0x00003E8F, 0x00000D7D,
3261 0x00003E92, 0x00000D70, 0x00003E95, 0x00000D64,
3262 0x00003E97, 0x00000D58, 0x00003E9A, 0x00000D4C,
3263 0x00003E9D, 0x00000D3F, 0x00003E9F, 0x00000D33,
3264 0x00003EA2, 0x00000D27, 0x00003EA4, 0x00000D1A,
3265 0x00003EA7, 0x00000D0E, 0x00003EA9, 0x00000D02,
3266 0x00003EAC, 0x00000CF5, 0x00003EAF, 0x00000CE9,
3267 0x00003EB1, 0x00000CDD, 0x00003EB4, 0x00000CD1,
3268 0x00003EB6, 0x00000CC4, 0x00003EB9, 0x00000CB8,
3269 0x00003EBB, 0x00000CAC, 0x00003EBE, 0x00000C9F,
3270 0x00003EC0, 0x00000C93, 0x00003EC3, 0x00000C87,
3271 0x00003EC5, 0x00000C7A, 0x00003EC7, 0x00000C6E,
3272 0x00003ECA, 0x00000C62, 0x00003ECC, 0x00000C55,
3273 0x00003ECF, 0x00000C49, 0x00003ED1, 0x00000C3D,
3274 0x00003ED4, 0x00000C30, 0x00003ED6, 0x00000C24,
3275 0x00003ED8, 0x00000C18, 0x00003EDB, 0x00000C0B,
3276 0x00003EDD, 0x00000BFF, 0x00003EDF, 0x00000BF3,
3277 0x00003EE2, 0x00000BE6, 0x00003EE4, 0x00000BDA,
3278 0x00003EE6, 0x00000BCE, 0x00003EE9, 0x00000BC1,
3279 0x00003EEB, 0x00000BB5, 0x00003EED, 0x00000BA9,
3280 0x00003EF0, 0x00000B9C, 0x00003EF2, 0x00000B90,
3281 0x00003EF4, 0x00000B83, 0x00003EF6, 0x00000B77,
3282 0x00003EF9, 0x00000B6B, 0x00003EFB, 0x00000B5E,
3283 0x00003EFD, 0x00000B52, 0x00003EFF, 0x00000B46,
3284 0x00003F02, 0x00000B39, 0x00003F04, 0x00000B2D,
3285 0x00003F06, 0x00000B21, 0x00003F08, 0x00000B14,
3286 0x00003F0A, 0x00000B08, 0x00003F0C, 0x00000AFB,
3287 0x00003F0F, 0x00000AEF, 0x00003F11, 0x00000AE3,
3288 0x00003F13, 0x00000AD6, 0x00003F15, 0x00000ACA,
3289 0x00003F17, 0x00000ABD, 0x00003F19, 0x00000AB1,
3290 0x00003F1B, 0x00000AA5, 0x00003F1D, 0x00000A98,
3291 0x00003F1F, 0x00000A8C, 0x00003F21, 0x00000A7F,
3292 0x00003F24, 0x00000A73, 0x00003F26, 0x00000A67,
3293 0x00003F28, 0x00000A5A, 0x00003F2A, 0x00000A4E,
3294 0x00003F2C, 0x00000A41, 0x00003F2E, 0x00000A35,
3295 0x00003F30, 0x00000A29, 0x00003F32, 0x00000A1C,
3296 0x00003F34, 0x00000A10, 0x00003F36, 0x00000A03,
3297 0x00003F38, 0x000009F7, 0x00003F3A, 0x000009EB,
3298 0x00003F3B, 0x000009DE, 0x00003F3D, 0x000009D2,
3299 0x00003F3F, 0x000009C5, 0x00003F41, 0x000009B9,
3300 0x00003F43, 0x000009AD, 0x00003F45, 0x000009A0,
3301 0x00003F47, 0x00000994, 0x00003F49, 0x00000987,
3302 0x00003F4B, 0x0000097B, 0x00003F4D, 0x0000096E,
3303 0x00003F4E, 0x00000962, 0x00003F50, 0x00000956,
3304 0x00003F52, 0x00000949, 0x00003F54, 0x0000093D,
3305 0x00003F56, 0x00000930, 0x00003F57, 0x00000924,
3306 0x00003F59, 0x00000917, 0x00003F5B, 0x0000090B,
3307 0x00003F5D, 0x000008FE, 0x00003F5F, 0x000008F2,
3308 0x00003F60, 0x000008E6, 0x00003F62, 0x000008D9,
3309 0x00003F64, 0x000008CD, 0x00003F66, 0x000008C0,
3310 0x00003F67, 0x000008B4, 0x00003F69, 0x000008A7,
3311 0x00003F6B, 0x0000089B, 0x00003F6C, 0x0000088E,
3312 0x00003F6E, 0x00000882, 0x00003F70, 0x00000876,
3313 0x00003F71, 0x00000869, 0x00003F73, 0x0000085D,
3314 0x00003F75, 0x00000850, 0x00003F76, 0x00000844,
3315 0x00003F78, 0x00000837, 0x00003F79, 0x0000082B,
3316 0x00003F7B, 0x0000081E, 0x00003F7D, 0x00000812,
3317 0x00003F7E, 0x00000805, 0x00003F80, 0x000007F9,
3318 0x00003F81, 0x000007EC, 0x00003F83, 0x000007E0,
3319 0x00003F84, 0x000007D4, 0x00003F86, 0x000007C7,
3320 0x00003F88, 0x000007BB, 0x00003F89, 0x000007AE,
3321 0x00003F8B, 0x000007A2, 0x00003F8C, 0x00000795,
3322 0x00003F8E, 0x00000789, 0x00003F8F, 0x0000077C,
3323 0x00003F90, 0x00000770, 0x00003F92, 0x00000763,
3324 0x00003F93, 0x00000757, 0x00003F95, 0x0000074A,
3325 0x00003F96, 0x0000073E, 0x00003F98, 0x00000731,
3326 0x00003F99, 0x00000725, 0x00003F9A, 0x00000718,
3327 0x00003F9C, 0x0000070C, 0x00003F9D, 0x000006FF,
3328 0x00003F9F, 0x000006F3, 0x00003FA0, 0x000006E6,
3329 0x00003FA1, 0x000006DA, 0x00003FA3, 0x000006CD,
3330 0x00003FA4, 0x000006C1, 0x00003FA5, 0x000006B4,
3331 0x00003FA7, 0x000006A8, 0x00003FA8, 0x0000069B,
3332 0x00003FA9, 0x0000068F, 0x00003FAA, 0x00000682,
3333 0x00003FAC, 0x00000676, 0x00003FAD, 0x00000669,
3334 0x00003FAE, 0x0000065D, 0x00003FB0, 0x00000650,
3335 0x00003FB1, 0x00000644, 0x00003FB2, 0x00000637,
3336 0x00003FB3, 0x0000062B, 0x00003FB4, 0x0000061E,
3337 0x00003FB6, 0x00000612, 0x00003FB7, 0x00000605,
3338 0x00003FB8, 0x000005F9, 0x00003FB9, 0x000005EC,
3339 0x00003FBA, 0x000005E0, 0x00003FBB, 0x000005D3,
3340 0x00003FBD, 0x000005C7, 0x00003FBE, 0x000005BA,
3341 0x00003FBF, 0x000005AE, 0x00003FC0, 0x000005A1,
3342 0x00003FC1, 0x00000595, 0x00003FC2, 0x00000588,
3343 0x00003FC3, 0x0000057C, 0x00003FC4, 0x0000056F,
3344 0x00003FC5, 0x00000563, 0x00003FC6, 0x00000556,
3345 0x00003FC7, 0x0000054A, 0x00003FC8, 0x0000053D,
3346 0x00003FCA, 0x00000531, 0x00003FCB, 0x00000524,
3347 0x00003FCC, 0x00000517, 0x00003FCD, 0x0000050B,
3348 0x00003FCE, 0x000004FE, 0x00003FCE, 0x000004F2,
3349 0x00003FCF, 0x000004E5, 0x00003FD0, 0x000004D9,
3350 0x00003FD1, 0x000004CC, 0x00003FD2, 0x000004C0,
3351 0x00003FD3, 0x000004B3, 0x00003FD4, 0x000004A7,
3352 0x00003FD5, 0x0000049A, 0x00003FD6, 0x0000048E,
3353 0x00003FD7, 0x00000481, 0x00003FD8, 0x00000475,
3354 0x00003FD9, 0x00000468, 0x00003FD9, 0x0000045B,
3355 0x00003FDA, 0x0000044F, 0x00003FDB, 0x00000442,
3356 0x00003FDC, 0x00000436, 0x00003FDD, 0x00000429,
3357 0x00003FDE, 0x0000041D, 0x00003FDE, 0x00000410,
3358 0x00003FDF, 0x00000404, 0x00003FE0, 0x000003F7,
3359 0x00003FE1, 0x000003EB, 0x00003FE2, 0x000003DE,
3360 0x00003FE2, 0x000003D2, 0x00003FE3, 0x000003C5,
3361 0x00003FE4, 0x000003B8, 0x00003FE4, 0x000003AC,
3362 0x00003FE5, 0x0000039F, 0x00003FE6, 0x00000393,
3363 0x00003FE7, 0x00000386, 0x00003FE7, 0x0000037A,
3364 0x00003FE8, 0x0000036D, 0x00003FE9, 0x00000361,
3365 0x00003FE9, 0x00000354, 0x00003FEA, 0x00000348,
3366 0x00003FEB, 0x0000033B, 0x00003FEB, 0x0000032E,
3367 0x00003FEC, 0x00000322, 0x00003FEC, 0x00000315,
3368 0x00003FED, 0x00000309, 0x00003FEE, 0x000002FC,
3369 0x00003FEE, 0x000002F0, 0x00003FEF, 0x000002E3,
3370 0x00003FEF, 0x000002D7, 0x00003FF0, 0x000002CA,
3371 0x00003FF0, 0x000002BD, 0x00003FF1, 0x000002B1,
3372 0x00003FF2, 0x000002A4, 0x00003FF2, 0x00000298,
3373 0x00003FF3, 0x0000028B, 0x00003FF3, 0x0000027F,
3374 0x00003FF4, 0x00000272, 0x00003FF4, 0x00000266,
3375 0x00003FF4, 0x00000259, 0x00003FF5, 0x0000024C,
3376 0x00003FF5, 0x00000240, 0x00003FF6, 0x00000233,
3377 0x00003FF6, 0x00000227, 0x00003FF7, 0x0000021A,
3378 0x00003FF7, 0x0000020E, 0x00003FF7, 0x00000201,
3379 0x00003FF8, 0x000001F5, 0x00003FF8, 0x000001E8,
3380 0x00003FF9, 0x000001DB, 0x00003FF9, 0x000001CF,
3381 0x00003FF9, 0x000001C2, 0x00003FFA, 0x000001B6,
3382 0x00003FFA, 0x000001A9, 0x00003FFA, 0x0000019D,
3383 0x00003FFB, 0x00000190, 0x00003FFB, 0x00000183,
3384 0x00003FFB, 0x00000177, 0x00003FFB, 0x0000016A,
3385 0x00003FFC, 0x0000015E, 0x00003FFC, 0x00000151,
3386 0x00003FFC, 0x00000145, 0x00003FFD, 0x00000138,
3387 0x00003FFD, 0x0000012C, 0x00003FFD, 0x0000011F,
3388 0x00003FFD, 0x00000112, 0x00003FFD, 0x00000106,
3389 0x00003FFE
3390};
3391*/
diff --git a/lib/rbcodec/codecs/libwmapro/mdct_tables.h b/lib/rbcodec/codecs/libwmapro/mdct_tables.h
new file mode 100644
index 0000000000..5e54868b01
--- /dev/null
+++ b/lib/rbcodec/codecs/libwmapro/mdct_tables.h
@@ -0,0 +1,10 @@
1#ifndef _MDCT_TABLES_H_
2#define _MDCT_TABLES_H_
3#include <inttypes.h>
4
5extern const int32_t *sine_windows[6];
6/* rockbox: not used
7extern const int32_t sincos_lookup_wmap[8064];
8*/
9#endif /* _MDCT_TABLES_H_ */
10
diff --git a/lib/rbcodec/codecs/libwmapro/quant.h b/lib/rbcodec/codecs/libwmapro/quant.h
new file mode 100644
index 0000000000..3500615fde
--- /dev/null
+++ b/lib/rbcodec/codecs/libwmapro/quant.h
@@ -0,0 +1,53 @@
1#ifndef _QUANT_H_
2#define _QUANT_H_
3
4#include <inttypes.h>
5
6/* This table contains unscaled integer casts of the floating point inverse
7 * quantization factors used by wma pro. The formula for calculating the
8 * floating point value is :
9 * quant = pow(10.0, exp/20)
10 * 'exp' is an integer value which I have exmerimentally found to fall in the
11 * range (50,170). */
12const int32_t quant_tab[121] = {
13 0x0000013C, 0x00000163, 0x0000018E, 0x000001BF,
14 0x000001F5, 0x00000232, 0x00000277, 0x000002C4,
15 0x0000031A, 0x0000037B, 0x000003E8, 0x00000462,
16 0x000004EB, 0x00000585, 0x00000631, 0x000006F2,
17 0x000007CB, 0x000008BF, 0x000009D0, 0x00000B02,
18 0x00000C5A, 0x00000DDC, 0x00000F8D, 0x00001173,
19 0x00001394, 0x000015F7, 0x000018A6, 0x00001BA7,
20 0x00001F07, 0x000022D1, 0x00002710, 0x00002BD4,
21 0x0000312D, 0x0000372D, 0x00003DE9, 0x00004577,
22 0x00004DF1, 0x00005773, 0x0000621F, 0x00006E18,
23 0x00007B87, 0x00008A99, 0x00009B83, 0x0000AE7C,
24 0x0000C3C7, 0x0000DBAA, 0x0000F678, 0x0001148B,
25 0x00013649, 0x00015C25, 0x000186A0, 0x0001B64A,
26 0x0001EBC5, 0x000227C6, 0x00026B19, 0x0002B6A4,
27 0x00030B66, 0x00036A80, 0x0003D535, 0x00044CEE,
28 0x0004D344, 0x000569FD, 0x0006131B, 0x0006D0DC,
29 0x0007A5C3, 0x000894A5, 0x0009A0AD, 0x000ACD6A,
30 0x000C1ED8, 0x000D9973, 0x000F4240, 0x00111EE2,
31 0x001335AD, 0x00158DBA, 0x00182EFD, 0x001B2267,
32 0x001E71FE, 0x00222901, 0x0026540E, 0x002B014F,
33 0x003040A6, 0x003623E6, 0x003CBF10, 0x00442894,
34 0x004C79A0, 0x0055CE75, 0x006046C5, 0x006C0622,
35 0x00793472, 0x0087FE7D, 0x00989680, 0x00AB34D9,
36 0x00C018C6, 0x00D7893F, 0x00F1D5E4, 0x010F580A,
37 0x013073EF, 0x01559A0B, 0x017F4890, 0x01AE0D15,
38 0x01E28679, 0x021D66FB, 0x025F769D, 0x02A995C7,
39 0x02FCC043, 0x035A1095, 0x03C2C3B6, 0x04383D52,
40 0x04BC0C77, 0x054FF0E6, 0x05F5E100, 0x06B01075,
41 0x0780F7BD, 0x086B5C7A, 0x09725AE7, 0x0A997065,
42 0x0BE48757, 0x0D580472, 0x0EF8D5A3, 0x10CC82D5,
43 0x12D940B6
44};
45
46#define EXP_MIN 50
47#define EXP_MAX 170
48
49/* return the correct value of quant based on exp */
50#define QUANT(exp) quant_tab[exp - EXP_MIN]
51
52
53#endif /* _QUANT_H_ */
diff --git a/lib/rbcodec/codecs/libwmapro/wma.c b/lib/rbcodec/codecs/libwmapro/wma.c
new file mode 100644
index 0000000000..83cec89a4c
--- /dev/null
+++ b/lib/rbcodec/codecs/libwmapro/wma.c
@@ -0,0 +1,164 @@
1/*
2 * WMA compatible codec
3 * Copyright (c) 2002-2007 The FFmpeg Project
4 *
5 * This file is part of FFmpeg.
6 *
7 * FFmpeg is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public
9 * License as published by the Free Software Foundation; either
10 * version 2.1 of the License, or (at your option) any later version.
11 *
12 * FFmpeg is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
16 *
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with FFmpeg; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20 */
21
22#include "wma.h"
23#include "codeclib.h" /* needed for av_log2() */
24
25/**
26 *@brief Get the samples per frame for this stream.
27 *@param sample_rate output sample_rate
28 *@param version wma version
29 *@param decode_flags codec compression features
30 *@return log2 of the number of output samples per frame
31 */
32int ff_wma_get_frame_len_bits(int sample_rate, int version,
33 unsigned int decode_flags)
34{
35
36 int frame_len_bits;
37
38 if (sample_rate <= 16000) {
39 frame_len_bits = 9;
40 } else if (sample_rate <= 22050 ||
41 (sample_rate <= 32000 && version == 1)) {
42 frame_len_bits = 10;
43 } else if (sample_rate <= 48000) {
44 frame_len_bits = 11;
45 } else if (sample_rate <= 96000) {
46 frame_len_bits = 12;
47 } else {
48 frame_len_bits = 13;
49 }
50
51 if (version == 3) {
52 int tmp = decode_flags & 0x6;
53 if (tmp == 0x2) {
54 ++frame_len_bits;
55 } else if (tmp == 0x4) {
56 --frame_len_bits;
57 } else if (tmp == 0x6) {
58 frame_len_bits -= 2;
59 }
60 }
61
62 return frame_len_bits;
63}
64
65/**
66 * Decode an uncompressed coefficient.
67 * @param s codec context
68 * @return the decoded coefficient
69 */
70unsigned int ff_wma_get_large_val(GetBitContext* gb)
71{
72 /** consumes up to 34 bits */
73 int n_bits = 8;
74 /** decode length */
75 if (get_bits1(gb)) {
76 n_bits += 8;
77 if (get_bits1(gb)) {
78 n_bits += 8;
79 if (get_bits1(gb)) {
80 n_bits += 7;
81 }
82 }
83 }
84 return get_bits_long(gb, n_bits);
85}
86
87/**
88 * Decode run level compressed coefficients.
89 * @param avctx codec context
90 * @param gb bitstream reader context
91 * @param vlc vlc table for get_vlc2
92 * @param level_table level codes
93 * @param run_table run codes
94 * @param version 0 for wma1,2 1 for wmapro
95 * @param ptr output buffer
96 * @param offset offset in the output buffer
97 * @param num_coefs number of input coefficents
98 * @param block_len input buffer length (2^n)
99 * @param frame_len_bits number of bits for escaped run codes
100 * @param coef_nb_bits number of bits for escaped level codes
101 * @return 0 on success, -1 otherwise
102 */
103#define av_log(...)
104int ff_wma_run_level_decode(GetBitContext* gb,
105 VLC *vlc,
106 const int32_t *level_table, const uint16_t *run_table,
107 int version, int32_t *ptr, int offset,
108 int num_coefs, int block_len, int frame_len_bits,
109 int coef_nb_bits)
110{
111 int32_t code, level, sign;
112 const unsigned int coef_mask = block_len - 1;
113 /* Rockbox: To be able to use rockbox' optimized mdct we need to pre-shift
114 * the values by >>(nbits-3). */
115 const int nbits = av_log2(block_len)+1;
116 const int shift = WMAPRO_FRACT-(nbits-3);
117 for (; offset < num_coefs; offset++) {
118 code = get_vlc2(gb, vlc->table, VLCBITS, VLCMAX);
119 if (code > 1) {
120 /** normal code */
121 offset += run_table[code];
122 sign = !get_bits1(gb);
123 /* Rockbox: To be able to use rockbox' optimized mdct we need
124 * invert the sign. */
125 ptr[offset & coef_mask] = sign ? level_table[code] : -level_table[code];
126 ptr[offset & coef_mask] <<= shift;
127 } else if (code == 1) {
128 /** EOB */
129 break;
130 } else {
131 /** escape */
132 if (!version) {
133 level = get_bits(gb, coef_nb_bits);
134 /** NOTE: this is rather suboptimal. reading
135 block_len_bits would be better */
136 offset += get_bits(gb, frame_len_bits);
137 } else {
138 level = ff_wma_get_large_val(gb);
139 /** escape decode */
140 if (get_bits1(gb)) {
141 if (get_bits1(gb)) {
142 if (get_bits1(gb)) {
143 av_log(avctx,AV_LOG_ERROR,
144 "broken escape sequence\n");
145 return -1;
146 } else
147 offset += get_bits(gb, frame_len_bits) + 4;
148 } else
149 offset += get_bits(gb, 2) + 1;
150 }
151 }
152 sign = !get_bits1(gb);
153 ptr[offset & coef_mask] = sign ? level : -level;
154 ptr[offset & coef_mask] <<= shift;
155 }
156 }
157 /** NOTE: EOB can be omitted */
158 if (offset > num_coefs) {
159 av_log(avctx, AV_LOG_ERROR, "overflow in spectral RLE, ignoring\n");
160 return -1;
161 }
162
163 return 0;
164}
diff --git a/lib/rbcodec/codecs/libwmapro/wma.h b/lib/rbcodec/codecs/libwmapro/wma.h
new file mode 100644
index 0000000000..6fa7b94724
--- /dev/null
+++ b/lib/rbcodec/codecs/libwmapro/wma.h
@@ -0,0 +1,75 @@
1/*
2 * WMA compatible codec
3 * Copyright (c) 2002-2007 The FFmpeg Project
4 *
5 * This file is part of FFmpeg.
6 *
7 * FFmpeg is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public
9 * License as published by the Free Software Foundation; either
10 * version 2.1 of the License, or (at your option) any later version.
11 *
12 * FFmpeg is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
16 *
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with FFmpeg; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20 */
21
22#ifndef AVCODEC_WMA_H
23#define AVCODEC_WMA_H
24
25#include "ffmpeg_get_bits.h"
26#include "ffmpeg_put_bits.h"
27
28#define WMAPRO_FRACT (17)
29#define WMAPRO_DSP_SAMPLE_DEPTH (WMAPRO_FRACT + 8)
30
31/* size of blocks */
32#define BLOCK_MIN_BITS 7
33#define BLOCK_MAX_BITS 11
34#define BLOCK_MAX_SIZE (1 << BLOCK_MAX_BITS)
35
36#define BLOCK_NB_SIZES (BLOCK_MAX_BITS - BLOCK_MIN_BITS + 1)
37
38/* XXX: find exact max size */
39#define HIGH_BAND_MAX_SIZE 16
40
41#define NB_LSP_COEFS 10
42
43/* XXX: is it a suitable value ? */
44#define MAX_CODED_SUPERFRAME_SIZE 16384
45
46#define MAX_CHANNELS 2
47
48#define NOISE_TAB_SIZE 8192
49
50#define LSP_POW_BITS 7
51
52//FIXME should be in wmadec
53#define VLCBITS 9
54#define VLCMAX ((22+VLCBITS-1)/VLCBITS)
55
56typedef struct CoefVLCTable {
57 int n; ///< total number of codes
58 int max_level;
59 const uint32_t *huffcodes; ///< VLC bit values
60 const uint8_t *huffbits; ///< VLC bit size
61 const uint16_t *levels; ///< table to build run/level tables
62} CoefVLCTable;
63
64
65int ff_wma_get_frame_len_bits(int sample_rate, int version,
66 unsigned int decode_flags);
67unsigned int ff_wma_get_large_val(GetBitContext* gb);
68int ff_wma_run_level_decode(GetBitContext* gb,
69 VLC *vlc,
70 const int32_t *level_table, const uint16_t *run_table,
71 int version, int32_t *ptr, int offset,
72 int num_coefs, int block_len, int frame_len_bits,
73 int coef_nb_bits);
74
75#endif /* AVCODEC_WMA_H */
diff --git a/lib/rbcodec/codecs/libwmapro/wmapro_math.h b/lib/rbcodec/codecs/libwmapro/wmapro_math.h
new file mode 100644
index 0000000000..c78d6b627f
--- /dev/null
+++ b/lib/rbcodec/codecs/libwmapro/wmapro_math.h
@@ -0,0 +1,250 @@
1#ifndef _WMAPRO_MATH_H_
2#define _WMAPRO_MATH_H_
3
4#include <inttypes.h>
5
6/* rockbox: not used
7#define fixtof16(x) (float)((float)(x) / (float)(1 << 16))
8#define fixtof31(x) (float)((float)(x) / (float)(1 << 31))
9#define ftofix16(x) ((int32_t)((x) * (float)(1 << 16) + ((x) < 0 ? -0.5:0.5)))
10#define ftofix31(x) ((int32_t)((x) * (float)(1 << 31) + ((x) < 0 ? -0.5:0.5)))
11*/
12
13#if defined(CPU_ARM)
14 /* Calculates: result = (X*Y)>>Z */
15 #define fixmulshift(X,Y,Z) \
16 ({ \
17 int32_t lo; \
18 int32_t hi; \
19 asm volatile ( \
20 "smull %[lo], %[hi], %[x], %[y] \n\t" /* multiply */ \
21 "mov %[lo], %[lo], lsr %[shr] \n\t" /* lo >>= Z */ \
22 "orr %[lo], %[lo], %[hi], lsl %[shl]" /* lo |= (hi << (32-Z)) */ \
23 : [lo]"=&r"(lo), [hi]"=&r"(hi) \
24 : [x]"r"(X), [y]"r"(Y), [shr]"r"(Z), [shl]"r"(32-Z)); \
25 lo; \
26 })
27
28 /* Calculates: result = (X*Y)>>16 */
29 #define fixmul16(X,Y) \
30 ({ \
31 int32_t lo; \
32 int32_t hi; \
33 asm volatile ( \
34 "smull %[lo], %[hi], %[x], %[y] \n\t" /* multiply */ \
35 "mov %[lo], %[lo], lsr #16 \n\t" /* lo >>= 16 */ \
36 "orr %[lo], %[lo], %[hi], lsl #16" /* lo |= (hi << 16) */ \
37 : [lo]"=&r"(lo), [hi]"=&r"(hi) \
38 : [x]"r"(X), [y]"r"(Y)); \
39 lo; \
40 })
41
42 /* Calculates: result = (X*Y)>>24 */
43 #define fixmul24(X,Y) \
44 ({ \
45 int32_t lo; \
46 int32_t hi; \
47 asm volatile ( \
48 "smull %[lo], %[hi], %[x], %[y] \n\t" /* multiply */ \
49 "mov %[lo], %[lo], lsr #24 \n\t" /* lo >>= 24 */ \
50 "orr %[lo], %[lo], %[hi], lsl #8" /* lo |= (hi << 8) */ \
51 : [lo]"=&r"(lo), [hi]"=&r"(hi) \
52 : [x]"r"(X), [y]"r"(Y)); \
53 lo; \
54 })
55
56 /* Calculates: result = (X*Y)>>31, loose 1 bit precision */
57 #define fixmul31(X,Y) \
58 ({ \
59 int32_t lo; \
60 int32_t hi; \
61 asm volatile ( \
62 "smull %[lo], %[hi], %[x], %[y] \n\t" /* multiply */ \
63 "mov %[hi], %[hi], lsl #1" /* hi <<= 1 */ \
64 : [lo]"=&r"(lo), [hi]"=&r"(hi) \
65 : [x]"r"(X), [y]"r"(Y)); \
66 hi; \
67 })
68#elif defined(CPU_COLDFIRE)
69 /* Calculates: result = (X*Y)>>Z */
70 #define fixmulshift(X,Y,Z) \
71 ({ \
72 int32_t t1; \
73 int32_t t2; \
74 asm volatile ( \
75 "mac.l %[x],%[y],%%acc0\n\t" /* multiply */ \
76 "mulu.l %[y],%[x] \n\t" /* get lower half, avoid emac stall */ \
77 "movclr.l %%acc0,%[t1] \n\t" /* get higher half */ \
78 "moveq.l #31,%[t2] \n\t" \
79 "sub.l %[sh],%[t2] \n\t" /* t2 = 31 - shift */ \
80 "ble.s 1f \n\t" \
81 "asl.l %[t2],%[t1] \n\t" /* hi <<= 31 - shift */ \
82 "lsr.l %[sh],%[x] \n\t" /* (unsigned)lo >>= shift */ \
83 "or.l %[x],%[t1] \n\t" /* combine result */ \
84 "bra.s 2f \n\t" \
85 "1: \n\t" \
86 "neg.l %[t2] \n\t" /* t2 = shift - 31 */ \
87 "asr.l %[t2],%[t1] \n\t" /* hi >>= t2 */ \
88 "2: \n" \
89 : [t1]"=&d"(t1), [t2]"=&d"(t2) \
90 : [x] "d"((X)), [y] "d"((Y)), [sh]"d"((Z))); \
91 t1; \
92 })
93
94 /* Calculates: result = (X*Y)>>16 */
95 #define fixmul16(X,Y) \
96 ({ \
97 int32_t t, x = (X); \
98 asm volatile ( \
99 "mac.l %[x],%[y],%%acc0\n\t" /* multiply */ \
100 "mulu.l %[y],%[x] \n\t" /* get lower half, avoid emac stall */ \
101 "movclr.l %%acc0,%[t] \n\t" /* get higher half */ \
102 "lsr.l #1,%[t] \n\t" /* hi >>= 1 to compensate emac shift */ \
103 "move.w %[t],%[x] \n\t" /* combine halfwords */\
104 "swap %[x] \n\t" \
105 : [t]"=&d"(t), [x] "+d" (x) \
106 : [y] "d" ((Y))); \
107 x; \
108 })
109
110 /* Calculates: result = (X*Y)>>31 (may lose msb to overflow) */
111 #define fixmul31(X,Y) \
112 ({ \
113 int32_t t; \
114 asm volatile ( \
115 "mac.l %[x], %[y], %%acc0\n\t" /* multiply */ \
116 "movclr.l %%acc0, %[t]\n\t" /* get higher half as result */ \
117 : [t] "=d" (t) \
118 : [x] "r" ((X)), [y] "r" ((Y))); \
119 t; \
120 })
121#else
122 static inline int32_t fixmulshift(int32_t x, int32_t y, int shamt)
123 {
124 int64_t temp;
125 temp = x;
126 temp *= y;
127
128 temp >>= shamt;
129
130 return (int32_t)temp;
131 }
132
133 static inline int32_t fixmul31(int32_t x, int32_t y)
134 {
135 int64_t temp;
136 temp = x;
137 temp *= y;
138
139 temp >>= 31;
140
141 return (int32_t)temp;
142 }
143
144 static inline int32_t fixmul24(int32_t x, int32_t y)
145 {
146 int64_t temp;
147 temp = x;
148 temp *= y;
149
150 temp >>= 24;
151
152 return (int32_t)temp;
153 }
154
155 static inline int32_t fixmul16(int32_t x, int32_t y)
156 {
157 int64_t temp;
158 temp = x;
159 temp *= y;
160
161 temp >>= 16;
162
163 return (int32_t)temp;
164 }
165#endif /* CPU_COLDFIRE, CPU_ARM */
166
167#if defined(CPU_COLDFIRE)
168 #define VECT_MUL_WIN_KERNEL(i, j, s0, s1, wi, wj) \
169 asm volatile ( \
170 "mac.l %[s0], %[wj], %%acc0 \n\t" \
171 "msac.l %[s1], %[wi], %%acc0 \n\t" \
172 "mac.l %[s0], %[wi], %%acc1 \n\t" \
173 "mac.l %[s1], %[wj], %%acc1 \n\t" \
174 "movclr.l %%acc0, %[s0] \n\t" \
175 "move.l %[s0], (%[dst_i]) \n\t" \
176 "movclr.l %%acc1, %[s0] \n\t" \
177 "move.l %[s0], (%[dst_j]) \n\t" \
178 : [s0] "+r" (s0) /* register is clobbered so specify it as an input */ \
179 : [dst_i] "a" (&dst[i]), [dst_j] "a" (&dst[j]), \
180 [s1] "r" (s1), [wi] "r" (wi), [wj] "r" (wj) \
181 : "cc", "memory");
182#else
183 #define VECT_MUL_WIN_KERNEL(i, j, s0, s1, wi, wj) \
184 dst[i] = fixmul31(wj, s0) - fixmul31(wi, s1); \
185 dst[j] = fixmul31(wi, s0) + fixmul31(wj, s1);
186#endif /* CPU_COLDFIRE */
187
188static inline void vector_fixmul_window(int32_t *dst, const int32_t *src0,
189 const int32_t *src1, const int32_t *win,
190 int len)
191{
192 int i, j;
193 dst += len;
194 win += len;
195 src0+= len;
196 for(i=-len, j=len-1; i<0; i++, j--) {
197 int32_t s0 = src0[i]; /* s0 = src0[ 0 ... len-1] */
198 int32_t s1 = src1[j]; /* s1 = src1[2*len-1 ... len] */
199 int32_t wi = -win[i]; /* wi = -win[ 0 ... len-1] */
200 int32_t wj = -win[j]; /* wj = -win[2*len-1 ... len] */
201 VECT_MUL_WIN_KERNEL(i, j, s0, s1, wi, wj);
202 }
203}
204
205#if defined(CPU_ARM)
206 #define VECT_MUL_SCALAR_KERNEL(dst, src, mul) \
207 asm volatile ( \
208 "ldmia %[src]!, {r1-r4} \n\t" \
209 "smull r0, r5, r1, %[mul] \n\t" \
210 "mov r0, r0, lsr #16 \n\t" \
211 "orr r0, r0, r5, lsl #16\n\t" \
212 "smull r1, r5, r2, %[mul] \n\t" \
213 "mov r1, r1, lsr #16 \n\t" \
214 "orr r1, r1, r5, lsl #16\n\t" \
215 "smull r2, r5, r3, %[mul] \n\t" \
216 "mov r2, r2, lsr #16 \n\t" \
217 "orr r2, r2, r5, lsl #16\n\t" \
218 "smull r3, r5, r4, %[mul] \n\t" \
219 "mov r3, r3, lsr #16 \n\t" \
220 "orr r3, r3, r5, lsl #16\n\t" \
221 "stmia %[dst]!, {r0-r3} \n" \
222 : [dst]"+r"(dst), [src]"+r"(src) \
223 : [mul]"r"(mul) \
224 : "r0", "r1", "r2", "r3", "r4", "r5", "memory");
225#else
226 #define VECT_MUL_SCALAR_KERNEL(dst, src, mul) \
227 dst[i ] = fixmul16(src[i ], mul); \
228 dst[i+1] = fixmul16(src[i+1], mul); \
229 dst[i+2] = fixmul16(src[i+2], mul); \
230 dst[i+3] = fixmul16(src[i+3], mul);
231#endif /* CPU_ARM, CPU_COLDFIRE */
232
233static inline void vector_fixmul_scalar(int32_t *dst, const int32_t *src,
234 int32_t mul, int len)
235{
236 /* len is _always_ a multiple of 4, because len is the difference of sfb's
237 * which themselves are always a multiple of 4. */
238 int i;
239 for (i=0; i<len; i+=4) {
240 VECT_MUL_SCALAR_KERNEL(dst, src, mul);
241 }
242}
243
244static inline int av_clip(int a, int amin, int amax)
245{
246 if (a < amin) return amin;
247 else if (a > amax) return amax;
248 else return a;
249}
250#endif /* _WMAPRO_MATH_H_ */
diff --git a/lib/rbcodec/codecs/libwmapro/wmaprodata.h b/lib/rbcodec/codecs/libwmapro/wmaprodata.h
new file mode 100644
index 0000000000..94762f7dbf
--- /dev/null
+++ b/lib/rbcodec/codecs/libwmapro/wmaprodata.h
@@ -0,0 +1,615 @@
1/*
2 * WMA 9/3/PRO compatible decoder
3 * Copyright (c) 2007 Baptiste Coudurier, Benjamin Larsson, Ulion
4 * Copyright (c) 2008 - 2009 Sascha Sommer
5 *
6 * This file is part of FFmpeg.
7 *
8 * FFmpeg is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Lesser General Public
10 * License as published by the Free Software Foundation; either
11 * version 2.1 of the License, or (at your option) any later version.
12 *
13 * FFmpeg is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * Lesser General Public License for more details.
17 *
18 * You should have received a copy of the GNU Lesser General Public
19 * License along with FFmpeg; if not, write to the Free Software
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21 */
22
23/**
24 * @file libavcodec/wmaprodata.h
25 * @brief tables for wmapro decoding
26 */
27
28#ifndef AVCODEC_WMAPRODATA_H
29#define AVCODEC_WMAPRODATA_H
30
31#include <stddef.h>
32#include <stdint.h>
33
34/* rockbox: not used
35const int32_t fixed_sin64[33] = {
36 0x00000000, 0xF9B82685, 0xF3742CA3, 0xED37EF92, 0xE70747C5, 0xE0E60686,
37 0xDAD7F3A3, 0xD4E0CB16, 0xCF043AB4, 0xC945DFED, 0xC3A94591, 0xBE31E19C,
38 0xB8E3131A, 0xB3C0200D, 0xAECC336D, 0xAA0A5B2F, 0xA57D8667, 0xA1288377,
39 0x9D0DFE55, 0x99307EE1, 0x9592675D, 0x9235F2ED, 0x8F1D343B, 0x8C4A1430,
40 0x89BE50C4, 0x877B7BED, 0x8582FAA6, 0x83D60413, 0x8275A0C1, 0x8162AA05,
41 0x809DC972, 0x80277873, 0x80000001,
42};
43*/
44/**
45 * @brief frequencies to divide the frequency spectrum into scale factor bands
46 */
47static const uint16_t critical_freq[] = {
48 100, 200, 300, 400, 510, 630, 770,
49 920, 1080, 1270, 1480, 1720, 2000, 2320,
50 2700, 3150, 3700, 4400, 5300, 6400, 7700,
51 9500, 12000, 15500, 20675, 28575, 41375, 63875,
52};
53
54/**
55 * @name Huffman tables for DPCM-coded scale factors
56 * @{
57 */
58#define HUFF_SCALE_SIZE 121
59#define HUFF_SCALE_MAXBITS 19
60static const uint16_t scale_huffcodes[HUFF_SCALE_SIZE] = {
61 0xE639, 0xE6C2, 0xE6C1, 0xE6C0, 0xE63F, 0xE63E, 0xE63D, 0xE63C,
62 0xE63B, 0xE63A, 0xE638, 0xE637, 0xE636, 0xE635, 0xE634, 0xE632,
63 0xE633, 0xE620, 0x737B, 0xE610, 0xE611, 0xE612, 0xE613, 0xE614,
64 0xE615, 0xE616, 0xE617, 0xE618, 0xE619, 0xE61A, 0xE61B, 0xE61C,
65 0xE61D, 0xE61E, 0xE61F, 0xE6C3, 0xE621, 0xE622, 0xE623, 0xE624,
66 0xE625, 0xE626, 0xE627, 0xE628, 0xE629, 0xE62A, 0xE62B, 0xE62C,
67 0xE62D, 0xE62E, 0xE62F, 0xE630, 0xE631, 0x1CDF, 0x0E60, 0x0399,
68 0x00E7, 0x001D, 0x0000, 0x0001, 0x0001, 0x0001, 0x0002, 0x0006,
69 0x0002, 0x0007, 0x0006, 0x000F, 0x0038, 0x0072, 0x039A, 0xE6C4,
70 0xE6C5, 0xE6C6, 0xE6C7, 0xE6C8, 0xE6C9, 0xE6CA, 0xE6CB, 0xE6CC,
71 0xE6CD, 0xE6CE, 0xE6CF, 0xE6D0, 0xE6D1, 0xE6D2, 0xE6D3, 0xE6D4,
72 0xE6D5, 0xE6D6, 0xE6D7, 0xE6D8, 0xE6D9, 0xE6DA, 0xE6DB, 0xE6DC,
73 0xE6DD, 0xE6DE, 0xE6DF, 0xE6E0, 0xE6E1, 0xE6E2, 0xE6E3, 0xE6E4,
74 0xE6E5, 0xE6E6, 0xE6E7, 0xE6E8, 0xE6E9, 0xE6EA, 0xE6EB, 0xE6EC,
75 0xE6ED, 0xE6EE, 0xE6EF, 0xE6F0, 0xE6F1, 0xE6F2, 0xE6F3, 0xE6F4,
76 0xE6F5,
77};
78
79static const uint8_t scale_huffbits[HUFF_SCALE_SIZE] = {
80 19, 19, 19, 19, 19, 19, 19, 19,
81 19, 19, 19, 19, 19, 19, 19, 19,
82 19, 19, 18, 19, 19, 19, 19, 19,
83 19, 19, 19, 19, 19, 19, 19, 19,
84 19, 19, 19, 19, 19, 19, 19, 19,
85 19, 19, 19, 19, 19, 19, 19, 19,
86 19, 19, 19, 19, 19, 16, 15, 13,
87 11, 8, 5, 2, 1, 3, 5, 6,
88 6, 7, 7, 7, 9, 10, 13, 19,
89 19, 19, 19, 19, 19, 19, 19, 19,
90 19, 19, 19, 19, 19, 19, 19, 19,
91 19, 19, 19, 19, 19, 19, 19, 19,
92 19, 19, 19, 19, 19, 19, 19, 19,
93 19, 19, 19, 19, 19, 19, 19, 19,
94 19, 19, 19, 19, 19, 19, 19, 19,
95 19,
96};
97/** @} */
98
99
100/**
101 * @name Huffman, run and level tables for runlevel-coded scale factors
102 * @{
103 */
104#define HUFF_SCALE_RL_SIZE 120
105#define HUFF_SCALE_RL_MAXBITS 21
106static const uint32_t scale_rl_huffcodes[HUFF_SCALE_RL_SIZE] = {
107 0x00010C, 0x000001, 0x10FE2A, 0x000003, 0x000003, 0x000001, 0x000013,
108 0x000020, 0x000029, 0x000014, 0x000016, 0x000045, 0x000049, 0x00002F,
109 0x000042, 0x00008E, 0x00008F, 0x000129, 0x000009, 0x00000D, 0x0004AC,
110 0x00002C, 0x000561, 0x0002E6, 0x00087C, 0x0002E2, 0x00095C, 0x000018,
111 0x000001, 0x000016, 0x000044, 0x00002A, 0x000007, 0x000159, 0x000143,
112 0x000128, 0x00015A, 0x00012D, 0x00002B, 0x0000A0, 0x000142, 0x00012A,
113 0x0002EF, 0x0004AF, 0x00087D, 0x004AE9, 0x0043F9, 0x000067, 0x000199,
114 0x002B05, 0x001583, 0x0021FE, 0x10FE2C, 0x000004, 0x00002E, 0x00010D,
115 0x00000A, 0x000244, 0x000017, 0x000245, 0x000011, 0x00010E, 0x00012C,
116 0x00002A, 0x00002F, 0x000121, 0x000046, 0x00087E, 0x0000BA, 0x000032,
117 0x0087F0, 0x0056DC, 0x0002EC, 0x0043FA, 0x002B6F, 0x004AE8, 0x0002B7,
118 0x10FE2B, 0x000001, 0x000051, 0x000010, 0x0002EE, 0x000B9C, 0x002576,
119 0x000198, 0x0056DD, 0x0000CD, 0x000AC0, 0x000170, 0x004AEF, 0x00002D,
120 0x0004AD, 0x0021FF, 0x0005CF, 0x002B04, 0x10FE29, 0x10FE28, 0x0002ED,
121 0x002E74, 0x021FC4, 0x004AEE, 0x010FE3, 0x087F17, 0x000000, 0x000097,
122 0x0002E3, 0x000ADA, 0x002575, 0x00173B, 0x0043FB, 0x002E75, 0x10FE2D,
123 0x0015B6, 0x00056C, 0x000057, 0x000123, 0x000120, 0x00021E, 0x000172,
124 0x0002B1,
125};
126
127static const uint8_t scale_rl_huffbits[HUFF_SCALE_RL_SIZE] = {
128 9, 2, 21, 2, 4, 5, 5,
129 6, 6, 7, 7, 7, 7, 6,
130 7, 8, 8, 9, 10, 10, 11,
131 12, 11, 12, 12, 12, 12, 11,
132 4, 5, 7, 8, 9, 9, 9,
133 9, 9, 9, 8, 8, 9, 9,
134 12, 11, 12, 15, 15, 13, 15,
135 14, 13, 14, 21, 5, 6, 9,
136 10, 10, 11, 10, 11, 9, 9,
137 6, 8, 9, 7, 12, 10, 12,
138 16, 15, 12, 15, 14, 15, 10,
139 21, 6, 7, 11, 12, 14, 14,
140 15, 15, 14, 12, 11, 15, 12,
141 11, 14, 13, 14, 21, 21, 12,
142 16, 18, 15, 17, 20, 7, 8,
143 12, 12, 14, 15, 15, 16, 21,
144 13, 11, 7, 9, 9, 10, 11,
145 10,
146};
147
148
149static const uint8_t scale_rl_run[HUFF_SCALE_RL_SIZE] = {
150 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
151 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
152 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 1, 2, 3,
153 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
154 23, 24, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
155 17, 18, 19, 20, 21, 22, 23, 24, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
156 0, 1, 0, 1, 0, 1,
157};
158
159static const uint8_t scale_rl_level[HUFF_SCALE_RL_SIZE] = {
160 0, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
161 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
162 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4,
163 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
164 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
165 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
166 7, 7, 8, 8, 9, 9,
167};
168/** @} */
169
170
171/**
172 * @name Huffman, run and level codes for runlevel-coded coefficients
173 * @{
174 */
175#define HUFF_COEF0_SIZE 272
176#define HUFF_COEF0_MAXBITS 21
177static const uint32_t coef0_huffcodes[HUFF_COEF0_SIZE] = {
178 0x00004A, 0x00002B, 0x000000, 0x000003, 0x000006, 0x000009, 0x00000F,
179 0x000010, 0x000016, 0x000011, 0x000016, 0x000028, 0x00002F, 0x000026,
180 0x000029, 0x000045, 0x000055, 0x00005D, 0x000042, 0x00004E, 0x000051,
181 0x00005E, 0x00008D, 0x0000A8, 0x0000AD, 0x000080, 0x000096, 0x00009F,
182 0x0000AA, 0x0000BE, 0x00011C, 0x000153, 0x000158, 0x000170, 0x000104,
183 0x00010D, 0x000105, 0x000103, 0x00012F, 0x000177, 0x000175, 0x000157,
184 0x000174, 0x000225, 0x00023B, 0x00020D, 0x00021F, 0x000281, 0x00027B,
185 0x000282, 0x0002AC, 0x0002FD, 0x00044F, 0x000478, 0x00044D, 0x0002EC,
186 0x00044E, 0x000564, 0x000409, 0x00040B, 0x000501, 0x000545, 0x0004F3,
187 0x000541, 0x00043B, 0x0004F1, 0x0004F4, 0x0008FD, 0x000A94, 0x000811,
188 0x000B88, 0x000B91, 0x000B93, 0x0008EA, 0x000899, 0x000B8A, 0x000972,
189 0x0009E5, 0x000A8F, 0x000A84, 0x000A8E, 0x000A00, 0x000830, 0x0008E8,
190 0x000B95, 0x000871, 0x00083A, 0x000814, 0x000873, 0x000BFE, 0x001728,
191 0x001595, 0x001712, 0x00102A, 0x001021, 0x001729, 0x00152E, 0x0013C3,
192 0x001721, 0x001597, 0x00151B, 0x0010F2, 0x001403, 0x001703, 0x001503,
193 0x001708, 0x0013C1, 0x00170E, 0x00170C, 0x0010E1, 0x0011EA, 0x001020,
194 0x001500, 0x0017FA, 0x001704, 0x001705, 0x0017F0, 0x0017FB, 0x0021E6,
195 0x002B2D, 0x0020C6, 0x002B29, 0x002E4A, 0x0023AC, 0x001519, 0x0023F3,
196 0x002B2C, 0x0021C0, 0x0017FE, 0x0023D7, 0x0017F9, 0x0012E7, 0x0013C0,
197 0x002261, 0x0023D3, 0x002057, 0x002056, 0x0021D2, 0x0020C7, 0x0023D2,
198 0x0020EC, 0x0044C0, 0x002FE2, 0x00475B, 0x002A03, 0x002FE3, 0x0021E2,
199 0x0021D0, 0x002A31, 0x002E13, 0x002E05, 0x0047E5, 0x00000E, 0x000024,
200 0x000088, 0x0000B9, 0x00010C, 0x000224, 0x0002B3, 0x000283, 0x0002ED,
201 0x00047B, 0x00041E, 0x00043D, 0x0004F5, 0x0005FD, 0x000A92, 0x000B96,
202 0x000838, 0x000971, 0x000B83, 0x000B80, 0x000BF9, 0x0011D3, 0x0011E8,
203 0x0011D7, 0x001527, 0x0011F8, 0x001073, 0x0010F0, 0x0010E4, 0x0017F8,
204 0x001062, 0x001402, 0x0017E3, 0x00151A, 0x001077, 0x00152B, 0x00170D,
205 0x0021D3, 0x002E41, 0x0013C2, 0x000029, 0x0000A9, 0x00025D, 0x000419,
206 0x000544, 0x000B8B, 0x0009E4, 0x0011D2, 0x001526, 0x001724, 0x0012E6,
207 0x00150B, 0x0017FF, 0x002E26, 0x002E4B, 0x002B28, 0x0021E3, 0x002A14,
208 0x00475A, 0x002E12, 0x000057, 0x00023E, 0x000A90, 0x000BF0, 0x001072,
209 0x001502, 0x0023D6, 0x0020ED, 0x002A30, 0x0044C7, 0x00008C, 0x00047F,
210 0x00152A, 0x002262, 0x002E04, 0x0000A1, 0x0005F9, 0x000173, 0x000875,
211 0x000171, 0x00152D, 0x0002E3, 0x0017E2, 0x0002AD, 0x0021C1, 0x000479,
212 0x0021E7, 0x00041F, 0x005C4E, 0x000543, 0x005C4F, 0x000A91, 0x00898D,
213 0x000B97, 0x008746, 0x000970, 0x008745, 0x000B85, 0x00A856, 0x00152F,
214 0x010E8E, 0x0010E5, 0x00A857, 0x00170F, 0x021D11, 0x002A58, 0x010E8F,
215 0x002E40, 0x021D13, 0x002A59, 0x043A25, 0x002A02, 0x043A21, 0x0044C1,
216 0x087448, 0x0047E4, 0x043A20, 0x00542A, 0x087449, 0x00898C,
217};
218
219static const uint8_t coef0_huffbits[HUFF_COEF0_SIZE] = {
220 8, 7, 2, 3, 3, 4, 4,
221 5, 5, 6, 6, 6, 6, 7,
222 7, 7, 7, 7, 8, 8, 8,
223 8, 8, 8, 8, 9, 9, 9,
224 9, 9, 9, 9, 9, 9, 10,
225 10, 10, 10, 10, 10, 10, 10,
226 10, 10, 10, 11, 11, 11, 11,
227 11, 11, 11, 11, 11, 11, 11,
228 11, 11, 12, 12, 12, 12, 12,
229 12, 12, 12, 12, 12, 12, 13,
230 12, 12, 12, 12, 12, 12, 13,
231 13, 13, 13, 13, 13, 13, 12,
232 12, 13, 13, 13, 13, 13, 13,
233 13, 13, 14, 14, 13, 13, 14,
234 13, 13, 14, 14, 14, 14, 14,
235 14, 14, 14, 14, 14, 13, 14,
236 14, 14, 14, 14, 14, 14, 15,
237 14, 15, 14, 14, 14, 14, 14,
238 14, 15, 14, 14, 14, 14, 14,
239 14, 14, 15, 15, 15, 15, 14,
240 15, 15, 15, 15, 15, 15, 15,
241 15, 15, 15, 15, 15, 4, 7,
242 8, 9, 10, 10, 10, 11, 11,
243 11, 12, 12, 12, 12, 12, 12,
244 13, 13, 13, 13, 13, 13, 13,
245 13, 13, 13, 14, 14, 14, 14,
246 14, 14, 14, 14, 14, 13, 14,
247 15, 14, 14, 6, 9, 11, 12,
248 12, 12, 13, 13, 13, 13, 14,
249 14, 14, 14, 14, 14, 15, 15,
250 15, 15, 7, 10, 12, 13, 14,
251 14, 14, 15, 15, 15, 8, 11,
252 13, 14, 15, 9, 12, 9, 13,
253 10, 13, 10, 14, 11, 15, 11,
254 15, 12, 15, 12, 15, 12, 16,
255 12, 17, 13, 17, 13, 17, 13,
256 18, 14, 17, 14, 19, 14, 18,
257 14, 19, 14, 20, 15, 20, 15,
258 21, 15, 20, 16, 21, 16,
259};
260
261
262#define HUFF_COEF1_SIZE 244
263#define HUFF_COEF1_MAXBITS 22
264static const uint32_t coef1_huffcodes[HUFF_COEF1_SIZE] = {
265 0x0001E2, 0x00007F, 0x000000, 0x000002, 0x000008, 0x00000E, 0x000019,
266 0x00002F, 0x000037, 0x000060, 0x00006C, 0x000095, 0x0000C6, 0x0000F0,
267 0x00012E, 0x000189, 0x0001A5, 0x0001F8, 0x000253, 0x00030A, 0x000344,
268 0x00034D, 0x0003F2, 0x0004BD, 0x0005D7, 0x00062A, 0x00068B, 0x000693,
269 0x000797, 0x00097D, 0x000BAB, 0x000C52, 0x000C5E, 0x000D21, 0x000D20,
270 0x000F1A, 0x000FCE, 0x000FD1, 0x0012F1, 0x001759, 0x0018AC, 0x0018A7,
271 0x0018BF, 0x001A2B, 0x001E52, 0x001E50, 0x001E31, 0x001FB8, 0x0025E6,
272 0x0025E7, 0x002EB4, 0x002EB7, 0x003169, 0x00315B, 0x00317C, 0x00316C,
273 0x0034CA, 0x00348D, 0x003F40, 0x003CA2, 0x003F76, 0x004BC3, 0x004BE5,
274 0x003F73, 0x004BF8, 0x004BF9, 0x006131, 0x00628B, 0x006289, 0x0062DA,
275 0x00628A, 0x0062D4, 0x006997, 0x0062B4, 0x006918, 0x00794D, 0x007E7B,
276 0x007E87, 0x007EEA, 0x00794E, 0x00699D, 0x007967, 0x00699F, 0x0062DB,
277 0x007E7A, 0x007EEB, 0x00BAC0, 0x0097C9, 0x00C537, 0x00C5AB, 0x00D233,
278 0x00D338, 0x00BAC1, 0x00D23D, 0x012F91, 0x00D339, 0x00FDC8, 0x00D23C,
279 0x00FDDC, 0x00FDC9, 0x00FDDD, 0x00D33C, 0x000003, 0x000016, 0x00003E,
280 0x0000C3, 0x0001A1, 0x000347, 0x00062E, 0x000BAA, 0x000F2D, 0x001A2A,
281 0x001E58, 0x00309B, 0x003CA3, 0x005D6A, 0x00629A, 0x006996, 0x00794F,
282 0x007EE5, 0x00BAD7, 0x00C5AA, 0x00C5F4, 0x00FDDF, 0x00FDDE, 0x018A20,
283 0x018A6D, 0x01A67B, 0x01A464, 0x025F21, 0x01F9E2, 0x01F9E3, 0x00000A,
284 0x00003D, 0x000128, 0x0003C7, 0x000C24, 0x0018A3, 0x002EB1, 0x003CB2,
285 0x00691F, 0x007E79, 0x000013, 0x0000BB, 0x00034E, 0x000D14, 0x0025FD,
286 0x004BE7, 0x000024, 0x000188, 0x0007EF, 0x000035, 0x000308, 0x0012F2,
287 0x00005C, 0x0003F6, 0x0025E0, 0x00006D, 0x000698, 0x000096, 0x000C25,
288 0x0000C7, 0x000F1B, 0x0000F3, 0x0012FF, 0x000174, 0x001A66, 0x0001A0,
289 0x003099, 0x0001E4, 0x00316B, 0x000252, 0x003F31, 0x00030B, 0x004BE6,
290 0x000346, 0x0062FB, 0x00034F, 0x007966, 0x0003F5, 0x007E86, 0x0005D4,
291 0x00C511, 0x00062C, 0x00C5F5, 0x000692, 0x00F299, 0x000795, 0x00F298,
292 0x0007E9, 0x018A21, 0x00097E, 0x0175AD, 0x000C27, 0x01A67A, 0x000C57,
293 0x02EB59, 0x000D22, 0x0314D9, 0x000F19, 0x03F3C2, 0x000FCD, 0x0348CB,
294 0x0012F8, 0x04BE41, 0x0018A0, 0x03F3C1, 0x0018A1, 0x04BE40, 0x0018B7,
295 0x0629B0, 0x001A64, 0x0D2329, 0x001E30, 0x03F3C3, 0x001F9F, 0x0BAD62,
296 0x001F99, 0x0FCF00, 0x00309A, 0x0629B1, 0x002EB6, 0x175AC3, 0x00314C,
297 0x069195, 0x003168, 0x0BAD63, 0x00348E, 0x175AC1, 0x003F30, 0x07E781,
298 0x003F41, 0x0D2328, 0x003F42, 0x1F9E03, 0x004BC2, 0x175AC2, 0x003F74,
299 0x175AC0, 0x005D61, 0x3F3C05, 0x006130, 0x3F3C04, 0x0062B5,
300};
301
302static const uint8_t coef1_huffbits[HUFF_COEF1_SIZE] = {
303 9, 7, 2, 3, 4, 4, 5,
304 6, 6, 7, 7, 8, 8, 8,
305 9, 9, 9, 9, 10, 10, 10,
306 10, 10, 11, 11, 11, 11, 11,
307 11, 12, 12, 12, 12, 12, 12,
308 12, 12, 12, 13, 13, 13, 13,
309 13, 13, 13, 13, 13, 13, 14,
310 14, 14, 14, 14, 14, 14, 14,
311 14, 14, 14, 14, 14, 15, 15,
312 14, 15, 15, 15, 15, 15, 15,
313 15, 15, 15, 15, 15, 15, 15,
314 15, 15, 15, 15, 15, 15, 15,
315 15, 15, 16, 16, 16, 16, 16,
316 16, 16, 16, 17, 16, 16, 16,
317 16, 16, 16, 16, 3, 5, 6,
318 8, 9, 10, 11, 12, 12, 13,
319 13, 14, 14, 15, 15, 15, 15,
320 15, 16, 16, 16, 16, 16, 17,
321 17, 17, 17, 18, 17, 17, 4,
322 6, 9, 10, 12, 13, 14, 14,
323 15, 15, 5, 8, 10, 12, 14,
324 15, 6, 9, 11, 6, 10, 13,
325 7, 10, 14, 7, 11, 8, 12,
326 8, 12, 8, 13, 9, 13, 9,
327 14, 9, 14, 10, 14, 10, 15,
328 10, 15, 10, 15, 10, 15, 11,
329 16, 11, 16, 11, 16, 11, 16,
330 11, 17, 12, 17, 12, 17, 12,
331 18, 12, 18, 12, 18, 12, 18,
332 13, 19, 13, 18, 13, 19, 13,
333 19, 13, 20, 13, 18, 13, 20,
334 13, 20, 14, 19, 14, 21, 14,
335 19, 14, 20, 14, 21, 14, 19,
336 14, 20, 14, 21, 15, 21, 14,
337 21, 15, 22, 15, 22, 15,
338};
339
340
341static const uint16_t coef0_run[HUFF_COEF0_SIZE] = {
342 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
343 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
344 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
345 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
346 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
347 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
348 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
349 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
350 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
351 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
352 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 0, 1,
353 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
354 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
355 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 0, 1, 2, 3,
356 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
357 18, 19, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1,
358 2, 3, 4, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0,
359 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0,
360 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0,
361 1, 0, 1, 0, 1, 0,
362};
363
364static const int32_t coef0_level[HUFF_COEF0_SIZE] = {
365 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
366 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
367 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
368 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
369 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
370 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
371 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
372 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
373 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
374 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
375 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2,
376 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
377 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
378 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3,
379 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
380 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5,
381 5, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11,
382 11, 12, 12, 13, 13, 14, 14, 15, 15, 16, 16, 17, 17, 18,
383 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 24, 25,
384 25, 26, 26, 27, 27, 28,
385};
386
387
388static const uint16_t coef1_run[HUFF_COEF1_SIZE] = {
389 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
390 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
391 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
392 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
393 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
394 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 0, 1, 2, 3, 4, 5,
395 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
396 24, 25, 26, 27, 28, 29, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1,
397 2, 3, 4, 5, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 0, 1, 0,
398 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0,
399 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0,
400 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0,
401 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0,
402 1, 0, 1, 0, 1, 0, 1, 0, 0, 0,
403};
404
405static const int32_t coef1_level[HUFF_COEF1_SIZE] = {
406 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
407 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
408 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
409 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
410 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
411 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2,
412 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
413 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4,
414 4, 4, 4, 4, 5, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8, 9, 9, 10,
415 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15, 16, 16, 17, 17, 18, 18, 19,
416 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28,
417 28, 29, 29, 30, 30, 31, 31, 32, 32, 33, 33, 34, 34, 35, 35, 36, 36, 37,
418 37, 38, 38, 39, 39, 40, 40, 41, 41, 42, 42, 43, 43, 44, 44, 45, 45, 46,
419 46, 47, 47, 48, 48, 49, 49, 50, 51, 52,
420};
421/** @} */
422
423
424/**
425 * @name Huffman and vector lookup tables for vector-coded coefficients
426 * @{
427 */
428#define HUFF_VEC4_SIZE 127
429#define HUFF_VEC4_MAXBITS 14
430static const uint16_t vec4_huffcodes[HUFF_VEC4_SIZE] = {
431 0x0019, 0x0027, 0x00F2, 0x03BA, 0x0930, 0x1267, 0x0031, 0x0030,
432 0x0097, 0x0221, 0x058B, 0x0124, 0x00EB, 0x01D4, 0x03D8, 0x0584,
433 0x0364, 0x045F, 0x0F66, 0x0931, 0x24CD, 0x002F, 0x0039, 0x00E8,
434 0x02C3, 0x078A, 0x0037, 0x0029, 0x0084, 0x01B1, 0x00ED, 0x0086,
435 0x00F9, 0x03AB, 0x01EB, 0x08BC, 0x011E, 0x00F3, 0x0220, 0x058A,
436 0x00EC, 0x008E, 0x012B, 0x01EA, 0x0119, 0x04B0, 0x04B1, 0x03B8,
437 0x0691, 0x0365, 0x01ED, 0x049A, 0x0EA9, 0x0EA8, 0x08BD, 0x24CC,
438 0x0026, 0x0035, 0x00DB, 0x02C4, 0x07B2, 0x0038, 0x002B, 0x007F,
439 0x01B3, 0x00F4, 0x0091, 0x0116, 0x03BB, 0x0215, 0x0932, 0x002D,
440 0x002A, 0x008A, 0x01DE, 0x0028, 0x0020, 0x005C, 0x0090, 0x0068,
441 0x01EE, 0x00E9, 0x008D, 0x012A, 0x0087, 0x005D, 0x0118, 0x0349,
442 0x01EF, 0x01E3, 0x08B9, 0x00F0, 0x00D3, 0x0214, 0x049B, 0x00DA,
443 0x0089, 0x0125, 0x0217, 0x012D, 0x0690, 0x0094, 0x007D, 0x011F,
444 0x007E, 0x0059, 0x0127, 0x01A5, 0x0111, 0x00F8, 0x045D, 0x03B9,
445 0x0259, 0x0580, 0x02C1, 0x01DF, 0x0585, 0x0216, 0x0163, 0x01B0,
446 0x03C4, 0x08B8, 0x078B, 0x0755, 0x0581, 0x0F67, 0x0000,
447};
448
449static const uint8_t vec4_huffbits[HUFF_VEC4_SIZE] = {
450 5, 6, 8, 10, 12, 13, 6, 6,
451 8, 10, 11, 9, 8, 9, 10, 11,
452 10, 11, 12, 12, 14, 6, 6, 8,
453 10, 11, 6, 6, 8, 9, 8, 8,
454 8, 10, 9, 12, 9, 8, 10, 11,
455 8, 8, 9, 9, 9, 11, 11, 10,
456 11, 10, 9, 11, 12, 12, 12, 14,
457 6, 6, 8, 10, 11, 6, 6, 7,
458 9, 8, 8, 9, 10, 10, 12, 6,
459 6, 8, 9, 6, 6, 7, 8, 7,
460 9, 8, 8, 9, 8, 7, 9, 10,
461 9, 9, 12, 8, 8, 10, 11, 8,
462 8, 9, 10, 9, 11, 8, 7, 9,
463 7, 7, 9, 9, 9, 8, 11, 10,
464 10, 11, 10, 9, 11, 10, 9, 9,
465 10, 12, 11, 11, 11, 12, 1,
466};
467
468
469#define HUFF_VEC2_SIZE 137
470#define HUFF_VEC2_MAXBITS 12
471static const uint16_t vec2_huffcodes[HUFF_VEC2_SIZE] = {
472 0x055, 0x01C, 0x01A, 0x02B, 0x028, 0x067, 0x08B, 0x039,
473 0x170, 0x10D, 0x2A5, 0x047, 0x464, 0x697, 0x523, 0x8CB,
474 0x01B, 0x00E, 0x000, 0x010, 0x012, 0x036, 0x048, 0x04C,
475 0x0C2, 0x09B, 0x171, 0x03B, 0x224, 0x34A, 0x2D6, 0x019,
476 0x00F, 0x002, 0x014, 0x017, 0x006, 0x05D, 0x054, 0x0C7,
477 0x0B4, 0x192, 0x10E, 0x233, 0x043, 0x02C, 0x00F, 0x013,
478 0x006, 0x02F, 0x02C, 0x068, 0x077, 0x0DF, 0x111, 0x1A4,
479 0x16A, 0x2A4, 0x027, 0x011, 0x018, 0x02D, 0x00F, 0x04A,
480 0x040, 0x097, 0x01F, 0x11B, 0x022, 0x16D, 0x066, 0x035,
481 0x005, 0x02B, 0x049, 0x009, 0x075, 0x0CB, 0x0AA, 0x187,
482 0x106, 0x08A, 0x047, 0x060, 0x06E, 0x01D, 0x074, 0x0C4,
483 0x01E, 0x118, 0x1A7, 0x038, 0x042, 0x053, 0x076, 0x0A8,
484 0x0CA, 0x082, 0x110, 0x18D, 0x12D, 0x0B9, 0x0C8, 0x0DE,
485 0x01C, 0x0AB, 0x113, 0x18C, 0x10F, 0x09A, 0x0A5, 0x0B7,
486 0x11A, 0x186, 0x1A6, 0x259, 0x153, 0x18A, 0x193, 0x020,
487 0x10C, 0x046, 0x03A, 0x107, 0x149, 0x16C, 0x2D7, 0x225,
488 0x258, 0x316, 0x696, 0x317, 0x042, 0x522, 0x290, 0x8CA,
489 0x001,
490};
491
492static const uint8_t vec2_huffbits[HUFF_VEC2_SIZE] = {
493 7, 6, 6, 6, 7, 7, 8, 9,
494 9, 10, 10, 11, 11, 11, 12, 12,
495 6, 4, 5, 5, 6, 6, 7, 8,
496 8, 9, 9, 10, 10, 10, 11, 6,
497 4, 5, 5, 6, 7, 7, 8, 8,
498 9, 9, 10, 10, 11, 6, 5, 5,
499 6, 6, 7, 7, 8, 8, 9, 9,
500 10, 10, 7, 6, 6, 6, 7, 7,
501 8, 8, 9, 9, 10, 10, 7, 6,
502 7, 7, 7, 8, 8, 8, 9, 9,
503 10, 8, 7, 7, 7, 8, 8, 8,
504 9, 9, 9, 9, 8, 8, 8, 8,
505 8, 9, 9, 9, 9, 8, 8, 8,
506 9, 9, 9, 9, 10, 9, 9, 9,
507 9, 9, 9, 10, 9, 9, 9, 10,
508 10, 11, 10, 10, 10, 10, 11, 10,
509 10, 10, 11, 10, 11, 12, 11, 12,
510 3,
511};
512
513
514#define HUFF_VEC1_SIZE 101
515#define HUFF_VEC1_MAXBITS 11
516static const uint16_t vec1_huffcodes[HUFF_VEC1_SIZE] = {
517 0x01A, 0x003, 0x017, 0x010, 0x00C, 0x009, 0x005, 0x000,
518 0x00D, 0x00A, 0x009, 0x00C, 0x00F, 0x002, 0x004, 0x007,
519 0x00B, 0x00F, 0x01C, 0x006, 0x010, 0x015, 0x01C, 0x022,
520 0x03B, 0x00E, 0x019, 0x023, 0x034, 0x036, 0x03A, 0x047,
521 0x008, 0x00A, 0x01E, 0x031, 0x037, 0x050, 0x053, 0x06B,
522 0x06F, 0x08C, 0x0E8, 0x0EA, 0x0EB, 0x016, 0x03E, 0x03F,
523 0x06C, 0x089, 0x08A, 0x0A3, 0x0A4, 0x0D4, 0x0DD, 0x0EC,
524 0x0EE, 0x11A, 0x1D2, 0x024, 0x025, 0x02E, 0x027, 0x0C2,
525 0x0C0, 0x0DA, 0x0DB, 0x111, 0x144, 0x116, 0x14A, 0x145,
526 0x1B8, 0x1AB, 0x1DA, 0x1DE, 0x1DB, 0x1DF, 0x236, 0x237,
527 0x3A6, 0x3A7, 0x04D, 0x04C, 0x05E, 0x05F, 0x183, 0x182,
528 0x186, 0x221, 0x187, 0x220, 0x22E, 0x22F, 0x296, 0x354,
529 0x297, 0x355, 0x372, 0x373, 0x016,
530};
531
532static const uint8_t vec1_huffbits[HUFF_VEC1_SIZE] = {
533 7, 6, 5, 5, 5, 5, 5, 5,
534 4, 4, 4, 4, 4, 5, 5, 5,
535 5, 5, 5, 6, 6, 6, 6, 6,
536 6, 7, 7, 7, 7, 7, 7, 7,
537 8, 8, 8, 8, 8, 8, 8, 8,
538 8, 8, 8, 8, 8, 9, 9, 9,
539 9, 9, 9, 9, 9, 9, 9, 9,
540 9, 9, 9, 10, 10, 10, 10, 10,
541 10, 10, 10, 10, 10, 10, 10, 10,
542 10, 10, 10, 10, 10, 10, 10, 10,
543 10, 10, 11, 11, 11, 11, 11, 11,
544 11, 11, 11, 11, 11, 11, 11, 11,
545 11, 11, 11, 11, 5,
546};
547
548
549static const uint16_t symbol_to_vec4[HUFF_VEC4_SIZE] = {
550 0, 1, 2, 3, 4, 5, 16, 17, 18, 19,
551 20, 32, 33, 34, 35, 48, 49, 50, 64, 65,
552 80, 256, 257, 258, 259, 260, 272, 273, 274, 275,
553 288, 289, 290, 304, 305, 320, 512, 513, 514, 515,
554 528, 529, 530, 544, 545, 560, 768, 769, 770, 784,
555 785, 800, 1024, 1025, 1040, 1280, 4096, 4097, 4098, 4099,
556 4100, 4112, 4113, 4114, 4115, 4128, 4129, 4130, 4144, 4145,
557 4160, 4352, 4353, 4354, 4355, 4368, 4369, 4370, 4384, 4385,
558 4400, 4608, 4609, 4610, 4624, 4625, 4640, 4864, 4865, 4880,
559 5120, 8192, 8193, 8194, 8195, 8208, 8209, 8210, 8224, 8225,
560 8240, 8448, 8449, 8450, 8464, 8465, 8480, 8704, 8705, 8720,
561 8960, 12288, 12289, 12290, 12304, 12305, 12320, 12544, 12545, 12560,
562 12800, 16384, 16385, 16400, 16640, 20480, 0,
563};
564
565
566static const uint8_t symbol_to_vec2[HUFF_VEC2_SIZE] = {
567 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
568 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
569 30, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
570 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 64, 65,
571 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 80, 81, 82, 83, 84,
572 85, 86, 87, 88, 89, 90, 96, 97, 98, 99, 100, 101, 102, 103, 104,
573 105, 112, 113, 114, 115, 116, 117, 118, 119, 120, 128, 129, 130, 131, 132,
574 133, 134, 135, 144, 145, 146, 147, 148, 149, 150, 160, 161, 162, 163, 164,
575 165, 176, 177, 178, 179, 180, 192, 193, 194, 195, 208, 209, 210, 224, 225,
576 240, 0,
577};
578/** @} */
579
580
581/**
582 * @brief decorrelation matrix for multichannel streams
583 **/
584/* rockbox: not used
585static const float default_decorrelation_matrices[] = {
586 1.000000, 0.707031, -0.707031, 0.707031, 0.707031, 0.578125, 0.707031,
587 0.410156, 0.578125, -0.707031, 0.410156, 0.578125, 0.000000, -0.816406,
588 0.500000, 0.652344, 0.500000, 0.269531, 0.500000, 0.269531, -0.500000,
589 -0.652344, 0.500000, -0.269531, -0.500000, 0.652344, 0.500000, -0.652344,
590 0.500000, -0.269531, 0.445312, 0.601562, 0.511719, 0.371094, 0.195312,
591 0.445312, 0.371094, -0.195312, -0.601562, -0.511719, 0.445312, 0.000000,
592 -0.632812, 0.000000, 0.632812, 0.445312, -0.371094, -0.195312, 0.601562,
593 -0.511719, 0.445312, -0.601562, 0.511719, -0.371094, 0.195312, 0.410156,
594 0.558594, 0.500000, 0.410156, 0.289062, 0.148438, 0.410156, 0.410156,
595 0.000000, -0.410156, -0.578125, -0.410156, 0.410156, 0.148438, -0.500000,
596 -0.410156, 0.289062, 0.558594, 0.410156, -0.148438, -0.500000, 0.410156,
597 0.289062, -0.558594, 0.410156, -0.410156, 0.000000, 0.410156, -0.578125,
598 0.410156, 0.410156, -0.558594, 0.500000, -0.410156, 0.289062, -0.148438,
599};
600*/
601/**
602 * @brief default decorrelation matrix offsets
603 */
604/* rockbox: not used
605static const float * const default_decorrelation[] = {
606 NULL,
607 &default_decorrelation_matrices[0],
608 &default_decorrelation_matrices[1],
609 &default_decorrelation_matrices[5],
610 &default_decorrelation_matrices[14],
611 &default_decorrelation_matrices[30],
612 &default_decorrelation_matrices[55]
613};
614*/
615#endif /* AVCODEC_WMAPRODATA_H */
diff --git a/lib/rbcodec/codecs/libwmapro/wmaprodec.c b/lib/rbcodec/codecs/libwmapro/wmaprodec.c
new file mode 100644
index 0000000000..9d42c6de0f
--- /dev/null
+++ b/lib/rbcodec/codecs/libwmapro/wmaprodec.c
@@ -0,0 +1,1626 @@
1/*
2 * Wmapro compatible decoder
3 * Copyright (c) 2007 Baptiste Coudurier, Benjamin Larsson, Ulion
4 * Copyright (c) 2008 - 2009 Sascha Sommer, Benjamin Larsson
5 *
6 * This file is part of FFmpeg.
7 *
8 * FFmpeg is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Lesser General Public
10 * License as published by the Free Software Foundation; either
11 * version 2.1 of the License, or (at your option) any later version.
12 *
13 * FFmpeg is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * Lesser General Public License for more details.
17 *
18 * You should have received a copy of the GNU Lesser General Public
19 * License along with FFmpeg; if not, write to the Free Software
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21 */
22
23/**
24 * @file libavcodec/wmaprodec.c
25 * @brief wmapro decoder implementation
26 * Wmapro is an MDCT based codec comparable to wma standard or AAC.
27 * The decoding therefore consists of the following steps:
28 * - bitstream decoding
29 * - reconstruction of per-channel data
30 * - rescaling and inverse quantization
31 * - IMDCT
32 * - windowing and overlapp-add
33 *
34 * The compressed wmapro bitstream is split into individual packets.
35 * Every such packet contains one or more wma frames.
36 * The compressed frames may have a variable length and frames may
37 * cross packet boundaries.
38 * Common to all wmapro frames is the number of samples that are stored in
39 * a frame.
40 * The number of samples and a few other decode flags are stored
41 * as extradata that has to be passed to the decoder.
42 *
43 * The wmapro frames themselves are again split into a variable number of
44 * subframes. Every subframe contains the data for 2^N time domain samples
45 * where N varies between 7 and 12.
46 *
47 * Example wmapro bitstream (in samples):
48 *
49 * || packet 0 || packet 1 || packet 2 packets
50 * ---------------------------------------------------
51 * || frame 0 || frame 1 || frame 2 || frames
52 * ---------------------------------------------------
53 * || | | || | | | || || subframes of channel 0
54 * ---------------------------------------------------
55 * || | | || | | | || || subframes of channel 1
56 * ---------------------------------------------------
57 *
58 * The frame layouts for the individual channels of a wma frame does not need
59 * to be the same.
60 *
61 * However, if the offsets and lengths of several subframes of a frame are the
62 * same, the subframes of the channels can be grouped.
63 * Every group may then use special coding techniques like M/S stereo coding
64 * to improve the compression ratio. These channel transformations do not
65 * need to be applied to a whole subframe. Instead, they can also work on
66 * individual scale factor bands (see below).
67 * The coefficients that carry the audio signal in the frequency domain
68 * are transmitted as huffman-coded vectors with 4, 2 and 1 elements.
69 * In addition to that, the encoder can switch to a runlevel coding scheme
70 * by transmitting subframe_length / 128 zero coefficients.
71 *
72 * Before the audio signal can be converted to the time domain, the
73 * coefficients have to be rescaled and inverse quantized.
74 * A subframe is therefore split into several scale factor bands that get
75 * scaled individually.
76 * Scale factors are submitted for every frame but they might be shared
77 * between the subframes of a channel. Scale factors are initially DPCM-coded.
78 * Once scale factors are shared, the differences are transmitted as runlevel
79 * codes.
80 * Every subframe length and offset combination in the frame layout shares a
81 * common quantization factor that can be adjusted for every channel by a
82 * modifier.
83 * After the inverse quantization, the coefficients get processed by an IMDCT.
84 * The resulting values are then windowed with a sine window and the first half
85 * of the values are added to the second half of the output from the previous
86 * subframe in order to reconstruct the output samples.
87 */
88
89#include "ffmpeg_get_bits.h"
90#include "ffmpeg_put_bits.h"
91#include "wmaprodata.h"
92#include "wma.h"
93#include "wmaprodec.h"
94//#include "wmapro_mdct.h"
95#include "mdct_tables.h"
96#include "quant.h"
97#include "wmapro_math.h"
98#include "codecs.h"
99#include "codeclib.h"
100#include "../libasf/asf.h"
101
102/* Uncomment the following line to enable some debug output */
103//#define WMAPRO_DUMP_CTX_EN
104
105#undef DEBUGF
106#ifdef WMAPRO_DUMP_CTX_EN
107# define DEBUGF printf
108#else
109# define DEBUGF(...)
110#endif
111
112/* Some defines to make it compile */
113#define AVERROR_INVALIDDATA -1
114#define AVERROR_PATCHWELCOME -2
115#define av_log_ask_for_sample(...)
116
117/* Taken from avcodec.h */
118#define FF_INPUT_BUFFER_PADDING_SIZE 8
119
120/* Taken from libavutil/mem.h */
121#define DECLARE_ALIGNED(n,t,v) t __attribute__ ((aligned (n))) v
122
123/* Taken from libavutil/common.h */
124#define FFMIN(a,b) ((a) > (b) ? (b) : (a))
125#define FFMAX(a,b) ((a) > (b) ? (a) : (b))
126
127/* Define some multiple used constants */
128#define SQRT2_FRACT16 0x00016A0A /* 0x00016A0A = (sqrt(2)*(1<<16)) */
129#define COS_PI4_FRACT16 0x0000B505 /* 0x0000B505 = (cos(pi/4)<<16) */
130#define ONE_FRACT16 0x00010000 /* 0x00010000 = (1<<16) */
131
132/* Enable multichannel for large-memory targets only */
133#if (MEMORYSIZE > 2)
134#define WMAPRO_MAX_CHANNELS 8 ///< max number of handled channels
135#else
136#define WMAPRO_MAX_CHANNELS 2 ///< max number of handled channels
137#endif
138
139/* Current decoder limitations */
140#define MAX_SUBFRAMES 32 ///< max number of subframes per channel
141#define MAX_BANDS 29 ///< max number of scale factor bands
142#define MAX_FRAMESIZE 32768 ///< maximum compressed frame size
143
144#define WMAPRO_BLOCK_MAX_BITS 12 ///< log2 of max block size
145#define WMAPRO_BLOCK_MAX_SIZE (1 << WMAPRO_BLOCK_MAX_BITS) ///< maximum block size
146#define WMAPRO_BLOCK_SIZES (WMAPRO_BLOCK_MAX_BITS - BLOCK_MIN_BITS + 1) ///< possible block sizes
147#define WMAPRO_OUT_BUF_SIZE (WMAPRO_BLOCK_MAX_SIZE + WMAPRO_BLOCK_MAX_SIZE / 2)
148
149
150#define VLCBITS 9
151#define SCALEVLCBITS 8
152#define VEC4MAXDEPTH ((HUFF_VEC4_MAXBITS+VLCBITS-1)/VLCBITS)
153#define VEC2MAXDEPTH ((HUFF_VEC2_MAXBITS+VLCBITS-1)/VLCBITS)
154#define VEC1MAXDEPTH ((HUFF_VEC1_MAXBITS+VLCBITS-1)/VLCBITS)
155#define SCALEMAXDEPTH ((HUFF_SCALE_MAXBITS+SCALEVLCBITS-1)/SCALEVLCBITS)
156#define SCALERLMAXDEPTH ((HUFF_SCALE_RL_MAXBITS+VLCBITS-1)/VLCBITS)
157
158static VLC sf_vlc; ///< scale factor DPCM vlc
159static VLC sf_rl_vlc; ///< scale factor run length vlc
160static VLC vec4_vlc; ///< 4 coefficients per symbol
161static VLC vec2_vlc; ///< 2 coefficients per symbol
162static VLC vec1_vlc; ///< 1 coefficient per symbol
163static VLC coef_vlc[2]; ///< coefficient run length vlc codes
164//static float sin64[33]; ///< sinus table for decorrelation
165
166/* Global defined arrays to allow IRAM usage for some models. */
167static int32_t g_tmp[WMAPRO_BLOCK_MAX_SIZE] IBSS_ATTR_WMAPRO_LARGE_IRAM;
168static int32_t g_out_ch0[WMAPRO_OUT_BUF_SIZE] IBSS_ATTR;
169static int32_t g_out_ch1[WMAPRO_OUT_BUF_SIZE] IBSS_ATTR_WMAPRO_LARGE_IRAM;
170#if (WMAPRO_MAX_CHANNELS > 2)
171 static int32_t g_out_multichannel[WMAPRO_MAX_CHANNELS-2][WMAPRO_OUT_BUF_SIZE];
172#endif
173
174/**
175 * @brief frame specific decoder context for a single channel
176 */
177typedef struct {
178 int16_t prev_block_len; ///< length of the previous block
179 uint8_t transmit_coefs;
180 uint8_t num_subframes;
181 uint16_t subframe_len[MAX_SUBFRAMES]; ///< subframe length in samples
182 uint16_t subframe_offset[MAX_SUBFRAMES]; ///< subframe positions in the current frame
183 uint8_t cur_subframe; ///< current subframe number
184 uint16_t decoded_samples; ///< number of already processed samples
185 uint8_t grouped; ///< channel is part of a group
186 int quant_step; ///< quantization step for the current subframe
187 int8_t reuse_sf; ///< share scale factors between subframes
188 int8_t scale_factor_step; ///< scaling step for the current subframe
189 int max_scale_factor; ///< maximum scale factor for the current subframe
190 int saved_scale_factors[2][MAX_BANDS]; ///< resampled and (previously) transmitted scale factor values
191 int8_t scale_factor_idx; ///< index for the transmitted scale factor values (used for resampling)
192 int* scale_factors; ///< pointer to the scale factor values used for decoding
193 uint8_t table_idx; ///< index in sf_offsets for the scale factor reference block
194 int32_t* coeffs; ///< pointer to the subframe decode buffer
195 int32_t* out; ///< output buffer
196} WMAProChannelCtx;
197
198/**
199 * @brief channel group for channel transformations
200 */
201typedef struct {
202 uint8_t num_channels; ///< number of channels in the group
203 int8_t transform; ///< transform on / off
204 int8_t transform_band[MAX_BANDS]; ///< controls if the transform is enabled for a certain band
205 //float decorrelation_matrix[WMAPRO_MAX_CHANNELS*WMAPRO_MAX_CHANNELS];
206 int32_t* channel_data[WMAPRO_MAX_CHANNELS]; ///< transformation coefficients
207 int32_t fixdecorrelation_matrix[WMAPRO_MAX_CHANNELS*WMAPRO_MAX_CHANNELS];
208} WMAProChannelGrp;
209
210/**
211 * @brief main decoder context
212 */
213typedef struct WMAProDecodeCtx {
214 /* generic decoder variables */
215 uint8_t frame_data[MAX_FRAMESIZE +
216 FF_INPUT_BUFFER_PADDING_SIZE];///< compressed frame data
217 PutBitContext pb; ///< context for filling the frame_data buffer
218 int32_t* tmp; ///< IMDCT input buffer
219
220 /* frame size dependent frame information (set during initialization) */
221 uint32_t decode_flags; ///< used compression features
222 uint8_t len_prefix; ///< frame is prefixed with its length
223 uint8_t dynamic_range_compression; ///< frame contains DRC data
224 uint8_t bits_per_sample; ///< integer audio sample size for the unscaled IMDCT output (used to scale to [-1.0, 1.0])
225 uint16_t samples_per_frame; ///< number of samples to output
226 uint16_t log2_frame_size;
227 int8_t num_channels; ///< number of channels in the stream (same as AVCodecContext.num_channels)
228 int8_t lfe_channel; ///< lfe channel index
229 uint8_t max_num_subframes;
230 uint8_t subframe_len_bits; ///< number of bits used for the subframe length
231 uint8_t max_subframe_len_bit; ///< flag indicating that the subframe is of maximum size when the first subframe length bit is 1
232 uint16_t min_samples_per_subframe;
233 int8_t num_sfb[WMAPRO_BLOCK_SIZES]; ///< scale factor bands per block size
234 int16_t sfb_offsets[WMAPRO_BLOCK_SIZES][MAX_BANDS]; ///< scale factor band offsets (multiples of 4)
235 int8_t sf_offsets[WMAPRO_BLOCK_SIZES][WMAPRO_BLOCK_SIZES][MAX_BANDS]; ///< scale factor resample matrix
236 int16_t subwoofer_cutoffs[WMAPRO_BLOCK_SIZES]; ///< subwoofer cutoff values
237
238 /* packet decode state */
239 GetBitContext pgb; ///< bitstream reader context for the packet
240 uint8_t packet_offset; ///< frame offset in the packet
241 uint8_t packet_sequence_number; ///< current packet number
242 int num_saved_bits; ///< saved number of bits
243 int frame_offset; ///< frame offset in the bit reservoir
244 int subframe_offset; ///< subframe offset in the bit reservoir
245 uint8_t packet_loss; ///< set in case of bitstream error
246 uint8_t packet_done; ///< set when a packet is fully decoded
247
248 /* frame decode state */
249 uint32_t frame_num; ///< current frame number
250 GetBitContext gb; ///< bitstream reader context
251 int buf_bit_size; ///< buffer size in bits
252 int32_t samples;
253 int32_t* samples_end; ///< maximum samplebuffer pointer
254 uint8_t drc_gain; ///< gain for the DRC tool
255 int8_t skip_frame; ///< skip output step
256 int8_t parsed_all_subframes; ///< all subframes decoded?
257
258 /* subframe/block decode state */
259 int16_t subframe_len; ///< current subframe length
260 int8_t channels_for_cur_subframe; ///< number of channels that contain the subframe
261 int8_t channel_indexes_for_cur_subframe[WMAPRO_MAX_CHANNELS];
262 int8_t num_bands; ///< number of scale factor bands
263 int16_t* cur_sfb_offsets; ///< sfb offsets for the current block
264 uint8_t table_idx; ///< index for the num_sfb, sfb_offsets, sf_offsets and subwoofer_cutoffs tables
265 int8_t esc_len; ///< length of escaped coefficients
266
267 uint8_t num_chgroups; ///< number of channel groups
268 WMAProChannelGrp chgroup[WMAPRO_MAX_CHANNELS]; ///< channel group information
269
270 WMAProChannelCtx channel[WMAPRO_MAX_CHANNELS]; ///< per channel data
271} WMAProDecodeCtx;
272
273/* static decode context, to avoid malloc */
274static WMAProDecodeCtx globWMAProDecCtx;
275
276/**
277 *@brief helper function to print the most important members of the context
278 *@param s context
279 */
280#ifdef WMAPRO_DUMP_CTX_EN
281static void dump_context(WMAProDecodeCtx *s)
282{
283#define PRINT(a, b) printf(" %s = %d\n", a, b);
284#define PRINT_HEX(a, b) printf(" %s = %x\n", a, b);
285
286 PRINT("ed sample bit depth", s->bits_per_sample);
287 PRINT_HEX("ed decode flags", s->decode_flags);
288 PRINT("samples per frame", s->samples_per_frame);
289 PRINT("log2 frame size", s->log2_frame_size);
290 PRINT("max num subframes", s->max_num_subframes);
291 PRINT("len prefix", s->len_prefix);
292 PRINT("num channels", s->num_channels);
293}
294#endif
295
296/**
297 *@brief Initialize the decoder.
298 *@param avctx codec context
299 *@return 0 on success, -1 otherwise
300 */
301int decode_init(asf_waveformatex_t *wfx)
302{
303 memset(&globWMAProDecCtx, 0, sizeof(WMAProDecodeCtx));
304 WMAProDecodeCtx *s = &globWMAProDecCtx;
305 uint8_t *edata_ptr = wfx->data;
306 unsigned int channel_mask;
307 int i;
308 int log2_max_num_subframes;
309 int num_possible_block_sizes;
310
311 /* Use globally defined array. Allows IRAM usage for models with large IRAM. */
312 s->tmp = g_tmp;
313
314 /* Use globally defined arrays. Allows IRAM usage for up to 2 channels. */
315 s->channel[0].out = g_out_ch0;
316 s->channel[1].out = g_out_ch1;
317#if (WMAPRO_MAX_CHANNELS > 2)
318 for (i=2; i<WMAPRO_MAX_CHANNELS; ++i)
319 s->channel[i].out = g_out_multichannel[i-2];
320#endif
321
322#if defined(CPU_COLDFIRE)
323 coldfire_set_macsr(EMAC_FRACTIONAL | EMAC_SATURATE);
324#endif
325
326 init_put_bits(&s->pb, s->frame_data, MAX_FRAMESIZE);
327
328 if (wfx->datalen >= 18) {
329 s->decode_flags = AV_RL16(edata_ptr+14);
330 channel_mask = AV_RL32(edata_ptr+2);
331 s->bits_per_sample = AV_RL16(edata_ptr);
332 /** dump the extradata */
333 for (i = 0; i < wfx->datalen; i++)
334 DEBUGF("[%x] ", wfx->data[i]);
335 DEBUGF("\n");
336
337 } else {
338 DEBUGF("Unknown extradata size\n");
339 return AVERROR_INVALIDDATA;
340 }
341
342 /** generic init */
343 s->log2_frame_size = av_log2(wfx->blockalign) + 4;
344
345 /** frame info */
346 s->skip_frame = 1; /** skip first frame */
347 s->packet_loss = 1;
348 s->len_prefix = (s->decode_flags & 0x40);
349
350 if (!s->len_prefix) {
351 DEBUGF("no length prefix\n");
352 return AVERROR_INVALIDDATA;
353 }
354
355 /** get frame len */
356 s->samples_per_frame = 1 << ff_wma_get_frame_len_bits(wfx->rate,
357 3, s->decode_flags);
358
359 /** init previous block len */
360 for (i = 0; i < wfx->channels; i++)
361 s->channel[i].prev_block_len = s->samples_per_frame;
362
363 /** subframe info */
364 log2_max_num_subframes = ((s->decode_flags & 0x38) >> 3);
365 s->max_num_subframes = 1 << log2_max_num_subframes;
366 if (s->max_num_subframes == 16)
367 s->max_subframe_len_bit = 1;
368 s->subframe_len_bits = av_log2(log2_max_num_subframes) + 1;
369
370 num_possible_block_sizes = log2_max_num_subframes + 1;
371 s->min_samples_per_subframe = s->samples_per_frame / s->max_num_subframes;
372 s->dynamic_range_compression = (s->decode_flags & 0x80);
373
374 if (s->max_num_subframes > MAX_SUBFRAMES) {
375 DEBUGF("invalid number of subframes %i\n",
376 s->max_num_subframes);
377 return AVERROR_INVALIDDATA;
378 }
379
380 s->num_channels = wfx->channels;
381
382 /** extract lfe channel position */
383 s->lfe_channel = -1;
384
385 if (channel_mask & 8) {
386 unsigned int mask;
387 for (mask = 1; mask < 16; mask <<= 1) {
388 if (channel_mask & mask)
389 ++s->lfe_channel;
390 }
391 }
392
393 if (s->num_channels < 0) {
394 DEBUGF("invalid number of channels %d\n", s->num_channels);
395 return AVERROR_INVALIDDATA;
396 } else if (s->num_channels > WMAPRO_MAX_CHANNELS) {
397 DEBUGF("unsupported number of channels\n");
398 return AVERROR_PATCHWELCOME;
399 }
400
401 INIT_VLC_STATIC(&sf_vlc, SCALEVLCBITS, HUFF_SCALE_SIZE,
402 scale_huffbits, 1, 1,
403 scale_huffcodes, 2, 2, 616, IBSS_ATTR_WMAPRO_VLC_TABLES);
404
405 INIT_VLC_STATIC(&sf_rl_vlc, VLCBITS, HUFF_SCALE_RL_SIZE,
406 scale_rl_huffbits, 1, 1,
407 scale_rl_huffcodes, 4, 4, 1406, IBSS_ATTR_WMAPRO_VLC_TABLES);
408
409 INIT_VLC_STATIC(&coef_vlc[0], VLCBITS, HUFF_COEF0_SIZE,
410 coef0_huffbits, 1, 1,
411 coef0_huffcodes, 4, 4, 2108, IBSS_ATTR_WMAPRO_VLC_TABLES);
412
413 INIT_VLC_STATIC(&coef_vlc[1], VLCBITS, HUFF_COEF1_SIZE,
414 coef1_huffbits, 1, 1,
415 coef1_huffcodes, 4, 4, 3912, IBSS_ATTR_WMAPRO_VLC_TABLES);
416
417 INIT_VLC_STATIC(&vec4_vlc, VLCBITS, HUFF_VEC4_SIZE,
418 vec4_huffbits, 1, 1,
419 vec4_huffcodes, 2, 2, 604, IBSS_ATTR_WMAPRO_VLC_TABLES);
420
421 INIT_VLC_STATIC(&vec2_vlc, VLCBITS, HUFF_VEC2_SIZE,
422 vec2_huffbits, 1, 1,
423 vec2_huffcodes, 2, 2, 562, IBSS_ATTR_WMAPRO_VLC_TABLES);
424
425 INIT_VLC_STATIC(&vec1_vlc, VLCBITS, HUFF_VEC1_SIZE,
426 vec1_huffbits, 1, 1,
427 vec1_huffcodes, 2, 2, 562, IBSS_ATTR_WMAPRO_VLC_TABLES);
428
429 /** calculate number of scale factor bands and their offsets
430 for every possible block size */
431 for (i = 0; i < num_possible_block_sizes; i++) {
432 int subframe_len = s->samples_per_frame >> i;
433 int x;
434 int band = 1;
435
436 s->sfb_offsets[i][0] = 0;
437
438 for (x = 0; x < MAX_BANDS-1 && s->sfb_offsets[i][band - 1] < subframe_len; x++) {
439 int offset = (subframe_len * 2 * critical_freq[x])
440 / wfx->rate + 2;
441 offset &= ~3;
442 if (offset > s->sfb_offsets[i][band - 1])
443 s->sfb_offsets[i][band++] = offset;
444 }
445 s->sfb_offsets[i][band - 1] = subframe_len;
446 s->num_sfb[i] = band - 1;
447 }
448
449
450 /** Scale factors can be shared between blocks of different size
451 as every block has a different scale factor band layout.
452 The matrix sf_offsets is needed to find the correct scale factor.
453 */
454
455 for (i = 0; i < num_possible_block_sizes; i++) {
456 int b;
457 for (b = 0; b < s->num_sfb[i]; b++) {
458 int x;
459 int offset = ((s->sfb_offsets[i][b]
460 + s->sfb_offsets[i][b + 1] - 1) << i) >> 1;
461 for (x = 0; x < num_possible_block_sizes; x++) {
462 int v = 0;
463 while (s->sfb_offsets[x][v + 1] << x < offset)
464 ++v;
465 s->sf_offsets[i][x][b] = v;
466 }
467 }
468 }
469
470 /** calculate subwoofer cutoff values */
471 for (i = 0; i < num_possible_block_sizes; i++) {
472 int block_size = s->samples_per_frame >> i;
473 int cutoff = (440*block_size + 3 * (wfx->rate >> 1) - 1)
474 / wfx->rate;
475 s->subwoofer_cutoffs[i] = av_clip(cutoff, 4, block_size);
476 }
477
478#if 0
479 /** calculate sine values for the decorrelation matrix */
480 for (i = 0; i < 33; i++)
481 sin64[i] = sin(i*M_PI / 64.0);
482#endif
483
484#ifdef WMAPRO_DUMP_CTX_EN
485 dump_context(s);
486#endif
487 return 0;
488}
489
490/**
491 *@brief Decode the subframe length.
492 *@param s context
493 *@param offset sample offset in the frame
494 *@return decoded subframe length on success, < 0 in case of an error
495 */
496static int decode_subframe_length(WMAProDecodeCtx *s, int offset)
497{
498 int frame_len_shift = 0;
499 int subframe_len;
500
501 /** no need to read from the bitstream when only one length is possible */
502 if (offset == s->samples_per_frame - s->min_samples_per_subframe)
503 return s->min_samples_per_subframe;
504
505 /** 1 bit indicates if the subframe is of maximum length */
506 if (s->max_subframe_len_bit) {
507 if (get_bits1(&s->gb))
508 frame_len_shift = 1 + get_bits(&s->gb, s->subframe_len_bits-1);
509 } else
510 frame_len_shift = get_bits(&s->gb, s->subframe_len_bits);
511
512 subframe_len = s->samples_per_frame >> frame_len_shift;
513
514 /** sanity check the length */
515 if (subframe_len < s->min_samples_per_subframe ||
516 subframe_len > s->samples_per_frame) {
517 DEBUGF("broken frame: subframe_len %i\n",
518 subframe_len);
519 return AVERROR_INVALIDDATA;
520 }
521 return subframe_len;
522}
523
524/**
525 *@brief Decode how the data in the frame is split into subframes.
526 * Every WMA frame contains the encoded data for a fixed number of
527 * samples per channel. The data for every channel might be split
528 * into several subframes. This function will reconstruct the list of
529 * subframes for every channel.
530 *
531 * If the subframes are not evenly split, the algorithm estimates the
532 * channels with the lowest number of total samples.
533 * Afterwards, for each of these channels a bit is read from the
534 * bitstream that indicates if the channel contains a subframe with the
535 * next subframe size that is going to be read from the bitstream or not.
536 * If a channel contains such a subframe, the subframe size gets added to
537 * the channel's subframe list.
538 * The algorithm repeats these steps until the frame is properly divided
539 * between the individual channels.
540 *
541 *@param s context
542 *@return 0 on success, < 0 in case of an error
543 */
544static int decode_tilehdr(WMAProDecodeCtx *s)
545{
546 uint16_t num_samples[WMAPRO_MAX_CHANNELS]; /** sum of samples for all currently known subframes of a channel */
547 uint8_t contains_subframe[WMAPRO_MAX_CHANNELS]; /** flag indicating if a channel contains the current subframe */
548 int channels_for_cur_subframe = s->num_channels; /** number of channels that contain the current subframe */
549 int fixed_channel_layout = 0; /** flag indicating that all channels use the same subframe offsets and sizes */
550 int min_channel_len = 0; /** smallest sum of samples (channels with this length will be processed first) */
551 int c;
552
553 /* Should never consume more than 3073 bits (256 iterations for the
554 * while loop when always the minimum amount of 128 samples is substracted
555 * from missing samples in the 8 channel case).
556 * 1 + BLOCK_MAX_SIZE * MAX_CHANNELS / BLOCK_MIN_SIZE * (MAX_CHANNELS + 4)
557 */
558
559 /** reset tiling information */
560 for (c = 0; c < s->num_channels; c++)
561 s->channel[c].num_subframes = 0;
562
563 memset(num_samples, 0, sizeof(num_samples));
564
565 if (s->max_num_subframes == 1 || get_bits1(&s->gb))
566 fixed_channel_layout = 1;
567
568 /** loop until the frame data is split between the subframes */
569 do {
570 int subframe_len;
571
572 /** check which channels contain the subframe */
573 for (c = 0; c < s->num_channels; c++) {
574 if (num_samples[c] == min_channel_len) {
575 if (fixed_channel_layout || channels_for_cur_subframe == 1 ||
576 (min_channel_len == s->samples_per_frame - s->min_samples_per_subframe))
577 contains_subframe[c] = 1;
578 else
579 contains_subframe[c] = get_bits1(&s->gb);
580 } else
581 contains_subframe[c] = 0;
582 }
583
584 /** get subframe length, subframe_len == 0 is not allowed */
585 if ((subframe_len = decode_subframe_length(s, min_channel_len)) <= 0)
586 return AVERROR_INVALIDDATA;
587
588 /** add subframes to the individual channels and find new min_channel_len */
589 min_channel_len += subframe_len;
590 for (c = 0; c < s->num_channels; c++) {
591 WMAProChannelCtx* chan = &s->channel[c];
592
593 if (contains_subframe[c]) {
594 if (chan->num_subframes >= MAX_SUBFRAMES) {
595 DEBUGF("broken frame: num subframes > 31\n");
596 return AVERROR_INVALIDDATA;
597 }
598 chan->subframe_len[chan->num_subframes] = subframe_len;
599 num_samples[c] += subframe_len;
600 ++chan->num_subframes;
601 if (num_samples[c] > s->samples_per_frame) {
602 DEBUGF("broken frame: "
603 "channel len > samples_per_frame\n");
604 return AVERROR_INVALIDDATA;
605 }
606 } else if (num_samples[c] <= min_channel_len) {
607 if (num_samples[c] < min_channel_len) {
608 channels_for_cur_subframe = 0;
609 min_channel_len = num_samples[c];
610 }
611 ++channels_for_cur_subframe;
612 }
613 }
614 } while (min_channel_len < s->samples_per_frame);
615
616 for (c = 0; c < s->num_channels; c++) {
617 int i;
618 int offset = 0;
619 for (i = 0; i < s->channel[c].num_subframes; i++) {
620 DEBUGF("frame[%i] channel[%i] subframe[%i]"
621 " len %i\n", s->frame_num, c, i,
622 s->channel[c].subframe_len[i]);
623 s->channel[c].subframe_offset[i] = offset;
624 offset += s->channel[c].subframe_len[i];
625 }
626 }
627
628 return 0;
629}
630
631#if 0
632/**
633 *@brief Calculate a decorrelation matrix from the bitstream parameters.
634 *@param s codec context
635 *@param chgroup channel group for which the matrix needs to be calculated
636 */
637static void decode_decorrelation_matrix(WMAProDecodeCtx *s,
638 WMAProChannelGrp *chgroup)
639{
640 int i;
641 int offset = 0;
642 int8_t rotation_offset[WMAPRO_MAX_CHANNELS * WMAPRO_MAX_CHANNELS];
643 memset(chgroup->decorrelation_matrix, 0, s->num_channels *
644 s->num_channels * sizeof(*chgroup->decorrelation_matrix));
645
646 for (i = 0; i < chgroup->num_channels * (chgroup->num_channels - 1) >> 1; i++)
647 rotation_offset[i] = get_bits(&s->gb, 6);
648
649 for (i = 0; i < chgroup->num_channels; i++) {
650 chgroup->decorrelation_matrix[chgroup->num_channels * i + i] =
651 get_bits1(&s->gb) ? 1.0 : -1.0;
652
653 if(chgroup->decorrelation_matrix[chgroup->num_channels * i + i] > 0)
654 chgroup->fixdecorrelation_matrix[chgroup->num_channels * i + i] = ONE_FRACT16;
655 else
656 chgroup->fixdecorrelation_matrix[chgroup->num_channels * i + i] = -ONE_FRACT16;
657 }
658
659 for (i = 1; i < chgroup->num_channels; i++) {
660 int x;
661 for (x = 0; x < i; x++) {
662 int y;
663 for (y = 0; y < i + 1; y++) {
664 float v1 = chgroup->decorrelation_matrix[x * chgroup->num_channels + y];
665 float v2 = chgroup->decorrelation_matrix[i * chgroup->num_channels + y];
666 int32_t f1 = chgroup->fixdecorrelation_matrix[x * chgroup->num_channels + y];
667 int32_t f2 = chgroup->fixdecorrelation_matrix[i * chgroup->num_channels + y];
668 int n = rotation_offset[offset + x];
669 float sinv;
670 float cosv;
671 int32_t fixsinv;
672 int32_t fixcosv;
673
674 if (n < 32) {
675 sinv = sin64[n];
676 cosv = sin64[32 - n];
677 fixsinv = fixed_sin64[n];
678 fixcosv = fixed_sin64[32-n];
679 } else {
680 sinv = sin64[64 - n];
681 cosv = -sin64[n - 32];
682 fixsinv = fixed_sin64[64-n];
683 fixcosv = -fixed_sin64[n-32];
684 }
685
686 chgroup->decorrelation_matrix[y + x * chgroup->num_channels] =
687 (v1 * sinv) - (v2 * cosv);
688 chgroup->decorrelation_matrix[y + i * chgroup->num_channels] =
689 (v1 * cosv) + (v2 * sinv);
690 chgroup->fixdecorrelation_matrix[y + x * chgroup->num_channels] =
691 fixmul31(f1, fixsinv) - fixmul31(f2, fixcosv);
692 chgroup->fixdecorrelation_matrix[y + i * chgroup->num_channels] =
693 fixmul31(f1, fixcosv) + fixmul31(f2, fixsinv);
694
695 }
696 }
697 offset += i;
698 }
699}
700#endif
701
702/**
703 *@brief Decode channel transformation parameters
704 *@param s codec context
705 *@return 0 in case of success, < 0 in case of bitstream errors
706 */
707static int decode_channel_transform(WMAProDecodeCtx* s)
708{
709 int i;
710 /* should never consume more than 1921 bits for the 8 channel case
711 * 1 + MAX_CHANNELS * (MAX_CHANNELS + 2 + 3 * MAX_CHANNELS * MAX_CHANNELS
712 * + MAX_CHANNELS + MAX_BANDS + 1)
713 */
714
715 /** in the one channel case channel transforms are pointless */
716 s->num_chgroups = 0;
717 if (s->num_channels > 1) {
718 int remaining_channels = s->channels_for_cur_subframe;
719
720 if (get_bits1(&s->gb)) {
721 DEBUGF("unsupported channel transform bit\n");
722 return AVERROR_INVALIDDATA;
723 }
724
725 for (s->num_chgroups = 0; remaining_channels &&
726 s->num_chgroups < s->channels_for_cur_subframe; s->num_chgroups++) {
727 WMAProChannelGrp* chgroup = &s->chgroup[s->num_chgroups];
728 int32_t** channel_data = chgroup->channel_data;
729 chgroup->num_channels = 0;
730 chgroup->transform = 0;
731
732 /** decode channel mask */
733 if (remaining_channels > 2) {
734 for (i = 0; i < s->channels_for_cur_subframe; i++) {
735 int channel_idx = s->channel_indexes_for_cur_subframe[i];
736 if (!s->channel[channel_idx].grouped
737 && get_bits1(&s->gb)) {
738 ++chgroup->num_channels;
739 s->channel[channel_idx].grouped = 1;
740 *channel_data++ = s->channel[channel_idx].coeffs;
741 }
742 }
743 } else {
744 chgroup->num_channels = remaining_channels;
745 for (i = 0; i < s->channels_for_cur_subframe; i++) {
746 int channel_idx = s->channel_indexes_for_cur_subframe[i];
747 if (!s->channel[channel_idx].grouped)
748 *channel_data++ = s->channel[channel_idx].coeffs;
749 s->channel[channel_idx].grouped = 1;
750 }
751 }
752
753 /** decode transform type */
754 if (chgroup->num_channels == 2) {
755 if (get_bits1(&s->gb)) {
756 if (get_bits1(&s->gb)) {
757 DEBUGF("unsupported channel transform type\n");
758 }
759 } else {
760 chgroup->transform = 1;
761 if (s->num_channels == 2) {
762 chgroup->fixdecorrelation_matrix[0] = ONE_FRACT16;
763 chgroup->fixdecorrelation_matrix[1] = -ONE_FRACT16;
764 chgroup->fixdecorrelation_matrix[2] = ONE_FRACT16;
765 chgroup->fixdecorrelation_matrix[3] = ONE_FRACT16;
766 } else {
767 /** cos(pi/4) */
768 chgroup->fixdecorrelation_matrix[0] = COS_PI4_FRACT16;
769 chgroup->fixdecorrelation_matrix[1] = -COS_PI4_FRACT16;
770 chgroup->fixdecorrelation_matrix[2] = COS_PI4_FRACT16;
771 chgroup->fixdecorrelation_matrix[3] = COS_PI4_FRACT16;
772 }
773 }
774 } else if (chgroup->num_channels > 2) {
775 DEBUGF("in wmaprodec.c: Multichannel streams still not supported\n");
776 return -1;
777#if 0
778 if (get_bits1(&s->gb)) {
779 chgroup->transform = 1;
780 if (get_bits1(&s->gb)) {
781 decode_decorrelation_matrix(s, chgroup);
782 } else {
783 /** FIXME: more than 6 coupled channels not supported */
784 if (chgroup->num_channels > 6) {
785 av_log_ask_for_sample(s->avctx,
786 "coupled channels > 6\n");
787 } else {
788 memcpy(chgroup->decorrelation_matrix,
789 default_decorrelation[chgroup->num_channels],
790 chgroup->num_channels * chgroup->num_channels *
791 sizeof(*chgroup->decorrelation_matrix));
792 }
793 }
794 }
795#endif
796 }
797
798 /** decode transform on / off */
799 if (chgroup->transform) {
800 if (!get_bits1(&s->gb)) {
801 int i;
802 /** transform can be enabled for individual bands */
803 for (i = 0; i < s->num_bands; i++) {
804 chgroup->transform_band[i] = get_bits1(&s->gb);
805 }
806 } else {
807 memset(chgroup->transform_band, 1, s->num_bands);
808 }
809 }
810 remaining_channels -= chgroup->num_channels;
811 }
812 }
813 return 0;
814}
815
816/**
817 *@brief Extract the coefficients from the bitstream.
818 *@param s codec context
819 *@param c current channel number
820 *@return 0 on success, < 0 in case of bitstream errors
821 */
822static int decode_coeffs(WMAProDecodeCtx *s, int c)
823{
824 int vlctable;
825 VLC* vlc;
826 WMAProChannelCtx* ci = &s->channel[c];
827 int rl_mode = 0;
828 int cur_coeff = 0;
829 int num_zeros = 0;
830 const uint16_t* run;
831 const int32_t* level;
832
833 DEBUGF("decode coefficients for channel %i\n", c);
834
835 vlctable = get_bits1(&s->gb);
836 vlc = &coef_vlc[vlctable];
837
838 if (vlctable) {
839 run = coef1_run;
840 level = coef1_level;
841 } else {
842 run = coef0_run;
843 level = coef0_level;
844 }
845
846 /** decode vector coefficients (consumes up to 167 bits per iteration for
847 4 vector coded large values) */
848 while (!rl_mode && cur_coeff + 3 < s->subframe_len) {
849 int32_t vals[4];
850 int i;
851 unsigned int idx;
852
853 idx = get_vlc2(&s->gb, vec4_vlc.table, VLCBITS, VEC4MAXDEPTH);
854
855 if (idx == HUFF_VEC4_SIZE - 1) {
856 for (i = 0; i < 4; i += 2) {
857 idx = get_vlc2(&s->gb, vec2_vlc.table, VLCBITS, VEC2MAXDEPTH);
858 if (idx == HUFF_VEC2_SIZE - 1) {
859 int v0, v1;
860 v0 = get_vlc2(&s->gb, vec1_vlc.table, VLCBITS, VEC1MAXDEPTH);
861 if (v0 == HUFF_VEC1_SIZE - 1)
862 v0 += ff_wma_get_large_val(&s->gb);
863 v1 = get_vlc2(&s->gb, vec1_vlc.table, VLCBITS, VEC1MAXDEPTH);
864 if (v1 == HUFF_VEC1_SIZE - 1)
865 v1 += ff_wma_get_large_val(&s->gb);
866
867 vals[i ] = v0;
868 vals[i+1] = v1;
869 } else {
870 vals[i ] = symbol_to_vec2[idx] >> 4;
871 vals[i+1] = symbol_to_vec2[idx] & 0xF;
872 }
873 }
874 } else {
875 vals[0] = (symbol_to_vec4[idx] >> 12);
876 vals[1] = (symbol_to_vec4[idx] >> 8) & 0xF;
877 vals[2] = (symbol_to_vec4[idx] >> 4) & 0xF;
878 vals[3] = (symbol_to_vec4[idx] ) & 0xF;
879 }
880
881 /* Rockbox: To be able to use rockbox' optimized mdct we need to
882 * pre-shift the values by >>(nbits-3). */
883 const int nbits = av_log2(s->subframe_len)+1;
884 const int shift = WMAPRO_FRACT-(nbits-3);
885
886 /** decode sign */
887 for (i = 0; i < 4; i++) {
888 if (vals[i]) {
889 int sign = get_bits1(&s->gb) - 1;
890 /* Rockbox: To be able to use rockbox' optimized mdct we need
891 * invert the sign. */
892 ci->coeffs[cur_coeff] = (sign == -1)? vals[i]<<shift : -vals[i]<<shift;
893 num_zeros = 0;
894 } else {
895 ci->coeffs[cur_coeff] = 0;
896 /** switch to run level mode when subframe_len / 128 zeros
897 were found in a row */
898 rl_mode |= (++num_zeros > s->subframe_len >> 8);
899 }
900 ++cur_coeff;
901 }
902 }
903
904 /** decode run level coded coefficients */
905 if (rl_mode) {
906 memset(&ci->coeffs[cur_coeff], 0,
907 sizeof(*ci->coeffs) * (s->subframe_len - cur_coeff));
908
909 if (ff_wma_run_level_decode(&s->gb, vlc,
910 level, run, 1, ci->coeffs,
911 cur_coeff, s->subframe_len,
912 s->subframe_len, s->esc_len, 0))
913 return AVERROR_INVALIDDATA;
914
915 }
916 return 0;
917}
918
919/**
920 *@brief Extract scale factors from the bitstream.
921 *@param s codec context
922 *@return 0 on success, < 0 in case of bitstream errors
923 */
924static int decode_scale_factors(WMAProDecodeCtx* s)
925{
926 int i;
927
928 /** should never consume more than 5344 bits
929 * MAX_CHANNELS * (1 + MAX_BANDS * 23)
930 */
931
932 for (i = 0; i < s->channels_for_cur_subframe; i++) {
933 int c = s->channel_indexes_for_cur_subframe[i];
934 int* sf;
935 int* sf_end;
936 s->channel[c].scale_factors = s->channel[c].saved_scale_factors[!s->channel[c].scale_factor_idx];
937 sf_end = s->channel[c].scale_factors + s->num_bands;
938
939 /** resample scale factors for the new block size
940 * as the scale factors might need to be resampled several times
941 * before some new values are transmitted, a backup of the last
942 * transmitted scale factors is kept in saved_scale_factors
943 */
944 if (s->channel[c].reuse_sf) {
945 const int8_t* sf_offsets = s->sf_offsets[s->table_idx][s->channel[c].table_idx];
946 int b;
947 for (b = 0; b < s->num_bands; b++)
948 s->channel[c].scale_factors[b] =
949 s->channel[c].saved_scale_factors[s->channel[c].scale_factor_idx][*sf_offsets++];
950 }
951
952 if (!s->channel[c].cur_subframe || get_bits1(&s->gb)) {
953
954 if (!s->channel[c].reuse_sf) {
955 int val;
956 /** decode DPCM coded scale factors */
957 s->channel[c].scale_factor_step = get_bits(&s->gb, 2) + 1;
958 val = 45 / s->channel[c].scale_factor_step;
959 for (sf = s->channel[c].scale_factors; sf < sf_end; sf++) {
960 val += get_vlc2(&s->gb, sf_vlc.table, SCALEVLCBITS, SCALEMAXDEPTH) - 60;
961 *sf = val;
962 }
963 } else {
964 int i;
965 /** run level decode differences to the resampled factors */
966 for (i = 0; i < s->num_bands; i++) {
967 int idx;
968 int skip;
969 int val;
970 int sign;
971
972 idx = get_vlc2(&s->gb, sf_rl_vlc.table, VLCBITS, SCALERLMAXDEPTH);
973
974 if (!idx) {
975 uint32_t code = get_bits(&s->gb, 14);
976 val = code >> 6;
977 sign = (code & 1) - 1;
978 skip = (code & 0x3f) >> 1;
979 } else if (idx == 1) {
980 break;
981 } else {
982 skip = scale_rl_run[idx];
983 val = scale_rl_level[idx];
984 sign = get_bits1(&s->gb)-1;
985 }
986
987 i += skip;
988 if (i >= s->num_bands) {
989 DEBUGF("invalid scale factor coding\n");
990 return AVERROR_INVALIDDATA;
991 }
992 s->channel[c].scale_factors[i] += (val ^ sign) - sign;
993 }
994 }
995
996 /** swap buffers */
997 s->channel[c].scale_factor_idx = !s->channel[c].scale_factor_idx;
998 s->channel[c].table_idx = s->table_idx;
999 s->channel[c].reuse_sf = 1;
1000 }
1001
1002 /** calculate new scale factor maximum */
1003 s->channel[c].max_scale_factor = s->channel[c].scale_factors[0];
1004 for (sf = s->channel[c].scale_factors + 1; sf < sf_end; sf++) {
1005 s->channel[c].max_scale_factor =
1006 FFMAX(s->channel[c].max_scale_factor, *sf);
1007 }
1008
1009 }
1010 return 0;
1011}
1012
1013/**
1014 *@brief Reconstruct the individual channel data.
1015 *@param s codec context
1016 */
1017static void inverse_channel_transform(WMAProDecodeCtx *s)
1018{
1019 int i;
1020
1021 for (i = 0; i < s->num_chgroups; i++) {
1022 if (s->chgroup[i].transform) {
1023 const int num_channels = s->chgroup[i].num_channels;
1024 int32_t data[WMAPRO_MAX_CHANNELS];
1025 int32_t** ch_data = s->chgroup[i].channel_data;
1026 int32_t** ch_end = ch_data + num_channels;
1027 const int8_t* tb = s->chgroup[i].transform_band;
1028 int16_t* sfb;
1029
1030 /** multichannel decorrelation */
1031 for (sfb = s->cur_sfb_offsets;
1032 sfb < s->cur_sfb_offsets + s->num_bands; sfb++) {
1033 int y;
1034 if (*tb++ == 1) {
1035 /** multiply values with the decorrelation_matrix */
1036 for (y = sfb[0]; y < FFMIN(sfb[1], s->subframe_len); y++) {
1037 const int32_t* mat = s->chgroup[i].fixdecorrelation_matrix;
1038 const int32_t* data_end = data + num_channels;
1039 int32_t* data_ptr = data;
1040 int32_t** ch;
1041
1042 for (ch = ch_data; ch < ch_end; ch++)
1043 *data_ptr++ = (*ch)[y];
1044
1045 for (ch = ch_data; ch < ch_end; ch++) {
1046 int32_t sum = 0;
1047 data_ptr = data;
1048
1049 while (data_ptr < data_end)
1050 sum += fixmul16(*mat++, *data_ptr++);
1051
1052 (*ch)[y] = sum;
1053 }
1054 }
1055 } else if (s->num_channels == 2) {
1056
1057 /* Scale with sqrt(2) */
1058 int len = FFMIN(sfb[1], s->subframe_len) - sfb[0];
1059 vector_fixmul_scalar(ch_data[0] + sfb[0],
1060 ch_data[0] + sfb[0],
1061 SQRT2_FRACT16, len);
1062 vector_fixmul_scalar(ch_data[1] + sfb[0],
1063 ch_data[1] + sfb[0],
1064 SQRT2_FRACT16, len);
1065
1066 }
1067 }
1068 }
1069 }
1070}
1071
1072/**
1073 *@brief Apply sine window and reconstruct the output buffer.
1074 *@param s codec context
1075 */
1076static void wmapro_window(WMAProDecodeCtx *s)
1077{
1078 int i;
1079
1080 for (i = 0; i < s->channels_for_cur_subframe; i++) {
1081 int c = s->channel_indexes_for_cur_subframe[i];
1082 const int32_t* window;
1083 int winlen = s->channel[c].prev_block_len;
1084 int32_t *xstart= s->channel[c].coeffs - (winlen >> 1);
1085
1086 if (s->subframe_len < winlen) {
1087 xstart += (winlen - s->subframe_len) >> 1;
1088 winlen = s->subframe_len;
1089 }
1090
1091 window = sine_windows[av_log2(winlen) - BLOCK_MIN_BITS];
1092
1093 winlen >>= 1;
1094
1095 vector_fixmul_window(xstart, xstart, xstart + winlen,
1096 window, winlen);
1097
1098 s->channel[c].prev_block_len = s->subframe_len;
1099
1100 }
1101}
1102
1103/**
1104 *@brief Decode a single subframe (block).
1105 *@param s codec context
1106 *@return 0 on success, < 0 when decoding failed
1107 */
1108static int decode_subframe(WMAProDecodeCtx *s)
1109{
1110 int offset = s->samples_per_frame;
1111 int subframe_len = s->samples_per_frame;
1112 int i;
1113 int total_samples = s->samples_per_frame * s->num_channels;
1114 int transmit_coeffs = 0;
1115 int cur_subwoofer_cutoff;
1116
1117 s->subframe_offset = get_bits_count(&s->gb);
1118
1119 /** reset channel context and find the next block offset and size
1120 == the next block of the channel with the smallest number of
1121 decoded samples
1122 */
1123 for (i = 0; i < s->num_channels; i++) {
1124 s->channel[i].grouped = 0;
1125 if (offset > s->channel[i].decoded_samples) {
1126 offset = s->channel[i].decoded_samples;
1127 subframe_len =
1128 s->channel[i].subframe_len[s->channel[i].cur_subframe];
1129 }
1130 }
1131
1132 DEBUGF("processing subframe with offset %i len %i\n", offset, subframe_len);
1133
1134 /** get a list of all channels that contain the estimated block */
1135 s->channels_for_cur_subframe = 0;
1136 for (i = 0; i < s->num_channels; i++) {
1137 const int cur_subframe = s->channel[i].cur_subframe;
1138 /** substract already processed samples */
1139 total_samples -= s->channel[i].decoded_samples;
1140
1141 /** and count if there are multiple subframes that match our profile */
1142 if (offset == s->channel[i].decoded_samples &&
1143 subframe_len == s->channel[i].subframe_len[cur_subframe]) {
1144 total_samples -= s->channel[i].subframe_len[cur_subframe];
1145 s->channel[i].decoded_samples +=
1146 s->channel[i].subframe_len[cur_subframe];
1147 s->channel_indexes_for_cur_subframe[s->channels_for_cur_subframe] = i;
1148 ++s->channels_for_cur_subframe;
1149 }
1150 }
1151
1152 /** check if the frame will be complete after processing the
1153 estimated block */
1154 if (!total_samples)
1155 s->parsed_all_subframes = 1;
1156
1157
1158 DEBUGF("subframe is part of %i channels\n", s->channels_for_cur_subframe);
1159
1160 /** calculate number of scale factor bands and their offsets */
1161 s->table_idx = av_log2(s->samples_per_frame/subframe_len);
1162 s->num_bands = s->num_sfb[s->table_idx];
1163 s->cur_sfb_offsets = s->sfb_offsets[s->table_idx];
1164 cur_subwoofer_cutoff = s->subwoofer_cutoffs[s->table_idx];
1165
1166 /** configure the decoder for the current subframe */
1167 for (i = 0; i < s->channels_for_cur_subframe; i++) {
1168 int c = s->channel_indexes_for_cur_subframe[i];
1169
1170 s->channel[c].coeffs = &s->channel[c].out[(s->samples_per_frame >> 1)
1171 + offset];
1172 }
1173
1174 s->subframe_len = subframe_len;
1175 s->esc_len = av_log2(s->subframe_len - 1) + 1;
1176
1177 /** skip extended header if any */
1178 if (get_bits1(&s->gb)) {
1179 int num_fill_bits;
1180 if (!(num_fill_bits = get_bits(&s->gb, 2))) {
1181 int len = get_bits(&s->gb, 4);
1182 num_fill_bits = get_bits(&s->gb, len) + 1;
1183 }
1184
1185 if (num_fill_bits >= 0) {
1186 if (get_bits_count(&s->gb) + num_fill_bits > s->num_saved_bits) {
1187 DEBUGF("invalid number of fill bits\n");
1188 return AVERROR_INVALIDDATA;
1189 }
1190
1191 skip_bits_long(&s->gb, num_fill_bits);
1192 }
1193 }
1194
1195 /** no idea for what the following bit is used */
1196 if (get_bits1(&s->gb)) {
1197 DEBUGF("reserved bit set\n");
1198 return AVERROR_INVALIDDATA;
1199 }
1200
1201 if (decode_channel_transform(s) < 0)
1202 return AVERROR_INVALIDDATA;
1203
1204 for (i = 0; i < s->channels_for_cur_subframe; i++) {
1205 int c = s->channel_indexes_for_cur_subframe[i];
1206 if ((s->channel[c].transmit_coefs = get_bits1(&s->gb)))
1207 transmit_coeffs = 1;
1208 }
1209
1210 if (transmit_coeffs) {
1211 int step;
1212 int quant_step = 90 * s->bits_per_sample >> 4;
1213 if ((get_bits1(&s->gb))) {
1214 /** FIXME: might change run level mode decision */
1215 DEBUGF("unsupported quant step coding\n");
1216 return AVERROR_INVALIDDATA;
1217 }
1218 /** decode quantization step */
1219 step = get_sbits(&s->gb, 6);
1220 quant_step += step;
1221 if (step == -32 || step == 31) {
1222 const int sign = (step == 31) - 1;
1223 int quant = 0;
1224 while (get_bits_count(&s->gb) + 5 < s->num_saved_bits &&
1225 (step = get_bits(&s->gb, 5)) == 31) {
1226 quant += 31;
1227 }
1228 quant_step += ((quant + step) ^ sign) - sign;
1229 }
1230 if (quant_step < 0) {
1231 DEBUGF("negative quant step\n");
1232 }
1233
1234 /** decode quantization step modifiers for every channel */
1235
1236 if (s->channels_for_cur_subframe == 1) {
1237 s->channel[s->channel_indexes_for_cur_subframe[0]].quant_step = quant_step;
1238 } else {
1239 int modifier_len = get_bits(&s->gb, 3);
1240 for (i = 0; i < s->channels_for_cur_subframe; i++) {
1241 int c = s->channel_indexes_for_cur_subframe[i];
1242 s->channel[c].quant_step = quant_step;
1243 if (get_bits1(&s->gb)) {
1244 if (modifier_len) {
1245 s->channel[c].quant_step += get_bits(&s->gb, modifier_len) + 1;
1246 } else
1247 ++s->channel[c].quant_step;
1248 }
1249 }
1250 }
1251
1252 /** decode scale factors */
1253 if (decode_scale_factors(s) < 0)
1254 return AVERROR_INVALIDDATA;
1255 }
1256
1257 DEBUGF("BITSTREAM: subframe header length was %i\n",
1258 get_bits_count(&s->gb) - s->subframe_offset);
1259
1260 /** parse coefficients */
1261 for (i = 0; i < s->channels_for_cur_subframe; i++) {
1262 int c = s->channel_indexes_for_cur_subframe[i];
1263 if (s->channel[c].transmit_coefs &&
1264 get_bits_count(&s->gb) < s->num_saved_bits) {
1265 decode_coeffs(s, c);
1266 } else {
1267 memset(s->channel[c].coeffs, 0,
1268 sizeof(*s->channel[c].coeffs) * subframe_len);
1269 }
1270 }
1271
1272 DEBUGF("BITSTREAM: subframe length was %i\n",
1273 get_bits_count(&s->gb) - s->subframe_offset);
1274
1275 if (transmit_coeffs) {
1276 int nbits = av_log2(subframe_len)+1;
1277 /** reconstruct the per channel data */
1278 inverse_channel_transform(s);
1279 for (i = 0; i < s->channels_for_cur_subframe; i++) {
1280 int c = s->channel_indexes_for_cur_subframe[i];
1281 const int* sf = s->channel[c].scale_factors;
1282 int b;
1283
1284 if (c == s->lfe_channel)
1285 memset(&s->tmp[cur_subwoofer_cutoff], 0, sizeof(*s->tmp) *
1286 (subframe_len - cur_subwoofer_cutoff));
1287
1288 /** inverse quantization and rescaling */
1289 for (b = 0; b < s->num_bands; b++) {
1290 const int end = FFMIN(s->cur_sfb_offsets[b+1], s->subframe_len);
1291 const int exp = s->channel[c].quant_step -
1292 (s->channel[c].max_scale_factor - *sf++) *
1293 s->channel[c].scale_factor_step;
1294
1295 if(exp < EXP_MIN || exp > EXP_MAX) {
1296 DEBUGF("in wmaprodec.c : unhandled value for exp (%d), please report sample.\n", exp);
1297 return -1;
1298 }
1299 const int32_t quant = QUANT(exp);
1300 int start = s->cur_sfb_offsets[b];
1301
1302 vector_fixmul_scalar(s->tmp+start,
1303 s->channel[c].coeffs + start,
1304 quant, end-start);
1305
1306
1307 }
1308
1309 /** apply imdct (ff_imdct_half == DCTIV with reverse) */
1310 ff_imdct_half(nbits,s->channel[c].coeffs, s->tmp);
1311
1312 }
1313 }
1314
1315 /** window and overlapp-add */
1316 wmapro_window(s);
1317
1318 /** handled one subframe */
1319 for (i = 0; i < s->channels_for_cur_subframe; i++) {
1320 int c = s->channel_indexes_for_cur_subframe[i];
1321 if (s->channel[c].cur_subframe >= s->channel[c].num_subframes) {
1322 DEBUGF("broken subframe\n");
1323 return AVERROR_INVALIDDATA;
1324 }
1325 ++s->channel[c].cur_subframe;
1326 }
1327
1328 return 0;
1329}
1330
1331/**
1332 *@brief Decode one WMA frame.
1333 *@param s codec context
1334 *@return 0 if the trailer bit indicates that this is the last frame,
1335 * 1 if there are additional frames
1336 */
1337static int decode_frame(WMAProDecodeCtx *s)
1338{
1339 GetBitContext* gb = &s->gb;
1340 int more_frames = 0;
1341 int len = 0;
1342 int i;
1343
1344
1345#if 0
1346 /** check for potential output buffer overflow */
1347 /* Rockbox : No need to check that anymore since we work directly on the
1348 buffers in the WMAProDecCtx */
1349 if (s->num_channels * s->samples_per_frame > s->samples_end - s->samples) {
1350 /** return an error if no frame could be decoded at all */
1351 DEBUGF("not enough space for the output samples\n");
1352 s->packet_loss = 1;
1353 return 0;
1354 }
1355#endif
1356
1357 /** get frame length */
1358 if (s->len_prefix)
1359 len = get_bits(gb, s->log2_frame_size);
1360
1361 DEBUGF("decoding frame with length %x\n", len);
1362
1363 /** decode tile information */
1364 if (decode_tilehdr(s)) {
1365 s->packet_loss = 1;
1366 return 0;
1367 }
1368
1369 /** read postproc transform */
1370 if (s->num_channels > 1 && get_bits1(gb)) {
1371 DEBUGF("Unsupported postproc transform found\n");
1372 s->packet_loss = 1;
1373 return 0;
1374 }
1375
1376 /** read drc info */
1377 if (s->dynamic_range_compression) {
1378 s->drc_gain = get_bits(gb, 8);
1379 DEBUGF("drc_gain %i\n", s->drc_gain);
1380 }
1381
1382 /** no idea what these are for, might be the number of samples
1383 that need to be skipped at the beginning or end of a stream */
1384 if (get_bits1(gb)) {
1385 /** usually true for the first frame */
1386 if (get_bits1(gb)) {
1387 get_bits(gb, av_log2(s->samples_per_frame * 2));
1388 DEBUGF("start skip\n");
1389 }
1390 /** sometimes true for the last frame */
1391 if (get_bits1(gb)) {
1392 get_bits(gb, av_log2(s->samples_per_frame * 2));
1393 DEBUGF("end skip\n");
1394 }
1395 }
1396
1397 DEBUGF("BITSTREAM: frame header length was %i\n",
1398 get_bits_count(gb) - s->frame_offset);
1399
1400 /** reset subframe states */
1401 s->parsed_all_subframes = 0;
1402 for (i = 0; i < s->num_channels; i++) {
1403 s->channel[i].decoded_samples = 0;
1404 s->channel[i].cur_subframe = 0;
1405 s->channel[i].reuse_sf = 0;
1406 }
1407
1408 /** decode all subframes */
1409 while (!s->parsed_all_subframes) {
1410 if (decode_subframe(s) < 0) {
1411 s->packet_loss = 1;
1412 return 0;
1413 }
1414 }
1415
1416 if (s->skip_frame) {
1417 s->skip_frame = 0;
1418 } else
1419 s->samples += s->num_channels * s->samples_per_frame;
1420
1421 if (len != (get_bits_count(gb) - s->frame_offset) + 2) {
1422 /** FIXME: not sure if this is always an error */
1423 DEBUGF("frame[%i] would have to skip %i bits\n",
1424 (int)s->frame_num, len - (get_bits_count(gb) - s->frame_offset) - 1);
1425 s->packet_loss = 1;
1426 return 0;
1427 }
1428
1429 /** skip the rest of the frame data */
1430 skip_bits_long(gb, len - (get_bits_count(gb) - s->frame_offset) - 1);
1431
1432 /** decode trailer bit */
1433 more_frames = get_bits1(gb);
1434
1435 ++s->frame_num;
1436 return more_frames;
1437}
1438
1439/**
1440 *@brief Calculate remaining input buffer length.
1441 *@param s codec context
1442 *@param gb bitstream reader context
1443 *@return remaining size in bits
1444 */
1445static int remaining_bits(WMAProDecodeCtx *s, GetBitContext *gb)
1446{
1447 return s->buf_bit_size - get_bits_count(gb);
1448}
1449
1450/**
1451 *@brief Fill the bit reservoir with a (partial) frame.
1452 *@param s codec context
1453 *@param gb bitstream reader context
1454 *@param len length of the partial frame
1455 *@param append decides wether to reset the buffer or not
1456 */
1457static void save_bits(WMAProDecodeCtx *s, GetBitContext* gb, int len,
1458 int append)
1459{
1460 int buflen;
1461
1462 /** when the frame data does not need to be concatenated, the input buffer
1463 is resetted and additional bits from the previous frame are copyed
1464 and skipped later so that a fast byte copy is possible */
1465
1466 if (!append) {
1467 s->frame_offset = get_bits_count(gb) & 7;
1468 s->num_saved_bits = s->frame_offset;
1469 init_put_bits(&s->pb, s->frame_data, MAX_FRAMESIZE);
1470 }
1471
1472 buflen = (s->num_saved_bits + len + 8) >> 3;
1473
1474 if (len <= 0 || buflen > MAX_FRAMESIZE) {
1475 DEBUGF("input buffer too small\n");
1476 s->packet_loss = 1;
1477 return;
1478 }
1479
1480 s->num_saved_bits += len;
1481 if (!append) {
1482 ff_copy_bits(&s->pb, gb->buffer + (get_bits_count(gb) >> 3),
1483 s->num_saved_bits);
1484 } else {
1485 int align = 8 - (get_bits_count(gb) & 7);
1486 align = FFMIN(align, len);
1487 put_bits(&s->pb, align, get_bits(gb, align));
1488 len -= align;
1489 ff_copy_bits(&s->pb, gb->buffer + (get_bits_count(gb) >> 3), len);
1490 }
1491 skip_bits_long(gb, len);
1492
1493 {
1494 PutBitContext tmp = s->pb;
1495 flush_put_bits(&tmp);
1496 }
1497
1498 init_get_bits(&s->gb, s->frame_data, s->num_saved_bits);
1499 skip_bits(&s->gb, s->frame_offset);
1500}
1501
1502/**
1503 *@brief Decode a single WMA packet.
1504 *@param avctx codec context
1505 *@param data the output buffer
1506 *@param data_size number of bytes that were written to the output buffer
1507 *@param avpkt input packet
1508 *@return number of bytes that were read from the input buffer
1509 */
1510int decode_packet(asf_waveformatex_t *wfx, int32_t *dec[2], int *data_size,
1511 void* pktdata, int size)
1512{
1513 WMAProDecodeCtx *s = &globWMAProDecCtx;
1514 GetBitContext* gb = &s->pgb;
1515 const uint8_t* buf = pktdata;
1516 int buf_size = size;
1517 int num_bits_prev_frame;
1518 int packet_sequence_number;\
1519 int i;
1520
1521 /** reuse second half of the IMDCT output for the next frame */
1522 /* NOTE : Relies on the WMAProDecCtx being static */
1523 for(i = 0; i < s->num_channels; i++)
1524 memcpy(&s->channel[i].out[0],
1525 &s->channel[i].out[s->samples_per_frame],
1526 s->samples_per_frame * sizeof(*s->channel[i].out) >> 1);
1527
1528
1529 s->samples = 0;
1530 *data_size = 0;
1531
1532 if (s->packet_done || s->packet_loss) {
1533 s->packet_done = 0;
1534 s->buf_bit_size = buf_size << 3;
1535
1536 /** sanity check for the buffer length */
1537 if (buf_size < wfx->blockalign)
1538 return 0;
1539
1540 buf_size = wfx->blockalign;
1541
1542 /** parse packet header */
1543 init_get_bits(gb, buf, s->buf_bit_size);
1544 packet_sequence_number = get_bits(gb, 4);
1545 skip_bits(gb, 2);
1546
1547 /** get number of bits that need to be added to the previous frame */
1548 num_bits_prev_frame = get_bits(gb, s->log2_frame_size);
1549 DEBUGF("packet[%d]: nbpf %x\n", s->frame_num,
1550 num_bits_prev_frame);
1551
1552 /** check for packet loss */
1553 if (!s->packet_loss &&
1554 ((s->packet_sequence_number + 1) & 0xF) != packet_sequence_number) {
1555 s->packet_loss = 1;
1556 DEBUGF("Packet loss detected! seq %x vs %x\n",
1557 s->packet_sequence_number, packet_sequence_number);
1558 }
1559 s->packet_sequence_number = packet_sequence_number;
1560
1561 if (num_bits_prev_frame > 0) {
1562 /** append the previous frame data to the remaining data from the
1563 previous packet to create a full frame */
1564 save_bits(s, gb, num_bits_prev_frame, 1);
1565 DEBUGF("accumulated %x bits of frame data\n",
1566 s->num_saved_bits - s->frame_offset);
1567
1568 /** decode the cross packet frame if it is valid */
1569 if (!s->packet_loss)
1570 decode_frame(s);
1571 } else if (s->num_saved_bits - s->frame_offset) {
1572 DEBUGF("ignoring %x previously saved bits\n",
1573 s->num_saved_bits - s->frame_offset);
1574 }
1575
1576 s->packet_loss = 0;
1577
1578 } else {
1579 int frame_size;
1580 s->buf_bit_size = size << 3;
1581 init_get_bits(gb, pktdata, s->buf_bit_size);
1582 skip_bits(gb, s->packet_offset);
1583 if (remaining_bits(s, gb) > s->log2_frame_size &&
1584 (frame_size = show_bits(gb, s->log2_frame_size)) &&
1585 frame_size <= remaining_bits(s, gb)) {
1586 save_bits(s, gb, frame_size, 0);
1587 s->packet_done = !decode_frame(s);
1588 } else
1589 s->packet_done = 1;
1590 }
1591
1592 if (s->packet_done && !s->packet_loss &&
1593 remaining_bits(s, gb) > 0) {
1594 /** save the rest of the data so that it can be decoded
1595 with the next packet */
1596 save_bits(s, gb, remaining_bits(s, gb), 0);
1597 }
1598
1599 dec[0] = s->channel[0].out;
1600 dec[1] = s->channel[1].out;
1601
1602 *data_size = s->samples;
1603 s->packet_offset = get_bits_count(gb) & 7;
1604
1605 s->frame_num++;
1606 return (s->packet_loss) ? AVERROR_INVALIDDATA : get_bits_count(gb) >> 3;
1607}
1608
1609#if 0
1610/**
1611 *@brief wmapro decoder
1612 */
1613AVCodec wmapro_decoder = {
1614 "wmapro",
1615 AVMEDIA_TYPE_AUDIO,
1616 CODEC_ID_WMAPRO,
1617 sizeof(WMAProDecodeCtx),
1618 decode_init,
1619 NULL,
1620 decode_end,
1621 decode_packet,
1622 .capabilities = CODEC_CAP_SUBFRAMES,
1623 .flush= flush,
1624 .long_name = NULL_IF_CONFIG_SMALL("Windows Media Audio 9 Professional"),
1625};
1626#endif
diff --git a/lib/rbcodec/codecs/libwmapro/wmaprodec.h b/lib/rbcodec/codecs/libwmapro/wmaprodec.h
new file mode 100644
index 0000000000..d8398fc9f1
--- /dev/null
+++ b/lib/rbcodec/codecs/libwmapro/wmaprodec.h
@@ -0,0 +1,44 @@
1#include "codeclib.h"
2#include "wma.h"
3#include "../libasf/asf.h"
4
5#if (CONFIG_CPU == MCF5250)
6/* Enough IRAM but performance suffers with ICODE_ATTR. */
7#define IBSS_ATTR_WMAPRO_LARGE_IRAM IBSS_ATTR
8#define ICODE_ATTR_WMAPRO_LARGE_IRAM
9#define ICONST_ATTR_WMAPRO_LARGE_IRAM ICONST_ATTR
10#define IBSS_ATTR_WMAPRO_VLC_TABLES
11#define ICONST_ATTR_WMAPRO_WIN_VS_TMP
12
13#elif (CONFIG_CPU == PP5022) || (CONFIG_CPU == PP5024)
14/* Enough IRAM to move additional data and code to it. */
15#define IBSS_ATTR_WMAPRO_LARGE_IRAM IBSS_ATTR
16#define ICODE_ATTR_WMAPRO_LARGE_IRAM ICODE_ATTR
17#define ICONST_ATTR_WMAPRO_LARGE_IRAM ICONST_ATTR
18#define IBSS_ATTR_WMAPRO_VLC_TABLES
19#define ICONST_ATTR_WMAPRO_WIN_VS_TMP
20
21#elif defined(CPU_S5L870X)
22/* Enough IRAM to move additional data and code to it. */
23#define IBSS_ATTR_WMAPRO_LARGE_IRAM IBSS_ATTR
24#define ICODE_ATTR_WMAPRO_LARGE_IRAM ICODE_ATTR
25#define ICONST_ATTR_WMAPRO_LARGE_IRAM ICONST_ATTR
26#define IBSS_ATTR_WMAPRO_VLC_TABLES IBSS_ATTR
27#define ICONST_ATTR_WMAPRO_WIN_VS_TMP ICONST_ATTR
28
29#else
30/* Not enough IRAM available. */
31#define IBSS_ATTR_WMAPRO_LARGE_IRAM
32#define ICODE_ATTR_WMAPRO_LARGE_IRAM
33#define ICONST_ATTR_WMAPRO_LARGE_IRAM
34#define IBSS_ATTR_WMAPRO_VLC_TABLES
35/* Models with large IRAM put tmp to IRAM rather than window coefficients as
36 * this is the fastest option. On models with smaller IRAM the 2nd-best option
37 * is to move the window coefficients to IRAM. */
38#define ICONST_ATTR_WMAPRO_WIN_VS_TMP ICONST_ATTR
39
40#endif
41
42int decode_init(asf_waveformatex_t *wfx);
43int decode_packet(asf_waveformatex_t *wfx,
44 int32_t *dec[2], int *data_size, void* pktdata, int size);