Initial commit
[hashcat.git] / nv / m06100_a0.cu
1 /**
2  * Author......: Jens Steube <jens.steube@gmail.com>
3  * License.....: MIT
4  */
5
6 #define _WHIRLPOOL_
7
8 #include "include/constants.h"
9 #include "include/kernel_vendor.h"
10
11 #ifdef  VLIW1
12 #define VECT_SIZE1
13 #endif
14
15 #ifdef  VLIW2
16 #define VECT_SIZE1
17 #endif
18
19 #define DGST_R0 0
20 #define DGST_R1 1
21 #define DGST_R2 2
22 #define DGST_R3 3
23
24 #include "include/kernel_functions.c"
25 #include "types_nv.c"
26 #include "common_nv.c"
27 #include "include/rp_gpu.h"
28 #include "rp_nv.c"
29
30 #ifdef  VECT_SIZE1
31 #define VECT_COMPARE_S "check_single_vect1_comp4.c"
32 #define VECT_COMPARE_M "check_multi_vect1_comp4.c"
33 #endif
34
35 #ifdef  VECT_SIZE2
36 #define VECT_COMPARE_S "check_single_vect2_comp4.c"
37 #define VECT_COMPARE_M "check_multi_vect2_comp4.c"
38 #endif
39
40 #define R 10
41
42 #ifdef VECT_SIZE1
43 #define BOX(S,n,i) u32x ((S)[(n)][(i)])
44 #endif
45
46 #ifdef VECT_SIZE2
47 #define BOX(S,n,i) u32x ((S)[(n)][(i).x], (S)[(n)][(i).y])
48 #endif
49
50 __device__ static u32 Ch[8][256] =
51 {
52   {
53     0x18186018, 0x23238c23, 0xc6c63fc6, 0xe8e887e8,
54     0x87872687, 0xb8b8dab8, 0x01010401, 0x4f4f214f,
55     0x3636d836, 0xa6a6a2a6, 0xd2d26fd2, 0xf5f5f3f5,
56     0x7979f979, 0x6f6fa16f, 0x91917e91, 0x52525552,
57     0x60609d60, 0xbcbccabc, 0x9b9b569b, 0x8e8e028e,
58     0xa3a3b6a3, 0x0c0c300c, 0x7b7bf17b, 0x3535d435,
59     0x1d1d741d, 0xe0e0a7e0, 0xd7d77bd7, 0xc2c22fc2,
60     0x2e2eb82e, 0x4b4b314b, 0xfefedffe, 0x57574157,
61     0x15155415, 0x7777c177, 0x3737dc37, 0xe5e5b3e5,
62     0x9f9f469f, 0xf0f0e7f0, 0x4a4a354a, 0xdada4fda,
63     0x58587d58, 0xc9c903c9, 0x2929a429, 0x0a0a280a,
64     0xb1b1feb1, 0xa0a0baa0, 0x6b6bb16b, 0x85852e85,
65     0xbdbdcebd, 0x5d5d695d, 0x10104010, 0xf4f4f7f4,
66     0xcbcb0bcb, 0x3e3ef83e, 0x05051405, 0x67678167,
67     0xe4e4b7e4, 0x27279c27, 0x41411941, 0x8b8b168b,
68     0xa7a7a6a7, 0x7d7de97d, 0x95956e95, 0xd8d847d8,
69     0xfbfbcbfb, 0xeeee9fee, 0x7c7ced7c, 0x66668566,
70     0xdddd53dd, 0x17175c17, 0x47470147, 0x9e9e429e,
71     0xcaca0fca, 0x2d2db42d, 0xbfbfc6bf, 0x07071c07,
72     0xadad8ead, 0x5a5a755a, 0x83833683, 0x3333cc33,
73     0x63639163, 0x02020802, 0xaaaa92aa, 0x7171d971,
74     0xc8c807c8, 0x19196419, 0x49493949, 0xd9d943d9,
75     0xf2f2eff2, 0xe3e3abe3, 0x5b5b715b, 0x88881a88,
76     0x9a9a529a, 0x26269826, 0x3232c832, 0xb0b0fab0,
77     0xe9e983e9, 0x0f0f3c0f, 0xd5d573d5, 0x80803a80,
78     0xbebec2be, 0xcdcd13cd, 0x3434d034, 0x48483d48,
79     0xffffdbff, 0x7a7af57a, 0x90907a90, 0x5f5f615f,
80     0x20208020, 0x6868bd68, 0x1a1a681a, 0xaeae82ae,
81     0xb4b4eab4, 0x54544d54, 0x93937693, 0x22228822,
82     0x64648d64, 0xf1f1e3f1, 0x7373d173, 0x12124812,
83     0x40401d40, 0x08082008, 0xc3c32bc3, 0xecec97ec,
84     0xdbdb4bdb, 0xa1a1bea1, 0x8d8d0e8d, 0x3d3df43d,
85     0x97976697, 0x00000000, 0xcfcf1bcf, 0x2b2bac2b,
86     0x7676c576, 0x82823282, 0xd6d67fd6, 0x1b1b6c1b,
87     0xb5b5eeb5, 0xafaf86af, 0x6a6ab56a, 0x50505d50,
88     0x45450945, 0xf3f3ebf3, 0x3030c030, 0xefef9bef,
89     0x3f3ffc3f, 0x55554955, 0xa2a2b2a2, 0xeaea8fea,
90     0x65658965, 0xbabad2ba, 0x2f2fbc2f, 0xc0c027c0,
91     0xdede5fde, 0x1c1c701c, 0xfdfdd3fd, 0x4d4d294d,
92     0x92927292, 0x7575c975, 0x06061806, 0x8a8a128a,
93     0xb2b2f2b2, 0xe6e6bfe6, 0x0e0e380e, 0x1f1f7c1f,
94     0x62629562, 0xd4d477d4, 0xa8a89aa8, 0x96966296,
95     0xf9f9c3f9, 0xc5c533c5, 0x25259425, 0x59597959,
96     0x84842a84, 0x7272d572, 0x3939e439, 0x4c4c2d4c,
97     0x5e5e655e, 0x7878fd78, 0x3838e038, 0x8c8c0a8c,
98     0xd1d163d1, 0xa5a5aea5, 0xe2e2afe2, 0x61619961,
99     0xb3b3f6b3, 0x21218421, 0x9c9c4a9c, 0x1e1e781e,
100     0x43431143, 0xc7c73bc7, 0xfcfcd7fc, 0x04041004,
101     0x51515951, 0x99995e99, 0x6d6da96d, 0x0d0d340d,
102     0xfafacffa, 0xdfdf5bdf, 0x7e7ee57e, 0x24249024,
103     0x3b3bec3b, 0xabab96ab, 0xcece1fce, 0x11114411,
104     0x8f8f068f, 0x4e4e254e, 0xb7b7e6b7, 0xebeb8beb,
105     0x3c3cf03c, 0x81813e81, 0x94946a94, 0xf7f7fbf7,
106     0xb9b9deb9, 0x13134c13, 0x2c2cb02c, 0xd3d36bd3,
107     0xe7e7bbe7, 0x6e6ea56e, 0xc4c437c4, 0x03030c03,
108     0x56564556, 0x44440d44, 0x7f7fe17f, 0xa9a99ea9,
109     0x2a2aa82a, 0xbbbbd6bb, 0xc1c123c1, 0x53535153,
110     0xdcdc57dc, 0x0b0b2c0b, 0x9d9d4e9d, 0x6c6cad6c,
111     0x3131c431, 0x7474cd74, 0xf6f6fff6, 0x46460546,
112     0xacac8aac, 0x89891e89, 0x14145014, 0xe1e1a3e1,
113     0x16165816, 0x3a3ae83a, 0x6969b969, 0x09092409,
114     0x7070dd70, 0xb6b6e2b6, 0xd0d067d0, 0xeded93ed,
115     0xcccc17cc, 0x42421542, 0x98985a98, 0xa4a4aaa4,
116     0x2828a028, 0x5c5c6d5c, 0xf8f8c7f8, 0x86862286,
117   },
118   {
119     0xd8181860, 0x2623238c, 0xb8c6c63f, 0xfbe8e887,
120     0xcb878726, 0x11b8b8da, 0x09010104, 0x0d4f4f21,
121     0x9b3636d8, 0xffa6a6a2, 0x0cd2d26f, 0x0ef5f5f3,
122     0x967979f9, 0x306f6fa1, 0x6d91917e, 0xf8525255,
123     0x4760609d, 0x35bcbcca, 0x379b9b56, 0x8a8e8e02,
124     0xd2a3a3b6, 0x6c0c0c30, 0x847b7bf1, 0x803535d4,
125     0xf51d1d74, 0xb3e0e0a7, 0x21d7d77b, 0x9cc2c22f,
126     0x432e2eb8, 0x294b4b31, 0x5dfefedf, 0xd5575741,
127     0xbd151554, 0xe87777c1, 0x923737dc, 0x9ee5e5b3,
128     0x139f9f46, 0x23f0f0e7, 0x204a4a35, 0x44dada4f,
129     0xa258587d, 0xcfc9c903, 0x7c2929a4, 0x5a0a0a28,
130     0x50b1b1fe, 0xc9a0a0ba, 0x146b6bb1, 0xd985852e,
131     0x3cbdbdce, 0x8f5d5d69, 0x90101040, 0x07f4f4f7,
132     0xddcbcb0b, 0xd33e3ef8, 0x2d050514, 0x78676781,
133     0x97e4e4b7, 0x0227279c, 0x73414119, 0xa78b8b16,
134     0xf6a7a7a6, 0xb27d7de9, 0x4995956e, 0x56d8d847,
135     0x70fbfbcb, 0xcdeeee9f, 0xbb7c7ced, 0x71666685,
136     0x7bdddd53, 0xaf17175c, 0x45474701, 0x1a9e9e42,
137     0xd4caca0f, 0x582d2db4, 0x2ebfbfc6, 0x3f07071c,
138     0xacadad8e, 0xb05a5a75, 0xef838336, 0xb63333cc,
139     0x5c636391, 0x12020208, 0x93aaaa92, 0xde7171d9,
140     0xc6c8c807, 0xd1191964, 0x3b494939, 0x5fd9d943,
141     0x31f2f2ef, 0xa8e3e3ab, 0xb95b5b71, 0xbc88881a,
142     0x3e9a9a52, 0x0b262698, 0xbf3232c8, 0x59b0b0fa,
143     0xf2e9e983, 0x770f0f3c, 0x33d5d573, 0xf480803a,
144     0x27bebec2, 0xebcdcd13, 0x893434d0, 0x3248483d,
145     0x54ffffdb, 0x8d7a7af5, 0x6490907a, 0x9d5f5f61,
146     0x3d202080, 0x0f6868bd, 0xca1a1a68, 0xb7aeae82,
147     0x7db4b4ea, 0xce54544d, 0x7f939376, 0x2f222288,
148     0x6364648d, 0x2af1f1e3, 0xcc7373d1, 0x82121248,
149     0x7a40401d, 0x48080820, 0x95c3c32b, 0xdfecec97,
150     0x4ddbdb4b, 0xc0a1a1be, 0x918d8d0e, 0xc83d3df4,
151     0x5b979766, 0x00000000, 0xf9cfcf1b, 0x6e2b2bac,
152     0xe17676c5, 0xe6828232, 0x28d6d67f, 0xc31b1b6c,
153     0x74b5b5ee, 0xbeafaf86, 0x1d6a6ab5, 0xea50505d,
154     0x57454509, 0x38f3f3eb, 0xad3030c0, 0xc4efef9b,
155     0xda3f3ffc, 0xc7555549, 0xdba2a2b2, 0xe9eaea8f,
156     0x6a656589, 0x03babad2, 0x4a2f2fbc, 0x8ec0c027,
157     0x60dede5f, 0xfc1c1c70, 0x46fdfdd3, 0x1f4d4d29,
158     0x76929272, 0xfa7575c9, 0x36060618, 0xae8a8a12,
159     0x4bb2b2f2, 0x85e6e6bf, 0x7e0e0e38, 0xe71f1f7c,
160     0x55626295, 0x3ad4d477, 0x81a8a89a, 0x52969662,
161     0x62f9f9c3, 0xa3c5c533, 0x10252594, 0xab595979,
162     0xd084842a, 0xc57272d5, 0xec3939e4, 0x164c4c2d,
163     0x945e5e65, 0x9f7878fd, 0xe53838e0, 0x988c8c0a,
164     0x17d1d163, 0xe4a5a5ae, 0xa1e2e2af, 0x4e616199,
165     0x42b3b3f6, 0x34212184, 0x089c9c4a, 0xee1e1e78,
166     0x61434311, 0xb1c7c73b, 0x4ffcfcd7, 0x24040410,
167     0xe3515159, 0x2599995e, 0x226d6da9, 0x650d0d34,
168     0x79fafacf, 0x69dfdf5b, 0xa97e7ee5, 0x19242490,
169     0xfe3b3bec, 0x9aabab96, 0xf0cece1f, 0x99111144,
170     0x838f8f06, 0x044e4e25, 0x66b7b7e6, 0xe0ebeb8b,
171     0xc13c3cf0, 0xfd81813e, 0x4094946a, 0x1cf7f7fb,
172     0x18b9b9de, 0x8b13134c, 0x512c2cb0, 0x05d3d36b,
173     0x8ce7e7bb, 0x396e6ea5, 0xaac4c437, 0x1b03030c,
174     0xdc565645, 0x5e44440d, 0xa07f7fe1, 0x88a9a99e,
175     0x672a2aa8, 0x0abbbbd6, 0x87c1c123, 0xf1535351,
176     0x72dcdc57, 0x530b0b2c, 0x019d9d4e, 0x2b6c6cad,
177     0xa43131c4, 0xf37474cd, 0x15f6f6ff, 0x4c464605,
178     0xa5acac8a, 0xb589891e, 0xb4141450, 0xbae1e1a3,
179     0xa6161658, 0xf73a3ae8, 0x066969b9, 0x41090924,
180     0xd77070dd, 0x6fb6b6e2, 0x1ed0d067, 0xd6eded93,
181     0xe2cccc17, 0x68424215, 0x2c98985a, 0xeda4a4aa,
182     0x752828a0, 0x865c5c6d, 0x6bf8f8c7, 0xc2868622,
183   },
184   {
185     0x30d81818, 0x46262323, 0x91b8c6c6, 0xcdfbe8e8,
186     0x13cb8787, 0x6d11b8b8, 0x02090101, 0x9e0d4f4f,
187     0x6c9b3636, 0x51ffa6a6, 0xb90cd2d2, 0xf70ef5f5,
188     0xf2967979, 0xde306f6f, 0x3f6d9191, 0xa4f85252,
189     0xc0476060, 0x6535bcbc, 0x2b379b9b, 0x018a8e8e,
190     0x5bd2a3a3, 0x186c0c0c, 0xf6847b7b, 0x6a803535,
191     0x3af51d1d, 0xddb3e0e0, 0xb321d7d7, 0x999cc2c2,
192     0x5c432e2e, 0x96294b4b, 0xe15dfefe, 0xaed55757,
193     0x2abd1515, 0xeee87777, 0x6e923737, 0xd79ee5e5,
194     0x23139f9f, 0xfd23f0f0, 0x94204a4a, 0xa944dada,
195     0xb0a25858, 0x8fcfc9c9, 0x527c2929, 0x145a0a0a,
196     0x7f50b1b1, 0x5dc9a0a0, 0xd6146b6b, 0x17d98585,
197     0x673cbdbd, 0xba8f5d5d, 0x20901010, 0xf507f4f4,
198     0x8bddcbcb, 0x7cd33e3e, 0x0a2d0505, 0xce786767,
199     0xd597e4e4, 0x4e022727, 0x82734141, 0x0ba78b8b,
200     0x53f6a7a7, 0xfab27d7d, 0x37499595, 0xad56d8d8,
201     0xeb70fbfb, 0xc1cdeeee, 0xf8bb7c7c, 0xcc716666,
202     0xa77bdddd, 0x2eaf1717, 0x8e454747, 0x211a9e9e,
203     0x89d4caca, 0x5a582d2d, 0x632ebfbf, 0x0e3f0707,
204     0x47acadad, 0xb4b05a5a, 0x1bef8383, 0x66b63333,
205     0xc65c6363, 0x04120202, 0x4993aaaa, 0xe2de7171,
206     0x8dc6c8c8, 0x32d11919, 0x923b4949, 0xaf5fd9d9,
207     0xf931f2f2, 0xdba8e3e3, 0xb6b95b5b, 0x0dbc8888,
208     0x293e9a9a, 0x4c0b2626, 0x64bf3232, 0x7d59b0b0,
209     0xcff2e9e9, 0x1e770f0f, 0xb733d5d5, 0x1df48080,
210     0x6127bebe, 0x87ebcdcd, 0x68893434, 0x90324848,
211     0xe354ffff, 0xf48d7a7a, 0x3d649090, 0xbe9d5f5f,
212     0x403d2020, 0xd00f6868, 0x34ca1a1a, 0x41b7aeae,
213     0x757db4b4, 0xa8ce5454, 0x3b7f9393, 0x442f2222,
214     0xc8636464, 0xff2af1f1, 0xe6cc7373, 0x24821212,
215     0x807a4040, 0x10480808, 0x9b95c3c3, 0xc5dfecec,
216     0xab4ddbdb, 0x5fc0a1a1, 0x07918d8d, 0x7ac83d3d,
217     0x335b9797, 0x00000000, 0x83f9cfcf, 0x566e2b2b,
218     0xece17676, 0x19e68282, 0xb128d6d6, 0x36c31b1b,
219     0x7774b5b5, 0x43beafaf, 0xd41d6a6a, 0xa0ea5050,
220     0x8a574545, 0xfb38f3f3, 0x60ad3030, 0xc3c4efef,
221     0x7eda3f3f, 0xaac75555, 0x59dba2a2, 0xc9e9eaea,
222     0xca6a6565, 0x6903baba, 0x5e4a2f2f, 0x9d8ec0c0,
223     0xa160dede, 0x38fc1c1c, 0xe746fdfd, 0x9a1f4d4d,
224     0x39769292, 0xeafa7575, 0x0c360606, 0x09ae8a8a,
225     0x794bb2b2, 0xd185e6e6, 0x1c7e0e0e, 0x3ee71f1f,
226     0xc4556262, 0xb53ad4d4, 0x4d81a8a8, 0x31529696,
227     0xef62f9f9, 0x97a3c5c5, 0x4a102525, 0xb2ab5959,
228     0x15d08484, 0xe4c57272, 0x72ec3939, 0x98164c4c,
229     0xbc945e5e, 0xf09f7878, 0x70e53838, 0x05988c8c,
230     0xbf17d1d1, 0x57e4a5a5, 0xd9a1e2e2, 0xc24e6161,
231     0x7b42b3b3, 0x42342121, 0x25089c9c, 0x3cee1e1e,
232     0x86614343, 0x93b1c7c7, 0xe54ffcfc, 0x08240404,
233     0xa2e35151, 0x2f259999, 0xda226d6d, 0x1a650d0d,
234     0xe979fafa, 0xa369dfdf, 0xfca97e7e, 0x48192424,
235     0x76fe3b3b, 0x4b9aabab, 0x81f0cece, 0x22991111,
236     0x03838f8f, 0x9c044e4e, 0x7366b7b7, 0xcbe0ebeb,
237     0x78c13c3c, 0x1ffd8181, 0x35409494, 0xf31cf7f7,
238     0x6f18b9b9, 0x268b1313, 0x58512c2c, 0xbb05d3d3,
239     0xd38ce7e7, 0xdc396e6e, 0x95aac4c4, 0x061b0303,
240     0xacdc5656, 0x885e4444, 0xfea07f7f, 0x4f88a9a9,
241     0x54672a2a, 0x6b0abbbb, 0x9f87c1c1, 0xa6f15353,
242     0xa572dcdc, 0x16530b0b, 0x27019d9d, 0xd82b6c6c,
243     0x62a43131, 0xe8f37474, 0xf115f6f6, 0x8c4c4646,
244     0x45a5acac, 0x0fb58989, 0x28b41414, 0xdfbae1e1,
245     0x2ca61616, 0x74f73a3a, 0xd2066969, 0x12410909,
246     0xe0d77070, 0x716fb6b6, 0xbd1ed0d0, 0xc7d6eded,
247     0x85e2cccc, 0x84684242, 0x2d2c9898, 0x55eda4a4,
248     0x50752828, 0xb8865c5c, 0xed6bf8f8, 0x11c28686,
249   },
250   {
251     0x7830d818, 0xaf462623, 0xf991b8c6, 0x6fcdfbe8,
252     0xa113cb87, 0x626d11b8, 0x05020901, 0x6e9e0d4f,
253     0xee6c9b36, 0x0451ffa6, 0xbdb90cd2, 0x06f70ef5,
254     0x80f29679, 0xcede306f, 0xef3f6d91, 0x07a4f852,
255     0xfdc04760, 0x766535bc, 0xcd2b379b, 0x8c018a8e,
256     0x155bd2a3, 0x3c186c0c, 0x8af6847b, 0xe16a8035,
257     0x693af51d, 0x47ddb3e0, 0xacb321d7, 0xed999cc2,
258     0x965c432e, 0x7a96294b, 0x21e15dfe, 0x16aed557,
259     0x412abd15, 0xb6eee877, 0xeb6e9237, 0x56d79ee5,
260     0xd923139f, 0x17fd23f0, 0x7f94204a, 0x95a944da,
261     0x25b0a258, 0xca8fcfc9, 0x8d527c29, 0x22145a0a,
262     0x4f7f50b1, 0x1a5dc9a0, 0xdad6146b, 0xab17d985,
263     0x73673cbd, 0x34ba8f5d, 0x50209010, 0x03f507f4,
264     0xc08bddcb, 0xc67cd33e, 0x110a2d05, 0xe6ce7867,
265     0x53d597e4, 0xbb4e0227, 0x58827341, 0x9d0ba78b,
266     0x0153f6a7, 0x94fab27d, 0xfb374995, 0x9fad56d8,
267     0x30eb70fb, 0x71c1cdee, 0x91f8bb7c, 0xe3cc7166,
268     0x8ea77bdd, 0x4b2eaf17, 0x468e4547, 0xdc211a9e,
269     0xc589d4ca, 0x995a582d, 0x79632ebf, 0x1b0e3f07,
270     0x2347acad, 0x2fb4b05a, 0xb51bef83, 0xff66b633,
271     0xf2c65c63, 0x0a041202, 0x384993aa, 0xa8e2de71,
272     0xcf8dc6c8, 0x7d32d119, 0x70923b49, 0x9aaf5fd9,
273     0x1df931f2, 0x48dba8e3, 0x2ab6b95b, 0x920dbc88,
274     0xc8293e9a, 0xbe4c0b26, 0xfa64bf32, 0x4a7d59b0,
275     0x6acff2e9, 0x331e770f, 0xa6b733d5, 0xba1df480,
276     0x7c6127be, 0xde87ebcd, 0xe4688934, 0x75903248,
277     0x24e354ff, 0x8ff48d7a, 0xea3d6490, 0x3ebe9d5f,
278     0xa0403d20, 0xd5d00f68, 0x7234ca1a, 0x2c41b7ae,
279     0x5e757db4, 0x19a8ce54, 0xe53b7f93, 0xaa442f22,
280     0xe9c86364, 0x12ff2af1, 0xa2e6cc73, 0x5a248212,
281     0x5d807a40, 0x28104808, 0xe89b95c3, 0x7bc5dfec,
282     0x90ab4ddb, 0x1f5fc0a1, 0x8307918d, 0xc97ac83d,
283     0xf1335b97, 0x00000000, 0xd483f9cf, 0x87566e2b,
284     0xb3ece176, 0xb019e682, 0xa9b128d6, 0x7736c31b,
285     0x5b7774b5, 0x2943beaf, 0xdfd41d6a, 0x0da0ea50,
286     0x4c8a5745, 0x18fb38f3, 0xf060ad30, 0x74c3c4ef,
287     0xc37eda3f, 0x1caac755, 0x1059dba2, 0x65c9e9ea,
288     0xecca6a65, 0x686903ba, 0x935e4a2f, 0xe79d8ec0,
289     0x81a160de, 0x6c38fc1c, 0x2ee746fd, 0x649a1f4d,
290     0xe0397692, 0xbceafa75, 0x1e0c3606, 0x9809ae8a,
291     0x40794bb2, 0x59d185e6, 0x361c7e0e, 0x633ee71f,
292     0xf7c45562, 0xa3b53ad4, 0x324d81a8, 0xf4315296,
293     0x3aef62f9, 0xf697a3c5, 0xb14a1025, 0x20b2ab59,
294     0xae15d084, 0xa7e4c572, 0xdd72ec39, 0x6198164c,
295     0x3bbc945e, 0x85f09f78, 0xd870e538, 0x8605988c,
296     0xb2bf17d1, 0x0b57e4a5, 0x4dd9a1e2, 0xf8c24e61,
297     0x457b42b3, 0xa5423421, 0xd625089c, 0x663cee1e,
298     0x52866143, 0xfc93b1c7, 0x2be54ffc, 0x14082404,
299     0x08a2e351, 0xc72f2599, 0xc4da226d, 0x391a650d,
300     0x35e979fa, 0x84a369df, 0x9bfca97e, 0xb4481924,
301     0xd776fe3b, 0x3d4b9aab, 0xd181f0ce, 0x55229911,
302     0x8903838f, 0x6b9c044e, 0x517366b7, 0x60cbe0eb,
303     0xcc78c13c, 0xbf1ffd81, 0xfe354094, 0x0cf31cf7,
304     0x676f18b9, 0x5f268b13, 0x9c58512c, 0xb8bb05d3,
305     0x5cd38ce7, 0xcbdc396e, 0xf395aac4, 0x0f061b03,
306     0x13acdc56, 0x49885e44, 0x9efea07f, 0x374f88a9,
307     0x8254672a, 0x6d6b0abb, 0xe29f87c1, 0x02a6f153,
308     0x8ba572dc, 0x2716530b, 0xd327019d, 0xc1d82b6c,
309     0xf562a431, 0xb9e8f374, 0x09f115f6, 0x438c4c46,
310     0x2645a5ac, 0x970fb589, 0x4428b414, 0x42dfbae1,
311     0x4e2ca616, 0xd274f73a, 0xd0d20669, 0x2d124109,
312     0xade0d770, 0x54716fb6, 0xb7bd1ed0, 0x7ec7d6ed,
313     0xdb85e2cc, 0x57846842, 0xc22d2c98, 0x0e55eda4,
314     0x88507528, 0x31b8865c, 0x3fed6bf8, 0xa411c286,
315   },
316   {
317     0xc07830d8, 0x05af4626, 0x7ef991b8, 0x136fcdfb,
318     0x4ca113cb, 0xa9626d11, 0x08050209, 0x426e9e0d,
319     0xadee6c9b, 0x590451ff, 0xdebdb90c, 0xfb06f70e,
320     0xef80f296, 0x5fcede30, 0xfcef3f6d, 0xaa07a4f8,
321     0x27fdc047, 0x89766535, 0xaccd2b37, 0x048c018a,
322     0x71155bd2, 0x603c186c, 0xff8af684, 0xb5e16a80,
323     0xe8693af5, 0x5347ddb3, 0xf6acb321, 0x5eed999c,
324     0x6d965c43, 0x627a9629, 0xa321e15d, 0x8216aed5,
325     0xa8412abd, 0x9fb6eee8, 0xa5eb6e92, 0x7b56d79e,
326     0x8cd92313, 0xd317fd23, 0x6a7f9420, 0x9e95a944,
327     0xfa25b0a2, 0x06ca8fcf, 0x558d527c, 0x5022145a,
328     0xe14f7f50, 0x691a5dc9, 0x7fdad614, 0x5cab17d9,
329     0x8173673c, 0xd234ba8f, 0x80502090, 0xf303f507,
330     0x16c08bdd, 0xedc67cd3, 0x28110a2d, 0x1fe6ce78,
331     0x7353d597, 0x25bb4e02, 0x32588273, 0x2c9d0ba7,
332     0x510153f6, 0xcf94fab2, 0xdcfb3749, 0x8e9fad56,
333     0x8b30eb70, 0x2371c1cd, 0xc791f8bb, 0x17e3cc71,
334     0xa68ea77b, 0xb84b2eaf, 0x02468e45, 0x84dc211a,
335     0x1ec589d4, 0x75995a58, 0x9179632e, 0x381b0e3f,
336     0x012347ac, 0xea2fb4b0, 0x6cb51bef, 0x85ff66b6,
337     0x3ff2c65c, 0x100a0412, 0x39384993, 0xafa8e2de,
338     0x0ecf8dc6, 0xc87d32d1, 0x7270923b, 0x869aaf5f,
339     0xc31df931, 0x4b48dba8, 0xe22ab6b9, 0x34920dbc,
340     0xa4c8293e, 0x2dbe4c0b, 0x8dfa64bf, 0xe94a7d59,
341     0x1b6acff2, 0x78331e77, 0xe6a6b733, 0x74ba1df4,
342     0x997c6127, 0x26de87eb, 0xbde46889, 0x7a759032,
343     0xab24e354, 0xf78ff48d, 0xf4ea3d64, 0xc23ebe9d,
344     0x1da0403d, 0x67d5d00f, 0xd07234ca, 0x192c41b7,
345     0xc95e757d, 0x9a19a8ce, 0xece53b7f, 0x0daa442f,
346     0x07e9c863, 0xdb12ff2a, 0xbfa2e6cc, 0x905a2482,
347     0x3a5d807a, 0x40281048, 0x56e89b95, 0x337bc5df,
348     0x9690ab4d, 0x611f5fc0, 0x1c830791, 0xf5c97ac8,
349     0xccf1335b, 0x00000000, 0x36d483f9, 0x4587566e,
350     0x97b3ece1, 0x64b019e6, 0xfea9b128, 0xd87736c3,
351     0xc15b7774, 0x112943be, 0x77dfd41d, 0xba0da0ea,
352     0x124c8a57, 0xcb18fb38, 0x9df060ad, 0x2b74c3c4,
353     0xe5c37eda, 0x921caac7, 0x791059db, 0x0365c9e9,
354     0x0fecca6a, 0xb9686903, 0x65935e4a, 0x4ee79d8e,
355     0xbe81a160, 0xe06c38fc, 0xbb2ee746, 0x52649a1f,
356     0xe4e03976, 0x8fbceafa, 0x301e0c36, 0x249809ae,
357     0xf940794b, 0x6359d185, 0x70361c7e, 0xf8633ee7,
358     0x37f7c455, 0xeea3b53a, 0x29324d81, 0xc4f43152,
359     0x9b3aef62, 0x66f697a3, 0x35b14a10, 0xf220b2ab,
360     0x54ae15d0, 0xb7a7e4c5, 0xd5dd72ec, 0x5a619816,
361     0xca3bbc94, 0xe785f09f, 0xddd870e5, 0x14860598,
362     0xc6b2bf17, 0x410b57e4, 0x434dd9a1, 0x2ff8c24e,
363     0xf1457b42, 0x15a54234, 0x94d62508, 0xf0663cee,
364     0x22528661, 0x76fc93b1, 0xb32be54f, 0x20140824,
365     0xb208a2e3, 0xbcc72f25, 0x4fc4da22, 0x68391a65,
366     0x8335e979, 0xb684a369, 0xd79bfca9, 0x3db44819,
367     0xc5d776fe, 0x313d4b9a, 0x3ed181f0, 0x88552299,
368     0x0c890383, 0x4a6b9c04, 0xd1517366, 0x0b60cbe0,
369     0xfdcc78c1, 0x7cbf1ffd, 0xd4fe3540, 0xeb0cf31c,
370     0xa1676f18, 0x985f268b, 0x7d9c5851, 0xd6b8bb05,
371     0x6b5cd38c, 0x57cbdc39, 0x6ef395aa, 0x180f061b,
372     0x8a13acdc, 0x1a49885e, 0xdf9efea0, 0x21374f88,
373     0x4d825467, 0xb16d6b0a, 0x46e29f87, 0xa202a6f1,
374     0xae8ba572, 0x58271653, 0x9cd32701, 0x47c1d82b,
375     0x95f562a4, 0x87b9e8f3, 0xe309f115, 0x0a438c4c,
376     0x092645a5, 0x3c970fb5, 0xa04428b4, 0x5b42dfba,
377     0xb04e2ca6, 0xcdd274f7, 0x6fd0d206, 0x482d1241,
378     0xa7ade0d7, 0xd954716f, 0xceb7bd1e, 0x3b7ec7d6,
379     0x2edb85e2, 0x2a578468, 0xb4c22d2c, 0x490e55ed,
380     0x5d885075, 0xda31b886, 0x933fed6b, 0x44a411c2,
381   },
382   {
383     0x18c07830, 0x2305af46, 0xc67ef991, 0xe8136fcd,
384     0x874ca113, 0xb8a9626d, 0x01080502, 0x4f426e9e,
385     0x36adee6c, 0xa6590451, 0xd2debdb9, 0xf5fb06f7,
386     0x79ef80f2, 0x6f5fcede, 0x91fcef3f, 0x52aa07a4,
387     0x6027fdc0, 0xbc897665, 0x9baccd2b, 0x8e048c01,
388     0xa371155b, 0x0c603c18, 0x7bff8af6, 0x35b5e16a,
389     0x1de8693a, 0xe05347dd, 0xd7f6acb3, 0xc25eed99,
390     0x2e6d965c, 0x4b627a96, 0xfea321e1, 0x578216ae,
391     0x15a8412a, 0x779fb6ee, 0x37a5eb6e, 0xe57b56d7,
392     0x9f8cd923, 0xf0d317fd, 0x4a6a7f94, 0xda9e95a9,
393     0x58fa25b0, 0xc906ca8f, 0x29558d52, 0x0a502214,
394     0xb1e14f7f, 0xa0691a5d, 0x6b7fdad6, 0x855cab17,
395     0xbd817367, 0x5dd234ba, 0x10805020, 0xf4f303f5,
396     0xcb16c08b, 0x3eedc67c, 0x0528110a, 0x671fe6ce,
397     0xe47353d5, 0x2725bb4e, 0x41325882, 0x8b2c9d0b,
398     0xa7510153, 0x7dcf94fa, 0x95dcfb37, 0xd88e9fad,
399     0xfb8b30eb, 0xee2371c1, 0x7cc791f8, 0x6617e3cc,
400     0xdda68ea7, 0x17b84b2e, 0x4702468e, 0x9e84dc21,
401     0xca1ec589, 0x2d75995a, 0xbf917963, 0x07381b0e,
402     0xad012347, 0x5aea2fb4, 0x836cb51b, 0x3385ff66,
403     0x633ff2c6, 0x02100a04, 0xaa393849, 0x71afa8e2,
404     0xc80ecf8d, 0x19c87d32, 0x49727092, 0xd9869aaf,
405     0xf2c31df9, 0xe34b48db, 0x5be22ab6, 0x8834920d,
406     0x9aa4c829, 0x262dbe4c, 0x328dfa64, 0xb0e94a7d,
407     0xe91b6acf, 0x0f78331e, 0xd5e6a6b7, 0x8074ba1d,
408     0xbe997c61, 0xcd26de87, 0x34bde468, 0x487a7590,
409     0xffab24e3, 0x7af78ff4, 0x90f4ea3d, 0x5fc23ebe,
410     0x201da040, 0x6867d5d0, 0x1ad07234, 0xae192c41,
411     0xb4c95e75, 0x549a19a8, 0x93ece53b, 0x220daa44,
412     0x6407e9c8, 0xf1db12ff, 0x73bfa2e6, 0x12905a24,
413     0x403a5d80, 0x08402810, 0xc356e89b, 0xec337bc5,
414     0xdb9690ab, 0xa1611f5f, 0x8d1c8307, 0x3df5c97a,
415     0x97ccf133, 0x00000000, 0xcf36d483, 0x2b458756,
416     0x7697b3ec, 0x8264b019, 0xd6fea9b1, 0x1bd87736,
417     0xb5c15b77, 0xaf112943, 0x6a77dfd4, 0x50ba0da0,
418     0x45124c8a, 0xf3cb18fb, 0x309df060, 0xef2b74c3,
419     0x3fe5c37e, 0x55921caa, 0xa2791059, 0xea0365c9,
420     0x650fecca, 0xbab96869, 0x2f65935e, 0xc04ee79d,
421     0xdebe81a1, 0x1ce06c38, 0xfdbb2ee7, 0x4d52649a,
422     0x92e4e039, 0x758fbcea, 0x06301e0c, 0x8a249809,
423     0xb2f94079, 0xe66359d1, 0x0e70361c, 0x1ff8633e,
424     0x6237f7c4, 0xd4eea3b5, 0xa829324d, 0x96c4f431,
425     0xf99b3aef, 0xc566f697, 0x2535b14a, 0x59f220b2,
426     0x8454ae15, 0x72b7a7e4, 0x39d5dd72, 0x4c5a6198,
427     0x5eca3bbc, 0x78e785f0, 0x38ddd870, 0x8c148605,
428     0xd1c6b2bf, 0xa5410b57, 0xe2434dd9, 0x612ff8c2,
429     0xb3f1457b, 0x2115a542, 0x9c94d625, 0x1ef0663c,
430     0x43225286, 0xc776fc93, 0xfcb32be5, 0x04201408,
431     0x51b208a2, 0x99bcc72f, 0x6d4fc4da, 0x0d68391a,
432     0xfa8335e9, 0xdfb684a3, 0x7ed79bfc, 0x243db448,
433     0x3bc5d776, 0xab313d4b, 0xce3ed181, 0x11885522,
434     0x8f0c8903, 0x4e4a6b9c, 0xb7d15173, 0xeb0b60cb,
435     0x3cfdcc78, 0x817cbf1f, 0x94d4fe35, 0xf7eb0cf3,
436     0xb9a1676f, 0x13985f26, 0x2c7d9c58, 0xd3d6b8bb,
437     0xe76b5cd3, 0x6e57cbdc, 0xc46ef395, 0x03180f06,
438     0x568a13ac, 0x441a4988, 0x7fdf9efe, 0xa921374f,
439     0x2a4d8254, 0xbbb16d6b, 0xc146e29f, 0x53a202a6,
440     0xdcae8ba5, 0x0b582716, 0x9d9cd327, 0x6c47c1d8,
441     0x3195f562, 0x7487b9e8, 0xf6e309f1, 0x460a438c,
442     0xac092645, 0x893c970f, 0x14a04428, 0xe15b42df,
443     0x16b04e2c, 0x3acdd274, 0x696fd0d2, 0x09482d12,
444     0x70a7ade0, 0xb6d95471, 0xd0ceb7bd, 0xed3b7ec7,
445     0xcc2edb85, 0x422a5784, 0x98b4c22d, 0xa4490e55,
446     0x285d8850, 0x5cda31b8, 0xf8933fed, 0x8644a411,
447   },
448   {
449     0x6018c078, 0x8c2305af, 0x3fc67ef9, 0x87e8136f,
450     0x26874ca1, 0xdab8a962, 0x04010805, 0x214f426e,
451     0xd836adee, 0xa2a65904, 0x6fd2debd, 0xf3f5fb06,
452     0xf979ef80, 0xa16f5fce, 0x7e91fcef, 0x5552aa07,
453     0x9d6027fd, 0xcabc8976, 0x569baccd, 0x028e048c,
454     0xb6a37115, 0x300c603c, 0xf17bff8a, 0xd435b5e1,
455     0x741de869, 0xa7e05347, 0x7bd7f6ac, 0x2fc25eed,
456     0xb82e6d96, 0x314b627a, 0xdffea321, 0x41578216,
457     0x5415a841, 0xc1779fb6, 0xdc37a5eb, 0xb3e57b56,
458     0x469f8cd9, 0xe7f0d317, 0x354a6a7f, 0x4fda9e95,
459     0x7d58fa25, 0x03c906ca, 0xa429558d, 0x280a5022,
460     0xfeb1e14f, 0xbaa0691a, 0xb16b7fda, 0x2e855cab,
461     0xcebd8173, 0x695dd234, 0x40108050, 0xf7f4f303,
462     0x0bcb16c0, 0xf83eedc6, 0x14052811, 0x81671fe6,
463     0xb7e47353, 0x9c2725bb, 0x19413258, 0x168b2c9d,
464     0xa6a75101, 0xe97dcf94, 0x6e95dcfb, 0x47d88e9f,
465     0xcbfb8b30, 0x9fee2371, 0xed7cc791, 0x856617e3,
466     0x53dda68e, 0x5c17b84b, 0x01470246, 0x429e84dc,
467     0x0fca1ec5, 0xb42d7599, 0xc6bf9179, 0x1c07381b,
468     0x8ead0123, 0x755aea2f, 0x36836cb5, 0xcc3385ff,
469     0x91633ff2, 0x0802100a, 0x92aa3938, 0xd971afa8,
470     0x07c80ecf, 0x6419c87d, 0x39497270, 0x43d9869a,
471     0xeff2c31d, 0xabe34b48, 0x715be22a, 0x1a883492,
472     0x529aa4c8, 0x98262dbe, 0xc8328dfa, 0xfab0e94a,
473     0x83e91b6a, 0x3c0f7833, 0x73d5e6a6, 0x3a8074ba,
474     0xc2be997c, 0x13cd26de, 0xd034bde4, 0x3d487a75,
475     0xdbffab24, 0xf57af78f, 0x7a90f4ea, 0x615fc23e,
476     0x80201da0, 0xbd6867d5, 0x681ad072, 0x82ae192c,
477     0xeab4c95e, 0x4d549a19, 0x7693ece5, 0x88220daa,
478     0x8d6407e9, 0xe3f1db12, 0xd173bfa2, 0x4812905a,
479     0x1d403a5d, 0x20084028, 0x2bc356e8, 0x97ec337b,
480     0x4bdb9690, 0xbea1611f, 0x0e8d1c83, 0xf43df5c9,
481     0x6697ccf1, 0x00000000, 0x1bcf36d4, 0xac2b4587,
482     0xc57697b3, 0x328264b0, 0x7fd6fea9, 0x6c1bd877,
483     0xeeb5c15b, 0x86af1129, 0xb56a77df, 0x5d50ba0d,
484     0x0945124c, 0xebf3cb18, 0xc0309df0, 0x9bef2b74,
485     0xfc3fe5c3, 0x4955921c, 0xb2a27910, 0x8fea0365,
486     0x89650fec, 0xd2bab968, 0xbc2f6593, 0x27c04ee7,
487     0x5fdebe81, 0x701ce06c, 0xd3fdbb2e, 0x294d5264,
488     0x7292e4e0, 0xc9758fbc, 0x1806301e, 0x128a2498,
489     0xf2b2f940, 0xbfe66359, 0x380e7036, 0x7c1ff863,
490     0x956237f7, 0x77d4eea3, 0x9aa82932, 0x6296c4f4,
491     0xc3f99b3a, 0x33c566f6, 0x942535b1, 0x7959f220,
492     0x2a8454ae, 0xd572b7a7, 0xe439d5dd, 0x2d4c5a61,
493     0x655eca3b, 0xfd78e785, 0xe038ddd8, 0x0a8c1486,
494     0x63d1c6b2, 0xaea5410b, 0xafe2434d, 0x99612ff8,
495     0xf6b3f145, 0x842115a5, 0x4a9c94d6, 0x781ef066,
496     0x11432252, 0x3bc776fc, 0xd7fcb32b, 0x10042014,
497     0x5951b208, 0x5e99bcc7, 0xa96d4fc4, 0x340d6839,
498     0xcffa8335, 0x5bdfb684, 0xe57ed79b, 0x90243db4,
499     0xec3bc5d7, 0x96ab313d, 0x1fce3ed1, 0x44118855,
500     0x068f0c89, 0x254e4a6b, 0xe6b7d151, 0x8beb0b60,
501     0xf03cfdcc, 0x3e817cbf, 0x6a94d4fe, 0xfbf7eb0c,
502     0xdeb9a167, 0x4c13985f, 0xb02c7d9c, 0x6bd3d6b8,
503     0xbbe76b5c, 0xa56e57cb, 0x37c46ef3, 0x0c03180f,
504     0x45568a13, 0x0d441a49, 0xe17fdf9e, 0x9ea92137,
505     0xa82a4d82, 0xd6bbb16d, 0x23c146e2, 0x5153a202,
506     0x57dcae8b, 0x2c0b5827, 0x4e9d9cd3, 0xad6c47c1,
507     0xc43195f5, 0xcd7487b9, 0xfff6e309, 0x05460a43,
508     0x8aac0926, 0x1e893c97, 0x5014a044, 0xa3e15b42,
509     0x5816b04e, 0xe83acdd2, 0xb9696fd0, 0x2409482d,
510     0xdd70a7ad, 0xe2b6d954, 0x67d0ceb7, 0x93ed3b7e,
511     0x17cc2edb, 0x15422a57, 0x5a98b4c2, 0xaaa4490e,
512     0xa0285d88, 0x6d5cda31, 0xc7f8933f, 0x228644a4,
513   },
514   {
515     0x186018c0, 0x238c2305, 0xc63fc67e, 0xe887e813,
516     0x8726874c, 0xb8dab8a9, 0x01040108, 0x4f214f42,
517     0x36d836ad, 0xa6a2a659, 0xd26fd2de, 0xf5f3f5fb,
518     0x79f979ef, 0x6fa16f5f, 0x917e91fc, 0x525552aa,
519     0x609d6027, 0xbccabc89, 0x9b569bac, 0x8e028e04,
520     0xa3b6a371, 0x0c300c60, 0x7bf17bff, 0x35d435b5,
521     0x1d741de8, 0xe0a7e053, 0xd77bd7f6, 0xc22fc25e,
522     0x2eb82e6d, 0x4b314b62, 0xfedffea3, 0x57415782,
523     0x155415a8, 0x77c1779f, 0x37dc37a5, 0xe5b3e57b,
524     0x9f469f8c, 0xf0e7f0d3, 0x4a354a6a, 0xda4fda9e,
525     0x587d58fa, 0xc903c906, 0x29a42955, 0x0a280a50,
526     0xb1feb1e1, 0xa0baa069, 0x6bb16b7f, 0x852e855c,
527     0xbdcebd81, 0x5d695dd2, 0x10401080, 0xf4f7f4f3,
528     0xcb0bcb16, 0x3ef83eed, 0x05140528, 0x6781671f,
529     0xe4b7e473, 0x279c2725, 0x41194132, 0x8b168b2c,
530     0xa7a6a751, 0x7de97dcf, 0x956e95dc, 0xd847d88e,
531     0xfbcbfb8b, 0xee9fee23, 0x7ced7cc7, 0x66856617,
532     0xdd53dda6, 0x175c17b8, 0x47014702, 0x9e429e84,
533     0xca0fca1e, 0x2db42d75, 0xbfc6bf91, 0x071c0738,
534     0xad8ead01, 0x5a755aea, 0x8336836c, 0x33cc3385,
535     0x6391633f, 0x02080210, 0xaa92aa39, 0x71d971af,
536     0xc807c80e, 0x196419c8, 0x49394972, 0xd943d986,
537     0xf2eff2c3, 0xe3abe34b, 0x5b715be2, 0x881a8834,
538     0x9a529aa4, 0x2698262d, 0x32c8328d, 0xb0fab0e9,
539     0xe983e91b, 0x0f3c0f78, 0xd573d5e6, 0x803a8074,
540     0xbec2be99, 0xcd13cd26, 0x34d034bd, 0x483d487a,
541     0xffdbffab, 0x7af57af7, 0x907a90f4, 0x5f615fc2,
542     0x2080201d, 0x68bd6867, 0x1a681ad0, 0xae82ae19,
543     0xb4eab4c9, 0x544d549a, 0x937693ec, 0x2288220d,
544     0x648d6407, 0xf1e3f1db, 0x73d173bf, 0x12481290,
545     0x401d403a, 0x08200840, 0xc32bc356, 0xec97ec33,
546     0xdb4bdb96, 0xa1bea161, 0x8d0e8d1c, 0x3df43df5,
547     0x976697cc, 0x00000000, 0xcf1bcf36, 0x2bac2b45,
548     0x76c57697, 0x82328264, 0xd67fd6fe, 0x1b6c1bd8,
549     0xb5eeb5c1, 0xaf86af11, 0x6ab56a77, 0x505d50ba,
550     0x45094512, 0xf3ebf3cb, 0x30c0309d, 0xef9bef2b,
551     0x3ffc3fe5, 0x55495592, 0xa2b2a279, 0xea8fea03,
552     0x6589650f, 0xbad2bab9, 0x2fbc2f65, 0xc027c04e,
553     0xde5fdebe, 0x1c701ce0, 0xfdd3fdbb, 0x4d294d52,
554     0x927292e4, 0x75c9758f, 0x06180630, 0x8a128a24,
555     0xb2f2b2f9, 0xe6bfe663, 0x0e380e70, 0x1f7c1ff8,
556     0x62956237, 0xd477d4ee, 0xa89aa829, 0x966296c4,
557     0xf9c3f99b, 0xc533c566, 0x25942535, 0x597959f2,
558     0x842a8454, 0x72d572b7, 0x39e439d5, 0x4c2d4c5a,
559     0x5e655eca, 0x78fd78e7, 0x38e038dd, 0x8c0a8c14,
560     0xd163d1c6, 0xa5aea541, 0xe2afe243, 0x6199612f,
561     0xb3f6b3f1, 0x21842115, 0x9c4a9c94, 0x1e781ef0,
562     0x43114322, 0xc73bc776, 0xfcd7fcb3, 0x04100420,
563     0x515951b2, 0x995e99bc, 0x6da96d4f, 0x0d340d68,
564     0xfacffa83, 0xdf5bdfb6, 0x7ee57ed7, 0x2490243d,
565     0x3bec3bc5, 0xab96ab31, 0xce1fce3e, 0x11441188,
566     0x8f068f0c, 0x4e254e4a, 0xb7e6b7d1, 0xeb8beb0b,
567     0x3cf03cfd, 0x813e817c, 0x946a94d4, 0xf7fbf7eb,
568     0xb9deb9a1, 0x134c1398, 0x2cb02c7d, 0xd36bd3d6,
569     0xe7bbe76b, 0x6ea56e57, 0xc437c46e, 0x030c0318,
570     0x5645568a, 0x440d441a, 0x7fe17fdf, 0xa99ea921,
571     0x2aa82a4d, 0xbbd6bbb1, 0xc123c146, 0x535153a2,
572     0xdc57dcae, 0x0b2c0b58, 0x9d4e9d9c, 0x6cad6c47,
573     0x31c43195, 0x74cd7487, 0xf6fff6e3, 0x4605460a,
574     0xac8aac09, 0x891e893c, 0x145014a0, 0xe1a3e15b,
575     0x165816b0, 0x3ae83acd, 0x69b9696f, 0x09240948,
576     0x70dd70a7, 0xb6e2b6d9, 0xd067d0ce, 0xed93ed3b,
577     0xcc17cc2e, 0x4215422a, 0x985a98b4, 0xa4aaa449,
578     0x28a0285d, 0x5c6d5cda, 0xf8c7f893, 0x86228644,
579   }
580 };
581
582 __device__ static u32 Cl[8][256] =
583 {
584   {
585     0xc07830d8, 0x05af4626, 0x7ef991b8, 0x136fcdfb,
586     0x4ca113cb, 0xa9626d11, 0x08050209, 0x426e9e0d,
587     0xadee6c9b, 0x590451ff, 0xdebdb90c, 0xfb06f70e,
588     0xef80f296, 0x5fcede30, 0xfcef3f6d, 0xaa07a4f8,
589     0x27fdc047, 0x89766535, 0xaccd2b37, 0x048c018a,
590     0x71155bd2, 0x603c186c, 0xff8af684, 0xb5e16a80,
591     0xe8693af5, 0x5347ddb3, 0xf6acb321, 0x5eed999c,
592     0x6d965c43, 0x627a9629, 0xa321e15d, 0x8216aed5,
593     0xa8412abd, 0x9fb6eee8, 0xa5eb6e92, 0x7b56d79e,
594     0x8cd92313, 0xd317fd23, 0x6a7f9420, 0x9e95a944,
595     0xfa25b0a2, 0x06ca8fcf, 0x558d527c, 0x5022145a,
596     0xe14f7f50, 0x691a5dc9, 0x7fdad614, 0x5cab17d9,
597     0x8173673c, 0xd234ba8f, 0x80502090, 0xf303f507,
598     0x16c08bdd, 0xedc67cd3, 0x28110a2d, 0x1fe6ce78,
599     0x7353d597, 0x25bb4e02, 0x32588273, 0x2c9d0ba7,
600     0x510153f6, 0xcf94fab2, 0xdcfb3749, 0x8e9fad56,
601     0x8b30eb70, 0x2371c1cd, 0xc791f8bb, 0x17e3cc71,
602     0xa68ea77b, 0xb84b2eaf, 0x02468e45, 0x84dc211a,
603     0x1ec589d4, 0x75995a58, 0x9179632e, 0x381b0e3f,
604     0x012347ac, 0xea2fb4b0, 0x6cb51bef, 0x85ff66b6,
605     0x3ff2c65c, 0x100a0412, 0x39384993, 0xafa8e2de,
606     0x0ecf8dc6, 0xc87d32d1, 0x7270923b, 0x869aaf5f,
607     0xc31df931, 0x4b48dba8, 0xe22ab6b9, 0x34920dbc,
608     0xa4c8293e, 0x2dbe4c0b, 0x8dfa64bf, 0xe94a7d59,
609     0x1b6acff2, 0x78331e77, 0xe6a6b733, 0x74ba1df4,
610     0x997c6127, 0x26de87eb, 0xbde46889, 0x7a759032,
611     0xab24e354, 0xf78ff48d, 0xf4ea3d64, 0xc23ebe9d,
612     0x1da0403d, 0x67d5d00f, 0xd07234ca, 0x192c41b7,
613     0xc95e757d, 0x9a19a8ce, 0xece53b7f, 0x0daa442f,
614     0x07e9c863, 0xdb12ff2a, 0xbfa2e6cc, 0x905a2482,
615     0x3a5d807a, 0x40281048, 0x56e89b95, 0x337bc5df,
616     0x9690ab4d, 0x611f5fc0, 0x1c830791, 0xf5c97ac8,
617     0xccf1335b, 0x00000000, 0x36d483f9, 0x4587566e,
618     0x97b3ece1, 0x64b019e6, 0xfea9b128, 0xd87736c3,
619     0xc15b7774, 0x112943be, 0x77dfd41d, 0xba0da0ea,
620     0x124c8a57, 0xcb18fb38, 0x9df060ad, 0x2b74c3c4,
621     0xe5c37eda, 0x921caac7, 0x791059db, 0x0365c9e9,
622     0x0fecca6a, 0xb9686903, 0x65935e4a, 0x4ee79d8e,
623     0xbe81a160, 0xe06c38fc, 0xbb2ee746, 0x52649a1f,
624     0xe4e03976, 0x8fbceafa, 0x301e0c36, 0x249809ae,
625     0xf940794b, 0x6359d185, 0x70361c7e, 0xf8633ee7,
626     0x37f7c455, 0xeea3b53a, 0x29324d81, 0xc4f43152,
627     0x9b3aef62, 0x66f697a3, 0x35b14a10, 0xf220b2ab,
628     0x54ae15d0, 0xb7a7e4c5, 0xd5dd72ec, 0x5a619816,
629     0xca3bbc94, 0xe785f09f, 0xddd870e5, 0x14860598,
630     0xc6b2bf17, 0x410b57e4, 0x434dd9a1, 0x2ff8c24e,
631     0xf1457b42, 0x15a54234, 0x94d62508, 0xf0663cee,
632     0x22528661, 0x76fc93b1, 0xb32be54f, 0x20140824,
633     0xb208a2e3, 0xbcc72f25, 0x4fc4da22, 0x68391a65,
634     0x8335e979, 0xb684a369, 0xd79bfca9, 0x3db44819,
635     0xc5d776fe, 0x313d4b9a, 0x3ed181f0, 0x88552299,
636     0x0c890383, 0x4a6b9c04, 0xd1517366, 0x0b60cbe0,
637     0xfdcc78c1, 0x7cbf1ffd, 0xd4fe3540, 0xeb0cf31c,
638     0xa1676f18, 0x985f268b, 0x7d9c5851, 0xd6b8bb05,
639     0x6b5cd38c, 0x57cbdc39, 0x6ef395aa, 0x180f061b,
640     0x8a13acdc, 0x1a49885e, 0xdf9efea0, 0x21374f88,
641     0x4d825467, 0xb16d6b0a, 0x46e29f87, 0xa202a6f1,
642     0xae8ba572, 0x58271653, 0x9cd32701, 0x47c1d82b,
643     0x95f562a4, 0x87b9e8f3, 0xe309f115, 0x0a438c4c,
644     0x092645a5, 0x3c970fb5, 0xa04428b4, 0x5b42dfba,
645     0xb04e2ca6, 0xcdd274f7, 0x6fd0d206, 0x482d1241,
646     0xa7ade0d7, 0xd954716f, 0xceb7bd1e, 0x3b7ec7d6,
647     0x2edb85e2, 0x2a578468, 0xb4c22d2c, 0x490e55ed,
648     0x5d885075, 0xda31b886, 0x933fed6b, 0x44a411c2,
649   },
650   {
651     0x18c07830, 0x2305af46, 0xc67ef991, 0xe8136fcd,
652     0x874ca113, 0xb8a9626d, 0x01080502, 0x4f426e9e,
653     0x36adee6c, 0xa6590451, 0xd2debdb9, 0xf5fb06f7,
654     0x79ef80f2, 0x6f5fcede, 0x91fcef3f, 0x52aa07a4,
655     0x6027fdc0, 0xbc897665, 0x9baccd2b, 0x8e048c01,
656     0xa371155b, 0x0c603c18, 0x7bff8af6, 0x35b5e16a,
657     0x1de8693a, 0xe05347dd, 0xd7f6acb3, 0xc25eed99,
658     0x2e6d965c, 0x4b627a96, 0xfea321e1, 0x578216ae,
659     0x15a8412a, 0x779fb6ee, 0x37a5eb6e, 0xe57b56d7,
660     0x9f8cd923, 0xf0d317fd, 0x4a6a7f94, 0xda9e95a9,
661     0x58fa25b0, 0xc906ca8f, 0x29558d52, 0x0a502214,
662     0xb1e14f7f, 0xa0691a5d, 0x6b7fdad6, 0x855cab17,
663     0xbd817367, 0x5dd234ba, 0x10805020, 0xf4f303f5,
664     0xcb16c08b, 0x3eedc67c, 0x0528110a, 0x671fe6ce,
665     0xe47353d5, 0x2725bb4e, 0x41325882, 0x8b2c9d0b,
666     0xa7510153, 0x7dcf94fa, 0x95dcfb37, 0xd88e9fad,
667     0xfb8b30eb, 0xee2371c1, 0x7cc791f8, 0x6617e3cc,
668     0xdda68ea7, 0x17b84b2e, 0x4702468e, 0x9e84dc21,
669     0xca1ec589, 0x2d75995a, 0xbf917963, 0x07381b0e,
670     0xad012347, 0x5aea2fb4, 0x836cb51b, 0x3385ff66,
671     0x633ff2c6, 0x02100a04, 0xaa393849, 0x71afa8e2,
672     0xc80ecf8d, 0x19c87d32, 0x49727092, 0xd9869aaf,
673     0xf2c31df9, 0xe34b48db, 0x5be22ab6, 0x8834920d,
674     0x9aa4c829, 0x262dbe4c, 0x328dfa64, 0xb0e94a7d,
675     0xe91b6acf, 0x0f78331e, 0xd5e6a6b7, 0x8074ba1d,
676     0xbe997c61, 0xcd26de87, 0x34bde468, 0x487a7590,
677     0xffab24e3, 0x7af78ff4, 0x90f4ea3d, 0x5fc23ebe,
678     0x201da040, 0x6867d5d0, 0x1ad07234, 0xae192c41,
679     0xb4c95e75, 0x549a19a8, 0x93ece53b, 0x220daa44,
680     0x6407e9c8, 0xf1db12ff, 0x73bfa2e6, 0x12905a24,
681     0x403a5d80, 0x08402810, 0xc356e89b, 0xec337bc5,
682     0xdb9690ab, 0xa1611f5f, 0x8d1c8307, 0x3df5c97a,
683     0x97ccf133, 0x00000000, 0xcf36d483, 0x2b458756,
684     0x7697b3ec, 0x8264b019, 0xd6fea9b1, 0x1bd87736,
685     0xb5c15b77, 0xaf112943, 0x6a77dfd4, 0x50ba0da0,
686     0x45124c8a, 0xf3cb18fb, 0x309df060, 0xef2b74c3,
687     0x3fe5c37e, 0x55921caa, 0xa2791059, 0xea0365c9,
688     0x650fecca, 0xbab96869, 0x2f65935e, 0xc04ee79d,
689     0xdebe81a1, 0x1ce06c38, 0xfdbb2ee7, 0x4d52649a,
690     0x92e4e039, 0x758fbcea, 0x06301e0c, 0x8a249809,
691     0xb2f94079, 0xe66359d1, 0x0e70361c, 0x1ff8633e,
692     0x6237f7c4, 0xd4eea3b5, 0xa829324d, 0x96c4f431,
693     0xf99b3aef, 0xc566f697, 0x2535b14a, 0x59f220b2,
694     0x8454ae15, 0x72b7a7e4, 0x39d5dd72, 0x4c5a6198,
695     0x5eca3bbc, 0x78e785f0, 0x38ddd870, 0x8c148605,
696     0xd1c6b2bf, 0xa5410b57, 0xe2434dd9, 0x612ff8c2,
697     0xb3f1457b, 0x2115a542, 0x9c94d625, 0x1ef0663c,
698     0x43225286, 0xc776fc93, 0xfcb32be5, 0x04201408,
699     0x51b208a2, 0x99bcc72f, 0x6d4fc4da, 0x0d68391a,
700     0xfa8335e9, 0xdfb684a3, 0x7ed79bfc, 0x243db448,
701     0x3bc5d776, 0xab313d4b, 0xce3ed181, 0x11885522,
702     0x8f0c8903, 0x4e4a6b9c, 0xb7d15173, 0xeb0b60cb,
703     0x3cfdcc78, 0x817cbf1f, 0x94d4fe35, 0xf7eb0cf3,
704     0xb9a1676f, 0x13985f26, 0x2c7d9c58, 0xd3d6b8bb,
705     0xe76b5cd3, 0x6e57cbdc, 0xc46ef395, 0x03180f06,
706     0x568a13ac, 0x441a4988, 0x7fdf9efe, 0xa921374f,
707     0x2a4d8254, 0xbbb16d6b, 0xc146e29f, 0x53a202a6,
708     0xdcae8ba5, 0x0b582716, 0x9d9cd327, 0x6c47c1d8,
709     0x3195f562, 0x7487b9e8, 0xf6e309f1, 0x460a438c,
710     0xac092645, 0x893c970f, 0x14a04428, 0xe15b42df,
711     0x16b04e2c, 0x3acdd274, 0x696fd0d2, 0x09482d12,
712     0x70a7ade0, 0xb6d95471, 0xd0ceb7bd, 0xed3b7ec7,
713     0xcc2edb85, 0x422a5784, 0x98b4c22d, 0xa4490e55,
714     0x285d8850, 0x5cda31b8, 0xf8933fed, 0x8644a411,
715   },
716   {
717     0x6018c078, 0x8c2305af, 0x3fc67ef9, 0x87e8136f,
718     0x26874ca1, 0xdab8a962, 0x04010805, 0x214f426e,
719     0xd836adee, 0xa2a65904, 0x6fd2debd, 0xf3f5fb06,
720     0xf979ef80, 0xa16f5fce, 0x7e91fcef, 0x5552aa07,
721     0x9d6027fd, 0xcabc8976, 0x569baccd, 0x028e048c,
722     0xb6a37115, 0x300c603c, 0xf17bff8a, 0xd435b5e1,
723     0x741de869, 0xa7e05347, 0x7bd7f6ac, 0x2fc25eed,
724     0xb82e6d96, 0x314b627a, 0xdffea321, 0x41578216,
725     0x5415a841, 0xc1779fb6, 0xdc37a5eb, 0xb3e57b56,
726     0x469f8cd9, 0xe7f0d317, 0x354a6a7f, 0x4fda9e95,
727     0x7d58fa25, 0x03c906ca, 0xa429558d, 0x280a5022,
728     0xfeb1e14f, 0xbaa0691a, 0xb16b7fda, 0x2e855cab,
729     0xcebd8173, 0x695dd234, 0x40108050, 0xf7f4f303,
730     0x0bcb16c0, 0xf83eedc6, 0x14052811, 0x81671fe6,
731     0xb7e47353, 0x9c2725bb, 0x19413258, 0x168b2c9d,
732     0xa6a75101, 0xe97dcf94, 0x6e95dcfb, 0x47d88e9f,
733     0xcbfb8b30, 0x9fee2371, 0xed7cc791, 0x856617e3,
734     0x53dda68e, 0x5c17b84b, 0x01470246, 0x429e84dc,
735     0x0fca1ec5, 0xb42d7599, 0xc6bf9179, 0x1c07381b,
736     0x8ead0123, 0x755aea2f, 0x36836cb5, 0xcc3385ff,
737     0x91633ff2, 0x0802100a, 0x92aa3938, 0xd971afa8,
738     0x07c80ecf, 0x6419c87d, 0x39497270, 0x43d9869a,
739     0xeff2c31d, 0xabe34b48, 0x715be22a, 0x1a883492,
740     0x529aa4c8, 0x98262dbe, 0xc8328dfa, 0xfab0e94a,
741     0x83e91b6a, 0x3c0f7833, 0x73d5e6a6, 0x3a8074ba,
742     0xc2be997c, 0x13cd26de, 0xd034bde4, 0x3d487a75,
743     0xdbffab24, 0xf57af78f, 0x7a90f4ea, 0x615fc23e,
744     0x80201da0, 0xbd6867d5, 0x681ad072, 0x82ae192c,
745     0xeab4c95e, 0x4d549a19, 0x7693ece5, 0x88220daa,
746     0x8d6407e9, 0xe3f1db12, 0xd173bfa2, 0x4812905a,
747     0x1d403a5d, 0x20084028, 0x2bc356e8, 0x97ec337b,
748     0x4bdb9690, 0xbea1611f, 0x0e8d1c83, 0xf43df5c9,
749     0x6697ccf1, 0x00000000, 0x1bcf36d4, 0xac2b4587,
750     0xc57697b3, 0x328264b0, 0x7fd6fea9, 0x6c1bd877,
751     0xeeb5c15b, 0x86af1129, 0xb56a77df, 0x5d50ba0d,
752     0x0945124c, 0xebf3cb18, 0xc0309df0, 0x9bef2b74,
753     0xfc3fe5c3, 0x4955921c, 0xb2a27910, 0x8fea0365,
754     0x89650fec, 0xd2bab968, 0xbc2f6593, 0x27c04ee7,
755     0x5fdebe81, 0x701ce06c, 0xd3fdbb2e, 0x294d5264,
756     0x7292e4e0, 0xc9758fbc, 0x1806301e, 0x128a2498,
757     0xf2b2f940, 0xbfe66359, 0x380e7036, 0x7c1ff863,
758     0x956237f7, 0x77d4eea3, 0x9aa82932, 0x6296c4f4,
759     0xc3f99b3a, 0x33c566f6, 0x942535b1, 0x7959f220,
760     0x2a8454ae, 0xd572b7a7, 0xe439d5dd, 0x2d4c5a61,
761     0x655eca3b, 0xfd78e785, 0xe038ddd8, 0x0a8c1486,
762     0x63d1c6b2, 0xaea5410b, 0xafe2434d, 0x99612ff8,
763     0xf6b3f145, 0x842115a5, 0x4a9c94d6, 0x781ef066,
764     0x11432252, 0x3bc776fc, 0xd7fcb32b, 0x10042014,
765     0x5951b208, 0x5e99bcc7, 0xa96d4fc4, 0x340d6839,
766     0xcffa8335, 0x5bdfb684, 0xe57ed79b, 0x90243db4,
767     0xec3bc5d7, 0x96ab313d, 0x1fce3ed1, 0x44118855,
768     0x068f0c89, 0x254e4a6b, 0xe6b7d151, 0x8beb0b60,
769     0xf03cfdcc, 0x3e817cbf, 0x6a94d4fe, 0xfbf7eb0c,
770     0xdeb9a167, 0x4c13985f, 0xb02c7d9c, 0x6bd3d6b8,
771     0xbbe76b5c, 0xa56e57cb, 0x37c46ef3, 0x0c03180f,
772     0x45568a13, 0x0d441a49, 0xe17fdf9e, 0x9ea92137,
773     0xa82a4d82, 0xd6bbb16d, 0x23c146e2, 0x5153a202,
774     0x57dcae8b, 0x2c0b5827, 0x4e9d9cd3, 0xad6c47c1,
775     0xc43195f5, 0xcd7487b9, 0xfff6e309, 0x05460a43,
776     0x8aac0926, 0x1e893c97, 0x5014a044, 0xa3e15b42,
777     0x5816b04e, 0xe83acdd2, 0xb9696fd0, 0x2409482d,
778     0xdd70a7ad, 0xe2b6d954, 0x67d0ceb7, 0x93ed3b7e,
779     0x17cc2edb, 0x15422a57, 0x5a98b4c2, 0xaaa4490e,
780     0xa0285d88, 0x6d5cda31, 0xc7f8933f, 0x228644a4,
781   },
782   {
783     0x186018c0, 0x238c2305, 0xc63fc67e, 0xe887e813,
784     0x8726874c, 0xb8dab8a9, 0x01040108, 0x4f214f42,
785     0x36d836ad, 0xa6a2a659, 0xd26fd2de, 0xf5f3f5fb,
786     0x79f979ef, 0x6fa16f5f, 0x917e91fc, 0x525552aa,
787     0x609d6027, 0xbccabc89, 0x9b569bac, 0x8e028e04,
788     0xa3b6a371, 0x0c300c60, 0x7bf17bff, 0x35d435b5,
789     0x1d741de8, 0xe0a7e053, 0xd77bd7f6, 0xc22fc25e,
790     0x2eb82e6d, 0x4b314b62, 0xfedffea3, 0x57415782,
791     0x155415a8, 0x77c1779f, 0x37dc37a5, 0xe5b3e57b,
792     0x9f469f8c, 0xf0e7f0d3, 0x4a354a6a, 0xda4fda9e,
793     0x587d58fa, 0xc903c906, 0x29a42955, 0x0a280a50,
794     0xb1feb1e1, 0xa0baa069, 0x6bb16b7f, 0x852e855c,
795     0xbdcebd81, 0x5d695dd2, 0x10401080, 0xf4f7f4f3,
796     0xcb0bcb16, 0x3ef83eed, 0x05140528, 0x6781671f,
797     0xe4b7e473, 0x279c2725, 0x41194132, 0x8b168b2c,
798     0xa7a6a751, 0x7de97dcf, 0x956e95dc, 0xd847d88e,
799     0xfbcbfb8b, 0xee9fee23, 0x7ced7cc7, 0x66856617,
800     0xdd53dda6, 0x175c17b8, 0x47014702, 0x9e429e84,
801     0xca0fca1e, 0x2db42d75, 0xbfc6bf91, 0x071c0738,
802     0xad8ead01, 0x5a755aea, 0x8336836c, 0x33cc3385,
803     0x6391633f, 0x02080210, 0xaa92aa39, 0x71d971af,
804     0xc807c80e, 0x196419c8, 0x49394972, 0xd943d986,
805     0xf2eff2c3, 0xe3abe34b, 0x5b715be2, 0x881a8834,
806     0x9a529aa4, 0x2698262d, 0x32c8328d, 0xb0fab0e9,
807     0xe983e91b, 0x0f3c0f78, 0xd573d5e6, 0x803a8074,
808     0xbec2be99, 0xcd13cd26, 0x34d034bd, 0x483d487a,
809     0xffdbffab, 0x7af57af7, 0x907a90f4, 0x5f615fc2,
810     0x2080201d, 0x68bd6867, 0x1a681ad0, 0xae82ae19,
811     0xb4eab4c9, 0x544d549a, 0x937693ec, 0x2288220d,
812     0x648d6407, 0xf1e3f1db, 0x73d173bf, 0x12481290,
813     0x401d403a, 0x08200840, 0xc32bc356, 0xec97ec33,
814     0xdb4bdb96, 0xa1bea161, 0x8d0e8d1c, 0x3df43df5,
815     0x976697cc, 0x00000000, 0xcf1bcf36, 0x2bac2b45,
816     0x76c57697, 0x82328264, 0xd67fd6fe, 0x1b6c1bd8,
817     0xb5eeb5c1, 0xaf86af11, 0x6ab56a77, 0x505d50ba,
818     0x45094512, 0xf3ebf3cb, 0x30c0309d, 0xef9bef2b,
819     0x3ffc3fe5, 0x55495592, 0xa2b2a279, 0xea8fea03,
820     0x6589650f, 0xbad2bab9, 0x2fbc2f65, 0xc027c04e,
821     0xde5fdebe, 0x1c701ce0, 0xfdd3fdbb, 0x4d294d52,
822     0x927292e4, 0x75c9758f, 0x06180630, 0x8a128a24,
823     0xb2f2b2f9, 0xe6bfe663, 0x0e380e70, 0x1f7c1ff8,
824     0x62956237, 0xd477d4ee, 0xa89aa829, 0x966296c4,
825     0xf9c3f99b, 0xc533c566, 0x25942535, 0x597959f2,
826     0x842a8454, 0x72d572b7, 0x39e439d5, 0x4c2d4c5a,
827     0x5e655eca, 0x78fd78e7, 0x38e038dd, 0x8c0a8c14,
828     0xd163d1c6, 0xa5aea541, 0xe2afe243, 0x6199612f,
829     0xb3f6b3f1, 0x21842115, 0x9c4a9c94, 0x1e781ef0,
830     0x43114322, 0xc73bc776, 0xfcd7fcb3, 0x04100420,
831     0x515951b2, 0x995e99bc, 0x6da96d4f, 0x0d340d68,
832     0xfacffa83, 0xdf5bdfb6, 0x7ee57ed7, 0x2490243d,
833     0x3bec3bc5, 0xab96ab31, 0xce1fce3e, 0x11441188,
834     0x8f068f0c, 0x4e254e4a, 0xb7e6b7d1, 0xeb8beb0b,
835     0x3cf03cfd, 0x813e817c, 0x946a94d4, 0xf7fbf7eb,
836     0xb9deb9a1, 0x134c1398, 0x2cb02c7d, 0xd36bd3d6,
837     0xe7bbe76b, 0x6ea56e57, 0xc437c46e, 0x030c0318,
838     0x5645568a, 0x440d441a, 0x7fe17fdf, 0xa99ea921,
839     0x2aa82a4d, 0xbbd6bbb1, 0xc123c146, 0x535153a2,
840     0xdc57dcae, 0x0b2c0b58, 0x9d4e9d9c, 0x6cad6c47,
841     0x31c43195, 0x74cd7487, 0xf6fff6e3, 0x4605460a,
842     0xac8aac09, 0x891e893c, 0x145014a0, 0xe1a3e15b,
843     0x165816b0, 0x3ae83acd, 0x69b9696f, 0x09240948,
844     0x70dd70a7, 0xb6e2b6d9, 0xd067d0ce, 0xed93ed3b,
845     0xcc17cc2e, 0x4215422a, 0x985a98b4, 0xa4aaa449,
846     0x28a0285d, 0x5c6d5cda, 0xf8c7f893, 0x86228644,
847   },
848   {
849     0x18186018, 0x23238c23, 0xc6c63fc6, 0xe8e887e8,
850     0x87872687, 0xb8b8dab8, 0x01010401, 0x4f4f214f,
851     0x3636d836, 0xa6a6a2a6, 0xd2d26fd2, 0xf5f5f3f5,
852     0x7979f979, 0x6f6fa16f, 0x91917e91, 0x52525552,
853     0x60609d60, 0xbcbccabc, 0x9b9b569b, 0x8e8e028e,
854     0xa3a3b6a3, 0x0c0c300c, 0x7b7bf17b, 0x3535d435,
855     0x1d1d741d, 0xe0e0a7e0, 0xd7d77bd7, 0xc2c22fc2,
856     0x2e2eb82e, 0x4b4b314b, 0xfefedffe, 0x57574157,
857     0x15155415, 0x7777c177, 0x3737dc37, 0xe5e5b3e5,
858     0x9f9f469f, 0xf0f0e7f0, 0x4a4a354a, 0xdada4fda,
859     0x58587d58, 0xc9c903c9, 0x2929a429, 0x0a0a280a,
860     0xb1b1feb1, 0xa0a0baa0, 0x6b6bb16b, 0x85852e85,
861     0xbdbdcebd, 0x5d5d695d, 0x10104010, 0xf4f4f7f4,
862     0xcbcb0bcb, 0x3e3ef83e, 0x05051405, 0x67678167,
863     0xe4e4b7e4, 0x27279c27, 0x41411941, 0x8b8b168b,
864     0xa7a7a6a7, 0x7d7de97d, 0x95956e95, 0xd8d847d8,
865     0xfbfbcbfb, 0xeeee9fee, 0x7c7ced7c, 0x66668566,
866     0xdddd53dd, 0x17175c17, 0x47470147, 0x9e9e429e,
867     0xcaca0fca, 0x2d2db42d, 0xbfbfc6bf, 0x07071c07,
868     0xadad8ead, 0x5a5a755a, 0x83833683, 0x3333cc33,
869     0x63639163, 0x02020802, 0xaaaa92aa, 0x7171d971,
870     0xc8c807c8, 0x19196419, 0x49493949, 0xd9d943d9,
871     0xf2f2eff2, 0xe3e3abe3, 0x5b5b715b, 0x88881a88,
872     0x9a9a529a, 0x26269826, 0x3232c832, 0xb0b0fab0,
873     0xe9e983e9, 0x0f0f3c0f, 0xd5d573d5, 0x80803a80,
874     0xbebec2be, 0xcdcd13cd, 0x3434d034, 0x48483d48,
875     0xffffdbff, 0x7a7af57a, 0x90907a90, 0x5f5f615f,
876     0x20208020, 0x6868bd68, 0x1a1a681a, 0xaeae82ae,
877     0xb4b4eab4, 0x54544d54, 0x93937693, 0x22228822,
878     0x64648d64, 0xf1f1e3f1, 0x7373d173, 0x12124812,
879     0x40401d40, 0x08082008, 0xc3c32bc3, 0xecec97ec,
880     0xdbdb4bdb, 0xa1a1bea1, 0x8d8d0e8d, 0x3d3df43d,
881     0x97976697, 0x00000000, 0xcfcf1bcf, 0x2b2bac2b,
882     0x7676c576, 0x82823282, 0xd6d67fd6, 0x1b1b6c1b,
883     0xb5b5eeb5, 0xafaf86af, 0x6a6ab56a, 0x50505d50,
884     0x45450945, 0xf3f3ebf3, 0x3030c030, 0xefef9bef,
885     0x3f3ffc3f, 0x55554955, 0xa2a2b2a2, 0xeaea8fea,
886     0x65658965, 0xbabad2ba, 0x2f2fbc2f, 0xc0c027c0,
887     0xdede5fde, 0x1c1c701c, 0xfdfdd3fd, 0x4d4d294d,
888     0x92927292, 0x7575c975, 0x06061806, 0x8a8a128a,
889     0xb2b2f2b2, 0xe6e6bfe6, 0x0e0e380e, 0x1f1f7c1f,
890     0x62629562, 0xd4d477d4, 0xa8a89aa8, 0x96966296,
891     0xf9f9c3f9, 0xc5c533c5, 0x25259425, 0x59597959,
892     0x84842a84, 0x7272d572, 0x3939e439, 0x4c4c2d4c,
893     0x5e5e655e, 0x7878fd78, 0x3838e038, 0x8c8c0a8c,
894     0xd1d163d1, 0xa5a5aea5, 0xe2e2afe2, 0x61619961,
895     0xb3b3f6b3, 0x21218421, 0x9c9c4a9c, 0x1e1e781e,
896     0x43431143, 0xc7c73bc7, 0xfcfcd7fc, 0x04041004,
897     0x51515951, 0x99995e99, 0x6d6da96d, 0x0d0d340d,
898     0xfafacffa, 0xdfdf5bdf, 0x7e7ee57e, 0x24249024,
899     0x3b3bec3b, 0xabab96ab, 0xcece1fce, 0x11114411,
900     0x8f8f068f, 0x4e4e254e, 0xb7b7e6b7, 0xebeb8beb,
901     0x3c3cf03c, 0x81813e81, 0x94946a94, 0xf7f7fbf7,
902     0xb9b9deb9, 0x13134c13, 0x2c2cb02c, 0xd3d36bd3,
903     0xe7e7bbe7, 0x6e6ea56e, 0xc4c437c4, 0x03030c03,
904     0x56564556, 0x44440d44, 0x7f7fe17f, 0xa9a99ea9,
905     0x2a2aa82a, 0xbbbbd6bb, 0xc1c123c1, 0x53535153,
906     0xdcdc57dc, 0x0b0b2c0b, 0x9d9d4e9d, 0x6c6cad6c,
907     0x3131c431, 0x7474cd74, 0xf6f6fff6, 0x46460546,
908     0xacac8aac, 0x89891e89, 0x14145014, 0xe1e1a3e1,
909     0x16165816, 0x3a3ae83a, 0x6969b969, 0x09092409,
910     0x7070dd70, 0xb6b6e2b6, 0xd0d067d0, 0xeded93ed,
911     0xcccc17cc, 0x42421542, 0x98985a98, 0xa4a4aaa4,
912     0x2828a028, 0x5c5c6d5c, 0xf8f8c7f8, 0x86862286,
913   },
914   {
915     0xd8181860, 0x2623238c, 0xb8c6c63f, 0xfbe8e887,
916     0xcb878726, 0x11b8b8da, 0x09010104, 0x0d4f4f21,
917     0x9b3636d8, 0xffa6a6a2, 0x0cd2d26f, 0x0ef5f5f3,
918     0x967979f9, 0x306f6fa1, 0x6d91917e, 0xf8525255,
919     0x4760609d, 0x35bcbcca, 0x379b9b56, 0x8a8e8e02,
920     0xd2a3a3b6, 0x6c0c0c30, 0x847b7bf1, 0x803535d4,
921     0xf51d1d74, 0xb3e0e0a7, 0x21d7d77b, 0x9cc2c22f,
922     0x432e2eb8, 0x294b4b31, 0x5dfefedf, 0xd5575741,
923     0xbd151554, 0xe87777c1, 0x923737dc, 0x9ee5e5b3,
924     0x139f9f46, 0x23f0f0e7, 0x204a4a35, 0x44dada4f,
925     0xa258587d, 0xcfc9c903, 0x7c2929a4, 0x5a0a0a28,
926     0x50b1b1fe, 0xc9a0a0ba, 0x146b6bb1, 0xd985852e,
927     0x3cbdbdce, 0x8f5d5d69, 0x90101040, 0x07f4f4f7,
928     0xddcbcb0b, 0xd33e3ef8, 0x2d050514, 0x78676781,
929     0x97e4e4b7, 0x0227279c, 0x73414119, 0xa78b8b16,
930     0xf6a7a7a6, 0xb27d7de9, 0x4995956e, 0x56d8d847,
931     0x70fbfbcb, 0xcdeeee9f, 0xbb7c7ced, 0x71666685,
932     0x7bdddd53, 0xaf17175c, 0x45474701, 0x1a9e9e42,
933     0xd4caca0f, 0x582d2db4, 0x2ebfbfc6, 0x3f07071c,
934     0xacadad8e, 0xb05a5a75, 0xef838336, 0xb63333cc,
935     0x5c636391, 0x12020208, 0x93aaaa92, 0xde7171d9,
936     0xc6c8c807, 0xd1191964, 0x3b494939, 0x5fd9d943,
937     0x31f2f2ef, 0xa8e3e3ab, 0xb95b5b71, 0xbc88881a,
938     0x3e9a9a52, 0x0b262698, 0xbf3232c8, 0x59b0b0fa,
939     0xf2e9e983, 0x770f0f3c, 0x33d5d573, 0xf480803a,
940     0x27bebec2, 0xebcdcd13, 0x893434d0, 0x3248483d,
941     0x54ffffdb, 0x8d7a7af5, 0x6490907a, 0x9d5f5f61,
942     0x3d202080, 0x0f6868bd, 0xca1a1a68, 0xb7aeae82,
943     0x7db4b4ea, 0xce54544d, 0x7f939376, 0x2f222288,
944     0x6364648d, 0x2af1f1e3, 0xcc7373d1, 0x82121248,
945     0x7a40401d, 0x48080820, 0x95c3c32b, 0xdfecec97,
946     0x4ddbdb4b, 0xc0a1a1be, 0x918d8d0e, 0xc83d3df4,
947     0x5b979766, 0x00000000, 0xf9cfcf1b, 0x6e2b2bac,
948     0xe17676c5, 0xe6828232, 0x28d6d67f, 0xc31b1b6c,
949     0x74b5b5ee, 0xbeafaf86, 0x1d6a6ab5, 0xea50505d,
950     0x57454509, 0x38f3f3eb, 0xad3030c0, 0xc4efef9b,
951     0xda3f3ffc, 0xc7555549, 0xdba2a2b2, 0xe9eaea8f,
952     0x6a656589, 0x03babad2, 0x4a2f2fbc, 0x8ec0c027,
953     0x60dede5f, 0xfc1c1c70, 0x46fdfdd3, 0x1f4d4d29,
954     0x76929272, 0xfa7575c9, 0x36060618, 0xae8a8a12,
955     0x4bb2b2f2, 0x85e6e6bf, 0x7e0e0e38, 0xe71f1f7c,
956     0x55626295, 0x3ad4d477, 0x81a8a89a, 0x52969662,
957     0x62f9f9c3, 0xa3c5c533, 0x10252594, 0xab595979,
958     0xd084842a, 0xc57272d5, 0xec3939e4, 0x164c4c2d,
959     0x945e5e65, 0x9f7878fd, 0xe53838e0, 0x988c8c0a,
960     0x17d1d163, 0xe4a5a5ae, 0xa1e2e2af, 0x4e616199,
961     0x42b3b3f6, 0x34212184, 0x089c9c4a, 0xee1e1e78,
962     0x61434311, 0xb1c7c73b, 0x4ffcfcd7, 0x24040410,
963     0xe3515159, 0x2599995e, 0x226d6da9, 0x650d0d34,
964     0x79fafacf, 0x69dfdf5b, 0xa97e7ee5, 0x19242490,
965     0xfe3b3bec, 0x9aabab96, 0xf0cece1f, 0x99111144,
966     0x838f8f06, 0x044e4e25, 0x66b7b7e6, 0xe0ebeb8b,
967     0xc13c3cf0, 0xfd81813e, 0x4094946a, 0x1cf7f7fb,
968     0x18b9b9de, 0x8b13134c, 0x512c2cb0, 0x05d3d36b,
969     0x8ce7e7bb, 0x396e6ea5, 0xaac4c437, 0x1b03030c,
970     0xdc565645, 0x5e44440d, 0xa07f7fe1, 0x88a9a99e,
971     0x672a2aa8, 0x0abbbbd6, 0x87c1c123, 0xf1535351,
972     0x72dcdc57, 0x530b0b2c, 0x019d9d4e, 0x2b6c6cad,
973     0xa43131c4, 0xf37474cd, 0x15f6f6ff, 0x4c464605,
974     0xa5acac8a, 0xb589891e, 0xb4141450, 0xbae1e1a3,
975     0xa6161658, 0xf73a3ae8, 0x066969b9, 0x41090924,
976     0xd77070dd, 0x6fb6b6e2, 0x1ed0d067, 0xd6eded93,
977     0xe2cccc17, 0x68424215, 0x2c98985a, 0xeda4a4aa,
978     0x752828a0, 0x865c5c6d, 0x6bf8f8c7, 0xc2868622,
979   },
980   {
981     0x30d81818, 0x46262323, 0x91b8c6c6, 0xcdfbe8e8,
982     0x13cb8787, 0x6d11b8b8, 0x02090101, 0x9e0d4f4f,
983     0x6c9b3636, 0x51ffa6a6, 0xb90cd2d2, 0xf70ef5f5,
984     0xf2967979, 0xde306f6f, 0x3f6d9191, 0xa4f85252,
985     0xc0476060, 0x6535bcbc, 0x2b379b9b, 0x018a8e8e,
986     0x5bd2a3a3, 0x186c0c0c, 0xf6847b7b, 0x6a803535,
987     0x3af51d1d, 0xddb3e0e0, 0xb321d7d7, 0x999cc2c2,
988     0x5c432e2e, 0x96294b4b, 0xe15dfefe, 0xaed55757,
989     0x2abd1515, 0xeee87777, 0x6e923737, 0xd79ee5e5,
990     0x23139f9f, 0xfd23f0f0, 0x94204a4a, 0xa944dada,
991     0xb0a25858, 0x8fcfc9c9, 0x527c2929, 0x145a0a0a,
992     0x7f50b1b1, 0x5dc9a0a0, 0xd6146b6b, 0x17d98585,
993     0x673cbdbd, 0xba8f5d5d, 0x20901010, 0xf507f4f4,
994     0x8bddcbcb, 0x7cd33e3e, 0x0a2d0505, 0xce786767,
995     0xd597e4e4, 0x4e022727, 0x82734141, 0x0ba78b8b,
996     0x53f6a7a7, 0xfab27d7d, 0x37499595, 0xad56d8d8,
997     0xeb70fbfb, 0xc1cdeeee, 0xf8bb7c7c, 0xcc716666,
998     0xa77bdddd, 0x2eaf1717, 0x8e454747, 0x211a9e9e,
999     0x89d4caca, 0x5a582d2d, 0x632ebfbf, 0x0e3f0707,
1000     0x47acadad, 0xb4b05a5a, 0x1bef8383, 0x66b63333,
1001     0xc65c6363, 0x04120202, 0x4993aaaa, 0xe2de7171,
1002     0x8dc6c8c8, 0x32d11919, 0x923b4949, 0xaf5fd9d9,
1003     0xf931f2f2, 0xdba8e3e3, 0xb6b95b5b, 0x0dbc8888,
1004     0x293e9a9a, 0x4c0b2626, 0x64bf3232, 0x7d59b0b0,
1005     0xcff2e9e9, 0x1e770f0f, 0xb733d5d5, 0x1df48080,
1006     0x6127bebe, 0x87ebcdcd, 0x68893434, 0x90324848,
1007     0xe354ffff, 0xf48d7a7a, 0x3d649090, 0xbe9d5f5f,
1008     0x403d2020, 0xd00f6868, 0x34ca1a1a, 0x41b7aeae,
1009     0x757db4b4, 0xa8ce5454, 0x3b7f9393, 0x442f2222,
1010     0xc8636464, 0xff2af1f1, 0xe6cc7373, 0x24821212,
1011     0x807a4040, 0x10480808, 0x9b95c3c3, 0xc5dfecec,
1012     0xab4ddbdb, 0x5fc0a1a1, 0x07918d8d, 0x7ac83d3d,
1013     0x335b9797, 0x00000000, 0x83f9cfcf, 0x566e2b2b,
1014     0xece17676, 0x19e68282, 0xb128d6d6, 0x36c31b1b,
1015     0x7774b5b5, 0x43beafaf, 0xd41d6a6a, 0xa0ea5050,
1016     0x8a574545, 0xfb38f3f3, 0x60ad3030, 0xc3c4efef,
1017     0x7eda3f3f, 0xaac75555, 0x59dba2a2, 0xc9e9eaea,
1018     0xca6a6565, 0x6903baba, 0x5e4a2f2f, 0x9d8ec0c0,
1019     0xa160dede, 0x38fc1c1c, 0xe746fdfd, 0x9a1f4d4d,
1020     0x39769292, 0xeafa7575, 0x0c360606, 0x09ae8a8a,
1021     0x794bb2b2, 0xd185e6e6, 0x1c7e0e0e, 0x3ee71f1f,
1022     0xc4556262, 0xb53ad4d4, 0x4d81a8a8, 0x31529696,
1023     0xef62f9f9, 0x97a3c5c5, 0x4a102525, 0xb2ab5959,
1024     0x15d08484, 0xe4c57272, 0x72ec3939, 0x98164c4c,
1025     0xbc945e5e, 0xf09f7878, 0x70e53838, 0x05988c8c,
1026     0xbf17d1d1, 0x57e4a5a5, 0xd9a1e2e2, 0xc24e6161,
1027     0x7b42b3b3, 0x42342121, 0x25089c9c, 0x3cee1e1e,
1028     0x86614343, 0x93b1c7c7, 0xe54ffcfc, 0x08240404,
1029     0xa2e35151, 0x2f259999, 0xda226d6d, 0x1a650d0d,
1030     0xe979fafa, 0xa369dfdf, 0xfca97e7e, 0x48192424,
1031     0x76fe3b3b, 0x4b9aabab, 0x81f0cece, 0x22991111,
1032     0x03838f8f, 0x9c044e4e, 0x7366b7b7, 0xcbe0ebeb,
1033     0x78c13c3c, 0x1ffd8181, 0x35409494, 0xf31cf7f7,
1034     0x6f18b9b9, 0x268b1313, 0x58512c2c, 0xbb05d3d3,
1035     0xd38ce7e7, 0xdc396e6e, 0x95aac4c4, 0x061b0303,
1036     0xacdc5656, 0x885e4444, 0xfea07f7f, 0x4f88a9a9,
1037     0x54672a2a, 0x6b0abbbb, 0x9f87c1c1, 0xa6f15353,
1038     0xa572dcdc, 0x16530b0b, 0x27019d9d, 0xd82b6c6c,
1039     0x62a43131, 0xe8f37474, 0xf115f6f6, 0x8c4c4646,
1040     0x45a5acac, 0x0fb58989, 0x28b41414, 0xdfbae1e1,
1041     0x2ca61616, 0x74f73a3a, 0xd2066969, 0x12410909,
1042     0xe0d77070, 0x716fb6b6, 0xbd1ed0d0, 0xc7d6eded,
1043     0x85e2cccc, 0x84684242, 0x2d2c9898, 0x55eda4a4,
1044     0x50752828, 0xb8865c5c, 0xed6bf8f8, 0x11c28686,
1045   },
1046   {
1047     0x7830d818, 0xaf462623, 0xf991b8c6, 0x6fcdfbe8,
1048     0xa113cb87, 0x626d11b8, 0x05020901, 0x6e9e0d4f,
1049     0xee6c9b36, 0x0451ffa6, 0xbdb90cd2, 0x06f70ef5,
1050     0x80f29679, 0xcede306f, 0xef3f6d91, 0x07a4f852,
1051     0xfdc04760, 0x766535bc, 0xcd2b379b, 0x8c018a8e,
1052     0x155bd2a3, 0x3c186c0c, 0x8af6847b, 0xe16a8035,
1053     0x693af51d, 0x47ddb3e0, 0xacb321d7, 0xed999cc2,
1054     0x965c432e, 0x7a96294b, 0x21e15dfe, 0x16aed557,
1055     0x412abd15, 0xb6eee877, 0xeb6e9237, 0x56d79ee5,
1056     0xd923139f, 0x17fd23f0, 0x7f94204a, 0x95a944da,
1057     0x25b0a258, 0xca8fcfc9, 0x8d527c29, 0x22145a0a,
1058     0x4f7f50b1, 0x1a5dc9a0, 0xdad6146b, 0xab17d985,
1059     0x73673cbd, 0x34ba8f5d, 0x50209010, 0x03f507f4,
1060     0xc08bddcb, 0xc67cd33e, 0x110a2d05, 0xe6ce7867,
1061     0x53d597e4, 0xbb4e0227, 0x58827341, 0x9d0ba78b,
1062     0x0153f6a7, 0x94fab27d, 0xfb374995, 0x9fad56d8,
1063     0x30eb70fb, 0x71c1cdee, 0x91f8bb7c, 0xe3cc7166,
1064     0x8ea77bdd, 0x4b2eaf17, 0x468e4547, 0xdc211a9e,
1065     0xc589d4ca, 0x995a582d, 0x79632ebf, 0x1b0e3f07,
1066     0x2347acad, 0x2fb4b05a, 0xb51bef83, 0xff66b633,
1067     0xf2c65c63, 0x0a041202, 0x384993aa, 0xa8e2de71,
1068     0xcf8dc6c8, 0x7d32d119, 0x70923b49, 0x9aaf5fd9,
1069     0x1df931f2, 0x48dba8e3, 0x2ab6b95b, 0x920dbc88,
1070     0xc8293e9a, 0xbe4c0b26, 0xfa64bf32, 0x4a7d59b0,
1071     0x6acff2e9, 0x331e770f, 0xa6b733d5, 0xba1df480,
1072     0x7c6127be, 0xde87ebcd, 0xe4688934, 0x75903248,
1073     0x24e354ff, 0x8ff48d7a, 0xea3d6490, 0x3ebe9d5f,
1074     0xa0403d20, 0xd5d00f68, 0x7234ca1a, 0x2c41b7ae,
1075     0x5e757db4, 0x19a8ce54, 0xe53b7f93, 0xaa442f22,
1076     0xe9c86364, 0x12ff2af1, 0xa2e6cc73, 0x5a248212,
1077     0x5d807a40, 0x28104808, 0xe89b95c3, 0x7bc5dfec,
1078     0x90ab4ddb, 0x1f5fc0a1, 0x8307918d, 0xc97ac83d,
1079     0xf1335b97, 0x00000000, 0xd483f9cf, 0x87566e2b,
1080     0xb3ece176, 0xb019e682, 0xa9b128d6, 0x7736c31b,
1081     0x5b7774b5, 0x2943beaf, 0xdfd41d6a, 0x0da0ea50,
1082     0x4c8a5745, 0x18fb38f3, 0xf060ad30, 0x74c3c4ef,
1083     0xc37eda3f, 0x1caac755, 0x1059dba2, 0x65c9e9ea,
1084     0xecca6a65, 0x686903ba, 0x935e4a2f, 0xe79d8ec0,
1085     0x81a160de, 0x6c38fc1c, 0x2ee746fd, 0x649a1f4d,
1086     0xe0397692, 0xbceafa75, 0x1e0c3606, 0x9809ae8a,
1087     0x40794bb2, 0x59d185e6, 0x361c7e0e, 0x633ee71f,
1088     0xf7c45562, 0xa3b53ad4, 0x324d81a8, 0xf4315296,
1089     0x3aef62f9, 0xf697a3c5, 0xb14a1025, 0x20b2ab59,
1090     0xae15d084, 0xa7e4c572, 0xdd72ec39, 0x6198164c,
1091     0x3bbc945e, 0x85f09f78, 0xd870e538, 0x8605988c,
1092     0xb2bf17d1, 0x0b57e4a5, 0x4dd9a1e2, 0xf8c24e61,
1093     0x457b42b3, 0xa5423421, 0xd625089c, 0x663cee1e,
1094     0x52866143, 0xfc93b1c7, 0x2be54ffc, 0x14082404,
1095     0x08a2e351, 0xc72f2599, 0xc4da226d, 0x391a650d,
1096     0x35e979fa, 0x84a369df, 0x9bfca97e, 0xb4481924,
1097     0xd776fe3b, 0x3d4b9aab, 0xd181f0ce, 0x55229911,
1098     0x8903838f, 0x6b9c044e, 0x517366b7, 0x60cbe0eb,
1099     0xcc78c13c, 0xbf1ffd81, 0xfe354094, 0x0cf31cf7,
1100     0x676f18b9, 0x5f268b13, 0x9c58512c, 0xb8bb05d3,
1101     0x5cd38ce7, 0xcbdc396e, 0xf395aac4, 0x0f061b03,
1102     0x13acdc56, 0x49885e44, 0x9efea07f, 0x374f88a9,
1103     0x8254672a, 0x6d6b0abb, 0xe29f87c1, 0x02a6f153,
1104     0x8ba572dc, 0x2716530b, 0xd327019d, 0xc1d82b6c,
1105     0xf562a431, 0xb9e8f374, 0x09f115f6, 0x438c4c46,
1106     0x2645a5ac, 0x970fb589, 0x4428b414, 0x42dfbae1,
1107     0x4e2ca616, 0xd274f73a, 0xd0d20669, 0x2d124109,
1108     0xade0d770, 0x54716fb6, 0xb7bd1ed0, 0x7ec7d6ed,
1109     0xdb85e2cc, 0x57846842, 0xc22d2c98, 0x0e55eda4,
1110     0x88507528, 0x31b8865c, 0x3fed6bf8, 0xa411c286,
1111   },
1112 };
1113
1114 __device__ __constant__ u32 rch[R + 1] =
1115 {
1116   0x00000000,
1117   0x1823c6e8,
1118   0x36a6d2f5,
1119   0x60bc9b8e,
1120   0x1de0d7c2,
1121   0x157737e5,
1122   0x58c9290a,
1123   0xbd5d10f4,
1124   0xe427418b,
1125   0xfbee7c66,
1126   0xca2dbf07,
1127 };
1128
1129 __device__ __constant__ u32 rcl[R + 1] =
1130 {
1131   0x00000000,
1132   0x87b8014f,
1133   0x796f9152,
1134   0xa30c7b35,
1135   0x2e4bfe57,
1136   0x9ff04ada,
1137   0xb1a06b85,
1138   0xcb3e0567,
1139   0xa77d95d8,
1140   0xdd17479e,
1141   0xad5a8333,
1142 };
1143
1144 __device__ static void whirlpool_transform (const u32x w[16], u32x dgst[16], u32 s_Ch[8][256], u32 s_Cl[8][256])
1145 {
1146   u32x Kh[8];
1147   u32x Kl[8];
1148
1149   Kh[0] = 0x300beec0;
1150   Kl[0] = 0xaf902967;
1151   Kh[1] = 0x28282828;
1152   Kl[1] = 0x28282828;
1153   Kh[2] = 0x28282828;
1154   Kl[2] = 0x28282828;
1155   Kh[3] = 0x28282828;
1156   Kl[3] = 0x28282828;
1157   Kh[4] = 0x28282828;
1158   Kl[4] = 0x28282828;
1159   Kh[5] = 0x28282828;
1160   Kl[5] = 0x28282828;
1161   Kh[6] = 0x28282828;
1162   Kl[6] = 0x28282828;
1163   Kh[7] = 0x28282828;
1164   Kl[7] = 0x28282828;
1165
1166   u32x stateh[8];
1167   u32x statel[8];
1168
1169   stateh[0] = w[ 0];
1170   statel[0] = w[ 1];
1171   stateh[1] = w[ 2];
1172   statel[1] = w[ 3];
1173   stateh[2] = w[ 4];
1174   statel[2] = w[ 5];
1175   stateh[3] = w[ 6];
1176   statel[3] = w[ 7];
1177   stateh[4] = w[ 8];
1178   statel[4] = w[ 9];
1179   stateh[5] = w[10];
1180   statel[5] = w[11];
1181   stateh[6] = w[12];
1182   statel[6] = w[13];
1183   stateh[7] = w[14];
1184   statel[7] = w[15];
1185
1186   u32x Lh[8];
1187   u32x Ll[8];
1188
1189   #pragma unroll
1190   for (int i = 0; i < 8; i++)
1191   {
1192     const u32x Lp0 = stateh[(i + 8) & 7] >> 24;
1193     const u32x Lp1 = stateh[(i + 7) & 7] >> 16;
1194     const u32x Lp2 = stateh[(i + 6) & 7] >>  8;
1195     const u32x Lp3 = stateh[(i + 5) & 7] >>  0;
1196     const u32x Lp4 = statel[(i + 4) & 7] >> 24;
1197     const u32x Lp5 = statel[(i + 3) & 7] >> 16;
1198     const u32x Lp6 = statel[(i + 2) & 7] >>  8;
1199     const u32x Lp7 = statel[(i + 1) & 7] >>  0;
1200
1201     Lh[i] = BOX (s_Ch, 0, Lp0 & 0xff)
1202           ^ BOX (s_Ch, 1, Lp1 & 0xff)
1203           ^ BOX (s_Ch, 2, Lp2 & 0xff)
1204           ^ BOX (s_Ch, 3, Lp3 & 0xff)
1205           ^ BOX (s_Ch, 4, Lp4 & 0xff)
1206           ^ BOX (s_Ch, 5, Lp5 & 0xff)
1207           ^ BOX (s_Ch, 6, Lp6 & 0xff)
1208           ^ BOX (s_Ch, 7, Lp7 & 0xff);
1209
1210     Ll[i] = BOX (s_Cl, 0, Lp0 & 0xff)
1211           ^ BOX (s_Cl, 1, Lp1 & 0xff)
1212           ^ BOX (s_Cl, 2, Lp2 & 0xff)
1213           ^ BOX (s_Cl, 3, Lp3 & 0xff)
1214           ^ BOX (s_Cl, 4, Lp4 & 0xff)
1215           ^ BOX (s_Cl, 5, Lp5 & 0xff)
1216           ^ BOX (s_Cl, 6, Lp6 & 0xff)
1217           ^ BOX (s_Cl, 7, Lp7 & 0xff);
1218   }
1219
1220   stateh[0] = Lh[0] ^ Kh[0];
1221   statel[0] = Ll[0] ^ Kl[0];
1222   stateh[1] = Lh[1] ^ Kh[1];
1223   statel[1] = Ll[1] ^ Kl[1];
1224   stateh[2] = Lh[2] ^ Kh[2];
1225   statel[2] = Ll[2] ^ Kl[2];
1226   stateh[3] = Lh[3] ^ Kh[3];
1227   statel[3] = Ll[3] ^ Kl[3];
1228   stateh[4] = Lh[4] ^ Kh[4];
1229   statel[4] = Ll[4] ^ Kl[4];
1230   stateh[5] = Lh[5] ^ Kh[5];
1231   statel[5] = Ll[5] ^ Kl[5];
1232   stateh[6] = Lh[6] ^ Kh[6];
1233   statel[6] = Ll[6] ^ Kl[6];
1234   stateh[7] = Lh[7] ^ Kh[7];
1235   statel[7] = Ll[7] ^ Kl[7];
1236
1237   for (int r = 2; r <= R; r++)
1238   {
1239     u32x Lh[8];
1240     u32x Ll[8];
1241
1242     #pragma unroll
1243     for (int i = 0; i < 8; i++)
1244     {
1245       const u32x Lp0 = Kh[(i + 8) & 7] >> 24;
1246       const u32x Lp1 = Kh[(i + 7) & 7] >> 16;
1247       const u32x Lp2 = Kh[(i + 6) & 7] >>  8;
1248       const u32x Lp3 = Kh[(i + 5) & 7] >>  0;
1249       const u32x Lp4 = Kl[(i + 4) & 7] >> 24;
1250       const u32x Lp5 = Kl[(i + 3) & 7] >> 16;
1251       const u32x Lp6 = Kl[(i + 2) & 7] >>  8;
1252       const u32x Lp7 = Kl[(i + 1) & 7] >>  0;
1253
1254       Lh[i] = BOX (s_Ch, 0, Lp0 & 0xff)
1255             ^ BOX (s_Ch, 1, Lp1 & 0xff)
1256             ^ BOX (s_Ch, 2, Lp2 & 0xff)
1257             ^ BOX (s_Ch, 3, Lp3 & 0xff)
1258             ^ BOX (s_Ch, 4, Lp4 & 0xff)
1259             ^ BOX (s_Ch, 5, Lp5 & 0xff)
1260             ^ BOX (s_Ch, 6, Lp6 & 0xff)
1261             ^ BOX (s_Ch, 7, Lp7 & 0xff);
1262
1263       Ll[i] = BOX (s_Cl, 0, Lp0 & 0xff)
1264             ^ BOX (s_Cl, 1, Lp1 & 0xff)
1265             ^ BOX (s_Cl, 2, Lp2 & 0xff)
1266             ^ BOX (s_Cl, 3, Lp3 & 0xff)
1267             ^ BOX (s_Cl, 4, Lp4 & 0xff)
1268             ^ BOX (s_Cl, 5, Lp5 & 0xff)
1269             ^ BOX (s_Cl, 6, Lp6 & 0xff)
1270             ^ BOX (s_Cl, 7, Lp7 & 0xff);
1271     }
1272
1273     Kh[0] = Lh[0] ^ rch[r];
1274     Kl[0] = Ll[0] ^ rcl[r];
1275     Kh[1] = Lh[1];
1276     Kl[1] = Ll[1];
1277     Kh[2] = Lh[2];
1278     Kl[2] = Ll[2];
1279     Kh[3] = Lh[3];
1280     Kl[3] = Ll[3];
1281     Kh[4] = Lh[4];
1282     Kl[4] = Ll[4];
1283     Kh[5] = Lh[5];
1284     Kl[5] = Ll[5];
1285     Kh[6] = Lh[6];
1286     Kl[6] = Ll[6];
1287     Kh[7] = Lh[7];
1288     Kl[7] = Ll[7];
1289
1290     #pragma unroll 8
1291     for (int i = 0; i < 8; i++)
1292     {
1293       const u32x Lp0 = stateh[(i + 8) & 7] >> 24;
1294       const u32x Lp1 = stateh[(i + 7) & 7] >> 16;
1295       const u32x Lp2 = stateh[(i + 6) & 7] >>  8;
1296       const u32x Lp3 = stateh[(i + 5) & 7] >>  0;
1297       const u32x Lp4 = statel[(i + 4) & 7] >> 24;
1298       const u32x Lp5 = statel[(i + 3) & 7] >> 16;
1299       const u32x Lp6 = statel[(i + 2) & 7] >>  8;
1300       const u32x Lp7 = statel[(i + 1) & 7] >>  0;
1301
1302       Lh[i] = BOX (s_Ch, 0, Lp0 & 0xff)
1303             ^ BOX (s_Ch, 1, Lp1 & 0xff)
1304             ^ BOX (s_Ch, 2, Lp2 & 0xff)
1305             ^ BOX (s_Ch, 3, Lp3 & 0xff)
1306             ^ BOX (s_Ch, 4, Lp4 & 0xff)
1307             ^ BOX (s_Ch, 5, Lp5 & 0xff)
1308             ^ BOX (s_Ch, 6, Lp6 & 0xff)
1309             ^ BOX (s_Ch, 7, Lp7 & 0xff);
1310
1311       Ll[i] = BOX (s_Cl, 0, Lp0 & 0xff)
1312             ^ BOX (s_Cl, 1, Lp1 & 0xff)
1313             ^ BOX (s_Cl, 2, Lp2 & 0xff)
1314             ^ BOX (s_Cl, 3, Lp3 & 0xff)
1315             ^ BOX (s_Cl, 4, Lp4 & 0xff)
1316             ^ BOX (s_Cl, 5, Lp5 & 0xff)
1317             ^ BOX (s_Cl, 6, Lp6 & 0xff)
1318             ^ BOX (s_Cl, 7, Lp7 & 0xff);
1319     }
1320
1321     stateh[0] = Lh[0] ^ Kh[0];
1322     statel[0] = Ll[0] ^ Kl[0];
1323     stateh[1] = Lh[1] ^ Kh[1];
1324     statel[1] = Ll[1] ^ Kl[1];
1325     stateh[2] = Lh[2] ^ Kh[2];
1326     statel[2] = Ll[2] ^ Kl[2];
1327     stateh[3] = Lh[3] ^ Kh[3];
1328     statel[3] = Ll[3] ^ Kl[3];
1329     stateh[4] = Lh[4] ^ Kh[4];
1330     statel[4] = Ll[4] ^ Kl[4];
1331     stateh[5] = Lh[5] ^ Kh[5];
1332     statel[5] = Ll[5] ^ Kl[5];
1333     stateh[6] = Lh[6] ^ Kh[6];
1334     statel[6] = Ll[6] ^ Kl[6];
1335     stateh[7] = Lh[7] ^ Kh[7];
1336     statel[7] = Ll[7] ^ Kl[7];
1337   }
1338
1339   dgst[ 0] = stateh[0] ^ w[ 0];
1340   dgst[ 1] = statel[0] ^ w[ 1];
1341   dgst[ 2] = stateh[1] ^ w[ 2];
1342   dgst[ 3] = statel[1] ^ w[ 3];
1343   dgst[ 4] = stateh[2] ^ w[ 4];
1344   dgst[ 5] = statel[2] ^ w[ 5];
1345   dgst[ 6] = stateh[3] ^ w[ 6];
1346   dgst[ 7] = statel[3] ^ w[ 7];
1347   dgst[ 8] = stateh[4] ^ w[ 8];
1348   dgst[ 9] = statel[4] ^ w[ 9];
1349   dgst[10] = stateh[5] ^ w[10];
1350   dgst[11] = statel[5] ^ w[11];
1351   dgst[12] = stateh[6] ^ w[12];
1352   dgst[13] = statel[6] ^ w[13];
1353   dgst[14] = stateh[7] ^ w[14];
1354   dgst[15] = statel[7] ^ w[15];
1355 }
1356
1357 __device__ __constant__ gpu_rule_t c_rules[1024];
1358
1359 extern "C" __global__ void __launch_bounds__ (256, 1) m06100_m04 (const pw_t *pws, const gpu_rule_t *rules_buf, const comb_t *combs_buf, const bf_t *bfs_buf, const void *tmps, void *hooks, const u32 *bitmaps_buf_s1_a, const u32 *bitmaps_buf_s1_b, const u32 *bitmaps_buf_s1_c, const u32 *bitmaps_buf_s1_d, const u32 *bitmaps_buf_s2_a, const u32 *bitmaps_buf_s2_b, const u32 *bitmaps_buf_s2_c, const u32 *bitmaps_buf_s2_d, plain_t *plains_buf, const digest_t *digests_buf, u32 *hashes_shown, const salt_t *salt_bufs, const void *esalt_bufs, u32 *d_return_buf, u32 *d_scryptV_buf, const u32 bitmap_mask, const u32 bitmap_shift1, const u32 bitmap_shift2, const u32 salt_pos, const u32 loop_pos, const u32 loop_cnt, const u32 rules_cnt, const u32 digests_cnt, const u32 digests_offset, const u32 combs_mode, const u32 gid_max)
1360 {
1361   /**
1362    * modifier
1363    */
1364
1365   const u32 lid = threadIdx.x;
1366
1367   /**
1368    * base
1369    */
1370
1371   const u32 gid = (blockIdx.x * blockDim.x) + threadIdx.x;
1372
1373   u32x pw_buf0[4];
1374
1375   pw_buf0[0] = pws[gid].i[ 0];
1376   pw_buf0[1] = pws[gid].i[ 1];
1377   pw_buf0[2] = pws[gid].i[ 2];
1378   pw_buf0[3] = pws[gid].i[ 3];
1379
1380   u32x pw_buf1[4];
1381
1382   pw_buf1[0] = pws[gid].i[ 4];
1383   pw_buf1[1] = pws[gid].i[ 5];
1384   pw_buf1[2] = pws[gid].i[ 6];
1385   pw_buf1[3] = pws[gid].i[ 7];
1386
1387   const u32 pw_len = pws[gid].pw_len;
1388
1389   /**
1390    * modifier
1391    */
1392
1393   __shared__ u32 s_Ch[8][256];
1394   __shared__ u32 s_Cl[8][256];
1395
1396   for (u32 i = 0; i < 8; i++)
1397   {
1398     s_Ch[i][lid] = Ch[i][lid];
1399     s_Cl[i][lid] = Cl[i][lid];
1400   }
1401
1402   __syncthreads ();
1403
1404   if (gid >= gid_max) return;
1405
1406   /**
1407    * loop
1408    */
1409
1410   for (u32 il_pos = 0; il_pos < rules_cnt; il_pos++)
1411   {
1412     u32x w0[4];
1413
1414     w0[0] = pw_buf0[0];
1415     w0[1] = pw_buf0[1];
1416     w0[2] = pw_buf0[2];
1417     w0[3] = pw_buf0[3];
1418
1419     u32x w1[4];
1420
1421     w1[0] = pw_buf1[0];
1422     w1[1] = pw_buf1[1];
1423     w1[2] = pw_buf1[2];
1424     w1[3] = pw_buf1[3];
1425
1426     u32x w2[4];
1427
1428     w2[0] = 0;
1429     w2[1] = 0;
1430     w2[2] = 0;
1431     w2[3] = 0;
1432
1433     u32x w3[4];
1434
1435     w3[0] = 0;
1436     w3[1] = 0;
1437     w3[2] = 0;
1438     w3[3] = 0;
1439
1440     const u32 out_len = apply_rules (c_rules[il_pos].cmds, w0, w1, pw_len);
1441
1442     append_0x80_2 (w0, w1, out_len);
1443
1444     u32x wl[16];
1445
1446     wl[ 0] = swap_workaround (w0[0]);
1447     wl[ 1] = swap_workaround (w0[1]);
1448     wl[ 2] = swap_workaround (w0[2]);
1449     wl[ 3] = swap_workaround (w0[3]);
1450     wl[ 4] = swap_workaround (w1[0]);
1451     wl[ 5] = swap_workaround (w1[1]);
1452     wl[ 6] = swap_workaround (w1[2]);
1453     wl[ 7] = swap_workaround (w1[3]);
1454     wl[ 8] = 0;
1455     wl[ 9] = 0;
1456     wl[10] = 0;
1457     wl[11] = 0;
1458     wl[12] = 0;
1459     wl[13] = 0;
1460     wl[14] = 0;
1461     wl[15] = out_len * 8;
1462
1463     u32x dgst[16];
1464
1465     whirlpool_transform (wl, dgst, s_Ch, s_Cl);
1466
1467     const u32x r0 = dgst[0];
1468     const u32x r1 = dgst[1];
1469     const u32x r2 = dgst[2];
1470     const u32x r3 = dgst[3];
1471
1472     #include VECT_COMPARE_M
1473   }
1474 }
1475
1476 extern "C" __global__ void __launch_bounds__ (256, 1) m06100_m08 (const pw_t *pws, const gpu_rule_t *rules_buf, const comb_t *combs_buf, const bf_t *bfs_buf, const void *tmps, void *hooks, const u32 *bitmaps_buf_s1_a, const u32 *bitmaps_buf_s1_b, const u32 *bitmaps_buf_s1_c, const u32 *bitmaps_buf_s1_d, const u32 *bitmaps_buf_s2_a, const u32 *bitmaps_buf_s2_b, const u32 *bitmaps_buf_s2_c, const u32 *bitmaps_buf_s2_d, plain_t *plains_buf, const digest_t *digests_buf, u32 *hashes_shown, const salt_t *salt_bufs, const void *esalt_bufs, u32 *d_return_buf, u32 *d_scryptV_buf, const u32 bitmap_mask, const u32 bitmap_shift1, const u32 bitmap_shift2, const u32 salt_pos, const u32 loop_pos, const u32 loop_cnt, const u32 rules_cnt, const u32 digests_cnt, const u32 digests_offset, const u32 combs_mode, const u32 gid_max)
1477 {
1478 }
1479
1480 extern "C" __global__ void __launch_bounds__ (256, 1) m06100_m16 (const pw_t *pws, const gpu_rule_t *rules_buf, const comb_t *combs_buf, const bf_t *bfs_buf, const void *tmps, void *hooks, const u32 *bitmaps_buf_s1_a, const u32 *bitmaps_buf_s1_b, const u32 *bitmaps_buf_s1_c, const u32 *bitmaps_buf_s1_d, const u32 *bitmaps_buf_s2_a, const u32 *bitmaps_buf_s2_b, const u32 *bitmaps_buf_s2_c, const u32 *bitmaps_buf_s2_d, plain_t *plains_buf, const digest_t *digests_buf, u32 *hashes_shown, const salt_t *salt_bufs, const void *esalt_bufs, u32 *d_return_buf, u32 *d_scryptV_buf, const u32 bitmap_mask, const u32 bitmap_shift1, const u32 bitmap_shift2, const u32 salt_pos, const u32 loop_pos, const u32 loop_cnt, const u32 rules_cnt, const u32 digests_cnt, const u32 digests_offset, const u32 combs_mode, const u32 gid_max)
1481 {
1482 }
1483
1484 extern "C" __global__ void __launch_bounds__ (256, 1) m06100_s04 (const pw_t *pws, const gpu_rule_t *rules_buf, const comb_t *combs_buf, const bf_t *bfs_buf, const void *tmps, void *hooks, const u32 *bitmaps_buf_s1_a, const u32 *bitmaps_buf_s1_b, const u32 *bitmaps_buf_s1_c, const u32 *bitmaps_buf_s1_d, const u32 *bitmaps_buf_s2_a, const u32 *bitmaps_buf_s2_b, const u32 *bitmaps_buf_s2_c, const u32 *bitmaps_buf_s2_d, plain_t *plains_buf, const digest_t *digests_buf, u32 *hashes_shown, const salt_t *salt_bufs, const void *esalt_bufs, u32 *d_return_buf, u32 *d_scryptV_buf, const u32 bitmap_mask, const u32 bitmap_shift1, const u32 bitmap_shift2, const u32 salt_pos, const u32 loop_pos, const u32 loop_cnt, const u32 rules_cnt, const u32 digests_cnt, const u32 digests_offset, const u32 combs_mode, const u32 gid_max)
1485 {
1486   /**
1487    * modifier
1488    */
1489
1490   const u32 lid = threadIdx.x;
1491
1492   /**
1493    * base
1494    */
1495
1496   const u32 gid = (blockIdx.x * blockDim.x) + threadIdx.x;
1497
1498   u32x pw_buf0[4];
1499
1500   pw_buf0[0] = pws[gid].i[ 0];
1501   pw_buf0[1] = pws[gid].i[ 1];
1502   pw_buf0[2] = pws[gid].i[ 2];
1503   pw_buf0[3] = pws[gid].i[ 3];
1504
1505   u32x pw_buf1[4];
1506
1507   pw_buf1[0] = pws[gid].i[ 4];
1508   pw_buf1[1] = pws[gid].i[ 5];
1509   pw_buf1[2] = pws[gid].i[ 6];
1510   pw_buf1[3] = pws[gid].i[ 7];
1511
1512   const u32 pw_len = pws[gid].pw_len;
1513
1514   /**
1515    * modifier
1516    */
1517
1518   __shared__ u32 s_Ch[8][256];
1519   __shared__ u32 s_Cl[8][256];
1520
1521   for (u32 i = 0; i < 8; i++)
1522   {
1523     s_Ch[i][lid] = Ch[i][lid];
1524     s_Cl[i][lid] = Cl[i][lid];
1525   }
1526
1527   __syncthreads ();
1528
1529   if (gid >= gid_max) return;
1530
1531   /**
1532    * digest
1533    */
1534
1535   const u32 search[4] =
1536   {
1537     digests_buf[digests_offset].digest_buf[DGST_R0],
1538     digests_buf[digests_offset].digest_buf[DGST_R1],
1539     digests_buf[digests_offset].digest_buf[DGST_R2],
1540     digests_buf[digests_offset].digest_buf[DGST_R3]
1541   };
1542
1543   /**
1544    * loop
1545    */
1546
1547   for (u32 il_pos = 0; il_pos < rules_cnt; il_pos++)
1548   {
1549     u32x w0[4];
1550
1551     w0[0] = pw_buf0[0];
1552     w0[1] = pw_buf0[1];
1553     w0[2] = pw_buf0[2];
1554     w0[3] = pw_buf0[3];
1555
1556     u32x w1[4];
1557
1558     w1[0] = pw_buf1[0];
1559     w1[1] = pw_buf1[1];
1560     w1[2] = pw_buf1[2];
1561     w1[3] = pw_buf1[3];
1562
1563     u32x w2[4];
1564
1565     w2[0] = 0;
1566     w2[1] = 0;
1567     w2[2] = 0;
1568     w2[3] = 0;
1569
1570     u32x w3[4];
1571
1572     w3[0] = 0;
1573     w3[1] = 0;
1574     w3[2] = 0;
1575     w3[3] = 0;
1576
1577     const u32 out_len = apply_rules (c_rules[il_pos].cmds, w0, w1, pw_len);
1578
1579     append_0x80_2 (w0, w1, out_len);
1580
1581     u32x wl[16];
1582
1583     wl[ 0] = swap_workaround (w0[0]);
1584     wl[ 1] = swap_workaround (w0[1]);
1585     wl[ 2] = swap_workaround (w0[2]);
1586     wl[ 3] = swap_workaround (w0[3]);
1587     wl[ 4] = swap_workaround (w1[0]);
1588     wl[ 5] = swap_workaround (w1[1]);
1589     wl[ 6] = swap_workaround (w1[2]);
1590     wl[ 7] = swap_workaround (w1[3]);
1591     wl[ 8] = 0;
1592     wl[ 9] = 0;
1593     wl[10] = 0;
1594     wl[11] = 0;
1595     wl[12] = 0;
1596     wl[13] = 0;
1597     wl[14] = 0;
1598     wl[15] = out_len * 8;
1599
1600     u32x dgst[16];
1601
1602     whirlpool_transform (wl, dgst, s_Ch, s_Cl);
1603
1604     const u32x r0 = dgst[0];
1605     const u32x r1 = dgst[1];
1606     const u32x r2 = dgst[2];
1607     const u32x r3 = dgst[3];
1608
1609     #include VECT_COMPARE_S
1610   }
1611 }
1612
1613 extern "C" __global__ void __launch_bounds__ (256, 1) m06100_s08 (const pw_t *pws, const gpu_rule_t *rules_buf, const comb_t *combs_buf, const bf_t *bfs_buf, const void *tmps, void *hooks, const u32 *bitmaps_buf_s1_a, const u32 *bitmaps_buf_s1_b, const u32 *bitmaps_buf_s1_c, const u32 *bitmaps_buf_s1_d, const u32 *bitmaps_buf_s2_a, const u32 *bitmaps_buf_s2_b, const u32 *bitmaps_buf_s2_c, const u32 *bitmaps_buf_s2_d, plain_t *plains_buf, const digest_t *digests_buf, u32 *hashes_shown, const salt_t *salt_bufs, const void *esalt_bufs, u32 *d_return_buf, u32 *d_scryptV_buf, const u32 bitmap_mask, const u32 bitmap_shift1, const u32 bitmap_shift2, const u32 salt_pos, const u32 loop_pos, const u32 loop_cnt, const u32 rules_cnt, const u32 digests_cnt, const u32 digests_offset, const u32 combs_mode, const u32 gid_max)
1614 {
1615 }
1616
1617 extern "C" __global__ void __launch_bounds__ (256, 1) m06100_s16 (const pw_t *pws, const gpu_rule_t *rules_buf, const comb_t *combs_buf, const bf_t *bfs_buf, const void *tmps, void *hooks, const u32 *bitmaps_buf_s1_a, const u32 *bitmaps_buf_s1_b, const u32 *bitmaps_buf_s1_c, const u32 *bitmaps_buf_s1_d, const u32 *bitmaps_buf_s2_a, const u32 *bitmaps_buf_s2_b, const u32 *bitmaps_buf_s2_c, const u32 *bitmaps_buf_s2_d, plain_t *plains_buf, const digest_t *digests_buf, u32 *hashes_shown, const salt_t *salt_bufs, const void *esalt_bufs, u32 *d_return_buf, u32 *d_scryptV_buf, const u32 bitmap_mask, const u32 bitmap_shift1, const u32 bitmap_shift2, const u32 salt_pos, const u32 loop_pos, const u32 loop_cnt, const u32 rules_cnt, const u32 digests_cnt, const u32 digests_offset, const u32 combs_mode, const u32 gid_max)
1618 {
1619 }