gnark-plonky2-verifier/poseidon/constants.go
poseidon/constants.goRaw
1package poseidon
2
3import (
4 "github.com/consensys/gnark/frontend"
5 "github.com/succinctlabs/gnark-plonky2-verifier/field"
6)
7
8var ALL_ROUND_CONSTANTS = []field.F{
9 field.NewFieldConst(0xb585f766f2144405),
10 field.NewFieldConst(0x7746a55f43921ad7),
11 field.NewFieldConst(0xb2fb0d31cee799b4),
12 field.NewFieldConst(0x0f6760a4803427d7),
13 field.NewFieldConst(0xe10d666650f4e012),
14 field.NewFieldConst(0x8cae14cb07d09bf1),
15 field.NewFieldConst(0xd438539c95f63e9f),
16 field.NewFieldConst(0xef781c7ce35b4c3d),
17 field.NewFieldConst(0xcdc4a239b0c44426),
18 field.NewFieldConst(0x277fa208bf337bff),
19 field.NewFieldConst(0xe17653a29da578a1),
20 field.NewFieldConst(0xc54302f225db2c76),
21 field.NewFieldConst(0x86287821f722c881),
22 field.NewFieldConst(0x59cd1a8a41c18e55),
23 field.NewFieldConst(0xc3b919ad495dc574),
24 field.NewFieldConst(0xa484c4c5ef6a0781),
25 field.NewFieldConst(0x308bbd23dc5416cc),
26 field.NewFieldConst(0x6e4a40c18f30c09c),
27 field.NewFieldConst(0x9a2eedb70d8f8cfa),
28 field.NewFieldConst(0xe360c6e0ae486f38),
29 field.NewFieldConst(0xd5c7718fbfc647fb),
30 field.NewFieldConst(0xc35eae071903ff0b),
31 field.NewFieldConst(0x849c2656969c4be7),
32 field.NewFieldConst(0xc0572c8c08cbbbad),
33 field.NewFieldConst(0xe9fa634a21de0082),
34 field.NewFieldConst(0xf56f6d48959a600d),
35 field.NewFieldConst(0xf7d713e806391165),
36 field.NewFieldConst(0x8297132b32825daf),
37 field.NewFieldConst(0xad6805e0e30b2c8a),
38 field.NewFieldConst(0xac51d9f5fcf8535e),
39 field.NewFieldConst(0x502ad7dc18c2ad87),
40 field.NewFieldConst(0x57a1550c110b3041),
41 field.NewFieldConst(0x66bbd30e6ce0e583),
42 field.NewFieldConst(0x0da2abef589d644e),
43 field.NewFieldConst(0xf061274fdb150d61),
44 field.NewFieldConst(0x28b8ec3ae9c29633),
45 field.NewFieldConst(0x92a756e67e2b9413),
46 field.NewFieldConst(0x70e741ebfee96586),
47 field.NewFieldConst(0x019d5ee2af82ec1c),
48 field.NewFieldConst(0x6f6f2ed772466352),
49 field.NewFieldConst(0x7cf416cfe7e14ca1),
50 field.NewFieldConst(0x61df517b86a46439),
51 field.NewFieldConst(0x85dc499b11d77b75),
52 field.NewFieldConst(0x4b959b48b9c10733),
53 field.NewFieldConst(0xe8be3e5da8043e57),
54 field.NewFieldConst(0xf5c0bc1de6da8699),
55 field.NewFieldConst(0x40b12cbf09ef74bf),
56 field.NewFieldConst(0xa637093ecb2ad631),
57 field.NewFieldConst(0x3cc3f892184df408),
58 field.NewFieldConst(0x2e479dc157bf31bb),
59 field.NewFieldConst(0x6f49de07a6234346),
60 field.NewFieldConst(0x213ce7bede378d7b),
61 field.NewFieldConst(0x5b0431345d4dea83),
62 field.NewFieldConst(0xa2de45780344d6a1),
63 field.NewFieldConst(0x7103aaf94a7bf308),
64 field.NewFieldConst(0x5326fc0d97279301),
65 field.NewFieldConst(0xa9ceb74fec024747),
66 field.NewFieldConst(0x27f8ec88bb21b1a3),
67 field.NewFieldConst(0xfceb4fda1ded0893),
68 field.NewFieldConst(0xfac6ff1346a41675),
69 field.NewFieldConst(0x7131aa45268d7d8c),
70 field.NewFieldConst(0x9351036095630f9f),
71 field.NewFieldConst(0xad535b24afc26bfb),
72 field.NewFieldConst(0x4627f5c6993e44be),
73 field.NewFieldConst(0x645cf794b8f1cc58),
74 field.NewFieldConst(0x241c70ed0af61617),
75 field.NewFieldConst(0xacb8e076647905f1),
76 field.NewFieldConst(0x3737e9db4c4f474d),
77 field.NewFieldConst(0xe7ea5e33e75fffb6),
78 field.NewFieldConst(0x90dee49fc9bfc23a),
79 field.NewFieldConst(0xd1b1edf76bc09c92),
80 field.NewFieldConst(0x0b65481ba645c602),
81 field.NewFieldConst(0x99ad1aab0814283b),
82 field.NewFieldConst(0x438a7c91d416ca4d),
83 field.NewFieldConst(0xb60de3bcc5ea751c),
84 field.NewFieldConst(0xc99cab6aef6f58bc),
85 field.NewFieldConst(0x69a5ed92a72ee4ff),
86 field.NewFieldConst(0x5e7b329c1ed4ad71),
87 field.NewFieldConst(0x5fc0ac0800144885),
88 field.NewFieldConst(0x32db829239774eca),
89 field.NewFieldConst(0x0ade699c5830f310),
90 field.NewFieldConst(0x7cc5583b10415f21),
91 field.NewFieldConst(0x85df9ed2e166d64f),
92 field.NewFieldConst(0x6604df4fee32bcb1),
93 field.NewFieldConst(0xeb84f608da56ef48),
94 field.NewFieldConst(0xda608834c40e603d),
95 field.NewFieldConst(0x8f97fe408061f183),
96 field.NewFieldConst(0xa93f485c96f37b89),
97 field.NewFieldConst(0x6704e8ee8f18d563),
98 field.NewFieldConst(0xcee3e9ac1e072119),
99 field.NewFieldConst(0x510d0e65e2b470c1),
100 field.NewFieldConst(0xf6323f486b9038f0),
101 field.NewFieldConst(0x0b508cdeffa5ceef),
102 field.NewFieldConst(0xf2417089e4fb3cbd),
103 field.NewFieldConst(0x60e75c2890d15730),
104 field.NewFieldConst(0xa6217d8bf660f29c),
105 field.NewFieldConst(0x7159cd30c3ac118e),
106 field.NewFieldConst(0x839b4e8fafead540),
107 field.NewFieldConst(0x0d3f3e5e82920adc),
108 field.NewFieldConst(0x8f7d83bddee7bba8),
109 field.NewFieldConst(0x780f2243ea071d06),
110 field.NewFieldConst(0xeb915845f3de1634),
111 field.NewFieldConst(0xd19e120d26b6f386),
112 field.NewFieldConst(0x016ee53a7e5fecc6),
113 field.NewFieldConst(0xcb5fd54e7933e477),
114 field.NewFieldConst(0xacb8417879fd449f),
115 field.NewFieldConst(0x9c22190be7f74732),
116 field.NewFieldConst(0x5d693c1ba3ba3621),
117 field.NewFieldConst(0xdcef0797c2b69ec7),
118 field.NewFieldConst(0x3d639263da827b13),
119 field.NewFieldConst(0xe273fd971bc8d0e7),
120 field.NewFieldConst(0x418f02702d227ed5),
121 field.NewFieldConst(0x8c25fda3b503038c),
122 field.NewFieldConst(0x2cbaed4daec8c07c),
123 field.NewFieldConst(0x5f58e6afcdd6ddc2),
124 field.NewFieldConst(0x284650ac5e1b0eba),
125 field.NewFieldConst(0x635b337ee819dab5),
126 field.NewFieldConst(0x9f9a036ed4f2d49f),
127 field.NewFieldConst(0xb93e260cae5c170e),
128 field.NewFieldConst(0xb0a7eae879ddb76d),
129 field.NewFieldConst(0xd0762cbc8ca6570c),
130 field.NewFieldConst(0x34c6efb812b04bf5),
131 field.NewFieldConst(0x40bf0ab5fa14c112),
132 field.NewFieldConst(0xb6b570fc7c5740d3),
133 field.NewFieldConst(0x5a27b9002de33454),
134 field.NewFieldConst(0xb1a5b165b6d2b2d2),
135 field.NewFieldConst(0x8722e0ace9d1be22),
136 field.NewFieldConst(0x788ee3b37e5680fb),
137 field.NewFieldConst(0x14a726661551e284),
138 field.NewFieldConst(0x98b7672f9ef3b419),
139 field.NewFieldConst(0xbb93ae776bb30e3a),
140 field.NewFieldConst(0x28fd3b046380f850),
141 field.NewFieldConst(0x30a4680593258387),
142 field.NewFieldConst(0x337dc00c61bd9ce1),
143 field.NewFieldConst(0xd5eca244c7a4ff1d),
144 field.NewFieldConst(0x7762638264d279bd),
145 field.NewFieldConst(0xc1e434bedeefd767),
146 field.NewFieldConst(0x0299351a53b8ec22),
147 field.NewFieldConst(0xb2d456e4ad251b80),
148 field.NewFieldConst(0x3e9ed1fda49cea0b),
149 field.NewFieldConst(0x2972a92ba450bed8),
150 field.NewFieldConst(0x20216dd77be493de),
151 field.NewFieldConst(0xadffe8cf28449ec6),
152 field.NewFieldConst(0x1c4dbb1c4c27d243),
153 field.NewFieldConst(0x15a16a8a8322d458),
154 field.NewFieldConst(0x388a128b7fd9a609),
155 field.NewFieldConst(0x2300e5d6baedf0fb),
156 field.NewFieldConst(0x2f63aa8647e15104),
157 field.NewFieldConst(0xf1c36ce86ecec269),
158 field.NewFieldConst(0x27181125183970c9),
159 field.NewFieldConst(0xe584029370dca96d),
160 field.NewFieldConst(0x4d9bbc3e02f1cfb2),
161 field.NewFieldConst(0xea35bc29692af6f8),
162 field.NewFieldConst(0x18e21b4beabb4137),
163 field.NewFieldConst(0x1e3b9fc625b554f4),
164 field.NewFieldConst(0x25d64362697828fd),
165 field.NewFieldConst(0x5a3f1bb1c53a9645),
166 field.NewFieldConst(0xdb7f023869fb8d38),
167 field.NewFieldConst(0xb462065911d4e1fc),
168 field.NewFieldConst(0x49c24ae4437d8030),
169 field.NewFieldConst(0xd793862c112b0566),
170 field.NewFieldConst(0xaadd1106730d8feb),
171 field.NewFieldConst(0xc43b6e0e97b0d568),
172 field.NewFieldConst(0xe29024c18ee6fca2),
173 field.NewFieldConst(0x5e50c27535b88c66),
174 field.NewFieldConst(0x10383f20a4ff9a87),
175 field.NewFieldConst(0x38e8ee9d71a45af8),
176 field.NewFieldConst(0xdd5118375bf1a9b9),
177 field.NewFieldConst(0x775005982d74d7f7),
178 field.NewFieldConst(0x86ab99b4dde6c8b0),
179 field.NewFieldConst(0xb1204f603f51c080),
180 field.NewFieldConst(0xef61ac8470250ecf),
181 field.NewFieldConst(0x1bbcd90f132c603f),
182 field.NewFieldConst(0x0cd1dabd964db557),
183 field.NewFieldConst(0x11a3ae5beb9d1ec9),
184 field.NewFieldConst(0xf755bfeea585d11d),
185 field.NewFieldConst(0xa3b83250268ea4d7),
186 field.NewFieldConst(0x516306f4927c93af),
187 field.NewFieldConst(0xddb4ac49c9efa1da),
188 field.NewFieldConst(0x64bb6dec369d4418),
189 field.NewFieldConst(0xf9cc95c22b4c1fcc),
190 field.NewFieldConst(0x08d37f755f4ae9f6),
191 field.NewFieldConst(0xeec49b613478675b),
192 field.NewFieldConst(0xf143933aed25e0b0),
193 field.NewFieldConst(0xe4c5dd8255dfc622),
194 field.NewFieldConst(0xe7ad7756f193198e),
195 field.NewFieldConst(0x92c2318b87fff9cb),
196 field.NewFieldConst(0x739c25f8fd73596d),
197 field.NewFieldConst(0x5636cac9f16dfed0),
198 field.NewFieldConst(0xdd8f909a938e0172),
199 field.NewFieldConst(0xc6401fe115063f5b),
200 field.NewFieldConst(0x8ad97b33f1ac1455),
201 field.NewFieldConst(0x0c49366bb25e8513),
202 field.NewFieldConst(0x0784d3d2f1698309),
203 field.NewFieldConst(0x530fb67ea1809a81),
204 field.NewFieldConst(0x410492299bb01f49),
205 field.NewFieldConst(0x139542347424b9ac),
206 field.NewFieldConst(0x9cb0bd5ea1a1115e),
207 field.NewFieldConst(0x02e3f615c38f49a1),
208 field.NewFieldConst(0x985d4f4a9c5291ef),
209 field.NewFieldConst(0x775b9feafdcd26e7),
210 field.NewFieldConst(0x304265a6384f0f2d),
211 field.NewFieldConst(0x593664c39773012c),
212 field.NewFieldConst(0x4f0a2e5fb028f2ce),
213 field.NewFieldConst(0xdd611f1000c17442),
214 field.NewFieldConst(0xd8185f9adfea4fd0),
215 field.NewFieldConst(0xef87139ca9a3ab1e),
216 field.NewFieldConst(0x3ba71336c34ee133),
217 field.NewFieldConst(0x7d3a455d56b70238),
218 field.NewFieldConst(0x660d32e130182684),
219 field.NewFieldConst(0x297a863f48cd1f43),
220 field.NewFieldConst(0x90e0a736a751ebb7),
221 field.NewFieldConst(0x549f80ce550c4fd3),
222 field.NewFieldConst(0x0f73b2922f38bd64),
223 field.NewFieldConst(0x16bf1f73fb7a9c3f),
224 field.NewFieldConst(0x6d1f5a59005bec17),
225 field.NewFieldConst(0x02ff876fa5ef97c4),
226 field.NewFieldConst(0xc5cb72a2a51159b0),
227 field.NewFieldConst(0x8470f39d2d5c900e),
228 field.NewFieldConst(0x25abb3f1d39fcb76),
229 field.NewFieldConst(0x23eb8cc9b372442f),
230 field.NewFieldConst(0xd687ba55c64f6364),
231 field.NewFieldConst(0xda8d9e90fd8ff158),
232 field.NewFieldConst(0xe3cbdc7d2fe45ea7),
233 field.NewFieldConst(0xb9a8c9b3aee52297),
234 field.NewFieldConst(0xc0d28a5c10960bd3),
235 field.NewFieldConst(0x45d7ac9b68f71a34),
236 field.NewFieldConst(0xeeb76e397069e804),
237 field.NewFieldConst(0x3d06c8bd1514e2d9),
238 field.NewFieldConst(0x9c9c98207cb10767),
239 field.NewFieldConst(0x65700b51aedfb5ef),
240 field.NewFieldConst(0x911f451539869408),
241 field.NewFieldConst(0x7ae6849fbc3a0ec6),
242 field.NewFieldConst(0x3bb340eba06afe7e),
243 field.NewFieldConst(0xb46e9d8b682ea65e),
244 field.NewFieldConst(0x8dcf22f9a3b34356),
245 field.NewFieldConst(0x77bdaeda586257a7),
246 field.NewFieldConst(0xf19e400a5104d20d),
247 field.NewFieldConst(0xc368a348e46d950f),
248 field.NewFieldConst(0x9ef1cd60e679f284),
249 field.NewFieldConst(0xe89cd854d5d01d33),
250 field.NewFieldConst(0x5cd377dc8bb882a2),
251 field.NewFieldConst(0xa7b0fb7883eee860),
252 field.NewFieldConst(0x7684403ec392950d),
253 field.NewFieldConst(0x5fa3f06f4fed3b52),
254 field.NewFieldConst(0x8df57ac11bc04831),
255 field.NewFieldConst(0x2db01efa1e1e1897),
256 field.NewFieldConst(0x54846de4aadb9ca2),
257 field.NewFieldConst(0xba6745385893c784),
258 field.NewFieldConst(0x541d496344d2c75b),
259 field.NewFieldConst(0xe909678474e687fe),
260 field.NewFieldConst(0xdfe89923f6c9c2ff),
261 field.NewFieldConst(0xece5a71e0cfedc75),
262 field.NewFieldConst(0x5ff98fd5d51fe610),
263 field.NewFieldConst(0x83e8941918964615),
264 field.NewFieldConst(0x5922040b47f150c1),
265 field.NewFieldConst(0xf97d750e3dd94521),
266 field.NewFieldConst(0x5080d4c2b86f56d7),
267 field.NewFieldConst(0xa7de115b56c78d70),
268 field.NewFieldConst(0x6a9242ac87538194),
269 field.NewFieldConst(0xf7856ef7f9173e44),
270 field.NewFieldConst(0x2265fc92feb0dc09),
271 field.NewFieldConst(0x17dfc8e4f7ba8a57),
272 field.NewFieldConst(0x9001a64209f21db8),
273 field.NewFieldConst(0x90004c1371b893c5),
274 field.NewFieldConst(0xb932b7cf752e5545),
275 field.NewFieldConst(0xa0b1df81b6fe59fc),
276 field.NewFieldConst(0x8ef1dd26770af2c2),
277 field.NewFieldConst(0x0541a4f9cfbeed35),
278 field.NewFieldConst(0x9e61106178bfc530),
279 field.NewFieldConst(0xb3767e80935d8af2),
280 field.NewFieldConst(0x0098d5782065af06),
281 field.NewFieldConst(0x31d191cd5c1466c7),
282 field.NewFieldConst(0x410fefafa319ac9d),
283 field.NewFieldConst(0xbdf8f242e316c4ab),
284 field.NewFieldConst(0x9e8cd55b57637ed0),
285 field.NewFieldConst(0xde122bebe9a39368),
286 field.NewFieldConst(0x4d001fd58f002526),
287 field.NewFieldConst(0xca6637000eb4a9f8),
288 field.NewFieldConst(0x2f2339d624f91f78),
289 field.NewFieldConst(0x6d1a7918c80df518),
290 field.NewFieldConst(0xdf9a4939342308e9),
291 field.NewFieldConst(0xebc2151ee6c8398c),
292 field.NewFieldConst(0x03cc2ba8a1116515),
293 field.NewFieldConst(0xd341d037e840cf83),
294 field.NewFieldConst(0x387cb5d25af4afcc),
295 field.NewFieldConst(0xbba2515f22909e87),
296 field.NewFieldConst(0x7248fe7705f38e47),
297 field.NewFieldConst(0x4d61e56a525d225a),
298 field.NewFieldConst(0x262e963c8da05d3d),
299 field.NewFieldConst(0x59e89b094d220ec2),
300 field.NewFieldConst(0x055d5b52b78b9c5e),
301 field.NewFieldConst(0x82b27eb33514ef99),
302 field.NewFieldConst(0xd30094ca96b7ce7b),
303 field.NewFieldConst(0xcf5cb381cd0a1535),
304 field.NewFieldConst(0xfeed4db6919e5a7c),
305 field.NewFieldConst(0x41703f53753be59f),
306 field.NewFieldConst(0x5eeea940fcde8b6f),
307 field.NewFieldConst(0x4cd1f1b175100206),
308 field.NewFieldConst(0x4a20358574454ec0),
309 field.NewFieldConst(0x1478d361dbbf9fac),
310 field.NewFieldConst(0x6f02dc07d141875c),
311 field.NewFieldConst(0x296a202ed8e556a2),
312 field.NewFieldConst(0x2afd67999bf32ee5),
313 field.NewFieldConst(0x7acfd96efa95491d),
314 field.NewFieldConst(0x6798ba0c0abb2c6d),
315 field.NewFieldConst(0x34c6f57b26c92122),
316 field.NewFieldConst(0x5736e1bad206b5de),
317 field.NewFieldConst(0x20057d2a0056521b),
318 field.NewFieldConst(0x3dea5bd5d0578bd7),
319 field.NewFieldConst(0x16e50d897d4634ac),
320 field.NewFieldConst(0x29bff3ecb9b7a6e3),
321 field.NewFieldConst(0x475cd3205a3bdcde),
322 field.NewFieldConst(0x18a42105c31b7e88),
323 field.NewFieldConst(0x023e7414af663068),
324 field.NewFieldConst(0x15147108121967d7),
325 field.NewFieldConst(0xe4a3dff1d7d6fef9),
326 field.NewFieldConst(0x01a8d1a588085737),
327 field.NewFieldConst(0x11b4c74eda62beef),
328 field.NewFieldConst(0xe587cc0d69a73346),
329 field.NewFieldConst(0x1ff7327017aa2a6e),
330 field.NewFieldConst(0x594e29c42473d06b),
331 field.NewFieldConst(0xf6f31db1899b12d5),
332 field.NewFieldConst(0xc02ac5e47312d3ca),
333 field.NewFieldConst(0xe70201e960cb78b8),
334 field.NewFieldConst(0x6f90ff3b6a65f108),
335 field.NewFieldConst(0x42747a7245e7fa84),
336 field.NewFieldConst(0xd1f507e43ab749b2),
337 field.NewFieldConst(0x1c86d265f15750cd),
338 field.NewFieldConst(0x3996ce73dd832c1c),
339 field.NewFieldConst(0x8e7fba02983224bd),
340 field.NewFieldConst(0xba0dec7103255dd4),
341 field.NewFieldConst(0x9e9cbd781628fc5b),
342 field.NewFieldConst(0xdae8645996edd6a5),
343 field.NewFieldConst(0xdebe0853b1a1d378),
344 field.NewFieldConst(0xa49229d24d014343),
345 field.NewFieldConst(0x7be5b9ffda905e1c),
346 field.NewFieldConst(0xa3c95eaec244aa30),
347 field.NewFieldConst(0x0230bca8f4df0544),
348 field.NewFieldConst(0x4135c2bebfe148c6),
349 field.NewFieldConst(0x166fc0cc438a3c72),
350 field.NewFieldConst(0x3762b59a8ae83efa),
351 field.NewFieldConst(0xe8928a4c89114750),
352 field.NewFieldConst(0x2a440b51a4945ee5),
353 field.NewFieldConst(0x80cefd2b7d99ff83),
354 field.NewFieldConst(0xbb9879c6e61fd62a),
355 field.NewFieldConst(0x6e7c8f1a84265034),
356 field.NewFieldConst(0x164bb2de1bbeddc8),
357 field.NewFieldConst(0xf3c12fe54d5c653b),
358 field.NewFieldConst(0x40b9e922ed9771e2),
359 field.NewFieldConst(0x551f5b0fbe7b1840),
360 field.NewFieldConst(0x25032aa7c4cb1811),
361 field.NewFieldConst(0xaaed34074b164346),
362 field.NewFieldConst(0x8ffd96bbf9c9c81d),
363 field.NewFieldConst(0x70fc91eb5937085c),
364 field.NewFieldConst(0x7f795e2a5f915440),
365 field.NewFieldConst(0x4543d9df5476d3cb),
366 field.NewFieldConst(0xf172d73e004fc90d),
367 field.NewFieldConst(0xdfd1c4febcc81238),
368 field.NewFieldConst(0xbc8dfb627fe558fc),
369}
370
371var MDS_MATRIX_CIRC = []field.F{
372 field.NewFieldConst(17),
373 field.NewFieldConst(15),
374 field.NewFieldConst(41),
375 field.NewFieldConst(16),
376 field.NewFieldConst(2),
377 field.NewFieldConst(28),
378 field.NewFieldConst(13),
379 field.NewFieldConst(13),
380 field.NewFieldConst(39),
381 field.NewFieldConst(18),
382 field.NewFieldConst(34),
383 field.NewFieldConst(20),
384}
385
386var MDS_MATRIX_CIRC_VARS = []frontend.Variable{
387 frontend.Variable(17),
388 frontend.Variable(15),
389 frontend.Variable(41),
390 frontend.Variable(16),
391 frontend.Variable(2),
392 frontend.Variable(28),
393 frontend.Variable(13),
394 frontend.Variable(13),
395 frontend.Variable(39),
396 frontend.Variable(18),
397 frontend.Variable(34),
398 frontend.Variable(20),
399}
400
401var MDS_MATRIX_DIAG = []field.F{
402 field.NewFieldConst(8),
403 field.ZERO_F,
404 field.ZERO_F,
405 field.ZERO_F,
406 field.ZERO_F,
407 field.ZERO_F,
408 field.ZERO_F,
409 field.ZERO_F,
410 field.ZERO_F,
411 field.ZERO_F,
412 field.ZERO_F,
413 field.ZERO_F,
414}
415
416var ZERO_VAR = frontend.Variable(0)
417
418var MDS_MATRIX_DIAG_VARS = []frontend.Variable{
419 frontend.Variable(8),
420 ZERO_VAR,
421 ZERO_VAR,
422 ZERO_VAR,
423 ZERO_VAR,
424 ZERO_VAR,
425 ZERO_VAR,
426 ZERO_VAR,
427 ZERO_VAR,
428 ZERO_VAR,
429 ZERO_VAR,
430 ZERO_VAR,
431}
432
433var MDS0TO0 = field.NewFieldConst(25)
434
435var MDS0TO0_VAR = frontend.Variable(25)
436
437var FAST_PARTIAL_FIRST_ROUND_CONSTANT = []field.F{
438 field.NewFieldConst(0x3cc3f892184df408),
439 field.NewFieldConst(0xe993fd841e7e97f1),
440 field.NewFieldConst(0xf2831d3575f0f3af),
441 field.NewFieldConst(0xd2500e0a350994ca),
442 field.NewFieldConst(0xc5571f35d7288633),
443 field.NewFieldConst(0x91d89c5184109a02),
444 field.NewFieldConst(0xf37f925d04e5667b),
445 field.NewFieldConst(0x2d6e448371955a69),
446 field.NewFieldConst(0x740ef19ce01398a1),
447 field.NewFieldConst(0x694d24c0752fdf45),
448 field.NewFieldConst(0x60936af96ee2f148),
449 field.NewFieldConst(0xc33448feadc78f0c),
450}
451
452var FAST_PARTIAL_ROUND_CONSTANTS = []field.F{
453 field.NewFieldConst(0x74cb2e819ae421ab),
454 field.NewFieldConst(0xd2559d2370e7f663),
455 field.NewFieldConst(0x62bf78acf843d17c),
456 field.NewFieldConst(0xd5ab7b67e14d1fb4),
457 field.NewFieldConst(0xb9fe2ae6e0969bdc),
458 field.NewFieldConst(0xe33fdf79f92a10e8),
459 field.NewFieldConst(0x0ea2bb4c2b25989b),
460 field.NewFieldConst(0xca9121fbf9d38f06),
461 field.NewFieldConst(0xbdd9b0aa81f58fa4),
462 field.NewFieldConst(0x83079fa4ecf20d7e),
463 field.NewFieldConst(0x650b838edfcc4ad3),
464 field.NewFieldConst(0x77180c88583c76ac),
465 field.NewFieldConst(0xaf8c20753143a180),
466 field.NewFieldConst(0xb8ccfe9989a39175),
467 field.NewFieldConst(0x954a1729f60cc9c5),
468 field.NewFieldConst(0xdeb5b550c4dca53b),
469 field.NewFieldConst(0xf01bb0b00f77011e),
470 field.NewFieldConst(0xa1ebb404b676afd9),
471 field.NewFieldConst(0x860b6e1597a0173e),
472 field.NewFieldConst(0x308bb65a036acbce),
473 field.NewFieldConst(0x1aca78f31c97c876),
474 field.NewFieldConst(0x0),
475}
476
477var FAST_PARTIAL_ROUND_VS = [N_PARTIAL_ROUNDS][11]field.F{
478 {
479 field.NewFieldConst(0x94877900674181c3),
480 field.NewFieldConst(0xc6c67cc37a2a2bbd),
481 field.NewFieldConst(0xd667c2055387940f),
482 field.NewFieldConst(0x0ba63a63e94b5ff0),
483 field.NewFieldConst(0x99460cc41b8f079f),
484 field.NewFieldConst(0x7ff02375ed524bb3),
485 field.NewFieldConst(0xea0870b47a8caf0e),
486 field.NewFieldConst(0xabcad82633b7bc9d),
487 field.NewFieldConst(0x3b8d135261052241),
488 field.NewFieldConst(0xfb4515f5e5b0d539),
489 field.NewFieldConst(0x3ee8011c2b37f77c),
490 },
491 {
492 field.NewFieldConst(0x0adef3740e71c726),
493 field.NewFieldConst(0xa37bf67c6f986559),
494 field.NewFieldConst(0xc6b16f7ed4fa1b00),
495 field.NewFieldConst(0x6a065da88d8bfc3c),
496 field.NewFieldConst(0x4cabc0916844b46f),
497 field.NewFieldConst(0x407faac0f02e78d1),
498 field.NewFieldConst(0x07a786d9cf0852cf),
499 field.NewFieldConst(0x42433fb6949a629a),
500 field.NewFieldConst(0x891682a147ce43b0),
501 field.NewFieldConst(0x26cfd58e7b003b55),
502 field.NewFieldConst(0x2bbf0ed7b657acb3),
503 },
504 {
505 field.NewFieldConst(0x481ac7746b159c67),
506 field.NewFieldConst(0xe367de32f108e278),
507 field.NewFieldConst(0x73f260087ad28bec),
508 field.NewFieldConst(0x5cfc82216bc1bdca),
509 field.NewFieldConst(0xcaccc870a2663a0e),
510 field.NewFieldConst(0xdb69cd7b4298c45d),
511 field.NewFieldConst(0x7bc9e0c57243e62d),
512 field.NewFieldConst(0x3cc51c5d368693ae),
513 field.NewFieldConst(0x366b4e8cc068895b),
514 field.NewFieldConst(0x2bd18715cdabbca4),
515 field.NewFieldConst(0xa752061c4f33b8cf),
516 },
517 {
518 field.NewFieldConst(0xb22d2432b72d5098),
519 field.NewFieldConst(0x9e18a487f44d2fe4),
520 field.NewFieldConst(0x4b39e14ce22abd3c),
521 field.NewFieldConst(0x9e77fde2eb315e0d),
522 field.NewFieldConst(0xca5e0385fe67014d),
523 field.NewFieldConst(0x0c2cb99bf1b6bddb),
524 field.NewFieldConst(0x99ec1cd2a4460bfe),
525 field.NewFieldConst(0x8577a815a2ff843f),
526 field.NewFieldConst(0x7d80a6b4fd6518a5),
527 field.NewFieldConst(0xeb6c67123eab62cb),
528 field.NewFieldConst(0x8f7851650eca21a5),
529 },
530 {
531 field.NewFieldConst(0x11ba9a1b81718c2a),
532 field.NewFieldConst(0x9f7d798a3323410c),
533 field.NewFieldConst(0xa821855c8c1cf5e5),
534 field.NewFieldConst(0x535e8d6fac0031b2),
535 field.NewFieldConst(0x404e7c751b634320),
536 field.NewFieldConst(0xa729353f6e55d354),
537 field.NewFieldConst(0x4db97d92e58bb831),
538 field.NewFieldConst(0xb53926c27897bf7d),
539 field.NewFieldConst(0x965040d52fe115c5),
540 field.NewFieldConst(0x9565fa41ebd31fd7),
541 field.NewFieldConst(0xaae4438c877ea8f4),
542 },
543 {
544 field.NewFieldConst(0x37f4e36af6073c6e),
545 field.NewFieldConst(0x4edc0918210800e9),
546 field.NewFieldConst(0xc44998e99eae4188),
547 field.NewFieldConst(0x9f4310d05d068338),
548 field.NewFieldConst(0x9ec7fe4350680f29),
549 field.NewFieldConst(0xc5b2c1fdc0b50874),
550 field.NewFieldConst(0xa01920c5ef8b2ebe),
551 field.NewFieldConst(0x59fa6f8bd91d58ba),
552 field.NewFieldConst(0x8bfc9eb89b515a82),
553 field.NewFieldConst(0xbe86a7a2555ae775),
554 field.NewFieldConst(0xcbb8bbaa3810babf),
555 },
556 {
557 field.NewFieldConst(0x577f9a9e7ee3f9c2),
558 field.NewFieldConst(0x88c522b949ace7b1),
559 field.NewFieldConst(0x82f07007c8b72106),
560 field.NewFieldConst(0x8283d37c6675b50e),
561 field.NewFieldConst(0x98b074d9bbac1123),
562 field.NewFieldConst(0x75c56fb7758317c1),
563 field.NewFieldConst(0xfed24e206052bc72),
564 field.NewFieldConst(0x26d7c3d1bc07dae5),
565 field.NewFieldConst(0xf88c5e441e28dbb4),
566 field.NewFieldConst(0x4fe27f9f96615270),
567 field.NewFieldConst(0x514d4ba49c2b14fe),
568 },
569 {
570 field.NewFieldConst(0xf02a3ac068ee110b),
571 field.NewFieldConst(0x0a3630dafb8ae2d7),
572 field.NewFieldConst(0xce0dc874eaf9b55c),
573 field.NewFieldConst(0x9a95f6cff5b55c7e),
574 field.NewFieldConst(0x626d76abfed00c7b),
575 field.NewFieldConst(0xa0c1cf1251c204ad),
576 field.NewFieldConst(0xdaebd3006321052c),
577 field.NewFieldConst(0x3d4bd48b625a8065),
578 field.NewFieldConst(0x7f1e584e071f6ed2),
579 field.NewFieldConst(0x720574f0501caed3),
580 field.NewFieldConst(0xe3260ba93d23540a),
581 },
582 {
583 field.NewFieldConst(0xab1cbd41d8c1e335),
584 field.NewFieldConst(0x9322ed4c0bc2df01),
585 field.NewFieldConst(0x51c3c0983d4284e5),
586 field.NewFieldConst(0x94178e291145c231),
587 field.NewFieldConst(0xfd0f1a973d6b2085),
588 field.NewFieldConst(0xd427ad96e2b39719),
589 field.NewFieldConst(0x8a52437fecaac06b),
590 field.NewFieldConst(0xdc20ee4b8c4c9a80),
591 field.NewFieldConst(0xa2c98e9549da2100),
592 field.NewFieldConst(0x1603fe12613db5b6),
593 field.NewFieldConst(0x0e174929433c5505),
594 },
595 {
596 field.NewFieldConst(0x3d4eab2b8ef5f796),
597 field.NewFieldConst(0xcfff421583896e22),
598 field.NewFieldConst(0x4143cb32d39ac3d9),
599 field.NewFieldConst(0x22365051b78a5b65),
600 field.NewFieldConst(0x6f7fd010d027c9b6),
601 field.NewFieldConst(0xd9dd36fba77522ab),
602 field.NewFieldConst(0xa44cf1cb33e37165),
603 field.NewFieldConst(0x3fc83d3038c86417),
604 field.NewFieldConst(0xc4588d418e88d270),
605 field.NewFieldConst(0xce1320f10ab80fe2),
606 field.NewFieldConst(0xdb5eadbbec18de5d),
607 },
608 {
609 field.NewFieldConst(0x1183dfce7c454afd),
610 field.NewFieldConst(0x21cea4aa3d3ed949),
611 field.NewFieldConst(0x0fce6f70303f2304),
612 field.NewFieldConst(0x19557d34b55551be),
613 field.NewFieldConst(0x4c56f689afc5bbc9),
614 field.NewFieldConst(0xa1e920844334f944),
615 field.NewFieldConst(0xbad66d423d2ec861),
616 field.NewFieldConst(0xf318c785dc9e0479),
617 field.NewFieldConst(0x99e2032e765ddd81),
618 field.NewFieldConst(0x400ccc9906d66f45),
619 field.NewFieldConst(0xe1197454db2e0dd9),
620 },
621 {
622 field.NewFieldConst(0x84d1ecc4d53d2ff1),
623 field.NewFieldConst(0xd8af8b9ceb4e11b6),
624 field.NewFieldConst(0x335856bb527b52f4),
625 field.NewFieldConst(0xc756f17fb59be595),
626 field.NewFieldConst(0xc0654e4ea5553a78),
627 field.NewFieldConst(0x9e9a46b61f2ea942),
628 field.NewFieldConst(0x14fc8b5b3b809127),
629 field.NewFieldConst(0xd7009f0f103be413),
630 field.NewFieldConst(0x3e0ee7b7a9fb4601),
631 field.NewFieldConst(0xa74e888922085ed7),
632 field.NewFieldConst(0xe80a7cde3d4ac526),
633 },
634 {
635 field.NewFieldConst(0x238aa6daa612186d),
636 field.NewFieldConst(0x9137a5c630bad4b4),
637 field.NewFieldConst(0xc7db3817870c5eda),
638 field.NewFieldConst(0x217e4f04e5718dc9),
639 field.NewFieldConst(0xcae814e2817bd99d),
640 field.NewFieldConst(0xe3292e7ab770a8ba),
641 field.NewFieldConst(0x7bb36ef70b6b9482),
642 field.NewFieldConst(0x3c7835fb85bca2d3),
643 field.NewFieldConst(0xfe2cdf8ee3c25e86),
644 field.NewFieldConst(0x61b3915ad7274b20),
645 field.NewFieldConst(0xeab75ca7c918e4ef),
646 },
647 {
648 field.NewFieldConst(0xd6e15ffc055e154e),
649 field.NewFieldConst(0xec67881f381a32bf),
650 field.NewFieldConst(0xfbb1196092bf409c),
651 field.NewFieldConst(0xdc9d2e07830ba226),
652 field.NewFieldConst(0x0698ef3245ff7988),
653 field.NewFieldConst(0x194fae2974f8b576),
654 field.NewFieldConst(0x7a5d9bea6ca4910e),
655 field.NewFieldConst(0x7aebfea95ccdd1c9),
656 field.NewFieldConst(0xf9bd38a67d5f0e86),
657 field.NewFieldConst(0xfa65539de65492d8),
658 field.NewFieldConst(0xf0dfcbe7653ff787),
659 },
660 {
661 field.NewFieldConst(0x0bd87ad390420258),
662 field.NewFieldConst(0x0ad8617bca9e33c8),
663 field.NewFieldConst(0x0c00ad377a1e2666),
664 field.NewFieldConst(0x0ac6fc58b3f0518f),
665 field.NewFieldConst(0x0c0cc8a892cc4173),
666 field.NewFieldConst(0x0c210accb117bc21),
667 field.NewFieldConst(0x0b73630dbb46ca18),
668 field.NewFieldConst(0x0c8be4920cbd4a54),
669 field.NewFieldConst(0x0bfe877a21be1690),
670 field.NewFieldConst(0x0ae790559b0ded81),
671 field.NewFieldConst(0x0bf50db2f8d6ce31),
672 },
673 {
674 field.NewFieldConst(0x000cf29427ff7c58),
675 field.NewFieldConst(0x000bd9b3cf49eec8),
676 field.NewFieldConst(0x000d1dc8aa81fb26),
677 field.NewFieldConst(0x000bc792d5c394ef),
678 field.NewFieldConst(0x000d2ae0b2266453),
679 field.NewFieldConst(0x000d413f12c496c1),
680 field.NewFieldConst(0x000c84128cfed618),
681 field.NewFieldConst(0x000db5ebd48fc0d4),
682 field.NewFieldConst(0x000d1b77326dcb90),
683 field.NewFieldConst(0x000beb0ccc145421),
684 field.NewFieldConst(0x000d10e5b22b11d1),
685 },
686 {
687 field.NewFieldConst(0x00000e24c99adad8),
688 field.NewFieldConst(0x00000cf389ed4bc8),
689 field.NewFieldConst(0x00000e580cbf6966),
690 field.NewFieldConst(0x00000cde5fd7e04f),
691 field.NewFieldConst(0x00000e63628041b3),
692 field.NewFieldConst(0x00000e7e81a87361),
693 field.NewFieldConst(0x00000dabe78f6d98),
694 field.NewFieldConst(0x00000efb14cac554),
695 field.NewFieldConst(0x00000e5574743b10),
696 field.NewFieldConst(0x00000d05709f42c1),
697 field.NewFieldConst(0x00000e4690c96af1),
698 },
699 {
700 field.NewFieldConst(0x0000000f7157bc98),
701 field.NewFieldConst(0x0000000e3006d948),
702 field.NewFieldConst(0x0000000fa65811e6),
703 field.NewFieldConst(0x0000000e0d127e2f),
704 field.NewFieldConst(0x0000000fc18bfe53),
705 field.NewFieldConst(0x0000000fd002d901),
706 field.NewFieldConst(0x0000000eed6461d8),
707 field.NewFieldConst(0x0000001068562754),
708 field.NewFieldConst(0x0000000fa0236f50),
709 field.NewFieldConst(0x0000000e3af13ee1),
710 field.NewFieldConst(0x0000000fa460f6d1),
711 },
712 {
713 field.NewFieldConst(0x0000000011131738),
714 field.NewFieldConst(0x000000000f56d588),
715 field.NewFieldConst(0x0000000011050f86),
716 field.NewFieldConst(0x000000000f848f4f),
717 field.NewFieldConst(0x00000000111527d3),
718 field.NewFieldConst(0x00000000114369a1),
719 field.NewFieldConst(0x00000000106f2f38),
720 field.NewFieldConst(0x0000000011e2ca94),
721 field.NewFieldConst(0x00000000110a29f0),
722 field.NewFieldConst(0x000000000fa9f5c1),
723 field.NewFieldConst(0x0000000010f625d1),
724 },
725 {
726 field.NewFieldConst(0x000000000011f718),
727 field.NewFieldConst(0x000000000010b6c8),
728 field.NewFieldConst(0x0000000000134a96),
729 field.NewFieldConst(0x000000000010cf7f),
730 field.NewFieldConst(0x0000000000124d03),
731 field.NewFieldConst(0x000000000013f8a1),
732 field.NewFieldConst(0x0000000000117c58),
733 field.NewFieldConst(0x0000000000132c94),
734 field.NewFieldConst(0x0000000000134fc0),
735 field.NewFieldConst(0x000000000010a091),
736 field.NewFieldConst(0x0000000000128961),
737 },
738 {
739 field.NewFieldConst(0x0000000000001300),
740 field.NewFieldConst(0x0000000000001750),
741 field.NewFieldConst(0x000000000000114e),
742 field.NewFieldConst(0x000000000000131f),
743 field.NewFieldConst(0x000000000000167b),
744 field.NewFieldConst(0x0000000000001371),
745 field.NewFieldConst(0x0000000000001230),
746 field.NewFieldConst(0x000000000000182c),
747 field.NewFieldConst(0x0000000000001368),
748 field.NewFieldConst(0x0000000000000f31),
749 field.NewFieldConst(0x00000000000015c9),
750 },
751 {
752 field.NewFieldConst(0x0000000000000014),
753 field.NewFieldConst(0x0000000000000022),
754 field.NewFieldConst(0x0000000000000012),
755 field.NewFieldConst(0x0000000000000027),
756 field.NewFieldConst(0x000000000000000d),
757 field.NewFieldConst(0x000000000000000d),
758 field.NewFieldConst(0x000000000000001c),
759 field.NewFieldConst(0x0000000000000002),
760 field.NewFieldConst(0x0000000000000010),
761 field.NewFieldConst(0x0000000000000029),
762 field.NewFieldConst(0x000000000000000f),
763 },
764}
765
766var FAST_PARTIAL_ROUND_W_HATS = [N_PARTIAL_ROUNDS][11]field.F{
767 {
768 field.NewFieldConst(0x3d999c961b7c63b0),
769 field.NewFieldConst(0x814e82efcd172529),
770 field.NewFieldConst(0x2421e5d236704588),
771 field.NewFieldConst(0x887af7d4dd482328),
772 field.NewFieldConst(0xa5e9c291f6119b27),
773 field.NewFieldConst(0xbdc52b2676a4b4aa),
774 field.NewFieldConst(0x64832009d29bcf57),
775 field.NewFieldConst(0x09c4155174a552cc),
776 field.NewFieldConst(0x463f9ee03d290810),
777 field.NewFieldConst(0xc810936e64982542),
778 field.NewFieldConst(0x043b1c289f7bc3ac),
779 },
780 {
781 field.NewFieldConst(0x673655aae8be5a8b),
782 field.NewFieldConst(0xd510fe714f39fa10),
783 field.NewFieldConst(0x2c68a099b51c9e73),
784 field.NewFieldConst(0xa667bfa9aa96999d),
785 field.NewFieldConst(0x4d67e72f063e2108),
786 field.NewFieldConst(0xf84dde3e6acda179),
787 field.NewFieldConst(0x40f9cc8c08f80981),
788 field.NewFieldConst(0x5ead032050097142),
789 field.NewFieldConst(0x6591b02092d671bb),
790 field.NewFieldConst(0x00e18c71963dd1b7),
791 field.NewFieldConst(0x8a21bcd24a14218a),
792 },
793 {
794 field.NewFieldConst(0x202800f4addbdc87),
795 field.NewFieldConst(0xe4b5bdb1cc3504ff),
796 field.NewFieldConst(0xbe32b32a825596e7),
797 field.NewFieldConst(0x8e0f68c5dc223b9a),
798 field.NewFieldConst(0x58022d9e1c256ce3),
799 field.NewFieldConst(0x584d29227aa073ac),
800 field.NewFieldConst(0x8b9352ad04bef9e7),
801 field.NewFieldConst(0xaead42a3f445ecbf),
802 field.NewFieldConst(0x3c667a1d833a3cca),
803 field.NewFieldConst(0xda6f61838efa1ffe),
804 field.NewFieldConst(0xe8f749470bd7c446),
805 },
806 {
807 field.NewFieldConst(0xc5b85bab9e5b3869),
808 field.NewFieldConst(0x45245258aec51cf7),
809 field.NewFieldConst(0x16e6b8e68b931830),
810 field.NewFieldConst(0xe2ae0f051418112c),
811 field.NewFieldConst(0x0470e26a0093a65b),
812 field.NewFieldConst(0x6bef71973a8146ed),
813 field.NewFieldConst(0x119265be51812daf),
814 field.NewFieldConst(0xb0be7356254bea2e),
815 field.NewFieldConst(0x8584defff7589bd7),
816 field.NewFieldConst(0x3c5fe4aeb1fb52ba),
817 field.NewFieldConst(0x9e7cd88acf543a5e),
818 },
819 {
820 field.NewFieldConst(0x179be4bba87f0a8c),
821 field.NewFieldConst(0xacf63d95d8887355),
822 field.NewFieldConst(0x6696670196b0074f),
823 field.NewFieldConst(0xd99ddf1fe75085f9),
824 field.NewFieldConst(0xc2597881fef0283b),
825 field.NewFieldConst(0xcf48395ee6c54f14),
826 field.NewFieldConst(0x15226a8e4cd8d3b6),
827 field.NewFieldConst(0xc053297389af5d3b),
828 field.NewFieldConst(0x2c08893f0d1580e2),
829 field.NewFieldConst(0x0ed3cbcff6fcc5ba),
830 field.NewFieldConst(0xc82f510ecf81f6d0),
831 },
832 {
833 field.NewFieldConst(0x94b06183acb715cc),
834 field.NewFieldConst(0x500392ed0d431137),
835 field.NewFieldConst(0x861cc95ad5c86323),
836 field.NewFieldConst(0x05830a443f86c4ac),
837 field.NewFieldConst(0x3b68225874a20a7c),
838 field.NewFieldConst(0x10b3309838e236fb),
839 field.NewFieldConst(0x9b77fc8bcd559e2c),
840 field.NewFieldConst(0xbdecf5e0cb9cb213),
841 field.NewFieldConst(0x30276f1221ace5fa),
842 field.NewFieldConst(0x7935dd342764a144),
843 field.NewFieldConst(0xeac6db520bb03708),
844 },
845 {
846 field.NewFieldConst(0x7186a80551025f8f),
847 field.NewFieldConst(0x622247557e9b5371),
848 field.NewFieldConst(0xc4cbe326d1ad9742),
849 field.NewFieldConst(0x55f1523ac6a23ea2),
850 field.NewFieldConst(0xa13dfe77a3d52f53),
851 field.NewFieldConst(0xe30750b6301c0452),
852 field.NewFieldConst(0x08bd488070a3a32b),
853 field.NewFieldConst(0xcd800caef5b72ae3),
854 field.NewFieldConst(0x83329c90f04233ce),
855 field.NewFieldConst(0xb5b99e6664a0a3ee),
856 field.NewFieldConst(0x6b0731849e200a7f),
857 },
858 {
859 field.NewFieldConst(0xec3fabc192b01799),
860 field.NewFieldConst(0x382b38cee8ee5375),
861 field.NewFieldConst(0x3bfb6c3f0e616572),
862 field.NewFieldConst(0x514abd0cf6c7bc86),
863 field.NewFieldConst(0x47521b1361dcc546),
864 field.NewFieldConst(0x178093843f863d14),
865 field.NewFieldConst(0xad1003c5d28918e7),
866 field.NewFieldConst(0x738450e42495bc81),
867 field.NewFieldConst(0xaf947c59af5e4047),
868 field.NewFieldConst(0x4653fb0685084ef2),
869 field.NewFieldConst(0x057fde2062ae35bf),
870 },
871 {
872 field.NewFieldConst(0xe376678d843ce55e),
873 field.NewFieldConst(0x66f3860d7514e7fc),
874 field.NewFieldConst(0x7817f3dfff8b4ffa),
875 field.NewFieldConst(0x3929624a9def725b),
876 field.NewFieldConst(0x0126ca37f215a80a),
877 field.NewFieldConst(0xfce2f5d02762a303),
878 field.NewFieldConst(0x1bc927375febbad7),
879 field.NewFieldConst(0x85b481e5243f60bf),
880 field.NewFieldConst(0x2d3c5f42a39c91a0),
881 field.NewFieldConst(0x0811719919351ae8),
882 field.NewFieldConst(0xf669de0add993131),
883 },
884 {
885 field.NewFieldConst(0x7de38bae084da92d),
886 field.NewFieldConst(0x5b848442237e8a9b),
887 field.NewFieldConst(0xf6c705da84d57310),
888 field.NewFieldConst(0x31e6a4bdb6a49017),
889 field.NewFieldConst(0x889489706e5c5c0f),
890 field.NewFieldConst(0x0e4a205459692a1b),
891 field.NewFieldConst(0xbac3fa75ee26f299),
892 field.NewFieldConst(0x5f5894f4057d755e),
893 field.NewFieldConst(0xb0dc3ecd724bb076),
894 field.NewFieldConst(0x5e34d8554a6452ba),
895 field.NewFieldConst(0x04f78fd8c1fdcc5f),
896 },
897 {
898 field.NewFieldConst(0x4dd19c38779512ea),
899 field.NewFieldConst(0xdb79ba02704620e9),
900 field.NewFieldConst(0x92a29a3675a5d2be),
901 field.NewFieldConst(0xd5177029fe495166),
902 field.NewFieldConst(0xd32b3298a13330c1),
903 field.NewFieldConst(0x251c4a3eb2c5f8fd),
904 field.NewFieldConst(0xe1c48b26e0d98825),
905 field.NewFieldConst(0x3301d3362a4ffccb),
906 field.NewFieldConst(0x09bb6c88de8cd178),
907 field.NewFieldConst(0xdc05b676564f538a),
908 field.NewFieldConst(0x60192d883e473fee),
909 },
910 {
911 field.NewFieldConst(0x16b9774801ac44a0),
912 field.NewFieldConst(0x3cb8411e786d3c8e),
913 field.NewFieldConst(0xa86e9cf505072491),
914 field.NewFieldConst(0x0178928152e109ae),
915 field.NewFieldConst(0x5317b905a6e1ab7b),
916 field.NewFieldConst(0xda20b3be7f53d59f),
917 field.NewFieldConst(0xcb97dedecebee9ad),
918 field.NewFieldConst(0x4bd545218c59f58d),
919 field.NewFieldConst(0x77dc8d856c05a44a),
920 field.NewFieldConst(0x87948589e4f243fd),
921 field.NewFieldConst(0x7e5217af969952c2),
922 },
923 {
924 field.NewFieldConst(0xbc58987d06a84e4d),
925 field.NewFieldConst(0x0b5d420244c9cae3),
926 field.NewFieldConst(0xa3c4711b938c02c0),
927 field.NewFieldConst(0x3aace640a3e03990),
928 field.NewFieldConst(0x865a0f3249aacd8a),
929 field.NewFieldConst(0x8d00b2a7dbed06c7),
930 field.NewFieldConst(0x6eacb905beb7e2f8),
931 field.NewFieldConst(0x045322b216ec3ec7),
932 field.NewFieldConst(0xeb9de00d594828e6),
933 field.NewFieldConst(0x088c5f20df9e5c26),
934 field.NewFieldConst(0xf555f4112b19781f),
935 },
936 {
937 field.NewFieldConst(0xa8cedbff1813d3a7),
938 field.NewFieldConst(0x50dcaee0fd27d164),
939 field.NewFieldConst(0xf1cb02417e23bd82),
940 field.NewFieldConst(0xfaf322786e2abe8b),
941 field.NewFieldConst(0x937a4315beb5d9b6),
942 field.NewFieldConst(0x1b18992921a11d85),
943 field.NewFieldConst(0x7d66c4368b3c497b),
944 field.NewFieldConst(0x0e7946317a6b4e99),
945 field.NewFieldConst(0xbe4430134182978b),
946 field.NewFieldConst(0x3771e82493ab262d),
947 field.NewFieldConst(0xa671690d8095ce82),
948 },
949 {
950 field.NewFieldConst(0xb035585f6e929d9d),
951 field.NewFieldConst(0xba1579c7e219b954),
952 field.NewFieldConst(0xcb201cf846db4ba3),
953 field.NewFieldConst(0x287bf9177372cf45),
954 field.NewFieldConst(0xa350e4f61147d0a6),
955 field.NewFieldConst(0xd5d0ecfb50bcff99),
956 field.NewFieldConst(0x2e166aa6c776ed21),
957 field.NewFieldConst(0xe1e66c991990e282),
958 field.NewFieldConst(0x662b329b01e7bb38),
959 field.NewFieldConst(0x8aa674b36144d9a9),
960 field.NewFieldConst(0xcbabf78f97f95e65),
961 },
962 {
963 field.NewFieldConst(0xeec24b15a06b53fe),
964 field.NewFieldConst(0xc8a7aa07c5633533),
965 field.NewFieldConst(0xefe9c6fa4311ad51),
966 field.NewFieldConst(0xb9173f13977109a1),
967 field.NewFieldConst(0x69ce43c9cc94aedc),
968 field.NewFieldConst(0xecf623c9cd118815),
969 field.NewFieldConst(0x28625def198c33c7),
970 field.NewFieldConst(0xccfc5f7de5c3636a),
971 field.NewFieldConst(0xf5e6c40f1621c299),
972 field.NewFieldConst(0xcec0e58c34cb64b1),
973 field.NewFieldConst(0xa868ea113387939f),
974 },
975 {
976 field.NewFieldConst(0xd8dddbdc5ce4ef45),
977 field.NewFieldConst(0xacfc51de8131458c),
978 field.NewFieldConst(0x146bb3c0fe499ac0),
979 field.NewFieldConst(0x9e65309f15943903),
980 field.NewFieldConst(0x80d0ad980773aa70),
981 field.NewFieldConst(0xf97817d4ddbf0607),
982 field.NewFieldConst(0xe4626620a75ba276),
983 field.NewFieldConst(0x0dfdc7fd6fc74f66),
984 field.NewFieldConst(0xf464864ad6f2bb93),
985 field.NewFieldConst(0x02d55e52a5d44414),
986 field.NewFieldConst(0xdd8de62487c40925),
987 },
988 {
989 field.NewFieldConst(0xc15acf44759545a3),
990 field.NewFieldConst(0xcbfdcf39869719d4),
991 field.NewFieldConst(0x33f62042e2f80225),
992 field.NewFieldConst(0x2599c5ead81d8fa3),
993 field.NewFieldConst(0x0b306cb6c1d7c8d0),
994 field.NewFieldConst(0x658c80d3df3729b1),
995 field.NewFieldConst(0xe8d1b2b21b41429c),
996 field.NewFieldConst(0xa1b67f09d4b3ccb8),
997 field.NewFieldConst(0x0e1adf8b84437180),
998 field.NewFieldConst(0x0d593a5e584af47b),
999 field.NewFieldConst(0xa023d94c56e151c7),
1000 },
1001 {
1002 field.NewFieldConst(0x49026cc3a4afc5a6),
1003 field.NewFieldConst(0xe06dff00ab25b91b),
1004 field.NewFieldConst(0x0ab38c561e8850ff),
1005 field.NewFieldConst(0x92c3c8275e105eeb),
1006 field.NewFieldConst(0xb65256e546889bd0),
1007 field.NewFieldConst(0x3c0468236ea142f6),
1008 field.NewFieldConst(0xee61766b889e18f2),
1009 field.NewFieldConst(0xa206f41b12c30415),
1010 field.NewFieldConst(0x02fe9d756c9f12d1),
1011 field.NewFieldConst(0xe9633210630cbf12),
1012 field.NewFieldConst(0x1ffea9fe85a0b0b1),
1013 },
1014 {
1015 field.NewFieldConst(0x81d1ae8cc50240f3),
1016 field.NewFieldConst(0xf4c77a079a4607d7),
1017 field.NewFieldConst(0xed446b2315e3efc1),
1018 field.NewFieldConst(0x0b0a6b70915178c3),
1019 field.NewFieldConst(0xb11ff3e089f15d9a),
1020 field.NewFieldConst(0x1d4dba0b7ae9cc18),
1021 field.NewFieldConst(0x65d74e2f43b48d05),
1022 field.NewFieldConst(0xa2df8c6b8ae0804a),
1023 field.NewFieldConst(0xa4e6f0a8c33348a6),
1024 field.NewFieldConst(0xc0a26efc7be5669b),
1025 field.NewFieldConst(0xa6b6582c547d0d60),
1026 },
1027 {
1028 field.NewFieldConst(0x84afc741f1c13213),
1029 field.NewFieldConst(0x2f8f43734fc906f3),
1030 field.NewFieldConst(0xde682d72da0a02d9),
1031 field.NewFieldConst(0x0bb005236adb9ef2),
1032 field.NewFieldConst(0x5bdf35c10a8b5624),
1033 field.NewFieldConst(0x0739a8a343950010),
1034 field.NewFieldConst(0x52f515f44785cfbc),
1035 field.NewFieldConst(0xcbaf4e5d82856c60),
1036 field.NewFieldConst(0xac9ea09074e3e150),
1037 field.NewFieldConst(0x8f0fa011a2035fb0),
1038 field.NewFieldConst(0x1a37905d8450904a),
1039 },
1040 {
1041 field.NewFieldConst(0x3abeb80def61cc85),
1042 field.NewFieldConst(0x9d19c9dd4eac4133),
1043 field.NewFieldConst(0x075a652d9641a985),
1044 field.NewFieldConst(0x9daf69ae1b67e667),
1045 field.NewFieldConst(0x364f71da77920a18),
1046 field.NewFieldConst(0x50bd769f745c95b1),
1047 field.NewFieldConst(0xf223d1180dbbf3fc),
1048 field.NewFieldConst(0x2f885e584e04aa99),
1049 field.NewFieldConst(0xb69a0fa70aea684a),
1050 field.NewFieldConst(0x09584acaa6e062a0),
1051 field.NewFieldConst(0x0bc051640145b19b),
1052 },
1053}
1054
1055var FAST_PARTIAL_ROUND_INITIAL_MATRIX = [N_PARTIAL_ROUNDS][11]field.F{
1056 {
1057 field.NewFieldConst(0x80772dc2645b280b),
1058 field.NewFieldConst(0xdc927721da922cf8),
1059 field.NewFieldConst(0xc1978156516879ad),
1060 field.NewFieldConst(0x90e80c591f48b603),
1061 field.NewFieldConst(0x3a2432625475e3ae),
1062 field.NewFieldConst(0x00a2d4321cca94fe),
1063 field.NewFieldConst(0x77736f524010c932),
1064 field.NewFieldConst(0x904d3f2804a36c54),
1065 field.NewFieldConst(0xbf9b39e28a16f354),
1066 field.NewFieldConst(0x3a1ded54a6cd058b),
1067 field.NewFieldConst(0x42392870da5737cf),
1068 },
1069 {
1070 field.NewFieldConst(0xe796d293a47a64cb),
1071 field.NewFieldConst(0xb124c33152a2421a),
1072 field.NewFieldConst(0x0ee5dc0ce131268a),
1073 field.NewFieldConst(0xa9032a52f930fae6),
1074 field.NewFieldConst(0x7e33ca8c814280de),
1075 field.NewFieldConst(0xad11180f69a8c29e),
1076 field.NewFieldConst(0xc75ac6d5b5a10ff3),
1077 field.NewFieldConst(0xf0674a8dc5a387ec),
1078 field.NewFieldConst(0xb36d43120eaa5e2b),
1079 field.NewFieldConst(0x6f232aab4b533a25),
1080 field.NewFieldConst(0x3a1ded54a6cd058b),
1081 },
1082 {
1083 field.NewFieldConst(0xdcedab70f40718ba),
1084 field.NewFieldConst(0x14a4a64da0b2668f),
1085 field.NewFieldConst(0x4715b8e5ab34653b),
1086 field.NewFieldConst(0x1e8916a99c93a88e),
1087 field.NewFieldConst(0xbba4b5d86b9a3b2c),
1088 field.NewFieldConst(0xe76649f9bd5d5c2e),
1089 field.NewFieldConst(0xaf8e2518a1ece54d),
1090 field.NewFieldConst(0xdcda1344cdca873f),
1091 field.NewFieldConst(0xcd080204256088e5),
1092 field.NewFieldConst(0xb36d43120eaa5e2b),
1093 field.NewFieldConst(0xbf9b39e28a16f354),
1094 },
1095 {
1096 field.NewFieldConst(0xf4a437f2888ae909),
1097 field.NewFieldConst(0xc537d44dc2875403),
1098 field.NewFieldConst(0x7f68007619fd8ba9),
1099 field.NewFieldConst(0xa4911db6a32612da),
1100 field.NewFieldConst(0x2f7e9aade3fdaec1),
1101 field.NewFieldConst(0xe7ffd578da4ea43d),
1102 field.NewFieldConst(0x43a608e7afa6b5c2),
1103 field.NewFieldConst(0xca46546aa99e1575),
1104 field.NewFieldConst(0xdcda1344cdca873f),
1105 field.NewFieldConst(0xf0674a8dc5a387ec),
1106 field.NewFieldConst(0x904d3f2804a36c54),
1107 },
1108 {
1109 field.NewFieldConst(0xf97abba0dffb6c50),
1110 field.NewFieldConst(0x5e40f0c9bb82aab5),
1111 field.NewFieldConst(0x5996a80497e24a6b),
1112 field.NewFieldConst(0x07084430a7307c9a),
1113 field.NewFieldConst(0xad2f570a5b8545aa),
1114 field.NewFieldConst(0xab7f81fef4274770),
1115 field.NewFieldConst(0xcb81f535cf98c9e9),
1116 field.NewFieldConst(0x43a608e7afa6b5c2),
1117 field.NewFieldConst(0xaf8e2518a1ece54d),
1118 field.NewFieldConst(0xc75ac6d5b5a10ff3),
1119 field.NewFieldConst(0x77736f524010c932),
1120 },
1121 {
1122 field.NewFieldConst(0x7f8e41e0b0a6cdff),
1123 field.NewFieldConst(0x4b1ba8d40afca97d),
1124 field.NewFieldConst(0x623708f28fca70e8),
1125 field.NewFieldConst(0xbf150dc4914d380f),
1126 field.NewFieldConst(0xc26a083554767106),
1127 field.NewFieldConst(0x753b8b1126665c22),
1128 field.NewFieldConst(0xab7f81fef4274770),
1129 field.NewFieldConst(0xe7ffd578da4ea43d),
1130 field.NewFieldConst(0xe76649f9bd5d5c2e),
1131 field.NewFieldConst(0xad11180f69a8c29e),
1132 field.NewFieldConst(0x00a2d4321cca94fe),
1133 },
1134 {
1135 field.NewFieldConst(0x726af914971c1374),
1136 field.NewFieldConst(0x1d7f8a2cce1a9d00),
1137 field.NewFieldConst(0x18737784700c75cd),
1138 field.NewFieldConst(0x7fb45d605dd82838),
1139 field.NewFieldConst(0x862361aeab0f9b6e),
1140 field.NewFieldConst(0xc26a083554767106),
1141 field.NewFieldConst(0xad2f570a5b8545aa),
1142 field.NewFieldConst(0x2f7e9aade3fdaec1),
1143 field.NewFieldConst(0xbba4b5d86b9a3b2c),
1144 field.NewFieldConst(0x7e33ca8c814280de),
1145 field.NewFieldConst(0x3a2432625475e3ae),
1146 },
1147 {
1148 field.NewFieldConst(0x64dd936da878404d),
1149 field.NewFieldConst(0x4db9a2ead2bd7262),
1150 field.NewFieldConst(0xbe2e19f6d07f1a83),
1151 field.NewFieldConst(0x02290fe23c20351a),
1152 field.NewFieldConst(0x7fb45d605dd82838),
1153 field.NewFieldConst(0xbf150dc4914d380f),
1154 field.NewFieldConst(0x07084430a7307c9a),
1155 field.NewFieldConst(0xa4911db6a32612da),
1156 field.NewFieldConst(0x1e8916a99c93a88e),
1157 field.NewFieldConst(0xa9032a52f930fae6),
1158 field.NewFieldConst(0x90e80c591f48b603),
1159 },
1160 {
1161 field.NewFieldConst(0x85418a9fef8a9890),
1162 field.NewFieldConst(0xd8a2eb7ef5e707ad),
1163 field.NewFieldConst(0xbfe85ababed2d882),
1164 field.NewFieldConst(0xbe2e19f6d07f1a83),
1165 field.NewFieldConst(0x18737784700c75cd),
1166 field.NewFieldConst(0x623708f28fca70e8),
1167 field.NewFieldConst(0x5996a80497e24a6b),
1168 field.NewFieldConst(0x7f68007619fd8ba9),
1169 field.NewFieldConst(0x4715b8e5ab34653b),
1170 field.NewFieldConst(0x0ee5dc0ce131268a),
1171 field.NewFieldConst(0xc1978156516879ad),
1172 },
1173 {
1174 field.NewFieldConst(0x156048ee7a738154),
1175 field.NewFieldConst(0x91f7562377e81df5),
1176 field.NewFieldConst(0xd8a2eb7ef5e707ad),
1177 field.NewFieldConst(0x4db9a2ead2bd7262),
1178 field.NewFieldConst(0x1d7f8a2cce1a9d00),
1179 field.NewFieldConst(0x4b1ba8d40afca97d),
1180 field.NewFieldConst(0x5e40f0c9bb82aab5),
1181 field.NewFieldConst(0xc537d44dc2875403),
1182 field.NewFieldConst(0x14a4a64da0b2668f),
1183 field.NewFieldConst(0xb124c33152a2421a),
1184 field.NewFieldConst(0xdc927721da922cf8),
1185 },
1186 {
1187 field.NewFieldConst(0xd841e8ef9dde8ba0),
1188 field.NewFieldConst(0x156048ee7a738154),
1189 field.NewFieldConst(0x85418a9fef8a9890),
1190 field.NewFieldConst(0x64dd936da878404d),
1191 field.NewFieldConst(0x726af914971c1374),
1192 field.NewFieldConst(0x7f8e41e0b0a6cdff),
1193 field.NewFieldConst(0xf97abba0dffb6c50),
1194 field.NewFieldConst(0xf4a437f2888ae909),
1195 field.NewFieldConst(0xdcedab70f40718ba),
1196 field.NewFieldConst(0xe796d293a47a64cb),
1197 field.NewFieldConst(0x80772dc2645b280b),
1198 },
1199}
1200
1201var FAST_PARTIAL_ROUND_W_HATS_VARS = [N_PARTIAL_ROUNDS][11]frontend.Variable{
1202 {
1203 frontend.Variable(uint64(0x3d999c961b7c63b0)),
1204 frontend.Variable(uint64(0x814e82efcd172529)),
1205 frontend.Variable(uint64(0x2421e5d236704588)),
1206 frontend.Variable(uint64(0x887af7d4dd482328)),
1207 frontend.Variable(uint64(0xa5e9c291f6119b27)),
1208 frontend.Variable(uint64(0xbdc52b2676a4b4aa)),
1209 frontend.Variable(uint64(0x64832009d29bcf57)),
1210 frontend.Variable(uint64(0x09c4155174a552cc)),
1211 frontend.Variable(uint64(0x463f9ee03d290810)),
1212 frontend.Variable(uint64(0xc810936e64982542)),
1213 frontend.Variable(uint64(0x043b1c289f7bc3ac)),
1214 },
1215 {
1216 frontend.Variable(uint64(0x673655aae8be5a8b)),
1217 frontend.Variable(uint64(0xd510fe714f39fa10)),
1218 frontend.Variable(uint64(0x2c68a099b51c9e73)),
1219 frontend.Variable(uint64(0xa667bfa9aa96999d)),
1220 frontend.Variable(uint64(0x4d67e72f063e2108)),
1221 frontend.Variable(uint64(0xf84dde3e6acda179)),
1222 frontend.Variable(uint64(0x40f9cc8c08f80981)),
1223 frontend.Variable(uint64(0x5ead032050097142)),
1224 frontend.Variable(uint64(0x6591b02092d671bb)),
1225 frontend.Variable(uint64(0x00e18c71963dd1b7)),
1226 frontend.Variable(uint64(0x8a21bcd24a14218a)),
1227 },
1228 {
1229 frontend.Variable(uint64(0x202800f4addbdc87)),
1230 frontend.Variable(uint64(0xe4b5bdb1cc3504ff)),
1231 frontend.Variable(uint64(0xbe32b32a825596e7)),
1232 frontend.Variable(uint64(0x8e0f68c5dc223b9a)),
1233 frontend.Variable(uint64(0x58022d9e1c256ce3)),
1234 frontend.Variable(uint64(0x584d29227aa073ac)),
1235 frontend.Variable(uint64(0x8b9352ad04bef9e7)),
1236 frontend.Variable(uint64(0xaead42a3f445ecbf)),
1237 frontend.Variable(uint64(0x3c667a1d833a3cca)),
1238 frontend.Variable(uint64(0xda6f61838efa1ffe)),
1239 frontend.Variable(uint64(0xe8f749470bd7c446)),
1240 },
1241 {
1242 frontend.Variable(uint64(0xc5b85bab9e5b3869)),
1243 frontend.Variable(uint64(0x45245258aec51cf7)),
1244 frontend.Variable(uint64(0x16e6b8e68b931830)),
1245 frontend.Variable(uint64(0xe2ae0f051418112c)),
1246 frontend.Variable(uint64(0x0470e26a0093a65b)),
1247 frontend.Variable(uint64(0x6bef71973a8146ed)),
1248 frontend.Variable(uint64(0x119265be51812daf)),
1249 frontend.Variable(uint64(0xb0be7356254bea2e)),
1250 frontend.Variable(uint64(0x8584defff7589bd7)),
1251 frontend.Variable(uint64(0x3c5fe4aeb1fb52ba)),
1252 frontend.Variable(uint64(0x9e7cd88acf543a5e)),
1253 },
1254 {
1255 frontend.Variable(uint64(0x179be4bba87f0a8c)),
1256 frontend.Variable(uint64(0xacf63d95d8887355)),
1257 frontend.Variable(uint64(0x6696670196b0074f)),
1258 frontend.Variable(uint64(0xd99ddf1fe75085f9)),
1259 frontend.Variable(uint64(0xc2597881fef0283b)),
1260 frontend.Variable(uint64(0xcf48395ee6c54f14)),
1261 frontend.Variable(uint64(0x15226a8e4cd8d3b6)),
1262 frontend.Variable(uint64(0xc053297389af5d3b)),
1263 frontend.Variable(uint64(0x2c08893f0d1580e2)),
1264 frontend.Variable(uint64(0x0ed3cbcff6fcc5ba)),
1265 frontend.Variable(uint64(0xc82f510ecf81f6d0)),
1266 },
1267 {
1268 frontend.Variable(uint64(0x94b06183acb715cc)),
1269 frontend.Variable(uint64(0x500392ed0d431137)),
1270 frontend.Variable(uint64(0x861cc95ad5c86323)),
1271 frontend.Variable(uint64(0x05830a443f86c4ac)),
1272 frontend.Variable(uint64(0x3b68225874a20a7c)),
1273 frontend.Variable(uint64(0x10b3309838e236fb)),
1274 frontend.Variable(uint64(0x9b77fc8bcd559e2c)),
1275 frontend.Variable(uint64(0xbdecf5e0cb9cb213)),
1276 frontend.Variable(uint64(0x30276f1221ace5fa)),
1277 frontend.Variable(uint64(0x7935dd342764a144)),
1278 frontend.Variable(uint64(0xeac6db520bb03708)),
1279 },
1280 {
1281 frontend.Variable(uint64(0x7186a80551025f8f)),
1282 frontend.Variable(uint64(0x622247557e9b5371)),
1283 frontend.Variable(uint64(0xc4cbe326d1ad9742)),
1284 frontend.Variable(uint64(0x55f1523ac6a23ea2)),
1285 frontend.Variable(uint64(0xa13dfe77a3d52f53)),
1286 frontend.Variable(uint64(0xe30750b6301c0452)),
1287 frontend.Variable(uint64(0x08bd488070a3a32b)),
1288 frontend.Variable(uint64(0xcd800caef5b72ae3)),
1289 frontend.Variable(uint64(0x83329c90f04233ce)),
1290 frontend.Variable(uint64(0xb5b99e6664a0a3ee)),
1291 frontend.Variable(uint64(0x6b0731849e200a7f)),
1292 },
1293 {
1294 frontend.Variable(uint64(0xec3fabc192b01799)),
1295 frontend.Variable(uint64(0x382b38cee8ee5375)),
1296 frontend.Variable(uint64(0x3bfb6c3f0e616572)),
1297 frontend.Variable(uint64(0x514abd0cf6c7bc86)),
1298 frontend.Variable(uint64(0x47521b1361dcc546)),
1299 frontend.Variable(uint64(0x178093843f863d14)),
1300 frontend.Variable(uint64(0xad1003c5d28918e7)),
1301 frontend.Variable(uint64(0x738450e42495bc81)),
1302 frontend.Variable(uint64(0xaf947c59af5e4047)),
1303 frontend.Variable(uint64(0x4653fb0685084ef2)),
1304 frontend.Variable(uint64(0x057fde2062ae35bf)),
1305 },
1306 {
1307 frontend.Variable(uint64(0xe376678d843ce55e)),
1308 frontend.Variable(uint64(0x66f3860d7514e7fc)),
1309 frontend.Variable(uint64(0x7817f3dfff8b4ffa)),
1310 frontend.Variable(uint64(0x3929624a9def725b)),
1311 frontend.Variable(uint64(0x0126ca37f215a80a)),
1312 frontend.Variable(uint64(0xfce2f5d02762a303)),
1313 frontend.Variable(uint64(0x1bc927375febbad7)),
1314 frontend.Variable(uint64(0x85b481e5243f60bf)),
1315 frontend.Variable(uint64(0x2d3c5f42a39c91a0)),
1316 frontend.Variable(uint64(0x0811719919351ae8)),
1317 frontend.Variable(uint64(0xf669de0add993131)),
1318 },
1319 {
1320 frontend.Variable(uint64(0x7de38bae084da92d)),
1321 frontend.Variable(uint64(0x5b848442237e8a9b)),
1322 frontend.Variable(uint64(0xf6c705da84d57310)),
1323 frontend.Variable(uint64(0x31e6a4bdb6a49017)),
1324 frontend.Variable(uint64(0x889489706e5c5c0f)),
1325 frontend.Variable(uint64(0x0e4a205459692a1b)),
1326 frontend.Variable(uint64(0xbac3fa75ee26f299)),
1327 frontend.Variable(uint64(0x5f5894f4057d755e)),
1328 frontend.Variable(uint64(0xb0dc3ecd724bb076)),
1329 frontend.Variable(uint64(0x5e34d8554a6452ba)),
1330 frontend.Variable(uint64(0x04f78fd8c1fdcc5f)),
1331 },
1332 {
1333 frontend.Variable(uint64(0x4dd19c38779512ea)),
1334 frontend.Variable(uint64(0xdb79ba02704620e9)),
1335 frontend.Variable(uint64(0x92a29a3675a5d2be)),
1336 frontend.Variable(uint64(0xd5177029fe495166)),
1337 frontend.Variable(uint64(0xd32b3298a13330c1)),
1338 frontend.Variable(uint64(0x251c4a3eb2c5f8fd)),
1339 frontend.Variable(uint64(0xe1c48b26e0d98825)),
1340 frontend.Variable(uint64(0x3301d3362a4ffccb)),
1341 frontend.Variable(uint64(0x09bb6c88de8cd178)),
1342 frontend.Variable(uint64(0xdc05b676564f538a)),
1343 frontend.Variable(uint64(0x60192d883e473fee)),
1344 },
1345 {
1346 frontend.Variable(uint64(0x16b9774801ac44a0)),
1347 frontend.Variable(uint64(0x3cb8411e786d3c8e)),
1348 frontend.Variable(uint64(0xa86e9cf505072491)),
1349 frontend.Variable(uint64(0x0178928152e109ae)),
1350 frontend.Variable(uint64(0x5317b905a6e1ab7b)),
1351 frontend.Variable(uint64(0xda20b3be7f53d59f)),
1352 frontend.Variable(uint64(0xcb97dedecebee9ad)),
1353 frontend.Variable(uint64(0x4bd545218c59f58d)),
1354 frontend.Variable(uint64(0x77dc8d856c05a44a)),
1355 frontend.Variable(uint64(0x87948589e4f243fd)),
1356 frontend.Variable(uint64(0x7e5217af969952c2)),
1357 },
1358 {
1359 frontend.Variable(uint64(0xbc58987d06a84e4d)),
1360 frontend.Variable(uint64(0x0b5d420244c9cae3)),
1361 frontend.Variable(uint64(0xa3c4711b938c02c0)),
1362 frontend.Variable(uint64(0x3aace640a3e03990)),
1363 frontend.Variable(uint64(0x865a0f3249aacd8a)),
1364 frontend.Variable(uint64(0x8d00b2a7dbed06c7)),
1365 frontend.Variable(uint64(0x6eacb905beb7e2f8)),
1366 frontend.Variable(uint64(0x045322b216ec3ec7)),
1367 frontend.Variable(uint64(0xeb9de00d594828e6)),
1368 frontend.Variable(uint64(0x088c5f20df9e5c26)),
1369 frontend.Variable(uint64(0xf555f4112b19781f)),
1370 },
1371 {
1372 frontend.Variable(uint64(0xa8cedbff1813d3a7)),
1373 frontend.Variable(uint64(0x50dcaee0fd27d164)),
1374 frontend.Variable(uint64(0xf1cb02417e23bd82)),
1375 frontend.Variable(uint64(0xfaf322786e2abe8b)),
1376 frontend.Variable(uint64(0x937a4315beb5d9b6)),
1377 frontend.Variable(uint64(0x1b18992921a11d85)),
1378 frontend.Variable(uint64(0x7d66c4368b3c497b)),
1379 frontend.Variable(uint64(0x0e7946317a6b4e99)),
1380 frontend.Variable(uint64(0xbe4430134182978b)),
1381 frontend.Variable(uint64(0x3771e82493ab262d)),
1382 frontend.Variable(uint64(0xa671690d8095ce82)),
1383 },
1384 {
1385 frontend.Variable(uint64(0xb035585f6e929d9d)),
1386 frontend.Variable(uint64(0xba1579c7e219b954)),
1387 frontend.Variable(uint64(0xcb201cf846db4ba3)),
1388 frontend.Variable(uint64(0x287bf9177372cf45)),
1389 frontend.Variable(uint64(0xa350e4f61147d0a6)),
1390 frontend.Variable(uint64(0xd5d0ecfb50bcff99)),
1391 frontend.Variable(uint64(0x2e166aa6c776ed21)),
1392 frontend.Variable(uint64(0xe1e66c991990e282)),
1393 frontend.Variable(uint64(0x662b329b01e7bb38)),
1394 frontend.Variable(uint64(0x8aa674b36144d9a9)),
1395 frontend.Variable(uint64(0xcbabf78f97f95e65)),
1396 },
1397 {
1398 frontend.Variable(uint64(0xeec24b15a06b53fe)),
1399 frontend.Variable(uint64(0xc8a7aa07c5633533)),
1400 frontend.Variable(uint64(0xefe9c6fa4311ad51)),
1401 frontend.Variable(uint64(0xb9173f13977109a1)),
1402 frontend.Variable(uint64(0x69ce43c9cc94aedc)),
1403 frontend.Variable(uint64(0xecf623c9cd118815)),
1404 frontend.Variable(uint64(0x28625def198c33c7)),
1405 frontend.Variable(uint64(0xccfc5f7de5c3636a)),
1406 frontend.Variable(uint64(0xf5e6c40f1621c299)),
1407 frontend.Variable(uint64(0xcec0e58c34cb64b1)),
1408 frontend.Variable(uint64(0xa868ea113387939f)),
1409 },
1410 {
1411 frontend.Variable(uint64(0xd8dddbdc5ce4ef45)),
1412 frontend.Variable(uint64(0xacfc51de8131458c)),
1413 frontend.Variable(uint64(0x146bb3c0fe499ac0)),
1414 frontend.Variable(uint64(0x9e65309f15943903)),
1415 frontend.Variable(uint64(0x80d0ad980773aa70)),
1416 frontend.Variable(uint64(0xf97817d4ddbf0607)),
1417 frontend.Variable(uint64(0xe4626620a75ba276)),
1418 frontend.Variable(uint64(0x0dfdc7fd6fc74f66)),
1419 frontend.Variable(uint64(0xf464864ad6f2bb93)),
1420 frontend.Variable(uint64(0x02d55e52a5d44414)),
1421 frontend.Variable(uint64(0xdd8de62487c40925)),
1422 },
1423 {
1424 frontend.Variable(uint64(0xc15acf44759545a3)),
1425 frontend.Variable(uint64(0xcbfdcf39869719d4)),
1426 frontend.Variable(uint64(0x33f62042e2f80225)),
1427 frontend.Variable(uint64(0x2599c5ead81d8fa3)),
1428 frontend.Variable(uint64(0x0b306cb6c1d7c8d0)),
1429 frontend.Variable(uint64(0x658c80d3df3729b1)),
1430 frontend.Variable(uint64(0xe8d1b2b21b41429c)),
1431 frontend.Variable(uint64(0xa1b67f09d4b3ccb8)),
1432 frontend.Variable(uint64(0x0e1adf8b84437180)),
1433 frontend.Variable(uint64(0x0d593a5e584af47b)),
1434 frontend.Variable(uint64(0xa023d94c56e151c7)),
1435 },
1436 {
1437 frontend.Variable(uint64(0x49026cc3a4afc5a6)),
1438 frontend.Variable(uint64(0xe06dff00ab25b91b)),
1439 frontend.Variable(uint64(0x0ab38c561e8850ff)),
1440 frontend.Variable(uint64(0x92c3c8275e105eeb)),
1441 frontend.Variable(uint64(0xb65256e546889bd0)),
1442 frontend.Variable(uint64(0x3c0468236ea142f6)),
1443 frontend.Variable(uint64(0xee61766b889e18f2)),
1444 frontend.Variable(uint64(0xa206f41b12c30415)),
1445 frontend.Variable(uint64(0x02fe9d756c9f12d1)),
1446 frontend.Variable(uint64(0xe9633210630cbf12)),
1447 frontend.Variable(uint64(0x1ffea9fe85a0b0b1)),
1448 },
1449 {
1450 frontend.Variable(uint64(0x81d1ae8cc50240f3)),
1451 frontend.Variable(uint64(0xf4c77a079a4607d7)),
1452 frontend.Variable(uint64(0xed446b2315e3efc1)),
1453 frontend.Variable(uint64(0x0b0a6b70915178c3)),
1454 frontend.Variable(uint64(0xb11ff3e089f15d9a)),
1455 frontend.Variable(uint64(0x1d4dba0b7ae9cc18)),
1456 frontend.Variable(uint64(0x65d74e2f43b48d05)),
1457 frontend.Variable(uint64(0xa2df8c6b8ae0804a)),
1458 frontend.Variable(uint64(0xa4e6f0a8c33348a6)),
1459 frontend.Variable(uint64(0xc0a26efc7be5669b)),
1460 frontend.Variable(uint64(0xa6b6582c547d0d60)),
1461 },
1462 {
1463 frontend.Variable(uint64(0x84afc741f1c13213)),
1464 frontend.Variable(uint64(0x2f8f43734fc906f3)),
1465 frontend.Variable(uint64(0xde682d72da0a02d9)),
1466 frontend.Variable(uint64(0x0bb005236adb9ef2)),
1467 frontend.Variable(uint64(0x5bdf35c10a8b5624)),
1468 frontend.Variable(uint64(0x0739a8a343950010)),
1469 frontend.Variable(uint64(0x52f515f44785cfbc)),
1470 frontend.Variable(uint64(0xcbaf4e5d82856c60)),
1471 frontend.Variable(uint64(0xac9ea09074e3e150)),
1472 frontend.Variable(uint64(0x8f0fa011a2035fb0)),
1473 frontend.Variable(uint64(0x1a37905d8450904a)),
1474 },
1475 {
1476 frontend.Variable(uint64(0x3abeb80def61cc85)),
1477 frontend.Variable(uint64(0x9d19c9dd4eac4133)),
1478 frontend.Variable(uint64(0x075a652d9641a985)),
1479 frontend.Variable(uint64(0x9daf69ae1b67e667)),
1480 frontend.Variable(uint64(0x364f71da77920a18)),
1481 frontend.Variable(uint64(0x50bd769f745c95b1)),
1482 frontend.Variable(uint64(0xf223d1180dbbf3fc)),
1483 frontend.Variable(uint64(0x2f885e584e04aa99)),
1484 frontend.Variable(uint64(0xb69a0fa70aea684a)),
1485 frontend.Variable(uint64(0x09584acaa6e062a0)),
1486 frontend.Variable(uint64(0x0bc051640145b19b)),
1487 },
1488}