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