View Javadoc
1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one or more
3    * contributor license agreements.  See the NOTICE file distributed with
4    * this work for additional information regarding copyright ownership.
5    * The ASF licenses this file to You under the Apache License, Version 2.0
6    * (the "License"); you may not use this file except in compliance with
7    * the License.  You may obtain a copy of the License at
8    *
9    *      http://www.apache.org/licenses/LICENSE-2.0
10   *
11   * Unless required by applicable law or agreed to in writing, software
12   * distributed under the License is distributed on an "AS IS" BASIS,
13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   * See the License for the specific language governing permissions and
15   * limitations under the License.
16   */
17  package org.apache.commons.codec.digest;
18  
19  import java.util.zip.Checksum;
20  
21  /**
22   * A pure-java implementation of the CRC32 checksum that uses
23   * the same polynomial as the built-in native CRC32.
24   *
25   * This is to avoid the JNI overhead for certain uses of Checksumming
26   * where many small pieces of data are checksummed in succession.
27   *
28   * The current version is ~10x to 1.8x as fast as Sun's native
29   * java.util.zip.CRC32 in Java 1.6
30   *
31   * Copied from Hadoop 2.6.3.
32   * The code agrees with the following file in the 2.6.3 tag:
33   * https://git-wip-us.apache.org/repos/asf?p=hadoop.git;a=blob_plain;
34   * f=hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/PureJavaCrc32.java;
35   * hb=2120de588b92b9f22b1cc4188761d6a8c61aa778
36   * <p>
37   * This class is Not ThreadSafe
38   *
39   * @see java.util.zip.CRC32
40   * @since 1.11
41   */
42  public class PureJavaCrc32 implements Checksum {
43  
44    /** the current CRC value, bit-flipped */
45    private int crc;
46  
47    /** Create a new PureJavaCrc32 object. */
48    public PureJavaCrc32() {
49      _reset();
50    }
51  
52    @Override
53    public long getValue() {
54      return (~crc) & 0xffffffffL;
55    }
56  
57    @Override
58    public void reset() {
59      _reset();
60    }
61  
62    // called by ctor, so must not be overrideable
63    private void _reset() {
64      crc = 0xffffffff;
65    }
66  
67    @Override
68    public void update(final byte[] b, final int offset, final int len) {
69      int localCrc = crc;
70  
71      final int remainder = len & 0x7;
72      int i = offset;
73      for(final int end = offset + len - remainder; i < end; i += 8) {
74        final int x = localCrc ^
75            ((((b[i  ] << 24) >>> 24) + ((b[i+1] << 24) >>> 16)) +
76            (((b[i+2] << 24) >>> 8 ) +  (b[i+3] << 24)));
77  
78        localCrc = ((T[((x << 24) >>> 24) + 0x700] ^ T[((x << 16) >>> 24) + 0x600]) ^
79                   (T[((x <<  8) >>> 24) + 0x500] ^ T[ (x        >>> 24) + 0x400])) ^
80                   ((T[((b[i+4] << 24) >>> 24) + 0x300] ^ T[((b[i+5] << 24) >>> 24) + 0x200]) ^
81                   (T[((b[i+6] << 24) >>> 24) + 0x100] ^ T[((b[i+7] << 24) >>> 24)]));
82      }
83  
84      /* loop unroll - duff's device style */
85      switch(remainder) {
86        case 7: localCrc = (localCrc >>> 8) ^ T[((localCrc ^ b[i++]) << 24) >>> 24];
87        case 6: localCrc = (localCrc >>> 8) ^ T[((localCrc ^ b[i++]) << 24) >>> 24];
88        case 5: localCrc = (localCrc >>> 8) ^ T[((localCrc ^ b[i++]) << 24) >>> 24];
89        case 4: localCrc = (localCrc >>> 8) ^ T[((localCrc ^ b[i++]) << 24) >>> 24];
90        case 3: localCrc = (localCrc >>> 8) ^ T[((localCrc ^ b[i++]) << 24) >>> 24];
91        case 2: localCrc = (localCrc >>> 8) ^ T[((localCrc ^ b[i++]) << 24) >>> 24];
92        case 1: localCrc = (localCrc >>> 8) ^ T[((localCrc ^ b[i++]) << 24) >>> 24];
93        default:
94          /* nothing */
95      }
96  
97      // Publish crc out to object
98      crc = localCrc;
99    }
100 
101   @Override
102   final public void update(final int b) {
103     crc = (crc >>> 8) ^ T[(((crc ^ b) << 24) >>> 24)];
104   }
105 
106   /*
107    * CRC-32 lookup tables generated by the polynomial 0xEDB88320.
108    * See also TestPureJavaCrc32.Table.
109    */
110   private static final int[] T = new int[] {
111     /* T8_0 */
112     0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA,
113     0x076DC419, 0x706AF48F, 0xE963A535, 0x9E6495A3,
114     0x0EDB8832, 0x79DCB8A4, 0xE0D5E91E, 0x97D2D988,
115     0x09B64C2B, 0x7EB17CBD, 0xE7B82D07, 0x90BF1D91,
116     0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE,
117     0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7,
118     0x136C9856, 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC,
119     0x14015C4F, 0x63066CD9, 0xFA0F3D63, 0x8D080DF5,
120     0x3B6E20C8, 0x4C69105E, 0xD56041E4, 0xA2677172,
121     0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B,
122     0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940,
123     0x32D86CE3, 0x45DF5C75, 0xDCD60DCF, 0xABD13D59,
124     0x26D930AC, 0x51DE003A, 0xC8D75180, 0xBFD06116,
125     0x21B4F4B5, 0x56B3C423, 0xCFBA9599, 0xB8BDA50F,
126     0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924,
127     0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D,
128     0x76DC4190, 0x01DB7106, 0x98D220BC, 0xEFD5102A,
129     0x71B18589, 0x06B6B51F, 0x9FBFE4A5, 0xE8B8D433,
130     0x7807C9A2, 0x0F00F934, 0x9609A88E, 0xE10E9818,
131     0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01,
132     0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E,
133     0x6C0695ED, 0x1B01A57B, 0x8208F4C1, 0xF50FC457,
134     0x65B0D9C6, 0x12B7E950, 0x8BBEB8EA, 0xFCB9887C,
135     0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3, 0xFBD44C65,
136     0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2,
137     0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB,
138     0x4369E96A, 0x346ED9FC, 0xAD678846, 0xDA60B8D0,
139     0x44042D73, 0x33031DE5, 0xAA0A4C5F, 0xDD0D7CC9,
140     0x5005713C, 0x270241AA, 0xBE0B1010, 0xC90C2086,
141     0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F,
142     0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4,
143     0x59B33D17, 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD,
144     0xEDB88320, 0x9ABFB3B6, 0x03B6E20C, 0x74B1D29A,
145     0xEAD54739, 0x9DD277AF, 0x04DB2615, 0x73DC1683,
146     0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8,
147     0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1,
148     0xF00F9344, 0x8708A3D2, 0x1E01F268, 0x6906C2FE,
149     0xF762575D, 0x806567CB, 0x196C3671, 0x6E6B06E7,
150     0xFED41B76, 0x89D32BE0, 0x10DA7A5A, 0x67DD4ACC,
151     0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5,
152     0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252,
153     0xD1BB67F1, 0xA6BC5767, 0x3FB506DD, 0x48B2364B,
154     0xD80D2BDA, 0xAF0A1B4C, 0x36034AF6, 0x41047A60,
155     0xDF60EFC3, 0xA867DF55, 0x316E8EEF, 0x4669BE79,
156     0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236,
157     0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F,
158     0xC5BA3BBE, 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04,
159     0xC2D7FFA7, 0xB5D0CF31, 0x2CD99E8B, 0x5BDEAE1D,
160     0x9B64C2B0, 0xEC63F226, 0x756AA39C, 0x026D930A,
161     0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713,
162     0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38,
163     0x92D28E9B, 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21,
164     0x86D3D2D4, 0xF1D4E242, 0x68DDB3F8, 0x1FDA836E,
165     0x81BE16CD, 0xF6B9265B, 0x6FB077E1, 0x18B74777,
166     0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C,
167     0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45,
168     0xA00AE278, 0xD70DD2EE, 0x4E048354, 0x3903B3C2,
169     0xA7672661, 0xD06016F7, 0x4969474D, 0x3E6E77DB,
170     0xAED16A4A, 0xD9D65ADC, 0x40DF0B66, 0x37D83BF0,
171     0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9,
172     0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6,
173     0xBAD03605, 0xCDD70693, 0x54DE5729, 0x23D967BF,
174     0xB3667A2E, 0xC4614AB8, 0x5D681B02, 0x2A6F2B94,
175     0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, 0x2D02EF8D,
176     /* T8_1 */
177     0x00000000, 0x191B3141, 0x32366282, 0x2B2D53C3,
178     0x646CC504, 0x7D77F445, 0x565AA786, 0x4F4196C7,
179     0xC8D98A08, 0xD1C2BB49, 0xFAEFE88A, 0xE3F4D9CB,
180     0xACB54F0C, 0xB5AE7E4D, 0x9E832D8E, 0x87981CCF,
181     0x4AC21251, 0x53D92310, 0x78F470D3, 0x61EF4192,
182     0x2EAED755, 0x37B5E614, 0x1C98B5D7, 0x05838496,
183     0x821B9859, 0x9B00A918, 0xB02DFADB, 0xA936CB9A,
184     0xE6775D5D, 0xFF6C6C1C, 0xD4413FDF, 0xCD5A0E9E,
185     0x958424A2, 0x8C9F15E3, 0xA7B24620, 0xBEA97761,
186     0xF1E8E1A6, 0xE8F3D0E7, 0xC3DE8324, 0xDAC5B265,
187     0x5D5DAEAA, 0x44469FEB, 0x6F6BCC28, 0x7670FD69,
188     0x39316BAE, 0x202A5AEF, 0x0B07092C, 0x121C386D,
189     0xDF4636F3, 0xC65D07B2, 0xED705471, 0xF46B6530,
190     0xBB2AF3F7, 0xA231C2B6, 0x891C9175, 0x9007A034,
191     0x179FBCFB, 0x0E848DBA, 0x25A9DE79, 0x3CB2EF38,
192     0x73F379FF, 0x6AE848BE, 0x41C51B7D, 0x58DE2A3C,
193     0xF0794F05, 0xE9627E44, 0xC24F2D87, 0xDB541CC6,
194     0x94158A01, 0x8D0EBB40, 0xA623E883, 0xBF38D9C2,
195     0x38A0C50D, 0x21BBF44C, 0x0A96A78F, 0x138D96CE,
196     0x5CCC0009, 0x45D73148, 0x6EFA628B, 0x77E153CA,
197     0xBABB5D54, 0xA3A06C15, 0x888D3FD6, 0x91960E97,
198     0xDED79850, 0xC7CCA911, 0xECE1FAD2, 0xF5FACB93,
199     0x7262D75C, 0x6B79E61D, 0x4054B5DE, 0x594F849F,
200     0x160E1258, 0x0F152319, 0x243870DA, 0x3D23419B,
201     0x65FD6BA7, 0x7CE65AE6, 0x57CB0925, 0x4ED03864,
202     0x0191AEA3, 0x188A9FE2, 0x33A7CC21, 0x2ABCFD60,
203     0xAD24E1AF, 0xB43FD0EE, 0x9F12832D, 0x8609B26C,
204     0xC94824AB, 0xD05315EA, 0xFB7E4629, 0xE2657768,
205     0x2F3F79F6, 0x362448B7, 0x1D091B74, 0x04122A35,
206     0x4B53BCF2, 0x52488DB3, 0x7965DE70, 0x607EEF31,
207     0xE7E6F3FE, 0xFEFDC2BF, 0xD5D0917C, 0xCCCBA03D,
208     0x838A36FA, 0x9A9107BB, 0xB1BC5478, 0xA8A76539,
209     0x3B83984B, 0x2298A90A, 0x09B5FAC9, 0x10AECB88,
210     0x5FEF5D4F, 0x46F46C0E, 0x6DD93FCD, 0x74C20E8C,
211     0xF35A1243, 0xEA412302, 0xC16C70C1, 0xD8774180,
212     0x9736D747, 0x8E2DE606, 0xA500B5C5, 0xBC1B8484,
213     0x71418A1A, 0x685ABB5B, 0x4377E898, 0x5A6CD9D9,
214     0x152D4F1E, 0x0C367E5F, 0x271B2D9C, 0x3E001CDD,
215     0xB9980012, 0xA0833153, 0x8BAE6290, 0x92B553D1,
216     0xDDF4C516, 0xC4EFF457, 0xEFC2A794, 0xF6D996D5,
217     0xAE07BCE9, 0xB71C8DA8, 0x9C31DE6B, 0x852AEF2A,
218     0xCA6B79ED, 0xD37048AC, 0xF85D1B6F, 0xE1462A2E,
219     0x66DE36E1, 0x7FC507A0, 0x54E85463, 0x4DF36522,
220     0x02B2F3E5, 0x1BA9C2A4, 0x30849167, 0x299FA026,
221     0xE4C5AEB8, 0xFDDE9FF9, 0xD6F3CC3A, 0xCFE8FD7B,
222     0x80A96BBC, 0x99B25AFD, 0xB29F093E, 0xAB84387F,
223     0x2C1C24B0, 0x350715F1, 0x1E2A4632, 0x07317773,
224     0x4870E1B4, 0x516BD0F5, 0x7A468336, 0x635DB277,
225     0xCBFAD74E, 0xD2E1E60F, 0xF9CCB5CC, 0xE0D7848D,
226     0xAF96124A, 0xB68D230B, 0x9DA070C8, 0x84BB4189,
227     0x03235D46, 0x1A386C07, 0x31153FC4, 0x280E0E85,
228     0x674F9842, 0x7E54A903, 0x5579FAC0, 0x4C62CB81,
229     0x8138C51F, 0x9823F45E, 0xB30EA79D, 0xAA1596DC,
230     0xE554001B, 0xFC4F315A, 0xD7626299, 0xCE7953D8,
231     0x49E14F17, 0x50FA7E56, 0x7BD72D95, 0x62CC1CD4,
232     0x2D8D8A13, 0x3496BB52, 0x1FBBE891, 0x06A0D9D0,
233     0x5E7EF3EC, 0x4765C2AD, 0x6C48916E, 0x7553A02F,
234     0x3A1236E8, 0x230907A9, 0x0824546A, 0x113F652B,
235     0x96A779E4, 0x8FBC48A5, 0xA4911B66, 0xBD8A2A27,
236     0xF2CBBCE0, 0xEBD08DA1, 0xC0FDDE62, 0xD9E6EF23,
237     0x14BCE1BD, 0x0DA7D0FC, 0x268A833F, 0x3F91B27E,
238     0x70D024B9, 0x69CB15F8, 0x42E6463B, 0x5BFD777A,
239     0xDC656BB5, 0xC57E5AF4, 0xEE530937, 0xF7483876,
240     0xB809AEB1, 0xA1129FF0, 0x8A3FCC33, 0x9324FD72,
241     /* T8_2 */
242     0x00000000, 0x01C26A37, 0x0384D46E, 0x0246BE59,
243     0x0709A8DC, 0x06CBC2EB, 0x048D7CB2, 0x054F1685,
244     0x0E1351B8, 0x0FD13B8F, 0x0D9785D6, 0x0C55EFE1,
245     0x091AF964, 0x08D89353, 0x0A9E2D0A, 0x0B5C473D,
246     0x1C26A370, 0x1DE4C947, 0x1FA2771E, 0x1E601D29,
247     0x1B2F0BAC, 0x1AED619B, 0x18ABDFC2, 0x1969B5F5,
248     0x1235F2C8, 0x13F798FF, 0x11B126A6, 0x10734C91,
249     0x153C5A14, 0x14FE3023, 0x16B88E7A, 0x177AE44D,
250     0x384D46E0, 0x398F2CD7, 0x3BC9928E, 0x3A0BF8B9,
251     0x3F44EE3C, 0x3E86840B, 0x3CC03A52, 0x3D025065,
252     0x365E1758, 0x379C7D6F, 0x35DAC336, 0x3418A901,
253     0x3157BF84, 0x3095D5B3, 0x32D36BEA, 0x331101DD,
254     0x246BE590, 0x25A98FA7, 0x27EF31FE, 0x262D5BC9,
255     0x23624D4C, 0x22A0277B, 0x20E69922, 0x2124F315,
256     0x2A78B428, 0x2BBADE1F, 0x29FC6046, 0x283E0A71,
257     0x2D711CF4, 0x2CB376C3, 0x2EF5C89A, 0x2F37A2AD,
258     0x709A8DC0, 0x7158E7F7, 0x731E59AE, 0x72DC3399,
259     0x7793251C, 0x76514F2B, 0x7417F172, 0x75D59B45,
260     0x7E89DC78, 0x7F4BB64F, 0x7D0D0816, 0x7CCF6221,
261     0x798074A4, 0x78421E93, 0x7A04A0CA, 0x7BC6CAFD,
262     0x6CBC2EB0, 0x6D7E4487, 0x6F38FADE, 0x6EFA90E9,
263     0x6BB5866C, 0x6A77EC5B, 0x68315202, 0x69F33835,
264     0x62AF7F08, 0x636D153F, 0x612BAB66, 0x60E9C151,
265     0x65A6D7D4, 0x6464BDE3, 0x662203BA, 0x67E0698D,
266     0x48D7CB20, 0x4915A117, 0x4B531F4E, 0x4A917579,
267     0x4FDE63FC, 0x4E1C09CB, 0x4C5AB792, 0x4D98DDA5,
268     0x46C49A98, 0x4706F0AF, 0x45404EF6, 0x448224C1,
269     0x41CD3244, 0x400F5873, 0x4249E62A, 0x438B8C1D,
270     0x54F16850, 0x55330267, 0x5775BC3E, 0x56B7D609,
271     0x53F8C08C, 0x523AAABB, 0x507C14E2, 0x51BE7ED5,
272     0x5AE239E8, 0x5B2053DF, 0x5966ED86, 0x58A487B1,
273     0x5DEB9134, 0x5C29FB03, 0x5E6F455A, 0x5FAD2F6D,
274     0xE1351B80, 0xE0F771B7, 0xE2B1CFEE, 0xE373A5D9,
275     0xE63CB35C, 0xE7FED96B, 0xE5B86732, 0xE47A0D05,
276     0xEF264A38, 0xEEE4200F, 0xECA29E56, 0xED60F461,
277     0xE82FE2E4, 0xE9ED88D3, 0xEBAB368A, 0xEA695CBD,
278     0xFD13B8F0, 0xFCD1D2C7, 0xFE976C9E, 0xFF5506A9,
279     0xFA1A102C, 0xFBD87A1B, 0xF99EC442, 0xF85CAE75,
280     0xF300E948, 0xF2C2837F, 0xF0843D26, 0xF1465711,
281     0xF4094194, 0xF5CB2BA3, 0xF78D95FA, 0xF64FFFCD,
282     0xD9785D60, 0xD8BA3757, 0xDAFC890E, 0xDB3EE339,
283     0xDE71F5BC, 0xDFB39F8B, 0xDDF521D2, 0xDC374BE5,
284     0xD76B0CD8, 0xD6A966EF, 0xD4EFD8B6, 0xD52DB281,
285     0xD062A404, 0xD1A0CE33, 0xD3E6706A, 0xD2241A5D,
286     0xC55EFE10, 0xC49C9427, 0xC6DA2A7E, 0xC7184049,
287     0xC25756CC, 0xC3953CFB, 0xC1D382A2, 0xC011E895,
288     0xCB4DAFA8, 0xCA8FC59F, 0xC8C97BC6, 0xC90B11F1,
289     0xCC440774, 0xCD866D43, 0xCFC0D31A, 0xCE02B92D,
290     0x91AF9640, 0x906DFC77, 0x922B422E, 0x93E92819,
291     0x96A63E9C, 0x976454AB, 0x9522EAF2, 0x94E080C5,
292     0x9FBCC7F8, 0x9E7EADCF, 0x9C381396, 0x9DFA79A1,
293     0x98B56F24, 0x99770513, 0x9B31BB4A, 0x9AF3D17D,
294     0x8D893530, 0x8C4B5F07, 0x8E0DE15E, 0x8FCF8B69,
295     0x8A809DEC, 0x8B42F7DB, 0x89044982, 0x88C623B5,
296     0x839A6488, 0x82580EBF, 0x801EB0E6, 0x81DCDAD1,
297     0x8493CC54, 0x8551A663, 0x8717183A, 0x86D5720D,
298     0xA9E2D0A0, 0xA820BA97, 0xAA6604CE, 0xABA46EF9,
299     0xAEEB787C, 0xAF29124B, 0xAD6FAC12, 0xACADC625,
300     0xA7F18118, 0xA633EB2F, 0xA4755576, 0xA5B73F41,
301     0xA0F829C4, 0xA13A43F3, 0xA37CFDAA, 0xA2BE979D,
302     0xB5C473D0, 0xB40619E7, 0xB640A7BE, 0xB782CD89,
303     0xB2CDDB0C, 0xB30FB13B, 0xB1490F62, 0xB08B6555,
304     0xBBD72268, 0xBA15485F, 0xB853F606, 0xB9919C31,
305     0xBCDE8AB4, 0xBD1CE083, 0xBF5A5EDA, 0xBE9834ED,
306     /* T8_3 */
307     0x00000000, 0xB8BC6765, 0xAA09C88B, 0x12B5AFEE,
308     0x8F629757, 0x37DEF032, 0x256B5FDC, 0x9DD738B9,
309     0xC5B428EF, 0x7D084F8A, 0x6FBDE064, 0xD7018701,
310     0x4AD6BFB8, 0xF26AD8DD, 0xE0DF7733, 0x58631056,
311     0x5019579F, 0xE8A530FA, 0xFA109F14, 0x42ACF871,
312     0xDF7BC0C8, 0x67C7A7AD, 0x75720843, 0xCDCE6F26,
313     0x95AD7F70, 0x2D111815, 0x3FA4B7FB, 0x8718D09E,
314     0x1ACFE827, 0xA2738F42, 0xB0C620AC, 0x087A47C9,
315     0xA032AF3E, 0x188EC85B, 0x0A3B67B5, 0xB28700D0,
316     0x2F503869, 0x97EC5F0C, 0x8559F0E2, 0x3DE59787,
317     0x658687D1, 0xDD3AE0B4, 0xCF8F4F5A, 0x7733283F,
318     0xEAE41086, 0x525877E3, 0x40EDD80D, 0xF851BF68,
319     0xF02BF8A1, 0x48979FC4, 0x5A22302A, 0xE29E574F,
320     0x7F496FF6, 0xC7F50893, 0xD540A77D, 0x6DFCC018,
321     0x359FD04E, 0x8D23B72B, 0x9F9618C5, 0x272A7FA0,
322     0xBAFD4719, 0x0241207C, 0x10F48F92, 0xA848E8F7,
323     0x9B14583D, 0x23A83F58, 0x311D90B6, 0x89A1F7D3,
324     0x1476CF6A, 0xACCAA80F, 0xBE7F07E1, 0x06C36084,
325     0x5EA070D2, 0xE61C17B7, 0xF4A9B859, 0x4C15DF3C,
326     0xD1C2E785, 0x697E80E0, 0x7BCB2F0E, 0xC377486B,
327     0xCB0D0FA2, 0x73B168C7, 0x6104C729, 0xD9B8A04C,
328     0x446F98F5, 0xFCD3FF90, 0xEE66507E, 0x56DA371B,
329     0x0EB9274D, 0xB6054028, 0xA4B0EFC6, 0x1C0C88A3,
330     0x81DBB01A, 0x3967D77F, 0x2BD27891, 0x936E1FF4,
331     0x3B26F703, 0x839A9066, 0x912F3F88, 0x299358ED,
332     0xB4446054, 0x0CF80731, 0x1E4DA8DF, 0xA6F1CFBA,
333     0xFE92DFEC, 0x462EB889, 0x549B1767, 0xEC277002,
334     0x71F048BB, 0xC94C2FDE, 0xDBF98030, 0x6345E755,
335     0x6B3FA09C, 0xD383C7F9, 0xC1366817, 0x798A0F72,
336     0xE45D37CB, 0x5CE150AE, 0x4E54FF40, 0xF6E89825,
337     0xAE8B8873, 0x1637EF16, 0x048240F8, 0xBC3E279D,
338     0x21E91F24, 0x99557841, 0x8BE0D7AF, 0x335CB0CA,
339     0xED59B63B, 0x55E5D15E, 0x47507EB0, 0xFFEC19D5,
340     0x623B216C, 0xDA874609, 0xC832E9E7, 0x708E8E82,
341     0x28ED9ED4, 0x9051F9B1, 0x82E4565F, 0x3A58313A,
342     0xA78F0983, 0x1F336EE6, 0x0D86C108, 0xB53AA66D,
343     0xBD40E1A4, 0x05FC86C1, 0x1749292F, 0xAFF54E4A,
344     0x322276F3, 0x8A9E1196, 0x982BBE78, 0x2097D91D,
345     0x78F4C94B, 0xC048AE2E, 0xD2FD01C0, 0x6A4166A5,
346     0xF7965E1C, 0x4F2A3979, 0x5D9F9697, 0xE523F1F2,
347     0x4D6B1905, 0xF5D77E60, 0xE762D18E, 0x5FDEB6EB,
348     0xC2098E52, 0x7AB5E937, 0x680046D9, 0xD0BC21BC,
349     0x88DF31EA, 0x3063568F, 0x22D6F961, 0x9A6A9E04,
350     0x07BDA6BD, 0xBF01C1D8, 0xADB46E36, 0x15080953,
351     0x1D724E9A, 0xA5CE29FF, 0xB77B8611, 0x0FC7E174,
352     0x9210D9CD, 0x2AACBEA8, 0x38191146, 0x80A57623,
353     0xD8C66675, 0x607A0110, 0x72CFAEFE, 0xCA73C99B,
354     0x57A4F122, 0xEF189647, 0xFDAD39A9, 0x45115ECC,
355     0x764DEE06, 0xCEF18963, 0xDC44268D, 0x64F841E8,
356     0xF92F7951, 0x41931E34, 0x5326B1DA, 0xEB9AD6BF,
357     0xB3F9C6E9, 0x0B45A18C, 0x19F00E62, 0xA14C6907,
358     0x3C9B51BE, 0x842736DB, 0x96929935, 0x2E2EFE50,
359     0x2654B999, 0x9EE8DEFC, 0x8C5D7112, 0x34E11677,
360     0xA9362ECE, 0x118A49AB, 0x033FE645, 0xBB838120,
361     0xE3E09176, 0x5B5CF613, 0x49E959FD, 0xF1553E98,
362     0x6C820621, 0xD43E6144, 0xC68BCEAA, 0x7E37A9CF,
363     0xD67F4138, 0x6EC3265D, 0x7C7689B3, 0xC4CAEED6,
364     0x591DD66F, 0xE1A1B10A, 0xF3141EE4, 0x4BA87981,
365     0x13CB69D7, 0xAB770EB2, 0xB9C2A15C, 0x017EC639,
366     0x9CA9FE80, 0x241599E5, 0x36A0360B, 0x8E1C516E,
367     0x866616A7, 0x3EDA71C2, 0x2C6FDE2C, 0x94D3B949,
368     0x090481F0, 0xB1B8E695, 0xA30D497B, 0x1BB12E1E,
369     0x43D23E48, 0xFB6E592D, 0xE9DBF6C3, 0x516791A6,
370     0xCCB0A91F, 0x740CCE7A, 0x66B96194, 0xDE0506F1,
371     /* T8_4 */
372     0x00000000, 0x3D6029B0, 0x7AC05360, 0x47A07AD0,
373     0xF580A6C0, 0xC8E08F70, 0x8F40F5A0, 0xB220DC10,
374     0x30704BC1, 0x0D106271, 0x4AB018A1, 0x77D03111,
375     0xC5F0ED01, 0xF890C4B1, 0xBF30BE61, 0x825097D1,
376     0x60E09782, 0x5D80BE32, 0x1A20C4E2, 0x2740ED52,
377     0x95603142, 0xA80018F2, 0xEFA06222, 0xD2C04B92,
378     0x5090DC43, 0x6DF0F5F3, 0x2A508F23, 0x1730A693,
379     0xA5107A83, 0x98705333, 0xDFD029E3, 0xE2B00053,
380     0xC1C12F04, 0xFCA106B4, 0xBB017C64, 0x866155D4,
381     0x344189C4, 0x0921A074, 0x4E81DAA4, 0x73E1F314,
382     0xF1B164C5, 0xCCD14D75, 0x8B7137A5, 0xB6111E15,
383     0x0431C205, 0x3951EBB5, 0x7EF19165, 0x4391B8D5,
384     0xA121B886, 0x9C419136, 0xDBE1EBE6, 0xE681C256,
385     0x54A11E46, 0x69C137F6, 0x2E614D26, 0x13016496,
386     0x9151F347, 0xAC31DAF7, 0xEB91A027, 0xD6F18997,
387     0x64D15587, 0x59B17C37, 0x1E1106E7, 0x23712F57,
388     0x58F35849, 0x659371F9, 0x22330B29, 0x1F532299,
389     0xAD73FE89, 0x9013D739, 0xD7B3ADE9, 0xEAD38459,
390     0x68831388, 0x55E33A38, 0x124340E8, 0x2F236958,
391     0x9D03B548, 0xA0639CF8, 0xE7C3E628, 0xDAA3CF98,
392     0x3813CFCB, 0x0573E67B, 0x42D39CAB, 0x7FB3B51B,
393     0xCD93690B, 0xF0F340BB, 0xB7533A6B, 0x8A3313DB,
394     0x0863840A, 0x3503ADBA, 0x72A3D76A, 0x4FC3FEDA,
395     0xFDE322CA, 0xC0830B7A, 0x872371AA, 0xBA43581A,
396     0x9932774D, 0xA4525EFD, 0xE3F2242D, 0xDE920D9D,
397     0x6CB2D18D, 0x51D2F83D, 0x167282ED, 0x2B12AB5D,
398     0xA9423C8C, 0x9422153C, 0xD3826FEC, 0xEEE2465C,
399     0x5CC29A4C, 0x61A2B3FC, 0x2602C92C, 0x1B62E09C,
400     0xF9D2E0CF, 0xC4B2C97F, 0x8312B3AF, 0xBE729A1F,
401     0x0C52460F, 0x31326FBF, 0x7692156F, 0x4BF23CDF,
402     0xC9A2AB0E, 0xF4C282BE, 0xB362F86E, 0x8E02D1DE,
403     0x3C220DCE, 0x0142247E, 0x46E25EAE, 0x7B82771E,
404     0xB1E6B092, 0x8C869922, 0xCB26E3F2, 0xF646CA42,
405     0x44661652, 0x79063FE2, 0x3EA64532, 0x03C66C82,
406     0x8196FB53, 0xBCF6D2E3, 0xFB56A833, 0xC6368183,
407     0x74165D93, 0x49767423, 0x0ED60EF3, 0x33B62743,
408     0xD1062710, 0xEC660EA0, 0xABC67470, 0x96A65DC0,
409     0x248681D0, 0x19E6A860, 0x5E46D2B0, 0x6326FB00,
410     0xE1766CD1, 0xDC164561, 0x9BB63FB1, 0xA6D61601,
411     0x14F6CA11, 0x2996E3A1, 0x6E369971, 0x5356B0C1,
412     0x70279F96, 0x4D47B626, 0x0AE7CCF6, 0x3787E546,
413     0x85A73956, 0xB8C710E6, 0xFF676A36, 0xC2074386,
414     0x4057D457, 0x7D37FDE7, 0x3A978737, 0x07F7AE87,
415     0xB5D77297, 0x88B75B27, 0xCF1721F7, 0xF2770847,
416     0x10C70814, 0x2DA721A4, 0x6A075B74, 0x576772C4,
417     0xE547AED4, 0xD8278764, 0x9F87FDB4, 0xA2E7D404,
418     0x20B743D5, 0x1DD76A65, 0x5A7710B5, 0x67173905,
419     0xD537E515, 0xE857CCA5, 0xAFF7B675, 0x92979FC5,
420     0xE915E8DB, 0xD475C16B, 0x93D5BBBB, 0xAEB5920B,
421     0x1C954E1B, 0x21F567AB, 0x66551D7B, 0x5B3534CB,
422     0xD965A31A, 0xE4058AAA, 0xA3A5F07A, 0x9EC5D9CA,
423     0x2CE505DA, 0x11852C6A, 0x562556BA, 0x6B457F0A,
424     0x89F57F59, 0xB49556E9, 0xF3352C39, 0xCE550589,
425     0x7C75D999, 0x4115F029, 0x06B58AF9, 0x3BD5A349,
426     0xB9853498, 0x84E51D28, 0xC34567F8, 0xFE254E48,
427     0x4C059258, 0x7165BBE8, 0x36C5C138, 0x0BA5E888,
428     0x28D4C7DF, 0x15B4EE6F, 0x521494BF, 0x6F74BD0F,
429     0xDD54611F, 0xE03448AF, 0xA794327F, 0x9AF41BCF,
430     0x18A48C1E, 0x25C4A5AE, 0x6264DF7E, 0x5F04F6CE,
431     0xED242ADE, 0xD044036E, 0x97E479BE, 0xAA84500E,
432     0x4834505D, 0x755479ED, 0x32F4033D, 0x0F942A8D,
433     0xBDB4F69D, 0x80D4DF2D, 0xC774A5FD, 0xFA148C4D,
434     0x78441B9C, 0x4524322C, 0x028448FC, 0x3FE4614C,
435     0x8DC4BD5C, 0xB0A494EC, 0xF704EE3C, 0xCA64C78C,
436     /* T8_5 */
437     0x00000000, 0xCB5CD3A5, 0x4DC8A10B, 0x869472AE,
438     0x9B914216, 0x50CD91B3, 0xD659E31D, 0x1D0530B8,
439     0xEC53826D, 0x270F51C8, 0xA19B2366, 0x6AC7F0C3,
440     0x77C2C07B, 0xBC9E13DE, 0x3A0A6170, 0xF156B2D5,
441     0x03D6029B, 0xC88AD13E, 0x4E1EA390, 0x85427035,
442     0x9847408D, 0x531B9328, 0xD58FE186, 0x1ED33223,
443     0xEF8580F6, 0x24D95353, 0xA24D21FD, 0x6911F258,
444     0x7414C2E0, 0xBF481145, 0x39DC63EB, 0xF280B04E,
445     0x07AC0536, 0xCCF0D693, 0x4A64A43D, 0x81387798,
446     0x9C3D4720, 0x57619485, 0xD1F5E62B, 0x1AA9358E,
447     0xEBFF875B, 0x20A354FE, 0xA6372650, 0x6D6BF5F5,
448     0x706EC54D, 0xBB3216E8, 0x3DA66446, 0xF6FAB7E3,
449     0x047A07AD, 0xCF26D408, 0x49B2A6A6, 0x82EE7503,
450     0x9FEB45BB, 0x54B7961E, 0xD223E4B0, 0x197F3715,
451     0xE82985C0, 0x23755665, 0xA5E124CB, 0x6EBDF76E,
452     0x73B8C7D6, 0xB8E41473, 0x3E7066DD, 0xF52CB578,
453     0x0F580A6C, 0xC404D9C9, 0x4290AB67, 0x89CC78C2,
454     0x94C9487A, 0x5F959BDF, 0xD901E971, 0x125D3AD4,
455     0xE30B8801, 0x28575BA4, 0xAEC3290A, 0x659FFAAF,
456     0x789ACA17, 0xB3C619B2, 0x35526B1C, 0xFE0EB8B9,
457     0x0C8E08F7, 0xC7D2DB52, 0x4146A9FC, 0x8A1A7A59,
458     0x971F4AE1, 0x5C439944, 0xDAD7EBEA, 0x118B384F,
459     0xE0DD8A9A, 0x2B81593F, 0xAD152B91, 0x6649F834,
460     0x7B4CC88C, 0xB0101B29, 0x36846987, 0xFDD8BA22,
461     0x08F40F5A, 0xC3A8DCFF, 0x453CAE51, 0x8E607DF4,
462     0x93654D4C, 0x58399EE9, 0xDEADEC47, 0x15F13FE2,
463     0xE4A78D37, 0x2FFB5E92, 0xA96F2C3C, 0x6233FF99,
464     0x7F36CF21, 0xB46A1C84, 0x32FE6E2A, 0xF9A2BD8F,
465     0x0B220DC1, 0xC07EDE64, 0x46EAACCA, 0x8DB67F6F,
466     0x90B34FD7, 0x5BEF9C72, 0xDD7BEEDC, 0x16273D79,
467     0xE7718FAC, 0x2C2D5C09, 0xAAB92EA7, 0x61E5FD02,
468     0x7CE0CDBA, 0xB7BC1E1F, 0x31286CB1, 0xFA74BF14,
469     0x1EB014D8, 0xD5ECC77D, 0x5378B5D3, 0x98246676,
470     0x852156CE, 0x4E7D856B, 0xC8E9F7C5, 0x03B52460,
471     0xF2E396B5, 0x39BF4510, 0xBF2B37BE, 0x7477E41B,
472     0x6972D4A3, 0xA22E0706, 0x24BA75A8, 0xEFE6A60D,
473     0x1D661643, 0xD63AC5E6, 0x50AEB748, 0x9BF264ED,
474     0x86F75455, 0x4DAB87F0, 0xCB3FF55E, 0x006326FB,
475     0xF135942E, 0x3A69478B, 0xBCFD3525, 0x77A1E680,
476     0x6AA4D638, 0xA1F8059D, 0x276C7733, 0xEC30A496,
477     0x191C11EE, 0xD240C24B, 0x54D4B0E5, 0x9F886340,
478     0x828D53F8, 0x49D1805D, 0xCF45F2F3, 0x04192156,
479     0xF54F9383, 0x3E134026, 0xB8873288, 0x73DBE12D,
480     0x6EDED195, 0xA5820230, 0x2316709E, 0xE84AA33B,
481     0x1ACA1375, 0xD196C0D0, 0x5702B27E, 0x9C5E61DB,
482     0x815B5163, 0x4A0782C6, 0xCC93F068, 0x07CF23CD,
483     0xF6999118, 0x3DC542BD, 0xBB513013, 0x700DE3B6,
484     0x6D08D30E, 0xA65400AB, 0x20C07205, 0xEB9CA1A0,
485     0x11E81EB4, 0xDAB4CD11, 0x5C20BFBF, 0x977C6C1A,
486     0x8A795CA2, 0x41258F07, 0xC7B1FDA9, 0x0CED2E0C,
487     0xFDBB9CD9, 0x36E74F7C, 0xB0733DD2, 0x7B2FEE77,
488     0x662ADECF, 0xAD760D6A, 0x2BE27FC4, 0xE0BEAC61,
489     0x123E1C2F, 0xD962CF8A, 0x5FF6BD24, 0x94AA6E81,
490     0x89AF5E39, 0x42F38D9C, 0xC467FF32, 0x0F3B2C97,
491     0xFE6D9E42, 0x35314DE7, 0xB3A53F49, 0x78F9ECEC,
492     0x65FCDC54, 0xAEA00FF1, 0x28347D5F, 0xE368AEFA,
493     0x16441B82, 0xDD18C827, 0x5B8CBA89, 0x90D0692C,
494     0x8DD55994, 0x46898A31, 0xC01DF89F, 0x0B412B3A,
495     0xFA1799EF, 0x314B4A4A, 0xB7DF38E4, 0x7C83EB41,
496     0x6186DBF9, 0xAADA085C, 0x2C4E7AF2, 0xE712A957,
497     0x15921919, 0xDECECABC, 0x585AB812, 0x93066BB7,
498     0x8E035B0F, 0x455F88AA, 0xC3CBFA04, 0x089729A1,
499     0xF9C19B74, 0x329D48D1, 0xB4093A7F, 0x7F55E9DA,
500     0x6250D962, 0xA90C0AC7, 0x2F987869, 0xE4C4ABCC,
501     /* T8_6 */
502     0x00000000, 0xA6770BB4, 0x979F1129, 0x31E81A9D,
503     0xF44F2413, 0x52382FA7, 0x63D0353A, 0xC5A73E8E,
504     0x33EF4E67, 0x959845D3, 0xA4705F4E, 0x020754FA,
505     0xC7A06A74, 0x61D761C0, 0x503F7B5D, 0xF64870E9,
506     0x67DE9CCE, 0xC1A9977A, 0xF0418DE7, 0x56368653,
507     0x9391B8DD, 0x35E6B369, 0x040EA9F4, 0xA279A240,
508     0x5431D2A9, 0xF246D91D, 0xC3AEC380, 0x65D9C834,
509     0xA07EF6BA, 0x0609FD0E, 0x37E1E793, 0x9196EC27,
510     0xCFBD399C, 0x69CA3228, 0x582228B5, 0xFE552301,
511     0x3BF21D8F, 0x9D85163B, 0xAC6D0CA6, 0x0A1A0712,
512     0xFC5277FB, 0x5A257C4F, 0x6BCD66D2, 0xCDBA6D66,
513     0x081D53E8, 0xAE6A585C, 0x9F8242C1, 0x39F54975,
514     0xA863A552, 0x0E14AEE6, 0x3FFCB47B, 0x998BBFCF,
515     0x5C2C8141, 0xFA5B8AF5, 0xCBB39068, 0x6DC49BDC,
516     0x9B8CEB35, 0x3DFBE081, 0x0C13FA1C, 0xAA64F1A8,
517     0x6FC3CF26, 0xC9B4C492, 0xF85CDE0F, 0x5E2BD5BB,
518     0x440B7579, 0xE27C7ECD, 0xD3946450, 0x75E36FE4,
519     0xB044516A, 0x16335ADE, 0x27DB4043, 0x81AC4BF7,
520     0x77E43B1E, 0xD19330AA, 0xE07B2A37, 0x460C2183,
521     0x83AB1F0D, 0x25DC14B9, 0x14340E24, 0xB2430590,
522     0x23D5E9B7, 0x85A2E203, 0xB44AF89E, 0x123DF32A,
523     0xD79ACDA4, 0x71EDC610, 0x4005DC8D, 0xE672D739,
524     0x103AA7D0, 0xB64DAC64, 0x87A5B6F9, 0x21D2BD4D,
525     0xE47583C3, 0x42028877, 0x73EA92EA, 0xD59D995E,
526     0x8BB64CE5, 0x2DC14751, 0x1C295DCC, 0xBA5E5678,
527     0x7FF968F6, 0xD98E6342, 0xE86679DF, 0x4E11726B,
528     0xB8590282, 0x1E2E0936, 0x2FC613AB, 0x89B1181F,
529     0x4C162691, 0xEA612D25, 0xDB8937B8, 0x7DFE3C0C,
530     0xEC68D02B, 0x4A1FDB9F, 0x7BF7C102, 0xDD80CAB6,
531     0x1827F438, 0xBE50FF8C, 0x8FB8E511, 0x29CFEEA5,
532     0xDF879E4C, 0x79F095F8, 0x48188F65, 0xEE6F84D1,
533     0x2BC8BA5F, 0x8DBFB1EB, 0xBC57AB76, 0x1A20A0C2,
534     0x8816EAF2, 0x2E61E146, 0x1F89FBDB, 0xB9FEF06F,
535     0x7C59CEE1, 0xDA2EC555, 0xEBC6DFC8, 0x4DB1D47C,
536     0xBBF9A495, 0x1D8EAF21, 0x2C66B5BC, 0x8A11BE08,
537     0x4FB68086, 0xE9C18B32, 0xD82991AF, 0x7E5E9A1B,
538     0xEFC8763C, 0x49BF7D88, 0x78576715, 0xDE206CA1,
539     0x1B87522F, 0xBDF0599B, 0x8C184306, 0x2A6F48B2,
540     0xDC27385B, 0x7A5033EF, 0x4BB82972, 0xEDCF22C6,
541     0x28681C48, 0x8E1F17FC, 0xBFF70D61, 0x198006D5,
542     0x47ABD36E, 0xE1DCD8DA, 0xD034C247, 0x7643C9F3,
543     0xB3E4F77D, 0x1593FCC9, 0x247BE654, 0x820CEDE0,
544     0x74449D09, 0xD23396BD, 0xE3DB8C20, 0x45AC8794,
545     0x800BB91A, 0x267CB2AE, 0x1794A833, 0xB1E3A387,
546     0x20754FA0, 0x86024414, 0xB7EA5E89, 0x119D553D,
547     0xD43A6BB3, 0x724D6007, 0x43A57A9A, 0xE5D2712E,
548     0x139A01C7, 0xB5ED0A73, 0x840510EE, 0x22721B5A,
549     0xE7D525D4, 0x41A22E60, 0x704A34FD, 0xD63D3F49,
550     0xCC1D9F8B, 0x6A6A943F, 0x5B828EA2, 0xFDF58516,
551     0x3852BB98, 0x9E25B02C, 0xAFCDAAB1, 0x09BAA105,
552     0xFFF2D1EC, 0x5985DA58, 0x686DC0C5, 0xCE1ACB71,
553     0x0BBDF5FF, 0xADCAFE4B, 0x9C22E4D6, 0x3A55EF62,
554     0xABC30345, 0x0DB408F1, 0x3C5C126C, 0x9A2B19D8,
555     0x5F8C2756, 0xF9FB2CE2, 0xC813367F, 0x6E643DCB,
556     0x982C4D22, 0x3E5B4696, 0x0FB35C0B, 0xA9C457BF,
557     0x6C636931, 0xCA146285, 0xFBFC7818, 0x5D8B73AC,
558     0x03A0A617, 0xA5D7ADA3, 0x943FB73E, 0x3248BC8A,
559     0xF7EF8204, 0x519889B0, 0x6070932D, 0xC6079899,
560     0x304FE870, 0x9638E3C4, 0xA7D0F959, 0x01A7F2ED,
561     0xC400CC63, 0x6277C7D7, 0x539FDD4A, 0xF5E8D6FE,
562     0x647E3AD9, 0xC209316D, 0xF3E12BF0, 0x55962044,
563     0x90311ECA, 0x3646157E, 0x07AE0FE3, 0xA1D90457,
564     0x579174BE, 0xF1E67F0A, 0xC00E6597, 0x66796E23,
565     0xA3DE50AD, 0x05A95B19, 0x34414184, 0x92364A30,
566     /* T8_7 */
567     0x00000000, 0xCCAA009E, 0x4225077D, 0x8E8F07E3,
568     0x844A0EFA, 0x48E00E64, 0xC66F0987, 0x0AC50919,
569     0xD3E51BB5, 0x1F4F1B2B, 0x91C01CC8, 0x5D6A1C56,
570     0x57AF154F, 0x9B0515D1, 0x158A1232, 0xD92012AC,
571     0x7CBB312B, 0xB01131B5, 0x3E9E3656, 0xF23436C8,
572     0xF8F13FD1, 0x345B3F4F, 0xBAD438AC, 0x767E3832,
573     0xAF5E2A9E, 0x63F42A00, 0xED7B2DE3, 0x21D12D7D,
574     0x2B142464, 0xE7BE24FA, 0x69312319, 0xA59B2387,
575     0xF9766256, 0x35DC62C8, 0xBB53652B, 0x77F965B5,
576     0x7D3C6CAC, 0xB1966C32, 0x3F196BD1, 0xF3B36B4F,
577     0x2A9379E3, 0xE639797D, 0x68B67E9E, 0xA41C7E00,
578     0xAED97719, 0x62737787, 0xECFC7064, 0x205670FA,
579     0x85CD537D, 0x496753E3, 0xC7E85400, 0x0B42549E,
580     0x01875D87, 0xCD2D5D19, 0x43A25AFA, 0x8F085A64,
581     0x562848C8, 0x9A824856, 0x140D4FB5, 0xD8A74F2B,
582     0xD2624632, 0x1EC846AC, 0x9047414F, 0x5CED41D1,
583     0x299DC2ED, 0xE537C273, 0x6BB8C590, 0xA712C50E,
584     0xADD7CC17, 0x617DCC89, 0xEFF2CB6A, 0x2358CBF4,
585     0xFA78D958, 0x36D2D9C6, 0xB85DDE25, 0x74F7DEBB,
586     0x7E32D7A2, 0xB298D73C, 0x3C17D0DF, 0xF0BDD041,
587     0x5526F3C6, 0x998CF358, 0x1703F4BB, 0xDBA9F425,
588     0xD16CFD3C, 0x1DC6FDA2, 0x9349FA41, 0x5FE3FADF,
589     0x86C3E873, 0x4A69E8ED, 0xC4E6EF0E, 0x084CEF90,
590     0x0289E689, 0xCE23E617, 0x40ACE1F4, 0x8C06E16A,
591     0xD0EBA0BB, 0x1C41A025, 0x92CEA7C6, 0x5E64A758,
592     0x54A1AE41, 0x980BAEDF, 0x1684A93C, 0xDA2EA9A2,
593     0x030EBB0E, 0xCFA4BB90, 0x412BBC73, 0x8D81BCED,
594     0x8744B5F4, 0x4BEEB56A, 0xC561B289, 0x09CBB217,
595     0xAC509190, 0x60FA910E, 0xEE7596ED, 0x22DF9673,
596     0x281A9F6A, 0xE4B09FF4, 0x6A3F9817, 0xA6959889,
597     0x7FB58A25, 0xB31F8ABB, 0x3D908D58, 0xF13A8DC6,
598     0xFBFF84DF, 0x37558441, 0xB9DA83A2, 0x7570833C,
599     0x533B85DA, 0x9F918544, 0x111E82A7, 0xDDB48239,
600     0xD7718B20, 0x1BDB8BBE, 0x95548C5D, 0x59FE8CC3,
601     0x80DE9E6F, 0x4C749EF1, 0xC2FB9912, 0x0E51998C,
602     0x04949095, 0xC83E900B, 0x46B197E8, 0x8A1B9776,
603     0x2F80B4F1, 0xE32AB46F, 0x6DA5B38C, 0xA10FB312,
604     0xABCABA0B, 0x6760BA95, 0xE9EFBD76, 0x2545BDE8,
605     0xFC65AF44, 0x30CFAFDA, 0xBE40A839, 0x72EAA8A7,
606     0x782FA1BE, 0xB485A120, 0x3A0AA6C3, 0xF6A0A65D,
607     0xAA4DE78C, 0x66E7E712, 0xE868E0F1, 0x24C2E06F,
608     0x2E07E976, 0xE2ADE9E8, 0x6C22EE0B, 0xA088EE95,
609     0x79A8FC39, 0xB502FCA7, 0x3B8DFB44, 0xF727FBDA,
610     0xFDE2F2C3, 0x3148F25D, 0xBFC7F5BE, 0x736DF520,
611     0xD6F6D6A7, 0x1A5CD639, 0x94D3D1DA, 0x5879D144,
612     0x52BCD85D, 0x9E16D8C3, 0x1099DF20, 0xDC33DFBE,
613     0x0513CD12, 0xC9B9CD8C, 0x4736CA6F, 0x8B9CCAF1,
614     0x8159C3E8, 0x4DF3C376, 0xC37CC495, 0x0FD6C40B,
615     0x7AA64737, 0xB60C47A9, 0x3883404A, 0xF42940D4,
616     0xFEEC49CD, 0x32464953, 0xBCC94EB0, 0x70634E2E,
617     0xA9435C82, 0x65E95C1C, 0xEB665BFF, 0x27CC5B61,
618     0x2D095278, 0xE1A352E6, 0x6F2C5505, 0xA386559B,
619     0x061D761C, 0xCAB77682, 0x44387161, 0x889271FF,
620     0x825778E6, 0x4EFD7878, 0xC0727F9B, 0x0CD87F05,
621     0xD5F86DA9, 0x19526D37, 0x97DD6AD4, 0x5B776A4A,
622     0x51B26353, 0x9D1863CD, 0x1397642E, 0xDF3D64B0,
623     0x83D02561, 0x4F7A25FF, 0xC1F5221C, 0x0D5F2282,
624     0x079A2B9B, 0xCB302B05, 0x45BF2CE6, 0x89152C78,
625     0x50353ED4, 0x9C9F3E4A, 0x121039A9, 0xDEBA3937,
626     0xD47F302E, 0x18D530B0, 0x965A3753, 0x5AF037CD,
627     0xFF6B144A, 0x33C114D4, 0xBD4E1337, 0x71E413A9,
628     0x7B211AB0, 0xB78B1A2E, 0x39041DCD, 0xF5AE1D53,
629     0x2C8E0FFF, 0xE0240F61, 0x6EAB0882, 0xA201081C,
630     0xA8C40105, 0x646E019B, 0xEAE10678, 0x264B06E6
631   };
632 }