arnaucube
arnaucube/gnark-plonky2-verifierPublic Self-hosted repository
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}