zkhash/poseidon2/
poseidon2_instance_pallas.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
use super::poseidon2_params::Poseidon2Params;
use crate::fields::pallas::FpPallas;
use crate::fields::utils::from_hex;

use lazy_static::lazy_static;
use std::sync::Arc;

type Scalar = FpPallas;

lazy_static! {
    pub static ref MAT_DIAG3_M_1: Vec<Scalar> = vec![
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000002"),
    ];

    pub static ref MAT_INTERNAL3: Vec<Vec<Scalar>> = vec![
    vec![from_hex("0x0000000000000000000000000000000000000000000000000000000000000002"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    ],
    vec![from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000002"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    ],
    vec![from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000003"),
    ],
    ];
    
    pub static ref RC3: Vec<Vec<Scalar>> = vec![
    vec![from_hex("0x360d7470611e473d353f628f76d110f34e71162f31003b7057538c2596426303"),
    from_hex("0x2bab94d7ae222d135dc3c6c5febfaa314908ac2f12ebe06fbdb74213bf63188b"),
    from_hex("0x150c93fef652fb1c2bf03e1a29aa871fef77e7d736766c5d0939d92753cc5dc8"),
    ],
    vec![from_hex("0x3270661e68928b3a955d55db56dc57c103cc0a60141e894e14259dce537782b2"),
    from_hex("0x073f116f04122e25a0b7afe4e2057299b407c370f2b5a1ccce9fb9ffc345afb3"),
    from_hex("0x2a32ec5c4ee5b1837affd09c1f53f5fd55c9cd2061ae93ca8ebad76fc71554d8"),
    ],
    vec![from_hex("0x270326ee039df19e651e2cfc740628ca634d24fc6e2559f22d8ccbe292efeead"),
    from_hex("0x27c6642ac633bc66dc100fe7fcfa54918af895bce012f182a068fc37c182e274"),
    from_hex("0x1bdfd8b01401c70ad27f57396989129d710e1fb6ab976a459ca18682e26d7ff9"),
    ],
    vec![from_hex("0x162a14c62f9a89b814b9d6a9c84dd678f4f6fb3f9054d373c832d824261a35ea"),
    from_hex("0x2d193e0f76de586b2af6f79e3127feeaac0a1fc71e2cf0c0f79824667b5b6bec"),
    from_hex("0x044ca3cc4a85d73b81696ef1104e674f4feff82984990ff85d0bf58dc8a4aa94"),
    ],
    vec![from_hex("0x1cbaf2b371dac6a81d0453416d3e235cb8d9e2d4f314f46f6198785f0cd6b9af"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x1d5b2777692c205b0e6c49d061b6b5f4293c4ab038fdbbdc343e07610f3fede5"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x2e9bdbba3dd34bffaa30535bdd749a7e06a9adb0c1e6f962f60e971b8d73b04f"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x2de11886b18011ca8bd5bae36969299fde40fbe26d047b05035a13661f22418b"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x2e07de1780b8a70d0d5b4a3f1841dcd82ab9395c449be947bc998884ba96a721"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x0f69f1854d20ca0cbbdb63dbd52dad16250440a99d6b8af3825e4c2bb74925ca"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x2eb1b25417fe17670d135dc639fb09a46ce5113507f96de9816c059422dc705e"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x115cd0a0643cfb988c24cb44c3fab48aff36c661d26cc42db8b1bdf4953bd82c"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x26ca293f7b2c462d066d7378b999868bbb57ddf14e0f958ade801612311d04cd"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x17bf1b93c4c7e01a2a830aa162412cd90f160bf9f71e967ff5209d14b24820ca"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x35b41a7ac4f3c571a24f8456369c85dfe03c0354bd8cfd3805c86f2e7dc293c5"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x3b1480080523c439435927994849bea964e14d3beb2dddde72ac156af435d09e"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x2cc6810031dc1b0d4950856dc907d57508e286442a2d3eb2271618d874b14c6d"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x25bdbbeda1bde8c1059618e2afd2ef999e517aa93b78341d91f318c09f0cb566"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x392a4a8758e06ee8b95f33c25dde8ac02a5ed0a27b61926cc6313487073f7f7b"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x272a55878a08442b9aa6111f4de009485e6a6fd15db89365e7bbcef02eb5866c"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x2d5b308b0cf02cdfefa13c4e60e26239a6ebba011694dd129b925b3c5b21e0e2"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x16549fc6af2f3b72dd5d293d72e2e5f244dff42f18b46c56ef38c57c311673ac"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x1b10bb7a82afce39fa69c3a2ad52f76d76398265344203119b7126d9b46860df"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x0f1e7505ebd91d2fc79c2df7dc98a3bed1b36968ba0405c090d27f6a00b7dfc8"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x2f313faf0d3f6187537a7497a3b43f46797fd6e3f18eb1caff457756b819bb20"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x3a5cbb6de450b481fa3ca61c0ed15bc55cad11ebf0f7ceb8f0bc3e732ecb26f6"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x3dab54bc9bef688dd92086e253b439d651baa6e20f892b62865527cbca915982"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x06dbfb42b979884de280d31670123f744c24b33b410fefd4368045acf2b71ae3"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x068d6b4608aae810c6f039ea1973a63eb8d2de72e3d2c9eca7fc32d22f18b9d3"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x366ebfafa3ad381c0ee258c9b8fdfccdb868a7d7e1f1f69a2b5dfcc5572555df"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x39678f65512f1ee404db3024f41d3f567ef66d89d044d022e6bc229e95bc76b1"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x21668f016a8063c0d58b7750a3bc2fe1cf82c25f99dc01a4e534c88fe53d85fe"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x39d00994a8a5046a1bc749363e98a768e34dea56439fe1954bef429bc5331608"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x1f9dbdc3f84312636b203bbe12fb3425b163d41605d39f99770c956f60d881b3"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x027745a9cddfad95e5f17b9e0ee0cab6be0bc829fe5e66c69794a9f7c336eab2"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x1cec0803c504b635788d695c61e932122fa43fe20a45c78d52025657abd8aee0"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x123523d75e9fabc172077448ef87cc6eed5082c8dbf31365d3872a9559a03a73"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x1723d1452c9cf02df419b848e5d694bf27feba35975ee7e5001779e3a1d357f4"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x1739d180a16010bdfcc0573d7e61369421c3f776f572836d9dab1ee4dcf96622"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x2d4e6354da9cc554acce32391794b627fafa96fbeb0ab89370290452042d048d"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x153ee6142e535e334a869553c9d007f88f3bd43f99260621670bcf6f8b485dcd"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x0c45bfd3a69aaa65635ef7e7a430b486968ad4424af83700d258d2e2b7782172"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x0adfd53b256a6957f2d56aec831446006897ac0a8ffa5ff10e5633d251f73307"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x315d2ac8ebdbac3c8cd1726b7cbab8ee3f87b28f1c1be4bdac9d36a8b7516d63"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x1b8472712d02eef4cfaec23d2b16883fc9bb60d1f6959879299ce44ea423d8e1"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x3c1cd07efda6ff24bd0b70fa2255eb6f367d2c54e36928c9c4a5404198adf70c"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x136052d26bb3d373687f4e51b2e1dcd34a16073f738f7e0cbbe523aef9ab107a"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x16c96beef6a0a848c1bdd859a1232a1d7b3cfbb873032681676c36c24ef967dd"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x284b38c57ff65c262ab7fed8f499a9fb012387bab4f1662d067eec7f2d6340c4"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x0c5993d175e81f6639e242198897d17cfc06772c1c0411a6af1dff204c922f86"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x03bf7a3f7bd043dafcda655d1ba9c8f9f24887ad48e17759bbf53f67b1f87b15"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x3188fe4ee9f9fafbb0cf999567f00e734c8f9cbe69f0e8279b5cd09e36d8be62"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x171f528ccf6584375a39768c480d61e13af5bf77c1c42652afea99a2ec6c595a"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x12f4175c4ab45afc196e41859b35ef88812c3286ee7000675a0563b9b8e9f1d5"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x3a509e155cb7ebfd8f8fdcf800a9ac697e23e1aabe96cfab0e74d4d369118b79"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x10f2a685df4a27c81a89920e2504c3b3984bc8f2e4c1b69e98712c65678cfd30"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x09e5f49790c8a0e21d8d93d54ab91a0e54573c9333c56321e8a16728cc9d4918"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x352d69bed80ee3e52bf35705d9f84a3442d17ed6ee0fab7e609a740347cf5fea"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x058ee73ba9f3f293491562faf2b190d3c634debd281b76a63a758af6fa84e0e8"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x232f99cc911eddd9cd0f1fc55b1a3250092cb92119bc76be621a132510a43904"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x201beed7b8f3ab8186c22c6c5d4869f0f9efd52ca6bc2961c3b97c1e301bc213"),
    from_hex("0x1376dce6580030c6a1c9291d58602f5129388842744a1210bf6b3431ba94e9bc"),
    from_hex("0x1793199e6fd6ba342b3356c38238f761072ba8b02d92e7226454843c5486d7b3"),
    ],
    vec![from_hex("0x22de7a7488dcc7359fee9c20c87a67df3c66160dc62aacac06a3f1d3b433311b"),
    from_hex("0x3514d5e9066bb160df8ff37fe2d8edf8dbe0b77fae77e1d030d6e3fd516b47a8"),
    from_hex("0x30cd3006931ad636f919a00dabbf5fa5ff453d6f900f144a19377427137a81c7"),
    ],
    vec![from_hex("0x253d1a5c5293412741f81a5cf613c8df8f9e4b2cae2ebb515b6a74220692b506"),
    from_hex("0x035b461c02d79d19a35e9613e7f5fe92851b3a59c990fafc73f666cb86a48e8e"),
    from_hex("0x23a9928079d175bd5bc00eedd56b93e092b1283c2d5fccde7cfbf86a3aa04780"),
    ],
    vec![from_hex("0x13a7785ae134ea92f1594a0763c611abb5e2ea3436eef957f1e4ccd73fa00a82"),
    from_hex("0x39fce308b7d43c574962ae3c0da17e313889c57863446d88bbf04f5252de4279"),
    from_hex("0x1aae18833f8e1d3ac0fdf01662f60d22bef00a08c6ed38d23b57e34489b53fad"),
    ],
    ];

    pub static ref MAT_DIAG4_M_1: Vec<Scalar> = vec![
    from_hex("0x0767b051e5b6358fd12f217aae53bb9dac9a72a9f6a16fdde8f36e715bb27f51"),
    from_hex("0x2a59f16a37626bdd5536c5546f046b608c777734990103996730611728cfef21"),
    from_hex("0x2388405f3a1e87a1fd3183bb12a89c71b37555b4db6a4306e1f05322217ee15c"),
    from_hex("0x0e7c7e19ad92352c35e4d302828f64de68750dac64cbd944f0eba6c0ed003757"),
    ];

    pub static ref MAT_INTERNAL4: Vec<Vec<Scalar>> = vec![
    vec![from_hex("0x0767b051e5b6358fd12f217aae53bb9dac9a72a9f6a16fdde8f36e715bb27f52"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    ],
    vec![from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x2a59f16a37626bdd5536c5546f046b608c777734990103996730611728cfef22"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    ],
    vec![from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x2388405f3a1e87a1fd3183bb12a89c71b37555b4db6a4306e1f05322217ee15d"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    ],
    vec![from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0e7c7e19ad92352c35e4d302828f64de68750dac64cbd944f0eba6c0ed003758"),
    ],
    ];

    pub static ref RC4: Vec<Vec<Scalar>> = vec![
    vec![from_hex("0x1a3bdcbfc11dabfb6ed0dd5f5a9b38191488bce9eecd811c10f9378b32db8c61"),
    from_hex("0x11ec284726dddcf3cbb2b81862c9cd95e9de81ce0317302e1ef432d59b913388"),
    from_hex("0x19e21d749905904f3e10cd57f7817c2564c06ec1b1e229def2129e79a7a77738"),
    from_hex("0x10d5808ab47295f7a950dc72f968398b9c67426a217811b9bd7e97f2a261992f"),
    ],
    vec![from_hex("0x25d334fbadcbfd26449c4ce1472f961f7d401a3ddf40a70af5c10ac9176d151b"),
    from_hex("0x3ef8a46ec07ee551ecba60b1601cbf6e3664418331a254729b7c6a5c3d13a6c6"),
    from_hex("0x30d373e298c09d2a6efe661d708fcfa6163dc61ae1eb103d98cf88c63e482125"),
    from_hex("0x18769839949b2dda9ef3f111acd86e10250ffad4c4c4263ea970e4f4726cfad7"),
    ],
    vec![from_hex("0x2c941286d1534ff3be3a66f9dd59833e65b1fa67db23511f7b4b2ae3b3d66bc9"),
    from_hex("0x08b6d9c90b4139ea70497ac8a22b30fb9b76b8ceabf70449d282b57d98c60ddd"),
    from_hex("0x3a8a2dd917222a71ca678b5c0a803a43c62de2f2c9fe37931b5b2a017fe64638"),
    from_hex("0x2dc17308abd0e731b3cffafd296cc3e6e2403dc563baa1c797a68da9754dd207"),
    ],
    vec![from_hex("0x1d04e542f54431c23f9d1812392a0c87203144e343c459d3ee640b04e203be6c"),
    from_hex("0x15a26c92fc51dd285a61c2c1379f6731377aeb29c62696aa6a9c109c2991f200"),
    from_hex("0x1db900a5e9b2685be9f8f02498123ac71bd7bfa40b6853ab527a8d2512b9aefb"),
    from_hex("0x1595447e5b94a64c8b3681f57068e19ee3696440ef785e35123886311f48cd1e"),
    ],
    vec![from_hex("0x2b0eabc08eef3abae3304cbb2efc67e7b437bd96b6f7d175daed6da5a2144e8b"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x3a345ee8e715f3226e52838652219202efb4e6d4f057f904d69d3fbd781e39f5"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x3051663ef7de7674506f2c873409725363849564815b8bd291f00b9c60b4daf0"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x041a632a7bc167f67ca9c3825021a05b13f81f814ee101d37716e12efec3121f"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x0f3dba730b64dda2bc2eaa50ede0fcaa86a37c74c3a17be97a9d969fca21fb37"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x35cb6ce55352599332471ad8be46ddc0cf598e0e36b8a8fa5fae6f26277b318e"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x126258211a4bb2035121c7ca129eae719d4ddfefa99921a8befb7a160e0f845f"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x2ca5debb9de1c4bbfa0204543dd9757241611cd28b5eac2d7f37baa293fa2618"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x2ca75fb22881b238b6c96da6b908f922da8b54f909237051775c64fec8d5920c"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x02e8dfe9046d8b951532466bdf1b62571b85e551b34c8bbfb1ccd3216271b73d"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x0a3fad26c6318d471fa376fbaf02d341e41e687db6f3da88266de21c7157e940"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x131c9df7176eadb9af3a14f0f53a9b87196ef60bbb89b3630142ff8d9d69137b"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x2c7b7a87f31ebd2464be9f211d41719b453939d53ff7be07a2cc21741d48b467"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x118159eb07353fef60e9733077cc82f92a6e2bd361c88d8122e9a292217757e0"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x18cad22ae06bb0e8d043f7928477219e4d38ac544ce81c4c685267089e4c7003"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x0511149594758e789b440ce534b52b6c508ae1881669d1fa4a7e551ef84e4dc4"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x00fd035cc129e91eac66d841e2864989d1ff4853662166143535603bf9460621"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x2c167565114475412c76f0df1961eaca9deb17622c9fb6f5ac8a89a29f42df69"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x10cac3ff02125419ac84ff80295589d1124a1e65a94e8d9b63a411317c7f5728"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x1b86ee2e45fbcd59fa43edee6630dda5cb3b894eb4701eff5fd53967abad2666"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x0b941850091bd16875f408f183fb93d250c538e5ee1e8979e960b5b499b2f070"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x031f75d53bdd5ac603c252925148a74fa5f3bf5d9ffabe64c6e932be904204ec"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x191175ec337e64a48785a083559176168bcea3db2822630c48f1d497d03e1e35"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x33200b518e6b1a1e96ba214cad18929e7f5b4e3336e522c5fa1febf69c0818c6"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x2f989e24f97dc06c075bb53404e3eaaae32a1b6d89d9e09acdeee65712aa4216"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x0de4b77163f1572bbaa325f48bde7a429b6b0f803ade45a0e72cd2bdbd84680c"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x3d5b5310e7b6be63be8f12594ecd68108f4b3f6266683b13178d0c80d8530c2f"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x37172dd49bf14ebca52e1c31b60f31de8213644e330bcf2cc59684606e62537d"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x1abe1d77226f2eff6f1a6bfc6c8d9e00dde1da9d67858e6984e53bc2aceba535"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x232bfa6a3120224814967315ebf3d8c88b2eb0ea8c20c79ce854f90aec7a9b91"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x109f5bd722c8cf28ab6a3852970bcb665f398a8dc9d331958dc291d49a1ba9b4"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x04690fe1be7c7b8c10c81e63f5e508fe93853c61f0435f81eabc9997fa3b99f3"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x3244cdec173b71a4659e2529b499362dac10cb2fd17562860c8bb9d0fd45b788"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x0f0c981dc7da9014f7fc767217acb02b5660e6f965da2f9d27c0f39aa96ffb05"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x3eb3e451848da858f19c49a5e8ed645868f7c4ff3936e72764de40a1dcf74994"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x2b22aac0b5767e14e35e2b77cc2be87bdf54b14a37fba4faf110e8d07356c8b1"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x3085943bfb5091697c781c1f9681a0316bbe5bc6153b56b88bb61d3574e18113"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x013fb15ec707fa4d94eb197f2b826652a42d8c7e3a6e3c651c7d1384534c8f7e"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x38a026b4999d31f92ca4a4778f3833c156649acaf6163190c89e33d4285e842f"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x02d3beb65776c1ff767423cfd89e0a1114e75d6bc96a45f3f767301ba78a3d24"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x01ef50f896ea0f7159a64872cbedde170e16616db53f0c738c09563f96772173"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x289ac68db13fda856d5e507ec2d9dfc1e2d343fa2ea66b822446ea3dbab3ed86"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x2c58ccb44d61ab303d49c1c30a1e4cd07ad9fc8b7f3f0d78b7bc5745c9b711ca"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x15e5a3baa70624537828a7dbf0647e0d7507435e339e413891ace5f29ce078eb"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x0c14cf170ef5573850d0d8f285de9fe17c6e779c821d9913a113739da39e8e04"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x277d88816bdf7241161fa38bcc427aed769613e195e72ee70629f35e06659d8e"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x33afc46c06564f1af1ef0da4dd0c4cb8ef0766c819489f5f37f2c228f4307e3e"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x0b8485fdb3cd81760bc9e4d26725a140932b272e1e9d5296298e5f869a89b9d9"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x27d52926466fb81aab2ca23653f180ee3f778df5a835576c44184164f6ee2307"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x207a46740586ec29dad6aafb56b20c268028b717d466ff36264a114eb4435622"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x341290e81ba29124cdfb288e68f9efd8ce7369ac1fd8602b4f9510176c63aa14"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x342facb0775722097b366a3e5878d0e561c0692817a93897baeb6707f992564c"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x0a074e297087d24324f072add6e52960b151e431af10a9e4ff7ebbf0ad7fc3e2"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x2bde7ca24f10248d0d6cfe61f10a55d3e44a2868c51781eb24a2fcc1d1752de8"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x0bdbd65303f4bf4332d764d4ef1f9132b562c58156e28043e9c18247e6654fc7"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x28c3fdc637cd545f5039fdc9c395771b87ee289530688b6a35a4589febded074"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x2da62c361f104573017e1013d5bc837a0ecece8e2e2375b494c9018ee9c5c7d7"),
    from_hex("0x03ab1d4fc536f0bc1c53865c7e1bb29b59397147da123e8e0262ff0e51d1ba39"),
    from_hex("0x2553a916ed677e8ebb39052d86622b2b07e8da35d26e822f95f179626273795d"),
    from_hex("0x0e82d473f428dffbbc932a2a0219ac2e69d55f10797dfe0042f41343d9a5a5f9"),
    ],
    vec![from_hex("0x37e62d7a988a30917e0c59ae31baa0ef4f573bdfadbbc3b26cadb6a7de1a3884"),
    from_hex("0x0f5013e2713cc048f3e8c06870ceaaa068b0d58397642ead9827b6808a5b7f2f"),
    from_hex("0x2d3f5ddab40c0c8894c83ba5042f62a9f86a204921688eb7c164aa4ca5ba6aed"),
    from_hex("0x2e6c3d033a391929b20bfbc85e8c3736870ca1b93c7393002c2cc60e4767f302"),
    ],
    vec![from_hex("0x2854379bd77d9dc37b4687c2e0d6d4f0830ebcbcc478fded97b6861d0a239fb5"),
    from_hex("0x1117487e5f2e2a5fce239e86574f617b6e28d9744b8058b32a02b3649f7c1335"),
    from_hex("0x0eac1e00309bb6fb6206ae31fa0a57aec5aa0b3312c44e372918963cd07b14da"),
    from_hex("0x33fbfff73e78f27bebf149877ec02c4cf9e49dacfed909c9880b2c53ae3ff02c"),
    ],
    vec![from_hex("0x03be520dd2ef2d687d3296dd9216ff3d27136fc691da2c8fbe4cb13c92c40c0a"),
    from_hex("0x34eaf350f1df99218f9778d445e748ba4df04367643fefbd08f195e6f1f3d1f9"),
    from_hex("0x08041eacd9bb78d0fd0bc93a6a27bf3e784abb0b8be4792d3e558e440de4921f"),
    from_hex("0x169ce0ec6424a32f14c4a7c7a2977a981f83d2c464e487c795d4ab196ec2d72d"),
    ],
    ];

    pub static ref MAT_DIAG8_M_1: Vec<Scalar> = vec![
    from_hex("0x2527e8a83e49ae6bf3c8e459d5220e34d84aa49ce14f2dc401273cebdec65067"),
    from_hex("0x0e4a24b206b7494d2437d3e0fd1deeae8a943ccd836e0f959aaeccebb3068859"),
    from_hex("0x03c9638e9b8ad067e7033ed3aef5e185fcfa3959f82283bbf00c1bf0ea40fe45"),
    from_hex("0x09f7633edc22a16de93a8676260b507aa44aa8c57565bc5d21543897be56c100"),
    from_hex("0x06dfc4a91b7acb8ef203a8bc6b850290b1e272a594512ac0d1c9d3a56c8a7921"),
    from_hex("0x020e0af80c2a8e2aab6dcf5d8e94e71d24156e3123a16fdf8fd80471776e3551"),
    from_hex("0x24dfd0278f203a55322e94b290ae4269bbe76aa5531921f5f87a8d2d736dbb9c"),
    from_hex("0x08aa91c42dea2206ff4e601a1f49c009d18acc891ccb78529856db2a49664b2d"),
    ];

    pub static ref MAT_INTERNAL8: Vec<Vec<Scalar>> = vec![
    vec![from_hex("0x2527e8a83e49ae6bf3c8e459d5220e34d84aa49ce14f2dc401273cebdec65068"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    ],
    vec![from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0e4a24b206b7494d2437d3e0fd1deeae8a943ccd836e0f959aaeccebb306885a"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    ],
    vec![from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x03c9638e9b8ad067e7033ed3aef5e185fcfa3959f82283bbf00c1bf0ea40fe46"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    ],
    vec![from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x09f7633edc22a16de93a8676260b507aa44aa8c57565bc5d21543897be56c101"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    ],
    vec![from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x06dfc4a91b7acb8ef203a8bc6b850290b1e272a594512ac0d1c9d3a56c8a7922"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    ],
    vec![from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x020e0af80c2a8e2aab6dcf5d8e94e71d24156e3123a16fdf8fd80471776e3552"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    ],
    vec![from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x24dfd0278f203a55322e94b290ae4269bbe76aa5531921f5f87a8d2d736dbb9d"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    ],
    vec![from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000001"),
    from_hex("0x08aa91c42dea2206ff4e601a1f49c009d18acc891ccb78529856db2a49664b2e"),
    ],
    ];

    pub static ref RC8: Vec<Vec<Scalar>> = vec![
    vec![from_hex("0x3b7abfefc73e31a012cebfd0420df327dd6cf8bb1a94aded25e40cb1d97ae623"),
    from_hex("0x18f6087444787b863f51d5f92722674e3440a076d35b3827ae2a34e2349fe613"),
    from_hex("0x1f6c10016b4ca694f41014517b6fae4134912bdd35b66c1c61a40023f362f7e3"),
    from_hex("0x37f5dd623b97256aa92ba9838b52e6b951481779f841cf5b158b52b264e19542"),
    from_hex("0x3bcb78486b25ea78993bdcc3ac524daa00ccb29bace59b43147a6cd34e90ea9d"),
    from_hex("0x1ebff9e98d8913caea56fcfbde1fa0e28e7c88a6fd26ed1caacb2167ac01d46b"),
    from_hex("0x173542f5c5f705e8c07eebce465ec04075911da44ffeba6135da9b9908661651"),
    from_hex("0x104f0e4495d78b0988796d5099b0814c068357681e1f68df2e7589eab107bc18"),
    ],
    vec![from_hex("0x3aa82015f9de71497b0d3ab99e353f15fd90297226b3b0a721ef4637c3266da6"),
    from_hex("0x218a066557035447f5f65c9ca1f6591b2e89836299bebb6434a4dc795df2575e"),
    from_hex("0x12e9df9b98795bd66de91037d43a8480cde436b30a5ed77be71f9d6674d7d445"),
    from_hex("0x09388b6f741eeafbfc7cc4479778c2ea0013e98b33b767d117c0bd780bc6d7eb"),
    from_hex("0x32aeaef7bcb8b97f927022113baffac5515ab9ec7f6e56c94924a787ca3b1043"),
    from_hex("0x14d39fe74d6c0ce57ba40de0dacae628428f0b3021ac71e47856eba4ba1068b5"),
    from_hex("0x30838e97b66df6a39cdcda903a9c7f2834cba1f11c5a18a1a25ae1a851cd7cc5"),
    from_hex("0x2ba21920ed4441cca37a95beff2c1dbabc66c089fab42787feb9c7d63f563db4"),
    ],
    vec![from_hex("0x0152c4c7e8f09d7d288077304f9e6f23d7be63746f73a6b486d66debd68be87b"),
    from_hex("0x07658150e9fa7bafea32db94237a985857f11e7179d0d1665f5500eee99a6bbd"),
    from_hex("0x0625e07f82a451842d18236aeda5ea8848405c54eb2bc2e9c721715d89e60e00"),
    from_hex("0x3bf1dcb8edb1778b295861f3f44653974369aadb6dc7a657ecf1e9b9f9975d0d"),
    from_hex("0x224b5e5260d5a374a52d205dc4cf2f6ddd2e268c19d4d8c23a9a83ddd95f3b56"),
    from_hex("0x258ba50efbf08421f9d84439e7198cf6d6d744c322496cbee7b0fad515483ce5"),
    from_hex("0x0eb84e097a3c154e3edcad691467aa2833cd6e2c034fc67c4aaddea3e612c0e4"),
    from_hex("0x16726722e28b6834cf52a476e2c85a7796db36654e163d98a90ca5c9c5ec5cf4"),
    ],
    vec![from_hex("0x0b4bcf8b8440ddfcd96960ad3a942f08ee530594a22ba68902ac5cdb09dcb004"),
    from_hex("0x21f7a5a0c323149d5ece7d787c5fffc64e3539ee2a9d0636bdee1fd4fc743195"),
    from_hex("0x252bdc65bc46bae728b14a2cd124f9d89fca1d094a13938d5368bcbcfb61af24"),
    from_hex("0x284070bc321a19aac8f72293ef5ee4047a25905571aa0fc0c92a99fb9aae502d"),
    from_hex("0x2250a97daf4a6ab7e7ed38d562e45e557c6537095d5e82d8f8770c5606cc3723"),
    from_hex("0x2190b0a04860c1754bfaea7c6656754719019afda4db1c2bdcc02e7077cb8fe4"),
    from_hex("0x1ca5242b5b822ce4e547ef1044c25fa8e4e8ab34740ee80934bb783dfcd8ff00"),
    from_hex("0x13ef424fbfa8f57f530b7472049e399b52d243ce631f46ab53e83896cccd1753"),
    ],
    vec![from_hex("0x313b6724e1ef1a2f8313faf995b286ca6c4e2935c938eda423799ad1ca4f074a"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x39fd68c744782320742384c631da42657f76ad1fbb4b31cd39f9b99871a658a9"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x07073f7f19a99e127202010143d73eb9c607b8a472d08eef5028c014296aef92"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x0c9b173245a88129f945616b7753804a79a923a9486099cbc68eeab1a18a3ecd"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x0bc470541a2d0d36132b8c062b988a7a7fc617a194763d1df0d185870d435214"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x14cef28cefade54ab09245615dcd4812f5838cb7e53cc3994db36597a839f598"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x1adf80dd643887e745ceb8f8a7482eba2fa9e3b2a9d78c04e34faf05edac21fd"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x3421bebfd00f6d9984f8ae8713583cf904bc1cc931d9f2207e46f316bee5575b"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x3377ebbc99869b1130415a8b6ef6828a091bbc962b770679ba2533b859b269bb"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x1de23e2b6a76564e456ec0ee314dd1137cb721458c6aea42e68db34f7bee4987"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x3c63febcc1037470db1fefde11feafa09f6b93d1bd7f4ab69421204c7b909742"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x27f9a7845ff4c11b37eafac24e732e279f871513b7e505964a44962f261079d1"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x131e543c8cc3d66c79e2d34b339edb4e8de104f16222108cedf5ede0bc2a259c"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x1e88401ee384c7074e4cf262ce0fad617fac21c3179b13bfb9b9ae28b76b2ed9"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x080a8905ec7191f9e1fdaca749100b1eaa03948e2ba109f9b235258574cbc103"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x220515bc8e5f1b4b0e074e27f73c02b1fa4a4bab6623eab03681186a26a96dd7"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x21d170c9860f7b318902d6e3e7892cd11d1d4a77f6f9d1bbc000f710686be1ef"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x0ab7fc35aa93f80a4ed6787d9b121f34c2914515940f6d8ccbf44a1dc3d5e66f"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x0920c263adbf43e70433816817a1a36526eba5e26e81a596abc53cbfd4e10c9d"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x21248b251f2613ad1e0037db0f662e480ba376a59211d53c0d4005b10ed07a72"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x323b2e2f2ccdb4fa2b7e0aa8ffe80fec5ebb2748371b1ee7367f9403a3017a45"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x0742c9cd494e1f349b5cdda1354407d15528cdc5b149d52178bd749d11a6a62e"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x35852bcb36414611bd9416003e36e2fda46639647b009f20a1571fb62255c06a"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x316825bc6a3d33bc4574a2bc080b267e9f9032cdba13b392f3cef5651b7bd73b"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x039ee257a7ab11b83ca2f84b4c3d2a43b9979593a3baf7fff31a1582463c9cd4"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x3a7d9e3631877361748eaded828a1226a8fad1d9a26b904bb7672c5a1098b010"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x08b2dde1aa612b89c9634b1984823f331515c10cbe93da28d579b4ad02950083"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x286dbe8166b75b79b9382fe5e03d6a8e89e3e14a0d868222534c1840da654262"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x017422f285fe185e8409bf4e808013694982a6b828e25b9d026fa94099d8c7f7"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x362d386157a988e327180aea82fed73187fc9bb4317c8065074a1cefe3d29120"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x1acf4fa571f2dfa559eaa2ed75617022b7926b7e38969c3c404cb6b40a55c8d4"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x2c418cde54947690050586e9fb648d979a04117c6a985951ac99d3a056091e03"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x1099ebe36b8a483ff9160c7e49cf27d1275f35638f60d15c251d004bdf0be43c"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x376f4d399472844d9823bc00f9d9ec7251273dc1f085c6aad969986f791ced02"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x3d7640dc7ad95c1a5fe3bff9b6dd9f66d27bf6bc99d17ee167feeb09c4b77d9e"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x19f02aef751ef1a50f182576d7a3ddc88a4cfdd8120c45ecd9cb0871aca82b51"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x279cc3dfbf8fe51b4981c343fbd35d0660273e2476114d44c3d90f4f3675c562"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x16571531b5aeab05acbc0a4b2e464eb536e4a924bad115f1cf2be639b5b50d01"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x026facda06a3f8db07198119519ebbe0138f15bed74748c85b0d25c7a0e12ed5"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x05110cf9b9ba8ac6d07dc777cf848fd1b8b111ec6470a2764dc624eca813b9fe"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x206e862ab391876f28ecc784d340fde555a6f19006d75b0c1b2a08a21b4489e7"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x1981c8c01ea556e29ac3716ffa10b136917246be6dc3216fb014ec767d3c5a7c"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x195b8edee37edc895c2c6f06b6f7a0a7e7752623350db10efc524c3518f1a42e"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x39e6a6288cee695456bb13eb3c236f324a54a3038241024c3dffbd4df6ecc7b3"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x071c2e3739ff56fbdcc3820e589e7064ed440201645f1b3f6b31b2529807e98d"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x36d6bd128d3fec0e2175d912ae3627e916dbf64f806a430f6a0723dec3b1230c"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x11b86c28e5f9499d39bad67d7cb292dd12040a77a7fc43e686bd2071bd624665"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x257175ecb62b84fb6c5793330f07fe088e444c7ed2cca04d1e5171ca9305d487"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x24d4b0023cb7baf25ce88e205eae791e9b3064431228e0bf5d5d8e3ad19f1abb"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x0111dc6b95ed19fa4d424dc86e0aa7f24b7216ef5d0559f462c3f5d17861da84"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x0c896ecb5cb1d7d3c0cbe825fd44d99cc08707f9a8eae57c047249f24d8b29af"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x22f2e8437ec3d5f5318d900fcdaea91561d959cfe0a385b5b7995f0bda581251"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x2b3ab5ecfce88bee5ae7b7008aeeed489e4b4c5b447c7d47f41a21a5caa363b9"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x21b2fc242ac3caafde58303e63c8106911e244867f12807501b633f98cc9c6af"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x197b57cd258c1f789fadf4b932a35ae72bdb648e78596b33fda58689ddc304df"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x36905ea3619d8bc9d6d14b3d092b40b8313b9dc961543234e174e4fc733beb21"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x3762362e580647272a2ff2f34c1b342bba17035c83db1f4877e655087256beb8"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    from_hex("0x0000000000000000000000000000000000000000000000000000000000000000"),
    ],
    vec![from_hex("0x00365e4df091a26a4c15e9bf45273806d69a77d9c573347cf6566b85cd40645d"),
    from_hex("0x02e154f995c659f1d92b597698a852e79a23a2fb63f4be266fe793965c0b2f69"),
    from_hex("0x109ca4a0b082abd9bb6bf0ba6de106bd0bc6cdf2a1386970d32cb78fd43620a4"),
    from_hex("0x3d787fcefd7f8ec65e3a65d9ca4a0dacd2131bccee0e0c18b2dc40c8962682c8"),
    from_hex("0x06931527329b43a3e4be82bd07daba88aa8369ef5ac71b0e2022c655f5bad3ca"),
    from_hex("0x08df4f662f1be17f0706c905bf5085f755a5ffb124ea51c2720ce18023b031fb"),
    from_hex("0x2bb740a58a0b5537bcab5cdae457497468e853aaa97814d1a93bb44747c47202"),
    from_hex("0x0b5728139af4e65d86459b91d4ff291852e2fc6cca1b090cdd2ba3c97608332f"),
    ],
    vec![from_hex("0x1118b610c2544efa26b70d9d60ca6ca362afcfff12436cf3b0f8a3ec5895d9eb"),
    from_hex("0x3ef76c8bae0aa755dde594d8ec22b157f913323e5b29bbd0652e4b74973ac8fa"),
    from_hex("0x2836b90fe642d3c6a0350b41897994b79d322e512f04812a42d2b4eb861abb8f"),
    from_hex("0x3297d80a1172379347e93b4afb5ec2dff71fac39a908af9da0db88c8919c5308"),
    from_hex("0x1a5d5fbc7badd0e911580079fba148711d7624bd15218297c712702c1930eeb6"),
    from_hex("0x24d720064e2f1463efac600cc5d6630c2c15bfc17afbc47f87fb30e464b8a7a9"),
    from_hex("0x138ca88e6e584d9864b3d5997f65f0486537b9bc683b79dc39a7a2339bd82d07"),
    from_hex("0x3c3db0484ac44360fccf861d427fa0d9ce4689c699f69d6feb508ff7787df990"),
    ],
    vec![from_hex("0x218a3e4bcacb00594765de7c45c7036b00bc3b8bbc9d041f9e8488313f9319ed"),
    from_hex("0x0700fcdad38d0efb824232cf9f66f561ad90c6e6ea6625c1fb65bf1bd20b4d23"),
    from_hex("0x10e105ed6de8eb0c2d8118ade2392ad1d6961c20db9be836561cd2e4bccbda67"),
    from_hex("0x19c00b5bbbcd4365110aebad39495924bd29a6ac176aab63ccdf4b2080522d9f"),
    from_hex("0x116d6f32a6ec54576c5b601f583a26138f5f53182d229d3e5c4ddc36b83f20b8"),
    from_hex("0x3c4074ef02a7a99d4e6a8a7275c0ddefbcec32f165019b9050ea403569340c2b"),
    from_hex("0x2afd0639492a9d92802076eeef2cf4e63c6e1bf34ec712f189acfd2cad7df864"),
    from_hex("0x330bbc764e26d3040d8c68b13b7217dbe7bcc64d6757b5f0e3a0011aee092f76"),
    ],
    vec![from_hex("0x02d6ec34d2b440b4fc4bf97ad03bc3800ba4fc2eeba453020d9409d4ed06842f"),
    from_hex("0x0054c2742986db99ead3f187211ccd024c8dc1edf39a97584513df36830ff0ef"),
    from_hex("0x0ef7e669594ff17c2e04eb3401e1fb05bad9f4301a59da508541879e83cbe832"),
    from_hex("0x17d1e02888c26865a32c87fc44d40a633ee1ce14bf6b5c8fcf33f816bdc81eaf"),
    from_hex("0x3529c028c8e78071abc1c6aaba77cff2282939cce1632e21fea6cad5514eec93"),
    from_hex("0x3c49389e3559bb68f6a35c49380c5094fc4c9d387d9ba4938e90628ff4a5dc99"),
    from_hex("0x1964de45678cded96271512c4d7c2ac61f95872ffbbec7e3456555c759c6a2ec"),
    from_hex("0x27f4c29b338980c428359fa271e9799311cd38c926fc73ae4aed19347aa4219c"),
    ],
    ];
    
    pub static ref POSEIDON2_PALLAS_3_PARAMS: Arc<Poseidon2Params<Scalar>> = Arc::new(Poseidon2Params::new(3, 5, 8, 56, &MAT_DIAG3_M_1, &MAT_INTERNAL3, &RC3));

    pub static ref POSEIDON2_PALLAS_4_PARAMS: Arc<Poseidon2Params<Scalar>> = Arc::new(Poseidon2Params::new(4, 5, 8, 56, &MAT_DIAG4_M_1, &MAT_INTERNAL4, &RC4));

    pub static ref POSEIDON2_PALLAS_8_PARAMS: Arc<Poseidon2Params<Scalar>> = Arc::new(Poseidon2Params::new(8, 5, 8, 57, &MAT_DIAG8_M_1, &MAT_INTERNAL8, &RC8));
}