use {ark_ff::PrimeField, provekit_common::FieldElement as F};
#[inline]
fn fe(hex: &str) -> F {
fe_hex(hex)
}
fn fe_hex(s: &str) -> F {
let s = s.strip_prefix("0x").unwrap_or(s);
let mut bytes = hex_to_bytes(s);
let field_byte_len = ((F::MODULUS_BIT_SIZE as usize) + 7) / 8;
assert!(
bytes.len() <= field_byte_len,
"constant too large for field"
);
if bytes.len() < field_byte_len {
let mut pad = vec![0u8; field_byte_len - bytes.len()];
pad.extend_from_slice(&bytes);
bytes = pad;
}
F::from_be_bytes_mod_order(&bytes)
}
fn hex_to_bytes(s: &str) -> Vec<u8> {
let mut out = Vec::with_capacity((s.len() + 1) / 2);
let mut n: u8 = 0;
for (i, ch) in s.bytes().enumerate() {
let v = match ch {
b'0'..=b'9' => ch - b'0',
b'a'..=b'f' => ch - b'a' + 10,
b'A'..=b'F' => ch - b'A' + 10,
_ => panic!("bad hex"),
};
if i % 2 == 0 {
n = v << 4;
} else {
out.push(n | v);
}
}
if s.len() % 2 == 1 {
out.push(n);
}
out
}
pub fn amount_partial_rounds(t: u32) -> u32 {
if t <= 4 {
56
} else {
57
}
}
pub fn load_diag(t: u32) -> Vec<F> {
match t {
4 => vec![
fe("0x10dc6e9c006ea38b04b1e03b4bd9490c0d03f98929ca1d7fb56821fd19d3b6e7"),
fe("0x0c28145b6a44df3e0149b3d0a30b3bb599df9756d4dd9b84a86b38cfb45a740b"),
fe("0x00544b8338791518b2c7645a50392798b21f75bb60e3596170067d00141cac15"),
fe("0x222c01175718386f2e2e82eb122789e352e105a3b8fa852613bc534433ee428b"),
],
8 => vec![
fe("0x05bffb5e301d8c468c35e24eb2165b6b71725fb7ac9a48efe5ce041bdb05676d"),
fe("0x2aa7a81812688343fc6d78073312996d75f4c5505db0ed22af5ec0df7888cdc7"),
fe("0x2f5856fd71dab60d78cc3af15a89c1e4d61ba189849a4cea10acc1dd228faf00"),
fe("0x12299a260999ac95d271e184968cda40bd4358877a6dcf43d779251fffa61348"),
fe("0x1443aad4693d692a62a8e21f03d5643a123f0c8783a3d27c275f9d01089685fb"),
fe("0x21561b0204a44488082e31472f5885a3adc179bb278233aedc4b316369ec9937"),
fe("0x0c7cc2afa53f9898f30a69b294a4e24f6b2176e1ae0ca49b021792d55e34e97d"),
fe("0x2dd221096053de389fae88e7caa5c43ab55e22aeb758ee130d1246c1dff47b53"),
],
12 => vec![
fe("0x20bb1e98f40bfe80b8e2f2c885ea13a2ea1f146ff61218c31075ad79dd8f4ffa"),
fe("0x1ed6abd05c8d678fa14c0c77d90f02fa1f8af249915fa6518f5f8d5e5c649fb2"),
fe("0x29107b18658b47d566f5063975d6bbc504382b81777e0796c7cb81f9b4e2cf46"),
fe("0x134ceec3ec069dd76fc9804ff029c2c27c5646986ff5dbeb17091d9c479ae923"),
fe("0x0ee2e4f4a3c23a1b71834d1a95ea402504b8d68fab6f74855c884df898c286f9"),
fe("0x0a469d3f3cb250181cc1e70c8227dace349b1c52fe8f7375744c8be5b80771e5"),
fe("0x0cfa92ab38d116f1cdc24ecc083ad1cb17a215de9968726a81970dde9cca70d6"),
fe("0x173df1a0df85f4533605f9578b1f58ccadf1f810e1fcca66808382efa84d684a"),
fe("0x2ced3bf3cf641c12a311b16b4107663388876a894e70c28c5498946c7fd8dcd4"),
fe("0x0912073a16428c84bfbb6170108adf6d168100ac5587c23c9405cf1f7ca8f13b"),
fe("0x250b310cd13063ee49c78680c1434853968f464d2fc99166c23a2e330dd71d54"),
fe("0x08b593b39852f7ad095a03a3eee546c388e02896d460454c6f1887c8d1c82e37"),
],
16 => vec![
fe("0x269aaf7c0e0ae1a709c1b7cd137c366a3ef21c0ca7d9fb2b33b5a1ae235768e4"),
fe("0x30543ee04032614e317229edfaf3b27da10dd0792f35ecb2fb82a20c30eb1de3"),
fe("0x017416b13160b7d8d73ffd44efc75ce642f1d002e332ad4bd68469b8b83c5fc4"),
fe("0x09b103f438a43f1aabb6bc5d3490d3c443d773b966d902d36c81490614939eaf"),
fe("0x08f9e81ea21aa882da55bde42c830d261462c4489451ab181513614983fcdb30"),
fe("0x026d2cf77cf485777fb797f7c3bf17acafcb3679549ac98acb6e430eb53e4be5"),
fe("0x0652442bfa09590b710b3273f0d3c3de61defe08359aa8289b63f36eec1d7a7b"),
fe("0x0d6e46bf1e3725ff884f82602321db7d05c152349b4cd1117195e5f778f9c27b"),
fe("0x285754e689291a5f02e4a3c9b07359d3fc33a687a755f842cc45a037774d0542"),
fe("0x09a4884b8ce2a5dc8eee7e181526dd65567e70aa4cb62c3d128e7d94345a4dc4"),
fe("0x06af44dac4ca6cc95e692a20907607defa711623ca94934bea9d70bd555a594d"),
fe("0x0f8b7738afe6bd0d66cb58970bf7484be2c67a4519d1406f074ae165ab5d2ad5"),
fe("0x294dbe90e673accdcc6d7211bb0ac3aab902a88476ef7f7ac6fe3ba7b128c71a"),
fe("0x05c3f9cecad533b14bace3f9d7d7713ccf40c9429b4fce2cfa3aa4ee3d4ae039"),
fe("0x26cbff872ac3df2a3787878f24ee28b6ad4f1dcab41126b80f4038f40510d7e1"),
fe("0x1ba0b493c987b9c1424ede9239ba100dc005e717aa71ca6d6a605561e379bdce"),
],
_ => panic!("t must be 4|8|12|16"),
}
}
pub fn load_rc_full1(t: u32) -> Vec<Vec<F>> {
match t {
2 => vec![
vec![
fe("0x09c46e9ec68e9bd4fe1faaba294cba38a71aa177534cdd1b6c7dc0dbd0abd7a7"),
fe("0x0c0356530896eec42a97ed937f3135cfc5142b3ae405b8343c1d83ffa604cb81"),
],
vec![
fe("0x1e28a1d935698ad1142e51182bb54cf4a00ea5aabd6268bd317ea977cc154a30"),
fe("0x27af2d831a9d2748080965db30e298e40e5757c3e008db964cf9e2b12b91251f"),
],
vec![
fe("0x1e6f11ce60fc8f513a6a3cfe16ae175a41291462f214cd0879aaf43545b74e03"),
fe("0x2a67384d3bbd5e438541819cb681f0be04462ed14c3613d8f719206268d142d3"),
],
vec![
fe("0x0b66fdf356093a611609f8e12fbfecf0b985e381f025188936408f5d5c9f45d0"),
fe("0x012ee3ec1e78d470830c61093c2ade370b26c83cc5cebeeddaa6852dbdb09e21"),
],
],
3 => vec![
vec![
fe("0x1d066a255517b7fd8bddd3a93f7804ef7f8fcde48bb4c37a59a09a1a97052816"),
fe("0x29daefb55f6f2dc6ac3f089cebcc6120b7c6fef31367b68eb7238547d32c1610"),
fe("0x1f2cb1624a78ee001ecbd88ad959d7012572d76f08ec5c4f9e8b7ad7b0b4e1d1"),
],
vec![
fe("0x0aad2e79f15735f2bd77c0ed3d14aa27b11f092a53bbc6e1db0672ded84f31e5"),
fe("0x2252624f8617738cd6f661dd4094375f37028a98f1dece66091ccf1595b43f28"),
fe("0x1a24913a928b38485a65a84a291da1ff91c20626524b2b87d49f4f2c9018d735"),
],
vec![
fe("0x22fc468f1759b74d7bfc427b5f11ebb10a41515ddff497b14fd6dae1508fc47a"),
fe("0x1059ca787f1f89ed9cd026e9c9ca107ae61956ff0b4121d5efd65515617f6e4d"),
fe("0x02be9473358461d8f61f3536d877de982123011f0bf6f155a45cbbfae8b981ce"),
],
vec![
fe("0x0ec96c8e32962d462778a749c82ed623aba9b669ac5b8736a1ff3a441a5084a4"),
fe("0x292f906e073677405442d9553c45fa3f5a47a7cdb8c99f9648fb2e4d814df57e"),
fe("0x274982444157b86726c11b9a0f5e39a5cc611160a394ea460c63f0b2ffe5657e"),
],
],
4 => vec![
vec![
fe("0x19b849f69450b06848da1d39bd5e4a4302bb86744edc26238b0878e269ed23e5"),
fe("0x265ddfe127dd51bd7239347b758f0a1320eb2cc7450acc1dad47f80c8dcf34d6"),
fe("0x199750ec472f1809e0f66a545e1e51624108ac845015c2aa3dfc36bab497d8aa"),
fe("0x157ff3fe65ac7208110f06a5f74302b14d743ea25067f0ffd032f787c7f1cdf8"),
],
vec![
fe("0x2e49c43c4569dd9c5fd35ac45fca33f10b15c590692f8beefe18f4896ac94902"),
fe("0x0e35fb89981890520d4aef2b6d6506c3cb2f0b6973c24fa82731345ffa2d1f1e"),
fe("0x251ad47cb15c4f1105f109ae5e944f1ba9d9e7806d667ffec6fe723002e0b996"),
fe("0x13da07dc64d428369873e97160234641f8beb56fdd05e5f3563fa39d9c22df4e"),
],
vec![
fe("0x0c009b84e650e6d23dc00c7dccef7483a553939689d350cd46e7b89055fd4738"),
fe("0x011f16b1c63a854f01992e3956f42d8b04eb650c6d535eb0203dec74befdca06"),
fe("0x0ed69e5e383a688f209d9a561daa79612f3f78d0467ad45485df07093f367549"),
fe("0x04dba94a7b0ce9e221acad41472b6bbe3aec507f5eb3d33f463672264c9f789b"),
],
vec![
fe("0x0a3f2637d840f3a16eb094271c9d237b6036757d4bb50bf7ce732ff1d4fa28e8"),
fe("0x259a666f129eea198f8a1c502fdb38fa39b1f075569564b6e54a485d1182323f"),
fe("0x28bf7459c9b2f4c6d8e7d06a4ee3a47f7745d4271038e5157a32fdf7ede0d6a1"),
fe("0x0a1ca941f057037526ea200f489be8d4c37c85bbcce6a2aeec91bd6941432447"),
],
],
8 => vec![
vec![
fe("0x0dad22d08a6b8d81d4a5ffc34b9677a7c5254c85e953551f9eba9a0a97590c10"),
fe("0x03cfc441111f1bab6e75957b9f0274e92d17aefc2d8da460435dfaf259bd1039"),
fe("0x27c6d1b8a2e2ce670376cd2970192a2a08e4290883f6ca49e7976c6c447d6392"),
fe("0x28f2882b9abfda8efc2d121da0c871d2d5313a53c67d0407eef4e93ee23e6c2d"),
fe("0x0a3943390fe4939fa2e931e18094c7c93aa107ced2bfaefcfe5e613a3f1262d5"),
fe("0x2a8f37d8da8f2319e188f8909007408b57fba3555bb784c1ad6c7b0755805456"),
fe("0x0cef8658e33f20c39649528f353ef5d03198c75683f8493534add693a4ff4f0f"),
fe("0x1cdc2a6f0f0e7c6c62ee1c0cad4fd11363a48db7095171faaf9a7b6e01c3e52b"),
],
vec![
fe("0x0a2e681a2db19c8d1cfb0c28f0b7b3d9830d35fca8c0b076b4e64328060139d6"),
fe("0x16f013cd703be7de16b4361ce5c67cc2997f858e8a808885da67fbafd30d2717"),
fe("0x29af57131c9cf548be669fe76c675e6d90bee17a76cccf4ddc5d35f9a936ebb8"),
fe("0x21807b1ec6258bb155ed159da90b815dee119eae8138b1bdf950111bf5205b3b"),
fe("0x07c00db8c50a8c860fbcb8ebd234a54350bdbcb8747891a4e5adab1c4abc6909"),
fe("0x22bc08fc054d08a3dbb6094396d0de373a4c33205c49a1254cf25ebec1747765"),
fe("0x2dad58bdf3e24c78f21146de084d9b8afad58956fedce67d43f7d375a813bb2e"),
fe("0x292cee6bc19a64dc5a8a74036e676e238f60b4577db86213ced417906f1d6e91"),
],
vec![
fe("0x27d655ae125928ad6b48bba54593b74ca0c23002b32a0a9ef375939a22387a8c"),
fe("0x0e0e2e781fe9ac0a97f0d961c7b359a415d1ead41c99eccee90e56b68fbfa2a8"),
fe("0x13fec23e678d1c9943b6daed8ed8212289116ab96344ded7ced8aac2f09f1672"),
fe("0x27550dd21647e37fc31640684e02cb07810669b1c1545443fd58204b2cde73c2"),
fe("0x1de6d5f356a92c48c7b9f6aa45c8a6216e0a6adbc799c0bec242054674cb8f09"),
fe("0x14c5347c4580363f74c885d1fbb378c61d953e490892b10baf84f6e1f3a3f39d"),
fe("0x27f2768023c4df7952ca0d967f14034e98c4ca76973ae1cddfccd212cbd78683"),
fe("0x1f4f499fc4853f7e189ad6d2269c467f77e15bbd28963c516b4fbf1ba7b88f95"),
],
vec![
fe("0x0d62ba9a8de3b97c72a5425a97a7f027fbad23f299ff46bafa12dcffb0e72bf1"),
fe("0x22b649ae468f20c7cbfb435d932ba9ba4be14ea40c0c54e6bec970ab4c513f04"),
fe("0x03a1aae439e47e7e14186d5513da5e263e063a3da6d042c16e55cab2e81a8e95"),
fe("0x25c7eee1fce422600f5b1e78323f2e99cceee803f62763217eadbd046c1e0e6c"),
fe("0x1c66258f103a955274ed71de56169bba34ff6aea97a2c32b98805dc3b011a383"),
fe("0x29403b00757a647671a3691094aef420ad830f95743d45894d6d7f40aa356e4b"),
fe("0x13496363ef5f7d0e91fd1319fd5dc0269c5190d05d8a0ad28a3ce0638a133e0e"),
fe("0x1c6a4586c15c4638a1686921d7c204e2b6e1a88c1fc49dcfb87ded2a1ed7edc5"),
],
],
12 => vec![
vec![
fe("0x0f43621f15c4af9c4e52180b3ab6fbc9cf57863dc34e6190232841eb8b085634"),
fe("0x1668bae54907e5387889e1d55a4d1d3b135c9a652fa7a4d70bb5146f8b14ed41"),
fe("0x0a87adfff46809b3ec145fb43aa86f893a109673cd24d6cf2a49a56900487642"),
fe("0x1e9fde940aab66670c2b1181f6df82c382ed1b5d7462fbc51c4b5e409628c80d"),
fe("0x29361fe9bc57577ff4d84574c95e0ec17d135737a27e1eac39105d6e74e401b1"),
fe("0x0259de79b50700337c1c9cb31e1131663ee8855bd1b8a6ef42106d25579f488b"),
fe("0x0f6f5923c9465ce3725957788d208170001f1aab4a0a305485b891a5db328979"),
fe("0x02aaa6d934fd501ae8ec3c61243f27898b32ec59a591b55a3b2c4fc9a80bbbf1"),
fe("0x1f275665d09676b37c235095a09a20572cc9f7c560ef1bd70960531dfce0f9c9"),
fe("0x0a376d54e4746f30352fe60fe77549f66ca6fe9b489595c4b7f03d6fde4dc609"),
fe("0x0f9fb99ba9ed076b06f6a854af79956315b20c7c847afbcb82f3cc4a6319acd1"),
fe("0x2647fdf764202dc23974cb36f678f88acabf40a3af1efea82a25d4adba285a90"),
],
vec![
fe("0x163d4024aa78a29e1b29d817e5a54d62c35a0cebbdf280d46da3801f7ca3aa60"),
fe("0x18d129e8e0a4e479164cdc899a2d3ebf43d974e4b09d8dba6c320946223cf182"),
fe("0x23ec490ac0fb5b14fb10e0fc78f0b9b6fe907eb7d5b98e6717a1dfeed2897b47"),
fe("0x038bb6dec1ced2b3f1616c3a3690a33905d9e9c800169848ea41525df1038a35"),
fe("0x0efa40ec3478a8da5b538017469d4e4cadbae65f3912fad7fd6bfe4f8aece05c"),
fe("0x07ee20d224c6f2996ab8695e8ab58872b31d1a53a5a8faf0ee710cc84652a020"),
fe("0x1296f3de85f6a1edcac3eb49942327025104453c66bc5e53503337c4fa17fe4a"),
fe("0x0b9f0fa8bd9d547076a3a7cd1df3101ac5db06e6aec5cb7ab6d39b4714cd4930"),
fe("0x03537733ee073b87fd683776edcd014f14d7507e6ad905cfe9912f73dca53e05"),
fe("0x233f0272e0c4f919fb9781fe66772917ce70d5d4f07a0b45042bc308e122a8a2"),
fe("0x3059b9ba4ba5d9561c3db928a6bc0d0318a59b5f2dcafacd6ca08b59bb2ebddf"),
fe("0x2d5a9419c340cc7c51846abbe6cc73da80246ba671af65d42acd80eb26285f01"),
],
vec![
fe("0x28cbedcf154342ee2c306dfb3090bd8616b12de61aac4ba3a90f5c84971007f8"),
fe("0x213bdf6a17afa769b5e980c33c2789198bb4e2c6d2d460c80847e083299c1378"),
fe("0x1856c7cf971f9cf1b9268c77b4ce1cc25e46d598e4063150f21399b1df2c9160"),
fe("0x16a4784c343b05327e075242bcba3b3f0a1c574b761becd3a548be7bf56c28a3"),
fe("0x227015baeb62f71b7eb5faf4d53e02aa25319f3930d6805be62186c2c887c5cd"),
fe("0x2ebabc5d65747d5248a0bd417eb1f08e240bf16ca39517bb78f0bde113756c5e"),
fe("0x04294c633145298225eea35ae69c38eb16f7e801932977406dc87744fe0dba17"),
fe("0x20a7fd4cb2f474549d58a9bd35fe437d0ee4779d49d637c7e62bae43e416a71e"),
fe("0x2407c264f39d4fea0054ee11d49ffa37bc485e6b2a56abaf474c67f519278ca4"),
fe("0x26d6a590d67fe597886868c5f7b112f562d005aa0108d290856c4a73ae8dc76f"),
fe("0x0588e0144ff3f7ac60cd6dac45470ec514e8e0b29364618b1990be43844f9c90"),
fe("0x1655a28817d034b981d68b72ec7917a6bf82f2a997c9d234ea988a7adc885cbf"),
],
vec![
fe("0x194dc63b0b759bd5d2f9fff9c7d93aa659bddb581ef7fc0a377f3721284c437a"),
fe("0x27f66e66bf165f89bada48e8a34cf487bb7d9574e6e30adb35a4ee99a976b259"),
fe("0x08c55d2b68cd123fd8566ebe8abe31bd6029bb9da9dc2a3574e927aa17b584dc"),
fe("0x0bddc60c6a8bc1ee5ddef1056937f8c7d0062ded8ee5c830d3235c111c4dd631"),
fe("0x19bd515f624646117bc4ea6976c4b47294a4e20485101c8248531c1cd6801f4f"),
fe("0x216a8df99767d84fe6753aefa885dbac162f863f528ceb36115f31aa3377011c"),
fe("0x0d4f51a5e0cb091576eaa21728d47ea6637f81f486d7b8bf8a9598c2d31ebd99"),
fe("0x1ba2df75aeabd0da93f98257ae2aee8d6e6ed88e6fcf8fc8e38e701c5b0cf4a0"),
fe("0x2e3b3ff1732fa2bbf4fe2394d3c46ac1f6cbd089598dd74e8e5f0102f35f0032"),
fe("0x2b8ff63f531c9f407966fca984e8470c0b89e727dc026e14ecd62801c40f5742"),
fe("0x26aeacadf785a14ff47435fa91e4082d28f61e6ca60d16aa5903e3ef629b5e92"),
fe("0x0a7017dab6dbca20961c8a03f99fa2ad051e2ed9e19ad14e8e9b2922dd43797e"),
],
],
16 => vec![
vec![
fe("0x11a8c50ae2baf9f5e8b3c672c7326f002cdec557448fdfa263f0adfbaaceacff"),
fe("0x062af6c4373daac18754f00ee840e8920e3f715aa7d14233948e54596ac34e43"),
fe("0x067668742769c8dc002f62ad79b936464ee18b541f9d560a1df662a1de735099"),
fe("0x092566abceb5edc4fdd60f23c5c605a7b85a6282a1cf7920eaf4f34587722904"),
fe("0x1dce678af089b569d6b90eb80d3d937f98f952e8f4928a6f6d41c4ddeea8ac8a"),
fe("0x0a0f0bd983e55175db6027fc884726d4c79e1bf6e6b65eb7a6051d02caa2adc3"),
fe("0x2ab887d5bef4f2bb90472c6da5531555ab3e5b692c21b57855d4cd77c08b73a1"),
fe("0x0e29f9015a7443d2be603384abb29dd7bf930d1a28686cfdbc347e9163870b73"),
fe("0x21b3a5f0e068934a7436d1d28e8cf0bc61d712e158a8bb2c42a57125d8727ad2"),
fe("0x0e1f8ea955cc9e2efd16f26fe45422f1749a9fd2fc10ff4ed3431ba73ea1c126"),
fe("0x2130513365c023ad8997f530b8f5077c7bc5408dc8177b0379d25eb46266d06a"),
fe("0x1996a13e24a307419ef17eaa2120d6a3510e7d0daff70d3b73e1c3da47d9e81a"),
fe("0x2ae828a9edb591d66810146f3e0efe95336e919fb8924f65807d2e20b70ffe32"),
fe("0x2f617fc3ddba10cfc459bef0adcb6dcf024b50924f5a9719707ea9cfaceeba86"),
fe("0x26034af9d21fea59b35e1edd6bc6ad24e39bb2309014f2df434b01d52360ad6a"),
fe("0x0861d9a9b50eda74e99bc741bab3c8d7c36e4dc3828ef88a8822ad1d97cb2dc1"),
],
vec![
fe("0x09d307c6251380f12959318cb1b6b6bc8b5f0e87c8aaa5b9a9c02a747f82230a"),
fe("0x2d7249c015893681c5b6406a5f3ed9913181fa18cf0c9cc5404d002612e5f6ee"),
fe("0x300c394ab0169e3579b604d3e4c8344ffa05164a7fc66d1d0fec5e1b0aba7c3c"),
fe("0x053246a30507749b78daca7f5e1bb40d8dd095a228d4754f587a522ae3bebc5f"),
fe("0x2bb8c89e9959b6bc4af0814110a58e9f2de278cb4ce3a3e85b5df69f20bc6c85"),
fe("0x03d087490008dce2b785898ea7d63aa073e5b01645c59c49ce136275cf5983b5"),
fe("0x1b1860486b80b33467e250e5fee700e42ea8b1010ae9720e0dba074d0a711483"),
fe("0x07c2df19e33502e0d6407204240d9ae9d53671a8acb8275c87a878c8d31ae6a9"),
fe("0x2681360e637f307e9d3dd46d8d9ac32d1eaa80fb008a164c495cdcba8f80575b"),
fe("0x26e40b31dea8fd07591fe4cd5046b8995ad2b38cfff12bb5d9556049062f8c60"),
fe("0x142db0b3205d81b91e289e8640447ce61d0a5624e7a80276b2aafc6c020bd45b"),
fe("0x11481ae8ce1f4453b29a23cdf06bb4da1344fa0858cc366eab6e2871f6820bbf"),
fe("0x14afa414edfcf985dc050516d4e6e6f61b32fdf2ec6faee7eae103be602c2d9d"),
fe("0x07fcf3ec2df0db6971c71924e8adb1f96f8d53fe7de3676a7704f621ac470f5b"),
fe("0x21daa5e36df00136f54419d5e4c09ec09bba58903173c55822e51d65b0779e6f"),
fe("0x2e324f627abadd10f08206430befea7ae4b5ed5e965ec1380af6f883eeac7d3f"),
],
vec![
fe("0x0b5bb384cfccbd7b191e651901f6193f949a3c8a226cec1fde2a43d8829dbe86"),
fe("0x069ddb007faabaf73350dc4eadb907bd2d0d4a214f6654b30756e8ad18df5f18"),
fe("0x208b465f89b447783ea3fb14cbb235891ae8c4e5a5031365f470bab6cf86dd3c"),
fe("0x136297f9e831fb9640b024db98afd0a4eba714daa31944c4e7613dd78fc7e14c"),
fe("0x10a7859a7db68fae99f59a4a784cf518f4e7b9cf94ad7aadfc8b089f3b3ed9e8"),
fe("0x0862b4da27d415d0ee6ee421b3dd98ecb3188489103fc6028684d166a5212ebc"),
fe("0x233af2967f6f7740ff8feb103ff33416f7d2a2f08aeb48e6a84347789fa4404c"),
fe("0x2ae069b5948ab8f0ab759617732fabf28f734dfd5732f7f22d0797078908d592"),
fe("0x00583f3b42880263ba0069d278a8d6c633913f930510ea5e8bc4fdb6e0d654b8"),
fe("0x12e2f29632a6e47b536e42912519b2f5f6086fd92ba211af7776be12b342730a"),
fe("0x06dbb6c7b8448c820ae128612b7fc4698a74cfa8bb058a90742d4188b3063bf1"),
fe("0x18509380d353243decd53f8b29e3e830dce894b5ed590eeeab18b1b92f3a6da7"),
fe("0x0c6fc99e5d3a8ba836d2a51632a7efa4a2732c5be32ff1bb8988e97357cfe561"),
fe("0x042196cef447997203de5aa95cd5a8158ddfb11a8ae83c733cb3ce942f1e3952"),
fe("0x2d741b558a9a39fc48442b13f7a09394d878d41b7963105175b5eacc0762d341"),
fe("0x28561383e49fc55b465f9a55c56872a9da39cc1a8601c984fc142f519e01107a"),
],
vec![
fe("0x283c11ef394149faf2dabef893843ad8afc42d8322002648b15c7a6b2f8e36da"),
fe("0x16e5502b7577231018c8b8a59b3d9d60952d4e169fa38a080ce1860cd771ea5d"),
fe("0x1dc343ebb1999bdd849b519b6c88c25ed40fa673b44a37ae895f1ee2efa97458"),
fe("0x192b8afb63d8d9357b5d74136d341c2811f611336acfeb20a0e4a83fc726cb1e"),
fe("0x1a30b60940afd0871265b329ec9ae86a61df686cbb09b6b57adcd2eefbe243b8"),
fe("0x20a00f04fb239f151d607d4a38fda2ef13fcfdf2cb7290c86b19bdedae4048fc"),
fe("0x0293b42083e8d2ae737e112e012df4927fa61a56753e4cd9ada1690e5ed529da"),
fe("0x2db103a89e5cb3b42ac01913fe5c8de3cfe959ea6033bfc3a17451906560f807"),
fe("0x1cb81d2dfa938c9397a2da95a68184983ce0fff321071470250b781cdd80c73c"),
fe("0x03f1355c9f18f37d7837813b19946787301f68b7b3720f02cd358bc50c9ad216"),
fe("0x13af73a19617a92625a1c30743bc9775a4e8b0b9f3cef088f39bbccf12caa3f5"),
fe("0x114938f09f618d6176cff87ec5d1532a265ac4a87e21d68ee61dae8d9a554924"),
fe("0x0acb455d2f8dd661528e732ea07ef93c9e03630f51903b86bc6835afcc03a98a"),
fe("0x151adb5dd2d8fa77437afe73aed319d84dd546839f9d7b687e825d9b23dc1744"),
fe("0x25548523d039ac346af19b64d52549e24dea02ea0d5476a0395c4c438f613464"),
fe("0x09cc75c22a37ffa264db2540ae85d1ef6965111461eabc9fc652a879b4bdd140"),
],
],
_ => panic!("t must be 2|3|4|8|12|16"),
}
}
pub fn load_rc_full2(t: u32) -> Vec<Vec<F>> {
match t {
2 => vec![
vec![
fe("0x19b9b63d2f108e17e63817863a8f6c288d7ad29916d98cb1072e4e7b7d52b376"),
fe("0x015bee1357e3c015b5bda237668522f613d1c88726b5ec4224a20128481b4f7f"),
],
vec![
fe("0x2953736e94bb6b9f1b9707a4f1615e4efe1e1ce4bab218cbea92c785b128ffd1"),
fe("0x0b069353ba091618862f806180c0385f851b98d372b45f544ce7266ed6608dfc"),
],
vec![
fe("0x304f74d461ccc13115e4e0bcfb93817e55aeb7eb9306b64e4f588ac97d81f429"),
fe("0x15bbf146ce9bca09e8a33f5e77dfe4f5aad2a164a4617a4cb8ee5415cde913fc"),
],
vec![
fe("0x0ab4dfe0c2742cde44901031487964ed9b8f4b850405c10ca9ff23859572c8c6"),
fe("0x0e32db320a044e3197f45f7649a19675ef5eedfea546dea9251de39f9639779a"),
],
],
3 => vec![
vec![
fe("0x1acd63c67fbc9ab1626ed93491bda32e5da18ea9d8e4f10178d04aa6f8747ad0"),
fe("0x19f8a5d670e8ab66c4e3144be58ef6901bf93375e2323ec3ca8c86cd2a28b5a5"),
fe("0x1c0dc443519ad7a86efa40d2df10a011068193ea51f6c92ae1cfbb5f7b9b6893"),
],
vec![
fe("0x14b39e7aa4068dbe50fe7190e421dc19fbeab33cb4f6a2c4180e4c3224987d3d"),
fe("0x1d449b71bd826ec58f28c63ea6c561b7b820fc519f01f021afb1e35e28b0795e"),
fe("0x1ea2c9a89baaddbb60fa97fe60fe9d8e89de141689d1252276524dc0a9e987fc"),
],
vec![
fe("0x0478d66d43535a8cb57e9c1c3d6a2bd7591f9a46a0e9c058134d5cefdb3c7ff1"),
fe("0x19272db71eece6a6f608f3b2717f9cd2662e26ad86c400b21cde5e4a7b00bebe"),
fe("0x14226537335cab33c749c746f09208abb2dd1bd66a87ef75039be846af134166"),
],
vec![
fe("0x01fd6af15956294f9dfe38c0d976a088b21c21e4a1c2e823f912f44961f9a9ce"),
fe("0x18e5abedd626ec307bca190b8b2cab1aaee2e62ed229ba5a5ad8518d4e5f2a57"),
fe("0x0fc1bbceba0590f5abbdffa6d3b35e3297c021a3a409926d0e2d54dc1c84fda6"),
],
],
4 => vec![
vec![
fe("0x1797130f4b7a3e1777eb757bc6f287f6ab0fb85f6be63b09f3b16ef2b1405d38"),
fe("0x0a76225dc04170ae3306c85abab59e608c7f497c20156d4d36c668555decc6e5"),
fe("0x1fffb9ec1992d66ba1e77a7b93209af6f8fa76d48acb664796174b5326a31a5c"),
fe("0x25721c4fc15a3f2853b57c338fa538d85f8fbba6c6b9c6090611889b797b9c5f"),
],
vec![
fe("0x0c817fd42d5f7a41215e3d07ba197216adb4c3790705da95eb63b982bfcaf75a"),
fe("0x13abe3f5239915d39f7e13c2c24970b6df8cf86ce00a22002bc15866e52b5a96"),
fe("0x2106feea546224ea12ef7f39987a46c85c1bc3dc29bdbd7a92cd60acb4d391ce"),
fe("0x21ca859468a746b6aaa79474a37dab49f1ca5a28c748bc7157e1b3345bb0f959"),
],
vec![
fe("0x05ccd6255c1e6f0c5cf1f0df934194c62911d14d0321662a8f1a48999e34185b"),
fe("0x0f0e34a64b70a626e464d846674c4c8816c4fb267fe44fe6ea28678cb09490a4"),
fe("0x0558531a4e25470c6157794ca36d0e9647dbfcfe350d64838f5b1a8a2de0d4bf"),
fe("0x09d3dca9173ed2faceea125157683d18924cadad3f655a60b72f5864961f1455"),
],
vec![
fe("0x0328cbd54e8c0913493f866ed03d218bf23f92d68aaec48617d4c722e5bd4335"),
fe("0x2bf07216e2aff0a223a487b1a7094e07e79e7bcc9798c648ee3347dd5329d34b"),
fe("0x1daf345a58006b736499c583cb76c316d6f78ed6a6dffc82111e11a63fe412df"),
fe("0x176563472456aaa746b694c60e1823611ef39039b2edc7ff391e6f2293d2c404"),
],
],
8 => vec![
vec![
fe("0x00b86112693a4e7f3ac4eadfcc3f04d24a7afe51a87f82d4a435ad27f30aa2f9"),
fe("0x1a77348400a87f0180e294286a7a06c857f590e8ed17eed7a6b4cc1ca5a97929"),
fe("0x207feb0ffff2e419bc967dd544abbdd2dcc601316f49957f2319c9a04f56157d"),
fe("0x0df4aac4e6483265aa3fc462835a90380bc84004fc46d1a85e61baed3196ba48"),
fe("0x2f2df3db6ed0e27d3151201dfe7f57fc2e5ccc69c2458535dbdbb5d88aeabb4f"),
fe("0x2f51811c3568dbae396f86838c5c8b1bbf9b5bcb2ce98542e289184b95f74b7e"),
fe("0x1198ec466dc8c3f55b048369eac0490e835928891325d4cf4461da1d22230219"),
fe("0x19036827eb0714a1ee4fdd653d8667df192402e290dfdfc39bf005fdfa86c043"),
],
vec![
fe("0x0978d774018c29f2818df365312371ce4082a6c8c52d2a965516b76436349069"),
fe("0x231ed2d94767eb9ace111af9317b233fee037214e3f6d7e366a5812c8fd1dce5"),
fe("0x0fbd8502ceba8ab93eb04d1db535d25f4c3be8acac4e8e0467b9d606653456c2"),
fe("0x20e9fac35dda464e436a4d2eae4cdd5b52c9b712d5b4bfa43334463f8478d4bb"),
fe("0x15ba9fc4b175278a12a5ab39ee0121b06dd09b923bdedb69a26182821445ba00"),
fe("0x0c3c9aec9048b10a06d062675b63417a1ae8704f2918382466bf575e22a654d3"),
fe("0x2795a46eb4c79595a9de2191c524f0aaf92f764153b23c357ed50bf3a91cddf0"),
fe("0x10ab7893c4253d861276ea30f229eb86b90c69985fb6dde4aa50e24828caa81a"),
],
vec![
fe("0x2d4509d8159af62c44503f64fc01e953e90c6dced8ba75c58df2aa090a5fd359"),
fe("0x157946957f4feb94eae09b9a6c272204d107ea7b0e31b67524a6c9ee7f04e7b9"),
fe("0x30464efe02b65b862f9a0b59fea6d6934b393e65cdc3d29ae67a751a0d0f136a"),
fe("0x0965b3a2d05666d38ffcdac4e5ed020c742ba41d760e70f74dcd8f8b1324c901"),
fe("0x24531c784663d57639928f0a8f152038a779eebbd70f6585dacc971668ebec55"),
fe("0x2202070df8f85b79bf7debf24a9cc0f2cf30370f26a9372e01718dae7cb6171d"),
fe("0x08282fc0baa2e9eb76167b9ab2405db9c78f1f37b168be6435d5385a806e745a"),
fe("0x178c3d6e47cd33e5570311ec8ad8dbca0dbf54aadd1393738d898384c57795e7"),
],
vec![
fe("0x12ad905f9d82f33643b1fefb90dcefffeb818d1ec3f4fc3d6857203eff5ed1ea"),
fe("0x229682c9e4165b6ed1a2870c14a1c8bb7b1c7d3b52f42ce0228b85480666b4c4"),
fe("0x25190d853744dc11d155de5e479640302a333d47cf18dbf1ff241ce42c88d4c9"),
fe("0x00db47fadc76bf4fd8dcfe26908fe48ab42d399da939ac1f167ca8600cfbe7bc"),
fe("0x2ba5e88adcbe025760f2c8654935f0557d14c6d4125a838f312f2ba439e2e94c"),
fe("0x1376bbae85699dcc294f850c858b4b370e51ff3139bc3e0a1e52eb58d08ca41b"),
fe("0x1333fda1e3d58e0747f5c7361d5075526933ea283eee2ac37b6042c6083b6a42"),
fe("0x28bfc4dc9594e9add687744b79f4feb979e2143d742d4e4d1d5bb64bb799a02a"),
],
],
12 => vec![
vec![
fe("0x099741234d38e4e41b57764791d6fea6e522fc1773cef3bef7e98484327e04cd"),
fe("0x0d1c1f6b8e9c21bcb44467c303c9c32ee5103f2bed5a5f82fe4fce6a5e5321cb"),
fe("0x2b46e9453ff8796197fcf96c5e6b89eaa03101fe1f9d025573433a215c14432d"),
fe("0x08fa33e2e1fd049d1bd92f5fe34e2098a0f56c99097e3f822fa3616fbfa18de1"),
fe("0x06c6ff6719dfd6214dbe3e9d894fc40eddc710ea85d29b73c5c0f0bbe7689d5a"),
fe("0x27a5642213df899e80b1365afd1ab8facf86fecb094277d74594384b3fe02eeb"),
fe("0x21f5c7afcbbf04ac234adbb2edadb98ab1ceda1fda0e33858f2cf226b1cb7510"),
fe("0x08173628fb47ce14a39d3b1c5a861e03bc76e4f677014fc8d0942b74eea4b815"),
fe("0x12575f8647b44d45e415c0c27edb5261640f50ab9cea63690ba60ddbcb9446ac"),
fe("0x241f071e842262bd502aadbde4e0b3da3b78e6315ded09d262c95f747d1e69c3"),
fe("0x0259650661345bbb098aaaaf58071b5e059731542b79f0e840e782a1b0d7c1e8"),
fe("0x10e5ea58bb155ad798c9fc610ed9513e72df5199e086f0325b0e383123e3e14f"),
],
vec![
fe("0x2cb28f0c40f214ed89865255100264cf118e48e1b5c9556476560fe4015a9fb7"),
fe("0x2b8c2245518ea18766d1c1f7c9cde2dd3520a7eb5a625496d58084bcd62f0853"),
fe("0x210c52aace3329946c769c65dca979b4fd94a3f027f32d2e2958c646e6a03c3a"),
fe("0x2acd7e1455ec1ba3c84ebf2bbf2d86ddaf8a12f41b3ed6f4e5ff98bca1ff4d1b"),
fe("0x0b1a814a47a81eb8464f6bafe31b8b055166e9b871caf5146f999de131698509"),
fe("0x0c105801d7a64eda3f382f2d225241643e2c2a9007301308322b97c7ddcc5d40"),
fe("0x26aa5f6576056daf7ae8ae3c87f386700a4e26de68ec1dadfb4926eadf98afa9"),
fe("0x1a4f0c78d571788fb494cc0797f03a44912c9b77c49274f66e91e71fe25109f2"),
fe("0x134e5d6245f3a0d6a1ec5a69a2291d66add1d327a16a5f4e8639b492b8f75155"),
fe("0x11e6ff9bf1fcdb770e96a61a4357bcafeea13b9bdfdf09e738385a36258d5224"),
fe("0x198b03795e8c98fc132335ed964ddebcbf1741c20cd9b10963e4b1b6a53e12a2"),
fe("0x27b4e6922a47ddd107c752d83ffd27eeff76b62e7232dfdfa9e9b977bb8d2b84"),
],
vec![
fe("0x2ec91c78804ce2f0a13cfba2b164db3866beb7720f7252e908eb00966cae2668"),
fe("0x2488229bbff9d6b36f83b38d4e5372667b52ee88f727e9a715fefb6dbcdf2d53"),
fe("0x05ebde6c2e83d81fe05780b19506e18e93ee5e01536d77460dcdf7d1f34eb1ed"),
fe("0x1cd8a0cb5dc6e2b67fc32be19aef22ce977ff484f2188e603bda24ea8dc1da4d"),
fe("0x085135e4a7a89dcdfd03d78e753a1da01847553706a58c9f2c668fe318050a49"),
fe("0x1702b88e6d0a6c810326e56a58847cc8065ebb21f3a74466cb1983c00b0a8cf3"),
fe("0x2218bcb2b68aa0373fb76c33ca3f2c09f01a0d3effc0a0897b0174f4f3076400"),
fe("0x2ee1d3c964dddfff94daec6e0e02b604903be97047800cc68201428cd6024182"),
fe("0x0149d8755657a3e81f783350bd1671eba5c066866e118781f3d707450e773bda"),
fe("0x033818acbeebada683b755443046de5f65a51be2caac0bb8a1a111dab2bf2283"),
fe("0x10243f1cf06a2eb5d5701347b2e7ad9c088b3bf73dd8799337407c242cc8070e"),
fe("0x24aa143d475c356688ee0bc6e30e6e0b72587b88525fbbea1f1ac43dad42568f"),
],
vec![
fe("0x04712cd64dcf3358e37b00bddad2a3c6e77dba77d0b19b8187e7471f1c0fabe4"),
fe("0x22123070ab73aef7fd56d8f297599fc7078a741cdb0014a72efe31811c756318"),
fe("0x24a7c252fab1d28fe5cf3754dbcc02066f2054de39a0f2767579f675e52bd7fc"),
fe("0x09f3fd4c5e51db1531146097185d641cb1b497c96a51d7bd10313cd9e0d7bcaf"),
fe("0x1a1a52585439d7c78751de23cbb26dcd90faf9306da8b7555206b9333b036130"),
fe("0x046958b4c608468677dbc3f0833a8d5f440417d5680a2ad23bb0331b9709a677"),
fe("0x21231b60ee1fce7c57226a45d4366feac2bddeb63b667dc347031efe3cddf15a"),
fe("0x1e8c25cc2b98496b73a89444a645202da791bb4bc768b82816f402e7f6fc68ec"),
fe("0x0d68bd594ad770fb7a82ba7905fea85c150b4b335b5000fe05aa9a0aca01b1f7"),
fe("0x13c9ceeee08c137064fa514c154012813053ca329fa4c8da0805a428428a0ff7"),
fe("0x23fad6a546ecbbbe75b25184154e6af39e7bcca2b0083b632d70fc1241f6b5a1"),
fe("0x11ea79fb35b1a82c8bb6a9e1a17cc058975d8953279f362fc4c64944ea6c0b3d"),
],
],
16 => vec![
vec![
fe("0x1c4b724162943f08ad657557a638bf3e7bec8e57d5db00b9767682c8213132d8"),
fe("0x2035614227e301894056bf197033ea74e568e22a4644da4234fad6010f9195f1"),
fe("0x2867e28d25a0560e620af7e734e3155528406285834db300d3f88a5c63158545"),
fe("0x2d9aba98839b67ae817c673f35059c574d229529650b0b718e0a89de46bc9b77"),
fe("0x2620dcb35abd4a2c1c34219eed205f8cd095a96c00cb66dbe106127615562823"),
fe("0x189693ff51f37b66cdb414147465ba7aebbed3006853a8b6695b46d088da9f9d"),
fe("0x0dcf0bb67aa309914b0aee36c52661723c0b3af0abef68d43896bab66a111d80"),
fe("0x207abac676cab81bdee421468577de3d55df734bcfc5e7b0966c7c05f6676ed5"),
fe("0x072751669cc40c66a1e56cacd6a57ebef404b8089d8bcb827bed335b3a81f68b"),
fe("0x2dd0616e2fab6505dc6a0ef4470139d33dace70f7102a179c6c5f45e197a3b31"),
fe("0x2b6d0ca50c9b10229774a059bee1fc4d090c879bdc49fd79a6e97be85de5421c"),
fe("0x1315947727a368a3713ac6b5968cb50ae30ed2f26546062eb3be935284b2d7ac"),
fe("0x2c50018a609e805dd45428015180eef905c885d10f4bdc57bf822bcdbb7af7bc"),
fe("0x1a51c15bbedba963fb108a0b5470851f0e9896f6ebb1b3b6e51ed5c6c5e26ed4"),
fe("0x221a70968ceadb2b1a3949215db03d70457982d2e5bdce6edd224837ed952757"),
fe("0x11536753adfe665c99ccb6a38cbd9d06c3c7b7122b51dc063628a669dded0b36"),
],
vec![
fe("0x031897f30796e50a12b212bd146ed58fb50b443ae9a2dbfdb4f6b8fe5c61479e"),
fe("0x1f56af932c2012a38d77352c6ddb68fa13c1c9c14ba96fe7e6d170ffed0d759a"),
fe("0x1ecd95dae8cb508bcf72e6584898d2108854749c3cc686e4b02f8fe57aed95df"),
fe("0x02fabaa828c27c721f68c33d9d2b881210704a41d9c28f0a4af02e67fd345caf"),
fe("0x1da2fc3d073c37c2921af16e44330ee72caec36643d75e766c7437c59b12d6e4"),
fe("0x1ee20f40ea03cb4d5620d4422f732f547c198e40fef3839370868c44a0eb5d17"),
fe("0x1c79db7d2a94ac6cc15285a8e5de39e4e93b574c4d7274e08b5f27e98c96a9cc"),
fe("0x039323133de3519bd46223b43f8905772323e7111b398cab542b4fbdbd4b4d8d"),
fe("0x02e21c346778fed85751f95cca3da1e67f96fb5d4c4a400ec81e324f99ce88e3"),
fe("0x174199bd6b9babd9961f9076e8e09c47808ea337a2e83b4b80d7685e1f01912b"),
fe("0x29a0cc2bd15ed76a356d76fd2c33cc8df84e81068ac799e8a9eca0a8e2836d14"),
fe("0x05136a95e080ef56c23c099a7f8569667584655eb8d8cef8dc46ad90943f484a"),
fe("0x2820e3357abf5aeedf9a457603a627e9bdd807df2734bd6e81051b009f13093c"),
fe("0x205e6b631bad8731629ac0af44645716f0f9dd549d7be0aa4ecaa82fda20276c"),
fe("0x1eb9ab4dd7426e30f809c9929f84ea59d6136daa5f7022847ac8e01f04ee91e2"),
fe("0x2d89f59253f5b9a24e0188c1ffe0fe6d1585c30c019bba8b4c13fb65441d8b0c"),
],
vec![
fe("0x2bba2d4afc396925d03d39ea49fd7d23174a3ee023a3625b7d937936b78496f3"),
fe("0x0e59a58b602d4ca9e2ca2a10796a2356188a39eafa39e5525f53f560d3349cbd"),
fe("0x1cc183780561724fe8db9d8f8c456c32c8c29556c12c0157ef8fbc9f00e789a7"),
fe("0x054120821f04fd778dde8968f55ba1f8621a17aac4c0dae7fd3e19b5ffe7ed32"),
fe("0x1f02893a858c61d860abd638710bc13aa6ae1ee2f3227513c92378c9d74d04a9"),
fe("0x0371fd918bcd2d93ca93864f1dfb8c851c2074ed5b06fd1339ba1eedd20a4078"),
fe("0x1f3fb61afc1ccc181b5f33139f59cdbee76778726b9a73fbc196e745afd3f10a"),
fe("0x1f6ab61feaa716f4311adca796e444e9636abebb501dd7224692fdfa0d64c9fd"),
fe("0x0bbc08a17c0f31e73a0049d3464897167566880bbc884eab974c63b37e663589"),
fe("0x2f6e6c68f97cffb2035d973014678081f8a8f0fede19b7d5702d6b5e368f265c"),
fe("0x10eae0663059eba3e2b842c9076076b5241b4977dec5912f145d891fe58e9b93"),
fe("0x0f234bec6cc14051fbb4ebaadc99aaca497c1c2d5fef51e5edb6e8174fc737b5"),
fe("0x11d7a67da5230703f013ee574653d7e02dcb7fdf07f39f21410fda7ffcb09f9a"),
fe("0x0fee562c5444f1e094b4a6bd732b720771f9ba98db7dcf8231b8d17646843432"),
fe("0x0a076467e3a9603a7763d3202616302c719e0cc05870d0a8458842e30ce047d3"),
fe("0x1c733d34815220317facf6f54ea32006e2d3986aae8c72add1b2e1196234ddf9"),
],
vec![
fe("0x186d4f686994b1e7790b2ecba770c373ee1d70fd63b71073e65ecad88dd5a3a9"),
fe("0x12d1d277d3ccb4997d6cd545981b73bb48fab183bf9de1db16e0d1cbcf44c313"),
fe("0x16169740abc733a5753234257d3189d594d1ee5b2ba7ea9445707842d6805bdd"),
fe("0x2566d99b2fc31cb583aa146e9dd39ccc09436a45ade8a57c9f4c2f4daf9632b1"),
fe("0x146f2ba6b24e1f31962cbadae6b36fc4a896cc6eb99d63d9859a2a4f91aadcda"),
fe("0x2ad5aee9f6379bb5e275b6c2ac947fb0d54216c85a6c786b2b5ba133a1ce17ea"),
fe("0x2fcdf08ef110e18c877c4e7e28c4f902bface389a0b955af669065d0766d83a7"),
fe("0x2d9f57de99fac20c55f402f06d9c9d3a8f49d62fb106e4dd8cca84cbd685c06a"),
fe("0x1c039fc13e4161998ed60fc909e194ebceb1e7a4ee755d7201ff96ecf3632e03"),
fe("0x17f2ad6ecaaf3e5db04b6aea8d17bcb58cfe4a1024ecdba3ef5d57dbfd020202"),
fe("0x196ec1e27eab458b378961284b6a98a6766cd6b379b822868715e826e0a21406"),
fe("0x109afa2d34c4fbac99becfa70f20b2087f7158413a02604b386684f3f848a896"),
fe("0x148bfccbaaf2f7e951ef266b8c11a8c19bfe013749c38f5bcfe608d3282fb37c"),
fe("0x0a25d11a8d1ed5c87e03b684b7b6d34140063cb4f77e312ec5ac12da98911e40"),
fe("0x2479d850bb1a9b9143f126da89063a8a3e5d0a9d5917e2bfa5927d8eeb70c526"),
fe("0x115107e62902f6facbd8a1caa2a2f67a15301e5c034cb99c764f6402ca331781"),
],
],
_ => panic!("t must be 2|3|4|8|12|16"),
}
}
pub fn load_rc_partial(t: u32) -> Vec<F> {
match t {
2 => vec![
fe("0x0252ba5f6760bfbdfd88f67f8175e3fd6cd1c431b099b6bb2d108e7b445bb1b9"),
fe("0x179474cceca5ff676c6bec3cef54296354391a8935ff71d6ef5aeaad7ca932f1"),
fe("0x2c24261379a51bfa9228ff4a503fd4ed9c1f974a264969b37e1a2589bbed2b91"),
fe("0x1cc1d7b62692e63eac2f288bd0695b43c2f63f5001fc0fc553e66c0551801b05"),
fe("0x255059301aada98bb2ed55f852979e9600784dbf17fbacd05d9eff5fd9c91b56"),
fe("0x28437be3ac1cb2e479e1f5c0eccd32b3aea24234970a8193b11c29ce7e59efd9"),
fe("0x28216a442f2e1f711ca4fa6b53766eb118548da8fb4f78d4338762c37f5f2043"),
fe("0x2c1f47cd17fa5adf1f39f4e7056dd03feee1efce03094581131f2377323482c9"),
fe("0x07abad02b7a5ebc48632bcc9356ceb7dd9dafca276638a63646b8566a621afc9"),
fe("0x0230264601ffdf29275b33ffaab51dfe9429f90880a69cd137da0c4d15f96c3c"),
fe("0x1bc973054e51d905a0f168656497ca40a864414557ee289e717e5d66899aa0a9"),
fe("0x2e1c22f964435008206c3157e86341edd249aff5c2d8421f2a6b22288f0a67fc"),
fe("0x1224f38df67c5378121c1d5f461bbc509e8ea1598e46c9f7a70452bc2bba86b8"),
fe("0x02e4e69d8ba59e519280b4bd9ed0068fd7bfe8cd9dfeda1969d2989186cde20e"),
fe("0x1f1eccc34aaba0137f5df81fc04ff3ee4f19ee364e653f076d47e9735d98018e"),
fe("0x1672ad3d709a353974266c3039a9a7311424448032cd1819eacb8a4d4284f582"),
fe("0x283e3fdc2c6e420c56f44af5192b4ae9cda6961f284d24991d2ed602df8c8fc7"),
fe("0x1c2a3d120c550ecfd0db0957170fa013683751f8fdff59d6614fbd69ff394bcc"),
fe("0x216f84877aac6172f7897a7323456efe143a9a43773ea6f296cb6b8177653fbd"),
fe("0x2c0d272becf2a75764ba7e8e3e28d12bceaa47ea61ca59a411a1f51552f94788"),
fe("0x16e34299865c0e28484ee7a74c454e9f170a5480abe0508fcb4a6c3d89546f43"),
fe("0x175ceba599e96f5b375a232a6fb9cc71772047765802290f48cd939755488fc5"),
fe("0x0c7594440dc48c16fead9e1758b028066aa410bfbc354f54d8c5ffbb44a1ee32"),
fe("0x1a3c29bc39f21bb5c466db7d7eb6fd8f760e20013ccf912c92479882d919fd8d"),
fe("0x0ccfdd906f3426e5c0986ea049b253400855d349074f5a6695c8eeabcd22e68f"),
fe("0x14f6bc81d9f186f62bdb475ce6c9411866a7a8a3fd065b3ce0e699b67dd9e796"),
fe("0x0962b82789fb3d129702ca70b2f6c5aacc099810c9c495c888edeb7386b97052"),
fe("0x1a880af7074d18b3bf20c79de25127bc13284ab01ef02575afef0c8f6a31a86d"),
fe("0x10cba18419a6a332cd5e77f0211c154b20af2924fc20ff3f4c3012bb7ae9311b"),
fe("0x057e62a9a8f89b3ebdc76ba63a9eaca8fa27b7319cae3406756a2849f302f10d"),
fe("0x287c971de91dc0abd44adf5384b4988cb961303bbf65cff5afa0413b44280cee"),
fe("0x21df3388af1687bbb3bca9da0cca908f1e562bc46d4aba4e6f7f7960e306891d"),
fe("0x1be5c887d25bce703e25cc974d0934cd789df8f70b498fd83eff8b560e1682b3"),
fe("0x268da36f76e568fb68117175cea2cd0dd2cb5d42fda5acea48d59c2706a0d5c1"),
fe("0x0e17ab091f6eae50c609beaf5510ececc5d8bb74135ebd05bd06460cc26a5ed6"),
fe("0x04d727e728ffa0a67aee535ab074a43091ef62d8cf83d270040f5caa1f62af40"),
fe("0x0ddbd7bf9c29341581b549762bc022ed33702ac10f1bfd862b15417d7e39ca6e"),
fe("0x2790eb3351621752768162e82989c6c234f5b0d1d3af9b588a29c49c8789654b"),
fe("0x1e457c601a63b73e4471950193d8a570395f3d9ab8b2fd0984b764206142f9e9"),
fe("0x21ae64301dca9625638d6ab2bbe7135ffa90ecd0c43ff91fc4c686fc46e091b0"),
fe("0x0379f63c8ce3468d4da293166f494928854be9e3432e09555858534eed8d350b"),
fe("0x002d56420359d0266a744a080809e054ca0e4921a46686ac8c9f58a324c35049"),
fe("0x123158e5965b5d9b1d68b3cd32e10bbeda8d62459e21f4090fc2c5af963515a6"),
fe("0x0be29fc40847a941661d14bbf6cbe0420fbb2b6f52836d4e60c80eb49cad9ec1"),
fe("0x1ac96991dec2bb0557716142015a453c36db9d859cad5f9a233802f24fdf4c1a"),
fe("0x1596443f763dbcc25f4964fc61d23b3e5e12c9fa97f18a9251ca3355bcb0627e"),
fe("0x12e0bcd3654bdfa76b2861d4ec3aeae0f1857d9f17e715aed6d049eae3ba3212"),
fe("0x0fc92b4f1bbea82b9ea73d4af9af2a50ceabac7f37154b1904e6c76c7cf964ba"),
fe("0x1f9c0b1610446442d6f2e592a8013f40b14f7c7722236f4f9c7e965233872762"),
fe("0x0ebd74244ae72675f8cde06157a782f4050d914da38b4c058d159f643dbbf4d3"),
fe("0x2cb7f0ed39e16e9f69a9fafd4ab951c03b0671e97346ee397a839839dccfc6d1"),
fe("0x1a9d6e2ecff022cc5605443ee41bab20ce761d0514ce526690c72bca7352d9bf"),
fe("0x2a115439607f335a5ea83c3bc44a9331d0c13326a9a7ba3087da182d648ec72f"),
fe("0x23f9b6529b5d040d15b8fa7aee3e3410e738b56305cd44f29535c115c5a4c060"),
fe("0x05872c16db0f72a2249ac6ba484bb9c3a3ce97c16d58b68b260eb939f0e6e8a7"),
fe("0x1300bdee08bb7824ca20fb80118075f40219b6151d55b5c52b624a7cdeddf6a7"),
],
3 => vec![
fe("0x1a1d063e54b1e764b63e1855bff015b8cedd192f47308731499573f23597d4b5"),
fe("0x26abc66f3fdf8e68839d10956259063708235dccc1aa3793b91b002c5b257c37"),
fe("0x0c7c64a9d887385381a578cfed5aed370754427aabca92a70b3c2b12ff4d7be8"),
fe("0x1cf5998769e9fab79e17f0b6d08b2d1eba2ebac30dc386b0edd383831354b495"),
fe("0x0f5e3a8566be31b7564ca60461e9e08b19828764a9669bc17aba0b97e66b0109"),
fe("0x18df6a9d19ea90d895e60e4db0794a01f359a53a180b7d4b42bf3d7a531c976e"),
fe("0x04f7bf2c5c0538ac6e4b782c3c6e601ad0ea1d3a3b9d25ef4e324055fa3123dc"),
fe("0x29c76ce22255206e3c40058523748531e770c0584aa2328ce55d54628b89ebe6"),
fe("0x198d425a45b78e85c053659ab4347f5d65b1b8e9c6108dbe00e0e945dbc5ff15"),
fe("0x25ee27ab6296cd5e6af3cc79c598a1daa7ff7f6878b3c49d49d3a9a90c3fdf74"),
fe("0x138ea8e0af41a1e024561001c0b6eb1505845d7d0c55b1b2c0f88687a96d1381"),
fe("0x306197fb3fab671ef6e7c2cba2eefd0e42851b5b9811f2ca4013370a01d95687"),
fe("0x1a0c7d52dc32a4432b66f0b4894d4f1a21db7565e5b4250486419eaf00e8f620"),
fe("0x2b46b418de80915f3ff86a8e5c8bdfccebfbe5f55163cd6caa52997da2c54a9f"),
fe("0x12d3e0dc0085873701f8b777b9673af9613a1af5db48e05bfb46e312b5829f64"),
fe("0x263390cf74dc3a8870f5002ed21d089ffb2bf768230f648dba338a5cb19b3a1f"),
fe("0x0a14f33a5fe668a60ac884b4ca607ad0f8abb5af40f96f1d7d543db52b003dcd"),
fe("0x28ead9c586513eab1a5e86509d68b2da27be3a4f01171a1dd847df829bc683b9"),
fe("0x1c6ab1c328c3c6430972031f1bdb2ac9888f0ea1abe71cffea16cda6e1a7416c"),
fe("0x1fc7e71bc0b819792b2500239f7f8de04f6decd608cb98a932346015c5b42c94"),
fe("0x03e107eb3a42b2ece380e0d860298f17c0c1e197c952650ee6dd85b93a0ddaa8"),
fe("0x2d354a251f381a4669c0d52bf88b772c46452ca57c08697f454505f6941d78cd"),
fe("0x094af88ab05d94baf687ef14bc566d1c522551d61606eda3d14b4606826f794b"),
fe("0x19705b783bf3d2dc19bcaeabf02f8ca5e1ab5b6f2e3195a9d52b2d249d1396f7"),
fe("0x09bf4acc3a8bce3f1fcc33fee54fc5b28723b16b7d740a3e60cef6852271200e"),
fe("0x1803f8200db6013c50f83c0c8fab62843413732f301f7058543a073f3f3b5e4e"),
fe("0x0f80afb5046244de30595b160b8d1f38bf6fb02d4454c0add41f7fef2faf3e5c"),
fe("0x126ee1f8504f15c3d77f0088c1cfc964abcfcf643f4a6fea7dc3f98219529d78"),
fe("0x23c203d10cfcc60f69bfb3d919552ca10ffb4ee63175ddf8ef86f991d7d0a591"),
fe("0x2a2ae15d8b143709ec0d09705fa3a6303dec1ee4eec2cf747c5a339f7744fb94"),
fe("0x07b60dee586ed6ef47e5c381ab6343ecc3d3b3006cb461bbb6b5d89081970b2b"),
fe("0x27316b559be3edfd885d95c494c1ae3d8a98a320baa7d152132cfe583c9311bd"),
fe("0x1d5c49ba157c32b8d8937cb2d3f84311ef834cc2a743ed662f5f9af0c0342e76"),
fe("0x2f8b124e78163b2f332774e0b850b5ec09c01bf6979938f67c24bd5940968488"),
fe("0x1e6843a5457416b6dc5b7aa09a9ce21b1d4cba6554e51d84665f75260113b3d5"),
fe("0x11cdf00a35f650c55fca25c9929c8ad9a68daf9ac6a189ab1f5bc79f21641d4b"),
fe("0x21632de3d3bbc5e42ef36e588158d6d4608b2815c77355b7e82b5b9b7eb560bc"),
fe("0x0de625758452efbd97b27025fbd245e0255ae48ef2a329e449d7b5c51c18498a"),
fe("0x2ad253c053e75213e2febfd4d976cc01dd9e1e1c6f0fb6b09b09546ba0838098"),
fe("0x1d6b169ed63872dc6ec7681ec39b3be93dd49cdd13c813b7d35702e38d60b077"),
fe("0x1660b740a143664bb9127c4941b67fed0be3ea70a24d5568c3a54e706cfef7fe"),
fe("0x0065a92d1de81f34114f4ca2deef76e0ceacdddb12cf879096a29f10376ccbfe"),
fe("0x1f11f065202535987367f823da7d672c353ebe2ccbc4869bcf30d50a5871040d"),
fe("0x26596f5c5dd5a5d1b437ce7b14a2c3dd3bd1d1a39b6759ba110852d17df0693e"),
fe("0x16f49bc727e45a2f7bf3056efcf8b6d38539c4163a5f1e706743db15af91860f"),
fe("0x1abe1deb45b3e3119954175efb331bf4568feaf7ea8b3dc5e1a4e7438dd39e5f"),
fe("0x0e426ccab66984d1d8993a74ca548b779f5db92aaec5f102020d34aea15fba59"),
fe("0x0e7c30c2e2e8957f4933bd1942053f1f0071684b902d534fa841924303f6a6c6"),
fe("0x0812a017ca92cf0a1622708fc7edff1d6166ded6e3528ead4c76e1f31d3fc69d"),
fe("0x21a5ade3df2bc1b5bba949d1db96040068afe5026edd7a9c2e276b47cf010d54"),
fe("0x01f3035463816c84ad711bf1a058c6c6bd101945f50e5afe72b1a5233f8749ce"),
fe("0x0b115572f038c0e2028c2aafc2d06a5e8bf2f9398dbd0fdf4dcaa82b0f0c1c8b"),
fe("0x1c38ec0b99b62fd4f0ef255543f50d2e27fc24db42bc910a3460613b6ef59e2f"),
fe("0x1c89c6d9666272e8425c3ff1f4ac737b2f5d314606a297d4b1d0b254d880c53e"),
fe("0x03326e643580356bf6d44008ae4c042a21ad4880097a5eb38b71e2311bb88f8f"),
fe("0x268076b0054fb73f67cee9ea0e51e3ad50f27a6434b5dceb5bdde2299910a4c9"),
],
4 => vec![
fe("0x0c6f8f958be0e93053d7fd4fc54512855535ed1539f051dcb43a26fd926361cf"),
fe("0x123106a93cd17578d426e8128ac9d90aa9e8a00708e296e084dd57e69caaf811"),
fe("0x26e1ba52ad9285d97dd3ab52f8e840085e8fa83ff1e8f1877b074867cd2dee75"),
fe("0x1cb55cad7bd133de18a64c5c47b9c97cbe4d8b7bf9e095864471537e6a4ae2c5"),
fe("0x1dcd73e46acd8f8e0e2c7ce04bde7f6d2a53043d5060a41c7143f08e6e9055d0"),
fe("0x011003e32f6d9c66f5852f05474a4def0cda294a0eb4e9b9b12b9bb4512e5574"),
fe("0x2b1e809ac1d10ab29ad5f20d03a57dfebadfe5903f58bafed7c508dd2287ae8c"),
fe("0x2539de1785b735999fb4dac35ee17ed0ef995d05ab2fc5faeaa69ae87bcec0a5"),
fe("0x0c246c5a2ef8ee0126497f222b3e0a0ef4e1c3d41c86d46e43982cb11d77951d"),
fe("0x192089c4974f68e95408148f7c0632edbb09e6a6ad1a1c2f3f0305f5d03b527b"),
fe("0x1eae0ad8ab68b2f06a0ee36eeb0d0c058529097d91096b756d8fdc2fb5a60d85"),
fe("0x179190e5d0e22179e46f8282872abc88db6e2fdc0dee99e69768bd98c5d06bfb"),
fe("0x29bb9e2c9076732576e9a81c7ac4b83214528f7db00f31bf6cafe794a9b3cd1c"),
fe("0x225d394e42207599403efd0c2464a90d52652645882aac35b10e590e6e691e08"),
fe("0x064760623c25c8cf753d238055b444532be13557451c087de09efd454b23fd59"),
fe("0x10ba3a0e01df92e87f301c4b716d8a394d67f4bf42a75c10922910a78f6b5b87"),
fe("0x0e070bf53f8451b24f9c6e96b0c2a801cb511bc0c242eb9d361b77693f21471c"),
fe("0x1b94cd61b051b04dd39755ff93821a73ccd6cb11d2491d8aa7f921014de252fb"),
fe("0x1d7cb39bafb8c744e148787a2e70230f9d4e917d5713bb050487b5aa7d74070b"),
fe("0x2ec93189bd1ab4f69117d0fe980c80ff8785c2961829f701bb74ac1f303b17db"),
fe("0x2db366bfdd36d277a692bb825b86275beac404a19ae07a9082ea46bd83517926"),
fe("0x062100eb485db06269655cf186a68532985275428450359adc99cec6960711b8"),
fe("0x0761d33c66614aaa570e7f1e8244ca1120243f92fa59e4f900c567bf41f5a59b"),
fe("0x20fc411a114d13992c2705aa034e3f315d78608a0f7de4ccf7a72e494855ad0d"),
fe("0x25b5c004a4bdfcb5add9ec4e9ab219ba102c67e8b3effb5fc3a30f317250bc5a"),
fe("0x23b1822d278ed632a494e58f6df6f5ed038b186d8474155ad87e7dff62b37f4b"),
fe("0x22734b4c5c3f9493606c4ba9012499bf0f14d13bfcfcccaa16102a29cc2f69e0"),
fe("0x26c0c8fe09eb30b7e27a74dc33492347e5bdff409aa3610254413d3fad795ce5"),
fe("0x070dd0ccb6bd7bbae88eac03fa1fbb26196be3083a809829bbd626df348ccad9"),
fe("0x12b6595bdb329b6fb043ba78bb28c3bec2c0a6de46d8c5ad6067c4ebfd4250da"),
fe("0x248d97d7f76283d63bec30e7a5876c11c06fca9b275c671c5e33d95bb7e8d729"),
fe("0x1a306d439d463b0816fc6fd64cc939318b45eb759ddde4aa106d15d9bd9baaaa"),
fe("0x28a8f8372e3c38daced7c00421cb4621f4f1b54ddc27821b0d62d3d6ec7c56cf"),
fe("0x0094975717f9a8a8bb35152f24d43294071ce320c829f388bc852183e1e2ce7e"),
fe("0x04d5ee4c3aa78f7d80fde60d716480d3593f74d4f653ae83f4103246db2e8d65"),
fe("0x2a6cf5e9aa03d4336349ad6fb8ed2269c7bef54b8822cc76d08495c12efde187"),
fe("0x2304d31eaab960ba9274da43e19ddeb7f792180808fd6e43baae48d7efcba3f3"),
fe("0x03fd9ac865a4b2a6d5e7009785817249bff08a7e0726fcb4e1c11d39d199f0b0"),
fe("0x00b7258ded52bbda2248404d55ee5044798afc3a209193073f7954d4d63b0b64"),
fe("0x159f81ada0771799ec38fca2d4bf65ebb13d3a74f3298db36272c5ca65e92d9a"),
fe("0x1ef90e67437fbc8550237a75bc28e3bb9000130ea25f0c5471e144cf4264431f"),
fe("0x1e65f838515e5ff0196b49aa41a2d2568df739bc176b08ec95a79ed82932e30d"),
fe("0x2b1b045def3a166cec6ce768d079ba74b18c844e570e1f826575c1068c94c33f"),
fe("0x0832e5753ceb0ff6402543b1109229c165dc2d73bef715e3f1c6e07c168bb173"),
fe("0x02f614e9cedfb3dc6b762ae0a37d41bab1b841c2e8b6451bc5a8e3c390b6ad16"),
fe("0x0e2427d38bd46a60dd640b8e362cad967370ebb777bedff40f6a0be27e7ed705"),
fe("0x0493630b7c670b6deb7c84d414e7ce79049f0ec098c3c7c50768bbe29214a53a"),
fe("0x22ead100e8e482674decdab17066c5a26bb1515355d5461a3dc06cc85327cea9"),
fe("0x25b3e56e655b42cdaae2626ed2554d48583f1ae35626d04de5084e0b6d2a6f16"),
fe("0x1e32752ada8836ef5837a6cde8ff13dbb599c336349e4c584b4fdc0a0cf6f9d0"),
fe("0x2fa2a871c15a387cc50f68f6f3c3455b23c00995f05078f672a9864074d412e5"),
fe("0x2f569b8a9a4424c9278e1db7311e889f54ccbf10661bab7fcd18e7c7a7d83505"),
fe("0x044cb455110a8fdd531ade530234c518a7df93f7332ffd2144165374b246b43d"),
fe("0x227808de93906d5d420246157f2e42b191fe8c90adfe118178ddc723a5319025"),
fe("0x02fcca2934e046bc623adead873579865d03781ae090ad4a8579d2e7a6800355"),
fe("0x0ef915f0ac120b876abccceb344a1d36bad3f3c5ab91a8ddcbec2e060d8befac"),
],
8 => vec![
fe("0x0da23df12d0bf47bb92f15ee189386c20f552d0bc66ae492b92d69556b2fe75a"),
fe("0x155be88bc5ddf8e0c6c741286cdd5ddd559279a455b9bbb61d5a0b004e545d5e"),
fe("0x0553fbb5b32db860e0bb12cef3aab4e0dbbdb1ea8704d335a18fa8b4df112c36"),
fe("0x12f6a3a61a3139221cb5875cf455b942580c00942499932dfcacf6f75cb80ad6"),
fe("0x2faf9e95457781b3c61de8a1faadda67f76f52bb81255fac8819bcc104071e05"),
fe("0x1c7639cb68d3cfa69f3d795d1a1dd4eba176d0c29701e7b677ea0750b4ccd1db"),
fe("0x0d9d85a46281f81502fbcfb430f4d08ab504c502d2feae2ab4a26d87bebea0dd"),
fe("0x00a9b7074ea11d9931cf4af16952f398777aaa36413df14cedc101c7693812d3"),
fe("0x07fab349ddb7d62a5edc0b6a62b300715634e5dccab808d8fa6ae62b406705a3"),
fe("0x11f8f3afbd6fe6bda7d055a536ab3de9c40c8155b31d397f63ef21ac974cf52d"),
fe("0x0007c569f8f49899805d22a1930883968a3cf058993e0adfd06da437ae50e830"),
fe("0x15dfb18bf1b6087c0e638f2189a7b34534549ffe8fca5afccf7e528a3338cc92"),
fe("0x2140caa062d2fa72722ad48fb71bbc9f534043dab90dfa24b96664eaa2f0ac6a"),
fe("0x11c06fe4e5398d4704271b84e6023b07b189dd1d2023dd599b33defe4251b715"),
fe("0x0775f90bae5f8f8157eb73bbc7ae69b74d44761cf0df3b4666eeb2860878c0df"),
fe("0x0225befb64b758b837a4305e104d5e510d893653559d8768dc79325ff89d6b9f"),
fe("0x201a730245d9227f1232cc02f486c18cfa1fba40665ed3d1bbbdcd19b03cac4f"),
fe("0x128b63b12a6647f80c686aaab15b0563c1a33f475dc18caa434ab64f1e290acb"),
fe("0x0a34ce8153d4e2e1158de05d276530cf3c749c16c7e09f3b671a973b0efb0839"),
fe("0x2809c5d323665513c8c4a96ea4dc08e3aba43699bca1198f2b559915082495ce"),
fe("0x23b929e7d71fe425f36f32975e9a68bbf83c16622678f061ed78a0c9ce318be3"),
fe("0x1ca1a93d02ae448ab773f95c6b88c0d01f89c0c3d25ad625042771dd5a7e74a9"),
fe("0x03c7381ccdfd209a8cba5627a058c33f472b24d2b1a55d9dd47f60dc7b474e7e"),
fe("0x00be1a29bb668a25eaedffccef6c01c90688229e8fc4be9812e371d4d61c3015"),
fe("0x2c821bfbd5c415fc076fc83895edab9e5256ee826946a865b8c82f0189af4626"),
fe("0x0b8ff5b252182f6a15cff90144c1e7ac1678739882c90fe46d0a29db7a0cba77"),
fe("0x1c0e94b15306baf1b017623888b8d4c5402ee81fd213c4a5e42f52729deb7d5c"),
fe("0x2031deb0f13ce17a5b44edbacf5a0410e23348c2c7657383a8ffdeb5c5ca1cd4"),
fe("0x0e34d14f44e8eb98ac078ec90eb718c3034249fbaeb13d24f3d5b6a4002018ac"),
fe("0x2a10f1b76f8b1cc429820030c58b3d23ebfb775a43b07928b9868891c2cb4cca"),
fe("0x0535bf4f7fb763f981d2c0c7ecd2237a461ac385e2235fb35222b512f1dbd1b7"),
fe("0x12ccb3fbffeff74fb7ce3b9943f609dc0d7fe34e3b5e6b199628e86d5576cc18"),
fe("0x1f44cd78220a2e66be6c9eb3bcffc498a47f22c3eb476591cf456d518e3e126c"),
fe("0x1d60e9e3444a748b8c22d7d10e825c536290b723fcdfa046436353d6f9abc073"),
fe("0x05a3ccc67bd014ef2544927f9b96ff58e348954e40af67861ab88d78ff4b6688"),
fe("0x1be5b195896e9ec23b9d3eb898734c385272ed64bdcb236223f5a3436986dc6d"),
fe("0x1d6427dd07a0b46a8ebacaa82e8c04de8e7e94a18849c9275b8b4827a873cdab"),
fe("0x2f09a403f946b692704fe4d5ae69625441c93a7f93dcb4f8f7d337baa735ad9a"),
fe("0x1807540511593488e084b7297b6ff67b748c71731b6ca64aa8d3823e81f41b37"),
fe("0x0f1daab7a702ac80d108b24845bda04b732f3564ebe57392e470380199522e1d"),
fe("0x1797d0f72bf0b47a45ceaf82df261439bc5e3b0ae55cf1069733d5a0b51765ca"),
fe("0x2adbb9b4003631c5e3d02ce959930c75d4d25281c86febc61dfdf35e00cfbdad"),
fe("0x1347ad87393ef928d2800fa2a548328ef9bddf5646da79d507d2f2055db335d6"),
fe("0x15658e02d31e2c200dadf6a985652eccd30cb959168cde7b74c7239539d2df1e"),
fe("0x01f00dc28bced12a74c3ce687dd3fa996d6f8bb29bc60cda4f3aed191a6fe8d0"),
fe("0x154ebcc230244b68b9a8f51a56ff0541a92ea2cbb3e77b263cb03a8bd89491f7"),
fe("0x1f65f74b523a8c875885378e93d1946c7a3f810e2eecdea94b80c4f741ea6cf9"),
fe("0x2504a559a4bd23ed689acc9b6cb4062479a6b29692e2b8cce40058daf0505778"),
fe("0x24496d9926e4e565ef860e52396a2935689c87ca99abd046bc279ce1bfc43206"),
fe("0x2c9ccd22b143f4d8d483846d1960e7144a5c9354ea48cd1a71bdc82fbb929838"),
fe("0x2b9bd02e1b064a8db321a1cd212a7a6dc47274f6eb5fcfa4f17d6f690dddf8c4"),
fe("0x0b21f0004118382f32fe441fbf36c0a38ae41873ae42d3b6ea5f0c6816e00472"),
fe("0x10756efb491852587059f3e48b605a3bebabaab0a1ee5ff1758eb30623b7602c"),
fe("0x127574a38823886d1f4841b540e29d67efe35aa8b3c685f969b6bc6cbab5064a"),
fe("0x24751d620ed2a3db4382265b8c33b666b85beae7aa87f38e28bd2f8d637ff9d0"),
fe("0x2e3d7208892e8a92e887fccccfe04d8d0fe994bc443641a9fc76c43da02f453d"),
fe("0x11c3f6719071e6810699be20e1b1858b9ed00d8166bf15434cd5e43507b9d62b"),
],
12 => vec![
fe("0x2fcd24c963827617cdce5a14014ea5af93e46190242697ea182ff72b0479d09e"),
fe("0x298413df06c60b6f56e22c4b237c9a682d01e03230c84d0149a6e704c22ad5f9"),
fe("0x23d87025bd3f3352a2a0c2f4703c9d10d845d00be55597465b12d0fd0c80135d"),
fe("0x25777b7dc170f1990a4537756b084a4fe6ec946b362f73995a86fd753dc5d17f"),
fe("0x1a05ec70a771db4dbd3e928f645a5202912c0eacabf5f3e2449ea4672fe6f538"),
fe("0x157d383a0a40cd84d5bcce99b5238dae37cfa07311b47f441402c24a70a2da70"),
fe("0x23adce7a7095246ec0acdd4f44cee56e1dd349c99353b35e7f058a490a5776c8"),
fe("0x28a78a8c74be2917b3f4d925391c74386570bb20504ca07655d9613068a6ae38"),
fe("0x2998c6107b89a079db6a42a6cb1140f2292b1d29cc813571aa8b5b0281ad99a6"),
fe("0x1d6417c714dc35362d500bc5c3e69d5d95f7693801bd976af94a536e33aeab15"),
fe("0x0cb5d2fcf0bf609426936548d3060351eddea4653ca31b1d0bed3479c2d8d2bb"),
fe("0x05a772552bde1aeca89e8562941bad0c0046da3e1ad46b1783ae34e05c2627b7"),
fe("0x222e2f3bc4dcec4275d26f99edb2f2bdb96721c4be2736bca2e19e05c8c6cbe8"),
fe("0x01693e6e0a0ed4ae486d22a84d5f36f7c7ac6c4ab161750cce408dc6d85ba290"),
fe("0x2dd7278a597351e158c42fc05ef616eb37c4749b713585d5e0e37ada091913c1"),
fe("0x138a7baad9fe0adbc5e15a05afd9f9ab81adcde6632dbd1c6e625ad1a44e7c59"),
fe("0x27449334c2bd4916af3126cb62f1f65f8e59442723209956190f1b1e12295f06"),
fe("0x082d5c05f010ddd7c7860ff0842e0dd5f543c66c54a99cc2357ae8fbfc4f9797"),
fe("0x0e58d85893bc856ef746224ec8f775019bbc7a2b128734bbb2ad782998929cd4"),
fe("0x19e615561f2fccfefc5e7bd8a91d0eec064f13efa39f4752c38414c914af7b58"),
fe("0x06b0079dcff25e7a4f14cbe0ed7211580ba9fade52413dfd97fadc912490b49d"),
fe("0x1cad166c3863436fb3005fe9d47ebd6d8190b12a6b2ed5f0eb938dc5c9a570d0"),
fe("0x00373c8d89f94b7ec87ca7c5e405246bd56b7543879266bb16993a410835bc87"),
fe("0x0b5ce685b104977696dfc5023580345a3dc8c3ab1c9bc451e1162561e0be2053"),
fe("0x2940a7fdcf1004beeb5eaa033014c933fcda85ff801bcdd6d65593946125b953"),
fe("0x0c194b50d092ecd9a8afb7ee4602ff9ae4d390d28d65c938bc3ee08b2840a3fa"),
fe("0x0caebb769b00ca8bb25621a62869ae11f2c69136555a4369de5de51159d521f8"),
fe("0x0cf3f5150ce1725ee5d4c31c962e728d34735a95f3e46dc37f42ea79b067f4ed"),
fe("0x2ef94a7f698e00d7e534a59ee6c55b0391bb6342f121d3ae61abf3451171b9b7"),
fe("0x2596cea8f3d3be305178f1131b3d0004217846b09eeb2a4ea2d5e3e2f86af2ff"),
fe("0x0ffd09263a4c0040581a28cd752d73abce7eb1b7e28fea49fc4b2e25b8629076"),
fe("0x0b7ab851fcd83492a436725c15ea60b9b496786a656572acdc98a1a5486cd839"),
fe("0x0057e2cab9000c8c2c72ac0945ce8ec6ef062dfed248ac4e11843fce99c47d12"),
fe("0x20d795b787d04ba638aebb728c9dc0fe4693affa15933addb47ec94fc820cea7"),
fe("0x0fa35cec60bd5f5c96e39889ccc508e3bff3434c69934c1d442739d46d20a461"),
fe("0x198ab5ed78a09c50ebe7011c5a1422c331d21805dd382ff3e9fff30aaf97ea57"),
fe("0x2479cdff07acb7a61b185d125fe98cbaf96d63c8f6a4a67a5fae4fa082884b74"),
fe("0x231dffb273a36b5505f6b97fce8b215b13845f51e34ca519025c37dac74e6b3c"),
fe("0x0b4e6584bff8c2ef606ca396f8c71de75ff943351dbf3f8407bb06f93e55e226"),
fe("0x011189898119688cc6d8c088e1300e30734107dcc6c0866c42b40316e619d962"),
fe("0x17cd979367205c7d09bdaabaa81ebb4e31993eacff14dbbd001ee80f42281d4d"),
fe("0x00f7a32685178282bc522d621cfd3c089fdd9c11e76ede52987c1e6690f2d7d9"),
fe("0x04f8c40a97e28dc76270ade0e61860b18ada2e01466d08a7eee7ddf1cb77fefa"),
fe("0x1a85ca1e8641b5cd585c41276374daf325f11de38721df3973be90801fbebe9b"),
fe("0x18a54a7a63cae9fdc3a9969abec2d9bbaf97d9ae99896f1610751c7a129b48f5"),
fe("0x0e3ee5f81508929b701f6a244631ce4e8a25c02832f9ae85770bbe9c7a040630"),
fe("0x1f09078f3dab46bb46c659dadb53f98c4586ec718509f222ca9f849455ecc119"),
fe("0x2d30f138068689d3c5bf330c551f5e552911bb5567048621c540aa4ada7fbe66"),
fe("0x09168af78f1adf4d69e108f7b509c43dafd108c5d87a2421fc7dea574aac44b1"),
fe("0x2f19a431d8d03fbba2da044961c6d6920e5340ac32314f025b66db1acfe82c98"),
fe("0x04a17fc8d6a57395a5495ed1ded8a06ea45624cd1b85e3cf9c30c841cc7a6c07"),
fe("0x0b1b503a4d99389d807a7cd8cb1e1c7b87881512d04251ba0f9b26668511c8b3"),
fe("0x1a27def64d35b0dc44a00b12d42fa969228082a97e06ed7c85fec0df35106b6a"),
fe("0x0da359b25a62ac7c80aeff176e3c2a24f34978042ebc131e0579134bf621a5bc"),
fe("0x2287ba9daf1365ce1ed2f9599fe95e4e19b5a6744c4cd89bd4a9f79ae45f68e5"),
fe("0x21d1a8123d862670919a26f54370d937ff96c87eb250ea9cb542b988becd5b1b"),
fe("0x163cd5792b124086b78d81e70bf8765d131f05c580fd845065c23491af2648a8"),
],
16 => vec![
fe("0x0f1139934f4fb0ff2f4bd0b7d28544a1c8938de92dcf965e1a1781c86aa8e6c2"),
fe("0x2b6f9a7fe52ad45ae8857683ea066cdba3f7c3dc7da78411c83583070ac12d47"),
fe("0x18fcc896be2e9edcfd06d0ef23c523956148f3abcffcb0802e57c65dfa7eb6d8"),
fe("0x13ae7493c450aec181999c3fb9c0b4d4a5a595672b2cab4181a5b52ec2fccf68"),
fe("0x21376c58b83138f960981bcf86f680c79081c95f6914477fb5d6cfc7497c1526"),
fe("0x142335a55e77462aaac6aebd3f92ccb12e15204546af29eed4f5e73600a4bf8c"),
fe("0x0c5ddae16b04dc051c9f419c25b7f6408a3d653ebda349ce9332593b371fdf33"),
fe("0x2689b4678392a84600cf0b6fb25c9b35c065b6958aaa056ae8b099fa61e87b75"),
fe("0x2c57afc39ed2d8ec9b9cf1c685f7b73c0ac1d0540460ef91ee30e56b84607be5"),
fe("0x1b78b860308b6b50845c744c96a2237fc6ea46a05d4884dbe8a5e797432c269a"),
fe("0x13cc94f496327f946bd5bf504ab86714bc345f836fcb9b1fe307c40d62c3be3b"),
fe("0x24d6de093538a86baacd50c2ba65c212bbfd46c88acf6adc911e678bfc7c1014"),
fe("0x2258067f017ee12ae23944f9b71c0e8f39d165a22995c8a12a76bb340c853aeb"),
fe("0x14b3d102f33c05e6ea23d0159d2bf879ca8bca2ee547e25bde0d3289295542fc"),
fe("0x2ab89c7fffc98dc5ba3374ee0ec8c58607e45015b08cb6d13d282d13fdcd9cbb"),
fe("0x2b7b6c147957fe1e074237cb272f8b38fadf548ab37c7cca248c2b6e7f6ef184"),
fe("0x22e4d3e1b886adcd0f5b0cf73c1a9bf1d3db30305651dc858b75c2c22c1b4b0d"),
fe("0x0b68fa9b0d5df7dce1621bebf659a18285204c82effc3a17a52c8f869a04386f"),
fe("0x1634373a4427e6ed6822633c676f76244b7323df66094f7dac02febbabf93ce6"),
fe("0x161816eae4a5a59647769db36bd32d91e36a4d2881180921c6ae1c774da8a88c"),
fe("0x0e8dc7cd6f5219b8f0a202d5d9142eb80144fb4945777175cc21a5de7f93734d"),
fe("0x125c7c9c18bfc84d8298305590ffbb6a6ec51389eb2678522ba53dc7b6a9c989"),
fe("0x0fa705e5fb58d754efb803b9c24ded86fdf44f0b9027858cb7468889b9b793f9"),
fe("0x2db7b16fa0d8cafdb13856e67e232531b6b64b181717b56e918d895d1f6de779"),
fe("0x20ee21a8e99de49e0f23484346d51ca84c763fd3bc42ed49302ce517efb7c3d1"),
fe("0x2464170cd57c89626cd9f1c25ea604103cf5c7c6b6384d63cccc2539fd227b10"),
fe("0x18d92ee6e4ad5ed8671a3a902e471b7b17423a0a123a069f5ce724d219900e6e"),
fe("0x06e7eb25aa2f77c9f64e6e997569593b1b1aada9d97b4fa8d5aa58eaca28ee3d"),
fe("0x245f3670a6e3be9104fc999f977e05dab46a0434e682272afdfe33b431489422"),
fe("0x2338e44c82e527c3f9b4064e9691a01b01426c264a5eab102627ca1798a96731"),
fe("0x025ba964c43c4dd03b90be052c367b5988b0f613d67afe23caecb7535b02d8c2"),
fe("0x227a926359ecb99dbf2fbb5bcfeb66b443b73074de47f75d5285a63d5e9bb8d0"),
fe("0x080e987035c7ab8091afdab9737d67f7b29d5a055cfe3e80da76c5ed40036fcd"),
fe("0x287d9727fa9787cb13d2c6c4f861fe6948ce2085e817b17f2d01c7ac5d9a71e2"),
fe("0x0cff9c7671547d0403a7c6dd36a818db81d84f73c6618b28b9adc117de6ea286"),
fe("0x231cbd6dbd1339319bdb4549090f7f907c46f520aaea6c3e669b1b933bc978df"),
fe("0x003fe17bbf0d32f5eef248969461584ff7718c1a84e79daf88c813868f09a10b"),
fe("0x13768255aa238077f21510e708027b2a9379b9bbbd34e832220ef0c741d7bc76"),
fe("0x19f3f23131739230955fa717eda73f9da0bf596b1dff0c23ed24cb2f95044160"),
fe("0x2b24106b3883d29d76325e0ea82d0e34c742b992fe78f91e09c7e308e8d37ddc"),
fe("0x000fe2d40c9e86c9d35e148a06ea4a3410f29e7519e394259e0f6afbfb6519fc"),
fe("0x27ae2a5837cf9c79ccabe4f7f61252ec8e6bbb272005297cca83cc40b4110e89"),
fe("0x15684fefda12b32ba4873564c3502a67a2076134f71ff66f4e2ee5315b02a19c"),
fe("0x21045f6063ec9e2e6e7040c0949a46235693805af8e75a29760dd49455e61dda"),
fe("0x00ff37a0311730e3ce35c3ae5467f47401add02962daa4cebcf2cae53085eb10"),
fe("0x12a8f68dad75db509547b97c08699ef05dc6e7a871553dac62f3d9bee87e14dd"),
fe("0x0444811de68c064af36942e4ae9059284f0dfe86650c72cacfba8c8a06e920ff"),
fe("0x21c1763df1a7206705b65d0942acec0c4cf61e60782ffae540b6c41dd6a43d50"),
fe("0x2575340455a05474d748608031d21ea1502e27c6fd348f9992cf8881c2d81e69"),
fe("0x08f501b2028eb549372061ad3423e3f0f71bc45b89870be397c5c5e01b19760e"),
fe("0x05b62275eb9fa36c94136efb0b3767bde46ff1d35b811759aa2b54c90dabbb54"),
fe("0x0519ec5dc1a9b538923f0c3354603bd0c7d7acd9b9ce817b70bb98acc4744d58"),
fe("0x1549a0a9856793b1fb73049189f34b2e0ed9e08c48875359aa899dcee91e1e82"),
fe("0x06191e3ff7936bd97b948b095a6bb2e458b33a4f2a731b5a06c347f1f6b46d6d"),
fe("0x2a3d690c70b4930341afbbea186b0394a3a7dd7d911f8106db6c96476395f25b"),
fe("0x04d39a7a0b5f372041d717d422dc3b862a8a8b6ed1a174efb24b923c9505c5b0"),
fe("0x083b47892d403e287bbf80d319866f50adc5a5b50f81f1708986078e64065b26"),
],
_ => panic!("t must be 2|3|4|8|12|16"),
}
}
#[cfg(test)]
mod tests_constants_t4 {
use super::*;
#[test]
fn t4_round_constants_sample_match_reference() {
let rc1 = super::load_rc_full1(4);
let rc2 = super::load_rc_full2(4);
let rcp = super::load_rc_partial(4);
assert_eq!(
rc1[0][0],
fe("0x19b849f69450b06848da1d39bd5e4a4302bb86744edc26238b0878e269ed23e5")
);
assert_eq!(
rc1[1][3],
fe("0x13da07dc64d428369873e97160234641f8beb56fdd05e5f3563fa39d9c22df4e")
);
assert_eq!(
rc2[3][2],
fe("0x1daf345a58006b736499c583cb76c316d6f78ed6a6dffc82111e11a63fe412df")
);
assert_eq!(
rcp[0],
fe("0x0c6f8f958be0e93053d7fd4fc54512855535ed1539f051dcb43a26fd926361cf")
);
assert_eq!(
rcp[rcp.len() - 1],
fe("0x0ef915f0ac120b876abccceb344a1d36bad3f3c5ab91a8ddcbec2e060d8befac")
);
}
#[test]
fn t4_internal_mds_diag_matches_reference() {
let d = super::load_diag(4);
assert_eq!(d.len(), 4);
assert_eq!(
d[0],
fe("0x10dc6e9c006ea38b04b1e03b4bd9490c0d03f98929ca1d7fb56821fd19d3b6e7")
);
assert_eq!(
d[1],
fe("0x0c28145b6a44df3e0149b3d0a30b3bb599df9756d4dd9b84a86b38cfb45a740b")
);
assert_eq!(
d[2],
fe("0x00544b8338791518b2c7645a50392798b21f75bb60e3596170067d00141cac15")
);
assert_eq!(
d[3],
fe("0x222c01175718386f2e2e82eb122789e352e105a3b8fa852613bc534433ee428b")
);
}
}